动态场景的时空建模:从 3D 到 4D
A. 本篇主题
本篇围绕动态场景的时空建模,是 3DGS 迈向 4DGS 的过渡篇。笔记 03-04 的 3DGS 框架仅适用于静态场景,本篇阐明为什么静态表示无法处理动态场景,以及如何通过时空分解将空间和时间解耦表示。本篇重点介绍 K-Planes 和 HexPlane 两种代表性方法,详述它们的数学建模与推导。这些方法为笔记 06 的 4DGS 提供了”时空分离”的核心理念。
B. 本篇在整条路线中的位置
3DGS(笔记 03-04)的核心局限是时间维度缺失——每个高斯的参数(位置、协方差、颜色)在训练后固定,无法表达随时间变化的场景。
处理动态场景有两条主要路径:
-
逐帧独立建模:对每个时间步分别运行 3DGS,获得
。缺点是时间连贯性差,无法处理时序一致性,且计算量随帧数线性增长。 -
时空联合建模:将场景建模为 4D 函数
,同时学习空间和时间的表示。优点是自然地建模时间连贯性。
本篇聚焦第二条路径中的代表性方法:K-Planes 和 HexPlane。这些方法的核心洞察是:时空函数可以分解为空间分量和时间分量的组合,从而降低复杂度。
本篇的结尾将指出 K-Planes/HexPlane 的共同局限:它们仍是连续的隐式表示(基于 MLP 或特征网格),缺乏 3DGS 的显式高斯优点(可微投影、高效渲染)。这为笔记 06 的 4DGS 做了铺垫——将 3DGS 的显式高斯扩展到时间维度。
C. 数学建模
C.1 动态场景的问题定义
4D 表示:动态场景可建模为 4D 时空函数:
其中:
是空间位置 是时间 是颜色 是密度
时空光线:在 4D 时空中,相机光线扩展为时空光线(spatiotemporal ray):
其中
C.2 时空分解的核心思想
问题:4D 函数直接建模需要 4D 网格或 MLP,参数量巨大(
解决方案:时空分解。假设 4D 函数可以分解为空间分量和时间分量的组合:
或更一般地:
这与矩阵低秩分解的思想完全一致——高维张量(4D 函数)可由低维因子组合近似。
D. 详细推导
D.1 K-Planes 的数学推导
张量表示:
将 4D 场景表示为四维张量
K-平面分解:
K-Planes 将
当
当
物理直觉:
是 平面上的特征图(空间投影) 是 时空平面上的特征图 - 四个平面项的乘积捕捉了 4D 张量的不同”视角切片”
等价的紧凑形式:
定义四个因子矩阵:
则:
(省略缩并符号,用爱因斯坦求和约定理解)
D.2 HexPlane 的数学推导
六面表示(Hexagonal Planes):
HexPlane 是 K-Planes 的扩展,使用六个 2D 特征平面而不是四个:
| 平面 | 描述 | 维度 |
|---|---|---|
时空查询:
给定 4D 点
- 在六个平面上分别做 2D 插值:
- 融合六个特征:
- 用小型 MLP 解码到颜色和密度:
为什么需要六个平面:
三个空间平面
时间维度的分解效率:
考虑存储复杂度:
- 完整 4D 张量:
- HexPlane:
(对于固定的 ,约简到 )
当
D.3 时空调和函数的低秩性推导
核心假设:自然场景的 4D 函数在时空维度上具有低秩结构。
数学表述:
设
其中
为什么低秩有效:
- 空间相关性:相邻空间位置的密度和颜色高度相关
- 时间连贯性:连续时间步之间的变化通常平滑
- 物理约束:大多数真实场景的运动会遵循物理规律(能量最小、平滑轨迹)
低秩分解通过显式编码这些先验,实现高效表示。
E. 算法与训练流程
E.1 K-Planes 训练流程
输入:动态场景的多视角视频 {I_l^t}(t=1,...,T),相机参数
输出:K-Planes 参数 {F^k_*} 和 MLP 解码器
1. Initialize Planes: F^1, ..., F^K ← small random values
2. for iteration = 1 to N do
3. // 采样时空光线
4. t ~ Uniform(0, T), (u,v) ~ Uniform(pixel)
5. r ← SaptiotemporalRay(camera, (u,v), t)
6. // 查询 K-Planes
7. for each plane p in {xy, xz, yz, xt, yt, zt} do
8. for k = 1 to K do
9. f_p^k ← Bilerp(F_p^k, query_point_p)
10. end for
11. f ← Σ_k f_xy^k ⊙ f_xz^k ⊙ f_yz^k ⊙ f_xt^k ⊙ f_yt^k ⊙ f_zt^k
12. (c, σ) ← MLP(f)
13. // 体渲染(沿空间维度积分)
14. Ĉ ← VolumeRenderAlongRay(r, c, σ)
15. L ← ‖Ĉ - I_t(u,v)‖²
16. Update planes and MLP via backprop
17. end for
E.2 HexPlane 渲染流程
输入:4D 点 (x,y,z,t),HexPlane 参数
输出:颜色 c 和密度 σ
1. // 六个平面的 2D 查询
2. f_xy ← Bilerp(F_xy, x, y)
3. f_xz ← Bilerp(F_xz, x, z)
4. f_yz ← Bilerp(F_yz, y, z)
5. f_xt ← Bilerp(F_xt, x, t)
6. f_yt ← Bilerp(F_yt, y, t)
7. f_zt ← Bilerp(F_zt, z, t)
8. // 特征融合
9. f ← f_xy + f_xz + f_yz + f_xt + f_yt + f_zt
10. // 解码
11. (c, σ) ← MLP(f)
12. return (c, σ)
E.3 动态场景的体积渲染
给定时空光线
这与静态 NeRF 的体渲染方程完全一致,只是密度和颜色现在是
F. 关键直觉
-
时空分解将高维问题转化为低维组合:4D 张量分解为多个 2D 平面,使得存储和计算从
降低到 。 -
K-Planes 的多平面融合捕捉不同维度的相关性:
平面捕捉空间相关性, 平面捕捉时间演变,融合后得到完整的时空表示。 -
低秩假设编码了自然场景的平滑性先验:空间相邻点相关,时间连续步相关,这使得极低的 rank
就能表达复杂场景。 -
HexPlane 的六平面表示避免了信息丢失:仅用四个平面可能丢失某些方向的信息(如
空间平面和 时空平面捕捉不同方向的变化)。 -
时空分解是通向 4DGS 的桥梁:K-Planes/HexPlane 证明了时空分离表示的可行性,为 4DGS 的”时空高斯”概念提供了理论基础。
G. 局限性
-
仍是隐式表示,依赖 MLP 解码:K-Planes/HexPlane 的特征平面需要通过小型 MLP 解码到颜色/密度,无法像 3DGS 那样直接渲染。
-
时间分辨率受限于张量维度:
必须是固定的,对不同长度的动态场景需要重新训练。 -
无法处理复杂的拓扑变化:如物体分裂/合并场景,平滑时空分解无法精确表达这些突变。
-
缺乏显式时空对应关系:平面融合是隐式组合,缺乏物理直觉(如”这个高斯正在移动”)。
-
渲染效率仍低于 3DGS:沿光线积分的计算量与场景复杂度成正比,无法利用 3DGS 的 GPU-friendly splatting。
H. 与前后篇的衔接
本篇承接:笔记 04 的 3DGS 训练机制,明确指出 3DGS 的时间维度缺失问题。
本篇引出:K-Planes/HexPlane 通过时空分解解决了动态场景的表示问题,但它们仍是隐式表示(特征平面 + MLP 解码),缺乏 3DGS 的核心优点——显式的几何基元(高斯)和可微投影渲染。
4DGS(笔记 06)的核心洞察是:将 3DGS 的显式高斯扩展到时间维度。每个 4D 高斯由空间位置
本篇的时空分解思想(空间和时间分量组合)是 4DGS 的理论基础——无论是 K-Planes 的多平面融合还是 4DGS 的形变场,本质都是将高维时空函数分解为低维分量的组合。
本篇必须记住的结论
-
动态场景建模为 4D 函数
,时空光线为 。 -
时空分解将 4D 张量分解为 2D 平面组合,将存储复杂度从
降低到 。 -
K-Planes 使用四个平面
的融合,每个时间步通过所有平面的特征插值和融合得到。 -
HexPlane 使用六个平面 更完整地捕捉各方向的信息,融合后通过 MLP 解码得到颜色和密度。
-
低秩假设编码了自然场景的时空平滑性先验,使得极低 rank
就能表达复杂动态场景。 -
K-Planes/HexPlane 仍是隐式表示,缺乏 3DGS 的显式几何基元和高效渲染,4DGS 将解决这一问题。
参考文献
- Fridovich-Keil et al. “K-Planes: Explicit Radiance Fields in Space, Time, and Beyond” ICLR 2023
- Godard et al. “HexPlane: Learning Dense RGB-D Reconstruction in the Wild” CVPR 2023
- Chen et al. “Fourier Features Let Networks Learn High Frequency Functions in Low Dimensional Domains” NeurIPS 2020(位置编码理论基础)
- TensoRF(同笔记 02,用于理解张量分解)