单目视觉里程计性能估计
單目視覺里程計性能估計
D3VO: Deep Depth, Deep Pose and Deep Uncertaintyfor Monocular Visual
Odometry
論文地址:https://arxiv.org/pdf/2003.01060.pdf
摘要
CVPR2020一篇關(guān)于視覺里程計和深度估計結(jié)合的文章,一作是很多人熟悉的楊楠大佬。這篇文章也是繼DVSO又一篇DSO與深度估計結(jié)合的文章。
提出D3VO作為單目視覺里程計的新框架,該框架利用網(wǎng)絡(luò)在三個層面的信息–深度,位姿和不確定性估計。首先提出了一種新穎的訓(xùn)練于雙目視頻的自監(jiān)督單目深度估計網(wǎng)絡(luò),該網(wǎng)絡(luò)沒有使用任何外部監(jiān)督信號,通過預(yù)測的亮度轉(zhuǎn)換參數(shù)將訓(xùn)練圖像對調(diào)整為相似的光照條件, 此外,還對圖像中像素的光度不確定度進(jìn)行了建模,這樣不僅提高了深度估計的準(zhǔn)確性還為DSO中的光度殘差提供了一個學(xué)習(xí)過的加權(quán)函數(shù)。評估結(jié)果表明,所提出的網(wǎng)絡(luò)優(yōu)于最先進(jìn)的自監(jiān)督深度估計網(wǎng)絡(luò)。D3VO 將預(yù)測的深度,位姿和不確定性緊密結(jié)合到直接視覺里程計中的前端跟蹤以及后端非線性優(yōu)化模塊里。在KITTI和EuRoC MAV數(shù)據(jù)集對D3VO進(jìn)行了評估。結(jié)果表明,D3VO在很大程度上優(yōu)于最新的傳統(tǒng)單目VO方法。它還可以達(dá)到與KITTI上最先進(jìn)的雙目/ LiDAR測距法, EuRoC上視覺慣導(dǎo)SOTA算法相媲美的結(jié)果。
背景知識
深度學(xué)習(xí)已經(jīng)席卷了計算機(jī)視覺的大部分領(lǐng)域——不僅是像對象分類、檢測和分割這樣的高級任務(wù)[30,39,58],還有像光流估計[12,65]和興趣點(diǎn)檢測和描述[11,13,79]這樣的低級任務(wù)。然而,在同時定位和映射(SLAM)或視覺里程計(VO)領(lǐng)域,傳統(tǒng)的基于幾何的方法(16、17、53)仍然占主導(dǎo)地位。雖然單目算法[16,52]具有優(yōu)勢的硬件成本和較少的校準(zhǔn)工作,由于尺度漂移[62,77]和低魯棒性,無法實(shí)現(xiàn)與立體聲[53,74]或視覺慣性里程計(VIO)[44,54,56,72]相比的競爭性能。通過利用深層神經(jīng)網(wǎng)絡(luò)來解決這個問題已經(jīng)做了很多努力[48,68,80,83]。研究表明,在深度單目深度估計網(wǎng)絡(luò)[26,27,43,78]中,深度網(wǎng)絡(luò)能夠通過從大量數(shù)據(jù)中學(xué)習(xí)先驗(yàn)知識來估計具有一致尺度的深度圖,從而提高了單目VO的性能[42]。然而,用這種方法,深層神經(jīng)網(wǎng)絡(luò)只能在有限的程度上使用。無監(jiān)督單目深度估計網(wǎng)絡(luò)的最新進(jìn)展[26,86]表明,相鄰單目幀的姿態(tài)可以與深度一起預(yù)測。由于深部神經(jīng)網(wǎng)絡(luò)的姿態(tài)估計具有很高的魯棒性,有一個問題產(chǎn)生了:深部預(yù)測的姿態(tài)是否可以用來提高傳統(tǒng)的VO?另一方面,由于SLAM/VO本質(zhì)上是一個狀態(tài)估計問題,其中不確定性起著重要的作用[19,63,69],同時許多基于學(xué)習(xí)的方法已經(jīng)開始估計不確定性,下一個問題是,如何將這種不確定性預(yù)測納入基于優(yōu)化的VO中?在本文中,提出了D3VO作為一個框架,用于單目(無特征)視覺探索自監(jiān)督單目深度估計網(wǎng)絡(luò)的三個層次:深度、姿態(tài)和不確定性估計,如圖1所示。為此,首先提出了一個純自監(jiān)督的立體視頻訓(xùn)練網(wǎng)絡(luò)。該自監(jiān)督網(wǎng)絡(luò)利用深度網(wǎng)預(yù)測單個圖像的深度,利用PoseNet預(yù)測相鄰兩幀圖像之間的姿態(tài)。這兩個網(wǎng)絡(luò)是通過最小化由靜態(tài)立體扭曲與直線基線和使用預(yù)測姿勢的時間扭曲引起的光度誤差來橋接的。這樣,在深度訓(xùn)練中加入時間信息,可以得到更精確的估計。為了處理訓(xùn)練圖像對之間的不一致照明,網(wǎng)絡(luò)預(yù)測亮度變換參數(shù),這些參數(shù)在訓(xùn)練過程中使源圖像和目標(biāo)圖像的亮度保持一致。對EuRoCMAV數(shù)據(jù)集的評估表明,提出的亮度變換顯著提高了深度估計精度。為了將深度集成到VO系統(tǒng)中,用一個度量尺度用預(yù)測的深度初始化每個新的3D點(diǎn)。然后采用Deep-virtual-stereo-Odometry(DVSO)[78]中提出的虛擬立體項,將預(yù)測的姿態(tài)納入到非線性優(yōu)化中。與DVSO使用依賴于從最先進(jìn)的立體VO系統(tǒng)中提取的輔助深度的半監(jiān)督單目深度估計網(wǎng)絡(luò)[74]不同,網(wǎng)絡(luò)僅使用立體視頻,而沒有任何外部深度監(jiān)督。
主要貢獻(xiàn)
-
本文提出了一個雙目視頻自監(jiān)督深度估計網(wǎng)絡(luò),另外為了解決訓(xùn)練圖片對之間的光照不一致,網(wǎng)絡(luò)還預(yù)測了亮度變換參數(shù),對原圖片和目標(biāo)圖片之間的亮度進(jìn)行了校準(zhǔn)。為了將深度網(wǎng)絡(luò)與VO系統(tǒng)進(jìn)行結(jié)合,作者將每一個3D點(diǎn)用預(yù)測的深度進(jìn)行初始化,然后利用DVSO中的virtual stereo term將預(yù)測的位姿整合進(jìn)非線性優(yōu)化中。
-
盡管已經(jīng)對光照變換進(jìn)行了建模,但是光照并不是唯一違反光照不變假設(shè)的因素(動態(tài)物體等等也會),所以作者還對光度不確定性進(jìn)行了預(yù)測,降低違反假設(shè)的像素的權(quán)重,這個學(xué)習(xí)到的權(quán)重函數(shù)可以替換傳統(tǒng)VO系統(tǒng)里面基于經(jīng)驗(yàn)設(shè)置的加權(quán)函數(shù)。
-
魯棒性也是VO算法的一個特別重要的因素,因此作者將預(yù)測出的位姿整合進(jìn)前端跟蹤和后端非線性優(yōu)化中。在前端跟蹤模塊,作者用預(yù)測的位姿去替換之前的勻速運(yùn)動模型,另外這個位姿也作為直接圖像校準(zhǔn)的平方正則項。在后端優(yōu)化中,作者提出了位姿能量項和之前的能量目標(biāo)函數(shù)放在一起優(yōu)化。
算法流程
- 自監(jiān)督深度估計
本文的深度估計模塊其實(shí)是源自于monodepth2(細(xì)節(jié)可以參考原論文)。優(yōu)化目標(biāo)函數(shù)如下
函數(shù)的目的是最小化靜態(tài)雙目圖片之間的光度重投影誤差損失,V表示所有的像素, It表示左目圖片,
It’包括相鄰幀和右目圖片. 函數(shù)是由SSIM和L1loss組成,這個目前比較固定的深度估計損失函數(shù)搭配。
創(chuàng)新點(diǎn)在于作者對圖片之間的光照參數(shù)進(jìn)行了預(yù)測,這部分其實(shí)借鑒于DSO。
將修改后的I帶入原來的目標(biāo)函數(shù)就是新的的深度估計自監(jiān)督損失。但是僅僅考慮光照變換是遠(yuǎn)遠(yuǎn)不夠的,所以正如前面提到的, 作者對光度不確定性進(jìn)行了預(yù)測,所以自監(jiān)督損失函數(shù)又引入了有關(guān)不確定性的參數(shù),
最終的損失函數(shù)是自監(jiān)督損失和多尺度圖片的正則化損失之和。
其中,
s代表多尺度因子。
- D3VO
系統(tǒng)框圖,最左邊是網(wǎng)絡(luò)結(jié)構(gòu),中間是視覺里程計可視化結(jié)果,最右邊是網(wǎng)絡(luò)輸入和輸出可視化。
2.1 光度能量
D3VO目的優(yōu)化如下光度能量函數(shù),
這個能量函數(shù)和DSO中的一致,不再過多介紹,本文中的不同點(diǎn)是作者引入了virtual stereo
term,關(guān)于這一點(diǎn)可以去看看DVSO的原文.
這個新增項會優(yōu)化VO得到的深度,使其和深度網(wǎng)絡(luò)的結(jié)果保持一致。
2.2 位姿能量
與傳統(tǒng)使用勻速運(yùn)動模型的VO系統(tǒng)不同,作者利用連續(xù)幀之間預(yù)測出的位姿新建了一個非線性因子圖,每有一個最新關(guān)鍵幀就會創(chuàng)建一個新的因子圖。另外,來自深度網(wǎng)絡(luò)預(yù)測出的位姿會作為當(dāng)前幀和最后一幀的因子(關(guān)于這部分可以去看作者的補(bǔ)充材料)。
這個位姿能量其實(shí)可以看做VIO系統(tǒng)中的IMU預(yù)積分先驗(yàn),因?yàn)橄旅嫘碌哪芰亢瘮?shù)和VIDSO特別像. 通過引入預(yù)測出的位姿作為初始化來提升跟蹤和非線性優(yōu)化模塊,同時也把他們作為正則項加入到光度BA中。
實(shí)驗(yàn)結(jié)果
作者分別再KITTI和EuRoC數(shù)據(jù)集上進(jìn)行了深度估計評測。
KITTI上的深度估計結(jié)果對比,uncer代表光度不確定性,ab代表亮度變換參數(shù),full代表兩個全都包括。
作者提出的深度估計模塊優(yōu)于之前的SOTA算法monodepth2.引入光照變換參數(shù)和不確定性被證實(shí)確實(shí)可以提升深度估計的效果.
EuRoC數(shù)據(jù)集上的結(jié)果
數(shù)據(jù)集上的可視化結(jié)果,最左邊是原輸入圖像,中間是深度估計結(jié)果,最右側(cè)是不確定性可視化結(jié)果.
KITTI數(shù)據(jù)集上的視覺里程計結(jié)果, D3V在這些sequence上的表現(xiàn)超過之前的傳統(tǒng)SLAM工作.
與其他深度估計位姿估計網(wǎng)絡(luò)在09,10上的評測結(jié)果對比,D3VO的性能也是最好的.
不同VO系統(tǒng)在EuRoC數(shù)據(jù)集上的位姿結(jié)果對比
單目VO系統(tǒng),VIO系統(tǒng)和深度網(wǎng)絡(luò)在EuRoC數(shù)據(jù)集上的量化結(jié)果對比
總結(jié)
以上是生活随笔為你收集整理的单目视觉里程计性能估计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自监督学习(Self-Supervise
- 下一篇: 怎样训练YOLOv3