基于特征空间约束的人脸欺骗检测方法

文档序号:26174438发布日期:2021-08-06 18:19阅读:98来源:国知局
基于特征空间约束的人脸欺骗检测方法

本发明属于人脸识别领域,涉及一种基于特征空间约束的人脸欺骗检测方法。



背景技术:

随着科学技术的进步,人脸识别技术已经被广泛的应用在日常生活中,如人脸支付、考勤打卡、身份识别、车站安检、快递领取等。人脸识别技术的广泛应用给人们的生活带来了极大的便利,但是与此同时人脸识别技术也给人们的个人隐私和财产安全带来了极大的威胁。在人脸识别系统中,当具有合法用户的人脸欺骗在视觉上与真实人脸极其接近时,人脸识别系统很有可能会被攻破,造成个人隐私和财产安全的极大损失。比如2019年10月17日,多家媒体报道,浙江嘉兴外国语学院的小学生利用父母的纸质照片成功打开了小区里的智能快递柜,取出快递。还有2019年12月12日美国《财富》杂志报道,美国圣地亚哥的一家人工智能公司kneron宣称他们用一种特制的3d面具,成功欺骗过荷兰最大机场的一台自助终端机以及中国火车站的人脸识别系统。由此可见,目前人脸识别系统并未达到安全的标准。因此,如何在人脸识别系统中成功检测各种人脸欺骗是目前人脸识别技术领域必须要解决的问题。

目前学术界提出了各种人脸欺骗检测的方法,有基于外观纹理信息的检测方法、有基于时间序列信息的检测方法、有基于三维深度信息的检测方法、也有基于其它特征信息检测的方法。总的来说,近几年,根据特征提取方法的不同,人脸欺骗检测大致可以分为两类,一类是基于手工设计特征提取的传统方法,一类是近几年在模式识别领域迅速崛起的卷积特征提取方法。

基于手工设计特征的方法包括基于图像纹理信息分析方法(基于fourier频谱分析和基于颜色纹理分析)、基于运动信息分析方法(基于运动光流分析和人机交互分析)、基于深度信息分析方法(基于结构光深度信息分析和基于tof深度信息分析)以及基于其它生物信息分析方法(如基于心率监测分析、图像质量分析和上下文情景分析)。对于早期人脸欺骗检测特征提取来说,主要采用特征提取算法有lbp(localbinarypatterns)、hog(histogramoforientedgridients)以及surf(speededuprobustfeatures)等,利用这些特征提取算法找到活体人脸与欺骗人脸之间的特征差异,然后根据这些差异来进行真假人脸的判别。这种手工设计特征提取的方式在深度学习没有被应用在图像识别领域之前是被人脸识别研究者广泛使用的,因为这种特征提取方式对特定的欺骗类型检测具有良好的效果。但是,基于手工设计特征提取的方法也有弊端,那就是对采集的环境、设备变化等都非常敏感,很容易因为这些变化使模型分类失败。简单地说,也就是基于手工设计特征提取的方法一般在同一数据集上训练和测试能够得到显著的分类性能,但是在跨数据集训练测试时,因为不同数据集之间采集环境和设备有所变化,跨数据集训练的模型在测试集上分类容易失败。所以,一些学者为了使模型能够在真实环境下具备良好的适用性和泛化性,就提出利用时间信息来确定当前人脸是否是活体人脸。针对于最常用的照片欺骗和视频欺骗,利用合法用户人为配合人脸识别系统指令,如眨眼、摇头等去检测当前人脸的真实性,保障系统具有较高的分类准确率和通用性。这也是前几年社会上人脸识别系统应用多为交互式人脸识别系统的主要原因。

基于深度卷积特征提取的方法是近几年在人脸识别领域兴起的一种特征提取方法,也是目前人脸欺骗检测比较有效的方法。与手工设计特征方法相比,深度学习方法以数据驱动的学习方式对图像特征进行学习,能够学习到更多一般性的特征,具备手工设计特征方法无法比拟的优势。在应对复杂环境以及未知的欺骗时,深度学习方法在鲁棒性、适用性、泛化性上都能呈现出较好的检测效果。近几年随着深度学习在人脸识别方向的应用,人脸欺骗检测也在2014年由yang等人首次引入深度学习方法,yang等人利用深度学习卷积神经网络(cnn,convolutionalneuralnetworks)对活体人脸和欺骗人脸提取特征,然后将提取到的特征放入svm分类器进行分类。yang等人在论文中除了在多个数据集上分析了cnn方法对人脸欺骗检测的效果,还在在论文中指出深度学习方法相比于手工设计特征方法,cnn可以捕获更多的线索信息。之后,众多学者看到卷积神经网络在人脸欺骗检测方面的优点,陆续又提出许多基于深度学习的人脸欺骗检测方法,例如2016年li等人提出了基于深层卷积神经网络(deeppartconvolutionalneuralnetwork,dpcnn)的欺骗检测方法。把每个卷积核都看成是局部滤波器,从人脸关键区域提取特征,基于强响应区域,从dpcnn中提取深层特征作为局部描述符来进行判断真假人脸。2017年lucena等人提出了修改yang等人网络结构的方法,进一步提高了检测精度;2018年liu等人提出了基于时间和空间双重监督的深度学习方法,实现了跨数据集下泛化能力的提升;2019年song等人利用深度学习与手工设计特征相结合的人脸欺骗检测方法,融合多种信息进一步提高了欺骗检测的效率;2020年rui等人提出的基于元学习的欺骗检测方法检测未知环境下的欺骗攻击,进一步提高了方法的泛化能力等。这些基于深度学习的欺骗检测方法再一次证明了深度学习在人脸欺骗检测方面的优势。

随着2014年yang等人首次将cnn应用在人脸欺骗检测方面,后来越来越多的学者利用cnn以及cnn的变形去解决人脸欺骗检测问题。他们大多将人脸欺骗检测作为一个二分类问题,使用cnn去学习高度辨别能力的模型。但是在基于深度学习的方法中,很多方法有时候容易产生过拟合现象,表现在分类上就是,在同一数据集上能够实现较高的准确率,当应用在现实生活场景中,大多分类效果不是很好。这之中有一个原因是基于深度学习方法和基于手工设计特征方法都存在的一个缺点,那就是对数据产生依赖,在区分真假人脸的时候,大多方法都是依据欺骗人脸所具备的特有欺骗特征和活体人脸所具备的活体特征,如边框、颜色、亮度、摩尔纹、伪像等。但是模型在学习的过程中很容易对某一特征进行过度学习,过分依赖某一特征,这样就容易造成模型泛化能力不强、普遍性比较差。

另外,针对于数据集来说,数据集中数据按二分类可分为真实人脸和欺骗人脸两类,但是在这种二分类中存在一个问题,那就是数据集中数据之间存在类间差异小,类内差异大问题。对于同一个体而言,欺骗和活体之间相似性较大,而对于同一类别而言,不同的个体之间差异性较大,这就导致在特征空间上特征之间呈现出同一类别距离远,同一个体距离近的现象,这对模型的分类准确率具有严重影响。

本发明就是针对于泛化能力和类间差异小和类内差异大的问题提出基于特征空间约束的方法,在一定程度上缓解类间差异大类内差异小的问题,适当的提升了泛化能力。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于特征空间约束的人脸欺骗检测算法,通过活体特征空间和欺骗特征空间的差异来区分真假人脸,并且利用欧氏距离在特征学习过程中将同一类别的人脸进行分布距离最小化,不同类别人脸进行分布距离最大化,使模型在学习过程中能够更好的区分真假人脸的特征,达到更好的分类效果。

为达到上述目的,本发明提供如下技术方案:

一种基于特征空间约束的人脸欺骗检测方法,包括以下步骤:

s1:对摄像头采集的训练集视频数据进行分帧采样;

s2:对分帧采样的人脸数据进行预处理;

s3:将预处理后的图像进行标签标注并输入到预训练的卷积神经网络进行特征提取;

s4:对提取的特征进行空间约束;

s5:进行模型训练,得到用于人脸欺骗检测的softmax模型分类器;

s6:采集测试集并将待测试的数据进行步骤s1和步骤s2的处理;

s7:将测试集预处理的数据输入所述softmax模型分类器中判断测试数据人脸的活体真假。

进一步,所述步骤s1中,采用数据集casia-fasd、msu-mfsd、replay-attack作为采集的数据,并将其中的训练集数据作为本方法的训练集,测试集数据作为本方法的测试集,并对训练集中的视频数据进行分帧采样,产生具有活体人脸和欺骗人脸图片数据的训练数据集。

进一步,在步骤s2中,所述预处理包括颜色空间转换、人脸检测、人脸分割和图像归一化处理;

所述颜色空间转换:利用opencv分帧采样的图片是(b,g,r)颜色通道顺序,而步骤s3中所述的预训练的卷积神经网络模型是针对(r,g,b)图像进行训练的,在训练网络之前,需要将数据集中bgr数据进行颜色空间转换得到rgb数据;

所述人脸检测:对进行图像颜色空间转换得到的人脸图像样本,采用基于haar特征的adaboost算法检测得到图像中对应的人脸区域;

所述人脸分割:将人脸检测所检测到的人脸区域进行定比扩展,截取128×128尺寸的人脸区域图像;

所述图像归一化:将人脸分割截取的人脸图像像素值归一化到0-1区间上。

进一步,步骤s3具体包括以下步骤:

s31:构建卷积神经网络模型:

所述卷积神经网络包括5个卷积块、3个全连接层以及一个softmax层;每个卷积块中包含三个卷积层,一个归一化层,一个激活层,一个池化层,激活层激活函数采用relu函数;所述归一化层用于保证卷积神经网络在输出数值时稳定,防止梯度消失;输入图像的大小为128×128,包括(r,g,b)三个通道,网络框架中所有卷积层的卷积核均为3*3大小,卷积步长为1,所有池化层都是最大池化,且池化区域大小为2*2,池化步长为2,一次以32帧为一个小批量,第一个卷积块的输入是128×128×3的图像数据;第一个卷积块有32个卷积核,第二个卷积块有64个卷积核,第三个卷积块有128个卷积核,第四个和第五个卷积块有256个卷积核,三个全连接层都具有4096个神经元,且每个全连接层前都有一个dropout层,使得在前向传播时,让训练网络在模型训练的时候,随机选择隐藏神经元不工作,避免模型过拟合,第一个全连接层与第五个卷积块得到的特征图是全连接状态,第二个全连接层与第一个全连接层是全连接状态,第三个全连接层与第二个是全连接状态,这样经过全连接层后会得到一个4096维的特征向量,最后一层是softmax分类层,具有两个神经元,这两个神经元得到的结果分别对应人脸图像在真实人脸和欺骗人脸的二分类上的概率分布。

s32:将预处理后的图像进行标签标注,具体为:

将图像数据转换成网络可读的文件类型并标签标注,真实人脸对应1,欺骗人脸对应0,将标注好的数据添加到数据集合中,图像数据,标签数据一一对应;将训练集进行划分多个batch,每个batch具有32张图片的数据,即batchsize为32;

s33:将构建好的卷积神经网络在vgg-face数据集上进行预训练,进行参数初始化,

防止模型训练在人脸欺骗检测大数据集上学习过拟合;

s34:使用划分好的多个batch进行网络训练,设置初始学习率为0.0001,每1000步衰减一半,采用衰减学习率的方式是想在卷积神经网络训练模型时,改变学习率可以控制参数的更新速度,使用adam优化器对网络模型进行优化,网络训练进行20轮迭代。

进一步,所述步骤s4包括以下步骤:

对经过神经网络最后一个全连接层得到的特征向量进行距离约束,利用欧氏距离

其中lbatch_in(xa,xb)为类内损失,xa,xb是同一类别中的两个样本,m是单个batch中的样本总数,表示网络框架最后一个全连接层得到的特征图;

其中lbatch_out(xi,xj)为类间损失,xi,xj是不同类别中两个样本,m是单个batch的样本总数,表示网络框架最后一个全连接层得到的特征图;

对从每个batch中随机获取两个数据,对这两个数据进行标签判断,如果标签相同,将两个数据做欧氏距离,值叠加到lbatch_in上,如果这两个数据标签不同,同样对两个数据作欧氏距离,将值叠加到lbatch_out上,然后在每个batch上将叠加的类内损失lbatch_in和叠加的类间损失lbatch_out做差,值作为整个batch上的损失,最后在每轮迭代中将多个batch上的损失进行叠加作为总叠加损失函数;

每个batch上的损失函数定义为

lbatch_loss(xa,xb,xi,xj)=lbatch_in(xa,xb)-lbatch_out(xi,xj)

lbatch_in(xa,xb)是单个batch上类内损失函数的和,lbatch_out(xi,xj)是单个batch上类间损失函数的和。

整个训练集上总叠加损失函数(总成对损失函数)定义为

lbatch_loss(xa,xb,xi,xj)为单个batch上的损失函数,k为训练集划分的batch数目。

网络框架的总损失函数定义为

l总loss=lloss+lanti-spoof

lloss是网络模型在训练集上的总成对损失,lanti-spoof是网络模型的交叉熵损失,为

yi表示样本i的标签,活体样本为1,欺骗样本为0,pi表示样本i预测为活体的概率;

利用损失函数最小化调整网络模型训练学习的权值参数,获得训练后的人脸欺骗检测网络模型。

进一步,步骤s5中所述模型训练包括:

给softmax设置阈值,单张图片数据的结果分数大于阈值的表示为活体人脸,小于阈值的表示为欺骗人脸,通过训练网络模型,多次迭代优化直到人脸欺骗检测网络收敛,直至迭代收敛,人脸欺骗检测正确率的迭代标准达到最高值,获得人脸欺骗检测卷积神经网络模型并保存网络训练模型,训练结束。

进一步,步骤s6中先将测试集中的视频数据进行分帧采样,产生具有活体人脸和欺骗人脸图片数据的测试数据集。然后将测试集数据进行同步骤s2的预处理,所述预处理包括颜色空间转换、人脸检测、人脸分割和图像归一化处理;

进一步,步骤s7中先将测试集数据送入步骤s5训练的网络模型分类器,判断测试数据是活体人脸还是欺骗人脸。再统计测试集中每帧人脸图像活体人脸与欺骗人脸的个数,数量多的作为分帧原始视频的标签分类结果,以作为实时性摄像头采集人脸的结果。

本发明的有益效果在于:本发明利用卷积神经网络进行特征提取,并在提取到的特征空间上进行特征约束,在同类别数据之间进行距离最小化,非同类别数据之间进行距离最大化,缓解了人脸欺骗检测中真假人脸数据之间的类间距离小,类内距离大的问题,进一步提升了人脸欺骗检测网络模型的泛化能力。

本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。

附图说明

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:

图1为基于特征空间约束的人脸欺骗检测方法流程示意图;

图2为卷积神经网络结构示意图。

图3为特征约束流程图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

请参阅图1~图3,图1所示为一种基于特征空间约束的人脸欺骗检测方法,步骤如下:

步骤1:本发明采用目前人脸欺骗检测方向公开的数据集casia-fasd、msu-mfsd、replay-attack作为采集的图像数据,采用数据集中的训练集数据作为本发明的训练集,测试集合作为本发明的数据集合,并对训练集中的视频数据进行分帧采样,产生具有活体人脸和欺骗人脸图片数据的训练数据集。

步骤2:对分帧采样的训练集人脸数据进行预处理,预处理包括颜色空间转换、人脸检测、人脸分割、图像归一化处理;

1.颜色空间转换,利用opencv分帧采样的图片是(b,g,r)颜色通道顺序,而这里网络模型是主要是针对于(r,g,b)图像进行训练的,在训练网络之前,需要对于数据集中bgr数据进行颜色空间转换。

2.人脸检测,对进行图像颜色空间转换得到的人脸图像样本,采用基于haar特征的adaboost算法检测得到图像中对应的人脸区域。

3.人脸分割,将人脸检测所检测到的人脸区域进行定比扩展,截取128×128尺寸的人脸区域图像;

4.图像归一化,将人脸分割截取的人脸图像像素值归一化到0-1区间上。

步骤3,包括网络模型构建和图像标注与处理。

1.网络模型构建:如图2所示,设计一个卷积神经网络的网络架构,该网络包括5个卷积块、3个全连接层以及一个softmax层;每个卷积块中包含三个卷积层,一个归一化层,一个激活层,一个池化层,激活层激活函数采用relu函数。归一化层,保证卷积神经网络在输出数值时稳定,防止梯度消失。输入图像的大小是128×128,包括(r,g,b)三个通道,网络框架中所有卷积层的卷积核都是3*3大小,卷积步长为1,所有池化层都是最大池化,且池化区域大小为2*2,池化步长为2,一次以32帧为一个批量,则第一个卷积块的输入是128×128×3的图像数据;第一个卷积块有32个卷积核,第二个卷积块有64个卷积核,第三个卷积块有128个卷积核,第四个和第五个卷积块有256个卷积核,三个全连接层都是具有4096个神经元,且每个全连接层前都有一个dropout层,使得在前向传播时,让训练网络在模型训练的时候,随机选择隐藏神经元不工作,避免模型过拟合,第一个全连接层与第五个卷积块得到得特征图是全连接状态,第二个全连接层与第一个全连接层是全连接状态,第三个全连接层与第二个是全连接状态,这样经过全连接层后会得到一个4096维的特征向量,最后一层是softmax分类层,具有两个神经元,这两个神经元两个结果就是对应着人脸图像在真实人脸和欺骗人脸的二分类上的概率分布。

2.网络结构设计完成后,将对预处理后的图像进行进一步处理,将图像数据转换成网络可读的文件类型并标签标注,真实人脸对应1,欺骗人脸对应0,将标注好的数据添加到数据集合中,图像数据,标签数据一一对应。而且需要将训练集进行划分多个batch,每个batch具有32张图片的数据也就是batchsize为32。

3.将设计好的网络在vgg-face数据集上先进行预训练,进行参数初始化,防止模型训练在人脸欺骗检测大数据集上学习过拟合。

4.然后使用划分好的多个batch进行网络训练,初始学习率设置为0.0001,每1000步衰减一半,采用衰减学习率,在卷积神经网络模型训练时,改变学习率可以控制参数的更新速度,使用adam优化器进行网络模型优化,模型训练采用20轮训练集数据迭代。

步骤4,对经过神经网络最后一个全连接层得到的特征向量进行距离约束,利用欧氏距离

其中lbatch_in(xa,xb)为类内损失,xa,xb是同一类别中的两个样本,m是单个batch中的样本总数,表示网络框架最后一个全连接层得到的特征图;

其中lbatch_out(xi,xj)为类间损失,xi,xj是不同类别中两个样本,m是单个batch的样本总数,表示网络框架最后一个全连接层得到的特征图;

如图3所示,对从每个batch中随机获取两个数据,对这两个数据进行标签判断,如果标签相同,将两个数据做欧氏距离,值叠加到lbatch_in上,如果这两个数据标签不同,同样对两个数据作欧氏距离,将值叠加到lbatch_out上,然后在每个batch上将叠加的类内损失lbatch_in和叠加的类间损失lbatch_out做差,值作为整个batch上的损失,最后在每轮迭代中将多个batch上的损失进行叠加作为总叠加损失函数;

每个batch上的损失函数定义为

lbatch_loss(xa,xb,xi,xj)=lbatch_in(xa,xb)-lbatch_out(xi,xj)

lbatch_in(xa,xb)是单个batch上类内损失函数的和,lbatch_out(xi,xj)是单个batch上类间损失函数的和。

整个训练集上总叠加损失函数(总成对损失函数)定义为

lbatch_loss(xa,xb,xi,xj)为单个batch上的损失函数,k为训练集划分的batch数目。

网络框架的总损失函数定义为

l总loss=lloss+lanti-spoof

lloss是网络模型在训练集上的总成对损失,lanti-spoof是网络模型的交叉熵损失,为

yi表示样本i的标签,活体样本为1,欺骗样本为0,pi表示样本i预测为活体的概率。

引入总体目标损失主要是针对在特征学习过程中,在空间距离上拉近同类样本特征之间的距离,拉远不同类样本特征之间的距离。另外,这种方式对于不同的欺骗特征具有平衡贡献的作用,有助于提升泛化能力。利用损失函数最小化调整网络模型训练学习的权值参数,获得训练后的人脸欺骗检测网络模型。

步骤5,给softmax设置阈值,单张图片数据的结果分数大于阈值的表示为活体人脸,小于阈值的表示为欺骗人脸,通过训练网络模型,多次迭代优化直到人脸欺骗检测网络收敛,直至迭代收敛,人脸欺骗检测正确率的迭代标准达到最高值,获得到人脸欺骗检测卷积神经网络模型并保存网络训练模型,训练结束。

步骤6,采集测试集合并将待测试的数据进行步骤1和步骤2的处理

步骤7,将步骤6处理后的数据输入softmax模型分类器,对分帧采样的图片数据进行活体与欺骗的判别,另外还可以统计测试集中每帧人脸图像活体人脸与欺骗人脸的个数,数量多的可以作为分帧原始视频的标签分类结果。这可以作为实时性摄像头采集人脸的结果。

网络参数详解

最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。

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