4C4D: 4 Camera 4D Gaussian Splatting¶
会议: CVPR 2026
arXiv: 2604.04063
代码: 项目页
领域: 3D视觉
关键词: 4D高斯溅射, 稀疏视角, 动态场景重建, 神经衰减函数, 几何-外观平衡
一句话总结¶
提出 4C4D 框架,通过神经衰减函数(Neural Decaying Function)自适应控制高斯不透明度衰减,解决稀疏(仅4个相机)4D高斯溅射中几何与外观学习的不平衡问题,在多个数据集上达到SOTA。
研究背景与动机¶
领域现状:4D动态场景的新视角合成需要密集相机阵列(数十到数百台),限制了日常使用。3DGS/4DGS在密集视角下表现出色。
现有痛点:极稀疏视角(如4台相机)下,4DGS严重失败。原因在于优化偏差:拟合外观(颜色)相对容易,但恢复准确几何(深度)在监督不足时极其困难。当前高斯公式无法平衡两者。
核心矛盾:稀疏视角下空间监督不足 → 几何学习不足 → 过拟合训练视点外观 → 新视点严重伪影。
关键观察:4DGS在训练视点上能准确复现外观,但深度几何一塌糊涂(见Fig.3),说明问题不在模型容量而在优化偏差。
核心idea:引入可学习的不透明度衰减函数,将优化梯度重新导向几何学习。
方法详解¶
整体框架¶
4C4D 想解决的是:只有 4 台相机时,4DGS 会把全部精力花在拟合训练视角的颜色上,几何(深度)几乎学不动,于是新视角一换就崩。它的做法不改 3D 表示本身,而是在每个 4D 高斯的不透明度上挂一个可学习的衰减因子,借此改变优化时梯度的流向。整条管线是:4D 高斯原语先按原本的时间高斯算出不透明度,神经衰减函数 \(f_\theta\) 读入每个高斯的属性预测一个衰减因子 \(\tau\) 去调制它,再叠加一层"只对当前可见高斯生效"的分离策略,最后仍用普通的光度渲染损失把衰减函数和 4D 高斯一起端到端优化。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
A["4 台相机稀疏视角输入"] --> B["4D 高斯原语<br/>时间高斯算出不透明度"]
B --> C["基于可见性检测的分离衰减策略<br/>Z_T 时间 + Z_V 空间筛出可见高斯"]
C -->|"可见高斯 G_m"| D["神经衰减函数<br/>f_θ 预测衰减因子 τ"]
C -->|"不可见高斯 G_m*"| E["固定常数衰减<br/>β=0.999 稳住"]
D --> F["调制后的不透明度"]
E --> F
F --> G["光度渲染损失 L1 + SSIM<br/>端到端联合优化"]
G -.->|"梯度从外观重导向几何"| B
关键设计¶
1. 神经衰减函数:用一个轻量网络调制不透明度,把梯度从外观引回几何
稀疏视角下监督太弱,外观(颜色)容易拟合、几何(深度)难恢复,4DGS 默认会走"最省力"的路——把训练视角的颜色背下来,结果几何一塌糊涂。这里的关键观察是:不透明度恰好是 4DGS 里几何学习的枢纽参数,谁该被看见、谁该被遮挡都由它决定。于是 4C4D 用一个轻量神经网络 \(f_\theta\) 读入每个高斯的位置、不透明度、旋转,预测一个衰减因子 \(\tau = f_\theta(x, y, z, o, r)\),再乘到原本的时间高斯不透明度上:
多出来的这个可学习自由度,让反向传播时梯度不再只盯着外观误差,而是更多地流向位置、尺度这些几何参数,从而把几何与外观的优化重新拉平。
2. 基于可见性检测的分离衰减策略:只让当前看得见的高斯参与学习,看不见的稳住别动
直接把衰减函数套到所有高斯上会出问题:某一帧某一视角的渲染只会给当前可见的高斯回传梯度,那些这一刻既不在视野内、时间跨度又对不上的高斯如果也跟着被调制,反而会扭曲优化。4C4D 先做一步可见性检测筛出当前真正参与渲染的高斯集合 \(G_m = Z_V(\tilde{v}, \sigma, Z_T(\tilde{t}, s_t, G))\),其中 \(Z_T\) 按时间可见性滤掉时间跨度不含当前时间步的高斯,\(Z_V\) 再按空间可见性滤掉中心落在当前视角之外的高斯。随后对两类高斯分别处理:
可见高斯交给神经衰减函数去精确学习,不可见高斯则统一给一个接近 1 的小常数衰减 \(\beta=0.999\),让它们保持稳定、不被无意义的梯度带偏——这和 AbsGS 对不可见高斯的处理观察是一致的。
损失函数 / 训练策略¶
- 仅用标准光度渲染损失(L1 + SSIM),不引入额外的几何监督
- 神经衰减函数与 4D 高斯端到端联合优化
- 4D 高斯沿用 4DGS 的时间属性(\(\mu_t\)、\(s_t\))和 4D 球谐系数
实验关键数据¶
主实验¶
| 数据集 | 指标 | 4C4D | 4DGS | 4DGaussians | Ex4DGS | 提升(vs最优) |
|---|---|---|---|---|---|---|
| Neural3DV | PSNR↑ | 22.29 | 20.60 | 20.82 | 19.33 | +1.47 |
| Neural3DV | LPIPS↓ | 0.146 | 0.244 | 0.190 | 0.239 | +23.2% |
| ENeRF-Outdoor | PSNR↑ | 24.32 | 23.52 | 18.21 | 21.89 | +0.80 |
| ENeRF-Outdoor | LPIPS↓ | 0.121 | 0.151 | 0.456 | 0.263 | +19.9% |
| Mobile-Stage | PSNR↑ | 22.36 | 22.15 | 20.15 | 17.85 | +0.21 |
| Mobile-Stage | LPIPS↓ | 0.121 | 0.180 | 0.226 | 0.260 | +32.8% |
消融实验¶
| 配置 | PSNR↑ | DSSIM1↓ | LPIPS↓ | 说明 |
|---|---|---|---|---|
| 无神经衰减 | 22.60 | 0.097 | 0.147 | 固定衰减不足 |
| 无可见性检测 | 24.49 | 0.075 | 0.127 | 不区分可见/不可见 |
| 完整模型 | 24.68 | 0.070 | 0.115 | 两者互补 |
| 常数衰减 | 24.31 | 0.075 | 0.125 | 不如可学习衰减 |
| 指数衰减 | 24.32 | 0.077 | 0.135 | 手工函数次优 |
| 幂函数衰减 | 24.35 | 0.074 | 0.124 | 仍不如神经网络 |
| 神经衰减(ours) | 24.68 | 0.070 | 0.115 | 自动学最优策略 |
关键发现¶
- 4个相机即可实现高保真4D重建,对比Dense array方法大幅降低采集门槛
- 神经衰减 vs 常数衰减:PSNR +0.37, LPIPS -0.010,说明自适应衰减优于固定策略
- 可见性分离策略贡献:PSNR +0.19, LPIPS -0.012
- 在室外复杂场景(ENeRF-Outdoor)中改善最为显著
- 自采数据集 Dyn4Cam(4台GoPro,<1500美元)可生成时间一致的4D动态
亮点与洞察¶
- 问题分析深刻:明确指出4DGS稀疏视角失败的根因是几何-外观优化不平衡,而非模型容量
- 解决思路优雅:不改3D表示,仅通过不透明度调制重导梯度方向,显著受益
- 实用价值高:4台GoPro(<1500美元)即可完成4D采集,真正走向消费级
- 可见/不可见高斯的分离处理是一个容易被忽略但非常重要的细节
局限与展望¶
- 4个视角仍有遮挡盲区,严重自遮挡场景难以处理
- 神经衰减函数增加了一些计算开销
- 未探索与深度先验(如MiDaS)结合的可能性
- Dyn4Cam 无法提供定量评估(无GT测试视角)
相关工作与启发¶
- 与 AbsGS 在不可见高斯常数衰减上的观察一致
- MVDream 的视图膨胀注意力思路可能也适用于此场景
- 将"梯度重导向"思路应用于其他不平衡优化问题(如NeRF的稀疏视角问题)
评分¶
- 新颖性: ⭐⭐⭐⭐ 核心思想清晰但不算颠覆性
- 实验充分度: ⭐⭐⭐⭐⭐ 4个数据集、详细消融、自采数据集,非常扎实
- 写作质量: ⭐⭐⭐⭐ 问题分析到位,方法简洁
- 价值: ⭐⭐⭐⭐ 消费级4D采集意义重大