一种人脸活体检测方法
技术领域
本发明涉及计算机视觉、模式识别,生物特征识别等技术领域,特别是涉及人脸活体检测领域。
背景技术
人脸识别因其在实际生活中的易用性得到了国内外学者的广泛关注,目前基于人脸识别的应用越来越广泛,例如人脸考勤机、人脸通关***身份验证、门禁***、登录***、金融支付***等。在人脸识别***中,为防止有非法分子恶意伪造和窃取他人的人脸特征(如人脸照片、人脸视频片段、人脸面具等)用于身份认证,确保合法用户的信息和财产安全,人脸识别***中活体检测功能变得至关重要。
人脸活体检测技术的目的是区分摄像头前方是真实人脸还是非法分子伪造的假脸,防止非法分子对人脸识别***的攻击,确保人脸识别***的安全性。目前用于人脸活体检测的技术主要分为以下几类:
1.基于动作指令的交互式方法,这类方法主要是通过让待验证用户根据语音提示执行一些动作,例如眨眼、摇头、张嘴说话(如说随机数字)等,来判断是否是真人。这类方法存在验证速度慢、用户体验性不好的问题。
2.基于三维人脸图像建模技术,这类方法利用3D摄像头分析人脸区域数据,这类方法需要3D摄像头,计算量较大,大多数应用场景无法满足。
3.基于红外摄像头的活体检测技术,这类方法需要安装红外摄像头,硬件成本高,应用场景有诸多限制。
针对以上人脸活体检测方法的缺点和问题,我们提出一种基于局部二值卷积神经网络模型的人脸活体检测方法,不需要进行人机交互,也不需要安装其他摄像头,仅需要普通可见光摄像头,并且网络训练快,网络参数少,便于在嵌入式设备上移植和应用。
发明内容
(一)要解决的技术问题
针对实际环境下的问题,本发明提出一种基于局部二值卷积神经网络模型的人脸活体检测方法,不需要进行人机交互,也不需要安装其他摄像头,仅需要普通可见光摄像头,并且网络训练快,网络参数少,便于在嵌入式设备上移植和应用。
(二)技术方案
本发明提出的一种基于局部二值卷积神经网络模型的人脸活体检测方法的技术方案如下:
步骤S1,对采集的真假脸视频预处理得到对齐的人脸区域图片数据,将数据分为训练集和验证集两部分。步骤S2,对人脸真假脸训练集数据进行预处理后,利用局部二值卷积神经网络进行训练。步骤S3,利用训练集得到的模型对验证集图片进行预测,求得EER和对应的阈值。步骤S4,利用S2得到的模型对待测人脸进行预测得到判定为真脸的得分,根据阈值判断真假脸的类别。
本发明的有益效果:本发明针对人脸识别***中的人脸活体检测问题,不需要进行人机交互,仅需要普通可见光摄像头,并且网络训练快,网络参数少,便于在嵌入式设备上移植和应用。
附图说明
图1是基于局部二值卷积神经网络模型的人脸活体检测方法的***流程图;
图2是局部二值卷积神经网络的结构图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,并参照详细附图,对本发明进一步详细说明。但所描述的实施例子仅旨在便于对本发明的理解,而对其不起任何限定作用。
本发明基于局部二值卷积神经网络模型的人脸活体检测方法,。
图1是本发明的方法流程图,如图1所示,本发明提出的一种基于局部二值卷积神经网络模型的人脸活体检测方法包括以下几个步骤:
步骤S1,对采集的真假脸视频预处理得到对齐的人脸区域图片数据,将数据分为训练集和验证集两部分。
所述步骤S1中,对采集的真假脸视频进行预处理并分为训练集和验证集,具体步骤如下:
步骤S11,首先进行人脸关键点检测,得到每帧图像中人眼双眼中心点的坐标。
步骤S12,再利用仿射变换将人眼双眼中心点坐标固定到图片指定位置,将人脸区域从整张图片中裁剪出来,归一化到特定尺寸大小,将裁减好的人脸图片分为训练集和验证集。
步骤S2,对人脸真假脸训练集数据进行预处理后,利用局部二值卷积神经网络进行训练,得到训练后的模型,具体步骤如下:
步骤S21,对所述训练集数据进行预处理,采用随机裁剪方式进行数据增广,将训练集数据图片尺寸裁剪成与验证集图片尺寸相同,再将像素值大小归一化到0-1之间,得到预处理后的训练集数据。
步骤S22,将所述步骤S21预处理后的训练集数据输入局部二值卷积神经网络进行训练,所述局部二值卷积神经网络包括卷积层、Batch Norm层、ReLU层、多个局部二值卷积模块、avg-pooling层、Dropout层、全连接层和Softmax WithLoss层,其具体操作步骤如下:
步骤S221,将所述训练集数据输入到局部二值卷积神经网络后,首先送进一个卷积核大小为3*3的卷积层,所述卷积层后面连接一个Batch Norm层和一个ReLU层,所述训练集数据经卷积层后得到跟卷积核数目相同的特征图,再经Batch Norm层将输出特征图规范化到均值0,方差1,再经ReLU层使部分输出为0,使特征图稀疏化。
步骤S222,将所述步骤S221得到的特征图送进多个局部二值卷积模块,一个局部二值卷积模块包含一个Batch Norm层、一个局部二值卷积层、一个ReLU层和一个卷积核大小为1*1的卷积层,并且将所述局部二值卷积模块做shortcut连接,形成一个局部二值卷积模块。所述一个局部二值卷积模块中,一个局部二值卷积层是一个预先定义好的稀疏二值卷积滤波器,参数是固定的不可学习的,一个卷积核大小为1*1的卷积层的参数是可以学习的。其计算公式如下:
其中,t是输出通道数,s是输入通道数,输入的特征图通过一个Batch Norm层后得到Xl;然后通过一个有m个固定参数bi,i∈[m]的局部二值卷积层,产生m个不同的特征图;然后再通过一个利用非线性激活函数σ的ReLU层,得到m个二进制特征图;再通过m个可学习参数vl,i,i∈[m]的1*1的卷积层,得到输出特征图Xl+1。
步骤S223,将所述步骤S222得到的特征依次送入avg-pooling层、Dropout层、全连接层、ReLU层、Dropout层、全连接层和Softmax WithLoss层。
步骤S3,利用训练集得到的模型对验证集图片进行预测,求得EER和对应的阈值,其具体操作步骤如下:
步骤S31,利用所述步骤S2得到的训练模型,对验证集图片数据进行预测,求取对测试集每张图片样本的得分。
步骤S32,求取验证集上真假脸两类的等概率误差EER和EER对应的判断阈值。
步骤S4,利用S2得到的模型对待测人脸进行预测得到判定为真脸的得分,根据阈值判断真假脸的类别。其具体操作步骤如下:
步骤S41,首先对待测图像进行人脸关键点检测,得到每帧图像中人眼双眼中心点的坐标,再利用仿射变换将人眼双眼中心点坐标固定到同验证集人眼双眼中心点坐标相同的位置,将人脸区域从整张图片中裁剪出来,裁剪尺寸与验证集相同。
步骤S42,将所述裁剪得到的待测图片,利用所述步骤S2得到的训练模型进行预测,得到预测分数,根据所述步骤S3求得的判断阈值进行真假脸的判断。
实施案例:
为了详细说明本发明的具体实施方式及验证本发明的有效性,我们将本发明提出的方法应用于一个公开的人脸活体检测数据库,即Oulu-NPU人脸活体检测数据库。该数据库包括55个人的在3种不同光照条件,利用2种不同的照片打印方式和2种不同的视频播放屏幕录制假脸,用6种不同型号的手机对真假脸进行视频录制。在我们的实施例中,我们采用所述Oulu-NPU数据库中的评估协议1,采用训练集中1,2光照条件数据子集作为本实施例的训练集,验证集中1,2光照条件数据子集作为本实施例的验证集,测试集中3光照条件数据子集作为本实施例的测试集。如图1所示,本发明提出的一种基于局部二值卷积神经网络模型的人脸活体检测方法包括以下几个步骤:
步骤S1,对本实施例中的训练集和本实施例中的验证集根据所述Oulu-NPU数据库中的评估协议1确定,并进行人脸区域裁剪,得到预处理后的训练集和验证集。具体步骤如下:
步骤S11,所述本实施例Oulu-NPU数据库中已包含每帧图像中人眼双眼中心点的坐标。
步骤S12,利用仿射变换将人眼双眼中心点坐标固定到图片指定位置,训练集中双眼中心点坐标为[46 61;98 61],将人脸区域从整张图片中裁剪出来,归一化到特定尺寸144*144大小;验证集中双眼中心点坐标为[38 53;90 53],将人脸区域从整张图片中裁剪出来,归一化到特定尺寸128*128大小。
步骤S2,对人脸真假脸训练集数据进行预处理后,利用局部二值卷积神经网络进行训练,得到训练后的模型,具体步骤如下:
步骤S21,对所述训练集数据进行预处理,采用随机裁剪方式进行数据增广,将训练集数据图片尺寸裁剪成与验证集图片尺寸128*128相同大小,再将像素值大小归一化到0-1之间,得到预处理后的训练集数据。
步骤S22,将所述步骤S21预处理后的训练集数据输入局部二值卷积神经网络进行训练,所述局部二值卷积神经网络包括卷积层、Batch Norm层、ReLU层、两个局部二值卷积模块、avg-pooling层、Dropout层、全连接层和Softmax WithLoss层,其具体操作步骤如下:
步骤S221,将所述训练集数据输入到局部二值卷积神经网络后,首先送进一个卷积核大小为3*3的卷积层,卷积核数目为64,所述训练集数据经卷积层后得到跟卷积核数目相同的64个特征图,所述卷积层后面连接一个Batch Norm层和一个ReLU层。
步骤S222,将所述步骤S221得到的特征图送进两个局部二值卷积模块,一个局部二值卷积模块包含一个Batch Norm层、一个局部二值卷积层、一个ReLU层和一个卷积核大小为1*1的卷积层,并且将所述局部二值卷积模块做shortcut连接,形成一个局部二值卷积模块。所述一个局部二值卷积模块中,一个局部二值卷积层是一个预先定义好的稀疏二值卷积滤波器,卷积核大小为3*3,卷积核数目为512个,参数是固定的不可学习的,后面跟一个卷积核大小为1*1的卷积层,卷积核数目为64,参数是可以学习的。其计算公式如下:
其中,t是输出通道数,s是输入通道数,输入的特征图通过一个Batch Norm层后得到Xl;然后通过一个有m个固定参数bi,i∈[m]的局部二值卷积层,产生m个不同的特征图;然后再通过一个利用非线性激活函数σ的ReLU层,得到m个二进制特征图;再通过m个可学习参数vl,i,i∈[m]的1*1的卷积层,得到输出特征图Xl+1。
步骤S223,将所述步骤S222得到的特征依次送入avg-pooling层、Dropout层、全连接层、ReLU层、Dropout层、全连接层和Softmax WithLoss层。所述avg-pooling层的核大小为21,步长为21;所述dropout系数为0.5。
步骤S3,利用训练集得到的模型对验证集图片进行预测,求得EER和对应的阈值,其具体操作步骤如下:
步骤S31,利用所述步骤S2得到的训练模型,对验证集图片数据进行预测,求取对测试集每张图片样本的得分。
步骤S32,求取验证集上真假脸两类的等概率误差EER和EER对应的判断阈值。
步骤S4,利用S2得到的模型对待测人脸进行预测得到判定为真脸的得分,根据阈值判断真假脸的类别。其具体操作步骤如下:
步骤S41,本实施例中的测试集根据所述Oulu-NPU数据库中的评估协议1确定,其包含每帧图像中人眼双眼中心点的坐标。利用仿射变换将人眼双眼中心点坐标固定到到同验证集人眼双眼中心点坐标相同的位置,即双眼中心点坐标为[38 53;90 53],将人脸区域从整张图片中裁剪出来,归一化到特定尺寸128*128大小,裁剪尺寸与验证集相同。
步骤S42,将所述裁剪得到的待测图片,利用所述步骤S2得到的训练模型进行预测,得到预测分数,根据步骤S3求得的判断阈值进行真假脸的判断。
和传统方法比较,我们的方法不需要进行人机交互,仅需要普通可见光摄像头,并且网络训练快,网络参数少,便于在嵌入式设备上移植和应用。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。