CVPR2020——D3VO论文阅读
?
文章標題:D3VO: Deep Depth, Deep Pose and Deep Uncertainty for Monocular Visual Odometry
?
摘要:
我們提出的D3VO單目視覺里程計框架從三個層面上利用了深度學習網絡,分別是:利用深度學習的深度估計,利用深度學習的位姿估計,以及利用深度學習的不確定度估計。首先我們提出了一個在雙目視頻上訓練得到的自監督單目深度估計網絡。特別的,它利用預測亮度變換參數,將訓練圖像對對齊到相似的亮度條件上。另外,我們建模了輸入圖像像素的亮度不確定性,從而進一步提高深度估計的準確率,并為之后的直接法視覺里程計提供一個關于光照殘差的可學習加權函數。評估結果顯示,我們提出的網絡超過了當前的sota自監督深度估計網絡。D3VO將預測深度,位姿以及不確定度緊密結合到一個直接視覺里程計方法中,來同時提升前端追蹤以及后端非線性優化性能。我們在KITTI以及EuRoC MAV數據集上評估了D3VO單目視覺里程計的性能。結果顯示,D3VO大大超越了傳統的sota視覺里程計方法。同時,它也在KITTI數據集上取得了可以和sota的stereo/LiDAR里程計可比較的結果,以及在EuRoC MAV數據集上和sota的VIO可比較的結果。
?
一、引入:
深度學習已經掃蕩了計算機視覺領域中的很多領域,不僅有高層次的任務,如目標分類,檢測以及分割,也包括低層次任務,如光流估計,興趣點檢測以及表述。然而,在SLAM或者是視覺SLAM領域,這個領域主要從圖像序列中估計相機的相對位姿,該領域中,傳統的基于幾何的方法仍然占據主導。雖然基于單目的方法有著低硬件以及標定成本的優勢,但他卻由于尺度漂移以及低魯棒性,在性能方面落后于Stereo SLAM以及VIO。最近有很多工作著力從結合深度神經網絡方面來解決這些問題。研究表明,通過結合單目深度估計網絡,單目VO的性能得到了很大提升,因為深度神經網絡能夠從大量數據中學習到度量尺度一致的深度信息先驗。
然而,這種方式,僅有限的使用了深度神經網絡。最近,關于自監督及無監督的單目深度估計網絡的最新進展表明,相鄰的單目幀位姿可以隨深度一起預測。由于利用深度神經網絡的位姿估計展現了很高的魯棒性,那么就提出了一個問題:能否利用基于深度網絡的位姿估計來提升傳統的VO? 另一方面,因為SLAM/VO本質上是一個狀態估計問題,其中不確定度扮演著很重要的地位,同時也有很多基于學習的方法開始估計不確定度。那么還有一個問題是:我們如何將這種不確定度的預測融入到基于優化的VO中呢?
在本文中,我們提出的D3VO作為單目直接法視覺VO,從三個層面上利用了自監督單目深度估計網絡:深度,位姿以及不確定度估計,如圖1所示。
圖 1為了到我們的目的,我們首先提出了一個在雙目視頻上訓練的自監督網絡。提出的自監督網絡利用DepthNet部分從單幀圖像中預測深度,利用PoseNet部分從相鄰幀圖像中預測位姿。利用修正的基線和預測的位姿,通過最小化靜態立體翹曲和時間翹曲引起的光度誤差,將兩個網絡聯系在一起。通過這種方式,時間信息就被融入到了深度預測訓練中,從而提升估計精度。為了解決訓練圖像對之間光照不一致的問題,我們的網絡實時預測了訓練過程中對源圖像和目標圖像進行亮度匹配的亮度變換參數。對EuRoC MAV數據集的評估表明,所提出的亮度變換顯著提高了深度估計的精度。為了將deep depth集成到VO系統中,我們首先用有著度量尺度的預測的深度來初始化每個新的3D點。然后,我們采用(DVSO)中提出的virtual stereo term,將預測的位姿納入非線性優化中。DVSO使用半監督的單目深度估計網絡,依賴于從sota的Stereo VO系統中提取的輔助深度,而我們的網絡只使用Stereo視頻,沒有任何外部深度信息監督。
雖然光照變化被明確地建模,但它并不是唯一可能違反亮度恒定假設的因素。其他因素,如非朗伯表面、高頻區域和移動的物體,也會破壞這個假設。受最近深度神經網絡關于隨機不確定性的研究的啟發,該網絡將光度不確定性估計為以輸入圖像為條件的預測方差。因此,由可能違反亮度恒定假設的像素產生的誤差被向下加權。學習到的光度殘差的權重也促使我們將其合并到直接的VO中——因為自監督訓練流程和direct-VO有著類似的光度目標,我們建議使用學到的權重來取代在傳統的direct-VO中使用的光度殘差權重函數,其通常是人工經驗設定的,或者只用來解釋特定算法的內在不確定度的。
魯棒性是VO算法設計中最重要的因素之一。然而,傳統的單目視覺VO在面對弱紋理區域或快速運動時缺乏魯棒性。典型的解決方案是引入慣性測量單元(IMU)。但這增加了校準工作,更重要的是,在恒定速度下,IMUs不能在恒定速度下提供度量尺度。為了提高單目VO的魯棒性,我們提出將來自深度網絡的預估位姿合并到前端跟蹤和后端非線性優化中。對于前端跟蹤,我們用網絡估計的位姿代替勻速運動模型的位姿。此外,估計的位姿,除了直接圖像對齊,也被用作平方正則化。在后端非線性優化中,我們提出了一個與直接VO的光度能量項共同最小化的位姿能量項。我們在KITTI[25]和EuRoC上評估了所提出的單目深度估計網絡和D3VO。我們在單目深度估計和攝像機跟蹤方面都達到了sota性能。特別地,通過結合deep depth, deep uncertainty and deep pose,D3VO在KITTI上取得了與最先進的stereo/LiDAR 方法相媲美的結果,并且在EuRoC MAV上也取得了與最先進的VIO方法相媲美的結果,而這是一種單目方法。
?
二、相關工作:
基于深度學習的單目深度估計
監督學習在單目深度估計任務上展現了強大的性能。Eigen et al. [14, 15] 提出使用多尺度的CNNs,來直接從單個輸入圖像回歸像素級的深度圖。Laina et al. [43]提出了一種魯棒的損失函數來提升估計精度。Fu et al. [24]將單目深度估計網絡重構為一個有序回歸問題,并取得了較好的性能。最近的研究開始以一種自監督和無監督的方式來解決這個問題,即使用光度誤差來學習深度圖[27,28,49,73,81,82,82,86],并采用可微插值[32]。我們的自監督深度估計網絡是以MonoDepth2 [26]為基礎,并通過引入預測亮度變換參數和光度不確定度對其進行了擴展。
基于深度學習的不確定度估計
深度學習的不確定性估計最近在[35,36]中進行了研究,提出了兩種不確定性。Klodt et al. [40]提出利用隨機不確定度概念來估計光度以及深度的不確定度,從而提升深度估計精度。但是,在表達光度不確定度是,他們沒有考慮不同圖像間的光照變化,這其實是可以被顯式建模的。我們的方法以亮度對齊圖像為條件,對光度不確定度進行預測,從而實現更好的光度不確定度估計。此外,我們也試圖更好地利用我們已知的不確定性,并建議將其納入傳統的VO系統[16]中
基于深度學習的VO/SLAM
端到端深度學習神經網絡已經被開發出來,可以直接預測圖像之間的相對姿態[70,75,85]以監督學習模式,或無監督學習[46,73,82,86]。除了位姿估計外,CodeSLAM[2]還通過與相機姿態共同優化稠密幾何的學習先驗,實現了稠密重建。但在位姿估計精度方面,所有端到端方法都不如傳統的基于立體視覺和慣性的VO方法。基于深度單目深度估計的成功,一些研究將預測的深度/視差圖集成到單目VO系統中[68,78],以提高性能并消除尺度漂移。CNN-SLAM[68]將監督深度神經網絡預測的深度融合到LSD-SLAM[17]中,利用貝葉斯濾波對深度圖進行細化,在室內環境中取得了優異的性能[29,64]。其他文獻[10,67]探討了深度神經網絡在基于特征的方法上的應用,其中[34]采用生成式對抗網絡(GANs)作為一種圖像增強方法,提高了VO在弱光下的魯棒性。與我們的工作最相關的是(DVSO)。DVSO提出了virtual stereo term,將深度估計從半監督網絡輸入到direct-VO管道中。特別是,DVSO的表現大幅優于其他單目VO系統,甚至可以達到與最先進的立體視覺測程系統相當的性能[53,74]。DVSO僅僅利用了深度,而我們提出的D3VO在多個層面上利用了深度神經網絡的power,從而將更多的信息整合到直接的VO管道中
?
三、方法:
首先,我們介紹了一種新型的自監督神經網絡,它可以預測深度,位姿以及不確定度。該網絡還估計仿射亮度轉換參數,以自監督的方式對齊訓練圖像的照度。光度不確定度是根據每個像素可能的亮度值[35,40]的分布來預測的。此后,我們將介紹D3VO作為一個direct-SLAM框架,將預測的屬性合并到跟蹤前端和BA后端。
3.1自監督網絡
所提出的單目深度估計網絡的核心概念是自監督訓練體制,它同時利用DepthNet學習深度,通過PoseNet利用視頻序列學習運動[26, 86]。這種自監督訓練是通過最小化時間立體圖像和靜態立體圖像之間的光度重投影誤差來實現的:
Eq 1其中V是上面所有像素的集合,是所有源幀的索引。在我們的設置中是左圖像,而包含了兩個相鄰的時間幀和它所對應的右幀。也就是說 。每像素最小損失是在Monodepth2中被提出來,用來處理不同源圖像之間的遮擋問題的。
是通過利用預測深度,相機位姿,相機內參K以及可微分雙線性采樣器,來變換時間立體圖像對合成得到的[32]。注意, 中的變換?是已知并恒定的。DepthNet也利用左圖預測右圖的深度 ?,采用[27]提出的方法。的訓練要求合成,以及與 比較。 為了簡化,我們之后將只細節描述關于左圖的損失。
通常,公式化的光度誤差表示如下(基于關照一致性假設):
Eq 2然而,由于相機的照度變化和自動曝光的L1和SSIM[76]都不是固定不變的,因此也會違反這一原則。因此,我們建議使用預測亮度轉換參數來明確地建模相機曝光變化。
亮度轉換參數。相機曝光調整引起的圖像強度變化可以用a、b兩個參數的仿射變換來表示:
Eq 3雖然這個公式很簡單,但是實踐證明它在direct VO/SLAM中非常有效[16, 18, 33, 74],其建立在亮度恒定假設上。受這些工作的啟發,我們提出預測這個變換的參數a,b,用來對齊和?的亮度條件。我們將Eq 1重寫成以下形式:
Eq 4,5其中 和代表對齊和亮度的變換參數。這兩個參數都可以以自監督的方式訓練。圖 3展示了在EuRoC MAV[5]上的仿射變換例子。
圖 3光度不確定性 僅僅建模仿射亮度變換是不足以涵蓋所有違反亮度恒定假設的失敗情況的。其他情況,如非朗伯曲面和運動物體,是由相應物體的固有性質引起的,這些性質對于分析建模來說不是微不足道的[40]。因為這些方面可以被看作觀測噪聲,我們利用Kendall等人提出的深度神經網絡的異方差隨機不確定性概念。關鍵想法是預測每個像素的后驗概率分布,用它關于真實標簽y的均值和方差參數化。舉個例子,假設噪聲是Laplacian的,需要最小化的對數似然函數如下:
Eq 6注意訓練時不需要σ的真實標簽。預測的不確定度,使的網絡可以依據輸入數據調整殘差的權重, 從而提升模型對噪聲數據以及錯誤標簽的魯棒性。
這里,我們設定"ground_truth" 是目標圖像()上像素值,對于上越強烈違反亮度一致性假設的區域,網絡預測的σ越大。與[40]相類似,我們通過將Eq 4轉換成以下形式來達成目標:
Eq 7這里,是的不確定圖。圖 4展示了在KITTI以及EuRoC數據集上的預測不確定度圖的結果。下一節,我們將展示學習得到的Σt對于D3VO中加權光度殘差有重要作用。
整個損失函數是自監督損失項和正則化損失項在多尺度圖像上的和:
Eq 8,9,10正則項是關于亮度轉換參數以及上邊緣感知平滑損失[27]。
總的來說,我們提出的DepthNet使用單張輸入圖像預測,以及。PoseNet利用按通道拼接的輸入預測,以及。DepthNet以及PoseNet都是遵循UNet-like形式的卷積神經網絡結構。請參閱我們提供的補充材料來了解網絡架構和實現細節。
?
3.2 D3VO
在之前的章節,我們介紹了自監督深度估計網絡用來預測深度圖,不確定度圖 以及相對位姿。在本節中,我們將描述D3VO是如何集成這些預測到一個窗口式稀疏光度BA范式的,像[16]中提出的那樣。 注意,之后我們使用的形式來指示預測量。
光度能量 D3VO的優化目標是最小化一個總的光度誤差,定義如下:
Eq 11其中是所有關鍵幀的集合,是關鍵幀i中的點集合,是關鍵幀集合,在其中點是可見的,是投影到關鍵幀時的加權光度能量項:
Eq 12其中是像素p的8領域,如[16]中所定義的,a,b 是兩盒非線性優化中的仿射亮度變換參數[16]。是Huber范數。 [16]當圖像梯度較大時,殘差被降權處理,以補償較小的獨立幾何噪聲。在實際場景中,有許多噪聲源,比如反射[40],這需要建模,以提供準確和穩健的運動估計。我們提出使用學到的不確定度來制定權重函數:
Eq 13這不僅依賴于局部圖像梯度,而且還依賴于更高水平的噪聲模式。如圖 4 所示,提出的網絡能夠預測反射區域的高度不確定性,例如車輛的窗戶,像騎自行車的人一樣移動的物體,以及深度不連續處的物體邊界。
重投影點由式 確定,其中是點在第i個關鍵幀坐標系下的深度(Z軸),是關于相機內參的投影變換函數。不同于傳統的單目direct-SLAM隨機初始化[16,17],我們使用式初始化。 受[78]啟發,我們引入virtual stereo term 到Eq 11中:
Eq 14-17virtual stereo term優化了從VO估計的深度,使其與所提出的深度網絡預測的深度一致[78]。
位姿能量 與傳統的direct-VO方法19,23]使用恒定速度運動模型初始化每個新幀的前端跟蹤不同,我們利用連續幀之間的預測位姿來構建非線性因子圖[41,47]。具體來說,當最新的關鍵幀(也是前端跟蹤的參考幀)更新時,我們創建一個新的因子圖。每一個新幀都參照具有直接圖像對齊的參考關鍵幀進行跟蹤[66]。此外,從深度網絡預測的相對位姿被用作當前幀和最后幀之間的一個因子。優化完成后,我們將最后一幀邊緣化,并將因子圖用于后續幀的前端跟蹤。關于因子圖的可視化,請參考我們的支撐材料。跟蹤前端估計得來的姿態,之后被用于初始化光度BA后端。我們進一步介紹了關鍵幀相對位姿的先驗,它使用預測姿勢。注意,是通過拼接所有在i - 1和i的關鍵幀的預測位姿計算出來的。
Eq 18其中,Log變換是李群到李代數的變換,4x4變換矩陣T到6維向量。是通過在每個連續的幀對之間傳播協方差矩陣得來的,協方差矩陣被建模為一個常數對角矩陣。
總的能量函數被定義為:
Eq 19在Eq 19中包含位姿先驗項可以看作是將預先集成的IMU位姿先驗以高斯噪聲模型集成到系統中的一個類比。用高斯-牛頓法求的最小值。綜上所述,我們通過將預測的位姿作為初始化引入跟蹤前端和優化后端,并將其作正則項添加到光度BA的能量函數中,從而改進了直接VO方法。
?
四、實驗:
我們在KITTI和EuRoc MAV數據集上評估了提出的自監督單目深度估計網絡以及D3VO。
?
4.1 單目深度估計
KITTI 我們在Eigen at el[15]的數據集上(應該是KITTI的一個子集)訓練和評估了所提出自監督深度估計網絡。網絡是在立體圖像序列上訓練的,并采用了Zhou et al. [86]提出的預處理方法,給予了我們39810個training quadruplets,每個quadruplet包含3個(左)時間序列圖像,和一個(右)立體匹配圖像,其中4424個拿來做驗證。表 1上半部分是與經過立體和單目設置訓練的sota的單目方法Monodepth2[26]的比較,以及所提出的亮度變換預測(ab)和光度不確定度估計(uncer)的消融研究。
表 1結果顯示我們提出的深度估計網絡在所有指標方面都超越了Monodepth2。消融研究揭示出,與Monodepth2相比的顯著改善主要來自uncer,可能是因為在KITTI中有許多物體具有非朗伯表面,如窗戶,也有獨立運動的物體,如汽車和樹葉,這些都違反了亮度恒定假設。表下半部分顯示了與目前最先進的半監督方法的比較,結果表明我們的方法可以在不使用任何深度監督的情況下獲得具有競爭力的性能。
在圖 4中,我們展示了從Eigen測試集[15]得到的一些定性結果。從左至右分別顯示原始圖像、深度圖和不確定度圖。更多關于Cityscapses數據集[8]的定性結果和泛化能力,請參考我們的支撐資料。
圖 4EuRoC MAV EuRoC MAV數據集[5]是一個包含11個序列的數據集,根據光照和攝像機運動分為簡單、中等和困難場景。這個數據集是非常具有挑戰性的,因為強烈的運動和顯著照明變化存在立體和時間序列圖像之間。因此,我們認為它是一個很好的測試平臺,可以驗證我們的深度預測亮度轉換參數的有效性。受Gordon et al.的啟發,[28]他們最近通過投影提供的Vicon 3D掃描并過濾遮擋點,為序列V2_01生成了ground truth深度圖,我們也使用這個序列進行深度評估。我們的第一個實驗被設置成與[28]一致,我們用單目設置在MH(中等難度?)序列訓練所有的模型并在V2_01上進行測試。結果展示在表 3中。
表 2,3第二個實驗,我們使用5個序列MH 01,MH 02, MH 04, V1 01和V1 02作為訓練集來檢查我們的方法在一個相對寬松的設置下的性能。為了訓練我們移出了靜態幀,得到12,691張圖像,其中11,422張用于訓練,1269張用于驗證。我們用不同的對照訓練我們的模型,并以Monodepth2[26]作為基線。表 2中的結果表明,我們的所有變化都優于基線,與在KITTI的情況相比,所提出的ab可以顯著地改進在該數據集的結果。請參閱附錄,獲得更多關于ab的實驗情況。事實上,值得注意的是表 3中的結果(在一個場景MH上訓練,在另一個場景V上測試)比在另一個場景中要差,即表 2(同時在MH和V上訓練),結果表明在非常不同的場景下,提高單目深度估計的泛化能力仍然是一個挑戰。
?
4.2 單目VO
我們評估單獨訓練的D3VO在KITTI和EuRoC MAV上的VO性能。
KITTI Odometry KITTI Benchmark包含11(0-10)個序列,提供了ground truth姿態。如[78]所總結的一樣,序列00,03,04,05,07屬于本網絡使用的Eigen分割訓練集,因此我們將其余序列作為D3VO姿態估計評估的測試集。我們使用在[25]中提出的相對平移(trel)誤差作為評估的主要指標。表 4顯示了與其他最先進的單目(M)以及立體雙目(S)VO方法在訓練集上的比較。我們參考[78]比較方法的結果。傳統的單目方法在大尺度的戶外場景如KITTI中,由于尺度的漂移,顯示出很高的誤差。D3VO雖然也是一種單目方法,但其平均性能最好。表中還包括了深度(Dd)、位姿(Dp)和不確定度(Du)的融合研究。可以注意到,與表 1的結果一致,預測的不確定性對在KITTI的性能有很大的幫助。我們還將測試序列(11-20)的結果提交給KITTI測程評估服務器(link)。在提交時,D3VO的性能優于其他版本DVSO實現了最好的單目VO性能,可與其他最先進的激光雷達和立體聲方法相媲美。
我們進一步將D3VO與sota的end-to-end深度學習方法和其他最近的混合方法進行比較,結果如表5所示。
表 5注意,這里我們只顯示了Seq.09和10上的結果,因為大多數端到端方法只提供了這兩個序列上的結果。我們參考[28,78,83]比較方法的結果。D3VO實現了比所有端到端方法更好的性能。一般而言,將深度學習與傳統方法相結合的混合方法比端到端方法的效果更好。
EuRoC MAV 如第4.1節所述,EuRoC MAV由于其強烈的運動和顯著的光照變化,對于純視覺的VO來說是非常具有挑戰性的。VIO方法[44、56、71、72]通過集成IMU測量來預先獲得一個姿態或運動,同時估計絕對尺度,從而主導這個benchmark。我們比較了D3VO和其他sota的單目VIO (M+I)以及立體VIO (S+I)方法,在MH_03_medium,MH_05_difficult,V1_03_difficult,V2_02_medium,V2_03_difficult序列上的結果。所有其他序列都用于訓練。我們參考了[9]中所提到的M+I的方法結果。DSO和ORB-SLAM的結果作為基線。我們還展示了PoseNet(end-to-end VO)的結果。對于評估指標,我們使用絕對軌跡誤差(ATE)的均方根(RMS),在估計值與ground truth對齊之后。結果如表 6所示,綜合了深度、位姿和不確定性的深度神經網絡的框架,D3VO顯示了高準確性和魯棒性,并能夠提供與其他的sota的VIO方法可比的結果,且只使用一個攝像頭。我們還展示了融合預測深度(Dd)、位姿(Dp)和不確定性(Du)的消融研究,位姿預測的融合顯著提高了V1_03_difficult和V2_03_difficult的性能,當攝像機發生劇烈運動時。
圖5顯示了在MH_03 和V1_03序列上, DSO[16],ORB-SLAM[52],視覺慣性DSO[72],我們提出的end-to-end VO的預測位姿,D3VO的軌跡定量比較結果。5中方法在MH_05_difficult上都表現不錯。然而在V1_03_difficult上,即運動較強,在時域和立體圖像之間存在很多亮度不一致的情況下,相較于VI-DSO,D3VO仍然可以提供可觀的結果,且只使用一個攝像頭。
?
五、結論:
我們將D3VO方法作為一種單目VO方法提出,利用深度網絡在三個層次上的預測能力,綜合單目深度、光度不確定度和相對相機位姿的預測,提高了幾何VO方法的性能。為此,我們首先引入了一種新的自監督單目深度估計網絡,該網絡利用預測亮度變換參數明確地處理訓練集的光照變化。該網絡在KITTI和EuRoC MAV上取得了sota的性能。之后,將預測的深度、不確定性和位姿引入直接VO管道的前端跟蹤和后端非線性優化。我們系統地評估了兩個數據集上D3VO的VO性能。D3VO在KITTI達到了最新的sota性能,并在具有挑戰性的EuRoC MAV上實現了sota的性能,可與領先的單目慣性和立體慣性方法相媲美,且只使用一個攝像頭。
?
總結
以上是生活随笔為你收集整理的CVPR2020——D3VO论文阅读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果手机打印驱动使用手册(详细操作版本)
- 下一篇: 更新游戏物品清单