模式识别方法一实验报告

合集下载

模式识别实验一

模式识别实验一

, n 是 n 维均值
向 量 , C i 是 n n 协 方 差 矩 阵 ; Ci 为 矩 阵 Ci 的 行 列 式 。 且 i Ei x ,
Ci Ei

x
i
x
i , Ei x 表示对类别属于 i 的模式作数学期望运算。
T
因此判别函数可表示为 J i ( x) P( x | i ) P(i ) 对判别函数取自然对数
1 1 J i ( x) ( x i ) Ci1 ( x i ) ln P(i ) ln Ci 2 2
然后根据(1)中所述最大后验准则判断样本所属类别。 三、实验过程 实验数据: IRIS 数据集 实验假设: 各类数据服从正态分布 实验方法: 最大后验概率 实验环境: MATLAB 2010b (1)数据导入
A , B 可设置每种类型的先验概率 P A , P B 。针对某一训练数据 x 计
算其判别函数 J A x , J B x ,比较两个值的大小,哪个最大,就可判断该数据 属于哪一类。最后统计分类器判决结果,设置矩阵存储被错误分类的数据,统计 A,B 两类测试数据的误判数,计算误判率。 %---------分类器测试----------% %选择分类组(w1,w2)(w1,w3)(w2,w3) %test = 1代表(w1,w2)分类 %test = 2代表(w1,w3)分类 %test = 3代表(w2,w3)分类 test = 1; if test==1 avr_A = avr_w1';var_A = var_w1'; avr_B = avr_w2';var_B = var_w2'; %合并待测数据 data_test = [data_test_w1;data_test_w2]; end if test==2 avr_A = avr_w1';var_A = var_w1'; avr_B = avr_w3';var_B = var_w3'; %合并待测数据 data_test = [data_test_w1;data_test_w3]; end if test==3 avr_A = avr_w2';var_A = var_w2'; avr_B = avr_w3';var_B = var_w3'; %合并待测数据 data_test = [data_test_w2;data_test_w3]; end %s设置先验概率 P_wA = 1/2; P_wB = 1/2;

模式识别 实验报告一

模式识别 实验报告一
45
402
132
识别正确率
73.36
84.87
99.71
70.31
82.89
86.84
结果分析:
实验中图像3的识别率最高,图像1和图像2的识别率次之。图像1和图像2的分辨率相对图像3更低,同时图像2有折痕影响而图像1则有大量噪声。通过阈值处理能较好的处理掉图像1的噪声和图像2的折痕,从而使得图像1的识别率有所提升,而图像2的识别率变化不大。从而可以得出结论,图像3和图像2识别率不同的原因主要在于图像分辨率,而图像2和图像1识别率的不同则在于噪声干扰。
实验报告
题目
模式识别系列实验——实验一字符识别实验
内容:
1.利用OCR软件对文字图像进行识别,了解图像处理与模式识别的关系。
2.利用OCR软件对文字图像进行识别,理解正确率的概念。
实验要求:
1.利用photoshop等软件对效果不佳的图像进行预处理,以提高OCR识别的正确率。
2.用OCR软件对未经预处理和经过预处理的简体和繁体中文字符图像进行识别并比较正确率。
图像4内容既有简体又有繁体,从识别结果中可了解到错误基本处在繁体字。
遇到的问题及解决方案:
实验中自动旋转几乎没效果,所以都是采用手动旋转;在对图像4进行识别时若采用系统自己的版面分析,则几乎识别不出什么,所以实验中使用手动画框将诗的内容和标题及作者分开识别。
主要实验方法:
1.使用汉王OCR软件对所给简体和繁体测试文件进行识别;
2.理,再次识别;
实验结果:
不经过图像预处理
经过图像预处理
实验图像
图像1
图像2
图像3
图像4
图像1
图像2
字符总数
458

实验一模式识别范文

实验一模式识别范文

实验一模式识别范文
模式识别是计算机科学领域一个研究内容,它的目的是识别永久存在
的模式,以实现有效的数据处理和决策。

它主要集中在分类机制和分类算
法上,并且对特征结构及分类的准确性进行测试以应用到实际需求中。

模式识别是处理大量信息的基础,是一些新的有用信息与其他类别信
息区分的过程。

它可以建模出特殊情况,并有效的对这些类别判断准确性。

模式识别也可以改善监督学习、无监督学习、半监督学习的模式学习和其
他机器学习中的性能。

模式识别有各种应用,比如计算机视觉、声音识别、语言识别、手写
识别、面部识别、自然语言处理等,它们都是基于模式识别技术实现的。

模式识别技术可以大大提升机器人的视觉系统,以实现更准确和更快速的
行为。

在安全管理、公共交通、智能制造和生物医学等领域中,模式识别
技术也有广泛的应用。

模式识别也有其缺点,比如分类算法的运算速度容易延迟,特征选取
也有可能不太准确。

因此要正确使用模式识别,需要为特征选取和算法进
行合理的优化,以保证正确的识别结果。

总之,模式识别是一项广泛应用的技术,它可以提高机器学习的精确度,在计算机视觉等各个领域中有着广泛的应用。

模式识别实验报告(一二)

模式识别实验报告(一二)

信息与通信工程学院模式识别实验报告班级:姓名:学号:日期:2011年12月实验一、Bayes 分类器设计一、实验目的:1.对模式识别有一个初步的理解2.能够根据自己的设计对贝叶斯决策理论算法有一个深刻地认识3.理解二类分类器的设计原理二、实验条件:matlab 软件三、实验原理:最小风险贝叶斯决策可按下列步骤进行: 1)在已知)(i P ω,)(i X P ω,i=1,…,c 及给出待识别的X 的情况下,根据贝叶斯公式计算出后验概率:∑==cj iii i i P X P P X P X P 1)()()()()(ωωωωω j=1,…,x2)利用计算出的后验概率及决策表,按下面的公式计算出采取ia ,i=1,…,a 的条件风险∑==cj j jii X P a X a R 1)(),()(ωωλ,i=1,2,…,a3)对(2)中得到的a 个条件风险值)(X a R i ,i=1,…,a 进行比较,找出使其条件风险最小的决策ka ,即()()1,min k i i aR a x R a x ==则ka 就是最小风险贝叶斯决策。

四、实验内容假定某个局部区域细胞识别中正常(1ω)和非正常(2ω)两类先验概率分别为 正常状态:P (1ω)=; 异常状态:P (2ω)=。

现有一系列待观察的细胞,其观察值为x :已知先验概率是的曲线如下图:)|(1ωx p )|(2ωx p 类条件概率分布正态分布分别为(-2,)(2,4)试对观察的结果进行分类。

五、实验步骤:1.用matlab 完成分类器的设计,说明文字程序相应语句,子程序有调用过程。

2.根据例子画出后验概率的分布曲线以及分类的结果示意图。

3.最小风险贝叶斯决策,决策表如下:结果,并比较两个结果。

六、实验代码1.最小错误率贝叶斯决策 x=[] pw1=; pw2=; e1=-2; a1=; e2=2;a2=2;m=numel(x); %得到待测细胞个数pw1_x=zeros(1,m); %存放对w1的后验概率矩阵 pw2_x=zeros(1,m); %存放对w2的后验概率矩阵results=zeros(1,m); %存放比较结果矩阵for i = 1:m%计算在w1下的后验概率pw1_x(i)=(pw1*normpdf(x(i),e1,a1))/(pw1*normpdf(x(i),e1,a1)+pw2*normp df(x(i),e2,a2)) ;%计算在w2下的后验概率pw2_x(i)=(pw2*normpdf(x(i),e2,a2))/(pw1*normpdf(x(i),e1,a1)+pw2*normp df(x(i),e2,a2)) ;endfor i = 1:mif pw1_x(i)>pw2_x(i) %比较两类后验概率result(i)=0; %正常细胞elseresult(i)=1; %异常细胞endenda=[-5::5]; %取样本点以画图n=numel(a);pw1_plot=zeros(1,n);pw2_plot=zeros(1,n);for j=1:npw1_plot(j)=(pw1*normpdf(a(j),e1,a1))/(pw1*normpdf(a(j),e1,a1)+pw2*no rmpdf(a(j),e2,a2));%计算每个样本点对w1的后验概率以画图pw2_plot(j)=(pw2*normpdf(a(j),e2,a2))/(pw1*normpdf(a(j),e1,a1)+pw2*no rmpdf(a(j),e2,a2));endfigure(1);hold onplot(a,pw1_plot,'co',a,pw2_plot,'r-.');for k=1:mif result(k)==0plot(x(k),,'cp'); %正常细胞用五角星表示elseplot(x(k),,'r*'); %异常细胞用*表示end;end;legend('正常细胞后验概率曲线','异常细胞后验概率曲线','正常细胞','异常细胞');xlabel('样本细胞的观察值');ylabel('后验概率');title('后验概率分布曲线');grid onreturn%实验内容仿真:x = [, ,,, , ,, , , ,,,,,,, ,,,,,,, ]disp(x);pw1=;pw2=;[result]=bayes(x,pw1,pw2);2.最小风险贝叶斯决策x=[]pw1=; pw2=;m=numel(x); %得到待测细胞个数R1_x=zeros(1,m); %存放把样本X判为正常细胞所造成的整体损失R2_x=zeros(1,m); %存放把样本X判为异常细胞所造成的整体损失result=zeros(1,m); %存放比较结果e1=-2;a1=;e2=2;a2=2;%类条件概率分布px_w1:(-2,) px_w2(2,4)r11=0;r12=2;r21=4;r22=0;%风险决策表for i=1:m%计算两类风险值R1_x(i)=r11*pw1*normpdf(x(i),e1,a1)/(pw1*normpdf(x(i),e1,a1)+pw2*norm pdf(x(i),e2,a2))+r21*pw2*normpdf(x(i),e2,a2)/(pw1*normpdf(x(i),e1,a1) +pw2*normpdf(x(i),e2,a2));R2_x(i)=r12*pw1*normpdf(x(i),e1,a1)/(pw1*normpdf(x(i),e1,a1)+pw2*norm pdf(x(i),e2,a2))+r22*pw2*normpdf(x(i),e2,a2)/(pw1*normpdf(x(i),e1,a1) +pw2*normpdf(x(i),e2,a2));endfor i=1:mif R2_x(i)>R1_x(i) %第二类比第一类风险大result(i)=0; %判为正常细胞(损失较小),用0表示elseresult(i)=1; %判为异常细胞,用1表示endenda=[-5::5] ; %取样本点以画图n=numel(a);R1_plot=zeros(1,n);R2_plot=zeros(1,n);for j=1:nR1_plot(j)=r11*pw1*normpdf(a(j),e1,a1)/(pw1*normpdf(a(j),e1,a1)+pw2*n ormpdf(a(j),e2,a2))+r21*pw2*normpdf(a(j),e2,a2)/(pw1*normpdf(a(j),e1, a1)+pw2*normpdf(a(j),e2,a2))R2_plot(j)=r12*pw1*normpdf(a(j),e1,a1)/(pw1*normpdf(a(j),e1,a1)+pw2*n ormpdf(a(j),e2,a2))+r22*pw2*normpdf(a(j),e2,a2)/(pw1*normpdf(a(j),e1, a1)+pw2*normpdf(a(j),e2,a2))%计算各样本点的风险以画图endfigure(1);hold onplot(a,R1_plot,'co',a,R2_plot,'r-.');for k=1:mif result(k)==0plot(x(k),,'cp');%正常细胞用五角星表示elseplot(x(k),,'r*');%异常细胞用*表示end;end;legend('正常细胞','异常细胞','Location','Best');xlabel('细胞分类结果');ylabel('条件风险');title('风险判决曲线');grid onreturn%实验内容仿真:x = [, ,,, , ,, , , ,,,,,,, ,,,,,,, ]disp(x);pw1=;pw2=;[result]=bayes(x,pw1,pw2);七、实验结果1.最小错误率贝叶斯决策后验概率曲线与判决显示在上图中后验概率曲线:带红色虚线曲线是判决为异常细胞的后验概率曲线青色实线曲线是为判为正常细胞的后验概率曲线根据最小错误概率准则,判决结果显示在曲线下方:五角星代表判决为正常细胞,*号代表异常细胞各细胞分类结果(0为判成正常细胞,1为判成异常细胞):0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 1 0 12. 最小风险贝叶斯决策风险判决曲线如上图所示:带红色虚线曲线是异常细胞的条件风险曲线;青色圆圈曲线是正常细胞的条件风险曲线根据贝叶斯最小风险判决准则,判决结果显示在曲线下方:五角星代表判决为正常细胞,*号代表异常细胞各细胞分类结果(0为判成正常细胞,1为判成异常细胞):1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 1 0 1八、实验分析由最小错误率的贝叶斯判决和基于最小风险的贝叶斯判决得出的图形中的分类结果可看出,样本、在前者中被分为“正常细胞”,在后者中被分为“异常细胞”,分类结果完全相反。

模式识别实习报告

模式识别实习报告

一、实习背景随着科技的飞速发展,人工智能、机器学习等技术在各个领域得到了广泛应用。

模式识别作为人工智能的一个重要分支,具有广泛的应用前景。

为了更好地了解模式识别技术,提高自己的实践能力,我在2023年暑假期间参加了某科技有限公司的模式识别实习。

二、实习单位简介某科技有限公司是一家专注于人工智能、大数据、云计算等领域的科技创新型企业。

公司致力于为客户提供智能化的解决方案,业务涵盖智能识别、智能监控、智能分析等多个领域。

此次实习,我将在该公司模式识别部门进行实践学习。

三、实习内容1. 实习前期(1)了解模式识别的基本概念、原理和应用领域;(2)熟悉模式识别的相关算法,如神经网络、支持向量机、决策树等;(3)掌握Python编程语言,学会使用TensorFlow、Keras等深度学习框架。

2. 实习中期(1)参与实际项目,负责模式识别算法的设计与实现;(2)与团队成员协作,完成项目需求分析、算法优化和系统测试;(3)撰写项目报告,总结实习过程中的收获与不足。

3. 实习后期(1)总结实习期间的学习成果,撰写实习报告;(2)针对实习过程中遇到的问题,查找资料、请教同事,提高自己的解决问题的能力;(3)为后续实习工作做好充分准备。

四、实习收获与体会1. 理论与实践相结合通过实习,我深刻体会到理论与实践相结合的重要性。

在实习过程中,我将所学的模式识别理论知识运用到实际项目中,提高了自己的动手能力。

同时,通过解决实际问题,我更加深入地理解了模式识别算法的原理和应用。

2. 团队协作能力实习期间,我学会了与团队成员有效沟通、协作。

在项目中,我们共同面对挑战,分工合作,共同完成项目任务。

这使我认识到团队协作的重要性,为今后的工作打下了基础。

3. 解决问题的能力在实习过程中,我遇到了许多问题。

通过查阅资料、请教同事、独立思考等方式,我逐渐学会了如何分析问题、解决问题。

这种能力对我今后的学习和工作具有重要意义。

4. 深度学习框架的使用实习期间,我学会了使用TensorFlow、Keras等深度学习框架。

模式识别实习报告

模式识别实习报告

实习报告一、实习背景及目的随着科技的飞速发展,模式识别技术在众多领域发挥着越来越重要的作用。

模式识别是指对数据进行分类、识别和解释的过程,其应用范围广泛,包括图像处理、语音识别、机器学习等。

为了更好地了解模式识别技术的原理及其在实际应用中的重要性,我参加了本次模式识别实习。

本次实习的主要目的是:1. 学习模式识别的基本原理和方法;2. 掌握模式识别技术在实际应用中的技巧;3. 提高自己的动手实践能力和团队协作能力。

二、实习内容及过程实习期间,我们团队共完成了四个模式识别项目,分别为:手写数字识别、图像分类、语音识别和机器学习。

下面我将分别介绍这四个项目的具体内容和过程。

1. 手写数字识别:手写数字识别是模式识别领域的一个经典项目。

我们使用了MNIST数据集,这是一个包含大量手写数字图片的数据集。

首先,我们对数据集进行预处理,包括归一化、数据清洗等。

然后,我们采用卷积神经网络(CNN)作为模型进行训练,并使用交叉验证法对模型进行评估。

最终,我们得到了一个识别准确率较高的模型。

2. 图像分类:图像分类是模式识别领域的另一个重要应用。

我们选择了CIFAR-10数据集,这是一个包含大量彩色图像的数据集。

与手写数字识别项目类似,我们先对数据集进行预处理,然后采用CNN进行训练。

在模型训练过程中,我们尝试了不同的优化算法和网络结构,以提高模型的性能。

最终,我们得到了一个识别准确率较高的模型。

3. 语音识别:语音识别是模式识别领域的又一项挑战。

我们使用了TIMIT数据集,这是一个包含大量语音样本的数据集。

首先,我们对语音样本进行预处理,包括特征提取、去噪等。

然后,我们采用循环神经网络(RNN)作为模型进行训练。

在模型训练过程中,我们尝试了不同的优化算法和网络结构。

最后,我们通过对模型进行评估,得到了一个较为可靠的语音识别系统。

4. 机器学习:机器学习是模式识别领域的基础。

我们使用了UCI数据集,这是一个包含多个数据集的数据集。

模式识别实验

模式识别实验

模式识别实验
一、实验任务
本次实验任务是模式识别,主要包括形式化的目标追踪、字符流分类和语音识别等。

二、所需软件
本实验所需软件包括MATLAB、Python等。

三、实验步骤
1. 首先需要安装MATLAB 和Python等软件,并建立实验环境。

2. 然后,通过MATLAB 进行基于向量量化(VQ) 的目标追踪实验,搭建端到端的系统,并使用Matlab编程实现实验内容。

3. 接着,使用Python进行字符流分类的实验,主要包括特征提取、建模和识别等,并使用Python编程实现实验内容。

4. 最后,使用MATLAB 进行语音识别的实验,主要是使用向量量化方法识别语音,并使用Matlab编程实现实验内容。

四、结果分析
1.在基于向量量化的目标追踪实验中,我们通过计算误差,确定了最优参数,最终获得了较高的准确率。

2.在字符流分类实验中,我们通过选择最佳分类器,得到了较高的准确率。

3.在语音识别实验中,我们使用向量量化方法,最终也获得了不错的准确率。

五、总结
本次实验研究了基于向量量化的目标追踪、字符流分类和语音识别等三项模式识别技术,经实验,探讨了不同方法之间的优劣,并获得了较高的准确率。

本次实验的结果为日常模式识别工作提供了有价值的参考。

模式识别实验报告1_简单线性分类实验_实验报告(例)

模式识别实验报告1_简单线性分类实验_实验报告(例)
3.随机给出一个样本并判别类别。
二、实验环境、内容和方法
环境:windows XP,matlab R2007a
内容:有两类样本(如鲈鱼和鲑鱼),每个样本有两个特征(如长度和亮度),每类有若干个(比如20个)样本点,假设每类样本点服从二维正态分布,自己随机给出具体数据,计算每类数据的均值点,并且把两个均值点连成一线段,用垂直平分该线段的直线作为分类边界。再根据该分类边界对一随机给出的样本判别类别。并画出相应的图形。
方法:线性分类器
三、实验过程描述
1.首先用正态分布normrnd产生两类样本,每类样本两个特征。用不同的均值(ax,ay)=(18,8),(bx,by)=(12,20)。并画出两类样本点。
2.然后,求判别分界线y=k*x+b中的k,b的值。分界线垂直于两类样本的均值点的连线。K,b的值分别为:
k=-(bx-ax)/(by-ay)
y2(:,1) = normrnd(by,6,1,20);
%分解线为y=k*x+b
k=-(bx-ax)/(by-ay);%计算类样本均值连线垂直平分线的斜率k
b=(ay+by)/2+(bx^2-ax^2)/(2*by-2*ay);%计算b的值
figure;%画点
plot(x1,y1,'om',...
实验报告(例子)
课程名称:模式识别实验名称:简单线性分类
提交时间:
专业:计算机应用技术年级:2009级姓名:
一、实验目的和要求
目的:设计简单的线性分类器,了解模式识别的基本方法。
要求:
1.产生两类样本,每类样本两个特征。
2.计算每类数据的均值点,并且把两个均值点连成一线段,用垂直平分该线段的直线作为分类边界。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《模式识别》大作业人脸识别方法一---- 基于PCA 和欧几里得距离判据的模板匹配分类器(终稿)一、 理论知识1、主成分分析主成分分析是把多个特征映射为少数几个综合特征的一种统计分析方法。

在多特征的研究中,往往由于特征个数太多,且彼此之间存在着一定的相关性,因而使得所观测的数据在一定程度上有信息的重叠。

当特征较多时,在高维空间中研究样本的分布规律就更麻烦。

主成分分析采取一种降维的方法,找出几个综合因子来代表原来众多的特征,使这些综合因子尽可能地反映原来变量的信息,而且彼此之间互不相关,从而达到简化的目的。

主成分的表示相当于把原来的特征进行坐标变换(乘以一个变换矩阵),得到相关性较小(严格来说是零)的综合因子。

1.1 问题的提出一般来说,如果N 个样品中的每个样品有n 个特征12,,n x x x ,经过主成分分析,将它们综合成n 综合变量,即11111221221122221122n n n n n n n nn ny c x c x c x y c x c x c x y c x c x c x =+++⎧⎪=+++⎪⎨⎪⎪=+++⎩ ij c 由下列原则决定:1、i y 和j y (i j ≠,i,j = 1,2,...n )相互独立;2、y 的排序原则是方差从大到小。

这样的综合指标因子分别是原变量的第1、第2、……、第n 个主分量,它们的方差依次递减。

1.2 主成分的导出我们观察上述方程组,用我们熟知的矩阵表示,设12n x x X x ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦ 是一个n 维随机向量,12n y y Y y ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦是满足上式的新变量所构成的向量。

于是我们可以写成Y=CX,C 是一个正交矩阵,满足CC ’=I 。

坐标旋转是指新坐标轴相互正交,仍构成一个直角坐标系。

变换后的N 个点在1y 轴上有最大方差,而在n y 轴上有最小方差。

同时,注意上面第一条原则,由此我们要求i y 轴和j y 轴的协方差为零,那么要求T YY =Λ12n λλλ⎡⎤⎢⎥⎢⎥Λ=⎢⎥⎢⎥⎣⎦令TR XX =,则T T RC C =Λ 经过上面式子的变换,我们得到以下n 个方程 111111212112111221122111121211()0()0()0n n n n n n nn n r c r c r c r c r c r c r c r c r c λλλ-+++=+-++=+++-=1.3 主成分分析的结果我们要求解出C ,即解出上述齐次方程的非零解,要求ij c 的系数行列式为0。

最后得出结论i λ是||0R I λ-=的根,i y 的方差为i λ。

然后选取前面p 个贡献率大的分量,这样就实现了降维。

也就是主成分分析的目标。

二、 实现方法1、 获取数据。

在编程时具体是把一幅二维的图像转换成一维的;2、 减去均值。

要使PCA 正常工作,必须减去数据的均值。

减去的均值为每一维的平均,所有的x 值都要减去,同样所有的y 值都要减去,这样处理后的数据都具有0均值;3、 计算协方差矩阵;4、 计算协方差矩阵的特征矢量和特征值。

因为协方差矩阵为方阵,我们可以计算它的特征矢量和特征值,它可以告诉我们数据的有用信息;5、选择成分组成模式矢量现在可以进行数据压缩降低维数了。

如果你观察上一节中的特征矢量和特征值,会注意到那些特征值是十分不同的。

事实上,可以证明对应最大特征值的特征矢量就是数据的主成分。

对应大特征值的特征矢量就是那条穿过数据中间的矢量,它是数据维数之间最大的关联。

一般地,从协方差矩阵找到特征矢量以后,下一步就是按照特征值由大到小进行排列,这将给出成分的重要性级别。

现在,如果你喜欢,可以忽略那些重要性很小的成分,当然这会丢失一些信息,但是如果对应的特征值很小,你不会丢失很多信息。

如果你已经忽略了一些成分,那么最后的数据集将有更少的维数,精确地说,如果你的原始数据是n维的,你选择了前p个主要成分,那么你现在的数据将仅有p维。

现在要做的是你需要组成一个模式矢量,这只是几个矢量组成的矩阵的一个有意思的名字而已,它由你保持的所有特征矢量构成,每一个特征矢量是这个矩阵的一列。

6、获得新数据这是PCA最后一步,也是最容易的一步。

一旦你选择了须要保留的成分(特征矢量)并组成了模式矢量,我们简单地对其进行转置,并将其左乘原始数据的转置:其中rowFeatureVector是由特征矢量作为列组成的矩阵的转置,因此它的行就是原来的特征矢量,而且对应最大特征值的特征矢量在该矩阵的最上一行。

rowdataAdjust是减去均值后的数据,即数据项目在每一列中,每一行就是一维。

FinalData是最后得到的数据,数据项目在它的列中,维数沿着行。

FinalData = rowFeatureVector * rowdataAdjust这将仅仅给出我们选择的数据。

我们的原始数据有两个轴(x和y),所以我们的原始数据按这两个轴分布。

我们可以按任何两个我们喜欢的轴表示我们的数据。

如果这些轴是正交的,这种表达将是最有效的,这就是特征矢量总是正交的重要性。

我们已经将我们的数据从原来的xy轴表达变换为现在的单个特征矢量表达。

如果我们已经忽略了一些特征矢量,则新数据将会用我们保留的矢量表达。

三、matlab编程matlab程序分为三部分。

程序框图如下图所示。

四、总结从书里看我觉得最让人明白模板匹配分类器的一段话,就是“譬如A类有10个训练样品,就有10个模板,B类有8个训练样品,就有8个模板。

任何一个待测样品在分类时与这18个模板都算一算相似度,找出最相似的模板,如果该模板是B类中的一个,就确定待测样品为B类,否则为A类。

”意思很简单吧,算相似度就是算距离。

就是说,模板匹配就要用你想识别的样品与各类中每个样品的各个模板用距离公式计算距离,距离最短的那个就是最相似的。

这样的匹配方法明显的缺点就是在计算量大,存储量大,每个测试样品要对每个模板计算一次相似度,如果模板量大的时候,计算量就十分的大。

五、附录(matlab 程序代码)第一部分:CreatDatabase.mfunction T = CreatDatabase(TrainDatabasePath)%一系列人脸(训练样本T1,T2,……,TM)%函数描述:这个函数将所有训练样本的二维图像转换成一维列向量。

接着,它把这些一维列向量组合到一行里面构造出二维向量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);ifnot(strcmp(TrainFiles(i).name,'.')|strcmp(TrainFiles(i).name,'..')|strcmp(TrainFiles(i).name,'Thumb s.db'))Train_Number = Train_Number + 1;endend%%%%%%%%%从一维数组构造成二维数组%%%%%%%%%%%%T = [];for i = 1: Train_Numberstr = int2str(i);str = strcat('\',str,'.pgm');str = strcat(TrainDatabasePath,str);img = imread(str);[irow icol] = size(img);temp = reshape(img',irow*icol,1);%将二维数组变成一维数组T = [T temp];end第二部分:EigenfaceCore.mfunction [m,A,Eigenfaces] = EigenfaceCore(T)%利用主成分分析(PCA)的方法在各张人脸中决定最明显的特征%描述:这个方程首先得到二维数组,包括所有的训练样本向量并且从训练样本中返回3个输出量%参数:T --- 一个二维矩阵,包含了所有一维向量。

假设所有在训练样本的P 幅图像拥有相同的大小(M*N)。

因此,这些一维向量的长度是M*N而且T将是一个MN*P 的二维%矩阵%返回值:m ---(M*Nx1)训练样本的均值% Eigenfaces --- (M*Nx(P-1))训练样本协方差矩阵的特征向量% A --- (M*NxP)中心向量的矩阵%%%%%%%%%计算均值%%%%%%%%%%%m = mean(T,2); %计算样本平均值m = (1/P)*sum(Tj's)Train_Number = size(T,2);%%%%%%%%%计算每个图像与均值的差%%%%%%%%%%%%要使PCA正常工作,必须减去数据的均值。

减去的均值为每一维的平均,所有的x 值都要减去,同样所有的y值都要减去%%%%%%这样处理后的数据都具有0均值%%%A = [];for i = 1 : Train_Numbertemp = double(T(:,i)) - m;A = [A temp]; %再次合并矩阵end%%%%%%%计算协方差矩阵%%%%%%%%%%%%%%%%%计算协方差矩阵的特征矢量和特征值%%%%%%%%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)];endend%%%%%%计算协方差矩阵的特征向量%%%%%%%%%%Eigenfaces = A * L_eig_vec;第三部分:Recognition.mfunction OutputName = Recognition(TestImage, m, A, Eigenfaces)%函数描述:这个函数将源图像提取成特征脸,然后比较它们之间的欧几里得距离%输入量: TestImage ---测试样本的路径% m ---(M*Nx1)训练样本的均值% Eigenfaces --- (M*Nx(P-1))训练样本协方差矩阵的特征向量% A --- (M*NxP)中心向量的矩阵%返回值:OutputName ---在训练样本中的被识别的图像的名字%%%%%%%%%%从中心向量中提取特征脸%%%%%%%%%%%%%%ProjectedImages = [];Train_Number = size(Eigenfaces,2);for i = 1:Train_Numbertemp = Eigenfaces' * A(:,i)ProjectedImages = [ProjectedImages temp];end%%%%%%%%%%%%%%%%从测试样本中提取PCA特征%%%%%%%%%%%%%%% InputImage = imread(TestImage);temp = InputImage(:,:,1);[irow icol] = size(temp);InImage = reshape(temp',irow*icol,1);Difference = double(InImage) - m;ProjectedTestImage = Eigenfaces'*Difference;%%%%%%%%%%%%%计算欧几里得几何距离%%%%%%%%%%%%%%%%%%%%%% Euc_dist = [];for i = 1 : Train_Number,q = ProjectedImages(:,i);temp = (norm(ProjectedTestImage - q))^2;Euc_dist = [Euc_dist temp];end%找出A中最小元素及其索引,把最小值返回给C,最小值索引返回给I。

相关文档
最新文档