李 波 肖 勇
(武漢數(shù)字工程研究所 武漢 430205)
近年來無人船市場(chǎng)增長(zhǎng)迅速,為無人船安全航行提供保障的自主導(dǎo)航技術(shù)也在不斷地發(fā)展[1~2]。如何實(shí)現(xiàn)自主定位和環(huán)境感知是無人船實(shí)際應(yīng)用時(shí)的關(guān)鍵問題之一。在許多涉及到無人船應(yīng)用的場(chǎng)景中,比如路徑規(guī)劃[3]、自主航行[4]、環(huán)境感知等,定位與創(chuàng)建地圖的過程被視作是先決條件。視覺SLAM(Simultaneous Localization and Mapping)算法可以借助視覺傳感器,在沒有環(huán)境先驗(yàn)信息的情況下,在運(yùn)動(dòng)過程中創(chuàng)建周圍環(huán)境的地圖,同時(shí)進(jìn)行自主定位。
ORB-SLAM 算法(Orinted FAST and BRIEF-Simultaneous Localization and Mapping)是一種完全基于稀疏特征點(diǎn)的單目視覺SLAM 算法,包括視覺里程計(jì)、特征提取、回環(huán)檢測(cè)等流程,其核心是使用ORB(Orinted FAST and BRIEF)作為核心特征[5~8]。但是,ORB-SLAM 算法構(gòu)建的地圖無法提供周圍環(huán)境中物體的語義信息,視覺傳感器獲取的圖像信息未能得到充分利用。因此,ORB-SLAM 算法只能解決無人船自主導(dǎo)航的問題,卻無法對(duì)航行過程中通過視覺傳感器拍攝到的物體進(jìn)行智能識(shí)別。
Mask R-CNN 算法是近年來非常具有代表性的基于深度學(xué)習(xí)的實(shí)例分割算法,可被應(yīng)于目標(biāo)檢測(cè)、目標(biāo)關(guān)鍵點(diǎn)檢測(cè)與實(shí)例分割等領(lǐng)域[9~12]?,F(xiàn)實(shí)中大量的物體會(huì)有復(fù)雜且不規(guī)則的邊界形狀,而邊界形狀的精確預(yù)測(cè)對(duì)于整個(gè)實(shí)例的分割影響重大,Mask R-CNN 算法對(duì)物體實(shí)例邊界識(shí)別的精度略有欠缺。
綜上,現(xiàn)有的ORB-SLAM 方法雖然可以解決無人船的自主定位與地圖創(chuàng)建問題,但是無法對(duì)航行過程中拍攝到的物體進(jìn)行類型識(shí)別,現(xiàn)有的Mask R-CNN 算法雖然可以進(jìn)行實(shí)例分割獲取語義信息,但其對(duì)物體邊界的精確識(shí)別還略有欠缺。因此,提供一種用于無人船生成三維語義地圖的方法,既能支撐無人船自主地位與地圖創(chuàng)建,又能對(duì)航行中遇到的物體智能識(shí)別,以增強(qiáng)無人船在執(zhí)行航行、探索等任務(wù)時(shí)的效率,是當(dāng)前無人船技術(shù)領(lǐng)域的當(dāng)務(wù)之急。
無人船生成三維語義地圖主要包括獲取關(guān)鍵幀、關(guān)鍵幀實(shí)例分割、三維點(diǎn)云地圖更新、特征融合和構(gòu)建三維語義地圖等步驟,如圖1所示。
1)獲取關(guān)鍵幀:無人船在航行過程中借助視覺傳感器連續(xù)采集圖像幀,獲得圖像幀序列,利用ORB-SLAM 算法來處理圖像幀序列中的連續(xù)圖像幀以獲得初始化的三維點(diǎn)云地圖,同時(shí),通過對(duì)從連續(xù)圖像幀提取的特征點(diǎn)進(jìn)行判斷來獲得連續(xù)的關(guān)鍵幀;
2)關(guān)鍵幀實(shí)例分割:使用Mask R-CNN 算法對(duì)連續(xù)的關(guān)鍵幀進(jìn)行實(shí)例分割,獲得連續(xù)的關(guān)鍵幀中各關(guān)鍵幀包含的物體實(shí)例,并對(duì)這些實(shí)例進(jìn)行語義標(biāo)注,轉(zhuǎn)至步驟4);
3)三維點(diǎn)云地圖更新:在初始化的三維點(diǎn)云地圖中加入連續(xù)的關(guān)鍵幀,實(shí)現(xiàn)對(duì)三維點(diǎn)云地圖的更新,轉(zhuǎn)至步驟4);
4)特征融合:從連續(xù)關(guān)鍵幀中可以提出各關(guān)鍵幀的特征點(diǎn),并獲得各關(guān)鍵幀的物體實(shí)例,與上一個(gè)關(guān)鍵幀的特征點(diǎn)和物體實(shí)例進(jìn)行匹配,綜合特征點(diǎn)以及物體實(shí)例匹配的結(jié)果對(duì)各關(guān)鍵幀的位姿估計(jì)結(jié)果進(jìn)行局部非線性優(yōu)化,從而獲得各關(guān)鍵幀攜帶的物體實(shí)例語義標(biāo)注信息;
5)構(gòu)建三維語義地圖:將連續(xù)的關(guān)鍵幀中各關(guān)鍵幀攜帶的物體實(shí)例語義標(biāo)注信息與各關(guān)鍵幀在三維點(diǎn)云地圖上的坐標(biāo)進(jìn)行關(guān)聯(lián),完成對(duì)三維點(diǎn)云地圖的語義標(biāo)注,獲得三維語義地圖。
實(shí)例分割是一種將語義分割和目標(biāo)檢測(cè)相結(jié)合的技術(shù),相對(duì)于目標(biāo)檢測(cè)的邊界框,實(shí)例分割可以得到更加精確的物體邊緣;相對(duì)于語義分割,實(shí)例分割能夠區(qū)分出同一物體的不同個(gè)體。對(duì)關(guān)鍵幀進(jìn)行實(shí)例分割主要是為了獲取每幀關(guān)鍵幀中所有物體實(shí)例。
本文采用的實(shí)例分割算法是Mask R-CNN。Mask R-CNN 算法可以同時(shí)進(jìn)行目標(biāo)檢測(cè)與實(shí)例分割,并獲得極佳的效果。Mask R-CNN 的處理過程可以分為兩個(gè)階段,第一個(gè)階段對(duì)關(guān)鍵幀進(jìn)行掃描同時(shí)生成提議,即可能包含一個(gè)目標(biāo)的區(qū)域;第二階段將提議有效分類,之后便能生成邊界框和掩碼。
具體的處理流程如圖2 所示:在主干網(wǎng)絡(luò)(Backbone)中輸入連續(xù)的關(guān)鍵幀,通過從關(guān)鍵幀中提取特征獲得特征圖(Feature map);在特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,F(xiàn)PN)中輸入獲得的特征圖,將特征圖中低分辨率、高語義信息的高層特征和高分辨率、低語義信息的低層特征進(jìn)行自上而下的側(cè)邊連接,從而使所有尺度下的特征都有充足的語義信息;在RPN(Region proposal Net,區(qū)域建議網(wǎng)絡(luò))中輸入經(jīng)過FPN 處理過的特征圖,RPN是一個(gè)輕量的神經(jīng)網(wǎng)絡(luò),它用滑動(dòng)窗口來掃描圖像,并尋找存在目標(biāo)的區(qū)域,RPN 網(wǎng)絡(luò)會(huì)在特征圖中生成候選區(qū)域,對(duì)每一個(gè)RPN 獲得的候選區(qū)域,執(zhí)行RoIAlign 操作,經(jīng)過RoIAlign 處理后每個(gè)RoI都可以產(chǎn)生固定尺寸的特征圖;這些處理過的特征圖之后被用在兩個(gè)分支:一個(gè)是classifier 分支,用于生成回歸框和預(yù)測(cè)類別;另一個(gè)是Mask分支,用于生成掩碼。
圖2 改進(jìn)的Mask R-CNN實(shí)例分割算法模型
一般情況下,物體會(huì)有復(fù)雜且不規(guī)則的邊界形狀,邊界形狀的精確識(shí)別能極大地影響無人船智能識(shí)別前方物體的準(zhǔn)確度。因此,為了使邊緣的分割精度提升,本文在Mask 通路之后增加一個(gè)邊界細(xì)化模塊(Boundary refinement,BR),該模塊借助一個(gè)殘差結(jié)構(gòu)來優(yōu)化生成的掩碼,以進(jìn)一步擬合實(shí)例邊界,能極大提升邊界處的識(shí)別能力。
本文為了完成對(duì)掩碼的優(yōu)化,使用聯(lián)合訓(xùn)練損失函數(shù),該聯(lián)合訓(xùn)練損失函數(shù)L的公式為
其中,Lcls表示目標(biāo)檢測(cè)時(shí)對(duì)興趣區(qū)域目標(biāo)類別預(yù)測(cè)的交叉熵,即為分類誤差;Lbox表示目標(biāo)檢測(cè)時(shí)對(duì)興趣區(qū)域位姿修正的損失函數(shù),即為檢測(cè)誤差;Lmask表示執(zhí)行語義分割任務(wù)時(shí)預(yù)測(cè)的掩碼與實(shí)際掩碼的逐像素交叉熵之和,即為分割誤差。其中,Lmask為平均二值交叉熵?fù)p失函數(shù),該公式表示為
其中,y表示二值化后正確標(biāo)記的數(shù)據(jù),表示二值化后預(yù)測(cè)的分割結(jié)果。然而,在執(zhí)行分割任務(wù)時(shí),交叉熵?fù)p失函數(shù)由于過于依賴區(qū)域信息而忽略對(duì)邊界信息的預(yù)測(cè),導(dǎo)致在最終的分割結(jié)果中邊界分割的準(zhǔn)確度不高。
本文在Lmask中加入BWL(邊界加權(quán)損失函數(shù)),來優(yōu)化生成的掩碼。Lmask-bwl是優(yōu)化后的公式,可表示為
其中,Ldis表示邊界加權(quán)損失函數(shù),α 表示權(quán)重系數(shù),B 表示分割結(jié)果的邊界,R 表示整個(gè)分割區(qū)域,Mdist表示正確標(biāo)記的數(shù)據(jù)分割邊框的距離變換,相當(dāng)于一個(gè)距離圖。這樣相當(dāng)于在Lmask增加了邊框損失的權(quán)重,可以得到精確度更高的分割結(jié)果。
通過邊界細(xì)化模塊處理后可以獲得關(guān)鍵幀中的物體實(shí)例,經(jīng)過classifer 分支處理后可以獲得物體的類別信息,兩者結(jié)合最終獲得Mask R-CNN 算法的處理結(jié)果,即關(guān)鍵幀中的物體實(shí)例及其語義標(biāo)注信息。使用Mask R-CNN 算法對(duì)連續(xù)的關(guān)鍵幀處理完后,可在后續(xù)進(jìn)行特征融合。
該過程需融合特征點(diǎn)匹配和實(shí)例匹配對(duì)ORB-SLAM 的位姿估計(jì)結(jié)果進(jìn)行局部非線性優(yōu)化,得到攜帶物體實(shí)例語義標(biāo)注信息的關(guān)鍵幀。對(duì)關(guān)鍵幀進(jìn)行實(shí)例分割和特征編碼后,獲得了每幀關(guān)鍵幀圖像內(nèi)所有物體實(shí)例的特征描述向量,可以利用空間金字塔匹配算法來計(jì)算兩個(gè)實(shí)例的特征描述向量之間相似度。
進(jìn)行位姿估計(jì)時(shí),假定k-1 時(shí)刻圖像幀中特征坐標(biāo)為pik-1,該特征對(duì)應(yīng)的三維地圖點(diǎn)在世界坐標(biāo)系下的坐標(biāo)為piw。通過特征匹配,獲得k 時(shí)刻圖像幀中對(duì)應(yīng)的特征坐標(biāo)為pik。借助位姿變換和投影函數(shù),獲得該三維地圖點(diǎn)在k 時(shí)刻圖像幀中的坐標(biāo)。在之前的過程中只估計(jì)了兩幀圖像間的相機(jī)位姿。進(jìn)一步地,在創(chuàng)建地圖的過程中,通過地圖點(diǎn)的共視關(guān)系,建立局部地圖,獲得局部地圖點(diǎn),局部關(guān)鍵幀,固定關(guān)鍵幀集合,固定地圖點(diǎn)集合。當(dāng)前關(guān)鍵幀觀測(cè)到的地圖點(diǎn)為局部地圖點(diǎn),觀測(cè)到局部地圖點(diǎn)的關(guān)鍵幀為局部關(guān)鍵幀。被局部關(guān)鍵幀觀測(cè)到,而沒有被當(dāng)前關(guān)鍵幀觀測(cè)到的地圖點(diǎn)為固定地圖點(diǎn),觀測(cè)到固定地圖點(diǎn)而不屬于局部關(guān)鍵幀的關(guān)鍵幀為固定關(guān)鍵幀。
通過結(jié)合實(shí)例的特征描述向量和實(shí)例的空間位置相似度對(duì)實(shí)例進(jìn)行有效地跟蹤與匹配,完成實(shí)例的識(shí)別與目標(biāo)關(guān)聯(lián),從而有效區(qū)分場(chǎng)景中形狀外觀相同的實(shí)例,提高實(shí)例匹配和物體識(shí)別的準(zhǔn)確率。
將攜帶物體實(shí)例語義標(biāo)注信息的關(guān)鍵幀映射到實(shí)例三維點(diǎn)云中,構(gòu)建出三維語義地圖。采用OpenGL 可以進(jìn)行點(diǎn)云的融合和更新,進(jìn)而拼接成全局點(diǎn)云地圖。在全局三維點(diǎn)云地圖生成的同時(shí),進(jìn)行語義標(biāo)注,將關(guān)鍵幀的像素級(jí)語義標(biāo)注結(jié)果映射到對(duì)應(yīng)的點(diǎn)云地圖上,根據(jù)無人船位姿變換矩陣,可將每一個(gè)像素點(diǎn)的相機(jī)坐標(biāo)轉(zhuǎn)換為世界坐標(biāo),最后根據(jù)每個(gè)像素點(diǎn)所對(duì)應(yīng)的三維空間坐標(biāo),將關(guān)鍵幀圖像的二維語義分割結(jié)果映射到對(duì)應(yīng)的三維點(diǎn)云地圖上,完成三維點(diǎn)云地圖的語義標(biāo)注任務(wù),最終生成需要的語義地圖。
仿真實(shí)驗(yàn)考慮周圍環(huán)境的復(fù)雜度和算法的難度,事先選擇適量的位置固定的特征點(diǎn)當(dāng)作先驗(yàn)信息,此時(shí)無人船的三維語義地圖生成過程是一個(gè)部分環(huán)境信息給定的同步定位與語義地圖創(chuàng)建的過程。仿真實(shí)驗(yàn)中無人船從起點(diǎn)出發(fā)執(zhí)行任務(wù),在行駛軌跡周圍有著適當(dāng)數(shù)量的環(huán)境特征,算法處理過程和仿真結(jié)果如圖3所示。
圖3 無人船生成三維語義地圖方法仿真
圖3(a)表示無人船生成三維語義地圖方法處理過程,而圖3(b)則是算法處理后獲得的對(duì)環(huán)境特征位置及自身位置的估計(jì)結(jié)果。圖3(b)中的紅色線表示無人船在行駛過程中對(duì)自身位置的估計(jì),而實(shí)際軌跡則是起始點(diǎn)、三個(gè)轉(zhuǎn)折點(diǎn)與終點(diǎn)組成的閉合圖形,通過對(duì)比可知仿真實(shí)驗(yàn)中算法對(duì)無人船軌跡的估計(jì)與其實(shí)際運(yùn)動(dòng)的軌跡大體上是一致的。圖3(b)用藍(lán)色圓圈表示環(huán)境特征的估計(jì)位置,用紅點(diǎn)表示環(huán)境特征的實(shí)際位置,從圖中可以看出算法對(duì)環(huán)境特征的估計(jì)基本上趨近于最優(yōu)估計(jì)。通過圖3(a)可知算法處理過程中獲得的環(huán)境特征預(yù)測(cè)點(diǎn)都在特征點(diǎn)實(shí)際位置附近,隨著特征點(diǎn)數(shù)量增加,無人船生成三維語義地圖的方法收斂效果越好。
當(dāng)前仿真驗(yàn)證了無人船生成三維語義地圖方法在創(chuàng)建環(huán)境地圖方面的準(zhǔn)確性,后續(xù)將結(jié)合語義信息開展仿真實(shí)驗(yàn)驗(yàn)證其在識(shí)別物體上的準(zhǔn)確性。
本文主要對(duì)無人船生成三維語義地圖進(jìn)行研究,三維語義地圖生成是未知環(huán)境下無人船進(jìn)行自主導(dǎo)航的關(guān)鍵問題,具有重要的研究?jī)r(jià)值和應(yīng)用價(jià)值。針對(duì)ORB-SLAM 方法無法對(duì)航行過程中拍攝到的物體進(jìn)行類型識(shí)別的缺陷,結(jié)合Mask R-CNN提出了一種無人船生成三維語義地圖方法。針對(duì)傳統(tǒng)的Mask R-CNN 算法在識(shí)別物體邊界時(shí)精確度略有欠缺的問題,增加邊界細(xì)化模塊并優(yōu)化損失函數(shù),提升Mask R-CNN 算法對(duì)物體邊界識(shí)別的精確性。通過仿真實(shí)驗(yàn)驗(yàn)證了無人船生成三維語義地圖方法在創(chuàng)建環(huán)境地圖方面的準(zhǔn)確性,后續(xù)將進(jìn)一步驗(yàn)證其在識(shí)別物體上的準(zhǔn)確性。