前一阵子,就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个小时的视频,看下来感觉和真人演的差不多。别问我为啥知道...自己去看。)
那么如果用的是你平时的照片去生成一些恶意视频
那么后果将不可设想。
所以,如果你现在还在社交网络上发照片的话!!请务必确保安全性。
对于社交平台来说,
采集照片的方式。实验是用了300张图,但是reddit上完全仿真的用了700张甚至是更多是生成模型,个人觉得是采集方式的问题,比如一个人的脸部,斜着,侧着,正着,仰着,只要采集到360度旋转各个方向的照片,再加上明暗度,应该就可以生成一个人的模型了,不过具体还在实验,实验器材比较差,实验一次=。= 花太久时间了。
reddit有人提出用GAB的这个替换现在的算法会有更高效率 https://github.com/shaoanlu/faceswap-GAN 打算尝试这个自己编写生成部分
fakeapp的合成部分的参数设置有点问题。正和fakeapp的作者沟通。
尝试直接通过摄像头去捕抓人脸用模型去替换,去绕过一些APP的认证。
所以,看到这里,你还敢在社交平台上发自拍吗?