1. 程式人生 > >ORB-SLAM2: an Open-Source SLAM System for Monocular, Stereo and RGB-D Cameras

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

1 摘要 我們為單眼,立體和RGB-D相機提供完整的SLAM系統ORB-SLAM2,包括地圖重用,閉環檢測和重定位功能。 該系統可在各種環境中的標準CPU中實時工作,從小型手持室內序列,到工業環境中飛行的無人機和城市周圍的汽車。我們的後端基於捆綁調整,具有單眼和立體觀察,可以使用公制尺度進行精確的軌跡估計。我們的系統包括一個輕量級的定位模型,利用未對映區域的視覺測距軌跡,並匹配允許零漂移定位的地圖點。29個流行的公共視訊序列中的評估表明,我們的方法實現了最好的準確性,在大多數情況下是最準確的SLAM解決方案。 我們釋出原始碼,不僅是為了SLAM社群的利益,而且還旨在為其他領域的研究人員提供開箱即用的SLAM解決方案。 2 引言

同步定位和對映(SLAM)在過去二十年中一直是計算機視覺和機器人領域的熱門研究課題,最近引起了高科技公司的關注。 SLAM技術構建了未知環境的地圖,並將感測器定位在地圖中,重點關注實時操作。 在不同的感測器模態中,相機便宜並且提供豐富的環境資訊,允許穩健和準確的位置識別。 位置識別是SLAM系統閉環檢測的關鍵模組(即,檢測感測器何時返回到對映區域並校正探測中的累積誤差),並在跟蹤失敗後由於遮擋或侵略性運動而重新定位攝像機,或者在系統重新初始化。因此,主要感測器是相機的Visual SLAM在過去幾年中得到了很大的發展。可以通過僅使用單眼相機來執行Visual SLAM,這是最便宜和最小的感測器設定。然而,由於僅從一個攝像機無法觀察到深度,因此地圖的比例和估計的軌跡是未知的。此外,系統自己需要多檢視或過濾技術​​來生成初始地圖,因為它不能從第一幀進行三角測量。最後,單眼SLAM受到水垢漂移的影響,如果在勘探中進行純旋轉,可能會失敗。通過使用立體聲或RGB-D相機,所有這些問題都得到了解決,並提供了最可靠的Visual SLAM解決方案。 在本文中,我們建立了單眼ORB-SLAM [1],並提出了ORB-SLAM2,其貢獻如下:

  • 第一個用於單目,立體和RGB-D攝像機的開源SLAM系統,包括閉環,重定位和地圖重用。
  • 我們的RGB-D結果表明,通過使用光纖束調整(BA),我們可以獲得比基於ICP或光度和深度誤差最小化的最先進方法更高的精度。
  • 通過使用近距離和遠距離立體點以及單眼觀察,我們的立體影象結果比最先進的直接立體影象SLAM更精確。
  • 輕量級定位給模型,可以有效地重用無法使用的地圖。 圖1顯示了了立體影象和RGB-D輸入的ORB-SLAM2輸出示例。立體情況顯示了來自KITTI資料集[2]的序列00的最終軌跡和稀疏重建。這是一個具有多個迴圈閉包的城市序列,ORB-SLAM2能夠成功檢測到它。 RGB-D案例顯示了從TUM RGB-D資料集[3]在序列fr1房間中估計的關鍵幀姿勢,以及通過從估計的關鍵幀姿勢反向投影感測器深度圖來渲染的密集點雲。請注意,我們的SLAM不執行任何融合,如KinectFusion [4]或類似,但良好的定義表明關鍵幀姿勢的準確性。更多示例顯示在隨附的視訊2中。 在本文的其餘部分,我們討論了第二部分的相關工作,我們在第三部分描述了我們的系統,然後在第四部分中給出了評估結果,在第五部分結束了結論。 在這裡插入圖片描述
    3 相關工作 最早和最著名的RGB-D SLAM系統之一是Newcombe等人的KinectFusion。 [4]。該方法將來自感測器的所有深度資料融合成體積密集模型,用於使用ICP跟蹤攝像機姿勢。由於其體積表示和缺少迴環檢測,該系統僅限於小型工作空間。 Whelan等人的Kintinuous。 [12]能夠通過使用滾動迴圈緩衝區在大型環境中執行,並使用位置識別和姿勢圖包括閉環優化。 可能第一個流行的開源系統是Endres等人的RGB-D SLAM。 [13]。這是一個基於特徵的系統,其前端通過特徵匹配和ICP計算幀到幀的運動。後端使用來自啟發式搜尋的迴圈閉包約束來執行姿勢圖優化。類似地,Kerl等人的DVO-SLAM的支援。 [14]優化了一個姿勢圖,其中關鍵幀到關鍵幀約束是從視覺里程計算出來的 最小化光度和深度誤差。 DVOSLAM還在所有先前幀上以啟發式方式搜尋迴圈候選,而不是依賴於位置識別。 最近的Whelan等人的ElasticFusion。 [15]建立了一個基於表面的環境地圖。 這是一種以地圖為中心的方法,它會忘記姿勢並執行迴圈閉合,將非剛性變形應用於地圖,而不是標準的姿勢圖優化。 該系統的詳細重建和定位精度令人印象深刻,但目前的實施僅限於房間大小的地圖,因為複雜度隨著地圖中的表面數量而變化。 正如Strasdat等人提出的那樣。 [8]我們的ORB-SLAM2使用深度資訊來合成影象上提取特徵的立體座標。 這樣我們的系統就不知道輸入是立體聲還是RGB-D。與上述所有方法不同,我們的後端基於束調整並構建全域性一致的稀疏重建。 因此,我們的方法是輕量級的,適用於標準CPU。 我們的目標是長期和全域性一致的定位,而不是建立最詳細的。 4 ORB-SLAM2 用於立體和RGB-D相機的ORB-SLAM2基於我們基於單眼特徵的ORB-SLAM [1],其主要元件在此總結,以方便讀者。 該系統的一般概述如圖2所示。 該系統有三個主要的並行執行緒: 1)跟蹤執行緒:通過找到與區域性地圖的特徵匹配並使用僅運動的BA最小化重投影誤差來在每幀定位攝像機, 2)區域性地圖構建:管理定位地圖並優化它,執行本地BA, 3)迴圈閉合以檢測大迴圈並通過執行姿勢圖優化來校正累積漂移。 該執行緒啟動第四個執行緒以執行完整的BA 系統嵌入了基於DBoW2 [16]的場所識別模組,用於重新定位,在跟蹤失敗(例如遮擋)或在已經繪圖的場景中重新初始化的情況下,以及用於迴圈檢測。 系統維護一個covisibiliy圖[8],它連線觀察公共點的任何兩個關鍵幀和連線所有關鍵幀的最小生成樹。 這些圖結構允許檢索關鍵幀的區域性視窗,以便跟蹤和區域性地圖構建在本地執行,允許在大型環境中工作,並用作關閉迴圈時執行的姿勢圖優化的結構。 系統使用相同的ORB功能[17]進行跟蹤,對映和位置識別任務。 這些功能對旋轉和縮放非常穩健,並且對相機自動增益和自動曝光以及照明變化具有良好的不變性。 此外,它們可以快速特徵點提取和匹配,允許實時操作,並在詞袋位置識別中顯示出良好的精確度/召回效能[18]。 在本節的其餘部分,我們將介紹如何利用立體聲/深度資訊以及系統的哪些元素受到影響。 有關每個系統塊的詳細說明,請參閱我們的單目出版物[1]。
  • A.單眼,近立和遠立體影象關鍵點 ORB-SLAM2作為基於特徵的方法預處理輸入以提取顯著關鍵點位置的特徵,如圖2b所示。 然後丟棄輸入影象並且所有系統操作都基於這些特徵,使得系統獨立於感測器(立體或RGB-D)。 我們的系統處理單眼和立體關鍵點,進一步分類為近或遠。 立體關鍵點由三個座標xs =(uL; vL; uR)定義,其中(uL; vL)是左影象上的座標,uR是右影象中的水平座標。對於立體相機,我們在兩個影象中提取ORB,對於每個左ORB,我們在右影象中搜索匹配。假設立體校正影象,這可以非常有效地完成,因此極線是水平的。然後,我們使用左ORB的座標和右匹配的水平座標生成立體關鍵點,其通過貼片相關性進行子畫素細化。對於RGB-D相機,我們在影象通道上提取ORB特徵,並且如Strasdat等人所提出的那樣。 [8],我們使用註冊的深度圖通道中的相關深度值以及結構光投影儀和紅外相機之間的基線合成每個特徵的右座標,對於Kinect和Asus Xtion相機,我們接近8cm。如果相關深度小於立體影象/ RGB-D基線的40倍,立體關鍵點被分類為接近,如[5]中所建議,否則它被分類為遠。近關鍵點可以從一個幀安全地進行三角化,因為準確估計了depthis並提供了比例,平移和旋轉資訊。另一方面,遠點提供準確的旋轉資訊但是縮放比例和翻譯資訊較弱。當多個檢視支援它們時,我們對遠點進行三角化。 單目關鍵點由左影象上的兩個座標xm =(uL; vL)定義,並且對應於無法找到立體匹配或在RGB-D情況下具有無效深度值的所有ORB。這些點僅從多個檢視中進行三角剖分,並且不提供比例資訊,但有助於旋轉和平移估計。 在這裡插入圖片描述
  • B.系統引導 使用立體或RGB-D相機的主要好處之一是,僅從一幀獲得深度資訊,我們不需要像單眼情況那樣的運動初始化的特定結構。在系統啟動時,我們使用第一幀建立一個關鍵幀,將其姿勢設定為原點,並利用所有立體關鍵點建立初始化地圖。
  • C Bundle Adjustment with Monocular and Stereo Constraints 我們的系統執行束調整以優化跟蹤中的相機姿勢(僅運動BA),優化區域性地圖構建(區域性BA)中關鍵幀和點的區域性視窗,並在迴圈閉合後優化所有關鍵幀和點( 完全BA)。 我們在g2o中使用Levenberg-Marquadt實現[19]。