- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MatlabPCA+SVM人脸识别(一).doc
?
Matlab PCA+SVM人脸识别(一)
分类:?Matlab?模式识别?计算机视觉2014-05-23 20:12?3260人阅读?评论(20)?收藏?举报
PCA人脸识别SVM主成分分析支持向量机
目录(?)[+]
概述:
编程平台:Matlab;
数据: ? ? ? ORL人脸库。pgm格式的图片。40人,每人10幅图,图像大小为112*92像素。图像本身已经经过处理,不需要进行归一化和校准等工作;下载地址第三段的两个都是下载链接
数据处理:主成分分析法(PCA);有关算法原理可以参考这里
分类器: ? ?支持向量机(SVM)。
人脸识别算法步骤概述:
1、读取训练数据集;
2、主成分分析法降维并去除数据之间的相关性;
3、数据规格化(去除数据单位因素对分类造成的影响,这个对此实验造成的影响不大);
4、SVM训练(选取径向基和函数);
5、读取测试数据、降维、规格化;
6、用步骤4产生的分类函数进行分类(多分类问题,采用一对一投票策略,归位得票最多的一类);
7、计算正确率。
准备工作:
下载人脸库
如果你用的不是ORL人脸库,可能还需要先进行人脸检测
把Matlab的左上角当前路径(current folder)设置为你的.m的保存的路径,或者用addpath(...... )设置
编程实现:
读取数据:
ReadFace.m文件,若flag=0,表述读取原文件的前五幅图作为训练数据,若flag=1,表述读取原文件的后五幅图作为测试数据,数据存入f_matrix中,每一行为一个文件,每行为112*92列。
[plain]?view plaincopy
function?[f_matrix,realclass]?=?ReadFace(npersons,flag)??
%读取ORL人脸库照片里的数据到矩阵??
%输入:??
%?????nPersons-需要读入的人数,每个人的前五幅图为训练样本,后五幅为验证样本??
%?????imgrow-图像的行像素为全局变量??
%?????imgcol-图像的列像素为全局变量??
%?????flag-标志,为0表示读入训练样本,为1表示读入测试样本??
%输出:??
%已知全局变量:imgrow=112;?imgcol=92;??
global?imgrow;??
global?imgcol;??
realclass=zeros(npersons*5,1);??
f_matrix=zeros(npersons*5,imgrow*imgcol);??
for?i=1:npersons??
????facepath=E:\ORL_face\s;??
????facepath=strcat(facepath,num2str(i));??
????facepath=strcat(facepath,\);??
????cachepath=facepath;??
????for?j=1:5??
????????facepath=cachepath;??
????????if?flag==0?%读入训练样本图像的数据??
????????????facepath=strcat(facepath,0+j);??
????????else?%读入测试样本数据??
????????????facepath=strcat(facepath,num2str(5+j));??
????????????realclass((i-1)*5+j)=i;??
????????end??
????????facepath=strcat(facepath,.pgm);??
????????img=imread(facepath);??
????????f_matrix((i-1)*5+j,:)=img(:);??
????end??
end??
end??
主成分分析:
去除原成分各维之间的相关性并进行降维,对降维后维数的选择要看你对最小平方误差的要求,被舍去的协方差矩阵的特征根的平方和与所有特征根的平方和就是最小平方误差。这里选择降至20维。下面是fastPCA.m
[plain]?view plaincopy
function?[?pcaA,V]?=?fastPCA(?A,k,mA)??
%快速PCA,主成份分析??
%输入:A-样本矩阵,每行是一个样本,列是样本的维数??
%??????k-降至k维??
%输出:pacA-降维后的k维样本特征向量组成的矩阵,即主成分??
%?????v-主成分分量??
m=size(A,1);??
Z=(A-repmat(mA,m,1));??
T=Z*Z;??
[V,D]=eigs(T,k);%计算T的最大的k个特征值和特征向量??
V=Z*V;?????????%
文档评论(0)