中科院模式识别大作业 - 人脸识别
更新时间:2024-01-15 06:03:01 阅读量: 教育文库 文档下载
- 中科院自动化所模式识别推荐度:
- 相关推荐
人脸识别实验报告
---- 基于PCA和欧氏距离相似性测度 一、理论知识 1、PCA原理
主成分分析(PCA) 是一种基于代数特征的人脸识别方法,是一种基于全局特征的人脸识别方法,它基于K-L分解。基于主成分分析的人脸识别方法首次将人脸看作一个整体,特征提取由手工定义到利用统计学习自动获取是人脸识别方法的一个重要转变[1]。简单的说,它的
原理就是将一高维的向量,通过一个特殊的特征向量矩阵,投影到一个低维的向量空间中,表示为一个低维向量,并不会损失任何信息。即通过低维向量和特征向量矩阵,可以完全重构出所对应的原来高维向量。特征脸方法就是将包含人脸的图像区域看作是一种随机向量,因此,可以采用K-L变换获得其正交K-L基底。对应其中较大特征值的基底具有与人脸相似的形状,因此又称为特征脸。利用这些基底的线性组合可以描述、表达和逼近人脸图像,因此可以进行人脸识别与合成。识别过程就是将人脸图像映射到由特征脸张成的子空间上,比较其与己知人脸在特征空间中的位置,从而进行判别。
2、基于PCA的人脸识别方法
2.1 计算特征脸
设人脸图像f(x,y)为二维N×M灰度图像,用NM维向量R表示。人脸图像训练集为?Ri|i?1,2,...,P?,其中P为训练集中图像总数。这P幅图像的平均向量为:
1PR??Ri
Pi?1_对训练样本规范化,即每个人脸Ri与平均人脸R的差值向量:
_Ai =Ri-R (i= 1,2,…,P)
其中列向量Ai表示一个训练样本。 训练图像由协方差矩阵可表示为:
C?AAT
_其中训练样本NM×P维矩阵A?[A1,A2,...,AP]
特征脸由协方差矩阵C的正交特征向量组成。对于NM人脸图像,协方差矩
I
阵C的大小为NM×NM,对它求解特征值和特征向量是很困难的,由此引入奇异值分解定理来解决维数过高的问题。
2.2 奇异值分解定理
奇异值分解定理( Singular ValueDecomposition简称SVD定理)原理表述如下: 其中A是一个秩为r的n×r维矩阵,则存在两个正交矩阵:
U?[u0,u1,...,ur?1]?Rn?rV?[v0,v1,...,vr?1]?Rr?r以及对角矩阵
UTU?I VTV?I
??diag??0,?1,...,?r?1??Rr?r
且?0??1????r?1
满足下试:
A?U?2VT
其中: ?i?i?0,1,?r?1?为矩阵AAT和ATA的非零特征值, ui与vi分别为AAT和
ATA对应于?i的特征向量。上述分解称为矩阵A的奇异值分解(简称SVD),?i1为A的奇异值。
由上述定理可以得到一个推论:
U?AV?2
由于协方差矩阵C?AAT,故构造矩阵: L?ATA?RP?P ,容易求出其特征值?i及相应的正交归一特征向量vi (i=1,2,…,p)。有上述推论可知, C的正交归一特征向量ui为:
?1ui?1?iAvii?1,2,?,P
这就是图像的特征向量,它是计算P×P低维矩阵L的特征值和特征向量而间接求出来的。实际上个K(K
2.3 特征向量的选取
我们总共得到了P(训练样本数目)个特征向量。虽然P比NM小很多。但通常情况下,P仍然会太大。根据应用的要求,并不是所有的ui都有很大的保留意义。
II
考虑到使用K-L变换做为对人脸图像的压缩手段,可以选取最大的前K个特征向量,使得:
????i?1i?1Pki??
i在实际中,可以选择?=0.90,或者自定义的其他值。这说明样本集在前K个轴上的能量占到整个能量的90%以上。
2.4 基于特征脸的人脸识别
基于特征脸的人脸识别过程由训练阶段和识别阶段两个阶段组成。在训练阶段,每个已知规范化后的人脸Ai映射到由特征脸张成的子空间上,得到K维向量:
Ci?UTAiTi?1,2,?,P
其中Ci??c1,c2,?,ck?,U??u1,u2,?uk?,P为人脸数目。
在识别阶段,首先把待识别的图像规范化后的人脸Ai?R?R映射到特征脸空间,得到向量:
''_C'?UTAi'
'''?c,c,?,c其中C'??k? ?12T计算C'和Ci的欧氏距离,有:
?i?||C'?Ci||2
找到最小的?i,则待识别图像与第i个训练样本匹配。
二、实现方法步骤
1、 获取数据。在编程时具体是把一幅二维的图像转换成一维的;
2、 减去均值,实现图像数据的规范化处理。
3、 计算协方差矩阵根据SVD原理得到的构造矩阵。 4、 计算构造矩阵的特征向量和特征值。
5、 根据构造矩阵的特征值和特征向量得到协方差矩阵的特征向量。 6、 根据能量比选择主成分特征向量。
7、 得到训练集中样本在主成份上的投影系数,得到待识别图像在主成份上的投影系数,根据已给相似度准则(欧氏距离)对各投影系数进行判别以确定匹配样本。
8、 统计识别率,随机输出几个匹配结果进行观察。
三、实验结果
III
如图所示,对测试集中1192个图像数据的总识别率为69.27%,用时338秒
IV
对于随机输出的四个匹配结果可以看出PCA法能较准确的对人脸进行识别,但是错误率也比较高。
四、参考文献
【1】 边肇其,张学工.模式识别【M】.第2版.北京.:清华大学出版社,2000 【2】 周杰,卢春雨,张长水,李衍达,人脸自动识别方法综述【J】.电子学报,2000,
5(4):102-106
【3】 田印中,董志学,黄建伟,基于PCA的人脸识别算法研究及实现【J】.内蒙
古科技与经济,2010.3
【4】 张俊虎,郝晓剑,邢昊,人脸图像识别中的PCA算法实现【J】.微计算机信
息,2010,26(7—1)
五、附录(matlab 程序代码)
V
用一个文件face_recongnition.m实现从读取文件数据到PCA主成份提取和人脸识别的整个过程 tic;
SampleFiles = dir('F1');%返回目录中的文件 %经测试图片文件从3到1193 allsample = [];%样本矩阵 fnum=3; lnum=1193; for i = fnum : lnum
filename = SampleFiles(i).name;%读图片名 filename=strcat('F1','\\',filename); sample = imread(filename); [row,col]=size(sample);
pix_num=row*col;%图片像素点数目 %figure(i);
%subplot(2,2,1);imshow(sample); %subplot(2,2,2);imshow(sample);
temp=reshape(sample,pix_num,1);%返回一个m*1的矩阵temp,将二维图像数据变成一维列向量
allsample=[allsample temp];%将所有图片数据变成一个样本矩阵 end
allsample = uint8(allsample);
VI
%%%%%%%%%主成分分析(PCA)%%%%%%%%%%%%%% %%%%%%%%%计算平均图片数据%%%%%%%%%%% m = mean(allsample,2); %计算样本每一维平均值 img_num = size(allsample,2);%返回列数,也即训练图片数目
%%%%%%计算每个图像与均值的差%%%%%%%%%%%%%% A = zeros(pix_num,img_num);%行为图片像素个数,列为图片数目 m1=ones(1,img_num);%用于构造矩阵运算 A = double(allsample) - m*m1;
%%%%%%%计算协方差矩阵的特征矢量和特征值%%%%%% L = A'*A; %由SVD理论构造矩阵L=A'*A用于计算特征值和特征向量
[V D] = eig(L);%计算矩阵A的特征值D和特征向量矩阵V
d1=diag(D);
% 按特征值大小以降序排列 dsort = flipud(d1); vsort = fliplr(V); %以下选择95%的能量 dsum = sum(dsort);
VII
dsumtemp = 0;
char_num = 0;%特征值主分量个数 while( dsumtemp/dsum < 0.95) char_num = char_num + 1;
dsumtemp = sum(dsort(1:char_num)); end
%%%%%%计算特征脸主分量%%%%%%%%%% U=zeros(pix_num,char_num);%主分量特征向量 vsort=vsort(:,1:char_num); dsort=dsort(1:char_num).^(-1/2); dsort=diag(dsort);
U=A* vsort*dsort;%求协方差矩阵的特征向量主分量
%%%%%%计算训练集中人脸在特征空间中的投影表示%%%%% Train_pro=zeros(char_num,img_num); Train_pro=U'*A;
%%%%%%%%%%对测试集中人脸进行识别%%%%%%%% testFiles = dir('F2');%返回目录中的文件() %经测试图片文件从3到1193 alltest = [];%样本矩阵
VIII
for i = fnum : lnum
tfilename = testFiles(i).name; tfilename=strcat('F2','\\',tfilename); test = imread(tfilename); [row,col]=size(test);
ttemp=reshape(test,row*col,1);%返回一个m*1的矩阵temp,将二维图像数据变成一维列向量
alltest=[alltest ttemp];%将所有图片数据变成一个样本矩阵 end
alltest = uint8(alltest);
%%%%%%%%计算减去均值后的人脸矩阵%%%%%% tA = zeros(pix_num,img_num); tA = double(alltest) - m*m1;
%%%%计算测试集中人脸在特征空间中的投影表示%%%% Test_pro=zeros(char_num,img_num); Test_pro=U'*tA;
%%%%%%测试集中人脸和训练集中人脸相似性进行匹配%%%% pro_match=zeros(char_num,img_num); mtemp=ones(1,img_num);
IX
diatance=zeros(img_num,img_num); sum1=0;%sum1为匹配成功的数目
for i=1:img_num %测试集中的第i个图片数据 pro_match=Test_pro(:,i)*mtemp-Train_pro; distance=pro_match'*pro_match; distance=diag(distance); [mat_min,match(i)]=min(distance); if(i==match(i)) sum1=sum1+1; end end
rec_perc=(sum1/img_num)
%%%%%%随机抽取5个图形做代表显示匹配效果%%%%%% for i=1:5
ri=(round(100*rand(1,1))); figure(i); subplot(121); r=allsample(:,ri);
imshow(reshape(r,142,120));title(SampleFiles(ri).name,'FontWeight','bold','Fontsize',15,'color','red'); subplot(122);
X
k=match(ri);
imshow(reshape(alltest(:,k),142,120));title(testFiles(k).name,'FontWeight','bold','Fontsize',15,'color','red'); end toc
XI
正在阅读:
中科院模式识别大作业 - 人脸识别01-15
安全质量环保部安全责任书05-29
幼儿园师带徒工作计划03-10
实用的话题优秀作文集锦八篇03-23
关于协管员队伍的调研报告12-09
基于ZEMAX的激光扩束系统设计开题报告 毕业设计(论文)04-28
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 识别
- 人脸
- 中科院
- 作业
- 模式
- 第三章 直流电机习题课
- 二年级下册比喻句专项训练
- 2008山西矿业学院校友联谊会 - 组委会成员名单
- 高分子物理典型计算题
- 八下语文借物抒情教学设计
- 北大心理学概论期末考试复习资料
- 汽车车身设计论文
- 人教版小学第八册《桂林山水》学习指导和练习
- 继电保护高级工技能鉴定考试试题电子版
- 字母词及其规范化研究
- 第一批全国建筑幕墙设计人员岗位能力评价通过人员继续教育复习题
- 最新会计电算化试题WORD下载版
- 2019年注册安全工程师安全生产法及相关法律知识重点难点考点总结
- 办实事 求实效 出实绩
- 英语修辞学课程教学大纲2013版
- 武汉理工大学优秀毕业生公示
- 第七章opengl文字显示
- 2012年福建省高考语文全真模拟卷
- VB课后习题答案 陈庆章主编 -
- 54地基强夯置换工程施工方案