?導讀 本文是VCC馬雪奇同學對論文 SHINE-Mapping: Large-Scale 3D Mapping Using Sparse Hierarchical Implicit Neural Representations[1] 的解讀,該工作來自德國波恩大學攝影測量與機器人實驗室,已被機器人領域的頂級會議ICRA 2023收錄。 項目主頁: https://github.com/PRBonn/SHINE_mapping 該工作提出了一種基于隱式表達的大規模三維建圖的方法,它利用分層八叉樹的結構來存儲可學習的局部特征,并通過共享的淺層MLP將局部特征轉換為有符號距離場。相比于以往的工作,該方法能夠以更小的資源消耗,重建出更準確、更完整的大規模場景。 注:本文圖片與視頻均來自原論文與其項目主頁。
I 引言 對移動機器人而言,在大規模的室外場景中進行定位和導航是一項常見的任務。因此,一個精確的三維環境地圖變得尤為重要。重建的三維場景地圖除了要足夠精確,還應該盡可能地減少內存消耗。而目前的建圖方法往往采用空間網格來表示三維地圖[2][3][4],這種方法很難同時滿足精確建圖和減少內存的要求。 最近,基于隱式神經網絡的表示方法在精確重建網格的同時,還能保持低內存消耗的要求。不過,這類方法通常應用于RGB-D數據構建的三維場景[5][6][7],在LiDAR數據方面應用的不多。此外,這類方法只適用于小型場景,很難應用于大規模的室外場景中。 本次導讀論文從Takikawa等人[8] 的工作中得到啟發,通過構建稀疏的分層隱式神經網絡表示,完成了對大規模場景的增量式重建。該方法利用八叉樹的稀疏數據結構來增量式地存儲學習到的局部特征,并基于一個淺層的MLP將學習到的局部特征轉換為有符號距離場。除此之外,該工作還設計了一個二值交叉熵損失函數,能夠高效地實現局部特征優化。并且,該論文采用正則化的方法對特征更新進行約束,有效地緩解了在大規模場景建圖過程中遇到的災難性遺忘問題。實驗結果表明: (1) 在密集點云采樣區域,該方法的重建精度優于基于TSDF的方法[4][9] 以及基于體積渲染的隱式神經映射方法[7]; (2) 在稀疏點云采樣區域,該方法的重建完整度優于非學習的方法[12]; (3) 相比于基于TSDF的方法,該方法重建的場景內存消耗更小。
II 技術貢獻
本工作主要貢獻如下:
提出了一種新的基于稀疏分層八叉樹的大規模場景表示方法。該方法增量式地將學習到的局部特征向量存儲在八叉樹中,并通過一個淺層的神經網絡將學習到的局部特征轉換為有符號距離值;
設計了一種二值交叉損失函數,能夠實現快速且魯棒的局部特征值優化;
通過對特征進行正則化,有效避免了災難性遺忘問題對大規模場景建圖的影響。
III 方法介紹 SHINE-Mapping以激光雷達點云作為輸入,利用稀疏分層八叉樹以及全局共享的MLP解碼器來隱式地表示連續空間中的有符號距離場。該方法以直接測量的點云作為監督,通過在線優化MLP解碼器輸出的有符號距離值來捕捉局部場景中的幾何信息。最后,該方法利用Marching Cubes[10]將有符號距離場轉換為顯式的網格信息。 隱式神經地圖表示 首先,SHINE-Mapping將三維空間中的局部特征存儲在稀疏分層八叉樹中,實現了隱式地圖表示,有效地減少了建圖過程中的內存開銷。其次,該方法將八叉樹中存儲的多層局部特征進行求和,并送入到MLP中進行解碼,從而得到三維空間中的有符號距離場。 此外,為了能夠快速查找局部空間中的特征信息,SHINE-Mapping將八叉樹中每一層特征信息存儲在一個哈希表中,并通過獨特的莫頓碼,將多維數據映射到一維。這樣的設計使得該方法能夠輕松地擴展地圖,而無需事先分配內存,從而有效地提升了建圖速度。
圖1 SHINE-Mapping整體重建過程 圖1為SHINE-Mapping重建隱式表示地圖的整體過程。為了便于理解,上圖中僅描述了兩個層級的特征,綠色和藍色。該方法的流程為:對于任意的查詢點首先從最底層(第0層)開始,對的空間位置進行三線性插值,從而得到第0層的特征。然后以此類推,獲得第1層的特征信息。接著,該方法通過對多層的特征信息進行求和,得到合并后的特征,并將合并后的特征送入到MLP中,從而獲得位置點的有符號距離值。由于整個過程是可微的,因此可以通過反向傳播的方式對特征向量和MLP參數進行聯合優化。 訓練與損失函數 因為LiDAR能夠提供準確的三維空間測距結果,因此該方法直接以LiDAR作為真值,以二值交叉熵作為損失函數來對特征向量和MLP參數進行監督訓練。除此之外,由于該方法的網絡輸出是有符號距離值,為了能夠得到準確的輸出結果,該方法在損失函數中添加了一個Eikonal項[11]: 其中為網絡模型的輸出,為網絡模型的參數,為網絡模型的輸入。 得到的損失函數如下:其中,為超參數,其表示的權重。 增量式重建 在增量式重建工程中,由于每次重建只聚焦于當前的局部區域,忽略了之前重建區域的信息,往往會導致最終的全局重建性能下降。為了避免這種問題對重建結果的影響SHINE-Mapping在損失函數中添加了正則化項用于約束參數更新:其中,為權重,表示先前訓練數據的Loss對于參數變化的敏感性。為當前的參數值,為之前數據訓練收斂之后的參數值。增量式重建的損失函數如下:其中,為超參數,表示的權重。 IV 部分結果展示
接下來我們首先以虛擬場景數據集MaiCity dataset為例,展示SHINE-Mapping與之前方法 Voxblox、VDBFusion、Puma[12] 以及添加可微渲染 (Differentiable Rendering: DR) 的SHINE-Mapping的重建結果對比。第一行展示的是重建后的網格結果,其中,黑色線框部分為街道兩旁的“樹”;第二行展示的是重建結果的誤差圖,從藍色到紅色的顏色圖表示從-5cm到5cm的有符號重建誤差。
圖2 在MaiCity數據集上,不同方法的重建結果對比
表1為不同方法在MaiCity數據集上的重建質量評價結果??梢钥闯?,SHINE-Mapping與先前的大規模室外場景建圖方法相比,在完整性誤差,準確性誤差、Chamfer-L1誤差、完整度、F-score上均表現 SOTA。
表1 不同方法在MaiCity數據集上的重建質量對比
圖3 在MaiCity數據集上,SHINE-Mapping增量式重建過程
接下來是SHINE-Mapping在真實場景數據集Newer College dataset上的重建結果。第一行展示的是不同方法重建的Newer College網格結果,黑色線框部分為“樹”;第二行展示的是重建結果的誤差圖,從藍色到紅色的顏色圖表示從-50cm到50cm的有符號重建誤差。
圖4 在Newer College數據集上,不同方法的重建結果對比
?圖5 在Newer College數據集上,SHINE-Mapping的重建結果
表2為不同方法在Newer College dataset上的重建質量評價結果。可以看到,在真實場景數據集上,相比于其他方法,SHINE-Mapping的重建質量也是最好的。
表2 不同方法在Newer College數據集上的重建質量對比
下圖描述了在MaiCity dataset與Newer College dataset兩個數據集實驗中,內存消耗與建圖質量之間的關系,地圖的分辨率從100cm到10cm。從對比結果可以看出,SHINE-Mapping方法可以使用更小的內存資源來重建出質量更高的室外地圖。
圖6 不同方法在內存效率與重建誤差上的表現
下圖為SHINE-Mapping在KITTI dataset上的重建過程??梢钥吹剑词故谴笠幠5膶嶋H復雜街道場景,該方法依然可以精確地重建出道路的真實樣貌。
圖7 SHINE-Mapping在KITTI數據集上的重建過程
V 總結與展望 本次導讀的論文提出了一種基于LiDAR的大規模三維場景建圖方法。與基于TSDF的方法不同,SHINE-Mapping方法使用基于八叉樹的隱式表示法,將學習到的隱式特征存儲在哈希表中,大大縮短了處理時間。其次,該方法將學習到的特征通過一個MLP轉換為有符號距離值,并通過Marching Cubes進行顯式化網格重建。除此之外,該方法通過對損失函數進行調整,并添加相應的正則化,避免了增量式重建過程中遇到的災難性遺忘問題。實驗結果表明,該方法能夠以較小的內存重建出更為準確和完整的三維地圖。 VI 思考與討論 Q: SHINE-Mapping方法將局部特征信息存放入八叉樹中時,使用了其中的幾層呢?又是如何實現快速查找對應的特征信息的呢? A: 如下圖所示,假設八叉樹為11層,SHINE-Mapping方法將最低的三層作為局部特征存放層,即第0,1,2層(分別對應圖中的紅色、綠色、藍色方格)。為了能夠加速建圖速度,SHINE-Mapping將八叉樹中第 0,1,2層的局部特征信息存儲在哈希表中,并且每一層對應一個哈希表。當需要查詢指定點的局部特征時,使用哈希表可以很快得到相應的特征信息。
圖8SHINE-Mapping對空間進行網格劃分,并得到局部特征信息 Q: 在增量式重建過程中,是否可以使用預訓練的MLP作為解碼器來得到相應的有符號距離值? A: 是的,雖然本文提出的方法可以在訓練過程中聯合優化八叉樹中的局部特征信息以及MLP中的參數,但是在實際增量式重建過程中,作者采用的是預訓練的MLP來得到對應位置的有符號距離值,一方面這樣可以加快重建的速度,另外一方面,在實驗過程中,使用預訓練的MLP可以得到更好的重建效果。 以下是開放性問題,歡迎讀者朋友留言討論: Q: SHINE-Mapping在增量式重建的過程中,實際上是增量式地更新空間中的局部特征信息,并在更新完整個地圖之后,使用MLP將局部特征信息轉換為有符號距離值,然后使用Marching Cubes來顯式的構建網格。因此,如果想在建圖的過程中,實時地查看重建的網格信息,則需要不斷地調用MLP和Marching Cubes,這將會導致實時的計算效率非常低。那么應該如何改進這一方法,或者是否可以使用其他的網格構建方法,使得在快速建圖過程中,能夠實時地查看重建效果呢?
-
機器人
+關注
關注
211文章
28593瀏覽量
207823 -
三維
+關注
關注
1文章
511瀏覽量
29017 -
函數
+關注
關注
3文章
4344瀏覽量
62843
原文標題:基于稀疏分層隱式神經表示的大規模三維場景建圖
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論