K2E-B-G2-6 · Paper Note

SplaTAM

Created 2024-03-31Updated 2026-06-08slam / papers / g-geometry-rendering / g2-gaussian-splatting

  • Description:SplaTAM 论文笔记 — 3D Gaussian Splatting 当地图的稠密 RGB-D SLAM,各向同性高斯 + silhouette 掩码跟踪,按 silhouette/深度误差致密化
  • My Notion Note ID:K2E-B-G2-6
  • Created:2024-03-31
  • Updated:2026-06-08
  • License转载欢迎:转载请注明作者 Yu Zhang 并附原文出处(yuzhang.io

Table of Contents


1. Summary

Title: SplaTAM: Splat, Track & Map 3D Gaussians for Dense RGB-D SLAM Authors: N. Keetha, J. Karhade, K. M. Jatavallabhula, G. Yang, S. Scherer, D. Ramanan, J. Luiten Paper: arXiv:2312.02126 (CVPR 2024) Github: spla-tam/SplaTAM

SplaTAM (CMU, 2023):首批用 3D Gaussian Splatting 作地图表示的稠密 RGB-D SLAM 之一。相比神经隐式 SLAM (NICE-SLAM/iMAP),3DGS 显式表示 → 渲染快 (400 FPS)、梯度直达(投影几何直接反传,不穿多层 MLP 网络)→ 跟踪/建图优化高效。

核心设计:简化原版 3DGS(去视角相关 SH、强制各向同性协方差,参数量 8/个),引入 Silhouette 掩码(标记已优化好的像素)——跟踪时仅用 S>0.99S>0.99 的像素(避免未建图区域带偏位姿);致密化在 S<0.5S<0.5 或深度误差过大处加新高斯。

ScanNet++ ATE 1.2 cm(Point-SLAM / ORB-SLAM3 直接跟丢);Replica 比前 SOTA 降 >30% (0.52→0.36 cm);TUM-RGBD ATE 5.48 cm(vs Point-SLAM 8.92 cm,-38%);ScanNet++ 新视角合成 PSNR 24.41 dB,深度误差仅 2 cm。

SplaTAM 三步流程:① Silhouette 引导位姿优化 → ② 高斯致密化 → ③ 高斯地图更新

2. Key Contributions

  • 3DGS-SLAM 范式:3D 高斯显式表示 + 可微渲染,梯度直达,渲染 400 FPS;开创 GS-SLAM 方向
  • Silhouette 掩码跟踪:仅用高 silhouette (S>0.99S>0.99) 像素优化位姿,防未建图区带偏;致密化用 S<0.5S<0.5 识别新区域
  • 各向同性简化:去掉 SH 视角相关外观和椭球协方差,每高斯 8 参数,SLAM 里算得快
  • 整帧渲染:跟踪/建图时渲染全分辨率(1.2M 像素),vs NICE-SLAM 仅 200/1000 像素,信息利用充分
  • ScanNet++ 鲁棒性:大相机位移场景仍稳健跟踪,传统方法(ORB-SLAM3)频繁重初始化

3. Method

3.1 地图表示 — 各向同性高斯

每个高斯 8 个参数

参数 维度 含义
c\mathbf{c} 3 RGB 颜色
μ\boldsymbol{\mu} 3 空间中心位置
rr 1 半径(各向同性协方差 r2Ir^2\mathbf{I}
oo 1 不透明度 [0,1]\in[0,1]

影响函数:f(x)=oexp ⁣(xμ2/(2r2))f(\mathbf{x}) = o\cdot\exp\!\bigl(-\|\mathbf{x}-\boldsymbol{\mu}\|^2/(2r^2)\bigr)

简化原版 3DGS(去掉球谐函数 SH 视角相关外观、强制各向同性 r2Ir^2\mathbf{I} 协方差)→ 参数量减少,计算更快,SLAM 优化更稳定。

新高斯初始化:不透明度 o=0.5o=0.5,半径 r=depth/fcxr = \text{depth} / f_{cx}(投影到像面一个像素)。

3.2 可微渲染 + Silhouette 掩码

2D 投影 (Eq 3):每个 3D 高斯先按相机外参 EtE_t (world→camera) 与内参 KK 投到像面,中心与半径:

μ2D=KEtμd,r2D=frd,d=(Etμ)z\boldsymbol{\mu}^{2D} = K \frac{E_t \boldsymbol{\mu}}{d}, \qquad r^{2D} = \frac{f\, r}{d}, \qquad d = (E_t \boldsymbol{\mu})_z

dd 为高斯中心在相机系下的深度,ff 为焦距。各向同性 3D 高斯投影后仍是各向同性 2D 高斯,省去投影协方差矩阵。

Alpha 合成 (front-to-back):像素 pp 处把覆盖它的高斯按深度排序,第 ii 个的合成权重为 fi(p)j<i(1fj(p))f_i(p)\prod_{j<i}(1-f_j(p)),其中 fi(p)f_i(p) 是第 ii 个 2D 高斯在 pp 处的影响值 (Eq 1 投到 2D)。三路输出同一套权重、只换被加权量:

C^(p)=icifi(p)j<i(1fj(p))(Eq 2,颜色)\hat{C}(p) = \sum_i \mathbf{c}_i\, f_i(p) \prod_{j<i}(1-f_j(p)) \qquad \text{(Eq 2,颜色)} D^(p)=idifi(p)j<i(1fj(p))(Eq 4,深度)\hat{D}(p) = \sum_i d_i\, f_i(p) \prod_{j<i}(1-f_j(p)) \qquad \text{(Eq 4,深度)} S(p)=ifi(p)j<i(1fj(p))(Eq 5,silhouette)S(p) = \sum_i f_i(p) \prod_{j<i}(1-f_j(p)) \qquad \text{(Eq 5,silhouette)}

ci\mathbf{c}_i 为高斯颜色,did_i 为其相机系深度。S(p)S(p) 即累积不透明度:1\approx 1 → 该像素由已优化好的高斯覆盖;0\approx 0 → 未建图区域。

3.3 每帧三步

① 相机跟踪:位姿先用匀速模型预测初值 (Eq 7,EtE_t 为第 tt 帧 world→camera 外参):

Et+1=Et+(EtEt1)E_{t+1} = E_t + (E_t - E_{t-1})

再仅用 S(p)>0.99S(p)>0.99 的已建图像素梯度下降优化位姿 (Eq 8):

Lt=p1[S(p)>0.99](L1(D(p))+0.5L1(C(p)))\mathcal{L}_t = \sum_p \mathbf{1}[S(p)>0.99]\cdot\bigl(\mathcal{L}_1(D(p)) + 0.5\,\mathcal{L}_1(C(p))\bigr)

深度 L1 + 颜色 L1 (权重 0.5);每帧 40 次迭代优化位姿参数。

② 高斯致密化:在满足致密化掩码 M(p)M(p) 的像素插入新高斯 (Eq 9):

M(p)=[S(p)<0.5]    [DGT(p)<D^(p)    L1(D(p))>50MDE]M(p) = \big[\, S(p) < 0.5 \,\big] \;\lor\; \big[\, D_{GT}(p) < \hat{D}(p) \;\land\; \mathcal{L}_1(D(p)) > 50\,\text{MDE} \,\big]

即 ① silhouette 低 (未建图区),或 ② 真值深度在估计深度之前 (有新表面挡在前) 且该处深度 L1 误差大。MDE\text{MDE} = median depth error,即当前帧逐像素深度 L1 误差的中值 (注意是误差中值,不是深度中值),50×50\times 为放大阈值只取显著异常处。

③ 地图更新:对选定关键帧(关键帧判据:对应高斯的平均 silhouette < 0.5 + 间隔帧数)的所有高斯参数做 gradient descent;损失为 RGB + 深度 L1 + SSIM,不用 silhouette 掩码(充分利用所有像素训练);每帧 60 次迭代;同时剔除近零透明度或过大/过小的高斯。

4. Experiments & Results

数据集

数据集 评估 特点
Replica ATE RMSE + 新视角 PSNR 合成室内,标准 benchmark
TUM-RGBD ATE RMSE 真实 RGB-D,传感器噪声大
ScanNet++ ATE RMSE + PSNR 大相机位移,具挑战性

Replica (8 场景平均 ATE, cm)

Method ATE ↓
iMAP 9.35
NICE-SLAM 1.95
Point-SLAM 0.52
SplaTAM 0.36

比 Point-SLAM (前 SOTA) 降 >30%

TUM-RGBD (ATE, cm)

Method ATE ↓
NICE-SLAM ~5.0
Point-SLAM 8.92
SplaTAM 5.48

ScanNet++ (ATE, cm):大相机位移序列

Method ATE ↓ 备注
Point-SLAM 跟丢
ORB-SLAM3 跟丢 频繁重初始化
SplaTAM 1.2 稳健跟踪,PSNR 24.41 dB

SplaTAM 在 ScanNet++ S2 上的位姿估计与稠密重建:绿色为估计轨迹,蓝色为真值

5. Ablation & Discussion

Silhouette 掩码的关键性 (Replica):

跟踪配置 ATE (cm)
无 silhouette 掩码 完全失败
阈值 0.5 ~1.8
阈值 0.99 0.36

Silhouette 掩码是跟踪成功的必要条件:未建图区域会产生错误梯度方向导致发散。

深度 vs 纯 RGB 跟踪:

输入 ATE (cm)
纯 RGB ~1.8
RGB + 深度 0.36

深度提供约 5× ATE 改善。

SplaTAM-S (速度版): 跟踪 10 次迭代 + 建图 15 次迭代,速度提升 3-4×,ATE 略有下降,仍优于大多数 baseline。

6. Strengths / Limitations / Future Work

Strengths

  • 3DGS 显式表示 + 可微渲染,跟踪/建图梯度高效,渲染 400 FPS
  • Silhouette 掩码使跟踪鲁棒,ScanNet++ 大位移场景成功跟踪
  • 开创 GS-SLAM 方向,引出 CG-SLAM / Gaussian-SLAM 等后续工作

Limitations

  • 需要 RGB-D 输入(深度传感器),不支持纯 RGB/单目
  • TUM-RGBD 上仍落后 ORB-SLAM2(传感器噪声大时深度不可靠)
  • 无回环闭合;高斯数量随时间增长,长序列内存压力大

Future Work

  • 单目 GS-SLAM 扩展
  • 回环闭合集成
  • 动态物体处理

References