BP神经网络在人脸识别中的应用研究

时间:2022-08-19 01:38:18

BP神经网络在人脸识别中的应用研究

摘 要:本文介绍了一种bp神经网络人脸识别系统的设计方法。该设计利用前向多层神经网络的反向传播算法,即BP算法,采用MATLAB软件建立了用于人脸识别的BP神经网络,并利用大量的人脸特征数据训练神经网络,使神经网络能分辨出不同的人脸特征。实验结果表明,用这种方法进行人脸识别有较好的效果。

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

中图分类号:TP391

随着科技的发展,对人脸识别技术的发展要求越来越迫切,如(1)在企业、住宅安全和管理方面,要求实现人脸识别门禁考勤系统,人脸识别防盗门等。(2)在公安、司法和刑侦方面,利用人脸识别,在全国范围内搜捕逃犯。(3)在银行的自动提款机中,如果应用人脸识别就会避免由于用户卡片和密码被盗。(4)在电子商务交易过程中,如果使用人脸识别实现当事人在网上的数字身份和真实身份统一,便增加了电子商务的可靠性。而人脸识别的软件系统开发,是联系理论和实践的最重要的环节,因此实现人脸识别系统的开发应用越来越重要。

1 BP网络的概述

1.1 BP神经网络的定义。前馈多层神经网络广泛的应用于模式识别与分类、控制、预测、图像处理等问题,是当今社会应用最广、发展最快的人工神经网络之一。由于此神经网络的网络权值阈值的确定常采用误差反向传播算法(Back Propagation,简称作BP算法),所以通常称这种前馈网络为BP网络。典型的BP网络是三层网络,包括输入层、隐含层和输出层。各层之间实行全连接,而其中隐含层可以是一层,也可以是多层(如图1)。

图1 单隐含层的BP网络结构

BP网络的学习由四个过程组成,即:(1)输入模式:输入层经隐含层向输出层的“模式顺传播”过程;(2)网络的理论输出与网络实际输出之差的误差信号:由输出层经隐含层向输入层逐层修正连接权的“误差逆传播”过程;(3)由“模式顺传播”与“误差逆传播”的反复交替进行的网络“记忆训练”过程;(4)网络趋向收敛即网络的全局误差趋向极小值的“学习收敛”过程。简言之,就是由“模式顺传播”“误差逆传播”“记忆训练”“学习收敛”的过程。传递函数一般为(0,1)S型函数 。BP网络隐层中的神经元均采用S型交换函数,输出层则采用纯线性变换函数。

1.2 BP网络的算法。BP算法可描述为大致五步:(1)初始化各权值为较小的随机值;(2)选取训练集;(3)根据输入计算理论输出;(4)调节输出层和隐含层的连接权值;(5)返回第二步反复训练网络直至误差理想为止。

其流程图如图2:

图2 神经网络算法流程图

2 BP神经网络实现人脸识别

2.1 设计思路。本设计采用50幅图像(10个人每人5幅)作为训练图像,应用主成分分析对训练图像进行二阶相关和降维,提取训练图像的独立基成分构造人脸子空间,并将训练集中的人脸图像向独立基上投影得到的系数输入改进的BP神经网络进行训练。然后将待识别的人脸图像向独立基上投影得到投影系数,再将其输入已训练过的BP神经网络进行识别。设计结构如图3。

图3 人脸识别系统结构

2.2 BP网络的创建和初始化。因网络的输入矢量与输出矢量相差较大,为了减少网络的训练误差,在建立网络之前要对输入矢量进行归一化。这里我们利用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]'

2.3 训练神经网络。本设计的方法如下:

%设计神经网路

[prow pcol]=size(p);

num=prow*pcol;%提取p中元素个数作为神经网络的输入层神经元个数

net=newff(minmax(p),[num,10,4],{'tansig','tansig','purelin'},'traingda');%隐层神经元个数为10,输出层神经元个数为4,4表示识别出人

net.trainParam.show=200;%显示速率为200

net.trainParam.lr=0.01;%学习率为0.01

net.trainParam.epochs=5000;%迭代次数不超5000

net.trainParam.goal=0.001;%训练误差为0.001

[net,tr]=train(net,p,t);

网络的训练函数有很多种,如trainlm,其中traingd学习算法是一般的剃度下降法;traingdx学习算法是剃度下降动量法,学习速率是自适应的。Trainlm的学习算法为Levenberg-Marquadt反传算法,该训练函数的优点在于收敛速度很快。本设计选用的训练函数为traingdx,在网络达到起训练误差要求时会自动停止,节省训练时间。训练过程中为了得到较小的误差,可以增加训练次数。

2.4 系统的性能评估。为了测试设计的网络模式识别系统的可靠性,这里用50幅图像输入样本,来观察其输出结果。通过程序演示,基本可以识别出不同的人脸特征。如果要提高精度,可以延长网络的训练时间,或者是将网络隐含层的神经元数目增多。为了测试系统,可提取几取几幅人脸图片数据,然后把它们输入到网络中,观察其得到的输出,并进行误差分析。

3 结束语

本设计是利用BP算法,以MATLAB软件作为工具手段,建立人脸识别的BP神经网络,且利用50副人脸图像数据训练网络,使神经网络能辨别出人脸信息。结果说明,本设计在人脸识别方面有比较好的优势。

在本设计中,使用了不人脸图像数据作为输入来训练网络,提高了整个网络容错的能力,这样更适合在实际环境中使用。

参考文献:

[1]蔺广逢,繁引娣,张媛.主成分分析与BP神经网络的人脸识别方法研究[J].现代电子技术,2007(02).

[2]MartinT.Hag,Howard B.Demuth. Neural Network Design Original[M].PSW publishing company.

[3]张威.MATLAB基础与编程入门[M].西安:西安电子科技大学出版社,2004.

[4]丛爽.面向MATLAB工具箱的神经网络理论与应用[M].合肥:中国科学技术大学出版社,2003.

作者简介:冯玉涵(1985-),女,河南信阳人,学士学位,助教,研究方向:电子信息。

作者单位:信阳农林学院 计算机科学系,河南信阳 464000

上一篇:基于嵌入式WINDOWS CE系统的称重软件开发 下一篇:基于B/S架构的中医药信息系统的设计与实现