您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 理学 > BP神经网络在人脸识别中的应用研究
BP神经网络在人脸识别中的应用研究冯玉涵(信阳农林学院河南信阳464000)摘要:本文介绍了一种BP神经网络的人脸识别系统的设计方法。该设计利用前向多层神经网络的反向传播算法,即BP算法,采用MATLAB软件建立了用于人脸识别的BP神经网络,并利用大量的人脸特征数据训练神经网络,使神经网络能分辨出不同的人脸特征。关键词:BP神经网络;人脸识别;MATLABTheresearchofFacerecognitionbasedonBPNeuralNetworkFengYuHan(CollegeofXinYangagricultureandforestryHeNanXinYang464000)Abstract:ThispaperintroducesamethodofthefacerecognitionbaseonBPneuralnetwork.Inthisdesign,aBPneuralnetworkwasbuiltwithmatlabandFacefeaturedata,whichwereusedtotraintheneuralnetwork,andthentheneuralnetworkcouldcorrectlyclassifytheDifferentfacialfeatures.KeyWords:BPNeuralNetwork;facerecognition;MATLAB1.人脸识别系统的应用前景概述随着科技的的发展,对人脸识别技术的发展要求越来越迫切,如(1)在企业、住宅安全和管理方面,要求实现人脸识别门禁考勤系统,人脸识别防盗门等。(2)在公安、司法和刑侦方面,利用人脸识别,在全国范围内搜捕逃犯。(3)在银行的自动提款机中,如果应用人脸识别就会避免由于用户卡片和密码被盗。造成的损失(4)在电子商务交易过程中,如果使用人脸识别实现当事人在网上的数字身份和真实身份统一,便增加了电子商务的可靠性。而人脸识别的软件系统开发,是联系理论和实践的最重要的环节,因此实现人脸识别系统的开发应用越来越重要。本文着重介绍了利用BP神经网络实现人脸识别系统的方法,并利用MATLAB软件得以实现。2.BP网络的概述2.1BP神经网络的定义前馈多层神经网络是目前应用最广、发展最迅速的人工神经网络之一,它广泛的应用于模式识别与分类、预测、控制、图像处理等问题。由于这类神经网络的网络权值阈值的确定常采用误差反向传播算法(BackPropagation,简称作BP算法),所以通常称这类基于BP算法的前馈网络为BP网络。BP网络有输入层、隐层和输出层组成,可以有一个隐层,也可以具有多个隐层(如图1)。同一层神经元节点之间没有连接,前一层节点与后一层节点之间有充分的连接。对于输入信息,要先向前传到隐含层的节点上,经过各单元的非线性函数(如Sigmoid函数、双曲正切函数等)激活函数运算后,把隐含层节点的输出信息传播到输出节点,最后给出输出结果。BP网络的学习过程有正向传播和反向传播2个过程组成。在正向传播过程中,输入信息从输入层,由第一隐层开始逐层的计算并向下一层传递,直至输出层。每一层的神经元的状态只影响下一层的神经元的状态。如果输出层不能得到期望的输出,就是实际输出值与期望输出之间有误差,则转入反向转播,将误差信号沿原来的连接通路返回,在返回过程中,通过修改各层神经元间的权值和阈值,逐层的向输入层传播并进行计算,然后再进行正向传播过程。这2个过程反复的运用,使得误差最终满足预定要求。2.2BP网络的算法BP算法可描述为:(1)初始化各权值为较小的随机值;(2)选取训练集,当输入为110,,,MXXX,目标输出为110,,,Nddd;(3)根据tXexf/)(11)(和10)(NiiiijiXWfY(其中θ为阀值,T为任意常数)计算实际输出的110,,,NYYY;(4)根据下列公式从输出节点开始到中间节点隐层修正各权值:(i为高于节点j的层次上所有节点;)ijjijijXtWtW)()1((其中为学习速度)(1)当j为输出层节点,反传误差为:))(1(jjiijYdYY图1:单隐层的BP网络结构给出身份人脸库人脸监测定位图像预处理特征提取选择获取图像识别训练图2:人脸识别系统结构图当i为非输出层节点,反传误差为:jkikjkjjWXX)1((5)返回第二步直至误差理想为止。为了加快学习速度,可在(1)式中增加动量项:))1()((tWtWaijij,即式(1)可改写为:))1()(()()1(tWtWaXtWtWijijkijijijij另外,误差函数采用平方型函数:NijidYE12)(213.BP神经网络实现人脸识别3.1设计思路本设计采用50幅图像(10个人每人5幅)作为训练图像,应用主成分分析对训练图像进行二阶相关和降维,提取训练图像的独立基成分构造人脸子空间,并将训练集中的人脸图像向独立基上投影得到的系数输入改进的BP神经网络进行训练。然后将待识别的人脸图像向独立基上投影得到投影系数,再将其输入已训练过的BP神经网络进行识别。设计结构如图23.2BP网络的创建和初始化因网络的输入矢量与输出矢量相差较大,为了减少网络的训练误差,在建立网络之前要对输入矢量进行归一化。这里我们利用premnmx函数把输入初始化在[-1,1]之间。程序代码如下:p=premnmx(p')';t=[1000;1000;1000;1000;1000;0100;0100;0100;0100;0100;0010;0010;0010;0010;0010;0001;0001;0001;0001;0001]'3.3设计神经网络网络的训练函数有很多种,如traingdx,trainlm,traingd。本设计的方法如下:%设计神经网路[prowpcol]=size(p);num=prow*pcol;%提取p中元素个数作为神经网络的输入层神经元个数net=newff(minmax(p),[num,10,4],{'tansig','tansig','purelin'},'traingda');%隐层神经元个数为10,输出层神经元个数为4,4表示识别出人net.trainParam.show=200;%显示速率为200net.trainParam.lr=0.01;%学习率为0.01net.trainParam.epochs=5000;%迭代次数不超5000net.trainParam.goal=0.001;%训练误差为0.001[net,tr]=train(net,p,t);3.4系统的性能评估为了测试设计的网络模式识别系统的可靠性,这里用50幅图像输入样本,来观察其输出结果。通过程序演示,基本可以识别出不同的人脸特征。如果需要有更高的精度,一种办法是增长网络的训练时间,另一种办法是增加网络隐含层的神经元数目。结论本设计是利用前向多层神经网络的反向传播算法,即BP算法,采用MATLAB软件建立了用于人脸识别的BP神经网络,并利用大量的人脸图像数据训练神经网络,使神经网络能分辨不同的人脸信息。实验结果表明,用这种方法进行人脸识别有较好的效果。参考文献[1]蔺广逢,繁引娣,张媛.主成分分析与BP神经网络的人脸识别方法研究[N].现代电子技术,2007年,第2期.[2]MartinT.Hag,HowardB.Demuth.NeuralNetworkDesignOriginal[M].PSWpublishingcompany.[3]张威.MATLAB基础与编程入门[M].西安:西安电子科技大学出版社,2004.[4]丛爽.面向MATLAB工具箱的神经网络理论与应用[M].合肥:中国科学技术大学出版社,2003.(作者简介:冯玉涵,女,出生于1985年9月,2008年毕业于河南省信阳师范学院电子信息工程专业,本科,2008年10月至今工作于河南省信阳农林学院,2009年获得助教职称,主要研究方向电子信息)
本文标题:BP神经网络在人脸识别中的应用研究
链接地址:https://www.777doc.com/doc-2900937 .html