vMAP 是一種基于神經場的對象級密集 SLAM 系統,可根據 RGB-D 輸入流實時自動構建對象級場景模型。每個對象都由一個單獨的 MLP 神經場模型表示,無需 3D 先驗即可實現高效、無懈可擊的對象建模。該系統可以在單個場景中優化多達 50 個單獨的對象,與之前的神經場 SLAM 系統相比,可以顯著提高場景級和對象級的重建質量。
摘要
我們提出了 vMAP,一種使用神經場表示的對象級密集 SLAM 系統。每個對象都由一個小型 MLP 表示,無需 3D 先驗即可實現高效、無懈可擊的對象建模。
當 RGB-D 相機在沒有先驗信息的情況下瀏覽場景時,vMAP 會即時檢測對象實例,并將它們動態添加到其地圖中。具體來說,由于矢量化訓練的強大功能,vMAP 可以在單個場景中優化多達 50 個單獨的對象,具有 5Hz 地圖更新的極其高效的訓練速度。與之前的神經場 SLAM 系統相比,我們通過實驗證明了場景級和對象級重建質量的顯著提高。
每個對象都由一個單獨的 MLP 神經場模型表示,所有對象都通過矢量化訓練并行優化。我們不使用 3D 形狀先驗,但 MLP 表示鼓勵對象重建是無懈可擊的和完整的,即使對象在輸入圖像中被部分觀察到或被嚴重遮擋。例如,在 Replica 的這個例子中,請參見相互遮擋的扶手椅、沙發和墊子的單獨重建。
1.介紹
對于機器人和其他交互式視覺應用程序,對象級模型在語義上可以說是最佳的,場景實體以分離的、可組合的方式表示,而且還能有效地將資源集中在環境中的重要內容上
構建對象級建圖系統的關鍵問題是,為了對場景中的對象進行分割、分類和重建,需要了解什么級別的先驗信息。如果沒有可用的 3D 物體先驗,那么通常只能重建物體的直接觀察部分,從而導致孔洞和缺失部分 [4, 46]。先驗對象信息,如 CAD 模型或類別級形狀空間模型,可以從局部視圖估計完整的對象形狀,但僅限于這些模型可用的場景中的對象子集
在本文中,我們提出了一種新方法,適用于沒有可用的 3D 先驗但仍然經常在逼真的實時場景掃描中啟用水密對象重建的情況。我們的系統 vMAP 建立在神經場作為實時場景表示 [31] 顯示的吸引人的屬性的基礎上,具有高效和完整的形狀表示,但現在重建每個對象的單獨微型 MLP 模型。我們工作的關鍵技術貢獻是表明大量獨立的 MLP 對象模型可以在實時操作期間通過矢量化訓練在單個 GPU 上同時有效地優化
我們表明,與在整個場景的單個神經場模型中使用相似數量的權重相比,我們可以通過單獨建模對象來實現更加準確和完整的場景重建。我們的實時系統在計算和內存方面都非常高效,并且我們展示了具有多達 50 個對象的場景可以在多個獨立對象網絡中以每個對象 40KB 的學習參數進行建圖
我們還展示了我們的分離對象表示的靈活性,可以使用新的對象配置重新組合場景。對模擬和真實世界的數據集進行了廣泛的實驗,展示了最先進的場景級和對象級重建性能
2.相關工作
這項工作是在建立實時場景表示的一系列努力之后進行的,這些實時場景表示被分解為明確的剛性對象,并有望實現靈活高效的場景表示,甚至可以表示不斷變化的場景。不同的系統采用不同類型的表示和先驗知識水平,從 CAD 模型 [28],通過類別級形狀模型 [10,11,32,36] 到沒有先驗形狀知識,盡管在這種情況下只有可見部分物體可以被重建 [15, 27, 38]
神經場 SLAM
神經場最近被廣泛用作整個場景的高效、準確和靈活的表示 [16、17、19、22]。為了將這些表示應用于實時 SLAM 系統,iMAP [31] 首次展示了一個簡單的 MLP 網絡,借助 RGB-D 傳感器的深度測量進行增量訓練,可以實時表示房間尺度的 3D 場景。時間。iMAP 的一些最有趣的特性是它傾向于產生無懈可擊的重建,甚至經常似是而非地完成物體未被觀察到的背面。當添加語義輸出通道時,神經場的這些相干特性尤其顯露出來,如在 SemanticNeRF [43] 和 iLabel [44] 中,并且被發現繼承了相干性。為了使隱式表示更具可擴展性和效率,一組隱式 SLAM 系統 [25、35、40、45、48] 將神經場與傳統的體積表示融合在一起。
帶有神經場的對象表示
然而,從這些神經場方法中獲取單個對象表示很困難,因為網絡參數與特定場景區域之間的對應關系很復雜且難以確定。為了解決這個問題,DeRF [23] 在空間上分解了一個場景,并將較小的網絡專用于每個分解的部分。同樣,Kilo-NeRF [24] 將場景分成數千個體積部分,每個部分由一個微型 MLP 表示,并與自定義 CUDA 內核并行訓練它們以加速 NeRF。與 KiloNeRF 不同,vMAP 將場景分解為具有語義意義的對象。
為了表示多個對象,ObjectNeRF [39] 和 ObjSDF [37] 將預先計算的實例掩碼作為可學習對象激活代碼上的附加輸入和條件對象表示。但是這些方法仍然是離線訓練的,并且將對象表示與主場景網絡糾纏在一起,因此它們需要在訓練過程中使用所有對象代碼優化網絡權重,并推斷整個網絡以獲得所需對象的形狀。這與單獨建模對象的 vMAP 形成對比,并且能夠停止和恢復對任何對象的訓練而沒有任何對象間干擾
最近與我們的工作最相似的工作是使用神經域 MLP 的吸引人的特性來表示單個對象。[5] 中的分析明確評估了使用過擬合神經隱式網絡作為圖形的 3D 形狀表示,考慮到它們應該被認真對待。[1] 中的工作進一步推進了這一分析,顯示了對象表示如何受到不同觀察條件的影響,盡管使用混合 Instant NGP 而不是單一的 MLP 表示,因此尚不清楚是否會丟失某些對象的一致性屬性。最后,CodeNeRF 系統 [9] 訓練了一個以可學習對象代碼為條件的 NeRF,再次證明了神經場的吸引人的屬性來表示單個對象
我們在論文中以這項工作為基礎,但首次表明構成整個場景的許多單獨的神經場模型可以在實時系統中同時訓練,從而準確有效地表示多對象場景
3. vMAP:具有矢量化訓練的高效對象建圖系統
3.1.系統總覽
我們首先介紹了我們通過高效矢量化訓練進行對象級建圖的詳細設計(第 3.2 節),然后解釋了我們改進的像素采樣和表面渲染訓練策略(第 3.3 節)。最后,我們展示了如何使用這些學習到的對象模型來重構和渲染新場景(第 3.4 節)。我們的訓練和渲染管道的概述如圖 2 所示
3.2.矢量化對象級建圖
對象初始化和關聯
首先,每個幀都與密集標記的對象掩碼相關聯。這些對象掩碼要么直接在數據集中提供,要么使用現成的 2D 實例分割網絡進行預測。由于那些預測的對象掩碼在不同幀之間沒有時間一致性,我們基于兩個標準在前一幀和當前實時幀之間執行對象關聯:i)語義一致性:當前幀中的對象被預測為與前一幀相同的語義類, ii) 空間一致性:當前幀中的對象在空間上與先前幀中的對象接近,這是通過它們的 3D 對象邊界的平均 IoU 來衡量的。當滿足這兩個標準時,我們假設它們是相同的對象實例并用相同的對象模型表示它們。否則,它們是不同的對象實例,我們初始化一個新的對象模型并將其附加到模型堆棧
圖 2. vMAP 訓練和渲染流水線概覽
對于幀中的每個對象,我們估計其 3D 對象受其 3D 點云的約束,并通過其深度圖和相機姿勢進行參數化。相機跟蹤由現成的跟蹤系統在外部提供,我們發現與聯合優化位姿和幾何形狀相比,它更加準確和穩健。如果我們在新幀中檢測到相同的對象實例,我們將其 3D 點云從先前幀合并到當前幀并重新估計其 3D 對象邊界。因此,這些對象邊界會隨著更多的觀察而動態更新和細化。
對象監督
我們僅對 2D 對象邊界框內的像素應用對象級監督,以實現最大的訓練效率。對于對象掩碼內的那些像素,我們鼓勵對象輻射場被占用,并用深度和顏色損失來監督它們。否則我們鼓勵物體輻射場為空
每個對象實例從其自己獨立的關鍵幀緩沖區中采樣訓練像素。因此,我們可以靈活地停止或恢復任何對象的訓練,而對象之間沒有訓練干擾。
Vectorised Training用多個小型網絡表示神經場可以導致有效的訓練,如先前的工作 [24] 所示。在 vMAP 中,所有對象模型都具有相同的設計,除了我們用稍大的網絡表示的背景對象。因此,我們能夠利用 PyTorch [8] 中高度優化的矢量化操作,將這些小對象模型堆疊在一起進行矢量化訓練。由于多個對象模型是同時批處理和訓練的,而不是按順序進行的,我們優化了可用 GPU 資源的使用。我們表明,矢量化訓練是系統的基本設計元素,可以顯著提高訓練速度,這將在第 4.3 節中進一步討論
3.3.神經隱式建圖
深度引導采樣
僅在 RGB 數據上訓練的神經場不能保證建模準確的對象幾何形狀,因為它們是針對外觀而不是幾何形狀進行優化的。為了獲得幾何上更精確的對象模型,我們受益于 RGB-D 傳感器提供的深度圖,為學習 3D 體積的密度場提供了強大的先驗知識。具體來說,我們沿著每條射線對 Ns 和 Nc 點進行采樣,其中 Ns 點的采樣具有以表面 ts 為中心的正態分布(來自深度圖),具有較小的 dσ 方差,Nc 點在相機 tn(近邊界)和表面 ts,采用分層采樣方法。當深度測量無效時,表面 ts 將替換為遠界 tf 。在數學上,我們有:
我們選擇dσ = 3厘米,這在我們的實施中效果很好。我們觀察到,在靠近表面訓練更多的點有助于引導物體模型迅速專注于準確表示物體幾何。
由于我們更關注3D表面重建而不是2D渲染,因此在網絡輸入中省略了視角方向,并且使用二進制指示器(沒有透明物體)來建模物體的可見性。與UniSURF [21]具有類似的動機,我們將3D點xi的占用概率參數化為oθ (xi) → [0, 1],其中oθ是一個連續的占用場。因此,沿射線r的點xi的終止概率變為Ti = o (xi) Qj
訓練目標 對于每個對象k,我們僅在該對象的2D邊界框內采樣訓練像素,用Rk表示,并且僅針對其2D對象掩碼內的像素優化深度和顏色,用Mk表示。注意,Mk ? Rk始終成立。對象k的深度、顏色和占用損失定義如下:
然后,整體的訓練目標對所有K個對象進行損失累積:
我們選擇損失權重λ1 = 5和λ2 = 10,我們在實驗中發現這些權重效果很好。
3.4. 組合式場景渲染
由于vMAP在純粹的解耦表示空間中表示對象,我們可以通過在其估計的3D對象邊界內查詢來獲得每個3D對象,并輕松地進行操作。對于2D新視圖合成,我們使用Ray-Box Intersection算法[14]來計算每個對象的近距離和遠距離邊界,然后在每條射線上對渲染深度進行排序,實現對遮擋的場景級渲染。這種解耦表示還打開了其他類型的細粒度對象級操作,例如通過在解耦的預訓練特征場上進行條件變形物體的形狀或紋理[20, 42],這被視為一個有趣的未來方向。
4.實驗
我們對各種不同的數據集對vMAP進行了全面評估,其中包括模擬和真實世界的序列,有的有地面真實物體的掩碼和姿態,有的沒有。對于所有數據集,我們在2D和3D場景級別和對象級別的渲染上定性地將我們的系統與之前最先進的SLAM框架進行了比較。我們還在具有地面真實網格的數據集中進行了定量比較。更多結果請參閱我們附帶的補充材料。
4.1. 實驗設置
數據集 我們在Replica [29]、ScanNet [3]和TUM RGB-D [6]上進行了評估。每個數據集包含具有不同質量的對象掩碼、深度和姿態測量的序列。此外,我們還展示了vMAP在由Azure Kinect RGB-D相機記錄的復雜真實世界中的性能。這些數據集的概述如表1所示。
表1. 我們評估的數據集概述
具有完美地面真實信息的數據集代表了我們系統的上限性能。我們預期vMAP在真實世界環境中的性能可以通過與更好的實例分割和姿態估計框架相結合而進一步提高。
實施細節 我們在一臺桌面PC上進行所有實驗,配備3.60 GHz的i7-11700K CPU和一張Nvidia RTX 3090 GPU。我們選擇實例分割檢測器為Detic [47],在開放詞匯LVIS數據集 [7]上進行預訓練,該數據集包含1000多個對象類別。我們選擇姿態估計框架為ORB-SLAM3 [2],因為它具有快速和準確的跟蹤性能。我們使用來自ORB-SLAM3的最新估計不斷更新關鍵幀的姿態。
我們對所有數據集應用了相同的超參數集。我們的對象和背景模型都使用了4層MLP,每層的隱藏大小分別為32(對象)和128(背景)。對于對象/背景,我們選擇每25/50幀一個關鍵幀,每個訓練步驟使用120/1200條射線,每條射線有10個點。場景中的對象數量通常在20到70個之間,其中對象數量最多的Replica和ScanNet場景中,平均每個場景有50個對象。
指標
按照之前的研究[31, 48]的慣例,我們采用準確度(Accuracy)、完整度(Completion)和完整度比率(Completion Ratio)作為3D場景級別重建的度量指標。此外,我們注意到這樣的場景級別指標在重建墻壁和地板等大型物體方面存在嚴重偏差。因此,我們還提供了對象級別的這些指標,通過對每個場景中所有對象的指標進行平均計算。
圖4. 使用vMAP與TSDF-Fusion和ObjSDF進行對象重建的可視化比較。請注意,來自ObjSDF的所有對象重建都需要更長的離線訓練時間。ObjSDF提供的所有對象網格由原始作者提供。
圖5. 在選擇的ScanNet序列中,展示了NICE-SLAM?(左)和vMAP(右)的場景重建可視化結果。對于感興趣的區域進行了放大顯示。NICE-SLAM?使用了地面真實姿態進行重新訓練。
4.2. 場景和物體重建評估
在Replica數據集上的結果
我們在8個Replica場景上進行了實驗,使用[31]提供的渲染軌跡,每個場景包含2000個RGB-D幀。表2顯示了這些Replica室內序列中的平均定量重建結果。對于場景級別的重建,我們與TSDF-Fusion [46]、iMAP [31]和NICE-SLAM [48]進行了比較。為了隔離重建效果,我們還提供了這些基線方法在使用地面真實姿態重新訓練后的結果(標記為?),以便進行公平比較。具體而言,iMAP?被實現為vMAP的一種特殊情況,將整個場景視為一個物體實例。對于物體級別的重建,我們比較了在使用地面真實姿態進行訓練的基線方法。
vMAP通過物體級別的表示具有顯著的優勢,能夠重建微小物體和具有細節的物體。值得注意的是,對于物體級別的完整性,vMAP相比于iMAP和NICE-SLAM實現了50-70%的改進。圖3展示了4個選定的Replica序列的場景重建結果,其中用彩色框標出了感興趣的區域。關于2D新視角渲染的定量結果將在補充材料中提供。
在ScanNet上的結果
為了在更具挑戰性的環境中進行評估,我們在ScanNet [3]上進行了實驗,該數據集由真實場景組成,具有更多噪聲的地面真實深度圖和物體掩碼。我們選擇了ObjSDF [37]選擇的一段ScanNet序列,并與TSDF-Fusion和ObjSDF進行了物體級別的重建比較,與使用地面真實姿態重新訓練的NICE-SLAM進行了場景級別的重建比較。與ObjSDF不同,vMAP和TSDF-Fusion都是在具有深度信息的在線環境中運行,而不是像ObjSDF那樣從預先選擇的沒有深度信息的圖像進行更長時間的離線訓練。如圖4所示,我們可以看到vMAP生成的物體幾何結構比TSDF-Fusion更連貫;而比ObjSDF具有更細致的細節,盡管訓練時間要短得多。并且一致地,如圖5所示,與NICE-SLAM相比,我們可以看到vMAP生成的物體邊界和紋理更加清晰。
在TUM RGB-D上的結果
我們在真實世界中捕獲的TUM RGB-D序列上進行了評估,使用了一個現成的預訓練實例分割網絡[47]預測的物體掩碼和由ORB-SLAM3[2]估計的位姿。由于我們的物體檢測器沒有時空一致性,我們發現同一個物體偶爾會被檢測為兩個不同的實例,這導致了一些重構偽影。例如,圖6中顯示的物體“globe”在某些幀中也被檢測為“balloon”,導致最終物體重構中的“分割”偽影。總體而言,與TSDF-Fusion相比,vMAP仍然可以對場景中大多數物體進行更連貫的重構,并具有逼真的孔洞填充能力。然而,我們承認,由于缺乏普遍的3D先驗知識,我們的系統無法完成完整的視野之外區域(例如椅子的背部)的重構。
雖然我們的工作更注重地圖繪制性能而不是位姿估計,但我們也按照[31,48]報告了Tab. 3中的ATE RMSE,通過聯合優化相機位姿和地圖。我們可以觀察到,由于重構和跟蹤質量通常高度相互依賴,vMAP實現了卓越的性能。然而,與ORB-SLAM相比存在明顯的性能差距。因此,我們直接選擇ORB-SLAM作為我們的外部跟蹤系統,這導致了更快的訓練速度、更清晰的實現和更高的跟蹤質量。
對于實時運行的Azure Kinect RGB-D相機,在桌面場景上展示了vMAP的重構結果。如圖7所示,vMAP能夠生成來自不同類別的一系列逼真的、無缺陷的物體網格。
4.3. 性能分析
在本節中,我們比較了針對vMAP系統的不同訓練策略和架構設計選擇。為了簡單起見,所有實驗都在Replica Room-0序列上進行,使用我們的默認訓練超參數。
內存和運行時間
我們在表4和圖9中將vMAP與iMAP和NICE-SLAM進行了內存使用和運行時間的比較,所有方法都是使用了地面真實姿態進行訓練,并使用各自方法中列出的默認訓練超參數,以進行公平比較。具體而言,我們報告了整個序列的運行時間和每幀訓練的建圖時間,使用完全相同的硬件條件。我們可以看到,vMAP具有高度的內存效率,參數數量少于1M。我們想強調的是,vMAP在重構質量上取得了更好的表現,并且運行速度明顯快于iMAP和NICE-SLAM,分別提高了1.5倍和4倍的訓練速度(約5Hz)。
圖 8. 與使用 for 循環的標準順序操作相比,矢量化操作能夠實現極快的訓練速度。
向量化與順序訓練
我們通過使用向量化和順序操作(for循環)來對訓練速度進行了分析,針對不同數量的對象和不同物體模型的大小。在圖8中,我們可以看到,向量化訓練大大提高了優化速度,尤其是當我們有大量物體時。而且,使用向量化訓練時,即使在訓練多達200個物體時,每個優化步驟也不超過15毫秒。此外,向量化訓練在各種模型大小范圍內也是穩定的,這表明如果需要,我們可以訓練更大尺寸的物體模型,而額外的訓練時間非常小。如預期的那樣,當我們達到硬件的內存限制時,向量化訓練和for循環將最終具有相似的訓練速度。
為了并行訓練多個模型,我們最初嘗試的方法是為每個對象生成一個進程。然而,由于每個進程的CUDA內存開銷,我們只能生成非常有限數量的進程,這嚴重限制了對象的數量。
對象模型容量
由于向量化訓練在對象模型設計方面對訓練速度幾乎沒有影響,我們還研究了不同對象模型大小對對象級重建質量的影響。我們通過改變每個MLP層的隱藏層大小來嘗試不同的對象模型大小。在圖9中,我們可以看到從隱藏層大小為16開始,對象級性能開始飽和,進一步增加模型大小幾乎沒有改善或沒有改善。這表明對象級表示具有高度可壓縮性,并且可以通過很少的參數高效準確地參數化。
圖9. 對象級重建與模型參數(由網絡隱藏大小表示)的比較。vMAP比iMAP更緊湊,性能從隱藏大小為16開始飽和。
堆疊的MLP vs. 共享的MLP
除了通過單個獨立的MLP表示每個對象之外,我們還探索了共享MLP的設計,將多對象建圖視為多任務學習問題[26, 33]。在這種設計中,每個對象還與一個可學習的潛在編碼相關聯,這個潛在編碼被視為網絡的條件輸入,并與網絡權重一起進行聯合優化。盡管我們嘗試了多個多任務學習體系結構[12, 18],但早期實驗(在圖9中標記為vMAP-S)顯示,這種共享的MLP設計在重建質量上略有下降,并且與堆疊的MLP相比,沒有明顯的訓練速度改進,尤其是在采用向量化訓練的情況下,我們發現共享的MLP設計可能導致不良的訓練性質:i)由于網絡權重和所有對象的潛在編碼在共享的表示空間中交織在一起,共享的MLP需要與所有對象的潛在編碼一起進行優化。ii)共享的MLP容量在訓練過程中是固定的,因此表示空間可能不足以處理日益增加的對象數量。這凸顯了解耦的對象表示空間的優勢,這是vMAP系統的一個關鍵設計元素。
5.結論
我們提出了vMAP,一個實時的基于對象級別的地圖生成系統,采用簡單而緊湊的神經隱式表示。通過將3D場景分解為一批小型獨立MLP表示的有意義實例,該系統以高效而靈活的方式建模3D場景,實現場景重組、獨立跟蹤和感興趣對象的持續更新。除了更準確、更緊湊的以對象為中心的3D重建,我們的系統還能夠預測每個對象的合理閉合表面,即使在部分遮擋的情況下也能如此。
局限性和未來工作
我們當前的系統依賴于現成的實例掩碼檢測器,這些實例掩碼不一定具有時空一致性。雖然通過數據關聯和多視圖監督部分減輕了歧義,但合理的全局約束將更好地解決這個問題。由于對象是獨立建模的,動態對象可以持續跟蹤和重建,以支持下游任務,例如機器人操控。為了將我們的系統擴展為單目稠密地圖生成系統,可以進一步整合深度估計網絡或更高效的神經渲染方法。
審核編輯:劉清
-
傳感器
+關注
關注
2550文章
51043瀏覽量
753106 -
機器人
+關注
關注
211文章
28389瀏覽量
206942 -
RGB
+關注
關注
4文章
798瀏覽量
58463 -
CAD
+關注
關注
17文章
1090瀏覽量
72451 -
SLAM
+關注
關注
23文章
423瀏覽量
31824
原文標題:vMAP:用于神經場 SLAM 的矢量化對象建圖
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論