清华大学 TSAIL 团队最新提出的文生 3D 新算法 ProlifcDreamer,在无需任何 3D 数据的前提下能够生成超高质量的 3D 内容。
ProlifcDreamer 算法为文生 3D 领域带来重大进展。利用 ProlifcDreamer,输入文本 “一个菠萝”,就能生成非常逼真且高清的 3D 菠萝:![图片](https://image.jiqizhixin.com/uploads/editor/85515f6a-6c07-49e3-9a8a-dcd6acad7348/640.gif)
给出稍微难一些的文本,比如 “一只米开朗琪罗风格狗的雕塑,正在用手机读新闻”,ProlifcDreamer 的生成也不在话下:![图片](https://image.jiqizhixin.com/uploads/editor/ef9ebd15-367a-4144-91b8-0cf4cf9ac085/640.gif)
将 Imagen 生成的照片(下图静态图)和 ProlificDreamer(基于 Stable-Diffusion)生成的 3D(下图动态图)进行对比。有网友感慨:短短一年时间,高质量的生成已经能够从 2D 图像领域扩展到 3D 领域了!![图片](https://image.jiqizhixin.com/uploads/editor/124805e5-8797-4d5a-bbee-82981a28f4d4/640.png)
![图片](https://image.jiqizhixin.com/uploads/editor/a2209865-7e5b-4a7b-a2de-c3394bb255a5/640.gif)
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://image.jiqizhixin.com/uploads/editor/64ccf40c-45c2-4122-a3ac-1735254f3ef8/640.png)
- 论文链接: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 可以根据文本生成非常高质量的带纹理的三维网格:![图片](https://image.jiqizhixin.com/uploads/editor/a13120f3-13d2-46f9-af8c-7b5e74de044e/640.png)
ProlificDreamer 可以根据文本生成非常高质量的三维神经辐射场(NeRF),包括复杂的效果。甚至 360° 的场景也能生成:![图片](https://image.jiqizhixin.com/uploads/editor/6d48a5d8-8c02-4aa3-9b09-e0476b111693/640.png)
ProlificDreamer 还可以在给出同样文本的情况下生成具有多样性的 3D 内容:![图片](https://image.jiqizhixin.com/uploads/editor/45e23773-8b48-4166-9aa8-e8ea760eb02b/640.png)
给定一个 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 图像在预训练扩散模型下的似然值。值得注意的是,该优化问题的最优解并不等价于从扩散模型中采样。![图片](https://image.jiqizhixin.com/uploads/editor/bb310be5-9990-4dde-9692-5a8c7a5ccda4/640.png)
实验中,所有基于 SDS/SJC 的方法目前都有一个严重的问题:生成的物体过于平滑、过饱和现象严重,并且多样性不高。例如,开源库 threestudio [4] 将目前主流的 text-to-3D 工作复现至与原论文可比水平,如下图所示:![图片](https://image.jiqizhixin.com/uploads/editor/d3ea97f8-8d3f-4a88-b418-3096db97a0bd/640.png)
由 threestuidio [4] 复现的文生 3D 工作在此之前,基于 2D 扩散模型的文生 3D 仍然与实践落地有较大差距。然而,清华大学朱军团队提出的 ProlificDreamer 在算法层面解决了 SDS 的上述问题,能够生成非常逼真的 3D 内容,极大地缩小了这一差距。与以往方法不同,ProlificDreamer 并不单纯优化单个 3D 物体,而是优化 3D 物体对应的概率分布。通常而言,给定一个有效的文本输入,存在一个概率分布包含了该文本描述下所有可能的 3D 物体。![图片](https://image.jiqizhixin.com/uploads/editor/47cbcaa2-eb7d-4ffb-8103-e069498be6fe/640.png)
基于该 3D 概率分布,我们可以进一步诱导出一个 2D 概率分布。具体而言,只需要对每一个 3D 物体经过相机渲染到 2D,即可得到一个 2D 图像的概率分布。![图片](https://image.jiqizhixin.com/uploads/editor/783b6eac-f1a3-4470-8e60-0072966ec970/640.png)
因此,优化 3D 分布可以被等效地转换为优化 2D 渲染图片的概率分布与 2D 扩散模型定义的概率分布之间的距离(由 KL 散度定义)。这是一个经典的变分推断(variational inference)任务,因此 ProlificDreamer 文中将该任务及对应的算法称为变分得分蒸馏(Variational Score Distillation,VSD)。![图片](https://image.jiqizhixin.com/uploads/editor/034ca715-18f0-49bc-8fd4-19cc21e73eb8/640.png)
优化 3D 分布可以被等效地转换为优化 2D 图片之间的概率分布具体而言,VSD 的算法流程图如下所示。其中,3D 物体的迭代更新需要使用两个模型:一个是预训练的 2D 扩散模型(例如 Stable-Diffusion),另一个是基于该预训练模型的 LoRA(low-rank adaptation)。该 LoRA 估计了当前 3D 物体诱导的 2D 图片分布的得分函数(score function),并进一步用于更新 3D 物体。该算法实际上在模拟 Wasserstein 梯度流,并可以保证收敛得到的分布满足与预训练的 2D 扩散模型的 KL 散度最小。![图片](https://image.jiqizhixin.com/uploads/editor/ff3d2b8d-9c69-4757-8a6f-7ab1c2c47ace/640.png)
与传统的 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 扩散模型更适配。![图片](https://image.jiqizhixin.com/uploads/editor/4c1353d0-8277-4fca-9c74-0159e3f07ae7/640.png)
最后,ProlificDreamer 还对 3D 表示的设计空间做了详细的研究,提出了如下实现。在实践中,VSD 可以在 512 渲染分辨率的 NeRF 下训练,并极大地丰富了所得到的 3D 结果的纹理细节。![图片](https://image.jiqizhixin.com/uploads/editor/b1525393-82b2-4d98-b4ad-fa5b2ca5ecc9/640.png)
ProlificDreamer 与其它工作的实现细节比较论文有两位共同一作。第一位是清华大学在读的二年级博士生王征翊,主要研究方向是深度生成模型的理论与算法在 3D 内容生成的应用。此前在 ICML/CVPR/IJCAI 等顶级会议发表多篇论文。![图片](https://image.jiqizhixin.com/uploads/editor/6d608070-7eea-46d9-a29a-47539d495db7/640.png)
个人主页:https://thuwzy.github.io/论文的另一位共同一作是清华大学在读的四年级博士生路橙,目前主要研究方向是深度生成模型的理论与算法,及其在计算机视觉、强化学习、3D 生成中的应用,在 ICML/ICLR/NeurIPS 等顶级会议发表多篇论文。此前由他为第一作者发表的 DPM-Solver(NeurIPS 2022 oral)将扩散模型的快速采样算法提升到了极致,无需额外训练即可在 10 到 25 步获得极高质量的采样,目前仍然是 stable-diffusion 等文生图的默认采样算法(详见机器之心报道 [5])。![图片](https://image.jiqizhixin.com/uploads/editor/0f190b10-769c-4cbf-8d47-9e0d8a2b2be0/640.png)
个人主页: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