社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

如何让C罗在FIFA中的人脸更逼真?这个深度学习算法或将改变整个游戏产业!

人工智能头条 • 8 年前 • 475 次点击  


翻译 | AI 科技大本营(公众号ID:rgznai100)

参与 | 张建军

编辑 | Leo


AI 科技大本营按】:很多喜欢踢足球的朋友都爱玩 FIFA 系列游戏,尽管游戏中的人物面部特征已经十分逼真,但我们依然能够区分出这不是一张真的人脸。本文作者通过 Deepfakes 算法来实现游戏人脸从逼真到真实的跨越,也许,这个技术将改变游戏开发产业!


C 罗脸部图像对比,左边是 FIFA 18 中的图像,右边图像是由一个深度神经网络生成的


游戏工作室花费了数百万美元和数千小时来设计游戏图像,尽可能地让它们看起来和真实的一样。虽然在近几年计算机图像已经看上去十分逼真了,但是我们依然非常简单就可以把它们和现实世界区分开来。然而,随着深度神经网络在图像处理领域取得的长足进步,现在是否已经到了这样的时间点,我们可以利用深度神经网络来提升图像的表现,同时也可以减少创建计算机图像的劳动量?


让我们尝试用游戏 FIFA 18 来回答上面的问题


足球是我最喜欢的运动,因此 FIFA 自然成为了我所有的深度学习实验的首选。为了知道深度学习最近的发展是否可以帮助我回答我上面提出的问题,我尝试着利用 deepfakes 算法来提升在 FIFA 中的运动员的人脸图像表现


deepfakes 是一个深度神经网络,可以被训练来学习并生成极端逼真的人类脸部图像。我这个项目的目的是在游戏中重建运动员的脸部,并提升人脸图像的表现,让它们看上去就像真实的运动员一样。


注:这里有一个视频很好地解释了 deepfakes 算法的原理。deepfakes 利用自编码器和卷积神经网络,可以把视频中任何一个人的脸换成另外一个人的脸。(https://www.youtube.com/watch?v=7XchCsYtYMQ)


收集训练数据


和游戏开发商不同,我可以从谷歌搜索到所有需要的数

据,而不需要麻烦 C 罗穿戴用于动作捕捉的奇装异服


我们先从 FIFA 18 中设计得最好的一张脸开始,例如 C 罗(Cristiano Ronaldo)的脸,看看我们是否能够提升这张脸部图像的表现。为了收集用于训练 deepfakes 算法的数据,我简单地利用了游戏中提供的即时回放功能来记录运动员的脸部图像。现在,我们打算把这张游戏中的脸用真正的 C 罗的脸来替换掉。因此,我从谷歌下载了一大堆图像,这些图像从不同的角度清晰地展示了他的脸。这就是我们需要的所有数据,有了这些就可以开始训练我们的模型了。


模型结构和训练


Deepfakes 算法涉及到训练自编码器,这是一种深度神经网络。这些网络是用于无监督学习的,其中每一个网络包含了一个编码器,它可以把输入转换成一种紧凑的表示形式,这个过程叫作“编码”;解码器可以利用这个编码信息来重构原始的输入。这种结构强迫网络去学习输入的潜在分布,而不是简单地模仿和记忆输入。对于图像输入,我们利用一个卷积网络作为编码器,以及一个去卷积网络(deconvolutional net)作为解码器。这个结构的训练目的是最小化无监督学习的重构误差。


对于我们的例子,我们同时训练两个自编码器神经网络。一个网络学习如何从FIFA 18的图像中重构 C 罗的脸。另一个网络学习如何从 C 罗的真实图片中重构他的脸。


在deepfakes 中,两个网络共享相同的编码器,但是各自训练不同的解码器。因此,现在我们手上获得了两个网络,它们分别学习了 C 罗在游戏中和在现实生活中是长什么样子的。


从FIFA图像进行学习的第一个自编码器


从真实图片进行学习的第二个自编码器


当利用一个在其它脸部图像上预训练过的模型进行训练时,总体损失值在四小时内从大约 0.06 一直下降到 0.02,训练是在一台配有 GTX 1070 显卡的机器上完成的。在我的例子中,我是在一个 CageNet 模型的基础上继续训练的,这个 CageNet 模型的目的是通过训练来生成尼古拉斯·凯奇(Nicolas Cage)的脸。


利用训练好的模型来切换人脸


现在来到有趣的部分啦。算法通过一个聪明的小技巧来达到切换人脸的目的:第二个自编码器网络实际上使用了第一个网络的输入作为自己的输入。


通过这种方法,共享的编码器可以从 FIFA 里的人脸中提取编码信息,然后解码器可以利用这个编码信息来重构真实的人脸图像。看!这个操作把FIFA中的人脸转换成了 C 罗的真实人脸!


第二个网络把FIFA人脸转换成 C 罗的真实人脸


结果


FIFA 18 人脸与 deepfakes 生成的

 C 罗、莫拉塔和厄齐尔的人脸对比


在上面这张 GIF 图中,大家可以很明显地看到利用这个算法前后游戏人物的面部图像对比。图像表现效果的提升是令人惊讶的,但是也可能是我王婆卖瓜,所以大家自己在心中评判吧。


更多视频格式的结果可以从我的YouTube频道上找到,其中包括下面内嵌的视频。如果你喜欢这个视频,请订阅我的频道.


作者的YouTube频道:

https://www.youtube.com/watch?time_continue=82&v=_CW9JVre_t8




我们可以利用这个算法把我们自己的脸放进游戏里吗?


我和亚历克斯·亨特。为了把人物完全替换成我自己,

只需要匹配一下头发和肤色,再把我的二头肌变大就行了。


如果玩游戏的时候,游戏的人物形象是你自己,而不是亚历克斯·亨特(Alex Hunter)的话,你会觉得怎么样?如果你想达到这样的效果,需要做的就是上传自己的一分钟视频,然后花几个小时来下载训练好的模型。这样就好啦,你现在可以作为你自己全程享受剧情模式了。这可能是沉浸式游戏的下一阶段!


算法出色之处与可改善的地方


我认为这个算法最大的好处在于,我们可以得到逼真的人脸图像,逼真到与现实世界难以区分。而这一切只需要几个小时的训练就可以完成,但目前游戏开发商所用的方法则需要花费好几年。


一旦使用这种算法,那么游戏开发商就可以更加快地推出新作,再也不需要花费数十年的时间在开发游戏上面了。这也意味着游戏工作室可以省下数百万美元,这笔钱可以花在如何更好地编写游戏剧情上。


目前算法最大的不足在于这些人脸是离线生成的,像电影的计算机图像界面(Computer Graphics Interface, CGI)一样,而游戏要求这些人脸能够实时生成。然而,该算法和现有的人工方法的一个很大的区别在于,一旦模型被训练完成,该算法不需要任何的人类手段介入就能生成结果,而拖住该算法后腿的唯一一个因素就是生成输出图像所需的计算时间过长。


我相信,离我们获得轻量级、不太深的、既能跑得非常快又不需要牺牲输出质量的生成网络的日子并不会太远,正如我们现在已经有了可以用于实时物体检测的 YOLO 和 SSD MobileNets,而对于这个任务如果我们利用以前的模型,例如 RCNN,是不可能做到的。


结论


我在图像设计方面完全是小白,但如果连我都能在几个小时之内得到表现效果获得提升的人脸图像,那么我真心相信,如果游戏开发商可以往这个方向深入钻研的话,那么在不久的将来一定可以深刻改变游戏产业的面貌(没错,这就是我的目的)。现在我只希望有来自 EA sports 的员工能看到这篇博客……



作者 | Chintan Trivedi

原文链接

https://towardsdatascience.com/using-deep-learning-to-improve-fifa-18-graphics-529ec44ea37e




扫描二维码,关注「人工智能头条」

回复“技术路线图”获取 AI 技术人才成长路线图

☟☟☟点击 | 阅读原文 | 查看更多精彩内容


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/TnpTv2TPIO
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/8928