鄧 晨 ,李宏偉,張 斌,許智賓,肖志遠(yuǎn)
1. 鄭州大學(xué)信息工程學(xué)院,河南 鄭州 450052; 2. 鄭州大學(xué)地球科學(xué)與技術(shù)學(xué)院,河南 鄭州 450052; 3. 鄭州大學(xué)水利科學(xué)與工程學(xué)院,河南 鄭州 450001
隨著人工智能應(yīng)用的進(jìn)步與深度學(xué)習(xí)的興起,在同時定位與地圖構(gòu)建(simultaneous localization and mapping,SLAM)中加入機(jī)器學(xué)習(xí)的思想已然成為探索未知環(huán)境自主建圖方面極有潛力的研究點(diǎn)。文獻(xiàn)[1]提出了HOG算子作為特征,并選擇支持向量機(jī)(SVM)當(dāng)作試驗過程中的分類器,從而進(jìn)行運(yùn)動中的行人個體檢測,2012年之前,目標(biāo)檢測與識別的過程是采用人工的方式進(jìn)行圖像特征的訓(xùn)練,再選擇一種分類器以完成最終的分類任務(wù)。經(jīng)典的物體目標(biāo)檢測任務(wù)通常具有3個關(guān)鍵點(diǎn):①在圖像中標(biāo)記出一定數(shù)量不同的候選區(qū);②對標(biāo)出的候選區(qū)進(jìn)行特征的提取工作;③采用高效的分類器完成分類任務(wù)。
伴隨深度學(xué)習(xí)算法和技術(shù)的迅速發(fā)展,結(jié)合卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法在大多數(shù)場景下均具有良好的檢測效果和較強(qiáng)的實時性能。近年來,有學(xué)者嘗試將融合了深度學(xué)習(xí)算法的目標(biāo)檢測技術(shù)加入視覺SLAM算法過程中,進(jìn)行實例級的語義建圖。文獻(xiàn)[2]提出一種實例級的語義地圖構(gòu)建方法,利用SSD目標(biāo)檢測和3D點(diǎn)云分割算法完成幀間目標(biāo)的檢測和數(shù)據(jù)關(guān)聯(lián),構(gòu)建實例級的語義地圖。文獻(xiàn)[3]設(shè)計了一種基于YOLOv3目標(biāo)檢測算法的語義地圖構(gòu)建方案,通過YOLOv3目標(biāo)檢測和GrabCut點(diǎn)云分割法實現(xiàn)實例級的語義建圖。文獻(xiàn)[4]提出一種實時的移動機(jī)器人語義地圖構(gòu)建系統(tǒng),利用不同幀之間特征點(diǎn)的匹配關(guān)系完成物體之間的目標(biāo)關(guān)聯(lián),最終構(gòu)建增量式的語義地圖。文獻(xiàn)[5]提出了基于Faster R-CNN網(wǎng)絡(luò)的多物體檢測,利用單獨(dú)的RPN網(wǎng)絡(luò)進(jìn)行區(qū)域選擇,并結(jié)合Fast R-CNN網(wǎng)絡(luò)對不同區(qū)域進(jìn)行分類和回歸實現(xiàn)對多物體的檢測。文獻(xiàn)[6]提出了基于單次拍攝多邊界框檢測(SSD)的目標(biāo)檢測算法,這種算法能夠一步到位地預(yù)測出物體的類別,速度更快且效率更高。相較于Faster R-CNN網(wǎng)絡(luò),該算法沒有基于RPN的區(qū)域選擇部分,因此提高了檢測速度。然而,上述目標(biāo)檢測算法只能獲取物體的矩形框,不能很好地實現(xiàn)對物體邊界進(jìn)行精準(zhǔn)分割。文獻(xiàn)[7]提出了目標(biāo)實例分割框架Mask R-CNN,其算法框架的創(chuàng)新來源于Faster R-CNN,算法的思路是在Faster RCNN算法中邊界框之外補(bǔ)充了一個分支部分,這個模塊的主要作用是計算生成目標(biāo)對象的掩碼,從而實現(xiàn)像素級別的物體分割。文獻(xiàn)[8]是一個實時分割、跟蹤和重建多個物體的語義SLAM框架,通過結(jié)合基于條件隨機(jī)場的運(yùn)動分割和語義標(biāo)簽來對圖像進(jìn)行實例化的分割,實現(xiàn)重建實例級的語義地圖。Mask-Fusion[9]采用了類似的策略,不同的是Mask-Fusion選擇直接使用Mask R-CNN算法的網(wǎng)絡(luò)結(jié)構(gòu),完成關(guān)鍵幀目標(biāo)中的語義分割任務(wù),從而獲得實例對象的語義信息,最后通過文獻(xiàn)[10]中的算法對目標(biāo)實例進(jìn)行跟蹤并同時構(gòu)建實例級語義地圖。以上工作結(jié)合深度學(xué)習(xí)算法和視覺SLAM技術(shù)對采集的圖像或視頻幀進(jìn)行目標(biāo)檢測、幀間目標(biāo)跟蹤和語義地圖構(gòu)建,實現(xiàn)了實例級的語義SLAM算法。然而總覽已有的各種開源系統(tǒng),并未發(fā)現(xiàn)有科研團(tuán)隊及人員將最新ORB-SLAM3系統(tǒng)進(jìn)行創(chuàng)新融合或改進(jìn),大部分研究和試驗僅結(jié)合了前代經(jīng)典ORB-SLAM系統(tǒng),因此缺乏應(yīng)用的豐富度和創(chuàng)新性。本文聚焦于最新深度學(xué)習(xí)與視覺SLAM系統(tǒng)的融合框架構(gòu)建,完成了新系統(tǒng)中涉及的算法優(yōu)化和改進(jìn),提升SLAM技術(shù)的應(yīng)用豐富性,擴(kuò)展了其應(yīng)用范圍。
本文針對經(jīng)典SLAM系統(tǒng)的前端視覺里程計部分,在暴力匹配的基礎(chǔ)上使用RANSAC[11]對去除產(chǎn)生的誤匹配并通過試驗驗證了此方法的可行性;提出一種基于Lucas-Kanade光流法[12]的相鄰幀特征狀態(tài)判別法;采用YOLOV4[13]目標(biāo)檢測算法和融合全連接條件隨機(jī)場CRF[14]的Mask R-CNN語義分割算法對ORB-SLAM3[15]中的關(guān)鍵幀的圖像處理。最后,將以上兩部分作為獨(dú)立的新線程中融入ORB-SLAM3系統(tǒng)中,形成一個優(yōu)化改進(jìn)后的完整視覺框架。
ORB-SLAM是一種使用ORB特征點(diǎn)實現(xiàn)同時定位與制圖的方法模型,ORB-SLAM3是在ORB-SLAM系統(tǒng)的基礎(chǔ)上經(jīng)過了兩次方法迭代,實現(xiàn)了集視覺SLAM、視覺慣導(dǎo)融合SLAM以及混合地圖的開源SLAM系統(tǒng),并且支持多種視覺傳感器。基于特征法的視覺里程計充分利用了圖像中特征點(diǎn)對光照強(qiáng)度和環(huán)境尺度的穩(wěn)健性,并且得益于眾多成熟的特征匹配[16]算法,是目前視覺SLAM中穩(wěn)健性較高的視覺里程計的主流方法。
特征匹配是通過在相鄰兩個圖像幀之間比較特征點(diǎn)描述子的方法實現(xiàn)SLAM問題中數(shù)據(jù)關(guān)聯(lián)和運(yùn)動跟蹤。通過特征匹配可以在相鄰圖像幀之間得到正確的匹配點(diǎn)對,有利于提高SLAM系統(tǒng)位姿估計的精度。由于特征點(diǎn)僅僅是圖像中局部灰度值變化較大的像素點(diǎn),將會導(dǎo)致在特征匹配的過程中產(chǎn)生一些誤匹配,影響SLAM系統(tǒng)的位姿估計精度。因此,去除誤匹配是實現(xiàn)特征匹配的一項重要工作。
由圖1可以看出,暴力匹配得到較多的匹配點(diǎn)對,同時也存在較多的誤匹配點(diǎn)對。而且當(dāng)圖像中特征點(diǎn)的數(shù)量較多時,使用暴力匹配將會占用較多的計算資源。對于誤匹配可以使用快速近似最近鄰[18](FLANN)、隨機(jī)一致性采樣(RANSAC)等方法進(jìn)行誤匹配的剔除,得到正確的特征匹配點(diǎn)對。本文使用RANSAC方法進(jìn)行誤匹配的剔除。采用ORB特征和RANSAC算法進(jìn)行剔除誤匹配后的結(jié)果如圖2所示。
圖1 暴力匹配Fig.1 Schematic diagram of violence matching
圖2 改進(jìn)后的匹配結(jié)果Fig.2 The improved matching result
ORB-SLAM3是第1個能夠用單目、立體和RGB-D相機(jī),并使用針孔和魚眼鏡頭模型進(jìn)行視覺慣性和多地圖SLAM的系統(tǒng),主要創(chuàng)新表現(xiàn)在兩個方面:①它是一個基于特征的緊密集成視覺慣性SLAM系統(tǒng),它完全依賴于最大后驗概率估計,包括在IMU[19]初始化階段也是如此;②它是一個多地圖系統(tǒng),依賴于一種新的位置識別方法和改進(jìn)的召回,這種改進(jìn)方法使得ORB-SLAM3能夠長時間在較少視覺信息的環(huán)境下運(yùn)行,當(dāng)保存的地圖丟失時,它會啟動一個新的地圖,然后在重新訪問地圖區(qū)域時,將其與以前的地圖無縫地合并。
之前已被廣泛應(yīng)用的ORB-SLAM2由3個平行的線程組成、跟蹤、局部建圖和回環(huán)檢測。在一次回環(huán)檢測后,會執(zhí)行第4個線程,去執(zhí)行BA優(yōu)化。跟蹤線程在雙目或RGB-D輸入前進(jìn)行,剩下的系統(tǒng)模塊能夠與傳感器模塊獨(dú)立運(yùn)行。相比ORB-SLAM2系統(tǒng),ORB-SLAM3新增部分如下。
(1) 地圖集。如圖3所示,地圖集包括一系列分離的地圖組成的多地圖表示,包括活動地圖和非活動地圖?;顒拥貓D表示當(dāng)前位置的地圖,跟蹤線程向其中傳入圖像幀,并由局部建圖線程不斷優(yōu)化及增加新的關(guān)鍵幀擴(kuò)大規(guī)模,其他地圖為非活動地圖。
圖3 ORB-SLAM3經(jīng)典框架Fig.3 ORB-SLAM3 classic framework
(2) 跟蹤線程。判斷當(dāng)前幀是否為關(guān)鍵幀;實時處理傳感器信息并計算當(dāng)前姿態(tài);最大限度地減少匹配地圖特征的重投影誤差;通過加入慣性殘差來估計物體速度及慣性測量單元偏差。
(3) 局部建圖線程。將關(guān)鍵幀和地圖點(diǎn)添加到活動地圖,刪除多余關(guān)鍵幀,并使用視覺或視覺慣性BA優(yōu)化[20]地圖。另外此線程也包括慣性情況下,利用地圖估計初始化和優(yōu)化IMU參數(shù)。
(4) 回環(huán)和地圖融合線程?;陉P(guān)鍵幀的速度,對地圖集中的活動地圖和非活動地圖進(jìn)行相似性度量。每當(dāng)建圖線程創(chuàng)建一個新的關(guān)鍵幀時,就會啟動位置識別,嘗試檢測與地圖集中已經(jīng)存在的任何關(guān)鍵幀的匹配。
1.3.1 Lucas-Kanade光流
在Lucas-Kanade光流(圖4)中,可以把相機(jī)采集到的圖像當(dāng)作是關(guān)于時間的函數(shù),在圖像中位于坐標(biāo)(x,y)出的像素點(diǎn)在t時刻的灰度值可以寫成I(x,y,t)。圖像中t時刻位置為(x,y)的像素點(diǎn),在t+1時刻它在圖像中的位置將會變?yōu)?x+dx,y+dy),而這兩個位置的像素灰度值應(yīng)該是相同的,即I(x+dx,y+dy,t+dt)=I(x,y,t)。
圖4 Lucas-Kanade光流Fig.4 Lucas-Kanade optical flow
由于灰度不變,則有
I(x+dx,y+dy,t+dt)=I(x,y,t)
(1)
對左邊進(jìn)行泰勒展開,保留一階項,得
I(x+dx,y+dy,t+dt)≈
(2)
由于有灰度不變假設(shè)[21]這個前提條件,于是下一個時刻的灰度等于之前的灰度,從而
(3)
兩邊同除以dt,得
(4)
(5)
式中,Ix是像素點(diǎn)在圖像中x方向的梯度;Iy是像素點(diǎn)在圖像中y方向的梯度。
當(dāng)t取離散時刻時,通過多次迭代運(yùn)算后就可以估計部分像素在若干個圖像中出現(xiàn)的位置,從而實現(xiàn)像素點(diǎn)得跟蹤。
1.3.2 相鄰幀特征狀態(tài)判別法
為了在室內(nèi)場景中相鄰圖像幀間進(jìn)行動態(tài)特征的檢測和辨別,本文設(shè)計了一種基于Lucas-Kanade光流的幀間特征狀態(tài)判別法:首先,采用光流法進(jìn)行特征匹配,獲得匹配點(diǎn)的像素坐標(biāo);然后,根據(jù)相機(jī)模型得到上一幀相機(jī)坐標(biāo)系下空間點(diǎn)的三維坐標(biāo),之后利用坐標(biāo)變換求出該空間點(diǎn)在下一幀相機(jī)坐標(biāo)系下的三維坐標(biāo),再進(jìn)行投影變換得到該空間點(diǎn)在下一幀圖像中的像素坐標(biāo);最后,計算匹配點(diǎn)與投影點(diǎn)間的距離。認(rèn)定當(dāng)該距離超過閾值時,判定此特征點(diǎn)為動態(tài)點(diǎn),即特征狀態(tài)發(fā)生了改變。
這里記p1、p2為一對匹配正確的點(diǎn)對,它們在圖像中的像素坐標(biāo)記為
(6)
根據(jù)相機(jī)模型,恢復(fù)得到上一幀圖像中相機(jī)坐標(biāo)系下空間點(diǎn)的三維坐標(biāo)P
(7)
利用坐標(biāo)變換,可得空間點(diǎn)在下一幀相機(jī)坐標(biāo)系下的三維坐標(biāo)P′
P′=TP
(8)
(9)
若距離d大于一定閾值時,即可判定此特征點(diǎn)為動態(tài)點(diǎn)。具體算法過程如圖5所示。
在本文涉及的視覺SLAM范圍內(nèi),語義信息反映的是圖像中特征點(diǎn)屬于不同事物類別的概率情況,語義信息獲取的途徑是采用計算機(jī)視覺技術(shù)對圖像內(nèi)容進(jìn)行檢測并識別。在對圖像的語義信息進(jìn)行捕捉和提取時, 有多種相互關(guān)聯(lián)又存在一定區(qū)別的任務(wù),本文僅對比目標(biāo)檢測、語義分割和實例分割3種任務(wù)過程,如圖6所示。
圖5 基于Lucas-Kanade光流的幀間特征狀態(tài)判別法Fig.5 Inter-frame feature state discrimination method based on Lucas-Kanade optical flow
以圖6為例,目標(biāo)檢測的主要過程是檢測出圖中所包含的人和動物,再對其進(jìn)行逐個標(biāo)注,然后用矩形框圈出以展示其邊界所在;語義分割是實現(xiàn)對人和動物像素級的分類任務(wù), 為了更為直觀地展示分割效果,通常使用不同的顏色對其進(jìn)行填充和覆蓋;而實例分割則能夠具體標(biāo)出每只羊,并且精確到每個羊?qū)嶓w的邊緣,而不是將圖像中的所有羊視為一個整體進(jìn)行定位和分類。
目標(biāo)檢測、語義分割和實例分割這3種方法均可為經(jīng)典的視覺SLAM系統(tǒng)及建圖結(jié)果提供較豐富的語義信息,因此本文研究在ORB-SLAM3的3個線程基礎(chǔ)之上加入了兩個線程,分別是動態(tài)特征檢測線程和圖像處理線程,語義信息與傳統(tǒng)ORB-SLAM3的融合系統(tǒng)架構(gòu)如圖7所示。動態(tài)特征檢測線程位于圖像IMU輸入端與跟蹤線程之間,該線程首先采用RANSAC算法完成了剔除特征匹配過程中產(chǎn)生的誤匹配點(diǎn),隨后結(jié)合Lucas-Kanade光流設(shè)計了相鄰幀特征狀態(tài)判別法,以實現(xiàn)在室內(nèi)場景中對相鄰圖像幀間進(jìn)行動態(tài)特征的檢測和辨別,從而減輕動態(tài)特征點(diǎn)對前端視覺里程計的干擾和影響程度。圖像處理線程則接收來自跟蹤線程篩選出的關(guān)鍵幀,采用基于深度學(xué)習(xí)的YOLOV4目標(biāo)檢測算法對關(guān)鍵幀語義信息進(jìn)行分類和標(biāo)注,然后運(yùn)用基于Mask-RCNN和CRF的算法策略對圖像進(jìn)行語義分割和邊緣優(yōu)化操作,最后將經(jīng)過圖像處理線程后的圖像映射到經(jīng)閉環(huán)優(yōu)化后的點(diǎn)云地圖上進(jìn)行語義融合,最終形成一張完整的三維語義點(diǎn)云地圖。
圖6 圖像識別的3種類型[22]Fig.6 Three types of image recognition[22]
1.5.1 Mask R-CNN算法
從網(wǎng)絡(luò)結(jié)構(gòu)上來看,相比于Faster R-CNN,Mask R-CNN增加了一個用于預(yù)測Mask的模塊,Mask的作用是為輸入的目標(biāo)對象添加編碼,采用正方形的矩陣對每一個ROI[23]進(jìn)行預(yù)測,這是為了維持ROI中的信息完整且避免發(fā)生丟失。
Mask-RCNN使用Resnet101作為主干特征提取網(wǎng)絡(luò),對應(yīng)著圖8中的CNN部分。ResNet101有兩個最基礎(chǔ)的模塊,分別為Conv Block和Identity Block[24],二者的結(jié)構(gòu)如圖9和圖10所示,Identity Block輸入和輸出的維度是相同的,因此可以串聯(lián)多個;而Conv Block輸入和輸出的維度是不相同的,因此不能連續(xù)串聯(lián),原因是它的作用就是為了改變特征向量的維度[25]。
1.5.2 YOLOV4算法
YOLO是一個能實現(xiàn)端到端目標(biāo)檢測的算法,算法內(nèi)部僅包含一個獨(dú)立的卷積網(wǎng)絡(luò)模型(如圖11所示,效果圖來自開源目標(biāo)檢測算法試驗)。YOLO算法經(jīng)過了多次迭代,如今已經(jīng)發(fā)展到Y(jié)OLOV4,其作為前代版本YOLOV3的改進(jìn)版,在YOLOV3的基礎(chǔ)上增加了非常多的細(xì)節(jié)技巧,并且很好地結(jié)合了速度與精度。且實際效果上,YOLOV4在YOLOV3的基礎(chǔ)上,保證FPS不下降的情況下,使mAP提升到了44%(在MS COCO數(shù)據(jù)集上的驗證)。
圖7 融合語義信息的ORB-SLAM3系統(tǒng)架構(gòu)Fig.7 ORB-SLAM3 system architecture integrating semantic information
圖8 Mask-RCNN網(wǎng)絡(luò)結(jié)構(gòu)Fig.8 Mask-RCNN network structure
圖9 Conv Block結(jié)構(gòu)Fig.9 Conv Block structure
YOLOV3采用的是Darknet53結(jié)構(gòu),它由一系列殘差網(wǎng)絡(luò)[26]構(gòu)成,在Darknet53中存在一個resblock_body模塊,它由一次下采樣和多次殘差結(jié)構(gòu)的堆疊構(gòu)成,而在YOLOV4中,其對該部分進(jìn)行了一定的修改:①將DarknetConv2D的激活函數(shù)由LeakyReLU修改成了Mish,卷積塊由DarknetConv2D_BN_Leaky變成了DarknetConv2D_BN_Mish;②將resblock_body的結(jié)構(gòu)進(jìn)行修改,使用了CSPnet結(jié)構(gòu)。此時YOLOV3當(dāng)中的Darknet53被修改成了CSPDarknet53,則當(dāng)輸入是608×608時,其特征結(jié)構(gòu)如圖12所示。
圖10 Identity Block結(jié)構(gòu)Fig.10 Identity Block structure
圖11 YOLOV4算法實現(xiàn)[25]Fig.11 YOLOV4 algorithm implementation[25]
圖12 YOLOV4網(wǎng)絡(luò)結(jié)構(gòu)Fig.12 YOLOV4 network structure
YOLOV4的CIOU將目標(biāo)對象與錨框間的距離、覆蓋率及懲罰類都加入了計算結(jié)果的范圍內(nèi),使得目標(biāo)框的回歸計算更加精準(zhǔn),而不會如IOU或GIOU一般出現(xiàn)訓(xùn)練過程無法收斂的情況,CIOU公式如下
(10)
式中,ρ2(b,bgt)分別為預(yù)測框和真實框的中心點(diǎn)的歐氏距離;c為能夠同時包含預(yù)測框和真實框的最小閉包區(qū)域的對角線距離;α是權(quán)重函數(shù);影響因子αv把預(yù)測框長寬比擬合目標(biāo)框的長寬比考慮進(jìn)去。α和v的公式如下
(11)
(12)
則對應(yīng)的LOSS為
(13)
試驗環(huán)境:處理器為Intel(R) Core(TM)i7-8700 CPU @3.20 GHz,配有8 GB RAM和Windows10系統(tǒng),硬盤容量1TB SSD,配置Tensorflow的深度學(xué)習(xí)框架、OpenCV及其他依賴庫。本文試驗基于Windows平臺,通過Python語言編程實現(xiàn),應(yīng)用深度學(xué)習(xí)框架Tensorflow作為后端的Keras搭建網(wǎng)絡(luò)模型,下載安裝對應(yīng)版本的CUDA和CUDNN。
試驗數(shù)據(jù)集:MS COCO[27]數(shù)據(jù)集,其來自微軟2014年出資標(biāo)注的Microsoft COCO數(shù)據(jù)集,它是一個體量巨大且內(nèi)容豐富的用于物體檢測分割的數(shù)據(jù)集。該數(shù)據(jù)集注重對環(huán)境內(nèi)容的理解,全部從復(fù)雜的日常環(huán)境中獲取,圖像中目標(biāo)對象的標(biāo)定是采用精準(zhǔn)分割確定的具體位置。COCO數(shù)據(jù)集平均每張圖片包含3.5個類別和7.7個實例目標(biāo),僅有不到20%的圖片只包含一個類別,僅有10%的圖片包含一個實例目標(biāo)。因此,COCO數(shù)據(jù)集不僅數(shù)據(jù)量大,種類和實例數(shù)量也多。
對于多分類目標(biāo)檢測模型而言,分別計算每個類別的TP(true positive)、FP(false positive)及FN(false negative)的數(shù)量。TP代表預(yù)測框分類預(yù)測正確并且CIOU大于設(shè)定閾值的預(yù)測框數(shù)量;FP代表預(yù)測框與真實框分類預(yù)測錯誤或者分類預(yù)測正確但是兩者CIOU小于閾值的預(yù)測框數(shù)量;FN代表未被預(yù)測出來真實框的數(shù)量。
精確率Precision代表預(yù)測框中預(yù)測正確的比例,公式如下
(14)
召回率Recall代表所有真實框中被預(yù)測出的比例,公式如下
(15)
AP代表某一分類的精度,即在0~1之間所有Recall值對應(yīng)的Precision的平均值。mAP代表多分類檢測模型中所有類別的AP均值,mAP的值越大,表示該模型的定位與識別的準(zhǔn)確率越高。mAP50表示當(dāng)檢測框與目標(biāo)框CIOU值大于0.5時,算正類樣本,本文的評價均使用mAP50作為評價指標(biāo)來判別模型的效果。
試驗采用經(jīng)典目標(biāo)檢測數(shù)據(jù)集對YOLOV4模型進(jìn)行訓(xùn)練并得到訓(xùn)練權(quán)重,然后對使用ORB-SLAM3系統(tǒng)跟蹤線程處理過的關(guān)鍵幀圖像進(jìn)行目標(biāo)檢測,得到的結(jié)果如圖13所示,可以看出室內(nèi)場景的檢測效果更好,關(guān)鍵幀中的每個對象擁有更高的置信度。
表1 目標(biāo)檢測試驗分析
室外圖像的平均精度值mAP1值為0.810,室內(nèi)圖像的平均精度值mAP2值為0.900,可以認(rèn)為YOLOV4模型算法對室內(nèi)場景下采集到的關(guān)鍵幀圖像目標(biāo)檢測試驗效果更好。
圖13 室內(nèi)外目標(biāo)檢測試驗Fig.13 Indoor and outdoor target detection experiment
為了更好地完成對關(guān)鍵幀圖像的語義分割試驗,本節(jié)專門針對圖像中物體的分割邊緣進(jìn)行了優(yōu)化策略,即融合全連接條件隨機(jī)場CRF的Mask R-CNN算法。在傳統(tǒng)研究中,全連接條件隨機(jī)場CRF通常被用于優(yōu)化并完善帶有部分噪聲的分割圖像,全連接條件隨機(jī)場的能量函數(shù)為
(16)
(17)
試驗首先將數(shù)據(jù)集放在系統(tǒng)中一個具體目錄下,下載MS COCO 2012數(shù)據(jù)集,并對Mask R-CNN網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,得到卷積神經(jīng)網(wǎng)絡(luò)的初始權(quán)重;然后運(yùn)行train.py,使用數(shù)據(jù)集對網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練后的網(wǎng)絡(luò)權(quán)重;在預(yù)測階段,使用訓(xùn)練后的Mask R-CNN模型融合全連接條件隨機(jī)場CRF對使用ORB-SLAM3系統(tǒng)跟蹤線程處理過的關(guān)鍵幀圖像進(jìn)行語義分割,得到的結(jié)果如圖14其中虛線部分是預(yù)測的物體的邊界框,同時在上方標(biāo)出了每個物體標(biāo)示出的類別名稱和置信度,圖14分別對比了室內(nèi)外場景下融合全連接條件隨機(jī)場CRF的語義分割和未融合的分割效果,可以明顯看出目標(biāo)對象邊緣的細(xì)節(jié)部分當(dāng)屬融合算法的效果更好。
同樣觀察mAP的值對試驗結(jié)果進(jìn)行分析和評價,則對于所有檢測對象類,分析結(jié)果見表2。
表2 語義分割試驗分析
最終融合后的分割mAP值為0.929,大于未融合算法的mAP,則可認(rèn)為融合后的Mask R-CNN模型算法對采集到的關(guān)鍵幀圖像語義分割效果更好且精度更高。
本文針對經(jīng)典SLAM系統(tǒng)的前端視覺里程計部分,完成基于RANSAC算法的剔除誤匹配點(diǎn)試驗,驗證其良好的匹配和優(yōu)化效果;研究ORB-SLAM3系統(tǒng)的各個線程模塊后提出一種基于Lucas-Kanade光流法的相鄰幀特征狀態(tài)判別法;使用YOLOV4目標(biāo)檢測算法和融合全連接條件隨機(jī)場CRF的Mask R-CNN語義分割算法對ORB-SLAM3中的關(guān)鍵幀圖像進(jìn)行處理,將以上兩部分作為兩個獨(dú)立的新線程中融入ORB-SLAM3系統(tǒng)中,形成一個優(yōu)化改進(jìn)后的完整視覺框架。
最終的試驗結(jié)果表明本文提出的改進(jìn)算法對關(guān)鍵幀圖像的處理精度較高,且每個對象的語義標(biāo)注效果較好,極大程度地豐富了圖像語義信息。在此基礎(chǔ)之上的研究可以更好地進(jìn)行三維點(diǎn)云語義地圖的構(gòu)造與建立,有效提高機(jī)器人等智能設(shè)備對室內(nèi)環(huán)境的感知能力。