APP下载

基于活体检测和身份认证的人脸识别安防系统

2020-12-31刘晓瑞杨明业

计算机应用 2020年12期
关键词:活体集上人脸识别

陈 放,刘晓瑞,杨明业

(1.青岛大学自动化学院,山东青岛 266071;2.青岛大学未来研究院,山东青岛 266071;3.电子科技大学机器人研究中心,成都 611731)

(∗通信作者电子邮箱liuxiaorui@qdu.edu.cn)

0 引言

随着硬件计算能力的提高,基于神经网络解决人脸识别问题的方法越来越多。人脸识别技术[1-2]被广泛地应用于生活和工作当中。人脸识别的任务包括两类:一类是将给定人脸进行分类,作为分类问题识别给定人脸的特定身份;另一类是验证一对人脸是否具有相同的身份。本文研究内容聚焦于融合人脸识别与活体检测算法,针对实时人脸活体检测与识别的问题开展研究。

目前的主流技术路线是基于神经网络的人脸验证。深度学习时代的人脸识别有两种思想,即度量学习[3-4]和基于边缘的分类[5-6],而最近的一些工作包括探索更好的损失函数以及在遮挡、姿态变化下的人脸识别等,以提高人脸识别的性能。DeepID[7]利用深度卷积网络,联合识别信号和验证信号,在LFW(Labled Faces in the Wild)数据集上实现了99.15%的人脸验证精度,这也是人脸识别技术首次在无约束场景下超越人类眼睛的识别能力。从这之后,人脸识别算法不断改进,文献[3]提出了一种基于三元组损失的无对齐大规模人脸图像训练方法FaceNet,有效实现了对人脸数据的识别、验证和聚类,该方法在LFW 和YouTubeFaces[8]数据集上达到了较高性能水平。文献[7]提出了NormFace,通过对softmax 损失函数的修改,以优化余弦相似度并重新制定度量学习。在SphereFace[9]中,提出了一种新的A-softmax(Angular softmax)损失函数,并在MageFace 挑战中取得了很好的效果。文献[6]在SphereFace 基础上提出了ArcFace,改进了对特征向量归一化和加性角度间隔,提高了类间可分性,加强类内紧度和类间差异。文献[10]提出了分配蒸馏损失函数,用于提高困难样本在一般任务上的性能。

虽然人脸识别技术在现实生活中已被广泛应用,但是其对欺诈攻击的抗扰度仍亟待提高。通常,欺诈攻击的方式包括照片攻击[11-12]、视频攻击[13]、3D Mask 攻击[14]和虚拟现实(Virtual Reality,VR)攻击[15]。从理论上讲,相机实时获取的真实面部数据和欺诈攻击所使用的人脸面部数据之间存在固有差异,包括图像纹理、光谱信息、运动信息、深度信息等,这些差异在安全问题中都极具挑战性。有关人脸活体检测方面的研究主要集中在三个方面:基于手工设计特征表达的方法、基于深度学习的方法和基于融合策略的方法。文献[12]提出了通过颜色纹理分析的方法进行人脸反欺骗检测。文献[16]提出了互动式活体检测算法,但该算法需要人机交互,对用户并不友好。文献[17]首次把人脸深度图作为活体与非活体的判别依据,但获取深度图需要复杂昂贵的设备。FeatherNets[18]给出了轻量化神经网络的解决方案,但仍需要大量的多态数据集,并且实时检测需要获取深度图和红外图,计算量大。

针对欺骗攻击,3D 人脸识别的优势是高识别率和高安全性,但是设备复杂昂贵,计算工作量大,需要用户的协作。而2D 人脸识别方法采集所需硬件简单,算法计算工作量少,用户不需要根据活体检测的提示作出相应的动作。这使得2D人脸识别方法成为适用于嵌入式和移动设备生物识别的解决方案。

轻量级神经网络的出现,在保证模型准确率的同时,体积更小,速度更快。文献[19]提出了SqueezeNet,在大幅降低模型参数量的前提下,最大限度地提高运算速度,它能够在ImageNet 数据集上达到与AlexNet近似的效果,但是参数量只是AlexNet 的2%。在ImageNet 上,Xception[20]比InceptionV3的准确率稍高,同时参数量有所下降,并加入类似ResNet 的残差连接机制,显著加快了收敛过程。MobileNetV2[21]提出了新的倒残块结构,可以用较少的运算量得到较高的精度。ShuffleNetV2[22]通过多种评估指标建立新架构,并在速度和准确性权衡方面稍优于其他模型。MobileNetV3[23]利用组合互补搜索技术并对网络结构改进,在ImageNet 分类实验取得不错的效果。

针对目前人脸活体检测算法存在的计算量大、对用户不友好、不易应用于嵌入式系统的问题,本文提出了一种在无需用户配合的单目摄像头场景下实现活体检测和人脸验证的方法。该方法具有计算量低、识别率高、简单高效、鲁棒性好的特点,并可嵌入式应用到门禁安防系统。

本文工作主要包含两方面:

1)通过融合活体检测算法和人脸识别算法设计了一种低成本且精确度可行的2D人脸反欺骗安防系统。

2)在CASIA-FASD(Chinese Academy of Sciences Institute of Automation-Face Anti-Spoofing Datasets)数据集以及Replay-Attack数据集上,对实时轻量级活体检测模型[19-23]的性能进行验证,获得了较好的结果。

1 人脸反欺骗认证系统

人脸反欺骗认证系统的总体架构由三部分组成:MTCNN(Multi-Task Convolutional Neural Network)人脸检测裁剪模块,人脸反欺骗模块和FaceNet 人脸认证模块,如图1 所示。通过单目摄像头提取用户的面部信息,利用MTCNN模块进行人脸检测和人脸对齐。对齐的面部信息输入到人脸反欺骗模块中,人脸反欺骗算法将判断面部的真实性。判定面部信息为伪造,则面部识别结束;判定面部信息为真实时,FaceNet允许身份验证成功的用户通过安防系统。

1.1 MTCNN

文献[1]提出了人脸检测对齐算法,该算法设计了一种轻量级的卷积神经网络以确保良好的实时性能,并提出了一种在线硬样本挖掘策略以进一步提高性能。

MTCNN 的网络结构分为三层:P-Net(Proposal Network)、R-Net(Refine Network)、O-Net(Output Network)。图像由三个网络处理以获取面部信息。首先,连续调整输入图像的大小以获取图像金字塔;其次,将其输入P-Net 以获取大量候选对象;最后,R-Net 更精确地过滤许多候选对象,并将其输入O-Net以获取面部坐标的位置。

1.2 活体检测

本文选择了两种可行的方案实现人脸反欺骗功能:基于色彩纹理分析方法和利用轻量级卷积神经网络的方法。所提方法可以在视频中单独一帧或者视频序列上运行,因此可以实现实时检测。

1.2.1 基于色彩纹理分析的人脸反欺骗

局部二值特征(Local Binary Pattern,LBP)是文献[24]提出的灰度图像局部纹理特征描述符。传统的特征描述符LBP的提取方法是将原始图像划分为n×n个block,每个block 又划分为a×a个cell。每个cell 的大小为3×3,通过LBP 提取每个cell 的特征。将中心像素的值作为阈值,并与中心像素点临近的8个cell像素的值进行比较,计算式如下:

其中:xc、yc为3×3 区域的中心点,其像素的值为ic;ip表示区域内其他像素的值;p为第p个像素点。s(x)为符号函数,定义如下:

得到各个像素点的编码值,将其连接成一个二进制值并转化成一个十进制的值,用十进制值代替原来中心点的阈值,即LBP 描述符的值。这种方法可以生成的结果为256 种,结果过于复杂,不利于面部特征的提取。因此,文献[25]提出了Uniform LBP,它优化了传统的LBP 描述符,通过过渡方法实现降维。从图像带i提取像素(x,y)的Uniform LBP 描述符编写如下:

其中:(x,y)是邻域的中心点;rn(n=0,1,…,P-1)为周围邻域点的像素值;rc为中心点的像素值;R为周围邻域的半径;P为周围邻域点的个数。

式(3)中的U(i)定义如下:

式中的δ(x)为符号函数,定义如下:

基于色彩纹理分析的人脸反欺骗方法(如图2 所示),利用Uniform LBP 和支持向量机(Support Vector Machine,SVM),提取数据集中的人脸并裁剪为224×224的图像,分别转换为HSV(Hue,Saturation,Value)和YCbCr的颜色空间,提取各个颜色空间的LBP 特征直方图,并串联特征直方图,在SVM中对真假人脸进行分类。

图1 人脸反欺骗认证系统整体架构Fig.1 Overall architecture of face anti-spoofing authentication system

图2 人脸反欺骗过程Fig.2 Face anti-spoofing process

1.2.2 轻量级神经网络

轻量级神经网络[19-23]在保证模型准确率的同时,体积更小,速度更快,能更好地应用于实时检测安防系统。本文将活体检测定义为二分类问题,使用尺寸为224×224的面部数据集训练轻量级神经网络,并将网络结构最后一层的线性激活函数改为Tanh 激活函数。因为多类型图像分类与活体检测二分类的权重着重点不同,采用适用于活体检测的二分类模型进行预训练,加速神经网络训练过程的收敛。超参数选择方面,Epoch 为150,Batch Size 为64,采用交叉熵损失函数,优化器选择随机梯度下降,权重衰减为4×10-5,Momentum 为0.9。根据上述条件对轻量级神经网络进行训练。

1.3 FaceNet

1.3.1 FaceNet结构

在FaceNet进行人脸识别时,从网络中提取一层作为输出特征,并使用输出特征向量训练分类器。FaceNet模型的结构如图1所示,batch处理是指输入的人脸图像样本,样本通过面部检测并裁剪为160×160的图像。FaceNet 的深度框架采用GoogleNet,在传统卷积神经网络的基础上加入了多个Inception 结构,在此基础上进行优化,将GoogleNet 最后一层的softmax 分类器去掉,替换成一个L2 特征归一化的嵌入层,经过L2 的归一化,输出一个128 维的特征向量,并用Triplet Loss进行优化。

1.3.2 Triplet Loss

从包含样本的三元组计算出三元组损失。其中,三元组由Anchor(A)、Negative(N)和Positive(P)组成。设一个样本为A,与A 是同一类的样本为P,与A 不同类的样本为N,三重损失的学习过程如图1所示。

A和P之间的欧氏距离可能非常大,而A和N之间的欧氏距离可能很小。在网络学习过程中,A 和P 之间的欧氏距离将逐渐减小,而A 与N 之间的欧氏距离将逐渐增大。网络将直接学习特征之间的可分离性:同一类样本特征之间的距离应尽可能小,而不同类样本特征之间的距离应尽可能大。其公式化表示如式(6)所示:

其中:f(x)∈Rd表示一张照片x嵌入到d维欧氏空间;第一项2 范数表示类内距离,第二项2 范数表示类间的距离;α为常数;+表示中括号内的值大于零的时候,取该值为损失,小于零的时候,损失为零;M为基数。

毕业生是指在学校学习期满,达到规定的要求,准予毕业的学生。在计划经济市场下,毕业生直接分配到企业就业,没有机会进行自主选择。现如今的就业环境下,毕业生在取得毕业证和学位证后,可以结合自己的兴趣、性格、价值观和所学专业知识,进行自我推销,从而进入心仪的企业工作,可以将自己的所学真正应用到生产实践中,降低了跳槽的几率,增加了毕业生自我效能感和成就感。

2 基准数据集和实验验证

本章将对所提出的人脸反欺骗身份认证系统方法进行实验评估。

2.1 数据集

为了使实验更加客观和公正,并重现结果,本文选择了被广泛接受的数据集CASIA-FASD[26]和Replay-Attack[27]。

2.1.1 CASIA-FASD

CASIA-FASD 数据集由600 个视频组成,包括50 个对象,每个对象都有12个视频,其中,3个视频有访问权限,9个视频没有访问权限。数据集有3 种不同类型的视频,质量分别为低、普通、高。非法访问视频具有3 种不同类型的攻击方法,包括弯曲照片攻击、剪切照片攻击和视频攻击。数据集包含训练数据集和开发数据集两个部分,训练数据集有240 个视频,开发数据集有360 个视频。CASIA-FASD 数据集如图3所示。

图3 CASIA-FASD数据集Fig.3 CASIA-FASD datasets

活体检测利用人脸区域的高频信息判别人脸真假,而高频信息高度依赖于图像质量。对于欺诈攻击,例如剪切照片攻击、视频攻击等复制过程中不可避免地会降低面部纹理的质量。通过对人脸纹理信息的分析和学习,可以对真假人脸进行正确的分类。这里的纹理代表人脸图像中的高频细节。剪切照片攻击是指照片的眼睛部分被切断,攻击者可以隐藏在后面,并通过孔显示面部运动。在弯曲照片攻击中,攻击者故意弯曲完整的照片,试图模拟面部运动。视频攻击是通过录制合法用户人像的视频,攻击安防系统。其中剪切照片和弯曲照片攻击会受到环境光照影响;二次录制的视频攻击会引入诸如模糊和混叠之类的失真。因此欺诈攻击与真实人脸存在差异。

2.1.2 Replay-Attack 数据集

Replay-Attack 数据集包含1 200 个具有50 个对象的视频。每个对象都有24 个视频,其中包括4 个有访问权限的视频和20 个非法访问的视频,每个视频大约10 s。所有视频均在3 种不同的背景和2 种不同的照明条件下制作。数据集包含3 个部分,包括训练数据集、开发数据集和测试数据集。训练数据集和开发数据集的数量分别为360 个视频,测试数据集中存在480个视频。

2.2 实验步骤

为了得到计算量低、识别率高、活体检测对用户更友好的人脸识别安防系统,本文通过比较模型参数量大小、识别精确度、系统经过整个流程处理一帧图像所需时间,以及CPU 占用率来验证算法的性能。

本文将实验的重点放在验证算法反欺骗的性能上,利用CASIA-FASD 和Replay-Attack 数据集进行实验,数据集如表1所示。

CASIA-FASD 和Replay-Attack 数据集包含的视频被Opencv 读取并保存30 帧,对得到的图像帧通过MTCNN 人脸对齐裁剪后将图像帧尺寸归一化为224×224的RGB图像。

表1 数据集CASIA-FASD和Replay-Attack说明Tab.1 Dataset description of CASIA-FASD and Replay-Attack

本文使用数据集分别进行训练和测试。在定量分析时,实验采用准确率(Accuracy,Acc)、等错误率(Equal Error Rate,EER)、半错误率(Half Total Error Rate,HTER)、接收者操作特征(Receiver Operating Characteristic,ROC)曲线作为算法的评价指标。

在定量分析人脸安防系统的实时性时,本文通过系统处理一帧图像所需时间以及CPU占用率来验证算法的性能。

所有实验均已在Windows 10 中安装了Pycharm 的计算机上完成,处理器型号为Intel Core i5-8250U@ 1.60 GHz,内存为8 GB。本文算法基于Pytorch 1.5 和TensorFlow 1.12 深度学习框架、使用Python 3.7语言实现。

3 实验与结果分析

本章使用CASIA-FASD 和Replay-Attack 数据集对比不同算法的EER、HTER、ROC 曲线、系统处理一帧图像所需时间以及CPU 占用率的实验结果,分析算法的优缺点并选取计算量低、识别率高、鲁棒性更好的算法。

CASIA-FASD 数据集共有18 000 张图像,其中包含低质量、正常质量、高质量图像的欺诈攻击以及弯曲照片攻击、剪切照片攻击和视频攻击,攻击手段丰富,数据集复杂。而Replay-Attack 数据集共有25 200 张图像,攻击手段为视频攻击,控制变量为光照,数据集攻击手段较为单一。由图4~5可知:在攻击手段单一的Replay-Attack数据集上,各个算法均能很好地进行分类;而在复杂的CASIA-FASD 数据集上,LBP 算法仍能够保持良好的分类性能。

图4 在CASIA-FASD数据集上活体检测算法的ROC曲线Fig.4 ROC curves of liveness detection algorithms on CASIA-FASD dataset

轻量级神经网络在数据集规模受限制的情况下,一方面受制于模型参数较少,即使在活体检测模型下进行预训练,网络收敛过程仍然较慢;另一方面,在多图像分类下能够取得不错的准确率,但活体检测更关注真实人脸和欺诈人脸之间的图像纹理、光谱信息、运动信息、深度信息等细微差别,这对轻量级神经网络在活体检测上提出了更高的要求。

图5 在Replay-Attack数据集上活体检测算法ROC曲线Fig.5 ROC curves of liveness detection algorithms on Replay-Attack dataset

由表2 可知,虽然LBP 算法在EER、HTER 的实验结果上优于其他算法,但本文通过与传统活体检测算法做实验对比验证了轻量级神经网络在活体检测中的可行性,如表3 所示,其中Määttä 等[28]提出了MLBP(Multi-scale Local Binary Pattern)的方法,通过分析人脸照片的纹理进行人脸反欺骗检测。由图4~5、表2 可知,模型参数的大小也在一定程度上影响了活体检测的精确度。

表2 在CASIA-FASD和Replay-Attack数据集上不同算法的性能比较Tab.2 Performance comparison of different algorithms on CASIA-FASD and Replay-Attack datasets

表3 不同算法在Replay-Attack数据集上的准确率和误判率 单位:%Tab.3 True positive rate and false positive rate of different algorithms on Replay-Attack dataset unit:%

图6~7 验证了LBP 算法在使用LBP 进行人脸特征分类时花费时间最少,并且CPU 占用率较低。因为LBP 对于小样本数据具有较好的分类效果,并且有较快的计算速度。

实验的总体结果表明,LBP 算法与FaceNet算法融合的系统能够在实时检测效率高的同时,有效地识别伪造人脸对人脸识别安防系统的攻击,并且轻量级神经网络在实时活体检测中存在可行性。

图6 人脸活体检测身份认证系统花费时间Fig.6 Time cost of authentication system with face liveness detection

图7 不同算法的CPU占用率Fig.7 CPU usage for different algorithms

4 结语

本文提出一种融合MTCNN、人脸反欺骗算法和FaceNet算法的人脸识别安防系统。通过在两个具有挑战性的人脸欺骗数据集CASIA-FASD 和Replay-Attack 上进行实验,验证了实时轻量级活体检测算法的性能较好。在实验中,基于颜色纹理的人脸反欺骗方法在实时检测环境下具有更高精确度和鲁棒性,表明了该方法的可行性。在人脸识别安防系统的测试过程中,数据集和实际应用场景会影响实时检测的稳定性和精确度。本文工作的后续计划是对人脸识别系统进行更多的实验,进一步提高实时检测的鲁棒性,在融合更先进的人脸识别算法的同时建立适用于多维应用场景的数据集。

猜你喜欢

活体集上人脸识别
人脸识别 等
张帆:肝穿刺活体组织学检查
让活体肝移植研究走上世界前沿
活体器官移植,你怎么看?
Cookie-Cutter集上的Gibbs测度
揭开人脸识别的神秘面纱
链完备偏序集上广义向量均衡问题解映射的保序性
复扇形指标集上的分布混沌
“汪星人”要打“飞的”——话说活体空运
基于类独立核稀疏表示的鲁棒人脸识别