資源簡(jiǎn)介
LDA人臉識(shí)別 Matlab code 。。。。。。。。。。。

代碼片段和文件信息
function?[DFLD_Trans]=F_JDLDAPro(TrainDatavNumEachClass);?
%
%?Syntax:?[DFLD_Trans]=F_JDLDAPro(TrainDatavNumEachClass);?
%
%?This?function?builds?a?regularized?LDA?subspace?based?on?Juwei‘s?R-LDA
%?method?which?presented?in?the?following?paper
%?Juwei?Lu?K.N.?Plataniotis?A.N.?Venetsanopoulos?“Regularization?Studies?
%?of?Linear?Discriminant?Analysis?in?Small?Sample?Size?Scenarios?with?Application?
%?to?Face?Recognition“?Pattern?Recognition?Letter?in?press.
%
%?TrainData:?Input?training?data?should?be?a?matrix?with?each?column?vector?being
%???a?sample.
%?vNumEachClass:?the?number?of?the?samples?per?class?in?[TrainData].
%
%?Author:?Lu?Juwei?-?Bell?Multimedia?Lab?Dept.?of?ECE?U.?of?Toronto
%?Created?in?08?Dec?2003.
%
VERY_SMALL=1e-3;
I=find(vNumEachClass<=2);
sss_rate=sum(vNumEachClass(I))/sum(vNumEachClass);
if?sss_rate>=0.5
????%?For?L=2;?L?is?the?number?of?training?samples?per?subject.
????stRegParam=struct(‘Eta_Sw‘{1}‘Threshold_EigVal_Sb‘{0.02}‘Update_EigVal_Sb‘{0.05}‘RemainEigVec‘{1});
else
????%?For?L>2;
????stRegParam=struct(‘Eta_Sw‘{1e-3}‘Threshold_EigVal_Sb‘{0.02}‘Update_EigVal_Sb‘{0.2}‘RemainEigVec‘{0.8});
end
%?regularization?parameter?for?ill-posed?within-class?scatter?matrix.
%?smaller?number?of?training?samples?per?subject?need?stronger?regularizer.
%?\eta?\in?[01].?Try?different?values?of?eta?to?find?the?best?one.
%?For?simplicity?set?eta_sw=1e-3?for?L>2?while?eta_sw=1?for?L=2.?
eta_sw=stRegParam.Eta_Sw;
%?The?threshold?is?used?to?determine?which?small?eigenvalues?of?Sb?need?to
%?be?adjusted.?For?simplicity?set?thresh_eigval_sb=0.02?(of?the?biggest?
%?eigenvalue?of?Sb).
thresh_eigval_sb=stRegParam.Threshold_EigVal_Sb;
%?The?the?new?value?for?those?eigvalues?of?Sb?needed?to?be?adjusted.
%?For?simplicity?set?update_eigval_sb=0.2?(of?the?biggest?eigenvalue?of
%?Sb).
update_eigval_sb=stRegParam.Update_EigVal_Sb;
%?The?rate?of?remaining?eigenvectors?of?Sb?others?will?be?thrown?away.
%?For?simplicity?set?remain_eigvec=1?i.e.?keep?all?the?eigenvectors.
remain_eigvec=stRegParam.RemainEigVec;
[rowTraincolTrain]=size(TrainData);
sample_num=colTrain;
eachclass_num=vNumEachClass;
class_num=length(eachclass_num);
mean_class=mean(double(TrainData)2);
mean_eachclass=zeros(rowTrainclass_num);
t=1;
for?j=1:class_num
????tt=t+eachclass_num(j)-1;
????a=double(TrainData(:t:tt));
? mean_eachclass(:j)=mean(a2);
????t=tt+1;
end
clear(‘a(chǎn)‘);
%?The?first?m_b?eigenvectors?corresponding?to?largest?eigenvalues?will?be?extracted
%?from?eigenvectors?of?Sb
m_b=class_num-1;
%?Sw?:?the?within-class?scatter?conviariance?matrix?
%?Sw=zeros(rowTrainrowTrain);
%?Sw=Phi_w*Phi_w‘;
Phi_w=zeros(rowTraincolTrain);
j=1;
for?i=1:class_num
????t=double(TrainData(:j:j+eachclass_num(i)-1));
????m=kron(mean_eachclass(:i)ones(1eachclass_num(i)));
????b=t-m;
????Phi_w(:j:j+eachclass_num(i)-1)=b;
%?? Sw=Sw+b*b‘;?
? j=j+eachclass_num(i);?
end?
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件????????2214??2004-11-09?14:39??readme.txt
?????文件????????4990??2004-11-02?11:31??F_JDLDAPro.m
?????文件??????335890??2004-10-29?10:05??R_LDA_PRL.pdf
?????文件??????483064??2004-11-01?17:02??DF_LDA_TNN.pdf
- 上一篇:Matlab 6.5免安裝版
- 下一篇:盲信號(hào)分離算法 matlab
評(píng)論
共有 條評(píng)論