基于學(xué)習(xí)視覺里程計的動態(tài)稠密RGB-D SLAM
0. 引言
基于特征點(diǎn)法的視覺SLAM系統(tǒng)很難應(yīng)用于稠密建圖,且容易丟失動態(tài)對象。而基于直接法的SLAM系統(tǒng)會跟蹤圖像幀之間的所有像素,因此在動態(tài)稠密建圖方面可以取得更完整、魯棒和準(zhǔn)確的結(jié)果。本文將帶大家精讀2022 CVPR的論文:"基于學(xué)習(xí)視覺里程計的動態(tài)稠密RGB-D SLAM"。該論文提出了一種基于直接法的動態(tài)稠密SLAM方案,重要的是,算法已經(jīng)開源。
1. 論文信息
標(biāo)題:Dynamic Dense RGB-D SLAM using Learning-based Visual Odometry
作者:Shihao Shen, Yilin Cai, Jiayi Qiu, and Guangzhao Li
來源:2022 Computer Vision and Pattern Recognition (CVPR)
原文鏈接:https://arxiv.org/abs/2205.05916
代碼鏈接:https://github.com/Geniussh/Dynamic-Dense-RGBD-SLAM-with-TartanVO
2. 摘要
我們提出了一種基于學(xué)習(xí)的視覺里程計(TartanVO)的稠密動態(tài)RGB-D SLAM系統(tǒng)。TartanVO與其他直接法而非特征點(diǎn)法一樣,通過稠密光流來估計相機(jī)姿態(tài)。而稠密光流僅適用于靜態(tài)場景,且不考慮動態(tài)對象。同時由于顏色不變性假設(shè),光流不能區(qū)分動態(tài)和靜態(tài)像素。
因此,為了通過直接法重建靜態(tài)地圖,我們提出的系統(tǒng)通過利用光流輸出來解決動態(tài)/靜態(tài)分割,并且僅將靜態(tài)點(diǎn)融合到地圖中。此外,我們重新渲染輸入幀,以便移除動態(tài)像素,并迭代地將它們傳遞回視覺里程計,以改進(jìn)姿態(tài)估計。
3. 算法分析
圖1所示是作者提出的具有基于學(xué)習(xí)的視覺里程計的動態(tài)稠密RGB-D SLAM的頂層架構(gòu),其輸出的地圖是沒有動態(tài)對象的稠密全局地圖。
算法的主要思想是從兩個連續(xù)的RGB圖像中估計光流,并將其傳遞到視覺里程計中,以通過匹配點(diǎn)作為直接法來預(yù)測相機(jī)運(yùn)動。然后通過利用光流來執(zhí)行動態(tài)分割,經(jīng)過多次迭代后,移除動態(tài)像素,這樣僅具有靜態(tài)像素的RGB-D圖像就被融合到全局地圖中。

圖1 基于學(xué)習(xí)的視覺里程計的動態(tài)稠密RGB-D SLAM頂層架構(gòu)
3.1 分割算法
為了利用來自TartanVO的光流輸出來分類動態(tài)/靜態(tài)像素,作者提出了兩種分割方法:一種是使用2D場景流作為光流和相機(jī)運(yùn)動之間的差值。另一種是提取一幀中的像素到它們匹配的核線的幾何距離。圖2和圖3所示分別為兩種方法的算法原理。

圖2 使用基于2D場景流的分割的稠密RGB-D SLAM架構(gòu)

圖3 基于運(yùn)動一致性檢測的稠密RGB-D SLAM架構(gòu)
在圖2中,作者首先使用來自TartanVO的匹配網(wǎng)絡(luò)從兩個連續(xù)的RGB圖像中估計光流,隨后使用姿態(tài)網(wǎng)絡(luò)來預(yù)測相機(jī)運(yùn)動。然后通過從光流中減去相機(jī)自身運(yùn)動來獲得2D場景流,并通過對2D場景流進(jìn)行閾值處理來執(zhí)行動態(tài)分割。
同時,靜態(tài)背景被前饋到網(wǎng)絡(luò),以實(shí)現(xiàn)相機(jī)運(yùn)動的迭代更新。經(jīng)過幾次迭代后,動態(tài)像素被移除,僅具有靜態(tài)像素的RGB-D圖像被傳遞到基于點(diǎn)的融合中進(jìn)行重建。圖4所示為使用2D場景流進(jìn)行動態(tài)像素分割的原理。

圖4 圖像平面中投影的2D場景流
在圖3中,作者首先使用來自TartanVO的匹配網(wǎng)絡(luò)從兩個連續(xù)的RGB圖像中估計光流,隨后使用姿態(tài)網(wǎng)絡(luò)來預(yù)測相機(jī)運(yùn)動。
然后計算從第二幀中的像素到它們的對應(yīng)核線的距離,其中核線使用光流從匹配像素中導(dǎo)出。
最后通過距離閾值化來執(zhí)行動態(tài)分割。經(jīng)過幾次迭代后,動態(tài)像素被移除,僅具有靜態(tài)像素的RGB-D圖像被傳遞到基于點(diǎn)的融合中進(jìn)行重建。
圖3所示的動態(tài)稠密框架基于的思想是:如果場景中沒有動態(tài)物體,那么第二幀圖像中的每個像素應(yīng)該在其第一幀圖像匹配像素的核線上。
在這種情況下,可以使用給定的相機(jī)位姿、光流和內(nèi)在特性進(jìn)行分割,而不是將第一幀圖像直接投影到第二幀。這種方法也被作者稱為"運(yùn)動一致性"檢測。
圖5所示是運(yùn)動一致性的細(xì)節(jié)檢測原理。該算法首先獲得匹配的像素對,即每對圖像中的像素直接施加光流矢量到第一幀上,并計算具有匹配像素對的基礎(chǔ)矩陣。
然后,再計算每個像素的對應(yīng)核線基本矩陣和像素的位置。當(dāng)?shù)诙衅ヅ湎袼嘏c它的核線大于閾值時,它被分類作為動態(tài)像素。

圖5 運(yùn)動一致性檢測的算法原理
3.2 迭代和融合
在RGB-D圖像中僅剩下靜態(tài)像素后,作者迭代地將其傳遞回TartanVO進(jìn)行改進(jìn)光流估計,從而獲得更精確的相機(jī)姿態(tài)。理想情況下,通過足夠的迭代,分割掩模將移除與動態(tài)對象相關(guān)聯(lián)的所有像素,并且僅在圖像中留下靜態(tài)背景。
同時作者發(fā)現(xiàn),即使使用粗糙的掩模,仍然可以提高TartanVO的ATE。另外,如果粗掩模允許一些動態(tài)像素進(jìn)入最終重建,那么它們將很快從地圖中移除。
經(jīng)過固定次數(shù)的迭代后,將去除了大多數(shù)動態(tài)像素的細(xì)化圖像對與其對應(yīng)的深度對一起進(jìn)行融合。數(shù)據(jù)融合首先將輸入深度圖中的每個點(diǎn)與全局圖中的點(diǎn)集投影關(guān)聯(lián),使用的方法是將深度圖渲染為索引圖。
如果找到相應(yīng)的點(diǎn),則使用加權(quán)平均將最可靠的點(diǎn)與新點(diǎn)估計合并。如果沒有找到可靠的對應(yīng)點(diǎn),則估計的新點(diǎn)作為不穩(wěn)定點(diǎn)被添加到全局圖中。
隨著時間的推移,清理全局地圖,以去除由于可見性和時間約束導(dǎo)致的異常值,這也確保了來自分割的假陽性點(diǎn)將隨著時間的推移而被丟棄。因?yàn)樽髡呃贸砻艿墓饬鞑⒃诿總€像素上分割圖像而不進(jìn)行下采樣,所以算法可以重建稠密的RGB-D全局圖。
4. 實(shí)驗(yàn)
作者使用TUM數(shù)據(jù)集中的freiburg3行走xyz序列,圖6和圖7所示為使用2D場景流的分割結(jié)果。

圖6 基于2D場景流動態(tài)分割向左移動的對象

圖7 基于2D場景流動態(tài)分割向右移動的對象
隨后,作者迭代地將重新渲染的圖像對傳遞回TartanVO。作者認(rèn)為這一操作將改進(jìn)光流估計,并且獲得更精確的相機(jī)姿態(tài),如圖8所示是實(shí)驗(yàn)結(jié)果。其中左圖是使用原始TartanVO的絕對軌跡誤差,右圖是使用改進(jìn)TartanVO的絕對軌跡誤差。實(shí)驗(yàn)結(jié)果顯示,如果有足夠的迭代,分割過程將移除動態(tài)物體中的大多數(shù)像素,并且僅保留靜態(tài)背景。

圖8 原始TartanVO和回環(huán)優(yōu)化的軌跡誤差對比結(jié)果
圖9所示是在TUM整個freiburg3行走xyz序列上的重建結(jié)果,結(jié)果顯示動態(tài)對象(兩個移動的人)已經(jīng)從場景中移除,只有靜態(tài)背景存儲在全局地圖中。

圖9 基于點(diǎn)融合的三維重建結(jié)果
此外,為了進(jìn)行不同方法的對比,作者首先嘗試掩蔽原始圖像以濾除對應(yīng)于3D中的動態(tài)點(diǎn)的像素,然后,在此之上嘗試用在先前圖像中找到的匹配靜態(tài)像素來修補(bǔ)空缺,但降低了精度。與產(chǎn)生0.1248的ATE的TartanVO方法相比,原始掩蔽方法產(chǎn)生了更理想的光流,而修補(bǔ)方法產(chǎn)生因?yàn)楫a(chǎn)生過多的偽像而阻礙了光流的計算。如圖10所示是對比結(jié)果。

圖10 tartan VO的三種輸入類型對比
5. 結(jié)論
在2022 CVPR論文"Dynamic Dense RGB-D SLAM using Learning-based Visual Odometry"中,作者提出了一種全新的動態(tài)稠密RGB-D SLAM框架,它是一種基于學(xué)習(xí)視覺里程計的方法,用于重建動態(tài)運(yùn)動物體干擾下的靜態(tài)地圖。重要的是,算法已經(jīng)開源,讀者可在開源代碼的基礎(chǔ)上進(jìn)行二次開發(fā)。
此外,作者也提到了基于該論文的幾個重要的研究方向:(1) 引入自適應(yīng)閾值機(jī)制,通過利用流、姿態(tài)和地圖等來為分割提供更一致的閾值。(2) 在預(yù)訓(xùn)練的基于學(xué)習(xí)的視覺里程計中,使用對相機(jī)姿態(tài)和光流的BA來補(bǔ)償大范圍運(yùn)動感知。(3) 使用動態(tài)感知迭代最近點(diǎn)(ICP)算法來代替TartanVO中的姿態(tài)網(wǎng)絡(luò)。(4) 在更多樣化的數(shù)據(jù)集上進(jìn)行測試和迭代,以提供更好的魯棒性。

