文 / Stadia 软件工程师 Andeep Singh Toor;Google Research Brain 团队软件工程师 Fred Bertsch
为数字视频游戏进行艺术设计与创造需要精湛的艺术创造力和技术知识,同时游戏艺术设计师还常常要面对紧迫的工期,需要能够快速迭代创意并制作大量的作品。如果艺术设计师手中的画笔不只是简单的工具,而愈发地像个助手,那么设计工作会发生怎样的变化?像画笔一样工作的的机器学习模型可以减少创造高品质艺术设计所需的时间,而这并无需设计师在艺术性方面做出取舍,甚至可以提高他们的创造力。
现在,我们将为您介绍 Chimera Painter,这是一种经训练的机器学习 (ML) 模型,可以基于用户提供的生物轮廓自动渲染出鲜活饱满的角色形象。在演示应用中,用户点击“transform”按钮后,Chimera Painter 会将特征和纹理添加到以身体部位标签(例如“wings”(翅膀)或“claws”(爪子))分割的生物轮廓内。下图示例展示了在演示应用中处理一个预设生物轮廓。
使用导入到 Chimera Painter 或由提供的工具生成的图像,艺术设计师可以迭代构造或修改生物轮廓,并使用机器学习模型生成逼真的表面纹理。在此示例中,艺术设计师 Lee Dotson 在演示版 Chimera Painter 中对一个预加载的生物设计进行了自定义变更
在这篇文章中,我们将介绍 Chimera Painter 在创建机器学习模型时遇到的一些挑战,并演示如何使用工具来创建可直接用于视频游戏的作品。
新型模型的原型设计
在已生成可直接用于视频游戏的生物图像为目标的机器学习模型开发的过程中,我们将现有生物组合成新的混合体并使其互相战斗,以此为整体设计理念创建了一个数字卡牌游戏原型。在这款游戏中,玩家首先会持有画有现实世界中的动物(例如蝾螈或鲸鱼)的卡牌,并可以通过组合卡牌(使它们成为可怕的蝾螈鲸喀迈拉)来增强它们的威力。这为演示可以生成图像的模型提供了创造性环境,由于喀迈拉的形态有万千种变化,亟需一种方法来自然地对大量艺术作品进行快速组合设计,同时仍保留原始生物的可识别视觉特征。
我们的目标是在艺术设计师的指导建议下创建优质的生物卡牌图像,因此我们听取了艺术设计师的反馈,尝试使用生成对抗网络 (GAN) 创建了适合我们这款奇幻卡牌游戏原型的生物图像。GAN 会将两个卷积神经网络相互配对:一个是用于创建新图像的生成器网络,一个是用于确定这些图像是否为训练数据集内样本(本例中为艺术设计师创建的图像)的判别器网络。我们使用了一种称为条件 GAN 的变体,其中生成器采用单独的输入来指导图像生成过程。有趣的是,其他 GAN 通常侧重于 照相写实主义,而我们的方式却截然相反。
为了训练 GAN,我们创建了包含大量全彩色图像的数据集,图像内容为根据三维生物模型改编的单一物种生物轮廓。生物轮廓能够体现出每种生物的形状和大小,并提供了标识身体各个部位的分割图。完成训练后,模型将基于艺术设计师提供的轮廓生成多物种喀迈拉。然后,我们将性能最佳的模型整合到 Chimera Painter 中。下图展示了使用该模型生成的一些示例作品,包括单物种生物以及更复杂的多物种喀迈拉。
已整合到卡牌游戏原型中的生成卡牌图案,其中显示了基本生物(下排)以及由多种生物组合而成的喀迈拉,包括蚁狮豪猪、蝾螈鲸和飞蛾蟹(上排)。Stadia Research 演示视频 中详细介绍了有关游戏本身的更多信息
学习通过结构生成生物
使用 GAN 生成生物时存在一个问题,当渲染图像中的细微或低反差部分时,可能在解剖学和空间层面会出现连贯性不佳的情况,而这会对人类的感知造成很大影响。这样的示例包括眼睛、手指,甚至是区分身体上具有相似纹理的重叠部位(请参见下图中被亲切地命名为 BoggleDog 的生物)。
由 GAN 生成的身体部位发生错乱的图像
生成喀迈拉需要采用新的非摄影型奇幻风格数据集,其中应包含诸如戏剧化视角、构图和照明等独特的特征。现有的插图存储库不适合用作训练机器学习模型的数据集,因为它们可能会受到许可限制、风格冲突或仅仅是缺少这项任务所需的多样性。
为解决这个问题,我们开发了由艺术设计师主导的一种新型半自动化方案,从三维生物模型创建机器学习训练数据集。这样,我们就能够进行大规模工作,并根据需求快速迭代。在这个过程中,艺术设计师将创建或获取一组三维生物模型,为每种所需的生物类型(例如鬣狗或狮子)建立一个模型。然后,艺术设计师会使用 Unreal Engine 制作两组叠加在三维模型上的纹理,其中一组为全彩色纹理(下方左图),另一组为以纯色表示每个身体部位(例如头、耳、颈部等)的“分割图”(下方右图)。训练时,需要将第二组身体部位分割图提供给模型,以确保 GAN 学习到各种生物特定部位的结构、形状、纹理和比例。
示例数据集训练图像及其成对分割图
再次使用 Unreal Engine 将三维生物模型放置在简单的三维场景中。然后,将使用一组自动化脚本加载该三维场景,针对每种三维生物模型在不同姿态、角度和缩放级别之间进行插值,从而创建构成 GAN 的训练数据集所需的全彩色图像和分割图。使用这种方法,我们为每种三维生物模型生成了上万对的图像 + 分割图组合,与手动创建此类数据(每个图像约 20 分钟)相比,为艺术设计师节省了数百万小时的工作量。
微调
GAN 具有多种不同的可调整超参数,因此可以输出不同品质的图像。为了更好地了解模型的哪些版本优于其他版本,我们将这些模型所生成的不同生物类型的样本提供给艺术设计师,要求他们选出一些最佳样本。我们收集了与这些样本中有价值的特征(例如深度感、生物纹理风格以及面部和眼睛的真实度等)相关的反馈。此信息不仅用于训练新版本模型及生成成千上万个生物图像,还用于从每种生物类别(例如瞪羚、猞猁、大猩猩等)中选择最佳图像。
我们以感知损失为重点,针对此任务优化了 GAN。此损失函数组件(也被应用于 Stadia 的风格转换机器学习)使用从已基于 ImageNet 数据集中的数百万张照片进行训练的单独卷积神经网络 (CNN) 提取的特征计算两个图像之间的差异。上述特征提取自 CNN 的不同网络层,并且每个特征均分配了权重,权重会影响特征对最终损失值的贡献。我们发现这些权重对于最终生成图像的效果起到了决定性作用。下图展示了使用不同感知损失权重训练 GAN 的一些示例。
使用不同感知损失权重生成的蝙蝠暴龙喀迈拉
上图中的某些变化是由数据集为每种生物包含了多种纹理(例如,蝙蝠有红棕色和暗灰色变种)造成的。但忽略颜色,许多差异都与感知损失值的变化直接相关。特别是,我们发现某些值能够呈现更加鲜明的面部特征(例如,下方右图对比上方右图),或形成“平滑”与“图案化”的对比(上方右图对比下方左图),使生成的生物看起来更加真实。
下图展示了一些由使用不同感知损失权重训练的 GAN 生成的生物,简单列举了模型可以处理的输出和姿态。
使用不同模型生成的生物
使用条件 GAN 生成的喀迈拉(确切地说是蝙蝠暴龙鬣狗)。GAN 的输出内容(左图)以及经后处理/组合的卡牌(右图)
Chimera Painter
现在,艺术设计师可以在 演示版 Chimera Painter 中使用训练的 GAN,从而能够以迭代方式使用模型,而不再需要从头开始绘制数十种相似的生物。艺术设计师可以选择一个起点,然后调整生物各个部位的形状、类型或位置,从而可以快速尝试并创建大量图像。该演示版本还支持上传在外部程序(如 Photoshop)中创建的生物轮廓。只需下载其中一个预设生物轮廓以获取每种生物各个身体部位所需的颜色,将其用作在 Chimera Painter 外部绘制生物的模板,然后使用演示版本中的“Load”按钮即可使用此轮廓来完善您所创造的生物。
我们希望这些 GAN 模型和 Chimera Painter 演示工具能够帮助其他设计师在其艺术创作流程方面激发出不同的思路。将机器学习技术作为画笔可以实现哪些奇思妙想?
致谢
此项目在大量人员的协作下共同完成。 谨此感谢 Ryan Poplin、Lee Dotson、Trung Le、Monica Dinculescu、Marc Destefano、Aaron Cammarata、Maggie Oh、Richard Wu、Ji Hun Kim、Erin Hoffman-John 以及 Colin Boswell。 感谢倾情提供数小时艺术指导、技术反馈以及绘制奇幻生物的每一位参与者。
原文:Using GANs to Create Fantastical Creatures
中文:TensorFlow 公众号