一种基于卷积自注意力策略的人脸活体检测多分类器

文档序号:31166589发布日期:2022-08-17 08:46阅读:81来源:国知局
一种基于卷积自注意力策略的人脸活体检测多分类器

1.本发明涉及人脸识别领域,具体涉及一种基于卷积自注意力策略的人脸活体检测多分类器。


背景技术:

2.随着人脸识别相关技术的发展,人脸识别技术已经广泛应用于安防、支付等领域,伴随着人脸识别技术的广泛应用,其安全性也越发重要。事实上,人脸识别系统在面对特定攻击时仍然可能被虚假的人脸指纹信息欺骗,导致严重的后果。例如人脸支付系统如果被攻击,就会对相关用户产生严重的经济损失。所以,人脸活体检测技术作为人脸识别系统的前置模块,起到了保护其安全性的重要作用。
3.早期的欺骗攻击往往是打印攻击和重放攻击两种,即使用特定人脸打印成照片与使用电子屏幕播放特定人脸的视频,以此来达到攻击的目的。针对这两种攻击方式,一部分模型通过检测时间特征来检测人脸欺骗行为,如要求用户进行眨眼或扭头等动作;另一部分模型通过分析欺骗攻击的特有特征,通过手工设计特征描述符,并将提取到的特征通过svm等分类器,实现对真假人脸的区分。
4.随着相关技术的发展,人脸欺骗攻击的攻击方式也越来越多,例如攻击者开始通过3d打印特定的面具进行攻击,或对面部画上特定的妆容进行攻击同时由于深度神经网络在计算机视觉领域表现出了优异的性能。所以人们开始将深度神经网络引入人脸活体检测领域,深度神经网络模型通过卷积、注意力机制等手段,实现对欺骗攻击特征的自动提取,且其提取到的特征展现出了极高的准确度。这些方法往往通过以卷积神经网络(cnn)为主体,设计相应的结构,如部分方法通过设计一种双流网络,同时从欺骗样本中提取空域特征以及时域的rppg特征,从而实现对欺骗攻击的有效检测。
5.现有技术往往将人脸欺骗攻击检测视为一个二分类问题,即相关模型仅仅关注其是否为欺骗人脸,而不关注其具体的欺骗攻击种类。在早期,由于攻击手段相对匮乏,所以将其视为二分类问题是合理的。但是随着攻击技术的发展,攻击的方式越来越多,攻击的目的也越来越多,不同的攻击方式往往反映了攻击者的技术能力、资金支持力度,同时辨别不同的攻击方式,也有利于系统进行更合理的处理策略。由于之前的活体检测方法将检测视为二分类问题,所以其无法对具体攻击方式进行有效区分,这使得其难以适应越来越多的攻击方式,相关人员只能盲目低效地使用相同的策略来处理所有人脸欺骗攻击。
6.同时由于传统的cnn模型,无法对长距离的特征进行有效提取,所以在此之前的人脸活体检测模型,大多无法对长距离特征进行有效利用,所以其难以实现有效地细粒度分类。我们为了解决这个问题,将自注意力机制引入了人脸活体检测中,从而实现了在准确识别真假人脸的基础上,对欺骗攻击具体种类进行有效检测。
7.此外也有少量同样基于自注意力的人脸欺骗攻击检测方法,但是这些方法往往使用线性映射达到相关特征提取的目的,这种特征提取方式无法很好地利用图像中的局部特征,同时需要消耗大量的算力,使得其再人脸活体检测领域中应用的价值不高。


技术实现要素:

8.针对现有的人脸欺骗攻击检测方法无法对具体攻击方式进行有效区分,这使得其难以适应越来越多的攻击方式的问题,本发明提出一种基于卷积自注意力策略的人脸活体检测多分类器。
9.本发明的方法如下:
10.步骤一,对输入图像进行增广,将输入图像迁移到不同的风格中,同时最大程度保留图像原本的关键信息;
11.步骤二,将transformer模型中将query、key、value的计算方式转化为卷积操作,并且将key单独进行卷积处理后再进行叠加,将步骤一中增广后的图像导入transformer模型进行处理;
12.步骤三,将步骤二中处理好的特征图以mlp结构进行降维,以降维的结果通过softmax层判断置信度,置信度最高的值为判定分类结果:
13.result=max(softmax(linear(linear(linear(youtputfinal)))))。
14.作为优选,步骤一中图像的数据增广包括以下子步骤:子步骤一一,使用卷积核大小为3,步长为1的卷积对输入图像进行处理:
15.y
feature1
=conv2d(xinput,stride=1);
16.子步骤一二,使用卷积核大小为3,步长为1的卷积对第一步的输出进行处理,并放入第一条流:y
feature2
=conv2d(conv2d(y
feature1
,stride=1),stride=1);
17.子步骤一三,使用卷积核大小为3,步长为2的卷积对第一步的输出进行处理,并放入第二条流:y
feature3
=conv2d(conv2d(y
feature1
,stride=2),stride=1);
18.子步骤一四,使用卷积核大小为3,步长为4的卷积对第一步的输出进行处理,并放入第三条流:y
feature4
=conv2d(conv2d(y
feature1
,stride=4),stride=1);
19.子步骤一五,将第二和第三条流中的特征图,使用双线性插值,将尺度提升到与输入图像相同,并将三条流的输出拼接到一起:
20.y
featurecat
=concat(y
feature2
,concat(bilinearupsampling(y
feature3
),bilinearupsampling(y
feature4
)));
21.子步骤一六,使用卷积核大小为3,步长为1的卷积将上一步输出的特征图维度降低一半:
22.y
final
=conv2d(conv2d(y
featurecat
,stride=1),stride=1)。
23.使用一个三流网络对图像中不同类型的风格特征进行提取,然后将这些不同的特征进行融合,从而得到不同风格特征的图像。每一个并行的分支流是依据卷积操作的空间金字塔特性进行设计,将图像转换为不同的尺度,从而获取到从低维到高维不同维度的特征,其中低维特征一般为纹理、物体边缘等特征,中间维度特征一般为嘴唇、眼睛等色块特征,高维特征一般为身份信息等抽象特征。风格迁移的三个流中分别对应的这三大类特征,从而可以很好地在保留原始图像关键信息的基础上进行将其迁移到不同风格,从而实现增广的目的。
24.作为优选,步骤二中使用了三个自注意力块,并且将自注意力块将query、key、value的计算方式,从线性映射换成了卷积操作,的详细步骤如下:
25.子步骤二一,使用卷积核大小为3,步长为2的卷积对输入图像进行处理,得到key:
26.key=conv(x
input
,stride=2);
27.子步骤二二,使用卷积核大小为3,步长为2的卷积对输入图像进行处理,得到value:
28.value=conv(x
input
,stride=2);
29.子步骤二三,使用卷积核大小为3,步长为1的卷积对输入图像进行处理,得到query:
30.query=conv(x
input
,stride=1);
31.子步骤二四,将key和query进行点乘,得到权重矩阵:
[0032][0033]
子步骤二五,将权重矩阵与key矩阵进行叠加,然后使用卷积核大小为3,步长为1的卷积对叠加矩阵进行处理,得到注意力矩阵:
[0034]
attention=conv(concat(weightmatrix,key),stride=1);
[0035]
子步骤二六,将注意力矩阵与value进行点乘得到输出的特征图:
[0036][0037]
这样可以利用卷积对局部特征的提取能力,有效提取图像中的局部特征,同时由于后续自注意力机制的存在,使得其可以继续保留对长距离特征提取能力。此外,由于在此前的注意力机制中key之间的相对关系没有被很好的利用,所以我们将key单独进行卷积处理后再进行叠加,从而使得整个注意力机制中可以将key之间的相对关系充分利用。
[0038]
在步骤三中我们使用一个简单的mlp结构对我们得到的特征进行降维,从而得到我们所需要的每个类别的置信度,其中mlp使用三层,第一层的输入维度与最后一个自注意力块的输出维度相同,第二层我们将其维度降维第一层的一半,最后一层将维度降到与我们所需要的类别数量相同。通过一个softmax层即可得到每个类别的置信度,其中第一个类别为真实人脸,其他类别为欺骗人脸的细粒度类别。
[0039]
本发明的实质性特点在于:人脸活体检测不再局限于二分类任务,我们仅需要进行一次检测就可以具体的攻击类别。在确保充分人脸欺骗细粒度检测能力的基础上拥有较好的泛化性。相比其他基于自注意力机制的人脸欺骗攻击检测方式,对数据集数量和算力的需求更少。
附图说明
[0040]
图1本发明的整体结构图.
[0041]
图2本发明的数据增广结构图;
[0042]
图3本发明的数据增广示意图;
[0043]
图4本发明的卷积自注意力结构图;
[0044]
图5本发明的卷积自注意力示意图。
具体实施方式
[0045]
下面通过具体实施例,并结合附图,对本发明的技术方案作进一步的具体说明。
[0046]
实施例1
[0047]
如图1所示,我们的人脸活体检测方法主要分为三个主要部分
[0048]
第一部分是数据增广模块,其由一个多流卷积神经网络组成,依据卷积神经网络的空间金字塔分层特性,设计了该模块中不同流之间的相互关系。基于这些不同的特征,我们可以将输入图像迁移到不同的风格中,同时最大程度保留图像原本的关键信息。以此达到数据增广的目的。
[0049]
第二部分是卷积自注意力欺骗特征提取模块,该部分基于计算机视觉领域中的transformer模型进行改进,将卷积操作引入transformer模型,同时对transformer中的自注意力机制做出了一定改进,使得其更加适用于人脸活体检测任务。由于原始transformer网络中使用线性映射作为特征提取的主要手段,但是线性映射在人脸活体检测任务中存在以下两个缺点:1.线性映射无法很好地利用图像中的局部特征,2.线性映射需要消耗大量的算力。所以我们在该部分,使用卷积操作代替原本的线性映射操作。同时由于在原始的自注意力机制中,key中不同块之间的相对关系并没有被很好地利用,所以我们对自注意力机制的运算同样进行了一定的修改。该模块中会将该卷积自注意力机制重复三轮,三轮中计算方式完全一样,其中第一轮的输入为增广后的图像,后两轮的输入为前一轮的输出。
[0050]
第三部分中我们引入了一个多层感知机,我们使用第二部分输出的特征图,作为该多层感知机的输入,通过对上一步提取到的特征进行进一步降维,从而得到我们对于每一个具体分类的置信度。
[0051]
如图2和图3所示,在第一部分数据增广模块中,我们使用一个三流网络对图像中不同类型的风格特征进行提取,然后将这些不同的特征进行融合,从而得到不同风格特征的图像。每一个并行的分支流是依据卷积操作的空间金字塔特性进行设计,将图像转换为不同的尺度,从而获取到从低维到高维不同维度的特征,其中低维特征一般为纹理、物体边缘等特征,中间维度特征一般为嘴唇、眼睛等色块特征,高维特征一般为身份信息等抽象特征。风格迁移的三个流中分别对应的这三大类特征,从而可以很好地在保留原始图像关键信息的基础上进行将其迁移到不同风格,从而实现增广的目的。整体步骤如下:
[0052]
1)使用卷积核大小为3,步长为1的卷积对输入图像进行处理
[0053]yfeature1
=conv2d(x
input
,stride=1)
[0054]
2)使用卷积核大小为3,步长为1的卷积对第一步的输出进行处理,并放入第一条流
[0055]yfeature2
=conv2d(conv2d(y
feature1
,stride=1),stride=1)
[0056]
3)使用卷积核大小为3,步长为2的卷积对第一步的输出进行处理,并放入第二条流
[0057]yfeature3
=conv2d(conv2d(y
feature1
,stride=2),stride=1)
[0058]
4)使用卷积核大小为3,步长为4的卷积对第一步的输出进行处理,并放入第三条流
[0059]yfeature4
=conv2d(conv2d(y
feature1
,stride=4),stride=1)
[0060]
5)将第二和第三条流中的特征图,使用双线性插值,将尺度提升到与输入图像相
同,并将三条流的输出拼接到一起
[0061]yfeaturecat
[0062]
=concat(y
feature2
,concat(bilinearupsampling(y
feature3
),bilinearupsampling(y
feature4
)))
[0063]
6)使用卷积核大小为3,步长为1的卷积将上一步输出的特征图维度降低一半
[0064]yfinal
=conv2d(conv2d(y
featurecat
,stride=1),stride=1)
[0065]
在第二部分中,我们使用了三个自注意力块,每个自注意力块的内部如图4和图5所示,相比传统的自注意力机制,我们将query、key、value的计算方式,从线性映射换成了卷积操作,这样可以利用卷积对局部特征的提取能力,有效提取图像中的局部特征,同时由于后续自注意力机制的存在,使得其可以继续保留对长距离特征提取能力。此外,由于在此前的注意力机制中key之间的相对关系没有被很好的利用,所以我们将key单独进行卷积处理后再进行叠加,从而使得整个注意力机制中可以将key之间的相对关系充分利用。整体步骤如下:
[0066]
1)使用卷积核大小为3,步长为2的卷积对输入图像进行处理,得到key
[0067]
key=conv(x
input
,stride=2)
[0068]
2)使用卷积核大小为3,步长为2的卷积对输入图像进行处理,得到value
[0069]
value=conv(x
input
,stride=2)
[0070]
3)使用卷积核大小为3,步长为1的卷积对输入图像进行处理,得到query
[0071]
query=conv(x
input
,stride=1)
[0072]
4)将key和query进行点乘,得到权重矩阵
[0073][0074]
5)将权重矩阵与key矩阵进行叠加,然后使用卷积核大小为3,步长为1的卷积对叠加矩阵进行处理,得到注意力矩阵
[0075]
attention=conv(concat(weightmatrix,key),stride=1)
[0076]
6)将注意力矩阵与value进行点乘得到输出的特征图
[0077][0078]
在第三部分中,我们使用一个简单的mlp结构对我们得到的特征进行降维,从而得到我们所需要的每个类别的置信度,其中mlp使用三层,第一层的输入维度与最后一个自注意力块的输出维度相同,第二层我们将其维度降维第一层的一半,最后一层将维度降到与我们所需要的类别数量相同。然后通过一个softmax层即可得到每个类别的置信度,其中第一个类别为真实人脸,其他类别为欺骗人脸的细粒度类别。其中置信度最高的类别即为模型的预测结果。
[0079]
result=max(softmax(linear(linear(linear(y
outputfinal
)))))。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1