“一网打尽”Deepfake等换脸图像,微软提出升级版鉴别技术Face X-Ray
作者 | Just
出品 | AI科技大本营(ID:rgznai100)
Deepfake换脸图像的泛滥给人类社会带来了巨大的挑战。
虽然研究者们为检测换脸图片提出了多种AI鉴别算法,但随着换脸算法的不断改造升级,鉴别算法很难跟上换脸算法的变化。
微软亚洲研究院团队近期提出的Face X-Ray算法或将改变这种局面。微软亚洲研究院常务副院长郭百宁称,“Face X-Ray技术像医院的X光一样。它能鉴别图片真假,不但能告诉你图片有没有进行过换脸操作,而且还能告诉你换脸操作的边界在什么地方。”这篇论文已入选CVPR 2020。
传统的 AI 换脸一般分三步走:第一步检测目标图像的面部区域;第二步,利用 AI 换脸算法生成新的面部及一部分周围区域;第三步,将生成的新面部融合到原图像中,替换原图像中的面部。
此前的换脸鉴别方法主要从第二步入手,通过检测换脸过程中产生的瑕疵,确定图像的真伪,但是,这一瑕疵并不唯一确定,不同的换脸算法合成时造成的瑕疵大相径庭。
微软亚洲研究院的 Face X-Ray 换脸鉴别算法则主要针对换脸算法的第三步:图像融合过程。换脸的图像必然是至少两张图像叠加而成,而且可以确定合成图像的中间面部是来源于一张图像,面部周围来源于另外一张图像;研究员们还发现,每一张图像都有一个来自于硬件或软件的特殊噪声标记,这些噪声就像指纹一样独一无二。因此,Face X-Ray 通过确定图像是否包含两种不同的噪声,就能判定一张人脸图像为合成图像的几率。
此前业内的主流换脸鉴别算法是训练 AI 分类器,让 AI 模型去“学习”大量的换脸图像,从而具有初步的鉴别能力。“先搜集一大堆换过脸的照片,再搜集一堆真照片,然后用深度神经网络做训练。看完之后计算机就会学习,然后鉴别这张照片是否进行过换脸操作。”郭百宁解释。
但二分类方法的局限在于不具备通用性:只有换脸图像采用的是已知换脸算法,如 DeepFake、FaceSwap、Face2Face 等生成,才有可能达到较高的识别率(99%以上),因为 AI 模型就是通过大量学习这些算法生成的人脸图像去提升识别能力,一旦换脸图像采用了未知算法,其鉴别的识别率会大幅降低至70%。
同时,使用分类器方法的前提是一定要收集大量假图片才能进行训练,但“假图片”本身可能已经对社会造成了危害。
Face X-Ray则把换脸鉴别技术推到了更高层次。首先具有通用性,Face X-Ray背后的算法是“类自监督学习”的一种方法,“我们不需要这些(换脸图片)数据,也不用知道是哪个换脸算法,就能鉴别。”郭百宁称。Face X-Ray鉴别算法基于FaceForensics数据集进行了测试,测试的平均识别率达到95%以上。
其次,Face X-Ray具有可解释性。其能明确指出合成图像的合成边界,让普通人也可以更加容易地理解这一方法的鉴别过程,将AI技术的可解释性又向前推进了一步。
当然,论文指出,Face X-Ray可能并不适用于对抗性图片和完全合成图像。郭百宁表示,换脸技术和换脸检测技术是矛和盾的关系,有更坚硬的矛就有更坚硬的盾,两者会互相促进、共同发展。
【end】
◆
原力计划
◆
《原力计划【第二季】- 学习力挑战》正式开始!即日起至 3月21日,千万流量支持原创作者!更有专属【勋章】等你来挑战
推荐阅读
为什么说Transformer就是图神经网络?
6个步骤,告诉你如何用树莓派和机器学习DIY一个车牌识别器!(附详细分析)
华为补助武汉员工,最高每日 2000 元;iPhone SE 2 量产或推迟;PowerShell 7.0 发布
6 个步骤,教你在Ubuntu虚拟机环境下,用Docker自带的DNS配置Hadoop | 附代码
开发项目时如何选择区块链平台?我们分析了以太坊、Bitcoin via RSK、Ardor三个有趣的平台来给你回答!
我在武汉卖手机
你点的每个“在看”,我都认真当成了AI
相关文章:

双边滤波算法的简易实现bilateralFilter
没怎么看过双边滤波的具体思路,动手写一写,看看能不能突破一下。 最后,感觉算法还是要分开 水平 与 垂直 方向进行分别处理,才能把速度提上去。 没耐性写下去了,发上来,给大伙做个参考好了。 先上几张效果图…
赔偿谷歌1.8亿美元!前Uber自动驾驶主管被告到破产
整理 | Just出品 | AI科技大本营(ID:rgznai100)两年前的Google自动驾驶部门与Uber自动驾驶技术纠纷案以和解结束后再起波澜。据路透社等外媒报道,Uber自动驾驶部门前主管安东尼莱万多夫斯基(Anthony Levandowski)周三申…

.data和.text段合并
a.c #include <stdio.h> extern int share;int main(void) { int a100;swap(&a,&share);} b.c int share1;void swap(int *a,int *b){*a^*b^*a^*b;} 编译 #gcc -c a.c b.c 链接 #ld a.o b.o -e main -o ab 查看 #objdump -h 文件 VMA即虚拟地址 size即…

用QQ提问的技巧,用了之后可以提高效率,呵呵。
有些Tx喜欢用QQ向好友提些问题,但是却没有掌握提问的技巧,自己没有及时得到答案也浪费了对方的时间。这里抛砖引玉,说一下我的看法和体会。大家一起讨论。我们讨论问题,不讨论人。 一、 把QQ当成了电话(不适合的做法&a…
Android重绘ListView高度
Android重绘ListView高度 经常会有这样需求,需要ListView默认将所有的条目显示出来,这就需要外层使用ScrollView,ScrollView里面放置一个重绘高度的ListView,类似下面这样 工具类 package ……;import android.view.View; import …

C语言数据类型所占空间大小
C语言数据类型所占空间大小 /** datasize.c -- print the size of common data items* This runs with any Linux kernel (not any Unix, because of <linux/types.h>)** Copyright (C) 2001 Alessandro Rubini and Jonathan Corbet* Copyright (C) 2001 OReilly & A…

SharePoint基础之六- SharePoint基础架构中涉及的ASP.NET架构
ASP.NET框架代表着在IIS和ISAPI编程模型之上的一个重要的生产力层. 如果你熟悉ASP.NET开发的话, 你就会知道它为你的应用程序逻辑编写托管代码提供了便利, 比如说C#, VB.NET, 并且允许你在由Microsoft Visual Studio提供的面向生产力的可视化编辑器中工作. ASP.NET框架还提供了…
Javascript函数之深入浅出递归思想,附案例与代码!
作者 | 浮世万千吾爱有三责编 | Carol来源 | CSDN 博客递归函数的理解1、生活中的递归“递归”在生活中的一个典例就是“问路”。如图小哥哥进入电影院后找不到自己的座位,问身边的小姐姐“这是第几排”,小姐姐也不清楚便依次向前询问,问至第…

Linux指令--文件和目录属性
对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面我们就开始了解一下linux目录结构的…

Linux内存寻址
一.内存地址分类以及MMU介绍 对于程序员来说,可以简单的把内存地址理解为一种访问存储单元的内容的一种方式。而对于80x86系列微处理器来说,我们需要区分三种地址: (1)逻辑地址 这种地址通常使用在机器语言里用于指…

iptables 基本命令使用举例
原文地址:http://www.linuxsky.org/doc/admin/200803/262.html 一、链的基本操作 1、清除所有的规则。 1)清除预设表filter中所有规则链中的规则。 # iptables -F 2)清除预设表filter中使用者自定链中的规则。 #iptables -X #iptables -Z 2、…
重磅!教育部再次审批179所高校新增本科AI专业
整理&责编 | 夕颜出品 | CSDN(ID:CSDNnews)好消息!2 月 21 日,教育部官网发布了《教育部关于公布 2019 年度普通高等学校本科专业备案和审批结果的通知》,公开了 2019 年度普通高等学校本科专业备案和审批结果。17…
Qt之自定义搜索框
简述 关于搜索框,大家都经常接触。例如:浏览器搜索、Windows资源管理器搜索等。 当然,这些对于Qt实现来说毫无压力,只要思路清晰,分分钟搞定。 简述效果细节分析Coding源码下载效果 细节分析 实现细节需要如下步骤&…

大型网站架构演变和知识体系
存爱好,作为收藏,原地址:http://www.blogjava.net/BlueDavy/archive/2008/09/03/226749.html,同时向原创致敬之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的&#…
Python数据清理终极指南(2020版)
作者 | Lianne & Justin译者 | 陆离出品 | AI科技大本营(ID:rgznai100)一般来说,我们在拟合一个机器学习模型或是统计模型之前,总是要进行数据清理的工作。因为没有一个模型能用一些杂乱无章的数据来产生对项目有意义的结果。…
内存地址转换与分段
原文标题:Memory Translation and Segmentation 原文地址:http://duartes.org/gustavo/blog/ 翻译地址:http://blog.csdn.net/drshenlei/article/details/4261909 本文是Intel兼容计算机(x86)的内存与保护系列文章的第…

c++ 普通高精减
//c 普通高精减 //codevs 3115 高精度练习之减法 //内容简单,就不注释了。 //注意下,&&优先级高于||。 #include<cstdio>#include<cstring>char s1[600],s2[600];int a1[600],a2[600],len1,len2,i;int main(){scanf("%s",…
腾讯提超强少样本目标检测算法,公开1000类检测训练集FSOD | CVPR 2020
作者 | VincentLee来源 | 晓飞的算法工程笔记不同于正常的目标检测任务,few-show目标检测任务需要通过几张新目标类别的图片在测试集中找出所有对应的前景。为了处理好这个任务,论文主要有两个贡献:提出一个通用的few-show目标检测算法&#…

Linux加入到Windows域 收藏
一、实验环境: AD server:windows server 2003samba:redhat as5AD server的hostname和IP地址:turbomai-c<?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" />89f91.test.com 192…
哈希函数原理及实现
哈希解决冲突 1000以内的素数 一般的hash实现已经总结出一些比较重要的素数: static unsigned int table_size[] {7,13,31, 61, 127, 251, 509, 1021,2039, 4093, 8191, 16381, 32749, 65521,1310…
基于Virtual DOM与Diff DOM的测试代码生成
尽管是在年末,并且也还没把书翻译完,也还没写完书的第一稿。但是,我还是觉得这是一个非常不错的话题——测试代码生成。当我们在写一些UI测试的时候,我们总需要到浏览器去看一下一些DOM的变化。比如,我们点击了某个下拉…

Win32 环境下的堆栈
原文已经找不到,作者应该是:http://blog.csdn.net/slimak 但是没有找到此文,其中丢了2幅图 简介 在Win32环境下利用调试器调试应用程序的时候经常要和堆栈(Stack)打交道,尤其是在需要手工遍历堆栈(Manually Walking Stack)的时候我们需要…

在VMWare中配置SQLServer2005集群 Step by Step(四)——集群安装
在VMWare 中配置集群 1. 进入command 命令窗口执行以下命令,创建仲裁磁盘和共享数据磁盘 vmware-vdiskmanager.exe -c -s 200Mb -a lsilogic -t 2 F:\VM\Share\Windows\SQLServer\quorum.vmdk vmware-vdiskmanager.exe -c -s 4Gb -a lsilogic -t 2 F:\VM\Share\Wind…
口罩检测识别率惊人,这个Python项目开源了
作者 | 一颗小树x,CSDN 博主编辑 | 唐小引来源 | CSDN 博客昨天在 GitHub 上看到一个有趣的开源项目,它能检测我们是否有戴口罩,跑起程序测试后,发现识别率挺高的,也适应不同环境,于是分享给大家。首先感谢…

CentOS搭建msmtp+mutt实现邮件发送
1:搭建配置msmtp下载msmtp包:官方地址:http://msmtp.sourceforge.net/download.html编译,安装(官方下载的包为tar.xz格式):#xz -d msmtp-1.6.3.tar.xz #tar -xvf msmtp-1.6.3.tar #cd msmtp-1.6.3 #./configure --prefix /opt/app…
Linux环境下的堆栈--调试C程序
完整的调试过程,跟踪堆栈变化,32位下。 注意64位和此不同。 a.c代码: #include <stdio.h> int main() { AFunc(5,6);return 0; } int BFunc(int i,int j) {int m 1;int n 2;m i;n j; return m; }int AFunc(int i,int j) {…
听说过代码洁癖,Bug洁癖怎么解?
来源 | Python编程时光(ID: Cool-Python)当我们写的一个脚本或程序发生各种不可预知的异常时,如果我们没有进行捕获处理的时候,通常都会致使程序崩溃退出,并且会在终端打印出一堆 密密麻麻 的 traceback 堆栈信息来告诉…

POJO、VO、PO、FormBean区别:
首先讲一下四者的概念 POJO:Pure Old Java Object,符合Java Bean属性规范的简单Java对象,通常也称为VO(Value Object,值对象)。 VO:就是POJO; PO: Persistent Object,持久化对…

oracle中的sql%rowcount,sql%found、sql%notfound、sql%rowcount和sql%isopen
Oracle 存储过程 删除表记录时删除不存在的记录也是显示删除成功 create or replace procedure delDept(p_deptno in dept.deptno%type) is begindelete from dept where deptnop_deptno;dbms_output.put_line(部门删除成功...);exception when others thendbms_output.put_lin…

linux平台的链接与加载
原文是上下两篇 链接与加载(上) — 静态链接链接与加载(下) — 动态链接 为观看方便,现在合并起来。 一.静态链接 示例程序 我们先看一个简单的示例程序,代码如下: /*main.c*/int u 333;int sum(int, int);int main(int argc, char* argv…