在本研究中,联合团队实现了以下创新:首个基于3D高斯泼溅(3D Gaussian Splatting, 3DGS)的密集RGB-D SLAM方法,利用快速的泼溅技术来加速地图优化和位姿跟踪,实现实时和逼真的重建性能;提出自适应的3D高斯扩展策略,以高效地重建新观察到的场景几何结构,并开发了一种从粗到细的技术,来选择可靠的3D高斯,以提高相机姿态估计的精度;在Replica和TUM-RGBD数据集上,以上方法在跟踪和地图构建方面任务取得了优异性能,并且能够以8.43 FPS的帧率运行,实现了效率和精度之间的良好平衡。
GS-SLAM实验效果演示
| 基本方法
给定相机输入的RGB-D流{𝐼𝑖,𝐷𝑖}𝑖=1𝑀,已知RGB-D相机内参K∈R3×3,GS-SLAM利用RGB-D数据重建相机位姿{𝑃𝑖}和3D高斯泼溅场景表征𝐺={𝐺𝑖:(𝑋𝑖,𝛴𝑖,Λ𝑖,𝑌𝑖)∣𝑖=1,...,𝑁}
如下图所示,研究人员通过最初的观测通过反投影初始化3D高斯点,每个高斯球的表征𝐺𝑖Gi被定义为位置𝑋𝑖∈𝑅3,3D协方差矩阵𝛴𝑖∈𝑅3×3,不透明度Λ𝑖∈𝑅,1阶球谐系数𝑌𝑖∈𝑅12。在建图中,根据关键帧的相机位姿估计,提出了一种自适应的扩展策略,增加或者删除有噪声的3D高斯,以有效的重建新观测场景的几何形状,并且同时改善先前观察区域的建图效果。针对每个输入帧的相机位姿估计,研究人员推导了一个RGB-D损失的反向传播优化解析公式。同时,进一步引入了一种有效的从粗到细的位姿优化技术,选取可靠的3D高斯进行计算,以最大限度地减少渲染损失,从而实现高效的位姿估计。
| 3D高斯场景表征
每个高斯球的表征𝐺𝑖被定义为位置𝐾∈𝑅3×3,3D协方差矩阵𝛴𝑖∈𝑅3×3,不透明度Λ𝑖∈𝑅,1阶球谐系数𝑌𝑖∈𝑅12。为了降低3D高斯的学习复杂度,3D高斯的协方差使用以下参数表示:𝛴=𝑅𝑆𝑆𝑇𝑅𝑇, 其中,𝑆∈𝑅3是一个三维的尺度向量,𝑅∈𝑅3×3是旋转矩阵,使用一个四维的四元数储存。
颜色和深度飞溅渲染
在得到优化后的3D高斯场景表征之后,在给定相机姿态𝑃={𝑅,𝑡}的情况下,将3D高斯G投影到2D图像平面上进行渲染:
𝛴′=𝐽𝑃−1𝛴𝑃−𝑇𝐽𝑇, 其中,J是相机投影函数的仿射近似的雅可比矩阵。将3D高斯投影到图像平面上,一个像素的颜色颜色是通过将对该像素有影响的高斯按照深度顺序排序,然后执行从前到后的混合渲染来生成的,具体如下: 𝐶^=∑𝑖∈𝑁𝑐𝑖𝛼𝑖∏𝑗=1𝑖−1(1−𝛼𝑗),
,其中,𝑐𝑖表示从球谐系数𝑌Y中学出的第𝑖个3D高斯的颜色,𝛼𝑖是通过学习到的不透明度Λ𝑖和具有协方差Σ′的2D高斯计算得到的密度。同样,深度也是通过渲染的到的:𝐷^=∑𝑖∈𝑁𝑑𝑖𝛼𝑖∏𝑗=1𝑖−1(1−𝛼𝑗),
其中,𝑑𝑖表示第𝑖个3D高斯中心的深度,它是通过在相机坐标系中投影到z轴上得到的。
| 自适应3D高斯扩展建图
3D高斯场景表示在每个选定的关键帧上进行更新和建图,以实现建图的稳定性。在每个选定关键帧的估计相机姿态确定的情况下,联合团队应用所提出的自适应扩展策略,从整个场景表示中添加新的或删除存在噪声的3D高斯。在渲染分辨率为的RGB-D图像基础上,观测深度真值D、颜色真值C、最小化几何深度损失Ld和光度误差 𝐿𝑐, 𝐿𝑐=∑𝑚=1𝐻𝑊∣𝐶𝑚−𝐶^𝑚∣,𝐿𝑑=∑𝑚=1𝐻𝑊∣𝐷𝑚−𝐷^𝑚∣.
损失函数优化了所有有利于关键帧图像渲染的3D高斯参数。
自适应3D高斯扩展策略
在RGB-D序列的第一帧中,研究人员首先从分辨率为H×W的完整图像中均匀采样一半像素,并将它们反向投影到具有相应深度观测值D的3D点X,将RGB颜色初始化为0阶球谐系数,创建3D高斯场景表示。不透明度设置为预定义值,协方差则根据空间点密度来设置,即:{𝐺𝑖=(𝑃𝑖,𝛴𝑖𝑛𝑖𝑡,Λ𝑖𝑛𝑖𝑡,𝐶𝑖)∣𝑖=1,...,𝑀}
其中,M等于HW/2。3D高斯在首次使用RGB-D图像进行渲染损失优化时进行初始化。值得关注的是,只有一半的像素用于初始化场景,为进行自适应密度控制留出了空间,能够将大的3D高斯分裂成更小的3D高斯,或者将它们沿不同的方向进行复制,以捕捉缺失的几何细节。
添加3D高斯步骤
为了获得环境的完整地图,3D高斯场景表示应能模拟新观察区域的几何形状和外观。在每个关键帧,研究人员首先使用历史3D高斯渲染RGB-D图像,并为每个像素计算累积不透明度𝑇=∑𝑖∈𝑁𝛼𝑖∏𝑗=1𝑖−1(1−𝛼𝑗)。若一个像素的累积不透明度𝑀M太低,或者其渲染深度与观测深度相差太远,即将其标记为不可靠像素𝑥𝑢𝑛,即:𝑇<𝜏𝑇 or∣𝐷−𝐷^∣>𝜏𝐷.
这些选定的不可靠像素主要捕捉新观察到的区域。随后,研究人员将这些不可靠像素反向投影到3D点𝑃𝑢𝑛,并且在按照初始化方式,添加一组新的3D高斯到场景表示中,以建模新观察到的区域。
删除3D高斯步骤
由于在建图优化过程中,高斯的自适应控制不稳定,导致一些浮空3D高斯的出现。将进一步导致生成的密集地图质量低下,渲染图像中包含大量伪影。
为了解决此问题,在添加新的3D高斯之后,研究人员检查当前相机视锥体中所有可见的3D高斯,并显著降低那些位置不在场景表面附近的3D高斯的不透明度Λ𝑖。具体来说,对于每个可见的3D高斯,从相机原点oO和其位置𝑋𝑖=(𝑥𝑖,𝑦𝑖,𝑧𝑖)绘制一条射线𝑟(𝑡),即𝑟(𝑡)=𝑜+𝑡(𝑋𝑖−𝑜)。随后,可以找到一个像素坐标(𝑢,𝑣),该射线与图像平面相交,对应的深度观测值为D。
通过以下方式降低其不透明度:𝐺𝑖:Λ𝑖⇒𝐺𝑖:𝜂Λ𝑖, if 𝐷−𝑑𝑖𝑠𝑡(𝑋𝑖,𝑃𝑢𝑣)>𝛾,
其中,𝑃𝑢𝑣是使用相机的内参和外参计算出的相交像素的世界坐标。𝑑𝑖𝑠𝑡(⋅,⋅)是欧几里得距离,而𝜂(远小于1)和𝛾是超参数。降低了位于场景表面前的浮空3D高斯不透明度,同时低于0.005的3D高斯将会被直接删除,以使新添加的3D高斯得到良好优化。
自适应3D高斯扩展策略示意图
| 从粗到细的相机跟踪
在本研究工作中,并行的相机跟踪阶段首先采用常见的直接恒定速度假设来初始化新的相机位姿。这个假设基于倒数第二个位姿和最后一个位姿之间的相对变换,确定最后已知的位姿。通过最小化渲染颜色损失来优化精确的相机位姿𝑃P,即:𝐿𝑡𝑟𝑎𝑐𝑘=∑𝑚=1𝑀∣𝐶𝑚−𝐶^𝑚∣1, min𝑅,𝑡(𝐿𝑡𝑟𝑎𝑐𝑘), 其中,M是用于渲染的采样像素的数量。
根据高斯泼溅渲染公式,研究人员观察到相机位姿𝑃P的梯度与三个中间变量有关:P、P以及高斯P的投影坐标P。通过应用链式法则,得到了相机位姿P的解析公式:
因图像中伪影的存在,通过图像中的所有像素来优化相机位姿可能会导致相机跟踪偏离。为了解决这个问题,在每帧的可微分姿态估计步骤中,研究人员首先利用图像的规律性,仅渲染一组稀疏的像素,并优化跟踪损失以获得粗略的相机位姿。这个粗略优化步骤显著减轻了细节伪影的影响。进而,研究人员使用这个粗略的相机位姿和深度观测来选择可靠的3D高斯,这为渲染具有清晰几何结构的信息丰富区域提供了指导,通过在新渲染像素上进一步优化跟踪损失,细化粗略估计的相机姿态。
从粗到细的算法优化流程
| 实验结果
联合团队在Replica、TUM-RGBD数据集上全面测评了GS-SLAM的相机追踪和地图重建质量,所提出的方法在追踪绝对轨迹误差ATE (cm)、重建深度L1误差 (cm)、准确率ACC (cm)、完成度Completion (cm)和完成比率 Completion ratio (%)方面,与现有的先进实时方法相比取得了有竞争力的结果,并且在渲染质量PSNR、SSIM、LPIPS和渲染速度(fps)方面,超过了现有的先进实时方法。
高质量的图像渲染,200x渲染速度提升
在Replica数据集上,联合团队提出的GS-SLAM与现有最先进(SOTA)方法的渲染可视化结果。可见GS-SLAM能够生成比其他方法更高质量和逼真的图像,在物体边界周围表现尤为明显。
在Replica数据集上的渲染性能。GS-SLAM渲染指标超越了现有的所有密集神经隐式RGB-D方法,GS-SLAM平均达到386 FPS。
有竞争力的相机轨迹追踪
在Replica数据集上,GS-SLAM与现有最先进(SOTA)方法的跟踪比较(ATE RMSE [cm])。表格中上半部分方法低于5 FPS。
在TUM-RGBD数据集上,GS-SLAM与现有最先进(SOTA)方法的跟踪比较(ATE RMSE [cm])。
有竞争力的相机重建效果
在Replica数据集上,GS-SLAM与最先进方法的重建准确率ACC,完成度Comp,完成率Comp(%)和深度L1对比情况
在Replica数据集上,GS-SLAM与最先进方法的重建可视化对比