洪運(yùn)志,吳懷宇,陳志環(huán)
(武漢科技大學(xué) 機(jī)器人與智能系統(tǒng)研究院,湖北 武漢 430081)
隨著移動(dòng)機(jī)器人行業(yè)飛速發(fā)展,視覺同步定位與建圖[1](V-SLAM)問題成為了機(jī)器人領(lǐng)域的熱點(diǎn)研究。由于傳感器中的深度相機(jī)可以直接獲取環(huán)境的彩色及深度信息,使得SLAM數(shù)據(jù)處理相對直接,所以深度相機(jī)被廣泛應(yīng)用于V-SLAM的地圖構(gòu)建[2,3]。韋蘭等[4]利用深度相機(jī)采集到的數(shù)據(jù),結(jié)合圖像特征進(jìn)行閉環(huán)檢測和優(yōu)化,得到質(zhì)量較高的點(diǎn)云后,再進(jìn)行室內(nèi)稠密地圖重建。還有些學(xué)者利用SFM[5]來解決場景的稠密建圖問題,比如Kinect Fusion和Elastic Fusion,但其實(shí)現(xiàn)的平臺一般需要配置強(qiáng)大的GPU來確保系統(tǒng)的實(shí)時(shí)性。Felix Endres等[6]提出的SLAM系統(tǒng)利用深度相機(jī)從彩色圖像中提取視覺特征,并使用深度信息來確定物體的三維位置,該方案雖沒要求用GPU,但使用SIFT提取特征點(diǎn)和所有幀來建圖,導(dǎo)致其運(yùn)算消耗較大,重建的三維點(diǎn)云地圖冗余點(diǎn)較多,不夠緊湊。Mur-Artal和Tardós[7]開發(fā)了ORB-SLAM2,該算法使用圖優(yōu)化,能夠高精度地實(shí)現(xiàn)機(jī)器人定位,但其地圖是由稀疏的環(huán)境特征點(diǎn)構(gòu)成,應(yīng)用性較差。
由以上研究現(xiàn)狀可知:雖然深度相機(jī)V-SLAM中建圖研究已經(jīng)取得了一定突破,但當(dāng)前針對輸入數(shù)據(jù)中的深度圖像的研究[8]并不多。考慮到深度圖像作為V-SLAM的系統(tǒng)性誤差將直接影響系統(tǒng)的定位精度,因此,本文將對深度圖像去噪進(jìn)行研究。另外,作為SLAM建圖中的重要環(huán)節(jié),圖像關(guān)鍵幀[9]提取并沒有具體規(guī)則,關(guān)鍵幀若能較好地提取,那對建圖的準(zhǔn)確性和快速性將會有著重要的意義。并且,當(dāng)前深度相機(jī)V-SLAM的地圖構(gòu)建,大多數(shù)都是關(guān)于無序三維空間點(diǎn)構(gòu)成的簡單環(huán)境點(diǎn)云地圖,很少涉及點(diǎn)云圖生成之前的優(yōu)化處理環(huán)節(jié),且點(diǎn)云地圖本身規(guī)模較大,如果應(yīng)用于移動(dòng)機(jī)器人導(dǎo)航[10]等應(yīng)用,則需要更加緊湊,應(yīng)用性更強(qiáng)的地圖來呈現(xiàn)。
基于以上分析,本文提出一種基于改進(jìn)關(guān)鍵幀選取和點(diǎn)云優(yōu)化的V-SLAM稠密建圖方法,實(shí)現(xiàn)室內(nèi)環(huán)境3D OctoMap 地圖快速構(gòu)建。方法理論充分,實(shí)踐可行,構(gòu)建的稠密地圖應(yīng)用性強(qiáng),存儲代價(jià)小,滿足室內(nèi)環(huán)境下深度相機(jī)V-SLAM建圖的實(shí)際需求。
本文提出的室內(nèi)環(huán)境下深度相機(jī)V-SLAM的稠密建圖總體結(jié)構(gòu)如圖1所示,主要包括深度圖像去噪與彩色圖配準(zhǔn),SLAM位姿估計(jì)與關(guān)鍵幀提取,SLAM地圖構(gòu)建與優(yōu)化3個(gè)部分,最后是實(shí)驗(yàn)設(shè)計(jì)與驗(yàn)證。
圖1 深度相機(jī)V-SLAM稠密建圖總體結(jié)構(gòu)
(1)深度相機(jī)標(biāo)定
為提高深度相機(jī)數(shù)據(jù)的精度,在使用深度相機(jī)之前需要對其進(jìn)行標(biāo)定。以微軟公司生產(chǎn)的Kinect為例,需要經(jīng)過標(biāo)定得到其內(nèi)參矩陣K,如式(1)所示
(1)
式中:fx,fy為相機(jī)在X,Y兩個(gè)軸上的焦距;cx,cy為相機(jī)坐標(biāo)系下相機(jī)光圈中心。本文使用ROS自帶的Calibration標(biāo)定包對Kinect進(jìn)行攝像頭的標(biāo)定。
(2)從二維圖像到三維空間
根據(jù)針孔相機(jī)模型,設(shè)點(diǎn)云中的一個(gè)空間點(diǎn)(x,y,z),已知其在圖像中坐標(biāo)為(u,v,d),再采用式(2)進(jìn)行轉(zhuǎn)換,就可以確定空間點(diǎn)的位置
z=d/s
x=(u-cx)·z/fx
y=(v-cy)·z/fy
(2)
式中:s指深度相機(jī)的縮放因子,d為深度信息。
深度相機(jī)在拍攝物體的邊緣或者顏色較深的位置時(shí)通常會產(chǎn)生空洞噪聲(圖2(a)中記號部分),從而致使深度值缺失。
圖2 深度圖像去噪
文獻(xiàn)[11]介紹了一種基于FMM算法的深度圖像空洞修復(fù)方法,在深度圖的一個(gè)小的鄰域內(nèi),深度值是連續(xù)的,故空洞像素點(diǎn)p可以由其領(lǐng)域內(nèi)的有效像素來估計(jì),如式(3)所示
(3)
該方法雖能對空洞噪聲進(jìn)行去除,但其需要計(jì)算彩色圖像的結(jié)構(gòu)相似性(SSIM)來確定待修補(bǔ)空洞區(qū)域像素p(x,y), 算法的復(fù)雜度較高,不易實(shí)現(xiàn)。
所以本文通過改進(jìn)FMM算法,根據(jù)深度圖像素閾值特點(diǎn),設(shè)計(jì)一種基于反二值閾值化分割方法來確定修復(fù)區(qū)域Ω中的待修復(fù)像素p(x,y)。 改進(jìn)FMM算法偽代碼如下:
一種改進(jìn)的FMM算法
(1)δΩ=待修復(fù)區(qū)域的邊緣,p=待修補(bǔ)的空洞像素,Head函數(shù)中⊕為圖像的膨脹
(2)while(δΩ非空)
(3)p(x,y)←Head(dΩ⊕dΩ-dΩ)
(4) for(m,n) in (x+1,y), (x,y+1), (x-1,y), (x,y-1)
(5) if flag(m,n)≠know
(6) if flag(m,n)=inside
(7) inpaint(m,n)
(8) end if
(9) end if
(10) end for
(11)end while
設(shè)定圖像的像素有3種:know表示δΩ外部不需要修復(fù)的像素,inside表示δΩ內(nèi)部等待修復(fù)的像素。其中,dΩ表示OpenCV中函數(shù)的修復(fù)掩膜,dΩ(x,y) 是確定待修復(fù)區(qū)域掩膜的反二值閾值化函數(shù),如式(4)
(4)
式中:根據(jù)深度圖像空洞噪聲的閾值范圍將深度圖像二值化,即灰度值不大于閾值threshhold的像素設(shè)置為255,其余設(shè)置為0,得到圖像待修復(fù)區(qū)域的掩膜。然后,將其結(jié)合到FMM算法中對圖像進(jìn)行修復(fù)。
如圖3所示,經(jīng)過本文改進(jìn)的FMM算法處理后,深度圖的黑洞噪聲被明顯去除,驗(yàn)證了所提出方法的有效性。
圖3 深度圖像修復(fù)
在基于特征點(diǎn)的SLAM過程中,常用的提取算子和特征描述有SIFT、SURF、和ORB等。ORB算子計(jì)算速度較快且保持了特征子的旋轉(zhuǎn)、尺度不變性,綜合考慮SLAM建圖對準(zhǔn)確性和快速性需求,本文選用ORB特征進(jìn)行特征提取。
特征提取完成后,為了實(shí)現(xiàn)較高效率的特征匹配,采用FLANN實(shí)現(xiàn)初步的特征匹配。同時(shí),為了去除錯(cuò)誤的匹配,本文還結(jié)合RANSAC算法剔除特征匹配中的誤匹配。
匹配完成后,就是求解相機(jī)的位姿變換矩陣。深度相機(jī)V-SLAM中是由3D-2D點(diǎn)估計(jì)法來解決位姿估計(jì)與優(yōu)化問題。
(1)PnP法估計(jì)相機(jī)位姿
PnP[12]算法是求解3D-2D點(diǎn)估計(jì)的算法。在PnP中,已知n個(gè)點(diǎn)的3D位置和圖像中的投影,需要估計(jì)出相機(jī)位姿。已知兩幀圖像F1和F2, 并且匹配到了一組對應(yīng)的特征點(diǎn)P={p1,p2,…,pN}∈F1,Q={q1,q2,…,qN}∈F2, 其中,p和q都是已經(jīng)求出的匹配好的特征點(diǎn)。然后需要求而出一個(gè)旋轉(zhuǎn)矩陣R和位移矢量t,使得式(5)成立
?i,pi=Rqi+t
(5)
(2)非線性優(yōu)化
因?yàn)橛形粗南鄼C(jī)位姿和來自觀測點(diǎn)的噪聲,所以式(5)必然存在一個(gè)誤差。為減小這個(gè)誤差,需構(gòu)建最小二乘問題,然后調(diào)整相機(jī)位姿都是錯(cuò)的是使其達(dá)到最佳位姿,從而使誤差最小化,基于深度相機(jī)V-SLAM的誤差函數(shù)如式(6)
(6)
式(6)被稱作重投影誤差,它是計(jì)算3D點(diǎn)位姿估計(jì)與觀測值之間的誤差。其目的就是找到一對 (R,t), 使得誤差函數(shù)(R,t) 取得最小值。式(6)中,pi為相機(jī)當(dāng)前幀圖像中的匹配點(diǎn),qi為當(dāng)前幀運(yùn)動(dòng)后一幀中圖像的匹配點(diǎn)。
在SLAM過程中,如果圖像的位移超過一定的值,就將其定義為一個(gè)關(guān)鍵幀,本文利用關(guān)鍵幀進(jìn)行地圖構(gòu)建。為了減少建圖中的點(diǎn)云拼接冗余、不必要的計(jì)算量以及存儲浪費(fèi),需要對SLAM過程中的圖像關(guān)鍵幀進(jìn)行篩選和提取。
本文采用一種基于特征相關(guān)性篩選的關(guān)鍵幀選取機(jī)制,算法流程如圖4所示。
圖4 基于特征相關(guān)性的關(guān)鍵幀篩選算法
記當(dāng)前幀F(xiàn)C,新關(guān)鍵幀F(xiàn)K,上一關(guān)鍵幀F(xiàn)K-1,首先,定義一個(gè)度量幀間運(yùn)動(dòng)的量D,其定義如式(7)
(7)
D是用幀間位移量r和旋轉(zhuǎn)量t的范數(shù)之和表示,然后將其與一個(gè)標(biāo)準(zhǔn)量Dmax比較,當(dāng)幀間運(yùn)動(dòng)大于標(biāo)準(zhǔn)量閾值的時(shí)候,判斷此時(shí)的匹配誤差過大,從而舍棄該幀,重新開始下一幀判斷。當(dāng)D≤Dmax時(shí),定義一個(gè)兩幀之間特征點(diǎn)數(shù)量占比的量E,其定義式如式(8)
(8)
式中:SFC,F(xiàn)K-1為當(dāng)前幀與上一關(guān)鍵幀匹配得到的特征點(diǎn)數(shù)量,SFK-1為上一關(guān)鍵幀的特征點(diǎn)數(shù)量,這兩者的比值表示兩幀之間的運(yùn)動(dòng)尺度E,若當(dāng)E>Emax時(shí),說明兩幀之間的運(yùn)動(dòng)尺度過小,不適合作為關(guān)鍵幀,返回到重新判斷;當(dāng)E≤Emax時(shí),才判斷當(dāng)前幀適合作為關(guān)鍵幀保存。
然后,在SLAM過程中重復(fù)以上步驟,得到所有的關(guān)鍵幀,供點(diǎn)云拼接使用。
(1)點(diǎn)云圖拼接
點(diǎn)云圖的拼接是由點(diǎn)云變換得來,這個(gè)變換是用變換矩陣T如式(9)來描述
(9)
式中:T為相機(jī)位姿的變換矩陣,包括1.5節(jié)求得的旋轉(zhuǎn)矩陣R和平移向量t。
設(shè)位姿變換前某空間點(diǎn)為(x1,x2,x3),變換后空間點(diǎn)為(y1,y2,y3),結(jié)合式(9),利用式(10)變換關(guān)系對空間點(diǎn)進(jìn)行位姿變換,獲得變換后的點(diǎn)云信息
(10)
(2)點(diǎn)云濾波和下采樣
點(diǎn)云圖拼接完成后,考慮到圖中存在的冗余點(diǎn)和噪聲點(diǎn),需對點(diǎn)云加一些濾波處理,以獲得更清晰緊湊的建圖效果。在本文的建圖方法中,基于PCL點(diǎn)云庫,采用了去外點(diǎn)濾波以及點(diǎn)云下采樣優(yōu)化方法。
1)由于Kinect 的量程有限,在生成點(diǎn)云時(shí),去掉深度值d在5000-8000之外的點(diǎn)。
2)為了去掉孤立的噪聲點(diǎn),利用統(tǒng)計(jì)濾波器方法去除地圖中每個(gè)點(diǎn)與它最近N個(gè)點(diǎn)之外的點(diǎn),N值通常為 40-80 左右。
另外,體素濾波能保證在某個(gè)一定大小的立方體(體素格)內(nèi)僅有一個(gè)點(diǎn),相當(dāng)于對三維點(diǎn)云進(jìn)行下采樣,從而能節(jié)省存儲空間。本文在建圖上還利用體素濾波器對點(diǎn)云下采樣。針對本文建圖方法,下采樣分辨率S一般取0.001-0.01。
(3)3D OctoMap轉(zhuǎn)換
點(diǎn)云圖有一些明顯的缺點(diǎn):點(diǎn)云圖數(shù)據(jù)量通常很大而且不緊湊,需要大量的存儲資源;點(diǎn)云圖不能應(yīng)用于機(jī)器人導(dǎo)航和路徑規(guī)劃。而3D OctoMap[13]能夠更加直觀地表示環(huán)境中的占用、空閑,更有利于機(jī)器人導(dǎo)航和路徑規(guī)劃?;谝陨戏治?,本文采用一種3D柵格化處理方法,將點(diǎn)云圖轉(zhuǎn)換成應(yīng)用性更強(qiáng)、存儲代價(jià)更低的3D OctoMap地圖。
本實(shí)驗(yàn)計(jì)算機(jī)配置為:CPU為Intel Core i5 5800U處理器,8 GB內(nèi)存,主頻2.5 GHz,系統(tǒng)是Ubuntu14.04。實(shí)際環(huán)境的數(shù)據(jù)來源于JS-R移動(dòng)機(jī)器人實(shí)驗(yàn)平臺,如圖5(a)所示,該移動(dòng)平臺搭載ROS,通過ROS采集圖像數(shù)據(jù)。軟件開發(fā)環(huán)境主要采用OpenCV2.4.8、Eigen庫以及點(diǎn)云庫PCL1.7。本文實(shí)際場地實(shí)驗(yàn)數(shù)據(jù)取自武漢科技大學(xué)如圖5(b)所示。
圖5 實(shí)驗(yàn)平臺與實(shí)驗(yàn)室環(huán)境
進(jìn)一步的,為了說明本文建圖方法的有效性與一般性,實(shí)驗(yàn)還選取了來自德國弗萊堡大學(xué)著名的開源TUM 數(shù)據(jù)集中的FR1/XYZ室內(nèi)環(huán)境。針對此數(shù)據(jù)集,將本文方法建圖結(jié)果與ORBSLAM2和RGB-D SLAM v2的建圖結(jié)果進(jìn)行對比實(shí)驗(yàn)。
針對輸入數(shù)據(jù)中彩色圖像,提取其ORB特征點(diǎn),并計(jì)算關(guān)鍵點(diǎn)和描述子,利用FLANN算法得到初次匹配如圖6所示,此時(shí)產(chǎn)生了391個(gè)匹配特征點(diǎn)。
圖6 初次特征匹配獲取的匹配
接著,使用RANSAC算法對上述匹配結(jié)果進(jìn)行進(jìn)一步的篩選,得到的有效匹配數(shù)量為52,其匹配結(jié)果如圖7所示。
圖7 經(jīng)過FLANN及RANSAC算法后的匹配
(1)位姿估計(jì)與關(guān)鍵幀提取
根據(jù)PnP匹配算法和最小化重投影誤差函數(shù)對估計(jì)出的位姿進(jìn)行優(yōu)化,求解出圖像幀之間的相機(jī)旋轉(zhuǎn)向量r和位移t。同時(shí),根據(jù)采用的關(guān)鍵幀提取方法,對機(jī)器人在圖5中的室內(nèi)環(huán)境1中采集到的117幀彩色、深度數(shù)據(jù)幀,進(jìn)行了關(guān)鍵幀提取與位姿估計(jì),設(shè)置Dmax=0.4,Emax=0.8, 得到了31幀關(guān)鍵幀及其位姿信息。為了使位姿估計(jì)更加直觀展示,實(shí)驗(yàn)將相機(jī)的關(guān)鍵幀運(yùn)動(dòng)在X/Y平面上進(jìn)行投影,由于實(shí)驗(yàn)室無法捕捉機(jī)器人運(yùn)動(dòng)真實(shí)值,所以本文僅將得到的位姿用MATLAB在X/Y平面上表示,如圖8所示。
圖8 室內(nèi)環(huán)境1中機(jī)器人在X/Y平面移動(dòng)軌跡
圖8所表現(xiàn)的是,START點(diǎn)設(shè)置的為JS-R機(jī)器人在室內(nèi)環(huán)境1中運(yùn)動(dòng)的起點(diǎn),箭頭為機(jī)器人實(shí)際的運(yùn)動(dòng)方向,小圓圈代表所選取機(jī)器人相機(jī)關(guān)鍵幀所處的位置,END點(diǎn)為捕捉機(jī)器人最后一幀關(guān)鍵幀時(shí)刻的位置點(diǎn)。從軌跡形狀看,整體運(yùn)動(dòng)穩(wěn)定且沒有出現(xiàn)奇點(diǎn),運(yùn)動(dòng)路徑平穩(wěn),說明位姿估計(jì)較為準(zhǔn)確。
(2)點(diǎn)云生成與濾波優(yōu)化
實(shí)驗(yàn)數(shù)據(jù)選取的是室內(nèi)環(huán)境2下拍攝獲取的20幀彩色、深度圖像。圖9顯示了武科大某室內(nèi)環(huán)境2的點(diǎn)云地圖經(jīng)過濾波優(yōu)化處理的過程:原始點(diǎn)云圖顯示在圖9(a)、圖9(b)的左側(cè),而經(jīng)過本文方法的點(diǎn)云優(yōu)化圖如圖9(c)所示。
圖9 室內(nèi)環(huán)境2點(diǎn)云圖構(gòu)建與優(yōu)化
從圖9(b)中圓圈標(biāo)注部分可以看到,點(diǎn)云拼接后的圖存在大量離群點(diǎn)和冗余點(diǎn);而經(jīng)過本文濾波方法處理后(圖9(c)),這些噪聲點(diǎn)明顯大量地被去除,得到的點(diǎn)云圖效果更平滑和清晰,說明本文濾波優(yōu)化方法對點(diǎn)云噪聲處理效果出色,實(shí)際作用明顯。
(3)稠密地圖構(gòu)建
為驗(yàn)證本文建圖方法在實(shí)際室內(nèi)環(huán)境中的有效性,實(shí)驗(yàn)借助JS-R機(jī)器人移動(dòng)平臺,對室內(nèi)環(huán)境1進(jìn)行實(shí)際場地的建圖實(shí)驗(yàn)。同時(shí),使用3D OctoMap來實(shí)現(xiàn)緊湊的三維地圖轉(zhuǎn)換。本文將室內(nèi)環(huán)境1和環(huán)境2的點(diǎn)云圖最終轉(zhuǎn)換成3D OctoMap地圖形式,效果如圖10所示。
圖10 某室內(nèi)環(huán)境1和環(huán)境2的稠密建圖
圖10(b)是從室內(nèi)環(huán)境2構(gòu)建的3D OctoMap,圖10(d)和圖10(e)是從圖室內(nèi)環(huán)境1構(gòu)建的3D OctoMap。從建圖效果可以看出,轉(zhuǎn)換后的地圖更加具體和直觀,這對于SLAM應(yīng)用于機(jī)器人導(dǎo)航和避障具有直接的現(xiàn)實(shí)意義,同時(shí),所構(gòu)建的稠密地圖比點(diǎn)云圖更加緊湊和準(zhǔn)確,說明了本文稠密建圖方法的準(zhǔn)確性和實(shí)用性。
針對TUM-RGB-D中的FR1/XYZ數(shù)據(jù)集,進(jìn)行了建圖對比實(shí)驗(yàn)。結(jié)果如圖11所示。
圖11(a)是ORB SLAM2室內(nèi)環(huán)境重建圖,其地圖形式為稀疏的點(diǎn)云,對室內(nèi)環(huán)境的描述效果較差,不能判斷環(huán)境中的物體的類別屬性。圖11(b)是RGB-D SLAM v2的重建地圖,其對室內(nèi)環(huán)境的描述比較豐富,各個(gè)物體模樣基本可以知道,但其重疊點(diǎn)云以及冗余性數(shù)據(jù)比較多。圖11(c)是本文方法得到的點(diǎn)云地圖,其對室內(nèi)物體的描述相較于ORB SLAM2要豐富得多,與RGB-D SLAM v2對比,如圖11(b)、圖11(c)中圓圈部分所示,電腦上邊緣處和桌面書本處等細(xì)節(jié)地方重疊和冗余明顯減少,整體處理地更清晰,效果較好。圖11(d)是經(jīng)過3D OctoMap轉(zhuǎn)換后的地圖,該地圖形式較于點(diǎn)云圖,能更清楚直觀地反映所處環(huán)境的具體情況,同時(shí)還能大大減少存儲空間,進(jìn)一步地說明了本文稠密建圖方法較于一般SLAM建圖方法的有效性和高效性。
圖11 FR1/XYZ數(shù)據(jù)集稠密建圖
為了說明本文稠密建圖質(zhì)量和效率的綜合表現(xiàn),將1201實(shí)驗(yàn)室室內(nèi)環(huán)境1、環(huán)境2以及FR1/XYZ數(shù)據(jù)集建圖的數(shù)據(jù)進(jìn)行對比。其中,一些參數(shù)設(shè)置為:深度誤差去除的參數(shù)d=7000,離群點(diǎn)濾波參數(shù)N=50,體素濾波體素格大小為0.01。室內(nèi)環(huán)境2八叉樹葉子節(jié)點(diǎn)大小(分辨率)設(shè)為0.01,室內(nèi)環(huán)境1和FR1/XYZ的葉子節(jié)點(diǎn)大小設(shè)為0.04,稠密建圖的點(diǎn)云和存儲空間變化見表1。
表1 稠密地圖節(jié)點(diǎn)數(shù)和存儲大小
表1中的數(shù)據(jù)顯示,3種室內(nèi)環(huán)境的點(diǎn)云圖在經(jīng)過本文的濾波優(yōu)化以及八叉樹轉(zhuǎn)換后,稠密圖中的稀疏異常值都得到了明顯去除,地圖數(shù)據(jù)質(zhì)量得到了很大的改善,同時(shí),也減少了存儲消耗。圖12展示了3種室內(nèi)環(huán)境下稠密建圖的地圖數(shù)據(jù)量的平均變化率。
圖12中可知,如將處理前的點(diǎn)云圖數(shù)據(jù)點(diǎn)數(shù)量和存儲大小都設(shè)置為100%,那么經(jīng)過濾波優(yōu)化處理后的點(diǎn)云數(shù)據(jù)點(diǎn)下降了接近10%,存儲占用下降了68.53%。經(jīng)過3D OctoMap地圖轉(zhuǎn)換后的地圖數(shù)據(jù)點(diǎn)數(shù)量下降了接近97%,存儲規(guī)模下降了98%左右。再次驗(yàn)證,根據(jù)本文的建圖方法,可以構(gòu)建一個(gè)更準(zhǔn)確和緊湊的地圖。
圖12 室內(nèi)環(huán)境地圖平均數(shù)據(jù)變化(百分率)
同時(shí),為說明本文建圖效率,對TUM中的FR1_XYZ數(shù)據(jù)集,從建圖的幀數(shù)和建圖時(shí)間來比較RGB-D SLAM v2、ORB SLAM2以及本文方法的差異,表2為這3種方法的關(guān)鍵幀數(shù)量以及耗時(shí)。
表2 本文建圖方法與RGB-D SLAM v2、ORBSLAM方案對比
由表2可知,ORB SLAM2的運(yùn)行效率最好,平均幀率和建圖耗時(shí)也是最優(yōu)的,但其地圖為稀疏點(diǎn)云圖,對室內(nèi)環(huán)境的描述太弱,缺乏實(shí)際應(yīng)用性。
使用本文建圖方法的FR1/XYZ數(shù)據(jù)集的關(guān)鍵幀提取數(shù)為65幀,平均幀率為8.35 Hz,幀率比RGB-D SLAM v2提高了26.1%,點(diǎn)云建圖耗時(shí)則下降了48.7%,從實(shí)時(shí)性方面本文方法表現(xiàn)更好。綜上所述,本文稠密建圖方法能夠較為快速、準(zhǔn)確地實(shí)現(xiàn)室內(nèi)環(huán)境三維地圖構(gòu)建,構(gòu)建的3D OctoMap也更符合實(shí)際應(yīng)用需求。
本文設(shè)計(jì)的室內(nèi)環(huán)境下深度相機(jī)V-SLAM的稠密建圖方法,該方法首先改進(jìn)FMM算法并對深度圖進(jìn)行去噪修復(fù),對彩色圖提取ORB特征;然后利用PnP算法和最小化重投影誤差估計(jì)相機(jī)位姿,并設(shè)計(jì)了一種關(guān)鍵幀選取機(jī)制提取關(guān)鍵幀;最后,采用一種結(jié)合濾波和下采樣的點(diǎn)云圖優(yōu)化方法,并將優(yōu)化后的點(diǎn)云圖轉(zhuǎn)換為3D OctoMap地圖,最終實(shí)現(xiàn)三維稠密地圖構(gòu)建。實(shí)驗(yàn)2.3說明了本文建圖方法的有效性以及能較好地滿足實(shí)際應(yīng)用性需求,實(shí)驗(yàn)2.4驗(yàn)證了方法的快速性和準(zhǔn)確性,所提出的方法能夠較為簡便、高效地實(shí)現(xiàn)室內(nèi)環(huán)境稠密地圖構(gòu)建,具有較好的實(shí)際應(yīng)用價(jià)值。
另外,本文后續(xù)重點(diǎn)工作將考慮引入基于外觀的回環(huán)檢測部分,以減小累積誤差從而使建圖結(jié)果更精確。