如需進一步精通激光-視覺-IMU-GPS融合SLAM算法,也可以關注我們下面的課程:
本文提出了Co-SLAM,一種基于混合表示的神經RGB-D SLAM系統,可以實時執行魯棒的相機跟蹤和高保真的表面重建。Co-SLAM將場景表示為多分辨率哈希網格,以利用其高收斂速度和表示高頻局部特征的能力。此外,Co-SLAM結合了one-blob編碼,以促進未觀察區域的表面一致性和補全。這種聯合參數坐標編碼通過將快速收斂和表面孔填充這兩方面的優點結合起來,實現了實時性和魯棒性。此外,我們的射線采樣策略允許Co-SLAM在所有關鍵幀上執行全局BA,而不是像其它的神經SLAM方法那樣需要關鍵幀選擇來維持少量活動關鍵幀。實驗結果表明,Co-SLAM以10-17Hz的頻率運行,并在各種數據集和基準(ScanNet, TUM, Replica, Synthetic RGBD)中獲得了最先進的場景重建結果,并具有競爭力的跟蹤性能。
1 引言
聯合相機實時跟蹤和基于RGB-D傳感器的稠密表面重建是幾十年來計算機視覺和機器人技術的核心問題。傳統的SLAM解決方案可以穩健地跟蹤相機的位置,同時將深度和/或顏色測量融合到一個單一的高保真地圖中。然而,它們依賴于手工的損失項,而沒有利用數據驅動的先驗。
最近,人們的注意力轉向了基于學習的模型,這種模型可以利用神經網絡架構的能力,直接從數據中學習平滑性和一致性先驗?;谧鴺说?a target="_blank">網絡可能已經成為最流行的表示方式,因為它們可以通過訓練來預測場景中任何點的幾何和外觀屬性,直接從圖像中進行自監督。最著名的例子是神經輻射場(Neural Radiance Fields, NeRF),它在神經網絡的權重中編碼場景密度和顏色。與體繪制相結合,NeRF被訓練為重新合成輸入圖像,并具有顯著的泛化到附近未見過的視圖的能力。
基于坐標的網絡將輸入點坐標嵌入到高維空間,使用正弦或其他頻率嵌入,使它們能夠捕捉高頻細節,這對高保真幾何重建至關重要。平滑性和一致性先驗被編碼在MLP權值中,為序列跟蹤和建圖提供了良好的選擇。然而,基于MLP的方法的缺點是需要很長的訓練時間(有時是幾個小時)來學習單個場景。因此,最近建立在具有頻率嵌入的坐標網絡上的具有實時能力的SLAM系統,如iMAP,需要采用稀疏射線采樣和減少跟蹤迭代的策略來維持交互操作。這是以在重建過程中丟失細節(被過度平滑)和在相機跟蹤中潛在的誤差為代價的。
可優化的特征網格,也被稱為參數嵌入,最近已經成為單片MLP的一種強大的場景表示替代方案,因為它們能夠表示高保真的局部特征,并且具有極快的收斂速度(快幾個數量級)。最近的研究集中在這些參數嵌入的稀疏替代方案上,如八叉樹、三平面、哈希網格或稀疏體素網格,以提高稠密網格的存儲效率。雖然這些表示可以快速訓練,非常適合實時操作,但它們從根本上缺乏MLP固有的平滑性和一致性先驗,在沒有觀察到的區域難以填補孔洞。NICE-SLAM是一個基于多分辨率特征網格的SLAM方法的最新例子。雖然它沒有過于平滑,能捕捉到局部細節(如圖2所示),但它不能進行補孔,補孔可能會導致相機位姿估計出現漂移。
圖2:不同編碼對補全的影響?;谧鴺说木幋a實現了空洞填充,但需要較長的訓練時間。參數編碼允許快速訓練,但無法補全未觀察到的區域。聯合坐標和參數編碼(Ours)允許流暢地補全場景和快速訓練。NICE-SLAM[42]使用稠密參數編碼。
本文的主要貢獻如下:
為輸入點設計一個聯合坐標和稀疏網格編碼,將兩者的優點結合到實時SLAM框架中。一方面,坐標編碼提供的平滑性和一致性先驗(本文使用one-blob編碼),另一方面,稀疏特征編碼(本文使用哈希網格)的優化速度和局部細節,能得到更魯棒的相機跟蹤和高保真建圖,更好的補全和孔洞填充。
到目前為止,所有的神經SLAM系統都使用從所選關鍵幀的一個非常小的子集中采樣的光線來執行BA。將優化限制在非常少的視點數量會降低相機跟蹤的魯棒性,并由于需要關鍵幀選擇策略而增加計算量。相反,Co-SLAM執行全局BA,從所有過去的關鍵幀中采樣光線,這在位姿估計的魯棒性和性能上得到了重要的提高。此外,我們還證明了我們的BA優化需要NICE-SLAM的一小部分迭代就能獲得類似的誤差。在實踐中,Co-SLAM在保持實時性能的前提下,實現了相機跟蹤和三維重建的SOTA性能。
Co-SLAM在Replica和Synthetic RGB-D數據集上運行速度為15-17Hz,在ScanNet和TUM場景上運行速度為12-13Hz,比NICE-SLAM (0.1-1Hz)和iMAP快。我們對各種數據集(Replica,Synthetic RGBD,ScanNet,TUM)進行了廣泛的評估,在重建方面我們優于NICE-SLAM和iMAP,實現了更好的或至少相當的跟蹤精度。
2 方法
圖3:Co-SLAM概覽。1)場景表示: 使用新的聯合坐標+參數編碼,輸入坐標通過兩個淺MLP映射到RGB和SDF值。2)跟蹤: 通過最小化損失來優化每幀相機的位姿。3)建圖: 用從所有幀采樣的射線進行全局BA,聯合優化場景表示和相機位姿。
圖3為Co-SLAM的概覽。給定已知相機內參的輸入RGB-D流,通過聯合優化攝像機姿態和神經場景表示,進行稠密建圖和跟蹤。具體來說,我們的隱式表示將世界坐標映射為顏色和截斷符號距離(TSDF) 值:
與大多數SLAM系統類似,該過程分為跟蹤和建圖。
通過在第一幀上運行幾個訓練迭代來執行初始化。
對于后續的每一幀,首先優化相機位姿,并使用簡單的恒速運動模型進行初始化。然后對一小部分像素/光線進行采樣,并將其復制到全局像素集。
每次建圖迭代中,對從全局像素集隨機采樣的一組像素執行全局BA,以聯合優化場景表示和所有相機位姿。
2.1 聯合坐標和參數編碼
由于MLP固有的一致性和光滑性,基于坐標的表示法實現了高保真場景重建。然而,當這些方法在順序設置中進行優化時,往往會遭遇緩慢的收斂和災難性的遺忘。相反,基于參數編碼的方法提高了計算效率,但在空洞填充和光滑性方面存在不足。由于速度和一致性對于真實世界的SLAM系統來說都是至關重要的,我們提出了一種結合了兩者的優點的聯合坐標和參數編碼:采用坐標編碼來表示場景,而使用稀疏參數編碼來加速訓練。
具體地,使用One-blob編碼[16],而不是將空間坐標嵌入多個頻帶。場景表示采用基于多分辨率哈希的特征柵格[15],每個層次的空間分辨率在最粗分辨率和最細分辨率之間逐級設置。通過三線性插值法查詢每個采樣點處的特征向量。幾何解碼器輸出預測的SDF值和特征向量:
最后,顏色MLP預測RGB值:
這里的是可學習的參數。在基于哈希的多分辨率特征網格表示中加入One-blob編碼,可實現快速收斂、高效的內存使用和在線SLAM所需的空洞填充。
2.2 深度和顏色渲染
和iMAP, NICE-SLAM一樣,我們通過沿采樣光線積分預測值來渲染深度和顏色。具體地說,給定相機原點和光線方向,我們均勻采樣個點,深度值為和預測顏色, 并將顏色和深度渲染為
其中,是沿光線計算的權重。
需要轉換函數來將預測的SDF 轉換為權重。本文不采用NeuS中提出的渲染方程,而是遵循文獻[1]中簡單的鐘形模型,通過將兩個Sigmoid函數相乘來直接計算權重:
其中,是截斷距離。
深度引導的采樣:對于沿每條光線的采樣,我們觀察到重要性采樣沒有顯示出顯著的改進,同時減慢了跟蹤和建圖的速度。相反,我們使用深度引導的采樣:除了在和邊界之間均勻采樣的點外,對于具有有效深度測量的光線,進一步在范圍內均勻采樣個近表面點,其中是小的偏移量。
2.3 跟蹤與BA
目標函數:跟蹤和BA是通過最小化關于可學習參數和相機參數的目標函數進行的。顏色和深度的渲染損失是渲染結果與觀測的2范數誤差:
其中,是具有有效深度測量的射線集,是圖像平面上的相應像素。
為了獲得精確、平滑的細節幾何重建,我們還應用了近似SDF和特征平滑損失。
具體地說,對于截斷區域內的樣本,即處的點,我們使用采樣點與其觀測深度值之間的距離作為用于監督的真實SDF值的近似值:
對于遠離曲面的點(),我們應用自由空間損失,強制SDF預測為截斷距離:
為了防止因未觀察到的自由空間區域中的哈希沖突而引起噪聲重建,我們對插值的特征執行額外的正則化:
其中表示哈希網格上沿三個維度的相鄰采樣頂點之間的特征度量差。由于在整個特征網格上進行正則化對于實時建圖在計算上是不可行的,所以我們在每次迭代中只在一個小的隨機區域執行它。
相機跟蹤:在每一幀跟蹤相機到世界的變換矩陣。當新的幀到來時,首先使用恒速假設來初始化當前幀的位姿:
然后,我們選擇當前幀內的個像素,并通過最小化相對于相機參數的目標函數來迭代地優化位姿。
BA:在神經SLAM中,BA通常包括關鍵幀選擇以及相機位姿和場景表示的聯合優化。傳統的稠密視覺SLAM方法需要保存關鍵幀(KF)圖像,因為損失是在所有像素上稠密地構建的。相比之下,正如iMAP首次展示的那樣,神經SLAM的優勢是BA可以處理稀疏的采樣射線集。這是因為使用神經網絡將場景表示為隱式場。然而,iMAP和NICE-SLAM沒有充分利用這一點,它們仍然存儲遵循傳統SLAM范式的完整關鍵幀圖像,并依賴于關鍵幀選擇(例如信息增益、視覺重疊)來對一小部分關鍵幀(通常少于10個)執行聯合優化。
Co-SLAM更進了一步,不再需要存儲完整的關鍵幀圖像或選擇關鍵幀。相反,我們只存儲像素的子集(約5%)來表示每個關鍵幀。這使我們能夠更頻繁地插入新關鍵幀,并維護更大的關鍵幀數據庫。對于聯合優化,我們從全局關鍵幀列表中隨機采樣總數為的光線,以優化場景表示和相機位姿。聯合優化是以交替的方式執行的。具體地說,我們首先對場景表示進行步優化,并使用相機參數{xi_t}上的累積梯度更新相機位姿。由于每個相機位姿只使用6個參數,因此該方法可以在幾乎不增加梯度積累的額外計算量的情況下提高相機位姿優化的魯棒性。
3 實驗
3.1 實驗設定
數據集:我們在四個不同的數據集的各種場景上對Co-SLAM進行了評估。在iMAP和NICE-SLAM的基礎上,我們對8個合成場景的重建質量進行了定量評估。我們還對NeuralRGBD的7個合成場景進行了評估,其仿真了有噪聲的深度圖。
對于位姿估計,我們評估了ScanNet的6個場景(真實位姿從BundleFusion獲得)和TUM RGB-D數據集的3個場景(真實位姿由運動捕捉系統提供)的結果。
評價指標:我們使用Depth L1(cm)、Accuracy(cm)、Completion(cm)和Completion ratio(%)來評估重建質量,閾值為5cm。遵循NICE-SLAM,我們刪除了任何相機截錐體之外的未觀察到的區域。此外,我們還執行了額外的網格剔除,以刪除相機錐體內但目標場景外的噪聲點。我們觀察到,加上這種網格剔除策略,所有方法都獲得了性能提升(詳見補充資料)。對于相機跟蹤的評估,采用ATE RMSE(cm)。
基線:我們考慮iMAP和NICE-SLAM作為衡量重建質量和相機跟蹤的主要基準。為了進行公平的比較,使用與Co-SLAM相同的網格剔除策略對iMAP和NICE-SLAM進行了評估。請注意,iMAP表示由NICE-SLAM作者發布的iMAP的重新實現,它比原始實現慢得多。為了研究真實數據集上精度和幀率之間的權衡,報告了我們方法的兩個版本的結果:Ours指的是我們提出的方法(實現實時操作),而Ours表明我們的方法運行了兩倍的跟蹤迭代。
實現細節:我們在配備3.60 GHz Intel Core i7-12700K CPU和NVIDIA RTX 3090ti GPU的臺式PC上運行Co-SLAM。對于默認設置(Ours)在Replica數據集上以17FPS運行的實驗,我們使用像素,10次迭代進行跟蹤,并使用每5幀5%的像素進行全局BA。我們沿每條相機光線采樣個規則點和個深度點,cm。有關所有數據集的更多具體設置,請參閱補充資料。
3.2 跟蹤與重建評估
Replica數據集
本文的方法實現了更快更好的重建結果。iMAP在未觀察到的區域實現了看似合理的補全,但結果過于平滑,而NICE-SLAM保留了更多的重建細節,但結果包含一些偽影(例如床邊的地板、椅子的靠背)。Co-SLAM方法成功地保留了這兩種方法的優點,實現了一致的補全和高保真的重建結果
NeuralRGBD中的Synthetic RGBD數據集:包含許多薄結構,并仿真了實際深度傳感器測量中存在的噪聲。我們的方法明顯優于基線方法(見表1),同時仍在實時運行(15FPS)。
總體而言,Co-SLAM可以捕捉到精細的細節(例如酒瓶、椅子腿等)并產生完整而流暢的重建。NICE-SLAM產生的重建細節較少且噪音較大,并且無法執行空洞填充,而iMAP在某些情況下跟蹤丟失了。
ScanNet數據集:在來自ScanNet的6個真實序列上評估了Co-SLAM的相機跟蹤精度。絕對軌跡誤差(ATE)是通過比較預測軌跡和真實軌跡(由BundleFusion生成)獲得的。
表3表明,與NICE-SLAM相比,在運行頻率為6?12 Hz時,我們的方法獲得了更好的跟蹤結果,跟蹤和建圖迭代次數更少(見表2)。
圖6顯示,Co-SLAM以更平滑的結果和更精細的細節實現了更好的重建質量(例如,自行車)。
TUM數據集:進一步評估了在TUM數據集上的跟蹤精度。
如表4所示,我們的方法在13FPS下獲得了具有競爭力的跟蹤性能。通過增加跟蹤迭代次數(Ours),我們的方法在神經SLAM方法中獲得了最好的跟蹤性能,速度降為6.7Hz。雖然Co-SLAM算法仍然不能超越傳統的SLAM方法,但它縮小了神經網絡和傳統方法之間的跟蹤性能差距,同時提高了重建的保真度和完整性。
3.3 性能分析
運行時間和內存分析:在我們的默認設置(Ours)下,Co-SLAM可以在配備3.60 GHz Intel Core i7-12700K CPU和NVIDIA RTX 3090ti GPU的臺式PC上以15Hz以上的頻率運行。在更有挑戰性的場景例如ScanNet和TUM數據集上,Co-SLAM仍可實現5?13Hz的運行時間。
圖7展示了重建質量關于內存使用的關系。由于稀疏的參數編碼,我們的方法比NICE-SLAM需要顯著更少的內存,同時能實時運行并獲得準確的重建結果。令人驚訝的是,我們發現,在進一步壓縮內存占用(增加哈希沖突的可能性)的情況下,Co-SLAM的性能仍然優于iMAP,這表明我們的聯合編碼提高了單一編碼的表示能力。請注意,此圖為了說明,我們在整個哈希編碼中使用相同的空間分辨率。理想情況下,可以進一步降低空間分辨率以最小化哈希沖突并獲得更好的重建質量。
場景補全:圖2展示了在小場景上使用不同編碼策略的空洞填充的圖示?;谧鴺司幋a的方法以較長的訓練時間為代價來實現看似合理的補全,而基于參數編碼的方法由于其局部性而在空洞填充方面失敗。通過應用我們新的聯合編碼,我們觀察到Co-SLAM可以實現平滑的空洞填充且保持精細的結構。
3.4 消融實驗
聯合坐標和參數編碼的有效性:
我們的完整模型比使用單一編碼(僅使用one-blob或僅使用哈希編碼)具有更高的準確率和更好的完整性。此外,圖7說明當壓縮了哈希查找表的大小時,具有完整編碼的模型比只有哈希編碼的模型更魯棒。
全局BA的有效性:
表6顯示了我們的SLAM方法在使用不同BA策略的6個ScanNet場景上的平均ATE:
(w/o BA):純跟蹤;
(LBA):使用來自10個局部關鍵幀的光線的BA,類似于NICE-SLAM策略;
(GBA-10):僅使用從所有過去關鍵幀中隨機選擇的10個關鍵幀的光線的BA;
(GBA):Co-SLAM的全局BA策略。我們觀察到,使用來自少量(10)關鍵幀(LBA和GBA-10)的光線會導致較高的ATE誤差。但是,當從整個序列(GBA-10)而不是局部(LBA)中選擇關鍵幀時,標準差會大大降低。對所有關鍵幀的光線進行采樣(GBA)是整體最佳的策略,即使所有方法對總光線數(2048)進行采樣時也是如此。
4 總結
本文提出了一種稠密實時神經RGB-D SLAM系統Co-SLAM。實驗結果表明,采用坐標和參數聯合編碼與微小MLP作為場景表示,并用全局BA進行訓練,在合理的空洞填充和高效的內存使用下,實現了高保真的建圖和精確的跟蹤。
局限性:Co-SLAM依賴于RGB-D傳感器的輸入,因此對光照變化和不準確的深度測量很敏感。信息引導的像素采樣策略可以進一步減少像素數,提高跟蹤速度,而不是隨機采樣關鍵幀像素。引入回環檢測可能會帶來進一步的改進。
審核編輯 :李倩
-
傳感器
+關注
關注
2552文章
51383瀏覽量
755937 -
算法
+關注
關注
23文章
4629瀏覽量
93212 -
編碼
+關注
關注
6文章
957瀏覽量
54919
原文標題:CVPR2023 | Co-SLAM: 聯合坐標和稀疏參數編碼的神經實時SLAM
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論