跳转至

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 倍。

研究背景与动机

  1. 领域现状:NeRF/3DGS 在密集视图下效果出色,但稀疏视图(3-20张)下由于约束不足会产生严重伪影和几何崩塌。
  2. 现有痛点:已有稀疏视图方法分两类——(a) 频率正则化(FreeNeRF)仅限于简单先验;(b) 扩散模型正则化(DiffusioNeRF、ReconFusion)在每个训练步骤都调用扩散模型,极其缓慢。
  3. 核心矛盾:稀疏视图缺少观测信息 → 需要额外先验/生成的信息来填补,但将扩散模型作为逐步正则化器会导致训练时间爆炸。
  4. 本文要解决:能否一次性用扩散模型生成足够多的高质量伪观测,直接当作真实训练视图使用?
  5. 切入角度:先用稀疏输入训练粗糙 NeRF/3DGS → 在新视角渲染 RGB + 深度 + 不确定性图 → 用扩散模型修复/增强成逼真图像 → 把生成图像混入训练集重新训练
  6. 核心 idea:将扩散模型从"每步正则化器"变为"一次性数据增强器"——生成的伪观测足够逼真("deceptive"),可以直接当作真实视图训练。

方法详解

整体框架

迭代式 pipeline:(1) 用稀疏视图训练初始粗糙 NeRF/3DGS;(2) 在新视角渲染 RGB 图、深度图和不确定性图;(3) 将这三者作为条件输入微调的扩散模型,生成伪观测;(4) 丢弃 20% 低质量伪观测(通过 LPIPS 筛选);(5) 用真实 + 伪观测图像重新训练 NeRF/3DGS。可增密 5-10 倍。

关键设计

  1. 基于对应关系的不确定性图:
  2. 做什么:计算每个新视角像素的不确定性,指导扩散模型哪些区域需要更多生成、哪些区域可信
  3. 核心思路:利用渲染深度将最近输入视图向新视角做 warping,warped 图像与渲染图像的像素差的平方即为不确定性。不需要修改 NeRF/3DGS 表征
  4. 设计动机:满足极线约束——低不确定性区域(已被输入视图覆盖)应保持一致,高不确定性区域(遮挡/未见区域)交给扩散模型自由生成

  5. Deceptive 扩散模型:

  6. 做什么:微调 Stable Diffusion + ControlNet,以 5 通道条件(3 RGB + 1 深度 + 1 不确定性)生成逼真伪观测
  7. 核心思路:ControlNet 编码条件信息,文本嵌入结合图像描述 + textual inversion 增强对伪影的鲁棒性
  8. 训练数据:用 Hypersim + CO3D 共 200 场景约 20000 张图像,构造"粗-精 NeRF 对"作为训练对。额外添加高斯噪声增強的 RGB-D 对作为数据增强

  9. 质量筛选与渐进增密:

  10. 做什么:生成伪观测后,用 LPIPS 与粗渲染的相似度筛选,丢弃最差 20%
  11. 核心思路:质量太差的伪观测会引入噪声,适度筛选比全部使用更好
  12. 增密 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 工作流