《人脸识别PCA算法matlab实现及详细步骤讲解.docx》由会员分享,可在线阅读,更多相关《人脸识别PCA算法matlab实现及详细步骤讲解.docx(15页珍藏版)》请在课桌文档上搜索。
1、人险切N%PCA人脸设剂修订版.识别率88%ca1.cXnieaibsignKiAndigeigendeconritiona1.1.sanp1.cs=:%全部训缥图像fori=!:40furj=1:5a=iwead(MrcaUe?OR1.snum2Mrti).,V.nun2irtj).*.jg,);%imshow(八);b=i(1.:112*92);%b是行矢景1.xN,其中N=Io304,提取依次是先列后行,即从上到下,从左到右b=:%邛均图片.IXNfori=1.:200xme;m(i,:)=a1.1.sainp1.e$(i,:amp1.enan;%xnean是一个MXN矩阵,Xmei1.
2、n衽一行保存的数据是个图片数据平均图片”end;%获得特征值及特征向Ii1.Signu=xnwantxnwan;%MM阶矩阵vdI=Cig(Sigma);1.1.diag(d);%按特征值大小以降序排列dM)rt=11ipd(d1.):vsort=11ip1.r(v);%以下选择Wm的能量dsUm=sun(dsort);dsum.extract=0;p=0:whik(dsu11)-exracu,dsun0.9)P=P1;dsum.cx(rac1.=sum(dxort(kp);endi=i:%(i练阶段)i巩特征脸形成的坐标系base=xmcan,*vsort(:.1.:p)4diag(dsor
3、t(I:p).A(-12);%base是NXP阶矩阵,除以dsoMi)2)是对入脸图像的标itt化(使其方差为I)%详见?域于PCA的人脸识别肾法探讨?p31%XmCi1.n*VMtCi)是小矩阵的特征向收向大短阵特征向纸枝换的过程%whi1.c(i0)%baxe(:.i)=i1.uwi)A(-IZ2)xneanvsort(:,i);%base是NXP阶矩阵,除以dsoEi)*X2)是对人脸图像的标准化(使其方空为I)%详见?基于PCA的人脸识别算法探讨?p31%i=i+I;%XmCan,vsort(:.i)是小矩阵的特征向盘向大矩阵特征向此转换的过程%end%以下两行Sddbygonwxun
4、将训练样本对坐标系上进展投影.得到一个M4阶矩/a1.1.coora1.koor=a1.kamks*base:%a1.1.or里面是每张训练人脸图片在Wp了空向中的个点.即在了空间中的组合票数JuXU=(k%卜面的人脸识别过程中就是利用这些处分系数来进展识别%测试过程fori=1.:40Crj=6:IO%该入40x5码测试图像a=iweid(MrcaUe?OR1.snum2Mrti).,V.nun2irtj).*.jg,);b=a(1:10304):b=ub1.c(b);ICOOr=bbase:%计算坐标.1.阶矩阵fork=1.:200ndis(k)=nom(tcoor-a1.icoor(k
5、,:):end;%三阶近邻dis(jndex2=sort(11u1.is);c1.ass1.=f1.oor(indcx2(i-1.)1;c1.ass2=f1.oor(indcx2(2)-1.)5)+1.:c1.as1.=f1.r(ifkkx2(3)I)5)I;ifc1.ass1.-=c1.ass2&c1.ass2-=c1.as3c1.ass=c1.ass1.:ekeifc1.assI=chs2cass=c1.ass!:CkCifCkIS$2=CIaSS3c1.ass=c1.ass2;end;ifd三=iaccu=accuI;end;end;end;accuracy=accu*200%输出识别车
6、特征人J*function11=cigfacc()%ca1.cxmcan,sigmaanditseigendcconIPoSi1.iOna1.1.samp1.es=hCUft(ftfori=!:40for)=1:5a=iwead(MrcaUe?OR1.snum2Mrti).,V.nun2trtj).*.jg,);%imshow(八):b=a(1:112%);%b是行矢It1N,其中N=K)304,提取依次是先列后行,即从上到下,从左到右b=ub1.c(b):a1.1.sam1.esh1.samp1.es;b;%a1.1.samp1.es是个MIeN矩阵,Jsamp1.es中每一行数据代表一张图
7、片,其中A1=200endendsampkmcan=nan(a!1.sam1.cs:%邛均图片.IXNfori=1.2xmean(i,:)=aJ1.sanip1.eMi.:-sampkincan:%xnan足个MXN矩阵.xmcan珏一行保存的数据是个图片数据平均图片”end;%获得特征值及特征向Ii1.signa-nantx11a:%MM阶矩阵vd=eig(Mgma);d1.=diag(d);%按特征侦大小以降序排列dM)rt=iud(d1);VM)11=HipIrtvX%以下选杼90%的能量dsum=sum(dso11;dsum_ex(raci=(hp=0:whik(dsum.cxtrac
8、i,dsum0.9)P=P+I;dsumextract=sun(dsor(k);endP=199;%(训练阶段)计算特征聆形成的坐标系%whi1.e(i0%baxc(:J)=dsort(i)A(-1./2)xmean,vsorU.i);%base是Np阶矩阵,除以dsogiV(I是对人验图像的标准化,详见?基于PCA的人板识别獴法探讨?p31.%i=iI;%xmsn*VJiorWQit小斑阵的特征向I1.t向大矩阵特征向圻转换的过程%endbase=xmcan*vsort(:.1.:p)*diag(dM)11(kp.(-172):%生成特征8for(k=kp).enp=vshae(base(k
9、),112,92);IKwpath=dtcstVi112su(k),.jpg,:imvite(mat2gray(cmp).nexvpath);endavg=rcshac(sam1.cmcan.!12,92);imvite(mit2gray(avg).d:kspHivcragc.jpg);%将模型保存savc(cOR1.modc1.ma(.base,mpkmc4n,);AttMfunctionIJ=nxons1.nicU)1.oade:OR1.mode1.imi;%计算新图片在特征子空间中的系数img=,Drcst2IO.jpga=imrc4id(img);b=a(1.:112*92);%b是行
10、矢fitIXN,其中N=IO304,提取依次是先刑后行,即从上到下,从左到右bdoub1.c(b);b=bsam!enwan;c=b*basez%c是图片a在子空间中的系数.Jh1.p行矢贵%依据特征系数及特征股成建图%前15个I=15;temp=base(:.1:()*c(Itemp=temp+sampkmcan;i11nvie(nui2g11y(reshae(te11,112,92),dAte2Ijpg);%前50个I=50:temp=basc(z.kt)c(k,;en=ensamp1.emean1;imwrite(nat2gray(teshapc(tcm.II2.92).drtcs2t2
11、.jg,);%做100个I=100;temp=basc(:.!:()*c(I:()*;temp=temp+SajnPknIcan:imvie(ma2gra(reshae(en.112,92).*d:tesi2i3jpg);%的150个t=150:temp=basc(:.1.:O0c(kt:en=emsamp1.emean;innviic(mat2gray(rcshapc(tcn.II2.92)dtcs1.2,44.jg,);%的199个t=199:temp=hasc(:J:Oc(kt);temp=cmsampkncan,;imitc(mat2gray(rcshapc(tcmp.I1.2.92)
12、.d:tcst2M5.jpg);基于2DPCA与(2D)2PCA的人脸识别(其次5.】引言传统的PcA和1.DA方法在图也识别时都是基于图皎向R的,在这种人脸我别技术中,2D的人龄图2矩阵必缎先转变为ID的图象向量,然后再进行KA或IDA分析.禁点很明显:首先,将图金地阵转化为图令向目后,造成医也向取的继数一般较高.使为整个特征抽取过稗所耗微的计算量M当司规:其次.主成分分析的训故是非监督的.即PCA无法利用训练样本的类别信息;再次,实验袁明,恭于PCA的人脸识别方法随,看光照、妥毒警因素的引入,识别率急剧F降.因此这科方法还存&着缺陷.本文介绍r-钟E接基于图象知库的包含人类平均图家中的外别
13、信息的优压隼技术:二蜻主成分分析(2!)PCA)人舲识别方法皿“也叫侬广义主成分分析,量显著优点在于大大加怏了相征抽取的速度.5.2ZDKA人脸识别方法5.2.1 2DPCA的算法设X登示n维列向量,如Xn的图像矩阵A通过以下线性交换直接投影到Xt:Y=AX(5.I)得到一个nift列向量Y.X为投影轴.Y称为用IiA的投影特征向量“最佳投影他X可以根撤特行向量丫的散布情况来决定,采月的准则如F:x)-rr(S,)(S.2)其中,依示训经样本投影特特向*Y的的协方差短;K,内,)代表S.的迹,当准则(5.(2) 得余大T时的物理意义是:找到一个将房行训练样本投影在上面的的投影m.使档投影后所得
14、特征危量的总体敷布矩阵(叩样本类间散布后阵)接大化.炬阵s,可以记成下式:(S.)=E(y-Erxr-Ery=(-2)(/-EnXy(5.3)tr(S,)EtY-EY-ETf=PA-E)X(A-EAX(5.3)所以,(5.4)tr(S,)XrE(A-EAY(A-)X我们来定义下述矩阵:G1=E(A-EAY(A-EA)(5.5)其中G被定义为图较协方差(散布矩阵,它是一个nxn(n是图像的列的象素值)的乖负定降,我们可以直接利用训练样本来计算G,.假设训练样本总数见”个,训炼图象样本是mXn的矩阵A,(j=1.,2,.M),所有训练样本的平均图象是&则G可以用下式计算:G,=(Aj-N)储,-7
15、)(5.6)相应的(5.2)式的准则就成了J(X)=XrG1X(S.7)X是归一正交化列向这个(5.7)的准则就叫蛾广义总体散布准则.而X就使准则(5.2)大化,叫做看投影轴.物理意义是:图象矩阵在轴上投影后所得梢征向量的总体分散程度最大.实际上,读最佳投影轴即为反像总体散步矩阵的最大带征值所对应的单位特征向量.这里的最佳投影轴XW是归一化向量,使得景大化,也就是说G的本征向对应着大本征值“选01.摩,训炼样本每人5幅.则&的本征值如图5.1所示(以下均为OR1.库).总体而言,只选择一个最佳投影轴是不够的,我们洲常选取一系列的标准正交化投影轴,即设G的特征值满足444,则对应的标电正交化特征
16、向量是4,X,X,即:r,Xrf)=argmaxJ(X)灯”,尸1,0(5.8)S5.1OR1.rY0人每人5幡训练时2DPCA1.f1.像仇力好矩阵所对应的特征值分布M5.2.2 图像的主应分向量和物粒矩瘁X、,.XI可以用于特征的提取.对于一个纶定的图家样本A,有下式成立:Yt=KXt(k=1.,2,d)(5.9)这样,我们就得到了一组投影特征向点年.,与,国图象A的主成分向量2DPCA选取一定数量d的主成分向量可以组成一个WXd的矩阵,叫图象A的特征矩阵或特征图象.W:B”九多)(5.10)5.2 .32DPCA的分类2DPCA处埋后,每一个图象都可以得到一个特征矩阵.设有C个已知的模式
17、类别生,明/,4表示第【类的训练样本敷,训陈样本图象力”的投影特征向鼠号,(/=1.2.,0;/=1,2,.,).第f类投影特征向量的均值为户“,在投影空间内,近邻分类技附是:若样本Y满足g1.(n=11unmin(r-y*,).则丫叫.(5.11)同时,最小即离分类娩则是I若样本丫满足minyWYc1令A=Aff(k=1.2t,d),(5.18)1.和图&A有相同大小,即A的重建子图象,这样图象A就可以通过增加前d个子图整数目来近似。图5.2是部分以反色表示的篁构子图注意到与图51的结论一致.图5.2部分以反色衰示的更构十1特别指出的是,当选择的莅成分d=n(G,的本征向it祖的所有数目)时
18、,我伯有4=/即样木图象的完全重构(图5.4).如果(Kn是近似重构.如图5.3日日日日日日图5.3ZDPCABf分篁构Ia(上)和PCA重建酸(下)I*1.杓42童杓83*构5重构061.*J7原始图薮完全W构图3.42DPCA完全重构图5.2.52DPCA的优缺点2DPCA方法是一种近年来入脸特征识别和入脸重构的新方法.其本质特点在于采用最大化类间寓散度作为准则,而1.DA方法采用量大化类间离散度和类内离散段的比值作为准则.同时每幅图像对应d个投影特征,将d个投影特征筒单申连成一个总的投影特征进行识别.与传统的班于PCA的方法相比,它具有以下几个优点:一是由于2DPCA直接基于图象矩阵,它
19、在图象特征提取上更加简单且观.二是2DPCA在试验中的总体识别率要高于PCA.三是2DPCA在忌体的计算量上远小于PCA,所以它可以显著提高图象的特征提取速度.在人脸识别上2DPCA优于PCA的原因主要是因为2DPCA只有更小的样本尺寸,它的图象方差更小,在2DPCA和PCA人脸识别过程中都需要的协方基矩阵的计算中,前将计算的协方差矩阵更为港确.与PCA技术相比,2DPCA主要跳点在于图1重建的过程中,需要更多的协同因素和系数,因此It建时要占用更多的内存,同时这两种方法受光照的影响都很大.5.3 PCA+2DPCA的人脸识别方法虽然2DPCA方法在图象惧别的特征提取速度和织别率上都要优于PC
20、A,但是图象重建时需要更多的系数.例如,假设图里的大小是100Xw0,那么2DPCA的特征矢量矩阵是100Xd,为了达到一定的识别准确率,这里的d通常最少取到5,矩阵需要的系数还是很大的,为了进一步旅少2DPCA的特征矢量的雉数,我们可以在应用2DPCA求出特征矢量之后再用PCA技术做迸一步的最优压维I,从而进行深一层的维数M少.这个过程就是吒+2?人识别方法如图5.12.不过,究竟可以将2DPCA的特征锥数M少到多少.才可以达到所要求的识别率,还需要更多的理论和实验论证.图5.5是OR1.座40人短人5训练川本取不同维数时两种方法的比较.ffi,5OR1.库分别取不罚的2OPCA特征矢量和不
21、同的PeA主成分的识别率比较5.4 (2D)PCA的人脸识别方法文献中提出了一肿特征脸的扩展方法,称为(2D)PCA方法”.它结合了图象的水平投影和垂直投影信息后再迸行主元分析.这种方法认为2DPCA实质上是对明象的行方向的运算,提出应该同时考虑对图象的列方向的运算.通过向时考虑图教的行方向和则方向的运算,我们可以搞到两个方向的2DPCA值,再进行主元分析即(2D)TCA方法,用于图象的重建和识S1实验结果表明,(2D)PCA方法在识别率上要高于2DPCA,同时重建所需要的系数却远比PCA和2DPCA要少.5.4.1 行方向2DPcA的算法假设施环A是任意一个IBXn的矩阵.令Xer(“2d)
22、是一个由相互正交的列向组成的矩阵.将A投影到X上产生一个mXd的矩阵Y=AX.在2DPCA中,投影样本的总体散布可以决定一个聚优的投影矩阵X.这就表明,满足以下的准则:J(X)-tracee(Y-ErXy-EYf)=traceE(AX-f(X,)XV-E().(X,)(5.29)在这里4“和彳”分别表示4和7的第,列列向it.这样列方向的图象协方差矩降G的定义是:G-H(彳-和)(4“-赳)(5.30)Mi1尺现在我们将要表明(5.3。)等式可以以2DPCA相同的方式来求得令Z=A一是一个列向量相互正交的能降.将任意知瘁A投影到2上,产生一个qXn的矩阱BttA(5.31)由下列准则可以找到最
23、优化的投影矩阵Z:J(三)-r0c(E(-EB)(B-E)=occ忖(ZZ-E(ztA(z,A-E(zr/)1=tracg水平*构*K*ftAttKM()累始图像(b)水平重构图(d)总体重构图用5.70R1.人物库40人每人能5外缘时利用(2D)*PCA方法1.*W三15时的重建图像悻本图象A(k=,2,M)投影到X和Z上时,我0就得到了训域将证矩阵C*(k=1.,2,M).蛤定了一个测试样本图家A后.首先应用等式(5.34),得到侨征矩阵C,按着利用最近领分粪叁来进行分类这里C和C的距离可以定义为:d(CG)=IC-CJ=C(MDJ5.36)Z/!5.4.4 (2D)TCA的优缺点(2D)tPCA人脸识别方法是由有效的人险重建和人脸识别的方法.与己药的2DPCA人股识别方法相比,后者只能在人脸图象的行方向上进行处理,而前者是同时在人总图裳的行方向和列方向进行处理。(2D)PCA比起2DPCA耒,主奏优势在于人脸重建和识别时所需要的系数要少的多本文引进这个方法是为了引进一肿新思15