APP下载

基于卷积内部进化机制与特征融合的人脸识别算法的研究

2019-05-17黄奥云程宾洋孙家炜

现代计算机 2019年10期
关键词:识别率人脸人脸识别

黄奥云,程宾洋,孙家炜

(四川川大智胜软件股份有限公司,成都 610045)

0 引言

近年来,深度神经网络作为计算机视觉里最热门的技术之一,被广泛应用于图像分类、物体检测、人脸识别等领域,并取得了显著的成果。文献[1]提出了基于卷积神经网络的人脸识别算法,将一张对其后的人脸图片截取后输入到一个包含9 个卷积层的神经网络,最后经过Softmax 输出结果。该方法在人脸公开数据集LFW 上达到了99.77%的识别率。文献[2]采用GoogLeNet 和Triplet Loss,将人脸映射到欧氏空间的特征向量上,计算人脸特征的间距,最后通过距离的大小来判断人脸的类别。该方法在人脸公开数据集LFW上达到了99.63%的识别率。

为了获得更好的识别效果,一方面,采用更大的数据集,目前公开的人脸数据集有CASIA-WebFace、CelebFaces+、VGG face dataset 和 MSCeleb-1M,等等;另一方面,设计更加优秀的深度神经网络和采用更加合理的训练方法,如文献[3]提出了Maxout 激活函数,实现了对噪声的过滤和对有用信号的保留,该算法在一个相对较小的模型下性能有一定的提升。文献[4]针对人脸识别算法提出了Angular Margin Loss,将角度边缘置于余弦函数内部,这一约束使得对整个分类任务的要求变得更加严苛,此外,该算法还改进了ResNet 网络结构的block 层,使其更适合训练人脸图片;数据方面,剔除了噪声数据,在MegaFace 数据集上的识别率达到了98.36%。

本文针对低质人脸图片的识别,基于深度神经网络和训练方法,提出了基于卷积内部进化机制的残差网络结构与模型加权的人脸识别算法。在加深网络深度的同时,保持了网络的简单性,并且采用了内部进化机制,对神经元响应进行了筛选,在网络中添加残差模块,并引入权重因子,对输出的单个特征分别赋予不同的权值,最后对多特征进行加权融合,提升了识别性。该算法在公开人脸数据库和多场景人脸数据测试表明,该算法对光照、人脸姿态和表情变化、面部遮挡物、年龄变化等低质人脸数据具有较高的鲁棒性。

1 人脸数据预处理

1.1 基础训练数据构成

基础训练数据主要由两类数据构成,第一类数据包含各类人脸公开数据集,真实现场采集人脸图像,这类图片的特点是杂乱,涵盖了高分辨率和低分辨率的图片,各种场景如光照条件、人脸姿态和表情变化、面部遮挡物、年龄变化等属性的人脸图像,这类图像数据样本类别较大,从而满足了在训练过程中对各类低质图像鲁棒性的要求。第二类数据是法定身份证件低质人脸图像,由法定身份证件低质人脸图像和若干现场采集人脸图像构成,这两类人脸图像数量较大,但其缺点是样本不均匀。

1.2 数据扩展

研究表明,要取得更好的识别精度和鲁棒性,基于深度学习的人脸识别的训练数据在构成上应满足:a.样本类别数大(基础数据满足)。b.每类样本的样本数均匀(数量一致)且应包含各类情况的人脸图像。基础数据不能满足b 条件,应进行扩充。本研究通过镜像图,添加光照,模糊化,加噪等方法对基础数据进行扩充,使得样本数均匀且包含多类情况下的人脸图像,其效果图如图1 所示。

图1 人脸数据扩展处理方法

1.3 数据裁剪

研究表明,要取得更好的识别精度和鲁棒性,训练数据一定要满足数据量大和样本均匀两个要求。之前的研究对数据进行了充分的扩展,主要包括镜像、加噪、模糊处理、加光照等,满足了训练要求。本研究在原有扩展数据集的基础上,对数据集进行了裁剪。通过裁剪,去除了训练样本中的噪声,使得训练数据尽可能干净,因此减少了噪声对识别率的负面影响,对识别率有一定的提升作用。数据裁剪具体的处理步骤为:

(1)以人脸左右眼中心位置为中心进行裁剪。

(2)以人脸鼻尖位置为中心进行裁剪。

(3)以人脸左右嘴角中心位置为中心进行裁剪。

(4)每个裁剪的类别分别对应一种特征子向量。

裁剪人脸数据样本如图2 所示。

图2 人脸数据裁剪处理方法

2 人脸识别算法

2.1 卷积内部进化机制的实现

卷积神经网络采用激活函数来实现非线性,主要有 Tanh、Sigmoid、ReLU 函数等。Tanh 的特点是在特征相差明显时的效果会很好,但在实际训练数据和现场采集数据中,由于光照、姿态、表情、年龄变化等各种原因,往往包含很多模糊的数据。Sigmoid 函数的优点是在特征相差比较复杂或是相差不是特别大时效果比较好,但该函数收敛缓慢,反向传播时,很容易出现梯度消失的情况,从而无法完成深层网络的训练。ReLU 收敛速度快,但很容易出现梯度消失的现象。

达尔文生物进化论认为自然选择是进化的主要机制,通过进化,优势物种和个体被保留了下来,弱势物种和个体被淘汰掉。目前,一些传统的遗传算法通过模拟自然选择和遗传学机理的生物进化过程,从而可通过模拟自然进化过程来获得全局中的最优解。

本研究根据进化过程中的相关方法,创新性地采用内部进化机制来实现非线性,将Feature Maps 突变为多组神经元,在进化的过程中筛选出最佳响应,最后形成新的Feature Maps;通过进化我们得到的是神经元响应最佳的结果,因此使得神经网络对优势特征更加敏感,相对于 Tanh、Sigmoid、ReLU 等激活函数,基于进化机制能有效去除噪声信号并保留有用信号,具有较强的鲁棒性和泛化能力,内部进化机制原理如图3 所示。当一个卷积层的输入用如下式表示时:

其中 n={1,…,2N},W 和 H 分别表示 feature map的宽和高。进化机制将输入的feature map 突变为多个子feature map,经过内部进化,最后得到一个最佳的feature map,其原理可用如下公式表示:

1≤ k ≤ N,1≤ i ≤ H,1≤ j ≤ w ,其中,输入的卷积层的通道是2N。

通过进化,我们从输入的feature map 得到了输入信息的最佳神经元。

图3 内部进化机制示意图

2.2 残差模块的设计

深度学习对于网络深度遇到的主要问题是梯度消失和梯度爆炸,传统对应的解决方案则是数据的初始化(normalized initialization)和(batch normalization)正则化,但是这样虽然解决了梯度的问题,深度加深了,却带来了另外的问题,就是网络性能的退化问题,深度加深了,错误率却上升了,基于以上原因,文献[5]提出了一种具有残差结构的深度神经网络结构,该网络结构能很好地解决上述激活函数在网络训练时所带来的退化问题,并且该结构易于优化,提高网络的性能。基于ResNet 的基本单元设计方法[2],本研究创造性地将两个基于进化机制的卷积网络层,组成一个基本的残差模块,使得网络的性能也提升了。

基于卷积内部进化机制的残差网络具体实现结构如图4 所示,该结构构成深度卷积网络的一个结构层。多个结构层串联(级联)构成了特征提取的深度卷积神经网络,经过这样设计的深度卷积神经网络,在特征提取方面更加丰富,从而使得识别准确率有了大大提升,其特征提取过程如图5 所示。

图4 残差模型示意图

图5 特征提取示意图

详细的神经网络结构共13 个卷积层,进化机制和池化层连接在两个卷积层之间,最后是全连接层并输出类别数,为了防止在训练过程中出现过拟合,在全连接层后加入了Dropout 层。训练数据集是经过人脸对齐的大小为150×150 的人脸灰度图片,训练时,首先将图片的大小裁剪成96×96,作为卷积层的输入,最后经过全连接层,输出一个256 维的特征,经过Softmax 层最后输出该人脸图片所属类别。

3 训练

3.1 训练策略

为了验证算法的可靠性,本研究基于人脸公开数据库和多场景采集真实人脸数据共440 万人脸数据,基于公开深度学习框架PyTorch 训练与测试。Dropout参数设置为0.75,momentum 设置为0.9,weight decay 设置为1e-6,初始学习率设置为0.01,之后随着迭代次数的增加衰减到1e-5。训练时,分别以眼睛、鼻子、嘴角为中心,裁剪出大小为96×96 的图片,并对其进行灰度处理,然后分别送入深度神经网络对其进行训练,最后得到9 个对应的模型。

3.2 模型融合

研究实验表明,相对于深度神经网络的单模型的特征提取,多模型提取的信息更加丰富和稳定[5]。模型融合是用于组合来自多个预测模型的信息以生成新模型的模型组合技术。通常,融合后的模型因为它的平滑性和突出每个基本模型在其中执行得最好的能力,并且抹黑其执行不佳的每个基本模型,所以其最终效果将优于每个单一模型。本研究训练模型按照对应的权值拼接起来组成一个高位度的新模型,经过测试,相比于单一模型,模型拼接所得到的识别率较单一模型提升了3-4%左右,该步骤具体流程如图6 所示。

图6 模型融合示意图

4 测试与分析

为了验证该算法的有效性,分别在公开人脸数据集和多场景采集数据集上进行了测试。

测试时,人脸特征比对采用余弦相似度,余弦相似度公式为:

余弦值的范围在[-1,1]之间,值越趋近于1,代表两个向量的方向越接近,为同一个类别的概率越大;越趋近于-1,它们的方向越相反,为同一个类别的概率越小。测试样本如图7 所示。

4.1 测试数据集介绍

本文测试的公开人脸数据集是LFW 数据集。该类标准人脸数据集共收集了5749 类人脸类别共计13233 张人脸数据。其中,大约1680 个人包含两个以上的人脸。该数据集被广泛用于测试人脸识别算法的性能。

另一部分测试数据集来自标准身份证件照片和现场采集的人脸数据。Test1 数据集包含3139 类共84245张人脸图像,该类人脸数据光照干扰明显,部分数据出现面部遮挡物,因此噪声特别大;Test2 数据集包含5996 类共19433 张人脸图像,该类人脸数据中有一定的年龄跨度,因此该类数据特征较不明显;Test3 数据集包含299类共2298 张人脸图像,该类人脸数据的特点是人脸表情变化丰富;Test4 数据集包含2380 类共23295 张人脸图像,该类人脸数据集涵盖了高分辨率,低分辨率的人脸数据。部分测试数据集如图8 所示。

图7 测试样本

图8 部分测试数据集

4.2 结果分析

分别测试了基于内部进化机制的深度神经网络在人脸公开数据集LFW 上的效果,并与公开的当今最流行的人脸算法测试结果做对比,其结果如表1 所示。从表中可以看出,本研究所提出的算法效果明显好于其他算法。其中,Model1 和Model2 表现出了最好的成绩,在整个LFW 数据集上的识别率最高达到了100%,比现阶段公开的算法的测试结果提高了0.23%。通过以上对比可以得出,基于内部进化的深度神经网络的性能好于其他网络。证明了本算法的可行性和有效性。

表1 不同网络结构在LFW 的测试结果

单模型和多模型在多场景低质采集人脸数据集上的测试结果如表2 所示。除第一个测试数据集包含了部分训练数据外,其余三个数据集的数据均不包括在训练数据集内。单模型在四个数据集上皆表现出优异的成绩;融合后,识别率相较于单模型又提升了1-5%。

表2 低质数据集测试结果

以上测试结果表明,相比于其他人脸识别算法,基于内部进化机制的深度卷积神经网络与模型加权的人脸识别算法无论在标准人脸还是低质人脸数据都具有较高的识别率,本算法适用于各类场景的人脸识别,具有较高的鲁棒性和实用性。

5 结语

本文基于卷积神经网络设计了一种全新的网络结构,即基于卷积内部进化机制的深度卷积残差网络结构;同时,在训练和测试阶段提出了特征提取和加权模型融合的方法。经过测试,本文提出的算法无论在公开人脸数据集或由于光照条件,人脸姿态和表情变化、面部遮挡物、年龄变化等表现出的低质人脸图像,皆表现出较高的识别率。测试结果表明,本文提出的人脸识别算法具有较高的鲁棒性和实用性。

猜你喜欢

识别率人脸人脸识别
人脸识别 等
有特点的人脸
玻璃窗上的人脸
人脸识别的“国标”来了
人脸识别技术研究与应用进展概述
荣耀畅玩7C:人脸识别
档案数字化过程中OCR技术的应用分析
基于PCA与MLP感知器的人脸图像辨识技术
科技文档中数学表达式的结构分析与识别
人工智能现状和发展