前言

前一阵子,就17年12月的时候,reddit上有一个用户用深度学习把神奇女侠的脸嫁接在了小电影上。当时引起了轰动,因为效果十分真实,令人震惊!

过了1个月不到,有人整合了所有工具,整出来了一个叫FakeApp,现在已经到了2.1.0的版本。

由于好奇原理,于是前往reddit一探究竟。

原理

首先先去观摩了一下reddit上的deepfakes的板块 传送门。 已经换上了明星的大量NSFW视频已经被人上传。
排在第一位的是deepfakeapp的post。也是fakeapp的介绍帖

简单看了一遍他的实现过程。原理十分简单。

假设我们要用B头像去替换A的

原理理解后,下面我们来开始做一下实验

准备工作

我们实验的目的是用川普去替换尼古拉斯凯奇的脸。

对=。= 就是那么简单,几百张图片就可以生成模型。但是这里有几个要素。下面再说。

实验步骤

文件路径

获取图片文件

这里fakeapp可以帮你把视频文件分解成一张张图片给你去截取头像。也就是说可以通过两个人的视频直接截取头像来进行生成,这样效果最好,因为训练和输出的数据集是一样的 。
但是因为我们替换的是名人,我们选择一种更为通用的办法,就是把两个人多角度的直接进行训练。

训练模型

经过漫长的等待之后(我的环境是12个多小时)。Loss到了0.03左右,依次变化的情况,

刚开始,非常模糊只有轮廓

面部特征慢慢凸显,但是没看到明显的转变

面部特征非常明显,出现了完美换脸的情况

经过了12个小时的训练 lost到了0.3。大部分的脸都已经比较完美的替换了。

这里我们按下Q,停止训练。

生成视频

这里的视频是随便下载的一个尼古拉斯的视频,为了实验直接剪辑了10秒左右。

生成结果

从开始到现在花了12个多小时的时间,效果如下

原视频

5个小时的结果

12个小时的结果

川普的面部特征基本替换成功。但是两人的毛发相差过大,看起来替换的痕迹还是很明显。

危害

只是随意300张图+12个小时就可以替换生成比较形似的视频,如果使用稍微高级一点的设备,花更长的时间训练模型,则人物的换脸程度更加逼真。(reddit上有一部生成了2个小时的视频,看下来感觉和真人演的差不多。别问我为啥知道...自己去看。)

那么如果用的是你平时的照片去生成一些恶意视频

那么后果将不可设想。
所以,如果你现在还在社交网络上发照片的话!!请务必确保安全性。

对于社交平台来说,

后续的研究

最后

所以,看到这里,你还敢在社交平台上发自拍吗?

源链接

Hacking more

...