4D Gaussian Splatting:动态场景的高效显式表示

A. 本篇主题

本篇围绕 4D Gaussian Splatting(4DGS) 的核心建模与渲染机制。4DGS 将 3DGS 的显式高斯表示扩展到时间维度,形成完整的”时空显式高斯”框架。本篇将详述:4D 高斯的数学定义与参数化、时间条件化形变场的建模、渲染时如何从时空状态得到当前帧的高斯分布、以及它与”逐帧 3DGS”方案的本质差异。本篇是整个系列笔记的收束——从 NeRF 的隐式连续场(笔记 01),到 3DGS 的显式高斯(笔记 03-04),再到 4DGS 的时空显式高斯。

B. 本篇在整条路线中的位置

笔记 05 指出了 3DGS 处理动态场景的根本局限:每个高斯的参数在训练后固定,无法表达时间演变。笔记 05 的 K-Planes/HexPlane 提供了时空分解的思路,但其仍是隐式表示(特征平面 + MLP 解码)。

4DGS 的核心创新是:将 3DGS 的显式高斯扩展到时间维度,同时保留高斯投影+splatting 的高效渲染范式。这形成了完整的”显式时空高斯”路线:

  • NeRF(笔记 01):隐式连续场 → 积分方程
  • 3DGS(笔记 03-04):显式高斯集合 → splatting 方程
  • 4DGS(本篇):显式时空高斯集合 → 时空 splatting

本篇的结尾将总结整条路线的演进逻辑,并指出 4DGS 的开放问题与未来方向。

C. 数学建模

C.1 符号定义

符号维度含义
3D 个 4D 高斯的空间均值(参考位置)
SPD 个 4D 高斯的空间协方差
标量 个 4D 高斯的时间中心
标量 个 4D 高斯的时间协方差(各向同性)
标量不透明度
3D颜色(RGB 或 SH 系数)
4D 高斯四维权值分布
时间条件当前帧的时间

C.2 4D 高斯的定义

4DGS 的核心是将高斯从 3D 扩展到 4D 时空:

简化写法(假设时间协方差各向同性 是标量):

时空分解的高斯

实际实现中,4DGS 通常使用时空分解表示:将时间部分独立出来

其中:

这种分解使得 4D 高斯可以表示为一个空间高斯和一个时间高斯的乘积。

C.3 时间条件化形变场

核心思想:不直接建模 4D 高斯,而是建模一个从参考时间任意时间的形变场。

形变场定义

其中 是形变位移, 是条件化的时间。

时间条件化的高斯形变

给定参考时间 (通常是训练数据的中间帧), 时刻的高斯均值和协方差通过形变场变换:

其中 是形变场的雅可比矩阵。

形变场的参数化

形变场用小型 MLP 或特征网格参数化:

其中 是位置编码(与 NeRF 相同)。

时空调制(FiLM)

为增强时间条件化能力,使用 FiLM(Feature-wise Linear Modulation):

即形变分解为与时间无关的基础形变 和与时间线性相关的增量

D. 详细推导

D.1 4D 高斯投影到当前帧的推导

目标:给定时间 ,将 4D 高斯 投影到该时刻的 3D 高斯

时空分解形式

当 4D 高斯可分解为时空乘积时:

在时间 时刻,沿时间维度积分(边缘化)得到 3D 空间高斯:

由于 仅是一个与 无关的标量因子,投影后的 3D 高斯为:

时间形变形式(更常用):

当使用形变场时,投影过程为:

其中 是形变场的雅可比。

投影后的 3D 高斯 可直接用于 3DGS 的渲染流程。

D.2 时间条件化形变的梯度推导

训练目标

沿用笔记 04 的重建损失框架:

其中 是在时间 渲染的颜色。

链式法则

对形变场参数 的梯度:

  • :渲染方程对高斯参数的梯度(笔记 03-04)
  • :投影高斯对形变场的梯度
  • :形变场本身的梯度(MLP 反向传播)

时空调制的梯度

FiLM 形式 的梯度:

所以时间 的梯度会额外通过 传递,这使得时间条件化信息能有效指导形变场学习。

D.3 与逐帧 3DGS 的本质差异推导

逐帧 3DGS

对每个时间步 ,独立运行 3DGS:

其中每个 完全独立于其他时间步。

关键问题:缺乏时间连贯性—— 时刻的 时刻的 可能对应空间同一点,但没有显式约束。

4DGS 的参数共享

4DGS 所有时间步共享参考高斯 形变场

这实现了:

  • 时间连贯性:同一参考高斯在不同时间步的形变自动保持连贯
  • 参数效率 个参考高斯 + 形变场 = 个时间步的完整表示,无需 参数
  • 泛化能力:未见过的中间时间步可通过形变场插值生成

数学表达

是两个时间步, 共享同一个参考高斯 。则:

这说明时间相近的高斯空间位置相近(时间梯度连续),这正是物理世界运动平滑性的体现。

E. 算法与渲染流程

E.1 4DGS 渲染流程

输入:4D 高斯集合 {G_i^0} + 形变场 F_t,相机参数 (R,t,f),当前时间 τ
输出:时间 τ 的渲染图像

1.  // 1. 时间条件化形变
2.  for each Gaussian G_i^0 do
3.      // 形变到当前时间 τ
4.      Δμ ← MLP_temporal(γ(μ_i), τ)
5.      μ_i^τ ← μ_i + Δμ
6.      // 协方差变换
7.      J_F ← Jacobian(MLP_temporal, μ_i)
8.      Σ_i^τ ← J_F · Σ_i · J_F^T
9.  end for

10. // 2. 3DGS 渲染(使用变形后的高斯)
11. for each tile do
12.     Gaussians_in_tile ← FilterGaussians({G_i^τ}, tile)
13.     Sorted ← Sort(Gaussians_in_tile, by depth)
14.     for each pixel in tile do
15.         Ĉ ← AlphaBlend(Sorted, pixel)
16.         I[u,v] ← Ĉ
17.     end for
18. end for
19. return I

E.2 4DGS 训练流程

输入:动态场景的多视角视频 {I_l^t},时间范围 [0, T]
输出:参考高斯集合 {G_i^0} 和形变场 MLP_θ

1.  Initialize G_i^0 from first frame (via SfM or random)
2.  Initialize MLP_θ randomly

3.  for iteration = 1 to N do
4.      t ~ Uniform(0, T)                    // 随机采样时间步
5.      for each camera π_l do
6.          // 变形到时间 t
7.          {G_i^t} ← Deform({G_i^0}, F_t, t)

8.          // 渲染
9.          Ĉ ← Render({G_i^t}, π_l)
10.         L ← ‖Ĉ - I_l^t‖²

11.         // 反向传播
12.         ∇θ L ← backprop through MLP_θ
13.         ∇G_i^0 L ← backprop through G_i^0
14.         Update(G_i^0, θ) via Adam
15.     end for

16.     // Densification/Prune(类 3DGS,每 100 次迭代)
17.     if iteration % 100 == 0 then
18.         Adaptively add/remove G_i^0 based on gradients
19.     end if
20. end for

E.3 4DGS 的时间采样

时间维度的连续性要求训练时均匀覆盖整个时间范围:

对于长视频场景( 很大),可以采用时间分层策略:

  • 将时间划分为 个区间
  • 每个区间独立训练或微调
  • 测试时可插值到任意

F. 关键直觉

  1. 4D 高斯 = 3D 高斯 × 时间高斯:时空分解使得 4D 高斯可视为一个空间高斯和一个时间高斯的乘积,投影时只需沿时间维度边缘化。

  2. 形变场实现”一次建模,多帧复用”:所有时间步共享参考高斯和形变场,参数量从 降到

  3. 时间梯度连续保证运动平滑,这与物理世界运动的平滑性一致。

  4. 时间条件化通过 FiLM 实现 使得时间信息能有效调节形变场。

  5. 4DGS 统一了隐式(NeRF)和显式(3DGS)的范式:既有时空连续性(可像 NeRF 那样插值到任意时间),又有显式几何基元(高斯的可微投影)。

G. 局限性

  1. 形变场表达能力有限:小型 MLP 或特征网格可能无法精确表达复杂的非刚性形变(如人体关节运动)。

  2. 时间协方差是各向同性的假设:实际场景的时间演变可能在不同方向有不同的时间尺度(如快速旋转 vs 缓慢形变),各向同性假设是限制。

  3. 参考高斯的初始化敏感:形变场的能力受参考高斯质量影响,不好的初始化可能导致形变场无法有效补偿。

  4. 长期依赖问题:当 很大时,形变场需要捕捉长距离的时间依赖,可能需要更深的网络。

  5. 训练数据需要时空连贯的多视角视频:相比静态 3DGS,4DGS 训练数据获取更难(需要时空一致的 4D 标注)。

H. 与前后篇的衔接

本篇承接:笔记 05 的时空分解思想(K-Planes/HexPlane)和笔记 03-04 的 3DGS 框架。4DGS 将”时空分解”(笔记 05 的核心思想)与”显式高斯”(笔记 03-04 的核心创新)结合,形成完整的”显式时空高斯”框架。

整条路线的收束

笔记表示类型渲染方程时间处理
01 NeRF隐式连续场(MLP)体渲染积分
02 效率改进隐式+离散化(体素/哈希)体渲染积分
03 3DGS显式高斯集合Splatting 求和
04 3DGS训练显式高斯集合 + densificationSplatting 求和
05 时空建模隐式时空分解(平面+MLP)体渲染积分时空分解
06 4DGS显式时空高斯时空 splatting形变场

演进逻辑

  1. 范式转变(01→03):从”连续函数”到”离散高斯集合”,从积分到求和
  2. 效率提升(01→02):从慢速 MLP 到快速哈希/体素
  3. 时空扩展(03→06):从 3D 高斯到 4D 高斯,从静态到动态
  4. 表示融合(05→06):将隐式时空分解的思想融入显式高斯框架

未来方向(开放问题):

  • 如何处理物体分裂/合并(拓扑变化)
  • 如何实现真实编辑(可操控的形变场)
  • 如何扩展到大尺度长视频场景
  • 如何与扩散模型结合(4DGS + SDS)

本篇必须记住的结论

  1. 4D 高斯定义为时空乘积 ,或通过形变场从参考时间变形得到。

  2. 形变场实现参数共享:所有时间步共享参考高斯 和形变场 ,参数量从 降到

  3. 时间条件化通过 FiLM 实现,使时间信息能有效调节空间形变。

  4. 渲染时通过形变场将 4D 高斯投影到当前帧 ,然后用标准 3DGS splatting 渲染。

  5. 4DGS 与逐帧 3DGS 的本质差异是时间连贯性和参数效率:同一参考高斯在不同时间步自动保持连贯,无需逐帧独立建模。

  6. 4DGS 收束了整条路线:从 NeRF 的隐式连续场(笔记 01),到 3DGS 的显式高斯(笔记 03-04),再到 4DGS 的显式时空高斯,完成”隐→显,静态→动态”的完整演进。


参考文献

  1. Wu et al. “4D Gaussian Splatting: Efficient and Real-time Synthesis of Dynamic Scenes” CVPR 2024
  2. Luiten et al. “Instant 3D Gaussian Scene Editing” CVPR 2024
  3. Fridovich-Keil et al. “K-Planes: Explicit Radiance Fields in Space, Time, and Beyond” ICLR 2023
  4. Kerbl et al. “3D Gaussian Scattering for Real-Time Rendering of Radiance Fields” ACM TOG 2023
  5. Dumount et al. “FiLM: Feature-wise Linear Modulation” NeurIPS 2019