摘要:利用卷积神经网络应用于人脸识别领域,极大提高了识别的准确性。使用AlexNet网络作为人脸检测网络,使用经2622个人脸数据训练过得VGG网络作为人脸的特征提取网络,并结合人脸特征库的存储和匹配,构建了一个完整的人脸检测和识别的系统,识别准确率高于97%。
关键词:人脸识别;卷积神经网络;VGG
0引言
人脸识别技术得到了广泛应用,如支付、考勤等场景。人脸识别实现技术有很多,本文介绍一种基于卷积神经网络的人脸检测和识别的系统,实现快速、准确的人脸特征提取与匹配。
1系统整体结构
该人脸识别系统从技术结构上分为人脸检测、特征提取、特征注册、特征识别四个模块,从业务上分为人脸注册和人脸识别两个流程。
人脸检测模块使用人脸检测网络对摄像头或图像中的人脸进行检测,提取人脸图像框。人脸检测网络通过人脸检测训练库进行训练,这里的人脸检测网络使用AlexNET网络。
特征提取模块使用特征提取网络将人脸图片中的特征提取出来形成特征向量,特征提取网络通过人脸特征提取训练库进行训练,这里的特征提取网络使用VGG-16。
特征注册模块将特征提取模块提取出的特征向量存入人脸特征库。
特征识别模块是将上一步提取的特征向量同人脸特征库里的特征向量进行匹配。来判断新提取的特征是否已录入特征库。
人脸注册流程:人脸注册即为人员登记,首先将人脸图片经过人脸检测和特征提取模块,最后经过特征注册模块将人脸特征存入人脸特征库,并与人员身份信息进行关联。
人脸识别流程:人脸识别流程同样先将人脸图片经过人脸检测和特征提取,然后经过特征识别模块查找特征库中是否已存有相匹配的特征,如果有则识别成功,输出对应的人员信息;如果没有则返回失败。
2人脸的检测
人脸检测方法很多,这里使用的CNN网络实现人脸检测。
用于人脸检测的CNN网络的训练:使用带有人脸信息的图片(大小为224x224)作为正样本,不带人脸信息的图片作为负样本对CNN网络进行训练,训练后的CNN网络具有了判别图片是否为人脸图片的能力。
2.1AlexNET网络
AlexNET网络如图2所示。
Alexnet的整个网络结构是由5个卷积层和3个全连接层组成的,深度总共8层。
2.2利用Alexnet进行人脸的检测
将在环境中抓拍到的图片进行多比例的缩放处理,针对原图及缩放后的每一幅图片,使用滑动框(大小224x244)从图片的左上角到右下角,按照一定步长移动滑动框进行截取,将截取得到的多个224x224(预处理后为227x227)大小的图片输入训练好的CNN网络进行是否为人脸的判定,得到判定矩阵,最后根据判定矩阵逆向找到含有人脸的框在原图像中的坐标位置,进行截取得到最终的人脸图片。
3VGG网络的训练
VGG在Alexnet基础上对深度神经网络在深度和宽度上做了更多深入的研究,更深的网络具有比浅网络更强的表达能力,是一个很好的特征提取器。
VGG16网络为13层卷积层+3层全连接层而组成。
VGG与Alexnet相比,具有如下改进几点:
(1)使用了更小的3*3卷积核,和更深的网络。两个3*3卷积核的堆叠相对于5*5卷积核的视野,三个3*3卷积核的堆叠相当于7*7卷积核的视野。这样一方面可以有更少的参数(3个堆叠的3*3结构只有7*7结构参数数量的(3*3*3)/(7*7)=55%);另一方面拥有更多的非线性变换,增加了CNN对特征的学习能力。
(2)在VGGNet的卷积结构中,引入1*1的卷积核,在不影响输入输出维度的情况下,引入非线性变换,增加网络的表达能力,降低计算量。
(3)训练时,使用了逐层训练分段卷积的方法。先训练级别简单(层数较浅)的VGGNet的A级网络,然后使用A网络的权重来初始化后面的复杂模型,加快训练的收敛速度。
(4)采用了Multi-Scale的方法来训练和预测。可以增加训练的数据量,防止模型过拟合,提升预测准确率
这些优点使得VGG网络更深更宽且收敛更快。
4使用VGG网络对进行人脸分类训练
对VGG网络训练使用了2622个名人的照片作为人脸库,每个名人(identity)有几百个照片来标识同一个人。因此可将训练过程视为一个N=2622的分类问题,即每一个identity都是一类,网络的最后一层是分类器,分类的误差用softmaxlog-loss来计算,通过最小化类内差异和最大化类间差异来训练网络。
一旦学习过程完成后,就可以把分类器去除,分数向量便可以作为特征通过计算欧式距离进行人脸校验。最后得到的分数向量能够进一步得到改善,通过在欧式空间里面使用“tripletloss”的方式进行训练,对特征进一步精炼。
将人脸图片通过训练好的VGG网络计算出的分数向量作为人脸的特征向量,该过程称为特征提取。
5人脸特征注册
将需要进行人脸识别的一群人进行面部图片采集,经过训练好的VGG网络获得人脸特征向量,将该特征向量与对应的人员标识一对一成对存储,形成人脸信息库。
6人脸特征匹配
在进行人脸识别的场景,将新采集的待测人脸图片输入训练好的VGG网络获得人脸特征向量,将该向量与人脸信息库中已有的人脸特征向量逐一比对,计算向量之间的距离,如果某一已知向量与待测向量距离相近,且满足阈值,则将待测人脸判定为该已知特征向量所对应的人员。向前端返回匹配成功信息,如果便利人脸信息库没有距离满足阈值的已知向量,则返回匹配失败信息。
7人脸识别系统的实现
人脸识别系统的实现一共用到了5个开源库:OpenCV(计算机视觉库)、Caffe(深度学习库)、Dlib(机器学习库)、libfacedetection(人脸检测库)、cudnn(gpu加速库)。用到了一个开源的深度学习模型:VGGmodel,具体为该模型的caffe版本vgg_face_caffe。
8结果
使用LabeledFacesIntheWild人脸数据库测试,该系统识别成功率为97.27%,在相同数据集下,高于Fisherface和Eigenface算法的成功率。——论文作者:杨太平
相关期刊推荐:《电子测试》主管单位为北京市科学技术研究院、主办单位为北京自动测试技术研究所。以介绍最新电子技术和测试测量技术为主。设有:设计研发;电子科技;解决方案;智能应用;机械世界;数字时代;信息工程;行业动态;教育探索;学术交流;科技论坛等栏目。
转载请注明来自:http://www.lunwencheng.com/lunwen/dzi/21279.html