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

但是由於觀測噪聲,求解會帶來誤差,一般用優化進行求解。如下圖:

 

 

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