您可能听说过在过去几年中文本到图像 AI 模型变得多么强大。 但是您知道同样的技术可以帮助实现从 2D 到 3D 的飞跃吗?
AI 生成的 3D 模型在当今的数字环境中具有广泛的用例。 视频游戏 和电影依靠熟练的 3D 艺术家和建模软件(如 Blender)来创建 3D 资产来填充计算机生成的场景。
然而,行业是否有可能使用机器学习以更少的努力来创建 3D 资产,类似于当今 2D 艺术家开始采用 DALL-E 和 中途?
本文将探索一种新颖的算法,尝试使用现有的文本创建有效的文本到 3D 模型 扩散模型.
什么是 梦幻融合?
创建直接生成 3D 资产的扩散模型的一个主要问题是根本没有很多可用的 3D 数据。 2D 扩散模型之所以变得如此强大,是因为互联网上有大量的图像数据集。 3D 资产则不同。
一些 3D 生成技术通过利用这种丰富的 2D 数据来解决这种数据缺乏的问题。
梦幻融合 是一种生成模型,可以根据提供的文本描述创建 3D 模型。 DreamFusion 模型使用预训练的文本到图像扩散模型从文本提示生成逼真的三维模型。
尽管没有 3D 训练数据,但这种方法已生成具有高保真外观和深度的连贯 3D 资产。
它是如何工作的?
DreamFusion 算法由两个主要模型组成:二维扩散模型和 神经网络 可以将 2D 图像转换为连贯的 3D 场景。
Google 的 Imagen 文本到图像模型
算法的第一部分是扩散模型。 该模型负责将文本转换为图像。
图像 是一种扩散模型,可以生成特定对象的大量图像变化样本。 在这种情况下,我们的图像变化应该涵盖所提供对象的所有可能角度。 例如,如果我们想要生成一匹马的 3D 模型,我们需要从所有可能的角度获得这匹马的 2D 图像。 目标是使用 Imagen 为我们算法中的下一个模型提供尽可能多的信息(颜色、反射、密度)。
使用 NeRF 创建 3D 模型
接下来,Dreamfusion 使用一种称为 神经辐射场 或 NeRF 从生成的图像集中实际创建 3D 模型。 NeRF 能够在给定 3D 图像数据集的情况下创建复杂的 2D 场景。
让我们尝试了解 NeRF 的工作原理。
该模型旨在创建一个连续的体积场景函数,该函数根据提供的 2D 图像数据集进行优化。
如果模型创建一个函数,输入和输出是什么?
场景函数将 3D 位置和 2D 观察方向作为输入。 然后该函数输出一种颜色(以 RGB 的形式)和特定的体积密度。
要从特定视点生成 2D 图像,模型将生成一组 3D 点并通过场景函数运行这些点以返回一组颜色和体积密度值。 体绘制技术随后会将这些值转换为 2D 图像输出。
一起使用 NeRF 和 2D 扩散模型
现在我们知道了 NeRF 是如何工作的,让我们看看这个模型如何从我们生成的图像中生成准确的 3D 模型。
对于每个提供的文本提示,DreamFusion 从头开始训练一个随机初始化的 NeRF。 每次迭代在一组球坐标中选择一个随机相机位置。 想想装在玻璃球体中的模型。 每次我们生成 3D 模型的新图像时,我们都会在我们的球体中选择一个随机点作为我们输出的有利点。 DreamFusion 也会选择一个随机的灯光位置 l 用于渲染。
一旦我们有了相机和灯光位置,就会渲染一个 NeRF 模型。 DreamFusion 还将在彩色渲染、无纹理渲染和没有任何阴影的反照率渲染之间随机选择。
我们之前提到过,我们希望我们的文本到图像模型 (Imagen) 能够生成足够多的图像来创建具有代表性的样本。
Dreamfusion 如何做到这一点?
Dreamfusion 只需稍微修改输入提示即可达到预期的角度。 例如,我们可以通过在提示中附加“俯视图”来实现高仰角。 我们可以通过附加“前视图”、“侧视图”和“后视图”等短语来生成其他角度。
从随机相机位置重复渲染场景。 这些效果图然后通过分数蒸馏损失函数。 一个简单的梯度下降方法将慢慢提高 3D模型 直到与文字描述的场景相符。
一旦我们使用 NeRF 渲染了 3D 模型,我们就可以使用 行进立方体算法 输出我们模型的 3D 网格。 然后可以将该网格导入到流行的 3D 渲染器或建模软件中。
限制
虽然 DreamFusion 的输出令人印象深刻,因为它以一种新颖的方式使用现有的文本到图像扩散模型,但研究人员注意到了一些局限性。
已观察到 SDS 损失函数会产生过饱和和过度平滑的结果。 您可以在输出中发现不自然的色彩和缺乏精确细节时观察到这一点。
DreamFusion 算法还受到 Imagen 模型输出分辨率(64 x 64 像素)的限制。 这导致合成模型缺乏更精细的细节。
最后,研究人员指出,从 3D 数据合成 2D 模型存在固有的挑战。 我们可以从一组 3D 图像生成许多可能的 2D 模型,这使得优化非常困难,甚至是模棱两可的。
结论
DreamFusion 的 3D 渲染效果非常好,因为文本到图像扩散模型能够创建任何对象或场景。 令人印象深刻的是神经网络如何在没有任何 3D 训练数据的情况下理解 3D 空间中的场景。 我建议阅读 整张纸 了解更多关于 DreamFusion 算法的技术细节。
希望这项技术能够改进,最终创建照片般逼真的 3D 模型。 想象一下使用 AI 生成环境的整个视频游戏或模拟。 它可以降低视频游戏开发人员创建沉浸式 3D 世界的门槛!
您认为文本到 3D 模型在未来将扮演什么角色?
发表评论