面具造假卷积神经网络训练方法及人脸活体检测方法与流程

文档序号:11287388阅读:235来源:国知局
面具造假卷积神经网络训练方法及人脸活体检测方法与流程

本发明涉及人脸活体检测领域,具体而言,涉及一种面具造假卷积神经网络训练方法及人脸活体检测方法。



背景技术:

由于人脸容易获取、非接触式、使用方便等优点,人脸识别受到人们的喜爱,广泛应用在门禁出入境管理系统、登录系统等。随着智能设备的普及,人脸易被他人获取,通过面具、照片或者视频对人脸识别系统进行攻击。因此,在人脸识别系统中,人脸活体检测变得非常重要,是保证用户安全的不可或缺的手段,也是人脸识别得到广泛推广的前提。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种面具造假卷积神经网络训练方法及人脸活体检测方法,以提供一种应对面具造假的人脸活体检测方法。

为了达到上述的目的,本发明实施例采用的技术方案如下所述:

第一方面,本发明实施例提供了一种面具造假卷积神经网络训练方法,所述方法包括:构建训练集,所述训练集包括面具造假视频和真人视频;获取面具造假视频和真人视频中的图像;通过人脸检测算法检测所述图像中的人脸;将所述人脸进行裁剪;对裁剪后出人脸图像进行归一化处理;将所述归一化后的人脸图像输入至卷积神经网络,所述卷积神经网络包括输入层、多个卷积层、relu层、max-pooling层、全连接层、dropout层和softmaxwithloss层;所述输入层将所述归一化后的人脸图像进行随机裁剪,将裁剪后的人脸图像水平翻转,得到特定像素的图像,将所述特定像素的图像送入多个卷积层中的第一个卷积层;所述第一个卷积层包括多个卷积核,所述第一个卷积层连接一个relu层和max-pooling层,所述特定像素的图像经过所述第一个卷积层后得到与所述第一个卷积层的卷积核对应数量的特征图像,所述relu层使部分神经元输出为0,造成稀疏性,所述max-pooling层对所述特征图像进行压缩,提取主要特征,所述特征图像进入第二个卷积层;所述第二个卷积层包括多个卷积核,所述第二个卷积层连接一个relu层和max-pooling层,所述特征图像经过所述第二个卷积层后得到与所述第二个卷积层的卷积核对应数量的特征图像,所述relu层使部分神经元输出为0,造成稀疏性,所述特征图像经过第二个max-pooling层后进而进入第三个卷积层;所述第三个卷积层包括多个卷积核,所述第三个卷积层连接一个relu层和max-pooling层,所述特征图像经过所述第三个卷积层后得到与所述第三个卷积层的卷积核对应数量的特征图像,所述relu层使部分神经元输出为0,造成稀疏性,所述特征图像经过第三个max-pooling层后进而进入第四个卷积层;所述第四个卷积层包括多个卷积核,所述第四个卷积层连接一个relu层和max-pooling层,随后连接两个全连接层,每个全连接层均依次连接一个relu层和dropout层,所述relu层使部分神经元输出为0,造成稀疏性,所述特征图像经过所述第四个卷积层后得到与所述第四个卷积层的卷积核对应数量的特征图像,经过第四个max-pooling层后进而进入两个全连接层以及与所述全连接层连接的relu层和dropout层,dropout层通过训练时,随机让卷积神经网络某些隐含层节点的权重不工作,dropout层之后依次连接一个全连接层和softmaxwithloss层,最后一个全连接层输出所述人脸图像的得分情况,将得分输入到最后一层softmaxwithloss层,得到属于面具造假和真人的概率以及该次迭代的损失。

进一步地,每一个所述卷积层和relu层之间均依次连接一个batchnorm层和一个scale层,所述batchnorm层将神经元的输出规范化到均值为0,方差为1,所述scale层逆转所述batchnorm层对特征的破坏。

进一步地,所述构建训练集的步骤包括:按照预定比例构建训练集和验证集,所述训练集和验证集均包括面具造假视频和真人视频。

进一步地,所述对裁剪后出人脸图像进行归一化处理的步骤包括:对裁剪后出人脸图像归一化到256×256像素。

进一步地,所述输入层包含rgb三个通道,大小为256×256,将训练集分为1000个batch,每个batch大小为128,所述特定像素的图像的像素为227×227。

进一步地,所述第一个卷积层包括96个卷积核,每个卷积核的大小为7×7,卷积操作的步长为2,经过第一个卷积层后得到96个像素为111×111的特征图像,经过第一个max-pooling层后,得到96个像素为55×55的特征图像,所述第一个max-pooling层的大小为3×3,步长为2。

进一步地,所述第二个卷积层包括256个卷积核,每个卷积核的大小为5×5,卷积操作的步长为2,经过第二个卷积层后得到256个像素为26×26的特征图像,经过第二个max-pooling层后,得到256个像素为26×26的特征图像,所述第二个max-pooling层的大小为3×3,步长为1,边界填充为1。

进一步地,所述第三个卷积层包括192个卷积核,每个卷积核的大小为3×3,边界补充1,卷积操作的步长为1,经过第三个卷积层后得到192个像素为26×26的特征图像,经过第三个max-pooling层后,得到192个像素为26×26的特征图像,所述第三个max-pooling层的大小为3×3,步长为1,边界填充为1。

进一步地,所述第四个卷积层包括192个卷积核,每个卷积核的大小为3×3,边界补充1,卷积操作的步长为1,经过第四个卷积层后得到192个像素为26×26的特征图像,经过第四个max-pooling层后,得到192个像素为13×13的特征图像,所述第四个max-pooling层的大小为3×3,步长为2。

第二方面,本发明实施例提供了一种基于面具造假的人脸活体检测方法,所述方法包括:获取人脸图像;通过人脸检测算法检测所述图像中的人脸;将所述人脸进行裁剪;对裁剪后出人脸图像进行归一化处理;将所述归一化后的人脸图像输入至卷积神经网络,所述卷积神经网络包括输入层、多个卷积层、relu层、max-pooling层、全连接层、dropout层和softmax层;所述输入层将所述归一化后的人脸图像进行随机裁剪,将裁剪后的人脸图像水平翻转,得到特定像素的图像,将所述特定像素的图像送入多个卷积层中的第一个卷积层;所述第一个卷积层包括多个卷积核,所述第一个卷积层连接一个relu层和max-pooling层,所述特定像素的图像经过所述第一个卷积层后得到与所述第一个卷积层的卷积核对应数量的特征图像,所述relu层使部分神经元输出为0,造成稀疏性,所述max-pooling层对所述特征图像进行压缩,提取主要特征,所述特征图像进入第二个卷积层;所述第二个卷积层包括多个卷积核,所述第二个卷积层连接一个relu层和max-pooling层,所述特征图像经过所述第二个卷积层后得到与所述第二个卷积层的卷积核对应数量的特征图像,所述relu层使部分神经元输出为0,造成稀疏性,所述特征图像经过第二个max-pooling层后进而进入第三个卷积层;所述第三个卷积层包括多个卷积核,所述第三个卷积层连接一个relu层和max-pooling层,所述特征图像经过所述第三个卷积层后得到与所述第三个卷积层的卷积核对应数量的特征图像,所述relu层使部分神经元输出为0,造成稀疏性,所述特征图像经过第三个max-pooling层后进而进入第四个卷积层;所述第四个卷积层包括多个卷积核,所述第四个卷积层连接一个relu层和max-pooling层,随后连接两个全连接层,每个全连接层均依次连接一个relu层和dropout层,所述特征图像经过所述第四个卷积层后得到与所述第四个卷积层的卷积核对应数量的特征图像,所述relu层使部分神经元输出为0,造成稀疏性,所述特征图像经过第四个max-pooling层后进而进入两个全连接层以及与所述全连接层连接的relu层和dropout层,dropout层通过训练时,随机让卷积神经网络某些隐含层节点的权重不工作,dropout层之后依次连接一个全连接层和softmax层,最后一个全连接层输出所述人脸图像的得分情况,将得分输入到最后一层softmax层,得到属于面具造假和真人的概率。

本发明实施例提供的面具造假卷积神经网络训练方法及人脸活体检测方法,通过训练基于造假面具的卷积神经网络,对造假面具进行学习,为人脸识别时抵御面具造假攻击提供保护,保护人脸识别的安全。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是本发明实施例提供的面具造假卷积神经网络训练方法的流程示意图。

图2是卷积神经网络的训练流程图。

图3是本发明实施例中训练的卷积神经网络模型的示意图。

图4是本发明实施例提供的一种基于面具造假的人脸活体检测方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

请参照图1,是本发明实施例提供的面具造假卷积神经网络训练方法的流程示意图。该方法包括以下步骤:

步骤s110,构建训练集,训练集包括面具造假视频和真人视频。

当训练集不包括验证集时,步骤s101还包括按照预定比例构建训练集和验证集,所述训练集和验证集均包括面具造假视频和真人视频。训练集和验证集的比例自由配置,例如可以为8:2或7:3,本发明实施例对此不做限定。面具造假视频为录制的面具的视频,该面具与真人人脸相似度高,模拟用面具造假进行攻击的情景,真人视频为录制的真人的视频。

步骤s120,获取面具造假视频和真人视频中的图像。

从面具造假视频和真人视频中分别取出多张图像,比如隔3帧或者5帧取出一张图像,则一个视频总共取出:总帧数/3或者总帧数/5张图像。

步骤s130,通过人脸检测算法检测所述图像中的人脸。

人脸检测算法可以为现有的通用的人脸检测算法,如adaboost。

步骤s140,对人脸进行裁剪。

在对人脸进行裁剪过程中,利用人脸特征点定位的算法,找到人脸的准确区域,得到准确的人脸框,将该人脸框扩大,一般扩大1.8倍,将扩大后的人脸框对应的原图中的区域裁剪出来,裁剪出来的人脸既包括人脸,也包括一定的背景,一定的背景存在有利于分类真假视频。

步骤s150,对裁剪后出人脸图像进行归一化处理。

裁剪后的人脸图像经过归一化处理,归一化到256×256像素。

步骤s160,将归一化后的人脸图像输入至卷积神经网络,该卷积神经网络包括输入层、多个卷积层、relu层、max-pooling层、全连接层、dropout层和softmaxwithloss层。

步骤s170,对该卷积神经网络进行训练。

其中,归一化后的人脸图像首先进入输入层,请参照图2,是卷积神经网络的训练过程,包括以下步骤:

步骤s171,输入层将归一化后的人脸图像进行随机裁剪,将裁剪后的人脸图像水平翻转,得到特定像素的图像,将特定像素的图像送入多个卷积层中的第一个卷积层。

其中,输入层的图像包含rgb三个通道,且大小为256×256,将训练集分为1000个batch,每个batch大小为128。特定像素的图像的像素为227×227,将该batch内的图像打乱顺序送入第一个卷积层,该batch内的图像样本正负比例1:1,且均属于同一个人的人脸图像,以降低由于不同外貌特征造成的差异,使网络学习到由于真人和造假之间的本质特征,降低类内差异。

步骤s172,第一个卷积层包括多个卷积核,第一个卷积层连接一个relu层和max-pooling层,特定像素的图像经过第一个卷积层后得到与第一个卷积层的卷积核对应数量的特征图像,所述relu层使部分神经元输出为0,造成稀疏性,max-pooling层对特征图像进行压缩,提取主要特征,特征图像进入第二个卷积层。

在本实施例中,第一个卷积层的卷积核的个数为96个,每个卷积核的大小为7×7,卷积操作的步长为2,经过第一个卷积层后得到96个像素为111×111的特征图像,第一个max-pooling层的大小为3×3,步长为2,经过第一个max-pooling层后,得到96个像素为55×55的特征图像。作为优选的,每一个卷积层和relu层之间依次连接一个batchnorm层和一个scale层,经过batchnorm层,scale层,relu层并不改变特征图像的大小。当深度网络层次太多,信号和梯度越来越小,深层难以训练,被称作梯度弥散,也有可能越来越大,又被称作梯度爆炸,通过batchnorm层将神经元的输出规范化到均值为0,方差为1,scale层逆转所述batchnorm层对特征的破坏,以克服深度神经网络难以训练的弊病。由于深度网络在训练时,每一层的输入数据分布一直是在发生变化的,因为前面一层的参数更新会导致后面一层的输入数据的分布,batchnorm和scale可以解决训练时,网络中间层的数据分布发生改变的问题,batchnorm层是通过将神经元的输出规范化到:均值为0,方差为1,通过batchnorm层后,所有神经元都规范化到了一种分布,但输出限制在均值0方差1的分布又会使得网络的表达能力变弱,也破坏了前面层学习到的特征,所以加入scale层,通过加入学习到的重构参数,逆转对特征的破坏,逆转的程序由模型训练时调整。这样既将神经元做了规范化又保留前面层所学到的特征,由于输入变得稳定,促进了模型的收敛并一定程度上阻止了过拟合。通过逐层尺度归一,避免了梯度消失和梯度溢出,而且加速收敛,同时作为一种正则化技术也提高了泛化能力;相比使用sigmoidtanh作激活函数,计算量大,反向传播求误差梯度时,求导计算量也很大,并且sigmoidtanh函数容易饱和,出现梯度消失情况,即在接近收敛时,变换太缓慢,造成信息丢失。relu层会使部分神经元输出为0,造成稀疏性,不仅缓解了过拟合,也更接近真实的神经元激活模型克服了梯度消失,在没有无监督预训练(即训练网络的第一个隐藏层,再训练第二个…最后用这些训练好的网络参数值作为整体网络参数的初始值)的情况下相比sigmoid和tanh激活函数显著加快收敛。

步骤s173,第二个卷积层包括多个卷积核,第二个卷积层连接一个relu层和max-pooling层,特征图像经过第二个卷积层后得到与第二个卷积层的卷积核对应数量的特征图像,所述relu层使部分神经元输出为0,造成稀疏性,所述特征图像经过第二个max-pooling层后进而进入第三个卷积层。

第二个卷积层包括256个卷积核,每个卷积核的大小为5×5,卷积操作的步长为2,经过第二个卷积层后得到256个像素为26×26的特征图像,relu层使部分神经元输出为0,造成稀疏性,特征图像经过第二个max-pooling层后,得到256个像素为26×26的特征图像,第二个max-pooling层的大小为3×3,步长为1,边界填充为1。

步骤s174,第三个卷积层包括多个卷积核,第三个卷积层连接一个max-pooling层,特征图像经过第三个卷积层后得到与第三个卷积层的卷积核对应数量的特征图像,relu层使部分神经元输出为0,造成稀疏性,特征图像经过第三个max-pooling层后进而进入第四个卷积层。

第三个卷积层包括192个卷积核,每个卷积核的大小为3×3,边界补充1,卷积操作的步长为1,经过第三个卷积层后得到192个像素为26×26的特征图像,经过第三个max-pooling层后,得到192个像素为26×26的特征图像,第三个max-pooling层的大小为3×3,步长为1,边界填充为1。

步骤s175,第四个卷积层包括多个卷积核,第四个卷积层连接一个max-pooling层,随后连接两个全连接层,每个全连接层均依次连接一个relu层和dropout层,relu层使部分神经元输出为0,造成稀疏性,特征图像经过第四个卷积层后得到与第四个卷积层的卷积核对应数量的特征图像,经过第四个maxpooling层后进而进入两个全连接层以及与全连接层连接的relu层和dropout层。

第四个卷积层包括192个卷积核,每个卷积核的大小为3×3,边界补充1,卷积操作的步长为1,经过第四个卷积层后得到192个像素为26×26的特征图像,经过第四个max-pooling层后,得到192个像素为13×13的特征图像,第四个max-pooling层的大小为3×3,步长为2。

步骤s176,dropout层通过训练时,随机让卷积神经网络某些隐含层节点的权重不工作,dropout层之后依次连接一个全连接层和softmaxwithloss层,最后一个全连接层输出人脸图像的得分情况,将得分输入到最后一层softmaxwithloss层,得到属于面具造假和真人的概率以及当前迭代的损失。

dropout层消除减弱了神经元节点间的联合适应性,增强了泛化能力,dropout层通过训练模型时,随机让网络某些隐含层节点的权重不工作的方式防止模型过拟合,正则化手段,提高泛化能力。训练过程中,softmaxwithloss层包括softmax层和多维logisticloss层,softmax层将前面的得分情况映射为属于每一类的概率,之后接一个多维logisticloss层,这里得到的是当前迭代的损失。把softmax层和多维logisticloss层合并为一层保证了数值上的稳定,两个全连接层输出为512维特征。

请参照图3,是本发明实施例中训练过程中的卷积神经网络模型的示意图。本发明实施例提供的面具造假卷积神经网络训练方法通过训练基于造假面具的卷积神经网络,对造假面具进行学习,为人脸识别时抵御面具造假攻击提供保护,保护人脸识别的安全。

请参照图4,本发明实施例还提供了一种基于面具造假的人脸活体检测方法,该方法包括以下步骤:

步骤s210,获取人脸图像。

获取的人脸图像可以是通过门禁、电脑或者监控器等设备的摄像头获取的人脸图像。

步骤s220,通过人脸检测算法检测图像中的人脸。

步骤s230,将人脸进行裁剪.

步骤s240,对裁剪后出人脸图像进行归一化处理。

步骤s250,将归一化后的人脸图像输入至卷积神经网络,卷积神经网络包括输入层、多个卷积层、relu层、max-pooling层、全连接层、dropout层和softmax层。

步骤s260,对所述人脸图像进行识别。

其中,步骤s260的识别过程依据上述实施例训练的卷积神经网络进行,以得到人脸图像真假的概率。由于在前述实施例中已经对具体过程和原理作出陈述,此处不再赘述。

综上所述,本发明实施例提供了一种面具造假卷积神经网络训练方法及人脸活体检测方法,通过训练基于造假面具的卷积神经网络,对造假面具进行学习,为人脸识别时抵御面具造假攻击提供保护,保护人脸识别的安全。

在本申请所提供的实施例中,应该理解到,所揭露的方法,也可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的实施例的方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1