基于多任务卷积神经网络的人脸识别技术研究*
2020-03-22祝永志苏晓云
祝永志,苏晓云
(曲阜师范大学 信息科学与工程学院,山东 日照 276826)
0 引言
随着信息技术的发展,深度学习成为当前的计算机视觉领域一个研究热点[1],其中人脸识别技术作为其中的一个应用,近年来受到了人们的广泛关注。
人脸识别(Face Recognition,FR)技术利用核心算法对获取的人脸的五官位置、脸型和角度等进行计算分析,从而与自身数据库里已有的模板比对,识别用户身份的真实性[2]。人脸识别技术主要包括人脸检测、特征提取以及特征匹配人脸识别3 个步骤[3]。
目前,人脸识别的常见方法有:子空间法,如主成分分析法[4](Principal Component Analysis,PCA)、独立成分分析(Independent Component Analysis,ICA)等;基于特征的方法;深度学习[5](Deep Learning)的方法,其中卷积神经网络(Convolutional Neural Networks,CNN)和深度信念网络(Deep Belief Network,DBN)是重要的两种方式。
1 相关研究
早期的人脸识别主要根据目标用户的面部特征进行识别,主要采用主成分分析(Principal Component Analysis,PCA)等算法,但其自身对于外界环境依赖较高,当图片采集中出现较大变化时,算法识别效果往往不尽人意。在人机交互识别时期,支持向量机(Support Vector Machine,SVM)等方法的提出,使得人脸识别效果得到了一定改善。但使,这些方法只是对于人脸面部浅层特征的提取,对于复杂的非线性面部表情缺乏良好的鲁棒性,不能在无约束环境下脸部变化时提取稳定的人脸特征。机器学习时代,深度学习概念的提出和广泛应用,使得卷积神经网络方法成为当前人脸识别的主流算法。
文献[6]提出了基于小波和支持向量机的方法进行人脸识别;文献[7]提出了一种基于特征融合的人脸识别算法,对于人脸的姿势和灰度图像处理具有较好的鲁棒性;文献[8]通过引进迁移学习概念,使得对不同图像质量的分类更加准确,提高了人脸识别模型的准确性。
本文采用多任务卷积神经网络(Multi-task Cascaded Convolutional Networks,MTCNN)进行人脸检测,利用灰度处理方法对图像集进行降道处理得到图像数据集,同时采用ReLU 激励函数进行非线性映射,最后采用Softmax 函数进行分类处理,进而采用深度学习框架TensorFlow 来完成人脸识别的建模和实现。
2 卷积神经网络
2.1 传统卷积神经网络
卷积神经网络作为一种前馈神经网络,主要由输入层、卷积层、池化层、全连接层和输出层构成,可用于大型图像处理研究。目前,人脸识别技术也多采用卷积神经网络模型[9]。
2.1.1 卷积层
卷积层(Convolutional Layer)主要是对输入数据进行特征提取,包含多个卷积单元,由权重系数和偏差量组成。它通过反向传播算法优化得到,相当于神经元。
2.1.2 池化层
池化层(Pooling Layer)主要是对经卷积层特征提取后的特征图进行特征选择和信息过滤。池化又称为子采样,可分为均值子采样(mean-pooling)和最大值采样(max-pooling)。
2.1.3 全连接层
全连接层(Fully-connected Layer)[10]通常在卷积神经网络隐含层的最后部分。在全连接层中,特征图会彻底失去其三维结构成为向量,并通过激励函数向输出层传递。但是,传统卷积神经网络在人脸识别中,模型复杂程度高、处理数据较慢、网络无法在硬件性能受限时快速实现或根本无法实现其预设功能的问题,因此本文采用多任务卷积神经网络方法来实现人脸识别。
2.2 多任务卷积神经网络MTCNN
多任务卷积神经网络[11]主要由P-Net、R-Net和O-Net 三个网络部分组成。
P-Net(Proposal Network)主要是获取人脸部区域的候选框和边界框的回归向量。对于有重叠的候选框,通过非极大值抑制(Non-maximum suppression,NMS)来筛选。
R-Net(Refine Network)是一个优化网络结构,主要是通过增加一个全连接层对边界框做回归计算和NMS 来对人脸区域进一步检测,优化P-Net。
NET(Output Network)相对于R-Net 又增加了一个卷积层,主要作用与R-Net 相同,但其网络层数和通道数的增多使其处理效果较之更加精准。
这三个网络结构主要完成训练过程的3 个部分[12]。
(1)人脸识别采用交叉熵损失函数:
其中,pi是人脸识别的概率,表示图像数据的标签。
(2)边界框回归采用基于欧氏距离的回归函数:
(3)人脸特征定位的本质也是一个回归问题,目的是实现特征点与标注数据的平方和损失:
3 人脸识别模型
3.1 人脸识别流程模型
本文主要利用多任务卷积神经网络将人脸区域检测与人脸关键点检测相结合来进行人脸识别,主要可以分为数据处理模块、多任务卷积神经网络建模模块和人脸识别模块3 个模块,如图1 所示。
图1 多任务卷积神经网络人脸识别流程
其中,数据处理模块通过人工采集的图像图片样本进行数据增强和图像标记处理得到适当的数据集;卷积神经网络建模过程进行图像样本的灰度处理、特征提取等过程,最终通过人脸识别模块进行匹配识别,判断人脸的身份信息。
3.2 人脸识别算法
3.2.1 数据处理
本文的数据处理包括图像数据标定和图像灰度处理。通过数据标定建立数据样本与标签之间的关联,从而得到实验所需数据集。
传统的图片在计算机中的存储方式一般由3 维m×n矩阵组成,一个维度代表一个RGB 颜色通道,m、n分别表示图片的高度和宽度。但是,本文采用卷积神经网络算法主要针对人脸轮廓进行识别,对颜色的要求较低,因此在数据处理阶段进行灰度处理将其转变为灰度图,能够提高算法效率。本文采用加权求和的方式进行灰度处理,即:
其中,R、G、B分别表示3 种颜色通道,i、j表示像素点的位置,且满足α+β+γ=1。
3.2.2 MTCNN 建模
多任务卷积神经网络MTCNN 主要包括输入层、多个卷积层、对应的非线性映射层和池化层,并最终通过全连接层将二维特征图连接成一个向量输出到最终的分类器中,从而得到最终的概率输出。
MTCNN 人脸识别算法的主要流程[13]如下:
(1)MTCNN 卷积层先选择一个局部区域(即一个卷积核),再用这个局部区域扫描整张图片,则局部区域所圈起来的所有节点会被连接到下一层的一个节点上。
(2)MTCNN 非线性映射层采用ReLU 激活函数[14]:
采用ReLU激活函数加入了非线性因素,加强了网络的学习能力,提高了网络的运算效率。此外,由于常数梯度值,人脸识别模型的收敛速度较sigmod 和tanh 函数更快且趋于稳定。
(3)MTCNN 池化层的主要作用是降维,采用最大值采样,降维过程如图2 所示。
(4)Dropout 层。为了模型防止过拟合,同时降低网络的复杂性,添加Dropout 层,原理是减少训练过程中神经元的数量。
(5)全连接层也称为前馈层,主要是将最终输出映射到线性可分的空间中进行分类。
4 实验及结果分析
4.1 实验环境及数据
本文采用Pycharm3.6+Anaconda3+TensorFlow 实验平台架构,实验数据为人工采集并进行标注的数据face_data。其中,TensorFlow[15]是一个采用数据流图进行数值计算的开源软件库,主要用于机器学习和深度神经网络方面的研究。
图2 池化层降维
4.2 算法实现
MTCNN 人脸识别算法具体实现步骤如下。
步骤1:输入变量。将MTCNN 检测出的人脸图像经过灰度处理转换为单通道图像数据,并将其图像维度设置为64×64×1,则输入层的维度为N×64×64×1。
步骤2:数据划分。将图像数据划分为训练集和测试集,利用训练集训练MTCNN 参数,测试集验证参数的准确性。
步骤3:卷积过程。第一个卷积层用32 个3×3×1 的卷积核对输入层(64×64×1)做卷积,然后采用ReLU 激活函数进行非线性映射来增强模型的拟合能力,再对每个区域做最大池化。第二个卷积层利用64 个3×3×32 的卷积核对第一卷积层产生的feature map 进行卷积。第三个卷积层用64个3×3×64 的卷积核对第二卷积层的feature map卷积。
产生的卷积结果以第一卷积层为例,如图3所示。
图3 第一层卷积结果
全连接层的输出通过Softmax 损失函数[16]来实现。它将卷积过程产生的特征映射到概率分布中,是神经网络学习中较常用的多分类损失函数,可定义为:
具体可以表示为:
N表示训练样本的数量,Pi表示全连接层输出的第i个样本的特征被正确分类的后验概率,Wj表示全连接层权重参数W的第j列,b表示偏置项,C表示类别数。
步骤4:人脸识别的训练过程。每次随机从训练集中抽取N个样本进行训练,直到预测的准确率达到一定阈值收敛。
4.3 实验结果
按照上述算法进行卷积神经网络训练,设定不同迭代次数,得到的精确度如图4 所示。
图4 不同迭代次数训练精确度
由图4 可以看出,不同迭代次数有不同的训练精确度。当迭代次数达到一定范围时,趋于一定的稳定值。
此外,计算了一定迭代次数下的平均精确度,如图5 所示。
图5 不同迭代次数下,MTCNN 模型准确度对比
由图5 可知,该模型在迭代次数为2 000 次时,平均精确度最好。
5 结语
本文在深度学习框架TensorFlow 上,采用多任务卷积神经网络的方法构建了人脸识别算法,采用灰度图像处理方式降低了模型的复杂性,同时采用ReLU 激励函数提高了模型的收敛性,并多次实验,在不同的迭代次数下最终得出了一个较高的准确性。