基于改进卷积神经网络与集成学习的人脸识别算法

2020-02-19 11:27:08柯鹏飞蔡茂国
计算机工程 2020年2期
关键词:人脸识别人脸准确率

柯鹏飞,蔡茂国,吴 涛

(深圳大学 信息工程学院,广东 深圳 518060)

0 概述

近年来,人脸识别技术得到迅速发展并取得了众多研究成果,已成为计算机视觉领域的重要研究方向之一,但是由于其本身的复杂性,即使同一个人在不同的光照、姿态、表情等因素下,人脸看起来也不尽相同,因此为减少这些因素对人脸识别的影响,设计的算法需要弱化同一个体间的类内变化,同时强化不同个体间的类间变化,如PCA[1]、LDA[2]、Bayesian Face[3]等基于子空间学习的人脸识别算法。LDA算法建立一个子空间,所有样本在该子空间内要尽可能满足类内散度最小、类间散度最大的要求,从而使学习到的特征具有明显的区分度。其他人脸识别算法也是将人脸图像投影到一个能相对容易分类的子空间[4]。此外,学者还提出了基于不同特征提取算子的人脸识别算法,如LBP[5]、Gabor Filter[6]、SIFT[7]等。这些算法的特征描述算子都是基于人脸的先验知识进行人为设定,能提取出人脸图像的不同特征,取得了较好的识别效果[8]。

基于卷积神经网络(Convolutional Neural Network,CNN)的人脸识别算法的研究在过去十几年中取得了重大进展。从DeepID[9]、DeepID2[10]、DeepID3[11]、Face-Net[12]到VGG-Face[13],这些模型经过大量的数据训练后,能准确学习人脸识别特征,从而在人脸识别验证上达到较好的效果。文献[5]提出基于传统手工特征与卷积神经网络相结合的人脸识别方法,如先用LBP算子获取LBP图,并将其作为卷积神经网络的输入。文献[14]认为人脸识别不是一个独立的问题,其将人脸识别和姿态、光照、表情等因素相关联,提出基于多任务卷积神经网络的人脸识别算法。为解决数据量不足的问题,从减少模型的训练时间和加快模型的收敛速度出发,文献[15]提出的算法对预训练模型进行微调,使得预训练模型能完成当前特定任务,但文献[16]算法的迁移学习效果并不比随机初始化训练模型的效果更好。本文为将卷积神经网络应用于中小型人脸数据库,采用改进的卷积神经网络与随机初始化训练模型,提出一种新型人脸识别算法。

1 改进的卷积神经网络

本文提出的改进卷积神经网络结构如图1所示。CNN结构包含3层卷积层、3层最大池化层、1层残差单元层、1层平均池化层和1层SoftMax分类层。

图1 改进的CNN结构

残差单元结构如图2所示。该结构是一个3层的网络结构,包含2个卷积核大小为1×1的卷积层和1个卷积核大小为3×3的卷积层。残差单元通过short connections将低层的特征直接映射到高层网络中,该方法直接将输入信息绕道输出,保证了信息的完整性。

图2 残差单元结构

改进的卷积神经网络采用两种大小不同的卷积核对图像进行处理,前两层卷积层的卷积核大小为5×5,步长为1;最后一层卷积层的卷积核大小为3×3,步长为1,且都采用padding方式进行补0操作。每一层卷积核后紧跟2×2的最大池化层。残差单元先利用1×1的卷积核对输入的特征向量进行降维,输出的特征为64维,再利用3×3的卷积核对特征向量进行卷积。为使输入向量和输出向量的维度一致,特征向量需经过1×1的卷积核进行升维。将残差单元的输入向量和输出向量相加再进行非线性操作,接着作为平均池化层的输入,平均池化层在保持旋转、平移、伸缩等情况下减少特征和参数,最后在SoftMax层对输入数据进行分类。

X=f(I;k,b)

(1)

其中,f(·)代表输入图像I到人脸特征向量X的非线性映射函数,k代表权重矩阵,b代表偏差向量。经过训练后得到模型参数θ={k,b},θ代表了模型表征能力。

在改进的CNN中,假设平均池化层输出的特征向量是提取到的人脸特征向量X,然后将它输入到SoftMax分类器进行人脸识别。假设wd和bd分别表示SoftMax分类层的权重矩阵和偏差向量,d表示人脸的总类别数。因此,SoftMax层可以表示为:

yd=wdX+bd

(2)

(3)

(4)

实验采用交叉熵函数(如式(5)所示)作为模型的损失函数。

(5)

在改进的卷积神经网络中,本文采用One-hot编码算法对标签进行编码,因此若输入图像I属于第j类,则式(5)可以改写为:

(6)

采用随机梯度下降方法训练模型,模型参数更新如下:

(7)

(8)

由式(7)、式(8)可知,在训练过程中,当图像正确分类时,权重和偏差值不会更新,否则需进行更新。

(9)

因此,当给定训练图像集合D时,模型通过不断训练,根据随机梯度下降方法能找到使损失函数值最小的模型参数θ。模型参数θ代表了模型的泛化程度,是评价模型性能优劣的重要指标。

2 结合改进CNN网络与集成学习的人脸识别

集成学习算法是当前比较流行的机器学习算法之一,通过构建并结合若干个体学习器完成学习任务。根据任务的不同,集成学习可以分为分类集成、回归集成、特征选取集成、异常点检测集成等。图3为集成学习算法的一般结构,其先通过某种算法产生一组个体学习器,再通过某种策略对其进行结合。根据个体学习器之间的性质可以将集成学习划分为同质集成或异质集成。同质集成学习包含同种类型的学习器,例如决策树集成中的学习器全部是决策树,异质集成学习则包含不同类型的学习器。

图3 集成学习结构

集成学习将多个学习器进行结合,一般可以获得比单一学习器更好的泛化性能。常用的结合策略有两种,分别为投票法和学习法,本文采用投票法。投票法使用所有个体学习器结果的凸组合作为最终决策。

(10)

其中,wi为权重,di为第i个学习器的预测结果,θ=θ1,θ2,…,θL为所有学习器的参数。对于第Cj类,则有:

(11)

本文提出一种基于改进CNN网络和集成学习的人脸识别算法,其是一种同质集成学习算法。该算法由两个个体学习器组成,即由两个简单的卷积神经网络组成一个multi-CNN。改进CNN网络中的第一个卷积神经网络由3个卷积层、3个池化层、1个残差单元层和1个全连接层、1个BatchNormalization层、1个Softmax分类层组成;第二个卷积神经网络包含了3个卷积层、3个池化层、1个残差单元层和1个平均池化层、1个SoftMax分类层。两网络的特征提取层不一致,1个为全连接层,1个为平均池化层,使得输出的人脸特征向量具有差异性。两个网络既独立,又相互关联,都采用交叉熵函数作为网络损失函数,同时由各自的损失函数组成新的损失函数。

假设两个卷积神经网络的损失函数分别为:

(12)

(13)

基于改进CNN网络和集成学习的人脸识别算法的损失函数为:

L(I,y,θ)=L1(I,y,θ)+L2(I,y,θ)=

(14)

(15)

(16)

通过以上分析可知,基于改进CNN网络和集成学习的人脸识别算法能对子学习器的结果进行微调,从而达到更高的识别准确率。

3 实验结果与分析

3.1 数据库介绍

本文采用公开的Color FERET人脸数据库[17],AR人脸数据库[18]和ORL人脸数据库作为实验数据库。Color FERET人脸数据库一共包含11 338幅人脸图像,这些图像是994个志愿者的不同姿态图像。Color FERET数据库包括了13种不同姿态的图像,同时修正了一些在Gray FERET数据库上出现的错误。AR人脸数据库一共有126人,每个人包含26幅不同光照、姿态和表情变化的图像。ORL人脸数据库共有40个人,每个人包含10幅不同姿态和表情的图像。图4为Color FERET、AR和ORL数据库上的一些样本图像。

图4 人脸数据库部分样本

3.2 数据预处理

本文采用多任务级联卷积神经网络(MTCNN)[19]检测和定位人脸图像区域。该方法能有效去除非人脸信号并减少噪声,同时能剔除模糊或极端图像。经过MTCNN人脸检测器处理后,Color FERET人脸数据库的图像为11 287幅,AR人脸数据库的图像为3 108幅,ORL人脸数据库的图像为400幅,并且每幅人脸图像的尺寸经检测后被调整为64×64。为获取更多的图像数据,防止模型过拟合,本文采用镜像翻转技术获取两倍数量的人脸图像,数据预处理流程如图5所示。

图5 数据预处理流程

3.3 训练方法

网络模型输入为64×64×3的RGB彩色人脸图像。在实验过程中,采用留出法进行实验,同时通过多次实验求均值。为使实验结果更准确,每次实验都先将数据集随机打乱,然后将80%的数据作为训练集,20%作为测试集。为防止过拟合,采用L2正则化方法进行训练,且权重衰减值设置为0.003。模型学习率初始化为0.001,批量大小设置为128,epoch设置为200。如果网络模型收敛效果不明显,则学习率会继续增加迭代次数。该网络模型在TensorFlow框架下进行实现,实验平台为GeForce GTX1050TI-A4G GPU。

3.4 FERET人脸数据库

3.4.1 改进的卷积神经网络性能

为验证改进卷积神经网络的性能,将本文提出的卷积神经网络与传统神经网络VGGNet16和ResNet18进行比较。VGGNet16是一个具有16层结构的平面卷积网络,其中包含13层卷积层、2层全连接层、1层Softmax层。ResNet18是一个具有18层结构的残差卷积网络,其中包含1层卷积层、4个残差模块(每个残差模块由2层卷积层组成)和1层Softmax层。为比较改进的卷积神经网络与其他网络的性能,本文在相同实验环境下对3个网络模型进行训练。图6为3个网络模型在测试集上的准确率和损失函数值,同时为计算模型的时间复杂度,本文先统计模型训练所需时间,再除以迭代次数,最终得到的时间复杂度结果如表1所示。

图6 网络模型的预测准确率和损失值

表1 不同网络模型的性能比较结果

从表1可以看出,改进的卷积神经网络相对传统VGGNet16和ResNet18有较大的性能提升。本文提出的改进卷积神经网络在Color FERET人脸数据库的效果比VGGNet16和ResNet18更好的原因为:1)改进的卷积神经网络结合了平面卷积神经网络和残差神经网络的优点,具有结构简单且收敛速度快的特点。2)因为传统神经网络是面向大型数据库而设计的网络,例如VGGNet16和ResNet18,所以具有比较复杂且相对较深的网络结构,当这些网络模型被应用于中小型数据库时,通常会出现过拟合的情况。

3.4.2 人脸识别算法性能

本文采用两极分化的处理方式验证基于改进CNN网络与集成学习的人脸识别算法的性能,即将两个卷积神经网络的权重系数分别设置为0。在表2中,(α,β)表示两个网络的权重系数。当α=0、β=1或α=1、β=0时,相当于基于改进CNN网络的人脸识别算法;当α=1、β=1时,相当于基于改进CNN网络与集成学习的人脸识别算法。从表2可以看出,本文提出算法准确率最高,为98.89%,相对于单一网络,集成网络能明显提高人脸识别准确率。

表2 不同权重时的人脸识别准确率对比结果

表3为不同人脸识别算法在Color FERET人脸数据上的识别准确率。从表3可以看出,基于改进CNN网络的人脸识别算法与FUCNN、PCANet等算法的效果接近,比LBPNet和ADCNN等算法效果更优。基于改进CNN网络和集成学习的人脸识别算法进一步提升了人脸识别性能,达到98.89%的识别准确率。实验结果表明,基于改进CNN网络的算法和基于改进CNN网络与集成学习的算法都能有效提升人脸识别率。

表3不同人脸识别算法在Color FERET数据库上的识别准确率对比结果

Table 3 Comparison results of recognition accuracy of different face recognition algorithms on Color FERET database

算法 准确率ADCNN算法[20]0.8670ISCDCNNs算法[21]0.9510LBPNet算法[22]0.9685FUCNN算法[23]0.9765PCANet算法[24]0.9726LPP+CNN算法[25]0.8943基于改进CNN网络的算法0.9748基于改进CNN网络与集成学习的算法0.9889

为验证本文算法的泛化性,在AR和ORL人脸数据库上进行对比实验。表4为基于改进CNN网络与集成学习的人脸识别算法和其他基于改进CNN网络的算法在AR人脸数据库上的对比实验结果。从表4可以看出,本文基于改进CNN网络与集成学习的算法对光照、姿态和遮挡物均有较好的鲁棒性,相对于其他基于改进CNN网络的算法有明显的性能提升。

表4不同人脸识别算法在AR数据库上的准确率对比结果

Table 4 Comparison results of recognition accuracy of different face recognition algorithms on AR database

算法 准确率改进DCNN算法[26]0.9622CNN算法[27]0.9978LDP+CNN算法[28]0.9900基于改进CNN网络的算法0.9717基于改进CNN网络与集成学习的算法0.9967

表5为本文基于改进CNN网络与集成学习的算法和其他基于改进CNN网络的算法在ORL人脸数据库上的对比实验结果。从表5可以看出,基于改进CNN网络的人脸识别算法在ORL数据库上达到99.21%的准确率,基于改进CNN网络与集成学习的人脸识别算法达到100%的准确率。实验结果表明,基于改进CNN网络与集成学习的人脸识别算法在中小型人脸数据库上具有较好的人脸识别性能,能明显提高人脸识别度。

表5 不同人脸识别算法在ORL数据库上的准确率对比结果

4 结束语

本文针对中小型人脸数据库,提出一种基于改进CNN网络与集成学习的人脸识别算法。改进CNN网络同时具有平面网络和残差网络的特点,即结构简单且收敛速度快。同时,改进CNN网络采用平均池化层代替全连接层,使得模型更简单,可移植性更高。相对于传统卷积神经网络,基于改进CNN网络的人脸识别算法在中小型人脸数据库取得了较好的人脸识别效果,在Color FERET、AR和ORL人脸数据上分别得到97.48%、97.17%和99.21%的准确率。为进一步提高算法识别率,本文提出一种基于改进CNN网络与集成学习的人脸识别算法。该算法虽然采用简单投票法,但识别性能却有明显提升,最终在Color FERET、AR和ORL人脸数据库上分别达到98.89%、99.67%和100%的准确率,同时具有较快的收敛速度。后续将优化网络结构,同时结合不同的损失函数,提升网络模型泛化性能和算法识别准确率。

猜你喜欢
人脸识别人脸准确率
人脸识别 等
作文中学版(2022年1期)2022-04-14 08:00:34
有特点的人脸
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
健康之家(2021年19期)2021-05-23 11:17:39
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
揭开人脸识别的神秘面纱
学生天地(2020年31期)2020-06-01 02:32:06
三国漫——人脸解锁
动漫星空(2018年9期)2018-10-26 01:17:14
高速公路车牌识别标识站准确率验证法
基于类独立核稀疏表示的鲁棒人脸识别
计算机工程(2015年8期)2015-07-03 12:19:07
马面部与人脸相似度惊人