LDA人脸识别地matlab程序_第1页
LDA人脸识别地matlab程序_第2页
LDA人脸识别地matlab程序_第3页
LDA人脸识别地matlab程序_第4页
LDA人脸识别地matlab程序_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

实用文案LDA人脸识别的matlab 程序以下是LDA的m文件函数:你稍稍改改就能用了!function[eigvector,eigvalue,elapse]=LDA(gnd,options,data)LDA:LinearDiscriminantAnalysis% [eigvector,eigvalue]=LDA(gnd,options,data)%% Input:% data -Datamatrix.Eachrowvectoroffeaisadatapoint.% gnd -Colunmvectorofthelabelinformationforeach% datapoint.% options-StructvalueinMatlab.Thefieldsinoptions% thatcanbeset:%% Regu - 1:regularizedsolution,% a*=argmax(a'X'WXa)/(a'X'Xa+ReguAlpha*I)标准文档实用文案%0:solvethesinularityproblembySVD%Default:0%%ReguAlpha-Theregularizationparameter.Valid%whenRegu==1.Defaultvalueis0.1.%%ReguType-'Ridge':Tikhonovregularization%'Custom':Userprovided%regularizationmatrix%Default:'Ridge'%regularizerR-(nFeaxnFea)regularization%matrixwhichshouldbeprovided%ifReguTypeis'Custom'.nFeais标准文档实用文案% thefeaturenumberofdata% matrix% Fisherface - 1:Fisherfaceapproach% PCARatio=nSmp-nClass% Default:0%% PCARatio - Thepercentageofprincipal% componentkeptinthePCA% step.Thepercentageis% calculatedbasedonthe% eigenvalue.Defaultis1% (100%,allthenon-zero% eigenvalueswillbekept.% IfPCARatio>1,thePCAstep% willkeepexactlyPCARatioprinciple标准文档实用文案%components(doesnotexceedthe%exactnumberofnon-zerocomponents).%%%Output:%eigvector-Eachcolumnisanembeddingfunction,foranew%datapoint(rowvector)x,y=x*eigvector%willbetheembeddingresultofx.%eigvalue-ThesortedeigvalueofLDAeigen-problem.%elapse-Timespentondifferentsteps%Examples:% fea=rand(50,70);% gnd=[ones(10,1);ones(15,1)*2;ones(10,1)*3;ones(15,1)*4];% options=[];% options.Fisherface=1;% [eigvector,eigvalue]=LDA(gnd,options,fea);% Y=fea*eigvector;标准文档实用文案%%SeealsoLPP,constructW,LGE%Reference:% P.N.Belhumeur,J.P.Hespanha,andD.J.Kriegman, 揈igenfacesvs.fisherfaces:recognitionusingclassspecificlinear% projection, ? IEEETransactionsonPatternAnalysisandMachineIntelligence,vol.19,no.7,pp.711-720,July1997.DengCai,XiaofeiHe,YuxiaoHu,JiaweiHan,andThomasHuang,"LearningaSpatiallySmoothSubspaceforFaceRecognition",CVPR'2007DengCai,XiaofeiHe,JiaweiHan,"SRDA:AnEfficientAlgorithmforLargeScaleDiscriminantAnalysis",IEEETransactionsonKnowledgeandDataEngineering,2007.%标准文档实用文案version2.1--June/2007version2.0--May/2007version1.1--Feb/2006version1.0--April/2004if~exist('data','var')globaldata;endif(~exist('options','var'))options=[];endif~isfield(options,'Regu')|~options.RegubPCA=1;if~isfield(options,'PCARatio')options.PCARatio=1;endelse标准文档实用文案bPCA=0;if~isfield(options,'ReguType')options.ReguType='Ridge';endif~isfield(options,'ReguAlpha')options.ReguAlpha=0.1;endendtmp_T=cputime;======Initialization[nSmp,nFea]=size(data);iflength(gnd)~=nSmperror('gndanddatamismatch!');endclassLabel=unique(gnd);nClass=length(classLabel);Dim=nClass-1;ifbPCA&isfield(options,'Fisherface')&options.Fisherface标准文档实用文案options.PCARatio=nSmp-nClass;endifissparse(data)data=full(data);endsampleMean=mean(data,1);data=(data-repmat(sampleMean,nSmp,1));bChol=0;ifbPCA&(nSmp>nFea+1)&(options.PCARatio>=1)DPrime=data'*data;DPrime=max(DPrime,DPrime');[R,p]=chol(DPrime);ifp==0bPCA=0;bChol=1;end标准文档实用文案end%======================================SVD%======================================ifbPCAifnSmp>nFeaddata=data'*data;ddata=max(ddata,ddata');[eigvector_PCA,eigvalue_PCA]=eig(ddata);eigvalue_PCA=diag(eigvalue_PCA);clearddata;maxEigValue=max(abs(eigvalue_PCA));eigIdx=find(eigvalue_PCA/maxEigValue<1e-12);eigvalue_PCA(eigIdx)=[];eigvector_PCA(:,eigIdx)=[];[junk,index]=sort(-eigvalue_PCA);eigvalue_PCA=eigvalue_PCA(index);标准文档实用文案eigvector_PCA=eigvector_PCA(:,index);%=======================================ifoptions.PCARatio>1idx=options.PCARatio;ifidx<length(eigvalue_PCA)eigvalue_PCA=eigvalue_PCA(1:idx);eigvector_PCA=eigvector_PCA(:,1:idx);endelseifoptions.PCARatio<1sumEig=sum(eigvalue_PCA);sumEig=sumEig*options.PCARatio;sumNow=0;foridx=1:length(eigvalue_PCA)sumNow=sumNow+eigvalue_PCA(idx);ifsumNow>=sumEigbreak;endendeigvalue_PCA=eigvalue_PCA(1:idx);eigvector_PCA=eigvector_PCA(:,1:idx);end标准文档实用文案%=======================================eigvalue_PCA=eigvalue_PCA.^-.5;data=(data*eigvector_PCA).*repmat(eigvalue_PCA',nSmp,1);elseddata=data*data';ddata=max(ddata,ddata');[eigvector,eigvalue_PCA]=eig(ddata);eigvalue_PCA=diag(eigvalue_PCA);clearddata;maxEigValue=max(eigvalue_PCA);eigIdx=find(eigvalue_PCA/maxEigValue<1e-12);eigvalue_PCA(eigIdx)=[];eigvector(:,eigIdx)=[];[junk,index]=sort(-eigvalue_PCA);eigvalue_PCA=eigvalue_PCA(index);eigvector=eigvector(:,index);%=======================================标准文档实用文案ifoptions.PCARatio>1idx=options.PCARatio;ifidx<length(eigvalue_PCA)eigvalue_PCA=eigvalue_PCA(1:idx);eigvector=eigvector(:,1:idx);endelseifoptions.PCARatio<1sumEig=sum(eigvalue_PCA);sumEig=sumEig*options.PCARatio;sumNow=0;foridx=1:length(eigvalue_PCA)sumNow=sumNow+eigvalue_PCA(idx);ifsumNow>=sumEigbreak;endendeigvalue_PCA=eigvalue_PCA(1:idx);eigvector=eigvector(:,1:idx);end%=======================================标准文档实用文案eigvalue_PCA=eigvalue_PCA.^-.5;eigvector_PCA=(data'*eigvector).*repmat(eigvalue_PCA',nFea,1);data=eigvector;cleareigvector;endelseif~bCholDPrime=data'*data;% options.ReguAlpha=nSmp*options.ReguAlpha;switchlower(options.ReguType)case{lower('Ridge')}fori=1:size(DPrime,1)DPrime(i,i)=DPrime(i,i)+options.ReguAlpha;endcase{lower('Tensor')}DPrime=DPrime+case{lower('Custom')}标准文档实用文案DPrime=DPrime+otherwiseerror('ReguTypedoesnotexist!');endDPrime=max(DPrime,DPrime');endend[nSmp,nFea]=size(data);Hb=zeros(nClass,nFea);fori=1:nClass,index=find(gnd==classLabel(i));classMean=mean(data(index,:),1);Hb(i,:)=sqrt(length(index))*classMean;endelapse.timeW=0;elapse.timePCA=cputime-tmp_T;标准文档实用文案tmp_T=cputime;ifbPCA[dumpVec,eigvalue,eigvector]=svd(Hb,'econ');eigvalue=diag(eigvalue);eigIdx=find(eigvalue<1e-3);eigvalue(eigIdx)=[];eigvector(:,eigIdx)=[];eigvalue=eigvalue.^2;eigvector=eigvector_PCA*(repmat(eigvalue_PCA,1,length(eigvalue)).*eigvector);elseWPrime=Hb'*Hb;WPrime=max(WPrime,WPrime');dimMatrix=size(WPrime,2);ifDim>dimMatrixDim=dimMatrix;标准文档实用文案endifisfield(options,'bEigs')ifoptions.bEigsbEigs=1;elsebEigs=0;endelseif(dimMatrix>1000&Dim<dimMatrix/10)|(dimMatrix>500&Dim<dimMatrix/20)|(dimMatrix>250&Dim

温馨提示

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

评论

0/150

提交评论