視覺SLAM技術綜述

計算機視覺life發表於2019-01-05

點選“計算機視覺life”關注,置頂更快接收訊息!
本文轉載自“SIGAI人工智慧平臺”(ID:SIGAICN),主要介紹了視覺SLAM的概念、傳統演算法及深度學習的代表性開源演算法。

什麼是視覺SLAM

SLAM是“Simultaneous Localization And Mapping”的縮寫,可譯為同步定位與建圖。機率 SLAM 問題 (the probabilistic SLAM problem) 起源於 1986 年的IEEE Robotics and Automation Conference 大會上,研究人員希望能將估計理論方法 (estimation-theoretic methods) 應用在構圖和定位問題中。 SLAM最早被應用在機器人領域,其目標是在沒有任何先驗知識的情況下,根據感測器資料實時構建周圍環境地圖,同時根據這個地圖推測自身的定位[1]。

假設機器人攜帶感測器 (相機) 在未知環境中運動,為方便起見,把一段連續時間的運動變成離散時刻 t=1,…k,而在這些時刻,用 x 表示機器人的自身位置,則各時刻的位置就記為 x1x2xk,它構成了機器人的軌跡。地圖方面,假設地圖由許多個路標組成,而每個時刻,感測器會測量到一部分路標點,得到它們的觀測資料。設路標點共有 N 個,用 y1y2yn 表示。透過運動測量 u 和感測器讀數 z 來求解定位問題 (估計 x)和建圖問題 (估計 y)。

視覺SLAM技術綜述

圖 1 SLAM系統示意圖[16]

只利用相機作為外部感知感測器的SLAM稱為視覺SLAM (vSLAM [2])。相機具有視覺資訊豐富、硬體成本低等優點,經典的vSLAM系統一般包含前端視覺里程計、 後端最佳化、 閉環檢測和構圖四個主要部分[3]。

視覺SLAM技術綜述

圖 2 經典vSLAM系統流程圖[5,16]

●  視覺里程計 (Visual Odometry):僅有視覺輸入的姿態估計[4];

●  後端最佳化 (Optimization): 後端接受不同時刻視覺里程計測量的相機位姿,以及閉環檢測的資訊,對它們進行最佳化,得到全域性一致的軌跡和地圖[5];

●  閉環檢測 (Loop Closing): 指機器人在地圖構建過程中, 透過視覺等感測器資訊檢測是否發生了軌跡閉環, 即判斷自身是否進入歷史同一地點[6];

●  建圖 (Mapping): 根據估計的軌跡,建立與任務要求對應的地圖[5]。

根據生成方法的不同,SLAM可以分成兩大類:間接方法和直接方法。下面依次介紹這兩種方法。

間接法及其典型系統

間接法首先對測量資料進行預處理來產生中間層,透過稀疏的特徵點提取和匹配來實現的,也可以採用稠密規則的光流,或者提取直線或曲線特徵來實現。然後計算出地圖點座標或光流向量等幾何量,因此間接法最佳化的是幾何誤差:

視覺SLAM技術綜述

其中 ui 為 Ik-1 中任意畫素點,它投影到空間點的座標為 Pi, u′i是 Pi 投影到 Ik 上的座標。之後利用中間層的數值來估計周圍環境的三維模型和相機運動。

視覺SLAM技術綜述

圖 3 間接法示意圖[3]

MonoSLAM

MonoSLAM 是第一個實時的單目視覺 SLAM 系統[7]。 MonoSLAM 以EKF(擴充套件卡爾曼濾波)為後端,追蹤前端稀疏的特徵點,以相機的當前狀態和所有路標點為狀態量,更新其均值和協方差。在 EKF 中,每個特徵點的位置服從高斯分佈,可以用一個橢球表示它的均值和不確定性,它們在某個方向上越長,說明在該方向上越不穩定。 該方法的缺點:場景窄、路標數有限、稀疏特徵點易丟失等。

視覺SLAM技術綜述

圖 4 MonoSLAM效果圖[7]

PTAM

PTAM[8]提出並實現了跟蹤和建圖的並行化,首次區分出前後端 (跟蹤需要實時響應影像資料,地圖最佳化放在後端進行),後續許多視覺SLAM 系統設計也採取了類似的方法。PTAM 是第一個使用非線性最佳化作為後端的方案,而不是濾波器的後端方案。提出了關鍵幀 (keyframes)機制,即不用精細處理每一幅影像,而是把幾個關鍵影像串起來最佳化其軌跡和地圖。該方法的缺點是:場景小、跟蹤容易丟失。

視覺SLAM技術綜述

 圖 5 PTAM效果圖(圖片來源於文獻[8])

ORB-SLAM (ORB_SLAM2)

ORB-SLAM[9]圍繞ORB 特徵計算,包括視覺里程計與迴環檢測的 ORB字典。ORB 特徵計算效率比 SIFT 或 SURF 高,又具有良好的旋轉和縮放不變性。ORB-SLAM 創新地使用了三個執行緒完成 SLAM,三個執行緒是:實時跟蹤特徵點的Tracking執行緒,區域性 Bundle Adjustment 的最佳化執行緒和全域性 Pose Graph 的迴環檢測與最佳化執行緒。該方法的缺點:每幅影像都計算一遍 ORB 特徵非常耗時,三執行緒結構給 CPU帶來了較重負擔。稀疏特徵點地圖只能滿足定位需求,無法提供導航、避障等功能。

視覺SLAM技術綜述

圖 6 ORB-SLAM三執行緒流程圖[9]

ORB-SLAM2[10]基於單目的 ORB-SLAM 做了如下貢獻:第一個用於單目、雙目和 RGB-D 的開源 SLAM 系統,包括閉環,重定位和地圖重用; RGB-D 結果顯示,透過使用 bundle adjustment,比基於迭代最近點(ICP) 或者光度和深度誤差最小化的最先進方法獲得更高的精度; 透過使用近距離和遠距離的立體點和單目觀察結果,立體效果比最先進的直接立體 SLAM 更準確; 輕量級的本地化模式,當建圖不可用時,可以有效地重新使用地圖。

直接法及其典型系統

直接法跳過預處理步驟直接使用實際感測器測量值,例如在特定時間內從某個方向接收的光,如下圖所示。在被動視覺的情況下,由於相機提供光度測量,因此直接法最佳化的是光度誤差:


視覺SLAM技術綜述

視覺SLAM技術綜述


視覺SLAM技術綜述

圖 7 直接法示意圖[3]

DTAM

DTAM[11]是單目 VSLAM 系統, 是一種直接稠密的方法,透過最小化全域性空間規範能量函式來計算關鍵幀構建稠密深度圖,而相機的位姿則使用深度地圖透過直接影像匹配來計算得到。對特徵缺失、 影像模糊有很好的魯棒性。該方法的缺點是:計算量非常大,需要 GPU 平行計算。 DTAM 假設光度恆定,對全域性照明處理不夠魯棒。

LSD-SLAM

LSD-SLAM[12]建了一個大尺度直接單目 SLAM 的框架,提出了一種用來直接估計關鍵幀之間相似變換、尺度感知的影像匹配演算法,在CPU上實現了半稠密場景的重建。該方法的缺點:對相機內參敏感和曝光敏感,相機快速運動時容易丟失,依然需要特徵點進行迴環檢測。

視覺SLAM技術綜述

圖 8 LSD-SLAM流程圖[12]

SVO

SVO[13](Semi-direct Visual Odoemtry) 是一種半直接法的視覺里程計,它是特徵點和直接法的混合使用:跟蹤了一些角點,然後像直接法那樣,根據關鍵點周圍資訊估計相機運動及位置。由於不需要計算大量描述子,因此速度極快,在消費級膝上型電腦上可以達到每秒 300 幀,在無人機上可以達到每秒 55 幀。該方法的缺點是:捨棄了後端最佳化和迴環檢測,位姿估計存在累積誤差,丟失後重定位困難。

視覺SLAM技術綜述

 圖 9 SVO效果示意圖[13]

DSO

DSO[14](Direct Sparse Odometry) 是基於高度精確的稀疏直接結構和運動公式的視覺里程計的方法。不考慮幾何先驗資訊,能夠直接最佳化光度誤差。並且考慮了光度標定模型,其最佳化範圍不是所有幀,而是由最近幀及其前幾幀形成的滑動視窗,並且保持這個視窗有 7 個關鍵幀。DSO 中除了完善直接法位姿估計的誤差模型外,還加入了仿射亮度變換、 光度標定、 深度最佳化等。該方法沒有迴環檢測。

視覺SLAM技術綜述

圖 10 DSO效果示意圖[14]

基於深度學習的SLAM

傳統的視覺SLAM在環境的適應性方面依然存在瓶頸,深度學習有望在這方面發揮較大的作用。目前,深度學習已經在語義地圖、重定位、迴環檢測、特徵點提取與匹配以及端到端的視覺里程計等問題上有了相關工作,下面列舉一些典型成果:

●CNN-SLAM[17]在LSD-SLAM[12]基礎上將深度估計以及影像匹配改為基於卷積神經網路的方法,並且可以融合語義資訊,得到了較魯棒的效果;

● 劍橋大學開發的PoseNet[18],是在GoogleNet[19]的基礎上將6自由度位姿作為迴歸問題進行的網路改進,可以利用單張圖片得到對應的相機位姿;

● 《視覺SLAM十四講》[5]一書的作者高翔,利用深度神經網路而不是常見的視覺特徵來學習原始資料的特徵,實現了基於深度網路的迴環檢測[20];

●  LIFT[21]利用深度神經網路學習影像中的特徵點,相比於SIFT[22]匹配度更高,其流程圖如下圖所示:

視覺SLAM技術綜述

圖 11 LIFT流程圖[21]

LIFT(Learned Invariant Feature Transform)由三個部分組成:Detector,Orientation Estimator和Descriptor。每一個部分都基於CNN實現,作者用Spatial Transformers將它們聯絡起來,並用soft argmax函式替代了傳統的非區域性最大值抑制,保證了端到端的可微性。

視覺SLAM技術綜述

圖 12 四分支孿生訓練網路架構[21]

孿生訓練架構(Siamese Network)包含四個分支,其中P1和P2對應同一個點的不同視角,作為訓練Descriptor的正樣本,P3代表不同的3D點,作為Descriptor的負樣本;P4不包含特徵點,僅作為訓練Detector的負樣本。由大P,Detector,softargmax和Spatial Transformer layer Crop共同得到的小p反饋到Orientation Estimator,Orientation Estimator和Spatial Transformer layer Rot提供pθ 給Descriptor,得到最終的描述向量d。作者給出了LIFT與SIFT特徵匹配的效果對比。

視覺SLAM技術綜述

圖 13 LIFT與SIFT特徵匹配對比[21]

特徵匹配對比圖中左列為SIFT匹配結果,右列為LIFT。綠色線條代表正確匹配,紅色圓圈代表描述子區域,可以看到,LIFT得到了比SIFT更稠密的匹配效果。

UnDeepVO[23]能夠透過使用深度神經網路估計單目相機的6自由度位姿及其視野內的深度,整體系統框架概圖見下圖。

視覺SLAM技術綜述

圖 14 UnDeepVO系統框架概圖[23]

UnDeepVO有兩個顯著的特點:一個是採用了無監督深度學習機制,另一個是能夠恢復絕對尺度。UnDeepVO在訓練過程中使用雙目影像恢復尺度,但是在測試過程中只使用連續的單目影像。該文的主要貢獻包括以下幾點:

1.透過空間和時間幾何約束,用無監督的方式恢復了單目視覺里程計的絕對尺度;

2.利用訓練過程中的雙目影像對,不僅估計了姿態還估計了稠密的帶有絕對尺度的深度圖;

3.在KITTI資料集上評價了該系統, UnDeepVO對於單目相機有良好的位姿估計結果。

UnDeepVO由位姿估計和深度估計構成,兩個估計系統均把單目連續影像作為輸入,分別以帶有尺度的6自由度位姿和深度作為輸出。對於位姿估計器,它是基於VGG的 CNN架構。 它把兩個連續的單目影像作為輸入,並預測它們之間的6自由度變換。 由於旋轉(由尤拉角表示)具有高非線性,因此與平移相比通常難以訓練。 在有監督訓練中,一種常用的方法是將旋轉損失作為一種歸一化方式給予更大的權重。 為了使用無監督學習更好地訓練旋轉,作者在最後一個卷積層之後用兩組獨立的全連線層解耦平移和旋轉。 這使得作者能夠引入一個權重來標準化旋轉和平移的預測,以獲得更好的效能。對於深度估計器,它基於encoder-decoder結構來生成稠密的深度圖。 與其他深度估計方法不同的是,該方法從網路中產生視差影像(深度的倒數),UnDeepVO的深度估計器可以直接預測深度圖,以這種方式訓練整個系統更容易收斂。系統結構圖如下圖所示。

視覺SLAM技術綜述

圖 15 網路結構圖[23]

總結

本文介紹了基於傳統演算法和深度學習的代表性SLAM方法。當前的 SLAM 演算法在複雜的機器人運動和環境中很容易失效 (例如:機器人的快速運動, 高度動態性的環境),通常不能面對嚴格的效能要求,例如,用於快速閉環控制的高速率估計。大多數的SLAM沒有自由主動地收集資料,行動方案不夠高效,並且,目前 vSLAM 方案中所採用的影像特徵的語義級別太低,造成特徵的可區別性太弱[15]。因此,今後的視覺SLAM將向著主動SLAM、語義SLAM以及與其它感測器(例如IMU)融合的方向發展。

參考文獻

[1] Durrant-Whyte, H, and Bailey, Tim. ”Simultaneous Localization and Mapping: Part I.” IEEE Robotics & Amp Amp Automation Magazine 13.2(2006):99 - 110.

[2] Fuentes-Pacheco, Jorge, J. Ruiz-Ascencio, and J. M. Rendón-Mancha. ”Visual simultaneous localization and mapping: a survey.” Artifcial Intelligence Review 43.1(2015):55-81.

[3] 陳常, 朱華, 由韶澤. 基於視覺的同時定位與地圖構建的研究進展 [J/OL]. 計算機應用研究,2018,(03):1-9(2017-08-18).

[4] Nister, D, O. Naroditsky, and J. Bergen. ”Visual odometry.” Computer Vision and Pattern Recognition, 2004. CVPR 2004. Proceedings of the 2004 IEEE Computer Society Conference on IEEE, 2004:I-652-I-659 Vol.1.

[5] 高翔. 視覺 SLAM 十四講 [M]. 北京: 電子工業出版社, 2017.

[6] 趙洋等. ” 基於深度學習的視覺 SLAM 綜述.” 機器人 39.6(2017):889-896.

[7] Davison, Andrew J., et al. ”MonoSLAM: Real-time single camera SLAM.” IEEE transactions on pattern analysis and machine intelligence 29.6 (2007): 1052-1067.

[8] Klein, Georg, and David Murray. ”Parallel tracking and mapping for small AR workspaces.” Mixed and Augmented Reality, 2007. ISMAR 2007. 6th IEEE and ACM International Symposium on. IEEE, 2007.

[9] Mur-Artal, Raúl, J. M. M. Montiel, and J. D. Tardós. ”ORB-SLAM: A Versatile and Accurate Monocular SLAM System.” IEEE Transactions on Robotics 31.5(2015):1147-1163.

[10] Mur-Artal, Raul, and Juan D. Tardós. ”Orb-slam2: An open-source slam system for monocular, stereo, and rgb-d cameras.” IEEE Transactions on Robotics 33.5 (2017): 1255-1262.

[11] Newcombe, Richard A, S. J. Lovegrove, and A. J. Davison. ”DTAM: Dense tracking and mapping in real-time.” International Conference on Computer Vision IEEE Computer Society, 2011:2320-2327.

[12] Engel, Jakob, T. Schöps, and D. Cremers. ”LSD-SLAM: Large-Scale Direct Monocular SLAM.” 8690(2014):834-849.

[13] Forster, Christian, M. Pizzoli, and D. Scaramuzza. ”SVO: Fast semi-direct monocular visual odometry.” IEEE International Conference on Robotics and Automation IEEE, 2014:15-22.

[14] Engel, Jakob, V. Koltun, and D. Cremers. ”Direct Sparse Odometry.” IEEE Transactions on Pattern Analysis & Machine Intelligence PP.99(2016):1-1.

[15] Cadena, Cesar, et al. ”Past, Present, and Future of Simultaneous Localization and Mapping:Toward the Robust-Perception Age.” IEEE Transactions on Robotics 32.6(2016):1309-1332.

[16] 呂霖華. 基於視覺的即時定位與地圖重建(V-SLAM)綜述[J]. 中國戰略新興產業, 2017(4).

[17] Tateno K, Tombari F, Laina I, et al. CNN-SLAM: Real-time dense monocular SLAM with learned depth prediction[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2017, 2.

[18] Kendall A, Grimes M, Cipolla R. Posenet: A convolutional network for real-time 6-dof camera relocalization[C]//Proceedings of the IEEE international conference on computer vision. 2015: 2938-2946.

[19] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 1-9.

[20] Gao X, Zhang T. Loop closure detection for visual slam systems using deep neural networks[C]//Control Conference (CCC), 2015 34th Chinese. IEEE, 2015: 5851-5856.

[21] Yi K M, Trulls E, Lepetit V, et al. Lift: Learned invariant feature transform[C]//European Conference on Computer Vision. Springer, Cham, 2016: 467-483.

[22] Lowe D G. Distinctive image features from scale-invariant keypoints[J]. International journal of computer vision, 2004, 60(2): 91-110.

[23] Li R, Wang S, Long Z, et al. Undeepvo: Monocular visual odometry through unsupervised deep learning[C]//2018 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2018: 7286-7291.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31562045/viewspace-2331185/,如需轉載,請註明出處,否則將追究法律責任。

相關文章