当前位置: 首页 > 编程日记 > 正文

“半真半假”DeepFake换脸也能精准识别?阿里安全提出全新检测方法

一段包含多个人脸的视频中,攻击者只对一个或者几个人的人脸进行伪造,这种“半真半假”的伪造情况能否被检测识别?近日,阿里安全图灵实验室宣布,其已成功打造出针对这种换脸视频的DeepFake检测技术,阐述该技术的论文被国际学术顶会ACM MM2020收录。

DeepFake检测技术具有许多现实应用场景的价值,比如攻击者将不雅视频主角人脸换成目标人脸进行传播等场景时,DeepFake检测技术可“鉴伪求真”,追溯真相。

以前的研究中,DeepFake视频检测主要专注于在强监督标注提供时,如何较好地检测到DeepFake图像或者人脸。不同于之前的工作,阿里安全更加关注于一个现实中广泛存在的问题:部分攻击(篡改)的视频,即视频中只有部分人脸被篡改了。如下图所示,左图显示的是完全DeepFake攻击,其原图里仅有一张人脸,被被替换。而右图中有多张人脸,却只有红框是被替换过的。

完全DeepFake攻击(左图)和部分DeepFake攻击(右图)

目前存在的DeepFake检测工作主要分为两类:帧级检测和视频级别检测。基于帧级的方法不仅需要成本高的帧级别的标注,在转化到视频级任务时,也需要设计巧妙的融合方法才能较好地将帧级预测转化为视频级预测。简单的平均值或者取最大值极易导致漏检或误检。而之前基于视频级别的检测工作,比如LSTM等,在DeepFake视频检测时,过多专注于时序建模,导致DeepFake视频的检测效果受到了一定的限制。

阿里安全图灵实验室算法工程师向溪介绍,为更好地检测部分篡改的DeepFake视频,阿里安全图灵实验室提出了一种全新的检测方法,这种方法标注简单,并能帮助神经网络更好地学习人脸特征,实现更好的检测效果。

阿里安全图灵实验室还发现了攻击者篡改视频时露出的马脚,由于攻击者对视频实行单帧篡改,导致同一人脸在相邻帧上会有一些抖动,因此研究人员设计了新检测模块来发现这些抖动,辅助识别。

此外,此前业界提出的检测方法多适用于针对单人视频脸部篡改或多人视频所有人脸篡改,阿里安全构建了一个部分攻击数据集,弥补了DeepFake检测数据集在多人脸视频中只对一个人脸或者几个人脸篡改场景里的空白。

S-MIL算法

图2 S-MIL算法框架图

为了更好地检测部分篡改的DeepFake视频,我们提出了一种新的只需要视频级别标注的DeepFake视频检测方法。由于在视频检测任务中,人脸或帧级标注是缺失的,如果像基于帧级检测的方法,直接将视频标签当作每张人脸的标签,会引入训练噪声,导致训练很可能无法收敛。回顾DeepFake视频的定义:只要视频中有一张人脸被篡改,那么该视频就被定义为DeepFake视频。

这个是和多实例学习相吻合的。在多实例学习中,一个包由多个实例组成,只要其中有一个实例是正类,那么该包就是正类的,否则就是负类。基于这个观察,我们提出了基于多实例学习的DeepFake检测框架,将人脸和输入视频分别当作多实例学习(Multiple Instance Learning, MIL)里的实例和包进行检测。


但是传统的多实例学习存在梯度消失问题,为此,我们提出了Sharp-MIL(S-MIL),通过将多个实例的聚合由输出层提前到特征层,一方面使得聚合更加灵活,另一方面也利用了伪造检测的目标函数直接指导实例级深度表征的学习,来缓解传统多实例学习面临的梯度消失难题。我们也通过理论证明了S-MIL可以缓解传统MIL存在的梯度消失问题。传统MIL定义:

DeepFake篡改在时序上的抖动示意图

在实例设计上,与传统多实例学习的设定一样,实例与实例间是相互独立的。但由于DeepFake是单帧篡改的,导致同一人脸在相邻帧上会有一些抖动,如图3所示,我们设计了时空实例,用来刻画帧间一致性,用于辅助DeepFake检测。具体而言,我们使用文本分类里常用的1-d卷积,使用不同大小的核对输入的人脸序列从多视角上进行编码,以得到时空实例,用于最终检测。

实验结果

算法的最终检测效果图如下所示,可以看到,假脸的权重比较高,说明我们的方法在仅需视频级别标签的情况下,可以很好地定位到假脸,具有一定的可解释性:

DeepFake视频检测结果示意图

我们在公开数据集上的表现,如下图所示,可以看出,我们的方法在视频检测上能到达到state-of-the-art的效果:

业务场景和技术应用

在上述技术革新下,阿里安全图灵实验室DeepFake检测技术在视频检测和帧级检测领域排名前列。该技术的共同研究者、中科院计算所副研究员王树徽认为,除了部分换脸检测任务之外,该研究成果对于一般性的视频多实例学习与标注技术研究也具有重要的启发意义。

今年3月,阿里发布新一代安全架构,致力于从源头防范安全威胁,构建安全体系,并打造数字基建安全样板间,阿里安全研发的DeepFake检测技术作为新一代安全架构的核心AI技术,为数字基建的安全建设起到重要作用,并成功实现落地应用。

阿里安全图灵实验室资深算法专家华棠介绍称,截止目前,阿里已经将该检测技术使用在内容安全场景中,后续也会在直播场景中进行布局。

更多精彩推荐
  • 鸿蒙加海思,麒麟加龙芯,组合拳能否渡劫“生态”危机

  • 为什么深度神经网络这么难训练?| 赠书

  • 万字长文总结机器学习的模型评估与调参 | 附代码下载

  • “Talk is cheap, show me the code”你一行代码有多少漏洞?

  • 科普 | 定义 Eth2.0 中的验证者质量

相关文章:

python 定时任务

Python 定时任务 最近学习到了 python 中两种开启定时任务的方法,和大家分享一下心得。 sched.scheduler()threading.Timer()sched 定时任务 使用sched的套路如下: s sched.scheduler(time.time, time.sleep) s.enter(delay, priority, func1, (arg1, a…

思科AP与交换机端口的配置

思科AP与交换机端口的配置。 思科AP可以分IOS AP 和LAP。 1、IOS AP 中如果AP上需要创建多个SSID,连接的交换机端口则需要: switch(config-interfa)# sw mod trunk switch(config-interfa)# sw trunk allow vlan 1,x,x,x (SSID对应的VLAN) 另外注意&…

Namespace(命名空间)的使用

作者&#xff1a;飞刀 关于Namespace(命名空间)的使用常用<% Import Namespace"System.Data" %>,这是在引用M$为我们提供的Namespace,这和ASP不同的&#xff0c;我们贏SP.net必须先引用与我们操作有关的Namespace后才能使用相应的功能。其实说白了&#xff…

“编程能力差!90%输在这点上”谷歌AI专家:其实都是瞎努力!

最近几年&#xff0c;我看过市面上很多 Python和人工智能的教程&#xff0c;基本都在这样讲&#xff1a;先介绍Python基本语法、dict、tuple 等基本库的使用&#xff0c;最后学习机器学习、深度学习的常用算法......但我与Google人工智能开发专家彭靖田老师沟通后发现&#xff…

NAS存储对称和非对称结构之前的区别概述

传统的系统利用紧耦合对称架构&#xff0c;这种架构的设计旨在解决HPC&#xff08;高性能计算、超级运算&#xff09;问题&#xff0c;现在其正在向外扩展成为云存储从而满足快速呈现的市场需求。下一代架构已经采用了松弛耦合非对称架构&#xff0c;集中元数据和控制操作&…

Lucene:基于Java的全文检索引擎简介(转载)

Lucene是一个基于Java的全文索引工具包。基于Java的全文索引引擎Lucene简介&#xff1a;关于作者和Lucene的历史全文检索的实现&#xff1a;Luene全文索引和数据库索引的比较中文切分词机制简介&#xff1a;基于词库和自动切分词算法的比较具体的安装和使用简介&#xff1a;系统…

昨天,我用 Python 写了一个婚介模型

作者 | 天元浪子来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;先声明一下&#xff1a;本文纯属七夕应景娱乐之作。如果有人因为遵循本模型提出的择偶理论而导致失恋或单身&#xff0c;除了同情&#xff0c;我不能补偿更多。在中国的传统节日里&#xff0c;七夕可…

WCF服务一:WCF服务简介

一、回顾开发历史&#xff1a; 软件架构的设计经历了&#xff1a;从面向对象程序&#xff0c;到面向组件程序设计&#xff0c;再到面向服务程序设计。这三种方式都致力于同一个目标&#xff1a;封装和重用。 面向对象程序设计&#xff1a;类封装功能并提供代码重用。 面向组件程…

MIT 更新最大自然灾害图像数据集,囊括 19 种灾害事件

作者 | 神经小兮来源 | HyperAI超神经&#xff08;ID&#xff1a;HyperAI&#xff09;内容提要&#xff1a;麻省理工学院在最近 ECCV 2020 上提交的一篇论文中&#xff0c;发布了一套自然灾害图像数据集。这是迄今为止规模最大、质量最高的自然灾害卫星图像数据集。2020 年&…

DataBind数据核心

作者&#xff1a;飞刀 这一节主要是要讲DataBind&#xff0c;这个在ASP.net中是很重要的东东&#xff0c;几乎所有的控件都需要它来控制数据的操作。也可以说是ASP.net的数据核心。 我们先来看一个简单的例子&#xff1a; <% Page Language"C#" %> <% …

convertViewsetTag方法的一点理解

转自&#xff1a;http://blog.163.com/freemanls126/blog/static/164585061201171210504864/ 前言 首先我们要知道setTag方法是干什么的&#xff0c;SDK解释为 Tags Unlike IDs, tags are not used to identify views. Tags are essentially an extra piece of information tha…

iOS使用Security.framework进行RSA 加密解密签名和验证签名

iOS 上 Security.framework为我们提供了安全方面相关的api&#xff1b; Security框架提供的RSA在iOS上使用的一些小结 支持的RSA keySize 大小有&#xff1a;512&#xff0c;768&#xff0c;1024&#xff0c;2048位支持的RSA 填充方式有三种&#xff1a;NOPadding,PKCS1,OAEP 三…

Android APK反编译详解(附图)

这段时间在学Android应用开发&#xff0c;在想既然是用Java开发的应该很好反编译从而得到源代码吧&#xff0c;google了一下&#xff0c;确实很简单&#xff0c;以下是我的实践过程。 在此郑重声明&#xff0c;贴出来的目的不是为了去破解人家的软件&#xff0c;完全是一种学习…

你不知道的18个Python高效编程技巧

来源 | Python编程时光初识Python语言&#xff0c;觉得python满足了我上学时候对编程语言的所有要求。python语言的高效编程技巧让我们这些大学曾经苦逼学了四年c或者c的人&#xff0c;兴奋的不行不行的&#xff0c;终于解脱了。高级语言&#xff0c;如果做不到这样&#xff0c…

Alisql源码编译安装(详细篇)

前言 AliSQL 在 2016 云栖大会宣布开放源代码之后&#xff0c;迅速就获得了广泛的关注&#xff0c;目前(2016-10-27) star 数目已达 1187&#xff0c;欢迎访问 AliSQL GitHub 项目关注。社区反应也非常活跃&#xff0c;在 Issue 中提了不少反馈建议&#xff0c;其中有一部分是和…

如何给DataGrid添加自动增长列

作者&#xff1a; cuike519的专栏 http://blog.csdn.net/cuike519/我想我们都知道在数据库中如何添加自增长列&#xff0c;我们可以将这个自增长列绑定到DataGrid上使得用户方便的知道现在是第几行&#xff0c;今天我介绍一种不用数据库就可以简单显示出自增长列的方法&…

达摩院NLP团队斩获六项世界冠军背后,让AI没有难懂的语言

2018年末&#xff0c;BERT横空出世&#xff0c;它采用自编码对句子进行表示&#xff0c;通过预测掩盖词和上下句之间的关系作为语言模型学习任务&#xff0c;使用更多的数据&#xff0c;更大的模型&#xff0c;在多个自然语言处理&#xff08;NLP&#xff09;任务中显著超越之前…

提权巧用RAR.EXE

rar.exe是什么&#xff1f;它就是大名鼎鼎的winrar自带的命令行解压程序。在提权中我们经常要下载各种敏感文件&#xff0c;比如:SU目录。你想一下&#xff0c;如果su目录文件这么多&#xff0c;难道你要一个个的下载&#xff1f;&#xff1f;这明显就很麻烦&#xff0c;有了ra…

OSGI企业应用开发(二)Eclipse中搭建Felix运行环境

上篇文章介绍了什么是OSGI以及使用OSGI构建应用的优点&#xff0c;接着介绍了两款常用的OSGI实现&#xff0c;分别为Apache Felix和Equinox&#xff0c;接下来开始介绍如何在Eclipse中使用Apache Felix和Equinox搭建OSGI运行环境。 一、搭建Apache Felix运行环境 上篇文章中介绍…

马斯克脑机接口、BrainOS相继发布,不努力也能有出路了

作者 | 马超责编 | Carol封图 | CSDN 下载自视觉中国在北京时间的8月29日凌晨&#xff0c;钢铁侠埃隆马斯克投资1亿多美元的脑机接口初创公司公司Neuralink&#xff08;http://www.neurolink.company/&#xff09;进行了一次现场发布会&#xff0c;展示新一代的脑机接口设备。这…

C语言单向链表的实现

一个简单结点的结构体表示为&#xff1a;struct note{int data&#xff1b; /*数据成员可以是多个不同类型的数据*/struct note *next&#xff1b; /*指针变量成员只能是-个*/}&#xff1b; 一个简单的单向链表的图示1&#xff0e;链表是结构、指针相结合…

Java开发常用Linux命令

1.查找文件 find / -name filename.txt根据名称查找/目录下的filename.txt文件。 find . -name "*.xml"递归查找所有的xml文件 find . -name "*.xml" |xargs grep "hello world"递归查找所有文件内容中包含hello world的xml文件 grep -H spring …

数据库开发基本操作-安装Sql Server 2005出现“性能监视器计数器要求”错误解决方法...

今天在安装SQL Server 2005时&#xff0c;出现“性能监视器计数器要求”错误&#xff0c;因为以前出现过这种错误&#xff0c;得到了解决。今天又又出现这种错误&#xff0c;但并不是很清楚当时的解决办法&#xff0c;所以这次把解决方法记录下来&#xff0c;供自己以后参考&am…

华为昇腾师资培训沙龙·南京场 |华为昇腾 ACL 语言开发实践全程干货来了!看完就实操系列...

自今年疫情以来&#xff0c;AI 技术加速进入了人们的视线&#xff0c;在抗疫过程中发挥了重要作用&#xff0c;产业发展明显提速&#xff0c;我国逐步走出了一条由需求导向引领商业模式创新、市场应用倒逼基础理论和关键技术创新的发展道路&#xff0c;AI 人才的争夺战也正式打…

设计模式之C#实现---Builder

作者&#xff1a;cuike519的专栏 http://blog.csdn.net/cuike519/我们将要介绍一个和它比较像的创建型模式 Builder &#xff08;至于关于 Builder 的详细内容您可以参考 GOF 的书&#xff0c;在这里不重复了。&#xff09;。在 GOF 的书里 Builder 的目的是这样的&#xff1…

微信小程序开发之不能使用eval函数的问题

2019独角兽企业重金招聘Python工程师标准>>> 一 eval函数问题 JavaScript中的eval函数是颇受开发者争议的问题之一&#xff0c;问题主要在于其可能导致的不安全性。有关此方面问题&#xff0c;在此不再赘述&#xff0c;读者可能很容易地浏览到许多介绍性文章。 但是…

设计模式之C#实现--FactoryMethod

作者&#xff1a;cuike519的专栏 http://blog.csdn.net/cuike519/工厂方法的目的很明确就是定义一个用来创建对象的接口&#xff0c;但是他不直接创建对象&#xff0c;而由他的子类来创建&#xff0c;这样一来就将创建对象的责任推迟到了该接口的子类中&#xff0c;创建什么类…

美国AI博士指出,自学Python到底能做什么

我见过市面上很多的 Python 讲解教程和书籍&#xff0c;他们大都这样讲 Python 的&#xff1a;先从 Python 的发展历史开始&#xff0c;介绍 Python 的基本语法规则&#xff0c;Python 的 list, dict, tuple 等数据结构&#xff0c;然后再介绍字符串处理和正则表达式&#xff0…

关于微博溯源的后续问题

1、在进行关键词搜索的时候&#xff0c;如何分词&#xff0c;我们不可能用语料库进行匹配&#xff0c;已没有语料可以学习。 2、关于转折点的寻找。目前我们使用高级搜索&#xff0c;从当前时间往前推&#xff0c;根据搜索到微博的条数变化&#xff0c;确定时间发生具体时间&am…

python3的数据类型以及模块的含义

python3的数据类型以及模块的含义购物车转载于:https://blog.51cto.com/11834445/1884901