首页 > 编程学习 > SLAM之相机模型

SLAM之相机模型

发布时间:2022/10/2 6:30:12

相机模型

描述了一束光线通过针孔之后,在针孔背面投影成像的关系。
相机透镜的存在会使得光线投影到成像平面的过程中产生畸变
因此,我们用针孔畸变两个模型来描述整个投影过程。这两个模型能够把外部的三维点投影到相机内部成像平面,构成相机的内参数

针孔相机模型

\[\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\)的关系为:
\[\begin{cases}u=\alpha X^\prime + c_x \\ v=\beta Y^\prime + c_y\end{cases} \]

将$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\)的单位为像素。
最终,可得:

\[Z \left(\begin{matrix} u\\ v\\ 1\\ \end{matrix} \right)=\left( \begin {matrix} f_x& 0 &c_x\\ 0 & f_y &c_y\\ 0&0&1 \end{matrix} \right) \left(\begin{matrix} X\\Y\\Z\end{matrix}\right) \stackrel{\mathrm{def}}{=}KP \]

其中K称为相机的内参数矩阵K ,并且通常认为相机的内参在出厂后是固定的。可以通过标定的方法获得。
在此式中,我们使用的是\(P\)在相机坐标系下的坐标,所以与世界坐标系\(P_w\)的关系如下,其中相机的位姿由它的旋转矩阵R和平移向量t来描述:

\[ZP_{uv}=Z \left[\begin{matrix} u\\v\\1 \end{matrix}\right]=K(RP_w+t)=KTP_w \]

相机的位姿R,t又称为相机的外参数。
投影过程还可以从另一个角度来看,我们可以把一个世界坐标点先转换到相机坐标系,再除掉它最后一维的数值,即该点距离相机成像平面的深度。相当于将最后一维进行归一化处理,得到点P在相机归一化平面上的投影:

\[(RP_w+t)=\left[X,Y,Z\right]^T\rightarrow[X/Z,Y/Z,1]^T \]

这也代表着点的深度在投影过程中被丢失掉了

畸变模型

  • 将三维空间点投影在到归一化图像平面。设它的归一化坐标为\([x,y]^T\)
  • 对归一化平面上的点计算径向畸变和切向畸变:
\[\begin{cases} x_{distorted}=x(1+k_1 r^2+k_2 r^4+k_3 r^6)+2p_1xy+p_2(r^2+2x^2)\\ y_{distorted}=y(1+k_1 r^2+k_2 r^4+k_3 r^6)+p_1(r^2+2y^2)+2p_2xy \end{cases} \]
  • 将畸变后的点通过内参数矩阵投影到像素平面,得到该点在图像上的正确位置
\[\begin{cases} x_{distorted}=f_xx_{distorted}+c_x\\ y_{distorted}=f_yy_{distorted}+c_y \end{cases} \]

总结单目相机成像过程

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\)

Copyright © 2010-2022 kler.cn 版权所有 |关于我们| 联系方式|豫ICP备15888888号