刘楠 刘瑞安 尹宁浩
摘 要: 目前人脸识别技术被广泛应用于实际生活各个领域,尤其是在实时视频场景下应用越来越普及,因此对人脸识别的研究具有重大价值。通过应用Keras框架和深度学习相关知识构建深度卷积神经网络,训练出有效的人脸识别模型,并应用到实时视频场景进行人脸检测和识别,最后通过实验表明此方法能够有较高的正确率,并能准确识别视频中的人脸。
关键词: 人脸识别;卷积神经网络;深度学习
中图分类号: TP391. 41 文献标识码: A DOI:10.3969/j.issn.1003-6970.2019.08.002
本文著录格式:刘楠,刘瑞安,尹宁浩,等. 基于深度卷积神经网络的人脸识别[J]. 软件,2019,40(8):0608
【Abstract】: At present, face recognition technology has great research value in various fields of society, especially in real-time video scenes. Deep convolutional neural network was built based on the deep learning related knowledge and the Keras framework to train an effective face recognition model, which was applied to real-time video scene for face detection and recognition. Finally, the experiment shows that this method has high accuracy and can identify faces in video accurately.
【Key words】: Face recognition; Convolutional neural network; Deep learning
0 引言
人臉识别是近年来新兴的生物识别技术,以人脸信息为主要特征来进行身份判定。近年来随着人工智能技术不断发展,人脸识别技术研究得到了巨大的推动,同时也更广泛应用到实际生活场景中:金融银行的“刷脸”功能的使用、火车站的人证对比功能、企业住宅的门禁管理功能、手机解锁功能、课堂考勤 [1]以及国防公安等其他场景,因此人脸识别必须精确而高效,才能逐渐满足应用需求。
传统的人脸识别有基于模板匹配和基于统计学[2]等方法,但是由于算法限制以及人脸识别自身的复杂性,并没有较好地应用在实际场景中。自2006年Hinton[3]等人提出深度学习概念,该领域不断发展,2014年以来深度学习被更多地应用到人脸识别领域。Facebook 公司提出了Deep Face[4],香港中文大学研究团队提出了一系列基于深度学习的人
脸识别方法Deep ID1 [5],Deep ID2 [6],Deep ID2+ [7]和Deep ID3 [8],2015年谷歌提出的Face Net [9]算法,在LFW测试集上达到了99.63%的准确率,同年百度[10]、腾讯[11]、旷视[12]等拥有海量数据的大公司也都提出了自己的基于深度学习的算法,随着硬件平台的发展,深度学习网络模型呈现出层次越来越深的趋势。
1 卷积神经网络
20世纪90年代,LeCun et al.[13]等人的论文基本确定了卷积神经网络的现代结构,随后不断发展,设计了一种能够对手写数字进行分类的多层人工神经网络,取名为LeNet-5,如图1所示。
卷积神经网络是一种深度学习的神经网络模型,具有权值共享、局部连接等特性,这使得卷积神经网络有一定的平移、缩放和旋转不变性,能够广泛应用于图像分类[14]、人脸识别等场景。卷积神经网络一般是由卷积层、池化层和全连接层交叉堆叠而成的前馈神经网络,使用反向传播算法进行训练。各层简要介绍如下:
(1)卷积层(Convolutions layer):用于学习输入数据的特征表示,组成卷积层的卷积核用于计算不同的特征图。
(2)池化层(Pooling layer):又称下采样层,用于降低卷积层输出的特征向量,同时改善结果通过卷积层与池化层,可以获得更多的抽象特征。
(3)全连接层(Full connected layer):经过一系列计算,对上层数据进行分类。
随着处理数据的增多,人们对卷积神经网络的要求也越来越高,卷积神经网络朝着网络加深和增强卷积模块功能方向发展,也就是深度卷积神经网络。Alex提出的Alexnet [15]、Karen Simonyank提出的VGGNet [16]、谷歌公司提出的GoogLeNet [17]、何凯明团队提出的ResNet [18]都是典型常用的深度卷积神经网络模型。
2 基于深度卷积神经网络的人脸识别
2.1 Keras神经网络框架
为更好地实现人脸识别,本文采用一个高级的高度封装的Python神经网络框架——Keras [19],实验采用的后端为Tensorflow,核心数据结构为Sequential模型,此类模型是一系列网络层有序组成的栈。Keras框架具有以下优点:
1、模块化:模块的各个部分,如神经层、激活函数都是相互独立的模块,可以进行组合创建模型;
2、极简主义:每个模块都保持简短和简單;
3、易扩展性:易添加新模块,可做进一步的深入研究
Keras框架易操作实现简单等优点为本次实验实现人脸识别奠定了基础,是构建深度卷积神经网络模型的前提。
2.2 构建深度卷积神经网络模型
为达到最佳人脸识别效果,本次实验依据深度学习相关知识构建深度卷积神经网络 [20],利用已有的人脸数据库对其进行训练,并将训练好的模型应用到视频的人脸检测[21]和识别中。
具体步骤如下:
(1)构建网络模型。本次实验构建的深度卷积神经网络主要包括卷积层、激活函数层、池化层、Dropout层、全连接层、Flatten层和分类层共18层。其中激活函数层将简单的线性输入转换成复杂的非线性输出,以获得更好的分类效果;Flatten层将输入数据转换成一维数据输入到全连接层; Dropout层用来避免训练时出现过拟合现象,使模型更稳定;分类器采用Softmax函数,此种分类器主要应用于多分类,其函数形式如下:
其中Zj表示当前神经元的输入,总的类别为N个,分子表示当前输入的指数,分母表示总的输入指数之和,aj结果为一个介于0—1的比值,比值越大训练效果越理想。
(2)训练过程中对加载人脸图像进行实时数据提升,从训练数据中利用旋转、翻转等方法创造新的训练数据以提升训练数据规模,提高模型的稳定性和训练效果。
(3)通过判断识别正确率及时调整各步骤以实现最佳识别效果,此时得到的卷积神经网络模型即为训练好的最佳卷积神经网络模型。
(4)将训练好的最佳卷积神经网络模型应用到视频人脸检测和识别中,最后得到正确的人脸检测与识别结果。
3 实验结果
本次实验采用ORL人脸数据库(记为1号数据库),共40人400张人脸图片,其中80%人脸图像用来训练模型,20%人脸图像用来测试模型在该人脸数据库上的正确率,训练过程中给人脸数据库中所有图片按序依次进行标记,图片名称为每个人独有的标签。若模型训练效果理想则将模型应用于视频人脸检测与识别。为将数据库人脸与要识别视频人脸完全匹配,本次实验在数据库中额外添加10张在网络中随机下载的人脸图片(记为2号数据库),再次按照原来比例分别进行训练和测试进行实验。得出两种情况实验结果如表1所示:
由表1可以看出深度卷积神经网络构建的模型在人脸识别中具有较高的正确率及较小的误差,为进一步验证其在实际应用中的有效性,我们导入随机在网上下载包含2号数据库额外添加图片的人脸视频,识别结果如图2所示,可以看出视频中人脸已经被准确检测并标记对应的名字,进一步说明了本次实验构建的深度卷积网络模型在人脸识别中的有效性。
4 总结
本文介绍了卷积神经网络的发展,并利用Keras框架将深度卷积神经网络应用到人脸识别中,实验表明该模型在ORL人脸数据库能得到较高的正确率,并能准确识别视频中人脸,能够应用在实际工作中。在下一步的实验进行中将进一步探究在数据量更多的人脸数据库情况下深度卷积神经网络模型将如何优化,并建立一个完整的人脸识别系统[22]。
参考文献
[1] 吴美香, 邓园园, 裴枫华, 等. 基于人脸识别的移动课堂考勤系统的设计与实现[J]. 软件, 2018, 39(01): 05-08
[2] 全雪峰. 基于奇异熵和随机森林的人脸识别[J]. 软件, 2016, 37(02): 35-38.
[3] H.Geoffrey. E, R. Salakhutdinov. Reducing the dimensionality of data with neural networks. [J]. Science, 2006, 313(5786).
[4] Y Taigman, M Yang, M Ranzato, et al. Deep Face: Closing the Gap to Human-Level Performance in Face Verification [C]. IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2014: 1701-1708
[5] Y Sun, X Wang, X Tang. Deep Learning Face Representation from Predicting 10,000 Classes[C]. Computer Vision and Pattern Recognition. IEEE, 2014: 1891-1898
[6] Y Sun, X Wang, X Tang. Deep Learning Face Representation by Joint Identification-Verification[J]. 2014, 27:1988-1996
[7] Y Sun, X Wang, X Tang. Deeply learned face representations are sparse, selective, and robust[J]. 2014: 2892-2900
[8] Y Sun, D Liang, X Wang, et al. Deep ID3: Face Recognition with Very Deep Neural Networks[J]. Computer Science, 2015
[9] F Schroff, D Kalenichenko, J Philbin. Face Net: A unified embedding for face recognition and clustering[J]. 2015: 815-823
[10] J Liu, Y Deng, T Bai, et al. Targeting Ultimate Accuracy: Face Recognition via Deep Embedding[J]. 2015[19]
[11] B Zhu, H Liu.. MIREX 2015 QBSH task: Tencent Best images solution[J]. 2015
[12] E Zhou, Z Cao, Q Yin. Naive-Deep Face Recognition: Touching the Limit of LFW Benchmark or Not? [J]. Computer Science, 2015
[13] Lecun Y, Botton L, Bengio Y, Haffer P. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11):2278-2324.
[14] 呂臻, 张宇. 一种基于PE病毒转图和CNN的病毒识别方法[J]. 软件, 2018, 39(6): 131-134
[15] Alex Krizhevsky, Ilya Sutskever,Geoffrey E. Hinton. Imagenet classification with deep convolutional neural networks[C]. In Proceedings of the 25th International Conference on Neural Information Processing Systems-Volume1, 2012, 1097-1105
[16] Simonyank, Zisserman A.. Very deep convolutional networks for large-scale image recognition[J]. Eprint Arxiv, 2014.
[17] Szegedt C, Liu W, Jia Y, et al. Going deeper with convolutions[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Boston. IEEE, 2015: 1-9.
[18] He K, Zhang X, Ren S, et al.. Deep residual learning for image recognition[C]. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Las Vegas. IEEE, 2016: 770-778.
[19] 李嘉旋.TensorFlow技术解析与实践[M]. 1版. 北京: 人民邮电出版社, 2017: 135-136
[20] 李倩玉, 蒋建国, 齐美彬. 基于改进深层网络的人脸识别算法[J]. 电子学报, 2017, 45(03): 619-625.
[21] 张明军,俞文静,袁志,黄志金.视频中目标检测算法研究[J]. 软件, 2016, 37(04): 40-45.
[22] 安大海, 蒋砚军. 基于BP神经网络的人脸识别系统[J]. 软件, 2015, 36(12): 76-79.