基于多任务级联卷积网络模型的人脸检测和识别

2019-04-08 01:05刘其嘉郭一娜任晓文李健宇
太原科技大学学报 2019年2期
关键词:网络结构人脸人脸识别

刘其嘉,郭一娜, 任晓文,李健宇

(太原科技大学 电子与信息工程学院,太原 030024)

近年来,互联网技术和计算机视觉的发展和兴盛使得全球化日益明显,信息安全已经成为人类必不可少的环节。现在社会中数据传输量数以亿计的发生,个人信息保密也将是很重要的技术,生物识别技术作为个人信息保密的重要组成部分。其中人脸检测和识别技术比其他生物识别技术具有自然性,非强制性,非接触性,并发性等优点。人脸检测和识别一直是机器语言,计算机视觉等领域的热点。

人脸检测和识别的难点在于男女的分辨,用户的配合度,个体之间的相似性和易变性[1]。从非深度到深度的方法的发展,使得人脸检测和识别的精度明显提高。1991年,麻省理工大学的Turk[2]等人提出了一种特征脸算法的人脸识别,基于主成分分析,通过K-L矩阵变换去识别人脸。1996年Sweets[3]等人提出了一种线性判别方法,通过对人脸图像降维去匹配人脸。这些非深度的方法简单并且速度快,缺点是人脸检测效果不好,鲁棒性不好。自从Hinton提出了深度信念网络[4],通过贪婪算法去训练模型,然后反向传播优化参数。现在已经成功应用到人脸识别。2001年Viola等人提出基于Ada Boost算法[5]的人脸检测器,这个算法在人脸技术的发展史上有着里程碑的作用,相比原来的算法明显的提高了人脸检测和识别的速度和准确率。2006年Hinton等人在深度信念网(Deep Belief Networks, DBMS)上革命性的发展使得深度学习进入了全新的领域。人脸技术和深度学习的结合随之而来。2014年Yaniv Taigman[6]等人通过额外的3D模型,改进了人脸对齐的方法,基于大数据训练了9层的的人工神经网络来进行人脸特征表达,数据集上准确率打到了0.9735.可见,深度学习对于人脸检测和识别有着巨大的推动力。然而这些这些深度学习算法训练出来的模型对多目标和遮挡图像的识别精度不是很高,迫切需要寻求快速识别和匹配人脸非刚性的的算法和模型。

本文为解决CNN模型的识别精度问题,在CNN的基础上对多任务级联卷积网络模型(Multitask Cascaded Convolution Network,MTCNN)进行改进,采用Face Net模型和KNN算法对人脸达到识别的目的,Face Net 算法可以实现人脸识别的结果。该算法和模型针对测试数据集上的准确率达到0.98.

1 人脸检测和识别模型

人脸是非刚性目标,容易受到光照,时间等自然条件和非自然条件的影响。人脸技术经过几十年的发展,人脸识别技术越来越受到人们的重视,国外的麻省理工大学,斯坦福大学,Google和国内的清华大学,北京大学,百度等机构在从事人脸技术的发展,从传统的人脸技术到深度学习技术,不同的模型,不同匹配技术使得人脸技术呈爆发式的发展,可是人脸技术目前还存在很多难题,它涉及计算机视觉,图像处理,模式识别,认知论等学科的交叉知识。大数据时代,人脸数据库的视频和图片越来越多,处理数据的算法也出现日新月异的变化。

图1 人脸检测与识别框图
Fig.1 Block diagram of face detection and recognition

人脸检测和识别框架如图1所示,用Open CV输入一张单人脸图片,然后经过人脸检测模型检测到人脸,对人脸进行特征提取,由人脸识别模型进行特征匹配并对人脸进行识别。因此基于深度学习人脸检测和识别模型是本文的创新点。深度学习的模型如图2所示。包含输入层,隐藏层,输出层。其中隐藏层中含有卷积层和采样层。

图2 人脸检测和识别模型
Fig.2 Face detection and recognition model

一个深度学习网络由好多神经元组成,如图3所示输入向量的各个分量为 ,神经元各个突触的权重,偏置为b,传递函数为f,通常为非线性函数。神经云输出,其中为权重向量,为权重向量的转置。可见一个神经元功能是求得输入向量和权重向量的内积后,通过非线性函数f的功能得到结果t.单个神经元的作用:把一个n维向量空间用一个超平面分为两部分(称之为判断边界),给定一个输入向量,神经元可以判断出这个向量位于超平面的那一边。

图3 神经元模型
Fig.3 Neuron model

Face Net深度学习算法[7]是Google 提出来的算法,把人脸图像映射到空间内,对其提取特征。Face Net采用的方法是通过卷积神经网络学习将图像映射到欧几里得空间。空间距离直接和图片相似度相关:同一个人的不同图像在空间距离很小,不同人的图像在空间中有较大的距离。只要该映射确定下来,相关的人脸识别任务就变得很简单。结构如图4所示,图像经过没有输出层的深层网络结构提取特征,然后经过 范数归一化[8]得到特征表示,最后计算三元损失,得到最好的结果。本文使用Face Net深度学习算法对人脸的五个特征点进行提取,分别为眼睛,鼻子,嘴唇两角。

图4 Face Net 结构图
Fig.4 Face Net structure

KNN算法原理是计算输入数据和训练好的模型之间的距离,在阈值K之内的样本进行分类。如图5所示,对输入数据 进行分类,然后计算 与任意一点之间的距离从而进行分类。

图5 KNN分类
Fig.5 KNN classification

2 人脸检测和识别流程

本文用大量人物图像数据去训练人脸检测和设别的深度学习模型,训练好的分类器可以对不同姿态和多人物图像进行人脸检测和识别,取得了很好的效果,多人物图像和多姿态人物图像有良好的鲁棒性。如图6所示是人脸检测和识别的算法流程。

(1)人脸检测和识别通过Open CV读取图片;

(2)用数据集训练好的出多任务级联网络算法模型;

(3)对从人物图像中检测到出人脸,再用训练好的Face Net算法对数据集训练好模型进行人脸进行设别;

(4)然后用最邻近规则法(KNN)算法对人脸进行识别。

本文多任务级联网络模型(MTCNN)[9]做了微小改进,增加了第一层网络结构,这层网络结构减少了滤波器数量,减少计算量,快速对人脸图像进行确定。四个网络结构组成为:

(1)该网络结构没有输出层,通过卷积层和采样层对图像进行特征提取,对人脸图像进行了人脸位置候选窗口的确定。

(2)该网络结构是对获得了人脸区域的候选窗口和边界框的回归向量。并用该边界框做回归,对候选窗口进行校准,然后通过非极大值抑制(NMS)来合并高度重叠的候选框。

(3)该网络结构还是通过边界框回归和NMS来去掉那些假性区域。只是由于该网络结构与上一层网络结构有差异,多了一个全连接层,所以会取得更好的抑制假性区域的作用。

(4)该层比第二层网络又多了一层卷基层,所以处理的结果会更加精细。作用和第二层网络作用一样。但是该层对人脸区域进行了更多的监督,同时还会输出5个人脸特征点。

图6 人脸检测和识别流程图
Fig.6 Flow chart of face detection and recognition

人脸分类的交叉熵损失函数为:

Face Net的目标函数为:

本文是基于Tensor Flow平台用数据集对算法模型进行的训练。把训练好的多任务级联网络模型和Face Net模型和KNN分类器进行了封装,使的人脸检测和人脸识别同时进行,可以很好地对不同光照的,不同姿态的人物图像进行检测和识别,并且用LFW数据集上的数据进行了测试,可以达到很好地效果。

3 实验结果分析

3.1 样本测试

本文是在Linux操作环境下的Tensor Flow软件上进行的实验。500个训练样本下,迭代次数为10 000次,随机选取50个样本进行测试。分别选取光照比较暗时拍的照片、早晨阳光充足时拍的的人物照片、中午阳光刺眼拍的照片、小孩子的照片、晚上车内带着墨镜的照片、晚上室内灯光下的照片,通过训练好的模型MTCNN进行人脸检测,通过算法Face Net和KNN进行人脸识别。

如图7所示,MTCNN模型对不同环境下人脸的识别准确率为0.98.

图7 识别准确率
Fig.7 Recognition accuracy

如表1所示,与其他模型的识别准确率比较,准确率明显提高。算法的速度也明显快了很多。

表1 准确率对比
Tab.1 Accuracy comparison

方法准确率PLDA[10]0.90High-dim LBP[11]0.93FR+FCN[12]0.94Face++[13]0.97Deep Face[6]0.97本文0.98

图8中的a 光照比较暗时拍的照片,b图是早晨阳光充足时拍的的人物照片,c 是中午阳光刺眼拍的照片,d是小孩子的照片e是晚上车内带着墨镜的照片,f是晚上室内灯光下的照片。对照a,b,c结果可见此模型对不同光照下的多人图像进行了人脸检测和识别,可以克服光照的因素,精准的识别人脸。c结果是对小孩的人脸进行识别,可见此模型对人脸的非刚性有明显的优势,对不同年龄的人脸可以检测和识别。e ,f结果对比得出对遮挡人脸得图像可以检测和识别。综上所述,可以看出此模型对多人物和遮挡图片的人脸很好地进行检测和识别,对脸的非刚性,年龄不同,光照和灯光以及遮挡物都有很好的鲁棒性,并且可以定位人脸的五个特征点。

(a) (b)

(c) (d)

(e) (f)

图8 实验结果
Fig.8 Experimental resultS

4 结论

基于Tensor Flow 软件平台,使用多任务级联网络模型对人脸进行检测,使用Face Net模型对人脸进行特征提取,然后使用KNN算法对特征进行分类去进行人脸识别。针对目前人脸检测和识别准确率和环境影响等的问题,进行了大量的模型训练和实验

(1)MTCNN+Face Net+KNN人脸检测和识别模型可以精准的检测和识别人脸,对人脸非刚性的问题得到了解决。

(2)易用性,此模型是基于CNN基础之上而得到的模型,可以很好地进行模型训练。

猜你喜欢
网络结构人脸人脸识别
人脸识别 等
有特点的人脸
一起学画人脸
快递网络结构研究进展
揭开人脸识别的神秘面纱
基于AutoML的保护区物种识别①
人脸识别技术的基本原理与应用
三国漫——人脸解锁
人脸识别在高校安全防范中的应用
基于时效网络的空间信息网络结构脆弱性分析方法研究