2月25日,一段通过AI技能把朱茵扮演角色的脸更换成杨幂的视频在网络流传,有网友表示毫无违和感,但也有网友提出可能陵犯肖像权,这项技能还可能被用来制作明星黄色视频。该视频制作者肖师长西席称:“制作视频紧张用于技能互换,并无营利行为。”
回看\公众视频换脸\"大众事实上并没不是什么大噱头:早在2016年,大家就见过利用 DCGAN 来\公众装修\"大众房屋,随后各种 GAN 如雨后春笋:换脸的、换物种的,造人头等等脑洞大开的玩法层出不穷,时时时就刷一下存在感。但是 GAN 难以演习、效果不稳定、参数难调等等问题一贯没有被完备战胜,导致其在科研界虽然饱受追捧,实际工业运用的例子却不多。而在2017年末,却有款名为DeepFakes的程序以其精良的换脸效果、及大幅降落的演习本钱,蹿红全体互联网,并引发了长达数年的关于伦理的大谈论。
以是,这里我们首先抱着吃瓜的心态回顾一下这起黑天鹅事宜。
GAN \"大众装修\"大众房间
DeepFakes 事宜回顾
事宜起源于2017年12月,一个网名为 deepfakes 的程序员将一个\公众名人A.V\"大众上传到 Reddit:该AV视频女主角竟是神奇女侠主演Gal Gadot。当然这并不是 Gal Gadot 下海,而是它利用 AI 技能将 Gal Gadot 的脸更换到某个成人视频制作而成,不过该视频真实程度令人惊异。
神奇女侠扮演者 Gal Gadot 的虚假A.V
神奇女侠扮演者 Gal Gadot
接下来,随着一些媒体对 deepfakes 制作换脸视频的宣布,越来越多人涌入 Reddit 来不雅观摩,而 deepfakes 也乐此不疲地连续制作新视频供大家娱乐。个中一个名为 deepfakeapp 的用户乃至制作了一个视频换脸运用 FakeApp,帮助不会编程的同学制作自己的换脸视频,于是 Reddit 竟呈现出越来越多高质量作品。
神奇女侠扮演者 Gal Gadot 的虚假A.V 2
漫威黑寡妇扮演者Scarlett Johansson 的虚假A.V
漫威黑寡妇扮演者 Scarlett Johansson
哈利波特赫敏扮演者 Emma Watson 的虚假A.V
哈利波特赫敏扮演者 Emma Watson
随着视频制作门槛降落,毫无意外的,制作和不雅观摩\公众名人A.V\公众的人在2018年1月开始爆发式增长,并引起了主流媒体和 Reddit 的把稳。
deepfakes 关键词的 Google Trends
这种未经当事人赞许,将其肖像用于成人视频的做法是严重违背伦理的,大量的责怪声随之而来。终于,Reddit 在2018年2月7日对 deepfakes、FakeApp 等几个干系板块禁止访问,如 deepfakes板块。在巨大的舆论压力下,。随着全网抵制,deepfakes 的热度骤降,但是引发的关于假造A.V的谈论持续了险些一整年。
deepfakes 被禁止访问的页面
在我撰写此文时, Hacker News 中刚好有同学爆料出:以未登录的办法访问 deepfakes 的 GitHub 仓库将被限定访问。但 GitHub 一贯以来的规则都是:无论用户是否处于登录状态,只假如公开的仓库,任何人都可以进行访问并下载源码。deepfakes 自然一贯都是一个公开仓库,而非私有仓库。
被限定访问的 deepfakes Github 页面
对了,我在回顾 deepfakes 事宜的过程中也有个有趣的创造:对这个技能最热衷的地区居然并不是中海内地,而是韩国,让我小小惊异了一下。。。
deepfakes 热力争
模型构造
事实上,原始的 deepfakes 不论是流程,还是模型都非常符合直觉,逻辑上并不怎么繁芜。相信通过下面的大略先容,你会更理解上面这句话。
这里先一句话先容视频换脸的整体流程:对视频换脸,实在便是对每一帧的人物图像进行面部更换,再将转换后的图像与背景音效进行合成即可。这个流程非常符合直觉,以是实质任务便是对一张图像中的人物进行面部更换。
然后再大略先容下图像面部更换的整体流程:找出图像中的人脸区域,天生须要转换的人脸,将转换后的人脸贴到原图上(是不是想起了那个\"大众怎么把大象关进冰箱\"大众的问题?)。当然思路大略并不表示这些步骤没有技能含量。个中第一步人脸检测已经是非常成熟的技能,有不少开源工具能够实现,如:dlib、MTCNN 。而末了一步人脸合成也很主要,紧张影响的是更换后的真实程度,这块在后文会有所表示。此文我们紧张关注的是人脸转换的过程,因此我们仅先容 deepfakes 中的人脸转换模型。
在\公众\"大众我们先容过 AutoEncoder,个中有提到利用 AutoEncoder 对图像进行压缩,这实在便是现在盛行的 embedding 运用的雏形。在这里,用到的也正是 AutoEncoder 的技能。与\"大众当我们在评论辩论 Deep Learning:AutoEncoder 及其干系模型\"大众中一样,我们利用 encoder 来提取 Input 图像的紧张特色,并用 decoder 试图恢复原始 Input 图像,即
当我们用大量人物 A 的脸部图像去演习时,实质便是在对 A 的脸部提取紧张信息,且这些信息足以规复出原始脸部图像。这个博客的示意图可以说很形象了。
接下来的想法非常故意思:我们对两个人A、B的脸部图像分别学习上述 AutoEncoder 网络,两个网络共享 encoder,但分别拥有自己的 decoder。也便是说,encoder 同时能对A、B的脸部特色进行抽取(这点代表抽取出来的A、B隐特色类型是同等的),再通过不同的 decoder 分别将抽取的信息规复成人脸。
末了是模型的核心:由于对 A、B 人脸抽取出的隐特色类型同等(比如器官位置、表情信息等),以是当我们将抽取的A、B 的隐特色放到对方的 decoder 时,毫无疑问规复出来的该当仍旧是人脸。但由于将 A 的脸部隐特色传入了 B 的 decoder 网络,因此还原出来了 B 的样貌,但却拥有 A 的表情,如下图。
仅通过上述 embemdding 办法规复的人脸可能边缘会很多噪音,且在贴合回原图脸部时可能有明显的边缘。所往后来也有一种大略的改进:即在学习人脸的同时,也学习脸部边界 mask 信息,用于更好地将新的脸部贴合回旧的图片上。公式如下,事理比较大略,这里就不再详细阐明了。
效果展示
这里我们用李兰迪的头像来做试验(《你好,旧光阴》的里形象还是非常可爱的),原始视频则是主播阿冷弹唱《十年》的视频,目标是用李兰迪的头像更换阿冷视频中的头像。下面是人脸图像重修与转换的结果:第一列为李兰迪的表情,第二列是网络重修的李兰迪人脸;第三列为阿冷的头像,第四列为网络重修的阿冷头像,第五列是头像换换结果(即李兰迪的 decoder 接在阿冷 encoder 的后面)。可以看出,对脸部部分的重修与转换效果都会很不错。
人脸重修与转换效果
详细的视频转换结果如下,比较可惜的是虽然上面人脸转换效果很好,但是由于贴合到原图的逻辑还不非常完善,在脸部存在一些阴影影响终极效果,这里姑且当个示例展示出来。
原始视频:主播阿冷弹唱
转换视频:主播\"大众李兰迪\"大众弹唱
总结
本文纯粹是出于对 deepfakes 事宜的八卦心态而作,不过依然可以看出其令人惊异的效果:如上文所展示,未精调的demo效果已经能达到比较符合预期的效果,如果花点心思网络演习数据并对结果精修,毫无疑问普通人是根本无法分辨视频真伪的——以是说社会上对这项技能的忧虑还是有缘故原由的。
在八卦过程中,我也看到不少同学考试测验对 deepfakes 的模型进行优化与改机,比如faceswap-GAN、DeepFaceLab等,有兴趣的同学可以持续跟进。
尾巴
按照原始 deepfakes 发帖者的说法,他本身便是个工程师而非研究员,绝大部分事情都是利用的开源工具实现。这再一次印证了在 AI 运用这方面,或许我们最缺少的实在是想象力,而非仅仅模型连连看、或参数炼丹的能力。