想象一下,一个机器人在你家中穿行——它不仅能避开障碍物,还能在移动的同时构建一个逼真度极高的三维环境模型。或者,设想一副增强现实头显,它能将虚拟物体无缝锚定在物理世界,实现完美对齐,并呈现逼真的光照与阴影。这些充满未来感的应用都依赖于一项核心技术——同步定位与地图构建 (SLAM) 。
几十年来,SLAM研究人员一直致力于打造既快速、精确、又能生成稠密且细致地图的理想系统。但事实证明,要同时达成这三者极为困难。传统方法通常偏重速度而牺牲细节;而近年的神经辐射场 (NeRFs) 方法虽能生成惊艳的地图,却因渲染速度过慢而难以满足实时需求。
如今,GS-SLAM打破了这一瓶颈。该突破性系统首次将3D高斯溅射 (3DGS) 引入SLAM,消除了速度与地图质量之间的取舍,实现了实时跟踪与超高速的照片级真实感渲染。
图1. GS-SLAM引入了快速、显式的3D高斯场景表示方法,实现了386 FPS的实时跟踪与建图——速度比先前方法快100倍以上,同时生成高保真的渲染效果。
SLAM长期存在的瓶颈
SLAM技术使机器人或设备能够在未知环境中同时构建地图并定位自身位置。
- **经典SLAM **(如ORB-SLAM2) 在定位方面表现优异,但使用的是稀疏点云——这对于需要详细几何信息的应用来说不足。
- **稠密建图方法 **(如KinectFusion) 基于截断符号距离场 (TSDF) 将场景数据存储在体素网格中,几何细节更丰富,但消耗大量内存。
- **基于NeRF的SLAM **(如iMAP、NICE-SLAM) 通过神经网络隐式表示场景,可生成高质量且内存高效的地图,但其体渲染——即向每个像素发射光线并对网络进行数百次采样——速度极慢。为满足实时性,这些系统仅渲染稀疏像素,限制了细节的充分利用。
瓶颈在于渲染速度。GS-SLAM的关键在于: 用快速、显式的3D高斯溅射管线取代缓慢的神经隐式渲染。不同于光线追踪与MLP查询,3DGS将地图表示为数百万个微小的、彩色的、半透明高斯“椭圆斑点”,可迅速投影 (“溅射”) 到图像平面并进行alpha混合。
GS-SLAM内部探秘
GS-SLAM是一个完整的RGB-D SLAM系统,包含三个核心组件:
- 3D高斯场景表示
- 自适应建图
- 由粗到精的跟踪
图2. GS-SLAM管线: 从使用3D高斯初始化场景表示,到自适应扩展建图,再到鲁棒的由粗到精跟踪——全程实现实时渲染。
1. 用3D高斯表示世界
场景建模为:
\[ \mathbf{G} = \{G_i : (\mathbf{X}_i, \boldsymbol{\Sigma}_i, \boldsymbol{\Lambda}_i, \boldsymbol{Y}_i) \mid i = 1, ..., N\}. \]其中每个高斯 \(G_i\) 包含:
- 位置 \(\mathbf{X}_i \in \mathbb{R}^3\)
- 协方差 \(\boldsymbol{\Sigma}_i\) 定义形状与方向,并参数化为: \[ \Sigma = \mathbf{R}\mathbf{S}\mathbf{S}^T\mathbf{R}^T \] 其中尺度 \(\mathbf{S}\) 与旋转 \(\mathbf{R}\) (来自四元数)
- 不透明度 \(\boldsymbol{\Lambda}_i\)
- 颜色 通过球谐函数 \(\boldsymbol{Y}_i\) 表示,支持逼真且随视角变化的光照
渲染将每个高斯投影至图像平面:
\[ \Sigma' = \mathbf{J}\mathbf{P}^{-1}\boldsymbol{\Sigma}\mathbf{P}^{-T}\mathbf{J}^{T} \]前向排序高斯并进行alpha混合计算像素颜色:
\[ \hat{\mathbf{C}} = \sum_{i} \mathbf{c}_i \alpha_i \prod_{j=1}^{i-1} (1 - \alpha_j) \]深度渲染类似:
\[ \hat{D} = \sum_{i} d_i \alpha_i \prod_{j=1}^{i-1}(1 - \alpha_j) \]这种可微分光栅化速度极快,实现了高帧率渲染。
2. 自适应建图: 添加与删除
传统的3DGS是离线的;SLAM则是在线、增量式的。GS-SLAM通过在未观察区域添加新高斯,以及删除噪声高斯来实现适配。
添加: 在关键帧中,
- 从当前位姿进行渲染
- 比较渲染得到的不透明度 \(T\) 与深度 \(\hat{D}\) 和传感器深度 \(D\)。若满足 \(T < \tau_T\) 或 \(|D - \hat{D}| > \tau_D\),则将该像素标记为不可靠
- 将不可靠像素反投影到3D,并初始化新的高斯
删除: 某些高斯会错位,形成“浮游点”
图3. 浮游点移除: GS-SLAM检测到远在真实表面前方的高斯,并通过降低不透明度渐隐它们。
修剪时,检查每个高斯位置 \(X_i\) 与实测表面深度的差值;若偏差超过 \(\gamma\),则其不透明度乘以系数 \(\eta\)。
3. 由粗到精的跟踪
跟踪通过最小化以下损失估计相机位姿:
\[ \mathcal{L}_{track} = \sum_{m} |\mathbf{C}_m - \hat{\mathbf{C}}_m|_1 \]渲染可微,因此可用梯度下降更新位姿。但在噪声地图上优化全分辨率图像不仅慢,还易出错。
两阶段方法:
- 粗阶段: 渲染低分辨率图像,迅速优化以获得较稳健的初始位姿
- 精阶段: 筛选紧邻观测表面的可靠高斯: \[ \mathbf{G}_{selected} = \{ G_i \in \mathbf{G} \mid |D_i - d_i| \leq \varepsilon \} \] 仅用这些高斯渲染全分辨率图像,并高效精调位姿
结果: GS-SLAM实战表现
基准测试:** Replica** 和 TUM-RGBD
跟踪与建图
在Replica数据集,GS-SLAM实现了顶尖精度: 平均ATE为0.50 cm,速度8.34 FPS——比Point-SLAM快20倍。
GS-SLAM在8个场景中有7个场景精度领先或持平SOTA,速度优势无可匹敌。
建图质量同样优秀: 实现最佳深度L1误差 (1.16 cm) 与精度 (74%)
图4. GS-SLAM生成了干净、细节丰富、边界清晰的网格。
渲染性能
渲染环节是GS-SLAM的绝对优势: 实现了386 FPS——比领先的NeRF-SLAM快100倍——在PSNR、SSIM、LPIPS等质量指标中均居首。
图5. GS-SLAM渲染出清晰、近乎照片级的画面,边缘与纹理精准。
消融实验洞见
禁用自适应扩展策略会导致失败或噪声地图——验证了其必要性。跳过浮游点移除会降低精度。去掉由粗到精的跟踪会降低鲁棒性;综合使用所有方法可获得最佳表现。
图7. GS-SLAM在速度-精度空间中找到了新的最优点,尤其在渲染方面优势明显。
结论与未来方向
GS-SLAM是首个充分发挥3D高斯溅射潜力的在线SLAM系统。通过结合:
- 快速、显式的3D高斯表示
- 基于关键帧的自适应扩展与删除
- 鲁棒的由粗到精跟踪
……实现了速度与质量兼备的实时地图构建与照片级真实感渲染。
局限性: 需要RGB-D摄像机提供高质量深度;在超大规模场景下,显式高斯在内存扩展性方面劣于某些方法。未来可通过量化或高斯聚类优化内存。
影响: GS-SLAM的超高速、高保真渲染对AR/VR、机器人及数字孪生系统有深远影响——让我们更接近能以交互帧率理解并以逼真细节重建环境的设备。