模式识别方法大作业实验报告

上传人:ji****n 文档编号:45667166 上传时间:2018-06-18 格式:DOC 页数:15 大小:260.50KB
返回 下载 相关 举报
模式识别方法大作业实验报告_第1页
第1页 / 共15页
模式识别方法大作业实验报告_第2页
第2页 / 共15页
模式识别方法大作业实验报告_第3页
第3页 / 共15页
模式识别方法大作业实验报告_第4页
第4页 / 共15页
模式识别方法大作业实验报告_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《模式识别方法大作业实验报告》由会员分享,可在线阅读,更多相关《模式识别方法大作业实验报告(15页珍藏版)》请在金锄头文库上搜索。

1、I模式识别导论模式识别导论期末大作业期末大作业2010-2011-2 学期 第 3 组学号姓名工作量(%)08007204李双1008007205陈书瑜3508007218王健勇1008007236梁文卓3508007243仲红月10II模式识别模式识别大作业人脸识别方法一大作业人脸识别方法一- 基于基于 PCA 和欧几里得距离判据的模板匹配分类器和欧几里得距离判据的模板匹配分类器一、 理论知识1、主成分分析 主成分分析是把多个特征映射为少数几个综合特征的一种统计分析方法。在多特征的 研究中,往往由于特征个数太多,且彼此之间存在着一定的相关性,因而使得所观测的数 据在一定程度上有信息的重叠。当

2、特征较多时,在高维空间中研究样本的分布规律就更麻 烦。主成分分析采取一种降维的方法,找出几个综合因子来代表原来众多的特征,使这些 综合因子尽可能地反映原来变量的信息,而且彼此之间互不相关,从而达到简化的目的。 主成分的表示相当于把原来的特征进行坐标变换(乘以一个变换矩阵) ,得到相关性较小 (严格来说是零)的综合因子。1.1 问题的提出一般来说,如果 N 个样品中的每个样品有 n 个特征,经过主成分分析,将12,nx xx它们综合成 n 综合变量,即111 11221221 122221 122nnnnnnnnnnyc xc xc xyc xc xc xyc xc xc x 由下列原则决定:i

3、jc1、和(,i,j = 1,2,.n)相互独立;iyjyij2、y 的排序原则是方差从大到小。这样的综合指标因子分别是原变量的第 1、第 2、第 n 个主分量,它们的方差依次递减。1.2 主成分的导出我们观察上述方程组,用我们熟知的矩阵表示,设是一个 n 维随机向量,12nxxXx 是满足上式的新变量所构成的向量。于是我们可以写成 Y=CX,C 是一个正交矩阵,12nyyYy 满足 CC=I。坐标旋转是指新坐标轴相互正交,仍构成一个直角坐标系。变换后的 N 个点在轴上1yIII有最大方差,而在轴上有最小方差。同时,注意上面第一条原则,由此我们要求轴和nyiy轴的协方差为零,那么要求jyTYY

4、 12n 令,则TRXXTTRCC经过上面式子的变换,我们得到以下 n 个方程1111112 121121 1122112211 112 1211()0()0()0nnnnnnnnnrcr cr cr crcr cr cr crc 1.3 主成分分析的结果我们要求解出 C,即解出上述齐次方程的非零解,要求的系数行列式为 0。最后得ijc出结论是的根,的方差为。然后选取前面 p 个贡献率大的分量,这样i| 0RIiyi就实现了降维。也就是主成分分析的目标。二、 实现方法1、 获取数据。在编程时具体是把一幅二维的图像转换成一维的;2、 减去均值。要使 PCA 正常工作,必须减去数据的均值。减去的均

5、值为每一维的平均, 所有的 x 值都要减去,同样所有的 y 值都要减去,这样处理后的数据都具有 0 均值;3、 计算协方差矩阵;4、 计算协方差矩阵的特征矢量和特征值。因为协方差矩阵为方阵,我们可以计算它的特 征矢量和特征值,它可以告诉我们数据的有用信息;5、选择成分组成模式矢量 现在可以进行数据压缩降低维数了。如果你观察上一节中的特征矢量和特征值,会注 意到那些特征值是十分不同的。事实上,可以证明对应最大特征值的特征矢量就是数据的 主成分。 对应大特征值的特征矢量就是那条穿过数据中间的矢量,它是数据维数之间最大的关 联。 一般地,从协方差矩阵找到特征矢量以后,下一步就是按照特征值由大到小进行

6、排列,IV这将给出成分的重要性级别。现在,如果你喜欢,可以忽略那些重要性很小的成分,当然 这会丢失一些信息,但是如果对应的特征值很小,你不会丢失很多信息。如果你已经忽略 了一些成分,那么最后的数据集将有更少的维数,精确地说,如果你的原始数据是 n 维的, 你选择了前 p 个主要成分,那么你现在的数据将仅有 p 维。 现在要做的是你需要组成一个模式矢量,这只是几个矢量组成的矩阵的一个有意思的 名字而已,它由你保持的所有特征矢量构成,每一个特征矢量是这个矩阵的一列。6、获得新数据 这是 PCA 最后一步,也是最容易的一步。一旦你选择了须要保留的成分(特征矢量) 并组成了模式矢量,我们简单地对其进行

7、转置,并将其左乘原始数据的转置: 其中 rowFeatureVector 是由特征矢量作为列组成的矩阵的转置,因此它的行就是原来 的特征矢量,而且对应最大特征值的特征矢量在该矩阵的最上一行。rowdataAdjust 是减去 均值后的数据,即数据项目在每一列中,每一行就是一维。FinalData 是最后得到的数据, 数据项目在它的列中,维数沿着行。 FinalData = rowFeatureVector * rowdataAdjust 这将仅仅给出我们选择的数据。我们的原始数据有两个轴(x 和 y) ,所以我们的原始 数据按这两个轴分布。我们可以按任何两个我们喜欢的轴表示我们的数据。如果这些

8、轴是 正交的,这种表达将是最有效的,这就是特征矢量总是正交的重要性。我们已经将我们的 数据从原来的 xy 轴表达变换为现在的单个特征矢量表达。如果我们已经忽略了一些特征矢 量,则新数据将会用我们保留的矢量表达。三、 matlab 编程matlab 程序分为三部分。程序框图如下图所示。四、 总结mainCreatDataBaseEigenfaceCoreRecognition这个函数将所有训练样本 的二维图像转换成一维列 向量。接着,它把这些一 维列向量组合到一行里面 构造出二维向量 T,即每 个单元的信息量是一幅图 片这个函数首先得到二维数 组,包括所有的训练样本 向量并且从训练样本中返 回

9、3 个输出量这个函数将源图像提取成 特征脸,然后比较它们之 间的欧几里得距离V从书里看我觉得最让人明白模板匹配分类器的一段话,就是“譬如 A 类有 10 个训练 样品,就有 10 个模板,B 类有 8 个训练样品,就有 8 个模板。任何一个待测样品在分类时 与这 18 个模板都算一算相似度,找出最相似的模板,如果该模板是 B 类中的一个,就确 定待测样品为 B 类,否则为 A 类。 ”意思很简单吧,算相似度就是算距离。就是说,模板 匹配就要用你想识别的样品与各类中每个样品的各个模板用距离公式计算距离,距离最短 的那个就是最相似的。实验结果表明识别率达 90%。 这样的匹配方法明显的缺点就是在计

10、算量大,存储量大,每个测试样品要对每个模板 计算一次相似度,如果模板量大的时候,计算量就十分的大。五、 参考文献【1】 边肇其,张学工.模式识别【M】.第 2 版.北京.:清华大学出版社,2000 【2】 周杰,卢春雨,张长水,李衍达,人脸自动识别方法综述【J】.电子学报, 2000,5(4):102-106六、 附录(matlab 程序代码)第一部分:CreatDatabase.m function T = CreatDatabase(TrainDatabasePath) %一系列人脸(训练样本 T1,T2,,TM) %函数描述:这个函数将所有训练样本的二维图像转换成一维列向量。接着,它把这

11、些一 维列向量组合到一行里面构造出二维向量 T,即每个单元的信息量是一幅图片%参数: TrainDatabasePath - 训练数据库的路径 %返回值:T - %一个二维矩阵,包含了所有一维向量。假设所有在训练样本的 P 幅图像拥有相同的大小 (M*N) 。因此,这些一维向量的长度是 M*N 而且 T 将是一个 MN*P 的二维 %矩阵%文件处理% TrainFiles = dir(TrainDatabasePath); Train_Number = 0;for i = 1:size(TrainFiles,1)t = size(TrainFiles,1);if not(strcmp(Trai

12、nFiles(i).name,.)|strcmp(TrainFiles(i).name,.)|strcmp(TrainFiles(i).name,Thumb s.db)Train_Number = Train_Number + 1;end end%从一维数组构造成二维数组% T = ; for i = 1: Train_NumberVIstr = int2str(i);str = strcat(,str,.pgm);str = strcat(TrainDatabasePath,str);img = imread(str);irow icol = size(img);temp = reshape

13、(img,irow*icol,1);%将二维数组变成一维数组T = T temp; end第二部分:EigenfaceCore.m function m,A,Eigenfaces = EigenfaceCore(T) %利用主成分分析(PCA)的方法在各张人脸中决定最明显的特征%描述:这个方程首先得到二维数组,包括所有的训练样本向量并且从训练样本中返回 3 个输出量%参数:T - 一个二维矩阵,包含了所有一维向量。假设所有在训练样本的 P 幅图像拥有相同的大小(M*N) 。因此,这些一维向量的长度是 M*N 而且 T 将是一个 MN*P 的二维 %矩阵%返回值: m -(M*Nx1)训练样本的

14、均值 % Eigenfaces - (M*Nx(P-1)训练样本协方差矩阵的特征向量 % A - (M*NxP) 中心向量的矩阵%计算均值% m = mean(T,2); %计算样本平均值 m = (1/P)*sum(Tjs) Train_Number = size(T,2);%计算每个图像与均值的差% %要使 PCA 正常工作,必须减去数据的均值。减去的均值为每一维的平均,所有的 x 值都要减去,同样所有的 y 值都要减去% %这样处理后的数据都具有 0 均值% A = ; for i = 1 : Train_Numbertemp = double(T(:,i) - m; A = A tem

15、p; %再次合并矩阵 end%计算协方差矩阵%VII%计算协方差矩阵的特征矢量和特征值%L = A*A; %L 代表协方差矩阵 C = A*A. V D = eig(L);%计算矩阵 A 的特征值 D(eigenvalues)和特征矩阵 V(eigenvectors)%选择成分组成模式矢量%L_eig_vec = ; for i = 1:size(V,2)if(D(i,i)1)L_eig_vec = L_eig_vec V(:,1);end end%计算协方差矩阵的特征向量% Eigenfaces = A * L_eig_vec;第三部分:Recognition.m function OutputName = Recognition(TestImage, m, A, Eigenfaces)%函数描述:这个函数将源图像提取成特征脸,然后比较它

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号