欢迎来到天天文库
浏览记录
ID:51106919
大小:109.50 KB
页数:3页
时间:2020-03-09
《模式识别实验报告3_KL变换实验_实验报告(例).doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告(例1)课程名称:模式识别实验名称:KL变换实验提交时间:专业:计算机应用技术年级:2009级姓名:一、实验目的和要求1.掌握特征提取的基本方法。2.掌握基于KL变换的特征提取的方法。3.培养学生灵活使用KL变换进行模式识别的能力。二、实验环境、内容和方法环境:windowsXP,matlabR2007a内容:给出ORL人脸数据库,共有400幅人脸图像(40人,每人10幅,大小为92*112象素)。其中第一个人的图像如下图:选取数据库中的部分样本(每个人的前5张图片)作为训练样本,其余作为未知的测试样本。从训练样本中得到KL变换矩阵,然后对训练样本和测试样本都进行变换
2、,用变换后的数据作最近邻识别,距离可以为对应灰度值之差的平方和,统计识别率。方法:KL变换方法3三、实验过程描述1.通过com_ReadDB函数读取每个人的前5幅图像,函数com_ReadDB返回TrainX和TrainClass。TrainX的每一行是每幅图像可以用按行或者按列堆成一个=WidthHeight维向量。TrainClass是图像的识别信息。2.求均值m,构造矩阵3.计算:4.计算:[V,D]=eig(R);5.计算:6.按特征值从大到小排序,选择前几个最大的特征值对应的Ui作为变换矩阵W。7.把所有训练样本做变换y=Wtx,保留系数y。8.再读取每个人的后5幅
3、图像作测试。9.对新样本也作变换,看与哪个y最接近。10.把比较成功识别的图像进行计数。最后统计识别率。四、结果分析通过取不同的前N个最大特征向量,如最大的10个表示为190:200,得到如下识别率的数据:190:200识别率为:0.9100180:200识别率为:0.9350170:200识别率为:0.9450160:200识别率为:0.9500150:200识别率为:0.9450140:200识别率为:0.9500130:200识别率为:0.9400120:200识别率为:0.9500110:200识别率为:0.9450100:200识别率为:0.945050:200识别
4、率为:0.950020:200识别率为:0.96001:200识别率为:0.9600当最大特征向量达到30个以后识别率已经固定在0.9450。再增加提高已经不大。在实验过程中曾遇到cell类型的比较问题。由于没有现成的cell类型,只能通过cell转换成别的类型进行比较。解决办法是用一个变量C=cell{n,m},n,m表示cell中的第n行,m列的元素。C的类型取决与cell{n,m}中的类型。3五、附录代码[TrainX,TrainClass]=com_ReadDB('D:模式识别ORL','1,2,3,4,5');m=mean(TrainX,2);Q=[];for
5、i=1:200Q=[QTrainX(:,i)-m];endR=Q'*Q;[V,D]=eig(R);U=Q*V*D^(-0.5);W=U(:,150:200);Ty=W'*TrainX;[TrainX1,TrainClass1]=com_ReadDB('D:模式识别ORL','6,7,8,9,10');Ty1=W'*TrainX1;compare=0;forj=1:200fori=1:200a(i)=norm(Ty(:,i)-Ty1(:,j),2);endmin=a(1);order=1;fori=2:200ifa(i)6、dju1=TrainClass(order,1);ju2=TrainClass1(j,1);ifju1{1}==ju2{1}compare=compare+1;endenddisp('成功识别率为:');disp(compare/200);3
6、dju1=TrainClass(order,1);ju2=TrainClass1(j,1);ifju1{1}==ju2{1}compare=compare+1;endenddisp('成功识别率为:');disp(compare/200);3
此文档下载收益归作者所有