寫在前面
ORB-SLAM2: An Open-Source SLAM System form Monocular, Stereo, and RGB-D Cameras 是SLAM領域的一篇經典論文。網上也有很多的中文翻譯稿,但感覺翻譯的都不是太好。本文的翻譯是我的本科畢設的外文文獻翻譯內容,自己翻譯的,感覺更通順些,如果其中有錯誤歡迎大家指出。
Raúl Mur-Artal and Juan D. Tardós. ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras. IEEE Transactions on Robotics, vol. 33, no. 5, pp. 1255-1262, 2017. PDF
題目
ORB-SLAM2: An Open-Source SLAM System form Monocular, Stereo, and RGB-D Cameras
摘要
本文提出了ORB-SLAM2,它是基於單目、雙目或RGB-D相機的一個完整的SLAM系統,其中包括地圖重用、回環檢測和重定位功能。這個系統可以適用於多種環境,無論是室內小型手持設備,還是工廠環境中飛行的無人機和城市中行駛的車輛,其都可以在標准CPU上實時運行。該系統的后端使用基於單目和雙目觀測的光束法平差法(bundle adjustment),這使得其可以精確估計軌跡的尺度。該系統包含一個輕量級的定位模式,它使用視覺里程計追蹤未建圖區域並匹配地圖點,實現零漂移定位。在29個常用公開數據集上的實驗評估顯示本文方法在大多數情況下是精度最高的SLAM解決方案。我們公開了該系統的源代碼,從而促進SLAM領域發展,同時也給其他領域的研究者提供一套能夠開箱即用的SLAM解決方案。
1 引言
同時定位建圖(SLAM)在過去二十年中一直是計算機視覺和機器人領域的研究熱點,最近它也吸引了高科技企業的關注。SLAM技術對未知環境進行建圖,同時實時地在地圖中定位傳感器的位置。在不同傳感器中,相機相對便宜,同時能夠提供魯棒准確的位置識別所需的豐富的環境信息,所以以攝像頭為主要傳感器的視覺SLAM解決方案,是當前最受青睞的研究熱點。位置識別是SLAM系統中實現回環檢測(當檢測到傳感器回到已建圖區域時,修正探索過程中的累積誤差)的關鍵模塊,它能夠在因遮擋或劇烈運動導致追蹤失敗后以及系統重新初始化時,重定位相機的位置。
視覺SLAM只需一個單目相機即可實現,這是最便宜也是最小的傳感器設備。但是,僅靠一個單目相機無法觀測到深度信息,所以地圖和估計軌跡的尺度是未知的。另外,由於單目視覺SLAM系統無法僅根據第一幀圖像進行三角化測量(triangulate),所以系統啟動時需要多個視角或者濾波技術來生成一個初始地圖。同時,單目SLAM會造成尺度漂移,在純旋轉的探索過程中可能會失敗。不過,通過使用雙目或者RGB-D相機,這些問題都可以被解決,從而實現更可靠的視覺SLAM解決方案。
本文中,在我們之前提出的單目ORB-SLAM的基礎上,我們進一步提出了ORB-SLAM2,它有以下貢獻:
- 第一個開源的基於單目、雙目、RGB-D相機的SLAM系統,其中包括回環檢測、重定位、以及地圖重用功能。
- 我們的RGB-D結果顯示,相比較目前最好的基於迭代最近點法(ICP)或廣度和深度誤差最小法,我們通過使用光束法平差法(BA),可以達到更高的精度。
- 通過使用遠近匹配雙目點和單目觀測,我們的雙目結果比目前最好的直接雙目SLAM的精度更高。
- 提出了一個輕量級的重定位模式,它可以在無法建圖時,有效地重新使用地圖。

圖 1 展示了雙目和RGB-D輸入下ORB-SLAM2系統的輸出。其中雙目的例子展示了KITTI數據集 00序列的最終估計軌跡和稀疏重建結果。這是一個具有多個回環閉合的城市場景數據序列,ORB-SLAM2系統成功檢測到了這些回環。RGB-D的例子展示了TUM RGB-D數據集中的frl-room序列的關鍵幀位姿估計結果及所得到的稠密點雲,其中稠密點雲是根據關鍵幀位姿,將傳感器深度圖反向投影所得到的。需要注意的是,ORB-SLAM2系統並沒有像KinectFusion之類的系統一樣進行任何融合,但是卻能夠精確地估計關鍵幀位姿。附件視頻中將會展示更多的例子。
本文余下章節中,我們將會在第2節中討論相關工作,在第3節中介紹我們的系統,在第4節中給出實驗評估結果,最后在第5節中進行總結。
2 相關工作
在本節中,我們將會討論雙目和RGB-D SLAM的相關工作。本節中的討論和第四節中的評估只針對SLAM方法。
2.1 雙目SLAM
Paz等人曾做出了一個早期的卓越的雙目SLAM系統[5],他們基於條件獨立分治的擴展卡爾曼濾波SLAM(EKF-SLAM),使該系統在那個年代相比較其他方式可以在更大的場景中運行。最重要的是,它是第一個同時使用近特征點和遠特征點(由於該點在雙目相機中的視差較小,使其深度無法得到可靠估計),並對后者使用逆深度參數估計[6]。他們經驗性地指出,當特征點的深度小於雙目相機基線長度的40倍時,特征點可以被可靠地三角化。本文工作中我們延續了這種用不同方式處理近特征點和遠特征點的策略,這部分內容將在3.1節中進行解釋。
大多數現代的雙目SLAM系統是基於關鍵幀[7]和局部BA優化來實現可伸縮性(scalability)。Strasdat等人的工作[8]在關鍵幀窗內采用BA優化(點-位姿約束),在關鍵幀窗外采用位姿圖優化(位姿-位姿優化)。通過限制窗的大小,該方法可以實現恆定的時間復雜度,但無法保證全局一致性。Mei等人提出了RSLAM方法[9],其使用了地標和位姿的相對位置表示法,並在限制時間復雜度的條件下,在激活區域內采用相對BA。RSLAM可以實現回環的閉合,這可以擴展回環兩端的激活區域,但並不能增強全局一致性。最近Pire等人提出的S-PTAM [10]采用了局部BA,但它缺少閉合大回環的功能。與這些方法類似,我們也在局部關鍵幀集合中采用了BA,因此該方法的復雜度不受地圖尺寸影響,我們可以在大場景中實施該方法。但是,我們的目標是建立一個全局一致的地圖。與RSLAM類似,當閉合一個回環時,我們的系統會首先將兩端對齊,因此追蹤模塊可以使用舊地圖繼續定位,之后采用位姿圖優化來最小化回環中的累積漂移,再之后進行全局BA。
最近Engel等人提出的雙目LSD-SLAM [11]是一種半稠密的方法,它最小化圖像梯度較大區域的光度誤差。該方法希望在不依賴特征的條件下,在運動模糊或紋理較弱的環境下獲得更好的魯棒性。但是,作為直接法,該方法的性能會由於未建模因素而顯著下降,例如卷簾快門或非朗伯反射。
2.2 RGB-D SLAM
Newcombe等人提出的KinectFusion [4]是最早也是最著名的RGB-D SLAM系統之一。該方法將傳感器得到的所有深度數據融合至一個稠密的體積模型,並使用ICP來追蹤相機位姿。由於該系統使用體積表示形式並且缺少回環檢測,它只能應用於小規模的工作空間。Whelan等人提出的Kintinuous [12]使用了一個滾動循環緩沖區,並且包括了一個使用位置識別和位姿圖優化的回環檢測模塊,從而能夠在大規模場景運行。
Endres等人提出的RGB-D SLAM [13]可能是最早流行的開源系統。它是一個基於特征的系統,它的前端通過特征匹配和ICP來計算幀間的運動,它的后端使用位姿圖優化,其回環檢測約束條件由啟發式搜索得到。與之相似,Kerl等人提出的DVO-SLAM [14]的后端也采用位姿圖優化,其中關鍵幀之間的約束是由一個最小化光度和深度誤差的視覺里程計計算得到。同時,DVO-SLAM在以往所有幀中啟發式地搜索回環的候選者,而不依賴於位置識別。
最近Whelan等人提出的ElasticFusion [15]建立了環境的surfel地圖,這是一種忽略位姿,而以地圖為核心的方法,它采用對地圖進行非剛性變形的方式來實現回環閉合,而不是采用位姿圖優化的方法。該系統細節重建和定位精度是非常優秀的,但是由於地圖中面元數量所帶來的復雜度,目前它仍局限於建立房間大小的地圖。
我們的ORB-SLAM2系統使用了一種Strasdat等人提出的方法[8],該方法使用深度信息來為圖像中提取的特征合成立體坐標。通過這種方法,我們的系統可以處理來自雙目或者RGB-D的輸入。與上述所有方法不同的是,我們方法的后端基於BA,並且能夠得到一個全局一致的稀疏重建。因此我們的方法是輕量級的,可以在標准CPU上運行。我們的目標是實現長期並且全局一致的定位,而不是進行具有更多細節的稠密重建。但是,我們的方法也可以通過精度很高的關鍵幀位姿,進行深度圖融合來實時地對局部環境進行准確重建,或者在全局BA后對所有關鍵幀的深度圖進行處理從而得到整個場景的精准三維模型。
3 ORB-SLAM2
基於雙目和RGB-D相機的ORB-SLAM2是建立在我們的基於特征的單目ORB-SLAM [1]的基礎上的。為讀者方便,我們在這里總結一下單目ORB-SLAM的基本組成部分。總體概述了該系統基於雙目和RGB-D相機的ORB-SLAM2是建立在我們的基於特征的單目ORB-SLAM的基礎上的。為讀者方便,我們在這里總結一下單目ORB-SLAM的基本組成部分。圖 2 ORB-SLAM2由三個主要的並行線程組成:追蹤、局部建圖和回環檢測。在回環檢測后會執行第四個線程,進行全局BA。追蹤線程會對雙目和RGB-D輸入進行預處理,從而使得系統其它部分可以獨立於輸入傳感器運行。雖然這張圖沒有展示,但ORB-SLAM2也可以基於單目輸入運行。圖 2總體概覽了該系統。該系統具有三個主要的並行線程:1)追蹤線程是用來在每一幀中定位相機的位置,通過匹配特征和局部地圖並且進行運動BA(motion-only BA)最小化重投影誤差;2)局部建圖線程是用來管理和優化局部地圖;3)回環檢測線程是用來檢測大回環,並通過執行位姿圖優化來修正累積誤差。該線程在位姿圖優化后會啟動第四個線程來執行全局BA,計算最優的結構和運動結果。

該系統嵌入了一個基於DBoW2 [16]的位置識別模塊,在發生追蹤失敗(例如:碰撞)或者在建好圖的場景中重新初始化時用來進行重定位,以及用來進行回環檢測。該系統維護了一個關聯可見地圖(convisible map)[8],此地圖將每兩個觀察到相同地圖點的關鍵幀連接到一起;同時該系統也維護了一個最小生成樹,它連接了所有的關鍵幀。這種地圖結構實現了對於關鍵幀局部窗的檢索,因此追蹤線程和局部建圖線程可以局部地運行,使其可以在大場景中工作;同時該結構在回環閉合進行位姿圖優化時,也可作為優化的圖結構。
該系統在追蹤、建圖和位置識別任務中,都使用相同的ORB特征[17]。這些特征對於旋轉和尺度變化具有很好的魯棒性,同時對於相機的自動增益、自動曝光和光線變化也具有不變性。另外,提取和匹配ORB特征的速度很快,使其可以實時運行,並且在詞袋模型位置識別任務上表現出良好的查准率/查重率(precision/recall)[18]。
在本節的余下部分中,我們會展示如何使用雙目/深度信息,以及系統的哪些部分將會被影響。關於該系統每一部分更詳盡的描述,請參考我們的單目ORB-SLAM論文[1]。
3.1 單目、近處立體和遠處立體關鍵點
作為一種基於特征的方法,ORB-SLAM2會對輸入進行預處理,在顯著關鍵點位置提取特征,如圖 2b所示。接下來,輸入的圖片會被丟棄,系統的全部運算會基於這些特征,因此無論是雙目還是RGB-D輸入,本系統都可以工作。我們的系統會處理單目和雙目的關鍵點,這些點又會被分為近處點和遠處點。
立體(雙目)關鍵點通過三維坐標 \(x_s=(u_L,v_L,u_R )\) 來定義,\((u_L,v_L )\) 是關鍵點在左圖的坐標,\(u_R\) 是關鍵點在右圖的水平坐標。對於雙目相機,我們在左右兩張圖片中同時提取ORB特征。對於左圖中的每個ORB特征,我們在右圖中搜索一個相應的匹配。對於校正后的雙目圖像來說,極線是水平的,所以上述任務可以很高效地完成。之后我們根據左圖ORB特征坐標和右圖相匹配的特征水平坐標來生成立體關鍵點。對於RGB-D相機,正如Strasdat等人所言[8],我們在RGB圖像上提取ORB特征,對於每個坐標為 \((u_L,v_L)\) 的特征,我們根據它的深度值d計算出一個虛擬的右圖坐標:
其中 \(f_x\) 是水平焦距;\(b\) 是結果光投影機和紅外相機之間的基線長度,在Kinect和Asus Xtion相機中我們將其大概設定為8厘米。深度傳感器的不確定性由虛擬的右坐標表示。通過這種方式,系統余下部分可以以相同的方法處理來自雙目或者RGB-D輸入的特征。
正如文獻[5]所述,如果一個立體關鍵點的深度值小於雙目/RGB-D的基線長度的40倍,則認為它是近處點,否則認為它是遠處點。近處關鍵點可以被安全地三角化,因為它的深度可被精確估計,且提供了尺度、平移和旋轉的信息。另一方面,遠處關鍵點雖然提供了精確的旋轉信息,但不能提供精確的尺度和平移信息。所以當遠處關鍵點在多個視圖中存在時,我們才對其進行三角化。
單目關鍵點通過左圖中的二維坐標 \(x_m=(u_L,v_L)\) 定義,若ORB特征的雙目匹配失效或者RGB-D相機無法得到其有效深度值,則采用此方式。這些點只會在多視圖時進行三角化,且不會提供尺度信息,但它們可用於旋轉和平移估計。
3.2 系統啟動
使用雙目或者RGB-D相機的最主要的好處之一是,我們可以直接獲得單幀圖像的深度信息,不用像在單目SLAM中一樣需要使用特定的SFM(structure from motion)初始化。在系統啟動時,我們將第一幀設為關鍵幀,將其位姿設置為初始位姿,並且根據所有的立體關鍵點來建立一個初始地圖。
3.3 單目和雙目約束下的光束優化法(BA)
我們的系統在追蹤線程中使用BA來優化相機位姿(純運動BA),在局部建圖線程中優化關鍵幀和點的局部窗(局部BA),在回環檢測后優化所有的關鍵幀和點(全局BA)。我們使用g2o [19]中的實現的Levenberg-Marquardt方法來進行優化。
純運動BA(motion-only BA)優化相機的旋轉矩陣 \(\mathbf{R} \in S O(3)\) 和位置 \(\mathbf{t} \in \mathbb{R}^{3}\),最小化相匹配的世界坐標系下的三維點 \(\mathbf{X}^{i} \in \mathbb{R}^{3}\) 和關鍵點 \(\mathbf{x}_{(\cdot)}^{i}\) 之間的重投影誤差(單目點 \(\mathbf{x}_{\mathrm{m}}^{i} \in \mathbb{R}^{2}\) 或者雙目點 \(\mathbf{x}_{\mathrm{s}}^{i} \in \mathbb{R}^{\mathbf{3}}\),對於所有匹配對 \(i \in \mathcal{X}\)):
其中\(\rho\)是魯棒Huber代價函數,\(\sum\)是關鍵點尺度的協方差矩陣。其中投影函數\(\pi_{(\cdot)}\),單目投影函數\(\pi_m\),校正雙目投影函數\(\pi_s\)如下定義:
其中\(\left(f_x,f_y\right)\)是焦距,\(\left(c_x,c_y\right)\)是光心點,\(b\)是基線長度,這些值都通過標定得到。
全局BA是局部BA的一種特殊情況,在全局BA中,除了初始關鍵幀因用來消除計算自由度而被固定之外,所有關鍵幀和地圖點都會被優化。
局部BA對一個關聯可見的關鍵幀\(\mathcal{K}_L\)集合和這些關鍵幀中所有可見的點\(\mathcal{P}_L\)。所有不在\(\mathcal{K}_L\)中,但也觀測到\(\mathcal{P}_L\)中的點的其它關鍵幀\(\mathcal{K}_F\),也會參與到代價函數的計算中,但是不會被優化。我們將\(\mathcal{P}_L\)中的點與關鍵幀k中的關鍵點之間的匹配對的集合定義為\(\mathcal{X}_k\),將優化問題進行如下定義:
全局BA是局部BA的一種特殊情況,在全局BA中,除了初始關鍵幀因用來消除計算自由度而被固定之外,所有關鍵幀和地圖點都會被優化。
3.4 回環檢測和全局BA
回環檢測分兩步進行:第一步是檢測和確認回環,第二步是通過優化位姿圖來修正回環。相較於單目ORB-SLAM可能會發生尺度漂移[20],雙目/深度信息會使尺度變得可以觀測,所以幾何驗證和位姿圖優化不再需要處理尺度漂移;同時它是基於剛體變換,而不是基於相似性。
在ORB-SLAM2中,我們在位姿圖優化后,采用全局BA優化來得到最優解。這個優化過程可能開銷會很大,所以我們將其放在一個獨立的線程中,從而使得系統可以持續建立地圖、檢測回環。但這樣的話,將BA輸出與當前地圖狀態之間進行融合就會產生困難。如果在優化運行的同時發現了新的回環,那么我們就停止優化,轉而去閉合回環,這將再次啟動全局BA優化。當全局BA完成時,就需要將全局BA優化更新后的關鍵幀和點的集合,與在優化過程中插入的未更新的關鍵幀和點,進行融合。這通過將更新的關鍵幀的修正(未優化位姿至優化位姿的變換)沿生成樹傳遞至未更新的關鍵幀來完成。未更新的點依據它們的參考幀的修正來進行變換。
3.5 關鍵幀的插入
ORB-SLAM2沿用了單目ORB-SLAM中介紹的策略:頻繁插入關鍵幀,之后再剔除冗余的關鍵幀。近處立體點和遠處立體點之間的區別使我們在插入關鍵幀時可以引入一個新的條件,當環境中存在很大一塊場景遠離雙目傳感器時,這是非常重要的,如圖 3所示。在這樣的環境中,我們需要有足夠多的的近處點來精確地估計平移量,因此,當追蹤的近處點數目低於\(\tau_{t}\)並且此幀能夠創建至少\(\tau_{c}\)個新的近處立體點時,系統就會插將此幀作為一個新的關鍵幀插入。根據經驗,根據經驗,在我們的實驗中,\(\tau_{t}=100\) \(\tau_{c}=70\) 的效果較好。

3.6 定位模式
我們的系統包括了一個定位模式,只要環境沒有大的變化,該模式就可以在建圖良好的區域中有效地進行輕量級的長期定位。在此模式中,局部建圖線程和回環檢測線程是停用的,如果需要的話,相機會持續通過追蹤線程的重定位功能進行定位。在此模式中,追蹤線程會使用視覺里程計中的匹配對,並將其與地圖點進行匹配。視覺里程計中的匹配對是指當前幀中的ORB特征和之前幀根據雙目/深度信息所創建的三維點之間的匹配對。這些匹配對使得定位功能在未建圖區域更加魯棒,但是會產生累積漂移。與地圖點的匹配保證了在已建圖區域的定位是零漂移的。此模式會在附帶的視頻中進行展示說明。
4 評價
我們評價了ORB-SLAM2在三個常用數據集中的表現,並將其與其它當前最好的SLAM系統進行比較。我們使用的其它SLAM系統的評價結果都是來自原作者的文章中的標准評價指標。我們在一台Intel核心i7-4790、16GB內存的台式電腦上運行ORB-SLAM2。為了防止多線程系統的不確定性對評價結果產生影響,我們對每個數據序列運行5次,最終展示軌跡估計精度結果的中值。我們的開源實現中包括了相機標定,以及如何在這些這些數據集中運行ORB-SLAM2系統的用法說明。
4.1 KITTI 數據集
KITTI數據集[2]包括了城市和高速公路環境中車輛采集的雙目視頻序列。其中雙目傳感器的基線長度為54厘米,工作頻率為10Hz,矯正后的分辨率為1240×376像素。其中視頻序列00、02、05、06、07和09包括回環。我們的ORB-SLAM2系統可以檢測到所有的回環,並且可以在之后重新使用地圖(除了視頻序列09,因為回環只在序列快結束時的很少幾幀出現)。表 1展示了在11段訓練視頻序列中的評價結果,這些序列都含有公開的對應真實值。據我們所知,只有雙目SLAM算法可以在上述所有視頻序列中都運行得到細致的結果,所以我們將我們的方法與當前最好的雙目LSD-SLAM [11]進行比較。我們使用兩個不同的指標,絕對平移均方根誤差(absolute translation RMSE)t_abs [3]、相對平移平均誤差t_rel、相對旋轉平均誤差r_rel [2]。我們的系統在大多數視頻序列中都表現得比雙目LSD-SLAM更好,通常情況下,相對誤差不到1%。圖 3所示視頻序列是訓練集中唯一一個高速公路上的視頻序列,它的平移誤差稍稍差一些。在該序列中,平移量更難估計,因為高速和低幀率導致被追蹤的點非常少。但是,估計的旋轉量很准確,每100米的誤差僅為0.21度,因為有很多可以被長期追蹤的遠處點。圖 4 展示了一些估計軌跡的例子。



4.2 EuRoC數據集
最近的EuRoc數據集[21]包含11段雙目視頻序列,其由一個微型無人機(MAV)在兩間不同的屋子和一個很大的工業環境中拍攝。該雙目傳感器的基線長度為11厘米,其以20Hz的頻率輸出WVGA圖像。這些視頻序列根據微型無人機的速度、光照條件、場景的紋理被分成簡單、中等、困難三等。在所有的視頻序列中,微型無人機都會回到曾經到過的地方,這樣ORB-SLAM2系統就可以在需要的時候重用地圖或閉合回環。表 2展示了ORB-SLAM2與雙目LSD-SLAM [11]在該數據集所有視頻序列中的絕對平移量均方根誤差。ORB-SLAM2的定位精度達到厘米級,比雙目LSD-SLAM精度更高。由於嚴重的運動模糊,我們的追蹤模塊在V2_03_difficult序列的某些部分會丟失。如文獻[22]所述,該序列可以通過添加慣性測量單元(IMU)信息進行處理。圖 6展示了一些計算得到的軌跡估計與真實值之間的比較。


4.3 TUM RGB-D數據集
TUM RGB-D數據集[3]包括RGB-D傳感器采集的室內視頻序列,其被分組在幾個分類中,用於在不同紋理、光照和結構條件下評價物體重建和SLAM/里程計方法的效果。我們展示了幾個最常用於RGB-D方法評價的視頻序列的評價結果。在表 3中我們將我們的方法與當前最好的方法(ElasticFusion [15]、Kintinuous [12]、DVO-SLAM [14]、RGB-D SLAM [13])的精度進行了對比,我們的方法是唯一一個基於BA的方法,且其效果在大多數序列中都好於其它方法。我們已經觀察到文獻[1]中的RGB-D SLAM,freiburg 2序列的深度圖有4%的尺度偏差,這可能是錯誤的標定導致的,所以我們在運行中對此進行了補償。這能部分解釋我們取得很好結果的原因。圖 7展示了四個視頻序列中將傳感器深度圖根據計算所得的關鍵幀位姿反向投影得到的點雲結果。實驗結果顯示,我們的方法很好地重建了桌子和海報的輪廓線,這說明我們的方法具有很高的定位精度。


4.4 運算耗時結果(Timing results)
為了更全面地對我們提出的系統進行評價,我們在表 4中展示了三段視頻序列中不同圖像分辨率和傳感器條件下的計算耗時。我們展示了每個線程的平均耗時及其兩倍標准差范圍。因為這些序列包括一個單回環,所以全局BA和回環檢測線程的一些任務只需執行一次,因此我們只展示了單個時間測量。每個序列中的平均每幀追蹤耗時都低於相機幀率的倒數,這意味着我們的系統可以實時運行。因為在雙目左圖和右圖中的ORB特征提取是並行的,所以可以看出,在V2_02序列的雙目WVGA圖像中提取1000個ORB特征的速度與在fr3_office的單VGA圖像通道中提取相同數量特征的耗時是差不多的。

我們展示了回環中的關鍵幀數量,用於給回環檢測的耗時做參照。雖然KITTI 07序列中包含更多的關鍵幀,但fr3_office室內序列的關聯可見圖(convisibility graph)更加稠密,因此回環融合、位姿圖優化和全局BA的開銷更大。關聯可見圖(convisibility graph)越稠密,局部地圖就含有越多關機幀和點,因此局部地圖追蹤和局部BA的開銷會更大。
5 結論
我們提出了一個完整地基於單目、雙目或RGB-D傳感器的SLAM系統,其可以在標准CPU上實時實現重定位、回環檢測和重用地圖。我們的重點在於建立全局一致的地圖,用於在實驗中所介紹的大規模環境中進行長期定位。我們提出的包含重定位功能的定位模式,是一種可以在已知環境中進行魯棒的、零漂移的、輕量級的定位方法。該模式可適用於特定應用,例如在環境建圖良好的虛擬現實中追蹤使用者的視點。
與當前最好的SLAM系統的對比,ORB在大多數情況下達到了最高的精度。在KITTI視覺里程計基准測試中,ORB-SLAM2是目前最好的雙目SLAM解決方案。很重要的是,與最近流行的雙目視覺里程計方法相比,ORB-SLAM2實現了在已建圖區域的零漂移定位。
令人驚訝的是,我們的RGB-D結果顯示,如果需要精度最高的相機定位,那么BA的表現比直接法或ICP更好,另外它的計算量也更小,不需要依賴GPU就可以實時運行。
我們發布了系統源代碼、例子和使用說明,因此其他研究者可以很方便地使用本系統。據我們所知,ORB-SLAM2是第一個在單目、雙目或RGB-D輸入下都可以工作的開源視覺SLAM系統。另外,我們的源代碼包括了一個增強現實的應用例子,其使用單目相機,用於展示我們的解決方案的可能性。
未來的研究方向可能包括:非重疊多幅相機、魚眼相機、全景相機支持,大規模稠密融合、協作建圖以及增強運動模糊的魯棒性。