SLAM之相机模型

相机模型

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

针孔相机模型

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SLAM(Simultaneous Localization and Mapping)是一种同时进行定位和地图构建的技术,常用于机器人、自动驾驶等领域。相机标定是SLAM中的一个重要步骤,用于确定相机的内部参数和外部参数,以便准确地进行图像处理和三维重建。 常用的相机标定模型有以下几种: 1. Pinhole模型:也称为针孔相机模型,是最简单的相机模型。它假设光线通过针孔投射到成像平面上,忽略了透镜的复杂光学效应。该模型使用焦距、主点和畸变系数来描述相机的内部参数。 2. 等距模型(Equidistant Model):该模型考虑了径向畸变,适用于具有较大畸变的相机。它使用四个径向畸变系数来描述相机的畸变情况。 3. 等角模型(Equisolid Model):该模型也考虑了径向畸变,适用于具有较小畸变的相机。它使用四个径向畸变系数来描述相机的畸变情况。 4. Brown模型:该模型是一种更通用的相机模型,可以同时考虑径向和切向畸变。它使用五个径向畸变系数和两个切向畸变系数来描述相机的畸变情况。 5. Fisheye模型:该模型适用于鱼眼镜头等具有大视场角的相机。它使用多项式函数来描述相机的畸变情况。 以上是常用的几种相机标定模型,不同模型适用于不同类型的相机和畸变情况。在SLAM中,选择适合相机的标定模型非常重要,以确保定位和地图构建的准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值