一种基于MobileFaceNet 的人脸识别方法

2024-05-02 15:48陆正球
电脑知识与技术 2024年5期
关键词:人脸识别人脸卷积

陆正球

摘要:随着深度学习技术的发展,人脸识别成为身份识别最常用的生物特征识别技术。针对移动终端计算资源不足的实际情况和特点,该文在MobileNet模型的基础上,构建基于MobileFaceNet的人脸检测和识别模型。首先,使用MTCNN模型对传入的人脸进行检测,然后采用MobileFaceNet模型进行人脸特征提取,最后通过构建本地人脸库,完成对人脸图像识别。实验结果表明,该方法在常见的人脸数据库中具有较好的识别准确率。

关键词:人脸识别;MobileFaceNet;人脸检测;MTCNN

中图分类号:TP391 文献标识码:A

文章编号:1009-3044(2024)05-0012-03

0 引言

人脸识别是计算机视觉领域的关键技术,在电子金融、视频监控、智慧安防、个人生活等方面有着广阔的应用前景。人脸识别技术作为一种常见的生物识别技术,常用来根据人的脸部特征信息进行身份识别[1]。通过将提取的人脸特征与人脸数据库中已有的特征进行匹配,再结合设定的阈值就可以根据相似度来判断人脸信息[2]。具有直接、方便、易被使用者接受的特点,极大地解决了传统信息安全识别等问题。

当前,在非受控环境下制约人脸识别性能和效果的最主要因素是人脸检测和人脸特征学习。人脸检测是指检测出人脸图像中人脸的具体位置,是人脸识别不可或缺的重要环节,目前使用最多的是深度级联的多任务框架MTCNN[3],它具有速度快且在CPU环境下也能进行单脸实时检测的能力。在人脸特征学习方面,2012年,Krizhevsky[4]首次将深度卷积神经网络成功应用于解决计算机视觉领域的关键问题。Sun等人[5]提出首先将多个深度卷积神经网络提取的特征拼接并使用PCA降维得到更有效的特征。之后,VGG?Net[6]、GoogLeNet[7]以及ResNet[8]这三类网络相继被提出并成功被应用于物体识别和人脸识别。随后,针对移动端计算资源不足的特点[1],Google在2017年设计了一个专为移动端和嵌入式设备做深度学习计算的轻量级网络MobileNetV1,该网络提出了一种新的卷积方式深度可分离卷积[9]。同年9月,旷视科技通过使用Group Convolution 和Channel Shuffle改进ResNet 的残差模块[10],提出了一个复杂度更低、精度更高的轻量级网络ShuffleNet V1。而MobileNet V2 和Shuf?fleNet V2等轻量级网络的提出为人脸识别任务部署在移动端提供了更便利的条件[11-12]。

1 相关算法应用

1.1 人脸检测模块

传统的人脸检测方法需要人工提取图像特征,而基于深度学习的检测方法通过搭建卷积神经网络自动提取特征,减少了人为因素的干扰,识别准确度上更高[13]。

MTCNN 是一个深度级联的多任务框架,可以同时完成人脸检测和人脸对齐的功能,具有网络结构简单、识别速度快的优点。它由三个子网络组成,分别是候选网络(P-Net) 、提纯网络(R-Net) 和输出网络(ONet),可同时检测人脸及定位人脸关键点[13]。但是,由于原始的人脸图片存在尺度不一的情况,对于比较小的人脸,需要放大后再进行检测;对于比较大的人脸,需要缩小后再图检测。在MTCNN中首先要进行将人脸原始图片缩放到不同尺度,形成一个“图像金字塔”[14],然后对每个尺度的图片通过神经网络计算一遍,这样可以在统一的尺度下检测人脸。

1.1.1 P-Net

P-Net是一个全卷积神经网络,输入的是一个宽和高都是12像素、3通道的RGB图像。输出有三部分:输入的12×12×3的图像中是否有人脸,人脸框的位置和5个关键点的位置,5个关键点是指:左眼、右眼、鼻子、左嘴角、右嘴角。

P-Net采用较低的精度最大程度上保证将所有的人脸都检测到,在实际计算中,会将输入的图像进行多尺度金字塔处理,也就是通过输入层的移动,对原始图像中每一个12×12的区域都进行一次人脸检测。同时,对于重叠的候选框,采用非极大值抑制(NMS) 筛选,最后送入 P-Net 网络参与训练。

1.1.2 R-Net

R-Net的结构跟P-Net非常类似,R-Net的输入是24×24×3的图像,表示像素值大小是24×24的3通道图像。R-Net是判断24×24×3的图像中是否含有人脸以及预测关键点位置。在实际应用中,对每个P-Net 输出可能为人脸的区域都放大到24×24的大小,再输入到R-Net中,进行进一步判断,这样消除了P-Net中很多误判的情况,提高人脸检测的精度。 R-Net网络结构如下。

1.1.3 O-Net

在R-Net的基础上,把得到的区域放大至48×48 的大小,作为 O-Net网络的输入,其他结构跟P-Net类似,不同点在于O-Net的网络通道数和层数增多了。

1.2 人脸识别模块

为了减少移动终端设备的模型计算量与参数量,本文在MobileNet V1[15]网络模型的基础上设计了Mo?bileFaceNet模型,它使用深度可分离卷积代替传统的平均池化操作。该模型同时采用PReLU作为激活函数,在网络开始阶段使用快速下采样策略,在后面几层卷积层采用早期降维策略,在最后的线性全局深度卷积层后加入一个1×1 的线性卷积层作为特征输出[16]。通过这些改进,模型可以获得更高的准确率及更快的速度。

1.2.1 深度可分离卷

深度可分离卷积则将这个过程分为两个部分,首先进行深度卷积操作,由于深度卷积在每个通道都与一个卷积核进行卷积操作,因此输出特征图与输入特征图具有相同的通道数。假如当输入特征图为10×10×3,经过3×3×1×3的深度卷积核后会得到一个8×8×3的输出特征图,由于维度不变会导致能提取到的特征非常有限[17]。然后,使用逐點卷积操作,解决深度卷积存在的维度不变的问题。当对上面深度卷积输出的8×8×3的特征图使用1×1×3的卷积核进行卷积操作后,同样会得到8×8×1的输出特征图。

1.2.2 网络结构

MobileFaceNet 的网络结构如表1 所示,它采用MobileNet 中的bottle?necks 作为构建网络的主要模块,而且Mobile?FaceNet 中的 bottlenecks 的扩展因子更小一点。

2 基于MobileFaceNet的人脸识别设计

整个人脸识别包括人脸数据采集、人脸检测、人脸特征提取、人脸比对四个阶段。

2.1 人脸数据采集

本文主要采用目前公认的人脸数据库进行模型训练和测试。CASIA-WebFace是一款免费开源的用于人脸识别的数据集,数据集包含了10 575个人的494 414张图像,它的优势在于具有非常多的人脸特征,并且数据集里不会有重复特征。由于lfw数据集在非受限情况下的人脸识别效果检测效果比较好,是目前人脸识别的常用测试集。该数据集包含5749人,共有13233张人脸图片,因此本文使用lfw数据集作为模型的测试数据集。此外,在进行人脸识别时,构建一个本地人脸库,该数据库中存放需要日常检测的人脸,每个人一张人脸。

2.2 人脸检测

本文中采用MTCNN算法进行人脸检测。首先加载MTCNN模型和人脸数据库,然后读取需要检测的人脸图片,并对图片进行预处理。接下来通过MTCNN三个模型调用后获取人脸特征关键点和候选框,本文使用贪婪策略选择人脸框,设置非极大值0.5作为判定是否保留该人脸图片的依据,最后使用仿射变化将MTCNN推理得到的人脸关键点中双眼的坐标校正为水平状态,然后旋转角度和旋转中心点,再将MTCNN 推理的人脸框对应旋转,从而得到校正后的人脸。

2.3 人脸特征提取

本文使用MobileFaceNet作为人脸识别特征提取的基础网络,网络结构如图4所示。该模型体积较小,准确率很高,非常适用于移动设备。同时,为了使训练的模型更加有效,本文采用ArcFace作为损失函数。

2.4 人脸比对识别

人脸比对是最后一个阶段,将上一步模型提取到的人脸与自己建的本地人脸库中的已有人脸进行比对,就能获取与该人脸相似的每个人脸的概率及其对应的姓名,程序会对得到的人脸比对结果进行排序,最后选取排序后概率值最高的那张人脸图片并表示该人脸图片对应的姓名,这里设置最小阈值为0.6。

3 实验

本文所有方法都是在pytorch框架下通过python 语言实现的,训练和测试步骤在NVIDIA GeForceGTX 1060 GPU上运行。

首先,实验选择CASIA-WebFace 人脸数据库进行训练,由于该数据库数量比较大,鉴于硬件条件限制,因此选取了其中100人共7 157张人脸,其中90% 数据用于训练,10%的数据用于测试。训练总轮数epoch设置为160,训练初始学习率设置为0.001,训练中的bitch-size设置为12。使用随机梯度下降策略优化模型,动量参数设置为 0.9。模型在训练集上的准确率和误差loss曲线如图2和图3所示。

其次,模型参数量表示网络模型中包含的参数个数,主要影响模型计算所需要的内存,模型计算量主要衡量模型的复杂度。结果如表2所示,改进的Mo?bileFaceNet的参数量和计算量都有一定程度的降低。

最后,依次传入两张人脸图片分别进行检测,其中左边人脸图片信息已经存储在本地人脸库中,右边人脸图片信息没有存储在本地人脸库中,测试结果如图4,可以发现左边的人脸能够被检测并显示该人脸信息,而右边则显示“unknow”。

4 结论

通过对人脸检测和人脸识别问题的研究,本文提出了一种基于MobileFaceNet的人脸识別方法。首先,使用opencv 进行人脸采集,然后使用级联网络MTCNN进行人脸检测和处理,并使用MobileFaceNet 进行人脸特征提取和人脸比对,最后通过常见人脸数据库和本地数据库可知该方法具有较好的人脸识别效果和网络性能。

参考文献:

[1] 龚锐.基于深度学习的轻量级和多姿态人脸识别方法[D].武汉:武汉科技大学,2020.

[2] 马怀清.人脸识别技术在城市轨道交通售检票系统的应用研究[J].世界轨道交通, 2017(9):54-57.

[3] ZHANG K P,ZHANG Z P,LI Z F,et al.Joint face detection andalignment using multitask cascaded convolutional networks[J].IEEE Signal Processing Letters,2016,23(10):1499-1503.

[4] KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[C].26th Annual Conference on Neural Information Processing Systems,Lake Tahoe, 2012:1106-1114.

[5] SUN Y,WANG X G,TANG X O.Deeply learned face representa?tions are sparse, selective, and robust[C]//2015 IEEE Confer?ence on Computer Vision and Pattern Recognition (CVPR).Bos?ton,MA,USA.IEEE,2015:2892-2900.

[6] SIMONYAN K,ZISSERMAN A.Very deep convolutional net?works for large-scale image recognition[EB/OL]. [2022-10-20].2014:arXiv:1409.1556.http://arxiv.org/abs/1409.1556.pdf.

[7] SZEGEDY C,LIU W,JIA Y Q,et al.Going deeper with convolu?tions[C]//2015 IEEE Conference on Computer Vision and Pat?tern Recognition (CVPR).Boston,MA,USA.IEEE,2015:1-9.

[8] HE K M,ZHANG X Y,REN S Q,et al.Deep residual learning for image recognition[C]//2016 IEEE Conference on Computer Vi?sion and Pattern Recognition (CVPR). Las Vegas, NV, USA.IEEE,2016:770-778.

[9] HOWARD A G,ZHU M L,CHEN B,et al.MobileNets:efficient convolutional neural networks for mobile vision applications[EB/OL].[2022-10-20].2017:arXiv:1704.04861.http://arxiv.org/abs/1704.04861.pdf.

[10] ZHANG X Y,ZHOU X Y,LIN M X,et al.ShuffleNet:an ex?tremely efficient convolutional neural network for mobile de?vices[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.Salt Lake City,UT,USA.IEEE,2018:6848-6856.

[11] SANDLER M,HOWARD A,ZHU M L,et al.MobileNetV2:in?verted residuals and linear bottlenecks[C]//2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition.Salt Lake City,UT,USA.IEEE,2018:4510-4520.

[12] MA N N,ZHANG X Y,ZHENG H T,et al.ShuffleNet V2:practi?cal guidelines for efficient CNN architecture design[C]//Com?puter Vision-ECCV 2018:15th European Conference,Munich,Germany,September 8-14,2018,Proceedings,Part XIV.ACM,2018:122-138.

[13] 尚晓锐.基于深度神经网络的人脸识别校园门禁系统设计与实现[D].重庆:重庆理工大学,2020.

[14] 高峰.基于人臉特征分析的哨兵疲劳警示系统的设计与实现[D].长沙:湖南师范大学,2019.

[15] HOWARD A G,ZHU M L,CHEN B,et al.MobileNets:efficient convolutional neural networks for mobile vision applications[EB/OL].[2022-10-20].2017:arXiv:1704.04861.http://arxiv.org/abs/1704.04861.pdf.

[16] 李航.基于MobileFaceNet的轻量化人脸识别系统的设计与实现[D].重庆:西南大学,2020.

[17] 瞿照.移动端人脸识别系统活体检测实现技术[D].武汉:华中科技大学,2021.

【通联编辑:代影】

猜你喜欢
人脸识别人脸卷积
人脸识别 等
基于3D-Winograd的快速卷积算法设计及FPGA实现
有特点的人脸
揭开人脸识别的神秘面纱
从滤波器理解卷积
三国漫——人脸解锁
基于傅里叶域卷积表示的目标跟踪算法
基于类独立核稀疏表示的鲁棒人脸识别
马面部与人脸相似度惊人
长得象人脸的十种动物