前些日子,Deepfake技术现身印度选举,被候选人用在了竞选拉票的宣传材料上。虽然此候选人以惨败而收场,但这意味着Deepfake点燃的AI换脸之火有逐渐升温的迹象。

虽然愈演愈烈,但是反Deepfake的相关技术一直相对缺乏。近日,微软亚洲研究院提出了一种检测换脸图像的方法 Face X-Ray。

(雷锋网)

此项技术发表在论文《Face X-Ray for More General Face Forgery Detection》中,据研究人员在相应的论文中指出,此类工具有助于防止换脸图像被滥用。

这项技术与现有方法不同,它能够准确检测“未知”图像,即不论什么算法合成的,在不进行针对性的训练的情况下也可以进行检测。

生成训练样本概述

更为具体的是它会生成灰度图像,显示给定的输入图像是否可以分解为来自不同来源的两个图像的混合。毕竟,大多数操作换脸的方法,都是将生成的图片和已有的图片结合。

这也就是说Face X-Ray不光能判断是否是合成图片,还能指出哪个地方是合成的,即兼备识别+解释两种功能。

(雷锋网)如上,下面一张图显然是合成的。

算法的核心思想是识别每一幅图像的独特标记。这些标记产生的原因很多,可能来自算法等软件因素,也有可能来自传感器等硬件因素。

此算法与市面上一些二分类换脸检测相比,Face X-Ray更能有效地识别出未被发现的换脸图像,并能可靠地预测混合区域。

(雷锋网)与二分类检测器实验对比结果

但是论文中也指出,这个方法依赖于一个混合步骤,因此可能不适用于完全合成图像,可能被对抗性样本骗过。

一、相关工作

假脸技术日新月异,很多算法能够合成图片,而且合成的图片越来越逼真,这意味着伪造的图片可能被乱用,所以研究换脸检测技术非常重要。

此类的检测技术,学界已有研究,不过大多都是“二分类”检测方法,虽然也能达到98%的准确率,然而这些检测方法往往会受到过渡匹配的影响,也就是说在处理不同类型的图片时,检测方法的性能会显著下降。

更为具体一点,能区分真人和照片的技术叫做liveness detection,中文叫做“活体取证”。当前的技术主要是根据分辨率、三维信息、眼动等来区分,因为翻拍的照片分辨率比直接从真人上采集的照片在质量、分辨率上有差别。

而对于视频欺骗,根据三维信息、光线等来区分。

对于具体的应用,谷歌曾经推出一款照片打假神器名为 Assembler,具有 7 个检测器(detectors),其中 5 个由美国和意大利的大学研究团队开发,分别负责检测经不同类型的技术处理过的照片,例如合成、擦除等。

而另外两个检测器由 Jigsaw 自己的团队开发,其中一个旨在识别deepfake,也就是这两年引起热议的AI 换脸,该检测器使用机器学习区分真人图像和 StyleGAN 技术生成的 deepfake。

对于假图片,标出可能拼接的区域。而Face X-Ray方法可以针对合成图片的共性:图片拼接,即一张图片和另一张图片混合。检测图片可能存在的混合区域,分析差异,找到图片标记,从而判断是否是合成图片。

二、Face X-Ray算法详情

典型的换脸合成方法包括三个阶段:

1、检测面部区域;

2、合成期望的目标面部;

3、将目标面部融合到原始图像中。

现有的对面部合成图像检测通常面向第二阶段,并基于数据集训练有监督的每帧二进制分类器。这种方法可以测试数据集上实现近乎完美的检测精度,如果遇见训练时没见过的换脸图像,性能会出现明显下降。而Face X-Ray的关键步骤是从图像中获取标记数据,然后用“自监督”的方式训练框架。

值得一提的是这里的自监督是打引号的,不同于传统的自监督定义,这里的无监督是指不从换脸数据库里训练算法。前面也提到,图片的标记主要来自两个方面,硬件和软件。在正常的图像中,硬软件产生的标记一般是具有“周期性”或者是均匀的。一旦图像改变,就会打破这种均匀,因此可以利用标记判断是否是合成图片。具体到算法层面,对合成图像定义如下:

公式1

⊙表示逐个元素相乘,IF表示一种提供面部属性的图像,IB代表提供背景的图,M是分隔被操纵区域的掩码(the mask delimiting the manipulated region),其每个像素的灰度值在0.0和1.0之间。

公式2

如上将Face X-Ray定义为图像B,然后如果输入的是合成图像,那么B会显示混合区域,如果输入的是真实图像,那么会B对于所有像素来说是0。

本质上来讲,Face X-Ray的目的是将图像分解为两个不同来源的图,毕竟不同来源的图像有些细微的差异人眼无法发现,而计算机可以。

换句话说Face X-Ray是一种发现图像差异的计算表示,它只关心混合边界。

然后到了“自监督”学习模块。这一部分的难点在于解决如何仅用真实的图片获取相应的训练数据。主要分为3个部分。

1.给定一个真实图像,然后寻找另一个图像作为真实图像的变体。使用face landmarks作为匹配标准,并根据欧式距离进行搜索。

2.生成掩码划定“伪造”区域。

3.通过上述第一个公式得到混合后的图像,然后根据第二个公式得到混合边界在实践中,会随着训练过程进行动态生成标签数据,并以自我监督的方式训练框架。所以,仅仅在真实图像层面上进行操作就可以产生大量的训练数据。

在训练过程中,由于深度学习具有极强的表征学习能力,所以研究人员采用了基于卷积神经网络的框架。其中输入为图像,输出为Face X-Ray,然后基于预测的Face X-Ray,输出一个图像是否真实的混合概率。另外,对预测采用的是广泛使用的损失函数。对于Face X-Ray,采用交叉熵损失来衡量预测的准确性。总的来说,Face X-Ray不需要依赖于与特定人脸操作技术相关的伪影知识,并且支持它的算法可以在不使用任何方法生成假图像的情况下进行训练。

三、实验

在实验部分,研究人员在Face Forensics++和另一个包含由真实图像构建的混合图像的训练数据集上训练了Face X-Ray,训练只采用数据库里的“真图”,不使用假图。其中,Face Forensics++是一个包含1000多个用四种最先进的面部操作方法操作的原始剪辑的大型视频语料库,包括DeepFake、Face2Face、Face Swap、NeuralTextures。

在测试部分评估了Face X-Ray使用四个数据集的泛化能力。这四个数据集包括:Face Forensics++、Deepfakedetection、Deepfake Detection Challenge、celeb-DF。

泛化能力评估

首先使用与Xception相同的训练集和训练策略来评估Face X-Ray检测模型。为了得到准确的Face X-Ray图像,将真实图像作为背景,将换脸的图像作为前景,给出一对真图像和假图像。为了公平比较,还给出了二元类的结果。结果如下图所示:

泛化能力评价,在未知的换脸检测中,仅使用分类器会导致性能下降。

另外,也对泛化能力进行了改进,其改进主要来自两个部分:1.建议检测Face X-Ray而不是操作特有的伪影。2.从真实的图像中构建大量的训练样本。结果显示仅使用自监督数据,也能够达到很高的检测精度。

未知数据集的基准结果

从最近发布的大规模数据集上测试,然后从AUC、AP和EER三个方面给出结果。如下图所示框架比基准的性能更好。如果使用其他的换脸图像,即使与测试集有不同的分布,性能也会有所提高。

下图给出了各种类型的换脸图的视觉示例,通过计算伪面与真实图像之间的差异,然后转化为灰度,进行归一化之后从而获得基本事实。如下图所示,预测Face X-Ray能够较好的反映事实。

算法预测出的融合边界

与现在的工作进行对比

最近的一些相关工作也注意到了泛化问题,并在一定程度上试图解决这一问题。FWA还采用了一种自我监督的方式,从真实图像中创建负片样本。然而,它的目标只是描述只存在于DeepFake生成的视频中的面部扭曲伪影。

Table3~Table5为图示,请自动忽略Table6

上表中的其他工作都试图学习固有表示,以及同时进行MTDS学习检测和定位。进过比较Face X-ray有超过了现有的SOTA。

对拟议框架的分析(Analysis of the proposed framework)

自监督数据生成中数据增强的总体目标是提供大量不同类型的混合图像,以使模型具有检测各种篡改图像的能力。

在这部分,作者研究了两个重要的增强策略:a)掩模变形,其目的是给Face X-Ray的形状带来更大的变化;b)颜色校正,以产生更逼真的混合图像。这两种策略对于产生多样化和高正确度的数据样本是至关重要的,这些数据样本对网络训练也产生了帮助。

另外,在自监督数据生成过程中,采用了相位混合的方法,使用不同类型的混合来构建测试数据,并在使用alpha混合构建训练数据时对模型进行评估。结果如下图所示

One More Thing

Face X-Ray对于“半合成”图像有奇效,但是也有两个局限性,第一是对于纯合成的图片,由于标记无法有效识别,所以FaceX -Ray无法攻克。这也就是前面说的:“这个方法依赖于一个混合步骤,因此可能不适用于完全合成图像”。

第二个局限是如果有人专门针对此算法训练对抗样本,那么也有可能Face X-Ray也有可能失效。

另外,和其他换脸检测技术一样,此技术对图像分辨率敏感,如果图片分辨率较低,那么Face X-Ray检测率也会较低。

左:郭百宁。右:陈栋

针对此项研究,AI科技评论也专门采访了微软亚洲研究院常务副院长郭百宁和微软亚洲研究院高级研究员陈栋。

问:对于完全合成图片以及对抗样本Face X-Ray无法准确识别,有何解决办法?

答:我们尚在研究中,计划在背景细节处的检测下功夫,因为合成的图片一般对于背景的处理比较粗糙。另一个想法是从将真实图片与伪造图片进行对比训练算法,因为一般名人或者其他人脸图片都有独特的属性ID,将这种独特的属性ID作为数据训练也能改进算法。

问:Face X-Ray能够识别用修图工具修改的人脸照片?

答:Face X-Ray的工作重点不是判断是否为原图,而是在“真”与“假”之间衡量,毕竟假视频、图片对社会的负面影响较大。问:算法落地情况如何?何时能集成到应用程序中去?答:我们的算法突破是刚刚取得的进展,具体应用落地还需要一段时间。

cvpr2020 人脸检测与识别_古有照妖镜,今有换脸识别机,微软 CVPR 2020力作,让伪造人脸无处遁形...相关推荐

  1. 人脸检测颜值软件_百度AI人脸识别测颜值源码

    百度AI人脸识别测颜值由百度AI官方推出百度AI人脸识别测颜值源码,目前已将人脸识别氛围V2和V3两个接口,使用前需要参考相应的文档权限来选择接口类型.今天为大家带来的源码,就是让大家能够了解学习到百 ...

  2. 人脸检测颜值软件_百度AI人脸识别颜值-百度AI人脸识别测颜值源码下载-西西软件下载...

    百度AI人脸识别测颜值由百度AI官方推出,目前已将人脸识别氛围V2和V3两个接口,使用前需要参考相应的文档权限来选择接口类型.本次为大家带来百度AI人脸识别测颜值平台源码资源下载,相关的测量源码数据都 ...

  3. 人脸检测卷积神经网络_卷积神经网络和计算机视觉的人脸面具检测算法

    人脸检测卷积神经网络 In this article, we explore an application of Computer Vision that is largely relevant to ...

  4. 人脸检测颜值软件_颜值检测软件下载-颜值检测免费版下载-ROM之家

    详情 颜值检测app是一款非常有趣的颜值测试软件,使用这款软件可以帮助用户在线测试自己的颜值多少分哦,看自己的颜值在不在线,同时还能测试年龄等多种功能,测算照片中人物的年龄.颜值,只需拍摄或从相册选择 ...

  5. 人脸检测颜值软件_颜值检测软件下载-颜值检测 安卓版v1.0-PC6安卓网

    颜值检测app是一款非常趣味好玩娱乐性质强的人脸检测换脸软件,人脸检测app拥有人脸对比.人脸搜索.五官检测诸多功能,上传自己的照片可随时通过颜值检测器轻松测试颜值. 软件介绍 颜值检测app一键测试 ...

  6. python名片识别_百度AI攻略:名片识别

    1.功能描述: 支持对各类名片的9个关键字段进行结构化识别,包括姓名.公司.职位.邮编.邮箱.电话.网址.地址.手机号.使用名片识别技术,实现对用户名片关键信息的结构化识别和录入,可应用于线下会议.论 ...

  7. python制作文字识别_用Python轻松进行图像文本识别

    用Python轻松进行图像文本识别 作者:梅朵 微信公众号:实用办公编程技能 微信号:Excel-Python 最近,办公室的同事小李在整理一份报告,很多材料的电子版找不到了,都是纸质版的,纸质版上的 ...

  8. python人脸检测怎么弄_如何通过python实现人脸识别验证

    这篇文章主要介绍了如何通过python实现人脸识别验证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 直接上代码,此案例是根据https://git ...

  9. python 人脸检测自动拍照_自动检测人脸并在打开时拍摄快照

    我在我的大学里做人脸识别项目.我想拍一张快照,如果在关闭摄像头前自动检测到人脸,就保存下来. 我现在所做的就是打开摄像头,等待检测到人脸,然后按"q"键拍摄快照并保存图像. 代码如 ...

最新文章

  1. Delphi编程实现是否开启“平滑屏幕字体边缘“
  2. cuckoo hash
  3. 文献记录(part22)--Learning local metrics from pairwise similarity data
  4. php视频上传教程,PHP实现视频文件上传完整实例,_PHP教程
  5. 【跃迁之路】【425天】程序员高效学习方法论探索系列(实验阶段182-2018.04.06)...
  6. golang学习笔记14 golang substring 截取字符串
  7. java sencha_开始使用Sencha Cmd
  8. 内核线程、轻量级进程、用户线程三种线程概念解惑(线程≠轻量级进程)
  9. matlab 对称矩阵特征值为负数,【原创】古典Jaccobi方法计算实对称矩阵A的特征值和向...
  10. idea中 Java xml注释缩进问题 解决方案
  11. 商城GW-SHOP,基于 微信小程序 + springboot + vue 技术构建
  12. 51单片机驱动TM1638芯片+Proteus仿真
  13. 计算机硬盘清理,怎么清理电脑磁盘释放存储空间
  14. 10个小故事,思考大数据
  15. OSPF的5、7类LSA中的FA、cost计算详解
  16. webservice 实现与his系统对接_一键放牧,一架管 1000 头牛!以色列牧民用大疆无人机实现自主放牛;中国重汽对接北斗卫星导航系统,车辆定位精度达到厘米级别!...
  17. springboot控制台日志打印到日志文件 (请求路径,执行sql,参数等)
  18. fusion 360调整字体大小
  19. 天猫首创“服务360”平台 赋能商家提升用户体验
  20. 加州大学伯克利分校计算机科学硕士,2020年加州大学伯克利分校排名TFE Times美国最佳计算机科学硕士专业排名第3...

热门文章

  1. 严禁使用计算机存储,处理,传输涉密信息,严禁使用非涉密计算机存储、处理、传输涉密信息。()...
  2. c语言 感叹号啥作用,C语言中的双感叹号的作用
  3. 开心消消乐在屏幕中向下移动的完整代码
  4. 关于功耗芯片那些事(四)
  5. 微信人工客服转服务电话号码呢?
  6. idea做一个日志自动生成的jar包,并用flume做生产者,采集日志数据,用kafka做消费者来消费日志数据
  7. coreldraw带圈字符_coreldraw中如何使字体围绕一个圆形排列?
  8. 白色相簿2 coda篇各结局概率分析
  9. 从头开始敲代码之《从BaseApplication/Activity开始(五)》(自定义控件,实现点击/滑动翻页)
  10. 搭建一个点歌QQ机器人,另外还能看美女