颜继东 李艳生
摘 要:为了解决戴口罩人脸识别率不高的问题,开展基于卷积神经网络的研究。本研究所用的数据集均为戴口罩的人脸图像,总共1 016张图片,其中测试样本为305张,训练样本为711张。本研究采用对比试验的方法,在初始卷积神经网络模型结构不变的情况下,修改每一个卷积层的卷积核数量,从后往前进行对比,得出本研究最佳模型,人脸检测准确率约为99.74%。通过试验可以看出,卷积神经网络对戴口罩的人脸有很好的识别能力。
关键词:人脸识别;卷积神经网络;深度学习
中图分类号:TP391 文献标志码:A 文章编号:1003-5168(2022)7-0010-05
DOI:10.19968/j.cnki.hnkj.1003-5168.2022.07.002
Abstract:In order to solve the problem of low face recognition rate with mask in the epidemic environment. This study is the convolution neural network based study of the problem. The data sets used in this experiment all use mask faces, with a total of 1 016 pictures, including 305 test samples and 711 training samples. The research process adopts the method of comparative experiment. Under the condition that the structure of the initial convolution neural network model remains unchanged, modify the number of convolution cores of each convolution layer, compare it from back to front, and get the best model in this experiment. The accuracy of face detection is about 99.74%. Through this experiment, it can be seen that the convolutional neural network has a good ability to recognize the face wearing mask.
Keywords: face recognition; convolutional neural network; deep learning
0 引言
神经网络是通过模仿人类大脑神经元之间的生物信号传递机制而诞生的计算机交叉科学[1~2]。随着技术的不断发展,神经网络从浅层网络发展到如今深度学习领域常用的卷积神经网络[3]。卷积神经网络在训练过程中是通过反向传播算法[4]来实现学习的。反向传播算法的提出,提高了卷积神经网络的使用率,促进人工智能领域有了新的突破。在某些特定的任务上,人工智能表现出了几乎超出人类极限水平,如人工智能程序AIphaGO在围棋领域击败了世界围棋冠军柯洁。
深度学习的大规模应用,使人工智能学科快速崛起,进而诞生了一系列基于深度架构的网络模型,如LeNet、AlexNet、ZFNet、VGG、GoogLeNet、ResNet、DPRSNet、MobileNet等[5-12]一些非常不错的网络模型。
卷积神经网络可以解决传统编程难以完成的任务,如人脸识别[13]、医疗行业问题[14-15]、自动驾驶问题等。目前,人脸识别是不同场合下应用率最高的技术之一。随着新型冠状病毒肺炎疫情的持续,在转乘火车等公共交通工具时,乘客会在闸机口反复摘下口罩进行人脸识别,以完成身份认证,而这极大地增加了感染病毒的可能性。因此,本研究在传统人脸识别技术的基础上,研究如何设计并实现戴口罩的人脸识别的深度学习模型。
1 卷积神经网络
卷积神经网络与传统神经网络的不同之处在于,卷积神经网络模型是由卷积层、池化层、全连接层和输出层组成。本研究在此基础上增加了BN层和Dropout层,用来提高模型性能。
1.1 卷积层
卷积层是利用多个卷积核对图像进行特征提取,卷积核的感受野越小,计算机运算量越小,计算速度就越快。卷积运算就是卷积核圈住部分图像后,从左往右每层依次滚动进行矩阵运算。图1是通过单通道对一个3×3卷积核的特征提取过程。
1.2 池化层
池化层采用局部相关性原理,从局部采样得到新的元素值。本研究采用的池化方式为Max Pooling[16],最大采样是采样局部最大的一个值。本研究采用的池化核为2×2,将图像切分为2×2的小块,再从中取最大值。图2是一个4×4的矩阵进行池化核为2×2的最大采样运算。
1.3 Dropout层
Dropout层通过随机断开神经网络中的连接,可以提高模型性能,提高模型的泛化能力。本研究采用的随机断开概率为0.5。Dropout层的实际作用如图3所示。
2 CNN模型设计
为了方便试验测试,模型的所有卷积层初始核心数都设置为64,卷积核设置为3×3,激活函数设置为ReLU函数[17],池化层设置为最大池化。
先设计一个由2个卷积层和1个池化层组成的基本结构。本研究试验模型的主要结构是通过重复以上的基本结构得到的。本研究主结构一共有6个卷積层、3个池化层,再接入Flatten层和Dense层用作输出分类,最后适当添加BN层[18]和Dropout层,得到准确率更高的模型。本研究得到的最佳模型结构如图4所示。
2.1 数据采集
本研究采用的是自建数据集,一共5组人脸图片,其中4组人脸图片均来自网络,1组用OpenCV软件库调用电脑摄像头抓取获得。剔除无效数据后共1 016张图片,即每一组200张左右。部分样例数据如图5所示。
2.2 数据集处理
将较大图片全部剪切为64 ppi×64 ppi的图片;原尺寸小于64 ppi×64 ppi的图片,将其短边填充,使其成为64 ppi×64 ppi的正方形;并将所有图像改为灰度图像。
3 试验过程及结果分析
本研究的试验环境为Windows 10、Python3.8、tensorflow2.4.1,CPU是Intel(R) Core(TM)i5-9500,内存为8G,显卡为Intel(R) UHD Graphics 630。数据集总共1 016张64 ppi×64 ppi图片,用其中的一部分当作测试集,即测试样本为305张,训练样本为711张。学习率为0.001,batch为32,训练次数为130次。
试验中,通过更改各个卷积层的卷积核数量,训练对比后得出适用于本数据集的最佳模型。初始模型6个卷积层的卷积核数量都是64,就用6464-6464-6464来表示。
本试验从最后一位卷积层,即第6位卷积层开始进行对比。用到的模型有6464-6464-6464、6464-6464-6496、6464-6464-64128。第一次试验对比,其他卷积层的参数保持不变,只更改最后一个卷积层的卷积核数量,分别为64、96、128。训练后的准确率(TestAccuracy)和损失值(TestLoss)如图6所示,其他数据见表1。通过对比,找到准确率(TestAccuracy)最高、损失值(TestLoss)最低的一个模型,即模型6464-6464-6464。保留此模型数据,用来进行第二次对比试验。第二次对比试验,对第5位进行对比。以此类推,只保留每一位对比后数据最佳的卷积层,直到筛选到第1位为止。
第六次对比试验,从第1位卷积层开始进行对比,用到的模型有6464-64128-9664、9664-64128-9664、12864-64128-9664。第六次试验对比其他卷积层的参数保持不变,只更改第1个卷积层的卷积核数量,分别是64、96、128。训练后的准确率(TestAccuracy)和损失值(TestLoss)如图7所示,其他数据见表2。
通过对比,找到准确率(TestAccuracy)最高、损失值(TestLoss)最低的一个模型,即模型6464-64128-9664为本研究所有对比试验的最佳模型。
在试验过程中,增加了一些BN层和Dropout层,加速模型的收敛。通过更改模型卷积层的卷积核数量,发现在第1个卷积层和第4个卷积层中,当卷积核数量是图像像素倍数时,会有良好的收敛效果,否则可能会出现过拟合现象。
4 结语
试验通过调整卷积核数量、加入Dropout层、修改学习率等操作,得到了准确率为99.74%、损失值为0.01的最佳模型。通过OpenCV调用电脑摄像头发现,此模型不仅对戴口罩人脸有较高识别率,对无口罩人脸也有良好的识别能力。
通过上述试验可以看出,深度学习模型对本研究中的数据集有较好的分类能力,卷积神经网络对戴口罩的人脸有很好的识别能力,对戴口罩人脸的识别具有一定的参考价值,其模型可移植到树莓派、手机等便携式设备。
參考文献:
[1] MCCULLOCH W S, PITTS W. A logical calculus of the ideas immanent in nervous activity[J]. The bulletin of mathematical biophysics,1943(4):115-133.
[2] ROSENBLATT F.The perceptron:A probabilistic model for information storage andorganizationin the brain[J]. Psychological Review,1958(6):386-408.
[3] 季长清,高志勇,秦静,等.基于卷积神经网络的图像分类算法综述[J/OL].计算机应用,2021[2022-03-24].http://kns.cnki.net/kcms/detail/51.1307.TP.2-021092-7.1733.024.html.
[4] RUMELHART D E, HINTON G E, WILLIAMS R J. Learning representations by back-propagating errors[J].Nature,1986(6088):533-536.
[5] HE K,ZHANG X,REN S,et al.Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE transactions on pattern analysis and machine intelligence,2015(9):1904-1916.
[6] KRIZHEVSKY A,SUTSKEVER I,HINTON G E.Imagenet classification with deep convolutional neural networks[J]. Advances in neural information processing systems,2012,25:1097-1105.
[7] ZEILER M D, FERGUS R.Visualizing and understanding convolutional networks[J].CoRR,2013.abs/1311.2091.
[8] SIMONYAN K,ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[J].CoRR,2014.abs/1409.1556.
[9] SZEGEDY C,LIU W,JIA Y,et al. Going deeper with convolutions [C]// 2015 IEEE Conference on Computer Vision and Pattern Recognition.IEEE,2015:1-9.
[10] HE K,ZHANG X,REN S,et al. Deep residual learning for image recognition[C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition.IEEE, 2016:770-778.
[11] YAMADA Y, IWAMURA M, KISE K. Deep pyramidal residual networks with separated stochastic depth[J].CoRRect,2016.abs/1612.01230.
[12] HOWARD A G,ZHU M,CHEN B,et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications[J].ar Xiv,2017.abs/1704.04861.
[13] 謝志华,江鹏,余新河,等.基于VGGNet和多谱带循环网络的高光谱人脸识别系统[J].计算机应用,2019(2):388-391.
[14] ZHANG L,WANG X,YANG D,et al. Generalizing deep learning for medical image segmentation to unseen domains via deep stacked transformation[J]. IEEE transactions on Medical Imaging,2020(7):2531-2540.
[15] 孔令军,王茜雯,包云超,等.基于深度学习的医疗图像分割综述[J].无线电通信技术,2021(2):121-130.
[16] GRAHAM B. Fractional max-pooling[J].CoRR,2014.abs/1412.6071.
[17] KRIZHEVSKY A,SUTSKEVER I,HINTON G E. Imagenet classification with deep convolutional neural networks[J]. Communicaticns of the ACM,2017(6):84-90.
[18] IOFFE S, SZEGEDY C. Batch normalization: Accelerating deep network training by reducing internal covariate shift [C]// Proceedings of the 2015 International conference on machine learning. PMLR,2015:448-456.