模式识别实验报告3-KL变换实验-实验报告(例).doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
实验报告(例1) 课程名称: 模式识别 实验名称: KL变换实验 提交时间: 专业:计算机应用技术 年级: 2009级 姓名: "一、实验目的和要求 " "1. 掌握特征提取的基本方法。 " "2. 掌握基于KL变换的特征提取的方法。 " "3. 培养学生灵活使用KL变换进行模式识别的能力。 " "二、实验环境、内容和方法 " "环境:windows XP,matlab R2007a " " " "内容: " "给出ORL人脸数据库,共有400幅人脸图像(40人,每人10幅,大小为92*11" "2象素)。其中第一个人的图像如下图: " " " " " "选取数据库中的部分样本(每个人的前5张图片)作为训练样本,其余作为" "未知的测试样本。从训练样本中得到KL变换矩阵,然后对训练样本和测试 " "样本都进行变换,用变换后的数据作最近邻识别,距离可以为对应灰度值 " "之差的平方和,统计识别率。 " " " "方法:KL变换方法 " " " " " "三、实验过程描述 " "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幅图像作测试。 " "9.对新样本也作变换,看与哪个y最接近。 " "10.把比较成功识别的图像进行计数。最后统计识别率。 " " " "四、结果分析 " "通过取不同的前N个最大特征向量,如最大的10个表示为190:200,得到如" "下识别率的数据: " "190:200 识别率为: 0.9100 " "180:200 识别率为: 0.9350 " "170:200 识别率为: 0.9450 " "160:200 识别率为: 0.9500 " "150:200 识别率为: 0.9450 " "140:200 识别率为: 0.9500 " "130:200 识别率为: 0.9400 " "120:200 识别率为: 0.9500 " "110:200 识别率为: 0.9450 " "100:200 识别率为: 0.9450 " "50:200 识别率为: 0.9500 " "20:200 识别率为: 0.9600 " "1:200 识别率为: 0.9600 " "当最大特征向量达到30个以后识别率已经固定在0.9450。再增加提高已经 " "不大。 " " " "在实验过程中曾遇到cell类型的比较问题。由于没有现成的cell类型,只 " "能通过cell转换成别的类型进行比较。解决办法是用一个变量C=cell{n,m}" ",n,m表示cell中的第n行,m列的元素。C的类型取决与cell{n,m}中的类型 " "。 " " " "五、附录代码 " "[TrainX,TrainClass] = com_ReadDB('D:\模式识别\ORL\','1,2,3,4,5');" " " "m=mean(TrainX,2); " "Q=[]; " "for i=1:200 " "Q=[Q TrainX(:,i)-m]; " "end " "R=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; " "for j=1:200 " "for i=1:200 " "a(i) =norm(Ty(:,i)-Ty1(:,j),2); " "end " "min=a(1); " "order=1; " "for i=2:200 " "if a(i)<min " "min=a(i); " "order=i; " "end " "end " "ju1=TrainClass(order,1); " "ju2=TrainClass1(j,1); " "if ju1{1}==ju2{1} " "compare=compare+1; " "end " "end " "disp('成功识别率为:');disp(compar 该实验报告详细介绍了模式识别课程中的一个实验,主要关注KL变换在特征提取和模式识别中的应用。KL变换,即Kullback-Leibler散度,是一种衡量两个概率分布差异的非对称度量,常用于信息论和统计学。在这个实验中,KL变换被用来从ORL人脸数据库中提取特征,以进行人脸识别。 实验的目标是让学生掌握特征提取的基本方法,特别是基于KL变换的方法,并通过实际操作提升使用KL变换进行模式识别的能力。实验环境是Windows XP操作系统,使用的工具是MATLAB R2007a。 实验内容涉及处理ORL人脸数据库,该库包含40个人的400幅92*112像素的人脸图像。实验中,选取每个人前5张图片作为训练集,其余作为测试集。通过`com_ReadDB`函数读取图像并进行预处理,计算每个图像的均值并构建矩阵。接着,计算相关矩阵R,然后进行特征值分解(Eigenvector decomposition),得到特征值和特征向量。选择最大的N个特征值对应的特征向量构成变换矩阵W,将训练样本和测试样本进行KL变换。之后,使用最近邻分类器(K-Nearest Neighbor,KNN)根据变换后的数据进行识别,通过计算欧氏距离确定最接近的样本。实验记录了不同N值下的识别率,并分析了识别效果。 在实验过程中,遇到的问题是如何比较和处理MATLAB中的cell类型数据,通过创建新的变量C来转换cell类型以便进行比较。实验结果显示,当选择的特征向量数量达到一定值(如30个)时,识别率趋于稳定。这个实验提供了一个关于如何利用KL变换进行特征选择和模式识别的实际示例,有助于理解这一方法在实际问题中的应用。 实验代码展示了如何使用MATLAB实现KL变换和识别过程。从`com_ReadDB`读取训练和测试数据,计算均值,构造和计算相关矩阵,执行特征值分解,选取特征向量,进行变换,最后进行识别率的计算。 这个实验报告详尽地阐述了KL变换在人脸识别任务中的应用步骤,包括数据处理、特征提取、模式识别和结果分析,对于理解和实践特征提取方法具有很高的参考价值。
- 至安2023-05-27内容与描述一致,超赞的资源,值得借鉴的内容很多,支持!
- 粉丝: 192
- 资源: 3万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 20190313-100538-非对称电容在变压器油中10kv高压电作用下产生力的现象
- GB材料数据库(!请注意鉴别其中的材料参数并不是完全正确!)
- JAVA商城,支持小程序商城、 供应链商城 小程序商城 H5商城 app商城超全商城模式官网 支持小程序商城 H5商城 APP商城 PC商城
- springboot的在线商城系统设计与开发源码
- springboot的飘香水果购物网站的设计与实现 源码
- NO.4学习样本,请参考第4章的内容配合学习使用
- 20190312-084407-旋转磁体产生的场对周围空间长度的影响-数值越大距离越短
- 嵌入式系统应用-LVGL的应用-智能时钟 part 2
- 国家安全教育课程结课论文要求.docx
- FIR数字滤波器设计与软件实现.pdf