基于深度学习的人脸识别方法∗
2020-05-15王敏
王 敏
(武汉邮电科学研究院通信与信息系统 武汉 430070)
1 引言
人脸识别问题涉及广泛,涉及多方多面的知识,如图像处理、计算机视觉、优化理论等,与此同时,又与其他学科的研究领域产生密不可分的联系,如认知学、心理学等。目前人脸识别技术已普及的在各个行业运用,如常用的支付宝APP、人脸门禁、人脸考勤系统、相亲终端APP系统等。传统的人脸识别主要有以下几种:1)基于子空间的方法,人脸图像属于高维数据,它包含了大量的冗余信息,而基于子空间的方法是通过将高维人脸图像映射到低维子空间,不仅实现了图像的降维,而且可以消除角度、人物的表情、光线、遮挡等因素的影响。最具代表性的子空间方法有Eigenface[2]和Fisherface[3]算法。2)基于模型的方法,通过对人脸进行二维或三维建模的方法,可以有效地对光照、姿态等变量进行建模,从而准确识别人脸。基于模型的人脸识别可以分为以下三类:人脸对齐模型、可变人脸模型及人脸年龄模型。典型的人脸对齐模型包含了隐马尔科夫模型[4],主动形状模型(Ac⁃tive Shape Model,ASM)[5]和主动外观模型(Active Shape Model,AAM)[6]。3)基于纹理的方法,需要从人脸图像的高频细节信息中提取出具有判别性的特征。方法利用了梯度信息,实现了算法对光照的鲁棒性。另外梯度信息也可以与其他方法相结合,如PCA法[7]、SRC法[8]、子空间学习法[9]等。4)基于表达的方法,与前几类基于特征的方法不同的是,基于表达的方法主要着眼于分类器的构建和训练,利用现有的训练样本,找到距离测试图片距离最近的类别。代表的方法有最近邻特征线分类[10]、最近邻特征平面分类器[11]和稀疏表达(SRC)[12]等方法。5)基于学习的方法,就是利用大量的训练严格不,通过机器学习的方法来学习人脸识别模型。这类方法主要包括支持向量机(SVM)[13]、神经网络(NN)[14]和提升方法(Adaboost)[15]等,其中 SVM 模型曾一度被广泛研究并使用。近几年来,随着深度学习的火热,卷积神经网络在人脸识别问题上取得了突破性进展。
上述五类方法在限制性环境中(无光照、姿态、表情、遮挡、分辨率等因素影响)和训练样本充足的情况下,均可取得良好的识别效果,尤其是基于深度学习的人脸识别算法在标准数据集上对人脸的识别率甚至超过了人类。因此,本文提出一种基于改进的卷积神经网络的人脸识别方法可以更好地提高其性能,提高其正确率。
2 深度神经网络
人工神经网络起源于20世纪40年代,第一个神经元模型是1943年McCulloch和Pitts提出的,称为threshold logic,它可以实现一些逻辑运算的功能。直到2006年深度网络(deep network)和深度学习(deep learning)的概念被提出来,神经网络又开始焕发一轮新的生命。深度神经网络通过一种可提取的数据深层特征的方式解决了经典多层神经网络难以进行训练的问题。根据目标函数的不同,目前已有多种深度网络诞生,如深度受限玻尔兹曼机[16]、Autoencoder[17]、CNN[18]等。
2.1 卷积神经网路结构
卷积神经网络是一个多层的神经网络,每层有多个二维平面组成,而每个平面由多个独立神经元组成。其基本结构如图1所示。
图1 卷积神经网络的基本结构
如图1所示,输入图像通过三个可训练的滤波器C1和可加偏置进行卷积,滤波过程如图1,卷积后在C1层产生三个特征映射图,然后对特征映射图中每组的四个像素再进行求和,加权值,加偏置,通过非线性激活函数对图像进行多次非线性变换得到三个S2层的特征映射图。这些映射图再经过滤波得到C3层。这个层级结构再和S2一样产生S4。最终,这些像素值被光栅化,并将一个向量输入和传统的神经网络连接起来,得到输出。
一般地,C层为特征提取层,每个神经元的输入与前一层的局部感受野相连,同时提取该局部的特征,一旦该局部特征被提取后,它与其他特征的位置关系也随之确定下来;S层是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射为一个平面,平面上所有神经元的权值相等。
此外,由于一个映射面上的神经元连接的权重是固定的,因而减少了网络自由参数的个数,降低了网络参数选择的复杂度。卷积神经网络中的每一个特征提取层都紧随着一个用来求局部平均与二次提取的特征映射层,这种特有的结构使网络在识别时对输入样本有较高的畸变容忍能力。
2.2 局部感知野
局部感知野,具体来说即是模拟人眼,在人眼看东西时,往往会聚焦在一个相对较小的局部区域通常认为人们对外部的认知是从局部区域到整体的,而在图像中也是局部区域的那些像素之间的关系更为密切,而相距更远的像素相互间关联比较低。考虑到图像像素点仅与相邻区域存在联系,CNN模型中的神经元采取了局部连接方式,即每一个神经元仅与其前层的输入单元的局部区域连接,由于模型是深层的,因此可以在模型高层将感受不同局部的神经元结合从而得到图像全局特征。
2.3 权值共享
在CNN中,每一层的神经元都是共享权值的,因此每一个卷积核仅能提取到图像的一种特征,通过在每一层中使用多个卷积核,可以有效地提取图像的不同特征。权值共享可以带来两个好处,首先,模型参数大幅度减少,使得模型训练更加容易;其次不同神经元都能对每种特征进行响应,二不用考虑该特征在图像域中的位置。
2.4 池化操作
在池化层中,CNN模型对特征图进行了降采样操作,通过平均池化或最大池化对特征图进行聚合统计,减少了特征图的尺寸,达到了降低数据量的目的,此外,池化操作也去除了特征图中的部分噪声,从而减少了过拟合现象。
总之,卷积网络的核心思想是将局部感受野、权值共享(或者权值复制)以及池化操作这三种思想结合起来,让CNN模型在减少参数的同时使得提取出的图像特征具有位移不变性、尺度不变性、旋转不变性等特性。
3 实验
3.1 数据集
本文采用的人脸数据库为LFW数据集(La⁃beled faces in the Wild)[20]由美国马萨诸 塞大学(University of Massachusetts)阿姆斯特分校计算机视觉实验室整理完成,用于研究费受限情形下的人脸识别问题,已成为学术界评价人脸验证性最常用的数据集。LFW数据集中有5749个人,共有13323张不同的人脸图片,LFW部分人脸样本如图2所示。其中的1680个人每人有两张以上人脸图片,而剩下4069人每人只有一张人脸图片。图像分辨率为250×250,以JPG格式存储,绝大多数为彩色图像,少数为灰度图像。
图2 LFW数据集
LFW原始图片来自Yahoo News频道抓取的新闻图片和对应的标题信息,通过人脸定位(face de⁃tection)、人脸校准(face alignment)、人脸确认(face vertification)、人脸鉴别(face identification)进行人脸识别。由于数据集中所有图片都采集于真实无约束环境条件,所以不同图片的表情、姿态、光照和对齐具有很大差异。
3.2 实验处理流程
本文的基本流程如图3所示。本文提取特征过程如下:
1)预处理阶段:通过人脸检测和3D人脸校正,在归一化到152×152像素大小;
2)通过卷积层C1:S2降采样层对C1层的新特征矩阵进行采样,采样大小为3×3,跨步为2。C1包含32个11×11×3的滤波器(即卷积核),得到32张特征图;
3)通过另一个卷积层C3:S4为第二个下采样层,同S2,采样大小仍为3×3,跨步为2。C3包含16个9×9×16的3维卷积核。
图3 人脸识别基本流程
本文采用基于检测点的人脸检测方法,通过LBP特征用SVR学习得到六个基准点,两只眼睛中心、一个鼻子点、三个嘴上的点。如图4所示。
图4 人脸检测
对检测后的图片进行二维裁剪,将人脸部分裁剪出来。找到一个3D模型,用这个3D模型把二维人脸crop成3D人脸。67个基点,然后Delaunay三角化,江三角化后的人脸转换成3D形状,变为有深度的3D三角网,将三角网做偏转实现人脸校准。如图5所示。
图5 人脸校准
经过人脸校准后,形成的图像都是152×152的图像。
3.3 实验结果及分析
本文会将对卷积神经网络的参数进行大量的实验对比分析,并选取最合适的参数构建一个能够识别人脸的深度神经网络。
1)池化方式
本文将分别为三种池化方式构建了不同的卷积神经网络模型,为保证实验数据的全面性,选取了LFW人脸库中男女各1000幅图像进行识别实验,并对每组卷积神经网络的实验结果数据计算其平均值,并且记录实验平均所耗时间,最终得到的实验数据如表1所示。
表1 池化方式对比表
由表1可知,最大池化模型和随机池化模型在人脸识别的效果上优于平均池化模型,随机池化模型正确率略高于最大值池化,但是,在平均耗时上,随机池化模型花费的时间明显高于其他两种,这是因为随机池化的算法比较复杂,在训练时间上浪费的比较多,由于本文的卷积神经网络需要处理大规模的数据,必然需要节省训练时间,同时考虑到最大池化方式与随机池化方式的识别率相差不大,所以本文构造的卷积神经网络选取最大值池化方式。因此,综合以上实验分析,当卷积神经网络使用最大值池化时,能够使人脸识别更加精确并且高效。
2)权重衰减系数
在卷积神经网络训练中,为了防止过拟合、提高泛化能力,通常在损失函数中加入L2正则化项,即
其中的参数λ被称为权重衰减系数(weight de⁃cay)。
本文将选取不同的权重衰减系数,其他实验条件都相同的情况下,来验证人脸识别的正确率,实验结果如表2所示。
由表2可知,当权重衰减系数为0时,准确率最高。本文将固定卷积层权重衰减系数设为0,测试其全连接层权重系数对比试验。实验结果如表3所示。
表3 全连接层权重衰减系数对比试验
由表2、3可知,当卷积层的权重衰减系数设为0,而全连接层的权重系数设为0.01时,得到的效果最好。原因是全连接层更容易过拟合,需要一个更大的权重衰减系数,而卷积层不容易过拟合,那么可以将系数设为0。
3)激活函数
神经网络中有许多非线性激活函数可以选择。本文将选择sigmoid函数、tanh函数、ReLU函数、PReLU和ELU函数这五种函数进行对比。实验除了激活函数不同外其他条件都相同。
表4 激活函数对比试验
由表4可看出PReLU的效果均要高于其他激活函数,因为它可以学习到更多的参数,并且没有出现过拟合的情况。
4 结语
本文将卷积神经网络运用到人脸识别当中,并在实验中取得了良好的识别率。通过基于深度神经网络模型在LFW人脸库上的实验,分别对池化的方式、权重衰减系数和激活函数的选择进行了同一环境下的实验,并且选取了适合人脸识别的参数与结构,从而优化改进了卷积神经网络,能够较好地解决过拟合问题。虽然深度神经网络在图像处理方面有良好的识别效果,然而仍然存在一些不足,本文是基于单模型在LFW数据集上进行试验,平均准确率达到97.17%,但是准确率还是不够高,有很多初始参数的选择还没考虑到,这会对训练产生很大的影响。下一步将基于上述问题进行进一步探索。