0. 筆者個人體會
很多SLAM系統為了實時估計位姿,建立的是稀疏地圖,這種地圖很難用作導航和規劃任務。但是建立稠密地圖的話,又會降低運算效率。設計GPU加速稠密建圖是一個可行方案,但需要使用大量繁瑣的CUDA編程,這個工作量巨大!
但最近,NVIDIA和ETHZ就聯合提出了nvblox,是一個使用GPU加速SDF建圖的庫。計算速度非常快,相較CPU計算TSDF甚至快了177倍。更重要的是,因為所有數據都已經存儲在GPU上,所以很容易和深度學習方案結合!
對建圖速度有要求的小伙伴可以關注一下這項工作。
1. 效果展示
nvblox以2cm的分辨率很快建立了SDF地圖:
辦公室移動機器人實驗,包括一個重建mesh,一個距離場slice,一個占用概率表示的動態目標(人)。其中場景的動態部分隨時間衰減,靜態部分使用TSDF融合實現精確重建。
這項工作最大的亮點在于,極大加快速度,又不損失精度。源代碼和相應的ROS代碼都開源了,感興趣的小伙伴可以關注一下,下面來看具體的論文信息。
2. 摘要
稠密體素地圖對于機器人在雜亂空間中的安全導航以及與環境的交互至關重要。對于延遲和魯棒性,如果這些可以在計算受限的硬件上從相機或基于激光雷達的傳感器進行板載計算,則是最好的。以前的工作在基于CPU的機器人地圖繪制系統和基于GPU的重建系統之間留下了差距,前者由于計算約束限制了地圖分辨率或比例,后者忽略了對機器人路徑規劃至關重要的特征。我們引入了一個庫nvblox,旨在通過GPU加速機器人體素建圖來填補這一空白,并針對嵌入式GPU進行了優化。nvblox提供了超越現有技術的顯著性能改進,在表面重建方面實現了高達177倍的加速,在距離場計算方面實現了高達31倍的改進,并且是開源的。
3. 算法解析
重述一下問題:
給定RGB-D或LiDAR輸入,位姿已知,建立體素地圖,將3D點映射為距離、占用、顏色等信息,輸出表面重建(占用/TSDF)或距離場(ESDF)。
傳統的建圖方法有什么問題?
使用CPU建圖太慢了!
這項工作是怎么做的?
nvblox希望使用GPU來加速建圖,具體架構包括多層地圖(TSDF、顏色、占用、Mesh、ESDF,用戶自己定義)、幀積分器(添加傳感器數據到地圖)、格式轉換(轉換地圖格式),最終導出包含ESDF和網格重建的體素網格。使用時還可以增加地圖圖層,也可以擴展為語義標簽等其他類型。
這個ESDF是啥?
ESDF地圖是歐幾里得符號距離場,場里面的每一個體素都包含了距離它最近的障礙物的歐幾里得距離。對于路徑規劃來說,ESDF比TSDF更合適一些。ETHZ之前的工作voxblox計算的是準歐幾里得距離,這樣即使地圖變化很小,更新計算量也非常大。相比之下,nvblox直接利用GPU計算歐幾里得距離。
ESDF加速如何進行?
作者在PBA的基礎上二次開發,來加速ESDF計算,算法總流程:
1、在分配塊中,輸入TSDF層和更新的體素塊列表;
2、標記位置(在障礙計算中可以是父體的體素,也就是表面邊界上的體素)。也就是說,這個體素的子體素是其最近的表面邊界的體素。還需要處理兩種常見情況:新占用以及新空閑的體素。新占用的體素可以簡單地采用它們的TSDF值,并添加到索引中更新。新空閑的體素需要將它們的距離重置為最大值;
3、清除無效值。具體做法是找到其父體不再是一個位置的體素,重新計算距離,選擇塊索引中最大ESDF距離內的映射子集,然后檢查每個體素是否仍然具有有效的父體;
4、降低ESDF體素距離;
5、通過跨塊邊界通信來更新相鄰塊,從而協調體素塊之間的差異;
6、如果最后一級需要通過體素塊邊界進行通信,則進行另一次掃描。重復掃描領域更新循環,直到所有塊都更新完成。
ESDF加速的可視化結果,該算法的總體思想是迭代計算體素塊內的正確距離值,然后將體素塊邊界上的距離信息傳遞給領域,實現高度并行化。
4. 實驗結果
整個實驗部分的核心觀點是:nvblox可以在提高建圖(ESDF)速度的同時,不損失建圖精度。實驗設備選擇了三個平臺:臺式機(Intel i9 CPU和NVIDIA RTX3090 Ti GPU),筆記本(Intel i7 CPU和RTX3000 Mobile GPU),還有Jetson Xavier AGX。使用的數據集是Replica和Redwood。
首先是各個部分和voxblox(ETHZ之前的工作,使用CPU建圖,參考Voxblox: Incremental 3D Euclidean Signed Distance Fields forOn-Board MAV Planning)的耗時對比,其中每4幀執行了生成了一次ESDF和網格,分辨率是5cm。可以發現每部分的加速都非常明顯,TSDF甚至加快了177倍!
增量ESDF計算的定量對比,對比方案包括voxblox和Fiesta,運行設備是桌面GPU。表格數據是重建體素的中值誤差,結果顯示voxblox和Fiesta的速度分別提高了31倍和4倍,關鍵是沒有損失精度。
查詢時間的對比,在GPU上采集3D點,并在GPU上執行ESDF查找,返回它們到最近表面的距離以及可選的距離場梯度。cor表示空間相關,uncor表示不相關。這里也推薦「3D視覺工坊」新課程《徹底剖析激光-視覺-IMU-GPS融合SLAM算法:理論推導、代碼講解和實戰》。
nvblox的應用示例,重建了一個無人機采集的場景,還是體現實時性。
5. 總結
今天筆者為大家介紹了一個GPU加速的體素建圖庫nvblox,主要工作量是提出了一種新穎的增量式GPU加速方法來計算ESDF。nvblox針對獨立和嵌入式GPU都進行了優化,計算速度非常快。對建圖速度有要求的小伙伴可以關注一下這項工作。
-
機器人
+關注
關注
211文章
28380瀏覽量
206918 -
gpu
+關注
關注
28文章
4729瀏覽量
128890 -
深度學習
+關注
關注
73文章
5500瀏覽量
121113
原文標題:177倍加速!NVIDIA最新開源 | GPU加速各種SDF建圖!
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論