点击下方卡片,关注“3D视觉之心”公众号
第一时间获取3D视觉干货
>>点击进入→3D视觉之心技术交流群
写在前面&笔者的个人理解
最近的工作表明,基于3D高斯的SLAM能够实现高质量的重建、准确的姿态估计和场景的实时渲染。然而,这些方法是建立在大量冗余的3D高斯椭球上的,导致高内存和存储成本以及慢训练速度。为了解决这一限制,我们提出了一种紧凑的3D高斯飞溅SLAM系统,该系统减少了高斯椭球的数量和参数大小。首先提出了一种基于滑动窗口的掩蔽策略来减少冗余椭球。然后,我们观察到大多数3D高斯椭球的协方差矩阵(几何)非常相似,这促使我们提出了一种新的几何码本来压缩3D高斯几何属性,即参数。利用具有重投影损失的全局束平差方法,实现了稳健、准确的姿态估计。大量实验表明,我们的方法在保持最先进的场景表示质量的同时,实现了更快的训练和渲染速度。
总结来说,本文的主要贡献如下:
我们提出了一种新的基于GS的SLAM系统,该系统具有紧凑的高斯场景表示,实现了快速的训练和渲染速度、准确的姿态估计,并显著提高了存储效率;
提出了一种新的基于滑动窗口的在线mask方法,以消除冗余高斯椭球的数量,同时在训练过程中实现高保真度;
我们观察并分析了三维高斯椭球的几何相似性,并提出了一种基于码本的方法来有效地恢复SLAM系统运行过程中每个高斯点的几何。针对摄像机跟踪性能相对较低的问题,提出了一种基于关键帧的全局BA方法,该方法具有重投影损失;
我们在不同的数据集上进行了全面的实验,渲染速度提高了近176%,内存使用压缩率超过1.97倍。
相关工作回顾
密集视觉SLAM和定位。SLAM和定位在过去二十年中已经成为一个活跃的领域。DTAM是第一种实现密集场景重建的方法。Kinectfusion使用投影迭代隐藏点(ICP)进行相机跟踪。一些基于学习的方法将传统的几何框架与深度学习网络相结合,以实现精确的相机跟踪和映射,如DROID-SLAM。基于NeRF的SLAM。随着神经辐射场(NeRF)的提出,许多研究人员探索将隐式方法应用于SLAM系统。iMAP是第一种使用单个多层感知器(MLP)来表示场景的方法,NICE-SLAM使用可学习的分层特征网格。Vox Fusion采用八叉树架构实现动态地图可扩展性。ESLAM和Co-SLAM进一步改进了具有三平面和联合坐标参数编码的场景表示。point-SLAM[29]使用神经点云进行场景表示。我们的方法没有使用神经隐式特征来表示地图,而是使用显式3D高斯表示,这可以使用基于飞溅的光栅化显著提高渲染速度。基于GS的SLAM。最近,3D高斯散射(3DGS)使用3D高斯作为基元进行实时神经渲染。3DGS利用高度优化的自定义CUDA内核和新颖的算法方法,在不牺牲图像质量的情况下显著提高了渲染速度。SplaTAM、GS-SLAM、高斯SLAM、高斯飞溅SLAM是成功地将3D高斯飞溅的优势与SLAM相结合的先驱作品。这些方法实现了快速的渲染速度和高保真度重建性能。然而,训练速度相对较慢,这对SLAM来说至关重要,因为它是一个在线操作系统。内存和存储的使用量也很高,这使得它们很难在现实世界和手持设备中使用。
本文的具体方法

本文的整体架构如图2所示。
3D Gaussian Scene Representation
受[13]的启发,我们将整个场景表示为一组3D高斯椭球。每个三维高斯都与三维属性(位置、不透明度、比例和旋转)相关联。我们的高斯椭球由世界空间中定义的全三维协方差矩阵∑定义(归一化):

然后,我们使用3D高斯椭球体,使用飞溅技术来渲染2D图像。然后我们可以在相机坐标中公式化协方差矩阵∑′:

对于每个像素p,使用以下公式计算并混合所有高斯椭球的颜色和不透明度:

我们还提出了一个类似的深度渲染公式:

我们还渲染轮廓图像以确定可见性:

Sliding Window-based Mask
现有的基于GS的SLAM系统,如SplaTAM和GS-SLAM,直接使用原始3DGS进行场景表示,实现了良好的图像质量。然而,我们观察到,3DGS通过SLAM系统操作创建了许多冗余的3D高斯椭球(×1.52高斯椭球在图3中显示出相似的性能),但两者都没有发现这一点。这最终导致训练速度、内存和存储使用方面的性能较差,这对在线SLAM系统至关重要。

为此,我们提出了一种基于滑动窗口的可学习掩模策略,以通过SLAM系统操作去除冗余的3D高斯椭球。与原来只考虑不透明度的致密化方法相比,我们的方法同时考虑了高斯椭球体的体积V和不透明度。我们引入了一个可学习的掩码参数和相应的二进制掩码。

受[1]的启发,我们使用停止梯度算子sig来计算二进制掩模的梯度。I和Sig表示指标和sigmoid函数。这种掩模策略的公式使我们能够有效地结合高斯椭球体的体积和不透明度的影响。我们公式化掩模的损失函数Lm:

Geometry Codebook
在本节中,我们分析并观察SLAM系统创建的高斯椭球的几何相似性。然后,我们提出了一种可学习的码本,并采用残差矢量量化方法来降低计算复杂度和内存使用,进一步提高训练和渲染速度。对于基于GS的SLAM系统,场景由多个具有3D几何属性(缩放和旋转矩阵S,R)的小高斯椭球组成。考虑到三维高斯椭球G1、G2符合无偏高斯分布N(0,∑1),N(0、∑2),我们采用Kullback-Leibler散度来分析三维高斯椭球的几何相似性:

我们进行了广泛的实验,并在表1和图5中展示了我们的结果。我们可以看到,在KL发散的小范围内,3D高斯椭球体的百分比显著提高,这表明了整个场景中共享的3D高斯椭球的相似性。我们的实验还表明,基于GS的SLAM系统的3D高斯相似性大于原始3DGS。这可能是由于SLAM系统的在线优化策略。仅使用当前帧和历史关键帧来优化3D高斯属性,这将加剧几何体的相似性。基于相似性,我们提出了一种可学习的码本来压缩几何属性(缩放和旋转),如图4所示。受SoundStream和Encodec的启发,我们结合了残差矢量量化(R-VQ)来压缩缩放和旋转。它级联了VQ的L级,公式如下:





Tracking and Global Bundle Adjustment
我们的跟踪和束调整是通过最小化我们的目标函数来执行的。通过姿势参数的恒定速度向前投影,为新的时间步长初始化相机姿势。颜色和深度损失定义为:

由于3D高斯也基于点云表示,我们首次引入了这种损失,以进一步提高场景的几何表示和一致性。我们用SIFT特征来表示重投影误差:

跟踪损失如下:

全局Bundle调整。为了实现全局一致性和准确性,我们的系统维护的全局关键帧数据库比其他基于GS的SLAM系统大得多。我们从全局关键帧数据库中随机采样总共N条光线,以优化场景表示和相机姿势。这一阶段优化了类似于跟踪损失的损失,我们还将SSIM损失添加到RGB渲染中。执行全局束调整以优化相机姿势的场景表示。我们的全局BA方法可以有效地减少累积误差,增强姿态估计的鲁棒性,特别是对于长序列和大场景。
实验结果和可视化





参考
[1] Compact 3D Gaussian Splatting For Dense Visual SLAM
【3D视觉之心】技术交流群
3D视觉之心是面向3D视觉感知方向相关的交流社区,由业内顶尖的3D视觉团队创办!聚焦三维重建、Nerf、点云处理、视觉SLAM、激光SLAM、多传感器标定、多传感器融合、深度估计、摄影几何、求职交流等方向。扫码添加小助理微信邀请入群,备注:学校/公司+方向+昵称(快速入群方式)
扫码添加小助理进群
【3D视觉之心】知识星球
3D视觉之心知识星球主打3D感知全技术栈学习,星球内部形成了视觉/激光/多传感器融合SLAM、传感器标定、点云处理与重建、视觉三维重建、NeRF与Gaussian Splatting、结构光、工业视觉、高精地图等近15个全栈学习路线,每天分享干货、代码与论文,星球内嘉宾日常答疑解惑,交流工作与职场问题。