Per-Gaussian Embedding-Based Deformation for Deformable 3D Gaussian Splatting¶
会议: ECCV 2024
arXiv: 2404.03613
代码: 项目页面
领域: 3D视觉
关键词: 可变形3DGS, 动态场景重建, 逐高斯嵌入, 粗细形变分解, 新视角合成
一句话总结¶
提出基于逐高斯嵌入(Per-Gaussian Embedding)的形变表示方法,将形变定义为逐高斯潜在嵌入与时间嵌入的函数,辅以粗细形变分解和局部平滑正则化,在多个动态场景数据集上取得了质量、速度和模型容量的全面优势。
研究背景与动机¶
- 3D高斯溅射(3DGS)凭借可微分光栅化实现了实时、高质量的新视角合成
- 将 3DGS 扩展到动态场景的自然方式是:定义标准3DGS + 形变场将其变形到各帧
- 现有方法(4DGaussians, D3DGS)将形变场建模为基于坐标的函数 \(f(x, y, z, t)\)
核心问题:3DGS 本质是多个高斯场的混合体,而非单一坐标场;用单一坐标网络预测所有高斯的形变是不合理的 5. 基于坐标的方法受限于特征网格的分辨率和模型容量,即使加倍网格分辨率也仅有微小提升 6. 复杂动态场景(如快速运动的手、反射表面)中,现有方法产生模糊或失真的结果
方法详解¶
整体框架¶
E-D3DGS 框架包含三个核心组件:
- 逐高斯嵌入:为每个3D高斯分配独立的可学习潜在嵌入向量
- 粗细形变分解:通过两个解码器分别建模慢速/大幅运动和快速/精细运动
- 局部平滑正则化:鼓励邻近高斯具有相似的嵌入,从而产生相似的形变
关键设计¶
模块一:基于嵌入的形变¶
摒弃基于坐标的形变场,引入以逐高斯嵌入 \(\mathbf{z}_g \in \mathbb{R}^{32}\) 和时间嵌入 \(\mathbf{z}_t \in \mathbb{R}^{256}\) 为输入的形变函数:
其中 \(\Delta\mathbf{x}\) 为位置偏移,\(\Delta\mathbf{r}\) 为旋转四元数变化,\(\Delta\mathbf{s}\) 为缩放变化,\(\Delta\sigma\) 为不透明度变化,\(\Delta Y\) 为球谐系数变化。\(\mathcal{F}_\theta\) 实现为浅层 MLP + 参数专用 MLP head。
每个高斯在帧 \(t\) 的参数通过将形变叠加到标准参数上得到。该设计的关键优势在于:每个高斯有独立的嵌入来编码其时间变化特性,无需依赖空间坐标。
模块二:粗细形变分解¶
动态场景中不同部分具有不同速度的运动(如身体缓慢移动 vs 手臂快速翻炒)。为此将时间嵌入分为粗和细两种:
时间嵌入网格:起始为1D特征网格 \(Z \in \mathbb{R}^{N \times 256}\)(\(N\) 帧)
- 细形变时间嵌入:\(\mathbf{z}_t^f = \text{interp}(Z, t)\),使用原始分辨率
- 粗形变时间嵌入:将 \(Z\) 线性下采样5倍去除高频,再插值得到 \(\mathbf{z}_t^c\)
最终形变为两个解码器输出之和:
- 粗形变解码器 \(\mathcal{F}_{\theta_c}\):负责大尺度/慢速运动(如头部和躯干移动)
- 细形变解码器 \(\mathcal{F}_{\theta_f}\):负责快速/精细运动(如手臂、夹子、阴影)
训练初期,\(Z_t^f\) 从与 \(Z_t^c\) 相同的 \(N/5\) 分辨率开始,在10K迭代内逐步增长到 \(N\) 分辨率。
模块三:局部平滑正则化¶
构成动态物体的邻近高斯应具有局部相似的形变。通过约束逐高斯嵌入的局部平滑性来隐式实现:
其中权重因子 \(w_{i,j} = \exp(-\lambda_w \|\mu_j - \mu_i\|_2^2)\),\(\lambda_w = 2000\),\(k = 20\)。KNN 集合仅在密度化发生时更新,以降低计算成本。
与直接约束物理属性(刚性、旋转)的方法不同,本文通过嵌入空间的平滑性隐式约束形变一致性,允许更好地捕捉动态物体的纹理和细节。
损失函数 / 训练策略¶
- 渲染损失:L1 + 周期性 DSSIM
- 不透明度正则化权重 \(1.0 \times 10^{-4}\),取消了3DGS原始的 opacity reset
- 解码器 MLP:128 隐藏单元,2层
- 解码器学习率从 \(1.6 \times 10^{-4}\) 指数衰减到 \(1.6 \times 10^{-5}\)
- 逐高斯嵌入学习率 \(2.5 \times 10^{-3}\)
- 高效训练策略:基于误差的帧采样 + 摄像机视角均匀覆盖 + 周期性 DSSIM 密度化
实验关键数据¶
主实验¶
Neural 3D Video 数据集:
| 方法 | PSNR↑ | SSIM↑ | LPIPS↓ | FPS↑ | 模型大小↓ |
|---|---|---|---|---|---|
| DyNeRF | 29.58 | - | 0.083 | 0.01 | 56 MB |
| K-Planes | 30.86 | 0.939 | 0.096 | 0.13 | 309 MB |
| 4DGS | 31.19 | 0.940 | 0.051 | 33.7 | 8700 MB |
| 4DGaussians | 30.71 | 0.935 | 0.056 | 51.9 | 59 MB |
| Ours | 31.31 | 0.945 | 0.037 | 74.5 | 35 MB |
Technicolor Light Field 数据集:
| 方法 | PSNR↑ | SSIM↑ | LPIPS↓ | FPS↑ | 模型大小↓ |
|---|---|---|---|---|---|
| DyNeRF | 31.80 | - | 0.140 | 0.02 | 0.6 MB |
| HyperReel | 32.32 | 0.899 | 0.118 | 0.91 | 289 MB |
| 4DGaussians | 29.62 | 0.844 | 0.176 | 34.8 | 51 MB |
| Ours | 33.24 | 0.907 | 0.100 | 60.8 | 77 MB |
HyperNeRF 数据集:
| 方法 | PSNR↑ | SSIM↑ | LPIPS↓ | FPS↑ | 模型大小↓ |
|---|---|---|---|---|---|
| HyperNeRF | 22.29 | 0.598 | 0.153 | <1 | 15 MB |
| D3DGS | 22.40 | 0.598 | 0.275 | 6.95 | 309 MB |
| 4DGaussians | 25.03 | 0.682 | 0.281 | 96.3 | 60 MB |
| Ours | 25.43 | 0.697 | 0.231 | 139.3 | 33 MB |
消融实验¶
粗细形变分解消融:
| 方法 | PSNR↑ | SSIM↑ | LPIPS↓ |
|---|---|---|---|
| Ours (粗+细) | 29.70 | 0.933 | 0.041 |
| 仅粗形变 | 29.48 | 0.931 | 0.044 |
| 仅细形变 | 29.23 | 0.932 | 0.043 |
| Ours + 坐标注入 | 29.60 | 0.931 | 0.045 |
局部平滑正则化消融:
| 方法 | PSNR↑ | SSIM↑ | LPIPS↓ |
|---|---|---|---|
| 无嵌入正则 | 32.26 | 0.951 | 0.037 |
| + 嵌入正则(ours) | 32.34 | 0.952 | 0.036 |
| + 物理约束正则 | 32.08 | 0.950 | 0.036 |
关键发现¶
- 坐标注入有害:将高斯坐标 \(\mathbf{x}\) 作为额外输入注入解码器反而降低质量(29.60 vs 29.70),验证了应当去除坐标依赖的论点
- 粗细分解互补:仅用粗或细解码器都会导致动态区域模糊,组合使用效果最佳
- 嵌入正则优于物理正则:隐式的嵌入平滑约束(+0.08 PSNR)优于直接的物理刚性约束(-0.18 PSNR),因为后者过度限制了形变的灵活性
- 嵌入维度影响小:\(\mathbf{z}_g\) 从16维到64维,\(\mathbf{z}_t\) 从128到512维,性能变化不超过 0.18 PSNR
- 全面优势:在三个数据集上同时取得最优质量、最快渲染和最小模型的平衡
亮点与洞察¶
- 从 3DGS 的本质出发(高斯混合体而非单一场),为每个高斯定义独立形变,设计逻辑清晰
- 粗细形变分解通过简单的时间网格下采样实现,无需复杂的多尺度架构
- 模型仅 35MB(Neural 3D Video),显著小于 4DGS 的 8700MB,体现了嵌入表示的高效性
- 渲染速度达 74.5 FPS,远超 NeRF 基线和部分 3DGS 基线
局限性¶
- 在随意拍摄的单目视频上(如 HyperNeRF 中的挑战设置)仍然效果不佳
- 逐高斯嵌入的内存占用随高斯数量线性增长
- KNN 近邻查找仅在密度化时更新,可能导致快速变形场景中的不一致
- 需要 COLMAP 重建的初始点云,对初始化质量有依赖
相关工作与启发¶
- 4DGaussians:使用 HexPlane 解码特征进行时间形变,坐标依赖的代表方法
- D3DGS:使用隐式函数处理时间和位置,同为形变3DGS方法
- Nerfies / HyperNeRF:使用逐帧形变码,但用于 NeRF 而非 3DGS
- Dynamic 3D Gaussians:引入局部刚性正则化,启发了本文的局部平滑正则化
- 启发:逐元素嵌入的思路可推广到其他基于离散元素的表示(如 3D Mesh 形变)
评分¶
| 维度 | 分数 |
|---|---|
| 创新性 | ⭐⭐⭐⭐ |
| 理论深度 | ⭐⭐⭐ |
| 实验充分性 | ⭐⭐⭐⭐⭐ |
| 实用价值 | ⭐⭐⭐⭐⭐ |
| 总体推荐 | ⭐⭐⭐⭐ |