4D-Rotor Gaussian Splatting: Towards Efficient Novel View Synthesis for Dynamic Scenes
Peking University; Princeton University
一句话总结
把 3D 高斯提升到 4D 时空 \(XYZT\) 空间,用几何代数中的「4D 旋量(rotor)」表示 4D 旋转,通过对 4D 高斯做时间切片自然导出随时间演化的动态 3D 高斯,再配合熵损失与 4D 一致性损失和高度优化的 CUDA 实现,在动态场景新视角合成上同时刷新画质与速度(RTX 3090 上 277 FPS)。
研究背景
从二维图像重建三维场景并合成新视角,是计算机视觉与图形学的长期目标,在影视、游戏、VR/AR 中有大量需求。任务分为静态场景与动态场景两类,其中动态场景由于引入时间维度和多样的运动模式,高效且精确的新视角合成一直很难。
已有动态方法主要有几条路线,各有痛点:
- 联合建模空间与动态:把三维场景和其随时间的变化一起学,但时空高度纠缠导致细节难以保留。
- 规范空间加形变场:学一个静态规范空间,再预测形变场解释时间变化。这种范式难以刻画物体突然出现或消失这类复杂动态。
- 基于体渲染:多数方法建立在需要对数百万条光线密集采样的体渲染上,即便静态场景也难以做到实时。
3D Gaussian Splatting(3DGS)用显式的各向异性 3D 高斯椭球加快速光栅化,在静态场景上实现了实时且照片级的新视角合成。作者由此提出把高斯从 3D 提升到 4D:核心观察是「某一时刻的三维动态,可看作 4D 时空高斯在该时间平面上的切片」。切片得到的 3D 高斯可沿用 3DGS 的快速光栅化投影成像,从而同时继承其高画质与高速度;而把 3DGS 的剪枝-分裂机制扩展到时间维,又天然适合表示突然出现或消失的复杂动态。
方法
整体框架
输入一段(多视角或单目)视频,输出一组 4D 时空高斯;渲染时按查询时间切片得到动态 3D 高斯,再投影光栅化成图,梯度回传驱动自适应密度控制。
flowchart LR
A[带位姿视频<br/>4D 包围盒采样初始化] --> B[旋量表示的 4D 高斯<br/>4D 中心 / 4D 尺度 / 4D 旋量]
B --> C[按时间 t 切片<br/>导出动态 3D 高斯]
C --> D[深度排序投影<br/>可微分块光栅化]
D --> E[图像损失<br/>L1 + SSIM + 熵 + 4D 一致性]
E --> F[梯度回传<br/>自适应密度控制 剪枝/分裂]
F --> B
关键设计
旋量表示的 4D 高斯。类比 3DGS,一个 4D 高斯由 4D 中心 \(\boldsymbol{\mu}_{4D}=(\mu_x,\mu_y,\mu_z,\mu_t)\) 与 4D 协方差 \(\Sigma_{4D}\) 描述:
\[G_{4D}(\mathbf{x}) = e^{-\frac{1}{2}(\mathbf{x}-\boldsymbol{\mu}_{4D})^{\top}\Sigma_{4D}^{-1}(\mathbf{x}-\boldsymbol{\mu}_{4D})}\]
协方差进一步分解为 4D 尺度与 4D 旋转 \(\Sigma_{4D}=R_{4D}S_{4D}S_{4D}^{\top}R_{4D}^{\top}\)。尺度 \(S_{4D}=\mathrm{diag}(s_x,s_y,s_z,s_t)\) 直接建模,难点在 4D 旋转。作者借几何代数用「4D 旋量」表示,它由 8 个基分量组成:
\[r = s + b_{01}e_{01} + b_{02}e_{02} + b_{12}e_{12} + b_{03}e_{03} + b_{13}e_{13} + b_{23}e_{23} + p\,e_{0123}\]
再经数值稳定的归一化 \(F_{norm}\) 与旋量到矩阵的映射 \(F_{map}\) 得到旋转矩阵 \(R_{4D}=F_{map}(F_{norm}(r))\)。这一表示可解释且时空可分:前四个分量编码 3D 空间旋转,后四个定义时空旋转(即空间平移);当后四个分量置零时,旋量退化为四元数,恰好表示纯 3D 空间旋转。因此 4DRotorGS 是 3DGS 的推广——关闭时间维即还原为 3DGS,能统一建模静态与动态场景。相比同期用两个纠缠的等斜四元数表示 4D 旋转的工作,旋量表示更可解释、时空可分,也更易约束与归一化。
时间切片。给定 \(\Sigma_{4D}\) 及其逆的分块形式,在时间 \(t\) 切片得到的 3D 高斯为:
\[G_{3D}(\mathbf{x},t) = e^{-\frac{1}{2}\lambda(t-\mu_t)^2}\,e^{-\frac{1}{2}[\mathbf{x}-\boldsymbol{\mu}(t)]^{\top}\Sigma_{3D}^{-1}[\mathbf{x}-\boldsymbol{\mu}(t)]}\]
其中
\[\lambda = W^{-1}, \quad \Sigma_{3D} = U - \frac{VV^{\top}}{W}, \quad \boldsymbol{\mu}(t) = (\mu_x,\mu_y,\mu_z)^{\top} + (t-\mu_t)\frac{V}{W}\]
相比原始 3DGS,切片后的 3D 高斯多出两个关键项。其一是时间衰减项 \(e^{-\frac{1}{2}\lambda(t-\mu_t)^2}\):当 \(t\) 接近高斯的时间位置 \(\mu_t\) 时该点出现并增长,在 \(t=\mu_t\) 达到峰值不透明度,随后逐渐收缩直至消失。通过控制时间位置与时间尺度,就能表示突然出现或消失的动态(渲染时把 \(\lambda(t-\mu_t)^2\) 超过阈值 16 的点过滤掉)。其二是加到中心位置上的运动项 \((t-\mu_t)V/W\):这说明线性运动会从 4D 切片操作中自然涌现,小时间区间内的运动可用线性近似,复杂非线性运动由多个高斯组合表示;而 \(V/W\) 正是当前时刻的运动速度,等于「免费」得到一个速度场。切片后的 3D 高斯沿用 3DGS 的深度排序与快速可微光栅化成像。
两项正则。提升到 4D 后自由度增大,需要正则稳定训练。熵损失把不透明度推向 0 或 1,帮助凝聚高斯点、去除「浮点噪声(floaters)」,在稀疏视角训练时尤为有用:
\[L_{entropy} = \frac{1}{N}\sum_{i=1}^{N} -o_i \log(o_i)\]
4D 一致性损失基于「4D 空间中相邻的高斯应有相似运动」的直觉,对每个点在其 4D 邻域 \(\Omega_i\) 内取 \(K\) 个最近邻,约束其切片导出的速度 \(\mathbf{s}\) 一致:
\[L_{consistent4D} = \frac{1}{N}\sum_{i=1}^{N}\left\lVert \mathbf{s}_i - \frac{1}{K}\sum_{j\in\Omega_i}\mathbf{s}_j \right\rVert_1\]
作者强调用 4D 距离而非 3D 距离度量相似性更合理(3D 上相邻的点未必属同一运动物体),而 4D 最近邻的计算是该 4D 表示天然支持、形变类方法无法利用的。总损失为:
\[L = (1-\lambda_1)L_1 + \lambda_1 L_{ssim} + \lambda_2 L_{entropy} + \lambda_3 L_{consistent4D}\]
工程实现。作者实现了 PyTorch 与高度优化的 C++/CUDA 两个版本;CUDA 版把 4D 旋量到旋转矩阵、4D 高斯切片、以及 4D 高斯的复制与剪枝都做在 CUDA 中,训练加速约 16.6 倍,在单张 RTX 4090 上以 \(1352\times1014\) 分辨率渲染达 583 FPS。
实验结果
在 Plenoptic Video(真实多视角)上,方法在画质与速度上同时领先,PSNR 达 31.62,推理 277 FPS:
| 方法 | PSNR↑ | SSIM↑ | LPIPS↓ | 训练↓ | FPS↑ |
|---|---|---|---|---|---|
| HyperReel | 30.36 | 0.92 | 0.17 | 9 h | 2.00 |
| MixVoxels | 30.85 | 0.96 | 0.21 | 91 min | 16.70 |
| Deformable4DGS | 28.42 | 0.92 | 0.17 | 72 min | 39.93 |
| RealTime4DGS | 29.95 | 0.92 | 0.16 | 8 h | 72.80 |
| 本文 | 31.62 | 0.94 | 0.14 | 60 min | 277.47 |
在 D-NeRF(单目合成,视角稀疏)上,除直接跟踪高斯形变、与该数据集完美契合的 Deformable3DGS(PSNR 39.31)外,本文在其余方法中画质最佳(PSNR 34.26),且渲染速度高达 1257.63 FPS,训练仅 5 分钟。消融显示:加入熵损失能在保持 PSNR/SSIM 的同时把点数减少一个数量级并去除浮点噪声(但在视角密集、透明物体多的 Plenoptic 上反而拉低 PSNR,故该数据集取 \(\lambda_2=0\));4D 一致性损失显著降低噪声、提升光流的准确性与平滑度。此外,旋量表示与对偶四元数表示在测试 PSNR 上无差异,但旋量更可解释、时空可分。
亮点与局限
亮点:
- 从表示层面把动态建模统一为「4D 时空高斯的时间切片」,切片天然导出时间衰减与线性运动项,既能表示突然出现/消失,又能免费得到速度场。
- 用几何代数的 4D 旋量表示 4D 旋转,时空可分、可解释,并优雅地将 3DGS 纳为特例(关闭时间维即退化)。
- 高度优化的 CUDA 实现带来数量级的速度优势,同时刷新动态新视角合成的画质与实时性。
局限:
- 熵损失并非普适:在视角密集、含大量透明物体的场景(如 Plenoptic)会降低画质,需按场景关闭。
- 用「小区间线性运动 + 多高斯组合」近似复杂非线性运动,剧烈或长程运动、极稀疏视角仍是挑战。
- 表示为显式点集,动态场景下的点数与存储随复杂度增长,仍受一定约束。
延伸思考
4DRotorGS 与同期的 RealTime4DGS 一起,把动态高斯从「规范空间加形变场」推进到「原生 4D 时空基元」这一更简洁的范式,而旋量表示为 4D 旋转提供了比对偶四元数更可解释、更易优化的数学工具,也把几何代数引入了辐射场表示。它「切片即得动态 3D 高斯、并免费获得速度场」的性质,为动态重建、光流估计、4D 跟踪与生成等下游任务提供了统一基础;而熵损失的场景依赖性与线性运动近似的局限,也指向了面向表面的稠密化、非线性运动建模以及更紧凑的时空表示等改进方向。