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

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

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

呵,我们杨女士早就拿过国际影后了好吗。

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

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

AI 换脸术诞生后,造出了无数假视频,并且还被用到了制作“不可描述”视频,各种“不可描述”视频被换上了好莱坞女星的脸,比如《神奇女侠》的女主角盖尔·加朵( Cal Gadot )的脸就被嫁接到一个成人电影女星的身上。

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

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

博客平台“medium”有位作者就描述了把尼古拉斯凯奇的脸,放在川普的头上的过程,最后效果如下↓↓↓

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

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

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

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

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

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

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

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

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

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

二、详解技术细节

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

1. 图像预处理

从大图(或视频)中识别,并抠出人脸图像,原版用的是 dlib 中的人脸识别库(这个识别模块可替换),这个库不仅能定位人脸,而且还可以给出人脸的 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 的原因。

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

3. 图像融合

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

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

三、“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 %。

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

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

  1. 从小部件的调整入手,AI 让你秒变时尚达人

    在过去十年中,机器学习在很多领域都取得了前所未有的进展,如图像识别,自动驾驶汽车.和玩复杂游戏如「GO」等.这些成就在很大程度上都是通过采用监督学习和强化学习两种范式中的一种来训练深度神经网络得以实现 ...

  2. 可怕,朱茵变杨幂,流量一个亿丨AI变脸指南

    在<射雕英雄传>里演过黄蓉的,除了朱茵.翁美玲.周迅.林依晨,竟然还有杨幂? 不信看图: 这--造型怎么看着像94版<射雕>里朱茵演的黄蓉呢?连画风都是90年代的感觉. 原来, ...

  3. 贼有趣:朱茵变杨幂,人工智能换脸让明星不再担心自己演技?

    贼有趣:朱茵变杨幂,人工智能换脸让明星不再担心自己演技? 虽然遭到全网封禁,但人工智能深度换脸技术--deepfakes并没有淡出人们的视野.近日,这项技术还伸向了国内电视剧,这次"中招&q ...

  4. 杜克大学提出 AI 算法,拯救渣画质马赛克秒变高清

    来源:HyperAI超神经 本文约1900字,建议阅读7+分钟 高清无码不是梦. 场景描述:将"马赛克"像素级别的大头照转换成高清照片,是一种怎样的体验?杜克大学提出的 AI 算法 ...

  5. 神秘AI换脸软件入侵全球社交网络!马斯克秒变文艺复兴贵族

    来自:新智元 FaceApp的热度刚过不久,近期又有一款让你的脸秒变「迪士尼」的App火遍了全球的社交网络. 要测试「AI换脸」的效果,怎么能少了我们的老朋友LeCun. 实测效果还不错,确实有一丝丝 ...

  6. 百年古董电影秒变4K高清、60FPS,AI插值,还能着色

    点击我爱计算机视觉标星,更快获取CVML新技术 十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI 古董级电影秒变4K高清,还能黑白变彩色. 由于技术原因,最早的影像资料都是较为模糊且卡顿的, ...

  7. #今日论文推荐# 文字秒变3D?苹果发布最新AI生成模型GAUDI,根据文字提示创建3D场景

    #今日论文推荐# 文字秒变3D?苹果发布最新AI生成模型GAUDI,根据文字提示创建3D场景 继 AI 将文字变成图片后,又有 AI 可以将文字变成 3D 场景了. 苹果发布新 AI 系统 GAUDI ...

  8. 拯救渣画质,马赛克图秒变高清,杜克大学提出AI新算法

    作者 | 神经小兮 来源 | HyperAI超神经(ID: HyperAI) 导语:将「马赛克」像素级别的大头照转换成高清照片,是一种怎样的体验?杜克大学提出的 AI 算法,不仅可以「去掉马赛克」,还 ...

  9. 不同分辨率图片匹配_杜克大学开源 AI 算法,让马赛克图片秒变高清!

    公众号关注 "GitHubDaily" 设为 "星标",每天带你逛 GitHub! 大家好,我是小 G.在这个追求高清画质的时代,我们对渣画质的容忍度越来越低. ...

  10. 新AI算法拯救渣画质马赛克秒变高清

    简介:在这个追求高清画质的时代,我们对渣画质的容忍度越来越低.在知乎上搜索「低分辨率」.「渣画质」,会看到一大片诸如「如何补救清晰度低的照片」.「如何拯救渣画质」之类的问题.那么,将渣到马赛克级别的画 ...

最新文章

  1. php程序耗时是负数,php 代码测试,代码越在前面越耗时
  2. Swift学习--常量.变量.数据类型的使用(一)
  3. R语言:文本(字符串)处理与正则表达式
  4. python中soup_python – 使用带有UTF-8的soup.get_text()
  5. centos7 mysql启动后端口_centos7 修改mysql5.7默认端口后启动异常
  6. html5标签属性大全_HTML5中video标签如何使用
  7. oracle 表更新表,Oracle 更新表(另一张表)
  8. java.policy无法修改_如何配置Policy文件进行Java安全策略的设置
  9. asp微信会员卡管理系统,超小的源码_带asp微信支付源码
  10. Redis面试 - redis 的并发竞争问题是什么?
  11. 《ArcGIS Runtime SDK for .NET开发笔记》--三维功能
  12. mysql新增表字段回滚_MySql学习笔记四
  13. Jmail 发送邮件错误
  14. Chrome渲染Transition时页面闪动Bug
  15. iptables和SELinux漫谈
  16. 自己写的一个简单的php快速开发框架(JPrass)
  17. mysql中的on的执行顺序_MySQL -- join , on , where 的执行顺序
  18. springboot全局异常处理_SpringMVC全局异常处理
  19. Mac M1安装配置OpenCV教程
  20. C语言实现EPSG:4326和EPSG:3857的互转

热门文章

  1. 大富豪5.3全网首发,真正的5.3正版破解授权,不是高防端
  2. Xposed小白入门,动态修改IMEI实例代码
  3. 华为云为基因检测保驾护航,助力健康行业发展
  4. HNOI2004 宠物收养所
  5. 组合数学 排列 容斥 卡特兰数
  6. 杂记:Atmel sama5d3 DMA Controller (DMAC)
  7. 2020 Apple Developer 苹果开发者证书配置
  8. matlab中zi filtic b a,实验七离散系统分析的matlab实现.doc_蚂蚁文库
  9. 项目管理学习 ---- 理解项目管理思维框架
  10. Odoo owl 学习笔记之14—错误处理erro_handing