基于人工神经网络的人脸朝向识别模型.doc_第1页
基于人工神经网络的人脸朝向识别模型.doc_第2页
基于人工神经网络的人脸朝向识别模型.doc_第3页
基于人工神经网络的人脸朝向识别模型.doc_第4页
基于人工神经网络的人脸朝向识别模型.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于人工神经网络的人脸朝向识别模型基于人工神经网络的人脸朝向识别模型摘要:人脸朝向识别是人脸应用研究中重要的一步,在众多研究领域中,人脸朝向识别是模式识别中一个无法回避的问题。本文针对此问题,建立了基于人工神经网络的人脸朝向识别模型。首先,采用基于边缘检测Sobel算子的人脸特征向量提取,把图像转换为6行8列像素值,实现了人脸识别的特征提取,作为神经网络的输入。然后根据实际情况,考虑到误差因素,我们创建一个3层的BP神经网络,输入层8个神经元,输出层3个神经元,中间层17个神经元。选取50张人脸图像中的前30张,作为神经网络的训练样本,通过长达11分钟的训练,我们得到了比较好的网络。接着,把训练好的神经网络用于测试剩余的20张人脸图像,输出的朝向结果与输入的朝向结果完全一致,识别率100%。在BP网络中,由于我们采用了0.01的学习率,虽然识别率很高,但大大延长了网络的训练时间。因此,我们觉得有必要建立一种训练时间和训练效果都较好的神经网络模型。参照模型一,我们接着又建立了基于LVQ神经网络的人脸朝向识别模型二。用于训练的样本和测试的样本都跟模型一相同。与BP神经网络模型相比,不仅大大缩短了训练时间(缩短为1秒),而且保证了识别率为100%。因此,针对人脸朝向识别的问题,采用基于LVQ神经网络的模型更好一些。最后,我们从图像特征提取和神经网络构建两个方面出发,提出了可行的模型改进方法。关键字:人脸朝向识别;BP神经网络模型;LVQ神经网络模型一、问题的重述 人脸朝向识别是人脸应用研究中重要的一步,在众多研究领域中,人脸朝向识别是一个无法回避的问题。现有一组人脸朝向不同角度时的图像数据,图像来自不同的10个人(详见附件),每人五幅图像,人脸的朝向分别为:左方、左前方、前方、右前方和右方。现在需要建立人脸朝向识别模型,对人脸的朝向进行识别。二、模型假设及符号说明1、模型的假设1 所给的全部人脸图像都未出现损坏等问题;2 人脸朝向仅分为5类:左、左前、前、右前、右,其他朝向不予考虑;3 对于题目中所给的人脸图像,不考虑人脸的复杂表情问题。2、符号说明1 N输入层的神经元个数2 L 隐含层的神经元个数3 M输出层的神经元个数4 X加到网络的输入矢量5 H中间层的输出矢量6 Y网络的实际输出矢量7 是网络输出单元i到隐单元j的权值8 是隐单元j到输出单元k的权值 注:未说明符号在文中用到时注明三、问题的分析人脸朝向识别是人脸应用研究中重要的一步,在众多研究领域中,人脸朝向识别是模式识别中一个无法回避的问题。基于误差反向传播算法的多层前馈网络可以以任意精度逼近任意的连续函数, 所以广泛应用于非线性建模、函数逼近、模式分类等方面。1 人脸识别的首要一步,也是之后所有过程基础步骤,就是人脸特征的提取,即如何把人脸图像转换为数字特征值。目前人脸特征提取的方法有很多,如主元分析法、Fisher线性判别法、小波分析法等。通过特征向量的提取,作为接下来神经网络的输入。2 建立神经网络模型,关键是网络拓扑结构的选择和训练参数的设置。特别是对于BP神经网络来说,参数的设置、样本质量等都是影响结果的重要结果,而学习效率的确定和训练函数的选择直接影响样本的训练时间,还有隐含层神经元个数如何确定等都没有统一的规定。但通过尝试和一些经验公式,完全可以达到很好的输出结果。3 由于BP网络固有的缺陷和限制,通过该善网络拓扑结构,即采用有导师监督的LVQ网络,可以在保证人脸朝向识别率的基础上,有效的改善训练时间。而且LVQ网络模型具有简单实用的特点,对于本文所讨论的问题来说具有更好的效果。4、 基于BP神经网络的人脸朝向识别模型多层前向反馈式神经网络是目前应用比较广泛的人工神经网络,其中BP(Back Propagation network,简称BP网络)学习算法是最著名的多层前向反馈式神经网络训练算法之一。该算法在图像处理和图像识别领域已经取得令人瞩目的成就,其主要思想是利用已知确定结果的样本模式对网络进行训练,然后利用训练好的网络进行图像的处理或识别。本文将首先讨论用MATLAB实现BP神经网络对人脸朝向的分析。4.1基于边缘检测Sobel算子的人脸特征向量提取一个完整的人脸识别系统应该包括人脸检测,特征提取和人脸识别。人脸图像有一些明显的基本特征,如脸部区域通常包括双眼、鼻和嘴等脸部特征,其亮度一般低于周边区域,双眼大致对称,鼻、嘴分布在对称轴上等。本文采用镶嵌图(Mosaic Image,又称马赛克图)方法,先将图像划分成一组相同大小的方格,每个方格的灰度取格中各象素灰度的均值,根据一组规则确定可能为人脸的区域,然后将方格的边长减半,重新构建镶嵌图,并根据一组规则分别定位出眼、鼻、嘴等脸部特征。最后,将所前两步所得到的脸部区域二值化,并使用边缘跟踪最终确定脸部特征的位置。物体的边缘是以图像局部特征的不连续性的形式出现的,例如灰度值的突变颜色的突变纹理结构的突变等等,正是这些不连续性构成了图像的边缘信息。图像的边缘有方向和幅度两个特征,通常沿边缘方向的像家变化剧烈。这种变化(不连续性)常可以利用求导数方法,一般常用一阶和二阶导数来检测边缘。在本文中我们采用了有方向性的Sobel 算子。也就是说, 我们对每个图像点需要计算它在不同方向上的梯度, 然后选取一个值最大的方向作为该点的边缘方向。用Sobel 算子提取图像边缘的计算方法:假设表示输入图像在位置上的灰度值,在计算水平方向的梯度时,首先计算在X方向的梯度, 然后计算Y方向的梯度,最后将计算两个方向梯度值的平方和作为在水平方向的梯度d。 计算dx,dy的方法:只要将图像中对应位置上的灰度值与上面矩阵中的值对应相乘相加就可以了, 比如计算水平方向的: 用同样的方法可以计算出 , 从而可以用下面的等式来计算d: 在MATLAB工具箱中可采用函数edge(img,Sobel)进行边缘检测,其中img代表图像矩阵。在本文中,将每幅图片分割成6行8列,分别求得每个小方格内黑色像素的个数占这个小方格内总像素,利用edge(img,Sobel)进行边缘检测,最终求得特征值作为训练神经网络的输入数据。 在训练和识别以前,我们都对图像进行归一化预处理。由于几何位置的归一化和人脸及组成部分的精确定位有关,是一个解决不好的问题。文献中有提供了一种新颖的解决办法,但却需要大量的样本。本文避开这个问题, 在所有图像大小归一化时, 主要是对图像光照的归一化处理。为了消除面部光照对识别的影响, 我们让每一幅图灰度值的均值和方差都相等。4.2 BP算法 4.2.1 BP网络模型 BP神经网络是一种多层前向网络,由输入层、输出层、隐含层(可以是一层或多层)构成,一种典型的三层BP神经网络模型如图1所示。 反向传播算法的主要思想是把学习过程分为2个阶段:第1阶段(正向传播过程),输入信息从输入层开始逐层计算各单元的实际输出值,每一层神经元的状态只对下一层神经元的状态产生影响;第2阶段(反向传播过程),若在输出层未能得到期望的输出值,则逐层递归计算实际输出与期望输出之间的差值,根据此误差修正前层权值使误差信号趋向最小。它通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差变化而逐渐逼近目标。每次权值和误差的变化都与网络误差的影响成正比。 图1 三层BP神经网络假设输入层、中间层、输出层的单元数分别是N、L和M。是加到网络的输入矢量,是中间层输出矢量,是网络的实际输出矢量,并且用来表示训练组中各模式的目标输出矢量。输出单元i到隐单元j的权值是,而隐单元j到输出单元k的权值是。另外用和来分别表示输出单元和隐单元的阈值。 传递函数是反映下层输入对上层节点刺激脉冲强度的函数又称刺激函数,一般取为(0,1)内连续取值Sigmoid函数,即: - 误差函数为: 中间层和输出层各单元的输出为: , BP算法采用梯度下降法调整权值: +式中,j为本结点的序号,i则是隐含层或输入层结点的序号。是结点i的输出或者是外部输入;式中 称为学习速率,为误差项。 4.2.2构建BP神经网络步骤 第1步,用均匀分布随机数将权值和阈值初始化。 第2步,对样本数据进行训练: 1 加载输入向量x和目标向量D; 2 计算隐含层和输出层的实际输出H和Y; 3 计算输出层的误差; 4 计算隐含层单元误差; 5 对权值和阈值进行修改,将误差信号沿原来的连续返回,通过修改各层神经元的权值,逐次地向输入层传播去进行计算。再经过正向传播过程,这两个过程反复进行使得误差信号最小;第3步,输入信息向量X,经仿真计算预测输出向量Y。具体的流程图如下图2。图2 BP网络流程图4.3 人脸朝向识别的BP网络的设计: 在进行BP网络的设计时,一般应从输入向量与输出目标向量,网络的层数、每层中的神经元个数,激活函数、初始值以及学习速率等几个方面来综合进行考虑。4.3.1输入向量与输出目标向量设计 神经网络输入的确定实际上就是特征量的提取,在本文中我们采用基于边缘检测Sobel算子的人脸特征向量提取。该BP网络的输入为图像, 输入单元可取为图像的像素。将每张图像转换成8个排列的像素值,在输入神经网络之前应该首先进行归一化处理。这样一来,网络的输入就是一个8维的向量。在本文中,我们用30幅图(从所给的1_1-6_5)像建库,一共5个方向,每个方向包括6幅人脸图像,将每幅图片分割成6行8列,求得特征值作为训练神经网络的输入数据。各个朝向对应的代码如下表一所示:表一、人脸朝向对于代码朝向左左前前右前右代码1001100100110014.3.2网络的层数:理论上已经证明:具有偏差和至少一个S型隐含层加上一个线性输出层的网络,能够逼近任何有理函数。这实际上已经给了我们一个基本的设计BP网络的原则。增加层数主要可以更进一步的降低误差,提高精度,但同时也使网络复杂化,从而增加了网络权值的训练时间。而误差精度的提高实际上也可以通过增加隐含层中的神经元数目来获得,其训练效果也比增加层数更容易观察和调整。所以一般情况下,应优先考虑增加隐含层中的神经元数。在本中,我们采用典型的3层BP网络,通过调整隐含层的神经元个数达到了预期的精度。4.3.3隐含层的神经元数网络训练精度的提高,可以通过采用一个隐含层,而增加其神经元数的方法来获得。这在结构实现上,要比增加更多的隐含层要简单得多。那么究竞选取多少个隐合层节点才合适?这在理论上并没有一个明确的规定。在具体设计时,一般可以利用下面两个经验公式之一来确定。 或者 其中,m、n分别为输入节点数目与输出节点数目;a为1-10之间的常数。隐层节点数可以根据上面两个公式得到一个初始值,然后利用逐步增长或逐步修剪法最终确定神经元的个数。逐步增长是从一个较简单的网络开始,若训练结果不符合要求,则逐步增加隐含层神经元的个数直到合适为止。逐步修剪则从一个较复杂的网络开始逐步删除隐含层神经元。在本文中,我们用逐步增长的方法,最终确定了隐含层的神经元个数为17个。4.3.4初始权值的选取由于系统是非线性的,初始值对于学习是否达到局部最小、是否能够收敛以及训练时间的长短的关系很大。如果初始权值太大,使得加权后的输入和n落在了S型激活函数的饱和区,从而导致其导数非常小,而在计算权值修正公式中,因为,当0时,则有0。这使得,从而使得调节过程几乎停顿下来。 所以,一般总是希望经过初始加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在它们的S型激活函数变化最大之处进行调节。所以,一般取初始权值在(1,1)之间的随机数。4.3.5学习速率学习速率决定每一次循环训练中所产生的权值变化量。大的学习速率可能导致系统的不稳定;但小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值。所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。学习速率的选取范围在0010.1之间。和初始权值的选取过程一样,在一个神经网络的设计过程中。网络要经过几个不同的学习速率的训练,通过观察每一次训练后的误差平方和的下降速率来判断所选定的学习速率是否合适。对于本文中,我们选取学习速率为0.01,尽管延长了程序运行时间,但可保证系统的稳定性,如下图3所示。 图3 学习效率变化曲线4.3.6期望误差的选取:在设计网络的训练过程中,期望误差值也应当通过对比训练后确定一个合适的值,这个所谓的“合适”,是相对于所需要的隐含层的节点数来确定,因为较小的期望误差值是要靠增加隐含层的节点,以及训练时间来获得的。一般情况下,作为对比,可以同时对两个不同期望误差值的网络进行训练,最后通过综合因素的考虑来确定采用其中一个网络。在本文中,我们选择期望误差值为0.001。4.4 网络结构模型的建立 由前面的分析,我们创建一个3层的神经网络:输入层8个神经元,输出层3个神经元,中间层17个神经元。其结构如图4:图4 BP模型图4.5 神经网络的创建和训练在本文中,我们用30幅图像(从所给的1_1-6_5)建库,一共5个方向,每个方向包括6幅人脸图像,将每幅图片分割成6行8列,求得特征值作为训练神经网络的输入数据。由以上的分析,采用MATlAB软件,创建BP神经网络。创建网络的参数如下表二:表二、网络参数表隐含层的激励函数输出层的激励函数训练函数性能函数tansiglogsigtraingdmmse训练参数如下表三:表三、训练参数表训练次数训练目标学习效率显示频率动量常数600000.0010.01500.8 通过运行程序,其训练误差曲线如下图5,从图可以看出:网络训练所得的误差很小,到达目标值。图5 网络训练结果4.6仿真结果 对20幅图像(7_110_5),提取其特征值,然后使用训练好的BP网络进行仿真,判断其人脸方向。下面为输入的20幅测试图像的朝向:表四、测试图像的朝向图像名称7_17_27_37_47_5图像代码100110010011001图像名称8_18_28_38_48_5图像代码100110010011001图像名称9_19_29_39_49_5图像代码100110010011001图像名称10_110_210_310_410_5图像代码100110010011001利用上面训练好的网络,对每一幅图像仿真,得到如下的输出结果表五、仿真结果图像名称7_17_27_37_47_5仿真结果100110010011001图像名称8_18_28_38_48_5仿真结果100110010011001图像名称9_19_29_39_49_5仿真结果100110010011001图像名称10_110_210_310_410_5仿真结果100110010011001由上面的两个表对比可知,用训练好的BP网络可以很好的识别人脸朝向,准确率可达100%。4.7 限制与不足:虽然反向传播法得到广泛的应用,但它也存在自身的限制与不足,其主要表现在它的训练过程的不确定性。具体说明如下:(1)需要较长的训练时间对于一些复杂的问题,BP算法可能要进行几小时甚至更长的时间的训练。这主要是由于学习速率太小所造成的。可采用变化的学习速率或自适应的学习速率来加以改进。(2)完全不能训练这主要表现在网络出现的麻痹现象上。在网络的训练过程中:当其权值调得过大,可能使得所有的或大部分神经元的加权总和n偏大,这使得激活函数的输入工作在S型转移函数的饱和区,从而导致其导数非常小,从而使得对网络权值的调节过程几乎停顿下来。通常为了避免这种现象的发生,一是选取较小的初始权值,二是采用较小的学习速率,但这又增加了训练时间。(3)局部极小值BP算法可以使网络权值收敛到一个解,但它并不能保证所求为误差超平面的全局最小解,很可能是一个局部极小解。这是因为BP算法采用的是梯度下降法,训练是从某一起始点沿误差函数的斜面逐渐达到误差的最小值。对于复杂的网络,其误差函数为多维空间的曲面,就像一个碗,其碗底是最小值点。但是这个碗的表面是凹凸不平的,因而在对其训练过程中,可能陷入某一小谷区,而这一小谷区产生的是一个局部极小值。由此点向各方向变化均使误差增加,以致于使训练无法逃出这一局部极小值。 如果对训练结果不满意的话,通常可采用多层网络和较多的神经元,有可能得到更好的结果。然而,增加神经元和层数,同时增加了网络的复杂性以及训练的时间。在一定的情况下可能是不明智的。基于以上的考虑,本文下面用一种适用于有监督情况的学习方法,称为学习向量量子化(Learning VectorQuantization),称为LVQ神经网络. 与BP神经网络相比,LVQ神经网络无需对数据进行预处理,只需要直接计算输入向量与竞争曾之间的距离, 这可以大大的提高网络的性能,增加了模型的可行性。五、基于LVQ神经网络的人脸朝向识别模型 神经网络的特性主要由其结构和学习算法决定。神经网络的结构定义了神经网络的层数、每层神经元数以及神经元之间的连接方式,神经网络的学习算法定义了神经网络如何通过样本进行学习。图6 LVQ神经网络模型5. 1 LVQ网络模型 LVQ 网络模型如图6所示。一个LVQ是设计的一种有导师学习网络,由3层神经元组成,即输入层、竞争层和线性输出层. 该网络在输入层与竞争层之间为完全连接, 而在竞争层与线性输出层之间为部分连接, 每个输出神经元与竞争神经元的不同组相连接. 竞争层和线性输出神经元之间的连接权值固定为l. 输入层和竞争神经元问的连接权值建立为参考矢量的分量(对每个竞争神经元指定一个参考矢量) . 在网络训练过程中,这些权值被修改. 竞争神经元和线性输出神经元都具有二进制输出值. 当某个输入模式被送至网络时,参考矢量最接近输入模式的竞争神经元因获得激发而赢得竞争,因而允许它产生一个“1”. 其他竞争神经元都被迫产生“0”. 与包括获胜神经元的竞争神经元组相连接的输出神经元也发出“1”,而其他输出神经元均发出“0”. 产生“1”的输出神经元给出输入模式的类,每个输出神经元被表示为不同的类.5. 2 LVQ 网络学习规则 假定网络输入层的输入向量为。其中,M 为输入神经元的数目; 输入层和竞争层之间的连接权值矩阵为,。中,表示竞争层第i 个神经元和输入层第j 个神经元间的连接权值, P为竞争神经元的数目,竞争层的输出向量为,竞争层与输出层神经元间的连接权值矩阵为,其中。中,表示输出层第k 个神经元与竞争层第r 个神经元之间的连接权值, N 为输出层神经元的数目. 竞争层的每个神经元通过学习原型向量, 并对输入空间进行分类. 将竞争层学习得到的类称为子类,将输出层学习得到的类称为目标类。 LVQ 网络的学习结合了竞争学习和有监督学习的规则,因此它需要一组正确网络行为的例子来训练网络: 其中,每个目标输出向量有且只有一个分量为1 ,其他分量全部为0. 为了使学习过程可以进行下去, 通常把竞争层的每个神经元指定给一个输出神经元, 这样就可以定义矩阵 . 的列表示子类, 行表示类. 的每一列仅有一个1出现的行,表明这个子类属于该行表示的类,即 一旦定义好就不再改变, 神经网络的学习就是通过改进了的Kohonen 规则使改变进行的。LVQ 学习算法如下所示。(1)设置变量和参量为输入矢量,或称训练样本;为权系数向量,。 选择学习效率的函数为单调递减函数,且有,n为迭代次数,N为总的迭代次数。(2)初始化权系数向量及学习速率。(3)从训练集合中选取输入向量X。(4)寻找获胜神经元c: (5)判断分类是否正确,根据以下规则调整获胜神经元的权系数: 用代表与获胜神经元权系数向量相联系的类,用于代表与输入向量相联系的类。 如果,则 否则,当时,有 对于其他神经元,保持权系数向量不变,即 (6)调整学习速率 (7)判断迭代次数n是否超过N,如果就返回第3步去执行,否则迭代过程结束。其中,学习速率是单调递减的,并且有。5.3 人脸朝向的LVQ模型 基于以上LVQ网络的算法,参照BP网络模型的建立,我们建立了人脸朝向的LVQ模型。5.3.1输入向量与输出目标向量设计 同模型一相似,首先采用基于边缘检测Sobel算子的人脸特征向量提取,我们同样用30幅图像(从所给的1_16_5)建库,一共5个方向,每个方向包括6幅人脸图像,将每幅图片分割成6行8列,求得特征值作为训练神经网络的输入数据。为了便于和BP网络区别,我们重新定义各个朝向对应的代码。如下表所示:表六、人脸朝向代码朝向左左前前右前右代码123455.3.2 LVQ网络的创建首先创建一个两层网络。网络有8个输入节点,3个输出神经元。中间层节点数目的选择是一个复杂的问题。数目过少,网络将不能建立复杂的判断界,网络不能训练出来,容错性差;数目过多,会使学习时间过长。对于LVQ 网络,竞争获胜的神经元表示的是一个子类而非一个类,一个类可能由几个不同的神经元(子类)组成。经过多次尝试,我们设定中间层的神经元个数为20。对连接权值初始化。在初始状态下,所有神经元都拥有相同的权值,即这些向量的中间值。学习速率反映了学习过程中连接权调整量的大小,初值设为0.1。最后是期望误差的选取。在设计网络的训练过程中,期望误差值应当通过对比训练后确定一个合适的值,较小的期望误差值要靠增加隐含层的节点以及训练时间来获得。本文期望误差取值为0.001。5.3.3网络训练我们用所给的从所给1_16_5的30幅图像作为训练神经网络的输入图像。网络的训练参数如下表给出:表七、LVQ训练参数训练次数训练目标学习效率1000.0010.015.3.4网络测试 对20幅图像(7_1-10_5),提取其特征值,然后使用训练好的BP网络进行测试,判断其人脸方向。下面为输入的20幅测试图像的朝向:表八、测试图像图像名称7_17_27_37_47_5图像代码12345图像名称8_18_28_38_48_5图像代码12345图像名称9_19_29_39_49_5图像代码12345图像名称10_110_210_310_410_5图像代码12345把训练好的LVQ神经网络,用于对测试的每一幅图像仿真,得到如下的输出结果。表九 图像仿真结果图像名称7_17_27_37_47_5测试结果12345图像名称8_18_28_38_48_5测试结果12345图像名称9_19_29_39_49_5测试结果12345图像名称10_110_210_310_410_5测试结果12345由上面的两个表对比可知,用训练好的LVQ网络同样可以很好的识别人脸朝向,准确率可达100%。6、 结果分析与模型改进6.1 结果分析 对于模型一,主要利用BP 神经网络的理论知识研究人脸识别技术, 对图像中人脸朝向判别进行建模。在此过程中,采用M atlab工具箱进行BP网络设计实现对人脸角度方向的判别。根据测试结果可知,BP神经网络可以根据输入图像的二值化信息, 以一定的准确率, 判别该图像的人脸朝向。可见, BP网络有着良好的非线性映射能力, 在人脸识别和图像处理方面具有一定的优势。但程序运行的时间开销很大。对于模型二,LVQ 算法是在有教师状态下对竞争层进行训练的一种学习算法。LVQ 网络结构简单,但却表现出比BP 网络更强的有效性和鲁棒性。测试结果表明该方法对朝向变化的人脸具有良好的分类性能和识别效率。我们建立的两个模型的识别率都可以到达100%,但LVQ网络模型能够发挥竞争学习和有监督学习二者的优点,有效地提高了识别率,而且实现简单、速度快。因此,我们认为模型二相比之下,要更好一点。6.2 模型改进6.2.1图像特征的提取 在本文中,我们采用的是基于边缘检测Sobel算子的人脸特征向量提取,简单地将图像分割的像素值作为输入。事实上,还有更多的提取方法。在建模时刻采用下面的两种比较好的特征提取方法。(1)主元分析法 主成分分析( Principal Component Analysis,PCA) 法的基础是Karhunen-Loeve 变换( 简称K-L 变换) 一种常用的正交变换 PCA可将高维度的资料( 如人脸图像) 进行压缩,它是最小均方误差下的最优维数据压缩技术,而且PCA 法所提取特征之间是互不相关的。设人脸图像样本的总数为N,每个人脸图像样本的大小为m n,因此,所有样本可以用一个M N( M = m n) 的矩阵来表示 。其中,每个列向量代表一个人脸样本 给出PCA 的算法步骤如下:1 构造所有训练样本的协方差矩阵 其中: 为平均人脸,即所有训练样本的均值;为所有样本与平均脸的差构成的矩阵。2 计算矩阵的特征向量和特征值,则C 的特征向量为,特征值仍为。3 计算得到的C 的所有特征向量是按特征值从大到小排列的正规化特征向量。若要求PCA 变换后的数据降为k 维,则选取特征值最大的k 个特征向量构造特征空间。4 所有的样本在基底U 上的投影为 基于K-L 变换的PCA 方法在最小均方误差下能够得到最好的信息压缩。(2)Fisher线性鉴别(FLD)在图像识别中,由于Fisher 线性鉴别分析具有极佳的分类能力,当图像投影到Fisher 特征空间时,同类样本聚集在一起,而不同类样本会被分开,即类间距离与类内距离的比值最大化,因此它能得到比PCA 更好的识别效果。FLD 方法中使用了2 个散布矩阵的定义。设样本中包含c 个人的人脸样本,即共有c 类,则:1)类内散布矩阵 其中:是第i 类样本的均值,显然,代表同一类样本相聚的程度 2)类间散布矩阵 其中:是第i 类样本的均值, 是所有样本的均值,Ni是第i 类样本的数目 FLD 的目的是找到使Sb /Sw最大化的投影Wopt, 上式可以看成以下特征值问题: 即和分别为矩阵的特征值和特征向量,该矩阵最多只有c 1 个非零特征值 如果希望映射到FLD 空间的特征向量的维数为r,则同样选择最大的r 个特征值对应的特征向量作为FLD 空间的基底,即 所有样本在FLD 空间上的投影为 6.2.2 神经网络的改进人工神经网络的性能主要由以下几个方面决定:人工神经网络的拓扑结构、人工神经元的激励函数、人工神经网络的学习规则以及训练样本的品质。因此,对于人脸的朝向识别,一方面,完全可以通过调整相关的参数设置,来达到更好的识别结果;另一方面可以改变网络的拓扑结构,构建新的神经网络模型。如:1 RBF神经网络 RBF 神经网络的结构,和3 层感知器结构类似,它是一个包含3 个层的前馈型结构:输入层、隐层、输出层,但是,RBF 神经网络的隐层模型和功能和多层感知器有着很大的不同。RBF神经网络在解决小样本训练集问题、非线性可分问题等复杂的模式分类问题上有着很好的性能。由于高斯函数具有形式简单、解析性好、任意阶可导的优点。 而且高斯函数对输入信号产生局部响应,输入信号越靠近某个隐层中心,该隐层单元的输出越大。因此,可采用高斯函数作为基函数。隐层的初始化方法有自组织映射、K-均值算法、正向最小二乘法等,可选择适当的一种方法。 RBF 神经网络的隐层节点的参数调整是一个非线性过程,输出层连接权的调整则是一个线性的过程。鉴于这两个学习过程的差异,可采用一种混合学习算法( Hybrid Learning Algorithm,HLA) 对RBF 神经网络进行训练采用线性最小二乘法,调整输出层的连接权。采用梯度下降法,调整隐层神经元的中心和高斯宽度。2 BP-LVQ组合神经网络 目前所实现的BP 神经网络分类器普遍存在训练时间过长、识别分类效率不高的问题。基于MATLAB 神经网络工具箱, 可以采用一种树形多层组合分类器模型。综合考虑BP 神经网络的独立性以及各种识别分类系统的样本信息的数据类型等因素,利用RP训练算法取代传统的LM 训练算法, 在不牺牲BP 神经网络分类性能的基础上有效地缩短训练时间;结合LVQ神经网络分类组合器, 给出各子分类器的可信度, 并根据实际输出与期望输出的偏差, 及时调整对应的BP 子分类器。BP- LVQ 两层组合分类器在整个样本训练过程中表现了快速、自适应和易调整等特点, 能有效地提高分类效率。参考文献:1史王,小川,郁磊,李洋.MATLAB神经网络30个案例分析.北京:北京航空航天大学出版社,20102张彤,卢雯雯,肖南峰.基于BP网络的人脸朝向识别方法.重庆理工大学学报(自然科学),24(6):61-65,20103邵虹,徐全生,崔文成.基于BP神经网络的人脸图像识别方法的研究.沈阳工业大学学报,22(4):346-348,20004李学俊.基于Sobel算子的人脸分割算法.微计算机应用,23(6):321-325,20025杨治明,王晓蓉,彭军,陈应祖.BP人工神经网络在图像分割中的应用.计算机科学,34(3):234-236,20076陈蕾,黄贤武,孙 兵.基于WT和LVQ网络的多姿态人脸识别.计算机工程,32(21):47-49,20067吴畏,肖南峰.基于RBF神经网络的人脸识别研究.南京信息工程大学学报(自然科学版),2(4):307-313,20108钟淑瑛, 李陶深.基于MATLAB的BP_LVQ神经网络组合分类模型.计算机技术与发展,16(2):114-116,2006附录:1、 计算过程中的MATLAB程序程序编号2011-1文件名称tztq.m说明图像特征提取函数% 特征提取子函数function pixel_value = tztq(m,n)pixel_value = zeros(50,8);sample_number = 0;for i = 1:m for j = 1:n str = strcat(Images,num2str(i),_,num2str(j),.bmp); %读取图像,连接字符串形成图像的文件名 img = imread(str); rows cols = size(img);%获得图像的行和列值 img_edge = edge(img,Sobel); %由于在分割图片中我们可以看到这个人脸的眼睛部分也就是位于分割后的第二行中,位置变化比较大,而且眼睛边缘检测效果很好 sub_rows = floor(rows/6);%最接近的最小整数,分成6行 sub_cols = floor(cols/8);%最接近的最小整数,分成8列 sample_number = sample_number + 1;%记录图片个数 for subblock_i = 1:8 for ii = sub_rows+1:2*sub_rows for jj = (subblock_i-1)*sub_cols+1:subblock_i*sub_cols pixel_value(sample_number,subblock_i) = . pixel_value(sample_number,subblock_i)+ img_edge(ii,jj); end end end endend程序编号2011-2文件名称bp.m说明BP神经网络模型% 清除环境变量clear allclc% 人脸特征向量提取 M = 10;% 人数N = 5; % 人脸朝向类别数pixel_value = tztq(M,N);% 特征向量提取% 训练集/测试集产生P_label = 1:50;% 产生图像序号的序列direction_label = 1 0 0;1 1 0;0 1 0;0 1 1;0 0 1;% 人脸朝向标号% 训练集train_label = P_label(1:30);P_train = pixel_value(train_label,:);%输入dtrain_label = train_label - floor(train_label/N)*N;dtrai

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论