• 大小: 2.2MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-02
  • 语言: 其他
  • 标签: 人脸识别  

资源简介

本程序通过pca算法进行特征提取,再用bp神经网络进行分类,最后计算出识别率。

资源截图

代码片段和文件信息

clc

% 第一步,利用主元分析PCA法提取图像的特征矩阵
allsamples=[];                                %所有训练图像
for i=1:15
    for j=1:5
      a=imread(strcat(pwd‘\Yale\s‘num2str(i)‘\‘num2str(j)‘.bmp‘));
      b=a(1:100*80);                          
      b=double(b);
      allsamples=[allsamples; b];            
    end
end
samplemean=mean(allsamples);                  
for i=1:75
    xmean(i:)=allsamples(i:)-samplemean;    
end
sigma=xmean*xmean‘;       
[v d]=eig(sigma);
d1=diag(d);
[d2 index1]=sort(d1);     
cols=size(v2);           
for i=1:cols
    vsort(:i) = v(: index1(cols-i+1) );   
    dsort(i)   = d1( index1(cols-i+1) );    
end    %完成降序排列
%以下选择85%的能量
dsum = sum(dsort);
    dsum_extract = 0;
    p= 0;
    while( dsum_extract/dsum < 0.85)
        p=p + 1;
        dsum_extract = sum(dsort(1:p));
    end
i=1;
%计算特征脸形成的坐标系
while (i<=p && dsort(i)>0)
    base(:i) = dsort(i)^(-1/2) * xmean‘ * vsort(:i);     % base是N×p阶矩阵,除以dsort(i)^(1/2)是对人脸图像的标准化
    i = i + 1;
end

%下面的代码,将训练样本对坐标系上进行投影得到一个 M*p 阶矩阵allcoor
allcoor = allsamples * base;

%第二步,创建并训练BP神经网络
%生成训练BP神经网络的输入 P 
P= mapminmax(allcoor);               %归一化

%生成目标输出矢量 T
T=zeros(7515);
 for i=1:15
    for j=1:5
      T((i-1)*5+ji)=1;
  end
 end
 
%打乱训练样本顺序
gx2(:1:19)=P;
gx2(:20:34)=T;
xd=gx2(randperm(numel(gx2)/34):);
gx=xd(:1:19);d=xd(:20:34);
P=gx‘;
T=d‘;

%创建BP神经网络
[RQ]=size(P);
[S2Q]=size(T);
net=newcf(minmax(P)T[40]{‘logsig‘}‘trainscg‘);

%训练BP神经网络
net.trainparam.epochs=5000;
net.trainparam.goal=0.0001;
net.divideFcn = ‘‘;
net=train(netPT);

%仿真BP神经网络
Y=sim(netP);

% 第三步,测试BP神经网络并计算其识别率
%测试BP神经网络
s=0;
for i=1:15
    for j=6:10                                %读入15x5副测试图像
         a=imread(strcat(pwd‘\Yale\s‘num2str(i)‘\‘num2str(j)‘.bmp‘));
         b=a(1:8000);
         b=double(b);
         tcoor= b * base;                   %计算坐标,是1×p阶矩阵
         X = mapminmax(tcoor);              %归一化
         Z=sim(netX‘);
         [ziindex2]=max(Z);
         if index2==i   
             s=s+1;

          end
     end
end

%计算识别率
accuracy=s/Q;
fprintf(2‘采用PCA和神经网络的识别率为:%.3f%%\n\n‘accuracy*100);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2410  2017-12-28 13:18  PCA+BP\pcabp.m

     文件        271  2017-12-28 20:19  PCA+BP\readme.txt

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s1\1.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s1\10.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s1\11.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s1\2.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s1\3.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s1\4.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s1\5.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s1\6.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s1\7.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s1\8.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s1\9.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s10\1.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s10\10.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s10\11.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s10\2.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s10\3.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s10\4.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s10\5.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s10\6.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s10\7.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s10\8.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s10\9.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s11\1.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s11\10.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s11\11.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s11\2.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s11\3.bmp

     文件       9080  2017-11-01 23:06  PCA+BP\Yale\s11\4.bmp

............此处省略159个文件信息

评论

共有 条评论