大盘点!22项开源NeRF SLAM顶会方案整理!(上)

本文概述了NeRF与SLAM结合的研究趋势,介绍了优化NeRF、仅优化位姿、位姿与NeRF联合优化、物体级和雷达领域的NeRFSLAM工作,并分析了相关文章的核心思想、实现方法和效果。
摘要由CSDN通过智能技术生成

0. 笔者个人体会

NeRF结合SLAM是这两年新兴的方向,衍生出了很多工作。目前来看SLAM结合NeRF有两个方向,一个是SLAM为NeRF训练提供位姿,然后建立稠密细腻的三维场景,一个是在NeRF里建立各种损失函数反过来优化pose和depth。那么NeRF结合SLAM都有哪些典型工作呢,本文将为大家做一个简单梳理。希望能够为想要入门NeRF SLAM的小伙伴提供一点研究思考。

受于篇幅限制,本文不会过多介绍文章细节。将所有相关文章划分为仅优化NeRF、仅优化位姿、位姿和NeRF联合优化、物体级NeRF SLAM、雷达NeRF SLAM这五类。同时为避免生硬的翻译原文,本文针对每篇文章的介绍将以四个问题来进行,分别是这篇文章希望解决什么问题?核心思想是什么?具体如何实现?有什么效果?当然笔者水平有限,如果有理解不当的地方欢迎各位读者批评指正~

1. 目录

受于篇幅限制,先放一个目录列举本文都介绍了哪些方案。

仅优化NeRF

0、NeRF

1、Point-NeRF

2、NeRF-SLAM

仅优化位姿

3、iNeRF

4、NeRF-Loc

5、NeRF-VINS(未开源)

位姿和NeRF联合优化

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

物体级NeRF SLAM

18、RO-MAP

19、vMAP

LiDAR NeRF SLAM

20、LiDAR-NeRF

21、IR-MCL

22、NeRF-LOAM

23、LONER

2. 仅优化NeRF

0、NeRF

标题:NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis

作者:Ben Mildenhall, Pratul P. Srinivasan, Matthew Tancik, Jonathan T. Barron, Ravi Ramamoorthi, Ren Ng

机构:加州大学伯克利分校、谷歌研究院、加州大学圣地亚哥分校

来源:ECCV 2020 oral

原文链接:https://arxiv.org/abs/2003.08934

代码链接:https://github.com/bmild/nerf

官方主页:https://www.matthewtancik.com/nerf

NeRF的开山之作,在很多领域掀起了一股浪潮。具体原理就不做介绍了,放在这里表示尊敬。

1、Point-NeRF

标题:Point-NeRF: Point-based Neural Radiance Fields

作者:Qiangeng Xu, Zexiang Xu, Julien Philip, Sai Bi, Zhixin Shu, Kalyan Sunkavalli, Ulrich Neumann

机构:南加州大学、Adobe

来源:CVPR 2022

原文链接:https://arxiv.org/abs/2201.08845

代码链接:https://github.com/Xharlie/pointnerf

官方主页:https://xharlie.github.io/projects/project_sites/pointnerf/

这篇文章不算是NeRF SLAM的工作,但是为特征点法SLAM和NeRF结合提供了一个思路。

这篇文章希望解决什么问题?

传统的NeRF渲染太慢了,因为要求MLP把整个图像的一切都渲染出来。

核心思想是什么?

MVS方法重建速度快,因此可以结合MVS和NeRF,使用点云来渲染NeRF,实现30倍的加速。

具体如何实现?

Point-NeRF首先利用基于体素代价的3D CNN来生成每个视角的深度图,并使用2D CNN来提取图像特征。在聚合深度图后,得到一个基于点的辐射场,每个点包含空间位置、置信度和图像特征。为了合成新视图,只在神经点云附近进行可微射线积分和计算阴影。在每个阴影位置,聚集K个神经点邻域的特征,并计算辐射率和体密度。整个过程可以端到端训练。

效果如何?

定量对比,主要还是训练速度上的提升,从10个小时降低到了2分钟。但是NVIDIA的Instant NPG训练已经降低到了5s,很多NeRF SLAM也都是使用Instant NPG作为NeRF部分。

定性对比,也还是训练速度上的提升。

2、NeRF-SLAM

标题:NeRF-SLAM: Real-Time Dense Monocular SLAM with Neural Radiance Fields

作者:Antoni Rosinol, John J. Leonard, Luca Carlone

机构:麻省理工学院

原文链接:https://arxiv.org/abs/2210.13641

代码链接:https://github.com/ToniRV/NeRF-SLAM

NeRF-SLAM实际是DROID-SLAM+probabilistic volumetric fusion+Instant NGP三个方案的组合,主要创新在于引入了深度和位姿的不确定性。

这篇文章希望解决什么问题?

单目稠密SLAM也好,直接进行单目深度估计也好,得到的深度图很多数值是不能用的,也很自然的不能用于三角化等应用。如果这些低质量深度值也拿来当Ground Truth训练NeRF的话,效果肯定不如深度真值。

核心思想是什么?

利用单目稠密SLAM监督NeRF的训练,单目稠密SLAM提供稠密深度图、相机位姿、以及相应的不确定性。之后利用这些信息进行深度边缘协方差加权的稠密深度损失训练。

具体怎么做呢?

NeRF-SLAM的输入是连续的单目序列,利用ConvGRU(具体原理参考RAFT)估计稠密光流和光流权重,之后就是一个稠密BA问题估计位姿和深度,并将系统方程线性化为近似相机/深度箭头块状的稀疏Hseeian矩阵。这里还用到了一个trick,使用舒尔补对海森矩阵降维成只与位姿有关,再使用Cholesky求解这个线性最小二乘问题,求解完T以后就可以带回去求解D。

继续计算位姿和深度图的边缘协方差。Hseeian矩阵在最大似然问题中可近似为信息矩阵,而协方差矩阵是信息矩阵的逆,这样就可以很容易得到两个协方差。。

最后把图像、位姿、深度图、位姿不确定性、深度不确定性全部馈送给Instant NGP进行NeRF的训练。

有什么效果?

运行设备是2080Ti,所需显存为11G,FPS为12帧。建图的定性效果很不错。

定量对比结果,还对比了有无深度真值对NICE-SLAM的影响。

本身就是用DROID-SLAM估计的位姿去优化NeRF,没有反过来优化位姿,所以也就没有轨迹精度的对比。

总结:使用SLAM去为NeRF训练提供位姿是一种很容易想到的思路,这方面最经典的文章就是NeRF-SLAM,但更多的文章还是希望将位姿和NeRF放到一起优化。

3. 使用NeRF优化位姿

3、iNeRF

标题:INeRF: Inverting Neural Radiance Fields for Pose Estimation

作者:Lin Yen-Chen, Pete Florence, Jonathan T. Barron, Alberto Rodriguez, Phillip Isola, Tsung-Yi Lin

机构:谷歌研究麻、省理工学院

来源:IROS 2021

原文链接:https://arxiv.org/abs/2012.05877

代码链接:https://github.com/salykovaa/inerf

官方主页:https://yenchenlin.me/inerf/

这篇文章希望解决什么问题?

使用NeRF来反过来优化位姿。

核心思想是什么?

固定场景生成RGB图,计算光度误差反过来回传梯度。

具体如何实现?

前面和传统的NeRF一样,只不过后面渲染图像和真实图像的光度误差反过来又优化位姿。

效果如何?

中间的图是iNeRF位姿估计过程中的估计姿态(灰色)和地面真实姿态(绿色)的轨迹,有一定的位姿优化效果。

位姿估计对比了SuperGlue,证明是有效果的,但肯定比不上完整的SLAM系统。

而且iNeRF需要场景已知,所以很难说对SLAM有什么帮助。

4、NeRF-Loc

标题:NeRF-Loc: Visual Localization with Conditional Neural Radiance Field

作者:Jianlin Liu, Qiang Nie, Yong Liu, Chengjie Wang

机构:腾讯

来源:ICRA 2023

原文链接:https://arxiv.org/abs/2304.07979

代码链接:https://github.com/JenningsL/nerf-loc

这篇文章是笔者第一次看到NeRF模型和图像直接匹配进行定位的文章。

这篇文章希望解决什么问题?

基于几何的重定位方法精度低。

核心思想是什么?

利用学习到的条件NeRF三维模型,计算3D描述子,直接与图像匹配,实现由粗到精的视觉定位。

具体如何实现?

整个Pipeline里场景表示为可泛化NeRF,从3D场景中随机采样点,并将3D点馈送到NeRF模型中以生成3D描述子。然后直接根据3D和2D描述符来匹配,由PnP解算相机位姿。

为了保持泛化性,条件NeRF是建立在一个支持集上,支持集由几幅给定的参考图像和深度图组成。模型不仅在多个场景的联合训练学习了一般匹配,还在每个场景优化过程中以残差的方式记忆了基于坐标的场景。

论文中条件NeRF模型的架构,通过新视图合成和3D-2D匹配来共享任意三维位置的特征生成器。

为了解决训练支持图像和查询图像之间的外观变化,还提出了一个外观自适应层,在匹配之前查询图像和三维模型之间的图像风格对齐。

效果如何?

先说时间,提供10个支持图像,定位1帧需要在Nvidia V100 GPU上花费250ms。然后是一个定位精度的对比。

位姿估计和渲染结果的定性可视化。

5、NeRF-VINS

标题: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

机构:特拉华大学

来源:ICRA 2023

原文链接:https://arxiv.org/abs/2304.07979

这项工作是OpenVINS的扩展,首先离线训练NeRF,然后基于NeRF地图进行定位和导航。

这篇文章希望解决什么问题?

基于关键帧进行定位的策略,由于FOV较小效果比较差。

核心思想是什么?

充分利用NeRF新视角合成的能力,处理有限视角和回环问题,实现基于NeRF地图的定位和导航规划。同时要求整个系统可以在嵌入式设备上运行。

具体如何实现?

其实思路很简单,就是合成当前图像的临近视角图像,用这两幅图像进行匹配和定位,特征提取使用的是SuperPoint。整篇论文其实更像一个工程问题,为了在嵌入式设备上落地,用了大量的TRT、CUDA等技巧,生成图像的时候为了实时运行也降低了分辨率。

定性对比实验,主要验证在已知地图进行定位的图像检索能力,对比方案包括传统的DBoW方法和深度学习NetVLAD方法。可以发现NeRF-VINS产生了更多的精确匹配。

ATE的对比,对比了基于地图的方法和VINS方法。

总结:使用NeRF反过来优化pose也是一个很简单的思路,但如果只是设计损失函数再梯度回传的话,定位精度很难和传统SLAM比。

要运行Nerf-SLAM开源代码,首先需要确保您的计算机满足系统要求。Nerf-SLAM是一个基于Python和PyTorch的三维重建和SLAM算法,因此您需要安装Python和PyTorch。 在安装所需的软件和库后,您可以按照以下步骤来运行Nerf-SLAM开源代码: 1. 下载Nerf-SLAM的代码库,并将其解压到您选择的目录。 2. 打开终端或命令提示符窗口,并导航到代码库的目录。 3. 安装必要的Python库。可以使用pip或conda来安装依赖,例如numpy、imageio、tqdm等。具体的依赖可以在代码库的requirements.txt文件中找到。 4. 准备数据。Nerf-SLAM需要输入图像序列来进行重建。您可以将图像序列放在指定的文件夹中,并按照代码库中提供的文件命名约定来命名文件。 5. 打开config文件夹,并选择适合您的应用程序的配置文件。您可以根据自己的需求进行编辑和自定义。 6. 在终端或命令提示符窗口中执行模型训练命令。使用命令"python trainer.py --config=config_file_name",其中config_file_name是您选择的配置文件的名称。 7. 等待模型训练完成。根据您选择的配置和数据量的不同,训练过程可能需要一些时间。 8. 在训练完成后,您可以利用训练得到的模型来进行三维重建或SLAM。具体的操作方法和命令可以在代码库的文档中找到。 需要注意的是,运行Nerf-SLAM的代码需要一定的计算资源,并且对于大规模的数据集,可能需要更高的计算能力和存储空间。此外,在运行代码之前,建议您仔细阅读代码库中的文档和说明,以确保正确地配置和使用Nerf-SLAM开源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值