CVPR 2024顶级SLAM论文精读:SplaTAM如何用3D高斯实现稠密RGB-D SLAM?
文章标签
SLAM 3D Gaussian Splatting RGB-D 三维重建 机器人视觉 稠密建图 CVPR2024
摘要
传统 SLAM 通常关注两个核心问题:相机在哪里?地图怎么建?
但随着机器人、AR、数字孪生和三维重建的发展,大家对 SLAM 的要求已经不再只是"能定位",而是希望系统能够实时构建出更加真实、更加稠密、更加可渲染的三维地图。
CVPR 2024 论文 SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM 正是这一方向的代表工作。它把近几年非常火的 3D Gaussian Splatting 引入 SLAM,用三维高斯作为地图表达,并通过可微渲染同时完成相机跟踪和地图优化。
这篇论文的核心亮点可以概括为一句话:
SplaTAM 不再把 SLAM 地图只看成稀疏点云或隐式神经场,而是用显式 3D 高斯地图来同时实现跟踪、建图和高质量渲染。
相比传统 RGB-D SLAM,SplaTAM 的优势是地图更加稠密、视觉效果更好;相比 NeRF-SLAM,它又具备更快的渲染效率和更显式的地图更新方式。因此,这篇论文非常适合机器人视觉、AR重建、室内建图和三维可视化方向的同学重点阅读。
1. 论文基本信息
| 项目 | 内容 |
|---|---|
| 论文名称 | SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM |
| 中文理解 | 基于3D高斯的稠密RGB-D同步定位与建图 |
| 会议 | CVPR 2024 |
| 研究方向 | RGB-D SLAM、3D Gaussian Splatting、稠密建图、三维重建 |
| 输入 | 单路未位姿化 RGB-D 相机序列 |
| 输出 | 相机轨迹 + 稠密3D Gaussian地图 + 新视角渲染结果 |
| 核心关键词 | 3D Gaussian、Differentiable Rendering、Tracking、Mapping、Silhouette Mask |
2. 一句话看懂这篇论文
传统 SLAM 的地图表达通常是:
text
稀疏特征点
稠密点云
体素地图
TSDF地图
隐式神经场
而 SplaTAM 的核心思路是:
text
用一组三维高斯球表示整个场景,
通过可微渲染把地图投影回当前图像,
再利用渲染误差同时优化相机位姿和高斯地图。
也就是说,SplaTAM 把 SLAM 过程变成了一个不断循环的过程:
text
输入RGB-D图像
↓
渲染当前高斯地图
↓
比较渲染结果和真实观测
↓
优化当前相机位姿
↓
判断哪些区域还没建图
↓
添加新的3D Gaussian
↓
更新地图参数
3. 为什么这篇论文值得关注?
SLAM 一直是机器人和计算机视觉中的核心问题。
对于移动机器人来说,SLAM 要解决的是:
text
机器人在哪里?
周围环境是什么样?
地图能不能用于后续导航和决策?
对于 AR 和三维重建来说,SLAM 还要解决:
text
能不能实时重建场景?
能不能从新视角渲染?
重建结果是否足够真实?
传统 SLAM 虽然在定位方面已经很成熟,但在三维场景表达方面仍然存在不足。
3.1 稀疏地图不够直观
ORB-SLAM、VINS 等经典方法主要构建稀疏特征点地图。
这种地图适合定位,但不适合直接做三维可视化。
例如稀疏地图通常只能看到一些点:
text
墙上几个点
桌子边缘几个点
地面少量特征点
物体轮廓不完整
如果要用于 AR 显示、机器人环境理解或数字孪生,稀疏点地图显然不够。
3.2 NeRF-SLAM效果好但优化成本高
NeRF 类方法可以获得较好的新视角渲染效果,但它通常使用隐式神经场表达场景。
这种方法存在几个问题:
text
训练和优化成本较高
地图更新不够直观
实时性压力较大
局部结构编辑不方便
所以研究者开始思考:
有没有一种既能高质量渲染,又更适合实时更新的地图表达方式?
3D Gaussian Splatting 就是在这个背景下进入 SLAM 领域的。
3.3 3D Gaussian更适合显式地图更新
3D Gaussian Splatting 使用大量三维高斯来表示场景。
每个高斯可以理解为一个小的空间"椭球体",它包含:
text
位置
颜色
透明度
尺度
旋转
这种表达方式有几个优势:
text
显式可见
渲染速度快
可以局部添加和更新
适合在线建图
能保留较好的视觉细节
SplaTAM 正是利用了这些特点,把 3D Gaussian 引入到了 RGB-D SLAM 中。
4. 方法总览:SplaTAM整体框架

SplaTAM 的名字本身就说明了它的流程:
text
Splat → 用3D Gaussian进行可微渲染
Track → 估计当前相机位姿
Map → 更新和扩展三维高斯地图
整体流程可以概括为:
text
RGB-D输入帧
↓
当前3D Gaussian地图渲染
↓
渲染RGB图和深度图
↓
与真实RGB-D观测比较
↓
优化当前相机位姿
↓
利用Silhouette判断未建图区域
↓
添加新的3D Gaussian
↓
更新地图颜色、位置、尺度、透明度
↓
进入下一帧
5. 核心概念一:什么是3D Gaussian Splatting?
3D Gaussian Splatting 是一种显式三维场景表示方法。
它不是用网格,也不是用神经网络隐式函数,而是用很多三维高斯来表示场景。
可以简单理解为:
text
一个房间 = 很多个3D Gaussian组成
一面墙 = 很多个小高斯拼出来
一张桌子 = 很多个带颜色的高斯组合出来
每个高斯通常包含如下参数:
text
位置:表示它在三维空间中的中心
尺度:表示它的大小
旋转:表示它的方向
颜色:表示它渲染出来的颜色
透明度:表示它对最终图像的贡献
在渲染时,系统会把这些三维高斯投影到相机图像平面上,然后通过 Alpha Compositing 合成最终图像。
6. 核心概念二:为什么3DGS适合SLAM?
SLAM 需要持续处理视频流,所以地图表达必须支持在线更新。
3D Gaussian 对 SLAM 很有吸引力,主要有三个原因。
6.1 渲染速度快
相比 NeRF 需要沿射线采样很多点,3D Gaussian Splatting 可以直接把显式高斯投影到图像平面。
这使得它在新视角渲染时速度更快。
对于 SLAM 来说,渲染速度很关键,因为系统每一帧都可能需要:
text
渲染当前地图
计算图像误差
优化相机位姿
更新地图参数
如果渲染太慢,SLAM 就很难实时运行。
6.2 地图结构显式
传统 NeRF 地图是隐式神经网络参数,不太容易直接判断哪里已经被建图,哪里还没有被建图。
而 3D Gaussian 是显式点状结构,因此更容易做:
text
添加新高斯
删除低贡献高斯
更新局部区域
判断已观测区域
地图可视化
这对于在线 SLAM 很重要。
6.3 适合高质量可视化
3DGS 的渲染质量通常比普通点云更好。
点云容易出现孔洞、离散、不连续等问题,而 3D Gaussian 由于具有尺度和透明度,可以形成更加连续的视觉效果。
这使得 SplaTAM 不只是一个定位系统,也是一个可视化质量较高的三维重建系统。
7. SplaTAM的三个核心步骤
SplaTAM 主要由三个步骤构成:
text
Step 1:Camera Tracking
Step 2:Gaussian Densification
Step 3:Map Update
下面逐个分析。
8. Step 1:Camera Tracking,相机跟踪
在每个新 RGB-D 帧到来时,系统首先要估计当前相机位姿。
传统 SLAM 可能通过特征点匹配来估计位姿。
SplaTAM 的做法是:
text
先用当前已有的3D Gaussian地图渲染出RGB图和深度图,
再把渲染结果与真实输入图像进行比较,
通过误差反向优化当前相机位姿。
可以理解为:
text
当前地图 + 假设位姿 → 渲染图像
渲染图像 vs 真实图像 → 得到误差
调整相机位姿 → 让误差变小
如果位姿正确,那么当前地图渲染出的图像应该和真实相机看到的图像非常接近。
所以,相机跟踪可以被转化为一个图像对齐优化问题。
9. Step 2:Gaussian Densification,高斯增密
当相机看到新的区域时,原来的地图中可能没有对应的高斯。
这时候系统需要往地图中添加新的 Gaussian。
例如机器人刚转过一个弯,看到了新的墙面或桌子区域:
text
旧地图里没有这个区域
当前RGB-D帧观测到了这个区域
系统需要新建一批3D Gaussian
SplaTAM 使用 Silhouette Mask 来判断哪些区域已经被现有地图解释,哪些区域还没有被解释。
简单来说:
text
如果某个像素区域当前地图无法渲染出来
说明这里可能是新观察到的区域
需要添加新的3D Gaussian
这一步就是地图扩展的关键。
10. Step 3:Map Update,地图更新
添加新高斯之后,系统还需要优化高斯地图的参数。
需要优化的内容包括:
text
高斯的位置
高斯的颜色
高斯的尺度
高斯的旋转
高斯的透明度
优化目标是让当前高斯地图渲染出来的 RGB 图和深度图,尽可能接近真实输入帧。
可以简单表示为:
text
地图优化目标 = RGB渲染误差 + 深度渲染误差
也就是说,SplaTAM 不只是把深度点直接堆成点云,而是通过可微渲染持续优化地图,使地图更加适合新视角渲染。
11. SplaTAM为什么使用RGB-D输入?
SplaTAM 的输入是 RGB-D 图像,也就是同时包含:
text
RGB彩色图像
Depth深度图像
相比单目 SLAM,RGB-D 的优势是可以直接提供深度信息。
这让系统在初始化和建图时更加稳定。
具体来说,深度信息可以帮助系统:
text
更准确地初始化3D Gaussian位置
减少单目尺度漂移
提升几何结构准确性
增强相机跟踪稳定性
但是 RGB-D 也有局限:
text
深度相机作用距离有限
强光环境下可能不稳定
透明/反光物体深度错误
室外大范围场景较难使用
所以 SplaTAM 更适合室内机器人、AR扫描、房间重建、数字孪生等场景。
12. 和传统RGB-D SLAM相比有什么不同?
传统 RGB-D SLAM 通常会使用:
text
ICP配准
特征点匹配
TSDF融合
点云拼接
Pose Graph优化
这些方法可以得到较好的几何地图,但视觉真实感通常有限。
SplaTAM 的不同在于:
text
它把地图表示成可渲染的3D Gaussian,
并通过可微渲染把跟踪和建图统一起来。
对比如下:
| 方法 | 地图表达 | 优点 | 局限 |
|---|---|---|---|
| ORB-SLAM2 RGB-D | 稀疏点云 | 定位成熟,速度快 | 地图不稠密,不适合高质量渲染 |
| KinectFusion | TSDF体素 | 几何融合稳定 | 视觉细节和大场景扩展有限 |
| Point-SLAM | 神经点云 | 表达能力较强 | 优化和渲染成本较高 |
| NICE-SLAM | 神经隐式场 | 几何连续性较好 | 训练和更新相对复杂 |
| SplaTAM | 3D Gaussian | 显式、稠密、渲染质量高 | 仍依赖RGB-D和GPU计算 |
13. SplaTAM的主要创新点
13.1 创新点一:首次将3D Gaussian作为稠密RGB-D SLAM核心地图表达
SplaTAM 的最大贡献是把 3D Gaussian Splatting 引入到在线 RGB-D SLAM 中。
它不是先做 SLAM 再离线重建,而是在 SLAM 过程中直接维护一个可渲染的高斯地图。
这使得系统同时具备:
text
定位能力
建图能力
新视角渲染能力
高质量可视化能力
13.2 创新点二:用可微渲染统一跟踪和建图
SplaTAM 的相机跟踪和地图更新都依赖渲染误差。
这意味着系统中存在一个统一的闭环:
text
地图 → 渲染 → 对比真实观测 → 优化位姿和地图
这种方式比传统特征点匹配更加直接,也更适合稠密视觉场景。
13.3 创新点三:利用Silhouette Mask判断新区域
SplaTAM 使用 Silhouette Mask 判断哪些图像区域已经被当前地图解释,哪些区域还没有被地图覆盖。
这使得地图扩展更加有结构,而不是盲目添加高斯。
可以理解为:
text
已覆盖区域:优化已有Gaussian
未覆盖区域:添加新的Gaussian
这对在线建图非常重要。
13.4 创新点四:兼顾定位、建图和新视角合成
很多 SLAM 系统只关注位姿精度。
很多重建系统只关注视觉效果。
SplaTAM 的特点是两者都考虑:
text
既要相机轨迹准确
也要地图视觉效果好
还要支持新视角渲染
这让它更接近未来机器人三维感知系统的需求。
14. 实验结果怎么理解?
论文在多个数据集上进行实验,包括:
text
Replica
TUM RGB-D
ScanNet
ScanNet++
这些数据集覆盖了合成室内场景、真实 RGB-D 场景和复杂室内扫描场景。
从实验结果来看,SplaTAM 的优势主要体现在三个方面。
14.1 相机轨迹估计更加稳定
由于 SplaTAM 使用 RGB-D 信息和显式高斯地图进行渲染对齐,因此在很多室内场景中可以获得较稳定的位姿估计。
它不是只依赖稀疏特征点,而是利用稠密渲染误差进行优化。
这对于弱纹理区域有一定帮助。
14.2 稠密地图质量更高
相比普通点云或稀疏地图,3D Gaussian 地图视觉效果更连续。
它可以重建出更加细腻的室内结构,例如:
text
墙面
桌椅
柜子
地面
物体边缘
室内布局
这对 AR、机器人导航可视化和数字孪生都有价值。
14.3 新视角渲染效果更好
SplaTAM 的地图本身就是可渲染的。
因此,在建图完成后,可以从新的视角观察场景。
这和传统 SLAM 地图有很大不同。
传统 SLAM 地图更多用于定位和规划,而 SplaTAM 的地图还可以用于:
text
新视角合成
三维可视化
交互式漫游
虚拟现实场景构建
数字孪生展示
15. 工程复现:官方代码运行方式
官方代码已经开源,可以按照如下方式运行。
15.1 克隆代码
bash
git clone https://github.com/spla-tam/SplaTAM.git
cd SplaTAM
15.2 创建环境
bash
conda create -n splatam python=3.10
conda activate splatam
15.3 安装CUDA和PyTorch依赖
bash
conda install -c "nvidia/label/cuda-11.6.0" cuda-toolkit
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge
pip install -r requirements.txt
15.4 运行iPhone示例数据
bash
python scripts/splatam.py configs/iphone/splatam.py
15.5 可视化最终重建结果
bash
python viz_scripts/final_recon.py configs/iphone/splatam.py
15.6 导出PLY格式高斯地图
bash
python scripts/export_ply.py configs/iphone/splatam.py
导出的 PLY 格式可以在一些 3D Gaussian viewer 中查看。
16. 对AGV和机器人视觉有什么启发?
SplaTAM 对机器人视觉方向有很强启发。
虽然它主要面向 RGB-D 稠密 SLAM,但其中的思想可以迁移到 AGV、移动机器人和工业三维感知中。
16.1 机器人地图正在从"能定位"走向"能显示"
过去机器人地图更多是为了导航,例如:
text
二维栅格地图
稀疏特征点地图
激光点云地图
这些地图对机器人够用,但对人类不够直观。
未来机器人可能需要更强的环境表达能力:
text
地图能实时显示
地图能被人理解
地图能做三维巡检
地图能用于仿真和数字孪生
SplaTAM 代表了这种趋势。
16.2 3D Gaussian地图适合机器人可视化
对于 AGV 或巡检机器人来说,如果能够构建高质量三维地图,就可以用于:
text
远程监控
异常区域定位
仓库三维展示
机器人运行回放
货架环境建模
数字孪生平台
这比单纯显示二维轨迹更加直观。
16.3 RGB-D输入适合室内和近距离场景
很多 AGV 工作在室内环境,例如:
text
仓库
工厂
实验室
医院
展厅
机房
这些场景中,RGB-D 相机可以提供较稳定的深度信息。
因此,SplaTAM 这类 RGB-D 稠密建图方法对室内机器人有一定参考价值。
16.4 工业落地仍需要轻量化
SplaTAM 的效果很好,但真正部署到机器人端还需要考虑:
text
显存占用
实时性
算力平台
传感器稳定性
地图规模增长
长期运行内存管理
对于 AGV 来说,可能需要结合:
text
关键帧筛选
高斯数量控制
局部地图管理
TensorRT加速
ROS/ROS2集成
多传感器融合
这样才能更接近实际落地。
17. 和前两篇论文的区别
前面分析过 MASt3R-SLAM 和 WildGS-SLAM,这里可以做一个简单对比。
| 论文 | 输入 | 核心地图表达 | 主要特点 |
|---|---|---|---|
| MASt3R-SLAM | 单目RGB | Pointmap / Dense Geometry | 利用三维重建先验做实时单目稠密SLAM |
| WildGS-SLAM | 单目RGB | 3D Gaussian | 面向动态场景,用不确定性过滤动态干扰 |
| SplaTAM | RGB-D | 3D Gaussian | 用显式高斯地图实现稠密跟踪、建图和渲染 |
简单理解:
text
MASt3R-SLAM关注:
三维重建先验如何提升单目SLAM
WildGS-SLAM关注:
动态环境中如何避免地图污染
SplaTAM关注:
RGB-D输入下如何用3D Gaussian实现高质量稠密SLAM
18. 不足与挑战
SplaTAM 虽然非常有代表性,但也存在一些不足。
| 问题 | 说明 |
|---|---|
| 依赖RGB-D输入 | 对深度相机质量有要求 |
| GPU资源需求较高 | 3DGS优化和渲染需要GPU支持 |
| 长期大场景管理困难 | 高斯数量可能不断增加 |
| 动态物体处理有限 | 原始方法主要面向相对静态场景 |
| 工程部署复杂 | 依赖CUDA、PyTorch和可微渲染模块 |
尤其在真实机器人环境中,还需要考虑:
text
动态行人
光照变化
反光物体
深度空洞
相机抖动
长期运行地图膨胀
这些都是未来可以继续改进的方向。
19. 未来可以怎么改进?
从研究角度看,SplaTAM 可以继续扩展到以下方向:
text
1. 加入动态物体过滤机制
2. 结合IMU提升运动鲁棒性
3. 设计高斯地图压缩和裁剪策略
4. 引入语义信息增强地图理解
5. 支持更大规模室内外场景
6. 面向Jetson等边缘设备做轻量化部署
7. 与ROS2导航系统深度融合
从 AGV 场景看,还可以结合:
text
激光雷达
轮速计
二维码/地码定位
仓库CAD地图
多机器人协同建图
工业缺陷检测模块
这样可以把高质量三维建图能力真正接入机器人系统。
20. 个人总结
SplaTAM 是 3D Gaussian Splatting 进入 SLAM 领域的一篇代表性论文。
它的核心价值不是简单地把点云换成高斯,而是提出了一种新的 SLAM 思路:
text
用显式3D Gaussian表示地图,
用可微渲染连接地图和图像观测,
用渲染误差同时优化相机位姿和场景地图。
相比传统 SLAM,它的地图更加稠密、更加直观;
相比 NeRF-SLAM,它的表达更加显式、渲染更加高效;
相比普通点云建图,它更适合新视角合成和三维可视化。
如果用一句话总结:
SplaTAM 把 SLAM 从"稀疏定位地图"推进到了"可渲染三维高斯地图",为机器人视觉、AR重建和数字孪生提供了新的技术路径。
22. 参考资料
1\] Keetha N, Karhade J, Jatavallabhula K M, Yang G, Scherer S, Ramanan D, Luiten J. SplaTAM: Splat, Track \& Map 3D Gaussians for Dense RGB-D SLAM. CVPR 2024. \[2\] SplaTAM Project Page: https://spla-tam.github.io/ \[3\] SplaTAM GitHub Repository: https://github.com/spla-tam/SplaTAM \[4\] CVF Open Access Paper Page: https://openaccess.thecvf.com/content/CVPR2024/html/Keetha_SplaTAM_Splat_Track__Map_3D_Gaussians_for_Dense_RGB-D_CVPR_2024_paper.html \[5\] arXiv Paper Page: https://arxiv.org/abs/2312.02126