王通典, 劉潔瑜, 吳宗收, 李文華, 沈 強
(火箭軍工程大學導彈工程學院,西安 710000)
同時定位與地圖構建(SLAM)是移動載體實現自主定位導航與路徑規劃的關鍵技術。視覺里程計在長時間、大范圍的位姿估計過程中,不可避免會導致累計誤差的產生,較大的累計誤差會嚴重影響定位精度,甚至導致算法收斂到完全錯誤的值。而閉環檢測是SLAM問題的重要組成部分[1],閉環檢測系統可以準確高效地檢測出當前場景是否存在于歷史場景中,從而消除里程計產生的累計誤差。
閉環檢測是通過對比當前場景與歷史場景的相似性從而判斷移動載體是否經過同一位置,該問題本質上是一個場景識別問題[2]。基于外觀相似性的閉環檢測方法是詞袋模型(BoW)方法[3]。詞袋模型的方法是對圖像提取的局部特征采用K-means的方式實現聚類生成視覺詞典,隨后對查詢的場景特征設置相應權重,將查詢場景的特征向量和歷史場景的特征向量利用單詞量化,進行相似性對比從而識別閉環。FAB-MAP[4]在BoW基礎上結合貝葉斯模型實現閉環檢測方法,該方法在構建觀測模型時采用LIU樹擬合詞匯間的拓撲關系,從而實現觀測概率計算,該方法在計算觀測似然時計算時間較長,為此后續提出了FAB-MAP2.0[5]以縮短算法用時。ANGELI等[6]將詞袋模型擴展到增量條件下,提出了一種增量式閉環檢測方法,無需離線訓練詞典,并結合SIFT特征和顏色直方圖實現特征的視角不變性,該方法利用貝葉斯濾波估計閉環概率實現了較高的準確率;針對大視角變化的閉環檢測問題,李維鵬等[7]選取場景中密集特征聚集成為一個顯著區域從而實現特征描述,結合貝葉斯濾波概率模型和BoW方法進行閉環判斷,有效提升大視角變化的閉環召回率;MURARTAL等[8]采用ORB特征構建詞袋模型實現閉環檢測算法,該算法通過不斷地提高篩選條件,多層篩選閉環候選幀,最終得到最優匹配的閉環結果。
上述方法采用局部特征構建詞袋模型實現閉環判斷。除此之外,還可以采用全局特征對圖像進行描述。MILFORD等[9]采用全局特征描述圖像基于序列匹配對閉環進行判斷,該方法具有一定的環境不變性,但是計算效率低;SIAM等[10]針對序列匹配的耗時問題進行改進;劉國忠等[11]采用ORB特征結合SURF特征對圖像進行全局描述,并采用改進的混合K最近鄰方法實現閉環查詢。因只對圖像進行全局描述,該方法具有較高的運行速率。
相較于局部描述特征,全局描述具有較好的外觀不變性,對環境變化具有較強的魯棒性,而局部描述特征具有較好的旋轉和尺度不變性,對視角變化和位姿變化較為魯棒。基于詞袋模型的方法雖具有廣泛的應用性,但仍存在一定問題。由于特征量化為單詞是無序的,從而會導致感知偏差問題,產生大量的誤匹配。
本文考慮單詞之間的拓撲關系,基于閉環概率模型,結合全局特征和局部特征,提出了一種多特征場景描述的閉環檢測方法,以提高場景描述的魯棒性,排除大部分的感知偏差問題。
本文算法首先對采集的圖像進行場景描述,采用兩種不同的特征空間進行場景描述:基于SURF局部特征的場景描述和基于ORB特征的全局描述。對于局部SURF特征進行特征單詞化,對于全局特征進行歸一化,融合局部特征和全局特征實現場景描述。隨后對單詞化的局部特征更新逆向索引,根據索引檢測可能閉環場景;對全局ORB特征檢索歷史幀中可能閉環場景。構建閉環概率模型,根據以上結果更新閉環候選幀的后驗概率。最后采用極限約束進一步篩選閉環幀。閉環檢測算法流程如圖1所示。

圖1 閉環檢測算法流程
詞袋模型的方法是對提取的特征進行聚類從而構建視覺字典。考慮SURF特征[12]較為穩定,對旋轉和尺度具有不變性,同時對仿射變換以及光照變化較為魯棒,本文的局部特征空間描述采用SURF特征。
SURF算法基于SIFT進行了改進,采用一種更高效的方式實現特征點的定位與特征描述計算。SURF算法在尺度空間通過計算Hessian矩陣行列式的局部極大值定位圖像的特征點,對于圖像特征點p=f(u,v)經過高斯濾波后Hessian矩陣構造如下
(1)
式中:Lxx(p,σ)為二階偏導與圖像的卷積;σ為尺度。則Hessian矩陣的行列式為
det(H)=DxxDyy-(0.9Dxy)2
(2)
式中:Dxx,Dxy,Dyy為特征點經過濾波的結果;在得到矩陣行列式后經過濾波得到響應點,構建尺度空間,通過將響應點與圖像空間鄰域8個點以及上下尺度空間鄰域中的18個點進行比較篩選出穩定的特征點。SURF特征點定位示意圖見圖2。

圖2 SURF特征點定位示意圖
在提取特征點后進行主方向分配,從而保證SURF特征的旋轉不變性。在提取的特征點圓形鄰域范圍內相對水平x方向以及豎直y方向計算Harr小波響應,隨后對x和y方向的小波響應進行高斯加權,加權后的值分別表示在水平和豎直方向的方向分量。以特征點為中心,在張角為π/3的扇形滑窗內計算Harr小波響應dx,dy的累加,即
(3)
滑窗以弧度間隔在圓形范圍內滑動,統計范圍內Harr小波特征響應,模長為
(4)
將模長最大響應值lmax對應的扇形方向θmax作為該特征的主方向,即
(5)
在得到特征點主方向后,生成該特征點對應的描述子。取特征點圖像鄰域的4×4區域塊生成矩形區域,將矩形區域旋轉至主方向,并統計各子矩形塊內的8個梯度方向的Harr小波特征,分別求和構成該子矩形塊的特征描述,將16個子矩形塊的特征描述合并從而形成該特征的描述符,該描述符由64維構成,即
A=(a1a2a3…a64)。
(6)
當進行場景描述時,對查詢的圖像首先提取SURF特征,并計算特征描述符。一幅圖像有ns(設定的提取數量)個特征,根據視覺詞典對特征描述符向量單詞化,以單詞對應索引存儲特征,由此得到局部特征場景描述。
全局特征描述采用ORB算法,該算法具有較高的運行速率,由FAST角點檢測和計算BRIEF描述子組成。FAST角點通過比較選定像素和周圍像素灰度差值進行檢測。以一定半徑圓上的像素和中心點像素的差值求和進行比較,大于設定閾值的中心點作為角點。ORB算法在尺度金字塔上提取FAST角點,增加ORB特征的尺度不變性,結合灰度質心法增加特征點的旋轉不變性。
BRIEF[13]描述子是一種二進制描述子,在提取的FAST角點的附近像素區域內選取256個點對,將點對的灰度值比較結果進行二進制編碼,從而得到一個256維的由0和1組成的二進制特征向量。選取的256個點對的矩陣為
(7)
為增加BRIEF描述子的旋轉不變性,采用灰度質心法進行補償。以特征點為中心,根據鄰域圖像灰度值I(x,y)計算圖像矩,即
(8)
根據鄰域圖像的圖像矩,計算鄰域圖像質心
(9)
根據特征點到質心z的矢量計算特征點的方向為
θ=arctan 2(m01,m10)。
(10)
以特征點方向θ作為旋轉矩陣Rθ,將Rθ與矩陣S相乘,由此得到具有旋轉不變性的Rotation BRIEF描述子。對于兩個描述子H1和H2相似性,本文采用漢明距離進行計算,即
(11)
式中:⊕為異或運算;bitsum(·)為對位進行計數;R為ORB特征描述符的全局空間。
本文的全局特征計算過程:首先對圖像進行預處理,即灰度化和均衡化;隨后對圖像進行下采樣,下采樣至60 像素×60 像素大小的圖像塊;對下采樣的圖像中心提取FAST角點并計算方向信息;以圖像中心作為中點,整個圖像作為鄰域計算BRIEF描述符,結合旋轉信息,以此作為整個圖像的全局場景描述。

(12)
(13)

(14)

(15)
式中,Zm為不同的特征空間場景描述。本文有兩個特征空間,即基于詞袋模型的SURF局部特征和ORB的全局描述,為此分別構建局部特征的觀測概率和全局特征的觀測概率。
不同尺度空間相互獨立,共同表示同一個圖像。本文基于詞袋模型的方法表示局部特征,為了避免與歷史圖像幀逐幀比較從而導致計算過于耗時,本文采用BoW方法的逆向索引結構[13]從大量的歷史圖像幀中匹配與當前圖像幀最相似的場景。對于當前圖像中的每一個單詞,逆向索引檢索該詞出現過的歷史圖像幀列表,當需要查詢可能的閉環歷史幀時,只需根據當前圖像幀的單詞索引歷史幀列表,從而找出單詞個數滿足要求的歷史幀場景,以實現快速檢索歷史圖像幀。
逆向索引結構算法如圖3所示。

圖3 逆向索引結構算法示意圖
考慮視覺字典樹中不同尺度空間特征的表征能力,不同于文獻[6]的方法,本文采用分層金字塔熵(Term Frequency-Inverse Document Frequency,TF-IDF[14])得分匹配計算似然概率,TF-IDF的熵為
(16)
式中:nw為單詞w在圖像It中出現的次數;n為圖像It出現的單詞總次數;Nw為包含單詞w的總圖像數,N為圖像總數;為整合不同層次的得分信息,設在第l層圖像It和Ii的匹配得分為
(17)
整合全部字典層的圖像匹配得分為
(18)
式中,參數k1表示底層單詞的權重系數,本文設置k1=2。對當前圖像的所有單詞矢量化并且根據式(16)計算得分后,觀測似然概率計算為
(19)
式中,σ1,μ1分別為當前幀與歷史幀匹配得分的均值和方差。當匹配得分高于均值和方差之和時,基于當前似然概率更新后驗概率。

(20)
dw對當前幀It和歷史圖像幀Ii的漢明距離進行加權,即
(21)
由此可得ORB全局特征的閉環觀測概率為
(22)
式中,σ2,μ2分別為當前幀與k個歷史幀匹配得分的均值和方差。當匹配得分高于均值和方差之和時,基于當前似然概率更新后驗概率。
在得到不同尺度空間的觀測似然概率,后驗概率的更新仍需要閉環先驗概率。先驗概率表征了當前圖像的閉環概率與歷史圖像閉環概率之間的拓撲關系,根據全概率公式,閉環先驗概率為
(23)

先驗概率分兩部分:t-1時刻后驗閉環概率以及轉移概率。轉移概率表征從t-1時刻到t時刻狀態轉移的可能性,本文分以下4種情況進行討論。




在視覺SLAM中,與圖像檢索問題不同,圖像幀是連續采集的,因此具有時間上的一致性。當計算出發生閉環的后驗概率,為盡可能減少詞袋模型方法在多歧義場景帶來的感知偏差問題,本文考慮時間一致性提出一種多步的閉環候選幀篩選方法。

3) 在得到閉環候選幀后,基于極線約束對閉環候選圖像幀進一步篩選排除錯誤閉環結果;對提取SURF特征進行特征匹配,RANSAC篩選內點,根據內點數量確定閉環圖像幀。
為驗證本文閉環檢測算法的有效性,采用牛津大學移動機器人研究小組公開的數據集New College和City Center進行驗證。數據集軌跡如圖4所示,黃色軌跡線表示相近運行軌跡,紅色表示發生閉環情況,分別由2146和2474張采集圖像組成,采集間隔為1.5 m。其中包含了較多的歧義場景,可以較全面地評估本文算法針對感知偏差的情況。對比算法采用FAB-MAP以及BoW方法,實驗硬件平臺參數如表1所示。

圖4 數據集軌跡圖

表1 實驗平臺參數表
數據集分左、右相機采集,本文將兩個數據集分左、右相機歸類分別進行閉環實驗。數據集提供的真實的標注矩陣也采用同樣的方法分類,共分4組進行閉環實驗。
為驗證本文算法在多歧義場景下,可以減少閉環誤匹配,選取New College和City Center 數據集中奇數圖像序列進行閉環檢測,對比算法采用BoW方法,閉環檢測結果的可視化矩陣如圖5和圖6所示。其中,藍色的為真實閉環結果,紅色的為誤正閉環結果(圖中TTP表示閉環檢測為閉環的數量,FFP表示非閉環檢測為閉環的數量)。從圖中可以看出,本文算法可以剔除絕大多數的誤正閉環,且擁有較高的匹配率,即圖中藍色線條更多,更接近真實閉環結果,紅色線條更少。這是由于本文算法融合兩種特征進行場景描述對相似的場景具有較強的魯棒性,且本文通過多步篩選確定閉環候選幀,解決了大部分的感知偏差問題。

圖5 New College閉環檢測對比

圖6 City Center閉環檢測對比
為進一步驗證算法的有效性,采用準確率-召回率曲線(Precision-Recall,PR)進行評估。準確率P表示所檢測到的閉環結果中的正確閉環匹配比例,召回率R表示所檢測到的正確閉環占路徑真實閉環個數的比例。P和R的算式如下
(24)
(25)
式中:TTP表示是閉環檢測為閉環的數量;FFP表示不是閉環檢測為閉環的數量;FFN為閉環檢測為不是閉環的數量。本文對2個數據集奇數和偶數圖像序列分4組進行閉環檢測實驗,與FAB-MAP2.0,BoW算法對比結果如圖7所示。從圖7中可以看出,在召回率接近零時,3組算法的準確率都為1;在保證100%準確率的情況下,在4個閉環實驗中,本文算法的最大召回率均高于FAB-MAP2.0以及BoW算法;隨著召回率的提高,準確率逐漸下降,本文算法整體趨勢下降較慢,閉環檢測效果優于BoW和FAB-MAP2.0的方法;其中,BoW的方法沒有考慮單詞之間的排序,在多歧義場景易產生感知偏差問題,使得整體趨勢下降最快;本文算法由于采用全局特征和局部特征相結合進行場景描述構建閉環概率模型,因此對場景變化較為魯棒,且考慮場景的時間一致性和空間一致性并采用極線約束檢驗對閉環候選幀進行篩選,因此可以解決大部分的感知偏差問題,減少閉環誤匹配。圖8和圖9分別為本文閉環檢測算法在New College和City Center數據集中的閉環檢測結果展示,可知本文算法可以準確地查詢出閉環情況。

圖7 準確率-召回率曲線

圖8 New College閉環檢測圖像
閉環檢測是視覺SLAM中的一個關鍵問題,針對多歧義場景,為提高閉環檢測的準確率,提出了一種多特征空間描述的閉環檢測方法,以提高閉環檢測的魯棒性和閉環準確性;基于閉環概率模型的框架下,融合局部SURF特征和全局ORB特征,提出基于極線約束的閉環候選幀篩選方法,進一步提高閉環準確率。