天天看點

ORB-SLAM2論文解讀與總結

最近閱讀了Raúl Mur-Artal and Juan D. Tardós寫的ORB_SLAM2論文,并做了一些小結

ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras

以下是本人對這篇文章的一些小結,僅供參考。

一 、摘要部分

    ORB_SLAM2是一套基于單目、雙目以及RGB-D的完整方案,可以實作地圖重用、回環檢測以及重新定位的功能。後端主要采用BA優化方法,内部包含了一個輕量級的定位模型,實作利用VO 追蹤未建圖區域和與地圖點比對實作零漂移定位。

這篇文章是在單目ORB-SLAM的基礎上提出ORB-SLAM2,主要有以下貢獻:

1. 這是首個基于單目,雙目和RGB-D相機的開源SLAM方案,這個方案包括,回環檢測,地圖重用和重定位。

2. 結果說明,BA優化比ICP或者光度和深度誤差最小方法的更加精确。

3. 通過比對遠處和近處的雙目比對的點和單目觀測,雙目的結果比直接使用雙目系統更加精确。

4. 針對無法建圖的情況,提出了一個輕量級的定位模式 ,能夠更加有效的重用地圖。

二、ORB_SLAM2

1、簡介

    ORB_SLAM2由3+1個平行線程組成,包括跟蹤、局部建圖、回環檢測以及在回環檢測後的全局BA優化。之是以說是3+1,因為第四個線程僅在回環檢測并确認後才執行。

前三個主要并行線程:

a、跟蹤:通過尋找對局部地圖特征進行比對,利用純運動BA最小化重投影誤差進行定位每幀圖檔的相機;

b、局部建圖:通過執行局部BA管理局部地圖并優化;

c、回環檢測:檢測大的環并通過執行位姿圖優化更正漂移誤差。這個線程觸發第四線程;

d、全局BA:在位姿圖優化之後,計算整個系統最優結構和運動結果。

    該系統運用了基于DBOM2嵌入式位置識别模型進行重定位,來防止跟蹤失敗、或已知地圖場景重初始化、回環檢測等。系統使用ORB特征進行追蹤、建圖和位置識别任務,該特征的優點是具有旋轉不變性和尺度不變性。并且能夠迅速的提取特征和進行比對,能夠滿足實時操作的需求,能夠在基于詞袋的位置識别過程中,顯示出良好的精度。

2、單目、近處雙目和遠處雙目特征點

ORB-SLAM2作為一種基于特征提取的方法,系統的所有運作都是基于輸入圖像的特征展開,而不依賴于雙目或者RGB-D的相機。系統處理單目或者雙目的特征點,分成遠處特征點和近處特征點兩類。

雙目特征點 通過三個坐标定義(uL,vL,uR),(uL,vL)是左圖的坐标,(uR,vL)是右圖坐标。對于雙目相機而言,我們提取兩幅圖像當中的ORB特征,對于每個左邊的ORB特征我們對其比對到右邊的圖像中。由于極線是水準的,是以這對于建設雙目圖像校正十分有效。在左邊的圖像産生雙目的ORB特征點,和一條水準的線向右邊的圖像進行比對,通過修補相關性來重新定義亞像素。對于RGB-D相機在ORB圖像通道上提取ORB特征點,将該點坐标作為左圖坐标,将深度轉換為虛拟的右圖坐标,轉換關系如下式:其中d為深度 ;fx為水準焦距 ; b為結構光投影儀 與水準相機之間的基線。

ORB-SLAM2論文解讀與總結

近雙目特征點與遠雙目特征點:

近雙目特征點的定義是:比對的深度值小于40倍雙目或者RGB-D的基線,否則的話,是遠特征點。

近特征點:能夠由一幀圖像直接三角測量化,得到的深度是精确的估計,并且能夠提供尺度,平移和旋轉的資訊。

遠特征點:僅僅能夠提供精确的旋轉資訊,但是很少的尺度和平移資訊。當提供多視圖的時候,我們才能三角化那些遠的點。

單目的特征點通過左圖的兩個坐标xm=(uL,vL)定義,必須保證所有的ORB特征是一緻的,這些點僅能夠從多視圖中三角測量化并且不能夠提供尺度資訊,但是可以提供旋轉和平移的估計資訊。

使用雙目以及RGBD相機的優點在于:

a、直接獲得深度資訊,而不需像單目一樣需做SFM初始化;

b、系統初始化更友善,首幀即為關鍵幀,且由于知道深度資訊,可以從立體點中直接建構初始化地圖

3、用單目或者雙目進行BA

BA主要用在以下幾個地方:在跟蹤線程中使用BA優化相機位姿(純運動BA);優化關鍵幀的本地視窗和局部建圖線程中的點(局部BA);在閉環檢測後優化所有關鍵幀和點(全局BA)。

純運動BA優化,優化的是相機的R,t,通過最小化重投影誤差的方法,通過最小化3D點Xi與圖像上的關鍵點xi之間的重投影誤差,ρ這裡表示魯棒核函數,魯棒核函數主要作用是平衡誤差不讓二範數誤差增長過快,π(.)類似于相機内參比上一個尺度,将3D轉為2D:

ORB-SLAM2論文解讀與總結

局部BA相較于純運動BA,增加了優化該點在地圖中的3D坐标,即優化了一些主要的關鍵幀以及關鍵幀中可見的所有點,具體問題描述如下:

ORB-SLAM2論文解讀與總結

其中PL為所有關鍵幀中可觀察到的點; KL關鍵幀中所有的covisible關鍵幀, KF為除KL外的關鍵幀,兩者之集合即為所有關鍵幀; XK為PL中的點與關鍵幀k中的關鍵點比對後的集合。

全局BA是局部BA的特殊形式,即所有得關鍵幀和地圖點都要被優化。

4、回環檢測和BA優化

回環檢測:

            回環檢測主要分兩步:a.回環資訊的檢測與确認;

                                               b.修正和優化位姿圖。

            單目ORB會出現尺度漂移的問題,而雙目/RGBD可以測得深度資訊,是以尺度已知,是以在幾何校驗與位姿圖優化無需處理尺度漂移的問題,是基于剛體變換而非相似度。

全局BA:

            在圖優化之後進行全局BA優化;

            全局BA是一個獨立的線程,這使得允許系統在BA優化的同時進行建圖和回環檢測環節,但這會影響BA優化與目前地圖 狀态合并,如其他線程運作中産生的新的關鍵幀與關鍵點以及在BA過程中回環檢測線程檢測到了新的環等問題。當檢測到新的回環時,将終止目前的全局BA優化,因為新的回環會引發新的回環檢測,是以把這次的停了也無所謂。

全局BA優化之後需要将全局BA優化的關鍵幀和點的子集進行更新,同時與優化時插入的未優化的關鍵幀和點相融合,融合方式:通過生成樹的方式将關鍵幀的更正“規律”延伸至未更新關鍵幀來完成,未更新點根據其參考關鍵幀的校正進行變換。

5、關鍵幀的插入

基本遵循ORB_SLAM方式,即經常插入關鍵幀并移除多餘的關鍵幀。

利用遠近關鍵點設定關鍵幀的插入條件:

因為已知近關鍵點相較于遠關鍵點能夠提供平移資訊,是以需要大量的近關鍵點用于精确估計平移,是以設定插入幀條件為,當跟蹤的近關鍵點小于一定數目或者幀中出現的新的近關鍵點大于一定數目時插入新的關鍵幀。

6、定位模型

該模型适用于地圖輕量級且已知的情況下長期運作。定位過程,局部建圖與回環檢測線程停止,通過追蹤線程進行重定位,通過VO比對圖像與點雲。該方法用于未建圖區域時會造成漂移累計,在已知地圖中利用點雲地圖比對能夠實作在地圖中的無漂移定位。

ORB-SLAM2貢獻:

ORB-SLAM2論文解讀與總結

系統架構:

ORB-SLAM2論文解讀與總結

繼續閱讀