大盤點(diǎn)!22項(xiàng)開源NeRF SLAM頂會(huì)方案整理?。ㄉ希?/h1>

作者:泡椒味的口香糖 ?| 來源:計(jì)算機(jī)視覺工坊
在公眾號(hào)「計(jì)算機(jī)視覺工坊」后臺(tái),回復(fù)「原論文」可獲取論文pdf和代碼鏈接。
添加微信:dddvisiona,備注:SLAM,拉你入群。文末附行業(yè)細(xì)分群。
0. 筆者個(gè)人體會(huì)
NeRF結(jié)合SLAM是這兩年新興的方向,衍生出了很多工作。目前來看SLAM結(jié)合NeRF有兩個(gè)方向,一個(gè)是SLAM為NeRF訓(xùn)練提供位姿,然后建立稠密細(xì)膩的三維場(chǎng)景,一個(gè)是在NeRF里建立各種損失函數(shù)反過來優(yōu)化pose和depth。那么NeRF結(jié)合SLAM都有哪些典型工作呢,本文將為大家做一個(gè)簡(jiǎn)單梳理。希望能夠?yàn)橄胍腴TNeRF SLAM的小伙伴提供一點(diǎn)研究思考。
受于篇幅限制,本文不會(huì)過多介紹文章細(xì)節(jié)。將所有相關(guān)文章劃分為僅優(yōu)化NeRF、僅優(yōu)化位姿、位姿和NeRF聯(lián)合優(yōu)化、物體級(jí)NeRF SLAM、雷達(dá)NeRF SLAM這五類。同時(shí)為避免生硬的翻譯原文,本文針對(duì)每篇文章的介紹將以四個(gè)問題來進(jìn)行,分別是這篇文章希望解決什么問題?核心思想是什么?具體如何實(shí)現(xiàn)?有什么效果?當(dāng)然筆者水平有限,如果有理解不當(dāng)?shù)牡胤綒g迎各位讀者批評(píng)指正~
1. 目錄
受于篇幅限制,先放一個(gè)目錄列舉本文都介紹了哪些方案。
僅優(yōu)化NeRF
0、NeRF
1、Point-NeRF
2、NeRF-SLAM
僅優(yōu)化位姿
3、iNeRF
4、NeRF-Loc
5、NeRF-VINS(未開源)
位姿和NeRF聯(lián)合優(yōu)化
6、iMAP
7、BARF
8、NeRF--
9、NICE-SLAM
10、Vox-Fusion
11、NoPe-NeRF
12、RoDynRF
13、DIM-SLAM
14、Orbeez-SLAM
15、GO-SLAM
16、NICER-SLAM(未開源)
17、Co-SLAM
物體級(jí)NeRF SLAM
18、RO-MAP
19、vMAP
LiDAR NeRF SLAM
20、LiDAR-NeRF
21、IR-MCL
22、NeRF-LOAM
23、LONER
2. 僅優(yōu)化NeRF
0、NeRF
標(biāo)題:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
作者:Ben Mildenhall, Pratul P. Srinivasan, Matthew Tancik, Jonathan T. Barron, Ravi Ramamoorthi, Ren Ng
機(jī)構(gòu):加州大學(xué)伯克利分校、谷歌研究院、加州大學(xué)圣地亞哥分校
來源:ECCV 2020 oral
原文鏈接:https://arxiv.org/abs/2003.08934
代碼鏈接:https://github.com/bmild/nerf
官方主頁:https://www.matthewtancik.com/nerf
NeRF的開山之作,在很多領(lǐng)域掀起了一股浪潮。具體原理就不做介紹了,放在這里表示尊敬。
1、Point-NeRF
標(biāo)題:Point-NeRF: Point-based Neural Radiance Fields
作者:Qiangeng Xu, Zexiang Xu, Julien Philip, Sai Bi, Zhixin Shu, Kalyan Sunkavalli, Ulrich Neumann
機(jī)構(gòu):南加州大學(xué)、Adobe
來源:CVPR 2022
原文鏈接:https://arxiv.org/abs/2201.08845
代碼鏈接:https://github.com/Xharlie/pointnerf
官方主頁:https://xharlie.github.io/projects/project_sites/pointnerf/
這篇文章不算是NeRF SLAM的工作,但是為特征點(diǎn)法SLAM和NeRF結(jié)合提供了一個(gè)思路。
這篇文章希望解決什么問題?
傳統(tǒng)的NeRF渲染太慢了,因?yàn)橐驧LP把整個(gè)圖像的一切都渲染出來。
核心思想是什么?
MVS方法重建速度快,因此可以結(jié)合MVS和NeRF,使用點(diǎn)云來渲染NeRF,實(shí)現(xiàn)30倍的加速。
具體如何實(shí)現(xiàn)?
Point-NeRF首先利用基于體素代價(jià)的3D CNN來生成每個(gè)視角的深度圖,并使用2D CNN來提取圖像特征。在聚合深度圖后,得到一個(gè)基于點(diǎn)的輻射場(chǎng),每個(gè)點(diǎn)包含空間位置、置信度和圖像特征。為了合成新視圖,只在神經(jīng)點(diǎn)云附近進(jìn)行可微射線積分和計(jì)算陰影。在每個(gè)陰影位置,聚集K個(gè)神經(jīng)點(diǎn)鄰域的特征,并計(jì)算輻射率和體密度。整個(gè)過程可以端到端訓(xùn)練。

效果如何?
定量對(duì)比,主要還是訓(xùn)練速度上的提升,從10個(gè)小時(shí)降低到了2分鐘。但是NVIDIA的Instant NPG訓(xùn)練已經(jīng)降低到了5s,很多NeRF SLAM也都是使用Instant NPG作為NeRF部分。

定性對(duì)比,也還是訓(xùn)練速度上的提升。

2、NeRF-SLAM
標(biāo)題:NeRF-SLAM: Real-Time Dense Monocular SLAM with Neural Radiance Fields
作者:Antoni Rosinol, John J. Leonard, Luca Carlone
機(jī)構(gòu):麻省理工學(xué)院
原文鏈接:https://arxiv.org/abs/2210.13641
代碼鏈接:https://github.com/ToniRV/NeRF-SLAM
NeRF-SLAM實(shí)際是DROID-SLAM+probabilistic volumetric fusion+Instant NGP三個(gè)方案的組合,主要?jiǎng)?chuàng)新在于引入了深度和位姿的不確定性。
這篇文章希望解決什么問題?
單目稠密SLAM也好,直接進(jìn)行單目深度估計(jì)也好,得到的深度圖很多數(shù)值是不能用的,也很自然的不能用于三角化等應(yīng)用。如果這些低質(zhì)量深度值也拿來當(dāng)Ground Truth訓(xùn)練NeRF的話,效果肯定不如深度真值。
核心思想是什么?
利用單目稠密SLAM監(jiān)督NeRF的訓(xùn)練,單目稠密SLAM提供稠密深度圖、相機(jī)位姿、以及相應(yīng)的不確定性。之后利用這些信息進(jìn)行深度邊緣協(xié)方差加權(quán)的稠密深度損失訓(xùn)練。

具體怎么做呢?
NeRF-SLAM的輸入是連續(xù)的單目序列,利用ConvGRU(具體原理參考RAFT)估計(jì)稠密光流和光流權(quán)重,之后就是一個(gè)稠密BA問題估計(jì)位姿和深度,并將系統(tǒng)方程線性化為近似相機(jī)/深度箭頭塊狀的稀疏Hseeian矩陣。這里還用到了一個(gè)trick,使用舒爾補(bǔ)對(duì)海森矩陣降維成只與位姿有關(guān),再使用Cholesky求解這個(gè)線性最小二乘問題,求解完T以后就可以帶回去求解D。
繼續(xù)計(jì)算位姿和深度圖的邊緣協(xié)方差。Hseeian矩陣在最大似然問題中可近似為信息矩陣,而協(xié)方差矩陣是信息矩陣的逆,這樣就可以很容易得到兩個(gè)協(xié)方差。。
最后把圖像、位姿、深度圖、位姿不確定性、深度不確定性全部饋送給Instant NGP進(jìn)行NeRF的訓(xùn)練。

有什么效果?
運(yùn)行設(shè)備是2080Ti,所需顯存為11G,F(xiàn)PS為12幀。建圖的定性效果很不錯(cuò)。

定量對(duì)比結(jié)果,還對(duì)比了有無深度真值對(duì)NICE-SLAM的影響。

本身就是用DROID-SLAM估計(jì)的位姿去優(yōu)化NeRF,沒有反過來優(yōu)化位姿,所以也就沒有軌跡精度的對(duì)比。
總結(jié):使用SLAM去為NeRF訓(xùn)練提供位姿是一種很容易想到的思路,這方面最經(jīng)典的文章就是NeRF-SLAM,但更多的文章還是希望將位姿和NeRF放到一起優(yōu)化。這里也推薦「3D視覺工坊」新課程《徹底搞懂視覺-慣性SLAM:VINS-Fusion原理精講與源碼剖析》。
3. 使用NeRF優(yōu)化位姿
3、iNeRF
標(biāo)題:INeRF: Inverting Neural Radiance Fields for Pose Estimation
作者:Lin Yen-Chen, Pete Florence, Jonathan T. Barron, Alberto Rodriguez, Phillip Isola, Tsung-Yi Lin
機(jī)構(gòu):谷歌研究麻、省理工學(xué)院
來源:IROS 2021
原文鏈接:https://arxiv.org/abs/2012.05877
代碼鏈接:https://github.com/salykovaa/inerf
官方主頁:https://yenchenlin.me/inerf/
這篇文章希望解決什么問題?
使用NeRF來反過來優(yōu)化位姿。
核心思想是什么?
固定場(chǎng)景生成RGB圖,計(jì)算光度誤差反過來回傳梯度。
具體如何實(shí)現(xiàn)?
前面和傳統(tǒng)的NeRF一樣,只不過后面渲染圖像和真實(shí)圖像的光度誤差反過來又優(yōu)化位姿。

效果如何?
中間的圖是iNeRF位姿估計(jì)過程中的估計(jì)姿態(tài)(灰色)和地面真實(shí)姿態(tài)(綠色)的軌跡,有一定的位姿優(yōu)化效果。

位姿估計(jì)對(duì)比了SuperGlue,證明是有效果的,但肯定比不上完整的SLAM系統(tǒng)。

而且iNeRF需要場(chǎng)景已知,所以很難說對(duì)SLAM有什么幫助。
4、NeRF-Loc
標(biāo)題:NeRF-Loc: Visual Localization with Conditional Neural Radiance Field
作者:Jianlin Liu, Qiang Nie, Yong Liu, Chengjie Wang
機(jī)構(gòu):騰訊
來源:ICRA 2023
原文鏈接:https://arxiv.org/abs/2304.07979
代碼鏈接:https://github.com/JenningsL/nerf-loc
這篇文章是筆者第一次看到NeRF模型和圖像直接匹配進(jìn)行定位的文章。
這篇文章希望解決什么問題?
基于幾何的重定位方法精度低。
核心思想是什么?
利用學(xué)習(xí)到的條件NeRF三維模型,計(jì)算3D描述子,直接與圖像匹配,實(shí)現(xiàn)由粗到精的視覺定位。
具體如何實(shí)現(xiàn)?
整個(gè)Pipeline里場(chǎng)景表示為可泛化NeRF,從3D場(chǎng)景中隨機(jī)采樣點(diǎn),并將3D點(diǎn)饋送到NeRF模型中以生成3D描述子。然后直接根據(jù)3D和2D描述符來匹配,由PnP解算相機(jī)位姿。
為了保持泛化性,條件NeRF是建立在一個(gè)支持集上,支持集由幾幅給定的參考圖像和深度圖組成。模型不僅在多個(gè)場(chǎng)景的聯(lián)合訓(xùn)練學(xué)習(xí)了一般匹配,還在每個(gè)場(chǎng)景優(yōu)化過程中以殘差的方式記憶了基于坐標(biāo)的場(chǎng)景。

論文中條件NeRF模型的架構(gòu),通過新視圖合成和3D-2D匹配來共享任意三維位置的特征生成器。

為了解決訓(xùn)練支持圖像和查詢圖像之間的外觀變化,還提出了一個(gè)外觀自適應(yīng)層,在匹配之前查詢圖像和三維模型之間的圖像風(fēng)格對(duì)齊。

效果如何?
先說時(shí)間,提供10個(gè)支持圖像,定位1幀需要在Nvidia V100 GPU上花費(fèi)250ms。然后是一個(gè)定位精度的對(duì)比。

位姿估計(jì)和渲染結(jié)果的定性可視化。

5、NeRF-VINS
標(biāo)題:NeRF-VINS: A Real-time Neural Radiance Field Map-based Visual-Inertial Navigation System
作者:Saimouli Katragadda, Woosik Lee, Yuxiang Peng, Patrick Geneva, Chuchu Chen, Chao Guo, Mingyang Li, Guoquan Huang
機(jī)構(gòu):特拉華大學(xué)
來源:ICRA 2023
原文鏈接:https://arxiv.org/abs/2304.07979
這項(xiàng)工作是OpenVINS的擴(kuò)展,首先離線訓(xùn)練NeRF,然后基于NeRF地圖進(jìn)行定位和導(dǎo)航。
這篇文章希望解決什么問題?
基于關(guān)鍵幀進(jìn)行定位的策略,由于FOV較小效果比較差。
核心思想是什么?
充分利用NeRF新視角合成的能力,處理有限視角和回環(huán)問題,實(shí)現(xiàn)基于NeRF地圖的定位和導(dǎo)航規(guī)劃。同時(shí)要求整個(gè)系統(tǒng)可以在嵌入式設(shè)備上運(yùn)行。
具體如何實(shí)現(xiàn)?
其實(shí)思路很簡(jiǎn)單,就是合成當(dāng)前圖像的臨近視角圖像,用這兩幅圖像進(jìn)行匹配和定位,特征提取使用的是SuperPoint。整篇論文其實(shí)更像一個(gè)工程問題,為了在嵌入式設(shè)備上落地,用了大量的TRT、CUDA等技巧,生成圖像的時(shí)候?yàn)榱藢?shí)時(shí)運(yùn)行也降低了分辨率。這里也推薦「3D視覺工坊」新課程《徹底搞懂視覺-慣性SLAM:VINS-Fusion原理精講與源碼剖析》。

定性對(duì)比實(shí)驗(yàn),主要驗(yàn)證在已知地圖進(jìn)行定位的圖像檢索能力,對(duì)比方案包括傳統(tǒng)的DBoW方法和深度學(xué)習(xí)NetVLAD方法??梢园l(fā)現(xiàn)NeRF-VINS產(chǎn)生了更多的精確匹配。

ATE的對(duì)比,對(duì)比了基于地圖的方法和VINS方法。

總結(jié):使用NeRF反過來優(yōu)化pose也是一個(gè)很簡(jiǎn)單的思路,但如果只是設(shè)計(jì)損失函數(shù)再梯度回傳的話,定位精度很難和傳統(tǒng)SLAM比。
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ì)拉你入群