时间:2024-09-03
沈阳理工大学信息科学与工程学院 魏英姿 张天浩 TETE Komlan Senyo
基于深度置信网络的人脸识别方法研究
沈阳理工大学信息科学与工程学院 魏英姿 张天浩 TETE Komlan Senyo
利用深度学习进行人脸识别已成为了当今人工智能领域的重要研究方向。本文采用深度学习的DBN网络进行人脸识别,融合了局部二值模式LBP算子的稳定特征,将提取到的局部纹理特征作为DBN输入特征,有助于DBN对图像特征分布的理解,降低网络学习到不利的特征的。训练时采用无监督贪婪训练的方法逐层训练限制玻尔兹曼机(RBM),得到权重、偏置等参数并利用训练结果初始化整个网络,计算出代价函数,设置一层误差反向网络,进行微调。用ORL人脸数据库,并添加随机采样的人脸数据进行识别,识别正确率是令人满意的。
限制玻尔兹曼机;深度置信网络;LBP算子;人脸识别
人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术。深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,分为卷积神经网络、深度置信网络以及稀疏自编码网络三大模块[1]。
本文实验将LBP与DBN相结合,克服了深度置信网络不能学习到人脸图像局部结构特征的缺点,使得深度置信网络学习到的抽象特征受光照、微小平移等的影响较小。通过DBN对输入数据进行训练,并进行判别,有效避免了部分因素干预。并且在网络中,没有设置相关学习率,而是通过误差网络以及代价函数,让网络得到一个最优解。通过对ORL人脸数据库的实验,我们可以得到结论,将局部二值模式与DBN网络相结合可以更好的提取人脸特征,展现了其他网络不具有的优越性。
原始的LBP算子定义为在3*3的窗口内,其阈值为窗口中心像素,将相邻的8个像素的灰度值与阈值进行对比,如果周围像素值大于中心像素值,则这一点的像素位置标记为1,否则标记为0[2]。这样,3*3窗口相邻范围内的8个点经比较就可以产生8位二进制数(通常转换为十进制数即LBP码,共256种)。原始LBP算子如图1-1所示。
图1-1 原始LBP
新的LBP算子LBP(P,R)不仅可以计算不同半径邻域大小的特征值还可以计算不同像素点数的特征值,其中P表示周围像素点个数,R表示邻域半径,如图1-2所示,为扩展后的LBP[3]。
图1-2 扩展后的两种LBP
深度置信网络是深度学习的一个分支,其目的是模拟人类的大脑进行分析学习。深度置信网络是一种概率生成模型,由多个受限玻尔兹曼机构成,具有强大的非监督学习能力,与传统的判别模型的神经网络相对,用于建立一个观察数据和标签之间的联合分布。
RBM是深度信念网络的重要组成部分,具有一个可见层,一个隐藏层,层内神经元无连接,层间神经元全连接。可见层负责接收输入信号,隐藏层的作用是作为输入信号的特征提取器。2002年Hinton提出对比散度算法(CD算法),使限制玻尔兹曼机具有快速学习的能力。我们用v表示RBM的可见单元,用h表示隐藏单元,那么联合组态的能量可以表示为:
其中W为连接可见单元与隐层单元的权重,b为可见单元偏置,a为隐藏单元的偏置。最重要的部分是如何求出。
我们可以将某个组态联合概率分布表示为:
因为隐藏节点间是相互独立的,所以对于给定可见层v每个隐层节点为0或1的概率可以表示为:
同理,每个可见层节点为0或1的概率为:
然后对以下最大化似然函数求W,a,b的偏导数,即可得出相关参数值。
DBN训练过程大致分为两步:
1)读入数据文件,用train_x,train_y训练每一层RBM,将第一隐层输出作为可见层的输入,再将可见层的输出作为下一隐层输入逐层进行无监督训练,每一层单独训练可使特征向量能更多的保留特征信息在不同的特征空间中。
2)最后一层设置BP网络,接收RBM的输出作为BP网络的输入,通过自顶向下进行有监督的微调,调整整个DBN网络,使整个DBN的特征向量映射达到最优。
本文结合LBP与深度信念网络的人脸识别模型图如图3-1所示[4]。
图3-1 人脸识别模型
该实验包括以下几个步骤:
步骤1:对人脸数据库进行预处理,train_x将ORL库中每人7张图片用于训练,3张用于测试(即test_x),train_y将人脸库的每人8张图片用于训练,2张图片用于测试(即test_y),并且将测试样本,训练样本归一化到[0,0.5];
步骤2:将人脸图片进行4*4分块,LBP的P设为8,R设置为1,分别对每块进行LBP人脸特征提取;
步骤3:读取train_x,train_y,逐层训练RBM网络,再将训练结果进行调优,训练整个DBN网络,并且在程序中,运用了反向传播算法和代价函数,使用fmincg函数去得到最优解;
步骤4:统计识别错误的样本数,得到识别结果。
ORL人脸库有40个人,每个人有10种不同方向,表情的图片(图4-1)。本次实验还添加了随机图片进行识别。将这些图片进行预处理,并将其分成测试集与训练集去训练DBN网络。
图4-1 实验新增部分人脸数据
表1显示了本次实验的识别结果,并列举了迭代次数所对应的花费时间及错误率。从此表可以得到结论:当网络迭代3000次时,识别错误率为0.025,即正确率可达97.5%。
表1 识别结果
本文融合了LBP算子的DBN网络人脸识别,将ORL人脸库分为训练集和测试集,采用LBP算子4*4分块模式进行特征提取,DBN网络设为4层结构。通过实验可以看出训练样本以及隐层节点的错误率都在0.5%以下,通过识别结果可以得出结论,在迭代次数3000次时,识别正确率可达97.5%。验证了结合LBP与DBN的人脸识别具有较好的识别效果。
[1]Hinton G.E,Osindero S,Yw.T.A Fast Learning Algorithm for Deep Belief Nets[J].Neural Computation 2006,18(7).
[2]梁淑芬,刘银华,等.基于LBP与深度学习的非限制条件下人脸识别算法[J].通信学报,2014.
[3]Song K,Yan Y,Chen W,et.Local binary pattern method research and prospects[J].Journal of Automatic Sinica,2013,39(6):730-744.
[4]Luo P,Wang X,Tang X.Hierarchical face parsing via deep learning [C]Computer Vision and Pattern Recognition(CPVR).2012 IEEE Conference on IEEE,2012:2480-2487.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!