AiTechYun
编辑:Yining
游戏工作室花费数百万美元和数千个开发小时来设计游戏图案,试图让它们看起来尽可能接近现实。虽然在过去的几年里,游戏图案看起来非常逼真,但仍然很容易将它们与现实世界的图像区分开来。然而,随着使用深度神经网络的图像处理领域取得了巨大的进步,我们是否可以利用这些技术来改进图像?
让我们用FIFA 18这款游戏来回答这个问题。
两张C罗的动图,左图来自FIFA 18游戏,而右图由一个深度神经网络创建。
为了找出最近的深度学习的发展是否能帮助我回答这个问题,我试着用著名的deepfakes算法来提高FIFA中出现的球员的面部质量。它是一个深度神经网络,可以通过训练来学习和生成极其逼真的人脸。我在这个项目中所关注的是在游戏中重新创建球员的脸,并改进他们使他们看起来和实际的球员完全一样。
deepfakes算法:https://github.com/deepfakes/faceswap
收集训练数据
让我们先从FIFA 18中找到一个看上去最逼真的C罗的脸,看看我们能不能改进一下。为了收集deepfakes算法所需的数据。我简单地从游戏中的“即时回放(instant replay)”选项中记录球员的面部表情。现在,我们想用实际C罗的脸来代替这张脸。为此,我从谷歌上下载了一组图片,这些图片清晰地显示了他的面部表情。这就是我们所需要的,让我们从我们的模型的训练过程开始。
不像游戏开发人员,我可以简单地从谷歌搜索中收集所有需要的数据,而不需要用对C罗进行任何动作捕捉。
模型结构&训练
deepfakes算法包括训练被称为自动编码器的深度神经网络。这些网络被用于无监督学习,并且有一个编码器,它可以将输入编码成一种称为“encoding(编码)”的紧凑表示形式,而一个解码器可以使用这种编码来重建原始的输入。这种体系结构迫使网络了解输入的底层分布,而不是简单地对输入进行返回。对于作为我们输入的图像,我们使用一个卷积网络作为我们的编码器和一个解卷积的网络作为我们的解码器。该体系结构被训练来最小化无监督学习的重构误差。
在我们的例子中,我们同时训练两个自动编码器网络。一个网络学会了从FIFA 18的制图中再现C罗的面孔。另一个网络学会了从C罗的真实照片中重新创造出其面部。在deepfakes中,这两种网络都有相同的编码器,但都有不同的解码器。因此,我们现在有了两个网络,了解了C罗在游戏和现实生活中的面部有何不同。
第一个自动编码器网络从FIFA图像中学习
第二个自动编码器网络从实际图片中学习
当训练使用预训练的模型对其他面部进行训练时,在一个GTX 1070显卡中,总损失在4小时内从0.06下降到0.02。在我的例子中,我继续在原始的CageNet模型上进行训练,这个模型曾被训练来生成尼古拉斯凯奇的脸。
使用经过训练的模型来交换人脸
deepfakes算法能够采用一种巧妙的方法来交换人脸。第二个自动编码器网络实际上是由第一个自动编码器输入的。通过这种方式,共享编码器能够从FIFA中出现人脸上获得编码,但是解码器用这种编码重新构造真实的面孔。这一设置只是把FIFA中出现的C罗的脸转到了真实C罗的脸上。
第二个网络将FIFA中C罗的脸转化成实际C罗的脸
结果
下面的动图显示了在其他球员的脸上运行这个算法的结果的快速预览。
罗纳尔多、莫拉塔和厄齐尔在FIFA 18与deepfakes算法中的面部比较。
它的优势及限制
这种方法获得的最大优势是难以区分真实世界的人脸和图像。所有这些都可以通过几个小时的训练来实现,而游戏设计师们用当前的方法来完成这些工作。这意味着游戏发行商可以更快地推出新游戏,而不是花几十年的时间开发游戏。这也意味着电影公司可以节省数百万美元。
到目前为止,最明显的限制是,这些面孔是在电影中生成的,就像电影中的CGI技术一样,而游戏则要求它们实时生成。然而,一个重要的区别是,这种方法不需要任何人为的干预,一旦模型经过训练,就会产生结果,而唯一阻碍它的是生成输出图像所需的计算时间。我相信,在我们拥有轻量、不太深层的生成模型之前,它们可以在不影响输出质量的情况下运行得非常快。
结论
如果像我们这样在图形设计方面没有经验的人都能在几个小时内就能开发出更好的人脸图像,我相信,如果游戏开发者在这个方向上投入大量资金,那么在不久的将来,它可能会改变游戏产业的面貌。
领取专属 10元无门槛券
私享最新 技术干货