周明超
摘要:ORB-slam2在建圖部分構建的是稀疏特征點地圖,無法提供導航功能??紤]到八叉樹地圖可以實現(xiàn)三維導航,該文在原ORB-slam2算法的基礎上增加了八叉樹的地圖構建。實現(xiàn)方式是將點云地圖轉(zhuǎn)化為八叉樹地圖,并在建圖之后對地圖進行濾波處理。通過對TUM數(shù)據(jù)集和真實環(huán)境的同步定位與地圖構建實驗證明,濾波之后的八叉樹地圖在不破壞環(huán)境結構的情況下,相比于點云地圖節(jié)省了大量的內(nèi)存空間,并且去除了因為噪聲產(chǎn)生的孤立的點,使地圖變得干凈準確,為后續(xù)的三維導航提供有效的技術支持。
關鍵詞:ORB-slam2;點云地圖;八叉樹地圖;濾波;TUM數(shù)據(jù)集
中圖分類號:TP242.6? ? ? ? 文獻標識碼:A? ? ? ? 文章編號:1009-3044(2018)34-0236-02
同步定位與地圖構建(SLAM)[1]在過去的20年中,一直是計算機視覺和機器人自主移動領域的熱門研究對象。同步定位與地圖構建技術是在未知的環(huán)境中建立一個地圖并且能夠在地圖中完成對自身的定位[2]。同步定位與地圖構建搭載各種不同的傳感器,如雷達、相機等。相機傳感器受到了研究者們的青睞。相機提供的圖像信息能夠帶來魯棒性和精確的位置識別[3],而位置識別是同步定位與地圖構建系統(tǒng)中的關鍵模塊。
2015年Mur-Artal等提出了ORB-SLAM( Oriented FAST and Rotated BRIEF-Simultaneous Localization And Mapping)算法,使視覺SLAM發(fā)展的一個高峰。ORB-SLAM2是在原算法的基礎上的改進和優(yōu)化,但算法最終只構建基于特征點的稀疏點云地圖,無法應用于機器人導航和路徑規(guī)劃等實際領域。
針對ORB-SLAM2算法的不足,又考慮到八叉樹地圖可以實現(xiàn)三維導航,引入了在線快速構建未知環(huán)境的八叉樹地圖的方法,算法的具體步驟如圖1所示。
通過關鍵幀計算每幀的位姿,結合位姿和相應關鍵幀拼接點云,生成點云地圖。對點云地圖進行濾波護理之后,將點云地圖轉(zhuǎn)換為八叉樹地圖。實驗表明,本文算法在TUM數(shù)據(jù)集實驗上能夠取得較好的效果,經(jīng)過濾波處理之后的地圖去除掉了孤立的噪聲點和區(qū)域內(nèi)的重復的點。八叉樹梯度相對于點云地圖極大地縮小了內(nèi)存。建立準確的八叉樹地圖為以后的導航提供技術支持。
1 ORB-slam2模型
ORB-slam2[4]是一種基于ORB特征點的可以支持單目相機、雙目相機和深度相機的同步定位與建圖的系統(tǒng)。
在后端上采用的是捆集優(yōu)化(BA)的方式,bundle adjustment[5]是對相機定位的同時完成幾何重建。該系統(tǒng)在DBoW2[6]的基礎上嵌入了一批文字識別模塊,用于執(zhí)行循環(huán)檢測和重定位。視覺詞匯只是描述符空間的離散化,被稱為視覺詞匯。使用從大量圖像中提取的ORB描述符離線創(chuàng)建詞匯表。
該系統(tǒng),包含三個并行運行的線程,跟蹤線程,局部建圖線程和閉環(huán)線程。
2 構建八叉樹地圖
2.1 八叉樹地圖
八叉樹地圖是一種樹形層次的數(shù)據(jù)結構,從一個大立方體不斷的均勻分割成八塊,直到變成最小的方塊(最高精度)為止。精度越高小方塊就越大,精度越小小方塊就越小。如圖2所示。
地圖中的方塊表示被占據(jù)的概率,被占據(jù)則表示不可以通過,導航時查詢地圖某個方塊是否被占據(jù)即可。
2.2 濾波處理
對初步生成的地圖進行濾波處理,本文中用到兩種濾波器:外點去處濾波器以及降采樣濾波器。
外點去除濾波器會去掉深度值太大或者無效的點,同時會去掉孤立的點。這樣已達到去除孤立的噪聲點的目的。體素體濾波器(Voxel Filter)用來降采樣。它會保證在某一個大小的立方體內(nèi)僅有一個點,避免由于多個視角存在視野重疊,在重疊區(qū)域存在大量位置相似的點。
經(jīng)過濾波后的地圖,可保證結構不發(fā)生變化,去除地圖中的噪點,使地圖本身變得干凈,地圖中的點數(shù)明顯減少。
3 實驗結果和分析
為了達到本文的目的,即在ORB-SLAM2的基礎上構建八叉樹地圖,對TUM數(shù)據(jù)集進行了同步定位與地圖構建的實驗,并對實驗進行分析和比對。
3.1 基于TUM數(shù)據(jù)集的同步定位與八叉樹地圖構建實驗
TUM數(shù)據(jù)集是由慕尼黑工業(yè)大學(TUM)計算機小組提供的RGBD數(shù)據(jù)集,數(shù)據(jù)集包括了由深度相機獲取的RGB圖像信息與深度圖像信息,以及由8個高速追蹤相機所構成的高精度運動捕捉系統(tǒng)所獲取的機器人真實移動軌跡(ground truth)。
本次試驗使用的是freiburg1_desk_secret數(shù)據(jù)集,關鍵幀數(shù)共1148幀,文件大小為680.4MB。圖3 a為數(shù)據(jù)集構建的點云地圖,圖3 b為數(shù)據(jù)集構建的濾波處理前八叉樹地圖。圖3 c為數(shù)據(jù)集構建的濾波處理后八叉樹地圖。
通過表1可得,所構建的八叉樹地圖與點云地圖在擁有相同的點數(shù)的情況下,八叉樹地圖僅占有27KB,而點云地圖占到了138.9MB。足以證明八叉樹數(shù)地圖相對于點云地圖節(jié)省了大量的存儲空間,更有利于計算速度的提高。濾波后的八叉樹地圖去除掉了孤立的噪聲點和區(qū)域內(nèi)重復的點,地圖的點數(shù)也有明顯的降低。
通過對圖3中b、c兩幅圖的對比可得,圖中有明顯的三處在濾波后噪點都消失或者減少了,這很好的證明了濾波器的優(yōu)勢。
4 結論
由于ORB-slam2源代碼構建的是一種特征點地圖,它只能顯示出定位和部分特征點的位置,對以后的功能的擴展如導航、避障等不能提供幫助。而八叉樹地圖可以完成這一點,所以本文提出在ORB-SLAM2的基礎上構建八叉樹地圖。
本文首先介紹了ORB-slam2計算相機位姿流程,接著介紹了八叉樹地圖的原理。實驗部分分別對TUM數(shù)據(jù)集和真實環(huán)境進行了同步定位與地圖構建實驗,證明本文方法構建的八叉樹地圖在保證結構準確的同時,極大地縮小了地圖所占的內(nèi)存。濾波后的地圖減少了很多的噪聲點,使地圖更加干凈、準確。
參考文獻:
[1] R Mur-Artal,JMM Montiel,JD Tardos. ORB-SLAM: a versatile and accurate monocular SLAM system[J]. IEEE Transactions on Robotics,2015,31(5):1147-1163.
[2] DARDARI D,CLOSAS P,DJURIC P M.Indoor tracking theory,methods,and technologies[J]. IEEE Transactions on Vehicular Technology,2015,64(4):1263-1278.
[3] 王芳,劉晉.移動機器人的同時定位與地圖創(chuàng)建的算法研究[J].智能計算機與應用,2015(2).
[4] MUR ARTAL R,MONTIEL J M M,TARDOS J D.ORB-SLAM:a versatile and accurate monocular SLAM system[J].IEEE Transactions on Robotics,2015,31(5):1147-1163.
[5] B Triggs,PF Mclauchlan,RI Hartley,AW Fitzgibbon.Bundle adjustment a modern synthesis[J].in Vision algorithms: theory and practice,2000:298-372.
[6] D Galvez-López,JD Tardos.Bags of binary words for fast place recognition in image sequences[J].IEEE Transactions on Robotics,2012(5):1188-1197.
【通聯(lián)編輯:代影】