稠密SLAM的挑战
传统的SLAM系统通常提供语义贫乏的地图表示,这些表示虽然在定位和基本导航方面效率较高,但缺乏完成复杂任务所需的细节。例如,稀疏的点云在定位方面表现出色,但缺乏抓取任务所需的表面细节。对于这些复杂的机器人任务,稠密且高保真的空间数据变得愈加重要。
稠密SLAM系统可以分为解耦和耦合两种方式:
- 解耦方法将跟踪与重建分离,使用传统的SLAM系统提供稠密重建过程的输入
- 耦合方法将稠密重建与建图和跟踪整合在一起,从而提高地图质量,但通常会面临速度瓶颈,因为准确的定位依赖于建立高质量的地图,而这需要时间。
解耦系统的一个关键挑战是SLAM和稠密重建组件之间缺乏协同作用。SLAM算法往往无法为高质量的稠密重建提供最佳数据,影响了整体系统性能。为了解决这一挑战,针对3D高斯分布(3DGS)的特定需求对SLAM系统进行了调整。3DGS通常需要初始点云来开始重建,较稠密且结构良好的初始点云可以提高结果的质量和加快速度。然而,传统的基于特征的SLAM方法生成的点云较为稀疏,无法为3DGS的初始化提供最佳条件。尽管RGB-D数据可以提供稠密且准确的点云,但使用单目摄像头更具广泛的适用性。

本文介绍的MGSO[1]是一种新型的稠密视觉SLAM系统——Monocular-GSO,它可以使用单目摄像头在实时在线情况下进行高质量的三维重建。MGSO是一个解耦系统,它利用光度SLAM来初始化并行运行的3DGS模块,从而实现实时稠密场景重建。MGSO的缩写融合了基于的光度SLAM系统Direct Sparse Odometry(DSO)和高斯分布(GS)。与传统的基于特征的SLAM方法生成稀疏点云不同,MGSO旨在跟踪稠密的像素集,从而生成稠密且结构良好的点云输出。利用这一稠密的结构化点云在未建图区域初始化3DGS。通过高质量点集的初始化,加快了3DGS的优化过程,指导其生成更紧凑的重建结果,减少了伪影和冗余。
主要贡献如下:
- 一个实时的稠密SLAM系统,结合了光度SLAM和3DGS的优势。
- 仅需使用单目摄像头。
- 实验结果显示,在速度、地图质量和内存效率方面均优于其他稠密SLAM系统。
具体方法
SLAM模块
系统的跟踪核心基于一系列起源于直接稀疏里程计(Direct Sparse Odometry, DSO)的视觉SLAM方法。DSO的关键创新在于,它展示了通过选择性像素采样进行光度跟踪相比使用图像中的所有像素可以提高定位精度。之所以选择基于DSO进行开发,是因为它的像素选择策略与初始化3D高斯分布(3D Gaussian Splatting, 3DGS)非常契合。DSO通过跟踪连续帧i和j中的一组像素,优化相机姿态(ppp),并通过最小化以下光度损失方程实现:

其中,I代表像素强度,a和b是用来处理光照变化的变量,s是相机曝光。这个损失方程的基本原理是识别姿态变化,以最佳匹配连续帧i和j之间的像素强度变化。该方程在跟踪和建图两个级别都适用。

在每一帧中,系统的跟踪过程相对于最新的关键帧计算姿态变化,假设地图保持固定状态。只有在插入关键帧时,跟踪的像素地图才会进行调整。关键帧是一个捕获相对于现有关键帧的场景的独特视图的参考帧。当建图完成后,当前所有关键帧的姿态以及由跟踪像素点组成的地图都会被调整。接着,系统将这些由跟踪像素生成的地图转换为点云地图,并将其与关键帧的姿态一起传递给稠密重建模块。

采用DSO的窗口化关键帧管理策略。当检测到视野、旋转或光照发生显著变化时,就会生成新的关键帧。如果关键帧的数量超过了窗口大小(默认值为8),系统会移除较旧的关键帧,使用基于距离的评分机制确保在三维空间中关键帧的分布良好。

这一过程确保了SLAM模块能高效地进行姿态估计,同时提供高质量的点云输入用于稠密重建。
稠密重建
MGSO采用三维高斯分布(3DGS)作为其稠密重建方法。按照原始3DGS的做法,使用一组各向异性的高斯函数G来对场景进行建模。每个高斯函数Gi由不透明度、旋转、位置、尺度和颜色参数表示。我们借鉴了Mono-GS的技术,采用RGB代替球面调和来表示颜色,因为研究表明,这样可以在几乎不影响重建质量的情况下提高速度。使用原始3DGS中引入的可微瓦片式光栅化方法来渲染地图的RGB图像。
每个高斯的参数通过梯度下降法优化,以最小化光度损失函数L:

其中,I_r表示渲染图像,I_{gt}指捕获的真实图像,λ是一个加权因子,SSIM表示结构相似性度量。
为了提高系统的速度,采用了Photo-SLAM中引入的基于高斯金字塔的学习方法,逐步训练高斯地图。高斯金字塔通过反复平滑和下采样由相机捕获的真实图像来加速实时视频场景的训练。光度损失的计算从初始迭代中的最高金字塔层级开始,随着训练的深入,逐渐使用较低的层级。此外,还使用了一个优化版的3DGS CUDA后端,使得其运行速度比原版更快。
自适应控制策略每1000次训练迭代对高斯函数进行定期密化和修剪,以随着时间推移提高地图质量。该策略基于SLAM模块生成的点云设计,类似于Photo-SLAM根据ORBSLAM3调整策略的方式。SLAM系统生成的点云具有高密度和均匀覆盖的特点,能够自适应地根据场景的复杂性,在复杂区域集中更多点,而在较简单区域维持基本的代表性。当处理新的关键帧时,基于SLAM系统生成的点云,初始化新的高斯,使用这些点云的位置和颜色。
然而,注意到在使用3DGS的密化和修剪策略时,出现了“浮动物体”(floaters)的现象。为了减少这种浮动物体的出现,采用了AbsGS中的自适应控制策略。在自适应控制策略中,定期对视域位置梯度较高的高斯进行密化,通过分裂或克隆它们来密化。大而高方差的高斯将会被分裂,而在欠重建区域的小高斯则会被克隆。此外,定期修剪低不透明度的高斯,以去除透明的浮动物体。使用了与原始3DGS相同的分裂和克隆参数。
这些调整不仅提高了系统的速度,还减少了重建过程中出现的伪影(artifact)和冗余,确保了高效且紧凑的三维场景重建。
实验效果








总结一下
MGSO将实时光度SLAM与三维高斯分布(3DGS)相结合,实现了仅使用单目摄像头的稠密、高质量和内存高效的三维重建。该方法解决了多项挑战,成功利用了这两种技术的天然兼容性。MGSO的多样性在各种环境中得到了验证,无需使用深度传感器,使其成为机器人、增强现实(AR/VR)和数字孪生应用的最佳选择。未来的研究可以探索实现闭环检测以提高全球一致性,以及实时重新渲染以适应场景变化,从而提升MGSO在复杂、大规模环境中的精度和效率。
参考
[1] MGSO: Monocular Real-time Photometric SLAM with Efficient 3D Gaussian Splatting

发表回复