資源簡(jiǎn)介
KPCA實(shí)現(xiàn)的人臉識(shí)別的程序,經(jīng)過(guò)調(diào)試可以運(yùn)行的,放心使用

代碼片段和文件信息
%用KPCA進(jìn)行人臉識(shí)別的Matlab代碼?
clear?
clc?
allsamples=[];%所有訓(xùn)練圖像?
NumberOfClass=40;
NumberOfTest=5;
NumberOfTrain=5;
for?i=1:NumberOfClass?
????for?j=6:10
??????a=imread(strcat(‘Data\s‘num2str(i)‘\‘num2str(j)‘.pgm‘));?%讀圖像
??????b=a(1:112*92);?%?b是行矢量?1×N,其中N=10304,提取順序是先列后行,即從上到下,從左到右?
??????b=double(b);?%
??????allsamples=[allsamples;?b];??%?allsamples?是一個(gè)200?*?10304?矩陣,allsamples?中每一行數(shù)據(jù)代表一張圖片。
??end?
end?
?
cov_size=size(allsamples1);?
train_num=cov_size;?
patterns=allsamples;?
for?i=1:cov_size?
??for?j=i:cov_size?
????K(ij)?=(patterns(i:)*patterns(j:)‘+1)^1;?%多項(xiàng)式核函數(shù)(s(xxi)+C)^d
????K(ji)?=?K(ij);?
??end?
end?
unit?=?ones(cov_size?cov_size)/cov_size;?
%?矩陣中心化,減去行平均和列平均加上多減去的部分
K_n?=?K?-?unit*K?-?K*unit?+?unit*K*unit;?%(E-unit)*K*(E-unit)‘
?
[evecsevals]?=?eig(K_n);?%計(jì)算特征值evals和特征向量evecs
evals?=?real(diag(evals));?%得到特征值的實(shí)部
[l1l2]=sort(-1*evals‘);?
evals=l1*(-1);?
evecs=evecs(:l2);?%將按照特征值排序后特征向量進(jìn)行重新的排列特征向量
for?i=1:cov_size?
??evecs(:i)?=?evecs(:i)/(sqrt(evals(i)));?
end?
?
?
%90%的貢獻(xiàn)率?
dsum?=?sum(evals);?
????dsum_extract?=?0;?
????p?=?0;?
????while(?dsum_extract/dsum?0.9)?
????????p?=?p?+?1;?
????????dsum_extract?=?sum(evals(1:p));?
????end?
?
?
max_ev=p;?
?
?
unit_train?=?ones(train_numcov_size)/cov_size;?
?%講訓(xùn)練樣本用計(jì)算得到的PCA主分量進(jìn)行表示
for?i=1:train_num?
??for?j=1:cov_size?
????K_train(ij)?=(patterns(i:)*patterns(j:)‘+1)^1;?
??end?
end?
%?K_train_n?=?K_train;
K_train_n?=?K_train?-?unit_train*K?-?K_train*unit?+?unit_train*K*unit;?
features?=?zeros(train_num?max_ev);?
features?=?K_train_n?*?evecs(:1:max_ev);?
?
?
allcoor?=?features;?%得到主分量表示的訓(xùn)練樣本的特征表示
?
?
?
accu=0;?
%?測(cè)試過(guò)程?
for?i=1:NumberOfClass?
????for?j=1:5?%讀入40?x?5?副測(cè)試圖像?
????????a=imread(strcat(‘Data\s‘num2str(i)‘\‘num2str(j)‘.pgm‘));?
????????b=a(1:10304);?
????????b=double(b);?
????????unit_test?=?ones(1cov_size)/cov_size;?
????????K_test?=?zeros(1cov_size);??
??for?j=1:cov_size?
????K_test(j)?=?(b*patterns(j:)‘+1)^1;?
??end?
%??K_test_n?=?K_test;
K_test_n?=?K_test?-?unit_test*K?-?K_test*unit?+?unit_test*K*unit;?
test_features?=?zeros(1?max_ev);??
test_features?=?K_test_n?*?evecs(:1:max_ev);?
?????????
?????????
????????tcoor=test_features;?%計(jì)算坐標(biāo),是1×p階矩陣?
????????for?k=1:NumberOfClass*NumberOfTest?
????????????????mdist(k)=norm(tcoor-allcoor(k:));?%計(jì)算測(cè)試樣本描述與訓(xùn)練樣本描述之間的距離,即范數(shù)
????????????end;?
?[distindex2]=sort(mdist);?%對(duì)測(cè)試樣本與訓(xùn)練樣本的每一個(gè)特征間的距離進(jìn)行排序
????????class=ceil(?index2(1)/NumberOfTrain?);?%因?yàn)橛?xùn)練樣本每一組為5個(gè)
????????if?class==i????????????????%查看屬于哪一類,并確定分類正確的個(gè)數(shù),為最終的分類精確度計(jì)算
????????????i
????????????accu=accu+1;?
????????end;?
????end;
end;?
accuracy=accu/(NumberOfClass*NumberOfTest)?%輸出識(shí)別率
p
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????10318??1994-04-18?14:17??KPCA程序\Data\s1\1.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s1\10.pgm
?????文件??????10318??1994-04-18?14:17??KPCA程序\Data\s1\2.pgm
?????文件??????10318??1994-04-18?14:17??KPCA程序\Data\s1\3.pgm
?????文件??????10318??1994-04-18?14:17??KPCA程序\Data\s1\4.pgm
?????文件??????10318??1994-04-18?14:17??KPCA程序\Data\s1\5.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s1\6.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s1\7.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s1\8.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s1\9.pgm
?????文件??????10318??1994-04-18?14:18??KPCA程序\Data\s10\1.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s10\10.pgm
?????文件??????10318??1994-04-18?14:18??KPCA程序\Data\s10\2.pgm
?????文件??????10318??1994-04-18?14:18??KPCA程序\Data\s10\3.pgm
?????文件??????10318??1994-04-18?14:18??KPCA程序\Data\s10\4.pgm
?????文件??????10318??1994-04-18?14:18??KPCA程序\Data\s10\5.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s10\6.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s10\7.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s10\8.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s10\9.pgm
?????文件??????10318??1994-04-18?14:18??KPCA程序\Data\s11\1.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s11\10.pgm
?????文件??????10318??1994-04-18?14:18??KPCA程序\Data\s11\2.pgm
?????文件??????10318??1994-04-18?14:18??KPCA程序\Data\s11\3.pgm
?????文件??????10318??1994-04-18?14:18??KPCA程序\Data\s11\4.pgm
?????文件??????10318??1994-04-18?14:18??KPCA程序\Data\s11\5.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s11\6.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s11\7.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s11\8.pgm
?????文件??????10318??1994-04-18?14:07??KPCA程序\Data\s11\9.pgm
............此處省略417個(gè)文件信息
評(píng)論
共有 條評(píng)論