1 针孔相机模型#

相机的成像相机的成像可以近似为小孔成像模型,如上图所示。空间一点P发出光线,光线经过光心o,照在成像平面上形成像点P’,设光心所在平面与像素平面平行,距离为焦距f,点P到光心所在平面的距离为Z,则根据相似三角形可得
fZ=−X′X=−Y′Y其中X,Y代表P点在光心平面坐标系xoy下的坐标,X′,Y′代表P′点在成像平面的坐标,表达式中负号代表反像,但是相机中会自动翻转图像,可以去掉负号,可得
X′=fZXY′=fZY
2 相机内参#
在实际相机中,可将镜头(群)视为一个等效凸透镜,光心则为该透镜的中心。大多数情况下,光心所在平面为镜头的前切面,然而具体还得翻阅相机和镜头的参数手册和使用手册。
成像平面为镜头的焦平面,也是相机中CCD/CMOS 传感器(统称图像传感器)所在的平面。从光学成像角度来说,当相机和镜头搭配使用时,应尽量满足观察目标的成像面与图像传感器平面重合,这样才能获得最佳成像结果。
图像传感器上是由一个个像素单元组成,因此在图像传感器上适用的是像素坐标系和图像坐标系。
像素坐标系的定义:以像素为单位的坐标系。以图像左上角为原点,向右为x轴正方向,向下为y轴正方向,每个像素可以用一个有序二元组(u,v)来表示,这个坐标系就叫做像素坐标系。像素坐标系是一个二维坐标系,标识了在每个像素在图像传感器中的位置,每次增量是1个像素。
图像坐标系的定义:以真实物理尺寸为单位的坐标系。像素坐标系中的标号为(u,v),其中u轴每个像素对应实际物理尺寸dx,v轴每个像素对应实际物理尺寸dy,因此图像坐标系是一个对应真实世界的尺寸二维坐标系,可以记为(X’,Y’) 。图像坐标系的原点在光轴上,因此图像坐标系与像素坐标系间存在平移。
像素坐标系和图像坐标系有如下关系
{u=αX′+cxv=βY′+cyα、β分别为x、y方向缩放因子,cx、cy分别为x、y方向平移
代入针孔相机模型表达式,并取fx=αf,fy=βf,可得
{u=fxZX+cxu=fyZY+cy写成矩阵
uv1=Z1fx000fy0cxcy1XYZ=Z1KP可以看出,矩阵K仅与相机和镜头本身有关,称K为相机的内参矩阵。
3 相机外参#
在计算相机内参的过程中,适用的是P在相机坐标系下的坐标,而P在世界坐标系下也存在着一个坐标,称为世界坐标。设相机坐标系下的坐标为 P, 世界坐标系下的坐标为 Pw。根据坐标变换,存在旋转矩阵 R 和平移矩阵 t,满足
P=RPW+t=TPw这时可以发现相机的位姿可以用 R,t 完全描述,称 R,t 为相机外参。
因此可以得到像素坐标和世界坐标的关系
ZPuv=Zuv1=K(RPw+t)=KTPw
4 相机畸变#
相机畸变是在图像边缘处使得成像目标的几何形状和几何关系发生变化的现象,主要有以下两种:
-
径向畸变:与光轴夹角较大的入射光线在成像时放大率变化较大产生的畸变。主要分为桶形畸变和枕形畸变

-
切向畸变:透镜与成像平面不完全平行所产生的畸变。
畸变参数主要有径向参数和切向参数。
径向参数随着离中心距离增加而增加,我们通常假设这种畸变满足多项式关系,即
xcorrected=x(1+k1r2+k2r4+k3r6)ycorrected=y(1+k1r2+k2r4+k3r6)切向参数可以使用p1,p2进行纠正
xcorrected=x+2p1xy+p2(r2+2x2)ycorrected=y+2p2xy+p1(r2+2y2)合并可得
xcorrected=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)ycorrected=y(1+k1r2+k2r4+k3r6)+2p2xy+p1(r2+2y2)得到畸变参数矩阵:[k1,k2,p1,p2,k3]
再投影到像素平面,可得
{u=fxxcorrected+cxv=fyycorrected+cy这里我们注意畸变参数不一定用5个,使用的数量取决于使用的相机成像情况。在实际标定的时候如果有些参数没有显示出来就是0。
5 相机标定#
相机标定的方法很多,比较常用的是张正友标定法,这里不做过多描述。
对上述内容如果还有疑问,可以参考阅读这里