李楨哲, 黎展榮, 姜超
(廣西大學(xué)計(jì)算機(jī)與電子信息學(xué)院, 廣西南寧530004)
同步定位與地圖構(gòu)建(simultaneous localization and mapping, SLAM)是移動(dòng)載體,如機(jī)器人等在自身位置不確定的條件下,在完全未知環(huán)境中創(chuàng)建地圖,同時(shí)利用地圖進(jìn)行自主定位和導(dǎo)航[1-2]。SLAM系統(tǒng)可以使用多種傳感器,如相機(jī)、激光雷達(dá)等。其中,相機(jī)更加經(jīng)濟(jì),同時(shí)提供了豐富的視覺(jué)和環(huán)境信息,具有巨大的發(fā)展?jié)摿3]。SLAM系統(tǒng)可以分為特征法[4-7]和直接法[8-10]。在特征法中,ORB-SLAM2[11]是比較魯棒的視覺(jué)SLAM系統(tǒng);但在實(shí)際應(yīng)用中,含有運(yùn)動(dòng)物體的場(chǎng)景是比較常見(jiàn)的,因此對(duì)傳統(tǒng)視覺(jué)SLAM系統(tǒng)帶來(lái)了一些挑戰(zhàn)。純視覺(jué)的SLAM系統(tǒng),需要提取圖像上的特征點(diǎn),并依賴于匹配好的特征點(diǎn)對(duì)進(jìn)行位姿估計(jì)。動(dòng)態(tài)環(huán)境中,系統(tǒng)同樣會(huì)在運(yùn)動(dòng)物體上提取特征點(diǎn)并產(chǎn)生匹配點(diǎn),由于運(yùn)動(dòng)物體不滿足多視圖幾何,因此這樣的匹配點(diǎn)反而會(huì)干擾位姿的估計(jì),當(dāng)環(huán)境中的運(yùn)動(dòng)物體過(guò)多時(shí),甚至導(dǎo)致建圖失敗。為了使視覺(jué)SLAM系統(tǒng)在動(dòng)態(tài)環(huán)境下能夠正常工作,通常的做法是預(yù)先剔除運(yùn)動(dòng)物體,以避免系統(tǒng)使用其所在位置的特征點(diǎn)。
為了解決上述問(wèn)題,許多科研人員做了大量的研究工作,得益于深度學(xué)習(xí)的快速發(fā)展,基于此的解決方案不斷被提出。Yu等[12]提出了基于RGB-D的DS-SLAM系統(tǒng),結(jié)合語(yǔ)義分割和移動(dòng)一致性檢測(cè)方法,以過(guò)濾動(dòng)態(tài)物體,但實(shí)驗(yàn)過(guò)程中過(guò)濾的對(duì)象僅僅是人。Bescos等[13]提出了DynaSLAM系統(tǒng),在使用RGB-D相機(jī)的情況下,結(jié)合了實(shí)例分割網(wǎng)絡(luò)和多視圖幾何法檢測(cè)運(yùn)動(dòng)對(duì)象。在單、雙目相機(jī)的情況下使用實(shí)例分割網(wǎng)絡(luò)Mask R-CNN[14]分割所有潛在運(yùn)動(dòng)對(duì)象(如車輛和行人),使SLAM系統(tǒng)不在這些物體上提取特征點(diǎn),但在這種情況下,可能丟失過(guò)多的靜態(tài)特征點(diǎn),導(dǎo)致定位失敗。張金鳳等[15]使用YOLOv3目標(biāo)檢測(cè)算法提取潛在運(yùn)動(dòng)對(duì)象,并使用非潛在運(yùn)動(dòng)區(qū)域提取特征點(diǎn),同樣存在特征點(diǎn)過(guò)少的風(fēng)險(xiǎn)。徐少杰等[16]提出用目標(biāo)檢測(cè)網(wǎng)絡(luò) YOLOv4提取動(dòng)態(tài)特征點(diǎn),并利用語(yǔ)義分割網(wǎng)絡(luò)重建三維語(yǔ)義地圖。Zhang等[17]提出用目標(biāo)檢測(cè)網(wǎng)絡(luò)YOLOv5檢測(cè)動(dòng)態(tài)物體,并利用光流方法剔除檢測(cè)到的動(dòng)態(tài)點(diǎn)。Xiao等[18]提出了基于單目相機(jī)的Dynamic-SLAM系統(tǒng),該系統(tǒng)使用SSD檢測(cè)潛在運(yùn)動(dòng)物體,針對(duì)檢測(cè)召回率低的問(wèn)題,提出了基于相鄰幀速度不變的漏檢補(bǔ)償算法,大大提高了召回率。為了提取出真正運(yùn)動(dòng)的物體,通過(guò)計(jì)算靜態(tài)點(diǎn)的平均位移,然后根據(jù)平均位移判斷潛在動(dòng)態(tài)點(diǎn)是否在移動(dòng)。Zhang等[19]采用目標(biāo)檢測(cè)定位動(dòng)態(tài)區(qū)域,通過(guò)深度圖進(jìn)行K均值聚類算法提取移動(dòng)區(qū)域。
針對(duì)SLAM系統(tǒng)在攝像機(jī)位姿估計(jì)中平移占主要部分的環(huán)境中,提出一種在動(dòng)態(tài)環(huán)境下,基于RGB單目相機(jī)的結(jié)合深度學(xué)習(xí)和前向平移約束算法SLAM系統(tǒng)。
ORB-SLAM2系統(tǒng)包含跟蹤線程、局部建圖線程和回環(huán)檢測(cè)線程。跟蹤線程通過(guò)每一幀尋找特征點(diǎn)與局部地圖匹配并通過(guò)最小化重投影誤差進(jìn)行相機(jī)位姿估計(jì),實(shí)現(xiàn)相機(jī)定位和跟蹤的線程;局部建圖線程管理局部地圖并優(yōu)化,實(shí)現(xiàn)局部光束法平差(bundle adjustment, BA);回環(huán)檢測(cè)線程進(jìn)行檢測(cè)回環(huán)并通過(guò)位姿圖優(yōu)化消除累積漂移誤差。本文將改進(jìn)的YOLOv5目標(biāo)檢測(cè)算法以及運(yùn)動(dòng)場(chǎng)提取算法作為動(dòng)態(tài)物體剔除線程加入到ORB-SLAM2系統(tǒng)中。改進(jìn)的ORB-SLAM2系統(tǒng)框架如圖1所示。深色部分表示所做工作,輸入RGB圖像序列,然后逐幀通過(guò)YOLOv5進(jìn)行目標(biāo)檢測(cè),框定出有可能運(yùn)動(dòng)的區(qū)域。同時(shí),相鄰2幀圖像通過(guò)運(yùn)動(dòng)場(chǎng)提取模塊,得到運(yùn)動(dòng)場(chǎng)信息,其為0、1的二值圖片,“0”代表該點(diǎn)為動(dòng)態(tài),“1”代表該點(diǎn)為靜態(tài)。運(yùn)動(dòng)場(chǎng)信息結(jié)合YOLOv5的框定結(jié)果,確定真實(shí)運(yùn)動(dòng)區(qū)域,然后跟蹤線程的特征提取模塊和特征點(diǎn),通過(guò)判斷結(jié)果決定是否保留提取的特征點(diǎn),最后經(jīng)過(guò)前向平移約束進(jìn)一步剔除異常匹配點(diǎn),從而提升估計(jì)的精度。
圖1 改進(jìn)的ORB-SLAM2系統(tǒng)框架Fig.1 Improved ORB-SLAM2 system framework
網(wǎng)絡(luò)結(jié)構(gòu)參照Depth and Motion Net[20],其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。該網(wǎng)絡(luò)包含2個(gè)卷積神經(jīng)網(wǎng)絡(luò),分別為Depth、Motion網(wǎng)絡(luò)。其中Depth網(wǎng)絡(luò)采用編碼器-解碼器架構(gòu),基于ResNet18網(wǎng)絡(luò)模型,對(duì)深度使用softplus激活函數(shù),在網(wǎng)絡(luò)中的每個(gè)線性整流函數(shù)(rectified tinear unit, ReLU)激活之前應(yīng)用隨機(jī)層歸一化。Depth網(wǎng)絡(luò)主要功能是從單個(gè)圖像預(yù)測(cè)深度圖,為預(yù)測(cè)運(yùn)動(dòng)場(chǎng)提供信息。Motion網(wǎng)絡(luò)基于U-Net架構(gòu),接收一對(duì)連續(xù)幀及其對(duì)應(yīng)的深度圖,輸出一個(gè)六維向量,表示2幀之間每個(gè)像素相對(duì)背景運(yùn)動(dòng)的向量,分別為三維的旋轉(zhuǎn)向量和三維的平移向量,同時(shí)輸出像素級(jí)別的殘差平移場(chǎng),每個(gè)像素代表在背景運(yùn)動(dòng)向量的基礎(chǔ)上還需要的平移量。訓(xùn)練網(wǎng)絡(luò)使用的是重構(gòu)圖像損失,即第一幀圖像F1通過(guò)深度圖、背景運(yùn)動(dòng)位姿、殘差平移場(chǎng)重構(gòu)第二幀圖像F2,最后采用光度一致性損失度量重構(gòu)圖像與第二幀圖像的差異來(lái)進(jìn)行訓(xùn)練。
圖2 Depth and Motion網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Depth and Motion network structure
網(wǎng)絡(luò)訓(xùn)練完成后,運(yùn)動(dòng)場(chǎng)信息可以從殘差平移場(chǎng)中提取出來(lái)。殘差平移場(chǎng)是一個(gè)RBG圖像,因?yàn)槲矬w不是移動(dòng)的,就是靜止的,所以還需轉(zhuǎn)換為二值圖片,其像素取值ρ為
(1)
式中:m為圖像像素平均值;a為閾值系數(shù);Ii∈R為平移場(chǎng)像素值。因?yàn)閯?dòng)態(tài)物體在整個(gè)拍攝畫(huà)面中占小部分,大部分像素屬于靜態(tài)像素,所以當(dāng)像素值偏離平均值超過(guò)閾值時(shí),則被判定為動(dòng)態(tài)像素,不同a值的比較效果如圖3所示。圖3(a)為原圖,圖3(b)為對(duì)應(yīng)的殘差平移場(chǎng),過(guò)小的a值將導(dǎo)致大量像素點(diǎn)被誤判為動(dòng)態(tài)像素,圖3(c)、(d)展示了合適的a值的效果;而過(guò)大的a值將導(dǎo)致運(yùn)動(dòng)區(qū)域劃分殘缺嚴(yán)重,如圖3(e)、(f)。
(a) 原圖
為了提高YOLOv5對(duì)小目標(biāo)的檢測(cè)精度,做出了如下改進(jìn):
引入Squeeze-and-Excitation(SE)模塊[21]。在傳統(tǒng)的卷積網(wǎng)絡(luò)中,默認(rèn)每個(gè)特征層的每個(gè)通道都同等重要,即它們的權(quán)重都是相等的,但在實(shí)際的問(wèn)題中,不同通道的重要性可能是有差異的。SE模塊可以通過(guò)對(duì)每一個(gè)特征層的信息分別建模,從而去自適應(yīng)的重新定義每一個(gè)通道的重要程度。SE模塊通過(guò)2步操作確定通道權(quán)重,Squeeze通過(guò)池化的方式將每個(gè)通道都提取出一個(gè)特征,Excitation通過(guò)學(xué)習(xí)的方式確定各個(gè)通道數(shù)的權(quán)重,最后將權(quán)重與對(duì)應(yīng)的特征圖相乘,SE結(jié)構(gòu)如圖4所示。
圖4 SE結(jié)構(gòu)Fig.4 SE structure
采用SoftPool[22]對(duì)空間金字塔池化(spatial pyramid pooling, SPP)[23]模塊的MaxPool進(jìn)行替換。SoftPool使用指數(shù)加權(quán)方式進(jìn)行池化,相比與MaxPool直接使用最大值進(jìn)行池化操作,SoftPool可以利用池化核的每個(gè)元素,只增加很少的內(nèi)存占用,在提高對(duì)相似特征信息的識(shí)別能力的同時(shí),保留了整個(gè)接受域的特征信息,可以在保持池化層功能的同時(shí),盡可能減少池化過(guò)程中的信息損失,提高了算法的精度。SoftPool的核心思想是使用Softmax,根據(jù)非線性特征值計(jì)算區(qū)域的特征值權(quán)重為
(2)
(3)
YOLOv5算法改進(jìn)前后的性能比較如圖5所示。從圖5可見(jiàn),使用KITTI公開(kāi)數(shù)據(jù)集,訓(xùn)練經(jīng)過(guò)200次迭代后,改進(jìn)的YOLOv5算法的損失函數(shù)收斂值更小,同時(shí)準(zhǔn)確率更高,說(shuō)明了引入SE模塊和Softpool模塊能提高網(wǎng)絡(luò)提取特征的能力,提升對(duì)小目標(biāo)的檢測(cè)能力。
(a) 損失函數(shù)收斂值
運(yùn)動(dòng)場(chǎng)提取網(wǎng)絡(luò)能夠區(qū)分2幀圖像中的動(dòng)態(tài)物體和靜態(tài)物體;但是這種區(qū)分不夠精準(zhǔn),會(huì)出現(xiàn)不運(yùn)動(dòng)的物體以及零散的像素點(diǎn)被判斷為運(yùn)動(dòng)對(duì)象的情況,所以單獨(dú)使用該網(wǎng)絡(luò)會(huì)造成過(guò)多的誤判,影響靜態(tài)特征點(diǎn)的提取。為了解決上述問(wèn)題,在訓(xùn)練階段和判斷階段結(jié)合了目標(biāo)檢測(cè)算法。
在訓(xùn)練之前,通過(guò)目標(biāo)檢測(cè)對(duì)潛在運(yùn)動(dòng)目標(biāo)進(jìn)行預(yù)檢測(cè),通過(guò)生成的Bounding Box獲得二維邊界信息,在訓(xùn)練過(guò)程中,利用邊界信息設(shè)置殘差平移場(chǎng)權(quán)重為
t(x,y)=t0+w(x,y)Δt(x,y),
(4)
式中:t為總平移場(chǎng);t0為背景平移向量;w為權(quán)重,當(dāng)像素點(diǎn)在Bounding Box內(nèi),則w=1,反之w=0;Δt為殘差平移場(chǎng)。通過(guò)設(shè)置權(quán)重的方式可以提供給網(wǎng)絡(luò)一定的先驗(yàn)信息,減少靜態(tài)區(qū)域?qū)τ?xùn)練的干擾。
在判斷階段,以目標(biāo)檢測(cè)生成的所有Bounding Box為候選區(qū),記為Boxn,n為當(dāng)前圖像中Bounding Box的個(gè)數(shù)。當(dāng)Boxi∈n中的動(dòng)態(tài)像素點(diǎn)大于閾值,則判定該Box為動(dòng)態(tài)區(qū)域,運(yùn)動(dòng)區(qū)域提取流程如圖6所示。
圖6 動(dòng)態(tài)區(qū)域提取流程Fig.6 Flow of dynamic region extraction
本文中的約束條件建立在攝像機(jī)位姿可以近似為只有平移環(huán)境的基礎(chǔ)上,例如在直線道路居多的環(huán)境中。在該約束條件下,理想的一對(duì)匹配點(diǎn)應(yīng)與極點(diǎn)(滅點(diǎn))在同一直線上,下面對(duì)此做簡(jiǎn)要證明。假設(shè)相機(jī)從光心O1僅以平移的方式運(yùn)動(dòng)到光心O2,平移運(yùn)動(dòng)軌跡如圖7所示。其中e和e′為滅點(diǎn),他們?cè)诟髯缘南袼刈鴺?biāo)系中有相同的坐標(biāo),P和P′分別是在Pw投影下的像素坐標(biāo)點(diǎn)。
圖7 平移運(yùn)動(dòng)軌跡Fig.7 Translational trajectory
(5)
Pw以O(shè)2為世界坐標(biāo)系原點(diǎn)的坐標(biāo)為
(6)
則P′點(diǎn)的像素坐標(biāo)為
(7)
由極幾何可得
(8)
解得
(9)
由式(5)、式(7)、式(9)計(jì)算點(diǎn)e、P、P′三點(diǎn)一線:
(10)
由式(10)可知,在只有平移的情況下,匹配點(diǎn)對(duì)與滅點(diǎn)存在直線約束,但在實(shí)際情況下三點(diǎn)不能完全滿足,因此在直線約束的基礎(chǔ)上提出距離約束和角度約束來(lái)剔除誤匹配點(diǎn)。在前向平移假設(shè)的情況下,相機(jī)主要沿著Z軸做平移運(yùn)動(dòng),同時(shí)認(rèn)為X、Y軸的位移忽略不計(jì),則有
tz?|tx|+|ty|≈0。
(11)
由式(5)、式(7)、式(9)可得滅點(diǎn)e分別與P和P′的歐氏距離,
(12)
式中z為P點(diǎn)世界坐標(biāo)的Z軸數(shù)值,其大于在Z軸方向的位移tz,結(jié)合式(11)、(12)則有
d(e,P′)>d(e,P)。
(13)
由式(13)可得,在前向平移假設(shè)的情況下,距離約束為同名點(diǎn)在當(dāng)前幀的像素坐標(biāo)與滅點(diǎn)像素坐標(biāo)的歐氏距離小于后一幀的歐氏距離。
對(duì)于角度約束,本文采用匹配點(diǎn)與滅點(diǎn)的夾角與閾值進(jìn)行比較,并通過(guò)所有夾角的平均值得到閾值,以減少由滅點(diǎn)計(jì)算不準(zhǔn)確和噪聲帶來(lái)的共有誤差對(duì)算法準(zhǔn)確度的影響。圖8展示了某一特征點(diǎn)P基于前向平移約束算法剔除誤匹配點(diǎn)的示意圖,其中點(diǎn)e為滅點(diǎn),在陰影區(qū)域之外的匹配點(diǎn)即為誤匹配點(diǎn)。陰影區(qū)域是由射線eP向兩側(cè)偏移θ角形成的四邊形eABC與扇形eDF的差集,其中θ和扇形eDF的半徑分別為角度約束和距離約束的閾值。
對(duì)于第i(i>1)幀圖像特征點(diǎn)P與第i-1幀匹配點(diǎn)P′基于前向平移約束匹配點(diǎn)剔除算法的具體步驟如下:
步驟1:計(jì)算圖像滅點(diǎn)e像素坐標(biāo),若不存在則返回。
步驟2:計(jì)算第i-1到第i-N幀滅點(diǎn)坐標(biāo)的離散程度,若大于閾值則返回。在本文中N取10。
步驟3:計(jì)算第i幀與第i-1幀所有匹配點(diǎn)與滅點(diǎn)的夾角平均值θavg,取閾值θthr=3θavg。
步驟4:取圖像特征點(diǎn)P與第i-1幀特征點(diǎn)P的匹配點(diǎn)P′的像素坐標(biāo),若遍歷完畢則返回。
步驟5:計(jì)算滅點(diǎn)e分別與點(diǎn)P和P′的歐氏距離分別為DI、Dthr,若DI 步驟6:若∠PeP′≥max(1°,θthr),則剔除該匹配點(diǎn)并執(zhí)行步驟4。 步驟7:執(zhí)行步驟4。 使用公共數(shù)據(jù)集KITTI、TUM對(duì)系統(tǒng)進(jìn)行試驗(yàn)。KITTI數(shù)據(jù)集包含運(yùn)動(dòng)和靜止的行人、車輛同時(shí)直線行駛部分較多,能夠測(cè)試系統(tǒng)動(dòng)靜分離的能力和前向平移約束算法的效果;TUM數(shù)據(jù)集能夠測(cè)試系統(tǒng)的深度學(xué)習(xí)算法部分在高動(dòng)態(tài)環(huán)境下的性能和精度。本文與ORB-SLAM2、DynaSLAM系統(tǒng)進(jìn)行了比較,選取了絕對(duì)軌跡誤差(absolute trajectory error, ATE)和絕對(duì)位姿誤差(absolute pose error, APE)指標(biāo)對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行評(píng)估,采用了均方根誤差(RMSE)、平均數(shù)(Mean)和標(biāo)準(zhǔn)差(STD)定量算法的精度。為了減少不確定因素的干擾,對(duì)每個(gè)序列運(yùn)行10次取中值作為實(shí)驗(yàn)結(jié)果。試驗(yàn)環(huán)境配置為Ubantu18.04操作系統(tǒng),Intel i7-9700處理器,NVIDIA GeForce RTX2070ti顯卡的臺(tái)式計(jì)算機(jī)。 不同系統(tǒng)在KITTI數(shù)據(jù)集的ATE和APE比較如圖9所示。從圖9中可見(jiàn),左列圖像是ATE圖,中間圖像比較了真實(shí)軌跡和估計(jì)軌跡的x、y、z軸分量,右列圖像定量比較了APE的平移部分,虛線表示真實(shí)軌跡,實(shí)線表示估計(jì)軌跡。SLAM系統(tǒng)將在動(dòng)態(tài)物體上提取許多特征點(diǎn),對(duì)定位和映射有影響。從圖9中可見(jiàn),隨著運(yùn)動(dòng)場(chǎng)景逐漸變得復(fù)雜,單目SLAM的漂移誤差越來(lái)越大,尤其ORB-SLAM2在02、08序列中存在著較大的尺度漂移,ORB-SLAM2在08序列最后一段序列中絕對(duì)軌跡估計(jì)失敗;而在單目環(huán)境下,DynaSLAM將剔除圖像中提取車輛或行人的特征點(diǎn),無(wú)論它們是否在運(yùn)動(dòng),導(dǎo)致特征點(diǎn)過(guò)少,造成位姿估算的精度下降。相比之下,由于減少了動(dòng)態(tài)干擾和使用前向平移約束算法剔除誤匹配點(diǎn),本文中系統(tǒng)的尺度漂移相對(duì)較小,估計(jì)的軌跡相較于其他2種算法更加吻合。就APE而言,本文中系統(tǒng)的APE分別在0.1~14.2、2~70、0~115、1.8~13.0波動(dòng),然而,ORB-SLAM2的波動(dòng)范圍最大達(dá)到152以上,DynaSLAM的波動(dòng)范圍最大達(dá)到142以上。本文系統(tǒng)相較于ORB-SLAM2、DynaSLAM在波動(dòng)范圍上分別平均減少了21.25%、22.70%。 (a) ORB-SLAM2在KITTI數(shù)據(jù)集00序列指標(biāo) 不同系統(tǒng)在數(shù)據(jù)集TUM的ATE比較如圖10所示。從圖10中可見(jiàn),真實(shí)軌跡和ORB-SLAM2算法的軌跡之間的匹配精度幾乎為0,其APE在序列fr3/w/xyz、fr3/w/half的波動(dòng)范圍分別為0.030~0.550、0~0.057,遠(yuǎn)遠(yuǎn)大于本文系統(tǒng)的0~0.057、0~0.220,同時(shí)本文提出的系統(tǒng)估計(jì)軌跡更接近真實(shí)軌跡,魯棒性更強(qiáng)。 (a) ORB-SLAM2在TUM數(shù)據(jù)集fr3/w/xyz序列指標(biāo) 不同系統(tǒng)的特征點(diǎn)提取比較如圖11所示。從圖11中可見(jiàn),ORB-SLAM2不區(qū)分動(dòng)靜物體,在運(yùn)動(dòng)物體上也提取了一部分的特征點(diǎn),導(dǎo)致算法精度降低。從特征點(diǎn)提取結(jié)果對(duì)比可以得出本文系統(tǒng)能較好地減少動(dòng)態(tài)物體對(duì)定位的干擾。 (a) 本文算法 ATE由估計(jì)位姿和真實(shí)位姿的差值得到,可以比較直觀地反映算法精度和軌跡的全局一致性。第i幀的ATE定義為 (14) 式中:Qi、Pi分別為第i幀的真實(shí)位姿、估計(jì)位姿;S為估計(jì)位姿到真實(shí)位姿的轉(zhuǎn)換矩陣。ATE的均方根誤差定義為 (15) 式中trans(Ei)為APE的平移部分。 不同系統(tǒng)在單目環(huán)境的RATE比較見(jiàn)表1(粗字體表示結(jié)果最優(yōu)),不同系統(tǒng)在RGB-D環(huán)境的RATE、Mean、STD比較見(jiàn)表2(粗字體表示結(jié)果最優(yōu))。 表1 不同系統(tǒng)在單目環(huán)境的RATE比較Tab.1 Comparison of RATE for different system 表2 不同系統(tǒng)在RGB-D環(huán)境的RATE、Mean、STD比較Tab.2 Comparison of RATE、Mean、STD of different systems in RGB-D environment 均方根誤差衡量估計(jì)軌跡與真實(shí)軌跡之間的偏差,能更好地反映系統(tǒng)的魯棒性;平均值反映該組絕對(duì)軌跡誤差總體的一般水平,或分布的集中趨勢(shì);標(biāo)準(zhǔn)差反映絕對(duì)軌跡誤差自身的離散程度,能夠反映系統(tǒng)的穩(wěn)定性。表1中System(D)表示僅使用深度學(xué)習(xí)算法識(shí)別動(dòng)靜區(qū)域的系統(tǒng),System(F)表示僅使用前向平移約束算法來(lái)剔除誤匹配點(diǎn)的系統(tǒng),System(D+F)表示深度學(xué)習(xí)和前向平移約束算法都使用的系統(tǒng)。在KITTI中對(duì)使用深度學(xué)習(xí)和前向平移約束算法的系統(tǒng)(D+F)在大多數(shù)序列中是最準(zhǔn)確的。System(D)主要改進(jìn)了對(duì)運(yùn)動(dòng)區(qū)域的劃分,在高動(dòng)態(tài)的TUM序列中表現(xiàn)較好。System(F)在直線場(chǎng)景豐富的序列中準(zhǔn)確度尚可,同時(shí)可以剔除系統(tǒng)(D)中無(wú)法剔除的SLAM系統(tǒng)自身產(chǎn)生的誤匹配點(diǎn),但是在直線場(chǎng)景較少的序列如KITTI09或是車輛行駛過(guò)程抖動(dòng)劇烈如序列KITTI08,都會(huì)影響算法的準(zhǔn)確性,同時(shí)有可能退化為原始算法甚至對(duì)位姿估計(jì)產(chǎn)生干擾??傮w上,在2種環(huán)境下本文系統(tǒng)要優(yōu)于ORB-SLAM2和DynaSLAM,優(yōu)化效果I計(jì)算式為 (16) 式中:Rour為本文系統(tǒng)的軌跡誤差;Roth為其他系統(tǒng)的軌跡誤差。在KITTI序列中System(D+F)的RATE較ORB-SLAM2和DynaSLAMR的分別平均降低了16.38%、6.65%;System(D)在TUM單目環(huán)境下的RMSE較ORB-SLAM2和DynaSLAM的分別平均降低了57.35%、6.47%,在表2中System(D)的RATE較ORB-SLAM2和DynaSLAM的分別平均降低了84.26%、8.32%。3種系統(tǒng)在TUM單目環(huán)境的跟蹤定位成功率見(jiàn)表3(粗字體表示結(jié)果最優(yōu))。從表3可見(jiàn),本文系統(tǒng)相較于ORB-SLAM2可以大幅提高跟蹤定位成功率,因?yàn)镺RB-SLAM2對(duì)“fr3/w/static”和“fr3/w/xyz”序列只有30%左右的成功率,故在表1中未給出ORB-SLAM2在該2個(gè)序列中的RMSE數(shù)據(jù)。 表3 3種系統(tǒng)在TUM單目環(huán)境的定位成功率Tab.3 Localization success rate of different systems in monocular environment % 本文對(duì)各系統(tǒng)算法效率進(jìn)行了比較,通過(guò)使用GPU同時(shí)采用批處理操作加快了深度神經(jīng)網(wǎng)絡(luò)輸出運(yùn)動(dòng)場(chǎng)的速度,提高了整個(gè)系統(tǒng)的時(shí)間效率。3種系統(tǒng)在不同環(huán)境中的平均每幀處理時(shí)間見(jiàn)表4。在GPU環(huán)境下,System(D+F)相較DynaSLAM速度提升了4.6倍,整體運(yùn)行速度達(dá)到幀率約為9 s-1,在CPU環(huán)境下也提升了約5.3倍。 表4 平均單幀處理時(shí)間Tab.4 Average single frame processing time s SLAM系統(tǒng)進(jìn)行位姿估計(jì)的過(guò)程中,由于動(dòng)態(tài)物體的干擾會(huì)影響其位姿估計(jì)的精度,因此本文提出一種SLAM結(jié)合深度學(xué)習(xí)算法,主要工作如下: ①引入無(wú)監(jiān)督的深度估計(jì)網(wǎng)絡(luò),利用動(dòng)態(tài)區(qū)域不同于靜止區(qū)域的位姿,通過(guò)重構(gòu)圖像損失,以像素級(jí)的方式輸出運(yùn)動(dòng)場(chǎng)信息,同時(shí)針對(duì)網(wǎng)絡(luò)誤判率較高的問(wèn)題,使用目標(biāo)檢測(cè)網(wǎng)絡(luò)對(duì)訓(xùn)練數(shù)據(jù)預(yù)處理,以減少誤判率。 ②提出了前向平移約束的誤匹配特征點(diǎn)對(duì)篩除算法,進(jìn)一步篩除誤匹配特征點(diǎn)。 ③對(duì)YOLOv5網(wǎng)絡(luò)模型進(jìn)行改進(jìn),引入注意機(jī)制模塊,以提高模型的特征提取能力和檢測(cè)精度。此外,在SPP模塊中引入了SoftPool,以改進(jìn)池化操作,并保持更詳細(xì)的特性信息,使得網(wǎng)絡(luò)增加對(duì)小目標(biāo)的識(shí)別能力。 然而目前本文算法相較原系統(tǒng)增加了許多額外的時(shí)間開(kāi)銷,運(yùn)動(dòng)場(chǎng)的提取存在錯(cuò)檢和漏檢。未來(lái)的工作方向主要是簡(jiǎn)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)以提升計(jì)算速度,強(qiáng)化深度學(xué)習(xí)網(wǎng)絡(luò)提取動(dòng)態(tài)物體特征的能力;提高前向平移約束算法提取滅點(diǎn)的準(zhǔn)確度以及設(shè)計(jì)在道路轉(zhuǎn)彎環(huán)境中的異常匹配點(diǎn)剔除算法,以進(jìn)一步提升算法精度和適用性。4 實(shí)驗(yàn)結(jié)果與分析
4.1 SLAM系統(tǒng)評(píng)估
4.2 算法效率評(píng)估
5 結(jié)語(yǔ)