赞
踩
论文标题:
SiLVR: Scalable Lidar-Visual Reconstruction with Neural Radiance
Fields for Robotic Inspection
论文作者:
Yifu Tao1, Yash Bhalgat2, Lanke Frank Tarimo Fu1, Matias Mattamala1, Nived Chebrolu1, and Maurice Fallon1
导读:
NeRF的崛起为视觉SLAM后端建图引入了新技术,使基于NeRF的稠密视觉SLAM成为2023年SLAM研究领域的热点。引入NeRF的稠密SLAM在建图质量上一度无人匹敌,直到最新的3DGS技术出现。然而,多传感融合SLAM在此前也曾是研究的热门,主要因其显著提升了SLAM前端的精度。这两种技术各自针对SLAM的前端和后端,理论上可以互不干涉,甚至结合创造新的SOTA。本文作者便探索了这一可能性,并成功实现了多传感融合与NeRF的结合,一举超越了当前最先进的NeRF-based
SLAM方法,堪称用“魔法”打败“魔法”。接下来,笔者将详细介绍这一SLAM技术组合的强大之处。©️【深蓝AI】编译
密集的3D重建是支撑一系列机器人应用的任务,如工业检测和自主导航。
常见的传感器包括摄像头和激光雷达。摄像头重建系统使用SfM和MVS等技术来生成密集的纹理重建。然而,这些系统对良好的光照条件和多视角约束依赖很大,并且在无纹理区域表现不佳。相比之下,激光雷达提供了在长距离上准确的几何信息,因为它直接测量到表面的距离。但是,激光雷达的测量通常比相机图像更稀疏,也不捕捉颜色信息,这在某些应用场景下可能不够用。
传统的重建系统使用点云、占据地图和符号距离场(SDF)等作为内部3D表示。而近期,NeRF因其在视觉重建方面的优异表现而备受关注。NeRF通过可微分渲染技术,优化连续的3D表示,以最小化渲染图像与参考摄像头图像之间的差异。与传统视觉重建方法一样,NeRF在观察到的多视图输入有限且纹理较少的位置难以估计准确的几何形状。
自主系统常常会遇到这样的情况,例如,在直接朝向一堵颜色统一的墙壁时进行重建。在这种情况下,使用激光雷达进行几何测量可以帮助解决这个问题,因为激光雷达可以在无纹理区域测量深度,并提供更准确的信息。此外,激光雷达的使用可以减少捕捉多个相机视图的需求,从而提高工作效率。
为了解决这些问题,SiLVR提出了一种基于NeRF的重建系统,它整合了激光雷达和视觉信息,生成准确的、带纹理的3D重建,同时提供了逼真的新视角合成。SiLVR方法建立在NeRF实现的基础上,其利用哈希编码,仅需几分钟即可实现逼真的渲染。通过从激光雷达获取几何约束,SiLVR扩展了这一方法以提高重建质量。使用激光雷达可以在无特征区域测量深度,表面法线也可以从激光雷达扫描中计算出来,这比基于学习的先验更加稳健,后者在实际部署中可能受到输入数据分布变化的影响。
本作创新点如下:
●提出了一个密集纹理的3D重建系统,能够实现与激光雷达相媲美的准确几何关系重建,并具有逼真的新视角合成(图片级)。
●实现了将NeRF与激光+视觉的多传感融合SLAM集成,使NeRF模型能够利用激光雷达数据获取深度和表面法线,并利用度量尺度轨迹进行训练,相比当前的SOTA方法中常用的按比例缩放的离线结构运动方法,计算时间减少了50%。
●提出了一个子地图系统,通过维护这个仔细图系统并用于合成大型地图,使算法能够适用于大型户外环境——轨迹超过600米。
图1|牛津数学研究所和H-B艾伦中心的8个子地图组成的大规模重建地图。底部一行显示从三个不同位置的模型和表面法线合成的新视图,每个子地图的轨迹可视化用不同的颜色表示©️【深蓝AI】编译
由于本文的创新点在于LiDAR-Camera SLAM与NeRF的融合,因此笔者首先介绍LiDAR-Camera SLAM,最后再介绍NeRF建图,与文章的顺序稍微有点差别。同时在本文的方法部分,作者首先介绍了和NeRF建图有关的内容,接着在最后一节中介绍了如何基于NeRF建立子图,笔者为了各位阅读的便利,将这两个部分合并一起作为NeRF建图的内容来阐述。
图2|算法前端构架©️【深蓝AI】编译
2.1 LiDAR数据处理
在具有均匀纹理和有限多视图约束的表面上,使用NeRF进行3D重建变得具有挑战性。激光雷达的测量是互补的,因为它可以在这种情况下提供准确的测量。在SiLVR的工作中,他们将激光雷达测量数据纳入NeRF优化中。具体来说,他们通过添加深度损失来实现基于激光雷达的深度正则化,该损失定义为激光雷达深度测量值 D D D和NeRF模型生成的射线分布 h ( t ) h(t) h(t)之间的 K L KL KL散度。公式如下:
L depth = ∑ r ∈ R KL ( N ( D , σ ) ∥ h ( t ) ) L_{\text{depth}} = \sum_{r \in R} \text{KL}(N(D, \sigma) \| h(t)) Ldepth=r∈R∑KL(N(D,σ)∥h(t))
此外,他们还运行语义分割网络来获取天空掩膜,并最小化这些射线的权重。
尽管深度损失可以改善3D重建,但他们发现表面在预期为光滑的区域存在波状伪影。为了减轻这种情况,他们计算了表面法线,作为NeRF密度场的负梯度,并施加了进一步的表面法线正则化损失,这部分的损失函数如下公式所示:
L normal = ∑ r ∈ R ∥ N ( r ) − N ^ ( r ) ∥ 1 + ∣ 1 − N ( r ) T N ^ ( r ) ∣ 1 L_{\text{normal}} = \sum_{r \in R} \left\| N(r) - \hat{N}(r) \right\|_1 + \left| 1 - N(r)^T \hat{N}(r) \right|_1 Lnormal=r∈R∑ N(r)−N^(r) 1+ 1−N(r)TN^(r) 1
这部分就是对于LiDAR数据的处理,可见主要是利用了LiDAR带来的精确深度测量,构建了对应的Loss函数,优化整个系统的位姿精度。
2.2 Camera数据处理
SiLVR世界中,我们普遍认为获取精确的相机姿态对于模型重构的质量至关重要。
通常情况下,许多NeRF研究使用离线的结构从运动技术(比如COLMAP),来确定相机的位置。但使用COLMAP在大型图像集处理上耗时较长,并且在图像间视觉重叠有限的情况下,难以将所有图像整合到一个全局地图中。
为了解决这些问题,SiLVR采用了自己的激光雷达-惯性测量单元和SLAM系统,名为VILENS。尽管VILENS在实时跟踪方面表现优异,但SiLVR发现通过它获得的相机姿态不如COLMAP精确,这会在NeRF模型的渲染中产生模糊的视觉效果。有些研究尝试通过在NeRF优化过程中同时细化姿态来处理带有噪声的姿态输入,虽然这种方法有时可以稍微提高图像质量,但最终渲染的图像仍然不够清晰,而且这个训练过程通常比较不稳定。
为了克服这些挑战,SiLVR使用了一种新的方法:他们采用视觉SLAM系统确定的姿态作为基准,并通过COLMAP进行进一步的轨迹精炼。具体来说,SiLVR主要通过将Camera数据中应用于视觉SLAM,首先获得这部分的视觉SLAM结果,随后通过全局优化,将这部分的姿态与LiDAR数据中维护的姿态一起进行优化,而不是只使用Camera的数据在局部进行优化,这种全局优化的方式能够大大的提升姿态的进度,同时能够融合多传感器的信息,可以看到LiDAR和Camera的信息在Camera数据处理中实现了第一次融合。
2.3 NeRF-based后端建图
SiLVR的NeRF-based后端建图部分的实现是建立在Nerfstudio的Nerfacto方法之上的。Nerfacto的渲染质量能与如MipNeRF-360等顶尖方法相媲美,同时由于引入了Instant-NGP的高效哈希编码,其在重建速度上也取得了显著的提升。SiLVR还采用了场景压缩技术,以提高内存效率并处理靠近相机位置的高分辨率场景。这种技术将空间中的任何点映射到一个边长为2的立方体内,使场景可以在这个压缩的空间内表示。由于曝光和照明条件差异较大,他们采用了针对每张图像的独立外观编码方法来处理这些变化。在大规模场景中训练NeRF面临诸多挑战,这是因为单个NeRF模型的表示能力有限,且处理数千张图像时会遇到硬件限制,如内存使用问题。SiLVR采用了一种子映射方法,通过谱聚类技术将COLMAP精细化的SLAM轨迹分割成不同的群组。这种方法的运行速度比多层感知机快很多。这些子图在它们的本地坐标框架中进行训练,而最终的重建则通过它们的度量姿势转换到世界坐标框架。
为了从NeRF生成3D重建物,SiLVR团队采样了用于训练每个模型的光线,并渲染颜色和深度来创建3D点。在评估3D重建时,他们发现子图中存在一些伪影,尤其是在边界区域,这通常是因为边界区域的观测相对稀疏。为了解决这个问题,SiLVR识别了表面密度较低的区域,并试图将子图云合并,使得在最终重建时成功移除这些区域。NeRF中需要的相机姿态信息(包括几何法线信息)均来自于前端LiDAR-Camera的联合SLAM数据(在2.1中,深度和法线通过LiDAR数据进行了处理和获取;在2.2中,NeRF需要的图像输入以及相机姿态通过视觉SLAM进行了获取)。由于这部分的数据都是通过一个十分精确的环节得到的(多传感融合SLAM在还原相机姿态精度上当属目前在线方法的第一,而激光雷达提供的深度和基于此计算的法线都是所有传感器中最好最精确的一档),因此NeRF的重建效果会显著由于使用COLMAP进行粗略估计的方法,这也是文章产生SOTA结果的原因所在。
实验部分比较常规,因为ICRA的paper有严格的页码限制,因此作者没有进行太多的实验,但是文中的实验也足够提供有力的支撑,这里笔者将所有实验都进行简单概述。
3.1 评估指标
为了评估重建的几何形状,SiLVR遵循DTU数据集的标准,给出了重建的准确性和完整性。准确性是通过测量重建物与参考3D模型(即真实模型)之间的距离来定义的,这可以体现重建的质量。完整性则通过计算从参考点到重建物的距离来衡量,这表示了重建捕获了多少表面。
为了获取真实数据,SiLVR使用了测量级的Leica BLK360激光扫描仪捕获的厘米级精确点云,并利用ICP得到的变换来配准这些点云,同样的方法也用于配准NeRF的重建。
此外,SiLVR还评估了重建的视觉质量。他们通过报告峰值信噪比(PSNR)和结构相似性指数(SSIM)来衡量图像质量。需要注意的是,由于原始图像有不同的曝光时间,即使重建的图像看起来非常逼真,PSNR的测试结果也可能会偏低。
3.2 数值实验
图3|实验定量数据©️【深蓝AI】编译
图3总结了实验的定量结果,并在图4中展示了3D重建可视化。与Nerfacto相比,SiLVR的方法加入了激光雷达测量,从而在准确性和完整性方面显著改善了几何形状。Nerfacto在重建数学研究所的均匀颜色地面以及HBAC的四边形区域时遇到困难,后者是机器人仅向前行走的区域。与激光雷达-SLAM相比,SiLVR方法通常能够实现更完整的重建,因为它使用了密集的视觉信息,而在准确性方面(8-11厘米)几乎与激光雷达-SLAM(6-8厘米)相当,并且比Nerfacto(14-76厘米)好得多。
图4|3D重建可视化结果对比©️【深蓝AI】编译
3.3 分离试验
SiLVR团队在图5中展示了其多摄像头传感器设置的优势。与三摄像头设置相比,仅使用前置摄像头不仅导致重建不完整,而且几何质量也更差。使用光度损失的视觉重建倾向于只在输入视角处生成良好的渲染效果。图5中仅使用前置摄像头的重建是通过拍摄场景浅角度的图像进行训练的,从未见过的角度渲染时,几何重建的效果很差。
图5|使用不同相机建立的稠密地图可视化©️【深蓝AI】编译
3.4 姿态精度对比实验
SiLVR团队比较了几种计算姿态的策略的性能:在线SLAM姿态、与NeRF姿态精炼结合的SLAM姿态、与COLMAP结合的SLAM姿态,在不同配置下的表现,以及没有任何先验姿态的COLMAP。其中针对COLMAP,团队测试了不同数量的图像特征提取,并使用了两种不同的特征匹配算法:顺序匹配与循环闭合和词汇树匹配器。
对于所有COLMAP配置,提供SLAM先验姿态不仅加速了姿态计算,而且与离线COLMAP相比,也改善了测试渲染效果。SLAM先验姿态还能配准轨迹中的所有图像,而没有提供这些姿态时,COLMAP只能配准55%-95%的图像。增加每张图像提取的视觉特征数量(从1024到8192)不仅提高了图像配准的比例,还提高了视觉重建的质量(PSNR和SSIM),但这也增加了计算时间,尤其是使用词汇树匹配器时。使用COLMAP的顺序匹配器通常比词汇树匹配器更快。
图6|姿态进度对比实验结果©️【深蓝AI】编译
团队在图1中展示了使用手持Frontier设备和子图映射技术进行的HBAC-Maths的大规模重建,以及每个子图的轨迹。为了展示子图映射的优势,团队比较了使用单一NeRF模型与使用多个子图构建的NeRF模型进行整个序列的3D重建和渲染质量。在图7中呈现了定性结果。只使用单一NeRF地图时,由于其有限的表示能力不能存储大面积的所有对象,数学研究所的自行车架的重建显得模糊。而仅使用该局部区域的专用子图时,重建质量明显提高,如图7(右)所示。
图7|不同尺寸子图建图可视化©️【深蓝AI】编译
本文介绍了一款融合了LiDAR与Camera的NeRF-based SLAM方法,简而言之就是采用多传感融合SLAM提供的高精度作为NeRF渲染的先验,最终取得了十分SOTA的效果。
在为这篇文章的结果惊叹的同时,笔者也注意到作者这种研究思路十分值得我们借鉴,作为科研工作者大家或多或少会遇到一些“创新点”方面的难题,或者难以取得“打败”SOTA的效果。作者的思路就是将两个SOTA进行融合,用“魔法”打败“魔法”,这个思路一方面解决了创新点方面的问题,一方面也能够产生十分先进的效果,一次性满足了两个愿望!
希望大家读完本文后能够对多传感融合与NeRF-based SLAM的前沿进展有更深刻的了解,同时也能够收获一些科研方面的小技巧!
编译|阿豹
审核|Los
移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。