orl_faces数据集

今天整理电脑时发现还有这个数据集,本想删掉但想起当初找的时候来之不易。明明github上开源的东西,百度一搜非得是开会员,要这个要那个的,秉着开源精神(关注或者点赞都可以/doge)我今天就把网盘链接放这了,需要的自取:
链接:https://pan.baidu.com/s/1Iq52vrjYOBvksyNcZz_zCg
提取码:zan0

附上当时PCA人脸识别的matlab代码

function FaceRecognition
%本算法使用的是orl_faces数据集(ORL人脸数据集共包含40个不同人的400张图像,是在1992年4月至1994年4月期间由英国剑桥的Olivetti研究实验室创建)
%注意修改数据集文件路径,共5处
clear  % calc xmean,sigma and its eigen decomposition
close all
%%
allsamples=[];%所有训练图像
syms line %line用来分割10组(一共有40个人,每个人有10张照片,40个人的一张照片作为一组)照片,分别用来训练和测试准确度
line=9;%用一个人的9张照片训练,剩下一张用来测试
for i=1:40%40个人    for j=1:line %取每个人的前line张照片       a=imread(strcat('E:\orl_faces\s',num2str(i),'\',num2str(j),'.pgm'));          b=a(1:112*92); % b是行矢量 1×N,其中N=10304,提取顺序是先列后行,即从上到下,从左到右        b=double(b);        allsamples=[allsamples; b];  % allsamples 是一个M * N 矩阵,allsamples 中每一行数据代表一张图片,其中M=200   end
end
%%
train=40*line;%用来训练的总图片数量
samplemean=mean(allsamples); % 平均图片,1 × N
figure%平均图
display('平均脸:')
imshow(mat2gray(reshape(samplemean,112,92)));
%%
for i=1:train xmean(i,:)=allsamples(i,:)-samplemean; % xmean是一个M × N矩阵,xmean每一行保存的数据是“每个图片数据-平均图片”
end;
figure%差值图
display('差值脸:')
imshow(mat2gray(reshape(xmean(1,:),112,92)));
%%
sigma=xmean*xmean';   % M * M 阶矩阵
[v,d]=eig(sigma);
d1=diag(d);
[d2,index]=sort(d1); %以升序排序
cols=size(v,2);% 特征向量矩阵的列数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
a=1:1:train;
for i=1:1:train
y(i)=sum(dsort(a(1:i)) );
end
%%
figure
y1=ones(1,train);
plot(a,y/dsum,a,y1*0.9,'linewidth',2);
grid
title('前n个特征特占总的能量百分比');
xlabel('前n个特征值');
ylabel('占百分比');
%%
figure
plot(a,dsort/dsum,'linewidth',2);
grid
title('第n个特征特占总的能量百分比');
xlabel('第n个特征值');
ylabel('占百分比');
%%
i=1;  % (训练阶段)计算特征脸形成的坐标系
while (i<=p && dsort(i)>0)      base(:,i) = dsort(i)^(-1/2) * xmean' * vsort(:,i);   % base是N×p阶矩阵,除以dsort(i)^(1/2)是对人脸图像的标准化,特征脸i = i + 1;
end
%%
allcoor = allsamples * base; accu = 0;   % 测试过程
for i=1:40     for j=(line+1):10 %读入数据集中剩下的测试图像       a=imread(strcat('E:\orl_faces\s',num2str(i),'\',num2str(j),'.pgm'));     b=a(1:10304);        b=double(b);        tcoor= b * base; %计算坐标,是1×p阶矩阵      for k=1:(train)                 mdist(k)=norm(tcoor-allcoor(k,:));        end;          %三阶近邻   [dist,index2]=sort(mdist);              class1=floor(index2(1)/line)+1;      class2=floor(index2(2)/line)+1;        class3=floor(index2(3)/line)+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;
display('模型识别率')
accuracy=accu/(400-train) %输出识别率
%%
display('比如说,我想找这第七个人,这是他第10张照片')
i1=7; j1=10;%数据集中的第7个人,其第10张照片
figure
imshow((strcat('E:\orl_faces\s',num2str(i1),'\',num2str(j1),'.pgm')));
for i=1:40     a=imread(strcat('E:\orl_faces\s',num2str(i1),'\',num2str(j1),'.pgm'));%这行意思是告诉机器要找谁b=a(1:10304);        b=double(b);        tcoor= b * base; %计算坐标,是1×p阶矩阵      for k=1:trainmdist(k)=norm(tcoor-allcoor(k,:));        end;[dist,index2]=sort(mdist); %三阶近邻              class1=floor(index2(1)/line)+1;      class2=floor(index2(2)/line)+1;        class3=floor(index2(3)/line)+1;        if class1~=class2 && class2~=class3 class=class1;         elseif class1==class2          class=class1;         elseif class2==class3     class=class2;         end;         if class==i      figure%平均图display('选了s7的第10张照片,该张照片没训练过,机器不认识,如果识别出这张照片是s7这个人,那就随便挑一张(这里就挑j1-1即第9张)显示')imshow(strcat('E:\orl_faces\s',num2str(i),'\',num2str(j1-1),'.pgm'));    end;
end

运行效果

视频链接: https://imgbed4iloker.oss-cn-hangzhou.aliyuncs.com/video/video/matlab_pca%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB_batch.mp4

解说下次有空再写

orl_faces数据集分享相关推荐

  1. 数据集分享 | IWR1642呼吸心跳数据集

    本文编辑:@调皮连续波,保持关注调皮哥,获得更多学习内容和建议! 各位大佬好,我是调皮哥,感谢大家的关注. 因为疫情,有的人回不了学校的实验室,因此早在先前我就想为大家采集一些数据,提供给大家做算法分 ...

  2. 最全自动驾驶数据集分享系列八 | 仿真数据集

    目前关于自动驾驶数据集你想知道的,应该都在这里了,这是「整数智能」自动驾驶数据集八大系列分享之系列八: 「本期划重点」 全球首个多传感器虚拟标注数据集:51WORLD 最大的自动驾驶多任务合成数据集: ...

  3. kaggle数据集、mnist数据集、imdb数据集分享

    数据集文件分享: kaggle数据集.mnist数据集.imdb数据集分享 mnist 数据集 链接:https://pan.baidu.com/s/1g5GQf1RhRprUNizwkazdJQ 提 ...

  4. Python爬虫下载加州高速路网PeMS交通流量数据集以及交通公开数据集分享

    由于PeMS(PeMS)下载交通数据集一次只能下载一周数据,并且要一次一次的点击,比较麻烦. 故写出了一个小的爬虫程序,自动下载PeMS路网上VDS的数据集(前提需要FQ,需要挂全局代理) 下载为5分 ...

  5. 最全自动驾驶数据集分享系列一|目标检测数据集(2/3)

    目前关于自动驾驶数据集你想知道的,应该都在这里了,这是「整数智能」自动驾驶数据集八大系列分享之系列一: 「本期划重点」 清华大学推出全球首个车路协同自动驾驶研究数据集 Nexar视频数据集覆盖70多个 ...

  6. 最全自动驾驶数据集分享系列一|目标检测数据集(3/3)

    目前关于自动驾驶数据集你想知道的,应该都在这里了,这是「整数智能」自动驾驶数据集八大系列分享之系列一: 「本期划重点」 Mapillary推出最大.最多样化的公开交通标志数据集,覆盖全球六大洲 DTL ...

  7. 公开数据集分享(一)-MMWHS

    公众号中有粉丝私信我,向我咨询公开数据集(MMWHS)的数据,下面我给大家大概介绍一下这个数据集,并提供我之前关于这个数据集做的一些工作. MMWHS-是一个全心脏分割的工作,一共是8类,数据集的具体 ...

  8. 最全遥感样本数据集分享:场景识别数据集

    之前给大家介绍了基础的遥感数据知识和智能遥感任务,本期就来盘点一下在遥感模型训练中常用的数据集. 从应用领域出发,遥感影像样本数据集可分为8个类型:遥感场景识别.土地覆被/利用分类.专题要素提取.变化 ...

  9. 深度学习【道路提取】:马萨诸塞州道路数据集分享

    最近忙着弄毕业论文,方向是道路自动提取方向的,在网上找了好久的相关的数据集,也只有这个的了马萨诸塞州道路数据集,写了个爬虫,多线程,挂着VPN也要用一天(家里网不太好哈哈),拿出来分享一下,因为我看网 ...

  10. 20 w 新闻数据集分享

    新闻系列的分享进入尾声了,在开启这个系列前,我说过一个目标是,让 nlper 有足够多的新闻语料数据集去训练. 不知不觉中,新闻聚合网站(https://xt98.tech:9494) 自从 2021 ...

最新文章

  1. JScrollPane 滚动处理
  2. java resume过时方法_学点开发|关于Java多线程用法解析
  3. SAP一句话入门:Human Resource
  4. spoj Help the Military Recruitment Office!
  5. imageNamed和imageWithContextOfFile的区别?哪个性能高
  6. transport request 实现原理
  7. 机器学习朴素贝叶斯算法+tkinter库界面实现好瓜坏西瓜分类
  8. 用python画面积图_Python笔记:用matplotlib绘制面积图
  9. java做一个客房管理系统定制_开题报告基于Java的酒店客房管理系统的设计与实现.doc...
  10. 数据库工作笔记14---win10系统安装sqlserver2005提示服务无法启动
  11. POJ NOI MATH-7657 连乘积末尾0的个数
  12. 常见并发工具的使用和原理解析——Condition(重点在第五节)
  13. 小程序Git版本管理
  14. 单例模式中的懒汉模式和饿汉模式是什么?区别又是什么?
  15. html制作作业提交入口,制作网页详细操作步骤
  16. linux病毒扫描工具,linux病毒扫描工具ClamAV使用
  17. 电脑壁纸软件(Bing Wallpaper)
  18. echarts-特殊需求
  19. 签了工作之后才发现,自己太草率了.....我看过的关于职业规划最好最全面的一篇文章...
  20. 【全文检索】sqlite-fts4和pgsql的全文检索对比

热门文章

  1. wordpress单独html页面,wordpress独立留言板页面
  2. Windows上编写汇编程序
  3. 免费好用的视频格式转换器是哪个呢
  4. 厦门理工学院计算机毕业要求,计算机教学中心-厦门理工学院教务处.PDF
  5. Ani网页木马生成器
  6. 能使用firebug的火狐浏览器下载地址
  7. 华为h12m03装系统_华为H22H-03服务器怎么从U盘装系统?
  8. python爬取微博评论_python爬虫手把手教你抓取微博评论(完整代码)
  9. lumaqq receiver
  10. 华为交换机Hybird 与 单臂路由