基于NMF和BP神经网络的人脸识别

2016-04-08 17:49周鹏
2016年8期
关键词:BP神经网络人脸识别

周鹏

摘 要:人脸自动识别是图像识别[1]领域的一个研究热点,有着广泛的应用前景。对于静态人脸识别问题,BP神经网络方法有较强的适应性和易于实现等优点。但采用BP神经网络进行人脸识别也存在学习时间长,识别率不高等缺点。本文根据BP神经网络的基本原理,自行设计了一个简单且易于实现的BP神经网络,该网络在训练样本数较为充足并且学习较为充分的条件下能获得较好的人脸识别效果。并在此基础上,通过对原样本数据进行NMF特征提取操作,再结合该BP网络用于人脸识别。该网络克服了单一BP神经网络学习时间长、识别效率低的缺点,获得了更加有效的识别效果。

关键词:BP神经网络;NMF;人脸识别

一、BP神经网络

BP(Back Propagation)是一种按误差反向传播算法训练的多层前馈网络。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层、隐含层和输出层。本文BP神经网路根据样本数据维数大小,预先随机设定各网络层权值、阈值向量。根据输入的样本数据,计算输出层和隐含层的误差项,再根据误差项反向调节各层的网络权值和阈值。根据设定的迭代运算次数终止BP神经网络的学习。本文自行设计的BP神经网络也共分为3层,并根据单个样本数据的大小,设定BP网络输入层节点数。由于该BP网络只被用于判断4个不同的人脸,所以该网络的输出层节点数设为4个。

下面具体介绍该BP网络识别人脸的实现过程。本试验使用的数据是来自CMU_PIE人脸数据库,取其中4个不同的人,每个人有170幅神情、光照、拍照角度等不同的人脸图像。将这不同的170幅人脸样本分成训练样本和测试样本,训练样本数和测试样本数均比较充裕。而BP神经网络正需要较为充足的样本数据进行训练才会获得不错的学习效果,同时也只有对较多的测试样本进行识别,这种识别结果才具有一定的说服力。其次是要对试验数据进行预处理,将不同的四个人脸图像添加标签,即给四个不同的人取名,方便后面的学习和最后的识别。取每人170幅人脸图像中的90幅作为训练数据,剩下的80幅作为测试数据。需要重点说明的是如何将这360个人脸矩阵输入到BP网络并依此迭代学习。首先我们要将所有样本数据按顺序读入到一个矩阵中,将每一个样本矩阵首尾相连,变成新矩阵B中的一行。经过这样的处理,则B矩阵中的每一行数据就代表一个原二维图像矩阵数据。然后选择矩阵B中前360行数据随机带入BP网络进行学习,360个数据完全学习完一次,即是BP网络迭代学习了1次。训练完之后可以使用该网络判别B矩阵的后320幅数据(测试样本)。根据一定的判别规则和事先的人脸命名来判断识别的正确与否,最后统计识别正确的人脸个数,得出网络的正确识别率。

然而当样本数据维数较大时,直接使用BP网络对原数据训练测试时,使得运算量巨大,BP网络学习时间过长,识别效果也不能令人满意。所以我们在使用BP网络之前,先对原数据进行特征提取,提取得到较好的少量数据用于BP网络计算,不仅减少了训练时间,还提高了BP网络的识别率。特征提取要达到的目的就是通过映射的方法,将高维空间中的数据用更易于分类的低维空间中的数据来表示。

二、NMF(Non-negative Matrix Factorization)

非负矩阵分解(NMF)[2][3]是在矩阵中所有元素均为非负数约束条件之下的矩阵分解方法。经典的NMF算法是将一个大小为m·n的原样本矩阵V分解成一个大小为m·r的非负矩阵W和另一个大小为r·n的非负矩阵H的乘积,使得Vm·n·Wm·rHr·n。当r满足一定条件,可以使得分解后的矩阵小于原样本大小,从而达到降维的目的。最后再使用分解后得到的系数矩阵H来代替原矩阵V,带入BP网络计算就可以了。这里需要注意,两个非负矩阵Wm·r和Hr·n初始值由计算机随机赋值,分解降维后的特征数r和分解的乘性迭代次数n需要根据实验效果自行设定。一般来说迭代次数不需要设定太大,设定的值越大,迭代运算的时间则越长。同时降维后的特征数r也不应选择太接近原样本维数,否则不能达到降维目的。

三、实验结果与分析

本文使用的BP神经网络,迭代学习次数设为10,学习速率设为0.1。取680幅原样本中360幅作为训练样本,其余作为测试样本。这里还需注意一点,由于BP网络权值、阈值是计算机随机选取的,使得每次实验结果呈现出一定随机性。为了便于更好地反应网络识别效果的好坏,我们将每个网络各实验10次,并计算10次结果的平均值。通过10次识别率的平均值大小和10次中的最高、最低识别率来衡量网络的识别效果。单一的BP网络和NMF+BP网络10次识别结果如下:

从实验结果可以看出,使用NMF方法预处理后,使得BP网络的正确识别率更高。当NMF分解迭代次数选择40,维数r选择173时,NMF+BP网络识别效果相对最好,网络平均正确识别率高达98.7%,最小一次识别率为96.6%,最高识别率达到100%。而单独使用BP网络的平均识别率只有93.3%,且第九次的正确识别率只有75.9%。由此可见,在进行BP网络训练识别前,先使用NMF方法处理原样本数据,将原样本大小压缩至173,这样既简化了计算,也简化了BP网络结构。同时还提高了学习速率和平均正确识别率,提升了网络的整体稳定性。

四、结束语

基于NMF和BP神经网络的人脸识别方法,相比较于单独的BP网络人脸识别方法,识别效果得到了较大提高。然而NMF分解算法的迭代次数和提取特征数的选取仍然是经过大量的组合选取实验得来的,缺乏科学性的选择方法。下一步研究应是以如何科学地选择提取特征数和分解迭代次数为目标,以获得更加简单高效的NMF+BP网络用于人脸识别。(作者单位:河南财经政法大学)

参考文献:

[1] 许录平. 数字图像处理[M]. 北京: 科学出版社. 2007.

[2] Lee D D,Seung H S. Learning the parts of objects by non-negative matrix factorization. Nature,1999,401(6755):788–791.

[3] 刘维湘,郑南宁,游屈波. 非负矩阵分解及其在模式识别中的应用[J].科学通报,2006.51(3):241-250.

猜你喜欢
BP神经网络人脸识别
人脸识别 等
揭开人脸识别的神秘面纱
基于(2D)2PCA-LBP 的人脸识别方法的研究
人脸识别在高校安全防范中的应用
基于类独立核稀疏表示的鲁棒人脸识别
基于K-L变换和平均近邻法的人脸识别