摘 要:經(jīng)典的視覺(jué)里程計(jì)系統(tǒng)提取稀疏或密集的特征并匹配以執(zhí)行幀到幀的運(yùn)動(dòng)估計(jì),但是都需要針對(duì)它們所處的特定環(huán)境進(jìn)行仔細(xì)的參數(shù)調(diào)整。受深度網(wǎng)絡(luò)的最新進(jìn)展和以前關(guān)于應(yīng)用于 VO 的學(xué)習(xí)方法的啟發(fā),探索了使用卷積神經(jīng)網(wǎng)絡(luò)來(lái)學(xué)習(xí)視覺(jué)位姿估計(jì)任務(wù)。通過(guò)對(duì)公開數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),驗(yàn)證方法性能。最后,對(duì)算法進(jìn)行總結(jié)分析并對(duì)展望其發(fā)展趨勢(shì)。
關(guān)鍵詞:視覺(jué)里程計(jì);位姿估計(jì);深度學(xué)習(xí); 卷積神經(jīng)網(wǎng)絡(luò)
DOI:10.16640/j.cnki.37-1222/t.2019.21.083
0 引言
視覺(jué)里程計(jì)[1],也稱為幀間估計(jì),是視覺(jué)SLAM[2](simultaneous localization and mapping)中的核心內(nèi)容。經(jīng)典的基于幾何的視覺(jué)里程計(jì)方法分為特征點(diǎn)法與直接法。但是其依據(jù)于大量的計(jì)算,并且估計(jì)結(jié)果對(duì)相機(jī)參數(shù)極為敏感。近年來(lái),人工智能、深度學(xué)習(xí)再次掀起了熱潮,基于深度學(xué)習(xí)的視覺(jué)任務(wù)豐富多樣,在分類、跟蹤等問(wèn)題上都取得了很好的效果。但是多學(xué)習(xí)外觀特征,而視覺(jué)里程計(jì)需要學(xué)習(xí)圖片的幾何特征。
本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的視覺(jué)里程計(jì)方法,將數(shù)據(jù)集進(jìn)行預(yù)處理,將圖片序列中相鄰的兩張RGB圖片進(jìn)行串聯(lián),每張圖片的通道數(shù)為3,得到一個(gè)通道數(shù)為6的張量,輸入到神經(jīng)網(wǎng)絡(luò)中。參考Vgg網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行特征提取工作。將提取的特征輸入到全鏈接層將張量壓縮為位姿特征向量。通過(guò)KITTI數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),輸出圖片之間的相對(duì)位姿,并轉(zhuǎn)化為絕對(duì)位姿和地面真實(shí)軌跡進(jìn)行對(duì)比。
1 相關(guān)內(nèi)容
1.1 經(jīng)典的幾何方法
經(jīng)典的幾何幀間估計(jì)方法有著悠久的解決方案設(shè)計(jì)的歷史。最開始是基于稀疏的特征跟蹤,研究者們?cè)O(shè)計(jì)了很多具有魯棒性的角點(diǎn)、邊緣點(diǎn)、區(qū)塊等比較有代表性的點(diǎn)的特征提取與匹配的算法,在這些特征的基礎(chǔ)上估計(jì)相機(jī)的運(yùn)動(dòng),如SIFT,SURF,ORB等。Eigel[3]等人開發(fā)了最經(jīng)典的直接方法之一LSD-SLAM。直接方法在過(guò)去幾年中得到了最多的關(guān)注,Mur-Artal等人的ORB-SLAM[4]算法進(jìn)行稀疏特征的跟蹤也達(dá)到了令人印象深刻的魯棒性和準(zhǔn)確性。
1.2 深度學(xué)習(xí)法
深度學(xué)習(xí)采用端到端的方式進(jìn)行大量的自動(dòng)學(xué)習(xí),并嘗試從數(shù)據(jù)中推斷它們。從學(xué)習(xí)方式分為有著明確標(biāo)簽的有監(jiān)督學(xué)習(xí)(supervised learning)與沒(méi)有明確標(biāo)簽采用聚類的思想的無(wú)監(jiān)督學(xué)習(xí)(unsupervised learning)。Posenet[5]利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)實(shí)現(xiàn)相機(jī)姿態(tài)估計(jì),訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)從一個(gè)單一的RGB圖像回歸相機(jī)的姿態(tài),并在大型室外場(chǎng)景與室內(nèi)場(chǎng)景進(jìn)行實(shí)驗(yàn)。Walch[6]在其去掉全連接層2048維的輸出向量基礎(chǔ)上加入循環(huán)神經(jīng)網(wǎng)絡(luò)架構(gòu)實(shí)現(xiàn)相機(jī)姿態(tài)回歸,捕捉像素關(guān)系。DeepVO[7]由兩個(gè)并行AlexNet的級(jí)聯(lián)卷積層組成并在末端串聯(lián),提取圖片的低級(jí)特征到高級(jí)特征。
2 算法結(jié)構(gòu)
2.1 基于CNN的特征提取部分
將連續(xù)的兩張圖片串聯(lián)為6個(gè)通道進(jìn)行特征提取,卷積層卷積核全部使用3×3的卷積核和2×2的池化核,其中兩個(gè)3×3卷積層的串聯(lián)相當(dāng)于1個(gè)5×5的卷積層,3個(gè)3×3的卷積層串聯(lián)相當(dāng)于1個(gè)7×7的卷積層。其中3個(gè)3×3的卷積層參數(shù)量只有7×7的一半左右,有效的減少了參數(shù)量。由捕捉大的特征逐漸到捕捉小的特征進(jìn)行過(guò)渡。
通過(guò)多個(gè)小的卷積核堆疊來(lái)替代大的卷積核,增加了非線性激活函數(shù),這有效的增加了特征學(xué)習(xí)的能力。
2.2 全連接層
在卷積層后面加入全連接層,將特征張量的維度降下來(lái)。以輸出6維度的相機(jī)位姿。隱藏單元數(shù)為4096,1024,512,128,最后壓縮為6維的表示圖片之間相對(duì)位姿的特征向量。全連接層后面也連接著非線性激活函數(shù)。整體的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
2.3 損失函數(shù)
3 實(shí)驗(yàn)
3.1 實(shí)驗(yàn)平臺(tái)與特征提取過(guò)程
實(shí)驗(yàn)平臺(tái)為顯卡RTX2080ti一塊,ubuntu16.04操作系統(tǒng)。在開源框架pytorch上實(shí)現(xiàn)。
選擇KITTI數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),采用有監(jiān)督的學(xué)習(xí)方法。將數(shù)據(jù)集中g(shù)ps等采集的變換矩陣表示的位姿轉(zhuǎn)化為3維的平移與3維的歐拉角表示,更利于反向梯度傳輸。首先將數(shù)據(jù)集計(jì)算圖片的均值與標(biāo)準(zhǔn)差,對(duì)其進(jìn)行歸一化處理。
3.2 訓(xùn)練過(guò)程
網(wǎng)絡(luò)在00,01,02,08上進(jìn)行訓(xùn)練,驗(yàn)證數(shù)據(jù)集按照0.2的比例分割來(lái)源于訓(xùn)練集的。采用Adam優(yōu)化算法,設(shè)置初始學(xué)習(xí)率為0.0005。batch梯度下降方法,Batchsize為16。網(wǎng)絡(luò)訓(xùn)練一個(gè)epoch大概需要5分鐘,模型的驗(yàn)證誤差與訓(xùn)練誤差整體收斂到一個(gè)較小的范圍大概需要130epoch,約26小時(shí)。訓(xùn)練與驗(yàn)證的損失曲線如圖2所示,其中紅色代表隨著迭代次數(shù)增加的訓(xùn)練損失,藍(lán)色代表隨著迭代次數(shù)增加的驗(yàn)證損失,可以從損失函數(shù)曲線看出,兩個(gè)損失都可以收斂到較好的范圍并且相差不多。
3.3 測(cè)試過(guò)程
按照?qǐng)鼍坝捎?xùn)練得到的模型進(jìn)行測(cè)試,在每個(gè)文件夾所處的序列圖像中,將圖片堆疊輸入到網(wǎng)絡(luò)中,得到預(yù)測(cè)的相對(duì)姿態(tài),有姿態(tài)解算將得出的相對(duì)姿態(tài)轉(zhuǎn)化為絕對(duì)姿態(tài),并計(jì)算平移損失、旋轉(zhuǎn)損失以及總損失。
如圖3所示。綠色的為KITTI上GPS等得出的位姿作為真實(shí)地面軌跡。紅色的為KITTI數(shù)據(jù)集通過(guò)深度神經(jīng)網(wǎng)絡(luò)測(cè)試得到相對(duì)姿態(tài)并進(jìn)行姿態(tài)解算得到的相對(duì)于第一幀的絕對(duì)姿態(tài)。
隨著訓(xùn)練epoch的增加,測(cè)試模型的誤差一直在減少,畫出的軌跡收斂性也有明顯的提升,圖3中的軌跡是訓(xùn)練到130epoch時(shí),得到的均勻較好的軌跡曲線。從幾個(gè)測(cè)試的序列看出,基于卷積神經(jīng)網(wǎng)絡(luò)的位姿估計(jì)方法都獲得了準(zhǔn)確的軌跡形狀,但都存在軌跡漂移的現(xiàn)象,和經(jīng)典的位姿估計(jì)方法如ORB得到的軌跡準(zhǔn)確度還有差距?;谏疃壬窠?jīng)網(wǎng)絡(luò)的視覺(jué)位姿估計(jì)精度仍需提升。
4 結(jié)論與發(fā)展趨勢(shì)
本文提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)的視覺(jué)位姿估計(jì)方法。將兩張?jiān)嫉腞GB圖片以串聯(lián)的方式輸入到神經(jīng)網(wǎng)絡(luò)中。經(jīng)過(guò)實(shí)驗(yàn)發(fā)現(xiàn)在訓(xùn)練過(guò)程的參數(shù)設(shè)置很重要,合適的參數(shù)會(huì)使得網(wǎng)絡(luò)得到好的收斂,并測(cè)試出好的結(jié)果。在訓(xùn)練保存出較好的模型及優(yōu)化器下性能較優(yōu),位姿估計(jì)較為準(zhǔn)確。但是其和經(jīng)典的幾何方法算法性能還有待提高,但是可以作為其有效的補(bǔ)充。
實(shí)驗(yàn)可以將數(shù)據(jù)集進(jìn)行擴(kuò)充,使得在相機(jī)面臨豐富運(yùn)動(dòng)時(shí)更加準(zhǔn)確??梢圆捎眯碌囊曈X(jué)傳感器,如對(duì)光線或天氣變化十分敏感,探索新的傳感器融合。將后端優(yōu)化,閉環(huán)檢測(cè)或整體過(guò)程基于深度學(xué)習(xí)實(shí)現(xiàn)的研究還相對(duì)更少,但是其是提高基于深度學(xué)習(xí)的相機(jī)位姿估計(jì)性能的有效途徑。
參考文獻(xiàn):
[1]NISTER D,NARODITSKY O,BERGEN J R.Visual odometry[C].Computer Vision and Pattern Recognition,2004.CVPR 2004.Proceedings of the 2004 IEEE Computer Society Conference on.IEEE,2004.
[2]BIRK A,PFINGSTHORN M.Simultaneous Localization and Mapping (SLAM)[M].Wiley Encyclopedia of Electrical and Electronics Engineering.John Wiley & Sons,Inc.2016.
[3]ENGEL J,THOMAS Sch?ps,CREMERS D.LSD-SLAM:Large-Scale Direct Monocular SLAM[C].European Conference on Computer Vision.Springer,Cham,2014:834-849.
[4]MUR-ARTAL R,MONTIEL J M M,Tardos J D.ORB-SLAM: a versatile and accurate monocular SLAM system[J].IEEE Transactions on Robotics,2015,31(05):1147-1163.
[5]KENDALL A,GRIMES M,CIPOLLA R.PoseNet:A Convolutional Network for Real-Time 6-DOF Camera Relocalization[C].IEEE International Conference on Computer Vision.2015.
[6]WALCH F,HAZIRBAS C,Leal-Taixé,Laura,et al.Image-based Localization with Spatial LSTMs[C].2016.
[7]MOHANTY V,AGRAWAL S,DATTA S,et al.DeepVO: A Deep Learning approach for Monocular Visual Odometry[C].2016.
基金項(xiàng)目:武器裝備軍內(nèi)重點(diǎn)科研項(xiàng)目資助
作者簡(jiǎn)介:吳凡(1995-),女,河北保定人,碩士研究生,主要從事機(jī)器視覺(jué)與深度學(xué)習(xí)方面的研究。