LLaMa-Mesh:文本生成3D网格
上周,NVIDIA 发表了一篇引人入胜的论文 LLaMA-Mesh:使用语言模型统一 3D 网格生成 ,该论文允许使用自然语言生成 3D 网格对象。
简单来说,如果你可以说“给我讲个笑话”,那么现在你可以说“给我一辆汽车的 3D 网格”,它可以以包含输出的 OBJ 格式(稍后会详细介绍)给出输出。
如果你想尝试几个示例,可以在这个Huggingface Space进行。
对我来说最令人惊奇的是,它没有扩展词汇表或引入新标记,而这在大多数微调任务中很常见。
但首先,什么是 3D 网格?
3D 网格是 3D 对象的数字表示,由顶点、边和面组成。
例如,考虑一个立方体。它有 8 个顶点(角)、12 条边(连接角的线)和 6 个面(方形边)。这是立方体的基本 3D 网格表示。立方体的顶点 (v) 定义其角,面 (f) 描述这些角如何连接以形成表面。
以下是表示 3D 对象几何形状的 OBJ 文件示例:
# Vertices
v: (0, 0, 0)
v: (1, 0, 0)
v: (1, 1, 0)
v: (0, 1, 0)
v: (0, 0, 1)
v: (1, 0, 1)
v: (1, 1, 1)
v: (0, 1, 1)
# Faces
f 1 2 3 4
f 5 6 7 8
f 1 5 8 4
f 2 6 7 3
f 4 3 7 8
f 1 2 6 5
然后软件将解释这些数字,从而渲染最终图像,即 3D 立方体。 或你可以使用像这样的 HuggingFace 空间来渲染对象。
随着对象的复杂性增加(与上面的简单立方体相比),它们将具有数千甚至数百万个顶点、边和面来创建详细的形状和纹理。此外,它们将具有更多维度来捕捉纹理、朝向等内容。
实际上,日常物品(长凳)的 obj 文件看起来是这样的:
正如你可能从上图中注意到的那样,GPT4o 和 LLama3.1 等 LLM 在某种程度上能够开箱即用地生成 obj 文件。但是,如果你查看这两种情况下长凳的渲染网格图像,就会明白为什么从质量的角度来看微调是必要的。
1、LLM 如何处理 3D 网格?
众所周知,LLM 通过将标记(如 cat)转换为标记 ID(如 456)来理解文本。同样,为了使用标准 OBJ 格式,我们必须以某种方式将通常为小数的顶点坐标转换为整数。
他们在论文中使用顶点量化来实现这一点,并将单个坐标拆分为多个token,类似于 GPT4o 分词器 将长单词(如 operations
)将拆分为两个token — oper
和 ational
。正如预期的那样,减少表示小数的标记数量具有正常的精度成本权衡。
为了实现顶点量化,他们将网格中的所有三个轴缩放到范围 (0, 64)
并将坐标量化为最接近的整数,即 3 个轴中的每一个都可以取 0 到 64 之间的值(在本例中为 39、19 和 35)。最后,通过读取和生成这种格式,LLM 能够处理 3D 对象。
2、LlaMa-Mesh 的训练过程是什么?
LLama-Mesh 是通过使用 SFT(监督微调)方法对 LLama3.1–8B 指令模型进行微调而创建的,以提高其网格理解和生成能力。
由于它是 SFT,我们需要为其提供文本 3D 指令的输入输出示例。以下是一个例子:
Input
User: Create a 3D obj file using the following description: a 3D model of a car.
Output
Assistant: <start of mesh> v 0 3 4 v 0 4 6 v 0 3 … f 1 3 2 f 4 3 5 … . <end of mesh>
除了生成 3D 网格之外,LLama-Mesh 还能够解释 3d 网格。为此,其训练数据还包含几个网格理解和网格生成示例,作为对话式格式的一部分。以下是数据集中的几个示例:
3、论文中最有趣的部分
LlaMa-Mesh 可以与文本和 3D 对象进行通信,而无需特殊的标记器或扩展 LLM 的词汇表。这要归功于上面讨论的 OBJ 格式和顶点量化的使用,它们可以有效地将 3D 网格数据标记为 LLM 可以无缝处理的离散标记。
LlaMa-Mesh 可以从相同的输入文本生成不同的形状:
尽管微调过程略微降低了模型的底层语言理解和推理能力(他们称之为指令数据集的选择和较小的 8B 模型的大小所施加的限制),但它被微调模型可以生成高质量的 OBJ 文件以生成 3D 网格这一事实所抵消。
4、为什么要关心这篇论文?
我已经对大型语言模型生成类似人类的文本、代码和使用视觉内容进行推理的能力感到惊讶。将 3D 网格添加到此列表中真是太棒了。
像 LLaMa-Mesh 这样的 LLM 有可能彻底改变包括游戏、教育和医疗保健在内的各个行业。它可以用于直接从视频游戏的文本描述中生成逼真的资产,如角色、环境和对象。
同样,它可以加快产品开发和构思过程,因为任何公司都需要设计,这样他们才知道要创造什么。
它还可用于建筑物、机械、桥梁和其他基础设施项目的建筑设计。最后,在教育科技领域,它可用于在培训材料中嵌入交互式 3D 模拟。
原文链接:Generate 3D Images with Nvidia’s LLaMa-Mesh
汇智网翻译整理,转载请标明出处