陳 勇,黨淑雯,聶 鈴
(上海工程技術大學 航空運輸學院,上海 201620)
隨著人工智能的發(fā)展,移動機器人已成為熱門研究課題。為實現(xiàn)自主導航任務,移動機器人需要執(zhí)行實時定位、路徑規(guī)劃等操作,在此過程中即時定位和建圖(SLAM)起著至關重要的作用。按傳感器不同,SLAM 可分為激光SLAM 和視覺SLAM。由于RGB-D 相機的更新?lián)Q代,兼且還具有體積小、重量輕、造價低廉等諸多優(yōu)點,就使視覺SLAM 引起了學界的廣泛關注與濃厚興趣?;丨h(huán)檢測作為視覺SLAM 的關鍵組成部分,可以識別機器人以前經(jīng)過的地方,從而減少機器人移動過程中產(chǎn)生的累積誤差。現(xiàn)有的回環(huán)檢測方法可以分為基于圖像特征和基于外觀不變性兩種。其中,基于外觀的回環(huán)檢測目前獲得了較為廣泛應用,該方法從本質(zhì)上比較了視覺系統(tǒng)中2 幅相鄰圖像之間的相似性。
在基于外觀的方法中,較為通用的是基于詞袋模型的回環(huán)檢測算法?;谠~袋模型的回環(huán)檢測算法的主要運行步驟是:首先利用算法(SIFT、SURF、ORB )從采集到的環(huán)境信息中提取特征向量作為“單詞”,即通過提取圖像中具有局部不變的特征點作為視覺詞匯;其次,根據(jù)K 均值聚類算法與相近的單詞結(jié)合構成詞表,并分組到一個詞典中;最后,統(tǒng)計單詞在采集環(huán)境信息中出現(xiàn)的次數(shù),用維數(shù)值向量表示圖像。但BOW 模型中手工標記的特征有一定局限性,即這些特征忽略了圖像中的一些有用信息,因此可能會產(chǎn)生精度較低的回環(huán)檢測。
雖然傳統(tǒng)的回環(huán)檢測算法能在視覺SLAM 系統(tǒng)中檢測出回環(huán),但需要經(jīng)過大量訓練來提取特征,且在不同場景下準確率較低。近些年,研究人員嘗試將神經(jīng)網(wǎng)絡應用于計算機視覺領域,且有大量實驗已經(jīng)證明了在計算機視覺中神經(jīng)網(wǎng)絡有著良好表現(xiàn)。Lecun 等人將卷積神經(jīng)網(wǎng)絡(CNN)應用于視覺中。實驗證明,CNN 能有效提取特征,應用深度學習網(wǎng)絡,能成功檢測出視覺SLAM 的回路,為解決回環(huán)檢測問題提供了一種選擇。Gao 等人提出了一種基于良好訓練的神經(jīng)網(wǎng)絡的深度特征提取方法。但該方法訓練整個網(wǎng)絡耗時長、效率低,不適用于實時的SLAM 系統(tǒng)。Hou 等人使用一個預先訓練過的CNN 模型,生成一個適合于視覺SLAM 中的回環(huán)檢測的圖像表示。結(jié)果表明,Conv3 和Pool5 的性能最佳。但該模型CNN 描述符的維度非常高。Xia 等比較了數(shù)種 CNN模型(PCANet、CaffeNet、AlexNet、GoogLeNet)和傳統(tǒng)方法(BoW、GIST)在回環(huán)檢測中的性能。結(jié)果表明,該CNN 模型能更好地適用于回環(huán)檢測。但是,由于模型中使用支持向量機(SVM)來檢測循環(huán),不能很好地滿足視覺SLAM 系統(tǒng)中實時性要求。Zhang 等人使用一個開源預訓練的CNN 模型、即OverFeat 來提取特征。近年來由于需要大量的標簽來訓練數(shù)據(jù),所以就很少用到該CNN 模型。
針對上述算法存在的問題,本文提出了基于ResNet 模型回環(huán)檢測算法??傮w流程如圖1 所示,算法實現(xiàn)步驟如下:
圖1 算法流程圖Fig.1 Flow chart of the algorithm
(1)根據(jù)選取策略,篩選關鍵幀集。
(2)通過預先訓練好的ResNet 模型,提取篩選出的關鍵幀集特征,生成高維特征向量。
(3)利用PCA 白化來降低向量的維數(shù),提高檢測效率。
(4)通過計算特征向量間的歐式距離,再計算相似矩陣,驗證回環(huán)的準確率。
由于移動機器人在運動過程中拍攝的連續(xù)幀存在較多冗余信息,造成計算資源浪費,因此引入關鍵幀很有必要。選擇合適的關鍵幀,能有效提高定位和建圖的精準性和實時性。常見的關鍵幀篩選方法有:根據(jù)時間間隔對數(shù)據(jù)幀進行采樣、根據(jù)空間距離對數(shù)據(jù)幀進行采樣、根據(jù)圖像相似性進行采樣等。以上這些方法都是使用單一準則來篩選關鍵幀,無法適應不同的環(huán)境變化,因此關鍵幀傾向于多重融合選擇。
本文通過設定相對運動量來篩選關鍵幀,具體步驟如下:
(1)關鍵幀集合,第一幀、即為,將其歸入集合。
(2)對于新的一幀F,計算中最后一幀與F的運動,并估計其運動的大小。若≥,則表明2 幀運動變化大,離得較遠,應剔除;或≥,則表明2 幀運動變化小,離得太近,應剔除。這里,表示2 個相鄰幀的運動量,、為設定的閾值。只有2 幀的運動估計正確、能匹配,且兩者存在一定距離,則把該幀F加入到關鍵幀集合中。對應數(shù)學模型可表示為:
其中,,,表示幀間的三軸方向的旋轉(zhuǎn)量;,分別表示平移所占的權重和旋轉(zhuǎn)所占的權重;是2 幀間的平移量。
2015 年,何凱明團隊提出ResNet 網(wǎng)絡。該網(wǎng)絡的發(fā)現(xiàn)不僅影響了學術界和工業(yè)界深度學習的發(fā)展方向,且在圖像檢測、圖像分割和圖像識別等領域獲得廣泛應用。ResNet 網(wǎng)絡結(jié)構如圖2 所示?;驹O計原理是通過殘差結(jié)構來解決神經(jīng)網(wǎng)絡中出現(xiàn)的退化和梯度消失問題,提高了整個網(wǎng)絡性能,且在ImgeNet 數(shù)據(jù)集上獲得了良好的分類結(jié)果。
由圖2 可知,當輸入后,輸出為:
其中,表示非線性函數(shù)。
通過一個捷徑(shortcut),和圖2 中的第2 個相結(jié)合,最終輸出:
圖2 ResNet 網(wǎng)絡結(jié)構圖Fig.2 ResNet network structure
當需要對輸入和輸出維數(shù)進行變化時(如改變通道數(shù)目),可以在通過“捷徑”時,對加以線性變換,數(shù)學公式具體如下:
研究中,可以從預先訓練過的網(wǎng)絡模型中提取出整個圖像特征,但卻具有高維數(shù)。本文通過主成分分析(PCA)和白化算法進行降維,同時也降低了關鍵幀的冗余程度。
PCA 是可以提升無監(jiān)督特征學習速度的數(shù)據(jù)降維算法。算法的設計原理是將維特征投影到維()。輸入樣本集,,…,x,使其映射到空間,并實施中心化,選取個最大特征值,輸出映射矩陣。中心化時需用到的數(shù)學公式為:
降維后,通過白化算法對每一維除以其標準差,公式如下:
通過降維處理后的CNN 特征,使用歐氏距離來計算圖像和之間的差異。并繪制相似矩陣圖,用于度量圖像之間的相似度。歐式距離公式如下:
計算圖像和之間的歸一化相似性:
通過定義相似度矩陣,可以度量圖像之間的相似度。相似度矩陣示意如圖3 所示。由圖3 可知,矩陣的每一行都包含相似度的值,其范圍為(0,1)。不同的值用不同的顏色表示,值越高,圖像間的相似性就越高。若值為1,則表示檢測是一個循環(huán)閉合。
圖3 相似度矩陣示意圖Fig.3 Schematic diagram of similarity matrix
實驗測試數(shù)據(jù)集為City Centre 和New College,即當機器人穿過室外城市環(huán)境時,每1.5 m 用攝像頭采集一次圖像,照明條件穩(wěn)定。這2 個數(shù)據(jù)集分別是1 237 對和1 073 對圖像,數(shù)據(jù)集的更多細節(jié)見表1。
表1 數(shù)據(jù)集參數(shù)Tab.1 Data set parameters
本文使用預先訓練過的ResNet50、ResNet101和ResNet152 模型來提取特征。根據(jù)公式(8),可以計算出圖像的相似得分,并求出相似性矩陣。研究中得到的基于ResNet 50 網(wǎng)絡模型的回環(huán)檢測算法的相似矩陣圖和Ground Truth 圖即如圖4 所示。圖4 中,Ground Truth 圖是相似矩陣圖的“掩碼”。
圖4 基于ResNet50 網(wǎng)絡模型的回環(huán)檢測算法的相似矩陣圖和Ground Truth 圖Fig.4 Schematic diagram of similarity matrix and Ground Truth based on ResNet50 network model
由圖4 中可知,較冷的顏色對圖像對的相似程度較小,而較暖的顏色對圖像對的相似程度更高。圖4 表明,該方法在檢測大部分回路方面是可行的,且ResNet50 網(wǎng)絡優(yōu)于其它網(wǎng)絡。
為評估算法在回環(huán)檢測中的性能有效性,將本文改進算法與其它算法進行準確率()和召回率()計算,并通過準確率-召回率曲線進行衡量。這里,準確率是指算法得出的結(jié)果中真陽性與結(jié)果中所有回環(huán)的概率;召回率是指結(jié)果中為真陽性與檢測的所有真實回環(huán)的概率。研究推出的數(shù)學定義式如下:
其中,表示真陽性;表示假陽性;表示假陰性。
實驗選用New College 數(shù)據(jù)集,通過將本文算法與經(jīng)典算法FAB-MAP、SDA 以及詞袋模型算法進行對比試驗,得出的精度-召回率曲線如圖5 所示。
圖5 不同算法的準確率-召回率對比圖Fig.5 Comparison of precision-recall results of different algorithms
由圖5 可知,算法性能和該算法與、軸圍成的面積成正比。本文算法圍成的面積比其它算法都大,驗證了本文算法的魯棒性好。其精確值在召回率大于0.55 的情況下,達到最高水平。隨著軸數(shù)值變大,仍能保持準確率數(shù)值緩慢下降。本文算法在總體上比另外3 種算法的回環(huán)檢測效果都要好。
本文針對回環(huán)檢測中存在的一些問題,提出了一種基于ResNet 模型的回環(huán)檢測算法。首先對預先訓練的卷積神經(jīng)網(wǎng)絡模型(ResNet50、ResNet101、ResNet152)進行性能對比,其次通過改進關鍵幀的選取策略,將篩選出的關鍵幀輸入預先訓練好的CNN 模型(ResNet-50),生成高維特征向量,并利用主成分分析(PCA)白化來降低特征向量的維數(shù)。最后,利用相似度矩陣檢測數(shù)據(jù)集中可能出現(xiàn)的回環(huán)。本文通過對比實驗結(jié)果可知,ResNet-50 模型相較其它對比模型性能更好,且本文算法對回環(huán)檢測是可行的。然而,在實時SLAM 系統(tǒng)中應用深度神經(jīng)網(wǎng)絡仍然存在一定不足,有待下一步的研究解決。