资源简介

基于ICA(独立成分分析)方法进行人脸识别,人脸库已经给出

资源截图

代码片段和文件信息


clear all
clc



prompt = {‘Enter test image name (a number between 1 to 10):‘};
dlg_title = ‘Input of ICA-based Face Recognition System‘;
num_lines= 1;
def = {‘1‘};

TestImage  = inputdlg(promptdlg_titlenum_linesdef);
TestImage = strcat(‘F:\研一课程\图像分析与计算机视觉\ICA face recognition\TestDatabase‘‘\‘char(TestImage)‘.BMP‘);
im = imread(TestImage);


allsamples=[];  %所有训练图像 
for i=1:20
    %a=imread( strcat( ‘D:\Tools\Matlab\matlab new project\PCA_based Face Recognition System\TrainDatabase‘ num2str(i)‘.bmp‘);    % 读取文件夹里所有图片
    % figure(i)imshow(a);
    str = int2str(i);%将整形转换成字符型
    str = strcat(‘\‘str‘.bmp‘);%str=‘\i.bmp‘
    str = strcat(‘F:\研一课程\图像分析与计算机视觉\ICA face recognition\TrainDatabase‘str);%读入图片i.bmp
    a = imread(str);                  %读入图片i.bmp
    b=a( 1:100*100 );                        % b是行矢量 1×N,其中N=10000,提取顺序是先列后行,即从上到下,从左到右
    b=double(b);
    allsamples=[ allsamples; b ];            % allsamples是一个M*N 矩阵,allsamples中每一行数据代表一张图片,其中M=10
end

[MT]=size(allsamples); %获取输入矩阵的行/列数,行数为观测数据的数目,列数为采样点数
average=mean(allsamples‘)‘;%均值
for i=1:M
    X(i:)=allsamples(i:)-average(i)*ones(1T);
end

%白化/球化
Cx=cov(X‘1);%计算协方差矩阵Cx
[eigvectoreigvalue]=eig(Cx);%计算Cx的特征值和特征向量
W=eigvalue^(-1/2)*eigvector‘;%白化矩阵
Z=W*X;%新的观测信号

%迭代
Maxcount=10000;%最大迭代次数
Critical=0.00001;%判断是否收敛
m=M;%需要估计的分量的个数
W=rand(m);%产生区间(0,1)均匀分布的随机数,是m*m的矩阵
for n=1:m
    WP=W(:n);%初始权矢量(任意),只产生了一个列向量
    %Y=WP‘*Z
    %G=Y.^3;%G为非线性函数,可取y^3等
    %GG=3Y.^2;G的导数
    count=0;
    LastWP=zeros(m1);%全0列向量
    W(:n)=W(:n)/norm(W(:n));
    while norm(WP-LastWP)>Critical && norm(WP+LastWP)>Critical 
        %abs(WP-LastWP)&abs(WP+LastWP)>Critical %判断收敛的句子
        count=count+1;%迭代次数
        LastWP=WP;%上次迭代的值
        %WP=1/T*Z*((LastWP‘*Z).^3)‘-3*LastWP;
        for i=i:m
            WP(i)=mean(Z(i:).*(tanh((LastWP)‘*Z)))-(mean(1-(tanh((LastWP))‘*Z).^2)).*LastWP(i);
        end
        WPP=zeros(m1);
        for j=1:n-1
            WPP=WPP+(WP‘*W(:j))*W(:j);
        end
        WP=WP-WPP;
        WP=WP/(norm(WP));
        
        if count==Maxcount
            fprint(‘未找到相应的信号‘);
            return ;
        end
    end
    W(:n)=WP;
end
Z=W‘*Z;


allcoor =allsamples*Z‘ ;  
                    
  
    b=im(1:10000);
    b=double(b);
   
    tcoor= b*Z‘;         
    for k=1:20
       
        temp(k)=norm(tcoor-allcoor(k:));
          
    end
   [distRecognized_index]=sort(temp);
 
  
  
  
imshow(im)
title(‘Test Image‘);
a=Recognized_index(1);
matchp= strcat(‘F:\研一课程\图像分析与计算机视觉\ICA face recognition\TrainDatabase‘‘\‘int2str(Recognized_index(1))‘.BMP‘); 
figureimshow(matchp);
title(‘Matched image‘);


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

     文件       3038  2013-06-16 17:01  ICA face recognition\recognition.m

     文件      30966  2013-06-16 14:17  ICA face recognition\TestDatabase\1.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TestDatabase\10.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TestDatabase\2.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TestDatabase\3.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TestDatabase\4.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TestDatabase\5.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TestDatabase\6.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TestDatabase\7.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TestDatabase\8.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TestDatabase\9.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\1.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\10.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\11.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\12.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\13.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\14.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\15.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\16.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\17.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\18.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\19.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\2.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\20.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\3.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\4.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\5.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\6.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\7.bmp

     文件      30966  2013-06-16 14:17  ICA face recognition\TrainDatabase\8.bmp

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

评论

共有 条评论