跳转至

A Lesson in Splats: Teacher-Guided Diffusion for 3D Gaussian Splats Generation with 2D Supervision

会议: ICCV 2025
arXiv: 2412.00623
代码: https://lesson-in-splats.github.io/ (项目页)
领域: 3D视觉 / 扩散模型 / 3DGS
关键词: 3D Gaussian Splatting, 扩散模型, 2D监督, 单视图3D重建, 教师引导

一句话总结

提出一种用2D图像监督训练3D扩散模型的框架:利用预训练的确定性3D重建模型作为"噪声教师"生成3D噪声样本,通过多步去噪策略和渲染损失实现跨模态(3D去噪+2D监督)训练,在用更小模型的情况下超越教师模型0.5-0.85 PSNR。

背景与动机

现有痛点

现有痛点领域现状:3D重建中,确定性前馈模型(如Splatter Image、Flash3D)受限于2D到3D映射的歧义性,预测往往模糊;而3D扩散模型虽然能建模分布多样性,但传统训练方式要求去噪和监督在同一模态(即需要大量3D数据),这在现实中极度稀缺。如何在只有2D图像的情况下训练3D扩散模型,是一个未被充分探索的关键问题。

核心矛盾

核心矛盾本文目标:如何在没有3D ground truth的情况下,训练一个在3D空间操作的扩散模型?核心挑战在于标准扩散训练要求噪声样本和监督信号在同一模态,而这里去噪在3D、监督只有2D图像。

方法详解

整体框架

输入:单张图像 → 预训练确定性模型(教师)生成初始3DGS预测 → 加噪后输入3D扩散去噪器 → 去噪后的3DGS通过可微渲染得到2D图像 → 与GT图像计算损失。两阶段训练:Stage 1 Bootstrapping + Stage 2 Multi-step Denoising Fine-tuning。

关键设计

  1. 噪声教师解耦策略: 将噪声样本来源(教师模型的3D预测)和监督信号(2D图像)解耦。关键洞察来自SDEdit——在足够大的噪声水平t≥t*时,教师模型产生的噪声样本与真实3D数据加噪后的分布近似重叠。因此可以用教师的不完美3D预测作为去噪起点。
  2. 多步去噪训练: 标准单步去噪只能学习大噪声水平(t>t),无法恢复细节。创新地在训练时执行多步DDIM去噪(10步),从t>t逐步去噪到t=0,渲染最终清晰的3D预测并用2D图像监督。梯度通过所有去噪步骤反传,使模型能学习低噪声水平的细粒度去噪。
  3. 循环一致性正则化: 将去噪结果渲染到目标视角得到图像,再用该图像驱动第二次3D预测,将其渲染回源视角与源图像比较。确保生成的视角不仅外观相似,而且包含足够信息来还原源视角。

损失函数 / 训练策略

  • Stage 1 (Bootstrapping): L_bootstrap = L_3DGS + L_image + L_cyc,使用教师模型提供的3D预测作为直接监督+渲染损失,快速初始化扩散模型
  • Stage 2 (Multi-step fine-tuning): L_mlt-stp + L_cyc,去掉3D监督(教师已是瓶颈),只用渲染损失,允许模型超越教师
  • 不同时间步的渲染损失加权λ_t,权重随时间步变化
  • t* = 20(总100步),DDIM 10步采样

实验关键数据

ShapeNet-SRN (单视图重建)

数据集 指标 本文(Medium) Splatter Image(Large) 提升
Cars PSNR 24.84 24.00 +0.84
Cars SSIM 0.93 0.92 +0.01
Cars LPIPS 0.077 0.078 -0.001
Chairs PSNR 25.21 24.43 +0.78

RealEstate10K (新视图合成)

设置 指标 本文 Flash3D 提升
5 frames PSNR 29.12 28.46 +0.66
10 frames PSNR 26.54 25.94 +0.60
30 frames PSNR 25.40 24.93 +0.47

Co3D Hydrant

指标 本文 Splatter Image ViewSet Diffusion
PSNR 22.34 21.77 21.24
LPIPS 0.149 0.154 0.201

模型效率

模型 显存(GB) 参数量(MB)
本文(Medium) 1.15 295
Splatter Image(Large) 1.71 646
VisionNeRF 6.42 1390

消融实验要点

  • 去掉教师引导直接用渲染损失训练:PSNR骤降至16.73(vs 24.49),说明教师引导至关重要
  • Stage 1仅用渲染损失(无扩散损失):18.82,加上扩散损失:22.61
  • Stage 2继续用扩散损失反而被教师限制:23.13 vs 只用渲染损失:24.49
  • 循环一致性损失在两个阶段都有提升
  • 加权损失 vs 不加权:24.49 vs 22.88,证明时间步加权很重要
  • 确定性前馈模型(同架构)仅19.99 PSNR,证明是扩散框架而非架构带来的提升

亮点与洞察 / 我学到了什么

  • 跨模态扩散训练是可行的: 打破了扩散模型必须在同模态下训练的限制,这个思路可以迁移到其他模态缺乏GT的场景
  • "噪声教师"概念巧妙: 不完美的确定性预测在加噪后反而可以成为扩散模型的有效输入,SDEdit的噪声覆盖思想被巧妙利用
  • 小模型超越大模型: 只用295MB的中等模型就超越了646MB大模型的教师,说明扩散框架本身的表示能力优于确定性框架
  • 多步去噪训练: 在训练时展开多步推理并反传梯度,虽然内存开销大,但通过两阶段策略控制计算成本

局限与展望

  • 依赖像素对齐的3DGS表示,Gaussian分布集中在可见区域,遮挡区域覆盖不足导致新视角过度平滑
  • Stage 2多步去噪的batch size从100降到10,计算成本仍然不低
  • 仅验证了3DGS表示,未拓展到其他3D表示(mesh, NeRF等)
  • 教师模型的选择影响最终质量的上限

相关工作与启发

  • vs Splatter Image/Flash3D(确定性模型): 本文用其作为教师,以更小模型超越。确定性模型无法建模多样性,在歧义区域产生模糊;本文通过扩散模型捕获分布
  • vs HoloDiffusion: 也是2D监督训练3D扩散,但HoloDiffusion用额外去噪pass来弥合分布差异;本文通过选择适当噪声水平+多步去噪更优雅地解决
  • vs ViewsetDiffusion: 在多视角图像上去噪再汇聚到3D,但受限于视角数量和独立加噪导致的不一致;本文直接在3D空间去噪更连贯

与我的研究方向的关联

  • 跨模态蒸馏的思路(3D操作、2D监督)可能适用于其他缺乏直接监督的任务
  • "噪声教师"策略可以推广:任何不完美的预训练模型都可以作为噪声教师来启动扩散训练

评分

  • 新颖性: ⭐⭐⭐⭐ 跨模态扩散训练的思路新颖,但核心灵感来自SDEdit
  • 实验充分度: ⭐⭐⭐⭐ 覆盖合成+真实数据集,充分消融,但缺少更多类别的评估
  • 写作质量: ⭐⭐⭐⭐ 逻辑清晰,方法描述详细,两阶段流程解释得当
  • 对我的价值: ⭐⭐⭐⭐ 跨模态训练思想有启发,噪声教师概念可迁移