DreamFusion: Text-to-3D using 2D Diffusion

Author: Ben Poole, Ajay Jain, Jonathan T. Barron, Ben Mildenhall
Playground, Paper

目录

一、摘要

文本到图像合成的最新突破是由在数十亿个图像-文本对上训练的扩散模型推动的。 将这种方法应用于 3D 合成需要大规模的标记 3D 资产数据集和用于对 3D 数据进行去噪的有效架构, 而这两者目前都不存在。在这项工作中,作者通过使用预训练的 2D 文本到图像扩散模型来执行文本到 3D 合成,从而规避了这些限制。 作者引入了基于概率密度蒸馏的损失,使得可以使用 2D 扩散模型作为优化参数图像生成器的先验。 在类似 DeepDream 的过程中使用此损失,作者通过梯度下降优化随机初始化的 3D 模型(神经辐射场,或 NeRF), 使其从随机角度进行的 2D 渲染实现低损失。给定文本的最终 3D 模型可以从任何角度查看,通过任意照明重新点亮,或合成到任何 3D 环境中。 作者的方法不需要 3D 训练数据,也不需要修改图像扩散模型,证明了预训练图像扩散模型作为先验的有效性。

二、基本架构

DreamFusion

2.1 Diffusion Model

Diffusion的原理就不在此阐述,总之就是“前向加噪,逆向去噪”的过程。具体可见我的 Learing Log

DiffusionModel

2.2 NeRF

NeRF(Neural Radiance Fields,神经辐射场)是一种用于3D场景表示和渲染的深度学习方法。 如下图,它通过将场景建模为一个连续的体积辐射场,可以从稀疏的2D图像中重建出高质量的3D场景, 并能从任意视角渲染出新视角的图像。NeRF的核心思想是利用神经网络来学习场景的体积密度和颜色信息, 从而实现对场景的3D理解和生成。Playground

NeRF
从下图里我们可以看到NeRF整体的架构,左边是一个五维的输入,(xyz)代表了某个点的空间坐标, 另外两个维度是视角方向,通过这个五维的输入,我们可以得到某个点的体密度(σ)和颜色(RGB)。 需要注意的是,每个场景/三维物体对应一个神经网络,也就是说每个物体我们只能过拟合一个网络。 图里的两根线代表的是从某个视角射出的光线(Ray), 线上的每个点时
NeRF

三、实验结果

DreamFusionExperimentResult

四、局限性


五、Code Practice

这个Code不是Google Relase的,是由北大的唐嘉祥博士复现的,Check Code in Github