如何利用机器深度学习进行FIFA换脸
随着深度神经网络在图像处理领域取得的巨大进步,我们是否可以利用它改进图形,同时减少创建它们所需的工作量?
为了弄清近期深度学习是否可以帮助我们解决这个问题,我们可以利用deepfakes算法改进FIFA玩家的面孔。这是一个深度神经网络,可以训练学习和生成极其逼真的人脸。
收集培训数据
为了收集deepfakes算法所需的数据,我只是从游戏中的即时重播选项中记录球员的脸部。现在,我们想用罗纳尔多的实际面貌取代这张脸。为此,我们下载了一大堆图像,以便图像从不同角度清晰地显示出他的脸。这就是让我们开始使用我们模型的培训过程所需要的一切。
模型架构与培训
深度算法涉及训练称为自动编码器的深度神经网络。这些网络用于无监督学习,并具有一个编码器,可将输入编码为称为“编码”的紧凑表示,以及一个可使用此编码重构原始输入的解码器。这种架构迫使网络学习输入的底层分布,而不是简单地回溯输入。对于图像作为我们的输入,我们使用卷积网作为我们的编码器,并使用去卷积网作为我们的解码器。该架构经过训练可以最大限度地减少无监督学习的重构误差。
我们同时训练两个自动编码器网络。一个网络学习从FIFA 18图形重新创建Ronaldo的脸。另一个网络学习从罗纳尔多的实际照片重新创建脸部。在deepfakes中,两个网络共享相同的编码器,但使用不同的解码器进行训练。因此,我们现在有两个网络已经知道了罗纳尔多在比赛和现实生活中的样子。
当在其他人脸上使用预先训练好的模型进行训练时,GTX 1070在4小时内总损失从大约0.06下降到0.02。
使用训练好的模型交换脸
有趣的来了。该算法能够通过采用巧妙的技巧来交换面部。第二个自动编码器网络实际上是以第一个输入为输入的。这样,共享编码器就可以从FIFA脸部获得编码,但解码器使用此编码重构真实脸部。
结果
下面的GIF显示了在其他玩家的脸上运行该算法的结果的快速预览
我们可以用这个算法把自己放在游戏中吗?
有你需要做的就是你有自己的一分钟视频,并在几个小时内下载训练有素的模型。
我觉得我们通过这种方法获得的最大优势是难以与真实世界区分的令人惊叹的逼真人脸和图形。所有这些只需要几个小时的训练就可以实现,而游戏设计师采用目前的方法需要花费数年时间。这意味着游戏发行商可以更快速地推出新游戏,而不是花费数十年的时间。这也意味着电影公司可以节省数百万美元,现在可以投入到雇佣体面的故事作者。
迄今为止的明显限制是,这些面孔是事后产生的,就像电影中的CGI一样,而游戏则需要它们实时生成。然而,一个很大的区别在于,一旦模型被训练,这种方法不需要任何人为干预来产生结果,并且唯一阻碍它的是生成输出图像所需的计算时间。