版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.-----总结资料人脸朝向识别摘要人脸朝向识别是人脸应用研究中重要的一步,在众多研究领域中,人脸朝向识别是一个无法回避的问题。本文利用BP神经网络的理论知识来研究人脸识别技术,对图像中的人脸朝向判别建立数学模型,建立了基于BP网络的人脸朝向识别方法。首先运用主成分分析法提取40幅图像像素的灰度值,经过一定的处理,转换为含7个元素的特征向量组成BP神经网络的输入向量,并对输入向量进展归一化处理,使取值在[-1,1]之间,加快网络的训练速度。设置一个输出端,输出值(0,1,2,3,4)对应5个人脸朝向:右方、右前方、前方、左前方、左方。通过设置不同的中间层神经元个数并修改相应的网络参数得到:当BP神经网络的输入层神经元个数为40个,输出层神经元个数为1个,隐含层的神经元个数为10个时,收敛速度较快。其中隐含层神经元的传递函数采用型正切函数,输出层神经元传递函数采用纯线性函数,采用训练函数,得到的样本为40时的训练误差曲线较为理想,仿真输出与目标输出较吻合,准确率可达82.5%。说明基于BP神经网络对人脸识别具有一定的准确率。最后,利用已建立的模型对9号和10号两组图像共计十张进展判断,正确率高达100%。从以上的实验中可以看出,BP网络有着良好的非线性映射能力,在人脸识别和图像处理方面具有一定的优势。本文大量的数据计算通过软件实现。关键词:图像像素处理;主成分分析法;特征向量;BP神经网络;工具箱;人脸朝向识别一.问题重述人脸朝向识别是人脸应用研究中重要的一步,在众多研究领域中,人脸朝向识别是一个无法回避的问题。现有10个人的人脸照片,每人5幅共计50张。每个人5张照片的人脸朝向分别为:右方、右前方、前方、左前方和左方。我们需要利用现有图像,建立人脸朝向识别数学模型,实现人脸朝向识别功能。二.问题分析每张图片由一定的像素确定,每张不同图片互相区分则需要对这些像素进展观察找出其区别于其他图片的典型特征。我们知道一张图像的像素维数十分庞大,如何实现降维处理并找出其特征点是一个关键。我们采用了PCA〔主成分分析法〕降维处理并提取了特征值。取40张图片作为训练样本,把40张图片的特征向量组成一矩阵并归一化处理得到了待训练的特征向量矩阵,这能够减小运算量和加快运算速度。为了实现对图像的识别,则需要通过对样本的处理来实现对每个方向进展分类,BP神经网络能够很好的解决这一问题。输入训练样本后,不断地修改网络参数,即是不断调整权值,阈值使实际输出与目标输出的误差逐渐减小以至趋于零。这样在一定的误差允许范围内可以得到一个比拟准确的分类结果。然后再选择新的图片按照一样的方法提取特征向量去检验系统的准确率。三.根本假设1.假设每张图片各点的灰度值是都小于256的;2.假设每张图片清晰可见,无污迹;3.假设每张图片的人脸方向均是标准的,偏差十分小。4.假设照片中人物的肤色一样;5.假设照片拍摄过程中,人物所受光照强度一样;6.假设照片拍摄时刻,人物没有过于明显的表情;四.符号说明1.:相关系数矩阵;2.:相关系数矩阵的特征值;3.特征值对应的特征向量;4.像素矩阵的第行第列的灰度值;5.:各主成分载荷;6.:参加到网络的输入矢量;7.表示中间层输出矢量;8.表示网络的实际输出矢量;9.表示训练组中各模式的目标输出矢量;10.:表示输出单元到隐单元的权值;用和11.表示隐单元到输出单元的权值;12.表示输出单元的阈值;13.表示隐单元的阈值;14.测试样本的特征向量;15.测试样本的目标向量;16.BP神经网络仿真结果的输出;四.模型的建立及求解4.1基于PCA的像素矩阵的降维处理4.1.1灰度特征向量的选取思路通过统计工具箱的函数读取图片,构成一个420420的像素矩阵〔见附录1〕,显然该矩阵维数太高。在BP神经网络的输入层中,我们不可能把一张图片的全部像素点作为输入向量输进去,因为其数据量非常庞大,会明显减缓训练过程。如果像素更大的话计算会更加困难,所以通常在使用图像像素信息时都会进展降维处理。我们按照下面的方法先降一定的维数:把420420的像素矩阵依次按相邻10行,相邻10列的顺序分别求均值得到一个4242像素图像的低分辨率矩阵〔附录2〕,这样就可以大大降低维数过大给计算机运行带来的压力,然后再进展主成分分析。主成分分析〔PCA〕是一种经典的降维方法。它的主要思想是采用组合特征的方法来表达原数据,是一个很好的数据压缩和表达工具。这一方法的目的是寻找在最小均方意义下最能够代表原数据的投影方法;它能最大程度保持能量情况下进展数据的压缩。PCA是数据相关的,也就是说能对n维数据集,找到对这一数据集最适合的一组基,使得在该组基下数据的*些系数尽可能小,也就是说将数据的大局部能量集中到少数的基上,就可以用少量的系数和其对应的基向量来恢复原向量,实现了降维。4.1.2基于PCA的图像灰度特征向量的选取用主成分分析法实现降维的具体步骤如下:(编程见附录4)1〕计算相关系数矩阵.为原变量与的相关系数,,其计算公式为:我们把得到的420420像素矩阵先取均值初步降维得到4242的矩阵。然后把每幅图的相关系数矩阵列堆积成一列,再把40幅图合并得到了总的矩阵〔附录3〕。2〕计算特征值与特征向量:解特征方程,使用函数求出特征值,及对应的特征向量。求得前面39个有效特征值,即由大到小排列且均大于零。Columns1through1877.886653.276326.376417.38347.80436.50795.80263.94022.64032.56531.81721.61911.50341.16911.01070.92250.81370.7674Columns19through360.69820.50190.46270.44030.39000.34280.29120.24010.20980.19960.17910.15720.14010.11260.09480.07290.06360.0487Columns37through390.04470.03290.0067记原变量指标为,设它们降维处理后的综合指标,即新变量为,则新变量指标分别称为原变量指标的第1,第2,…第主成分。其实质就是确定原来变量在诸主成分上的荷载3〕计算主成分奉献率及累计奉献率奉献率:累计奉献率:4〕计算主成分载荷:一般取累计奉献率达85%-95%的特征值即到达要求,经求得前7个特征值已经到达90%,认为到达要求,如图1:图1:主成分奉献率及累计奉献率图综上所述:我们选取了每幅图像的7个主成分或者说是特征点组成特征向量,40副图像最终构成407的矩阵作为后续BP神经网络的输入矢量。4.2BP神经网络的人脸识别4.2.1BP网络理论BP网络是一种单向传播的多层前向网络,是一种具有3层或3层以上的神经网络,包括输入层、中间层(隐层)和输出层。3层的BP网络的根本构造如图2所示。权重权重输入层隐含层输出层图2:3层BP网络的根本构造BP算法的根本思想是:学习过程由信号的正向传播与反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。假设输出层的实际输出与期望输出〔教师信号〕不符合时,则转入误差的反向传播阶段。误差反传是将输出误差以*种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有元,从而获得各层单元的误差信号,此信号作为修正各单元权值得依据,最终使误差信号趋向最小。它通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差变化而逐渐逼近目标。每次权值和误差的变化都与网络误差的影响成正比。输入和目标向量的设计神经网络输入确实定实际上就是特征量的提取。该BP网络的输入为图像,输入单位可取为图像的像素。由前面的分析我们得到了40幅图合并成的矩阵,我们利用函数将其进展归一化〔附录6〕,于是输入向量就是一个的向量矩阵。对于输出模型,由于人脸图像包括5种朝向:右方、右前方、前方、左前方、左方,因此我们规定为对应输出0,1,2,3,4,只有一个输出神经元。表1:代码与人脸方向的对应关系代码方向0右1右前2前3左前4左4.2.3BP网络的设计对于BP网络,当隐含层的神经元个数可以任意调整,单隐层的BP网络可以逼近任意的非线性映射,我们选取3层网络来解决。创立一个3层的神经网络:输入层7个神经元,中间层10个神经元,输出层1个神经元。其构造如图3:输入层隐含层输出层该图中:有7个输入神经元,10个隐层神经元,1个输出神经元。表示参加到网络的输入矢量;表示中间层输出矢量;表示网络的实际输出矢量;表示训练组中各模式的目标输出矢量;输出单元到隐单元的权值是,而隐单元到输出单元的权值是。用和来分别表示输出单元和隐单元的阈值。传递函数是反映下层输入对上层节点刺激脉冲强度的函数又称为刺激函数,常见的有:1〕——线性传递函数;2〕——双曲正切型〔〕传递函数;3〕——对数型〔〕传递函数。构建BP神经网络步骤本文创立一个两层的BP神经网络,采用和传递函数,以及训练函数,具体形式为:net=newff(minma*(P),[101],{'tansig''purelin'},'traingdm');1〕加载输入向量和目标向量2〕设置网络参数net.trainParam.show=50;net.trainParam.lr=0.05;net.trainParam.mc=0.9;net.trainParam.epochs=1000;net.trainParam.goal=1e-2;3〕调用traindm算法训练BP网络[net,tr]=train(net,P,T);4〕输出仿真结果:Y=sim(net,P)Y=Columns1through140.0138-0.0110-0.00850.01460.03320.1556-0.00880.06151.02291.01261.01491.01491.00570.9957Columns15through281.06940.98012.01452.00262.02251.99932.03051.71431.96302.24752.80573.00483.15712.9852Columns29through402.98602.71382.97333.25263.97584.00344.01974.01133.99874.01204.01254.0303期望输出是:T=[0000000011111111222222223333333344444444];其误差曲线图是〔plot(P,T,P,Y,'o')〕:图4:仿真结果误差图像样本为40时的训练误差曲线:图5:样本为40时的训练误差曲线网络测试接下来对训练好的网络进展测试,取提供剩下的10个图像作为网络的测试输入数据,测试样本图像如图4所示。根据前述方法提取特征值,记为,测试目标向量记为。9_110_19_210_29_310_39_410_49_510_5图6:待检验的图像样本很显然由图可得到待测序列的目标输出:T_test=[0011223344];编程序得到仿真输出:Y=[0.0257-0.04320.98871.02201.96991.99722.73382.98683.88033.9511];输出的Y及其误差和对应的人脸方向如表3所示:表3:Y和T_test的误差对照及朝向判断仿真结果Y人工近似估算结果理想输出T_test绝对误差相对误差对应图像人脸朝向0.0257000.0257Inf%9_1右-0.0432000.0432Inf%10_1右0.9887110.01131.13%9_2右前1.0220110.02202.20%10_2右前1.9699220.03011.51%9_3前1.9972220.00280.14%10_3前2.7338330.26628.87%9_4左前2.9868330.01320.44%10_4左前3.8803440.11972.99%9_5左3.9511440.04891.22%10_5左由于输出的Y与T_test的相对误差很小,根据四舍六入五凑偶的人工近似估算原则,我们可以根据Y中元素的值推测理想输出的取值〔0,1,2,3,4〕,从而推测出对应的五种人脸朝向,在误差允许范围内可以认为此次测验正确率为100%。理想输出与实际输出的误差曲线图:图7:测验的仿真结果误差图像五.模型的评价5.1优点1.为了描述图片区别于其他图片的特征,用主成分分析法抽象提取图片特征值的模型很好的解决了这一问题,并且模型简单易懂;2.基于BP神经网络对人脸的识别准确率很高,在误差允许的范围内能够识别标准的方向,并且实际情况也是存在误差的,我们不可能方向站得很准。六.模型的改良和推广6.1模型的改良1.在主成分分析中,在要求的主成分累计奉献率达85%-95%的特征值即到达要求,所以我们只选取了前面7个特征向量,但是在后面的BP算法中我们发现输入向量矩阵不是很好,即是主成分的选取多少最合理是一个亟需解决的问题,我们猜测再多项选择两个值应该能够较好的解决。6.2模型的推广1.本文运用主成分分析法来提取图像的特征值,运用这一原理,还可将该方法用于如选取水资源短缺风险的风险因子确实定,影响学生成绩主要因素等等。2.基于BP神经网络的分类有很好的应用前景,比方蠓虫的分类,DNA序列的分类等等。七.参考文献[1]涨潮,冯国灿,基于局部特征的人脸姿势估计,**大学,2005,31/54[2]大学生数学建模课件,主成分分析法[3]张彤,卢雯雯,肖南峰,基于BP网络的人脸朝向识别方法,**理工大学学报〔自然科学〕,2010年6月:第24卷第6期[4]百度文库,BP_神经网络对人脸角度的分析程序wenku.baidu./view/f49178acdd3383c4bb4cd2f3.html八.附录附录1.读取图像的灰度值程序(每个方向取8张)formatshorta1=imread('1_1.bmp','bmp');b1=low(a1);a1=imread('2_1.bmp','bmp');b2=low(a1);a1=imread('3_1.bmp','bmp');b3=low(a1);a1=imread('4_1.bmp','bmp');b4=low(a1);a1=imread('5_1.bmp','bmp');b5=low(a1);a1=imread('6_1.bmp','bmp');b6=low(a1);a1=imread('7_1.bmp','bmp');b7=low(a1);a1=imread('8_1.bmp','bmp');b8=low(a1);c1=[b1;b2;b3;b4;b5;b6;b7;b8]%读取左方图片的灰度值并合并成一矩阵a1=imread('1_2.bmp','bmp');b1=low(a1);a1=imread('2_2.bmp','bmp');b2=low(a1);a1=imread('3_2.bmp','bmp');b3=low(a1);a1=imread('4_2.bmp','bmp');b4=low(a1);a1=imread('5_2.bmp','bmp');b5=low(a1);a1=imread('6_2.bmp','bmp');b6=low(a1);a1=imread('7_2.bmp','bmp');b7=low(a1);a1=imread('8_2.bmp','bmp');b8=low(a1);c2=[b1;b2;b3;b4;b5;b6;b7;b8]%读取左前方图片的灰度值并合并成一矩阵a1=imread('1_3.bmp','bmp');b1=low(a1);a1=imread('2_3.bmp','bmp');b2=low(a1);a1=imread('3_3.bmp','bmp');b3=low(a1);a1=imread('4_3.bmp','bmp');b4=low(a1);a1=imread('5_3.bmp','bmp');b5=low(a1);a1=imread('6_3.bmp','bmp');b6=low(a1);a1=imread('7_3.bmp','bmp');b7=low(a1);a1=imread('8_3.bmp','bmp');b8=low(a1);c3=[b1;b2;b3;b4;b5;b6;b7;b8]%读取前方图片的灰度值并合并成一矩阵a1=imread('1_4.bmp','bmp');b1=low(a1);a1=imread('2_4.bmp','bmp');b2=low(a1);a1=imread('3_4.bmp','bmp');b3=low(a1);a1=imread('4_4.bmp','bmp');b4=low(a1);a1=imread('5_4.bmp','bmp');b5=low(a1);a1=imread('6_4.bmp','bmp');b6=low(a1);a1=imread('7_4.bmp','bmp');b7=low(a1);a1=imread('8_4.bmp','bmp');b8=low(a1);c4=[b1;b2;b3;b4;b5;b6;b7;b8]%读取右前方图片的灰度值并合并成一矩阵a1=imread('1_5.bmp','bmp');b1=low(a1);a1=imread('2_5.bmp','bmp');b2=low(a1);a1=imread('3_5.bmp','bmp');b3=low(a1);a1=imread('4_5.bmp','bmp');b4=low(a1);a1=imread('5_5.bmp','bmp');b5=low(a1);a1=imread('6_5.bmp','bmp');b6=low(a1);a1=imread('7_5.bmp','bmp');b7=low(a1);a1=imread('8_5.bmp','bmp');b8=low(a1);c5=[b1;b2;b3;b4;b5;b6;b7;b8]%读取右方图片的灰度值并合并成一矩阵y=[c1;c2;c3;c4;c5]; %将40张图片的灰度值构成一矩阵附录2:初步降维的灰度矩阵程序functiony=low(a)m=[];k=[];n=[];y=[];%预先分配类型为doublek(1:176400)=a;fori=1:420*1=k((i-1)*420+1:i*420);m=[m;*1];end%将行向量变为方阵fori=1:42%每隔10列求和一次*2=sum(m((i-1)*10+1:i*10,:));%对矩阵中每一列求和n=[n;*2];endn=n';%求其转置矩阵fori=1:42%每隔10行求和一次*3=sum(n((i-1)*10+1:i*10,:));y=[y;*3];endy=y';%恢复原矩阵形式y=y/100;y=y(:);y=y';%变为行向量end附录3:局部相关系数矩阵附录4:用主成分分析求特征向量的程序function[out1out2out3out4]=pca(*,n)%out1相关系数矩阵特征值,out3各主成分,out4共享率*数据矩阵n前n个主成分m=size(*);%求取其行数m(1)和列数m(2)a=sum(*)/m(1);fori=1:m(1);forj=i:m(2);R(i,j)=sum((*(:,i)-a(i)).*(*(:,j)-a(j)))./(sum((*(:,i)-a(i)).^2)*sum((*(:,j)-a(j)).^2)).^0.5;endendfori=1:m(2);forj=1:i-1;R(i,j)=R(j,i);endend[*,d]=eig(R);%求相关系数矩阵的特征值和对应的特征向量%用eig函数计算特征值由小到大排列out1=sort(d(d>0.00001),'descend');fori=1:m(2)out2(:,i)=*(:,m(2)+1-i);%相关系数矩阵的列向量相互交换,使得对应的特征向量易于取值endout3=zeros(m(1),n);fori=1:nforj=1:nout3(:,i)=out3(:,i)+out2(j,i)**(:,j);%由n值确定主成分endendb=out1./sum(out1);%每个成分的奉献率率out4=sum(b(1:n));%找出主成分的比重bar(b(1:n));holdon;fori=1:nout5(i)=sum(b(1:i));endplot(1:n,out5);legend('¸各成分奉献率','前n个成分累计共享率');附录5:检验头像的灰度值程序:formatshorta1=imread('9_1.bmp','bmp');%读取左方图片的灰度值b1=low(a1);a1=imread('10_1.bmp','bmp');b2=low(a1);c1=[b1;b2]a1=imread('9_2.bmp','bmp');%读取左前方图片的灰度值b1=low(a1);a1=imread('10_2.bmp','bmp');b2=low(a1);c2=[b1;b2]a1=imread('9_3.bmp','bmp');%读取前方图片的灰度值b1=low(a1);a1=imread('10_3.bmp','bmp');b2=low(a1);c3=[b1;b2]a1=imread('9_4.bmp','bmp');%读取右前方图片的灰度值b1=low(a1);a1=imread('10_4.bmp','bmp');b2=low(a1);c4=[b1;b2]a1=imread('9_5.bmp','bmp');%读取右方图片的灰度值b1=low(a1);a1=imread('10_5.bmp','bmp');b2=low(a1);c5=[b1;b2]%³¯ÏòΪÓÒ·½µÄÊý¾Ýy=[c1;c2;c3;c4;c5];附录6:归一化后的输入向量矩阵P=[0.70201.0000-0.45700.5141-1.00000.3296-0.02350.75481.0000-0.43520.5210-1.00000.5245-0.01990.69881.0000-0.34400.4882-1.00000.30660.14070.74561.0000-0.44840.5203-1.00000.4938-0.03240.74271.0000-0.50230.5387-1.00000.4813-0.10410.74651.0000-0.44340.5210-1.00000.4855-0.02440.72031.0000-0.51710.5346-1.00000.4044-0.12080.72621.0000-0.42790.5160-1.00000.42010.00350.68311.0000-0.10980.4512-1.00000.27530.45210.72891.0000-0.18660.4743-1.00000.44020.32630.73021.0000-0.17370.4724-1.00000.44770.34220.64261.0000-0.65960.5360-1.00000.0758-0.24270.69401.0000-0.21930.4618-1.00000.28700.31710.71861.0000-0.62100.5676-1.00000.4281-0.27330.72851.0000-0.30350.4951-1.00000.43840.16810.69581.0000-0.21100.4642-1.00000.30990.31790.72531.0000-0.17820.4687-1.00000.41960.34370.77271.0000-0.60170.5500-1.00000.5572-0.24490.76781.0000-0.48780.5292-1.00000.5407-0.08960.78921.0000-0.64130.5599-1.00000.6193-0.30670.74881.0000-0.43040.5191-1.00000.4856-0.00670.73711.0000-0.39470.5115-1.00000.45610.04450.79991.0000-0.72030.5881-1.00000.6845-0.42920.73601.0000-0.39720.5109-1.00000.44840.04330.75531.0000-0.49750.5325-1.00000.5062-0.10040.74961.0000-0.97880.6171-1.00000.4631-0.73980.76031.0000-0.56910.5469-1.00000.5254-0.20050.79791.0000-1.00000.6959-0.82390.6143-0.87010.77631.0000-0.63170.5607-1.00000.5706-0.29010.73861.0000-0.40250.5123-1.00000.45690.03530.76381.0000-0.67300.5676-1.00000.5415-0.34370.74461.0000-0.42520.5174-1.00000.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度年福建省高校教师资格证之高等教育法规练习题及答案
- 2024年三坐标测量机项目资金筹措计划书代可行性研究报告
- 应急救援-综合(党群)管理岗
- 计算机平面设计专业调研报告
- 2024年企业业绩对赌协议模板指南
- 沪教版初一上学期期末化学试卷及答案指导
- 2024年书法家作品授权协议
- 2024年房产及土地交易协议样式
- 2024年企业办公空间装潢协议样本
- 2024年度外籍专家劳动协议范本
- 镁合金行业发展分析及投资前景预测报告
- 室内维修方案
- 小学信息技术课堂与学科教学逆向融合管见 论文
- 军士生生涯规划
- 北师大版数学三年级上册全册分层作业设计含答案
- 认知障碍人员培训课件
- 中国艾滋病现状
- 国际业务基础知识培训
- 急诊科中的老年病急症救治
- 亚马逊账户安全培训内容
- 生活区消防安全培训课件
评论
0/150
提交评论