人脸识别PCA算法matlab实现及详细步骤讲解.docx
人险切N%PCA人脸设剂修订版.识别率88%ca1.cXnieaibsignKiAndigeigendeconritiona1.1.sanp1.cs=:%全部训缥图像fori=!:40furj=1:5a=iwead(MrcaU'e?OR1.snum2Mrti).,V.nun2irtj).*.jg,);%imshow(八);b=<i(1.:112*92);%b是行矢景1.xN,其中N=Io304,提取依次是先列后行,即从上到下,从左到右b=<k)ub1.c(b):a1.1.sump1.es=(a1.1.sanp1.cs;b:%a1.1.samp1.cs是M*N矩阵,a1.1.sampks中心一行数据代表一张图片,其中A4=200endendsampkmcan=nan(a!1.sam1.cs>:%邛均图片.IXNfori=1.:200xme;m(i,:)=a1.1.sainp1.e$(i,:>amp1.en«an;%xn>ean是一个MXN矩阵,Xmei1.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,dsun<0.9)P=P÷1;dsum.cx(rac1.=sum(dxort(kp);endi=i:%(i练阶段)i巩特征脸形成的坐标系base=xmcan,*vsort(:.1.:p)4diag(dsort(I:p).A(-12);%base是NXP阶矩阵,除以dsoMi)2)是对入脸图像的标itt化(使其方差为I)%详见?域于PCA的人脸识别肾法探讨?p31%XmCi1.n'*VMtCi)是小矩阵的特征向收向大短阵特征向纸枝换的过程%whi1.c(i<=p&&dso11(i>>0)%baxe(:.i)=i1.uw«i)A(-IZ2)xnean'vsort(:,i);%base是NXP阶矩阵,除以dsoEi)*X2)是对人脸图像的标准化(使其方空为I)%详见?基于PCA的人脸识别算法探讨?p31%i=i+I;%XmCan,vsort(:.i)是小矩阵的特征向盘向大矩阵特征向此转换的过程%end%以下两行Sddbygonwxun将训练样本对坐标系上进展投影.得到一个M4阶矩/a1.1.coora1.koor=a1.kamks*base:%a1.1.or里面是每张训练人脸图片在Wp了空向中的个点.即在了空间中的组合票数JuXU=(k%卜面的人脸识别过程中就是利用这些处分系数来进展识别%测试过程fori=1.:40Crj=6:IO%该入40x5码测试图像a=iweid(MrcaU'e?OR1.snum2Mrti).,V.nun2irtj).*.jg,);b=a(1:10304):b=<k>ub1.c(b);ICOOr=bbase:%计算坐标.1.×阶矩阵fork=1.:200ndis(k)=nom(tcoor-a1.icoor(k,:):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.<x>r(ifkkx2(3)I)5)÷I;ifc1.ass1.-=c1.ass2&&c1.ass2-=c1.as<3c1.ass=c1.ass1.:ekeifc1.assI=chs2cass=c1.ass!:CkCifCkIS$2=CIaSS3c1.ass=c1.ass2;end;ifd三=iaccu=accu÷I;end;end;end;accuracy=accu*200%输出识别车特征人J*function11=cigfacc()%ca1.cxmcan,sigmaanditseigendcconIPoSi1.iOna1.1.samp1.es=hCUft(ftfori=!:40for)=1:5a=iwead(MrcaU'e?OR1.snum2Mrti).,V.nun2trtj).*.jg,);%imshow(八):b=a(1:112%);%b是行矢It1×N,其中N=K)304,提取依次是先列后行,即从上到下,从左到右b=<k>ub1.c(b):a1.1.sam1.esh1.samp1.es;b;%a1.1.samp1.es是个MIeN矩阵,Jsamp1.es中每一行数据代表一张图片,其中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.cxtraci,dsum<0.9)P=P+I;dsumextract=sun(dsor(k);endP=199;%(训练阶段)计算特征聆形成的坐标系%whi1.e(i<=p&&dM)11(i>>0>%baxc(:J)=dsort(i)A(-1./2)xmean,vsorU.i);%base是N×p阶矩阵,除以dsogiV(I是对人验图像的标准化,详见?基于PCA的人板识别獴法探讨?p31.%i=i÷I;%xmsn'*VJiorWQit小斑阵的特征向I1.t向大矩阵特征向圻转换的过程%endbase=xmcan'*vsort(:.1.:p)*diag(dM)11(kp>.(-172):%生成特征8for(k=kp).enp=vshae(base(k),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.jpg'a=imrc4id(img);b=a(1.:112*92);%b是行矢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(nui2g11>y(reshae(te11,112,92),dAte2Ijpg');%前50个I=50:temp=basc(z.kt)c(k,;en=en÷samp1.emean1;imwrite(nat2gray(teshapc(tcm.II2.92).'drtcs2t2.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=em÷samp1.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).'d:tcst2M5.jpg');基于2DPCA与(2D)2PCA的人脸识别(其次5.】引言传统的PcA和1.DA方法在图也识别时都是基于图皎向R的,在这种人脸我别技术中,2D的人龄图2矩阵必缎先转变为ID的图象向量,然后再进行KA或IDA分析.禁点很明显:首先,将图金地阵转化为图令向目后,造成医也向取的继数一般较高.使为整个特征抽取过稗所耗微的计算量M当司规:其次.主成分分析的训故是非监督的.即PCA无法利用训练样本的类别信息;再次,实验袁明,恭于PCA的人脸识别方法随,看光照、妥毒警因素的引入,识别率急剧F降.因此这科方法还存&着缺陷.本文介绍r-钟E接基于图象知库的包含人类平均图家中的外别信息的优压隼技术:二蜻主成分分析(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.使档投影后所得特征危量的总体敷布矩阵(叩样本类间散布后阵)接大化.炬阵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)(5.6)相应的(5.2)式的准则就成了J(X)=XrG1X(S.7)X是归一正交化列向这个(5.7)的准则就叫蛾广义总体散布准则.而X就使准则(5.2)大化,叫做看投影轴.物理意义是:图象矩阵在轴上投影后所得梢征向量的总体分散程度最大.实际上,读最佳投影轴即为反像总体散步矩阵的最大带征值所对应的单位特征向量.这里的最佳投影轴XW是归一化向量,使得景大化,也就是说G的本征向对应着大本征值“'选0«1.摩,训炼样本每人5幅.则&的本征值如图5.1所示(以下均为OR1.库).总体而言,只选择一个最佳投影轴是不够的,我们洲常选取一系列的标准正交化投影轴,即设G的特征值满足4>4>>4,则对应的标电正交化特征向量是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个已知的模式类别生,明/,4表示第【类的训练样本敷,训陈样本图象力”的投影特征向鼠号,(/=1.2.,0;/=1,2,.,«,).第f类投影特征向量的均值为户“,在投影空间内,»近邻分类技附是:若样本Y满足g1.(n=11unmin(r-y*',).则丫叫.(5.11)同时,最小即离分类娩则是I若样本丫满足minyWYc<Di(5.12)还有其他的一些分类物,可以参见第四章的4.2.4节5.2.42DPCA的图象富建PCA方法可以用主成分和本征脸重建一副图整.2DPCA方法也可以重建图象.但设图象散布矩阵G的前d个最大的正交化本征向量是再,.¥,图象投影到这些轴上后.主成分向量是X=AX(k=1.,2,d)(5.13)令V=,(5.14)U=",/(5.15)而V=AU(5.16)由于,X,是正交的,所以图象样本重建公式是:A=Rr=n(5.17)1>1令A=Aff(k=1.2t,d),(5.18)1.和图&A有相同大小,即A的重建子图象,这样图象A就可以通过增加前d个子图整数目来近似。图5.2是部分以反色表示的篁构子图注意到与图51的结论一致.图5.2部分以反色衰示的更构十1特别指出的是,当选择的莅成分d=n(G,的本征向it祖的所有数目)时,我伯有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直接基于图象矩阵,它在图象特征提取上更加简单且观.二是2DPCA在试验中的总体识别率要高于PCA.三是2DPCA在忌体的计算量上远小于PCA,所以它可以显著提高图象的特征提取速度.在人脸识别上2DPCA优于PCA的原因主要是因为2DPCA只有更小的样本尺寸,它的图象方差更小,在2DPCA和PCA人脸识别过程中都需要的协方基矩阵的计算中,前将计算的协方差矩阵更为港确.与PCA技术相比,2DPCA主要跳点在于图«1重建的过程中,需要更多的协同因素和系数,因此It建时要占用更多的内存,同时这两种方法受光照的影响都很大.5.3 PCA+2DPCA的人脸识别方法虽然2DPCA方法在图象惧别的特征提取速度和织别率上都要优于PCA,但是图象重建时需要更多的系数.例如,假设图里的大小是100Xw0,那么2DPCA的特征矢量矩阵是100Xd,为了达到一定的识别准确率,这里的d通常最少取到5,矩阵需要的系数还是很大的,为了进一步旅少2DPCA的特征矢量的雉数,我们可以在应用2DPCA求出特征矢量之后再用PCA技术做迸一步的最优压维I,从而进行深一层的维数M少.这个过程就是吒+2»?人识别方法如图5.12.不过,究竟可以将2DPCA的特征锥数M少到多少.才可以达到所要求的识别率,还需要更多的理论和实验论证.图5.5是OR1.座40人短人5训练川本取不同维数时两种方法的比较.ffi,5OR1.库分别取不罚的2OPCA特征矢量和不同的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)是一个由相互正交的列向组成的矩阵.将A投影到X上产生一个mXd的矩阵Y=AX.在2DPCA中,投影样本的总体散布可以决定一个聚优的投影矩阵X.这就表明,满足以下的准则:J(X)-tracee(Y-ErXy-EYf)=traceE(AX-f(X,)XV-E(<Z)rtraceXE(A-EA)(A-EA)'x(5.19)上面这个矩阵的来源是来自定理:trace(AB)=trace(BA)(5.20)其中A,B是任意两个矩阵.定义图象协方差矩阵GE(A-EA)r(A-EA)(5.21)它是一个nXn的非负定矩阵.假设现在有M个训练人脸样本,用mXn矩阵4(t=1.2.M),同时定义均值图致(5.22)则G就可以表示成G=±(4-不(4-4(5.23)已证用矩阵G的iftd个大的本征值所对应的正交特征向jX“,X构成的投影矩阵XE就是增优值,即1.MX.×t由于G的大小是nXn,计算其本征向量是很快的。同样,如同PcA的d个本征值求法,可以如下方式设Ir阙值:tA24)t«1.1在这里44,A,是G的前n个最大的本征值,0是一个预设门限值.5.4.2 列方向2DPC的算法令A-(4)r(,)r-()rr(5.25)”(,)'(即即)(5.26)这里4°和邪')分别足4和彳的第/个行向量.W(5.23)式可以重写为:G=I祉)'(4"-祉)(5.27)(5.27)式表明图象协方度矩阵G可以通过图强行向量形式得到.假设训钛林本图象均值为零,即彳(0).这样,我们认为原始的20PcA是对于图象的行方向所做的处理.如上节所示.等式(5.27)是蜃象中构成G的列向蛆产生的,令4=(邛X")GO(5.28)同时,=(1.,X?,>).(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)由下列准则可以找到最优化的投影矩阵Z:J(三)-r0c(E(-EB)(B-E)=occ忖(ZZ-E(ztA(z,A-E(zr/)1=trac<ze(A-EA(A-£4)rz(5.32)从上式,我们可以得到图象力方差矩阵G的另一个定义:G=Ek/-M(-fiJ-7)'=1.押X4"-加,)(5.33)类似的.通过计算式(533)对应于q个最大化的的本征矢量Z1.,Ze得到最优的投影矩阵4,.即:,,zj.q的数值可以通过(5.24)式所设置的门限值来求得.由于式(5.33)的本征值只反应不氽每列之间的信息因此,我们认为这个2DPCA是沿着图象的列方向来进行处理的.部分玄建图像如图5.6S5.60R1.40人每人前湖训舞,当特征向*di加时列方向2DPCA的重建用像5.4.3 (2D)'PCA的算法行2DPCA和列2DPCA分别在图象的行方向和列方向进行处理,也就是说,行方向2DPCA反映图象的行间信息,是从一系列训缘样本图较的优化矩叶X中得出的,通过将一个IJXn的SB象A向最优化矩阳nXd(d为所取行主成分特征向量数)矩阵X上投影,产生一个Xd的矩阵Y=AX.类似的,列方向2DPCA反映图象的列间信息,得到一个BIXq(q为所取列主成分特征向量数)的最优化矩阵为Z.通过把训练图1.A向Z投影,产生一个qXn的矩阵B=Z'A.卜面,我的利用投影短降X和Z产生(2D)忆A算法.假设我们已线得到了投影81阵X(n×d)和Z(m×q).同时把Xn的的&A向X和Z投影,产生一个qXd的矩降C:C=Z1AX(5.34)矩阵C叫做特征矩阵,也叫效图象重建伪方差短阵,使用这个参数来进行原始黑象A总体重建图像如图5.7,计算式如下:AZCXr(5.35)OritMrn>g水平*构*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(MDJ<5.36)Z/!5.4.4 (2D)'TCA的优缺点(2D)tPCA人脸识别方法是由有效的人险重建和人脸识别的方法.与己药的2DPCA人股识别方法相比,后者只能在人脸图象的行方向上进行处理,而前者是同时在人总图裳的行方向和列方向进行处理。(2D)'PCA比起2DPCA耒,主奏优势在于人脸重建和识别时所需要的系数要少的多本文引进这个方法是为了引进一肿新思15