0. 引言
基于特征點法的視覺SLAM系統(tǒng)很難應(yīng)用于稠密建圖,且容易丟失動態(tài)對象。而基于直接法的SLAM系統(tǒng)會跟蹤圖像幀之間的所有像素,因此在動態(tài)稠密建圖方面可以取得更完整、魯棒和準確的結(jié)果。本文將帶大家精讀2022 CVPR的論文:"基于學(xué)習(xí)視覺里程計的動態(tài)稠密RGB-D SLAM"。該論文提出了一種基于直接法的動態(tài)稠密SLAM方案,重要的是,算法已經(jīng)開源。
1. 論文信息
摘要
我們提出了一種基于學(xué)習(xí)的視覺里程計(TartanVO)的稠密動態(tài)RGB-D SLAM系統(tǒng)。TartanVO與其他直接法而非特征點法一樣,通過稠密光流來估計相機姿態(tài)。而稠密光流僅適用于靜態(tài)場景,且不考慮動態(tài)對象。同時由于顏色不變性假設(shè),光流不能區(qū)分動態(tài)和靜態(tài)像素。
因此,為了通過直接法重建靜態(tài)地圖,我們提出的系統(tǒng)通過利用光流輸出來解決動態(tài)/靜態(tài)分割,并且僅將靜態(tài)點融合到地圖中。此外,我們重新渲染輸入幀,以便移除動態(tài)像素,并迭代地將它們傳遞回視覺里程計,以改進姿態(tài)估計。
3. 算法分析
圖1所示是作者提出的具有基于學(xué)習(xí)的視覺里程計的動態(tài)稠密RGB-D SLAM的頂層架構(gòu),其輸出的地圖是沒有動態(tài)對象的稠密全局地圖。 算法的主要思想是從兩個連續(xù)的RGB圖像中估計光流,并將其傳遞到視覺里程計中,以通過匹配點作為直接法來預(yù)測相機運動。然后通過利用光流來執(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場景流作為光流和相機運動之間的差值。另一種是提取一幀中的像素到它們匹配的核線的幾何距離。圖2和圖3所示分別為兩種方法的算法原理。
圖2 使用基于2D場景流的分割的稠密RGB-D SLAM架構(gòu)
圖3 基于運動一致性檢測的稠密RGB-D SLAM架構(gòu)
在圖2中,作者首先使用來自TartanVO的匹配網(wǎng)絡(luò)從兩個連續(xù)的RGB圖像中估計光流,隨后使用姿態(tài)網(wǎng)絡(luò)來預(yù)測相機運動。然后通過從光流中減去相機自身運動來獲得2D場景流,并通過對2D場景流進行閾值處理來執(zhí)行動態(tài)分割。 同時,靜態(tài)背景被前饋到網(wǎng)絡(luò),以實現(xiàn)相機運動的迭代更新。
經(jīng)過幾次迭代后,動態(tài)像素被移除,僅具有靜態(tài)像素的RGB-D圖像被傳遞到基于點的融合中進行重建。圖4所示為使用2D場景流進行動態(tài)像素分割的原理。
圖4 圖像平面中投影的2D場景流
在圖3中,作者首先使用來自TartanVO的匹配網(wǎng)絡(luò)從兩個連續(xù)的RGB圖像中估計光流,隨后使用姿態(tài)網(wǎng)絡(luò)來預(yù)測相機運動。 然后計算從第二幀中的像素到它們的對應(yīng)核線的距離,其中核線使用光流從匹配像素中導(dǎo)出。
最后通過距離閾值化來執(zhí)行動態(tài)分割。經(jīng)過幾次迭代后,動態(tài)像素被移除,僅具有靜態(tài)像素的RGB-D圖像被傳遞到基于點的融合中進行重建。
圖3所示的動態(tài)稠密框架基于的思想是:如果場景中沒有動態(tài)物體,那么第二幀圖像中的每個像素應(yīng)該在其第一幀圖像匹配像素的核線上。 在這種情況下,可以使用給定的相機位姿、光流和內(nèi)在特性進行分割,而不是將第一幀圖像直接投影到第二幀。這種方法也被作者稱為"運動一致性"檢測。
圖5所示是運動一致性的細節(jié)檢測原理。該算法首先獲得匹配的像素對,即每對圖像中的像素直接施加光流矢量到第一幀上,并計算具有匹配像素對的基礎(chǔ)矩陣。 然后,再計算每個像素的對應(yīng)核線基本矩陣和像素的位置。當(dāng)?shù)诙衅ヅ湎袼嘏c它的核線大于閾值時,它被分類作為動態(tài)像素。
圖5 運動一致性檢測的算法原理
3.2 迭代和融合
在RGB-D圖像中僅剩下靜態(tài)像素后,作者迭代地將其傳遞回TartanVO進行改進光流估計,從而獲得更精確的相機姿態(tài)。理想情況下,通過足夠的迭代,分割掩模將移除與動態(tài)對象相關(guān)聯(lián)的所有像素,并且僅在圖像中留下靜態(tài)背景。 同時作者發(fā)現(xiàn),即使使用粗糙的掩模,仍然可以提高TartanVO的ATE。另外,如果粗掩模允許一些動態(tài)像素進入最終重建,那么它們將很快從地圖中移除。
經(jīng)過固定次數(shù)的迭代后,將去除了大多數(shù)動態(tài)像素的細化圖像對與其對應(yīng)的深度對一起進行融合。數(shù)據(jù)融合首先將輸入深度圖中的每個點與全局圖中的點集投影關(guān)聯(lián),使用的方法是將深度圖渲染為索引圖。 如果找到相應(yīng)的點,則使用加權(quán)平均將最可靠的點與新點估計合并。
如果沒有找到可靠的對應(yīng)點,則估計的新點作為不穩(wěn)定點被添加到全局圖中。
隨著時間的推移,清理全局地圖,以去除由于可見性和時間約束導(dǎo)致的異常值,這也確保了來自分割的假陽性點將隨著時間的推移而被丟棄。因為作者利用稠密的光流并在每個像素上分割圖像而不進行下采樣,所以算法可以重建稠密的RGB-D全局圖。
4. 實驗
作者使用TUM數(shù)據(jù)集中的freiburg3行走xyz序列,圖6和圖7所示為使用2D場景流的分割結(jié)果。
圖6 基于2D場景流動態(tài)分割向左移動的對象
圖7 基于2D場景流動態(tài)分割向右移動的對象
隨后,作者迭代地將重新渲染的圖像對傳遞回TartanVO。作者認為這一操作將改進光流估計,并且獲得更精確的相機姿態(tài),如圖8所示是實驗結(jié)果。其中左圖是使用原始TartanVO的絕對軌跡誤差,右圖是使用改進TartanVO的絕對軌跡誤差。實驗結(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 基于點融合的三維重建結(jié)果
此外,為了進行不同方法的對比,作者首先嘗試掩蔽原始圖像以濾除對應(yīng)于3D中的動態(tài)點的像素,然后,在此之上嘗試用在先前圖像中找到的匹配靜態(tài)像素來修補空缺,但降低了精度。與產(chǎn)生0.1248的ATE的TartanVO方法相比,原始掩蔽方法產(chǎn)生了更理想的光流,而修補方法產(chǎn)生因為產(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)運動物體干擾下的靜態(tài)地圖。重要的是,算法已經(jīng)開源,讀者可在開源代碼的基礎(chǔ)上進行二次開發(fā)。
此外,作者也提到了基于該論文的幾個重要的研究方向:
(1) 引入自適應(yīng)閾值機制,通過利用流、姿態(tài)和地圖等來為分割提供更一致的閾值。
(2) 在預(yù)訓(xùn)練的基于學(xué)習(xí)的視覺里程計中,使用對相機姿態(tài)和光流的BA來補償大范圍運動感知。
(3) 使用動態(tài)感知迭代最近點(ICP)算法來代替TartanVO中的姿態(tài)網(wǎng)絡(luò)。
(4) 在更多樣化的數(shù)據(jù)集上進行測試和迭代,以提供更好的魯棒性。
審核編輯:劉清
-
RGB
+關(guān)注
關(guān)注
4文章
798瀏覽量
58510 -
SLAM
+關(guān)注
關(guān)注
23文章
424瀏覽量
31833 -
ATE
+關(guān)注
關(guān)注
5文章
124瀏覽量
26628 -
ICP
+關(guān)注
關(guān)注
0文章
70瀏覽量
12788
原文標(biāo)題:基于學(xué)習(xí)視覺里程計的動態(tài)稠密RGB-D SLAM
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論