作者:Titas Anciukevičius、Zexiang Xu、Matthew Fisher
单位:University of Edinburgh、Adobe Research
来源:CVPR
时间:2023
一. 背景
目前为止,图像扩散模型不支持 3D 理解所需的任务,例如视图一致的 3D 生成或单视图对象重建。本文提出了 RenderDiffusion,这是第一个用于3D 生成和推理的扩散模型,仅使用单目 2D 监督进行训练。本文方法的核心是一种新颖的图像去噪架构,它在每个去噪步骤中生成并渲染场景的中间三维表示。这在扩散过程中强化了强大的归纳结构,提供了 3D一致的表示,同时只需要 2D 监督。生成的 3D 表示可以从任何视图呈现。我们在 FFHQ、AFHQ、ShapeNet 和 CLEVR 数据集上评估RenderDiffusion,显示了生成 3D 场景以及从 2D 图像推断 3D 场景的竞争性能。此外,我们基于扩散的方法允许我们使用 2D 修复来编辑 3D 场景。
二. 创新
①单目三维重建。
②三维感知修复–允许二维修复来编辑三维场景。
③无条件生成。
三. 算法与实现
显式潜在3D表示的去噪架构
在每个去噪步骤中生成并渲染一个场景的中间3D表示,可以在扩散过程中有一个强归纳结构。
①只使用2D图像训练且无明确的3D监督。
②潜在的3D表示合并在denoiser中,产生一种归纳偏差。
Latent 3D structure:
(1)decoder(由noise image创建)
(2)volumetric renderer(将3d表示 渲染回 →2d denoised image)
优势:
避免了体积数据的立方内存增长(直接处理2d,而无需3d监督)
Model

上图为模型总体的体系结构:
对有噪声的输入图像应用到g_θ,逐步去噪生成图像。
去噪器g_θ以三平面表示(P)
Image diffusion model
基本流程和DDPM一致,有区别的是去噪器g_θ不是来预测噪声(x_t−x_0)而是来预测,因此Train Loss为如下:

当训练完成,在生成阶段时,模型g_θ。就可将u_t近似与如下:

3D-Aware Denoiser
Novel decoder structure:引入潜在的3D表示,更改decoder的体系结构,以下是加入的额外两个组件:
triplane encoder e_θ。 三面编码器:使用摄像机视图v构成的输入图像x_t→3d三面表示。
triplane renderer r_Ψ 三面渲染器:将3d三面表示→渲染回去噪图像x_0

Triplane representation
分解3D特征网格:三平面表示P将一个完整的3D特征网格分解为三个(沿三个坐标平面放置的2D feature map
对P双线性抽样:将任意给定的3D点p投影到每个坐标平面,对每个特征图作双线性插值并将三个结果相加,最后得到一个size为n_f的单特征向量。
Triplane encoder:
e_θ将MxMx3的输入图像x_t→NxNx3n_f 的三平面表示(N≥M)
U-Net体系结构作为basis,但在三平面大小的输出 feature maps中添加额 外的层。
Triplane renderer:
r_Ψ使用上述的三平面特征进行体渲染,输出MxMx3的图像xt-1
对每个3D采样点,沿着从图像投射的射线得到density yand color c:

像素的最终颜色是通过沿着射线集成density yand color c产生的(使用MipNeRF相同的显式体绘制方法),使用NERF的两次重要性采样:
第一次传递使用分层抽样,沿着每条射线放置样本
对第一次传递的结果进行抽样
结果

3D 感知修复。本文从两个不同的噪声样本开始修复左侧显示的噪声 2D 区域,从而产生两个不同的修复 3D 场景。本文还展示了第二个场景的新颖视角。
四. 总结
①第一个可以利用posed 2D-images而非3D监督的3D扩散模型。
②新的去噪架构:triplane渲染模型,加强了归纳偏差,产生3D场景一致性。
使用情景:
2d image →3d 场景
2d inpainting →3d编辑
3d场景生成
局限性:
要求训练图像有已知的相机参数。
三平面需要被放置到一个全局坐标系中,限制了跨对象放置的泛化。