此次,与点云显式生成模型 Point・E 相比,OpenAI 新推出的条件生成式 3D 模型 Shap-E 建模了高维、多表示的输出空间,收敛更快,并且达到了相当或更好的样本质量。
生成式 AI 大模型是 OpenAI 发力的重点,目前已经推出过文本生成图像模型 DALL-E 和 DALL-E 2,以及今年初基于文本生成 3D 模型的 POINT-E。
近日,OpenAI 研究团队升级了 3D 生成模型,全新推出了 Shap・E,它是一个用于合成 3D 资产的条件生成式模型。目前相关模型权重、推理代码和样本已开源。
- 论文地址:https://arxiv.org/abs/2305.02463
- 项目地址:https://github.com/openai/shap-e
我们先来看一下生成效果。与根据文字生成图像类似,Shap・E 生成的 3D 物体模型主打一个「天马行空」。例如,一个看起来像香蕉的飞机:
看起来像一棵树的椅子:
还有经典例子,像牛油果的椅子:
当然也可以生成一些常见物体的三维模型,例如一碗蔬菜:
甜甜圈:
本文提出的 Shap・E 是一种在 3D 隐式函数空间上的潜扩散模型,可以渲染成 NeRF 和纹理网格。在给定相同的数据集、模型架构和训练计算的情况下,Shap・E 更优于同类显式生成模型。研究者发现纯文本条件模型可以生成多样化、有趣的物体,更彰显了生成隐式表征的潜力。
不同于 3D 生成模型上产生单一输出表示的工作,Shap-E 能够直接生成隐式函数的参数。训练 Shap-E 分为两个阶段:首先训练编码器,该编码器将 3D 资产确定性地映射到隐式函数的参数中;其次在编码器的输出上训练条件扩散模型。当在配对 3D 和文本数据的大型数据集上进行训练时, 该模型能够在几秒钟内生成复杂而多样的 3D 资产。与点云显式生成模型 Point・E 相比,Shap-E 建模了高维、多表示的输出空间,收敛更快,并且达到了相当或更好的样本质量。
研究背景
本文聚焦两种用于 3D 表示的隐式神经表示(INR):
- NeRF 一个 INR,它将 3D 场景表示为将坐标和视向映射到密度和 RGB 颜色的函数;
- DMTet 及其扩展 GET3D 表示一个纹理 3D 网格,它作为函数将坐标映射到颜色、符号距离和顶点偏移的。这种 INR 能够以可微的方式构建 3D 三角网格,然后渲染为可微的栅格化库。
虽然 INR 灵活而富有表现力,但为数据集中每个样本获取 INR 的成本高昂。此外每个 INR 可能有许多数值参数,在训练下游生成模型时可能会带来难题。通过使用带有隐式解码器的自动编码器来解决这些问题,可以获得较小的潜在表示,它们直接用现有生成技术进行建模。另外还有一种替代方法,就是使用元学习创建一个共享大部分参数的 INR 数据集,然后在这些 INR 的自由参数上训练扩散模型或归一化流。也有人提出,基于梯度的元学习可能并不必要,相反应该直接训练 Transformer 编码器,产生以 3D 对象多个视图为条件的 NeRF 参数。
研究者将上述几种方法结合并拓展,最终得到了 Shap・E,并成为用于各种复杂 3D 隐式表示的条件生成模型。首先通过训练基于 Transformer 的编码器来为 3D 资产生成 INR 参数,然后在编码器的输出上训练扩散模型。与先前的方式不同,生成同时表示 NeRF 和网格的 INR,允许它们以多种方式渲染或导入下游 3D 应用。
当在数百万个 3D 资产的数据集上训练时,本文模型能够在文本 prompt 的条件下产生多种可识别的样本。与最近提出的显式 3D 生成模型 Point・E 相比,Shap-E 收敛得更快。在相同的模型架构、数据集和条件作用机制的情况下,它能获得相当或更好的结果。
方法概览
研究者首先训练编码器产生隐式表示,然后在编码器产生的潜在表示上训练扩散模型,主要分为以下两步完成:
1. 训练一个编码器,在给定已知 3D 资产的密集显式表示的情况下,产生隐式函数的参数。编码器产生 3D 资产的潜在表示后线性投影,以获得多层感知器(MLP)的权重;
2. 将编码器应用于数据集,然后在潜在数据集上训练扩散先验。该模型以图像或文本描述为条件。
研究者在一个大型的 3D 资产数据集上使用相应的渲染、点云和文本标题训练所有模型。
3D 编码器
编码器架构如下图 2 所示。
潜在扩散
生成模型采用基于 transformer 的 Point・E 扩散架构,但是使用潜在向量序列取代点云。潜在函数形状序列为 1024×1024,并作为 1024 个 token 序列输入 transformer,其中每个 token 对应于 MLP 权重矩阵的不同行。因此,该模型在计算上大致相当于基础 Point・E 模型(即具有相同的上下文长度和宽度)。在此基础上增加了输入和输出通道,能在更高维度的空间中生成样本。
实验结果
编码器评估
研究者在整个编码器训练过程中跟踪两个基于渲染的指标。首先评估重建图像和真实渲染图像之间的峰值信噪比(PSNR)。此外,为了衡量编码器捕获 3D 资产语义相关细节的能力,对最大 Point・E 模型产生的网格进行编码,重新评估重建 NeRF 和 STF 渲染的 CLIP R-Precision。
下表 1 跟踪了这两个指标在不同训练阶段的结果。可以发现,蒸馏损害了 NeRF 重建质量,而微调不仅恢复还略微提高了 NeRF 质量,同时大幅提高了 STF 渲染质量。
对比 Point・E
研究者提出的潜在扩散模型与 Point・E. 具有相同架构、训练数据集和条件模式。与 Point・E 进行比较更有利于区分生成隐式神经表示而不是显式表示的影响。下图 4 在基于样本的评估指标上对这些方法进行了比较。
下图 5 中显示了定性样本,可以看到这些模型通常为相同的文本 prompt 生成质量不同的样本。在训练结束之前,文本条件 Shap・E 在评估中开始变差。
研究者发现 Shap・E 和 Point・E 倾向于共享相似的失败案例,如下图 6 (a) 所示。这表明训练数据、模型架构和条件图像对生成样本的影响大于选择的表示空间。
我们可以观察到两个图像条件模型之间仍然存在一些定性差异,例如在下图 6 (b) 的第一行中,Point・E 忽略了长凳上的小缝隙,而 Shap・E 试图对它们进行建模。本文假设会出现这种特殊的差异,因为点云不能很好地表示薄特征或间隙。此外在表 1 中观察发现,当应用于 Point・E 样本时,3D 编码器略微降低了 CLIP R-Precision。
与其他方法比较
下表 2 中,研究者在 CLIP R-Precision 度量标准上将 shape・E 与更广泛的 3D 生成技术进行了比较。、
局限与展望
虽然 Shap-E 可以理解许多具有简单属性的单个对象 prompt,但它在组合概念方面的能力有限。下图 7 中可发现,这个模型很难将多个属性绑定到不同的对象,并且当请求两个以上的对象时,无法有效生成正确的对象数量。这可能是配对训练数据不足导致的结果,通过收集或生成更大的标注 3D 数据集或许可以解决。
此外,Shap・E 产生可识别的 3D 资产,但这些通常看起来粗糙或缺乏细节。下图 3 显示编码器有时会丢失详细的纹理(例如仙人掌上的条纹),这表明改进的编码器可能会恢复一些损失的生成质量。
更多技术和实验细节请参阅原论文。