资源简介
简单的pca人脸识别程序,包括了orl的人脸库
运行方便,不需要修改.
程序可输出识别率
代码片段和文件信息
%一个修改后的PCA进行人脸识别的Matlab代码
% calc xmeansigma and its eigen decomposition
allsamples=[];%所有训练图像
for i=1:40
for j=1:5
a=imread(strcat(‘ORL\s‘num2str(i)‘\‘num2str(j)‘.pgm‘));
% imshow(a);
b=a(1:112*92); % b是行矢量 1×N,其中N=10304,提取顺序是先列后行,即从上到下,从左到右
b=double(b);
allsamples=[allsamples; b]; % allsamples 是一个M * N 矩阵,allsamples 中每一行数据代表一张图片,其中M=200
end
end
samplemean=mean(allsamples); % 平均图片,1 × N
for i=1:200 xmean(i:)=allsamples(i:)-samplemean; % xmean是一个M × N矩阵,xmean每一行保存的数据是“每个图片数据-平均图片”
end;
sigma=xmean*xmean‘; % M * M 阶矩阵
[v d]=eig(sigma);
d1=diag(d);
[d2 index]=sort(d1); %以升序排序
cols=size(v2);% 特征向量矩阵的列数
for i=1:cols
vsort(:i) = v(: index(cols-i+1) ); % vsort 是一个M*col(注:col一般等于M)阶矩阵,保存的是按降序排列的特征向量每一列构成一个特征向量
dsort(i) = d1( index(cols-i+1) ); % dsort 保存的是按降序排列的特征值,是一维行向量
end %完成降序排列
%以下选择90%的能量
dsum = sum(dsort);
dsum_extract = 0;
p = 0;
while( dsum_extract/dsum < 0.9)
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)是对人脸图像的标准化,详见《基于PCA的人脸识别算法研究》p31
i = i + 1;
end
% add by wolfsky 就是下面两行代码,将训练样本对坐标系上进行投影得到一个 M*p 阶矩阵allcoor
allcoor = allsamples * base;
accu = 0;
% 测试过程
for i=1:40
for j=6:10 %读入40 x 5 副测试图像
a=imread(strcat(‘ORL\s‘num2str(i)‘\‘num2str(j)‘.pgm‘));
b=a(1:10304);
b=double(b);
tcoor= b * base; %计算坐标,是1×p阶矩阵
for k=1:200
mdist(k)=norm(tcoor-allcoor(k:));
end;
%三阶近邻
[distindex2]=sort(mdist);
class1=floor( index2(1)/5 )+1;
class2=floor(index2(2)/5)+1;
class3=floor(index2(3)/5)+1;
if class1~=class2 && class2~=class3
class=class1;
elseif class1==class2
class=class1;
%elseif class2==class3
% class=class2;
end;
if class==i
accu=accu+1;
end;
end;
end;
accuracy=accu/200 %输出识别率
zuobiao=[1:100];
plot(zuobiaoaccuracy);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1579 1995-02-24 02:13 orl\README
文件 10318 1994-04-18 21:17 orl\s1\1.pgm
文件 10318 1994-04-18 21:07 orl\s1\10.pgm
文件 10318 1994-04-18 21:17 orl\s1\2.pgm
文件 10318 1994-04-18 21:17 orl\s1\3.pgm
文件 10318 1994-04-18 21:17 orl\s1\4.pgm
文件 10318 1994-04-18 21:17 orl\s1\5.pgm
文件 10318 1994-04-18 21:07 orl\s1\6.pgm
文件 10318 1994-04-18 21:07 orl\s1\7.pgm
文件 10318 1994-04-18 21:07 orl\s1\8.pgm
文件 10318 1994-04-18 21:07 orl\s1\9.pgm
文件 10318 2008-06-18 17:33 orl\s1\1.pgmhex.TXT
文件 209256 2008-07-05 11:13 orl\s1\pgm.rar
文件 3387 2008-06-18 18:01 orl\s1\pgm\Test1.dsp
文件 533 2008-06-18 18:01 orl\s1\pgm\Test1.dsw
文件 41984 2008-08-01 16:52 orl\s1\pgm\Test1.ncb
文件 1427 2008-07-05 11:25 orl\s1\pgm\Test1.plg
文件 923 2008-07-05 11:25 orl\s1\pgm\Test1.c
文件 218112 2008-08-01 16:52 orl\s1\pgm\Test1.opt
文件 10318 1994-04-18 21:17 orl\s1\pgm\a\1.pgm
文件 33792 2008-07-05 11:25 orl\s1\pgm\Debug\vc60.idb
文件 53248 2008-07-05 11:25 orl\s1\pgm\Debug\vc60.pdb
文件 175656 2008-06-18 21:10 orl\s1\pgm\Debug\Test1.pch
文件 4302 2008-07-05 11:25 orl\s1\pgm\Debug\Test1.obj
文件 180282 2008-07-05 11:25 orl\s1\pgm\Debug\Test1.exe
文件 451584 2008-07-05 11:25 orl\s1\pgm\Debug\Test1.pdb
文件 210672 2008-07-05 11:25 orl\s1\pgm\Debug\Test1.ilk
文件 10318 1994-04-18 21:17 orl\s1\pgm\Debug\a\1.pgm
文件 10318 1994-04-18 21:18 orl\s10\1.pgm
文件 10318 1994-04-18 21:07 orl\s10\10.pgm
............此处省略437个文件信息
相关资源
- 中科院山世光老师开源的Seetaface人脸
- SAR 解压工具SAPCAR.EXE文件
- PCA和LDA在高光谱图像降维中的应用综
- AppCan项目源码
- 人脸识别离线SDK配合博客使用
- SIFT\\PCA-SIFT\\SURF论文源代码
- 树莓派人脸识别USB摄像头
- PCAP685+STM32F103
- openCV图像检测资源包
- Opencv 下Cascade Classifier实现人脸识别的
- PCA+SVM+RF
- ipcamadapter_x64 ip camera adapter 64 bit
- 基于人脸识别考勤系统的设计与实现
- 人脸识别系统程序
- tcpdump 源代码
- 安卓原生FaceDetection人脸识别
- 主成分极限学习机.rar
- 基于深度学习的三维人脸识别
- 调用百度接口的人脸识别.net
- 百度接口实现人脸识别web
- 基于几何特征与深度数据的三维人脸
- 百张人脸识别测试头像
- 调试通过的KPCA核主成分分析人脸识别
- OpenCV人脸识别290071
- 主成分分析c代码与原理
- 用于人脸识别的AR人脸库
- Unity之离线人脸识别.rar
- 虹软Arcsoft_v2.0人脸识别Demo(Linux)
- HPCA 2019论文集
- 人脸识别最新论文
评论
共有 条评论