无需任何3D数据,直接文本生成高质量3D内容,清华朱军团队带来重大进展

2023-05-31 20:12 1143 阅读 ID:1107
机器学习算法与自然语言处理
机器学习算法与自然语言处理

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

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

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

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

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

传统文生 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 图像在预训练扩散模型下的似然值。值得注意的是,该优化问题的最优解并不等价于从扩散模型中采样。

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

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

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

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

ProlificDreamer 的原理

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

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

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

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

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

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

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

                                                                   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 扩散模型更适配。

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

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

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

关于作者

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

                                                                     共同一作王征翊

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

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

                                                                          共同一作路橙

个人主页: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/),是国际上最早的面向深度概率模型的编程库之一。

参考文献

[1] Ben Poole, et al., DreamFusion: Text-to-3D using 2D Diffusion.https://arxiv.org/abs/2209.14988

[2] Chitwan Saharia, et al., Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding. https://arxiv.org/abs/2205.11487

[3] Haochen Wang, et al., Score Jacobian Chaining: Lifting Pretrained 2D Diffusion Models for 3D Generation. https://arxiv.org/abs/2212.00774

[4] Yuan-Chen Guo, et al., threestudio: A unified framework for 3D content generation. https://github.com/threestudio-project/threestudio/

[5] https://mp.weixin.qq.com/s/vr5Pw6rc36PwQbP7j9vQYg

[6] https://mp.weixin.qq.com/s/B68hXlFxA9L5jiWiMrEEiA

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn