精读笔记

Problem Setting

PG-SLAM: Photorealistic and Geometry-Aware RGB-D SLAM in Dynamic Environments(IEEE Transactions on Robotics / 2025)。这篇论文瞄准的不是一般意义上的动态物体鲁棒性,而是动态环境中“完整可渲染建图 + 相机定位 + 动态物体建模”的联合问题。传统动态 SLAM 最大的矛盾在于:动态前景一方面破坏静态场景假设,使 epipolar/ICP/photometric consistency 失效;另一方面又经常占据图像的大量像素,尤其在人、箱子、车辆等主体靠近相机时,这些像素本来是非常强的定位观测。过滤动态物体能让优化更干净,但会丢掉约束和地图完整性;不区分动态/静态则会把运动物体写进静态地图,导致模糊、ghosting 和位姿漂移。PG-SLAM 实际解决的就是这个矛盾:动态前景既不能简单视为 outlier,也不能作为静态结构直接融合,必须以有运动先验的实体方式进入 SLAM 优化。

Motivation

已有路线的不足很明确。传统动态 SLAM 往往把动态物体检测出来并剔除,适合追求相机轨迹鲁棒性,但天然无法生成完整动态场景地图;VDO-SLAM、DynaSLAM II、Body-SLAM 这类方法开始建模动态物体,但表达停留在点云、关节或粗 SMPL mesh,纹理和细节不足,不适合作为 photorealistic map。NeRF/GS SLAM 解决了静态场景可渲染表示问题,但静态表示遇到动态体会把时间变化平均进地图。作者的核心观察是:Gaussian splatting 的显式粒子结构比 NeRF 更适合被绑定到运动模型上;如果再用人体/动物模板或刚体运动约束限制 Gaussians 的变化,就可以把动态物体变成一个可优化、可渲染、可参与定位的中间表示。关键缺口不是缺一个 renderer,而是缺一个把动态前景的运动先验、外观约束、深度约束和相机位姿约束连起来的信息流。

Core Idea

核心思想可以概括为:把动态场景拆成“静态背景 GS 地图”和“动态前景 GS 实体”,并让每个前景实体带有合适的运动/形变 inductive bias。人和四足动物不是自由 Gaussians,而是依附于 SMPL/SMAL 这类 articulated shape prior;刚体物体不是逐帧重建,而是通过光流建立跨帧关联并估计刚体运动。这样,动态区域不再污染静态地图,也不再被丢弃,而是以可解释的运动状态进入优化。

这和 prior 的本质区别在于信息流方向变了:过去动态 SLAM 多数是“先识别动态,再从定位中移除”;PG-SLAM 是“先识别/建模动态,再把它作为额外约束用于定位”。它引入的新 bias 是实体级动态分解加类别运动先验,而不是单纯换成 GS 表示。理论直觉上这会有效,因为 photometric/depth loss 本身有大量局部极小值,尤其动态场景中像素对应关系不稳定;而模板形变、刚体配准、光流几何约束共同缩小了可行解空间,使优化不必从纯 appearance 中同时解释相机运动和物体运动。

Method

方法中值得保留的机制主要有四个。

1. 动态前景的实体化 GS 表示。它解决的是静态 Gaussians 无法表达时间变化的问题。对人体,Gaussians 绑定到 SMPL 表面,并通过 pose variation 驱动一个 MLP 预测 Gaussian 中心和旋转的变化;对刚体物体,用光流和深度得到 3D-3D 对应,再估计刚体变换。必要性在于:如果不加这类运动先验,GS 的高表达力会把错误运动吸收到形状、透明度和颜色里,得到视觉上 plausible 但几何上不稳定的地图。

2. 背景局部地图与局部间对齐。它解决的是在线 GS-SLAM 中短窗口优化和长程一致性的矛盾。局部内优化提供多视角一致性,局部间优化用 Gaussian center 的几何对齐加 appearance refinement 来减少累积误差。这里的核心变化是从逐帧增量融合转向局部 map-level memory reuse,本质上接近局部 bundle adjustment + map alignment,只是残差通过可微渲染表达。

3. 两阶段相机定位。先只用背景做 coarse pose,再把已粗定位后的动态前景放进 world frame 参与 fine optimization。这个设计非常关键,因为动态前景在没有相机位姿初值时本身状态不确定,直接联合优化容易把相机运动和物体运动混淆。两阶段策略相当于一个 curriculum:先用相对可信的静态结构建立坐标系,再用更多观测细化。

4. 3D Gaussian 到 2D optical flow 的几何约束。它解决的是 photometric alignment basin 太窄的问题。方法利用渲染权重把一个像素背后的多个 Gaussians 投影到下一帧,形成 projected flow,并与 RAFT 估计的 observed flow 对齐。这个机制把稠密光流从 2D correspondence 转化为对 3D map 和 camera pose 的约束,是论文里比普通 GS-SLAM 更有信息增量的部分。

Key Insight / Why It Works

这篇论文真正有效的原因不是“用了 Gaussian splatting”,而是做了 representation alignment:动态物体的表示、运动模型、可微渲染残差、光流对应和相机位姿优化被放进了同一个坐标/优化框架里。GS 的优势是显式中心、尺度、旋转和 opacity 可被直接变换,因此很容易接模板、刚体变换和投影 flow;如果换成 NeRF,类似的实体级运动绑定会更重、更难实时更新。

最可能的核心贡献是“动态前景从 outlier 变成 constraint”。这点对动态占比高的场景特别重要:过滤式方法在这类场景中有效观测少,定位会退化;PG-SLAM 通过给动态物体施加形变/刚体先验,使前景像素重新变成可用约束。换句话说,它不是解决了动态性本身,而是通过强先验把一部分动态性重新静态化/结构化。

第二个关键是 optical-flow geometry loss。纯 RGB-D rendering loss 在相机快速运动或动态物体快速运动时容易错误关联,flow 提供了跨帧像素运动的直接观测,扩大优化收敛域。这里本质上是把 RAFT 的预训练 correspondence 能力注入 SLAM,而不是 SLAM 自己从几何中发现对应。增益很可能相当一部分来自外部光流模型的强泛化能力。

局部地图优化是有效但不新鲜的部分。它更像 GS 版本的 local BA / submap alignment。appearance constraint 融进 ICP 可以提升收敛,但从机制上看属于合理工程增强,而非根本性新建模。

人体 MLP 形变模块的贡献需要谨慎看。它用 pose variation 预测 Gaussian 变化,本质是把 SMPL 的 articulated prior 加一个 residual deformation。对短序列、单人或少人场景有效;但它是否学到可泛化的人体动态模型,文中未充分说明。更可能是 test-time fitting 加模板先验,而不是跨场景 learned dynamics。

Relation To Prior Work

PG-SLAM 处在三条技术谱系的交叉点:动态 object-aware SLAM、NeRF/GS-SLAM、人体/物体 tracking with priors。和 RoDyn-SLAM 这类过滤动态物体的方法相比,本质差异是没有把动态前景当作 nuisance,而是显式建模并用于定位。和 MonoGS、SplaTAM、Gaussian-SLAM 这类静态 GS-SLAM 相比,差异不是渲染公式,而是引入 entity-level temporal factorization,避免单一静态 Gaussian map 吸收所有时间变化。和 Body-SLAM/AirDOS 相比,它把动态人体从关节/粗 mesh 提升为可 photorealistic rendering 的 GS 表示。

看似新的部分里,有不少是已有思想的重组:局部地图、loop closure、ICP、photometric/depth BA、光流约束、SMPL prior 都不是新概念。实质创新在于把这些约束组织到 GS 表示上,并让动态实体与相机定位形成闭环。真正新增的信息来自外部感知模块:Mask R-CNN 提供实例分解,ReFit/SMPL 提供人体结构,RAFT 提供跨帧对应。PG-SLAM 更像是一个强先验、多源观测融合的动态 GS-SLAM 系统,而不是单一算法突破。

Dataset / Evaluation

实验使用 Bonn、TUM、NeuMan 等真实 RGB-D 动态数据,覆盖室内人/物体动态和部分室外人体序列,任务包括相机定位、背景/前景渲染、人轨迹估计等。整体上 benchmark 能支持论文的主要 claim:相比过滤动态物体或静态 GS/NeRF SLAM,显式动态前景建模确实改善完整场景表示,并在动态占比较高时提升定位。

但 evaluation 也有明显边界。第一,数据集中的动态类别基本落在方法设计覆盖范围内:人、四足动物、刚体物体。这验证的是“有模板/刚体假设时方法有效”,不是开放动态世界泛化。第二,系统依赖多个外部网络,实验没有充分拆分这些网络质量对结果的影响;例如 RAFT flow 或 ReFit pose 错误时的鲁棒性缺少系统分析。第三,渲染指标对 photorealistic map 有帮助,但不能完全说明几何可用性,尤其动态物体的长期一致性、遮挡恢复、重识别稳定性没有被充分量化。第四,效率仍非实时,真实机器人部署 claim 因此要打折。

Limitation

最重要的限制是强先验依赖。人体靠 SMPL/ReFit,四足动物靠 SMAL,刚体靠可靠光流和深度;一旦动态对象不属于这些先验类别,或者存在严重遮挡、非刚体无模板变形、透明/反光/细薄结构,方法没有清晰的统一处理方式。它不是 general dynamic SLAM,而是 prior-driven dynamic entity SLAM。

第二,系统把一部分难题转移给外部模型。实例分割决定前景/背景分解,光流决定跨帧关联,ReFit 决定人体 pose/scale 初始化。论文中未充分说明这些模块失败时如何影响整体优化,也没有给出端到端的不确定性建模。因此所谓鲁棒性很可能依赖外部模型在 benchmark 上表现良好。

第三,动态前景参与定位存在可观测性风险。当前景运动和相机运动在图像上相似时,联合优化可能把物体运动错误解释为相机运动,或反过来。论文通过两阶段策略和运动先验缓解,但没有严格讨论退化情形。

第四,scalability 上限明显。每个动态实体维护 Gaussians、运动状态和优化;多人物、多刚体、长序列会带来内存管理、身份关联、遮挡、局部地图增长和优化时间问题。文中通过硬盘保存 Gaussians 和多线程实现控制成本,但这更像工程补丁。

第五,实时性不足。作者也承认不能实时。对于 SLAM 来说这不是小问题,因为很多动态场景优势只有在在线闭环中才有意义。当前结果更接近 offline/near-online reconstruction + tracking,而不是可直接部署的实时动态 SLAM。

Takeaway

  • 1. 动态 SLAM 的关键不一定是更好地剔除动态物体,而是把可建模的动态物体重新变成约束源;这对人/车/动物等结构化动态体尤其重要。
  • 2. GS 适合作为动态 SLAM 的中间表示,不是因为它渲染漂亮,而是因为它显式、可变换、可绑定到运动模型,并能自然接 photometric、depth、flow 残差。
  • 3. 未来更值得做的是减少对类别模板和外部感知模块的硬依赖:例如无模板动态实体分解、带不确定性的 flow/segmentation 融合、长期 identity-aware dynamic map,而不是继续堆更多特定类别模块。
  • 4. 这篇工作提示了一个方向:SLAM map 不应只是静态背景,而应是由静态 submap 和动态 object memory 共同构成的时变世界模型;但 PG-SLAM 目前还停留在强先验、test-time optimization 驱动的阶段。

一句话总结

PG-SLAM 是一篇把 GS-SLAM 从静态场景推进到强先验动态实体建模的系统型工作,其真正贡献在于将动态前景从待剔除噪声转化为可渲染、可优化、可参与定位的结构化约束。