王傳云, 婁淵偉, 劉曉娜, 王靜靜, 高 騫*
1. 沈陽航空航天大學, 沈陽 110136
2. 煙臺市科技創新促進中心, 煙臺 264003
3. 中國電子科技集團公司電子科學研究院, 北京 100041
航空航天技術的發展,離不開對飛行器位置以及姿態的精準掌控,目前,主要以衛星定位技術為主、多種傳感器為輔的方式為航空及航天器的飛行提供實時位置信息.相比于航空飛機等大型飛行器,無人機體積小巧,能應用于多種復雜的空間探測任務,包括對復雜的城市環境、建筑內和礦井下等空間進行感知和建圖.但是,由于建筑以及掩體對衛星信號的遮擋,導致無人機無法有效地獲取自身的位置姿態信息來完成飛行任務,同時,無人機的尺寸也限制了其對更多高精度傳感器的搭載,而視覺傳感器以其小巧的體積、低廉的價格以及優秀的性能獲得廣泛的使用.
結合視覺傳感器,利用即時定位與地圖重建技術(simultaneous localization and mapping, SLAM)[1],無人載體便能夠實現位置姿態實時估計以及地圖重建[2-3].但是,視覺定位是一個逐步估計的過程,由于環境信息的干擾,利用視覺傳感器單次估計產生的誤差會逐漸累計從而導致估計的軌跡與實際軌跡產生偏差,最終影響對周圍環境的建圖.因此,利用SLAM閉環回路檢測也稱為回環檢測(loop closure detection)技術,建立當前數據與所有歷史數據之間的關聯來優化視覺定位信息獲得廣泛應用.
目前,回環檢測方法可以概括為2大類:一類是基于視覺里程計的幾何關系,另一類是基于外觀的幾何關系.因為回環檢測的目標在于發現“回到了之前的位置”這個事實,從而消除累計誤差,但前者的做法則先假設了“回到之前位置附近”,這樣才能檢測回環,而由于累計誤差的存在,這類假設并不適用于長時間的視覺定位,所以在應用上存在弊端.而另一種基于外觀的幾何關系方法僅根據2幅圖像的相似性確定回環,并不存在上述的弊端,這類方法也可以稱為場景識別(place recognition).因此,基于外觀的回環檢測方法,能夠有效地在不同場景下工作,逐漸成為主流的應用方法.
對于此類任務,早期通過不同種類手工制作特征[4]來完成回環的檢測,但它們的計算成本很高[5-7],如尺度不變特征變換(scale invariant feature transform, SIFT)[8-9]和加速魯棒特征(speeded up robust feature, SURF)[10]等計算復雜,并不利于應用在資源受限的嵌入式平臺上.并且對于特征本身而言,在低紋理環境中,通常很難找到足夠的點特征支撐計算.
相較于以往利用專家經驗設計手工特征的傳統方法,利用深度學習方法可以通過大量的數據集訓練,使網絡具有自主提取圖像特征的能力.其中,卷積神經網絡(convolutional neural network,CNN)提取的視覺特征在應對視角改變、光照變換以及尺度變化等問題時更具魯棒性[11].這種方法使系統更高效且適用性更廣.因此,多種基于CNN的深度學習方法[12-13]已應用于回環檢測任務,其中,視覺詞袋模型(bag of visual words, BoVW)[14-17]是最常見的一種回環檢測技術.大多數視覺詞袋方法使用反向索引[18],用于有效檢索之前獲取到的圖像,但是需要大量的內存來存儲數據,且很多同類的方法都使用固定的離線生成詞匯[16],在實時場景下的應用則受限于詞袋矢量的完整度.并且,視覺詞袋中的詞匯尺寸越大,所需的內存就越多,不利于在一些資源受限的嵌入式平臺部署,同時會對系統的執行速度產生影響[18].在此基礎上,大多數基于學習的回環檢測方法采用完全有監督的方式進行訓練,目標是學習更好的特征表示或設計魯棒的匹配策略.但是,此類方法在實際使用過程中,由于標簽數據的獲取具有一定的困難性,人為標注的過程費時且費力,導致其使用成本相對高昂,不利于相關研究的發展.
因此,針對監督方法成本高昂以及嵌入式平臺執行緩慢的問題,本文提出了一個基于對比學習的輕量化弱監督回環檢測模型,優化原始NetVLAD[19]的模型結構,有利于在資源受限的嵌入式平臺上應用,提升其在執行回環檢測時的檢索效率,便于無人機進行空間探測及建圖.首先,采用EfficientNet[20]輕量化特征提取網絡,利用其優秀的神經元結構搜索機制構建適用于回環檢測的圖像特征提取模塊,使得原始NetVLAD能夠高效地提取圖像特征,有效減小網絡模型在圖像特征提取階段的模型體積,提升網絡模型整體的執行效率.其次,為了降低EfficientNet提取的高通道特征在經過VLAD層進行特征整合過程中有效特征丟失的風險,本文在原始壓縮與激勵模塊(squeeze and excitation, SE)[21]的基礎上進行改進,提出了一個需求壓縮與激勵模塊(need squeeze and excitation, NSE),對輸出通道進行注意力加權,在數據降維的過程中盡可能保留足夠有效的特征,使網絡具有更清晰的區分場景的能力,以提高回環的檢測率.最后,通過實驗表明,本文提出的基于對比學習的輕量化回環檢測模型具有更小的模型體積、更快的執行效率,同時具有在復雜場景下相對優秀的場景識別能力,能夠在一定程度上應對場景光照、視角以及季節變化等環境下導致的識別誤差的問題.
常用的圖像特征提取網絡以卷積神經網絡為主,其中,AlexNet[22]、VGG(visual geometry group)[23]、ResNet[24]已應用于多種視覺任務當中作為輸入特征的提取模塊.在回環檢測任務中,TORII等[19]主要使用了VGG-16作為前端特征提取模塊,利用VGG的多層卷積塊堆疊構建深層網絡,不斷提取圖像的高等級特征.但是,高維圖像特征在回環檢測過程中會對硬件存儲設備提出一定的要求.因此,為了提升在執行過程中的檢索效率,普遍采用詞袋技術對圖像特征進行降維檢索,但是視覺詞袋模型本身是利用詞袋量化圖像特征,統計的詞頻直方圖,這樣會損失較多信息.因此,TORII等[19]在傳統的VLAD基礎上,利用深度學習技術構建VLAD層來代替詞袋模型.雖然VLAD同樣考慮特征點最近的聚類中心,但是其保存了每個特征點到離它最近的聚類中心的距離,VLAD考慮到了特征點的每一維的值,對圖像局部信息有更細致的刻畫,且不會損失信息.VLAD的深度學習實現如圖1所示.

圖1 局部聚合描述符矢量層結構
通過卷積層輸出的特征矢量會在VLAD層中,經過軟分配處理之后,在VLAD核心中與原始的輸入進行整合,最后通過歸一化層輸出整合后的全局描述符矢量.
為了使網絡模型具有區分場景的能力,在網絡訓練的過程中,會根據數據源構建正負樣本,其中,正樣本表示與查詢圖像地理上相近的樣本,負樣本則表示地理上遠離的樣本.回環檢測的核心任務是發現相似的場景,以判斷是否重復經過而構成回環.因此,GPS信息是關鍵的標簽信息,但是,獲取每張圖像的精準GPS數據作為標簽信息是困難的,并且2個地理上相近的圖像不一定描述相同的對象,因為這其中包括反方向視角以及遮擋.因此,在原始的NetVLAD中,對于給定的一個查詢,GPS信息只用作潛在正樣本集的源信息以及用來確定負樣本集,建立不完整且噪聲的弱監督,基于正負樣本集,構建用于訓練的三元組.

(1)
(2)
其中:α是預定義的超參數,表示來自同一類別的圖像和來自不同類別的圖像之間的邊距,目的是使網絡能夠更積極地學習區分相似場景;l是一個合頁損失l(x)=max(x,0).度量關系如圖2所示.

圖2 三元損失度量
目前,卷積神經網絡如VGG或AlexNet等,想要實現更好的特征提取能力,會不斷加深模型的深度或者寬度,甚至結合其他模型構建混合模型,導致模型體積逐漸增大,這會在一定程度上影響模型在資源受限的平臺上的執行效率.相較于上述網絡模型體積的不斷增大,為了進一步減少模型的乘加累積操作數(multiply accumulate operations),MobileNet-V2[25]在深度可分離卷積的基礎上,結合殘差連接,構建了瓶頸殘差模塊,在降低模型參數量的同時,解決了卷積核在實際訓練過程中容易出現空卷積的問題,進一步提升模型效率.考慮到在資源受限平臺上應用,為了平衡網絡深度以及寬度等尺度因素對網絡模型產生的影響,本文采用EfficientNet[20]的一種復合縮放方法,并結合MobileNet-V2[25]的多目標神經元結構搜索方法,優化精度和浮點運算次數(floating point operations,FLOPS).基于此,構建回環檢測的特征提取網絡模型的基礎模塊如圖3所示.

圖3 瓶頸殘差模塊
對于輸入的數據,通過膨脹卷積增加輸入特征圖的通道數,保證在進行深度可分離卷積的時候能夠提取到更多的信息,之后通過深度可分離卷積來減低參數量,并通過投影卷積來限制模型的大小,同時,利用殘差連接幫助模型反向傳播時的梯度在深層網絡之間的傳遞.
相較于原始的NetVLAD模型,針對回環檢測任務,本文在整體的網絡模型構建過程中,為了減輕圖像特征在描述符整合過程中,由于維度變換導致有效信息丟失的影響,設計了一個NSE注意力模塊對提取出來的特征進行不同通道的加權來強化更重要的特征通道,弱化不重要的特征通道,改變其對于模型計算的重要程度,針對本文回環檢測任務設計的NSE注意力模塊的結構如圖4所示.

圖4 NSE注意力模塊
NSE模塊由1×1卷積、平均池化以及全連接層組成,全連接層會結合ReLU以及Sigmoid激活函數一起使用.通過網絡訓練,利用NSE對卷積層輸出特征通道加權,獲得更有利于回環檢測任務的圖像特征.
針對回環檢測任務,本文將采用EfficientNet-B0作為圖像特征提取網絡模型,并結合VLAD層作為描述符整合模塊共同構建回環檢測網絡模型,模型結構如圖5所示.

圖5 輕量化回環檢測網絡
網絡模型主要由3部分組成,包括特征提取、描述符整合以及三元組損失,在網絡訓練過程中,通過三元組損失網絡模型不斷優化模型參數,使回環檢測網絡逐漸具有區分正負樣本的能力,能夠在執行過程中提取更有效的特征,高效地整合圖像全局描述符,完成回環檢測.
本文采用公開數據集Pittsburgh(pitts250k)[26],包含從谷歌街景(google street view)下載的25萬個數據庫圖像和從街景生成的24萬個測試查詢,圖像分辨率為640×480.其中,每個全景圖都由一組在不同方向和2個仰角上均勻采樣的圖像組成.針對回環檢測研究,將pitts250k數據集劃分為3個子集分別進行訓練、驗證和測試,每個部分包含約8萬個數據庫圖像和8千個查詢.本文使用PyTorch深度學習框架和SGD[27]優化器在NVIDIA GTX1080Ti GPU上進行所有的實驗.
在模型訓練階段,采用一致的迭代次數(epoch),這里將epoch設置為30,并在評估指標超過10個epoch不提升的時候停止訓練.優化器的動量設置為0.9,權重衰減設置為1×10-3,用于訓練所有網絡.初始學習率設置為1×10-4,損失邊界值設置為0.1.在相同的實驗平臺上,對原始的基線模型進行復現,對比基線模型結構,模型之間主要差異部分的對比如表1所示.

表1 模塊差異對比
對于相同的視覺任務,對比不同的特征提取網絡模型,通過表1中的數據可以看出,EfficientNet-B0相較于經典的VGG-16大幅度降低了模型的參數量,且在TOP-1以及TOP-5這2個評估指標上均高于經典的VGG-16網絡模型的結果.同時,相對于另一種廣泛采用的輕量化網絡MobileNet-V2,EfficientNet-B0同樣可以保持較好的召回率.本文使用回環檢測研究中普遍使用的RecallRate@N(也稱為Recall@N)召回率指標進行模型性能的評估,主要表示檢索的參考圖像(根據基本事實)不一定必須是最正確的檢索圖像,而只需要保證最正確的檢索圖像在N個最接近的檢索圖像中,這里RecallRate@1實際上是最大召回率PRmax時的精度,理想的召回率值為1.
基于上述評估指標,在相同的實驗環境下,使用公開的pitts250k數據集,分別對原文基于AlexNet和VGG-16的模型以及本文改進的模型進行訓練,訓練階段損失值變化曲線如圖6所示.

圖6 損失值變化曲線
在同樣的30輪訓練過程中,設置每10輪召回率不再提升則停止訓練,原文采用AlexNet模塊完整迭代30輪,模型收斂緩慢.VGG-16則在21輪結束訓練,而本文模型在16輪便能結束,實驗證明,本文的模型具有較高的計算效率,能夠更快地達到預期效果.3個模型在不同評估指標下的評估結果如表2所示.
結合表2中的數據對比可以發現,本文提出的模型在4個不同等級的召回率指標上均表現出了不錯的效果,相比于原文模型,本文提出的模型在Recall@10上有著更好的召回率表現,在Recall@1和5上較VGG16模塊稍有差距.更小的召回率指標,代表著對回環檢測精度要求越高,對于模型的表達能力要求也越高.由于模型在構建過程中存在通道變化導致有效信息丟失的問題,并且相較于原始模型大幅降低了模型的參數量,在一定程度上對模型的表達能力產生了影響,但是為了追求更好的輕量化應用,選擇不增加模型的體積,仍然采用EfficientNet-B0作為特征提取模塊,保證模型在無人機等資源受限平臺上的執行效率.模型在訓練過程中,由于模塊本身的差異,原文模型以及本文提出的模型在訓練時間以及執行時間上都存在較大的差距,對比原文最佳模型以及本文最佳模型在相同環境下的時間效率結果如表3所示.

表3 時間效率對比
從表3中可以看出,本文提出的模型在單輪訓練時間上較原文的模型減少了35%,大大降低了模型訓練的時間成本,且在測試執行效率上,本文提出的模型同樣能夠減少48%的時間,更高效地實現回環檢測.回環匹配如圖7所示,圖7(a)為查詢圖像,圖7(b)則為歷史數據庫圖像.網絡模型通過提取如圖7(a)~(b)右下角所示的圖像特征來進行描述符整合,進而通過相似度度量進行查詢圖像與數據庫圖像之間的比對.綜合上述實驗結果可以看出,本文提出的模型可以有效減小模型的訓練時間,提升模型的執行效率.

圖7 回環匹配顯示
為了驗證本文提出的網絡模型的各個模塊的有效性,結合本文對特征提取以及數據變換階段的改進,分別對本文提出的EfficientNet特征提取模塊以及NSE注意力模塊進行評估,構建VGG、EfficientNet和EfficientNet+NSE這3種網絡模塊結構,在相同測試環境下結合VLAD層構建回環檢測網絡模型,模型的召回率對比評估結果如表4所示.

表4 算法模塊有效性評估
通過表4可以看出,在原文采用的VGG+VLAD的基礎上,僅利用EfficientNet+VLAD進行回環檢測,在各個評估指標上均有小幅度的減弱,這其中一部分原因是圖像特征在EfficientNet與VLAD之間變換時造成了有效信息的損失,而加入NSE模塊,構成EfficientNet+NSE+VLAD的模型之后,可以看出模型在各項評估指標上均有較大幅度的提升,且在Recall@10和20上超過了VGG+VLAD的方法,通過圖8可以更直觀地看出本文各模塊之間的有效性.

圖8 算法模塊有效性評估
本文提出了一種基于對比學習的輕量化弱監督SLAM閉環回路檢測算法,該算法在NetVLAD的基礎上進行改進,采用EfficientNet+NSE+VLAD的形式構建,在圖像特征提取端利用輕量化的EfficientNet模型降低模型體積更高效地提取圖像特征.為了降低圖像通道變換對描述符整合的影響,利用NSE注意力模塊對通道進行加權,保留更重要的圖像特征通道,降低有效信息丟失的風險.在保持較高召回率的情況下,模型體積得到了大幅度縮減,顯著提升了模型的執行效率.實驗結果表明,對比經典的VGG+VLAD模型組合方式,本文提出的方法能夠降低57%模型體積,減少35%訓練時間,提升48%執行效率.本文所提出的模型更加有利于部署在無人機等資源受限的嵌入式平臺,能夠為視覺定位算法提供高效的回環檢測結果,便于建立時隔更加久遠的約束,方便通過各類優化算法對軌跡估計以及環境建圖進行優化,有利于為無人機實現復雜環境空間探測建立更精準的環境地圖.