内容简介:不好意思了,一篇文章带了三个热点:朱茵、杨幂以及波多野结衣。我就说吃瓜群众平常要多关注科技新闻,一个在科技界已经诞生了一年多的“老技术”Deepfake 居然因为“明星换脸”的视频火出了圈。起因是这样的:一个热心网友运用 Deepfake 把《射雕英雄传》里黄蓉的脸由朱茵变成了杨幂,然后这个小视频就在网上火了,一些酸溜溜的评论就出来了:
不好意思了,一篇文章带了三个热点:朱茵、杨幂以及波多野结衣。
我就说吃瓜群众平常要多关注科技新闻,一个在科技界已经诞生了一年多的“老技术”Deepfake 居然因为“明星换脸”的视频火出了圈。
起因是这样的:一个热心网友运用 Deepfake 把《射雕英雄传》里黄蓉的脸由朱茵变成了杨幂,然后这个小视频就在网上火了,一些酸溜溜的评论就出来了:
呵,我们杨女士早就拿过国际影后了好吗。
言归正传,视频里换脸后人脸的轮廓、表情都一样,动起来的效果也很真实,几乎看不出破绽。高阶的换脸技术也引来了一些恐慌:“怎么实现的换脸?如果这一技术被用在其他地方,会怎么样?我会不会被别人假冒了都不知道?”
不用恐慌,因为早就发生了。
AI 换脸术诞生后,造出了无数假视频,并且还被用到了制作“不可描述”视频,各种“不可描述”视频被换上了好莱坞女星的脸,比如《神奇女侠》的女主角盖尔·加朵( Cal Gadot )的脸就被嫁接到一个成人电影女星的身上。
所以,在视频里化身波多野结衣也不是不可能?这种“想看谁演AV就看谁演AV”的技术好像还真有点危险,不过雷锋网作为一个优秀的科技媒体,已经报道了太多关于 Deepfake 的新闻,让我们回顾一下:
一、换脸术在技术上如何实现?
博客平台“medium”有位作者就描述了把尼古拉斯凯奇的脸,放在川普的头上的过程,最后效果如下↓↓↓
雷锋网发现,实现这个效果分三步:
1、收集凯奇的照片并选择要修改的视频区域。
由于只需换脸,所以第一步就是要识别图片上的脸部,找到要替换的位置,确定方向和大小。如下图,就像照片的像素一样,现在的人脸被分解为很多个像素,你要找出替换的像素区域。
2、使用方向梯度直方图(简称HOG)得到凯奇的脸部特征。
把梯度方向平均划分为多个区间,在每个单元里面对所有像素的梯度方向,在各个方向区间进行直方图统计,得到一个多维的特征向量,每相邻的单元构成一个区间,把一个区间内的特征向量联起来得到多维的特征向量,用区间对样本图像进行扫描,扫描步长为一个单元。最后将所有块的特征串联起来,就得到了人脸的特征。
3、使用特征数据,训练一个自动编码器。
自动编码器是一种神经网络学习工具(深度学习背后的计算系统)。
通过在目标图片上训练模型,以保证即使输入的是一个不同的面孔,模型也会把它转换成原来的面孔。现在可以在目标视频中识别人脸(视频只是一堆图片),然后通过训练模型将川普转换为凯奇。
最后,合并图像,大功告成。
原文: 除了一键生成明星色情片,“AI 换脸术”的应用场景还有很多
二、详解技术细节
Deepfake 的整个流程包括三步,一是提取数据,二是训练,三是转换。其中第一和第三步都需要用到数据预处理,另外第三步还用到了图片融合技术。所以我在技术上主要分三个方面来剖析:图像预处理、网络模型、图像融合。
1、图像预处理
从大图(或视频)中识别,并抠出人脸图像,原版用的是 dlib 中的人脸识别库(这个识别模块可替换),这个库不仅能定位人脸,而且还可以给出人脸的 36 个关键点坐标,根据这些坐标能计算人脸的角度,最终抠出来的人脸是摆正后的人脸。
2、网络模型
整个网络并不复杂,无非就是卷积加全连接,编码->解码,但是仔细研究后发现作者其实是匠心独运的,为什么我不急着说,我们先看看 con 和 upscale 的内部实现:
conv 是中规中矩的卷积加 relu 激活函数,upscale 中有个函数叫 PixelShuffler,这个函数很有意思,其功能是将 filter 的大小变为原来的 1/4,让后让高 h、宽 w 各变为原来的两倍,这也就是为什么前面的卷积层的 filter 要乘以 4 的原因。
经过测试对比,比如拿掉 upscale 换成步长为 2 的反卷积,或者简单 resize 为原来的两倍,实验的效果都大打折扣,结果是网络只能自编码,而得不到需要的人脸。虽然作者没有说这样设计是引用那篇论文的思想,笔者也未读到过直接讨论这个问题的论文,但是有一篇论文可以佐证:Deep Image Prior,包括 Encoder 中的全连接层都是人为打乱图像的空间依赖性,增加学习的难度,从而使网络能够更加充分地理解图像。所以 Encoder 中的全连接层和 PixelShuffler 都是必不可少的。经笔者测试,在不加 Gan 的情况下,去掉这两个要素,网络必定失败。
3、图像融合
图像融合放在技术难点分析中讨论。
三、“AI 换脸术”还能怎么用
除了被用于色情内容,这项技术其实也许还应该有更宽泛的应用场景。
比如在电影《速度与激情7》中,主演保罗·沃克在 2013 年 11 月因车祸逝世,当时电影还没有拍完,
当时外界猜测可能会有三种弥补方案,一,原剧本拍摄,找替身,使用 CGI 特效,让沃克把戏“演”完。 二,重新修改剧本,把保罗所饰演的角色写死,或者让他消失。三,重新找男一号,重头拍摄。
在当时,后两种成本都很高,修改剧本,把保罗所饰演的角色写死,缺少对死者和影迷的尊重。而如果重新拍摄,损失太惨重。
最终,制片公司找到了保罗的弟弟,让他饰演保罗的角色,然后用 CGI 动作捕捉技术,加上保罗之前拍过但没使用的素材,把弟弟的脸变成保罗的脸,观众在看电影时基本看不出来。
如果这部电影放在今天,也许可以尝试文章开头所用的技术。
其实,关于类似人工智能技术在视频制作领域的应用,以制作图形处理器而闻名的英伟达已经在尝试了,去年12月,它就发布了一款图像算法,可以改变视频中的天气或时间。
汽车明明行驶在阳光明媚的道路上,而经过 AI 的改变,视频居然呈现出了夜晚的景象。不仅汽车的尾灯清晰明亮,就连原本没有路灯的道路两旁,都出现了真实的灯光效果。
时间再往前推,在2016年,还有一项更牛气的技术,一位来自德国纽伦堡大学的教授 Justus Thies 带领团队,做了一个能实时进行面部转换的模型,叫Face2Face。
使用者选择一个目标角色,比如川普,Face2Face会将他和川普的面部特征重构并追踪,当他做出一个面部表情时,比如大张嘴,模型会重新渲染川普的脸的形状和光影,并对背景进行修改。
他们还拿普京做目标,效果看来也不错。
原文: 除了一键生成明星色情片,“AI 换脸术”的应用场景还有很多
四、DeepFake 现在怎么样了
谁被和谐都能接受,你偏偏跟我说这次是GitHub?不对不对,这也对不上号呀!为啥这么说?我们先来看看GitHub是个啥吧:
雷锋网得知,GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名GitHub。而DeepFake则是GitHub的一个开源项目代码仓库,按照正常状态来说,即使在尚未登录的情况下该库也是对外开放的。然而,就是这样一个不黄、不赌也无毒的东东在一篇来自Hacker News的帖子里被曝出——当在隐身模式下以未登录的方式访问DeepFake的GitHub 仓库时,页面的显示结果却如下图示:
没错,待审核。正如上面说的,DeepFake是一个开源的项目代码仓库,如今却被提示处在审核状态,那不就是被“和谐”了吗?好端端的DeepFake为啥会遭到这般“待遇”呢?对此,该贴吧中开发者们展开了激烈的讨论,这块编辑会在文章的后面详细讲到。那么,能肯定的是这个DeepFake开源项目还真不一般,那它究竟是干啥的呢?实际上,这里面的程序代码的确能够让人们实现“换脸”的操作。
原文:DeepFake疑遭审查,网友:此乃它“干爹”所为
五、被黑灰产应用?
这一技术的应用会引发何种问题?
阿里安全图灵实验室高级算法专家觉奥表示,除了换脸引发的道德和伦理问题,黑灰产利用 AI 换脸,是目前常见的一种攻击手段,“在人脸识别系统中,识别换脸的技术叫活体检测技术,这是一个攻防对抗技术,即用 AI 的手段来解决 AI 的攻击。”
举个例子,2017 年 11 月下旬,阿里安全图灵实验室就发现,有犯罪团伙通过 3D 软件控制人脸照片进行攻击操作,共发起过几百次攻击,导致近百名受害人驾照分被盗刷。通过 3D 合成“假脸”认证账号注册或登陆后,黑灰产人员可在受害人毫不知情的情况下,用于黑卡虚假注册、刷单、薅羊毛、诈骗等不法行为。
基于安全 AI 的方法来很好地解决这一攻击问题。“通过深度学习技术,训练模型,来通过两者的纹理、肤色、反光等特性的不同而识别出来。”觉奥表示,可实现在毫秒级时间内揪出假人脸,目前识别准确率达到99.9%。
】
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Fluent Python
Luciano Ramalho / O'Reilly Media / 2015-8-20 / USD 39.99
Learn how to write idiomatic, effective Python code by leveraging its best features. Python's simplicity quickly lets you become productive with it, but this often means you aren’t using everything th......一起来看看 《Fluent Python》 这本书的介绍吧!
Base64 编码/解码
Base64 编码/解码
正则表达式在线测试
正则表达式在线测试