邱長濱,王慶芝,劉其朋
(青島大學復雜性科學研究所,山東 青島 266071)
近年來,視覺同步定位與建圖(Simultaneous Location And Mapping,SLAM)已成為自主移動機器人領域的研究熱點[1]?;丨h檢測(Loop Closure Detection,LCD)是視覺SLAM的關鍵環節之一,旨在判斷移動機器人是否回到了先前經過的地方,并通過回環約束減少視覺里程計引起的累計誤差,提高建圖和定位精度[2]。
經典的回環檢測算法大都采用手工特征來表征圖像,比較典型的是詞袋模型[3]。它利用SIFT、SURF、ORB等方法提取大規模圖像數據集的局部特征點集合,然后利用K-Means聚類將局部特征點空間劃分為若干聚類,聚類的中心稱為視覺單詞。所有的視覺單詞聚集構成了視覺詞典。一幅圖像可以由局部特征點對應的視覺單詞的集合來表征。在詞袋模型的基礎上發展出了Fisher 向量模型(Fisher Vector)[4]。Fisher Vector 采用高斯混合模型(Gaussian Mixture Model,GMM)構建視覺詞典。研究表明采用該向量編碼包含的信息比視覺詞袋模型更加豐富,在圖像分類及相關視覺任務上效果更優。作為Fisher Vector的簡化版本,文獻[5]提出使用局部聚合描述子向量(Vector of Locally Aggregated Descriptors,VLAD)來表征圖像。該方法比詞袋信息更豐富,同時比Fisher Vector計算簡單。
隨著人工智能的快速發展,卷積神經網絡(Convolutional Neural Network,CNN)憑借強大的特征學習和表征能力,在圖像分類、圖像分割、目標檢測、姿態估計、人臉識別等領域取得了巨大的成功[6]。為探索卷積神經網絡在圖像匹配和視覺回環檢測方面的性能,文獻[7]分析了AlexNet提取的圖像特征,發現AlexNet網絡的第3個卷積層(conv3)輸出的特征對圖像外觀變化具有魯棒性,全連接層(fc7)輸出的特征對視角變化具有魯棒性。文獻[8]采用空間金字塔池化對AlexNet網絡的卷積特征進行多尺度融合,更好地保留了圖像的原始信息,對光照變化具有較強的魯棒性。與直接使用預訓練神經網絡輸出的CNN特征描述子相比,針對圖像匹配專門設計的神經網絡特征描述子性能更優。受VLAD啟發,Relja等[9]提出了一種可進行反向傳播訓練的卷積神經網絡版本的VLAD,稱為NetVLAD,顯著提升了對光照和視角變化的魯棒性,并通過在多個尺度上提取描述子來保證尺度不變性。
為進一步提高NetVLAD特征描述子的精度,本文將空洞卷積(Atrous Convolution)引入到特征提取過程中??斩淳矸e最早出現在圖像語義分割的研究中,目的是在不增加訓練參數的前提下提高特征圖分辨率?;丨h檢測的底層技術是圖像匹配,即識別兩幅圖像是否具有相似的特征。理論上來說,空洞卷積提高特征圖的分辨率,也將有助于提高圖像特征對比的準確性。基于此,本文將空洞卷積引入到回環檢測算法中。另外,考慮到圖像在不同尺寸上表現出不同的特征,例如小尺寸圖像中的一條光滑直線,放大之后可能呈現出非常粗糙的邊緣。圖像在不同尺寸下可以反映不同顆粒度的特征。為了更全面地提取圖像特征,本文采用融合多種采樣率的空洞空間金字塔池化模塊(Atrous Spatial Pyramid Pooling,ASPP)[10]。該結構可以有效地降低特征圖的維度,并同時融合多尺度特征,保留了更多的空間信息,可以進一步提高特征圖的分辨率和特征匹配效果。
本文所提改進算法的整體框架如圖1所示,其中NetVLAD圖像特征提取由基于殘差網絡ResNet18的主干網絡和基于ASPP模塊改進的NetVLAD層兩部分構成。

圖1 本文回環檢測算法整體框圖
本文采用基于ResNet18的殘差網絡[11]提取圖像的局部特征,如圖2所示。

圖2 主干網絡結構圖
與圖像分類任務不同,這里只需要對圖像進行特征提取,不需要分類,因此去掉了原ResNet18網絡中最后的全連接層FC;此外,由于池化操作會降低特征圖的精度,為了更大程度上保留原圖的特征,去掉了全連接層前的均值池化層avgpool,最終得到由ResNet18的前16層構成的主干網絡。
1.3.1 基礎NetVLAD圖像特征描述


圖3 基礎NetVLAD層及其聚類示意圖
(1)

1.3.2 改進的NetVLAD圖像特征描述
直接使用NetVLAD對圖像進行表征存在兩個問題:1)主干網絡輸出的高維特征直接進入NetVLAD層,計算成本較高,影響閉環檢測任務的實時性;2)卷積網絡經過多次卷積和池化操作后,輸出的特征圖越來越小,分辨率越來越低,導致得到的NetVLAD圖像特征描述子精度較低,影響檢測精度。為解決上述問題,本文將ASPP模塊引入到NetVLAD中,對多尺度特征進行融合并降維,提高特征圖的分辨率。此外,原始ASPP模塊中采用了全局均值池化,更加關注全局特征,影響算法效率;為避免該問題,本文采用全局最大池化,只對局部感興趣的區域進行池化,過濾掉特征圖中的次要信息,提高算法效率。圖4展示了改進NetVLAD圖像特征描述的具體流程:

圖4 改進的NetVLAD圖像特征描述流程圖
1)上游主干網絡特征提取。維度為224×224×3的輸入圖像通過上游主干網絡處理之后輸出維度為512×7×7的特征圖。
2)執行多尺度特征融合并降維。以并行方式分別進入:卷積核大小為1×1的標準卷積層、卷積核大小均為3×3采樣率分別為6,12,18的3個空洞卷積層、全局最大池化層(后接一個卷積核大小為1×1的標準卷積層以及一個雙線性插值的上采樣層將特征圖還原為原圖大小);經過5次并行處理之后得到5個維度為512×7×7的特征圖;橫向拼接融合得到1個維度不變的特征圖;再采用卷積核大小為1×1的標準卷積層將拼接后的特征圖降維到指定通道數256,最終得到一個維度為256×7×7的特征圖。


5)執行L2歸一化操作。對矩陣v中的每一列D維向量進行L2歸一化處理,然后將矩陣轉化為向量,對整體再進行L2歸一化處理,最終得到一個長度為K×D的VLAD向量V,作為對原始圖像的表征。
為提高檢測精度,SeqSLAM算法[12]通過計算兩個圖像序列(而不是兩幅獨立的圖像)之間的相似性來判斷移動機器人是否達到了之前的地點。與SeqSLAM類似,本文在進行相似性搜索時也采取圖像序列對比的方式,以此來提高檢測的魯棒性。
圖像序列之間的相似性由VLAD向量之間的距離決定。若兩個圖像序列對應的VLAD向量之間的距離較近,則說明兩個圖像序列相似,當前時刻可能產生了回環;反之,若距離較遠,則說明兩個圖像序列差異較大,當前時刻未出現回環。本文采用比較常見的歐氏距離來計算圖像序列之間的相似性。假設當前時刻的圖像序列為Sq,先前某一時刻的圖像序列為Sp,序列長度均為l,二者所對應的VLAD向量集合分別為VSq和VSp,表達式為
VSq={VSq1,VSq2,…,VSql},VSp={VSp1,VSp2,…,VSpl}
(2)
其中的元素為序列中單幅圖像對應的 VLAD 向量。最終兩個圖像序列Sq與Sp之間的歐氏距離為
(3)
在搜索時,給定當前的圖像序列,遍歷所有歷史序列,計算得到圖像序列之間的距離,基于距離可以設計回環檢測判定條件。例如設定固定的距離閾值,小于該閾值則認為檢測到回環,通過調節距離閾值可以獲得精確率和召回率之間的平衡(見2.1節實驗)。
為驗證本文改進算法,在公開數據集CityCentre和NewCollege上進行測試。CityCentre數據集中的圖像拍攝于城市中心,總長度為2 km,共包含2 474張圖像和26 976個回環。NewCollege數據集中的圖像拍攝于校園內,總長度為1.9 km,共包含2 146張圖像和14 832個回環,兩個數據集中的圖像大小均為640×480。圖5為數據集部分圖像。兩個數據集中的圖像均是由放置于輪式機器人左右兩側的相機拍攝的,機器人每行駛1.5 m采集一次圖像。此外,兩個數據集均提供了GroundTruth矩陣,包含了對于回環的真實標注,分別以2 474 × 2 474 和2 146×2 146的二維矩陣形式進行存儲。若圖像i和j是在同一地點拍攝的,則在矩陣中對應的(i,j)元素值為1,否則為0。

圖5 數據集部分圖像
本文在基于Anaconda3的深度學習框架Pytorch下進行實驗測試,具體實驗環境為:1)Intel Core i5-10400 2.90Ghz,2)NVIDIA GeForce GTX 1650,3)RAM 16GB,4)Ubuntu 18.04。實驗中采用在Places365數據集上的預訓練網絡模型ResNet18,并將輸入圖像尺寸剪裁為224×224。表1為實驗測試時的關鍵參數與取值。為驗證本文改進算法的性能,本文分別在精確率-召回率(Precision-Recall,PR)曲線指標以及特征提取時間性能指標上將本文方法與其他方法進行了比較。

表1 實驗關鍵參數與取值
在回環檢測任務中,若兩幅來自不同場景的圖像被誤判為同一個場景,則稱這種錯誤為假陽性(False Positive,FP);若兩幅來自同一場景的圖像被誤判為不同場景,則稱為假陰性(False Negative,FN);反之,若正確地檢測到了閉環,則為真陽性(True Positive,TP);若正確地檢測到了非閉環,則為真陰性(True Negative,TN)。由此,精確率與召回率的定義為
(4)
本文選取5種算法進行實驗對比,具體算法為:1)標準SeqSLAM算法(seqslam);2) 基于BoW改進的SeqSLAM算法(seqslam_bow);3)基于ResNet和NetVLAD的回環檢測算法(resnet_netvlad);4)基于ResNet、PCA降維以及NetVLAD的回環檢測算法(resnet_pca_netvlad);5)(本文算法)基于ResNet、ASPP以及NetVLAD改進的回環檢測算法(resnet_aspp_netvlad)。其中1)和2)為基于傳統特征的回環檢測算法,3)、4)、5)為基于深度學習的回環檢測算法。各算法相應的PR曲線如圖6所示。

圖6 以上算法在CityCentre 和NewCollege兩個數據集上的PR曲線對比
從圖6實驗結果可以看出,基于深度學習的特征比手工特征效果更好,在提高召回率的同時,保持了較高的精確率。本文所改進的算法ResNet_ASPP_NetVLAD相對于改進前的算法ResNet_NetVLAD也有進一步的提升。此外,本文還將傳統PCA降維方式與基于深度學習的ASPP降維方式進行了對比,實驗結果表明在相同維度下基于ASPP的降維方法比傳統PCA降維方法效果更好。
圖7中展示了部分回環檢測的結果以表明算法的魯棒性。由于測試圖像是機器人在行駛過程中采集的,即使回到同一地點,相應圖像的視角、光照等均會發生變化,本文算法能夠正確識別出這些回環,說明了該算法對外觀變化具有一定的魯棒性;此外,盡管圖7a3和7b2存在動態目標:行人(圓圈標記),但本文算法仍能正確判斷出回環,進一步說明該算法能夠較為準確地提取環境信息,對干擾物具有一定的魯棒性。

圖7 回環檢測示例圖
除了比較PR曲線性能指標外,本文還通過對比提取單幅圖像特征的平均用時來衡量算法的實時性。在CityCentre數據集上,選取右側相機拍攝的共1 237張圖像進行特征提取,表2對提取全部圖像特征的總時間以及提取單幅圖像特征的平均時間進行了統計。

表2 特征提取總時間以及平均時間對比表
以上結果表明,在保持高召回率以及高精確率的前提下,本文算法在進行特征提取時比其它算法更加快速高效。需要注意的是,傳統手工特征如詞袋模型等需要事先離線構造視覺詞典,而基于深度學習的算法也需要事先基于大規模數據集進行訓練。本實驗中默認離線準備工作均已結束,算法耗時僅考慮在線特征提取階段。
本文提出了一種基于改進NetVLAD圖像特征提取的回環檢測算法,采用基于深度學習的深度殘差網絡來提取圖像特征,將空洞空間金字塔池化模塊引入到NetVLAD中,通過多尺度特征融合,在降維的同時提高了特征圖的分辨率,得到更加魯棒且緊湊的圖像特征描述,從而提升圖像匹配的效果。在CityCentre和NewCollege兩個公開數據集上驗證了本文改進算法在精確率和召回率方面相比于標準NetVLAD算法有進一步的提升,同時比采用手工特征的算法更具實時性。
本文在進行相似圖像序列匹配時采用的仍然是蠻力搜索方式,在大規模數據集上可能無法達到實時性要求。后續可以借鑒深度學習領域的最新研究成果,改進卷積網絡結構,如加入深度可分卷積網絡,進一步減少模型參數和復雜度,壓縮特征提取時間。在圖像對比方面,可以嘗試更加高效的近似搜索方式,如KD-tree[13]、分層可通航小世界網絡[14]等,進一步提升算法的實時性。