0%

论文精读——3DGS-SLAM

本文是近期阅读 3D Gaussian Splatting SLAM 相关论文的精度笔记。

本文主要关注各个 GS-SLAM 的实现方法。

一、GS-SLAM: Dense Visual SLAM with 3D Gaussian Splatting

摘要翻译

本文中,我们介绍了GS-SLAM,一种首先使用3D高斯表达的SLAM系统。它有助于更好地平衡效率和精度。以最近其他使用神经隐式表达的SLAM方法相比,我们的方法使用了实时可微分的抛洒渲染管线,它可以打打加快荼毒优化和RGB-D重渲染。具体来说,我们提出了一种自适应扩展策略,该策略添加新的或删除带有噪声的3D高斯,以有效的地重建新的观测场景几何结构并改进先前观测区域的建图。这个策略对于扩展3D高斯表达以重建整个场景而不是现有方法的合成静态物体是至关重要的。此外,在位姿跟踪线程中,我们设计了一种有效的由粗到精的技术去选择可靠的3D高斯表达来优化相机位姿,从而减少了运行时间并实现了鲁棒的估计。与Replica、TUM-RGBD数据集上现有的SOTA实时方法相比,我们的方法实现了具有竞争力的性能。源代码将会很快发布。

方法介绍

Overview

image-20240116110242802

1、3D Gaussian Scene Representation

这部分直接沿用 3DGS 的场景表达。

2、Adaptive 3D Gaussian Expanding Mapping

本文提出一种自适应的高斯扩展策略,具体来说分为 添加删除 两个步骤。

  1. 添加步骤:当某个像素的累计不透明度太低,或者渲染深度与观测深度差距太多时则添加 Gaussian。

  2. 删除步骤:通过相机的观测截台面,如果 Gaussian 不在物体表面附近,则降低其不透明度。

    image-20240116111213151

3、Tracking and Bundle Adjustment

  1. Tracking:

    本文的 Tracking 部分主要采用 匀速模型 作为假设进行初始化。通过光度损失对 Tracking 进行优化:

    同时,本文为了 加速位姿优化 的速度,推导了位姿估计的微分方程:

    实际过程中,由于 $\frac{d(\mathbf{KPX}_i)}{d\mathbf{P}D_i}$ 起到决定作用,故忽略 $\frac{d(\mathbf{JP}^{-1}\mathbf{\Sigma P}^{-T}\mathbf{J}^T)}{d\mathbf{P}}$ 项以加速。

  2. Coarse-to-Fine Camera Tracking:

    本文提出的粗糙到精细的策略:

    1. Coarse:首先在均匀采样的图像坐标上渲染一个分辨率为 $H/2 × W/2$的粗略图像 $\hat{I}_c$,然后优化公式中的跟踪损失,进行 $T_c$ 次迭代,得到相机姿态 $P_c$。
    2. Fine:通过 Adaptive 3D Gaussian Expanding Mapping 所提出的方法进行进一步的优化迭代。
  3. Bundle Adjustment:

    迭代过程前半部分仅优化场景表达,后半部分则场景和位姿联合优化。最终精确相机位姿的优化:

二、Gaussian-SLAM: Photo-realistic Dense SLAM with Gaussian Splatting

摘要翻译

我们提出了一种新的稠密SLAM方法,该方法使用高斯飞溅作为场景表达。这种新的表示方式实现了交互时间重建以及真实世界和合成场景的图像真实渲染。我们提出了一种播种和优化高斯飞溅的新策略,以将其使用范围从多视点离线场景扩展到顺序单目RGB-D的输入数据设置。此外,我们扩展了高斯飞溅的编码几何体,并对这种场景表示进行了跟踪实验。我们的方法在真实世界和合成数据集上实现了SOTA的渲染质量,同时在在重建性能和运行时间方面都具有竞争力。

方法介绍

Overview

image-20240116112910856

1、3D Gaussian-based Map

本文为了 提高计算效率 以及 防止遗忘问题 ,地图表示采用 多个子图 拼接的方式表达。后续的添加和优化 仅在当前 Active sub-map 进行。

  1. Building Sub-maps Progressively:

    播种高斯策略:在 物体表面以及物体表面后面 各播种一个。

  2. Sub-map Optimization:

    每次有新的高斯就优化子图,新的子图添加所优化的次数取决于深度和颜色;本文方法不使用原高斯的 clone 和 prune,应该是为了加速,同时为了不破坏深度传感器获取的几何信息。

    原高斯对整个场景进行优化会造成优化时间过长,对于SLAM系统来说过短的优化时间又有可能造成优化效果不佳。所以本文是在 active 子图中的所有关键帧进行优化的。

2、Encoding Geometry and Color

对颜色和深度的损失如下:

除了上述损失外,本文添加了 正则项损失,以抑制高斯尺度爆炸问题 ,该损失 限制 Gaussian 尺度不能超过阈值 $\gamma$ ,最终损失如下:

3、Tracking

本文采用 匀速运动模型 假设进行初始化。

后续因为 Tracking 的性能不足,使用了 GT 先映射位姿然后再 Tracking 的方法。这里是否不合理?

三、SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM

摘要翻译

稠密SLAM对于具体场景的理解是至关重要的。最近的工作表明,3D高斯可以使用多个位姿的相机进行高质量的场景重建和实时渲染。在这种情况下,我们首次展示了通过3D高斯表示场景可以使用单个不具位姿的单目RGB-D相机实现稠密SLAM。我们的方法SplaTAM解决了先前基于辐射场表示的局限性,包括快速渲染和优化、确定区域是否先前已经被建图的能力,以及通过添加更多的高斯来进行结构化地图扩展。我们使用在线跟踪和建图的管道,同时对其进行裁剪,以专门使用底层高斯表示和借助微分渲染进行轮廓引导优化。大量实验表明,SplaTAM在相机位姿估计、地图重建和新视图合唱方面实现了高达2倍的先进性能,证明了其由于现有方法,同时允许实时渲染高分辨率稠密三维地图。

方法介绍

Overview

image-20240116153655573

1、Gaussian Map Representation

所作的简化:只使用视图独立的颜色并强制高斯的各向同性。

根据不透明度加权的标准高斯方程,得到每个高斯影响 3D 空间中的一个点 $x$ :

2、Differentiable Rendering via Splatting

颜色和深度的渲染方程不变:

额外多了一项 silhouetee image 项,去辨别轮廓的可见性,其实就是不透明度的累加:

3、Initialization

第一帧跳过 Tracking 过程,然后将位姿设为单位矩阵。在 densification 过程,由于渲染轮廓都是空,故所有像素都用于初始化新的高斯。

4、Camera Tracking

本文采用 匀速运动模型 作为下一帧的初始化位姿。然后通过优化损失函数进行 Tracking,这部分 $S(p)$ 部分是为了仅优化可见性轮廓较好的部分,这部分步骤了地图认知的不确定性

5、Gaussian Densification

这部分需要对地图密度不足的部分添加新的 Gaussian,添加的条件主要有两个,轮廓可见性 $S(p)$ ,以及深度误差,对于 Gaussian 较好的部分采用掩码标注,不对这部分进行添加:

6、Gaussian Map Updating

对于地图更新,此时 相机位姿进行固定,不参与优化

优化过程选取:当前帧、前一帧以及k-2个与当前最相似(重叠度高)的帧;

相似(重叠)程度判定:深度图中的点云以及视锥中的点的数量。

四、Photo-SLAM: Real-time Simultaneous Localization and Photorealistic Mapping for Monocular, Stereo, and RGB-D Cameras

摘要翻译

神经渲染和SLAM的系统的集成最近在联合定位和真实感视图重建方面展示了具有前景的结果。然而,现存的方法完全依赖隐式表达,同时庞大的资源需求使得它们无法再便携设备上运行,着偏离SLAM的初衷。在本文中,我们提出了Photo-SLAM,一种具有超原语建图的新的SLAM框架。具体而言,我们同事利用了显示几何特征进行定位,并学习隐式光度特征来表示观测环境的纹理信息。除了基于几何特征主动稠密超原语外,我们进一步引入一种基于高斯金字塔的训练方法来逐步学习多层次特征,以增强真实感建图性能。对单目、双目和RGB-D数据集的广泛实验证明我们提出的Photo-SLAM在在线真实建图方面显著优于当前SOTA的SLAM系统,例如在Replica数据集中,PSNR高出30%,渲染速度快数百倍。此外,Photo-SLAM可以使用Jetson AGX Orin等嵌入式平台实时运行,展示了其在机器人应用方面的潜力。

方法介绍

1、Hyper Primitives Map

地图表示与原 Gaussian 相同。

2、Localization and Geometry Mapping

  1. 定位线程:构造 因子图 进行位姿优化:

  2. 几何建图线程:同定位线程,也是 最小化重投影误差

3、Photorealistic Mapping

渲染和损失与原 Gaussian 相同:

  1. Geometry-based Densification:

    粗糙的原语不能较好表示,所以在photorealistic阶段需要对其进行优化和稠密(增加参数)。除了3DGS中的分裂和克隆外,还提出一种基于几何的稠密策略。

    作者认为特征点多的地方正是表示复杂几何的纹理的地方,根据该假设,添加额外的超原语。

    image-20240116164048996

4、Gaussian-Pyramid-Based Learning

本文提出一种 Gaussian 金字塔用于不同尺度、不同训练阶段的训练方法。

通过 高斯平滑和下采样 得到的粗糙图像训练出来的模型,会用于初始化较高分辨率的模型,但不保留用于最终的推断。

image-20240116164412259

5、Loop Closure

文章中没有具体说明如何进行回环。仅提到通过相似变换进行回环可以有效解决伪影。

五、Gaussian Splatting SLAM

摘要翻译

我们提出了第一个使用单个移动单目或RGB-D相机将3D高斯飞溅用于增量式3D重建的应用。我们的SLAM方法以3fps实时运行,使用了高斯作为唯一的3D表达,统一了准确、高效跟踪、建图和高质量渲染所需要的表示。
需要一些创新来不断地从实时相机重建你高保真的3D场景。首先,要超越原有的3DGS算法,该算法需要从离线的SfM系统获取紧缺的位姿,我们对3DGS使用直接优化对3D高斯来制定相机的跟踪,这表明其使得快速和鲁棒的跟踪具有广阔的收敛域。齐次,通过利用高斯的显示表达,我们引入了几何验证和正则化去处理增量3D稠密重建中出现的歧义问题。最后,我们引入了完整的SLAM系统,该系统不仅在新视图合成和轨迹估计方面取得了SOTA的结果,同时也可以重建细小甚至透明的物体。

方法介绍

Overview

image-20240116220056764

1、Gaussian Splatting

渲染和场景表示与原 Gaussian 相同。

2、Camera Pose Optimisation

这里本文提出参数对位姿的雅可比矩阵以对位姿进行求导优化。

3、Tracking

Tracking 部分通过优化光度和深度两个误差进行优化。

4、Keyframing

本文理想的关键帧管理将选择观察同一区域的非冗余关键帧,跨越宽基线以提供更好的多视图约束。

  1. Selection and Management:

    添加关键帧策略:共视关系低于某阈值,或是相对深度低于平均深度。

  2. Gaussian Covisibility:

    因为3D高斯是沿着相机光线排序的。由于遮挡是通过设计处理的,因此这种特性对于共视性估计是可取的。如果在光栅化中使用,并且光线的累积α尚未达到0.5,则高斯被标记为从视图可见。

  3. Gaussian Insertion and Pruning:

    修剪策略:在最近三个关键帧没有被观察,则对他们进行修剪。

    插入策略:深度测量可用时,则通过反向投影深度来初始化 Gaussian。对于具有深度估计的像素,$μ_W$是在那些具有低方差的深度周围初始化的;对于没有深度估计的像素,我们在具有高方差的渲染图像的中值深度周围初始化$μ_W$ 。

5、Mapping

  1. 遗忘问题:过去的关键帧随机选取进行联合优化。

  2. 光栅化3DG的无约束会在SLAM的连续观察下造成拖拽的伪影问题:

    通过各向异性正则化约束防止尺度爆炸:

    上式中的 $s_i$ 表示 Gaussian 的椭球拉伸程度。将每个 3D Gaussian 与所有尺度参数的平均值进行对比。