177倍加速!NVIDIA最新開源 | GPU加速各種SDF建圖!

作者:泡椒味的口香糖 ?| 來源:計(jì)算機(jī)視覺工坊,推薦關(guān)注。.
在公眾號(hào)「3D視覺工坊」后臺(tái),回復(fù)「原論文」可獲取論文pdf和代碼鏈接。
添加微信:dddvisiona,備注:SLAM,拉你入群。文末附行業(yè)細(xì)分群。
0. 筆者個(gè)人體會(huì)
很多SLAM系統(tǒng)為了實(shí)時(shí)估計(jì)位姿,建立的是稀疏地圖,這種地圖很難用作導(dǎo)航和規(guī)劃任務(wù)。但是建立稠密地圖的話,又會(huì)降低運(yùn)算效率。設(shè)計(jì)GPU加速稠密建圖是一個(gè)可行方案,但需要使用大量繁瑣的CUDA編程,這個(gè)工作量巨大!
但最近,NVIDIA和ETHZ就聯(lián)合提出了nvblox,是一個(gè)使用GPU加速SDF建圖的庫。計(jì)算速度非??欤噍^CPU計(jì)算TSDF甚至快了177倍。更重要的是,因?yàn)樗袛?shù)據(jù)都已經(jīng)存儲(chǔ)在GPU上,所以很容易和深度學(xué)習(xí)方案結(jié)合!
對(duì)建圖速度有要求的小伙伴可以關(guān)注一下這項(xiàng)工作。這里也推薦「3D視覺工坊」新課程《徹底剖析激光-視覺-IMU-GPS融合SLAM算法:理論推導(dǎo)、代碼講解和實(shí)戰(zhàn)》。
1. 效果展示
nvblox以2cm的分辨率很快建立了SDF地圖:

辦公室移動(dòng)機(jī)器人實(shí)驗(yàn),包括一個(gè)重建mesh,一個(gè)距離場(chǎng)slice,一個(gè)占用概率表示的動(dòng)態(tài)目標(biāo)(人)。其中場(chǎng)景的動(dòng)態(tài)部分隨時(shí)間衰減,靜態(tài)部分使用TSDF融合實(shí)現(xiàn)精確重建。

這項(xiàng)工作最大的亮點(diǎn)在于,極大加快速度,又不損失精度。源代碼和相應(yīng)的ROS代碼都開源了,感興趣的小伙伴可以關(guān)注一下,下面來看具體的論文信息。
2. 摘要
稠密體素地圖對(duì)于機(jī)器人在雜亂空間中的安全導(dǎo)航以及與環(huán)境的交互至關(guān)重要。對(duì)于延遲和魯棒性,如果這些可以在計(jì)算受限的硬件上從相機(jī)或基于激光雷達(dá)的傳感器進(jìn)行板載計(jì)算,則是最好的。以前的工作在基于CPU的機(jī)器人地圖繪制系統(tǒng)和基于GPU的重建系統(tǒng)之間留下了差距,前者由于計(jì)算約束限制了地圖分辨率或比例,后者忽略了對(duì)機(jī)器人路徑規(guī)劃至關(guān)重要的特征。我們引入了一個(gè)庫nvblox,旨在通過GPU加速機(jī)器人體素建圖來填補(bǔ)這一空白,并針對(duì)嵌入式GPU進(jìn)行了優(yōu)化。nvblox提供了超越現(xiàn)有技術(shù)的顯著性能改進(jìn),在表面重建方面實(shí)現(xiàn)了高達(dá)177倍的加速,在距離場(chǎng)計(jì)算方面實(shí)現(xiàn)了高達(dá)31倍的改進(jìn),并且是開源的。
3. 算法解析
重述一下問題:
給定RGB-D或LiDAR輸入,位姿已知,建立體素地圖,將3D點(diǎn)映射為距離、占用、顏色等信息,輸出表面重建(占用/TSDF)或距離場(chǎng)(ESDF)。
傳統(tǒng)的建圖方法有什么問題?
使用CPU建圖太慢了!
這項(xiàng)工作是怎么做的?
nvblox希望使用GPU來加速建圖,具體架構(gòu)包括多層地圖(TSDF、顏色、占用、Mesh、ESDF,用戶自己定義)、幀積分器(添加傳感器數(shù)據(jù)到地圖)、格式轉(zhuǎn)換(轉(zhuǎn)換地圖格式),最終導(dǎo)出包含ESDF和網(wǎng)格重建的體素網(wǎng)格。使用時(shí)還可以增加地圖圖層,也可以擴(kuò)展為語義標(biāo)簽等其他類型。

這個(gè)ESDF是啥?
ESDF地圖是歐幾里得符號(hào)距離場(chǎng),場(chǎng)里面的每一個(gè)體素都包含了距離它最近的障礙物的歐幾里得距離。對(duì)于路徑規(guī)劃來說,ESDF比TSDF更合適一些。ETHZ之前的工作voxblox計(jì)算的是準(zhǔn)歐幾里得距離,這樣即使地圖變化很小,更新計(jì)算量也非常大。相比之下,nvblox直接利用GPU計(jì)算歐幾里得距離。
ESDF加速如何進(jìn)行?
作者在PBA的基礎(chǔ)上二次開發(fā),來加速ESDF計(jì)算,算法總流程:
1、在分配塊中,輸入TSDF層和更新的體素塊列表;
2、標(biāo)記位置(在障礙計(jì)算中可以是父體的體素,也就是表面邊界上的體素)。也就是說,這個(gè)體素的子體素是其最近的表面邊界的體素。還需要處理兩種常見情況:新占用以及新空閑的體素。新占用的體素可以簡(jiǎn)單地采用它們的TSDF值,并添加到索引中更新。新空閑的體素需要將它們的距離重置為最大值;

3、清除無效值。具體做法是找到其父體不再是一個(gè)位置的體素,重新計(jì)算距離,選擇塊索引中最大ESDF距離內(nèi)的映射子集,然后檢查每個(gè)體素是否仍然具有有效的父體;
4、降低ESDF體素距離;
5、通過跨塊邊界通信來更新相鄰塊,從而協(xié)調(diào)體素塊之間的差異;
6、如果最后一級(jí)需要通過體素塊邊界進(jìn)行通信,則進(jìn)行另一次掃描。重復(fù)掃描領(lǐng)域更新循環(huán),直到所有塊都更新完成。

ESDF加速的可視化結(jié)果,該算法的總體思想是迭代計(jì)算體素塊內(nèi)的正確距離值,然后將體素塊邊界上的距離信息傳遞給領(lǐng)域,實(shí)現(xiàn)高度并行化。

4. 實(shí)驗(yàn)結(jié)果
整個(gè)實(shí)驗(yàn)部分的核心觀點(diǎn)是:nvblox可以在提高建圖(ESDF)速度的同時(shí),不損失建圖精度。實(shí)驗(yàn)設(shè)備選擇了三個(gè)平臺(tái):臺(tái)式機(jī)(Intel i9 CPU和NVIDIA RTX3090 Ti GPU),筆記本(Intel i7 CPU和RTX3000 Mobile GPU),還有Jetson Xavier AGX。使用的數(shù)據(jù)集是Replica和Redwood。
首先是各個(gè)部分和voxblox(ETHZ之前的工作,使用CPU建圖,參考Voxblox: Incremental 3D Euclidean Signed Distance Fields forOn-Board MAV Planning)的耗時(shí)對(duì)比,其中每4幀執(zhí)行了生成了一次ESDF和網(wǎng)格,分辨率是5cm??梢园l(fā)現(xiàn)每部分的加速都非常明顯,TSDF甚至加快了177倍!

增量ESDF計(jì)算的定量對(duì)比,對(duì)比方案包括voxblox和Fiesta,運(yùn)行設(shè)備是桌面GPU。表格數(shù)據(jù)是重建體素的中值誤差,結(jié)果顯示voxblox和Fiesta的速度分別提高了31倍和4倍,關(guān)鍵是沒有損失精度。

查詢時(shí)間的對(duì)比,在GPU上采集3D點(diǎn),并在GPU上執(zhí)行ESDF查找,返回它們到最近表面的距離以及可選的距離場(chǎng)梯度。cor表示空間相關(guān),uncor表示不相關(guān)。這里也推薦「3D視覺工坊」新課程《徹底剖析激光-視覺-IMU-GPS融合SLAM算法:理論推導(dǎo)、代碼講解和實(shí)戰(zhàn)》。

nvblox的應(yīng)用示例,重建了一個(gè)無人機(jī)采集的場(chǎng)景,還是體現(xiàn)實(shí)時(shí)性。

5. 總結(jié)
今天筆者為大家介紹了一個(gè)GPU加速的體素建圖庫nvblox,主要工作量是提出了一種新穎的增量式GPU加速方法來計(jì)算ESDF。nvblox針對(duì)獨(dú)立和嵌入式GPU都進(jìn)行了優(yōu)化,計(jì)算速度非???。對(duì)建圖速度有要求的小伙伴可以關(guān)注一下這項(xiàng)工作。
3D視覺細(xì)分群成立啦!
目前工坊已經(jīng)建立了3D視覺方向多個(gè)社群,包括SLAM、工業(yè)3D視覺、自動(dòng)駕駛方向。
細(xì)分群包括:
[工業(yè)方向]三維點(diǎn)云、結(jié)構(gòu)光、機(jī)械臂、缺陷檢測(cè)、三維測(cè)量、TOF、相機(jī)標(biāo)定、綜合群;
[SLAM方向]多傳感器融合、ORB-SLAM、激光SLAM、機(jī)器人導(dǎo)航、RTK|GPS|UWB等傳感器交流群、SLAM綜合討論群;
[自動(dòng)駕駛方向]深度估計(jì)、Transformer、毫米波|激光雷達(dá)|視覺攝像頭傳感器討論群、多傳感器標(biāo)定、自動(dòng)駕駛綜合群等。
[三維重建方向]NeRF、colmap、OpenMVS、MVSNet等。
[無人機(jī)方向]四旋翼建模、無人機(jī)飛控等。
除了這些,還有求職、硬件選型、視覺產(chǎn)品落地等交流群。
大家可以添加小助理微信: dddvisiona,備注:加群+方向+學(xué)校|公司, 小助理會(huì)拉你入群