APP下载

基于LBP和数据扩充的CNN人脸识别研究

2020-04-09任飞凯邱晓晖

计算机技术与发展 2020年3期
关键词:二值识别率人脸

任飞凯,邱晓晖

(南京邮电大学 通信与信息工程学院,江苏 南京 210003)

0 引 言

近年来,人脸识别技术是人工智能领域研究的热点之一。人脸识别因其非接触性、非强制性、成本低等特点,使得其在身份认证领域有着很高的应用价值。经典的人脸识别算法有主成分分析法(PCA)[1]、线性判别分析(LDA)[2]、局部保值映射(LPP)[3]、稀疏表示[4]、小波分析[5]等。

卷积神经网络是神经科学原理影响深度学习的典型代表,其最早可追溯到八十年代[6],之后发展一度停滞,直到反向传播算法的提出[7],才有了突破性的进展。现在卷积神经网络的主要结构有LeNet-5[8],AlexNet[9],GoogleNet,VGGNet,ResNet[10]等。这些网络结构都比较深,网络参数比较多,训练不充分很容易造成网络的过拟合,而解决过拟合的方法一般是扩充数据集或者增强数据集。由于网络结构的原因,训练样本越多,网络的泛化能力也会越好。因此,文中提出了将人脸进行局部二值模式处理,在进行训练之前提取人脸面部纹理特征,然后将通过LBP算法提取出的人脸特征纹理放入深度卷积生成对抗网络中进行训练生成新的人脸图像来扩充数据集。

1 局部二值模式和数据集扩充

1.1 局部二值模式

局部二值模式(local binary patterns,LBP)是一种用于描述局部纹理特征的算子,具对光照不变性和灰度不变性等显著优点[11],因此广泛应用于人脸识别、表情识别等图像处理领域。

基本LBP算子可以理解为一个3*3的矩阵,其中心像素的灰度值为一个阈值,周围相邻的八个像素的灰度值分别与中心阈值比较,如果像素灰度值高于中心阈值则标为1,低于则标为0,如图1所示。最终得到一组包含0和1的序列,转化成十进制后便是中心像素的LBP值,LBP值可以用于获得面部特征。

图1 LBP算子

但是这种基本LBP有一定的局限性,如果图像旋转,LBP值也会随着改变[12],所以文中采用圆形LBP算子,如图2所示。圆形算子的邻域不限于LBP算子的8个,且可以自由调节采样半径。圆形算子符号表示为LBPP,R其中P为邻域采样点数,R为采样半径。图2中采样点数P为8,采样半径R为1。

图2 圆形LBP算子

圆形LBP算子计算公式如下:

(1)

其中,gP表示邻域像素灰度值,gC表示中心像素灰度值,S(x)表示中心像素与邻域像素比较之后的布尔值,公式如下:

(2)

1.2 深度卷积生成对抗网络

深度卷积生成对抗网络(deep convolutional generative adversarial networks,DCGAN)[13]是一种改进的生成对抗网络(generative adversarial networks,GAN)[14]。GAN中包含两个模型,一个生成模型,一个判别模型。可以用微分方程D和G来表示判别模型和生成模型。生成器G接受随机噪声z,通过这个噪声生成图片,记为G(z),判别模型D输入参数为x,D(x)代表x为真实图片的概率,如果为1,则表示x为真实图片,为0则表示为假图片。在训练整个模型的过程中,生成模型G的目的就是为了生成尽量真实的图片去欺骗判别模型D,而D的目的是为了将真实图片和G生成的图片区分开来,这样便形成了一个动态博弈。最终的博弈结果是D(G(z))=0.5,这意味着判别模型D无法区分生成模型G生成的图片是否为真实图片,这样就可以用训练好的生成模型G来生成图片。

DCGAN是在GAN的基础上进行了改进。DCGAN的判别模型D是一个卷积神经网络,生成模型G的输入是一个100维的噪声向量z,G的第一层就是一个全连接层,将100维向量变成一个4*4*1 024的向量,然后使用转置卷积做上采样,逐层减少通道,最后得到的输入为64*64*3,即一个三通道宽高都是64的图像。

文中将通过LBP算法提取出的人脸特征纹理当作判别模型D的输入,训练判别模型的判别能力,然后通过生成模型G来生成图片,放入判别模型D中进行判别,当D(G(z))=0.5时,就可以用DCGAN中的生成模型G来生成图像,达到扩充数据集的目的,提高卷积神经网络的泛化性。

2 局部二值模式扩充数据集的CNN人脸识别

卷积神经网络(convolutional neural networks,CNN)用于人脸识别是通过卷积操作来提取人脸面部特征,通过不同的卷积核提取到特征所具有的性质和表现力也不一样。其结构一般分为卷积层、池化层、全连接层和Softmax分类。文中设计的网络结构如图3所示。首先将人脸图进行局部二值化处理,提取面部纹理特征,然后将提取出的面部纹理特征当作判别模式D的输入,当D(G(z))=0.5时,用生成模式G的生成图像来扩充数据集,提高卷积神经网络的泛化能力,然后将真实的局部二值化人脸和生成的局部二值化人脸输入至卷积神经网络中进行训练学习参数。卷积神经网络由3个卷积层C1、C2、C3,3个池化层S1、S2、S3,一个全连接层,一个Softmax分类器组成。输入人脸纹理特征图像经处理统一为64*64,C1有5个3*3卷积核,C2有10个3*3卷积核,C3有15个3*3卷积核,池化层选择2*2的最大池化,全连接层为1*1*100,Softmax分类器根据数据库人数另外设置。

图3 人脸识别的结构设计

2.1 网络结构

(1)卷积层。

卷积神经网络核心便是卷积运算。卷积运算具有稀疏交互、参数共享等特性,通过卷积可以有效地提取出图像中的特征数据,并且减少训练参数[15]。卷积神经网络中的卷积可以理解为用一个滤波器扫描图像像素,而这个滤波器就是卷积核,通过卷积核与图像的卷积,可以得到包含图像特征信息的特征图,具体计算公式如下:

(3)

(4)

通过卷积核与图像的卷积,带有原始图像特征的特征图就会被提取出来,经过多层卷积之后,低层特征图会被提取出更具表征能力的特征图。因此为了能够得到更多的特征,更深层次的特征图也会更多。

卷积层C1采用5个3*3的卷积核,对64*64的图像进行卷积,得到5个(64-3+1)*(64-3+1)即62*62的特征图,即提取了5个人脸纹理的特征图;C2采用10个3*3的卷积核对31*31的S1进行卷积,得到10个(31-3+1)*(31-3+1)即29*29的特征图;C3采用15个3*3的卷积核对14*14的S2进行卷积,得到15个(14-3+1)*(14-3+1)即12*12的特征图。

(2)池化层。

池化层也称作下采样层,图像经过多次卷积之后,特征图的数量会越来越多,网络结构也越来越复杂,同时网络的参数也越多越容易引发过拟合。所以在卷积层后会加入一个池化层,来对特征图进行特征聚合,降低维度。常见的池化方法有最大池化、平均池化和随机池化。最大池化对于纹理特征提取明显,所以文中选用最大池化。

池化层S1对卷积层C1进行2*2的最大池化,得到了5个大小为31*31的特征图。同理S2对C2进行下采样,得到10个14*14的特征图,S3对C3进行下采样,得到15个6*6的特征图。

(3)全连接层。

为了增强网络的非线性能力,同时限制网络规模,一般会在卷积池化层之后加入一个全连接层。全连接层相当于传统神经网络中的多层感知机的隐藏层,即全连接层的每一个神经元与前一层的所有神经元互相连接,同层神经元之间不连接。其公式如下。

yW,b(x)=f(WTx+b)

(5)

其中,yW,b(x)表示神经元的输出,W表示权值向量,x表示神经元输入向量,b表示偏置,f(*)表示激活函数。实验中为了降低网络复杂度,避免过拟合,b设置为0。

(4)Softmax分类器。

卷积神经网络输出层选择Softmax分类器,其公式如下:

(6)

其中,Vi表示分类器上一级输入单元的输出,i表示类别索引,C表示总类别个数,Si表示当前元素的指数与所有元素指数和的比值。

当输入了给定样本时,每一个神经元会输出一个0到1的值,这个值便是给定样本属于每个分类的概率,从而可以判定给定样本是哪一分类,达到识别人脸的效果。

2.2 网络训练

2.3 算法步骤

文中算法的步骤如下:

(1)将数据库人脸进行局部二值化处理,提取人脸特征纹理。

(2)将局部二值化的人脸放入DCGAN中训练,训练完成后用生成模式D来生成局部二值化的人脸,以扩充用于下一步中的CNN人脸识别的数据集,提高网络的泛化性。

(3)将真实局部二值化的人脸和生成的局部二值化的人脸共同训练CNN人脸识别模型。

3 仿真实验结果与分析

3.1 实验选用的人脸数据集

(1)ORL人脸数据库。

由英国剑桥大学AT&T实验室创建,包含了40个人,每人10张共400张面部图像,其中部分图像包含了姿态、表情和面部饰物的变化。采集对象的面部表情和细节均有变化,例如笑与不笑,眼睛睁着或闭着,戴或者不戴眼镜。

(2)Yale人脸数据库。

由耶鲁大学计算视觉与控制中心创建,包含了15个人,每人11张共165张图片,数据库里的人脸图像包含了光照、表情和姿态的变化。相较于ORL人脸数据库,Yale人脸数据库中每个对象采集的样本包含更加明显的光照、表情和姿态以及遮挡的变化。

3.2 实验结果及分析

(1)人脸图像局部二值模型处理。

Yale人脸数据库中选取了一张,如图4(a)所示,经过局部二值模型处理后的结果如图4(b)所示,面部纹理特征得到增强,轮廓和边缘特性更为明显。

(2)生成的局部二值图像。

将局部二值模式处理过的图像放入DCGAN训练,训练完成后,通过DCGAN生成的局部二值模式处理过的人脸如图4(c)所示,人脸轮廓和纹理都十分清晰。根据DCGAN生成对抗的原理,DCGAN中的判别模式无法区分生成图是真是伪。

图4 LBP处理和生成的图像

通过DCGAN,Yale人脸数据库每个人生成了55张,整个数据集扩充为990张。ORL人脸数据库每个人生成了45张,数据库扩充为2 200张。数据集得到显著扩充,为比较原始数据集和文中方法扩充数据的识别率,保持训练集、验证集和测试集按照整个数据集划分为8∶1∶1的比例不变。

(3)与其他方法比较。

图5给出了在Yale人脸数据库中使用原始数据集和文中方法数据集中验证集和测试集的识别率对比情况,其中Epochs表示迭代次数,图例CNN Val Acc为原始数据集的验证集识别率,CNN Test Acc是原始数据测试集识别率,This article Val Acc和This article Test Acc为文中方法扩充数据集的验证集和测试集识别率。表1前四个给出了在ORL人脸数据库中各个算法中的识别率,后四个给出了在Yale人脸数据库中各个算法的识别率,其中CNN是使用原始数据集进行训练的卷积神经网络。

图5 识别率随迭代次数变化曲线

文中将数据集按照8∶1∶1的比例划分成训练集、验证集和测试集,其中训练集用于训练网络参数,验证集不参与网络参数训练,用于调整迭代数和学习率,可以认为训练集和验证集都参与了网络的训练过程,所有完全没有参与过训练的测试集用于网络训练完之后识别率测试。测试集完全不参与网络训练,所以识别率较验证集会有所下降。测试集可以体现出网络泛化能力。

表1 ORL和Yale人脸数据库识别率 %

由图5可以得出,文中提出的算法经过LBP算法提取人脸特征纹理并进行数据集扩充后,在测试集的识别率高于使用原始数据集的测试集识别率,泛化能力得到了提升。由表1得出,文中提出的识别率同时也高于传统的人脸识别算法。实验结果表明,经过局部二值模式处理提取面部纹理特征,扩充数据集,能够有效地提升测试集识别率和卷积神经网络的泛化能力。

4 结束语

针对卷积神经网络人脸识别普遍存在的训练数据少,容易造成训练特征不足以及网络的过拟合,泛化能力不足等问题,引入局部二值模型和深度卷积生成对抗网络。在图像预处理方面,首先通过局部二值模型提取出人脸面部纹理特征,再通过DCGAN训练生成图像,扩充数据集,提高卷积神经网络的泛化能力。在ORL人脸数据库和Yale人脸数据库地测试结果表明,经过局部二值模式处理且扩充数据能提升卷积神经网络的泛化能力,同时识别率也得到了提升。

猜你喜欢

二值识别率人脸
混沌伪随机二值序列的性能分析方法研究综述
有特点的人脸
支持CNN与LSTM的二值权重神经网络芯片
基于类图像处理与向量化的大数据脚本攻击智能检测
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
基于二值形态学算子的轨道图像分割新算法
三国漫——人脸解锁
提升高速公路MTC二次抓拍车牌识别率方案研究
视频图像文字的二值化
高速公路机电日常维护中车牌识别率分析系统的应用