劉家豪 劉志杰 劉 嵩
(貴州師范大學貴州省信息與計算科學重點實驗室, 貴陽 550001)
SLAM(Simultaneous Localization and Mapping)中文譯作“同步定位與地圖構建”[1],它是機器人實現(xiàn)自主移動以及精準定位的關鍵所在。SLAM主要研究解決“定位問題”和“未知環(huán)境的構圖問題”。視覺SLAM即機器人將相機作為傳感器獲取外部環(huán)境信息,將采集的圖像作為參考,求解相機的運動、更新環(huán)境模型[2]。在經(jīng)典視覺SLAM框架中,后端優(yōu)化的初始值來源于視覺前端視覺里程計提供的相機運動估計值以及局部地圖模型。根據(jù)特征提取的必要性,特征點法以及基于像素信息的直接法都能用于視覺里程計的實現(xiàn)。在基于RGB-D傳感器的視覺里程計算法中,特征點提取算法常用的有:尺度不變特征變換SIFT(Scale Invariant Feature Transform)[3]、加速健壯特征SURF(Speed Up Robust Feature)[4]、ORB(Oriented Fast and Rotated BRIEF)[5]等等。相對于直接法來說,特征點法的解決方案更成熟,其一直以來被視為視覺里程計的主流方法。得益于在一些開源項目中的使用,例如SVO[6]、LSD-SLAM[7]等等,基于像素信息的直接法逐漸在視覺里程計算法中扮演著越來越重要的角色。
本次研究采用了ORB特征提取算法。相對于SIFT特征以及SURF特征,ORB特征能有效解決FAST關鍵點[8]不具有方向性限制的問題。二進制描述子BRIEF[9]加入后,用漢明距離(Hamming Distance)對其進行度量,不僅能得到準確的匹配點對,還能使整個圖像特征提取過程節(jié)約大量的時間。對于實時圖像特征來說,ORB特征提取算法非常具有代表性。本次采用半稠密(Semi-Dense)的直接法,不考慮像素梯度變化小的像素點,只提取像素梯度明顯的像素點。通過2組具體實驗,比較了這2種方法在視覺特征豐富和視覺特征缺乏環(huán)境中的實時性、精確性以及魯棒性。
本次選取的圖像數(shù)據(jù)均來自慕尼黑工業(yè)大學(TUM)提供的公開RGB-D數(shù)據(jù)集。數(shù)據(jù)集中不僅包括了圖像顏色及深度信息,還提供了用于運動捕捉系統(tǒng)測量的精確軌跡,該數(shù)據(jù)集可以作為RGB-D的實驗數(shù)據(jù)。在“freiburg1_desk2”和“freiburg3_nostructure_notexture_near_withloop”數(shù)據(jù)集中各選2幀圖像,分別對應視覺特征豐富和視覺特征缺乏的環(huán)境。
1.2.1 算法流程
基于特征點法的RGB-D視覺里程計估計算法流程如圖1所示。
1.2.2 提取與匹配特征點
本次采用的ORB特征包括“Oriented Fast”關鍵點和二進制描述子BREIF(Binary Robust Independent Elementary Feature)。
圖1 基于特征點法的RGB-D視覺里程計估計算法流程
(1) Fast關鍵點提取。Fast關鍵點速度方面的優(yōu)勢在于只涉及像素亮度差異的比較,但提取出的特征點數(shù)量很大,具有不確定性,且沒有方向信息。ORB特征不僅計算了特征點的主方向,同時在構建圖像金字塔的基礎上實現(xiàn)了尺度不變性,在灰度質(zhì)心法(Intensity Centroid)的基礎上添加了特征的旋轉(zhuǎn)屬性,由此產(chǎn)生了“Oriented Fast”。
(2) BRIEF描述子匹配。BRIEF是一種識別率很好的二進制特征描述子,效率高,適用于實時圖像匹配。它使用的是隨機選點的比較,用1和0分別描述了關鍵點附近某2個像素的大小關系。BREIF的N維描述向量的基本元素為0和1。
1.2.3 篩選匹配點對
描述子的距離表示了2個特征之間的相似程度。歐式距離用于度量浮點型的描述子,不適用于二進制的BREIF描述子。本次選用漢明距離(Hamming Distance)對BREIF描述子進行度量。漢明距離表示2個二進制字符串之間的不同位數(shù)的個數(shù)。在篩選過程中找出所有匹配間的最小和最大距離,其篩選依據(jù)是漢明距離小于最小距離的2倍。當大于2倍最小距離時,認為匹配是錯誤的。最小距離在程序中設置為30。
1.2.4 求得相機位姿
圖由頂點以及連接頂點的邊組成,圖優(yōu)化就是把優(yōu)化問題表現(xiàn)成圖的一種方式。在本次構建的圖模型中,圖模型的頂點和邊分別用優(yōu)化變量以及誤差項表示,然后選擇優(yōu)化算法,最后調(diào)用g2o[10]進行優(yōu)化,得到結果。TUM數(shù)據(jù)集中包括了圖像顏色及深度信息。匹配過程中2組3D空間點之間的變換不用考慮相機模型。用基于圖優(yōu)化的非線性優(yōu)化方法直接求解迭代最近點ICP(Iterative Closest Point),得到相機位姿。
1.3.1 算法流程
基于直接法的RGB-D視覺里程計估計算法流程如圖2所示。
圖2 基于直接法的RGB-D視覺里程計估計算法流程
1.3.2 提取梯度明顯的像素
基于灰度不變假設的條件下,利用直接法構造一個“最小化不同圖像中同一個像素的光度誤差”的優(yōu)化問題來求解相機位姿。本次采用半稠密的直接法,即在像素的提取過程中,不考慮像素梯度變化小的像素點,只提取像素梯度明顯的像素點。
1.3.3 構建圖優(yōu)化模型并求取相機位姿
半稠密直接法的求解可以抽象成求解最小化像素的光度誤差的圖優(yōu)化問題,用g2o優(yōu)化庫來幫助求解。
(1) 硬件環(huán)境:Intel酷睿I7 6700四核;主頻3.4 GHz的處理器;內(nèi)存16 GB的PC機。
(2) 軟件環(huán)境:Ubuntu14.04系統(tǒng),安裝了OpenCV和g2o等數(shù)據(jù)庫。
2.2.1 基于特征點法的實驗結果
(1) “freiburg1_desk2”數(shù)據(jù)集2幀圖像的實驗結果,見圖3 — 圖5。
第1幀和第2幀特征點數(shù)分別為208、215,優(yōu)化時間為0.000 811 s,優(yōu)化后的變化矩陣
(2) “freiburg3_nostructure_notexture_near_withloop”數(shù)據(jù)集2幀圖像的實驗結果,見圖6 — 圖8。
第1幀和第2幀特征點數(shù)分別為13、1,優(yōu)化時間為0.000 321 s,優(yōu)化后的變化矩陣
2.2.2 基于半稠密直接法的實驗結果
(1) “freiburg1_desk2”數(shù)據(jù)集2幀圖像的實驗結果,見圖9。
數(shù)據(jù)集圖像中邊的數(shù)量為12 556,優(yōu)化所用的時間約為0.103 616 s,優(yōu)化后的變化矩陣
(2) “freiburg3_nostructure_notexture_near_withloop”數(shù)據(jù)集2幀圖像的實驗結果,見圖10。
數(shù)據(jù)集圖像中邊的數(shù)量為28,優(yōu)化時間約為0.001 154 s,優(yōu)化后的變化矩陣
圖3 “freiburg1_desk2”數(shù)據(jù)集2幀圖像的Fast關鍵點提取
圖4 “freiburg1_desk2”數(shù)據(jù)集2幀圖像的特征匹配結果
圖5 “freiburg1_desk2”數(shù)據(jù)集2幀圖像篩選后的匹配結果
圖6 “freiburg3_nostructure_notexture_near_withloop”數(shù)據(jù)集2幀圖像的Fast關鍵點提取
圖7 “freiburg3_nostructure_notexture_near_withloop”數(shù)據(jù)集2幀圖像的特征匹配結果
圖8 “freiburg3_nostructure_notexture_near_withloop”數(shù)據(jù)集2幀圖像篩選后的匹配結果
圖9 利用半稠密直接法對“freiburg1_desk2”數(shù)據(jù)集2幀圖像構造邊
圖10 利用半稠密直接法對“freiburg3_nostructure_notexture_near_withloop”數(shù)據(jù)集2幀圖像構造邊
(1) 篩選匹配點對分析。比較圖4和圖5可知:在基于ORB特征點法篩選匹配點對的過程中,采用漢明距離對BREIF描述子進行度量后,能高效地篩選出錯誤的匹配點對,得到了準確的結果。
(2) 實時性分析。從優(yōu)化時間可知:在視覺特征豐富的環(huán)境中,對于同樣2幀圖像,基于ORB的特征點法優(yōu)化算法花費時間為0.000 811 s,滿足視覺SLAM實時性的要求;基于半稠密直接法的優(yōu)化算法花費時間為0.103 616 s,不能滿足視覺SLAM實時性的要求。對于視覺特征缺乏的環(huán)境,具有相似的結果。
(3) 精確性分析。分別將2種方法得到的變換矩陣F與數(shù)據(jù)集中groundtruth.txt提供的外部運動捕捉系統(tǒng)采集的相機位姿相比,基于ORB的特征點法的精確性比半稠密直接法的精確性高。
(4) 魯棒性分析。由圖3 — 圖10可知:在視覺特征豐富的環(huán)境中,基于ORB的特征點法能有效地運行,但在視覺特征缺乏的環(huán)境中,不能有效地運行,甚至出現(xiàn)圖7以及圖8中匹配錯誤的結果;而半稠密直接法無論是在視覺特征豐富還是視覺特征缺乏的環(huán)境中,都擁有較強的魯棒性。
以視覺SLAM前端視覺里程計優(yōu)化算法估計相機位姿為目的入手,比較在視覺特征豐富以及視覺特征缺乏的環(huán)境中,基于ORB特征的特征點法和基于部分像素信息的半稠密直接法的實時性、精確性和魯棒性。結果表明,在視覺特征豐富的環(huán)境中,特征點法的實時性和精確性都要優(yōu)于直接法,但是在視覺特征缺乏的環(huán)境中,直接法的魯棒性更強。
[1] 劉浩敏,章國鋒,鮑虎軍.基于單目視覺的同時定位與地圖構建方法綜述[J]. 計算機輔助設計與圖形學學報,2016,28(6):855-868.
[2] DAVISON A J, REID I D, MOLTON N D,et al. Monoslam:real-time single camera SLAM[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,2007,29(6):1052-1067.
[3] LOWE D G. Distinctive image features from scale-invariant keypoints[J]. International Journal of Computer Vision,2004,60(2):91-110.
[4] BAY H, TUYTELAARS T, GOOL L V. SURF:speeded up robust features[J]. Computer Vision & Image Understanding,2006,110(3):404-417.
[5] RUBLEE E, RABAUD V, KONOLIGE K,et al. ORB:an efficient alternative to SIFT or SURF[C]∥IEEE. IEEE International Conference on Computer Vision.New Jersey USA:IEEE,2012,58(11):2564-2571.
[6] FORSTER C, PIZZOLI M, SCARAMUZZA D. SVO: Fast semi-direct monocular visual odometry[C]∥IEEE. IEEE International Conference on Robotics & Automation.New Jersey USA:IEEE,2014:15-22.
[7] ENGEL J, SCHOPS T, CREMERS D. LSD-SLAM:Large-scale direct monocular SLAM[C]∥ ECCV. Computer Vision ECCV 2014.Berlin German:Springer International Publishing,2014:834-849.
[8] ROSTEN E, DRUMMOND T. Machine learning for high-speed corner detection[C]∥ECCV. European Conference on Computer Vision. Berlin German:Springer,2006:430-443.
[9] CALONDER M, LEPETIT V, STRECHA C, et al. BRIEF: Binary Robust Independent Elementary Features[C]∥ECCV. European Conference on Computer Vision.Berlin German:Springer-Verlag,2010:778-792.
[10] KUMMERLE R, GRISETTI G, STRASDAT H,et al. G2o:a general framework for graph optimization[C]∥IEEE. IEEE International Conference on Robotics and Automation. New Jersey USA:IEEE,2011:3607-3613.
[11] 張洋,呂強,林輝燦,等.一種基于改進ORB的視覺SLAM圖像匹配算法[J].裝甲兵工程學院學報,2016,30(6):82-88.
[12] 徐曉蘇,代維,楊博,等.室內(nèi)環(huán)境下基于圖優(yōu)化的視覺慣性SLAM方法[J].中國慣性技術學報,2017,25(3):313-319.
[13] 權美香,樸松昊,李國.視覺SLAM綜述[J].智能系統(tǒng)學報,2016,11(6):768-776.