2. 摘要
提出了一種基于RGB-D圖像序列的協(xié)同隱式神經(jīng)同步定位與建圖(SLAM)系統(tǒng),該系統(tǒng)由完整的前端和后端模塊組成,包括里程計、回環(huán)檢測、子圖融合和全局優(yōu)化。為了在一個統(tǒng)一的框架中啟用所有這些模塊,我們提出了一種新的基于神經(jīng)點的3D場景表示,其中每個點都保持用于場景編碼的可學習神經(jīng)特征,并且與某個關鍵幀相關聯(lián)。此外,還提出了一種從分布式到集中式的協(xié)作隱式SLAM學習策略,以提高一致性和協(xié)調(diào)性。與傳統(tǒng)的光束法平差一樣,本文還提出了一種新的全局優(yōu)化框架來提高系統(tǒng)精度。在不同數(shù)據(jù)集上的實驗證明了該方法在相機跟蹤和建圖方面的優(yōu)越性。
3. 算法解析
重新理一下思路,NeRF SLAM為啥火?
因為NeRF和SLAM可以相互輔助,SLAM為NeRF訓練提供位姿,NeRF可以重建高清晰度的地圖、做空洞補全、或者用光度損失反過來優(yōu)化位姿。
有什么問題?
個人感覺現(xiàn)在NeRF SLAM有兩個問題,一個是計算量大難以落地,一個是因為做不了回環(huán)和全局優(yōu)化導致定位精度低。
CP-SLAM的核心思想是什么?
傳統(tǒng)的NeRF地圖不好做回環(huán)和優(yōu)化,但是改成基于點的NeRF地圖,就可以像傳統(tǒng)SLAM那樣去優(yōu)化了!
具體是如何實現(xiàn)的?
CP-SLAM本身是一個多機協(xié)同SLAM,輸入是RGB-D數(shù)據(jù)流,每個SLAM系統(tǒng)分別執(zhí)行跟蹤和建圖,最后執(zhí)行子地圖融合。每個SLAM系統(tǒng)都維護一個神經(jīng)點輻射場,借助3個MLP(特征融合、顏色場、占用場)來渲染深度圖和顏色圖。通過計算光度和幾何損失來優(yōu)化輻射場和相機位姿。同時每個單獨的SLAM不斷地用NetVLAD提取關鍵幀描述子,并發(fā)送到描述子池(有點像ORB-SLAM的關鍵幀數(shù)據(jù)庫),中央服務器檢測到回環(huán)以后融合子地圖,并執(zhí)行全局BA。最后再做一個以關鍵幀為中心的地圖優(yōu)化。
下面來逐個聊聊每個子模塊的具體原理。
這個神經(jīng)點是啥?
神經(jīng)點輻射場來源于CVPR 2022 oral的文章Point-NeRF,用神經(jīng)點表示三維場景。其實就是讓空間中的點同時存儲位置信息(xyz)和局部場景信息(單層CNN提取的神經(jīng)特征向量,CP-SLAM里是32維),原始Point-NeRF的神經(jīng)點里還存儲了[0, 1]范圍的置信度,表示這個點有多大概率離真實物體很近。
當然,使用神經(jīng)點輻射場也有優(yōu)點有缺點:
優(yōu)點:執(zhí)行回環(huán)檢測和BA優(yōu)化時,3D點比原始NeRF場景更好調(diào)整,所以就很容易引入回環(huán)和局部地圖優(yōu)化。
缺點:由于神經(jīng)點分布在觀察對象的表面周圍,因此未見區(qū)域的空洞填補能力弱于特征網(wǎng)格方法。
位姿跟蹤和NeRF建圖如何進行?
輻射場采樣上也用到了一個trick,就是盡量讓采樣點貼近物體表面。對于深度有效的點,分別從[0.95D, 1.05D]和[0.95Dmin, 1.05Dmax]區(qū)間內(nèi)均勻采樣,D表示點的深度值,Dmin和Dmax表示整個深度圖的最小最大深度。
對每個采樣點xi,首先檢索它半徑r范圍內(nèi)的K個鄰域點,用一個MLP(框圖中的C)分別處理這K個點,使每個點的特征向量都融合了跟采樣點的距離信息(對應f~k,x~):
再用一個MLP(框圖中的U)來學習采樣點xi的RGB信息,這里就需要用到上一步K個點的特征向量了:
最后還需要用一個MLP(框圖中的G)來學習采樣點xi的占用概率,這里還是用到上上步計算的K個特征向量,當然如果沒有鄰域點那占用肯定就是0了:
這兩步預測的占用和顏色信息實際上表示了射線中止的概率α,再加上深度值z就可以渲染得到當前視角的深度圖和RGB圖:
然后就可以使用深度圖和RGB圖計算幾何損失和光度損失來優(yōu)化位姿、點特征向量、還有3個MLP:
這里還有幾個需要注意的點:
1、整個序列的第一幀需要采樣很多的點來初始化,優(yōu)化步驟達到3000~5000次;
2、位姿表示成四元數(shù)和平移格式,當前幀位姿的初始值設置為上一幀的位姿,優(yōu)化時要固定神經(jīng)特征向量和3個MLP權重;
3、優(yōu)化位姿沒有用到光度損失,作者認為RGB圖是一個高度非凸問題。
基于學習的回環(huán)檢測如何實現(xiàn)?
這部分主要是用于融合多個SLAM系統(tǒng)分別建立的子地圖,并減少位姿的累計漂移。首先對每個關鍵幀用預訓練的NetVLAD提取描述子,并把描述子扔到池子里(類似ORB-SLAM的關鍵幀數(shù)據(jù)庫),然后用余弦相似性來檢測回環(huán)。
局部優(yōu)化很吃初值,如果兩幀運動太快的話,就很容易陷入局部最優(yōu),所以CP-SLAM采用了一個由粗到精的回環(huán)檢測策略。如果相似性超過λfine的話直接執(zhí)行回環(huán)優(yōu)化和子地圖融合,如果低于λfine但高于λcoarse的話就只做一個位姿圖優(yōu)化。當然子地圖融合之后肯定有大量的冗余點,還需要做一步非極大值抑制(網(wǎng)格過濾)。
SLAM協(xié)同如何實現(xiàn)?
CP-SLAM本身就是一個協(xié)同SLAM,協(xié)同部分是設計了一個兩階段(從分布式到集中式)的MLP訓練策略,來提高協(xié)作一致性。分布式階段就是每個SLAM單獨做跟蹤和優(yōu)化,執(zhí)行回環(huán)和子地圖融合以后就進入集中式階段,注意集中式階段需要一個中心服務器來做子圖和優(yōu)化的全局管理。
這個階段用的是聯(lián)合學習,也就是以共享的方式訓練單個網(wǎng)絡。在子地圖融合的同時,對每組MLP進行平均處理,并對所有關鍵幀上的平均MLP進行微調(diào),隨后將共享MLP轉(zhuǎn)移到每個SLAM做訓練,并且平均每個SLAM權重作為共享MLP的最終優(yōu)化結果。
最后簡單說一下位姿圖優(yōu)化
這個模塊分為兩部分,一部分是維護子地圖的共視圖,一部分是是基于幀的地圖優(yōu)化。在執(zhí)行子地圖融合后做全局優(yōu)化,位姿圖中每幀的位姿是頂點,序列相對位姿和回環(huán)相對位姿是邊,優(yōu)化還是用的L-M算法。
為了方便優(yōu)化3D點云位置,作者還做了一個trick:每個3D點都與一個關鍵幀相關聯(lián)。
4. 實驗結果
實驗這一塊分別對比了單機SLAM和協(xié)作SLAM模式,單機SLAM對比在Replica數(shù)據(jù)集進行,對比傳統(tǒng)SLAM(ORB-SLAM3)和NeRF SLAM(NICE-SLAM和Vox-Fusion),協(xié)同SLAM對比的傳統(tǒng)SLAM方案(CCM-SLAM、Swarm-SLAM、ORB-SLAM3)。CP-SLAM的運行環(huán)境是一塊3090,如果需要做協(xié)同的話,就再需要一塊3090做為中心服務器。
雙機協(xié)作精度的定量對比,注意ORB-SLAM3本身不是協(xié)作SLAM,所以作者的實驗方法是融合數(shù)據(jù)集,然后用ORB-SLAM3的多地圖系統(tǒng)來執(zhí)行地圖融合。
4個場景上CP-SLAM和CCM-SLAM的協(xié)作實驗軌跡對比,可以發(fā)現(xiàn)CP-SLAM的地圖融合效果還是比較好的。
單機SLAM的精度對比,這個就說明CP-SLAM的精度超越ORB-SLAM3了。當然如果不加入回環(huán)的話,CP-SLAM精度還是不夠,這一點上說明限制NeRF SLAM精度提升的關鍵就在局部地圖優(yōu)化和回環(huán)優(yōu)化。
單機SLAM軌跡的定性對比,對比的NICE-SLAM和Vox-Fusion這兩個NeRF SLAM方案,沒有對比ORB-SLAM3。
TUM數(shù)據(jù)集上精度和魯棒性的定量對比,但對比的還是只有Co-SLAM和ESLAM這兩個NeRF SLAM方案,沒對比ORB-SLAM3。這里也推薦工坊推出的新課程《徹底剖析激光-視覺-IMU-GPS融合SLAM算法:理論推導、代碼講解和實戰(zhàn)》。
NeRF建圖的定量對比,證明三維重建的精度超越了之前的NeRF SLAM方案。
NeRF建圖的定性對比。
神經(jīng)點密度的消融實驗,證明神經(jīng)點不是越多越好,也不是越少越好。
Office-0-loop場景上運行時間和內(nèi)存消耗的定量對比,包括單幀跟蹤時間、建圖時間、MLP大小、整個神經(jīng)場的內(nèi)存大小。NICE-SLAM神經(jīng)場的尺寸超級大,這是因為它為了解決遺忘問題設計的多層特征網(wǎng)格。
地圖優(yōu)化和采樣點融合的消融實驗,還是驗證它們的策略是對的。
5. 總結
本文介紹了浙大最新的工作CP-SLAM,號稱是第一個基于NeRF的協(xié)作SLAM,跟傳統(tǒng)SLAM一樣具備前后端,定位精度和建圖質(zhì)量都有了很大提升??上]有開源。
審核編輯:劉清
-
RGB
+關注
關注
4文章
798瀏覽量
58461 -
CCM
+關注
關注
0文章
144瀏覽量
23970 -
SLAM
+關注
關注
23文章
423瀏覽量
31820 -
MLP
+關注
關注
0文章
57瀏覽量
4241
原文標題:NeurlPS'23 | 第一個協(xié)作神經(jīng)隱式SLAM!(浙大NICE-SLAM團隊最新力作)
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論