mondeo_2008 发表于 2007-5-16 23:25

求助 人脸识别 用MDA(多重判别分析)降维的问题(W的求法)

老师给了我一个人脸库,是644*400的,一共40张脸,每个10张图片,现要求我用40张脸的前5个图片进行训练,后5个图片进行识别。

我用MDA降维,即将D(这里D=644)维空间的投影到C-1(这里C=40)维上,关键就是Y=W'*X, 这里W的选取,我不太会,书上说W的选取关键是方向的选取,它要使得投影以后类内最大程度聚合,同时类间最大程度分离。

书中说了最优矩阵W的列向量是    Sb*Wi=a*Sw*Wi   最大特征值对应的特征向量    其中Sb是类内散布矩阵   Sw是类间散布矩阵

我的问题是:
1    求最大特征值对应的特征向量不会(前面有贴有这问题,但是我照样没改出来 -_-)
2    我求的W应该是644*39的,因为降到39维空间,可是最大特征值对应的特征向量应该就是一个列向量    (即644*1的),感      觉不大对
3    我的程序还老出现“Warning: Matrix is close to singular or badly scaled.
                                       Results may be inaccurate. RCOND = 3.631628e-022.”
我的问题代码:

load orl_faces%加载orl数据库faces
a=faces; %644*400



%取出所有训练图像y 是644*200
y=[];
for i=1:40
    for j=1:5    %相当于 for(i=0;i<mm;i++)
      y=;
    end
end


%估计总体的协差阵ST
a2=y'; %转置
yy=mean(a2); %求均值,yy:1*644
xmean=[];
for i=1:5*40
    xmean=;
end
xmean= xmean'
M= xmean* xmean';
M=(1/5*40)*M;% M为总体协差阵   M是ST



%求SB
x=[];
ymean=[];
for i=1:40
for j=1:5    %相当于 for(i=0;i<5;i++)
x=;
end
a1=x'; %转置
xx=mean(a1); %求均值,xx:1*644
ymean=;
end
ymean= ymean'
N= ymean* ymean';
N=(1/40)*N;%N是SB
S=M-N;
   


%求a3最大特征值对应的特征向量                                              这段是对这论坛里贴修改的
a3=zeros(644);
f=inv(S);%算矩阵SW的逆矩阵
a3=f*N;
=eval( ['eigs(a',num2str(3), ')']);
    eval( [' tbmax',num2str(3),'=max(r(:))'])
    eval( [' tbvector',num2str(3),'=e(:,1)'])
w=tbvector3;
B=w'*x;%将D维的X投影到C-1维的Y上





%输入查询图像p
accu=0;
for m=1:40
    for n=6:10
       p=a(:,(m-1)*10+n);
%计算查询图象p的投影坐标
Q=w'*p;
% 计算出p与所有样本图象X间的欧几里得距离
      distance=[];
      fork=1:size(B,2)
             e=Q-B(:,k);
             temp=sqrt(sum(e.^2));
             mag=temp;
             distance=; %数组distance存放距离
      end
                =sort(distance);
             %最近邻域判别法
      class=ceil(index2(1)/5); % ceil向正取整,class:距离最近的类别
         if class==m;
         accu=accu+1; %记录识别成功次数
         end      
end
end
accuracy=(accu/200)*100




这段代码的错误应该从“%估计总体的协差阵ST”到“B=w'*x;%将D维的X投影到C-1维的Y上”之间
   
   

mondeo_2008 发表于 2007-5-17 11:58

拜托大家,帮我看看吧

mondeo_2008 发表于 2007-5-17 14:04

自己顶
页: [1]
查看完整版本: 求助 人脸识别 用MDA(多重判别分析)降维的问题(W的求法)