7DGS
7DGS
Paper: https://arxiv.org/pdf/2503.07946
背景
- 3DGS:高效,但只能处理静态场景。
- 4DGS:加入时间维度,可处理动态,但不支持复杂的视角依赖效果。
- 6DGS:加入方向维度,可处理视角依赖,但不支持动态。
7DGS:同时建模 空间几何(3D)+ 时间变化(1D)+ 视角方向(3D),且保持实时性能
核心
统一的 7D 高斯表示(7DGS)
每个场景元素用 位置(3D) + 时间(1D) + 方向(3D) 的高斯分布表示。
协方差矩阵捕捉三者之间的相关性,能自然建模几何、运动和外观的相互影响。
条件切片机制(Conditional Slicing)
将 7D 高斯按给定的时间和视角条件化,得到可直接送入现有 3DGS 渲染管线的 3D 高斯。
保留 3DGS 的高效光栅化优势,同时融合时间和方向信息。
自适应高斯细化(Adaptive Gaussian Refinement, AGR)
用轻量级 MLP 网络预测残差,动态调整高斯的中心、形状、方向等参数。
能更好地拟合非刚性形变和随时间变化的外观。
多视角多时间视频
│
7D 高斯初始化
│
[Adaptive Gaussian Refinement + 分裂/克隆]
│
条件切片 (t, d)
│
3D 高斯集合
│
3DGS 光栅化渲染
│
损失计算 & 参数更新
高斯表示
7DGS 把每个场景元素表示为一个 联合的 7 维高斯分布,一次性编码:
- 空间几何(3D,位置坐标)
- 时间变化(1D,动态帧位置)
- 方向依赖(3D,视角/入射方向)
7D 高斯表示
↓(自适应高斯细化 AGR)
更新后的 7D 高斯参数
↓(条件切片)
时间 & 视角条件化的 3D 高斯
↓(3DGS 光栅化渲染)
最终帧输出
数学表示
一个 7D 高斯随机变量 $X$ 分成三部分:
\[\mathbf{X} = \begin{bmatrix} \mathbf{X}_p \\ X_t \\ \mathbf{X}_d \end{bmatrix} \sim \mathcal{N}\left( \begin{bmatrix} \boldsymbol{\mu}_p \\ \mu_t \\ \boldsymbol{\mu}_d \end{bmatrix}, \begin{bmatrix} \boldsymbol{\Sigma}_p & \boldsymbol{\Sigma}_{pt} & \boldsymbol{\Sigma}_{pd} \\ \boldsymbol{\Sigma}_{pt}^\top & \Sigma_t & \boldsymbol{\Sigma}_{td} \\ \boldsymbol{\Sigma}_{pd}^\top & \boldsymbol{\Sigma}_{td}^\top & \boldsymbol{\Sigma}_d \end{bmatrix} \right)\]其中:
- $\bm{X}_p \in \mathbb{R}^3$:空间位置向量,均值 $\bm{\mu}_p$,协方差 $\bm{\Sigma}_p$
- $X_t \in \mathbb{R}$:时间标量,均值 $\mu_t$,方差 $\Sigma_t$
- $\bm{X}_d \in \mathbb{R}^3$:方向向量,均值 $\bm{\mu}_d$,协方差 $\bm{\Sigma}_d$
- $\bm{\Sigma}_{pt}$:空间与时间的相关性
- $\bm{\Sigma}_{pd}$:空间与方向的相关性
- $\bm{\Sigma}_{td}$:时间与方向的相关性
这些交叉协方差是关键,它让模型能捕捉:
- 物体运动(空间+时间)
- 高光随视角移动(空间+方向)
- 材质外观随时间变化且方向相关(时间+方向)
参数化
为了确保协方差矩阵合法(正定)并方便优化,作者用 Cholesky 分解:
\[\boldsymbol{\Sigma} = \mathbf{L} \mathbf{L}^\top\]$\mathbf{L}$ 是下三角矩阵,对角线强制为正. 避免优化时数值不稳定,并且梯度传播更顺畅
颜色
颜色依然采用 球谐函数(Spherical Harmonics, SH) 表达式(和 3DGS 一致)
没有显式的时间依赖项——动态信息已经编码在高斯的时间维参数中,渲染时通过条件切片注入
条件切片
高斯拆分
按空间 $\bm{X}_p$ 、时间 $ X_t $ 和方向 $\bm{X}_d$ 将协方差矩阵分块:
- 时间+方向联合协方差:
- 空间与(时间+方向)的相关性:
条件高斯公式(多元高斯条件分布性质)
给定 $ X_t = t_0 , \space \bm{X}_d = d_0 $,空间部分的条件分布为:
\[p(\mathbf{X}_p \mid X_t=t_0, \mathbf{X}_d=\mathbf{d}_0) \sim \mathcal{N}(\boldsymbol{\mu}_{\text{cond}}, \boldsymbol{\Sigma}_{\text{cond}})\]其中:
\[\boldsymbol{\mu}_{\text{cond}} = \boldsymbol{\mu}_p + \boldsymbol{\Sigma}_{p,(t,d)} \boldsymbol{\Sigma}_{(t,d)}^{-1} \begin{bmatrix} t_0 - \mu_t \\ {d}_0 - {\mu}_d \end{bmatrix}\] \[\boldsymbol{\Sigma}_{\text{cond}} = \boldsymbol{\Sigma}_p - \boldsymbol{\Sigma}_{p,(t,d)} \boldsymbol{\Sigma}_{(t,d)}^{-1} \boldsymbol{\Sigma}_{p,(t,d)}^\top\]不透明度调制(时间/方向相关性衰减)
离当前时间或视角越远的高斯,其贡献越小
\[f_{\text{temp}} = \exp\left[-\frac{1}{2}\lambda_t (t_0 - \mu_t)^2 \Sigma_t^{-1}\right]\] \[f_{\text{dir}} = \exp\left[-\frac{1}{2}\lambda_d (\mathbf{d}_0 - \boldsymbol{\mu}_d)^\top \Sigma_d^{-1} (\mathbf{d}_0 - \boldsymbol{\mu}_d)\right]\] \[\alpha_{\text{cond}} = \alpha \cdot f_{\text{temp}} \cdot f_{\text{dir}}\]得到 $ \boldsymbol{\mu}{\text{cond}}, \boldsymbol{\Sigma}{\text{cond}}, \alpha_{\text{cond}} $ 后,这就是一个标准 3DGS 元素,可直接送入原生 3DGS 光栅化管线。
这样既保留了3DGS的实时渲染性能,又把动态性和视角依赖编码进最终渲染
自适应高斯细化
Adaptive Gaussian Refinement, AGR
条件切片 (Conditional Slicing) 能根据时间 $t$ 和视角 $d$ 调整高斯的中心位置和不透明度,但高斯的形状(协方差)在整个过程中是固定的
在真实动态场景里,物体会因为非刚性形变、局部扭曲、流体/烟雾等效应而发生形状变化。如果形状不随时间调整,就会出现运动模糊、细节丢失甚至鬼影
AGR 的目标就是让每个高斯的中心、尺度、方向等参数能随时间和场景变化动态更新,从而更准确地刻画细微的运动与外观变化
构造时空特征向量
将高斯的核心属性拼接成一个综合特征:
\[f = \mu_p \oplus \mu_t \oplus \mu_d \oplus \gamma\left ( t \right )\]其中:
- $ \mu_p $: 空间位置 (3D)
- $ \mu_t $: 时间均值 (1D)
- $ \mu_d $: 方向均值 (3D)
- $ \gamma\left ( t \right ) $: 多频率时间编码(类似 NeRF 位置编码),用 $\sin$ 和 $\cos$ 捕捉高低频时间模式
残差预测网络
对不同参数分别训练小型 2 层 MLP $\phi$(Cin × 64 × Cout),输入特征 $f$,输出对应的残差调整量:
\(\hat{\mu}_p = \mu_p + \phi_p \left ( f \right )\) \(\hat{\mu}_t = \mu_t + \phi_t \left ( f \right )\) \(\hat{\mu}_d = \mu_d + \phi_d \left ( f \right )\) \(\hat{l} = l + \phi_l \left ( f \right )\)
$l$ 为协方差矩阵的下三角向量化表示(Cholesky 分解参数)
重构协方差矩阵
用更新后的 $ \hat{l} $ 重建 7D 协方差矩阵:
\[\hat{\Sigma} = \hat{L}\hat{L}^\mathrm{T}\]AGR 在 条件切片前 执行,所以切片计算得到的 $ \boldsymbol{\mu}{\text{cond}}, \boldsymbol{\Sigma}{\text{cond}}$ 已经考虑了形状、位置、方向的动态调整
增稠
7DGS 的优化是基于 3DGS 自适应高斯密度化(Adaptive Gaussian Densification)框架 扩展到 时空-角度(spatio-temporal-angular)域
每个高斯在训练中会动态调整:
- 克隆(cloning):在高误差区域增加高斯点
- 分裂(splitting):在变化剧烈的地方细化成多个高斯点
覆盖范围从原来的空间扩展到 空间 + 时间 + 方向 三个维度,确保全维度的信息都有足够采样密度
分裂触发条件(Split Criteria)
新增了 时间相关触发条件:
- 计算 空间-时间相关性强度(协方差块 $\Sigma_{pt}$ 的范数)
- 若相关性超过 0.05 屏幕宽度的归一化值,且时间尺度 $\Sigma_t > 0.25$(归一化后),则触发分裂
这样能确保运动剧烈的区域(比如快速形变的物体)被细化
提取几何信息(SVD 分解)
在分裂/克隆前,需要知道当前高斯的旋转矩阵 R 和 尺度向量 S:
从 条件化协方差 $\Sigma_\mathrm{cond}$ 做 SVD 分解:
\[\Sigma_\mathrm{cond} = R D R^\mathrm{T}\]其中:
- $ R $: 为旋转矩阵, 右手坐标系需修正 $ det\left( R \right) > 0 $
- $ S = \mathrm{diag}\left( D \right) $: 尺度
优化
损失函数:直接复用 3DGS 的图像重建损失(PSNR/L2 等)
优化器:Adam(不同参数组不同学习率)
改动的唯一超参:
将最低不透明度阈值 $\tau_\mathrm{min}$ 提高到 $0.01$(因为 $ \alpha_\mathrm{cond} $ 经过时间/方向调制,数值会更低,避免被误删)
缺点
-
显存占用:虽然点数减少显著节省存储,但每个点携带更多维度参数(时间+方向协方差等),单点存储体积大于 4DGS,因此在高分辨率或大场景下对显存带宽的压力依然存在。
-
自适应高斯细化(AGR)耗时:虽然提升了动态形变建模能力,但在全功能版本中会显著降低 FPS(例如 PBR 数据集从无 AGR 的 ~376 FPS 降到 ~175 FPS)
-
训练速度未必全面领先:平均训练时间比 4DGS 减少约 8.3%,但在部分数据集上(如 heart2)反而更长,因为 AGR 和高维计算增加了负担