【3dgs】Gaussian-SLAM
- 0. 写在前面
- 1. 3D Splatting与SLAM流程
- 2. Splatting SLAM:单目/RGB-D(2024年新作)
- 2.1 相机跟踪精度
- 2.2 新视图渲染性能
- 2.3 消融实验
- 3. Gaussian-SLAM(Photo-SLAM) `Photo-SLAM技术原理详解 == ORBSLAM+3dGS`(24年3月)
- 1.3.1 简单概括
- 1.3.2 论文全文解析
- 0. 摘要
- 1. 引言
- 2. 相关工作
- 3. 方法
- 3.1 高斯喷溅
- 3.2 基于3D高斯的地图
- 子地图初始化
- 子地图构建
- 子地图优化
- 3.3 几何和颜色编码
- 3.4 跟踪
- 4 实验
- 5 结论
0. 写在前面
目前3dgs也就是用于 可视化渲染的阶段,前期的定位与跟踪部分与SLAM的方式大同小异,未来的趋势的2个大的方向
-
- 必然是深度学习逐渐接管SLAM中C++代码,模块化接管c++代码,使用深度学习模块代替,直到哪个时间点呢,我想肯定是现在大模型的发展打通基于文字到视觉的智能模型的涌现,这是另外一条实现找个目标的方式,本质上不矛盾,只是基于不同的方向站在自己的方向王另外一个方向发展而已。
-
- 能够兼容更大的框架,将感知的内容和渲染的内容也加入到基于SLAM的统一框架中,基于原始数据和不同层次的语义或者其他特征层次上做交互,这样整体更更加的符合发展的潮流和实际中任务解决的性能考量,充分使用不同模块之间的信息去做交互。以上是一些个人观点,希望大佬们也留言讨论。
除此之外现在自驾和具身发展的任务中,是否需要结合归控和多智能体之间的交互呢?这又是另外一个事情,但无论如何,底层定位和感知是最基础的算法实现,在这个基础上怎么去做规划和控制等其他任务也是在底层基础服务非常好的情况下,也会更进一层。以上是一些个人观点,希望大佬们也留言讨论。
24年10月
- 能够兼容更大的框架,将感知的内容和渲染的内容也加入到基于SLAM的统一框架中,基于原始数据和不同层次的语义或者其他特征层次上做交互,这样整体更更加的符合发展的潮流和实际中任务解决的性能考量,充分使用不同模块之间的信息去做交互。以上是一些个人观点,希望大佬们也留言讨论。
1. 3D Splatting与SLAM流程
概述:3D 高斯泼溅(Splatting)是用于实时辐射场渲染的 3D 高斯分布描述的一种光栅化技术,它允许实时渲染从小图像样本中学习到的逼真场景。
基本原理:从已有的点云模型出发,以每个点为中心,建立可学习的3D高斯表达(椭球来表示三维点,参数包括中心位置、不透明度、协方差矩阵和用球谐函数表达的颜色),用Splatting的方法进行渲染,实现高分辨率的实时渲染。
引入了一种各向异性(anisotropic)的3D高斯分布球作为高质量、非结构化的辐射场表达;从SFM点云出发,以每个点为中心生成3D高斯分布;各向异性指从各个方向看上去都长得不一样,即把一个椭球往不同相机位姿上投影的时候会投出不一样的样子。
实现了使用GPU进行快速可微的渲染,允许各向异性的泼溅(splatting)和快速反向传播;
提出了针对3D高斯特性的优化方法,并同时进行自适应密度控制。除此,存储在点里边的高斯参数需要再反向传播时进行优化更新;也会根据梯度自适应地调整点云的分布,如果一个点的3D高斯太大,不能完全拟合该处的细节则对其进行分割操作,用两个点来表达;如果一个位置的点太密集(用不着这么多的3D高斯),则合并为一个3D高斯。
注解:
Sfm points 即图像中检测到的关键点在三维空间的位置
SfM 初始化点云过程的主要步骤:
特征点提取:对每一张图像,使用 SIFT、SURF、ORB 等算法提取特征点,并计算特征描述子。
特征点匹配:使用 KNN、FLANN 等算法进行特征匹配,筛选出满足一致性和稳定性的匹配对。
错误匹配剔除:使用 RANSAC、LMedS 等算法进行异常值剔除,提高匹配的准确性。
位姿求解:对匹配的特征点,使用多视图几何的约束,如基础矩阵、本质矩阵、单应矩阵等,进行相机位姿的估计及三维坐标点的三角化。
位姿优化:BA目标函数参数化,对估计的相机位姿和三维坐标点,使用 BA等算法进行优化,以减少重投影误差和累积误差。
Splatting即计算机图形学里一个比较经典的用三维点进行渲染的方法,把三维点视作雪球往图像平面上抛,雪球在图像平面上会留下扩散的痕迹,这些点的扩散痕迹叠加在一起构成最后的图像。
- Overview: 从左边开始对SFM的点云进行初始化得到3D高斯;再沿黑色箭头借助CAMERA的外参做投影Projection,接着用一个可微的光栅化渲染得到图像;再和Nerf一样,把渲染图像和GT图像求loss沿蓝色箭头反向传播,蓝色箭头向上更新3D高斯里的参数,向下送入自适应密度控制更新点云(Adaptive Density Control)。
- 对比 Nerf 和传统的 Mesh:
- Nerf 是纯连续的、隐式表达在可微空间内,使用神经网络来隐式表达3D场景;
- Mesh是纯离散的(虽然可以插值)、显式表达在三维空间内。
- 3DGS 是在离散和连续间的一个平衡:在高斯球内部是连续的、可微的;在整个空间中,每个高斯球又是离散的。
2. Splatting SLAM:单目/RGB-D(2024年新作)
Splatting SLAM ,来自大名鼎鼎的的Andrew J. Davison1实验室
这里插一句有一个 叫做 gaiussian_slam的开源再这个link
- 使用单目相机:
- MonoGS
首次将3D高斯Splatting应用于单目SLAM中,这是视觉SLAM最基础但也是最具挑战性的设置。方法以每秒3帧的速度实时运行,使用高斯作为唯一的3D表示,统一了准确、高效跟踪、映射和高质量渲染所需的表示。针对具有挑战性的单目环境设计,方法在有外部深度传感器可用时,可以无缝扩展到RGB-D SLAM。为了连续从实时摄像机重建高保真的3D场景,需要几项创新。首先,为了超越原始的3DGS算法,该算法需要从离线的Structure from Motion (SfM)系统获得准确的位姿,我们为3DGS制定了直接优化的摄像机跟踪,并表明这可以实现快速且稳健的跟踪,并具有广泛的收敛域。其次,通过利用高斯的显式特性,我们引入了几何验证和正则化,以处理增量3D密集重建中出现的歧义。最后,引入了一套完整的SLAM系统,该系统不仅在新视角合成和轨迹估计方面取得了最先进的成果,而且还能够重建微小甚至透明物体。
Gaussian Splatting SLAM - CVPR '24 Paper| Project Page| Code| Short Presentation
摘要:提出了将3D高斯Splatting(3DGS)技术首次应用于利用单个移动的单目或RGB-D相机进行增量式3D重建的方法。所介绍的同时定位与地图构建(SLAM)方法能够以实时3fps(每秒帧数)运行,采用高斯函数作为唯一的三维表示形式,这一统一的表示法不仅提高了追踪和映射的准确性和效率,还能进行高质量的渲染。
直接针对3D高斯进行优化的相机追踪方法
通过利用高斯函数的显式特性,引入了几何验证和规则化来处理增量式3D密集重建中出现的歧义。
介绍了一个完整的SLAM系统,不仅在新视角合成和轨迹估计方面达到了最先进的水平,而且还能重建微小甚至透明的物体。
2.1 相机跟踪精度
2.2 新视图渲染性能
2.3 消融实验
3. Gaussian-SLAM(Photo-SLAM) Photo-SLAM技术原理详解 == ORBSLAM+3dGS
(24年3月)
paper-> PhotoSLAM: Photo-realistic Dense SLAM with Gaussian Splatting
code:link
1.3.1 简单概括
Photo-SLAM: Real-time Simultaneous Localization and Photorealistic Mapping for Monocular, Stereo, and RGB-D Cameras -CVPR’24 Paper| Project Page|
摘要:提出一种新颖的SLAM框架,采用超原语图(hyper primitives map)。该框架同时利用显式几何特征进行定位,并学习隐式光度特征(implicit photometric features)来表征观测环境的纹理信息
。除了基于几何特征主动增稠超原语外,我们还引入了基于高斯金字塔的训练方法(Gaussian-Pyramid-based training),逐步学习多级特征,从而提高光度真实的映射性能。
1.3.2 论文全文解析
0. 摘要
本文提出了一种使用3D高斯函数作为场景表征的密集型同步定位与地图构建(SLAM)方法。本文的方法支持从实际世界中单摄像机RGBD视频进行实时重建和照片级真实渲染。为此,本文提出了一个新颖有效的策略,用于为新探测到的区域播种新的高斯函数,并且本文的有效在线优化与场景的大小无关,因此可以扩展到更大的场景。这一点是通过将场景划分成独立优化的子地图来实现的,这些子地图不需要长期保留在内存中。本文进一步通过最小化输入和渲染帧之间的光度和几何损失来实现对摄像机追踪模型的优化。使用3D高斯表示,实现了实时渲染高质量、逼真的实世界场景。在合成数据和真实世界数据集上的评估表明,本文的方法在地图构建、追踪和渲染方面,与现有的基于神经网络的密集SLAM方法相比,具有竞争性或更优的性能。
1. 引言
同步定位与地图构建(SLAM)在过去二十年一直是一个活跃的研究领域[15, 22]。这一旅程的一个主要成果是对各种场景表征的研究,旨在推进跟踪性能和地图构建能力,或者为了适应更为复杂的下游任务,如路径规划或语义理解。具体来说,早期的工作侧重于使用各种场景表征进行跟踪,如特征点云[14, 26, 42]、曲面点[surfs][56, 72]、深度图[45, 61]或隐式表征[13, 44, 46]。后来的工作更多地关注地图的质量和密度。随着像神经辐射场[40]这样的强大神经场景表征的出现,允许进行高保真的视图合成,密集神经SLAM方法[18, 34, 53, 63, 65, 66, 85, 89]得到了快速发展。尽管在场景表征质量上取得了显著提升,这些方法在小型合成场景和它们的重新渲染结果上仍然远未达到照片级真实感。
近期,基于高斯喷溅[25]的一种新型场景表征已被证明能够在渲染性能上与NeRFs持平,同时在渲染和优化方面的速度快了一个数量级。此外,这种场景表征可以直接解释并直接操作,这对许多下游任务来说是可取的。凭借这些优势,高斯喷溅表征适合应用于在线SLAM系统,满足实时需求,并为照片级真实感密集SLAM开辟了大门。
本文介绍了高斯-SLAM,这是一个密集型RGBD SLAM系统,使用3D高斯建立场景表征,该表征允许进行建图、跟踪以及交互式运行时间内的逼真再渲染。高斯-SLAM的高保真渲染输出示例如图1所示。总结来说,本文的贡献包括:
一种密集型RGBD SLAM方法,使用3D高斯构建场景表征,为真实世界场景提供最先进的渲染结果。
对高斯喷溅的扩展,可以更好地编码几何信息,并允许超越单摄像机设置中的神经辐射场的重建。
一种在线优化高斯喷溅的方法,可以处理地图作为子地图,并引入高效的播种和优化策略。
一个通过高斯喷溅场景表征进行帧到模型跟踪的跟踪器,通过光度和几何误差最小化实现。
2. 相关工作
密集视觉SLAM与在线地图构建。Curless和Levoy[11]的开创性工作为各种3D重建方法设定了基调,这些方法使用截断符号距离函数(TSDF)。在此基础上展开了一系列工作,通过高效实现和体积集成来提高速度[44],通过体素哈希[20,46,48]和八叉树数据结构[57]提高可扩展性,以及通过稀疏图像特征[4]进行跟踪和环路闭合[5,13,45,56]。为了解决深度图不可靠的问题,RoutedFusion[70]引入了一个基于学习的融合网络来更新体积网格中的TSDF。这一概念被NeuralFusion[71]和DI-Fusion[18]进一步发展,它们采用隐式学习进行场景表征,增强了其对异常值的鲁棒性。最近的研究已成功实现了仅使用RGB相机的密集在线重建[3,8,27,43,55,58,64],从而绕过了对深度数据的需求。
最近,测试时优化方法由于其即使适应未见场景的能力而变得流行。Continuous Neural Mapping[77],例如,采用了一种从一系列深度图中连续建图策略来学习场景表征。受Neural Radiance Fields[40]的启发,密集表面重建取得了巨大进展[47,67],和准确的姿态估计[2,29,52,69]。这些努力导致了综合性密集SLAM系统的开发[34,54,63,73,78,85,88,89],显示出追求精确可靠视觉SLAM的趋势。关于在线RGBD重建的全面综述可以在文献[90]中找到。
尽管最新的神经方法在合成数据上展现出了令人印象深刻的渲染能力,但在应用于实际数据时却遭遇挑战。此外,这些方法由于计算需求大、速度慢、以及无法有效地融合姿态更新,目前还不适合实际应用,因为神经表征依赖于位置编码。与此相反,本文的方法在真实数据上显示出了卓越的性能,具有竞争力的跟踪和运行时间,并使用了一种自然允许姿态更新的场景表征。
SLAM的场景表征。密集的3D场景表征大多是基于栅格的、基于点的、基于网络的或混合型的。在这些中,基于栅格的技术可能是研究最广泛的。它们进一步细分为使用密集栅格[3,9,11,28,44,64,70-73,86,87,89]、层次化八叉树[6,30,31,36,57,78]和体素哈希[13,20,41,46,67]进行的方法,这些都有助于高效的内存管理。栅格提供了简单快速的邻域查找和上下文整合的优点。然而,一个关键的限制是需要预定义栅格分辨率,在重建过程中不易调整,这可能导致空旷区域中内存使用低效,同时因分辨率限制而无法捕捉到更细微的细节。
基于点的方法解决了一些与网格相关的挑战,并已在3D重建中有效利用[5,7,10,21,24,56,72,83]。与网格分辨率不同,这些方法中的点密度不需要预先确定,可以自然地在场景中变化。此外,点集可以高效地围绕表面集中,而不在模拟空白空间上花费内存。这种适应性的权衡是查找邻近点的复杂性,因为点集缺乏结构化的连通性。在密集SLAM中,这一挑战可以通过将3D邻域搜索转化为2D问题,通过投影到关键帧[56,72],或者通过在网格结构中组织点[75]以加快搜索来缓解。
基于网络的方法为密集3D重建提供了一种连续的场景表征,通过使用基于坐标的网络[1,27,38,49,63,66,67,77,79,85]隐式建模。这种表征能够捕捉到高质量的地图和纹理。然而,它们通常不适用于在线场景重建,因为它们不能更新局部场景区域,也不能扩展到更大的场景。最近,一种结合了基于点和基于神经方法的优势的混合表征被提出[53]。尽管解决了一些表征的问题,但它在处理实际世界场景时仍存在挑战,并且不能无缝整合轨迹更新到场景表征中。
在这三个主要类别之外,一些研究探索了替代性的表征方法,如surfls [16,39] 和神经平面 [34,51]。参数化的表面元素通常不擅长建模一个灵活的形状模板,而特征平面在包含多个表面的场景重建中表现不佳,因为它们的表征过于压缩。最近,Kerbl等人[25]提出用3D高斯表示场景。高斯参数通过具有多视图监督的差分渲染进行优化。这种表征在渲染结果方面非常高效且令人印象深刻,但它是为完全观测的多视图环境量身定制的,并不很好地编码几何结构。与本文的工作同时进行的研究[74,80,81]关注于动态场景重建,[33]在追踪方面。然而,这些都是离线方法,不适用于单摄像头密集SLAM设置。
与此同时,几种方法[17,23,37,76]已经使用了高斯喷溅[25]进行SLAM。虽然大多数基于喷溅的方法使用类似于[25]的基于梯度的地图增密方法,本文采用了一种更受控的方法,通过精确阈值设置,利用快速最近邻搜索和 alpha 蒙版。此外,与所有同时进行的工作不同,本文的建图流程不需要在GPU内存中持有所有3D高斯,允许本文的方法扩展而不会随着覆盖区域的增加而放慢速度。此外,尽管在当前的工作中3D高斯被密集地播种,本文的颜色梯度和基于遮罩的播种策略允许在保持SOTA渲染质量的同时进行更稀疏的播种。最后,与[17,37,76]的方法不同,本文的动态重建不依赖于显式计算导数,并且在PyTorch中实现。
3. 方法
本文方法的核心思想是使用3D高斯作为主要构件来构建地图,使得单摄像头RGBD神经SLAM可扩展、更快,并且在真实世界数据集上实现更好的渲染效果。本文引入了一个新颖的、计算成本有界的顺序单摄像机设置高效建图流程,以适应传统3D高斯喷溅渲染场景的挑战。为了在保持准确几何的情况下启用传统的高斯喷溅,本文通过添加差分深度渲染,显式计算高斯参数的梯度来扩展它们。最终,本文开发了一种新颖的、依靠本文3D地图表征的帧到模型跟踪方法。图2提供了本文方法的概览,从经典的高斯喷溅[25]开始,继续进行地图构建和优化、几何编码和跟踪。
3.1 高斯喷溅
高斯喷溅[25]是一种有效的3D场景表示方法,具有新视角合成的能力。这种方法以其速度而著称,而不会损害渲染质量。在[25]中,3D高斯从场景的稀疏结构从运动点云初始化。通过从不同角度观察场景,高斯参数使用可微分渲染进行优化。在训练期间,根据一组启发式规则,3D高斯会根据需要适应性地添加或移除,以更好地渲染图像。
3.2 基于3D高斯的地图
为了避免灾难性遗忘和过度拟合,并在单摄像头流场景中保持计算上的可行性,本文将输入处理为块(子地图)。每个子地图覆盖了观测它的若干关键帧,并以独立的3D高斯点云形式表示。正式地,本文定义一个子地图高斯点云
P
s
P^s
Ps 作为N个3D高斯的集合:
文件 1 包含的是一个数学公式,具体内容如下:
P s = { G ( μ i s , Σ i s , o i s , C i s ) ∣ i = 1 , … , N } . P^{s}=\{G(\mu^{s}_{i},\Sigma^{s}_{i},o^{s}_{i},C^{s}_{i})|i=1,\ldots,N\}. Ps={G(μis,Σis,ois,Cis)∣i=1,…,N}.
子地图初始化
子地图从第一帧开始,并随新进入的关键帧逐步增长。随着探索区域的扩大,需要新的子地图来覆盖未见区域,并避免在GPU内存中存储所有高斯。本文不是使用固定间隔来创建新子地图[9,13,35],而是采用一种依赖于相机运动[5,60]的初始化策略。具体来说,当当前帧的估计平移相对于活跃子地图的第一帧超过预定阈值 d t h r e d_{thre} dthre,或估计的欧拉角超过 θ t h r e \theta_{thre} θthre 时,就会创建一个新的子地图。在任何时候,只有活跃的子地图会被处理。这种方法限制了计算成本,并确保在探索更大区域时优化依然保持高速。
子地图构建
每个新的关键帧都可能向活跃子地图添加3D高斯,以描述场景新观测到的部分。在当前关键帧的位姿估计之后,会根据关键帧RGBD测量结果计算出密集点云。在每个子地图的开始,本文从具有高颜色梯度的关键帧点云中均匀采样 M u M_{u} Mu 点和从颜色梯度低于阈值 α n \alpha_{n} αn 的区域采样 M k M_{k} Mk 点。这样可以在3D高斯稀疏覆盖的区域增长地图。新的高斯通过采样点添加到子地图中,这些采样点在当前子地图的搜索半径 ρ \rho ρ 内没有邻居。新的高斯是各向异性的,它们的尺度基于活跃子地图内最近邻距离定义。这种增密策略与[25]中的方法大相径庭,后者是在优化期间根据梯度值添加和剪枝新的高斯,并且对高斯数量的控制更为精细。
子地图优化
在活跃子地图中的所有高斯每次有新的高斯添加到子地图时都会一起优化固定次数的迭代,以最小化损失(12)。本文不会克隆或剪枝高斯,以便在优化期间保持从深度传感器获得的几何密度,减少计算时间,并更好地控制高斯数量。本文优化活跃子地图以渲染其所有关键帧的深度和颜色,直接优化RGB颜色而不使用球面谐波以加速优化。在高斯喷溅[25]中,场景表征会在所有训练视图上经过多次迭代优化。然而,这种方法不适合速度至关重要的SLAM设置。天真地用相同的迭代次数优化所有关键帧会导致欠拟合或过度的优化时间。本文通过仅优化子地图的关键帧解决这一问题,在优化迭代中约40%的时间是新的关键帧。
请注意,文件中提到的“损失(12)”可能是指文档中的某个特定公式,但由于没有提供具体的公式编号12,所以无法给出具体的公式内容。如果需要进一步的公式内容,可能需要查看原始文档中的公式(12)。
3.3 几何和颜色编码
虽然高斯喷溅[25]在渲染图像方面表现良好,但由于没有直接的深度监督,渲染的深度图的准确性有限。本文通过一个额外的深度损失来解决这个问题。为了渲染像素 i 处的深度
D
i
D_i
Di ,本文计算受M个有序高斯影响的深度:
3.4 跟踪
本文执行基于建图场景的帧到模型跟踪。本文以恒速假设初始化当前摄像机位_i$
4 实验
实验设置和方法对比:
本文首先描述了实验设置,然后用本方法对比最先进的密集神经RGBD SLAM方法,并在合成[59]和现实世界数据集[12,62,82]上进行了评估。此外,本文还将本方法与发布源代码的同时期工作进行了比较。报告的结果是3次运行的平均值。表格中突出显示了最佳结果,分别用第一、第二、第三来标识。
实施细节:
- 本文设置 M u = 600000 M_{u}=600000 Mu=600000对于Replica[59],100000对于TUM-RGBD[62],和400000对于ScanNet++[82]。
- M c M_{c} Mc 对所有数据集设置为50000。
- 对于子地图中的第一个关键帧,建图迭代次数设置为Replica1000次,TUM-RGBD和ScanNet100次,以及ScanNet++500次。
- 对于子地图中后续的关键帧,迭代次数在所有数据集中统一设置为100次。
- 每5帧考虑为所有数据集的一个关键帧。
- 在选择子序列关键帧的点候选时,本文使用阿尔法阈值 α n = 0.6 \alpha_{n}=0.6 αn=0.6 。
- 本文使用FAISS[19]GPU实现来寻找最近邻点,选择添加为新高斯的点候选,并为所有数据集设置搜索半径$ \rho=0.01m$ 。
- 对于新子地图的初始化,设置 d t h r e = 0.5 m d_{thre}=0.5m dthre=0.5m和 θ t h r e = 5 0 ∘ \theta_{thre}=50^{\circ} θthre=50∘ 。
- 在子地图优化中,获得最佳结果的 λ c o l o r , λ r e g \lambda_{color},\lambda_{reg} λcolor,λreg 和 λ d e p t h \lambda_{depth} λdepth 均设置为1。
- 在对新增加的关键帧进行子地图优化时,至少有40%的建图迭代在新的关键帧上进行。
- 为了网格化场景,本文每隔五帧渲染深度和颜色,并使用TSDFFusion[11],体素大小为1厘米,类似于[53]。
- 更多细节在补充材料中提供。
数据集:
Replica数据集[59]包含了一系列高质量的室内场景三维重建。本文利用Sucar等人[63]收集的公开可用数据集,该数据集提供了RGBD传感器的轨迹。此外,本文证明了本框架在真实世界数据上达到了最新技术水平(SOTA)的结果,这些数据使用TUM-RGBD[62]、ScanNet[12]和ScanNet++[82]数据集。TUM-RGBD的位姿是使用外部运动捕捉系统捕获的,而ScanNet则使用BundleFusion[13]估计的位姿,ScanNet++通过注册图像与激光扫描获得位姿。由于ScanNet++不是专门为基准测试神经SLAM而设计的,它的摄像机移动范围更大。因此,本文选择了5个场景,在轨迹上前250帧平滑,用于基准测试。
评估指标:
为了评估跟踪精度,本文使用ATE RMSE[62],对于渲染本文计算PSNR、SSIM[68]和LPIPS[84]。所有渲染指标都是通过在估计轨迹上渲染全分辨率图像,并且采用与[53]相似的建图间隔进行评估的。本文还按照[53]的方法来测量使用行进立方体[32]生成的网格上的重建性能。重建也使用F1-score一一精度(Precision,P)和召回率(Recall,R)的调和平均值进行评估。本文为所有评估设置了1厘米的距离阈值。本文还提供了[89]中用于未见视图的深度L1指标。
基准方法:
本文主要将本方法与现有的最新技术(NICE-SLAM[89]、Vox-Fusion[78]、
渲染性能:
表1比较了渲染性能,并显示了本方法在所有现有的密集神经RGBDSLAM方法上的改进。表2和表3展示了本方法在真实世界数据集上的最新渲染性能。图3显示了一些精选的全分辨率渲染,其中高斯-SLAM展现了更精确的细节。关于新视角的定性结果以视频形式在补充材料中提供。
跟踪性能:在表4、图4、表5和表6中,本文报告了跟踪准确性
。本方法在Replica[59]上超过最近的竞争对手14%。在TUM-RGBD数据集[62]上,Gaussian-SLAM也优于所有基准方法。在ScanNet数据集上,由于低质量的深度图和大量的运动模糊
,本方法表现出漂移。在ScanNet++上,本文的高斯喷溅基础方法的性能显著优于基于NeRF的方法。此外,与其他方法相比,Gaussian-SLAM展现出更强的鲁棒性。重建性能:在表7中,本文将本方法与NICE-SLAM[89]、Vox-Fusion[78]、ESLAM[34]、Point-SLAM[53]以及同时期的SplaTAM[23]在Replica数据集[59]上的几何重建精度进行了比较。本方法的性能与其他现有的密集SLAM方法相当
。
运行时间比较:在表8中,本文比较了在Replica office0场景上的运行时间使用。本文报告了每次迭代和每帧的运行时间。每帧运行时间是指所有建图帧上花费的优化时间除以序列长度,而每次迭代的运行时间是平均建图迭代时间。消融研究:在图5中,本文分析了 阿尔法掩码$M_{alpha}$ 和内点掩码 $M_{inlier}$ 对于TUM-RGBD fr1/desk场景的跟踪性能的有效性
。它展示了这两种掩码的有效性,其中软阿尔法掩码对性能影响更大
。
局限性和未来工作:虽然本文已经有效地使用了3D高斯算法进行在线密集SLAM,但在有大量运动模糊和低质量深度图的数据上跟踪摄像机轨迹仍然具有挑战性。我们也认为,像关键帧选择策略这样的一些经验性超参数可以进行测试时自适应或学习。最后,在没有额外技术如闭环检测或捆绑调整的情况下,轨迹漂移在帧对模型的跟踪中是不可避免的,这可能是未来工作中一个有趣的研究方向。
5 结论
本文介绍了Gaussian-SLAM,这是一个基于3D高斯喷溅作为场景表征的密集SLAM系统,该系统能够实现前所未有的再渲染能力。本文提出了高效播种和在线优化3D高斯参数的有效策略,他们在子图中的组织以获得更好的可扩展性,以及一个帧对模型的跟踪算法。与以前的最新技术神经SLAM系统如Point-SLAM[53]相比,我们实现了更快的跟踪和建图,同时在合成和真实世界的数据集上获得了更好的渲染结果。证明了Gaussian-SLAM在渲染、摄像机姿态估计和场景重建方面在多种数据集上都取得了顶尖的结果。