APP下载

基于BP神经网络的人脸识别算法的实现

2017-07-14龚成清

电脑知识与技术 2017年16期
关键词:BP神经网络人脸识别算法

龚成清

摘要:人脸识别技术是当前进行身份识别的研究热点,已广泛应用在社会的各个领域。BP神经网络算法可以通过自动学习对网络的权值和偏差进行反复的调整训练,从而输出最优值。对图像进行预处理和特征提取后,利用BP神经网络算法进行学习和训练,可以有效地进行人脸图像的识别。

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

1概述

人脸识别技术的研究始于20世纪60年代,是基于人的脸部特征信息进行身份识别的一种生物识别技术。人脸识别是一个综合性的工程,涉及图像处理、机器视觉、模式识别、神经网络等诸多学科。人脸识别技术具有非强制性、非接触性、隐蔽性、直观性等特点,有着广泛的应用前景,已经在金融、军事、教育、医疗等多个领域得到了良好的应用。

人脸识别一般包含四个步骤:人脸图像检测、人脸图像预处理、人脸图像特征提取以及匹配与识别。许多学者也对人脸识别的算法进行了研究,归纳起来可以分为以下几种:基于人脸特征点的识别算法、基于整幅人脸图像的识别算法、基于模板的识别算法和利用神经网络进行识别的算法。利用神经网络进行人脸识别是通过神经网络的训练学习,得到相应的识别函数关系,从而进行识别。基于神经网络的人脸识别算法能并行地进行信息的存储与处理,具有算法简单、运行速度快等优点。

2BP神经网络

BP(Back Propagation)神经网络最初是在1986年由D.E.Ru-melhart和J.L.Mc Celland首先提出来的,是目前应用最广泛的人工神经网络。BP神经网络包括输入层、隐藏层和输出层,如图1所示:

设x为输入值,y为输出值,i为上一层神经元,i为当前层神经元,k为下一层神经元,w为神经元i与神经元i之间的权值,m是输入层节点数目,n为计算的次数。当i=0时,权值为阈值。BP神经网络算法的计算过程如下:

(1)初始化

选择网络拓扑结构,设置权值和阈值,确定学习因子a;

(2)正向计算

对p层的神经元i,计算线性组合系数:

3基于BP神经网络的人脸识别算法

3.1人脸图像检测

人脸图像检测就是对输入图像中进行判断是否包含人脸,如果有,则给出人脸的位置、大小等信息,并将人脸区域从背景中分离出来。人脸图像中包含的模式特征十分丰富,如颜色特征、结构特征、直方图特征等,现行已经有很多检测的成熟算法,在此不再赘述。为简单起见,本文直接使用ORL数据库中的人脸图像。

3.2人脸图像预处理

由于原始图像在生成、传输等过程中会受到各种条件的限制和随机干扰,因此在进行人脸识别之前必须对图像进行灰度校正、噪声过滤等图像预处理。预处理的目的是消除噪声及冗余信息的干扰,降低环境因素对图像的影响,突出图像的重要信息。

一般的做法是先将原始图像转换成为灰度矩阵,matlab关键代码如下:

for i=1:n%n为图片数量

e=[d dir(i,1:7)];%得到每张图片的文件名

M=double(imread(e));%將图片转化成为灰度矩阵

end

3.3人脸图像特征提取

原始图像转换为灰度图像后,其所包含的数据量还是比较大的,若直接对其进行计算,则计算量会非常的大,因此需要对灰度图像进一步处理来提取其特征值。图像进行特征提取,使用提取的特征信息来进行人脸的分类,常用于表述人脸的几何特征包括:①眉毛的厚度,眉毛与眼睛之间的垂直距离;②眉毛弧度的11个描述参数;③鼻子的宽度,鼻子的垂直位置④嘴巴宽度、上下嘴唇的厚度、嘴巴的垂直距离;⑤下巴形状的描述参数⑥鼻孔位置的脸宽⑦鼻孔与眼睛中间位置的脸宽。

人脸特征提取的方法归纳起来分为两大类:一种是基于知识的表征方法;另外一种是基于代数特征或统计学习的表征方法。基于知识几何特征的提取在很大程度上依赖于先验知识,具有较大的局限性和不准确性,基于统计学习的方法用统计的策略提取所有训练图像的统计特征,不需要抽取每个人脸的面部特征,会更有效,因此成为了目前主流的方法。

人脸特征提取不管用哪种方法思路都是将图像划分为小的区域,由高维空间的表示变换到用低维空间来表示,通过添加处理选取低维空间中最能表现图像特征的数据来表示图像,从而达到降低特征维数的目的。

本文对经过预处理的灰度图像进行变换,对灰度矩阵进行切割,再用SVD分解,并提取图片特征。若把原始图像划分为16块小矩阵,关键代码如下:

3.4人脸图像匹配与识别

经过图像灰度预处理、特征提取之后,就需要设计一个算法对输入的特征进行分类,实现人脸的识别。人脸识别就是将待识别的人脸特征与已得到的人脸特征模板进行比较,根据相似程度对人脸的身份信息进行判断。

使用BP神经网络对人脸进行识别,需要先创建神经网络,具体代码如下:

4实验结果

运用以上算法,对ORL数据库中的400张人脸图像进行了识别,所有的人脸图像均为正脸,带有一定程度的朝上下左右的偏转或倾斜,有相似的黑暗同质背景。我们把图像分为没有重叠的、相同大小的训练集和测试集。每个类别随机的选取5幅图像作为训练集,5幅归为测试集。实验结果表明,算法可以准确进行人脸的识别,识别率达到了100%。

猜你喜欢

BP神经网络人脸识别算法
人脸识别 等
揭开人脸识别的神秘面纱
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
一种改进的整周模糊度去相关算法
基于类独立核稀疏表示的鲁棒人脸识别
基于K-L变换和平均近邻法的人脸识别