王曉華,李耀光,王文杰,張 蕾
(西安工程大學(xué) 電子信息學(xué)院,陜西 西安 710048)
基于視覺的機(jī)器人SLAM[1-2]在很多領(lǐng)域得到了廣泛應(yīng)用。為了能在地圖中對(duì)環(huán)境中的物體進(jìn)行直觀的表示[3],研究者做了大量的工作。文獻(xiàn)[4]將離線提取的物體實(shí)例信息存儲(chǔ)在識(shí)別碼中,機(jī)器人通過對(duì)識(shí)別碼的解讀,完成物體實(shí)例信息的獲取而建圖;文獻(xiàn)[5-6]將目標(biāo)識(shí)別線程并行加入到SLAM框架,物體被成功識(shí)別后被插入地圖,但其需要事先生成目標(biāo)模型。為了能實(shí)時(shí)構(gòu)建環(huán)境中的物體模型,文獻(xiàn)[7]設(shè)計(jì)了一種稠密SLAM建圖系統(tǒng),使機(jī)器人能夠以物體級(jí)別描述地圖場(chǎng)景。但地圖精度低,地圖中的物體實(shí)例不能很好地體現(xiàn)。
深度學(xué)習(xí)方法可以對(duì)環(huán)境中的物體實(shí)例進(jìn)行有效檢測(cè)和分割[8]而被引入視覺SLAM領(lǐng)域。文獻(xiàn)[9]將視覺SLAM算法與目標(biāo)檢測(cè)框架SSD[10]結(jié)合,生成帶有語義信息的地圖;文獻(xiàn)[11]利用目標(biāo)檢測(cè)網(wǎng)絡(luò)提取二維圖像標(biāo)簽,結(jié)合三維幾何信息構(gòu)建出稠密語義地圖; 文獻(xiàn)[12]提出的Mask Fusion系統(tǒng)不需要已知的對(duì)象模型實(shí)現(xiàn)地圖構(gòu)建,但語義分割網(wǎng)絡(luò)不能實(shí)時(shí)運(yùn)行;文獻(xiàn)[13]利用深度卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像進(jìn)行像素級(jí)分割,采用并行線程,實(shí)時(shí)提取實(shí)例信息。但是上述方法所使用的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,對(duì)硬件要求高。綜上所述,利用輕量級(jí)網(wǎng)絡(luò)對(duì)物體實(shí)例信息進(jìn)行提取,構(gòu)建高精度的SLAM點(diǎn)云地圖是研究者們要繼續(xù)探討的問題。
本文給出了一種融合目標(biāo)檢測(cè)和點(diǎn)云分割的視覺SLAM實(shí)例建圖方法。該方法以O(shè)RB-SLAM2算法[14]為框架,通過改進(jìn)的輕量級(jí)目標(biāo)檢測(cè)算法YOLOV4-tiny[15]來提升目標(biāo)實(shí)例的檢測(cè)精度;隨后將含有目標(biāo)檢測(cè)框的關(guān)鍵幀圖像進(jìn)行二維分割,分割結(jié)果與三維點(diǎn)云分割結(jié)果融合,快速實(shí)現(xiàn)對(duì)物體的實(shí)例分割;最后建立存儲(chǔ)物體實(shí)例信息的物體庫,設(shè)置相應(yīng)的匹配機(jī)制對(duì)物體庫進(jìn)行更新,構(gòu)建出高精度的實(shí)例級(jí)點(diǎn)云地圖。
機(jī)器人在現(xiàn)實(shí)場(chǎng)景下構(gòu)建地圖,需要快速對(duì)環(huán)境實(shí)例進(jìn)行檢測(cè)識(shí)別,輕量級(jí)的檢測(cè)模型具有更大的優(yōu)勢(shì)。本文使用的YOLOV4-tiny是一種輕量級(jí)檢測(cè)網(wǎng)絡(luò),利用2個(gè)不同尺度的YOLO Head輸出層,分別負(fù)責(zé)檢測(cè)大目標(biāo)物體和小目標(biāo)物體,具有更快的處理速度。但是其檢測(cè)精度相對(duì)于大型檢測(cè)網(wǎng)絡(luò)會(huì)有所下降,尤其是對(duì)小目標(biāo)物體的檢測(cè)?;诖?,通過調(diào)整網(wǎng)絡(luò)結(jié)構(gòu),運(yùn)用優(yōu)化策略,對(duì)YOLOV4-tiny算法進(jìn)行改進(jìn),提高檢測(cè)精度的同時(shí)兼顧實(shí)時(shí)性。
相比YOLOV4[16]的深層次結(jié)構(gòu)和巨大參數(shù)量,YOLOV4-tiny輕量級(jí)網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,網(wǎng)絡(luò)參數(shù)少,具有更快的檢測(cè)速度。由于YOLOV4-tiny在特征加強(qiáng)層只采用了1個(gè)特征金字塔結(jié)構(gòu)[17],沒有像YOLOV4那樣再進(jìn)行下采樣,導(dǎo)致特征信息提取不足;網(wǎng)絡(luò)深度不足也會(huì)導(dǎo)致高維空間中的冗余信息被過度利用,降低目標(biāo)檢測(cè)的準(zhǔn)確性。因此,為了保持精度和速度的平衡,設(shè)計(jì)2個(gè)相同的殘差網(wǎng)絡(luò)模塊[18]作為輔助模塊,提取更多的物體特征信息,增強(qiáng)模型對(duì)目標(biāo)的特征提取能力,降低檢測(cè)的誤差。殘差網(wǎng)絡(luò)模塊結(jié)構(gòu)如圖1所示。
圖 1 殘差網(wǎng)絡(luò)模塊結(jié)構(gòu)
圖1中,殘差網(wǎng)絡(luò)模塊首先利用2個(gè)3×3卷積提取全局特征,增加網(wǎng)絡(luò)深度,學(xué)習(xí)輸入圖像中更深層次的信息。原始的高維空間中含有冗余信息,會(huì)對(duì)目標(biāo)檢測(cè)造成影響,降低準(zhǔn)確率。隨后通過引入1×1的卷積層對(duì)其實(shí)現(xiàn)降維,加快網(wǎng)絡(luò)學(xué)習(xí)速度,減少冗余信息所造成的誤差,提高識(shí)別的精度。同時(shí)為了獲取更多目標(biāo)的細(xì)節(jié)信息,抑制無關(guān)物體所對(duì)應(yīng)的信息,使用通道注意力和空間注意力機(jī)制[19]提取更有效特征。由于淺層特征到深層特征的傳遞路徑較長(zhǎng),其邊緣信息特征容易丟失,導(dǎo)致數(shù)據(jù)利用率低、檢測(cè)精度不理想,為充分利用特征信息,采用級(jí)聯(lián)操作將第1個(gè)卷積網(wǎng)絡(luò)的輸出特征與空間注意力機(jī)制的輸出特征進(jìn)行特征融合,作為殘差網(wǎng)絡(luò)模塊的輸出特征,這樣保留了特征重復(fù)使用的特點(diǎn),提升數(shù)據(jù)利用效率。最后,將最終的殘差網(wǎng)絡(luò)輸出特征與骨干網(wǎng)絡(luò)中剩余網(wǎng)絡(luò)的輸出特征相結(jié)合,作為下一個(gè)骨干網(wǎng)絡(luò)的輸入特征,使改進(jìn)后的骨干網(wǎng)絡(luò)能夠提取出檢測(cè)對(duì)象的全局和局部特征,摒棄與檢測(cè)目標(biāo)無關(guān)的信息,進(jìn)一步提高檢測(cè)的準(zhǔn)確性。圖2為改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)。
圖 2 改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)
目標(biāo)檢測(cè)算法會(huì)輸出多個(gè)檢測(cè)邊框,原有的YOLOV4-tiny算法利用非極大值抑制(non-maximum suppression,NMS)算法[20]去除重復(fù)的檢測(cè)邊框,達(dá)到每個(gè)物體只有1個(gè)檢測(cè)結(jié)果的目的。若當(dāng)前檢測(cè)框和最高得分檢測(cè)框的交并比大于閾值時(shí),會(huì)直接將該檢測(cè)框的得分置零,這將導(dǎo)致重疊區(qū)域較大的目標(biāo)被漏檢,降低算法的平均檢測(cè)率。針對(duì)上述問題,采用Soft-NMS抑制算法[21]來提升性能。Soft-NMS抑制算法可將當(dāng)前檢測(cè)框得分乘以一個(gè)權(quán)重函數(shù),該函數(shù)會(huì)衰減與最高得分檢測(cè)框M有重疊的相鄰檢測(cè)框分?jǐn)?shù),越是與M框高度重疊的檢測(cè)框,其得分衰減越嚴(yán)重,但并不會(huì)將檢測(cè)框直接刪除。為此,本文選擇高斯函數(shù)為權(quán)重函數(shù),從而修改其刪除檢測(cè)框的規(guī)則,解決物體重疊時(shí)的檢測(cè)問題。所使用的高斯權(quán)重函數(shù)為
Si+1=Siexp(I(M,bi)2)/σ)
(1)
式中:bi為當(dāng)前檢測(cè)框;Si為當(dāng)前檢測(cè)框得分;σ為高斯函數(shù)的方差;I為交并比。
采用RGB-D相機(jī)作為視覺傳感器,可以獲取環(huán)境的二維彩色圖像和相應(yīng)像素的深度圖構(gòu)建出三維點(diǎn)云。而大多數(shù)三維點(diǎn)云分割算法僅僅利用環(huán)境中的三維點(diǎn)云信息進(jìn)行分割,忽略了對(duì)應(yīng)的二維圖像信息。為優(yōu)化實(shí)例層次的分割效果,得到準(zhǔn)確率更高的物體分割結(jié)果,設(shè)計(jì)一種融合二維圖像信息的三維點(diǎn)云分割方法。
1) 二維實(shí)例模型分割。采用GrabCut算法[22]對(duì)目標(biāo)檢測(cè)后的關(guān)鍵幀圖像進(jìn)行二維實(shí)例模型分割。用RGB三通道混合高斯模型(Gaussian mixture model,GMM)描述目標(biāo)模型和背景模型的像素分布,通過迭代學(xué)習(xí)獲取物體和無關(guān)背景的混合高斯模型參數(shù),評(píng)估分割的優(yōu)劣程度,得到最優(yōu)的物體分割結(jié)果。
2) 三維點(diǎn)云實(shí)例分割。物體的實(shí)例分割通過三維點(diǎn)云分割實(shí)現(xiàn),分割流程如圖3所示。
圖 3 三維點(diǎn)云分割
3)二維與三維信息融合。前述GrabCut算法的分割結(jié)果為L(zhǎng)={l1,l2,…,ln},li為目標(biāo)物體像素時(shí)取1,為無關(guān)背景像素時(shí)取0;三維點(diǎn)云分割算法的分割結(jié)果記為Γ,把兩者的分割結(jié)果進(jìn)行融合,優(yōu)化之后的算法可表示為
(2)
式中:d為物體的類別;μ為兩者融合時(shí)的篩選條件。融合后的改進(jìn)算法實(shí)現(xiàn)2種分割結(jié)果的性能互補(bǔ),使三維點(diǎn)云分割結(jié)果精度更高,提升目標(biāo)實(shí)例分割效果。
在原始ORB-SLAM2框架的跟蹤、建圖和回環(huán)檢測(cè)三線程結(jié)構(gòu)中加入YOLOV4-tiny目標(biāo)檢測(cè)線程、點(diǎn)云分割線程和物體庫構(gòu)建模塊,構(gòu)建本文建圖方法的整體框架,如圖4所示。
圖 4 系統(tǒng)整體框架
圖4中,跟蹤線程對(duì)RGB-D相機(jī)采集的環(huán)境信息進(jìn)行二維特征提取、匹配以及機(jī)器人位姿初始化;本文新建的目標(biāo)檢測(cè)線程對(duì)跟蹤線程中檢索的關(guān)鍵幀進(jìn)行物體實(shí)例檢測(cè)識(shí)別,得到環(huán)境中的實(shí)例信息;建圖線程利用關(guān)鍵幀生成點(diǎn)云,采用BA優(yōu)化刪除冗余的地圖點(diǎn)和關(guān)鍵幀,構(gòu)建出初始的點(diǎn)云地圖;新增加的點(diǎn)云分割線程將含有目標(biāo)檢測(cè)框的關(guān)鍵幀圖像進(jìn)行二維分割,融合三維點(diǎn)云分割結(jié)果,實(shí)現(xiàn)對(duì)物體實(shí)例的點(diǎn)云分割;最后通過物體庫進(jìn)行數(shù)據(jù)關(guān)聯(lián)和模型更新,實(shí)現(xiàn)面向物體實(shí)例的三維點(diǎn)云地圖構(gòu)建。而為了消除跟蹤過程中產(chǎn)生的累積誤差,回環(huán)檢測(cè)線程通過對(duì)回環(huán)位置和關(guān)鍵幀的檢測(cè),將匹配到的所有點(diǎn)云進(jìn)行對(duì)齊并融合重復(fù)的點(diǎn),采用圖優(yōu)化的方式來得到全局一致的地圖。
依前文所述方法構(gòu)建實(shí)例地圖的過程中,需要建立地圖物體庫存儲(chǔ)采集到的實(shí)例物體信息,該物體庫包含物體的屬性信息、類別與概率、中心坐標(biāo)、對(duì)應(yīng)的關(guān)鍵幀和目標(biāo)物體的三維點(diǎn)云模型。
為了提高建圖的效率,本文在SLAM建圖的數(shù)據(jù)關(guān)聯(lián)環(huán)節(jié)設(shè)置了篩選機(jī)制,在新目標(biāo)物體加入地圖中時(shí)進(jìn)行判定。對(duì)于新檢測(cè)到的物體,首先根據(jù)物體類別進(jìn)行篩選,然后計(jì)算新點(diǎn)云模型與物體庫中候選點(diǎn)云模型的點(diǎn)云重合度,如果重合度大于設(shè)定閾值,則認(rèn)為是同一個(gè)目標(biāo),完成物體實(shí)例與物品庫中對(duì)象的目標(biāo)關(guān)聯(lián),共同維護(hù)物體模型,否則添加新的物體模型,并更新物品庫中對(duì)象的屬性信息。
本文實(shí)驗(yàn)運(yùn)行平臺(tái)為Ubuntu 16.04 的操作系統(tǒng),處理器型號(hào)為GTX2080Ti Intel i7-6800k。在自己構(gòu)造的數(shù)據(jù)集和TUM數(shù)據(jù)集[24]上進(jìn)行了實(shí)驗(yàn),驗(yàn)證本文建圖方法的可行性。
4.1.1 數(shù)據(jù)集及評(píng)價(jià)指標(biāo) 在COCO數(shù)據(jù)集[25]的基礎(chǔ)上,結(jié)合實(shí)際的實(shí)驗(yàn)室環(huán)境,采集幾種常見的物體數(shù)據(jù)一起作為樣本數(shù)據(jù),構(gòu)建樣本數(shù)據(jù)集。將構(gòu)造的樣本數(shù)據(jù)集分成獨(dú)立的訓(xùn)練集、測(cè)試集和驗(yàn)證集3個(gè)部分,并在訓(xùn)練之前對(duì)數(shù)據(jù)集進(jìn)行了預(yù)處理。預(yù)處理的方式主要有使用原始圖片、對(duì)輸入圖像采用隨機(jī)尺度、圖片鏡像、隨機(jī)調(diào)整曝光和飽和度等。物體類別的選擇應(yīng)同實(shí)驗(yàn)場(chǎng)景的檢測(cè)相符合,主要完成6種室內(nèi)常見物體的目標(biāo)檢測(cè),分別為顯示器、鍵盤、鼠標(biāo)、椅子、杯子和書本。在檢測(cè)結(jié)果中會(huì)顯示為:Tvmonitor、Keyboard、Mouse、Chair、Cup和Book。
在構(gòu)建的數(shù)據(jù)集上測(cè)試目標(biāo)檢測(cè)算法的檢測(cè)精度和運(yùn)行效率,以平均精度均值(mean average precision,MAP)和每秒處理幀率(frames per second,F(xiàn)PS)作為衡量標(biāo)準(zhǔn),并與MobileNet-SSD,MobileNetV3,YOLOV3-tiny,YOLOV4-tiny等算法進(jìn)行比較。
4.1.2 實(shí)驗(yàn)結(jié)果與分析 本文算法與主流的輕量級(jí)目標(biāo)檢測(cè)算法的測(cè)試結(jié)果如表1所示。
表 1 不同算法測(cè)試結(jié)果
從表1可以看出,在模型體積相差不大的同等輕量級(jí)網(wǎng)絡(luò)YOLOV3-tiny和YOLOV4-tiny中,改進(jìn)的YOLOV4-tiny算法在精度方面分別提升了14.2%和8.1%,具有更好的檢測(cè)效果。這是由于增加的殘差模塊能提取更多的細(xì)節(jié)特征,網(wǎng)絡(luò)利用的特征信息更加豐富,使得檢測(cè)精度更高。為了更直觀地體現(xiàn)檢測(cè)效果,利用測(cè)試集和實(shí)驗(yàn)室場(chǎng)景圖像進(jìn)行可視化分析,測(cè)試結(jié)果如圖5所示。
(a) 正常場(chǎng)景測(cè)試 (b)昏暗場(chǎng)景測(cè)試 (c)實(shí)驗(yàn)室場(chǎng)景測(cè)試
從圖5(a)、(b)可以看出,改進(jìn)的目標(biāo)檢測(cè)算法對(duì)所訓(xùn)練的物體均能檢測(cè)識(shí)別,在光線昏暗和背景復(fù)雜的情況下也能保證識(shí)別精度。圖5(c)中的現(xiàn)實(shí)場(chǎng)景測(cè)試顯示,通過改進(jìn)的 YOLOV4-tiny 能有效識(shí)別環(huán)境中的顯示器、鍵盤、鼠標(biāo)、椅子、杯子以及書本,每個(gè)類別的物體對(duì)應(yīng)的顏色各不相同。
4.2.1 數(shù)據(jù)集及評(píng)價(jià)指標(biāo) 實(shí)驗(yàn)場(chǎng)景的選取為TUM數(shù)據(jù)集rgbd_dataset_freiburg1_desk,其中包含了600對(duì)RGB彩色圖像和深度圖像。為了評(píng)價(jià)分割方法的有效性,選取PCL點(diǎn)云庫中的區(qū)域增長(zhǎng)分割(regional growth segmentation,RGS)算法和基于凹凸性的分割(locally convex connected patches,LCCP)算法與所提方法進(jìn)行對(duì)比,從運(yùn)行時(shí)間和物體平均分割率兩個(gè)方面進(jìn)行分析,物體平均分割率表示對(duì)每一物體分割的正確率,衡量物體精準(zhǔn)分割的性能。
4.2.2 實(shí)驗(yàn)結(jié)果與分析 表2給出了不同點(diǎn)云分割算法在TUM數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果對(duì)比。
表 2 實(shí)驗(yàn)結(jié)果對(duì)比
從表2可以看出,所提分割方法在物體平均分割率上有明顯優(yōu)勢(shì)。與RGS算法和LCCP算法相比分別提升了23%和12%。利用本文方法能夠?qū)Νh(huán)境細(xì)節(jié)進(jìn)行分割,并且分割出更多的環(huán)境目標(biāo),在相同時(shí)間下有更好的分割精度。圖6為不同算法的點(diǎn)云分割結(jié)果圖。
(a) RGS算法 (b) LCCP算法 (c) 本文算法
從圖6可知,RGS算法的點(diǎn)云分割結(jié)果噪聲數(shù)據(jù)過多,LCCP算法對(duì)于環(huán)境中的小物體如水杯,鼠標(biāo)等目標(biāo)的提取不準(zhǔn)確,導(dǎo)致分割精度降低。由于本文方法先利用二維圖像分割算法進(jìn)行預(yù)處理,提升圖像中的目標(biāo)分割精度,再結(jié)合超體素聚類的方法進(jìn)行分割,不僅降低了時(shí)間成本,而且對(duì)環(huán)境中大部分小物體也能實(shí)現(xiàn)分割,有利于實(shí)例地圖構(gòu)建。
將上述目標(biāo)檢測(cè)和點(diǎn)云分割的方法作為單獨(dú)的線程加入ORB-SLAM2框架當(dāng)中,利用實(shí)驗(yàn)室環(huán)境對(duì)本文建圖方法的有效性進(jìn)行驗(yàn)證,并且在建圖精度和方法性能方面進(jìn)行評(píng)價(jià)。
通過圖7的地圖對(duì)比可以看出,圖7(a)所示原始ORB-SLAM2系統(tǒng)構(gòu)建的地圖精度較低,地圖中的物體實(shí)例輪廓不完整且重影大,鼠標(biāo)等小物體很難在地圖中被識(shí)別。圖7(b)則顯示本文方法構(gòu)建的點(diǎn)云地圖能夠更加直觀地表現(xiàn)出實(shí)例信息,地圖中物體輪廓表現(xiàn)的更加完整,地圖精度有明顯提升。
(a) ORB-SLAM2構(gòu)建的原始地圖
完成原始地圖與實(shí)例地圖的比較后,對(duì)真實(shí)環(huán)境構(gòu)建的地圖信息進(jìn)行時(shí)間分析,并添加與系統(tǒng)相似的主流方法作為參考,具體對(duì)比結(jié)果如表3所示。
表 3 不同建圖方法的對(duì)比
由于對(duì)物體實(shí)例進(jìn)行了目標(biāo)檢測(cè)和點(diǎn)云分割處理,本文構(gòu)建的實(shí)例地圖中所包含的點(diǎn)云數(shù)量大約為ORB-SLAM2構(gòu)建地圖的2倍,能夠提升物體點(diǎn)云的分割率,點(diǎn)云地圖中的物體實(shí)例輪廓更完整。同時(shí),檢測(cè)線程的增加,使得建圖過程的時(shí)間增加,結(jié)合YOLOV3的建圖方法由于檢測(cè)算法結(jié)構(gòu)復(fù)雜,雖然地圖中的點(diǎn)云數(shù)量增多,但對(duì)場(chǎng)景的單幀平均處理時(shí)間相較本文方法慢了0.08 s左右,本文對(duì)輕量級(jí)檢測(cè)算法YOLOV4-tiny的改進(jìn),有效提高了計(jì)算效率??傮w來說,本文建圖方法在保證運(yùn)行時(shí)間的同時(shí)能夠生成更精確的實(shí)例級(jí)點(diǎn)云地圖,驗(yàn)證了本文方法的可行性。
傳統(tǒng)視覺SLAM不能對(duì)周圍環(huán)境進(jìn)行實(shí)例信息感知,導(dǎo)致建圖精度不高,本文提出了一種基于視覺SLAM的實(shí)例建圖方法。在ORB-SLAM2系統(tǒng)框架下,首先采用改進(jìn)的YOLOV4-tiny輕量級(jí)目標(biāo)檢測(cè)網(wǎng)絡(luò)識(shí)別物體實(shí)例,兼顧實(shí)例信息提取的準(zhǔn)確性和實(shí)時(shí)性,相對(duì)于原檢測(cè)網(wǎng)絡(luò),檢測(cè)準(zhǔn)確率提升8.1%;其次,利用改進(jìn)的點(diǎn)云分割方法,將二維圖像信息與三維點(diǎn)云信息的分割結(jié)果進(jìn)行融合,提高對(duì)地圖中實(shí)例物體的分割精度;最后,通過構(gòu)建物體庫來進(jìn)行地圖維護(hù),實(shí)現(xiàn)三維物體實(shí)例的數(shù)據(jù)關(guān)聯(lián)與模型更新,構(gòu)建出精確的實(shí)例級(jí)點(diǎn)云地圖。實(shí)驗(yàn)結(jié)果表明,相較于原始的ORB-SLAM2建圖系統(tǒng),本文方法構(gòu)建的點(diǎn)云地圖能夠保留物體的實(shí)例信息,小物體也能很好的在地圖中被識(shí)別,地圖精度提升顯著。但本文方法的運(yùn)行時(shí)間有所增加,下一步的研究重點(diǎn)在于保證建圖精度的同時(shí)提升運(yùn)行效果。