相机模型
描述了一束光线通过针孔之后,在针孔背面投影成像的关系。
相机透镜的存在会使得光线投影到成像平面的过程中产生畸变。
因此,我们用针孔和畸变两个模型来描述整个投影过程。这两个模型能够把外部的三维点投影到相机内部成像平面,构成相机的内参数。
针孔相机模型
\[\frac{Z}{f}=\frac{X}{X^\prime}=\frac{Y}{Y^\prime} \]整理得:
\[X^\prime=f\frac{X}{Z} \]\[Y^\prime=f\frac{Y}{Z} \]不过,我们获得的是一个个的像素,还需要对成像平面进行采样和量化。并将传感器感受到的光线转换成图像像素。
像素坐标
- 像素坐标系的定义方式通常为原点\(o\prime\)位于图像的左上角,u轴向右与x轴平行,v轴向下与y轴平行。
- 像素坐标系与成像平面之间,相差了一个缩放和一个原点的平移。
设像素坐标在\(u\)轴上缩放了\(\alpha\)倍,在\(V\)轴上缩放了\(\beta\)倍。同时,原点平移了\([c_x,c_y]^T\)。则\(P^\prime\)的坐标和像素坐标\([u,v]^T\)的关系为:
将$X^\prime $ 和 $Y^\prime $ 代入,并把\(\alpha f\) 合并成\(f_x\),把$\beta f $ 合并成$ f_y$ ,得:
\[\begin{cases} u=f_x \frac{X}{Z} + c_x \\ v=f_y \frac{Y}{Z} + c_y \end{cases} \]其中f的单位为米,\(\alpha\)和\(\beta\)的单位为像素/米,所以\(f_x\),\(f_y\)和\(c_x\),\(c_y\)的单位为像素。
最终,可得:
其中K称为相机的内参数矩阵K ,并且通常认为相机的内参在出厂后是固定的。可以通过标定的方法获得。
在此式中,我们使用的是\(P\)在相机坐标系下的坐标,所以与世界坐标系\(P_w\)的关系如下,其中相机的位姿由它的旋转矩阵R和平移向量t来描述:
相机的位姿R,t又称为相机的外参数。
投影过程还可以从另一个角度来看,我们可以把一个世界坐标点先转换到相机坐标系,再除掉它最后一维的数值,即该点距离相机成像平面的深度。相当于将最后一维进行归一化处理,得到点P在相机归一化平面上的投影:
这也代表着点的深度在投影过程中被丢失掉了。
畸变模型
- 将三维空间点投影在到归一化图像平面。设它的归一化坐标为\([x,y]^T\)。
- 对归一化平面上的点计算径向畸变和切向畸变:
- 将畸变后的点通过内参数矩阵投影到像素平面,得到该点在图像上的正确位置
总结单目相机成像过程
1.世界坐标系下点\(P_w\)
2.相机的运动由\(R,t\)或变换矩阵\(T\)描述,\(P\)的相机坐标\(P_{camera}=RP_w+t\)
3.这时的\(P_{camera}\)的分量为X,Y,Z将他们投影到归一化平面Z=1上,得到\(P\)的归一化坐标\(P_c=[X/Z,Y/Z,1]^T\)
4.有畸变时,根据畸变参数计算\(P_c\)发生畸变后的坐标。
5.P的归一化坐标经过内参后,得到像素坐标\(P_uv=KP_c\)。