Deceptive-NeRF/3DGS: Diffusion-Generated Pseudo-observations for High-Quality Sparse-View Reconstruction¶
会议: ECCV2024
arXiv: 2305.15171
代码: https://xinhangliu.com/deceptive-nerf-3dgs
领域: 3d_vision
关键词: 稀疏视图重建, 扩散模型, NeRF, 3D高斯Splatting, 伪观测生成
一句话总结¶
利用微调的 Stable Diffusion + ControlNet 将粗糙 NeRF/3DGS 渲染结果转化为高质量伪观测图像,将稀疏输入视图增密 5-10 倍后重新训练,在 Hypersim/LLFF/ScanNet 等数据集上超越 FreeNeRF 等方法 1-2dB PSNR,训练速度比扩散正则化方法快约 10 倍。
研究背景与动机¶
- 领域现状:NeRF/3DGS 在密集视图下效果出色,但稀疏视图(3-20张)下由于约束不足会产生严重伪影和几何崩塌。
- 现有痛点:已有稀疏视图方法分两类——(a) 频率正则化(FreeNeRF)仅限于简单先验;(b) 扩散模型正则化(DiffusioNeRF、ReconFusion)在每个训练步骤都调用扩散模型,极其缓慢。
- 核心矛盾:稀疏视图缺少观测信息 → 需要额外先验/生成的信息来填补,但将扩散模型作为逐步正则化器会导致训练时间爆炸。
- 本文要解决:能否一次性用扩散模型生成足够多的高质量伪观测,直接当作真实训练视图使用?
- 切入角度:先用稀疏输入训练粗糙 NeRF/3DGS → 在新视角渲染 RGB + 深度 + 不确定性图 → 用扩散模型修复/增强成逼真图像 → 把生成图像混入训练集重新训练
- 核心 idea:将扩散模型从"每步正则化器"变为"一次性数据增强器"——生成的伪观测足够逼真("deceptive"),可以直接当作真实视图训练。
方法详解¶
整体框架¶
迭代式 pipeline:(1) 用稀疏视图训练初始粗糙 NeRF/3DGS;(2) 在新视角渲染 RGB 图、深度图和不确定性图;(3) 将这三者作为条件输入微调的扩散模型,生成伪观测;(4) 丢弃 20% 低质量伪观测(通过 LPIPS 筛选);(5) 用真实 + 伪观测图像重新训练 NeRF/3DGS。可增密 5-10 倍。
关键设计¶
- 基于对应关系的不确定性图:
- 做什么:计算每个新视角像素的不确定性,指导扩散模型哪些区域需要更多生成、哪些区域可信
- 核心思路:利用渲染深度将最近输入视图向新视角做 warping,warped 图像与渲染图像的像素差的平方即为不确定性。不需要修改 NeRF/3DGS 表征
-
设计动机:满足极线约束——低不确定性区域(已被输入视图覆盖)应保持一致,高不确定性区域(遮挡/未见区域)交给扩散模型自由生成
-
Deceptive 扩散模型:
- 做什么:微调 Stable Diffusion + ControlNet,以 5 通道条件(3 RGB + 1 深度 + 1 不确定性)生成逼真伪观测
- 核心思路:ControlNet 编码条件信息,文本嵌入结合图像描述 + textual inversion 增强对伪影的鲁棒性
-
训练数据:用 Hypersim + CO3D 共 200 场景约 20000 张图像,构造"粗-精 NeRF 对"作为训练对。额外添加高斯噪声增強的 RGB-D 对作为数据增强
-
质量筛选与渐进增密:
- 做什么:生成伪观测后,用 LPIPS 与粗渲染的相似度筛选,丢弃最差 20%
- 核心思路:质量太差的伪观测会引入噪声,适度筛选比全部使用更好
- 增密 5× vs 10×:5× 减少伪影但缺少细节恢复,10× 达到最佳效果
损失函数 / 训练策略¶
扩散模型训练用标准去噪 loss(DDPM 目标)。NeRF/3DGS 重训练用原始重建 loss(L2 + LPIPS),不区分真实和伪观测——因为伪观测质量足够高可以直接当真实图用。
实验关键数据¶
主实验¶
Hypersim 数据集:
| 方法 | 5-view PSNR | 10-view PSNR | 20-view PSNR | 5-view LPIPS |
|---|---|---|---|---|
| FreeNeRF | 17.20 | 18.06 | 20.20 | 0.431 |
| Deceptive-NeRF | 18.91 | 19.88 | 21.23 | 0.322 |
| Deceptive-3DGS | 19.31 | 21.45 | 21.61 | 0.265 |
LLFF 数据集:
| 方法 | 3-view PSNR | 6-view PSNR | 9-view PSNR |
|---|---|---|---|
| FreeNeRF | 19.63 | 23.73 | 25.13 |
| Deceptive-3DGS | 19.95 | 24.15 | 25.30 |
消融实验¶
| 配置 | PSNR | SSIM | LPIPS |
|---|---|---|---|
| Baseline(无增密) | 18.79 | 0.489 | 0.352 |
| + 深度条件 | 20.49 | 0.619 | 0.290 |
| + 两阶段数据增强 | 21.59 | 0.758 | 0.236 |
| + 图像描述 | 20.58 | 0.744 | 0.239 |
| 完整模型 | 22.41 | 0.812 | 0.202 |
关键发现¶
- 深度条件贡献最大:+1.7 PSNR,确保生成图像的几何一致性
- 两阶段数据增强也很关键:粗-精 NeRF 对让扩散模型学会修复伪影
- 10× 比标准训练快约 10 倍:扩散模型只在增密阶段调用一次,而非每个训练步骤
- 超分辨率能力:输入 4× 下采样图像也能恢复精细纹理细节
亮点与洞察¶
- 范式转换:将扩散模型从"正则化器"变为"数据增强器",一次性生成伪训练数据,大幅简化 pipeline 并加速 10×。这个思路可泛化到其他需要 few-shot 3D 重建的任务
- 不确定性图设计简洁有效:不需要修改 NeRF 内部表征,仅用 warping 差异即可估计可信度,让扩散模型知道哪里该保守哪里该创造
- 同时适配 NeRF 和 3DGS:方法是表征无关的,只要能渲染 RGB + 深度即可,说明方法框架的通用性
局限性 / 可改进方向¶
- 需要场景特定的扩散模型微调:当前用 Hypersim + CO3D 训练,泛化到室外大场景的效果未充分验证
- 伪观测质量瓶颈:最终重建质量受限于扩散模型的生成质量,如果粗渲染太差导致条件信息不足,扩散模型也会生成不一致的内容
- 无显式多视图一致性约束:伪观测之间没有几何一致性保证(只通过筛选丢弃坏样本),可能导致不同伪视图间矛盾
- 可改进:加入多视图扩散模型(如 Zero-1-to-3++)的一致性约束;用 video diffusion 生成连续轨迹伪观测
相关工作与启发¶
- vs DiffusioNeRF/ReconFusion: 它们在每个训练步骤调用扩散模型做 SDS/正则化,速度极慢。Deceptive 直接生成训练数据一次搞定,10× 快
- vs FreeNeRF: FreeNeRF 仅做频率正则化,没有额外信息注入。Deceptive 用扩散模型注入场景先验,本质上是更强的先验来源
- vs ZeroNVS/Zero-1-to-3: 这些方法直接用扩散模型生成新视图但不保证几何一致性。Deceptive 用渲染深度和不确定性做条件,几何一致性更好
评分¶
- 新颖性: ⭐⭐⭐⭐ 将扩散模型作为数据增强器而非正则化器是好想法,但伪观测增强的大框架之前已有雏形
- 实验充分度: ⭐⭐⭐⭐ 多数据集、消融完整,但缺少与同期 ReconFusion 的直接对比
- 写作质量: ⭐⭐⭐⭐ Pipeline 描述清晰,图示直观
- 价值: ⭐⭐⭐⭐ 实用价值高——方法简单、速度快、效果好,可直接集成到现有 NeRF/3DGS 工作流