王紅君 郝金龍 趙 輝,2 岳有軍
1(天津市復雜系統控制理論及應用重點實驗室 天津 300384)2(天津農學院 天津 300384)
近年來,同時定位與地圖構建技術(Simultaneous Localization and Mapping,SLAM)在多個領域被推廣應用,但仍有一些問題亟待解決。在大規模復雜場景下,SLAM系統面對復雜環境變化時精度和魯棒性差是需要解決的主要問題,集中表現在關鍵幀提取困難、回環檢測過程中回環位置難以確定、跟蹤性能差等。其中,回環檢測是移動機器人抑制累計誤差的關鍵,通過對同一位置的重識別,SLAM系統可以對姿態和全局地圖進行優化,提高系統的精度和穩定性。
在大規模復雜場景下,往往存在著攝像機視角大幅改變、地貌特征改變、大量移動物體、光照劇烈改變和天氣季節改變等[1]環境條件的改變,限制了回環檢測算法的使用。2013年Milford等提出的SeqSLAM是第一個大規模復雜場景下有一定效果的視覺定位系統。SeqSLAM通過當前圖像序列來匹配已有最相近的圖像序列,它關注的是圖像序列的整體特征而不是單個圖像的特征,其對季節變化擁有良好的應對能力。但SeqSLAM的準確性與圖像序列的拍攝角度的一致性緊密相關[2],采用圖像序列匹配也會使尾部圖像序列無效[1],采用暴力匹配方式進行圖像匹配使得計算成本隨著場景規模激增。
2017年Siam等[3]提出的Fast-SeqSLAM是一種高效的SeqSLAM版本。Fast-SeqSLAM的核心是通過近似最近鄰算法代替了SeqSLAM中暴力匹配的方式,從而在不降低精度的情況下降低了時間復雜度。
隨著CNN的發展,AlexNet[4]、VGG[5]、GoogLeNet[6]和ResNet[7]等被用來進行圖像特征的提取,解決了對象分類、場景識別和物體檢測等識別問題。2017年國防科技大學的Bai等[8]提出了一種融合CNN與SeqSLAM的回環檢測算法SeqCNNSLAM。該算法使用先前訓練好的Places-CNN[9]的第3卷積層或第5池化層來進行圖像特征的提取,再通過SeqSLAM來進行圖像的序列。在Nordland和Gardens point等數據集上驗證了SeqCNNSLAM不但有SeqSLAM應對環境季節變化的能力,還對視角變化具有魯棒性。2018年徐建鵬等[10]提出基于Faster-RCNN神經網絡回環檢測的優化算法,該算法使用Faster-RCNN神經網絡對圖像序列進行檢測,將獲得的圖像語義特征、像素位置及特征圖等構建成二維語義特征向量圖,根據二維語義特征向量圖之間的相似度匹配得到初始回環,再經位姿驗證獲得最終回環結果。徐建鵬的基于Faster-RCNN神經網絡回環檢測的優化算法和SeqCNNSLAM的成功表明,將CNN與回環檢測算法融合能夠改善回環檢測算法的精度和魯棒性。
不同于SeqSLAM使用圖像像素值當作圖像特征,也不同于SeqCNNSLAM延續SeqSLAM使用圖像序列進行匹配,本文采用ResNet對關鍵幀進行特征提取,使用詞袋法進行單幅圖片的特征匹配,采用弱監督的遷移訓練方法來訓練ResNet,提出一種基于深度殘差網絡和利用信息熵改進的局部聚合描述符向量的回環檢測方法RIV-LCD。
深度殘差網絡(Deep Residual Network,ResNet)由He等[7]提出,解決了隨著CNN網絡層數加深,準確率下降的問題。ResNet在ILSVRC和COCO 2015上取得了五項第一,優于其他各種CNN模型在ImageNet數據集上的表現,TOP5誤差僅為3.57%[7]。ResNet由若干個building block或bottleneck組成,其結構如圖1所示。不同數量的building block或bottleneck組成了不同深度的ResNet。本文使用50層的ResNet來對圖像進行特征提取。

圖1 building block與bottleneck的結構圖
局部聚合描述符向量(VLAD)[12]通過計算圖像特征描述子與其所屬的聚類中心的差矢量來聚合圖像特征。
如果給定N個D維的本地特征描述子{Xi}作為輸入,K個聚類中心{Ck}作為VLAD的元素,VLAD的輸出是一個D×K維的矩陣V。位置元素V(j,k)的計算公式如下:
(1)
式中:xi(j)和Ck(j)分別是第i個本地特征描述子和第k個聚類中心的第j維元素。
詞袋法(Bag-of-Words,BoW)[13]最早出現在自然語言處理和信息檢索領域。該模型忽略文本的語法和語序等要素,將其僅僅看作是若干個詞匯的集合。BoW使用一組無序的words來表達一段文字或一個文檔。近年來,BoW模型也被廣泛應用于圖像檢索。
對于訓練一個已知結構的卷積神經網絡,最核心的問題是數據集的獲取和損失函數的確定。由于回環檢測數據集規模偏小,而ResNet的層數深權值參數多,大規模重復訓練時,容易出現參數過擬合問題。采用關聯數據集進行預訓練十分重要,可以有效規避過擬合問題。在第一階段,采用關聯性強的場景識別大型數據集Places2[14]進行預訓練;在Place2中,選取適合應用環境的圖片對ResNet進行場景識別訓練,使得ResNet可以獲得提取特定環境圖像特征的能力。對于第一階段場景識別的訓練,可以使用Softmax分類器和交叉熵損失函數。
(2)

第二階段弱監督遷移訓練需要使用回環檢測數據集,Nordlandsbanen數據集[15]比較適用。Nordlandsbanen數據集記錄了特隆赫姆和博德之間729 km的鐵路,在四個不同季節的同一條鐵路線路一共拍攝了四次。如圖2所示,圖中依次是春夏秋冬四個季節在同一位置拍攝的圖片。由于季節不同,四次拍攝擁有不同的光照(白天和夜晚)、地貌特征(植被雨雪覆蓋等)和運動物體(乘客列車等)。可以有針對性地應用于訓練CNN,使其在不同光照、氣候和地表外貌條件下,獲得對同一地點圖像的共同特征提取能力。

圖2 Nordlandsbanen 數據集
由于單輸入網絡不能直接輸入兩幅圖片進行比較,無法進行圖像匹配任務訓練,所以第二階段采用弱監督的遷移訓練方式進行訓練。其中,選取損失函數的關鍵是要體現出圖片之間的差異,用來監督訓練,這種關聯變量因數據集的特征而定,可以是GPS坐標,也可以是圖像在序列中的位置。在Nordlandsbanen數據集上,用于弱監督訓練更合適的變量是圖像在序列中的位置,因為該數據集四個視頻流的每一幀都經過對齊,可以使用Triplet損失函數[16]進行弱監督遷移訓練。Triplet損失函數如下:
(3)

兩個階段的訓練流程如圖3所示。

圖3 訓練流程示意圖
由于屬于每一個聚類中心的本地特征描述子所包含的信息量不同,可以設置一個權重參數ak(xi)當作(xi(j)-Ck(j))的權值[17]來描述每一個類本地特征描述子間的關系:
(4)
可以用信息熵度量屬于每一個聚類中心的本地特征描述子所包含的信息量。根據香農給出的信息熵定義公式[18],對于任意一個隨機變量X,其信息熵定義如下(單位為比特(bit)):

(5)
仿照式(5),本地特征描述子的信息熵定義如下:
(6)
式中:c為本地特征描述子聚類中心個數;pk為第k類本地特征描述子在所有本地特征描述子中所占的比例,即第k類的先驗概率。該信息熵反映了集合X中的本地特征描述子平衡分布的期望,也可以度量X中包含信息量的大小。
將特征矩陣V信息熵的值Entropy(X)賦給ak(xi),可以得到:
(7)
ResNet提取圖像本地特征和信息熵加權VLAD,產生本地特征描述子的流程示意圖如圖4所示。

圖4 ResNet與信息熵加權VLAD提取特征流程示意圖
使用BoW時,要通過K-means聚類算法聚類出本地特征描述子的K聚類中心,得到一個字典。匹配時,先將離線數據庫圖片以及在線數據庫圖片的本地特征描述子投射到字典的空間中,得到圖片本地特征描述子相對應的words分布;然后再以同樣的方法,得到待匹配目標圖片的本地特征描述子相對應的words分布;最后通過比較這些words分布的相似性,得到TOP1候選結果。所使用的BoW的算法流程如圖5所示。

圖5 BoW的離線訓練與在線匹配流程示意圖
實驗在一臺圖像處理服務器上進行,該服務器配備為64 GB運行內存、48個2.20 GHz的Intel Xeon CPU以及2張12 GB顯存的GeForce GTX 1080Ti顯卡。在該實驗平臺上搭建深度學習環境Anaconda3以及Tensorflow進行實驗。在Nordlandsbanen數據集上等間距按順序在每個季節圖像序列中抽取出33 626幅圖片,四個季節共134 504幅圖片作為測試集。
在Nordlandsbanen數據集的測試集上進行測試,通過春天圖片匹配夏天相同拍攝位置的圖片,得到可行性驗證準確率召回率曲線,如圖6所示。其中:“ResNet+信息熵加權VLAD+BoW”為RIV-LCD算法得到的準確率召回率曲線;“ResNet+無權值VLAD+BoW”為使用沒有權值原始的VLAD得到的準確率召回率曲線;“ResNet+BoW”為沒有使用VLAD得到的準確率召回率曲線。

圖6 可行性驗證precision-recall曲線
可以看出,使用VLAD處理后的圖像特征匹配時,可以明顯提高召回圖像的匹配準確率,經過信息熵加權VLAD處理后的圖像特征匹配時,有更高的準確率。
在Nordlandsbanen數據集的測試集上進行測試,通過春天的圖片匹配其他季節相同拍攝位置的圖片,結果如圖7所示。可以看出在光照、氣候、地表外貌大幅變化時,RIV-LCD仍可以完成回環檢測,證明該算法對環境條件劇烈變化具有良好的魯棒性。而錯誤匹配主要存在于兩種情況:地貌特征十分相似和隧道內弱光照的情況,分別如圖8、圖9所示。

圖7 RIV-LCD準確匹配到的圖像

圖8 地貌相似時RIV-LCD匹配到的錯誤圖像

圖9 隧道內弱光照時RIV-LCD匹配到的錯誤圖像
在Nordlandsbanen數據集上進行測試,使用秋天的圖像來匹配夏天的圖像,測試結果如圖10所示。“RIV-LCD”為RIV-LCD算法得到的準確率召回率曲線,同樣“SeqSLAM”、“Fast-SeqSlam”和“CNN-SeqSlam”分別為SeqSLAM、Fast-SeqSlam和CNN-SeqSlam算法得到的準確率召回率曲線。

圖10 在Nordlandsbanen數據集上得到的precision-recall曲線
對比圖10中四種回環檢測算法準確率召回率曲線可以看出,隨著召回率的升高,RIV-LCD的準確率下降最緩慢,在獲得最大召回率時準確率為84.8%。相比之下,SeqSLAM的準確率下降最快,在獲得最大召回率時準確率為55.5%。同樣Fast-SeqSlam和CNN-SeqSlam的準確率下降比RIV-LCD快,在獲得最大召回率時準確率分別為69.0%和71.3%。這些都說明本文的RIV-LCD在大規模復雜場景下精確度和魯棒性更高。
在大規模復雜場景下,為解決現有部分回環檢測算法無法使用的問題,本文提出了一種新的回環檢測算法RIV-LCD。實驗表明:大規模復雜場景下RIV-LCD在面對光照、氣候、地表外貌大幅變化時,仍然可以準確地進行回環檢測;在同樣的大規模復雜場景下,RIV-LCD比SeqSLAM、Fast-SeqSlam和CNN-SeqSlam擁有更高的準確率和魯棒性。