伍宣衡,高 貴,2,王忠美,薛子豪,龍永紅
(1.湖南工業(yè)大學(xué) 軌道交通學(xué)院,湖南 株洲 412007;2.西南交通大學(xué) 地球科學(xué)與環(huán)境工程學(xué)院,四川 成都 610000)
同步定位與建圖(simultaneous localization and mapping,SLAM)技術(shù),在過去幾十年的快速發(fā)展過程中日益成熟,被認(rèn)為是機(jī)器人實(shí)現(xiàn)自主導(dǎo)航的關(guān)鍵技術(shù)之一。經(jīng)典的SLAM 系統(tǒng)架構(gòu),主要由傳感器數(shù)據(jù)的讀取、視覺里程設(shè)計(jì)(visual odometry,VO)、后端優(yōu)化、閉環(huán)檢測和地圖構(gòu)建5 個部分組成[1]。同時,通過所搭載傳感器的不同,又可以分為視覺SLAM(vision simultaneous localization and mapping,V-SLAM)、激光SLAM 和多傳感器融合的SLAM。閉環(huán)檢測作為SLAM 中的一部分,一直是一個熱點(diǎn)研究問題[2],因?yàn)榫_的閉環(huán)檢測可以對SLAM 系統(tǒng)進(jìn)行重定位,并能減少在前端視覺里程計(jì)中所帶來的漂移誤差,從而提高地圖精度[3]。
視覺SLAM 的閉環(huán)檢測問題,是指移動機(jī)器人在導(dǎo)航過程中,通過攝像頭傳感器輸入的圖像數(shù)據(jù)來識別前期去過的地方,在一定程度上可將其視為圖像識別與檢索問題。傳統(tǒng)的V-SLAM閉環(huán)檢測主要依賴于人工設(shè)計(jì)的特征進(jìn)行設(shè)計(jì),對于圖像特征的提取,常采用尺度不變特征變換(scale-invariant feature transform,SIFT)、加速穩(wěn)健特征(speeded up robust features,SURF)、加速分段試驗(yàn)特征(features from accelerated segment test,F(xiàn)AST),以及定向fast 特征點(diǎn)提取和旋轉(zhuǎn)brief 描速子(oriented fast and rotated brief,ORB)圖像局部特征等。在目前較為成熟的傳統(tǒng)視覺閉環(huán)檢測中,為減少圖像匹配間的計(jì)算量,有學(xué)者開發(fā)出了基于視覺單詞包(bag of visual word,BoVW)[4]和費(fèi)希爾向量(Fisher vector,F(xiàn)V)[5]等的閉環(huán)檢測方法。詞袋模型的關(guān)鍵,在于如何選取最優(yōu)的局部特征,故在傳統(tǒng)方法中,需要用不同方法將圖像特征提取后再進(jìn)行相應(yīng)匹配。例如,在快速外觀映射(fast appearance-based mapping,F(xiàn)AB-MAP)[6]中引入BoVW,由于其對局部圖像特征的提取中所用的SIFT 和SURF 等描述子具有尺度不變性,因此FAB-MAP 在閉環(huán)檢測中有較好的性能,基于ORB特征提取的主流傳統(tǒng)ORB-SLAM2[7]系統(tǒng)在相機(jī)運(yùn)動視角變換時有較強(qiáng)的魯棒性,且系統(tǒng)的實(shí)時性較高,但是對于外界光照變化的影響不夠魯棒。由于這些基于人工設(shè)計(jì)的特征是一種低層特征[8],因此圖像在真實(shí)的復(fù)雜環(huán)境中,易受到光照、視點(diǎn)變換等因素的影響,且會嚴(yán)重影響算法效果,缺乏必要的魯棒性,從而使得移動機(jī)器人的閉環(huán)檢測精確性下降。
近年來,隨著深度學(xué)習(xí)技術(shù)在圖像中的不斷發(fā)展,在SLAM 中也有相應(yīng)的應(yīng)用,利用深度神經(jīng)網(wǎng)絡(luò)在特征提取上與閉環(huán)檢測相結(jié)合,例如將VGG16(visual geometry group)與NetVLAD 池化層相融合的閉環(huán)檢測[9],可以提高算法魯棒性,但在圖像描述子提取上較為耗時。V-SLAM 中的閉環(huán)檢測可被視為圖像識別與檢索問題,故在一系列圖像中,找出相似度最高的圖像是閉環(huán)檢測目標(biāo)。深度學(xué)習(xí)多采用歐式空間數(shù)據(jù)的特征提取,而圖神經(jīng)網(wǎng)絡(luò)(graph neural network,GNN)可處理非歐式空間,例如節(jié)點(diǎn)分類、鏈接預(yù)測和聚類等問題。本文擬在基于SuperGlue 架構(gòu)基礎(chǔ)上,通過前期將圖像的局部特征提取出來,采用圖神經(jīng)網(wǎng)絡(luò)訓(xùn)練一個中間端,對不同圖像進(jìn)行相似度匹配,從而實(shí)現(xiàn)V-SLAM閉環(huán)檢測。
S.Paule 等人于2020年提出來的SuperGlue[10],是一種基于圖神經(jīng)網(wǎng)絡(luò)的特征匹配算法,其主要采用基于空間方法的圖注意力網(wǎng)絡(luò),通過前端輸入的關(guān)鍵點(diǎn)和描述子,將不同圖像之間的匹配關(guān)系輸出。其主要構(gòu)架由注意力圖神經(jīng)網(wǎng)絡(luò)(attentional graph neural network,AGNN)[11]和最優(yōu)匹配層(optimal matching layer)[12]兩部分組成,圖1 是SuperGlue 的基礎(chǔ)框架結(jié)構(gòu)示意圖。由圖1 可以看出,SuperGlue 是一個中間端,其主要是將局部特征點(diǎn)的匹配轉(zhuǎn)化為可微最優(yōu)傳輸問題。

圖1 SuperGlue 的基礎(chǔ)架構(gòu)圖Fig.1 SuperGlue’s infrastructure diagram
SuperGlue 中的注意力圖神經(jīng)網(wǎng)絡(luò)模塊中,前端輸入是兩幅圖的關(guān)鍵點(diǎn)位置信息p和描述子d,通過關(guān)鍵點(diǎn)編碼器中的多層感知機(jī)(multilayer perceptron,MLP)對關(guān)鍵點(diǎn)位置信息進(jìn)行升維,并與描述子進(jìn)行耦合,得到各特征點(diǎn)初始信息(0)xi,
式中MLPenc為關(guān)鍵點(diǎn)編碼器的多層感知機(jī)。
多重圖神經(jīng)網(wǎng)絡(luò)[13]中主要采用自注意力和交叉注意力兩種機(jī)制,對于前端輸入的兩幅圖imageA和imageB中所有關(guān)鍵點(diǎn)上使用無向圖,且將邊拆分為兩個獨(dú)立集合,一個邊連接單幅圖像中所有關(guān)鍵點(diǎn)集合εself,另一個邊則連接跨圖像關(guān)鍵點(diǎn)集合εcross,故更新后圖像imageA或imageB第l層特征點(diǎn)信息為
式中:[·||·]為串聯(lián)操作,且其中ε∈{εself,εcross};mε→i為通過自注意力和交叉注意力機(jī)制處理后,聚合所有特征點(diǎn){j:(i:j)∈ε}的信息,且
其中αij為注意力權(quán)重,vj為元素值。
消息傳遞機(jī)制如下:在奇數(shù)層,即l=1 時,信息使用自邊緣傳播;偶數(shù)層,即l=2 時,使用交叉邊緣傳播。在多頭注意力機(jī)制中,對特征信息的匹配類似于數(shù)據(jù)庫檢索,創(chuàng)建3 個向量qi、ki和vi,即通過查詢基于元素qi的屬性ki鍵盤,檢索到某些元素的值vi。注意力權(quán)重
按照Paul-Edouard Sarlin 理解,采用自注意力和交叉注意力機(jī)制是模仿人眼來回瀏覽兩幅圖像間不同處,自注意力機(jī)制可使得特征具有匹配特異性,而交叉注意力機(jī)制則利用特異性的特征點(diǎn)做圖像間的相似度比較。利用兩種注意力機(jī)制來回增強(qiáng),重復(fù)L次,所得匹配描述子再經(jīng)過一個線性投影輸出后為
在某種程度上,該操作可以理解為將圖像中所有的邊都近似去除,使得所有的節(jié)點(diǎn)之間相互獨(dú)立,這樣可以在后續(xù)對相互獨(dú)立的節(jié)點(diǎn)進(jìn)行計(jì)算等操作。
最優(yōu)匹配層表示將每個可能對應(yīng)的匹配概率進(jìn)行一個分配矩陣P計(jì)算,根據(jù)輸入圖像A中每個關(guān)鍵點(diǎn)只能與圖像B的關(guān)鍵點(diǎn)匹配這一準(zhǔn)則,構(gòu)建一個軟分矩陣S來計(jì)算兩幅圖像間的匹配分?jǐn)?shù),即
但是移動機(jī)器人在運(yùn)動過程中,由于機(jī)器視點(diǎn)變化或者動態(tài)目標(biāo)的遮擋會導(dǎo)致特征點(diǎn)不匹配這一實(shí)際問題,SuperGlue 的最優(yōu)匹配層在輸入圖像特征點(diǎn)的提取上,增加了一個輔助垃圾箱(dustin)通道,以此匹配其他圖像中的任何不匹配關(guān)鍵點(diǎn),即當(dāng)圖像A中的M個特征點(diǎn)都無法與圖像B中的N個特征點(diǎn)進(jìn)行相應(yīng)匹配時,就可以將M個特征點(diǎn)視為與在N個特征點(diǎn)后再加一層輔助垃圾箱層,故
通過式(6)和(7)可以看出,如果特征點(diǎn)i和j真實(shí)匹配,則軟分矩陣Si,j的值最大,于是在加入輔助垃圾箱通道后,需要找到最佳匹配點(diǎn)的問題可以轉(zhuǎn)化為在(M+1,N+1)中找出各點(diǎn)的映射分配矩陣P,使得軟分矩陣Si,j最大,故約束條件如下:
這樣就將匹配問題轉(zhuǎn)換為最優(yōu)傳輸問題,采用Sinkhorn[14]算法進(jìn)行求解。因Sinkhorn 算法能在確保精準(zhǔn)分配的同時,在熵正則化的作用下使得分配矩陣偏向均勻化,且關(guān)鍵點(diǎn)與輔助垃圾箱通道之間的匹配分?jǐn)?shù)是一個可學(xué)習(xí)參數(shù),于是使用Sinkhorn 算法來計(jì)算部分分配矩陣,當(dāng)經(jīng)過T次迭代后,將輔助垃圾箱通道丟棄,且恢復(fù)分配矩陣P=P1:M,1:N。
V-SLAM閉環(huán)檢測的最終目的是將當(dāng)前幀圖像與之前所有幀圖像進(jìn)行匹配,找出匹配度最高的相似圖像,從而實(shí)現(xiàn)一個閉環(huán)過程。故本文在進(jìn)行V-SLAM的閉環(huán)檢測時,輸入為當(dāng)前幀與之前的每一幀,并采用SuperPoint[15]網(wǎng)絡(luò)模型提取其局部特征點(diǎn),這在SuperGlue 架構(gòu)的前端輸入可視為相同。
SuperGlue 的前端局部特征點(diǎn)檢測算法采用響應(yīng)分?jǐn)?shù)選擇關(guān)鍵點(diǎn)時,會出現(xiàn)具有最高響應(yīng)的關(guān)鍵點(diǎn)集中在圖像中的某一小部分的現(xiàn)象,一旦與頂部響應(yīng)關(guān)鍵點(diǎn)過濾相結(jié)合后,會在圖像中留下一大塊幾乎沒有關(guān)鍵點(diǎn)的區(qū)域。于是在對SuperGlue 進(jìn)行訓(xùn)練時,由于可用資源的限制,對于前端局部特征點(diǎn)的選取,采用固定數(shù)量的關(guān)鍵點(diǎn),以便進(jìn)行高效批處理。
SuperPoint 在對關(guān)鍵點(diǎn)的選取上采用非最大抑制(non-maximum suppression,NMS)。NMS 從檢測階段就過濾相應(yīng)候選關(guān)鍵點(diǎn),并僅保留其鄰近區(qū)域中響應(yīng)最大的關(guān)鍵點(diǎn)。用于非最大抑制的內(nèi)核大小選擇9,固定2 048 個響應(yīng)最高的關(guān)鍵點(diǎn)進(jìn)行提取,經(jīng)前端局部特征點(diǎn)提取實(shí)驗(yàn)后,在匹配方面有較明顯的改進(jìn)效果。首先,在整個前端局部特征點(diǎn)訓(xùn)練過程中,每張圖像的關(guān)鍵點(diǎn)數(shù)量會隨著裁剪增強(qiáng)處理而減少;其次,頂部響應(yīng)后的過濾使得每張圖像上的關(guān)鍵點(diǎn)傳遞數(shù)量不超過1 024 個。因一個批次中可包含有不同數(shù)量檢測到的關(guān)鍵點(diǎn)圖像,故需在批次中選擇最小數(shù)量的關(guān)鍵點(diǎn)進(jìn)行堆疊,從而過濾掉得分最低的關(guān)鍵點(diǎn)。
在SuperGlue 中,對于關(guān)鍵點(diǎn)的位置信息采用多層感知器進(jìn)行編碼,這種關(guān)鍵點(diǎn)編碼器可以與視覺信息即描述子相結(jié)合,在訓(xùn)練過程中用于前向傳播。故前饋網(wǎng)絡(luò)為圖像中的每個關(guān)鍵點(diǎn)生成的位置編碼,在V-SLAM閉環(huán)檢測中,將層數(shù)設(shè)置為3 層,且全連接層之后是RELU 激活和批標(biāo)準(zhǔn)化。
多重注意力網(wǎng)絡(luò)和最優(yōu)匹配層在整體架構(gòu)中是可以反向傳播的,故在網(wǎng)絡(luò)訓(xùn)練中采用監(jiān)督學(xué)習(xí)方式。將前端輸入的兩張圖像A和B所構(gòu)成的真值匹配矩陣視為學(xué)習(xí)目標(biāo),一旦給定真值標(biāo)簽后,最小化分配矩陣P的負(fù)對數(shù)似然函數(shù)為[16]
圖2所示為一個場景匹配效果圖,這兩張圖像看起來相似,但實(shí)際上卻并不是同一場景,即假陽性,故在最后的識別中不能構(gòu)成一個閉環(huán)的判別。

圖2 圖像A 和B 的匹配效果圖Fig.2 Matching renderings of images A and B
基于多重注意力機(jī)制的圖神經(jīng)網(wǎng)絡(luò)閉環(huán)檢測算法流程如圖3所示。

圖3 基于圖神經(jīng)網(wǎng)絡(luò)的閉環(huán)檢測算法流程圖Fig.3 Flow chart of loop closure detection algorithm based on graph neural network
具體檢測步驟如下:
步驟1前端輸入的兩張圖像分別為查詢圖像和數(shù)據(jù)集圖像,通過訓(xùn)練好的局部特征提取網(wǎng)絡(luò)模型,得到相應(yīng)的特征點(diǎn)。
步驟2對特征點(diǎn)進(jìn)行非最大抑制處理后,再對其進(jìn)行歸一化處理,使其取值范圍為[-1,1]。
步驟3將關(guān)鍵點(diǎn)和位置信息輸入關(guān)鍵點(diǎn)位置編碼器內(nèi),經(jīng)過多層感知器升維到與局部特征的描述子維度一樣。
步驟4將位置編碼信息與局部描述子同時輸入多重注意力機(jī)制網(wǎng)絡(luò)中,重復(fù)L次。
步驟5以多層注意力機(jī)制網(wǎng)絡(luò)處理后得到的匹配描述子構(gòu)建軟分矩陣,再經(jīng)過Sinkhorn 算法得到分配矩陣P。
步驟6根據(jù)所得到的分配矩陣進(jìn)行閾值設(shè)定,判斷是否形成閉環(huán)。
本實(shí)驗(yàn)中,所用的計(jì)算機(jī)環(huán)境為Python3.2 和PyTorch1.10.1 等,且為了驗(yàn)證基于SuperGlue 閉環(huán)檢測算法性能,將其與基于BoW、VGG16、FABMAP、AutoEncoder 和PlaceCNN 的閉環(huán)檢測算法進(jìn)行比較。實(shí)驗(yàn)中,將描述子設(shè)為256 維,用5 個多層感知機(jī)將位置信息與關(guān)鍵點(diǎn)進(jìn)行編碼,編碼后的位置編碼信息映射到(3,32,64,128,256),多種注意力機(jī)制網(wǎng)絡(luò)中的自注意力機(jī)制和交叉注意力機(jī)制間的重復(fù)層數(shù)設(shè)為9 層。之所以設(shè)置為9 層,是因?yàn)橥ㄟ^對比每層可視化關(guān)鍵點(diǎn)匹配后的結(jié)果,發(fā)現(xiàn)在第9 層中能將較難的關(guān)鍵點(diǎn)進(jìn)行匹配。SuperGlue在MegaDepth 數(shù)據(jù)集中進(jìn)行訓(xùn)練,這是一種包含大量深度室外圖像的數(shù)據(jù)集,方便后續(xù)圖像跟蹤等系列任務(wù),使用Adam 優(yōu)化器,且最優(yōu)傳輸算法Sinkhorn的迭代次數(shù)為100。
關(guān)于閉環(huán)檢測實(shí)驗(yàn)的數(shù)據(jù)集,選用牛津大學(xué)公開的City Centre 和New College 兩個數(shù)據(jù)集進(jìn)行測試。其中City Centre 數(shù)據(jù)集中包含較多的行人和車輛等動態(tài)對象;而New College 數(shù)據(jù)集不僅包含動態(tài)對象,還保留了較多會導(dǎo)致閉環(huán)檢測出現(xiàn)誤判的復(fù)雜視覺元素,例如相似度較高的墻壁和草地等。兩個數(shù)據(jù)集都是采用布置在一左一右的車載相機(jī)所拍攝的圖像。拍攝時間戳為每約隔1.5 m 拍攝1 次,分別拍攝尺寸為640×480 的2 474,2 146 張圖像,圖像保存格式為.jpg,且在圖像命名編號中,編號為奇數(shù)表示左側(cè)車載相機(jī)拍攝圖像,偶數(shù)表示右側(cè)車載相機(jī)拍攝圖像。數(shù)據(jù)集中同時給定圖像軌跡真實(shí)坐標(biāo)信息,若圖像i和圖像j所示為同一地點(diǎn)形成的閉環(huán)區(qū)域,則二維矩陣(i,j)為1,否則為0,故該數(shù)據(jù)集是一種應(yīng)用最廣泛的閉環(huán)檢測驗(yàn)證數(shù)據(jù)集,具體信息見表1。

表1 數(shù)據(jù)集詳細(xì)信息Table 1 Dataset details
數(shù)據(jù)集中存在一左一右兩組場景圖像,區(qū)分時,本文并沒有將其分組標(biāo)注選出單獨(dú)實(shí)驗(yàn),而是在程序中設(shè)置間隔跳躍圖像序列采集。值得注意的是,由于圖像序列是每間隔1.5 m 采集圖像1 次,這在一定程度上存在圖像序列N到L之間容易造成閉環(huán)檢測的誤判出現(xiàn),從而降低了算法性能,這樣是無意義的檢測。故在圖像的選擇上,采用類似于連續(xù)跳躍間隔序列方法[17],分別在City Centre 和New College 兩個數(shù)據(jù)集中將L設(shè)置為200 和50。
為能更好地對不同算法進(jìn)行對比,在V-SLAM中,確定對閉環(huán)檢測的評價指標(biāo)為準(zhǔn)確率-召回率和平均準(zhǔn)確率。因在閉環(huán)檢測中會出現(xiàn)感知混疊問題,如同一地方拍攝的圖像可能會在不同時刻受到光照影響,導(dǎo)致圖像辨識度低,稱為假陰性(false negative);還可能出現(xiàn)感知偏差情景,即兩個不同地方所拍攝的照片在視覺上看起來相似,稱為假陽性(false positive),得到的閉環(huán)檢測結(jié)果分類見表2。

表2 閉環(huán)檢測分類結(jié)果Table 2 Classification results of loop closure detection
檢測中準(zhǔn)確率和召回率的計(jì)算公式如下:
式中:ηprecision為準(zhǔn)確率;ηrecall為召回率;TP為真陽性(true positive,TP);FP為假陽性(false positive,F(xiàn)P);FN為假陰性(false negative,F(xiàn)N);TN為真陰性(true negative,TN)。
閉環(huán)檢測的準(zhǔn)確率即在檢測出所有的閉環(huán)中得到真實(shí)的閉環(huán)概率,召回率即在所有真實(shí)的閉環(huán)中能正確被檢測出閉環(huán)的概率。兩者間存在一種矛盾關(guān)系,即當(dāng)隨著閉環(huán)檢測召回率增大時,其準(zhǔn)確率會隨之下降,這是因當(dāng)提高閉環(huán)檢測算法中某個閾值時,會使得檢測算法變得更嚴(yán)謹(jǐn),導(dǎo)致所檢測出的閉環(huán)個數(shù)減少,從而使得準(zhǔn)確率提高。但正因?yàn)樗鶛z測閉環(huán)個數(shù)下降,可能導(dǎo)致原來是閉環(huán)的地方被遺漏,令其召回率下降。如果選擇寬松的算法配置環(huán)境,會使算法所檢測出閉環(huán)的個數(shù)增加,召回率提高,但容易出現(xiàn)一些不是閉環(huán)的情況也被算法檢測出來,導(dǎo)致準(zhǔn)確率下降。值得注意的是,在V-SLAM閉環(huán)檢測中,所更多注重的是閉環(huán)檢測的準(zhǔn)確率,對召回率的要求相對寬松,因此希望在召回率較大的同時其準(zhǔn)確率可保持好的表現(xiàn),故采用準(zhǔn)確率-召回率曲線反映閉環(huán)檢測中的綜合性能指標(biāo)。在閉環(huán)檢測數(shù)據(jù)集中,通過檢查統(tǒng)計(jì)出這4 個值,在一定程度上希望TP和TN的值盡量高,而FP和FN的值盡量低[18]。
平均準(zhǔn)確率是指準(zhǔn)確率-召回率曲線在坐標(biāo)軸上圍成的面積,也是衡量算法的重要指標(biāo),在一定程度上,曲線所圍面積越大,閉環(huán)檢測的算法性能越好。
為了驗(yàn)證本文算法的實(shí)際效果,將實(shí)驗(yàn)檢測結(jié)果與基于BoW、FAB-MAP、PlaceCNN、VGG16 和AutoEncoder 等5 種V-SLAM閉環(huán)檢測算法的檢測結(jié)果進(jìn)行對比,且這5 種算法在對圖像序列相似度的評分上,都采用圖像序列特征向量間的歐氏距離,為確保實(shí)驗(yàn)一致性,假設(shè)兩圖像序列分別為Iq和Ip,序列總長度為n,設(shè)兩圖像序列的特征向量集合為δIq和δIp,且
故兩圖像序列之間的特征向量歐式距離為
在對圖像序列進(jìn)行搜索的過程中,通過設(shè)置歐氏距離閾值,以確定圖像序列是否達(dá)到閉環(huán)效果。與此同時,設(shè)置不同閾值以獲得V-SLAM閉環(huán)檢測準(zhǔn)確率-召回率間的關(guān)系曲線,所得結(jié)果見圖4。

圖4 兩個數(shù)據(jù)集不同算法的準(zhǔn)確率-召回率結(jié)果曲線Fig.4 Comparison diagram of accuracy recall result curves for two datasets with different algorithms
由圖4 可知,在City Center 公共數(shù)據(jù)集上,隨著召回率趨向于0,6 種算法的準(zhǔn)確率都為1;但是本文算法在召回率為0.346 的情況下都能維持準(zhǔn)確率為1,明顯比其余5 種算法的準(zhǔn)確率都要高。當(dāng)召回率增加到一定值時,隨著召回率增加,各種算法的精度開始下降。在New College 數(shù)據(jù)集上,本文算法在召回率為0.332 之前都維持準(zhǔn)確率為1,準(zhǔn)確率-召回率曲線大多位于坐標(biāo)系右上角。絕大多數(shù)時刻,在相同召回率下,本文算法的準(zhǔn)確率高于其他5 種閉環(huán)檢測算法的對應(yīng)值,這意味著本文所提出算法的準(zhǔn)確率和召回率更高。
為了進(jìn)一步直觀分析6 種閉環(huán)檢測算法的準(zhǔn)確率,采用了平均準(zhǔn)確率對閉環(huán)檢測算法的性能評價指標(biāo),具體結(jié)果如表3所示。

表3 6 種閉環(huán)檢測算法的平均準(zhǔn)確率Table 3 Average accuracy of six loop closure detection algorithms
分析表3 中6 種閉環(huán)檢測算法的平均準(zhǔn)確率值,可以得出:在City Centre 數(shù)據(jù)集中,與傳統(tǒng)的3 種閉環(huán)檢測算法相比,本文所提算法的平均準(zhǔn)確率比基于ORB 特征BoW 的對應(yīng)值約提高了125.5%,相比于FAB-MAP 閉環(huán)檢測算法的平均準(zhǔn)確率約提高了15.5%,與AutoEncoder 相比,平均準(zhǔn)確率約提高了184.7%,故本文算法比傳統(tǒng)人工設(shè)計(jì)特征的閉環(huán)檢測算法在準(zhǔn)確率上有較大優(yōu)勢。與兩種基于深度學(xué)習(xí)的算法相比較,本文算法的平均準(zhǔn)確率比基于PlaceCNN 的閉環(huán)檢測算法的對應(yīng)值約提高了25.3%,比基于VGG16 閉環(huán)檢測算法的平均準(zhǔn)確率約提高了75.3%。同樣,在New College 數(shù)據(jù)集中,本文算法與傳統(tǒng)的3 種閉環(huán)檢測算法相比,本文算法的平均準(zhǔn)確率比基于ORB 特征BoW 的平均準(zhǔn)確率約提高了87.6%,比FAB-MAP 的平均準(zhǔn)確率約提高了40.4%,且約是AutoEncoder 平均準(zhǔn)確率的3.3 倍,比基于PlaceCNN 的閉環(huán)檢測算法的平均準(zhǔn)確率約提高了83.9%,比VGG16 的平均準(zhǔn)確率約提高了47.7%。
在V-SLAM 系統(tǒng)中,閉環(huán)檢測模塊是一個比較重要的組成部分。在對判別圖像序列是否閉環(huán)的條件中,通常在圖像相似度閾值中采用一個固定閾值,本文對軟分配矩陣的分?jǐn)?shù)設(shè)置為0.3,為進(jìn)一步驗(yàn)證所選擇超參數(shù)閾值對算法的影響,加入了視覺里程設(shè)計(jì)(visual odometry,VO)模塊,通過選定匹配軟分矩陣的不同置信度閾值,以確定最終較為準(zhǔn)確的軟分配矩陣置信度閾值。在VO 模塊中,絕對軌跡誤差是估計(jì)位姿和真實(shí)位姿的直接差值[19],通過對比跟蹤軌跡的絕對誤差,確定本文算法與其他算法之間絕對軌跡誤差的區(qū)別。選用了SIFT、ORB 和SuperPoint 3 種特征提取方式,以及暴力匹配、Flann和SuperGlue 3 種匹配方式,得到的4 種組合算法分別為ORB_brute、SIFT_Flann、SuperPoint_Flann 和SuperPoint_SuperGlue;選用的數(shù)據(jù)集為室外場景的KIITI 序列0~10,一共11 個室外公路數(shù)據(jù)集。通過對比跟蹤軌跡的絕對誤差,驗(yàn)證本文算法所選用的判別閾值。本文實(shí)驗(yàn)中,在VO 模塊中繪制軌跡圖時,分別采用了兩種顏色描述,例如KIITI 序列05 的軌跡圖見圖5。

圖5 KIITI 序列05 的SG_VO_0.5 軌跡圖Fig.5 SG_VO_0.5 trajectory map of KIITI series 05
圖5 中,粗曲線(VO 模塊顯示為藍(lán)色)表示KIITI 序列真實(shí)軌跡,而較細(xì)曲線(VO 模塊顯示為紅色)則為跟蹤軌跡,并且在軌跡圖的右上角顯示了絕對軌跡誤差A(yù)vgError,為4.835 7 m,絕對軌跡誤差選用了均誤差(root mean square error,RMSE)的方式來計(jì)算,其計(jì)算式為
本文在對匹配的軟分矩陣置信度閾值選擇上,分別采用了0.2,0.3,0.4,0.5 共 4 個置信度閾值進(jìn)行比較,所得絕對軌跡誤差如圖6所示。

圖6 4 種置信度閾值的絕對軌跡誤差比較圖Fig.6 Comparison diagram of absolute trajectory errors for four confidence thresholds
由圖6 中可以看出,在不同軟分矩陣置信度閾值的絕對軌跡誤差比較中,選定置信度閾值為0.3 時,在多數(shù)的KIITI 公共集序列中,所造成的絕對軌跡誤差影響較小。因此,在此基礎(chǔ)上,深入對3 種不同匹配方式的絕對軌跡誤差進(jìn)行比較,將4 種算法分別運(yùn)用到VO 模塊中,所得絕對軌跡誤差數(shù)值見表4。

表4 絕對軌跡誤差值表Table 4 Absolute trajectory error value table
表4 中所示誤差結(jié)果表明,VO 模塊中,基于SuperGlue 匹配的VO 算法在選定軟分矩陣置信度閾值為0.3 時,在絕大多數(shù)KIITI 公共數(shù)據(jù)集序列上的絕對軌跡誤差遠(yuǎn)小于與其他3 種算法的對應(yīng)值,只在01、05、06 3 個圖像序列中的絕對軌跡誤差略高于SIFI_Flann 算法的對應(yīng)值,但隨著圖像幀數(shù)增加,其與真實(shí)軌跡的擬合度較強(qiáng),表明絕對軌跡誤差相對較小,證明在軌跡跟蹤任務(wù)上有不錯表現(xiàn),魯棒性較高。
本文提出了一種應(yīng)用于V-SLAM閉環(huán)檢測上的基于圖神經(jīng)網(wǎng)絡(luò)匹配算法,其通過前端局部特征檢測器將特征點(diǎn)提取出來,輸入基于SuperGlue 架構(gòu)上訓(xùn)練的一個端到端匹配中間件。在模型中采用了5 個多層感知機(jī),以減少計(jì)算量、調(diào)節(jié)通道尺寸,且添加了非線性用來提高抽象表征能力,最后在最佳匹配層中采用SinkHorn 算法,在確保匹配軟分矩陣的同時,由于熵正則化作用使得軟分配矩陣偏向均勻化。
本文通過在City Center 和New College 兩個公共數(shù)據(jù)集進(jìn)行V-SLAM閉環(huán)檢測測試,并與其余5 種在V-SLAM閉環(huán)檢測上具有代表性的基準(zhǔn)算法對比,得知本文所提方法具有較高的準(zhǔn)確率,且當(dāng)召回率維持在40%~50%時,準(zhǔn)確率還能保持在60%以上。但其存在如下不足:由于本文在最優(yōu)匹配層求解時,在SinkHorn 算法中增加了迭代次數(shù),因此導(dǎo)致V-SLAM耗時較長,時間復(fù)雜度較高,這樣對于V-SLAM 整體系統(tǒng)上的實(shí)時性不高,因此在未來的研究中,需要進(jìn)一步提高系統(tǒng)的實(shí)時性研究。