資源簡介
本程序通過pca算法進行特征提取,再用bp神經(jīng)網(wǎng)絡進行分類,最后計算出識別率。

代碼片段和文件信息
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;
%第二步,創(chuàng)建并訓練BP神經(jīng)網(wǎng)絡
%生成訓練BP神經(jīng)網(wǎng)絡的輸入?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‘;
%創(chuàng)建BP神經(jīng)網(wǎng)絡
[RQ]=size(P);
[S2Q]=size(T);
net=newcf(minmax(P)T[40]{‘logsig‘}‘trainscg‘);
%訓練BP神經(jīng)網(wǎng)絡
net.trainparam.epochs=5000;
net.trainparam.goal=0.0001;
net.divideFcn?=?‘‘;
net=train(netPT);
%仿真BP神經(jīng)網(wǎng)絡
Y=sim(netP);
%?第三步,測試BP神經(jīng)網(wǎng)絡并計算其識別率
%測試BP神經(jīng)網(wǎng)絡
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和神經(jīng)網(wǎng)絡的識別率為:%.3f%%\n\n‘a(chǎn)ccuracy*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個文件信息
評論
共有 條評論