一块GPU,每秒20个模型!英伟达新玩具用GET3D造元宇宙

编辑:拉燕 桃子

来源:新智元

导读:近日,英伟达发布了最新的GET3D模型,能快速生成虚拟世界的对象,而且只需要一块GPU每秒就能产出大约20个模型。

Abracadabra!

在2D生成3D模型上,英伟达亮出了自称「世界级」研究:GET3D。

通过2D图像训练后,该模型可生成具有高保真纹理和复杂几何细节的3D形状。

形状、纹理、材质自定义

GET3D之所以得名,是因为它能够生成显式纹理3D网格(Generate Explicit Textured 3D meshes )。

论文地址:https://arxiv.org/pdf/2209.11163.pdf

也就是说,它创建的形状是三角形网格的形式,就像纸模型一样,上面覆盖着纹理材质。

关键是,这个模型可以生成多种多样,且高质量的模型。

比如,椅子腿上的各种轮子;汽车的车轮,灯和车窗;动物的耳朵、角;摩托车的后视镜,车轮胎上的纹理;高跟鞋,人类衣服...

街道两旁的独特建筑,不同的车辆呼啸而过,还有不同的人群穿梭而过...

若想通过手动建模做出同样的3D虚拟世界非常耗时。

尽管先前的3D生成AI模型虽然比手动建模更快,但它们在生成更多丰富细节模型的能力还是欠缺。

即便是,最新的逆向渲染方法也只能基于从各个角度拍摄的2D图像生成3D对象,开发人员一次只能构建一个3D物体。

GET3D可就不一样了。

开发者可以轻松地将生成模型导入到游戏引擎、3D建模器和电影渲染器中,对它们进行编辑。

当创建者将GET3D生成的模型导出到图形应用程序,他们就可以在模型所在的场景中移动或旋转时应用逼真的照明效果。

如图所示:

如图所示:

另外,GET3D还可以做到文本引导形状生成。

通过使用英伟达的另一个AI工具StyleGAN-NADA,开发人员可以使用文本提示为图像添加特定的风格。

比如,可以将渲染后的汽车变成一辆烧毁的汽车或出租车

将一个普通的房子改造成砖房、着火的房子,甚至是鬼屋。

或者将老虎纹、熊猫纹、还有《辛普森一家》的特色应用在任何动物身上...

简直就是辛普森一家的「动物森友会」...

英伟达介绍,在单个英伟达GPU上训练,GET3D每秒可以生成大约20个对象。

在此,它所学习的训练数据集越大、越多样化,输出的多样性和详细程度就越高。

英伟达称,研究团队仅用2天时间,就使用A100 GPU在大约100万张图像上训练了模型。


研究方法与过程


GET3D框架,主要作用是合成有纹理的三维形状。

生成过程分为两个部分:第一部分是几何分支,可以输出任意拓扑结构的表面网格。另一部分则是纹理分支,它会产生一个纹理场,由此可以在表面点上进行查询。

在训练过程中,一个可微分光栅化器被用来高效渲染所产生的纹理网格,并渲染成二维的高分辨率图像。整个过程是可分的,允许通过传播二维判别器的梯度,从图像中进行对抗性训练。

之后,梯度从二维判别器传播到两个发生器分支。

研究人员又进行了广泛的实验来评估该模型。他们首先将GET3D生成的三维纹理网格的质量与现有的使用ShapeNet和Turbosquid数据集生成的做比较。

接下来,研究人员根据对比结果在之后的研究中对模型进行了优化,并做了更多实验。

GET3D模型在几何形状和纹理能够实现相分离。

如图,在每一行中展示了由相同的几何隐藏代码生成的形状,同时更改了纹理代码。

在每一列中展示了由相同的纹理隐藏代码生成的形状,同时更改了几何代码。

另外,研究人员在每一行中相同的纹理隐藏代码生成的形状,从左到右插入几何隐藏代码。

并由相同的几何隐藏代码生成的形状,同时从上到下插入纹理代码。结果显示,每个插值对生成模型都是有意义的。

在每个模型的子图中,GET3D能够在所有类别的不同形状之间的生成实现平滑过渡。

在每一行中,通过添加一个小噪声来局部扰乱隐藏代码。通过这种方式,GET3D能够在局部生成外观相似但略有差异的形状。

研究人员指出,未来版本的GET3D可以使用摄像机姿态估计技术,让开发人员训练模型的现实世界的数据,而不是合成数据集。

未来,通过改进,开发人员可以在各种3D形状上一次性训练GET3D,而不需要一次在一个对象类别上训练它。

英伟达人工智能研究副总裁Sanja Fidler表示,

GET3D让我们离人工智能驱动的3D内容创作大众化又近了一步。它即时生成带纹理3D形状的能力可能会改变开发人员的游戏规则,帮助他们用各种有趣的对象快速填充虚拟世界。

作者介绍

论文一作Jun Gao是多伦多大学机器学习小组的博士生,导师是Sanja Fidler。

参考资料:

https://blogs.nvidia.com/blog/2022/09/23/3d-generative-ai-research-virtual-worlds/

https://nv-tlabs.github.io/GET3D/

https://www.engadget.com/nvidia-ai-model-get3d-virtual-worlds-objects-130021127.html