资源描述:
《bp神经网络在人脸识别中应用探究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、BP神经网络在人脸识别中应用探究摘要:本文介绍了一种BP神经网络的人脸识别系统的设计方法。该设计利用前向多层神经网络的反向传播算法,即BP算法,采用MATLAB软件建立了用于人脸识别的BP神经网络,并利用大量的人脸特征数据训练神经网络,使神经网络能分辨出不同的人脸特征。实验结果表明,用这种方法进行人脸识别有较好的效果。关键词:BP神经网络;人脸识别;MATLAB中图分类号:TP391随着科技的发展,对人脸识别技术的发展要求越来越迫切,如(1)在企业、住宅安全和管理方面,要求实现人脸识别门禁考勤系统,人脸识别防盗门等。(2)在公安、司法和刑侦方面,利用人脸识
2、别,在全国范围内搜捕逃犯。(3)在银行的自动提款机中,如果应用人脸识别就会避免由于用户卡片和密码被盗。(4)在电子商务交易过程中,如果使用人脸识别实现当事人在网上的数字身份和真实身份统一,便增加了电子商务的可靠性。而人脸识别的软件系统开发,是联系理论和实践的最重要的环节,因此实现人脸识别系统的开发应用越来越重要。1BP网络的概述1.1BP神经网络的定义。前馈多层神经网络广泛的应用于模式识别与分类、控制、预测、图像处理等问题,是当今社会应用最广、发展最快的人工神经网络之一。由于此神经网络的网络权值阈值的确定常采用误差反向传播算法(BackPropagatio
3、n,简称作BP算法),所以通常称这种前馈网络为BP网络。典型的BP网络是三层网络,包括输入层、隐含层和输出层。各层之间实行全连接,而其中隐含层可以是一层,也可以是多层(如图1)。图1单隐含层的BP网络结构BP网络的学习由四个过程组成,即:(1)输入模式:输入层经隐含层向输出层的“模式顺传播”过程;(2)网络的理论输出与网络实际输出之差的误差信号:由输出层经隐含层向输入层逐层修正连接权的“误差逆传播”过程;(3)由"模式顺传播”与"误差逆传播”的反复交替进行的网络“记忆训练"过程;(4)网络趋向收敛即网络的全局误差趋向极小值的“学习收敛”过程。简言之,就是由
4、“模式顺传播”一“误差逆传播”一“记忆训练”一“学习收敛”的过程。传递函数一般为(0,1)S型函数。BP网络隐层中的神经元均采用S型交换函数,输出层则采用纯线性变换函数。1.2BP网络的算法。BP算法可描述为大致五步:(1)初始化各权值为较小的随机值;(2)选取训练集;(3)根据输入计算理论输出;(4)调节输出层和隐含层的连接权值;(5)返回第二步反复训练网络直至误差理想为止。其流程图如图2:图2神经网络算法流程图2BP神经网络实现人脸识别2.1设计思路。本设计采用50幅图像(10个人每人5幅)作为训练图像,应用主成分分析对训练图像进行二阶相关和降维,提取
5、训练图像的独立基成分构造人脸子空间,并将训练集中的人脸图像向独立基上投影得到的系数输入改进的BP神经网络进行训练。然后将待识别的人脸图像向独立基上投影得到投影系数,再将其输入已训练过的BP神经网络进行识别。设计结构如图3。图3人脸识别系统结构2.2BP网络的创建和初始化。因网络的输入矢量与输出矢量相差较大,为了减少网络的训练误差,在建立网络之前要对输入矢量进行归一化。这里我们利用premnmx函数把输入初始化在[-1,1]之间。程序代码如下:p=premnmx(p"),;t=[1000;1000;1000;1000;1000;0100;0100;0100;
6、0100;0100;0010;0010;0010;0010;0010;0001;0001;0001;0001;0001]'2.3训练神经网络。本设计的方法如下:%设计神经网路[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
7、.trainParam.lr=0.01;%学习率为0.01net.trainParam.epochs=5000;%迭代次数不超5000net.trainParam.goal二0.001;%训练误差为0.001[net,tr]=train(net,p,t);网络的训练函数有很多种,如trainlm,其中traingd学习算法是一般的剃度下降法;traingdx学习算法是剃度下降动量法,学习速率是自适应的。Trainlm的学习算法为Levenberg-Marquadt反传算法,该训练函数的优点在于收敛速度很快。本设计选用的训练函数为traingdx,在网络达到
8、起训练误差要求时会自动停止,节省训练时间。训练过程中为了得到较小的