


摘 ?要:隨著智能時代的到來,視覺機器人在自然場景中會遇到行人位姿變化、障礙物遮擋等復雜環境,使特征點誤匹配。文章先對Mask R-CNN算法應用于動態環境下的SLAM中進行研究。通過深度神經網絡優化SLAM視覺前端,使得神經網絡能夠對動態物體進行檢測并能在很大程度上識別動態特征點,減少了特征點的誤匹配,提高了相機位姿估計的準確性。最后與ORB-SLAM2進行仿真對比,結果表明,該文算法和ORB-SLAM2算法相比精度提高了96%以上,能夠明顯的提高SLAM算法匹配的正確率。
關鍵詞:Mask R-CNN;動態環境;特征點匹配;視覺SLAM
中圖分類號:TP391.41;TP242 ? ? 文獻標識碼:A 文章編號:2096-4706(2020)21-0080-04
Research on ORB-SLAM Based on Mask R-CNN in Dynamic Environment
WANG Weiliang
(Shenyang Jianzhu University,Shenyang ?110168,China)
Abstract:With the advent of the intelligent era,visual robots will encounter complex environments such as pedestrian pose change and obstacles occlusion in natural scenes,which makes feature points mismatched. The article first studies the Mask R-CNN algorithm applied to SLAM in a dynamic environment. The SLAM vision front end is optimized by the deep neural network,so that the neural network can detect dynamic objects and identify dynamic feature points to a large extent,reduce the mismatch of feature points,and improve the accuracy of camera pose estimation. Finally,a simulation comparison with ORB-SLAM2 shows that the accuracy of this algorithm is improved by more than 96% compared with ORB-SLAM2,which can significantly improve the accuracy of SLAM algorithm matching.
Keywords:Mask R-CNN;dynamic environment;feature point matching;visual SLAM
0 ?引 ?言
近幾年,以機器學習、深度學習為代表的人工智能技術逐漸變得越來越普及。從家用掃地機器人到無人自動駕駛技術的成熟發展,大家已經越來越依賴機器人視覺導航科技帶給我們的便利。這些技術的成熟運用離不開人工智能技術與SLAM技術的長期研究,特別是最近這幾年,得益于數據的增多、計算能力的增強、學習算法的成熟以及應用場景的豐富,越來越多的人開始關注深度學習與SLAM結合的問題。但目前視覺SLAM在動態環境下還未形成統一成熟方案,現在依然處于各個算法錯綜復雜,因此研究在語義環境下SLAM算法有著很大的意義。
本文來源于課題“基于環境感知的室內移動機器人定位與導航關鍵技術研究”,是沈陽自動化研究所是SLAM定位機器人的子課題,應用于工業或家用機器人的算法優化方面,對于整個機器人學研究有著重要的意義。
同步定位與建圖(Simultaneous Localization And Mapping,SLAM)技術是實現視覺機器人自主導航的一項關鍵性技術,視覺SLAM是使用相機作為傳感器進行實時定位和繪制地圖的一種重要方法。隨著現有技術性能的不斷提高,視覺SLAM算法在視覺算法上也取得了長足的進步,無論是無人駕駛還是家用智能機器人,視覺SLAM技術均成為研究的熱點。當下視覺SLAM的主要研究方向偏向于靜態場景下的定位與建圖,對于動態環境下的視覺SLAM研究還沒有形成成熟可靠的方案,并且大部分動態環境下視覺SLAM的準確率較差且運行實時效率較低。
在動態背景環境下,用深度學習算法基于目標環境檢測主要有兩個大類,分別為:
(1)基于神經網絡候選區上,分為兩個步驟進行檢測的算法,例如:區域卷積神經網絡(Regions with CNN features,R-CNN)、Fast R-CNN等算法。
(2)基于端到端,只需一個階段就能完成檢測的算法,如:YOLO、YOLOv3等。
本文使用Mask R-CNN算法進行動態物體的像素進行分割。Mask R-CNN是在R-CNN系列目標檢測模型框架下進行改進的。與Fast R-CNN算法相比,Mask R-CNN用ROI Align替代了ROI Pooling,并增加了全卷積網絡來產生對應分支:分類預測(class)和分割掩碼(mask)的分支。Mask R-CNN對于每個class類別都一一對應一個mask類別,避免了相同類別間的模塊競爭,使算法的檢測性能有了明顯的提升。因此進一步提高了算法的性能與速度。
本文采用ORB-SLAM算法進行特征點提取并在視覺前端部分做出了改進,增加了在動態環境下物體識別的分支任務,利用Mask R-CNN算法將環境中移動人員進行識別,并使用神經網絡對動態物體進行檢測與剔除,使得SLAM算法能夠處理室內動態場景。最后通過與ORB-SLAM2對比驗證本文算法的精確性與時效性。
1 ?基于Mask R-CNN動態物體檢測
1.1 ?Mask R-CNN算法
R-CNN是最先運用于目標檢測的一種神經網絡算法。R-CNN算法首先對輸入數據選擇若干個提議區域并對其類目判定和邊界框分別進行有效標注;其次,用卷積神經網絡模型對每一個提議區前反饋計算選擇特征;最后,再與識別庫中類別進行類目對比和對邊界框劃定。Mask R-CNN在R-CNN系列目標檢測模型框架下進行改進,如圖1所示。Mask R-CNN算法用ROI Align代替了原有的ROI Pooling,同步對分割掩碼的分支進行了有效補充。Mask R-CNN網絡模型是由輸入數據生成其對應的候選區域。開始基礎的特征提取網絡,Mask R-CNN采用殘差網絡(ResNet)和特征金字塔網絡(Feature Pyramid Networks,FPN)的組合的方式對輸入數據的特征進行提取,輸出經過候選區域網絡RPN判斷背景進行二值分類并生成候選框,同時生成的候選框通過RoI Align輸出與特征圖中的像素一一對應,之后的一個分支用于分目的判斷和反饋回歸,另一個分支分割生成mask。
Mask R-CNN定義了一個多任務的損失函數:
L=Lcls+Lbox+Lmask
其中,Lcls和Lbox為分類誤差和檢測誤差,計算公式為:
Lmask為分割分支的損失,輸入mask分支的每個特征圖經過一系列卷積操作后輸出特征圖,Ncls為每維度分類誤差,Nreg為每個維度二值交叉熵函數,pi、pi*為特征圖維度類別,λ為維度系數,ti、ti*為像素值,Lreg為平均二值交叉熵函數,該函數會對每一個像素進行分類,判斷是否為此類別。本文算法流程圖如圖2所示。
R-CNN具體算法步驟為:
(1)首先將卷積層變換卷積神經網絡的輸出進行輸出,輸出的通道數記為c,得到一個長度為c的新特征。
(2)以特征圖每個單元為中心,標注每個單元不同大小和畫面比的錨框。
(3)用錨框中心單元長度為c的特征函數分別預測該錨框的二元類目和邊界框的范圍。
(4)用非極大值抑制原理,從預測類別為目標的預測邊界中剔除相似的特征值。最后輸出的預測邊界框即興趣區域池化層所需要的提議區域。
1.2 ?動態特征點的判別
本文采用五個相鄰幀去判斷特征點是否為移動目標。對于一個新到的幀,選擇和它重疊區域最大的先前特征點,數目為五是為了考慮了計算成本和精度。
計算先前幀的所有特征點到當前幀的對應點和投影深度,并計算對應點和3D點之間的視差角,如果這個角度大于30度,則認為這個點“堵塞了”,選擇放棄。因為當這個角度大于30度后,視角的不同會導致一些靜態目標被誤認為是動態目標。動態環境下識別的特征點與動態特征點軌跡如圖3所示。
計算當前點對應投影深度和(RGB-D相機對應的深度)之間的重投影誤差,當這個誤差大于門限值時(0.4 m),則認為這個點是動態點,從而找出動態目標區域。從動態特征點開始在深度圖中進行區域增長,比較動態點和鄰居點之間的深度差,如果不超過門限(0.2 m),就認為屬于同一個幾何動態區域,將這兩種結果融合最終得到動態目標區域。識別的動態區域為實驗員的座椅和手中的書本。
2 ?實驗與分析
為了驗證本文算法的性能,在公開數據集進行了兩組數據集的對比實驗。實驗的操作系統為Ubuntu16.04,CPU為i5-7300HQ,8 GB內存。SLAM系統主要用C++和Python編程語言進行編寫,配置的環境主要有SciPy、OpenCV2.4.11、Tensorflow1.12.3、Keras2.0.9等。
本實驗使用德國TUM大學的Computer Vison小組提供的公開視頻數據資源作為數據集。因為本文研究的是動態環境下視覺SLAM,所以選用了rgbd_dataset_freiburg3_long_office_household、freiburg3_walking_xyz具有大量運動篇幅的數據集,如圖4所示。
為了對本文視覺SLAM精度進行準確的評估,本文將絕對軌跡誤差(Absolute Trajectory Error,ATE)作為參照依據。絕對軌跡誤差表示真實軌跡點坐標與SLAM系統定位點坐標的誤差,用兩者的軌跡誤差均方根進行計算:
其中, 為SLAM系統估計的某個相機位姿,xi為對應的真實坐標位姿,n為坐標位姿采集次數。
本文在兩組公開數據集下進行了實驗,本文算法視覺SLAM和ORB-SLAM2進行對比實驗。圖中內側黑色線條軌跡表示視覺相機的真實軌跡位姿,外側虛線線條軌跡表示為SLAM算法估計得到的相機軌跡位姿,中間區域表示同一時間相機估計位姿與真實位姿之間的位姿誤差距離,可以得出延伸越長以及扇形灰色區域越大表示誤差越大,位姿估計的準確性越低。最后通過計算ATE來評估系統,實驗結果為:
數據集1:freiburg3_long_office_household如圖5所示。
數據集2:freiburg3_walking_xyz如圖6所示。
將實驗得到的ATE進行匯總,如表1、表2所示。
3 ?結 ?論
本文將Mask R-CNN深度學習網絡應用于動態環境下的視覺SLAM中。通過深度神經網絡優化視覺前端,使用深度學習算法進行動態物體識別,并能在很大程度上剔除動態特征點以及動態區域中包含的特征點,減少了特征點的誤匹配;最后通過仿真對比試驗表1、2得出,本文算法與ORB-SLAM2算法相比精度提高了96%以上,執行速度和原有的ORB-SLAM2算法執行速度基本相差不大,精度的提升完全沒有影響到本文算法的執行速度。表明了本文SLAM算法在動態場景下能夠具有較大優勢,定位的準確度更高。
參考文獻:
[1] 張文.基于多傳感器融合的室內機器人自主導航方法研究 [D].合肥:中國科學技術大學,2017.
[2] GRISETTI G,STACHNISS C,BURGARD W. Improved Techniques for Grid Mapping With Rao-Blackwellized Particle Filters [J].IEEE Transactions on Robotics,2007,23(1):34-46.
[3] 石杏喜,趙春霞,郭劍輝.基于PF/CUKF/EKF的移動機器人SLAM框架算法 [J].電子學報,2009,37(8):1865-1868.
[4] 劉雅彬,陳萬米.融合激光與視覺信息的自主移動機器人的SLAM研究 [J].工業控制計算機,2015,28(9):70-72+74.
[5] 侯榮波,魏武,黃婷,等.基于ORB-SLAM的室內機器人定位和三維稠密地圖構建 [J].計算機應用,2017,37(5):1439-1444.
[6] SIMONYAN K,ZISSERMAN A. Two-stream convolutional networks for action recognition in videos [C]//Proceedings of the 27th International Conference on Neural Information Processing Systems.Cambridge:MIT Press,2014:568-576.
作者簡介:王偉良(1995.06—),男,漢族,遼寧沈陽人,研究生在讀,研究方向:移動機器人控制技術。