摘 ?要:隨著智能時(shí)代的到來(lái),視覺(jué)機(jī)器人在自然場(chǎng)景中會(huì)遇到行人位姿變化、障礙物遮擋等復(fù)雜環(huán)境,使特征點(diǎn)誤匹配。文章先對(duì)Mask R-CNN算法應(yīng)用于動(dòng)態(tài)環(huán)境下的SLAM中進(jìn)行研究。通過(guò)深度神經(jīng)網(wǎng)絡(luò)優(yōu)化SLAM視覺(jué)前端,使得神經(jīng)網(wǎng)絡(luò)能夠?qū)?dòng)態(tài)物體進(jìn)行檢測(cè)并能在很大程度上識(shí)別動(dòng)態(tài)特征點(diǎn),減少了特征點(diǎn)的誤匹配,提高了相機(jī)位姿估計(jì)的準(zhǔn)確性。最后與ORB-SLAM2進(jìn)行仿真對(duì)比,結(jié)果表明,該文算法和ORB-SLAM2算法相比精度提高了96%以上,能夠明顯的提高SLAM算法匹配的正確率。
關(guān)鍵詞:Mask R-CNN;動(dòng)態(tài)環(huán)境;特征點(diǎn)匹配;視覺(jué)SLAM
中圖分類號(hào):TP391.41;TP242 ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):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 ?引 ?言
近幾年,以機(jī)器學(xué)習(xí)、深度學(xué)習(xí)為代表的人工智能技術(shù)逐漸變得越來(lái)越普及。從家用掃地機(jī)器人到無(wú)人自動(dòng)駕駛技術(shù)的成熟發(fā)展,大家已經(jīng)越來(lái)越依賴機(jī)器人視覺(jué)導(dǎo)航科技帶給我們的便利。這些技術(shù)的成熟運(yùn)用離不開(kāi)人工智能技術(shù)與SLAM技術(shù)的長(zhǎng)期研究,特別是最近這幾年,得益于數(shù)據(jù)的增多、計(jì)算能力的增強(qiáng)、學(xué)習(xí)算法的成熟以及應(yīng)用場(chǎng)景的豐富,越來(lái)越多的人開(kāi)始關(guān)注深度學(xué)習(xí)與SLAM結(jié)合的問(wèn)題。但目前視覺(jué)SLAM在動(dòng)態(tài)環(huán)境下還未形成統(tǒng)一成熟方案,現(xiàn)在依然處于各個(gè)算法錯(cuò)綜復(fù)雜,因此研究在語(yǔ)義環(huán)境下SLAM算法有著很大的意義。
本文來(lái)源于課題“基于環(huán)境感知的室內(nèi)移動(dòng)機(jī)器人定位與導(dǎo)航關(guān)鍵技術(shù)研究”,是沈陽(yáng)自動(dòng)化研究所是SLAM定位機(jī)器人的子課題,應(yīng)用于工業(yè)或家用機(jī)器人的算法優(yōu)化方面,對(duì)于整個(gè)機(jī)器人學(xué)研究有著重要的意義。
同步定位與建圖(Simultaneous Localization And Mapping,SLAM)技術(shù)是實(shí)現(xiàn)視覺(jué)機(jī)器人自主導(dǎo)航的一項(xiàng)關(guān)鍵性技術(shù),視覺(jué)SLAM是使用相機(jī)作為傳感器進(jìn)行實(shí)時(shí)定位和繪制地圖的一種重要方法。隨著現(xiàn)有技術(shù)性能的不斷提高,視覺(jué)SLAM算法在視覺(jué)算法上也取得了長(zhǎng)足的進(jìn)步,無(wú)論是無(wú)人駕駛還是家用智能機(jī)器人,視覺(jué)SLAM技術(shù)均成為研究的熱點(diǎn)。當(dāng)下視覺(jué)SLAM的主要研究方向偏向于靜態(tài)場(chǎng)景下的定位與建圖,對(duì)于動(dòng)態(tài)環(huán)境下的視覺(jué)SLAM研究還沒(méi)有形成成熟可靠的方案,并且大部分動(dòng)態(tài)環(huán)境下視覺(jué)SLAM的準(zhǔn)確率較差且運(yùn)行實(shí)時(shí)效率較低。
在動(dòng)態(tài)背景環(huán)境下,用深度學(xué)習(xí)算法基于目標(biāo)環(huán)境檢測(cè)主要有兩個(gè)大類,分別為:
(1)基于神經(jīng)網(wǎng)絡(luò)候選區(qū)上,分為兩個(gè)步驟進(jìn)行檢測(cè)的算法,例如:區(qū)域卷積神經(jīng)網(wǎng)絡(luò)(Regions with CNN features,R-CNN)、Fast R-CNN等算法。
(2)基于端到端,只需一個(gè)階段就能完成檢測(cè)的算法,如:YOLO、YOLOv3等。
本文使用Mask R-CNN算法進(jìn)行動(dòng)態(tài)物體的像素進(jìn)行分割。Mask R-CNN是在R-CNN系列目標(biāo)檢測(cè)模型框架下進(jìn)行改進(jìn)的。與Fast R-CNN算法相比,Mask R-CNN用ROI Align替代了ROI Pooling,并增加了全卷積網(wǎng)絡(luò)來(lái)產(chǎn)生對(duì)應(yīng)分支:分類預(yù)測(cè)(class)和分割掩碼(mask)的分支。Mask R-CNN對(duì)于每個(gè)class類別都一一對(duì)應(yīng)一個(gè)mask類別,避免了相同類別間的模塊競(jìng)爭(zhēng),使算法的檢測(cè)性能有了明顯的提升。因此進(jìn)一步提高了算法的性能與速度。
本文采用ORB-SLAM算法進(jìn)行特征點(diǎn)提取并在視覺(jué)前端部分做出了改進(jìn),增加了在動(dòng)態(tài)環(huán)境下物體識(shí)別的分支任務(wù),利用Mask R-CNN算法將環(huán)境中移動(dòng)人員進(jìn)行識(shí)別,并使用神經(jīng)網(wǎng)絡(luò)對(duì)動(dòng)態(tài)物體進(jìn)行檢測(cè)與剔除,使得SLAM算法能夠處理室內(nèi)動(dòng)態(tài)場(chǎng)景。最后通過(guò)與ORB-SLAM2對(duì)比驗(yàn)證本文算法的精確性與時(shí)效性。
1 ?基于Mask R-CNN動(dòng)態(tài)物體檢測(cè)
1.1 ?Mask R-CNN算法
R-CNN是最先運(yùn)用于目標(biāo)檢測(cè)的一種神經(jīng)網(wǎng)絡(luò)算法。R-CNN算法首先對(duì)輸入數(shù)據(jù)選擇若干個(gè)提議區(qū)域并對(duì)其類目判定和邊界框分別進(jìn)行有效標(biāo)注;其次,用卷積神經(jīng)網(wǎng)絡(luò)模型對(duì)每一個(gè)提議區(qū)前反饋計(jì)算選擇特征;最后,再與識(shí)別庫(kù)中類別進(jìn)行類目對(duì)比和對(duì)邊界框劃定。Mask R-CNN在R-CNN系列目標(biāo)檢測(cè)模型框架下進(jìn)行改進(jìn),如圖1所示。Mask R-CNN算法用ROI Align代替了原有的ROI Pooling,同步對(duì)分割掩碼的分支進(jìn)行了有效補(bǔ)充。Mask R-CNN網(wǎng)絡(luò)模型是由輸入數(shù)據(jù)生成其對(duì)應(yīng)的候選區(qū)域。開(kāi)始基礎(chǔ)的特征提取網(wǎng)絡(luò),Mask R-CNN采用殘差網(wǎng)絡(luò)(ResNet)和特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,F(xiàn)PN)的組合的方式對(duì)輸入數(shù)據(jù)的特征進(jìn)行提取,輸出經(jīng)過(guò)候選區(qū)域網(wǎng)絡(luò)RPN判斷背景進(jìn)行二值分類并生成候選框,同時(shí)生成的候選框通過(guò)RoI Align輸出與特征圖中的像素一一對(duì)應(yīng),之后的一個(gè)分支用于分目的判斷和反饋回歸,另一個(gè)分支分割生成mask。
Mask R-CNN定義了一個(gè)多任務(wù)的損失函數(shù):
L=Lcls+Lbox+Lmask
其中,Lcls和Lbox為分類誤差和檢測(cè)誤差,計(jì)算公式為:
Lmask為分割分支的損失,輸入mask分支的每個(gè)特征圖經(jīng)過(guò)一系列卷積操作后輸出特征圖,Ncls為每維度分類誤差,Nreg為每個(gè)維度二值交叉熵函數(shù),pi、pi*為特征圖維度類別,λ為維度系數(shù),ti、ti*為像素值,Lreg為平均二值交叉熵函數(shù),該函數(shù)會(huì)對(duì)每一個(gè)像素進(jìn)行分類,判斷是否為此類別。本文算法流程圖如圖2所示。
R-CNN具體算法步驟為:
(1)首先將卷積層變換卷積神經(jīng)網(wǎng)絡(luò)的輸出進(jìn)行輸出,輸出的通道數(shù)記為c,得到一個(gè)長(zhǎng)度為c的新特征。
(2)以特征圖每個(gè)單元為中心,標(biāo)注每個(gè)單元不同大小和畫面比的錨框。
(3)用錨框中心單元長(zhǎng)度為c的特征函數(shù)分別預(yù)測(cè)該錨框的二元類目和邊界框的范圍。
(4)用非極大值抑制原理,從預(yù)測(cè)類別為目標(biāo)的預(yù)測(cè)邊界中剔除相似的特征值。最后輸出的預(yù)測(cè)邊界框即興趣區(qū)域池化層所需要的提議區(qū)域。
1.2 ?動(dòng)態(tài)特征點(diǎn)的判別
本文采用五個(gè)相鄰幀去判斷特征點(diǎn)是否為移動(dòng)目標(biāo)。對(duì)于一個(gè)新到的幀,選擇和它重疊區(qū)域最大的先前特征點(diǎn),數(shù)目為五是為了考慮了計(jì)算成本和精度。
計(jì)算先前幀的所有特征點(diǎn)到當(dāng)前幀的對(duì)應(yīng)點(diǎn)和投影深度,并計(jì)算對(duì)應(yīng)點(diǎn)和3D點(diǎn)之間的視差角,如果這個(gè)角度大于30度,則認(rèn)為這個(gè)點(diǎn)“堵塞了”,選擇放棄。因?yàn)楫?dāng)這個(gè)角度大于30度后,視角的不同會(huì)導(dǎo)致一些靜態(tài)目標(biāo)被誤認(rèn)為是動(dòng)態(tài)目標(biāo)。動(dòng)態(tài)環(huán)境下識(shí)別的特征點(diǎn)與動(dòng)態(tài)特征點(diǎn)軌跡如圖3所示。
計(jì)算當(dāng)前點(diǎn)對(duì)應(yīng)投影深度和(RGB-D相機(jī)對(duì)應(yīng)的深度)之間的重投影誤差,當(dāng)這個(gè)誤差大于門限值時(shí)(0.4 m),則認(rèn)為這個(gè)點(diǎn)是動(dòng)態(tài)點(diǎn),從而找出動(dòng)態(tài)目標(biāo)區(qū)域。從動(dòng)態(tài)特征點(diǎn)開(kāi)始在深度圖中進(jìn)行區(qū)域增長(zhǎng),比較動(dòng)態(tài)點(diǎn)和鄰居點(diǎn)之間的深度差,如果不超過(guò)門限(0.2 m),就認(rèn)為屬于同一個(gè)幾何動(dòng)態(tài)區(qū)域,將這兩種結(jié)果融合最終得到動(dòng)態(tài)目標(biāo)區(qū)域。識(shí)別的動(dòng)態(tài)區(qū)域?yàn)閷?shí)驗(yàn)員的座椅和手中的書本。
2 ?實(shí)驗(yàn)與分析
為了驗(yàn)證本文算法的性能,在公開(kāi)數(shù)據(jù)集進(jìn)行了兩組數(shù)據(jù)集的對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)的操作系統(tǒng)為Ubuntu16.04,CPU為i5-7300HQ,8 GB內(nèi)存。SLAM系統(tǒng)主要用C++和Python編程語(yǔ)言進(jìn)行編寫,配置的環(huán)境主要有SciPy、OpenCV2.4.11、Tensorflow1.12.3、Keras2.0.9等。
本實(shí)驗(yàn)使用德國(guó)TUM大學(xué)的Computer Vison小組提供的公開(kāi)視頻數(shù)據(jù)資源作為數(shù)據(jù)集。因?yàn)楸疚难芯康氖莿?dòng)態(tài)環(huán)境下視覺(jué)SLAM,所以選用了rgbd_dataset_freiburg3_long_office_household、freiburg3_walking_xyz具有大量運(yùn)動(dòng)篇幅的數(shù)據(jù)集,如圖4所示。
為了對(duì)本文視覺(jué)SLAM精度進(jìn)行準(zhǔn)確的評(píng)估,本文將絕對(duì)軌跡誤差(Absolute Trajectory Error,ATE)作為參照依據(jù)。絕對(duì)軌跡誤差表示真實(shí)軌跡點(diǎn)坐標(biāo)與SLAM系統(tǒng)定位點(diǎn)坐標(biāo)的誤差,用兩者的軌跡誤差均方根進(jìn)行計(jì)算:
其中, 為SLAM系統(tǒng)估計(jì)的某個(gè)相機(jī)位姿,xi為對(duì)應(yīng)的真實(shí)坐標(biāo)位姿,n為坐標(biāo)位姿采集次數(shù)。
本文在兩組公開(kāi)數(shù)據(jù)集下進(jìn)行了實(shí)驗(yàn),本文算法視覺(jué)SLAM和ORB-SLAM2進(jìn)行對(duì)比實(shí)驗(yàn)。圖中內(nèi)側(cè)黑色線條軌跡表示視覺(jué)相機(jī)的真實(shí)軌跡位姿,外側(cè)虛線線條軌跡表示為SLAM算法估計(jì)得到的相機(jī)軌跡位姿,中間區(qū)域表示同一時(shí)間相機(jī)估計(jì)位姿與真實(shí)位姿之間的位姿誤差距離,可以得出延伸越長(zhǎng)以及扇形灰色區(qū)域越大表示誤差越大,位姿估計(jì)的準(zhǔn)確性越低。最后通過(guò)計(jì)算ATE來(lái)評(píng)估系統(tǒng),實(shí)驗(yàn)結(jié)果為:
數(shù)據(jù)集1:freiburg3_long_office_household如圖5所示。
數(shù)據(jù)集2:freiburg3_walking_xyz如圖6所示。
將實(shí)驗(yàn)得到的ATE進(jìn)行匯總,如表1、表2所示。
3 ?結(jié) ?論
本文將Mask R-CNN深度學(xué)習(xí)網(wǎng)絡(luò)應(yīng)用于動(dòng)態(tài)環(huán)境下的視覺(jué)SLAM中。通過(guò)深度神經(jīng)網(wǎng)絡(luò)優(yōu)化視覺(jué)前端,使用深度學(xué)習(xí)算法進(jìn)行動(dòng)態(tài)物體識(shí)別,并能在很大程度上剔除動(dòng)態(tài)特征點(diǎn)以及動(dòng)態(tài)區(qū)域中包含的特征點(diǎn),減少了特征點(diǎn)的誤匹配;最后通過(guò)仿真對(duì)比試驗(yàn)表1、2得出,本文算法與ORB-SLAM2算法相比精度提高了96%以上,執(zhí)行速度和原有的ORB-SLAM2算法執(zhí)行速度基本相差不大,精度的提升完全沒(méi)有影響到本文算法的執(zhí)行速度。表明了本文SLAM算法在動(dòng)態(tài)場(chǎng)景下能夠具有較大優(yōu)勢(shì),定位的準(zhǔn)確度更高。
參考文獻(xiàn):
[1] 張文.基于多傳感器融合的室內(nèi)機(jī)器人自主導(dǎo)航方法研究 [D].合肥:中國(guó)科學(xué)技術(shù)大學(xué),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的移動(dòng)機(jī)器人SLAM框架算法 [J].電子學(xué)報(bào),2009,37(8):1865-1868.
[4] 劉雅彬,陳萬(wàn)米.融合激光與視覺(jué)信息的自主移動(dòng)機(jī)器人的SLAM研究 [J].工業(yè)控制計(jì)算機(jī),2015,28(9):70-72+74.
[5] 侯榮波,魏武,黃婷,等.基于ORB-SLAM的室內(nèi)機(jī)器人定位和三維稠密地圖構(gòu)建 [J].計(jì)算機(jī)應(yīng)用,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.
作者簡(jiǎn)介:王偉良(1995.06—),男,漢族,遼寧沈陽(yáng)人,研究生在讀,研究方向:移動(dòng)機(jī)器人控制技術(shù)。