RTG-SLAM

Peng 2024 · 论文

一句话总结 — 实时高斯 SLAM(SIGGRAPH 2024),通过紧凑的二值不透明度高斯表示、类表面元(surfel)风格的深度渲染,以及一种仅优化不稳定高斯、仅渲染其像素的即时机制,将 3DGS 重建扩展到大场景。

问题

早期的 3DGS SLAM 系统在每帧都要优化每一个高斯并渲染每一个像素,因此计算代价随地图规模增长——同期最快的高斯 SLAM 在合成的 Replica 数据集上也只报告了 8.34 fps,且没有一个能展示完整的真实大场景。原生 3DGS 还会用许多相互重叠的半透明高斯来拟合表面,浪费内存与计算。RTG-SLAM 是”一个使用高斯溅射、配合 RGBD 相机用于大规模环境的实时 3D 重建系统”,其设计使每帧代价随场景变化量而非地图规模变化。

方法与架构

每个高斯携带位置 pi\mathbf{p}_i、协方差 Σi\boldsymbol{\Sigma}_i(尺度 si\mathbf{s}_i + 四元数 qi\mathbf{q}_i)、不透明度 αi\alpha_i 和球谐系数,此外还被视为一个带法向 ni\mathbf{n}_i、置信度计数 ηi\eta_i 和时间戳 tit_i 的椭球盘(表面元)。不透明度在创建时即固定:不透明α=0.99\alpha=0.99,拟合表面与主色)或近乎透明α=0.1\alpha=0.1,拟合残余颜色)——不使用深层的 alpha 混合堆栈。

pGjr,r=(RgK1u˙)θu+tg,θu=(pjrtg)njr(RgK1u˙)njr,\mathbf{p}_{G_{j}^{\mathbf{r}},\mathbf{r}}=(\mathbf{R}_{g}\mathbf{K}^{-1}\dot{\mathbf{u}})\,\theta_{\mathbf{u}}+\mathbf{t}_{g},\qquad \theta_{\mathbf{u}}=\frac{(\mathbf{p}_{j}^{\mathbf{r}}-\mathbf{t}_{g})\cdot\mathbf{n}_{j}^{\mathbf{r}}}{(\mathbf{R}_{g}\mathbf{K}^{-1}\dot{\mathbf{u}})\cdot\mathbf{n}_{j}^{\mathbf{r}}},

该表达式完全可微,使单个不透明高斯就能独自拟合一个局部表面片。法向图和索引图也在同一渲染过程中自然得到。

实验结果

在配备 i9-13900KF + RTX 4090 的机器上,使用 Azure Kinect 进行实时扫描:

对SLAM的意义

RTG-SLAM 展示了如何让高斯 SLAM 的计算量与场景变化量成正比而非与地图规模成正比——这一思路正是让经典大规模 SLAM 变得可行的关键(局部 BA、共视窗口),在溅射(splatting)时代通过 KinectFusion 式的 ICP 跟踪与表面元式的置信度记账被重新演绎。其稳定/不稳定状态管理与基于圆盘的深度渲染,成为将高斯 SLAM 扩展到真实建筑和真实机器人上的参考设计。

相关条目