全球人工智能与机器人峰会 CCF-GAIR 2019
                    您正在使用IE低版浏览器,为了您的雷锋网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
                    网络安全 正文
                    发私信给李勤
                    发送

                    0

                    AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣

                    本文作者:李勤 2019-02-28 15:58
                    ?#21152;錚?#35270;频里换脸后人脸的轮廓、表情都一样,动起来的效果也很真实,几乎看不出破绽。

                    不好意思了,一篇文章带了三个热点:朱茵、杨幂以及波多野结衣。

                    我就说吃瓜群众平常要多关注科技新闻,一个在科技界已经诞生了一年多的“老技术”Deepfake 居然因为“明星换脸”的视频火出了圈。

                    起因是这样的:一个热心网友运用 Deepfake ?#36873;?#23556;雕英雄传》里黄蓉的脸由朱茵变成了杨幂,然后这个小视频就在网上火了,一些酸溜溜的评论就出来了:

                    AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣

                    呵,我们杨女士早就拿过国?#35270;?#21518;了好吗。

                    言归正传,视频里换脸后人脸的轮廓、表情都一样,动起来的效果也很真实,几乎看不出破绽。高阶的换脸技术也引来了一些恐慌:“怎么实现的换脸?如果这一技术被用在其他地方,会怎么样?我会?#25442;?#34987;别人假冒了都不知道?”

                    AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣

                    不用恐慌,因为早就发生了。

                    AI 换脸术诞生后,造出了无数假视频,并?#19968;?#34987;用到了制作“不可描述”视频,各种“不可描述”视频?#25442;?#19978;了好莱坞女星的脸,?#28909;紜?#31070;奇女侠》的女主角盖尔·加朵( Cal Gadot )的脸就被嫁接到一个成人电影女星的身上。

                    所以,在视频里化身波多野结衣也不是不可能?这种“想看谁演AV就看谁演AV”的技术好像还真有点危险,不过雷锋网作为一个优秀的科技媒体,已经报道了太多关于 Deepfake 的新闻,让我们回顾一下:

                    一、换脸术在技术上如何实现?

                    博客?#25945;ā癿edium”有位作者就描述了把尼古拉斯凯奇的脸,放在川普的头上的过程,最后效果如下↓↓↓

                    AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣

                    雷锋网(公众号:雷锋网)发现,实现这个效果分三步:

                    1.收集凯奇的照片并选择要修改的视频区域。

                    由于只需换脸,所以第一步就是要识别?#35745;?#19978;的脸部,?#19994;?#35201;替换的位置,确定方向和大小。如下图,就像照片的像素一样,现在的人脸被分解为很多个像素,你要找出替换的像素区域。

                    AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣

                    2.使用方向梯度直方图(简称HOG)得到凯奇的脸部特征。

                    把梯度方向平均划分为多个区间,在每个单元里面?#36816;?#26377;像素的梯度方向,在各个方向区间进行直方图统计,得到一个多维的特征向量,每相邻的单元构成一个区间,把一个区间内的特征向量联起来得到多维的特征向量,用区间对样本图像进行扫描,扫描步长为一个单元。最后将所有块的特征串联起来,就得到了人脸的特征。

                    3.使用特征数据,训练一个自动编码器。

                    自动编码器是一种神经网络学习工具(深度学习背后的计算系统)。

                    AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣

                    通过在目标?#35745;?#19978;训练模型,以保证即使输入的是一个不同的面孔,模型也会把它转换成原来的面孔。现在可以在目标视频中识别人脸(视频只是一堆?#35745;?#28982;后通过训练模型将川普转换为凯奇。

                    最后,合并图像,大功告成。

                    AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣

                    原文:除了一键生成明星色情片,“AI 换脸术”的应用场景还有很多

                    二、详解技术细节

                    Deepfake 的整个流程包括三步,一是提取数据,二是训练,三是转换。其中第一和第三步都需要用到数据预处理,另外第三?#20132;?#29992;到了?#35745;?#34701;合技术。所以我在技术上主要分三个方面来剖析?#21644;?#20687;预处理、网络模型、图像融合。

                    1. 图像预处理

                    从大图(或视频)中识别,并抠出人脸图像,原版用的是 dlib 中的人脸识别库(这个识别模块可替换),这个库不仅能定位人脸,而?#19968;?#21487;以给出人脸的 36 个关键点坐标,根据这些坐标能计算人脸的角度,最终抠出来的人脸是摆正后的人脸。

                    2. 网络模型

                    Encoder: 64x64x3->8x8x512
                    x = input_
                    x = conv(128)(x)
                    x = conv(256)(x)
                    x = conv(512)(x)
                    x = conv(1024)(x)
                    x = Dense(ENCODER_DIM)(Flatten()(x))
                    x = Dense(4 * 4 * 1024)(x)
                    x = Reshape((4, 4, 1024))(x)
                    x = upscale(512)(x)

                    Decoder:8x8x512->64x64x3
                    x = input_
                    x = upscale(256)(x)
                    x = upscale(128)(x)
                    x = upscale(64)(x)
                    x = Conv2D(3, kernel_size=5, padding='same', activation='sigmoid')(x)

                    整个网络并不复杂,无非就是卷积加全连接,编码->解码,但是仔细研究后发现作者其实是匠心独运的,为什么我不急着说,我们先看看 con 和 upscale 的内部实现:

                    def conv(filters):
                       def block(x):
                           x = Conv2D(filters, kernel_size=5, strides=2, padding='same')(x)
                           x = LeakyReLU(0.1)(x)
                           return x
                       return blockdef upscale(filters):
                       def block(x):
                           x = Conv2D(filters * 4, kernel_size=3, padding='same')(x)
                           x = LeakyReLU(0.1)(x)
                           x = PixelShuffler()(x)
                           return x
                       return block

                    conv 是中规中矩的卷积加 relu 激活函数,upscale 中有个函数叫 PixelShuffler,这个函数很有意思,其功能是将 filter 的大小变为原来的 1/4,让后让高 h、宽 w 各变为原来的两倍,这也就是为什么前面的卷积层的 filter 要乘以 4 的原因。

                    经过测试对比,?#28909;?#25343;掉 upscale 换成步长为 2 的反卷积,或者简单 resize 为原来的两倍,实验的效果都大打折扣,结果是网络只能自编码,而得不到需要的人脸。虽然作者没有说这样设计是引用那篇论文的思想,笔者也未读到过直接讨论这个问题的论文,但是有一篇论文可以佐证:Deep Image Prior,包括 Encoder 中的全连?#30828;?#37117;是人为打乱图像的空间?#35272;?#24615;,增加学习的难度,从而使网络能够更加充分地理解图像。所以 Encoder 中的全连?#30828;?#21644; PixelShuffler 都是必不可少的。经笔者测试,在不加 Gan 的情况下,去掉这两个要素,网络必定失败。

                    3. 图像融合

                    图像融合放在技术难点分析中讨论。

                    原文:深度解密换脸应用 Deepfake

                    三、“AI 换脸术?#34987;?#33021;怎么用

                    除了被用于色情内容,这项技术其实也许还应该有更宽泛的应用场景。

                    ?#28909;?#22312;电影《速度与激情7?#20998;校?#20027;演保罗·沃克在 2013 年 11 月因车祸逝世,当时电影还没?#20449;?#23436;,

                    当时外界猜测可能会有三种弥补方案,一,原剧本拍摄,找替身,使用 CGI 特效,让沃克把戏?#25226;蕁?#23436;。 二,重新修改剧本,把保罗所饰演的角色写死,或者让他消失。三,重新找男一号,重?#25918;?#25668;。

                    在当时,后两种成本都很高,修改剧本,把保罗所饰演的角色写死,缺少?#36816;?#32773;和影迷的尊重。而如果重新拍摄,损失太惨重。

                    最终,?#30772;?#20844;司?#19994;?#20102;保罗的弟弟,让他饰演保罗的角色,然后用 CGI 动作捕捉技术,加上保罗之前拍过但没使用的素?#27169;?#25226;弟弟的脸变成保罗的脸,观众在看电影时基本看不出来。

                    如果这部电影放在今天,也许可以尝试文章开头所用的技术。

                    其实,关于类似人工智能技术在视频制作领域的应用,以制作图?#26410;?#29702;器而闻名的英伟达已经在尝试了,去年12月,它就发布了一款图像算法,可以改变视频中的天气或时间。

                    汽车明明行驶在阳光明媚的道路上,而经过 AI 的改变,视频居然呈现出了夜晚的景象。不仅汽车的尾灯清晰明亮,就连原本没?#26032;返频?#36947;路两旁,都出现了真实的灯光效果。

                    时间再往前推,在2016年,还有一项更牛气的技术,一位来自德国纽伦堡大学的教授 Justus Thies 带领团队,做了一个能实时进行面部转换的模型,叫Face2Face。

                    AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣

                    使用者选择一个目标角色,?#28909;?#24029;普,Face2Face会将他和川普的面部特征重构并追踪,当他做出一个面部表情时,?#28909;?#22823;张嘴,模型会重新渲染川普的脸的形状和光影,并对背景进行修改。

                    他们还拿普京做目标,效果看来也不错。

                    AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣

                    原文:除了一键生成明星色情片,“AI 换脸术”的应用场景还有很多

                    四、DeepFake 现在怎么样了

                    谁被和谐都能接受,你偏偏跟我说这次是GitHub?不对不对,这也对不上号呀!为啥这么说?我们先来看看GitHub是个啥吧:

                    雷锋网得知,GitHub是一个面向开源及私有软件项目的托管?#25945;ǎ?#22240;为只支持git作为唯一的版本库格式进行托管,故名GitHub。而DeepFake则是GitHub的一个开源项?#30475;?#30721;仓库,按照正常状态来说,即使在尚未登录的情况下?#27599;?#20063;是对外开放的。然而,就是这样一个?#25442;啤?#19981;赌也无毒的东东在一篇来自Hacker News的帖子里?#40644;?#20986;——当在隐身模式下以未登录的方式访问DeepFake的GitHub 仓库时,页面的显示结果却如下?#38469;荊?span style="text-align: center;"> AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣

                    没错,待审核。正如上面说的,DeepFake是一个开源的项?#30475;?#30721;仓库,如今却被提示处在审核状态,那不就是被“和?#22330;?#20102;吗?好端端的DeepFake为啥会遭到这般?#25353;?#36935;”呢?对此,该贴吧中开发者们展开了激烈的讨论,这块编辑会在文章的后面详细讲到。那么,能肯定的是这个DeepFake开源项目还真不一般,那它究竟是干啥的呢?实际上,这里面的程序代码的确能够让人们实现“换脸”的操作。

                    原文:DeepFake疑遭审查,网友:?#22235;?#23427;?#26696;?#29241;”所为

                    五、被黑?#20063;?#24212;用?

                    这一技术的应用会引发何种问题?

                    阿里安全图灵实验室高级算法专家觉奥表示,除了换脸引发的道德和伦理问题,黑?#20063;?#21033;用 AI 换脸,是目前常见的一种攻击手?#21361;?#22312;人脸识别系统中,识别换脸的技术叫活体检测技术,这是一个攻防对抗技术,即用 AI 的手段来解决 AI 的攻击。” 

                    举个例子,2017 年 11 月下旬,阿里安全图灵实验室就发现,有犯罪团伙通过 3D 软件控制人脸照片进行攻击操作,共发起过几百次攻击,导致近百名受害人驾照分被?#20102;ⅰ?#36890;过 3D 合成“假脸?#27604;现?#36134;号注册或登陆后,黑?#20063;?#20154;员可在受害人毫不知情的情况下,用于黑卡虚假注册、刷单、?#22534;?#27611;、诈骗等不法行为。

                    基于安全 AI 的方法来很好地解决这一攻击问题。“通过深度学习技术,训练模型,来通过两者的?#35780;懟?#32932;色、反光等特性的不同而识别出来。?#26412;?#22885;表示,可实现在毫秒级时间内揪出假人脸,目前识别准确率达到 99.9 %。

                    雷锋网版权文章,未经授权禁止转载。详情见转载须知

                    AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣
                    分享:
                    相关文章

                    文章点评:

                    表情
                    最新文章
                    请填写申请人资料
                    姓名
                    电话
                    邮箱
                    微信号
                    作品链接
                    个人简介
                    为了您的账户安全,请验证邮箱
                    您的邮箱还未验证,完成可获20积分哟!
                    请验证您的邮箱
                    立即验证
                    完善账号信息
                    您的账号已经绑定,现在您可以设置密码以方便用邮箱登录
                    立即设置 以后再说
                    捷豹时时彩分分彩网站