永劫无间——肌肉金轮,AI如何帮助玩家捏脸?

从游戏AI到DLSS,深度学习技术早已渗入游戏开发行业,除了让画面更精致外,在游戏中,许多玩家并非韩国一级整形师,所以就借助AI的力量,将输入的人脸照片,自动创建成游戏角色,笔者Follow这项工作也有三年了,讲讲永劫无间背后AI捏脸的发展。


AI捏脸

最早这项技术研究,始于2017年9月,由Harry Shum担任顾问,这位中文名业界几乎人人都知道——沈向洋,微软原全球执行副总裁,美国国家工程院外籍院士和英国皇家工程院外籍院士,继陆奇、张亚勤等人后离开微软归国。

实验室主要研究如何“连接”人工智能和电子游戏,注重使用前沿技术重塑玩家的“视听体验”,同时,游戏也能反馈科研,游戏平台将提供海量数据和虚拟环境,从而推动人工智能前沿研究的发展,力图在工程和科研上两开花。

目前实验室已经在CVPR、ICCV、ICML、AAAI、NIPS等各大顶会上发表超过50篇论文,其中关联AI捏脸的就有数篇,而且论文结果直接落地应用在,24 entertainment工作室、网易发行的游戏《永劫无间》上,当然,这也不是网易第一次使用这项技术,但是从学术成果来看,AI捏脸正在逐渐成为一个子课题。


Character Auto Creation(AI自动捏脸)

在18年以前,Game Character的研究主要集中在虚拟方向(Virtual Characters),以现在的技术再回顾这些老古董论文,可以用很多新的方法来实现这些目标,在19年收录在ICCV的论文,开启了AI捏脸新时代的研究,也是永劫无间这条技术线上的“始祖”。

当时这篇论文标题为《Face-to-Parameter Translation for Game Character Auto-Creation》,非常直白好懂,游戏角色自动生成:从脸(Face)转换到参数(Parameter),也就是说基于面部相似性度量和参数搜索,通过大量的人脸数据,来解决人脸-参数的优化问题。


永劫无间AI捏脸

这个过程可以理解为一个画家,需要根据真实照片,“画”出对应游戏模型参数的脸,作为衡量画作优劣的标准很简单——人脸相似度(facial similarity measurement),听过深度学习的读者应该了解过一个词损失函数(loss function),简单理解为评估预测值和真实值的差异程度(当然是越小越好)。

那么如何选取合适的人脸相似度的损失函数,以及如何“降低”损失函数,成为了问题的关键点,这篇收录在ICCV19的论文给出了两个合适的Func,一个是判别损失(discriminative loss),一个是脸部损失(facial content loss)。

看到discriminative,如果你是做AI的研究生或者PHD,应该立马想到生成对抗网络(generative neural network),如果你从没听说过,也不妨碍理解后文,生成对抗网络中文上“对抗”二字是关键,通俗来说,一般都是同一组两个人进行对抗,GAN某种程度上也是这个意思,我们直接用永劫无间的技术举例。


GAN

现在我们有一张天仙姐姐刘亦菲的照片(感兴趣可以看笔者前几天发的天龙八部的文章),这张照片进入永劫无间系统算法后,先对数据进行处理,这个处理的操作叫Face alignment,翻译成中文大概叫人脸对齐系统,在CV领域,这项研究是定位到人脸的一些关键位置.

记得FM20的捏脸大致就是Face Alignment关键点直接套用到游戏模型上,但是效果比较一般。人脸对齐后天仙姐姐的这张Aligned face,当作判别的标准参与到后面特征提取和判别的过程。在我们的游戏算法中,其实是不知道图片为何物。

AI捏脸,反馈到永劫无间客户端的是我们在捏脸时的各项参数,然后前端再把这些参数适应到系统中,得到我们看到的捏脸图像,也就是说,这是个Parameter-to-Face的过程,而在我们算法的学习过程中,是一个Face-to-Parameter的过程。


Parameter-Image

这篇论文的作者们很有趣,给生成器取了个名字叫“Imitator”,模拟器,也就是说,我在预设值好后永劫无间的Facial parameter后,Imitator G(x) 会尽量根据游戏模型的参数,来模仿刘亦菲这张脸,生成一张图片,同时永劫无间游戏Engine也根据参数得到一张图片。

换句话说,我们的模拟器G(x),先来干一件事——学习永劫无间的Game Engine生成图片,这样我们的Face-to-Parameter就可以理解为Parameter-Game Engine-Face,在Imitator阶段,我们有两张图片,一张是永劫无间游戏Engine根据参数得到的图片,一张是Imitator G(x) 生成的图片。

有了这两张图片,我们的第一个损失函数:loss function for training the imitator诞生了,

简单来说,这部分是帮助我们的Imitator来适应游戏引擎的Input-Output映射关系,永劫无间最初的系统采取的是DCGAN类似的8个卷积层结构:


Image-Parameter

通过上面的Imitator,我们得到了很好用的 G(x) 来模拟永劫无间的游戏引擎,接下来的工作是,如何将刘亦菲Alignment之后的图片,和我们的 G(x) 生成的图片联系起来,只要G(x)和刘亦菲有联系,那么永劫无间的游戏也将和刘亦菲产生联系。

接下来,就轮到我们之前讲的人脸相似度(facial similarity measurement)出场,由于输入的人脸照片和渲染的游戏角色分属不同的Domain(这个词以后有机会再聊,会挖的很深),所以为了有效Measure人脸相似度,设计了两个损失函数(这里L1和L2涉及的基础问题大概有10篇本文篇幅的文章讲解,大家理解什么是损失函数即可)。

有了L1和L2就好办,实验室采取了一个非常基本的Linear combination,得到Ls损失函数,接下来,永劫无间AI捏脸的下半部分——Tranlator的部分就出来了,后半部分其实可以理解为Discriminator判别的过程,不断拿第一部分G(x)生成的图片与刘亦菲本人Alignment后的图片进行判别,不断通过GD来min Ls。


综上,方法完整优化过程简要理解为:

  • 第一阶段:训练Imitator G(x),来学习永劫无间捏脸的Game Engine;
  • 第二阶段:固定G(x)、F1和F2(图片经过Feature后的数据),然后不断更新面部参数x,以期得到和刘亦菲本人最接近的图片。


总结

准确来说,这篇论文真的算很简单的那一类,比较偏工程向,科研上的难点并不多,值得推广到更多的游戏,当然,研究者也在20年、21年提出了永劫无间的更新方法,不过都是这篇文章的基础之上,期待未来能有更多的厂商一起来研究这项技术,让效果变得越来越好!


机器学习基础:

机器学习入门——数学基础(积分篇

机器学习入门——数学基础(代数篇

机器学习入门——数学基础(贝叶斯篇

游戏&AI系列:

巫师三——AI如何帮助老游戏画质重获新生

AI女装换脸——FaceAPP应用和原理

AI捏脸技术——你想在游戏中捏谁的脸?

Epic虚幻引擎——“元人类生成器”游戏开发(附教程)

脑机接口——特斯拉、米哈游的“魔幻未来技术”

白话科普——Bitcoin到底是如何诞生的?

论文相关:

毕业季杂谈——如何随时免费使用中国知网?

毕业季杂谈——论文降重的“奇技淫巧”

毕业论文——Latex论文排版语言介绍

#gd的AI&游戏杂谈# #神来之作Ⅵ期#

#永劫无间# #永劫无间捏脸分享# 

游戏

盘点游戏中那些让人感动至深的瞬间

2021-8-19 0:07:02

游戏

黎明游讯|国产独立游戏厂商发布联合声明:支持正版|COD18将是美国最畅销游戏

2021-8-19 0:07:10

搜索