一种基于MTCNN和MobileFaceNet人脸检测及识别方法

时间:2023-09-26 19:40:09 来源:网友投稿

卢 嫚,邓浩敏

(西安工程大学 电子信息学院,西安 710048)

随着人工智能的兴起及其技术上的进步,越来越多的人工智能产品被用于行业服务中,其中人工智能中的一个分支人脸识别已融入我们的生活,为我们的生活安全提供一定的保障,如手机的人脸识别、车站的人脸识别身份验证及校园的门禁系统、打卡系统等[1]。人脸识别之所以被如此广泛使用,是因为与其他身份识别(如虹膜识别技术、指纹识别技术[2-3])相比较,它具有自然性、非强制性和非接触性等优势,人脸识别技术可通过视频监控设备更加直观、便捷地检验人员身份信息,具有简洁、高效、经济以及可拓展等特点,可应用于安全验证、视频监控、人员控制等诸多方面[4]。

本文基于深度学习模型MTCNN 及MobileFaceNet模型,对人脸识别系统展开设计。利用MTCNN 模型进行人脸检测及图像提取,采用MobileFaceNet 模型进行人脸特征提取,并通过构建本地人脸特征库,完成对人脸图像识别。MobileFaceNet 人脸识别算法同样在移动及嵌入式等设备上识别精度较高,同时使用到的活体检测技术量级小,能够满足本次设计需要。

1.1 图像卷积

图像卷积即由卷积核在原始待处理图像上按行列实现滑动遍历,将对应元素进行相乘再加和的操作,得到的值即为对应位置的卷积值。所有像素遍历结束后所得结果即可构成一幅图像。不同的卷积核卷积效果不同,可用于图像滤波、梯度运算等方面。

1.2 卷积神经网络

神经网络属于层级结构模型,可用于处理图像数据。基本框架包括:数据输入层、卷积计算层、池化层、全连接层、输出层,其中卷积计算层为核心部分。卷积神经网络的输出一般需经过卷积操作、池化操作及非线性激活函数映射等结构处理[5]。

池化用于缩小输入图像,降低所得特征平面的数据量,保留核心信息,获取更为抽象的特征,防止过拟合。4×4 矩阵进行最大池化操作得到2×2 矩阵的结果,激活函数将非线性引入神经网络,变换空间,解决线性不可解的问题[6]。

1.3 深度可分离卷积

深度可分离卷积由MobileNet V1[7]网络模型提出,重要核心部分为将卷积拆分为Depthwise 和Pointwise。标准卷积参数数量为DK×DK×M×N,卷积核尺寸为DK×DK×M,共有N 个卷积核,每个进行Dw×Dh次运算,故标准卷积的计算量P1为

深度可分离卷积的计算量包括两部分:深度卷积、逐点卷积。深度可分离卷积的参数量为DK×DK×M+1×1×M×N。深度卷积的卷积核尺寸为DK×DK×M,进行Dw×Dh次的乘加运算。逐点卷积的卷积核尺寸为1×1×M,共有N 个,进行Dw×Dh次的乘加运算。深度可分离卷积的计算量P2为

参数数量及乘加操作的运算量下降倍数P3为

由式(3)可得,深度可分离卷积与标准卷积相比,参数数量、计算量均大幅降低,模型的运算效率得到提升。但其只能工作于低维度,最终的卷积效果不佳。

1.4 边框回归

使用边框回归能够获取目标在原始图像中的位置信息,其数据集为{(Pi,Gi)}i=1,…,N,其中,代表第i 个带预测的候选目标检测框,Gi=(Gxi,Gyi,Gwi,Ghi),代表i 个真实目标检测框。Pi中的Pxi为候选框中心点在原始图像的x 坐标,Pyi为候选框中心点在原始图像的y 坐标,Pwi为候选框长度,Phi为候选框宽度。Gi中的参数含义同理。

边框回归任务为利用某种映射关系,使候选目标框的映射目标框无限接近真实目标框,即给定一组候选目标框P=(Px,Py,Pw,Ph),找寻一个映射关系f,使边框回归示意图如图1所示。

图1 边框回归示意图Fig.1 Schematic diagram of border regression

图中虚线框P、黑实线框G、长虚线框G^分别代表候选目标框、真实目标框、算法预测目标框。

2.1 人脸检测模块

人脸检测第一步是在待测图像中按照从左至右、从上至下的顺序选取不同尺寸大小的矩形区域。第二步对矩形区域进行特征提取,提取到的特征用计算机表示即为特征向量,是用于分类的依据。第三步是使用训练好的人脸分类器对上一步提取的特征向量进行分类,一般为0 和1,每个编码对应一个类别,0 对应非人脸窗口,1 对应人脸窗口。人脸检测的流程步骤如图2所示。

图2 人脸检测流程Fig.2 Flow chart of face detection

本设计使用MTCNN 多任务卷积神经网络算法实现人脸检测[8-9],能够同时完成人脸区域检测、人脸面部特征点检测,是一种性能较好、速度快、精度高的检测方法,故应用较广泛。

MTCNN 架构可分为三级:P-Net 层、R-Net 层、O-Net 层[10-11]。MTCNN 训练过程中利用三项任务对检测器训练:人脸/非人脸检测、边框回归、人脸面部特征点位置。训练内容具体如下:

(1)人脸检测分类:学习目标制定为二分类问题,对每个样本xi使用交叉熵损失函数为

式中:pi代表神经网络预测样本;
xi为人脸部分的概率,代表ground-truth,∈{0,1}。

(2)边框回归:预测每个候选框与其最近的ground-truth 之间的偏差值。学习目标制定为回归问题,损失函数使用平方差损失函数为

(3)人脸面部特征点坐标:与式(5)中边框回归类似,损失函数为平方差损失函数为

(4)多源训练:每个卷积神经网络任务不同,使学习过程中存在不同类型的训练数据集,可分为人脸、非人脸、部分对齐人脸。在训练某个特定任务时,其他任务损失值应该为零,因此综合全部任务的损失函数为

式中:N 代表训练样本数量;
αj代表不同的网络结构的损失函数所占权重不同。在P-Net 层和R-Net 层中,参数设置为αdet=1,αbox=0.5,αlandmark=0.5,而O-Net层最终需输出面部特征点,参数设置为αdet=1,αbox=0.5,αlandmark=1,以便得到更准确的人脸特征点坐标;
βij∈{0,1}是样本类型指示器。此时能够使用随机梯度下降对CNN 进行训练。

(5)在线挖掘困难样本:与传统方式相比,MTCNN需要在原始分类器训练完成后挖掘困难样本,实现在线操作。根据前向传播阶段中样本的损失值排序,将每一批样本的前70%作为困难样本,在反向传播阶段中,只计算困难样本的梯度。在训练模型时,仅考虑困难样本,进行有效训练,而忽略对提高性能作用较小的简单样本,从而提高人脸检测准确率。实验证明这种方式相对手动选择困难样本而言性能更佳。

由于MTCNN 同时执行人脸检测和对齐任务,故使用4 种类型的数据进行训练:①Negatives:IoU(Intersection-over-Union)比率小于等于0.3 的区域;
②Positives:IoU 比率大于0.65 的区域;
③Part faces:IoU 比率在0.4~0.65 的区域;
④Landmark faces:含有标记5 个面部特征点的区域[12]。Negatives 数据和Positives 数据用以人脸分类,二者间所存在的跨度,更容易使模型收敛。Positives 数据和part faces 数据实现候选框回归,二者都包含人脸部分,能够完成回归。Landmark faces 数据用以面部特征点定位。

2.2 人脸识别模块

本设计使用的MobileFaceNet 是MobileNetV2的改进版本,其保留了MobileNetV2 的升维、降维层及激活函数,在全连接层前引入可分离卷积,提取到的特征更具有全局性及泛化性。主要改进内容包括以下几部分:

(1)MobileFaceNet 使用全局深化卷积层代替全局平均池化层,对同一张照片的不同像素点使用不同的权重,提高网络表现力。全局深化卷积层为分层的卷积层,内核大小与输入大小相等。全局分层卷积层的输出计算为

式中:F 是大小为W×H×M 的输入特征图;
K 是大小为W×H×M 的深度卷积核;
G 是大小为1×1×M 的输出;
G 中的通道mth只有一个元素Gm;
(i,j)表示F和K 中的空间位置;
m 表示通道索引。全局深度卷积的计算成本为W×H×M。

(2)用PReLU 代替ReLU 函数,其在人脸验证方面比ReLU 效果略佳。

ReLU 函数为

PReLU 函数为

PReLU 为ReLU 的改进型,在ReLU 的基础上增加极少量的参数,只增加少许网络的计算量及过拟合危险性,但在负数区域表现效果更好。Mobile-FaceNet 算法流程如图3所示。

图3 人脸识别算法流程Fig.3 Algorithm flow chart of face recognition

2.3 静默活体检测模块

活体检测技术用来判别采集设备所采集的人脸是否为真实人脸,静默活体检测则是在被测者无感的情况下直接进行活体校验,不需要被测者完成指定动作。

本设计采用基于傅里叶频谱图辅助监督的静默活体检测方法的活体检测算法。活体检测技术在应用时,首先在采集到的视频中捕获RGB 单帧人脸图像,对图像中是否存在人脸区域进行判断,完成人脸检测。若存在人脸则进行活体检测,与活体检测阈值相比较进行判断,大于输出显示真实人脸,小于则输出显示虚假人脸。活体检测应用流程如图4所示。

图4 活体检测应用流程Fig.4 Flow chart of liveness detection application

3.1 未录入人脸识别

首先对未录入用户进行检测识别,成功检测到人脸区域并输出5 个面部特征点,如图5所示。结果显示“Stranger”,人脸识别分数此时显示为-0.0092,表示与数据库中人脸对比失败,没有识别到相应的目标用户。

图5 未录入用户测试结果Fig.5 Test results of unregistered users

当未录入用户面部存在小范围遮挡物时检测,能检测到人脸区域,如图6所示。结果显示“Stranger”,对未录入用户无法识别。人脸识别分数为0.0055,同样表示与数据库中人脸对比未成功。但当遮挡范围包含3 个及3 个以上面部特征点时无法检测到人脸。

图6 未录入用户存在遮挡物测试结果Fig.6 Results of unregistered user tests with occluders

3.2 已录入人脸识别

首先设置为人脸录入模式,采集待测用户人脸数据,再设置为检测模式,对已录入用户进行人脸检测、识别,结果如图7所示。

图7 已录入用户测试结果Fig.7 Test results of entered users

成功识别到人脸目标,显示正确用户名“DHM”。人脸识别分数为0.8077,高于设置阈值0.4,表示与数据库中人脸数据对比成功。

3.3 活体检测实现

首先使用电子屏幕展示照片进行测试,结果如图8所示。成功识别目标对象,识别到虚假人脸,在屏幕上显示用户名及“Fake face”,结果判断为虚假人脸。可见活体检测置信度数据为0,表示该检测目标对象为非活体,人脸识别分数为0.7539,与数据库中的人物对比成功,输出用户名。

图8 电子屏幕照片识别结果Fig.8 Recognition results of electronic screen photos

使用真实移动人脸测试,系统能够准确检测到摄像头所采集区域移动的人脸目标,结果如图9所示。显示用户名及“True face”,成功识别真实人脸。活体检测置信度数据为0.9983,大于活体检测阈值0.89,判断为真实人脸并输出结果。

图9 移动人脸识别结果Fig.9 Recognition results of moving faces

真实人脸佩戴口罩进行检测,面部有小范围遮挡物,即遮挡2 个及2 个以下的面部特征点时可识别出人脸目标,并成功判断为活体,如图10所示。

图10 移动人脸存在遮挡识别结果Fig.10 Recognition results of moving faces with occlusion

本文设计了人脸检测识别系统,并实现活体检测功能,人脸检测模块使用MTCNN 算法,将待测图像经P-Net、R-Net、O-Net 层层处理,输出人脸候选框及面部特征关键点坐标,人脸识别模块使用MobileFaceNet 算法,根据MTCNN 输出的人脸面部特征点进行识别判断,活体检测模块基于小视科技的静默活体检测项目完成,对纸质照片及3D 模型等虚假人脸能够进行检测,判断是否为真实的人脸。本设计将人脸检测跟踪、人脸识别和活体检测三部分结合起来,可应用于门禁系统、签到打卡系统等方面,能有效防止不法分子进行的活体检测攻击。实验证明,系统误检率较低,符合设计要求。

猜你喜欢活体人脸人脸识别人脸识别 等作文中学版(2022年1期)2022-04-14有特点的人脸少儿美术·书法版(2021年9期)2021-10-20一起学画人脸小学生必读(低年级版)(2021年5期)2021-08-14张帆:肝穿刺活体组织学检查肝博士(2021年1期)2021-03-29让活体肝移植研究走上世界前沿华人时刊(2020年21期)2021-01-14活体器官移植,你怎么看?保健医苑(2020年1期)2020-07-27揭开人脸识别的神秘面纱学生天地(2020年31期)2020-06-01人脸识别技术的基本原理与应用电子制作(2019年14期)2019-08-20三国漫——人脸解锁动漫星空(2018年9期)2018-10-26“汪星人”要打“飞的”——话说活体空运百科探秘·航空航天(2015年10期)2015-11-07

推荐访问:识别 检测 方法