阅读全文预计耗时5分钟
今天在网络上笔者发现一个相当有意思的应用,这款应用可以利用目前最新的TensorFlow通过训练模型来给视频“换脸”,目前这一技术在国外网络疯狂传播。
在Youtube上有一个名为derpfakes的用户上传了一系列经过这个应用处理的视频,效果极其惊艳,可以以假乱真。该用户最新的作品是一个特朗普模仿秀的换脸视频,那么这款软件能做到一个什么样的程度呢?
大概是这样的:
(左侧为原视频,右侧为加工后的视频)
你会发现在这个视频中除了人物的面部被替换,其它的部分都保持原样,而且特别精妙的是,被替换的面部简直看不出来是被替换上去的,就像是特朗普真人在这上面进行演讲一样。
在Youtube上你能找到的视频远远不止这一个,制作这些假视频的作者拥有一个社区,在reddit的页面上,我们可以看到一个视频列表,其中具有大量由这一技术生产的假视频。
国外网友的脚步并没有止于恶搞,一些有恶趣味的作者将某些成人影片进行了处理,将脸替换成了欧美知名女星并上传至全球最大的色情视频网站Pornhub。这一行为引来了Pornhub官方的反感,并遭到了禁止。
那么这项技术到底是怎么工作的呢?笔者经过一番查询找到了制作这些视频的工具 —— FakeApp。
这是一款所有人都可以免费下载的工具,基于TensorFlow,很遗憾的是这款软件你只能下载下来自己免费使用,其源代码是不公开的。
FakeApp提供一个非常傻瓜化的图形界面供你进行一系列的操作,通过这个图形界面你可以不用写一行代码就能制作出这些神奇的换脸视频。
FakeApp并没有提供使用指南,但是它拥有一个可供交流的社区,在这里面有很多技术爱好者交流这款软件的使用方法,在Youtube上derpfakes这个账号曾经上传过一个特别古老的FakeApp使用指南,其中大致讲述了这个软件的基本用法和使用原理。
只做一个换脸视频并不是一个简单、容易的过程,首先你需要收集大量用于训练的素材,分为A、B两组,对应的是换脸的两个人。你需要从各种各样的渠道收集到足够多的、清晰可见的、多角度的人脸图片作为训练集,训练集可以直接使用FakeApp生成,但是你需要准备好剪辑、调整好的视频素材。
训练集是特别特别重要的,训练集的好坏将决定你最终成片的质量。
你需要观察、比对两个视频来尽可能地让你的A、B训练集中有相似的人脸,相似体现在光照、角度等地方。如果A训练集中有B训练集无法覆盖的人脸角度,那么神经网络模型的训练结果和最终视频的质量将会大打折扣。
在准备好训练集之后FakeApp会根据已经设定好的训练模式来训练神经网络模型,需要注意的是整个训练过程都将在你的本地进行,而且想要达到较低的Loss可能会特别漫长,这意味着如果你想要自己制作换脸视频需要先准备一台性能比较优秀的电脑。
整个训练的过程是可以预览的,通过这一预览我们可以查看到训练的质量。
比较遗憾的是由于训练模型的源代码是不公开的,我们没有办法自行调校神经网络的各种参数来进一步降低Loss或者加速训练过程、减少资源占用,所以一切只能按照FakeApps的步骤进行。
当Loss降低到一定程度之后模型会被保存,之后我们可以在App中的Create选项卡中通过这个模型来创建换脸视频,需要注意的是并不是说我们训练好这个模型之后所有有A的视频我们都能将其换脸成B,由于视频脸的角度、光照等各种各样的关系,有的时候效果不一定会好。
如果你对这个工具感兴趣可以前往fakeapp.org查看这款工具的相关信息,在这个网站上你也可以找到工具的下载地址,但是需要注意的是你可能需要通过科学上网来获取这款工具。
目前笔者尚未测试这款工具,如果效果不错,笔者可能会在日后的文章中给大家分享,并更深入地说一些这款工具的一些技术细节。
领取专属 10元无门槛券
私享最新 技术干货