阮曉鋼,余鵬程,朱曉慶
(1.北京工業(yè)大學(xué)信息學(xué)部,北京 100124;2.計(jì)算智能與智能系統(tǒng)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100124)
視覺里程計(jì)[1](visual odometry,VO)解決同時(shí)定位和地圖構(gòu)建中的定位問題,主要用來求解相機(jī)在未知環(huán)境中的位姿并繪制出相機(jī)運(yùn)動(dòng)的軌跡.該技術(shù)被廣泛應(yīng)用于無人駕駛、機(jī)器人、潛航器等系統(tǒng),是繼慣性導(dǎo)航、車輪里程計(jì)等定位技術(shù)之后的一種新的導(dǎo)航技術(shù).視覺里程計(jì)利用相機(jī)捕獲連續(xù)運(yùn)動(dòng)時(shí)間內(nèi)的圖片序列,然后通過算法計(jì)算出相鄰圖片間的運(yùn)動(dòng)關(guān)系,最終輸出相機(jī)的相對(duì)姿態(tài),其中包括旋轉(zhuǎn)和平移信息,這一過程也被稱為視覺位姿估計(jì)[2].
視覺里程計(jì)的早期研究是針對(duì)火星探索計(jì)劃進(jìn)行的,2004年Nister等提出并搭建了最早的VO系統(tǒng),為后續(xù)的VO系統(tǒng)的研究提供了優(yōu)秀的范例和參考.視覺里程計(jì)可以分為單目、雙目和深度(RGB-D)相機(jī)視覺里程計(jì).根據(jù)采用的求解方法又可以劃分為基于間接法[3-4]和直接法[5-6]的視覺里程計(jì).間接方法在連續(xù)幀的匹配特征之間執(zhí)行幾何變換來計(jì)算相機(jī)運(yùn)動(dòng)的大致位姿,然后通過局部或全局的光束平差法(bundle adjustment,BA)進(jìn)行位姿優(yōu)化.其中基于特征法的位姿估計(jì)充分利用了圖片的幾何信息,主要包含特征提取、特征匹配、誤匹配剔除和運(yùn)動(dòng)估計(jì)等步驟.而基于直接法的位姿估計(jì)使用了圖片的光度信息,直接通過計(jì)算像素值來估計(jì)相機(jī)的運(yùn)動(dòng).但這些系統(tǒng)都存在一定的問題,直接法是基于相鄰圖片之間的灰度不變假設(shè),然后再求解位姿,這種假設(shè)在面對(duì)光照變化明顯的場(chǎng)景時(shí)難以成立,而特征點(diǎn)法只適用于具有明顯特征的場(chǎng)景,當(dāng)面對(duì)紋理單一、存在動(dòng)態(tài)物體的場(chǎng)景時(shí),難以提取有效的特征.
深度學(xué)習(xí)(deep learning)被廣泛應(yīng)用于目標(biāo)檢測(cè)、目標(biāo)追蹤等諸多計(jì)算機(jī)視覺領(lǐng)域[7-8].將其應(yīng)用到同步定位與建圖領(lǐng)域(simultaneous location and mapping,SLAM)也是目前國內(nèi)外研究的趨勢(shì).Roberts等[9]將每個(gè)圖片幀劃分為網(wǎng)格單元并計(jì)算每個(gè)單元的光流,然后使用K近鄰(K-nearest neighbors,KNN)算法來估計(jì)當(dāng)前位姿的變化.隨后一些研究人員提出通過卷積神經(jīng)網(wǎng)絡(luò)(conventional neural network,CNN)從光流圖片序列中估計(jì)相機(jī)運(yùn)動(dòng)位姿[10],例如PCNN VO[11]、Flow-odometry[12]、LS-V[13]等.CNN可以自動(dòng)對(duì)圖片進(jìn)行不同尺度的特征提取,省去了傳統(tǒng)方法中煩瑣的特征提取過程.但是,由于VO需要考慮連續(xù)圖片序列之間的相關(guān)信息,需要處理和發(fā)現(xiàn)圖片之間更多的低層幾何變換信息,而長短時(shí)記憶(long short-term memory,LSTM)網(wǎng)絡(luò)能實(shí)現(xiàn)這種時(shí)序上的關(guān)聯(lián).綜上所述,本文放棄傳統(tǒng)復(fù)雜且基于一定條件的系統(tǒng)設(shè)計(jì),采用深度學(xué)習(xí)構(gòu)建端到端的模型,提出了一種融合注意力、卷積和長短時(shí)記憶網(wǎng)絡(luò)的視覺里程計(jì)ALC-VO(attention LSTM CNN-visual odometry).注意力機(jī)制能提高系統(tǒng)的特征提取能力,在CNN基礎(chǔ)上增加通道注意力和空間注意力處理圖片,學(xué)習(xí)圖片中的運(yùn)動(dòng)特征,而不是具體的語義信息.而且視覺里程計(jì)本身是一種時(shí)序上對(duì)相機(jī)的位姿估計(jì),通過LSTM自動(dòng)學(xué)習(xí)圖片間的關(guān)聯(lián),能夠利用歷史信息完成對(duì)當(dāng)前位姿的有效估計(jì).為了充分利用已有的數(shù)據(jù),將圖片進(jìn)行正序的訓(xùn)練,還將圖片的逆序投入到神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練.
在公開數(shù)據(jù)集KITTI上進(jìn)行實(shí)驗(yàn),結(jié)果證明本文方法在位姿估計(jì)精度上優(yōu)于傳統(tǒng)的單目視覺里程計(jì)算法.論文的具體結(jié)構(gòu)如下:第1部分主要介紹本文所提出的模型.第2部分給出了模型在無人駕駛KITTI數(shù)據(jù)集下的實(shí)驗(yàn)結(jié)果與分析.第3部分得出結(jié)論,并對(duì)下一階段的工作進(jìn)行展望.
本文構(gòu)建的視覺里程計(jì)模型ALC-VO的詳細(xì)結(jié)構(gòu)如圖1所示,ALC-VO結(jié)合CNN層、ATTENTION層、LSTM層,以圖片序列為輸入,首先使用融合了注意力機(jī)制的CNN提取相鄰圖片間的局部特征,然后利用LSTM時(shí)序建模,最后通過全連接層輸出相機(jī)的相對(duì)位姿信息.同時(shí)采用圖2的鏡像網(wǎng)絡(luò),對(duì)模型進(jìn)行正向和逆向的訓(xùn)練,正向和逆向的區(qū)別在于圖片輸入的順序是否相反,在正常測(cè)試及驗(yàn)證模型的時(shí)候則不需要鏡像網(wǎng)絡(luò).
圖1 基于ALC-VO的視覺里程計(jì)模型Fig.1 Visual odometry based on ALC-VO
圖2 基礎(chǔ)框架Fig.2 Basic framework
目前已經(jīng)有很多網(wǎng)絡(luò)能獲取圖片的語義信息,如VGG Net、Google Net等,然而它們主要用于分類或者目標(biāo)檢測(cè)等相關(guān)任務(wù).而相機(jī)位姿估計(jì)與圖片分類任務(wù)區(qū)別很大,首先圖片分類每次只需要提取一張圖片的特征,而視覺里程計(jì)是通過2張圖片來計(jì)算出相機(jī)的位姿,更依賴圖片之間的幾何特征信息,屬于深度學(xué)習(xí)中的回歸問題.因此,采用諸如VGG Net結(jié)構(gòu)來解決視覺里程計(jì)問題并不是最優(yōu)選擇.而光流可以表示相鄰時(shí)刻圖片間的運(yùn)動(dòng)關(guān)系,所以本文參照了光流神經(jīng)網(wǎng)絡(luò)模型Flow-Net,通過修改Flow-Net的子網(wǎng)絡(luò)FlowNetSimple構(gòu)建了ALC-VO中的CNN部分,用于提取圖片運(yùn)動(dòng)特征.
網(wǎng)絡(luò)的輸入為相鄰2幀的圖片,2張圖片均為數(shù)據(jù)集中的原始RGB圖片,為了適應(yīng)本文所提出的網(wǎng)絡(luò),將圖片大小修改為1 280×384,并將2張圖片進(jìn)行第3維度上的串聯(lián),組成第3維度為6的數(shù)據(jù)并輸入到網(wǎng)絡(luò)中.逐層學(xué)習(xí)圖片運(yùn)動(dòng)特征的過程中,在每個(gè)卷積層之后添加批量歸一化(batch normalization)[14],使得卷積變換前后數(shù)據(jù)分布保持不變.完成相鄰圖片間的運(yùn)動(dòng)特征學(xué)習(xí)后,將最后一個(gè)卷積層輸出的特征圖輸入到后面的LSTM.CNN的各層參數(shù)如表1所示.該CNN模型總共包含8個(gè)卷積層,其中第1個(gè)卷積層的卷積核大小為7×7,第2~4層的卷積核大小減小為5×5,后面4層的卷積核大小再次縮小到3×3.
表1 CNN的各層參數(shù)Table 1 Parameters of each layer of CNN
LSTM網(wǎng)絡(luò)十分適合處理時(shí)序數(shù)據(jù)問題,可以在計(jì)算下一時(shí)刻相鄰圖片間的運(yùn)動(dòng)關(guān)系時(shí),提供之前時(shí)刻保留的位姿信息.因?yàn)槭菆D片數(shù)據(jù),所以使用了卷積長短時(shí)記憶網(wǎng)絡(luò)ConvLSTM[15].ConvLSTM在LSTM結(jié)構(gòu)的基礎(chǔ)上進(jìn)行了改進(jìn),將權(quán)重與輸入層的全連接方式改為局部連接,通過卷積運(yùn)算可以更好地學(xué)習(xí)圖片的空間特征.
假設(shè)當(dāng)前時(shí)刻為t,輸入為Xt和上一時(shí)刻的隱藏狀態(tài)Ht-1,則ConvLSTM輸出及狀態(tài)更新的計(jì)算式[15]為
it=σ(Wxi*Xt+Whi*Ht-1+Wci°Ct-1+bi)
ft=σ(Wxf*Xt+Whf*Ht-1+Wcf°Ct-1+bf)
Ct=ft°Ct-1+it°tanh (Wxc*Xt+Whc*Ht-1+bc)
ot=σ(Wxo*Xt+Who*Ht-1+Wco°Ct+bo)
Ht=ot°tanhCt
(1)
式中:σ為sigmoid激活函數(shù);*為卷積運(yùn)算;°為2個(gè)矩陣或向量對(duì)應(yīng)元素相乘,稱為Hadamard乘積;it、ft、Ct、ot、Ht均為三維張量,其中1個(gè)維度是時(shí)間,其余2個(gè)分別是圖像的長、寬.
ALC-VO中LSTM結(jié)構(gòu)由2個(gè)ConvLSTM疊加構(gòu)成,每個(gè)ConvLSTM層包含1 024個(gè)隱藏單元,卷積核大小為3×3.其中第1個(gè)ConvLSTM層連接在卷積層conv_8之后,第2個(gè)ConvLSTM層連接在第1個(gè)ConvLSTM層之后,其輸入為第1個(gè)ConvLSTM層的隱藏狀態(tài)ht.為了保持原始的數(shù)據(jù)分布,2個(gè)ConvLSTM層中使用的激活函數(shù)為ReLU.ALC-VO在第2個(gè)ConvLSTM層之后添加了2個(gè)全連接層,神經(jīng)元個(gè)數(shù)分別為128和6,其中最后1個(gè)全連接層的輸出為ALC-VO估計(jì)的相機(jī)相對(duì)位姿.
注意力模塊可嵌入到卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行一種簡單而又有效的注意力機(jī)制部署.其主要包含通道注意力模塊及空間注意力模塊.通過使用注意力機(jī)制來增強(qiáng)網(wǎng)絡(luò)架構(gòu)的表達(dá)力,進(jìn)一步表征出圖片之間的幾何關(guān)系變換,使得網(wǎng)絡(luò)能夠更加智能地學(xué)習(xí)到更重要的特征同時(shí)關(guān)注那些特征區(qū)域,并且減少學(xué)習(xí)一些不重要的特征,這也是注意力機(jī)制的本質(zhì)所在,并將基于卷積的注意力模塊集成到CNN 網(wǎng)絡(luò)架構(gòu)中進(jìn)行端到端的訓(xùn)練.其基本結(jié)構(gòu)如圖3所示.主要對(duì)特征進(jìn)行2個(gè)操作,公式為
圖3 注意力模型Fig.3 Attention model
F′=σ(MLP(AP(F))+MLP(MP(F)))⊙F
F″=σ(f7×7[AP(F′),MP(F′)])⊙F′
(2)
可以把視覺里程計(jì)估計(jì)問題看成一個(gè)條件概率問題,給定一個(gè)序列的n+1張圖片:
X=(X1,X2,…,Xn+1)
(3)
計(jì)算得到該序列中兩兩相鄰的圖片之間的姿態(tài):
Y=(Y1,Y2,…,Yn)
(4)
VO估計(jì)問題看成一個(gè)條件概率問題,在給定圖片序列的情況下,計(jì)算位姿的概率表示為
p(Y|X)=p(Y1,Y2,…,Yn|X1,X2,…,Xn+1)
(5)
這里要解決的問題就是求解最優(yōu)的網(wǎng)絡(luò)參數(shù)w*使得式(5)中的概率最大化.式(5)表示在給定圖片序列(Y1,Y2,…,Yn)的情況下,估計(jì)相機(jī)的位置和姿態(tài)(X1,X2,…,Xn+1)是對(duì)整個(gè)視覺里程計(jì)任務(wù)的數(shù)學(xué)描述.而在公式
(6)
中增加網(wǎng)絡(luò)參數(shù)w,是用神經(jīng)網(wǎng)絡(luò)處理視覺里程計(jì)這個(gè)任務(wù)的數(shù)學(xué)描述.在給定圖片序列(Y1,Y2,…,Yn)情況下,不同網(wǎng)絡(luò)參數(shù)來估計(jì)位姿(X1,X2,…,Xn+1)會(huì)有不同的概率值.優(yōu)化算法需要尋找使其估計(jì)概率最大這一情況下的網(wǎng)絡(luò)參數(shù)值,這代表整個(gè)網(wǎng)絡(luò)達(dá)到最優(yōu)狀態(tài).
圖2中左半部分和右半部的網(wǎng)絡(luò)結(jié)構(gòu)完全對(duì)稱,圖片序列按照時(shí)間順序依次經(jīng)過CNN層、LSTM層以及FCN層,輸出相鄰兩幀之間的相對(duì)姿態(tài).右半部分和左半部分完全對(duì)稱,只是圖片序列采用逆序輸入的方式,得到的輸出也代表相鄰兩幀圖片之間的相對(duì)姿態(tài),不過是上一幀相對(duì)于當(dāng)前幀的相對(duì)姿態(tài).誤差為所有輸出姿態(tài)的均方誤差,表示為
(7)
本實(shí)驗(yàn)采用顯卡Nvidia GeForce 2080ti來訓(xùn)練和測(cè)試模型,CPU為Intel至強(qiáng)E5-2673-V3.在深度學(xué)習(xí)框架Pytorch下進(jìn)行相關(guān)算法的設(shè)計(jì).使用Adam(adaptive moment estimation)優(yōu)化器進(jìn)行100 個(gè)epoch 的訓(xùn)練,并將學(xué)習(xí)率設(shè)置為10×10-2,同時(shí)引入 Dropout 和 Early Stopping 技術(shù)來防止模型過擬合.神經(jīng)網(wǎng)絡(luò)輸入預(yù)處理圖片的大小為1 280×384,訓(xùn)練時(shí)采用2塊上述GPU進(jìn)行同時(shí)訓(xùn)練,訓(xùn)練1個(gè)epoch需要0.1 h左右.
KITTI Visual Odometry[16]是Geiger等開源的汽車駕駛數(shù)據(jù)集.可廣泛用于評(píng)估各種VO或者SLAM算法.KITTI數(shù)據(jù)集前11個(gè)序列信息如表2所示.
KITTI VO benchmark共包含有22個(gè)場(chǎng)景圖片,每個(gè)場(chǎng)景都包含有雙目攝像機(jī)拍攝的一系列的圖片.不過本文只使用雙目數(shù)據(jù)集中的單目圖片.其中序列00—03的圖片尺寸為1 241×376,序列04—10的圖片尺寸1 226×370,為了符合網(wǎng)絡(luò)對(duì)輸入數(shù)據(jù)的要求,將所有圖片的尺寸調(diào)整為1 280×384.22個(gè)序列中只有前11個(gè)序列提供了每個(gè)圖片對(duì)應(yīng)的真實(shí)姿態(tài)數(shù)據(jù),部分場(chǎng)景中含有動(dòng)態(tài)移動(dòng)的物體以及明暗的顯著變換,部分場(chǎng)景中汽車行駛速度高達(dá)90 km/h.總體信息如表2所示.
表2 KITTI 數(shù)據(jù)集中序列00-10信息Table 2 Information of sequences 00-10 in KITTI
考慮到訓(xùn)練集和驗(yàn)證集的圖片種類劃分,本文使用08以前的序列對(duì)ALC-VO模型進(jìn)行訓(xùn)練,并選擇一定數(shù)量的數(shù)據(jù)進(jìn)行驗(yàn)證,然后使用08、09、10序列對(duì)ALC-VO模型進(jìn)行測(cè)試.訓(xùn)練集和驗(yàn)證集的所有圖片均由雙目相機(jī)中的左相機(jī)所采集.
首先,將討論影響模型的超參數(shù)學(xué)習(xí)率η,Loss曲線如圖4所示.本實(shí)驗(yàn)中η被設(shè)置為[0.40,0.20,0.10,0.05,0.01],Loss曲線剛開始下降得很快,后面就是震蕩和隨機(jī)抖動(dòng);最終使用η=0.40 Loss曲線震蕩得非常明顯,這樣的參數(shù)沒辦法使得網(wǎng)絡(luò)獲得較好的性能.同樣如果η值太小(如0.01),那么收斂速度可能會(huì)太慢,需要更長的時(shí)間來得到較好的網(wǎng)絡(luò)參數(shù).
圖4 不同學(xué)習(xí)率下的Loss變化Fig.4 Loss with different learning rates
將訓(xùn)練好的ALC-VO模型在測(cè)試集序列08、09、10上進(jìn)行測(cè)試,并與其他先進(jìn)的VO系統(tǒng)進(jìn)行比較,通過 KITTI VO/SLAM官方的評(píng)價(jià)方式進(jìn)行評(píng)測(cè):路徑長度為100~800 m,而且汽車速度不相同(不同場(chǎng)景中汽車的速度不相同),評(píng)價(jià)指標(biāo)為平移誤差和旋轉(zhuǎn)誤差的均方根誤差(RMSE).在誤差中t為平移誤差百分比,r為旋轉(zhuǎn)誤差,分別表示為
(8)
(9)
式中:st為地面真實(shí)的軌跡總長度;sp為里程計(jì)預(yù)測(cè)的軌跡總長度;Rerror為總的旋轉(zhuǎn)誤差.
不同算法在測(cè)試集上的具體表現(xiàn)如表3所示,表中各序列的位姿定量評(píng)價(jià)指標(biāo)為不同路徑長度的平均平移誤差和平均旋轉(zhuǎn)誤差.實(shí)驗(yàn)結(jié)果表明,本文算法要優(yōu)于PCNN-VO、VISO2-Mono[17]、SVR-VO[18]、FLOW-VO、Zhou等[19]、Deep-VO-Feat[20]、CC[21]、SC-SFM Learner[22]算法,證明了本文模型的可行性.基于光流的FLOW-VO也有良好的表現(xiàn),這表明在運(yùn)動(dòng)估計(jì)中,基于神經(jīng)網(wǎng)絡(luò)的光流方法可行,用光流來表征圖片的運(yùn)動(dòng)特征是一種較優(yōu)的選擇.
VISO2-S-VO與VISO2-M-VO均為采用傳統(tǒng)方式求解 VO的算法,兩者不同之處在于VISO2-M-VO為單目算法,VISO2-S-VO為雙目算法.為了對(duì)比傳統(tǒng)方法的實(shí)驗(yàn)效果,將VISO2-S-VO與VISO2-M-VO在KITTI數(shù)據(jù)集的場(chǎng)景中進(jìn)行測(cè)試.如圖5所示,即為本文方法所估計(jì)的VO在不同路徑長度和速度下的平移和旋轉(zhuǎn)角度的平均RMSE.可以看到本文所提出的方法比VISO2-M單目VO的效果要好,但是比VISO2-S-VO的定位精度要低.從整體來看,除了雙目的VISO2-S-VO,本文的模型都優(yōu)于其余的單目算法.但隨著相機(jī)運(yùn)動(dòng)速度的增加,ALC-VO的誤差有增大的趨勢(shì),原因主要是訓(xùn)練集中缺少運(yùn)動(dòng)速度較快的樣本,因此網(wǎng)絡(luò)在預(yù)測(cè)高速運(yùn)動(dòng)下平移和旋轉(zhuǎn)信息時(shí)相對(duì)來說誤差偏大.
圖5 不同算法在4種指標(biāo)下的誤差Fig.5 Errors of different algorithms based on four indices
為了更好地進(jìn)行定性分析,將ALC-VO、VISO2-S-VO、VISO2-M-VO、PCNN-VO、FLOW-VO 、SVR-VO在序列09、10上估計(jì)的運(yùn)動(dòng)軌跡進(jìn)行了可視化處理,如圖6所示.圖中由真實(shí)位姿數(shù)據(jù)產(chǎn)生的軌跡作為測(cè)量標(biāo)準(zhǔn).可以看出5種算法大致上都恢復(fù)出了真實(shí)運(yùn)動(dòng)軌跡的形狀,而ALC-VO模型估計(jì)的軌跡要優(yōu)于VISO2-M-VO、PCNN-VO、FLOW-VO、SVR-VO,更接近于真實(shí)軌跡.但是ALC-VO的精度要略低于VISO2-S-VO.原因一,VISO2-S-VO是雙目算法,VISO2-S-VO可以通過左目相機(jī)和右目相機(jī)拍攝的2幅圖片獲取尺度信息,從而位姿估計(jì)更加準(zhǔn)確;原因二,ALC-VO的訓(xùn)練樣本不夠多,沒有達(dá)到網(wǎng)絡(luò)最優(yōu)的狀態(tài).
圖6 不同算法在序列09、10上生成的運(yùn)動(dòng)軌跡Fig.6 Motion trajectories generated by different algorithms on sequence 09 and 10
另外,本文還在序列11、12上對(duì)ALC-VO模型行了測(cè)試,序列11、12沒有提供真實(shí)位姿數(shù)據(jù),且相機(jī)的速度也快于前面的序列,因此相鄰圖片間的相機(jī)運(yùn)動(dòng)幅度更加大,這將十分考驗(yàn)算法的性能.圖7展示了不同算法估計(jì)的運(yùn)動(dòng)軌跡的可視化結(jié)果,因?yàn)槿鄙僬鎸?shí)數(shù)據(jù),所以使用VISO2-M-VO、VISO2-S-VO的運(yùn)算結(jié)果與本文算法進(jìn)行對(duì)比,并將VISO2-S-VO作為參考.從圖7中可以看出相較于VISO2-M-VO方法,ALC-VO的運(yùn)動(dòng)軌跡更接近于VISO2-S-VO,這展現(xiàn)出了本文提出的模型有較好的泛化能力.
圖7 不同算法在序列11、12上生成的運(yùn)動(dòng)軌跡Fig.7 Motion trajectories generated by different algorithms on sequence 11 and 12
另外,為了驗(yàn)證注意力結(jié)構(gòu)和LSTM網(wǎng)絡(luò)結(jié)構(gòu)對(duì)算法的提升效果,本文在KITTI數(shù)據(jù)集中進(jìn)行了不同模塊的訓(xùn)練以及測(cè)試.實(shí)驗(yàn)結(jié)果如表4所示,CNN算法的平移誤差為12.32%,旋轉(zhuǎn)誤差為0.046 0°/m,將注意力結(jié)構(gòu)單獨(dú)嵌入到CNN中,平移誤差降低至8.25%,旋轉(zhuǎn)誤差降低至0.035 0°/m,驗(yàn)證了LSTM結(jié)構(gòu)的有效性.將LSTM結(jié)構(gòu)單獨(dú)嵌入到CNN算法中,平移誤差降低至8.83%,旋轉(zhuǎn)誤差降低至0.037 0°/m,驗(yàn)證了本文提出算法整體結(jié)構(gòu)的有效性.將2個(gè)結(jié)構(gòu)同時(shí)嵌入到CNN算法中,平移誤差降低至7.63%,旋轉(zhuǎn)誤差降低至0.028 1°/m,驗(yàn)證了本文算法的有效性.
表4 不同網(wǎng)絡(luò)結(jié)構(gòu)的誤差結(jié)果Table 4 Error results of different network structures
最后,檢測(cè)算法所消耗的時(shí)間,本文對(duì)不同算法進(jìn)行了對(duì)比,具體內(nèi)容如表5所示.從整體上看本文算法所消耗的時(shí)間低于SVR-VO和PCNN-VO,但是高于FLOW-VO.在特征提取的環(huán)節(jié)本文參考了FLOW-VO的網(wǎng)絡(luò)結(jié)構(gòu),同時(shí)本文模型增加注意力模塊及長短時(shí)記憶網(wǎng)絡(luò),從而增加了算法的計(jì)算量,導(dǎo)致計(jì)算時(shí)間的增加.通過定量分析,ALC-VO較FLOW-VO在精度上提高了33.2%,同時(shí)時(shí)間上增加了25.7%.
表5 不同方法的時(shí)間對(duì)比結(jié)果Table 5 Time comparison results of different methods
1)本文提出了一種基于注意力和LSTM時(shí)序建模的單目視覺里程計(jì)算法,通過融合CNN、注意力、LSTM構(gòu)建整體的網(wǎng)絡(luò),并利用一個(gè)對(duì)稱的鏡像網(wǎng)絡(luò),使其能夠?qū)W習(xí)圖片之間的深層的幾何運(yùn)動(dòng)信息.
2)所提出的算法相較于傳統(tǒng)的視覺里程計(jì)算法,具有更好的準(zhǔn)確性,同時(shí)摒棄了相機(jī)標(biāo)定特征提取特征匹配等復(fù)雜過程,在不同場(chǎng)景下更易于實(shí)現(xiàn),具有較高的穩(wěn)定性.
3)與其他算法相比,本文算法不僅對(duì)視角和光線變化更魯棒,而且在位姿估計(jì)誤差的精度方面有顯著的提升.不足之處是,所提出的網(wǎng)絡(luò)模型有較多參數(shù),時(shí)間復(fù)雜度并非最優(yōu).因此,未來的工作將通過知識(shí)蒸餾的方式減少網(wǎng)絡(luò)參數(shù),對(duì)本文算法的運(yùn)行速度進(jìn)行優(yōu)化.