文章包含 3 大部分,第一部分介绍相机成像模型,针对小孔成像原理和透视成像原理进行描述;第二部分介绍成像过程中的四个坐标系和三次坐标转换;第三部分介绍使用最多的自由平面相机标定法:张氏标定法;
成像简介
在实际成像过程中,经常会使用针孔模型作为相机成像模型的近似;针孔成像的原理:现实世界源于物体的光线穿过针孔,在底板上投影成一幅倒立的图像;
图一:针孔成像原理
图二:左图为2维针孔成像模型;右图为透视投影模型
对针孔模型进行二维化简,可以看出物体光线经过小孔后成倒立的像;但是成倒立的像表述比较口;因此对小孔成像进行化简成右图的形式,右图也称为透视投影模型;透视成像模型与小孔模型相比,光心位于成像平面的后方,成正立的实像,更符合实际成像过程;
透视投影将三维空间点投影到二维平面上,对于三维空间中一点,与相机光心,投影点三点连线在同一条线上;后续我们将使用透视投影模型作为成像分析的基础。
坐标系转换
在投射投影模型中成像具有以下几个过程,涉及到 4 个坐标系之间的三个转换:
图三:相机成像过程
坐标系介绍
1.空间三维坐标系
三维空间坐标系即世界坐标系,是一个绝对的坐标系,所有三维点在世界坐标系下能够反映各自的位置关系;世界坐标系的原点是不固定的,随着应用场景不同,世界坐标系原点不同;在相机标定过程中,世界坐标系置于标定板的棋盘格的左上端。
图四:世界坐标系
世界坐标系和相机三维坐标系都是三维坐标系,但是坐标系原点不同;两个三维坐标系可通过平移和旋转进行相互转换;物理意义:一个三维点在世界坐标系下的坐标可通过平移和旋转,转换到另一个不同原点的三维坐标系下。
图五:平移和旋转转换三维坐标系
假设世界坐标系下物体点 P 的坐标( Xw, Yw, Zw),经过旋转矩阵 R 和平移矩阵 t 变换后,转换为相机坐标系下坐标( Xc, Yc, Zc ),则转换过程可表为:
用矩阵表达:
是相机模型的外参
2.相机三维坐标系
相机坐标系是以相机光心 O 为原点的三维坐标系,世界坐标系下的三维点通过欧式变换(平移和旋转),可转换到相机坐标系中;相机坐标系的点到图像坐标系的点,通过透视变换进行转换;其中图像坐标系是一个二维坐标系,可理解为相机坐标系中距离相机光心 距离为f(Zc=f) ,与光心 Zc=0平 面平行的一个平面;
图六:透视变换
将所有相机光心的坐标投影到 Zc=f 的平面上则:
矩阵形式:
3.图像坐标系
图七:图像坐标系
图像坐标系( Zc = f 的平面)是二维坐标系,描述相机坐标系中投影点在图像上的投影位置,一般坐标中心在相机Zc坐标轴上,xy坐标轴分别与相机坐标系中 XY轴平行;图像坐标系描述透视变换后空间点在图像上成像的位置坐标;
4.像素坐标系
使用矩阵的形式表达:
为了获取齐次坐标,最后一行可以添加 1 进行补充;
由于存在加工误差,像素不是绝对的矩形,是平行四边形形状;引入倾斜因子
图八:像素倾斜
此时公式(3)可描述成
,在实际标定过程中有时可认为 s=0,进行省略。
成像过程介绍
联立(1)(2)(3)式可以获得,世界坐标系一点P(Xw,Yw,Zw) 到像素坐标的计算过程:
通过推导相机模型,知道相机的内参 K 和外参[R t],下面将介绍如何求解相机内参和外参;对于相机标定我们介绍张氏标定;后续会出相机标定的专题,介绍 DLT 直接线性求解法,Tsai 两步法等常见的标定方法,畸变矫正方法以及相关的非线性优化知识等。
张氏标定求解基础知识
相机标定,是使用大量观测值进行参数模型拟合的过程,在此拟合的参数模型是已知的,所以尽可能探索获取大量观察值的方案,如果观测值之间还满足一些其他的几何约束,就更有助于求解具体单个参数值;
张氏标定是一种提供观察值的方案,同时观察值之间还满足一定的几何约束(平面约束);
假设某图像上坐标m=
,齐次表达式m? =
,世界坐标系一点坐标=
,齐次形式M?=
;
则相机模型为:
其中s为尺度因子,外参[Rt],内参矩阵A
其中
为焦距的值(像素为单位),(u0,v0)为像主点坐标(像素单位);
为像元轴的倾斜因子;
使用张氏标定时,世界坐标系固定在标定板上,且Z=0:
因此:
又由于:
张氏标定通过观察置于一个平面的标定图像,获取
与
的映射关系单应性矩阵H,然后计算内参和外参的过程。
求解过程:近似解
定义:
则:
推导出:
由于 r1, r2 是正交矩阵的列向量,两两正交且为单位向量;
则具有如下两个约束:
则:
令:
注意到B是对称矩阵,可用6维向量表示:
已知 1 个单应性矩阵提供 2 个约束,线性方程组 b 有 6 个未知数(5 个内参+1 个尺度因子),
n>=3 个单应性矩阵可求取全部未知数;
n=2 时,令 γ=0,此时添加一个约束:
n=1 时可计算两个内参 α 和 β,此时要求 u0 和 v0是已知的;
由矩阵
,内参矩阵可通过 B 矩阵进行求解:
求取内参之后,根据内参矩阵 A 矩阵获取外参:
声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!