前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Orbeez-SLAM:基于ORB特征和NeRF的单目实时视觉SLAM

Orbeez-SLAM:基于ORB特征和NeRF的单目实时视觉SLAM

作者头像
点云PCL博主
发布2024-05-20 16:57:47
3640
发布2024-05-20 16:57:47
举报
文章被收录于专栏:点云PCL点云PCL

文章:Orbeez-SLAM: A Real-time Monocular Visual SLAM with ORB Features and NeRF-realized Mapping

作者:Chi-Ming Chung , Yang-Che Tseng , Ya-Ching Hsu , Xiang-Qian Shi , Yun-Hung Hua , Jia-Fong Yeh , Wen-Chin Chen , Yi-Ting Chen and Winston H. Hsu

编辑:点云PCL

欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。

摘要

通过视觉信号执行复杂任务并与人类合作的人工智能备受期待,为了实现这一目标,通常需要一种视觉SLAM,它能够在没有预先训练的情况下轻松适应新场景,并能够实时生成稠密地图,以供下游任务使用。由于其组件固有的限制,以往基于学习和非学习的视觉SLAM都不能满足所有需求。在这项工作中,我们开发了一种名为Orbeez-SLAM的视觉SLAM,它成功地与隐式神经表示和视觉里程计协作,实现了我们的目标。此外由于Orbeez-SLAM只需要RGB输入,因此可以与单目摄像头配合使用,使其在现实世界中具有广泛的适用性。结果表明,我们的SLAM比强大的基线快高达800倍,并具有优越的渲染效果。代码链接:

https://github.com/MarvinChung/Orbeez-SLAM。

主要贡献

本文致力于开发一种无需预训练且能够实时推理的单目视觉SLAM,以满足实际应用需求。为此提出了Orbeez-SLAM,结合了基于特征的SLAM(例如ORB-SLAM2)和基于instant-ngp框架的NeRF。与之前的方法不同,这里强调了VO(在ORB-SLAM2中)甚至在训练的早期阶段也能提供更好的相机姿态估计,这使得Orbeez-SLAM可以使用单目相机,即无需深度监督。此外通过VO同时估计相机姿态并更新NeRF网络。值得注意的是,训练过程是在线和实时的,无需预训练,如图1所示。

图1:Orbeez-SLAM流程。相机上方的数字表示跟踪的时间戳。左侧图像显示了从零开始培训27秒的NeRF结果。右侧图像显示,在左侧看到未曾见过的区域(即新颖视角)后,NeRF模型可以在几秒钟内更新该区域。Orbeez-SLAM是实时的且无需预训练。

因此,Orbeez-SLAM可以渲染诸如场景深度和颜色等的密集信息。此外,它在各种室内场景中得到了验证,并在速度、相机跟踪和重建方面优于NeRF-SLAM基线。总的来说,我们的贡献有三个方面:

  • 提出了Orbeez-SLAM,这是第一个无需预训练且能够提供密集地图的实时单目视觉SLAM,专为空间AI应用而设计。
  • 通过结合视觉测距和快速NeRF框架,该方法实现了实时推理并生成了密集地图。
  • 在具有挑战性的基准测试上广泛验证了Orbeez-SLAM与最先进的基线方法,展示了优越的定量和定性结果。

内容概述

系统概述

与之前需要深度信息以更好地感知几何形状的NeRF-SLAM不同,我们开发了Orbeez-SLAM,利用VO进行准确的姿态估计,以使用单目摄像头生成密集地图。此外,它实现了免预训练适应和实时推断。图3显示了我们的系统流程。跟踪过程从输入图像流I中提取图像特征,并通过VO估计相机姿态。映射系统通过三角剖分生成地图点,并通过束调整(重投影误差)优化相机姿态和地图点。这些地图点表示稀疏点云。然后,我们利用更新的相机姿态和地图来训练NeRF。由于该过程是可微分的,因此我们仍然可以通过NeRF的光度损失来优化相机姿态。最后,NeRF可以为下游任务生成密集地图。此外,这个流程应该适用于提供稀疏点云的任何SLAM系统。

图3:系统流程,跟踪和建图过程同时运行。图像流中的一帧必须满足两个条件才能成为关键帧。第一个条件筛选出跟踪结果较弱的帧。第二个条件在建图过程繁忙时丢弃帧,跟踪过程提供相机姿态估计,建图过程优化相机姿态并维护地图。

B.优化

优化OrbeezSLAM系统所使用的三个主要目标:姿态估计、束调整和NeRF回归。

  1. 姿态估计的目标。在这个目标中使用了复投影误差来衡量相机姿态的准确性。复投影误差是基于观察到的图像像素位置和通过三维地图点投影得到的像素位置之间的差异来计算的。作者指出,姿态估计的目标是通过最小化复投影误差来优化相机的姿态参数。
  2. 捆集调整的目标。在这个目标中,作者继续使用了复投影误差,不过这次是针对地图点的位置和相机姿态的优化。在视觉里程计的三角测量步骤之后,新的地图点被添加到局部地图中,然后使用捆集调整来优化这些地图点的位置和相机的姿态。
  3. NeRF回归的目标。在这个目标中,作者介绍了使用NeRF来最小化光度误差,以回归图像颜色。并且解释了如何使用射线表达,并通过应用跳跃体素策略来采样接近表面的位置,如图2。最后NeRF光度损失是预测颜色和观测颜色之间L2范数的损失。

C.射线投射三角测量

图2:跳跃体素策略,在沿着投射射线采样位置时,如果一个体素未被占用(标记为0),则会跳过该体素;我们只采样与表面相交的体素(标记为1)

图2展示了密度网格如何加速渲染过程。然而这种结构只考虑了一个射线,并且高度依赖于NeRF模型的密度预测。我们额外存储了每个体素的采样次数。一个频繁阻挡射线的体素更有可能是表面,如图4所示。

图4:NeRF中的射线投射三角测量,这里记录了每个密度网格体素的采样计数。如果一个体素的权重超过了成为表面候选的阈值,将为该体素计数器加1,那些采样计数高的体素很可能包含表面,并被添加为稠密点云的地图点

为了抑制噪声,我们只对位于经常被射线扫描的体素内的点进行三角测量。这里选择64作为实际实现的阈值,因为根据我们的经验,这个值具有最佳的可视化效果,我们还利用了数据结构中从稀疏点云生成的地图点,由于地图点周围更有可能是表面,在密度网格的采样计数器中增加了大量数字。我们声称这种方法可以找到更可靠的表面,并且可以使用训练过的NeRF在线生成地图点,在图3中展示了由此方法生成的稠密点云。

实验评估

数据集。为了公平比较,我们在三个基准数据集上进行实验,包括TUM RGB-D、Replica和ScanNet,它们提供了大量的图像、深度和相机轨迹数据,并且在先前的工作中被广泛使用。基线方法。我们将提出的Orbeez-SLAM与两类基线方法进行比较:

  • 基于学习的SLAM:DI-Fusion 、iMap、iMap∗、以及NICESLAM。
  • 基于传统方法的SLAM:BAD-SLAM、Kintinuous和ORB-SLAM2。

实现细节。我们在一台搭载Intel i7-9700 CPU和NVIDIA RTX 3090 GPU的台式电脑上进行所有实验。按照ORB-SLAM2和instant-ngp的官方代码实现了Orbeez-SLAM。需要注意的是Orbeez-SLAM从ORB-SLAM2中继承了闭环检测过程,以提高轨迹的准确性。我们没有像ORB-SLAM2那样剔除关键帧,以确保关键帧在传递给NeRF后不会被删除。代码使用C++和CUDA编写。关于损失函数,我们通过g2o框架优化重投影误差,通过tiny-cuda-nn框架优化NeRF中的光度误差。

定量结果。我们的目标是验证Orbeez-SLAM在我们具有挑战性的设置下(即,无需预训练即可进行实时推理),是否能够产生准确的轨迹(ATE)、精确的三维重建(Depth)和详细的感知信息(PSNR)。

TUM RGB-D(小规模)数据集上的评估,表I列出了所有方法的跟踪结果。需要注意的是Orbeez-SLAM在跟踪结果方面表现优异,与所有深度学习基线相比有着显著的差距(前半部分)。此外由于我们的方法是基于ORB-SLAM2构建的,因此ORB-SLAM2是我们跟踪结果的上限。然而即使提供了由NeRF生成的密集地图,Orbeez-SLAM在性能上只有轻微的下降。

ScanNet(大规模)数据集上的评估。如表II所示,我们在所有场景中获得了最佳的平均结果。我们认与ORB-SLAM2之间的性能差异是由于随机性造成的。此外,在某些情况下,NICE-SLAM的性能最佳。

Replica数据集上的评估。NICE-SLAM在Replica上评估了建图结果,因为它提供了GT网格。我们认为从NeRF生成网格的过程并不统一且棘手,因此,使用了NeRF工作中常用的指标Depth L1和PSNR。如表III所示,当在渲染深度时支持GT深度时,NICE-SLAM在Depth L1上获得了最佳值。然而,当在渲染时没有GT深度时,我们的Depth L1值优于NICE-SLAM。

运行时间比较。表IV描述了我们的Orbeez-SLAM和NICE-SLAM在TUM RGB-D基准测试上运行的耗时,由于VO在训练的早期阶段估算了准确的相机姿态,Orbeez-SLAM比NICE-SLAM快360 ∼ 800倍。

消融研究。表V展示了消融研究的结果,我们可以观察到,仅由Lrpj引导的相机姿态比同时由Lrpj和Lpht引导的结果更好。

图5: 渲染结果对比。展示了Orbeez-SLAM和NICE-SLAM渲染结果的RGB和深度图像,提供了Orbeez-SLAM(单目和RGB-D)和NICE-SLAM(RGB-D,包含和不包含推理时的GT深度)的结果。值得注意的是,在RGB-D设置中,我们在NeRF渲染时没有使用深度信息(深度仅用于跟踪过程),因此NICE-SLAM提供了更好的深度渲染结果。

我们在图5和图6中提供了定性结果,如图5所述,NICE-SLAM在GT深度的帮助下渲染图像。为了明确起见,两种NICE-SLAM情况的训练均使用了GT深度。相比之下,Orbeez-SLAM在渲染图像时不使用深度监督,即使在RGB-D情况下,GT深度仅用于跟踪。值得注意的是,Orbeez-SLAM在两种设置下都提供了优于NICE-SLAM的RGB结果。我们强调,NICE-SLAM由于使用了GT深度,因此提供了更好的深度结果。此外在图6中提供了不同时间戳下的Orbeez-SLAM渲染结果。在实时SLAM结束后,我们对NeRF进行离线训练直到损失完全收敛。Orbeez-SLAM在TUM和Replica案例中展示了出色的结果(前两行),但在大规模的ScanNet案例中失败了。

图6: NeRF结果随时间变化,展示了在TUM-fr3/office、Replica-office和ScanNet0207上的NeRF渲染结果随时间的变化。

总结

本文旨在开发一种无需预训练即可实现实时推理并提供密集地图用于下游任务的视觉SLAM系统,为此提出了Orbeez-SLAM,它利用了ORB特征和NeRF实现的地图构建,与视觉里程计和快速NeRF实现在instant-ngp平台上合作。此外Orbeez-SLAM可以与单目摄像头配合工作,从而实现灵活、实用的应用。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 点云PCL 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档