清华大学 TSAIL 团队最新提出的文生 3D 新算法 ProlificDreamer,在无需任何 3D 数据的前提下能够生成超高质量的 3D 内容。

ProlificDreamer 算法为文生 3D 领域带来重大进展。利用 ProlificDreamer,输入文本 “一个菠萝”,就能生成非常逼真且高清的 3D 菠萝:

prolificdreamer_生成模型

给出稍微难一些的文本,比如 “一只米开朗琪罗风格狗的雕塑,正在用手机读新闻”,ProlificDreamer 的生成也不在话下:

prolificdreamer_人工智能_02

将 Imagen 生成的照片(下图静态图)和 ProlificDreamer(基于 Stable-Diffusion)生成的 3D(下图动态图)进行对比。有网友感慨:短短一年时间,高质量的生成已经能够从 2D 图像领域扩展到 3D 领域了!

 

prolificdreamer_3D_03

   

prolificdreamer_生成模型_04

A blue jay standing on a large basket of rainbow macarons

这一切都来源于清华大学计算机系朱军教授带领的 TSAIL 团队近期公开的一篇论文《ProlificDreamer: High-Fidelity and Diverse Text-to-3D Generation with Variational Score Distillation》:

  • 论文链接:https://arxiv.org/abs/2305.16213
  • 项目主页:https://ml.cs.tsinghua.edu.cn/prolificdreamer/

在数字创作和虚拟现实等领域,从文本到三维模型(Text-to-3D)的技术具有重要的价值和广泛的应用潜力。这种技术可以从简单的文本描述中生成具体的 3D 模型,为设计师、游戏开发者和数字艺术家提供强大的工具。

然而,为了根据文本生成准确的 3D 模型,传统方法需要大量的标记 3D 模型数据集。这些数据集需要包含多种不同类型和风格的 3D 模型,并且每个模型都需要与相应的文本描述相关联。创建这样的数据集需要大量的时间和人力资源,目前还没有现成的大规模数据集可供使用。

由谷歌提出的 DreamFusion [1] 利用预训练的 2D 文本到图像扩散模型,首次在无需 3D 数据的情况下完成开放域的文本到 3D 的合成。但是 DreamFusion 提出的 Score Distillation Sampling (SDS) [1] 算法生成结果面临严重的过饱和、过平滑、缺少细节等问题。高质量 3D 内容生成目前仍然是非常困难的前沿问题之一。

ProlificDreamer 论文提出了 Variational Score Distillation(VSD)算法,从贝叶斯建模和变分推断(variational inference)的角度重新形式化了 text-to-3D 问题。具体而言,VSD 把 3D 参数建模为一个概率分布,并优化其渲染的二维图片的分布和预训练 2D 扩散模型的分布间的距离。可以证明,VSD 算法中的 3D 参数近似了从 3D 分布中采样的过程,解决了 DreamFusion 所提 SDS 算法的过饱和、过平滑、缺少多样性等问题。此外,SDS 往往需要很大的监督权重(CFG=100),而 VSD 是首个可以用正常 CFG(=7.5)的算法。

效果展示

ProlificDreamer 可以根据文本生成非常高质量的带纹理的三维网格:

prolificdreamer_3D_05

ProlificDreamer 可以根据文本生成非常高质量的三维神经辐射场(NeRF),包括复杂的效果。甚至 360° 的场景也能生成:

prolificdreamer_3D_06

ProlificDreamer 还可以在给出同样文本的情况下生成具有多样性的 3D 内容:

prolificdreamer_生成模型_07

传统文生 3D 的优化算法

给定一个 2D 图片上预训练好的扩散模型(例如 stable-diffusion),Dreamfusion [1] 提出可以在不借助任何 3D 数据的情况下实现开放域的文到 3D 内容(text-to-3D)生成。具体而言,对于一个 3D 物体,文生 3D 任务的关键是设计一种优化算法,使得 3D 物体在各个视角下投影出来的 2D 图片与预训练的 2D 扩散模型匹配,并不断优化 3D 物体。其中,SDS [1] (也称为 Score Jacobian Chaining (SJC) [3]) 是目前几乎所有的零样本开放域文生 3D 工作所使用的算法。该算法将 3D 物体视为一个单点(single point),并通过随机梯度下降优化该 3D 物体,优化目标是最大化该渲染的 2D 图像在预训练扩散模型下的似然值。值得注意的是,该优化问题的最优解并不等价于从扩散模型中采样。

prolificdreamer_3D_08

传统文生 3D 的优化算法示意图

实验中,所有基于 SDS/SJC 的方法目前都有一个严重的问题:生成的物体过于平滑、过饱和现象严重,并且多样性不高。例如,开源库 threestudio [4] 将目前主流的 text-to-3D 工作复现至与原论文可比水平,如下图所示:

prolificdreamer_生成模型_09

由 threestuidio [4] 复现的文生 3D 工作

在此之前,基于 2D 扩散模型的文生 3D 仍然与实践落地有较大差距。然而,清华大学朱军团队提出的 ProlificDreamer 在算法层面解决了 SDS 的上述问题,能够生成非常逼真的 3D 内容,极大地缩小了这一差距。

ProlificDreamer 的原理

与以往方法不同,ProlificDreamer 并不单纯优化单个 3D 物体,而是优化 3D 物体对应的概率分布。通常而言,给定一个有效的文本输入,存在一个概率分布包含了该文本描述下所有可能的 3D 物体。

prolificdreamer_概率分布_10

给定文本下的 3D 物体存在一个潜在的概率分布

基于该 3D 概率分布,我们可以进一步诱导出一个 2D 概率分布。具体而言,只需要对每一个 3D 物体经过相机渲染到 2D,即可得到一个 2D 图像的概率分布。

prolificdreamer_3D_11

由潜在 3D 分布可以诱导出一个 2D 图像分布

因此,优化 3D 分布可以被等效地转换为优化 2D 渲染图片的概率分布与 2D 扩散模型定义的概率分布之间的距离(由 KL 散度定义)。这是一个经典的变分推断(variational inference)任务,因此 ProlificDreamer 文中将该任务及对应的算法称为变分得分蒸馏(Variational Score Distillation,VSD)。

prolificdreamer_人工智能_12

优化 3D 分布可以被等效地转换为优化 2D 图片之间的概率分布

具体而言,VSD 的算法流程图如下所示。其中,3D 物体的迭代更新需要使用两个模型:一个是预训练的 2D 扩散模型(例如 Stable-Diffusion),另一个是基于该预训练模型的 LoRA(low-rank adaptation)。该 LoRA 估计了当前 3D 物体诱导的 2D 图片分布的得分函数(score function),并进一步用于更新 3D 物体。该算法实际上在模拟 Wasserstein 梯度流,并可以保证收敛得到的分布满足与预训练的 2D 扩散模型的 KL 散度最小。

prolificdreamer_人工智能_13

VSD 的训练流程图

与传统的 SDS/SJC 算法相比,可以发现 VSD 仅仅需要把原来的高斯噪声项换成 LoRA 项即可。由于 LoRA 提供了比高斯噪声更精细的更新方向(例如,LoRA 可以利用文本 y、相机视角 c、扩散时间 t 等的先验信息),VSD 在实践中可以得到远超 SDS 的精细结果。并且,论文作者提出,SDS/SJC 实际上是 VSD 使用一个单点 Dirac 分布作为变分分布的特例,而 VSD 扩展到了由 LoRA 定义的更复杂的概率分布,因此可以得到更好的结果。此外,VSD 还对监督权重(CFG)更友好,可以使用与 2D 扩散模型一样的监督权重(例如 stable-diffusion 常用的 CFG=7.5),因此可以达到和 2D 扩散模型类似的采样质量。这一结果首次解决了 SDS/SJC 中的超大 CFG(一般为 100)的问题,也同时说明 VSD 这种基于分布优化的思想与预训练的 2D 扩散模型更适配。

prolificdreamer_3D_14

SDS/SJC 与 VSD 的更新公式对比

最后,ProlificDreamer 还对 3D 表示的设计空间做了详细的研究,提出了如下实现。在实践中,VSD 可以在 512 渲染分辨率的 NeRF 下训练,并极大地丰富了所得到的 3D 结果的纹理细节。

prolificdreamer_生成模型_15

ProlificDreamer 与其它工作的实现细节比较 

关于作者

论文有两位共同一作。第一位是清华大学在读的二年级博士生王征翊,主要研究方向是深度生成模型的理论与算法在 3D 内容生成的应用。此前在 ICML/CVPR/IJCAI 等顶级会议发表多篇论文。

prolificdreamer_3D_16

共同一作王征翊

个人主页:https://thuwzy.github.io/

论文的另一位共同一作是清华大学在读的四年级博士生路橙,目前主要研究方向是深度生成模型的理论与算法,及其在计算机视觉、强化学习、3D 生成中的应用,在 ICML/ICLR/NeurIPS 等顶级会议发表多篇论文。此前由他为第一作者发表的 DPM-Solver(NeurIPS 2022 oral)将扩散模型的快速采样算法提升到了极致,无需额外训练即可在 10 到 25 步获得极高质量的采样,目前仍然是 stable-diffusion 等文生图的默认采样算法(详见机器之心报道 [5])。

prolificdreamer_人工智能_17

共同一作路橙

个人主页:https://luchengthu.github.io/

团队成员很早就开始致力于扩散模型的研究,成员鲍凡以第一作者发表的 Analytic-DPM 此前获得 ICLR 2022 outstanding paper award,并且提出了 Unidiffuser 多模态大模型(详见机器之心报道 [6])等多个优秀的工作;另一位成员李崇轩也是 TSAIL 组培养的博士,曾获 CCF 优秀博士论文奖,现在在中国人民大学担任助理教授,并将在 6 月份举行的智源大会上组织 “生成模型专题论坛”。

最后,清华大学 TSAIL 团队长期致力于贝叶斯机器学习的理论和算法研究,是国际上最早研究深度概率生成模型的团队之一,在贝叶斯模型、高效算法和概率编程库方面取得了系统深入的研究成果。机器之心早在 2017 年就报道了该团队发布的 “ZhuSuan” 深度概率编程库(https://zhusuan.readthedocs.io/en/latest/),是国际上最早的面向深度概率模型的编程库之一。