SLAM前端:对极几何、三角测量

对极几何在ORBSLAM初始化过程中求解两帧的R、t,输入两帧图像的多对匹配点,对极几何计算得到R、t

三角测量在单目ORBslam初始化过程中计算初始化点云的3D座标,输入两帧的R、t+匹配特征点的像素座标,输出点的3D座标

1 对极几何

对极几何在两帧的图像中,其中包含n个匹配的特征点,用于估计相机的位姿:旋转矩阵R与平移向量t。一般只在单目SLAM初始化过程中使用。

 

情景如图,两幅图I_1,I_2分别为相机在O_1,O_2两位置的图像,共同观测到P点。可以理解为,相机从O_1位置变换到O_2位置,旋转平移矩阵分别为R、t。现在需要求解R、t。

空间中的一对匹配点[p_1,p_2]如图所示,左图投影点像素座标p_1 =[u_l,v_l,1]^T右图投影点p_2 = [u_r,v_r,1]^T。以左相机O_1相机座标系为参考座标系有:

                                                                             $$ \left\{ \begin{array}{l} s_l p_1 = KP \\ s_r p_2 = K(RP+t) \end{array} \right.                                             (1-1)

K为相机内参矩阵,可逆,可得:

                                                                             $$ \left\{ \begin{array}{l} s_l K^{-1}p_1 = P \\ s_r K^{-1}p_2 = RP+t\end{array} \right.                                            (1-2)

s_l,s_r分别为P点在两相机座标系O_1,O_r下的深度,即z座标。

x_1 = K^{-1}p_1,x_2 = K^{-1}p_2,则:

                                                                                    x_2 = Rx_1+t                                                    (1-3)

两边同时左乘t^\wedge,并且t^\wedge t=0得到:

                                                                                    t^\wedge x_2 = t^\wedge Rx_1                                                   (1-4)

两边同时左乘x_2^T得到:

                                                                              x_2^Tt^\wedge x_2 = x_2^Tt^\wedge Rx_1                                                (1-5)

t^\wedge x_2x_2,t垂直,因此上式左边为0,得到:

                                                                                 x_2^Tt^\wedge Rx_1 = 0                                                       (1-6)

x_1 = K^{-1}p_1,x_2 = K^{-1}p_2代入可得:

                                                                       p_2^T{K^{-1}}^Tt^\wedge RK^{-1}p_1 = 0                                                (1-7)

上式即为对极约束公式,简洁的表述了两幅图像之间一组匹配点p_l,p_r之间的关系。求解出上式即可求解出R、t。

2 三角测量

三角测量利用两帧图像匹配的像素点、以及两帧图像的位姿关系R、t,计算匹配点的3D座标。

已知两帧图像的匹配点P在两帧图像下的像素座标[p_1,p_2]、两帧图像的旋转矩阵R、平移矩阵t。求解匹配点P的3D座标。

由(1-2)(1-3)可以得到:

                                                                                 s_rx_2 = s_lRx_1+t                                                (1-8)

同时左乘x_2^\wedge得到:

                                                                               s_lx_2^\wedge Rx_1+x_2^\wedge t=0                                               (1-9)

上式可以求解得到s_l,代入式(1-8)可以求解得到s_r

但是由于观测噪声,求解会带来误差,一般用优化进行求解。如下图:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章