基于人脸的抗欺骗检测:Deep Tree Learning for Zero-shot Face Anti-Spoofing

首先介绍一下作者:Yaojie Liu,a fourth-year Ph.D. student at the Department of Computer Science and Engineering, Michigan State University. I’m a current member of Computer Vision Lab (CVLAB), advised by Dr. Xiaoming Liu. he is a member of Computational Biology and Cognitive Science Lab (CBCSL).

His research is on CV/ML, with particular interests in face representation & analysis, including face anti-spoofing, 2D/3D large pose face alignment, 3D face reconstruction, audio-visual modeling.

他的主页链接:https://yaojieliu.github.io/

下面是Deep Tree Learning for Zero-shot Face Anti-Spoofing的论文翻译,全是机翻,大家可以适当调整。

摘要

Face anti-spoofing旨在防止面部识别系统将假面部识别为真正的用户。虽然开发了先进的面部反欺骗方法,但也正在创建新类型的欺骗攻击,并对所有现有系统构成威胁。我们将未知欺骗攻击的检测定义为零次学习的面部抗欺骗检测(ZSFA)。以前的ZSFA只能研究12种类型的恶搞攻击,例如打印/重放,这限制了这个问题的洞察力。在这项工作中,我们调查了13种类型的欺骗攻击中的ZSFA问题,包括打印,重放,3D掩码等。提出了一种新颖的深度树网络(DTN),用于以无人监督的方式将欺骗样本划分为语义子群。当数据样本到达时,知道或未知的攻击,DTN将其路由到最相似的欺骗群集,并做出二元决策。此外,为了能够研究ZSFA,我们引入了包含各种类型的欺骗攻击的第一面防反欺骗数据库。实验表明,我们提出的方法达到了ZSFA多种测试协议的最新技术水平。

1.简介

面部是最流行的生物识别模式之一,因为其使用方便,例如访问控制,电话解锁。尽管识别准确度高,但是人脸识别系统不能区分真实人脸和假人脸,例如照片,屏幕。因此,他们容易遭受面部欺骗攻击,这会欺骗系统识别为另一个人。为了安全地使用面部识别,需要面部反间谍技术来在执行识别之前检测欺骗攻击。
攻击者可以利用各种媒介来发动欺骗攻击。最常见的是在数字屏幕上重放视频/图像,即重放攻击和打印的照片,即打印攻击。基于传统方法的特征[7,35,38]或基于CNN的特征,提出了不同的方法来处理重放和打印攻击
tures [4,18,20,32]。最近,高质量3D定制面具也用于攻击,即3D面具攻击。在[29-31]中,发现用于检测打印/重放攻击的方法对于这种新的欺骗不太有效,因此作者利用远程光电容积描记法(r-PPG)来检测心率脉冲作为间接提示。此外,面部化妆也可能影响识别的结果,即化妆攻击[12]。许多作品[11-13]研究面部化妆,尽管不是一个反间谍问题。
基于人脸的抗欺骗检测:Deep Tree Learning for Zero-shot Face Anti-Spoofing_第1张图片
所有上述方法都针对已知的欺骗攻击提供算法解决方案,其中模型在相同类型的欺骗攻击上被训练和测试。但是,在实际应用程序中,攻击者还可以发起我们(算法设计者)不知道的欺骗攻击,称为未知欺骗攻击1。研究人员越来越关注反间谍模型的概括,即他们能够检测到在培训期间从未见过的恶搞攻击的程度如何?我们定义了概率1 1)看不见的攻击,算法设计者已知的攻击类型,以便算法可以为他们量身定制,但他们的数据在训练期间是看不见的; 2)未知的攻击,攻击类型既不是设计者所知,也不是在训练中看到的。我们不区分这两种情况,并将两种未知攻击都称为。
检测未知面部恶搞攻击的范围为零次学习的面部抗欺骗检测(ZSFA)。尽管面对已知攻击的成功反面,但另一方面,ZSFA对社区来说是一个新的未解决的挑战。
对ZSFA的第一次尝试是[3,45]。它们在打印和重放攻击之间解决ZSFA问题,并将其视为实时人脸(例如真实人脸)的异常检测问题。通过手工制作的功能,现场面部通过标准生成模型建模,例如GMM,自动编码器。在测试期间,如果它位于估计的实时分布之外,则会检测到未知攻击。这些ZSFA工作有三个缺点:
缺乏恶搞类型:先前的型号是由w.r.t.仅打印和重放攻击。相应的功能设计可能不适用于不同的未知攻击。
没有恶搞知识:以前的模型只使用实时面部,而不利用可用的已知欺骗数据。虽然未知攻击是不同的,但已知的欺骗攻击仍然可以提供有价值的信息来学习模型。
特征选择的局限性:他们使用手工制作的特征(如LBP)来表现实况面部,这对于已知的欺骗检测效果较差[27,32,37,48]。最近的深度学习模型[20,32]显示了CNN模型在面部反间谍方面的优势
这项工作旨在解决所有三个缺点。由于一个ZSFA模型在未知欺骗攻击不同时可能会有不同的表现,因此应该对各种未知攻击类型进行评估。在这项工作中,我们将ZSFA的研究从2种类型的恶搞攻击扩展到13种类型。除了打印和重放攻击外,我们还包括5种类型的3D模板攻击,3种类型的化妆攻击和3种部分攻击。这些攻击包括模仿假冒,即尝试以其他人身份进行身份验证,以及模糊处理,即试图覆盖攻击者自己的身份。我们收集了包含这些不同恶搞攻击的第一面反欺骗数据库,在具有多种攻击类型的野外数据库中称为欺骗(SiW-M)。
为了解决更广泛的ZSFA,我们提出了深层树网络(DTN)。假设在每种欺骗类型中存在不同欺骗类型和不同特征之间的同构特征,树状模型非常适合处理这种情况:学习早期树节点中的同构特征和后面树节点中的不同特征。在没有任何恶意类型的辅助标签的情况下,DTN学会以无人监督的方式对数据进行分区。在每个树节点处,沿着最大数据变化的方向执行分区。最后,它将数据聚集到叶级别的几个子组中,并学会独立检测每个子组的欺骗攻击,如图1所示。在测试期间,数据样本被路由到最相似的叶节点以产生实时与欺骗的二元决策。
总之,我们在这项工作中的贡献包括:•对13种不同类型的恶搞攻击进行零射击反面防范的广泛研究; •提出深层树网络(DTN)以分层次学习功能并检测未知的欺骗攻击; •为ZSFA收集新数据库,并在多个测试协议上实现最先进的性能。

2.前期工作

面部反间谍基于图像的面部反间谍技术是指面部反间谍技术,它只将RGB图像作为输入而无需额外的信息,如深度或热量。在早年,研究人员利用活力线索(例如眨眼和头部运动)来检测打印攻击[24,36,37,39]。然而,当遇到未知的攻击时,例如具有眼部切割的photograh和视频重放,这些方法遭受完全失败。之后,研究转向更一般的纹理分析并解决打印和重放攻击。研究人员主要利用手工制作的特征,例如LBP [7,16,17,35],HoG [25,47],SIFT [38]和SURF [8],用传统的分类器,例如SVM和LDA,制作二进制决策。这些方法在来自同一数据库的测试数据上表现良好。但是,在改变照明和背景等测试条件时,它们通常会有很大的性能下降,这可以被视为一个过度的问题。此外,它们在处理3D掩模攻击方面也显示出局限性,如[30]中所述。
To overcome the overfitting issue, researchers make various attempts. Boulkenafet
为了克服过度配置问题,研究人员进行了各种尝试。Boulkenafet等。提取HSV + YCbCR空间中的spoo fi ng功能[7]。[2,5,6,18,46]中的工作考虑了时域中的特征。最近的工作[2,4]通过使用图像补丁来增加数据,并将补丁中的分数融合到单个决策中。对于3D掩模攻击,估计心脏脉冲率以区分3D掩模与真实面部[28,30]。在深度学习时代,研究人员提出了一些优于传统方法的CNN作品[4,18,20,27,32,37,48]。

零次学习和未知欺骗攻击物体识别,或更一般地说,零次学习,旨在识别来自未知类[40]的物体,即在训练中看不到的物体类。总体思路是通过语义嵌入将已知和未知类相关联,其嵌入空间可以是属性[26],单词向量[19],文本描述[49]和人类凝视[22]。
面对反间谍数据库鉴于优质数据库的重要性,研究人员已经发布了几个面部反spoof数据库,如CASIAFASD [50],Replay-Attack [15],OULU-NPU [9]和SiW [32] ]用于打印/重放攻击,以及HKBU-MARs [30]用于3D面具攻击。诸如CASIAFASD和Replay-Attack [50]之类的早期数据库限制了主题种类,姿势/表达/光照变化和视频分辨率。最近的数据库[9,30,32]改进了这些方面,并且还建立了不同的评估协议。但是,到目前为止,所有数据库都专注于打印/重放攻击或3D掩码攻击。为了全面研究面部防反射,特别是具有挑战性的ZSFA,我们首次收集了具有各种类型的恶搞攻击的数据库,如Tab。 1.我们数据库的详细信息在Sec 4。

3. ZSFA的深树网络

DTN的主要目的有两个:发现已知欺骗的语义子组; 以分层方式学习功能。 DTN的体系结构如图2所示。每个树节点由卷积残差单元(CRU)和树路由单元(TRU)组成,而叶节点由CRU和监督特征学习(SFL)模块组成。CRU是一个具有卷积层和快捷连接的块。TRU定义节点路由功能以将数据样本路由到其中一个子节点。

路由功能沿着具有最大数据变化的方向划分所有访问数据。SFL模块连接分类监控和像素监控,以了解spoofing功能。

未知欺骗攻击的零次学习,即ZSFA,是一个具有独特属性的相对较新的主题。首先,与零次物体识别不同,ZSFA强调检测欺骗攻击,而不是识别特定的欺骗类型。其次,与具有丰富语义嵌入的通用对象不同,对于欺骗模式没有明确的定义语义嵌入[20]。如第二节所述。 1,之前的ZSFA工作[3,45]仅通过手工制作的功能和标准的生成模型对实时数据进行建模,但存在一些缺点。在这项工作中,我们提出了一个深层树网络,无意识地学习已知欺骗攻击的语义嵌入。数据的分区自然地将某些语义属性与子组相关联。在测试期间,未知攻击被投射到嵌入以找到欺骗检测的最接近属性。深层树网络树结构通常被发现有助于解决与语言相关的任务,例如解析和翻译[14],这是由于单词和句子的内在关系。例如,树模型应用于联合视觉和语言问题,例如视觉问题推理[10]。树结构还具有分层学习特征的属性。面部对齐工作[23,41]利用回归树来估计从粗到细的面部标志。熊等人提出一个树CNN来处理大型姿势人脸识别[44]。在[21]中,Kaneko等人。提出具有决策树的GAN以学习分层可解释的表示。在我们的工作中,我们利用树形网络来学习ZSFA的潜在语义嵌入。
基于人脸的抗欺骗检测:Deep Tree Learning for Zero-shot Face Anti-Spoofing_第2张图片
基于人脸的抗欺骗检测:Deep Tree Learning for Zero-shot Face Anti-Spoofing_第3张图片
其中N,Nr,Nl,表示每组中的样本数。但是,在实践中,缩小Equ。 2可能无法带来满意的解决方案。首先,可以通过增加v或x的范数来最小化损失,这是一个简单的解决方案。其次,即使v,x的范数受到约束,Equ。 2受数据S密度的影响,并且可能对异常值敏感。换句话说,x)的零期望不一定导致数据S的平衡分区。当所有数据被分割到一侧时,可以实现局部最小值。在某些情况下,树可能会崩溃到几个(甚至一个)叶节点。
了更好地划分数据,我们提出了一种新的路由功能和无监督损失。无论τ如何,xT和v之间的点积可以被视为向v的方向投射x。我们设计v使得我们可以观察投影后的最大变化。受PCA概念的启发,最佳解决方案自然成为数据S的最大PCA基础。为实现这一目标,我们首先将v约束为规范1并重新制定Equ。 1作为:
基于人脸的抗欺骗检测:Deep Tree Learning for Zero-shot Face Anti-Spoofing_第4张图片
基于人脸的抗欺骗检测:Deep Tree Learning for Zero-shot Face Anti-Spoofing_第5张图片
3.1.2已知欺骗之树
使用路由功能,我们可以构建整个二叉树。图2示出了深度为4的二叉树,具有8个叶节点。如前所述。如图3所示,树被设计为从所有已知的恶搞中找到语义子组,并且被称为欺骗树。类似地,我们也可以仅使用实时面部训练实时树,以及具有实时数据和欺骗数据的一般数据树。与欺骗树相比,实时数据树和通用数据树有一些缺点。实时树不会为欺骗传达语义,并且在每个节点处学习的属性无法帮助路由和更好地检测欺骗;通用数据树可能导致不平衡的子组,其中一个类的样本数超过另一个类。
这种不平衡会导致下一阶段监督学习的偏见。

因此,当我们计算Equ时。 5学习路由功能,我们只考虑恶搞样本来构造XS。为了使每个叶子具有平衡的子组,我们将实时数据的响应抑制为零,以便可以将所有实时数据均匀地分区到子节点。同时,我们还抑制不访问此节点的欺骗数据的响应,以便每个节点模拟唯一欺骗子集的分布。

形式上,对于每个节点,我们最大化访问该节点的欺骗数据的路由功能响应(表示为S),同时最小化其他数据的响应(表示为),包括所有不访问的实时数据和欺骗数据该节点,即访问相邻节点。为实现这一目标,我们定义了以下损失:

在这里插入图片描述
3.2。监督特色学习
给定路由功能,数据样本将分配给其中一个叶节点。让我们首先将叶节点的特征输出定义为,为简单起见,缩写为。在每个叶节点,我们定义两个节点监督任务来学习判别特征:二进制分类驱动学习对现场与恶搞面孔的高层次理解,逐像素掩模回归将CNN的注意力吸引到低级别本地特色学习。
分类监控为了学习二进制分类器,如图2(d)所示,我们在上应用两个额外的卷积层和两个完全连接的层来生成特征向量。我们通过softmax交叉熵损失监督学习:
基于人脸的抗欺骗检测:Deep Tree Learning for Zero-shot Face Anti-Spoofing_第6张图片
基于人脸的抗欺骗检测:Deep Tree Learning for Zero-shot Face Anti-Spoofing_第7张图片
3.3。网络架构

深度树网络(DTN)DTN是所提出模型的主要框架。它以作为输入,其中6个通道是RGB + HSV颜色空间。我们将三个卷积层与40个通道和1个最大池层相连,并将它们组合为一个卷积残差单元(CRU)。由于网络中的动态批量大小,每个卷积层都配备了ReLU和组规范化层[43]。我们还为每个卷积层应用快捷连接。对于每个树节点,我们在TRU之前部署一个CRU。在叶节点处,DTN将输入I的特征表示产生为,然后使用一个卷积层来生成二进制掩码映射M.

树路由单元(TRU)TRU是将数据样本路由到其中一个子CRU的模块。如图3所示,它首先通过使用卷积层压缩特征,并在空间上调整响应大小。对于根节点,我们将CRU功能压缩为x ,对于以后的树节点,我们将CRU功能压缩为x 。将输入特征压缩为较小的尺寸有助于减少在Equ中计算和保存协方差矩阵的负担。 5。例如,第一个CRU的矢量化特征是x ,x的协方差矩阵可以在内存中占用 GB。但是,在压缩之后,矢量化特征是x ,并且x的协方差矩阵仅需要 GB的内存。

之后,我们对输出进行矢量化并应用路由函数 x)。计算Equ中的μ。 3,我们只是应用批量标准化层而不是缩放以保存每个小批量的移动平均值,而不是将其优化为网络的变量。最后,我们将压缩CRU响应投影到最大基础v并获得投影系数。然后我们将具有负系数的样本分配给左子CRU,并将具有正系数的样本分配给右子CRU。

实施细节随着Equ的整体亏损。 10,我们建议的网络以端到端的方式进行培训。所有损失均根据每个小批量计算。 DTN模块和TRU模块交替优化。在优化DTN的同时,我们保持TRU的参数固定,反之亦然。

4.具有多种攻击类型的野生数据库中的欺骗

为了针对未知攻击特定地针对面部反间谍方法,我们收集了具有多种攻击类型(SiW-M)的Wild数据库中的欺骗。与Tab中的先前数据库相比。 1,SiW-M在恶搞攻击,主体身份,环境和其他因素方面表现出很大的差异。

对于欺骗数据收集,我们考虑两个spoofing场景:模拟,需要使用欺骗被识别为其他人,以及混淆,这需要使用来删除攻击者自己的身份。总的来说,我们收集了968种视频,这些视频在图4中列出了13种类型的欺骗攻击。对于所有5种面具攻击,3种局部攻击,模糊化妆和化妆,我们录制1080P高清视频。对于模仿化妆,由于缺乏特殊的化妆师,我们从Youtube收集了720P视频。对于打印和重放攻击,我们打算从现有系统出现故障的较难案例中收集视频。因此,我们部署现成的面部反欺骗算法[32]并在算法预测实时时记录欺骗视频。
基于人脸的抗欺骗检测:Deep Tree Learning for Zero-shot Face Anti-Spoofing_第8张图片实验结果这里就不写了
直接写结论:本文解决了13种类型的恶搞攻击中的零射击反面问题。所提出的方法利用深树网络将未知攻击路由到最合适的叶节点以进行欺骗检测。以无人监督的方式训练树以找到具有最大变化的特征库以分割欺骗数据。我们收集的SiW-M包含比以前任何数据库更多的主题和欺骗类型。最后,我们通过实验证明了该方法的优越性能。
论文理解:接下来我们来详细说说零次学习(Zero-shot)
先举一个例子:
假设小明和他爸爸到了动物园,看到了马,然后爸爸告诉他,这就是马;之后,又看到了老虎,告诉他:“看,这种身上有条纹的动物就是老虎。”最后,又带他去看了熊猫,对他说:“你看这熊猫是黑白色的。”然后,爸爸给小明安排了一个任务,让他在动物园里找一种他从没见过的动物,叫斑马,并告诉了小明有关于斑马的信息:“斑马有着马的轮廓,身上有像老虎一样的条纹,而且它像熊猫一样是黑白色的。”最后,小明根据爸爸的提示,在动物园里找到了斑马。
上述例子中包含了一个人类的推理过程,就是利用过去的知识(马,老虎,熊猫和斑马的描述),在脑海中推理出新对象的具体形态,从而能对新对象进行辨认。如下图所示ZSL就是希望能够模仿人类的这个推理过程,使得计算机具有识别新事物的能力。
基于人脸的抗欺骗检测:Deep Tree Learning for Zero-shot Face Anti-Spoofing_第9张图片
如今深度学习非常火热,使得纯监督学习在很多任务上都达到了让人惊叹的结果,但其限制是:往往需要足够多的样本才能训练出足够好的模型,并且利用猫狗训练出来的分类器,就只能对猫狗进行分类,其他的物种它都无法识别。这样的模型显然并不符合我们对人工智能的终极想象,我们希望机器能够像上文中的小明一样,具有通过推理,识别新类别的能力。

ZSL就是希望我们的模型能够对其从没见过的类别进行分类,让机器具有推理能力,实现真正的智能。其中零次(Zero-shot)是指对于要分类的类别对象,一次也不学习。这样的能力听上去很具有吸引力,那么到底是怎么实现的呢?

假设我们的模型已经能够识别马,老虎和熊猫了,现在需要该模型也识别斑马,那么我们需要像爸爸一样告诉模型,怎样的对象才是斑马,但是并不能直接让模型看见斑马。所以模型需要知道的信息是马的样本、老虎的样本、熊猫的样本和样本的标签,以及关于前三种动物和斑马的描述。
今天就写到这里,感谢大家的观看。

你可能感兴趣的:(图像处理,活体检测)