摘 要:經典的視覺里程計系統提取稀疏或密集的特征并匹配以執(zhí)行幀到幀的運動估計,但是都需要針對它們所處的特定環(huán)境進行仔細的參數調整。受深度網絡的最新進展和以前關于應用于 VO 的學習方法的啟發(fā),探索了使用卷積神經網絡來學習視覺位姿估計任務。通過對公開數據集進行實驗,驗證方法性能。最后,對算法進行總結分析并對展望其發(fā)展趨勢。
關鍵詞:視覺里程計;位姿估計;深度學習; 卷積神經網絡
DOI:10.16640/j.cnki.37-1222/t.2019.21.083
0 引言
視覺里程計[1],也稱為幀間估計,是視覺SLAM[2](simultaneous localization and mapping)中的核心內容。經典的基于幾何的視覺里程計方法分為特征點法與直接法。但是其依據于大量的計算,并且估計結果對相機參數極為敏感。近年來,人工智能、深度學習再次掀起了熱潮,基于深度學習的視覺任務豐富多樣,在分類、跟蹤等問題上都取得了很好的效果。但是多學習外觀特征,而視覺里程計需要學習圖片的幾何特征。
本文提出了一種基于卷積神經網絡的視覺里程計方法,將數據集進行預處理,將圖片序列中相鄰的兩張RGB圖片進行串聯,每張圖片的通道數為3,得到一個通道數為6的張量,輸入到神經網絡中。參考Vgg網絡結構進行特征提取工作。將提取的特征輸入到全鏈接層將張量壓縮為位姿特征向量。通過KITTI數據集進行實驗,輸出圖片之間的相對位姿,并轉化為絕對位姿和地面真實軌跡進行對比。
1 相關內容
1.1 經典的幾何方法
經典的幾何幀間估計方法有著悠久的解決方案設計的歷史。最開始是基于稀疏的特征跟蹤,研究者們設計了很多具有魯棒性的角點、邊緣點、區(qū)塊等比較有代表性的點的特征提取與匹配的算法,在這些特征的基礎上估計相機的運動,如SIFT,SURF,ORB等。Eigel[3]等人開發(fā)了最經典的直接方法之一LSD-SLAM。直接方法在過去幾年中得到了最多的關注,Mur-Artal等人的ORB-SLAM[4]算法進行稀疏特征的跟蹤也達到了令人印象深刻的魯棒性和準確性。
1.2 深度學習法
深度學習采用端到端的方式進行大量的自動學習,并嘗試從數據中推斷它們。從學習方式分為有著明確標簽的有監(jiān)督學習(supervised learning)與沒有明確標簽采用聚類的思想的無監(jiān)督學習(unsupervised learning)。Posenet[5]利用卷積神經網絡(CNN)實現相機姿態(tài)估計,訓練卷積神經網絡從一個單一的RGB圖像回歸相機的姿態(tài),并在大型室外場景與室內場景進行實驗。Walch[6]在其去掉全連接層2048維的輸出向量基礎上加入循環(huán)神經網絡架構實現相機姿態(tài)回歸,捕捉像素關系。DeepVO[7]由兩個并行AlexNet的級聯卷積層組成并在末端串聯,提取圖片的低級特征到高級特征。
2 算法結構
2.1 基于CNN的特征提取部分
將連續(xù)的兩張圖片串聯為6個通道進行特征提取,卷積層卷積核全部使用3×3的卷積核和2×2的池化核,其中兩個3×3卷積層的串聯相當于1個5×5的卷積層,3個3×3的卷積層串聯相當于1個7×7的卷積層。其中3個3×3的卷積層參數量只有7×7的一半左右,有效的減少了參數量。由捕捉大的特征逐漸到捕捉小的特征進行過渡。
通過多個小的卷積核堆疊來替代大的卷積核,增加了非線性激活函數,這有效的增加了特征學習的能力。
2.2 全連接層
在卷積層后面加入全連接層,將特征張量的維度降下來。以輸出6維度的相機位姿。隱藏單元數為4096,1024,512,128,最后壓縮為6維的表示圖片之間相對位姿的特征向量。全連接層后面也連接著非線性激活函數。整體的網絡結構如圖1所示。
2.3 損失函數
3 實驗
3.1 實驗平臺與特征提取過程
實驗平臺為顯卡RTX2080ti一塊,ubuntu16.04操作系統。在開源框架pytorch上實現。
選擇KITTI數據集進行實驗,采用有監(jiān)督的學習方法。將數據集中gps等采集的變換矩陣表示的位姿轉化為3維的平移與3維的歐拉角表示,更利于反向梯度傳輸。首先將數據集計算圖片的均值與標準差,對其進行歸一化處理。
3.2 訓練過程
網絡在00,01,02,08上進行訓練,驗證數據集按照0.2的比例分割來源于訓練集的。采用Adam優(yōu)化算法,設置初始學習率為0.0005。batch梯度下降方法,Batchsize為16。網絡訓練一個epoch大概需要5分鐘,模型的驗證誤差與訓練誤差整體收斂到一個較小的范圍大概需要130epoch,約26小時。訓練與驗證的損失曲線如圖2所示,其中紅色代表隨著迭代次數增加的訓練損失,藍色代表隨著迭代次數增加的驗證損失,可以從損失函數曲線看出,兩個損失都可以收斂到較好的范圍并且相差不多。
3.3 測試過程
按照場景由訓練得到的模型進行測試,在每個文件夾所處的序列圖像中,將圖片堆疊輸入到網絡中,得到預測的相對姿態(tài),有姿態(tài)解算將得出的相對姿態(tài)轉化為絕對姿態(tài),并計算平移損失、旋轉損失以及總損失。
如圖3所示。綠色的為KITTI上GPS等得出的位姿作為真實地面軌跡。紅色的為KITTI數據集通過深度神經網絡測試得到相對姿態(tài)并進行姿態(tài)解算得到的相對于第一幀的絕對姿態(tài)。
隨著訓練epoch的增加,測試模型的誤差一直在減少,畫出的軌跡收斂性也有明顯的提升,圖3中的軌跡是訓練到130epoch時,得到的均勻較好的軌跡曲線。從幾個測試的序列看出,基于卷積神經網絡的位姿估計方法都獲得了準確的軌跡形狀,但都存在軌跡漂移的現象,和經典的位姿估計方法如ORB得到的軌跡準確度還有差距?;谏疃壬窠浘W絡的視覺位姿估計精度仍需提升。
4 結論與發(fā)展趨勢
本文提出了一種基于卷積神經網絡的視覺位姿估計方法。將兩張原始的RGB圖片以串聯的方式輸入到神經網絡中。經過實驗發(fā)現在訓練過程的參數設置很重要,合適的參數會使得網絡得到好的收斂,并測試出好的結果。在訓練保存出較好的模型及優(yōu)化器下性能較優(yōu),位姿估計較為準確。但是其和經典的幾何方法算法性能還有待提高,但是可以作為其有效的補充。
實驗可以將數據集進行擴充,使得在相機面臨豐富運動時更加準確??梢圆捎眯碌囊曈X傳感器,如對光線或天氣變化十分敏感,探索新的傳感器融合。將后端優(yōu)化,閉環(huá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.
基金項目:武器裝備軍內重點科研項目資助
作者簡介:吳凡(1995-),女,河北保定人,碩士研究生,主要從事機器視覺與深度學習方面的研究。