動態(tài)稠密SLAM的自監(jiān)督場景運動分解
0. 引言
場景運動估計的任務是獲取動態(tài)場景的三維結(jié)構(gòu)和三維運動,在論文"DeFlowSLAM: Self-Supervised Scene Motion Decomposition for Dynamic Dense SLAM",作者提出了一種基于雙流的運動估計算法,并且不需要對對象檢測進行顯式監(jiān)督,更好地模擬了人類看待世界的方式。此外,該方法可以支持單目、雙目和RGB-D等數(shù)據(jù)格式,算法即將開源。
1. 論文信息
標題:DeFlowSLAM: Self-Supervised Scene Motion Decomposition for Dynamic Dense SLAM
作者:Weicai Ye, Xingyuan Yu, Xinyue Lan, Yuhang Ming, Jinyu Li, Hujun Bao, Zhaopeng Cui, Guofeng Zhang
原文鏈接:https://arxiv.org/abs/2207.08794
代碼鏈接:https://zju3dv.github.io/deflowslam
2. 摘要
我們提出了一種新的場景運動的雙流表示法,將光流分解為由相機運動引起的靜態(tài)流場和由場景中物體運動引起的動態(tài)流場?;谶@種表示,我們提出了一種動態(tài)SLAM,稱為DeFlowSLAM,它利用圖像中的靜態(tài)和動態(tài)像素來求解相機姿態(tài),而不是像其他動態(tài)SLAM系統(tǒng)那樣簡單地使用靜態(tài)背景像素。
我們提出了一個動態(tài)更新模塊,以自監(jiān)督的方式訓練我們的DeFlowSLAM,其中稠密BA層接受估計的靜態(tài)流場和由動態(tài)掩??刂频臋?quán)重,并輸出優(yōu)化的靜態(tài)流場、相機姿態(tài)和反演深度的殘差。通過將當前圖像扭曲到相鄰圖像來估計靜態(tài)和動態(tài)流場,并且通過將兩個場相加可以獲得光流。
大量實驗表明,DeFlowSLAM對靜態(tài)和動態(tài)場景都有很好的通用性,因為它在靜態(tài)和動態(tài)場景中表現(xiàn)出與最先進的DROID-SLAM相當?shù)男阅?,而在高度動態(tài)環(huán)境中明顯優(yōu)于DROID-SLAM。
3. 算法分析
如圖1所示是作者提出的基于雙流的SLAM方法DeFlowSLAM的概述,該系統(tǒng)將一系列圖像作為輸入,提取特征構(gòu)建相關體,并將其與初始靜態(tài)流、光流、動態(tài)掩膜一起饋入動態(tài)更新模塊,迭代優(yōu)化姿態(tài)殘差、逆深度、靜態(tài)光流和動態(tài)光流,最終輸出相機姿態(tài)和3D結(jié)構(gòu)的估計。優(yōu)化過程是通過創(chuàng)建一個共視圖并更新現(xiàn)有的共視圖來執(zhí)行的。

圖1 DeFlowSLAM概述
DeFlowSLAM具有端到端的差異化架構(gòu),結(jié)合了經(jīng)典方法和深層網(wǎng)絡的優(yōu)勢。由于雙流表示、迭代動態(tài)更新模塊和基于幀間共視的因子圖優(yōu)化,它可以魯棒地處理動態(tài)場景等具有挑戰(zhàn)性的場景。
就像DROID-SLAM優(yōu)化姿勢和深度一樣,靜態(tài)場很容易優(yōu)化,而對于動態(tài)場,可以通過將當前幀變換到相鄰幀來獲得一致的亮度?;谶@種思路,作者為DeFlowSLAM提出了一個動態(tài)更新模塊,其中巧妙地嵌入了雙流表示,在動態(tài)更新模塊中,作者引入了一個名為Mask-Agg的動態(tài)掩碼聚集算子來消除不正確的對齊效應。
具體來說,Mask-Agg算子通過卷積門控遞歸單元(ConvGRU)迭代更新動態(tài)掩碼的殘差。通過將聚集的動態(tài)掩碼殘差與原始掩碼相加,可以獲得最終的動態(tài)掩碼。所獲得的動態(tài)掩模將與所估計的權(quán)重相結(jié)合,并被饋送到稠密束調(diào)整(DBA)層,以優(yōu)化姿態(tài)和深度的殘差。
綜上所述,作者所做工作的主要貢獻如下:
(1) 提出了一種新穎的雙流場景運動表示方法,將光流分解為靜態(tài)流場和動態(tài)流場。
(2) 構(gòu)建了一個動態(tài)稠密SLAM,即DeFlow-SLAM,它在動態(tài)場景中的性能優(yōu)于最先進的方法。
(3) 提出了一種自我監(jiān)督的訓練方法來代替DROID-SLAM中的強監(jiān)督。
3.1 雙流表示法
作者所提出的動態(tài)SLAM網(wǎng)絡的核心概念是雙流表示和自監(jiān)督訓練方案。DROID-SLAM使用光流作為中間運動表示,而DeFlowSLAM通過將光流分解為由相機運動引起的靜態(tài)流和由動態(tài)對象本身的運動引起的動態(tài)流,因此得出了一種新穎的場景運動表示,其原理如圖2所示。這種表示法可以區(qū)分靜態(tài)和動態(tài)的物體運動,因此具有更好的可解釋性,并使網(wǎng)絡在培訓過程中可追溯。

圖2 雙流表示法
與DROID-SLAM類似,DeFlowSLAM也使用了共視圖。在靜態(tài)流場更新每次姿態(tài)或深度后,可以使用新的共視關系進行更新。當相機返回到以前訪問過的地方時,將向圖形中添加一個遠程連接,并進行回環(huán)檢測。
3.2 動態(tài)更新模塊
圖3所示是DeFlowSLAM的動態(tài)更新模塊結(jié)構(gòu),該模塊是3×3的ConvGRU,并帶有一個隱藏狀態(tài)。與DROID-SLAM中直接處理修正光流的更新模塊不同,DeFlowSLAM的動態(tài)更新模塊分別處理分解后的靜態(tài)流場和動態(tài)流場。
首先以類似于DROID-SLAM的方式更新修正的靜態(tài)流場,而對于動態(tài)流場,DeFlowSLAM會將其添加到靜態(tài)流場中以獲得光流,并在下一次迭代中作為一個新的優(yōu)化項輸入流編碼器。每個應用程序都會更新隱藏狀態(tài),并另外生成姿態(tài)增量、深度增量、動態(tài)掩模增量和動態(tài)流。姿態(tài)增量通過在SE3流形上的縮回應用于當前姿態(tài),而深度和動態(tài)掩模增量分別添加到當前深度和動態(tài)掩模中。

圖3 動態(tài)更新模塊
3.3 損失函數(shù)
DeFlowSLAM的損失函數(shù)有三個組成部分,分別是幾何光度損失、光流光度損失以及人工掩膜損失。其中幾何光度損失為SLAM中的重投影誤差:

其中表示幾何掩模聚合算子,用以濾掉錯誤的像素匹配,避免由于物體的運動而導致像素不匹配使精度降低的問題,原理如圖4所示。表1展示了Mask-Agg模塊有助于過濾掉自監(jiān)督訓練中的模糊匹配,從而獲得更好的結(jié)果。

圖4 Mask-Agg舉例
光流光度損失用來監(jiān)控整個場景的運動,包括相機的運動和物體的運動。通過更新模塊,可以通過添加靜態(tài)流和動態(tài)流來獲得光流結(jié)果。然后使用雙線性采樣從源圖像中進行采樣,評估它們的光度誤差:

人工掩模損失可以在動態(tài)掩模標簽不可用時發(fā)揮效果:

最終損失為三者的疊加:

4. 實驗
作者首先在VKITTI2的高度動態(tài)場景中驗證方法的有效性,并進行消融實驗。此外,在數(shù)據(jù)集TartanAir上使用相同的策略從頭開始訓練DeFlowSLAM,并在VKITTI2等不同的動態(tài)數(shù)據(jù)集上測試該方法的泛化能力。還測試了單目或雙目數(shù)據(jù)集,如TUM-RGBD的靜態(tài)場景和EuRoc數(shù)據(jù)集。評估指標為絕對軌跡誤差(ATE)。
4.1 消融實驗
作者使用VKITTI2數(shù)據(jù)集用于消融實驗,圖5表明,與DROID-SLAM相比,DeFlowSLAM使用動態(tài)像素來解決相機姿態(tài)。表1證明了雙流表示方法優(yōu)于粗糙的單流表示方法,并且Mask-Agg有助于改進姿態(tài)估計,其中SS表示自監(jiān)督,SM表示半監(jiān)督,SF表示單流,DF表示雙流。此外,表1證明了自監(jiān)督方法可以達到與監(jiān)督方法相當或更好的準確性。

圖5 DROID-SLAM與DeFlowSLAM定性對比
表1 在VKITTI2數(shù)據(jù)集上訓練和測試的DeFlowSLAM消融研究

表2展示了動態(tài)閾值的消融實驗結(jié)果,結(jié)果顯示閾值設置為0.5時性能達到最優(yōu)。
表2 在VKITTI2上訓練和測試的DeFlow-SLAM的動態(tài)閾值消融研究

4.2 通用化
作者在TartanAir數(shù)據(jù)集上訓練了DeFlowSLAM并在其他主流SLAM數(shù)據(jù)集上測試,如VKITTI2、具有動態(tài)車輛的KITTI、具有強烈運動和顯著光照變化的EuRoc,帶有運動模糊和劇烈旋轉(zhuǎn)的TUM RGB-D。圖6所示是DeFlowSLAM的定性結(jié)果,結(jié)果表明DeFlowSLAM很好地推廣到不同的數(shù)據(jù)集。

圖6 DeFlowSLAM的定性結(jié)果
4.3 動態(tài)SLAM
作者在KITTI數(shù)據(jù)集的序列09和10上測試了DeFlowSLAM的性能,ATE結(jié)果如表3所示。與使用Mask-RCNN進行動態(tài)環(huán)境感知的DynaSLAM和DROID-SLAM相比,DeFlowSLAM在動態(tài)場景中更加準確和魯棒。
表4展示了不同動態(tài)比例的TUM RGB-D動態(tài)序列評估結(jié)果,結(jié)果表明DeFlowSLAM具有競爭力,甚至是最好的性能。注意結(jié)果中其他算法使用RGB-D數(shù)據(jù),而DeFlowSLAM和DROID-SLAM只使用單目數(shù)據(jù)。
表3 KITTI (K)和VKITTI2 (VK)數(shù)據(jù)集上的動態(tài)SLAM結(jié)果

表4 動態(tài)SLAM在TUM動態(tài)序列上的結(jié)果

在單目實驗中,作者在TartanAir測試集、EuRoC和TUMRGB-D數(shù)據(jù)集上測試訓練過的DeFlowSLAM,結(jié)果如表5所示,DeFlowSLAM取得了最好的效果。
表6和表7表明,DeFlowSLAM在大多數(shù)序列上取得了比SOTA監(jiān)督方法更好的結(jié)果。這也證明了DeFlowSLAM比經(jīng)典的SLAM算法更魯棒,具體來說DeFlowSLAM在EuRoC數(shù)據(jù)集上實現(xiàn)的平均ATE為0.136 m,在TUM-RGBD靜態(tài)序列上實現(xiàn)的平均ATE為0.114m,優(yōu)于大多數(shù)監(jiān)督方法。
表5 單目SLAM在TartanAir單目基準測試中的結(jié)果

表6 單目SLAM在EuRoc數(shù)據(jù)集上的結(jié)果

表7 單目SLAM在TUM-RGBD數(shù)據(jù)集上的結(jié)果

在雙目數(shù)據(jù)下,DeFlowSLAM也在TartanAir測試數(shù)據(jù)集和EuRoc雙目數(shù)據(jù)集上進行了測試。表8說明了DeFlowSLAM取得了與DROID-SLAM相當?shù)慕Y(jié)果,平均ATE為1.02m,優(yōu)于TartanVO。表9顯示DeFlowSLAM優(yōu)于大多數(shù)監(jiān)督方法和傳統(tǒng)的SLAM算法。
表8 TartanAir雙目基準測試結(jié)果

表9 EUROC數(shù)據(jù)集上的雙目SLAM結(jié)果

如圖7所示,作者還對AR應用進行了實驗,以證明DeFlowSLAM的魯棒性。其中,作者用虛擬樹、汽車和路燈來增強原始視頻。結(jié)果顯示,DeFlowSLAM可以很好地處理場景中的動態(tài)對象,而DROID-SLAM則顯示出顯著的漂移。

圖7 AR應用
4.4 運動分割
最后,作者提出雖然DeFlowSLAM主要應用于SLAM系統(tǒng),但雙流表示可以很好地應用于運動分割。如圖8和表10所示,只需為運動設置一個閾值,將大于這個閾值的動態(tài)場的像素點可視化,就可以得到運動分割的結(jié)果,

圖8 運動分割可視化結(jié)果
表10 運動分割定量結(jié)果

5. 結(jié)論
在論文"DeFlowSLAM: Self-Supervised Scene Motion Decomposition for Dynamic Dense SLAM"中,作者提出了一種新穎的雙流表示法,將光流分解為由相機姿態(tài)引起的靜態(tài)流場和由動態(tài)物體運動引起的動態(tài)流場,該系統(tǒng)在高動態(tài)場景中的性能優(yōu)于DROID-SLAM,在靜態(tài)和輕微動態(tài)場景中的性能相當。此外,作者還提出了幾個DeFlowSLAM算法的不足,感興趣的讀者可以嘗試進行深入研究:
(1) 在某些場景中DeFlowSLAM的表現(xiàn)比DROID-SLAM稍弱,可能是因為使用了某個固定的動態(tài)閾值。因此可以探索動態(tài)閾值估計方法來應對不同場景的挑戰(zhàn)。
(2) 與DROID-SLAM一樣,DeFlowSLAM對更長的序列和更大的場景有很高的內(nèi)存要求,輕量高效的SLAM系統(tǒng)是一個潛在的研究方向。
(3) DeFlowSLAM更側(cè)重于求解相機姿態(tài),獲得的深度和光流只有原始圖像大小的1/8,對于深度估計和光流估計這樣的任務并不理想。
