摘 要:現(xiàn)有的基于深度學(xué)習(xí)的視覺里程計(jì)(visual odometry,VO)訓(xùn)練樣本與應(yīng)用場(chǎng)景存在差異時(shí),普遍存在難以適應(yīng)新環(huán)境的問題,因此提出了一種在線更新單目視覺里程計(jì)算法OUMVO。其特點(diǎn)在于應(yīng)用階段利用實(shí)時(shí)采集到的圖像序列在線優(yōu)化位姿估計(jì)網(wǎng)絡(luò)模型,提高網(wǎng)絡(luò)的泛化能力和對(duì)新環(huán)境的適用能力。該方法使用了自監(jiān)督學(xué)習(xí)方法,無須額外標(biāo)注地面真值,并采用了Transformer對(duì)圖像流進(jìn)行序列建模,以充分利用局部窗口內(nèi)的視覺信息,提高位姿估計(jì)精度,以避免傳統(tǒng)方法只能利用相鄰兩幀圖像來估計(jì)位姿的局限,還可以彌補(bǔ)采用RNN進(jìn)行序列建模無法并行計(jì)算的缺點(diǎn)。此外,采用圖像空間幾何一致性約束,解決了傳統(tǒng)單目視覺里程計(jì)算法存在的尺度漂移問題。在KITTI數(shù)據(jù)集上的定量和定性實(shí)驗(yàn)結(jié)果表明,OUMVO的位姿估計(jì)精度和對(duì)新環(huán)境的適應(yīng)能力均優(yōu)于現(xiàn)有的先進(jìn)單目視覺里程計(jì)方法。
關(guān)鍵詞:視覺里程計(jì);單目視覺;在線更新;自監(jiān)督學(xué)習(xí);Transformer神經(jīng)網(wǎng)絡(luò)
中圖分類號(hào):TP242.6 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1001-3695(2024)07-041-2209-06
doi: 10.19734/j.issn.1001-3695.2023.09.0512
Online-updating monocular visual odometry
Abstract:
When training samples of existing deep learning-based visual odometry(VO) are different from application scena-rios, it is difficult to adapt to the new environment. Therefore, this paper proposed an online updated monocular visual mileage calculation method(OUMVO). In the application stage, it optimized the pose estimation network model online by using the real-time image sequence, which improved the generalization ability of the network and the ability to apply to the new environment. At the same time, it utilized self-supervised learning method without the need to mark the ground truth. Moreover, it adopted Transformer to conduct sequential modeling of image streams to make full use of the visual information within the local window to improve the precision of the pose estimation in order to avoid the limitation that the traditional method could only use two adjacent frames to estimate the pose. It could also compensate for the shortcomings of using RNN for sequence modeling which could not be calculated in parallel. In addition, it used the geometric consistency constraint of the image space to solve the scale drift problem of the traditional monocular visual mileage calculation method. Quantitative and qualitative experimental results on the KITTI dataset show that the proposed method is superior to existing state-of-the-art monocular visual odometry methods in terms of pose estimation accuracy and adaptability to new environments.
Key words:visual odometry; monocular visual; online update; self-supervised deep learning; Transformer neural network
0 引言
VO作為視覺SLAM前端最為重要的組成部分,承擔(dān)著估計(jì)相機(jī)連續(xù)運(yùn)動(dòng)軌跡的任務(wù)。其中,單目VO因傳感器體積小、成本低的優(yōu)勢(shì)被廣泛應(yīng)用于機(jī)器定位導(dǎo)航、自動(dòng)駕駛、增強(qiáng)駕駛等領(lǐng)域[1]。近年來,深度學(xué)習(xí)在圖像處理領(lǐng)域取得了巨大成就,這也為進(jìn)一步提升VO性能提供了新的思路[2,3]。然而,由于公開數(shù)據(jù)集與實(shí)際應(yīng)用場(chǎng)景存在差異,尤其是在電纜隧道這種弱光重復(fù)紋理的復(fù)雜環(huán)境中,自行制作數(shù)據(jù)集成本高昂,僅使用開源數(shù)據(jù)集又難以達(dá)到效果,提高算法的泛化能力成為了解決這類問題的重點(diǎn)。
從有監(jiān)督學(xué)習(xí)的軌跡恢復(fù)問題開始,Kendall等人[4]在2015年首次提出將原始RGB圖像作為輸入,并完全使用CNN進(jìn)行6-DoF位姿回歸。Li等人[5]隨后將其使用范圍擴(kuò)展到可以使用原始RGB-D圖像的新架構(gòu),來應(yīng)對(duì)室內(nèi)環(huán)境帶來的挑戰(zhàn)。而文獻(xiàn)[6]提出的基于CNN的視覺里程計(jì)首次采用光流圖作為輸入,其認(rèn)為光流圖相較于RGB圖更能反映圖像幾何信息,這與位姿估計(jì)核心理念保持一致。在2017年,Wang等人[7]提出了DeepVO,創(chuàng)新性地將CNN與RNN相結(jié)合,利用循環(huán)卷積神經(jīng)網(wǎng)絡(luò)(recurrent convolutional neural network,RCNN)的強(qiáng)大學(xué)習(xí)能力,同時(shí)實(shí)現(xiàn)單目視覺里程計(jì)的特征學(xué)習(xí)和順序建模?;谟斜O(jiān)督學(xué)習(xí)的方法取得了明顯優(yōu)于傳統(tǒng)方法的效果,但其通常需要相機(jī)位姿真值作為監(jiān)督信號(hào),而有限的開源數(shù)據(jù)集和高昂的采集成本嚴(yán)重制約了有監(jiān)督學(xué)習(xí)里程計(jì)的發(fā)展。
為避免對(duì)相機(jī)位姿的需求,基于自監(jiān)督學(xué)習(xí)的VO方法通過最小化光度誤差[8],能夠聯(lián)合學(xué)習(xí)攝像機(jī)姿態(tài)、深度和光流,近年來取得了很好的效果。Li等人[9]在DeepVO的基礎(chǔ)上提出了一種基于自監(jiān)督學(xué)習(xí)的視覺里程計(jì)算法UnDeepVO,該系統(tǒng)在訓(xùn)練階段的輸入為雙目圖像序列,而在應(yīng)用階段僅使用單目,并利用已知的雙目基線距離恢復(fù)場(chǎng)景絕對(duì)尺度。Zhan等人[10]創(chuàng)新性地引入了特征重構(gòu)損失來增加位姿估計(jì)精度,但是該方法的前提條件為不存在遮擋,且場(chǎng)景是剛性的,這很難在實(shí)際應(yīng)用場(chǎng)景中得到保證。Mahjourian等人[11]明確考慮了整個(gè)場(chǎng)景的3D幾何形狀,在連續(xù)多幀中強(qiáng)制添加3D點(diǎn)云和相機(jī)運(yùn)動(dòng)的一致性約束。為了提高在弱紋理和光照條件變化場(chǎng)景下系統(tǒng)的穩(wěn)定性,Li等人[12]提出了基于Transformer并結(jié)合光流信息的視覺里程計(jì)系統(tǒng)。針對(duì)多任務(wù),Kim等人[13]提出了第一個(gè)完全數(shù)據(jù)驅(qū)動(dòng)的語(yǔ)義視覺里程計(jì)系統(tǒng),稱為SimVODIS,其可以在單個(gè)線程中獲取語(yǔ)義信息、位姿信息和深度信息。此外,北京大學(xué)團(tuán)隊(duì)針對(duì)現(xiàn)有算法域適應(yīng)性差的問題,利用在線適應(yīng)的策略來增加視覺里程計(jì)算法在不同環(huán)境中的適應(yīng)能力[14,15],實(shí)驗(yàn)表明,該方法明顯優(yōu)于現(xiàn)有的自監(jiān)督學(xué)習(xí)單目視覺里程計(jì)算法。盡管基于自監(jiān)督學(xué)習(xí)的VO在學(xué)習(xí)過程中可以自主探索數(shù)據(jù)中的結(jié)構(gòu)和規(guī)律,近年來已取得了令人印象深刻的成果,但當(dāng)測(cè)試環(huán)境和訓(xùn)練數(shù)據(jù)之間存在較大差距時(shí),這類離線訓(xùn)練的網(wǎng)絡(luò)往往容易崩潰,因而難以推廣到新的未知場(chǎng)景[16]。
此外,單目采集連續(xù)圖像幀時(shí),由于場(chǎng)景中物體尺度和視角發(fā)生變化,會(huì)導(dǎo)致估計(jì)誤差并不斷積累,從而引發(fā)尺度漂移問題,解決這個(gè)問題對(duì)于準(zhǔn)確的VO系統(tǒng)也非常重要。
基于此,為進(jìn)一步提高里程計(jì)對(duì)新環(huán)境的適應(yīng)力,本文提出了一種基于自監(jiān)督學(xué)習(xí)的在線更新單目視覺里程計(jì)算法OUMVO。其貢獻(xiàn)在于:
a)提出了一種在線更新的策略,在訓(xùn)練階段使用雙目立體圖像序列以恢復(fù)場(chǎng)景絕對(duì)尺度,在測(cè)試階段僅使用單目,并在線更新網(wǎng)絡(luò)模型;
b)提出了一種基于Transformer的自監(jiān)督VO框架,充分了利用局部窗口內(nèi)的視覺信息,提高了位姿估計(jì)精度;
c)在KITTT和真實(shí)環(huán)境中進(jìn)行了驗(yàn)證,結(jié)果表明本文方法的位姿估計(jì)精度、尺度恢復(fù)效果和對(duì)新環(huán)境的適應(yīng)力均優(yōu)于現(xiàn)有的先進(jìn)單目視覺里程計(jì)方法。
1 OUMVO
1.1 在線更新策略
隨著視覺SLAM的應(yīng)用場(chǎng)景越來越復(fù)雜多變,給算法的穩(wěn)定性和泛化能力帶來了挑戰(zhàn)[17]。以近年來興起的自動(dòng)駕駛技術(shù)為例,車輛在行駛過程中需要應(yīng)對(duì)不斷變化的環(huán)境,如城市或是村鎮(zhèn)、開闊路面或是隧道、一天中不同的時(shí)間段、不同的天氣狀態(tài)等變化,都會(huì)影響相機(jī)實(shí)時(shí)采集的圖像的特征分布情況,因此采用單一模型很難在全過程中都保持令人滿意的效果。
為克服上述問題,本文在視覺里程計(jì)的應(yīng)用階段引入了在線更新的策略,如圖1所示。與其他的基于機(jī)器學(xué)習(xí)的方法不同的是,本文策略除了在訓(xùn)練階段通過公開的數(shù)據(jù)集進(jìn)行模型的優(yōu)化以外,在應(yīng)用階段仍不斷利用實(shí)時(shí)采集到的樣本在線優(yōu)化網(wǎng)絡(luò)模型,使其更加適應(yīng)當(dāng)前場(chǎng)景的特征分布,進(jìn)一步提高模型的精度和泛化能力。
1.2 系統(tǒng)概述
本文提出的基于自監(jiān)督學(xué)習(xí)的在線更新視覺里程計(jì)算法包含訓(xùn)練階段和應(yīng)用階段兩個(gè)過程。在訓(xùn)練階段,算法利用雙目立體圖像來訓(xùn)練網(wǎng)絡(luò)權(quán)重,確保深度估計(jì)和位姿估計(jì)的尺度與真實(shí)世界尺度一致。圖2展示了訓(xùn)練階段的算法流程。一次的輸入樣本為連續(xù)N幀左目圖像流,其中第一幀還需要對(duì)應(yīng)的右目圖像作為重構(gòu)標(biāo)簽。由于本文方法完全基于自監(jiān)督學(xué)習(xí),所以在訓(xùn)練階段無須每幀圖像對(duì)應(yīng)的位姿真值標(biāo)簽。
在應(yīng)用階段,算法直接使用訓(xùn)練好的網(wǎng)絡(luò)。首先,初始化一個(gè)大小為N的圖像窗口,并輸出這段序列的預(yù)位姿。接著,用這N-1個(gè)預(yù)位姿建立同在訓(xùn)練階段一致的重構(gòu)誤差損失,并朝著減小此損失的方向在線更新與輸出位姿密切相關(guān)的全連接層網(wǎng)絡(luò)權(quán)重。經(jīng)過l個(gè)權(quán)重更新循環(huán)后,輸出此窗口內(nèi)圖像序列的最終位姿估計(jì)結(jié)果。如圖3所示,隨著大小為N的窗口連續(xù)不斷地在圖像流上向后滑動(dòng),即可獲得相機(jī)的連續(xù)運(yùn)動(dòng)軌跡。在算法運(yùn)行過程中,每個(gè)新窗口的全連接層均采用上一個(gè)窗口的最終權(quán)重作為網(wǎng)絡(luò)初始權(quán)重,而其他模塊則保留訓(xùn)練階段的最優(yōu)權(quán)重。這是因?yàn)椋噜彺翱诘膱D像具有相似的外觀和相近的位姿變換關(guān)系,采用這種方式可以極大地加快算法收斂速度,降低迭代周期。在線更新權(quán)重的方式可以充分利用應(yīng)用階段的所有樣本信息,使得網(wǎng)絡(luò)權(quán)重保持局部性,并朝著適應(yīng)于應(yīng)用場(chǎng)景的方向偏移,在提高位姿估計(jì)精度的同時(shí),還可以增加算法對(duì)新環(huán)境的適應(yīng)性和魯棒性。
本文算法包含基礎(chǔ)特征提取模塊、深度估計(jì)模塊和位姿估計(jì)模塊三個(gè)模塊?;A(chǔ)特征提取模塊利用在大數(shù)據(jù)集上預(yù)先訓(xùn)練過的骨干網(wǎng)絡(luò)提取圖像中的基礎(chǔ)特征,并將此特征作為后續(xù)深度估計(jì)和位姿估計(jì)模塊的輸入。深度估計(jì)模塊利用已知固定基線距離的左、右目圖像來建立約束,獲取樣本中第一幀圖像所有像素點(diǎn)的深度值。準(zhǔn)確的深度值為后續(xù)位姿估計(jì)模塊恢復(fù)相機(jī)的絕對(duì)運(yùn)動(dòng)尺度提供了有利條件。位姿估計(jì)模塊則估計(jì)樣本中余下N-1幀圖像與第一幀圖像之間的位姿變換關(guān)系,得到N-1個(gè)相對(duì)位姿變換,以充分利用圖像流里的時(shí)間序列信息來建立約束,得到更加精確的位姿估計(jì)結(jié)果。訓(xùn)練階段所有的約束量均來自圖像重構(gòu)誤差損失,無須真實(shí)深度值標(biāo)簽和位姿標(biāo)簽。深度估計(jì)采用第一幀圖像的左、右目重構(gòu)誤差損失,而位姿估計(jì)則采用第2幀至第N幀的共N-1幀圖像與第1幀圖像之間的重構(gòu)誤差損失。網(wǎng)絡(luò)優(yōu)化朝著不斷減小所有重構(gòu)誤差損失的方向來優(yōu)化網(wǎng)絡(luò)權(quán)重,此過程不斷重復(fù)執(zhí)行,直至收斂。
OUMVO利用在大數(shù)據(jù)集上預(yù)先訓(xùn)練過的ResNet-50提取圖像中的基礎(chǔ)特征,以此作為后續(xù)模塊的輸入,并且在位姿估計(jì)模塊中采用Transformer學(xué)習(xí)包含在圖像流里的時(shí)間序列信息。在訓(xùn)練階段,使用雙目圖像序列訓(xùn)練網(wǎng)絡(luò)模型,同時(shí)利用空間和時(shí)間維度的光度誤差損失來估計(jì)場(chǎng)景深度,并將相機(jī)運(yùn)動(dòng)限制在真實(shí)世界尺度內(nèi)。在應(yīng)用階段,本文方法能夠估計(jì)連續(xù)圖像流的運(yùn)動(dòng)位姿,并且每次新的位姿估計(jì)結(jié)果都能夠?qū)W(wǎng)絡(luò)參數(shù)的優(yōu)化作出貢獻(xiàn)。
2 網(wǎng)絡(luò)模型設(shè)計(jì)
2.1 ResNet-50基礎(chǔ)特征提取網(wǎng)絡(luò)
預(yù)先在大型數(shù)據(jù)集上訓(xùn)練過的骨干網(wǎng)絡(luò)(諸如:ResNet[18],VGG[19]等)具有很強(qiáng)的通用特征提取能力。實(shí)踐證明,經(jīng)過Place365-Standard[20]數(shù)據(jù)集訓(xùn)練過的網(wǎng)絡(luò)具有很強(qiáng)的場(chǎng)景識(shí)別能力,并且可以遷移到其他視覺處理任務(wù)上。Place365-Standard是一個(gè)涵蓋多種場(chǎng)景的大型開源圖像數(shù)據(jù)集,被廣泛應(yīng)用于各類CNN的訓(xùn)練。
相較于眾多骨干網(wǎng)絡(luò),ResNet-50特有的殘差連接結(jié)構(gòu)使其在模型結(jié)構(gòu)復(fù)雜度和特征提取能力之間具有很好的平衡。在實(shí)驗(yàn)中,將在Place365-Standard數(shù)據(jù)集上訓(xùn)練過的ResNet-50骨干網(wǎng)絡(luò)作為基礎(chǔ)特征提取模塊。采用此種策略的好處是,可以充分利用圖像中包含的豐富語(yǔ)義信息來獲得穩(wěn)定、通用的抽象特征,避免傳統(tǒng)特征點(diǎn)法中存在的特征過于局部、時(shí)間復(fù)雜度高和遷移性差等缺點(diǎn)。
2.2 基于解碼器結(jié)構(gòu)的深度估計(jì)網(wǎng)絡(luò)
深度估計(jì)可以定義為:給定輸入圖像I,通過學(xué)習(xí)得到一個(gè)函數(shù)func,使其可以預(yù)測(cè)I中每個(gè)像素點(diǎn)的場(chǎng)景深度d=func(I)?,F(xiàn)有的大多數(shù)基于深度學(xué)習(xí)的方法將該任務(wù)視為一個(gè)有監(jiān)督學(xué)習(xí)問題,在訓(xùn)練網(wǎng)絡(luò)時(shí)需要同時(shí)利用RGB圖及其相應(yīng)的深度真值標(biāo)簽。然而真實(shí)深度數(shù)據(jù)往往難以獲取,作為替代方案,本文采用自監(jiān)督學(xué)習(xí)的方法,將深度估計(jì)視為一個(gè)圖像重構(gòu)問題。
左、右目圖像針對(duì)場(chǎng)景中同一物點(diǎn)成像的像素坐標(biāo)變換關(guān)系,可由式(1)得到
參照卷積自編碼器網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì),將基礎(chǔ)特征提取模塊輸出的維度為M×N×256的特征視為圖像的壓縮特征,并用如圖4所示的卷積解碼器獲得輸入圖像的逐像素點(diǎn)逆深度值。其中,M和N為ResNet-50骨干網(wǎng)絡(luò)輸出特征的空間維度,其隨輸入圖像大小的變化而變化,256為特征的通道數(shù)。解碼器利用連續(xù)四個(gè)上采樣+卷積層將輸入特征的空間維度恢復(fù)到與輸入圖像一致的大小,通道維度則壓縮為1,以得到與輸入圖像相匹配的逆深度圖。每次上采樣的倍數(shù)為2,將特征空間平面的長(zhǎng)和寬各增加一倍。所有卷積核的尺寸選擇為3×3,除最后一層外,激活函數(shù)均選擇為ReLU。由于深度值的跨度范圍較大,采用逆深度值可以將網(wǎng)絡(luò)輸出限制在0~1,這與解碼器最后一層的sigmoid激活函數(shù)的輸出相匹配。
2.3 基于Transformer的位姿估計(jì)網(wǎng)絡(luò)
在視覺SLAM系統(tǒng)運(yùn)行過程中,圖像以流的形式進(jìn)行獲取,包含在圖像流里的時(shí)間序列信息對(duì)位姿估計(jì)也具有重要作用。由Bengio團(tuán)隊(duì)提出的Transformer[21]模型在自然語(yǔ)言處理任務(wù)上取得了巨大的成功,其具有更強(qiáng)的序列特征提取能力、更好的并行計(jì)算能力和更快的計(jì)算速度??紤]到視覺里程計(jì)本質(zhì)上也是一種序列處理任務(wù),因而本文采用Transformer作為視覺里程計(jì)的核心模塊。
如圖5所示,位姿估計(jì)網(wǎng)絡(luò)的輸入為基礎(chǔ)特征提取模塊輸出的一個(gè)窗口內(nèi)的圖像序列特征。圖中展示的序列長(zhǎng)度為k(注:k與圖3中的N相對(duì)應(yīng)),每個(gè)特征的大小為M×N×256,其中256為ResNet-50的輸出通道數(shù),M和N隨輸入圖像大小而變化。為了得到符合Transformer輸入要求的一維向量序列,對(duì)每個(gè)輸入特征進(jìn)行全局平均池化操作,僅保留每個(gè)通道的平均值,得到k個(gè)維度為1×256的向量。經(jīng)過池化處理后的特征向量具有固定大小的維度,不受輸入圖像大小變化的影響,提高了算法的應(yīng)用范圍。接著,將這k個(gè)向量送入Transformer模塊進(jìn)行序列建模,以獲取圖像流里的時(shí)間信息。最后通過全連接層將Transformer輸出的特征映射為k-1個(gè)維度為1×6的位姿向量,代表序列中第2幀至第k幀圖像與第1幀圖像之間的位姿變換。
Transformer完全擺脫了傳統(tǒng)RNN中的遞歸和CNN中的卷積操作,只需要少量的線性映射即可實(shí)現(xiàn)高效的序列建模。為了讓模型理解圖像流中的順序信息,在進(jìn)行序列特征提取前,需要對(duì)特征注入相對(duì)或者絕對(duì)位置信息。因此,算法還需對(duì)輸入特征向量序列添加位置編碼。根據(jù)文獻(xiàn)[21]的推薦,本文采用以下正(余)弦函數(shù)位置編碼策略,如式(2)所示。
其中:pos為位置;i為編碼維度;dmodel為輸入特征維度。
如圖5的下半部分所示,Transformer的核心是堆疊的多頭注意力和前向全連接層。每層的輸出為L(zhǎng)ayerNorm(x+Sublayer(x)),其中x代表輸入,Sublayer(·)代表多頭注意力子層的映射函數(shù),LayerNorm(·)代表正則化操作。為了適配殘差連接和序列輸入,模型中所有內(nèi)部張量的維度均選擇為與輸入特征維度一致:dmodel=256,且n=6層。
單個(gè)注意力函數(shù)的三組輸入向量分別被稱為查詢、鍵和值。在本文中,三者均是指輸入的k個(gè)特征向量。單個(gè)注意力函數(shù)的輸出為所有值的加權(quán)和,其中權(quán)重由查詢和鍵計(jì)算得到。首先,計(jì)算鍵和查詢的逐元素乘積,并將結(jié)果除以其維度dk,使得結(jié)果位于恰當(dāng)?shù)某叨葍?nèi)。接著,應(yīng)用softmax激活函數(shù)將乘積結(jié)果縮放到0~1,得到歸一化的權(quán)重向量。上述過程通過矩陣形式可以記為
其中:attention(·)代表單頭注意力機(jī)制函數(shù);softmax(·)代表非線性激活函數(shù)。實(shí)踐表明,若將查詢、鍵和值進(jìn)行多組線性投影后,再進(jìn)行注意力建模,則能夠?qū)W習(xí)到更多的潛在特征模式。如式(4)和(5)所示,經(jīng)過線性投影后再執(zhí)行注意函數(shù),可以產(chǎn)生多組不同的輸出值。這些值被連接起來,并再次進(jìn)行線性投影,以產(chǎn)生最終的輸出值。
multiHead(Q,K,V)=concat(head1,…,headh)WO(4)
headi=attention(QWQi,KWKi,VWVi)(5)
相較于單注意力機(jī)制,多頭注意力機(jī)制可以學(xué)習(xí)到更豐富的潛在特征信息。在本文中,使用h=8的并行注意力頭。為了保持?jǐn)?shù)據(jù)維度一致,選擇dk=dv=dmodel=h=256。
Transformer的前饋網(wǎng)絡(luò)層如式(6)所示,包含兩個(gè)線性變換和一個(gè)ReLU激活函數(shù)。
FFN(x)=ReLU(xW1+b1)W2+b2(6)
其中:x代表注意力層的輸出;FFN(·)代表前饋網(wǎng)絡(luò)映射函數(shù)。
2.4 損失函數(shù)設(shè)計(jì)
在訓(xùn)練階段,深度估計(jì)網(wǎng)絡(luò)和位姿估計(jì)網(wǎng)絡(luò)尋找能夠使得以下概率最大化的最優(yōu)網(wǎng)絡(luò)權(quán)重θ*depth和θ*pose。
在模型的訓(xùn)練階段,使用了三種不同類型的損失函數(shù),分別為圖像重構(gòu)損失、結(jié)構(gòu)相似性損失和深度平滑損失。
a)圖像重構(gòu)損失。圖像重構(gòu)誤差是能夠采用自監(jiān)督學(xué)習(xí)方式進(jìn)行位姿估計(jì)的核心原理。如圖6所示,令t時(shí)刻的左目圖像為Ilt,對(duì)應(yīng)的右目圖像為Irt,t+1時(shí)刻的左目圖像為Ilt+1,plt為Ilt中的一個(gè)像素點(diǎn)??梢圆捎檬剑?)將plt映射到Ilt+1的坐標(biāo)系中:
plt+1=KTt+1,tdK-1pt(8)
根據(jù)位姿估計(jì)網(wǎng)絡(luò)輸出的Tt,t+1至Tt,t+N和深度估計(jì)網(wǎng)絡(luò)預(yù)測(cè)的Dt,可以分別以t時(shí)刻的右目圖像和t+1至t+N時(shí)刻的左目圖像來重構(gòu)出t時(shí)刻的左目圖像。網(wǎng)絡(luò)的重構(gòu)誤差損失可以表示為
b)結(jié)構(gòu)相似性損失。圖像重構(gòu)損失隱含的以場(chǎng)景光照不變?yōu)榍疤釛l件,計(jì)算不同視角下圖像的光度誤差。如果違反這個(gè)前提假設(shè),可能會(huì)導(dǎo)致梯度損壞,使得訓(xùn)練過程難以收斂。為了提高魯棒性,定義圖像結(jié)構(gòu)相似性度量:
其中:x和y代表圖像區(qū)塊;μ和σ分別為區(qū)塊內(nèi)像素灰度的均值和方差;c1和c1為調(diào)節(jié)系數(shù),此處分別選擇為0.000 1和0.000 9。兩張圖像的結(jié)構(gòu)相似性損失可以記為
代表圖像I中以點(diǎn)p為中心的3×3區(qū)塊。
c)深度平滑損失。為了平滑深度估計(jì)的結(jié)果,添加對(duì)深度估計(jì)網(wǎng)絡(luò)輸出的逆深度圖的一階梯度抑制損失。除此之外,還通過輸入圖像的梯度來對(duì)深度損失進(jìn)行反向加權(quán),如式(14)所示。
網(wǎng)絡(luò)的最終損失函數(shù)采用以上三者的結(jié)合,記為
Loss=λ1Lrecon+λ2Lstruc+λ3Lsmooth(15)
在實(shí)驗(yàn)中,λ1、λ2和λ3分別取0.2、0.8和0.001。
3 實(shí)驗(yàn)結(jié)果與分析
為了驗(yàn)證本文方法的性能,在公開測(cè)試數(shù)據(jù)集上展開驗(yàn)證實(shí)驗(yàn)。實(shí)驗(yàn)依托于搭載Intel Core i9 10th GEN CPU的計(jì)算機(jī),并在Ubuntu 18.04.5 LTS操作系統(tǒng)環(huán)境下進(jìn)行。所有網(wǎng)絡(luò)模型均使用PyTorch框架實(shí)現(xiàn),并使用NVIDIA GeForce RTX 2080Ti GPU進(jìn)行加速。在網(wǎng)絡(luò)訓(xùn)練階段,優(yōu)化器采用Adma(β1=0.9,β2=0.999),訓(xùn)練epoch設(shè)置為180,并且學(xué)習(xí)率從0.000 1開始,每20個(gè)epoch減少一半。
3.1 數(shù)據(jù)集實(shí)驗(yàn)
在實(shí)驗(yàn)中,采用在視覺里程計(jì)研究領(lǐng)域被廣泛使用的KITTI Odometry數(shù)據(jù)集[23]來驗(yàn)證算法的性能。KITTI數(shù)據(jù)集由車載雙目相機(jī)采集自街道、郊區(qū)和高速公路場(chǎng)景。其中,Odometry類包含22個(gè)以10 Hz的采樣頻率獲取的雙目立體RGB圖像序列,涵蓋雙目相機(jī)的左視圖和右視圖。其中,00~10序列由GPS和IMU加速度計(jì)提供了每張圖像的真實(shí)里程計(jì)信息,而11~22序列只提供了RGB圖像數(shù)據(jù)。在實(shí)驗(yàn)中選擇包含位姿真值標(biāo)簽的00、01、02、03、04、06和08序列作為訓(xùn)練集,其余部分序列作為測(cè)試集。并且,在進(jìn)入網(wǎng)絡(luò)處理之前,將所有圖像縮放到128×424的大小,以節(jié)約GPU內(nèi)存和加快計(jì)算速度。本文實(shí)施了兩組對(duì)比實(shí)驗(yàn)。第一組基于KITTI數(shù)據(jù)集04、06、07和10序列,通過軌跡真值定量分析算法的性能。另外,任何滿足實(shí)際需求的深度學(xué)習(xí)模型都要求具備很好的泛化能力。KITTI數(shù)據(jù)集的11~21序列大多采集自高速公路場(chǎng)景,特征較為單一,并且移動(dòng)速度明顯快于00~10序列。由于本文模型僅在部分00~10序列上得到訓(xùn)練,所以在11~21序列上測(cè)試可以很好地檢驗(yàn)算法對(duì)新環(huán)境的適應(yīng)能力。第一組實(shí)驗(yàn)以軌跡真值為參考,對(duì)比方法選擇的是當(dāng)前較為先進(jìn)的特征點(diǎn)法VISO2-M[24]、深度學(xué)習(xí)法DVF[10]、SC-SFM[25]、EDPLVO[26]。第二組實(shí)驗(yàn)的參考選擇為帶閉環(huán)檢測(cè)和局部?jī)?yōu)化模塊的完整ORB-SLAM2[27]雙目系統(tǒng)(ORB-SLAM2-S),對(duì)比方法選擇的是VISO2-M與去除閉環(huán)檢測(cè)和局部?jī)?yōu)化的單目ORB-SLAM2算法(ORB-SLAM2-M)。
在第一組實(shí)驗(yàn)中,不同方法估計(jì)的軌跡如圖7所示。從結(jié)果可以看出,本文方法產(chǎn)生了相對(duì)于真值軌跡更加準(zhǔn)確和一致的結(jié)果,并且不存在尺度漂移問題。傳統(tǒng)單目視覺里程計(jì)算法存在難以恢復(fù)準(zhǔn)確和穩(wěn)定的尺度這一問題。值得注意的是,在實(shí)驗(yàn)中并沒有為本文方法產(chǎn)生的結(jié)果執(zhí)行尺度縮放或與軌跡真值對(duì)齊來獲得絕對(duì)尺度,軌跡的尺度完全由網(wǎng)絡(luò)本身維護(hù),并在端到端的訓(xùn)練期間隱式學(xué)習(xí)。然而,圖中部分對(duì)比方法存在明顯的尺度失真,這表明本文采用的基于自監(jiān)督學(xué)習(xí)和在線更新的視覺里程計(jì)方法具有明顯的優(yōu)勢(shì)。表1和2在平均絕對(duì)平移誤差(ATEtrans)、平均絕對(duì)旋轉(zhuǎn)誤差(ATErot)、平均相對(duì)平移誤差(RPEtrans)和平均相對(duì)旋轉(zhuǎn)誤差(RPErot)四個(gè)指標(biāo)上,定量地從全局和局部?jī)蓚€(gè)方面總結(jié)了各個(gè)算法在測(cè)試序列上的表現(xiàn)。除了在ATErot和RPErot指標(biāo)下EDPLVO具有略微的優(yōu)勢(shì)外,在其余所有的指標(biāo)下,本文方法在所有測(cè)試序列上都擁有最小的平移誤差和旋轉(zhuǎn)誤差,以及最佳的表現(xiàn)。
盡管在以上的實(shí)驗(yàn)中已經(jīng)評(píng)估了模型的性能,但為了進(jìn)一步研究它在具有不同外觀特征和運(yùn)動(dòng)模式的全新場(chǎng)景中的表現(xiàn),又將算法在KITTI數(shù)據(jù)集11~21序列的部分?jǐn)?shù)據(jù)集上進(jìn)行測(cè)試。然而,11~21序列并沒有提供軌跡真值信息,無法進(jìn)行定量評(píng)估。因此,在第二組實(shí)驗(yàn)中,利用精度更高的完整雙目ORB-SLAM2系統(tǒng)獲得的軌跡作為參考,定性地分析各個(gè)算法的性能,記為ORB-SLAM2-S,并用VISO2-M方法和單目ORB-SLAM2-M作為對(duì)比。各個(gè)方法的預(yù)測(cè)軌跡如圖8所示??梢钥闯?,本文方法的軌跡與ORB-SLAM2-S的軌跡非常接近,并且明顯優(yōu)于ORB-SLAM2-M和VISO2-M??紤]到ORB-SLAM2-S采用的是固定基線距離的雙目立體圖像,具有很強(qiáng)的先驗(yàn)性,并且ORB-SLAM2-S還增加了局部建圖和閉環(huán)檢測(cè)功能,而本文提出的基于自監(jiān)督學(xué)習(xí)的在線更新視覺里程計(jì)算法僅使用單目圖像序列,便取得了接近的可觀性能,表明本文提出的在線更新的策略使得算法適應(yīng)新環(huán)境的能力得到明顯增強(qiáng)。
3.2 真實(shí)環(huán)境測(cè)試
實(shí)驗(yàn)基于搭載英特爾公司的RealSenseTM D435i相機(jī)的履帶式巡檢機(jī)器人平臺(tái),如圖9所示。機(jī)器人配備搭載Intel Core i9 10th GEN CPU和NVIDIA GeForce RTX 2080Ti GPU的工控機(jī),并安裝Ubuntu 18.04 LTS Linux操作系統(tǒng)。中層控制器為安裝ROS Melodic機(jī)器人操作系統(tǒng)的NVIDIA Jetson Xavier NX,底層微控制器采用STM32F4單片機(jī)。
測(cè)試環(huán)境地下電纜隧道與公開的數(shù)據(jù)集環(huán)境差異較大,具有光照條件差、重復(fù)弱紋理、場(chǎng)景單一和空間維度極不均衡等特點(diǎn),如圖10(a)所示,這對(duì)傳統(tǒng)視覺里程計(jì)來說是一個(gè)巨大的挑戰(zhàn),本文在此環(huán)境下對(duì)所提單目視覺里程計(jì)進(jìn)行了系統(tǒng)實(shí)驗(yàn),并將雙目視覺SLAM算法ORB-SLAM3產(chǎn)生的軌跡作為參考。在實(shí)驗(yàn)中,本文方法僅使用單目作為輸入源時(shí),ORB-SLAM3[28]算法多次出現(xiàn)了跟蹤丟失的問題。圖10(b)展示了在線更新的視覺里程計(jì)系統(tǒng)運(yùn)行時(shí)輸出的相機(jī)運(yùn)動(dòng)軌跡。
從結(jié)果可以看到,OUMVO視覺里程計(jì)系統(tǒng)產(chǎn)生的軌跡與雙目的ORB-SLAM3系統(tǒng)產(chǎn)生的軌跡幾乎重合,表明系統(tǒng)的定位精度達(dá)到了當(dāng)前先進(jìn)系統(tǒng)的水平。在實(shí)際工程測(cè)試中,系統(tǒng)的定位精度能夠滿足巡檢機(jī)器人進(jìn)行自主導(dǎo)航的要求。
4 結(jié)束語(yǔ)
本文提出了一種基于自監(jiān)督學(xué)習(xí)的在線更新的單目視覺里程計(jì)算法OUMVO。該算法利用Transformer提取圖像流里的時(shí)間序列信息,并利用雙目立體圖像序列之間的空間維度損失和時(shí)間維度損失進(jìn)行自監(jiān)督訓(xùn)練。與傳統(tǒng)單目視覺里程計(jì)方法普遍存在尺度漂移問題不同,本文方法在訓(xùn)練階段可以獲取場(chǎng)景的絕對(duì)尺度,并在應(yīng)用階段保持真實(shí)尺度。并且,本文所提的在線更新策略能夠利用應(yīng)用階段的新數(shù)據(jù)樣本來優(yōu)化網(wǎng)絡(luò)權(quán)重,使網(wǎng)絡(luò)輸出保持局部性,極大提高了數(shù)據(jù)利用率的同時(shí),使得算法對(duì)新環(huán)境的適應(yīng)能力大大增強(qiáng)。
雖然本文OUMVO方法取得了顯著的效果,但仍然存在進(jìn)一步改進(jìn)的空間。一方面,在深度估計(jì)模塊,本文采用深度估計(jì)網(wǎng)絡(luò)輸出稠密的深度圖,并且在網(wǎng)絡(luò)權(quán)重優(yōu)化中采用了所有像素點(diǎn)的誤差損失,這需要極大的計(jì)算量。后續(xù)可以探索更為輕量化的策略,在不影響位姿估計(jì)精度的情況下減少計(jì)算和內(nèi)存開銷。另一方面,在位姿估計(jì)模塊,本文利用Transformer對(duì)圖像流進(jìn)行序列建模,僅依靠全局平均池化策略來獲取序列輸入向量。后續(xù)可以探索更加合理的序列特征處理策略,得到更加適合位姿估計(jì)的特征模式。
參考文獻(xiàn):
[1]Sualeh M,Kim G W. Simultaneous localization and mapping in the epoch of semantics: a survey [J]. International Journal of Control,Automation and Systems,2019,17(3): 729-742.
[2]趙文愷,李剛. 基于雙目相機(jī)的視覺里程計(jì) [J]. 計(jì)算機(jī)工程與設(shè)計(jì),2020,41(4): 1133-1138.(Zhao Wenkai,Li Gang. Visual odometer based on binocular camera[J]. Journal of Computer Engineering and Design,2020,41(4): 1133-1138.)
[3]雷金周,曾令斌,葉南,等. 工業(yè)機(jī)器人單目視覺對(duì)準(zhǔn)技術(shù)研究 [J]. 光學(xué)精密工程,2018,26(3): 733-741.( Lei Jinzhou,Zeng Lingbin,Ye Nan,et al. Research on monocular vision alignment technology for industrial robots [J]. Optics and Precision Enginee-ring,2018,26(3): 733-741.)
[4]Kendall A,Grimes M,Cipolla R. PoseNet: a convolutional network for real-time 6-DoF camera relocalization [C]//Proc of IEEE International Conference on Computer Vision. Piscataway,NJ:IEEE Press,2015: 2938-2946.
[5]Li Ruihao,Liu Qiang,Gui Jianjun,et al. Indoor relocalization in challenging environments with dual-stream convolutional neural networks [J]. IEEE Trans on Automation Science and Engineering,2017,15(2): 651-662.
[6]李鵬,劉琪,何宸宇,等. 融合深度學(xué)習(xí)和幾何定姿的光流視覺里程計(jì)研究 [J]. 電機(jī)與控制學(xué)報(bào),2020,24(12): 142-151.(Li Peng,Liu Qi,He Chenyu,et al. Research on optical flow visual odo-metry integrating deep learning and geometric pose setting[J].Journal of Electrical Engineering and Control,2020,24(12): 142-151.)
[7]Wang Sen,Clark R,Wen Hongkai,et al. DeepVO: towards end-to-end visual odometry with deep recurrent convolutional neural networks [C]// Proc of IEEE International Conference on Robotics and Automation. Piscataway,NJ:IEEE Press,2017: 2043-2050.
[8]張?jiān)衮v,張榮芬,劉宇紅. 一種基于深度學(xué)習(xí)的視覺里程計(jì)算法 [J]. 激光與光電子學(xué)進(jìn)展,2021,58(4): 324-331.( Zhang Zai-teng,Zhang Rongfen,Liu Yuhong. A visual mileage calculation method based on deep learning [J]. Advances in Laser and Optoelectronics,2021,58(4): 324-331.)
[9]Li Ruihao,Wang Sen,Long Zhiqiang,et al. UnDeepVO: monocular visual odometry through unsupervised deep learning [C]//Proc of IEEE International Conference on Robotics and Automation. Piscata-way,NJ:IEEE Press,2018: 7286-7291.
[10]Zhan Huangying,Garg R,Weerasekera C S,et al. Unsupervised lear-ning of monocular depth estimation and visual odometry with deep feature reconstruction [C]// Proc of IEEE Conference on Computer Vision and Pattern Recognition. Piscataway,NJ:IEEE Press,2018: 340-349.
[11]Mahjourian R,Wicke M,Angelova A. Unsupervised learning of depth and ego-motion from monocular video using 3D geometric constraints [C]//Proc of IEEE Conference on Computer Vision and Pattern Re-cognition. Piscataway,NJ:IEEE Press,2018: 5667-5675.
[12]Li Xiangyu,Hou Yonghong,Wang Pichao,et al. Transformer guided geometry model for flow-based unsupervised visual odometry [J]. Neural Computing and Applications,2021,33(13): 8031-8042.
[13]Kim U H,Kim S H,Kim J H. SimVODIS: simultaneous visual odome-try,object detection,and instance segmentation [J]. IEEE Trans on Pattern Analysis and Machine Intelligence,2020,44(1): 428-441.
[14]Li Shunkai,Wang Xin,Cao Yingdian,et al. Self-supervised deep vi-sual odometry with online adaptation [C]// Proc of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway,NJ:IEEE Press,2020: 6338-6347.
[15]Li Shunkai,Wu Xin,Cao Yingdian,et al. Generalizing to the open world: deep visual odometry with online adaptation [C]// Proc of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway,NJ:IEEE Press,2021: 13179-13188.
[16]朱凱,劉華峰,夏青元. 基于單目視覺的同時(shí)定位與建圖算法研究綜述 [J]. 計(jì)算機(jī)應(yīng)用研究,2018,35(1): 1-6.( Zhu Kai,Liu Huafeng,Xia Qingyuan. Survey on simultaneous localization and mapping algorithms based on monocular vision [J]. Application Research of Computers,2018,35(1): 1-6.)
[17]Xiang Dong,Long Cheng,Hu Peng,et al. FSD-SLAM: a fast semi-direct SLAM algorithm[J].Complex & Intelligent Systems,2021,8(3):1-12.
[18]He Kaiming,Zhang Xiangyu,Ren Shaoqing,et al. Deep residual learning for image recognition [C]// Proc of IEEE Conference on Computer Vision and Pattern Recognition. Piscataway,NJ:IEEE Press,2016: 770-778.
[19]Simonyan K,Zisserman A. Very deep convolutional networks for large-scale image recognition [EB/OL].(2014). https://arxiv.org/abs/1409. 1556.
[20]Zhou Bolei,Lapedriza A,Khosla A,et al. Places: a 10 million image database for scene recognition [J]. IEEE Trans on Pattern Analysis and Machine Intelligence,2017,40(6): 1452-1464.
[21]Vaswani A,Shazeer N,Parmar N,et al. Attention is all you need [C] // Proc of the 31st International Conference on Neural Information Processing Systems. Red Hook,NY:Currarl Associates Inc.,2017: 6000-6010.
[22]Jaderberg M,Simonyan K,Zisserman A. Spatial transformer networks [C]// Advances in Neural Information Processing Systems. 2015.
[23]Fritsch J,Kuehnl T,Geiger A. A new performance measure and eva-luation benchmark for road detection algorithms [C]//Proc of the 16th International IEEE Conference on Intelligent Transportation Systems. Piscataway,NJ:IEEE Press,2013: 1693-1700.
[24]Geiger A,Ziegler J,Stiller C. StereoScan: dense 3D reconstruction in real-time [C]//Proc of IEEE Intelligent Vehicles Symposium. Piscataway,NJ:IEEE Press,2011: 963-968.
[25]Bian Jiawang,Zhan Huangying,Wang Naiyan,et al. Unsupervised scale-consistent depth learning from video [J]. International Journal of Computer Vision,2021,129(9): 2548-2564.
[26]Zhou Lipu,Huang Guoquan,Mao Yinan,et al. EDPLVO: efficient direct point-line visual odometry [C]//Proc of International Conference on Robotics and Automation. Piscataway,NJ:IEEE Press,2022: 7559-7565.
[27]Mur-Artal R,Tardós J D. ORB-SLAM2: an open-source SLAM system for monocular,stereo,and RGB-D cameras [J]. IEEE Trans on Robotics,2017,33(5): 1255-1262.
[28]Campos C,Elvira R,Rodríguez J J G,et al. ORB-SLAM3: an accurate open-source library for visual,visual-inertial,and multimap SLAM [J]. IEEE Trans on Robotics,2021,37(6): 1874-1890.