西交大模式识别实验报告_第1页
西交大模式识别实验报告_第2页
西交大模式识别实验报告_第3页
西交大模式识别实验报告_第4页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精品模式识别实验报告姓名:班级:学号:提交日期:-可编辑 -精品实验一 线性分类器的设计一、 实验目的:掌握模式识别的基本概念,理解线性分类器的算法原理。二、 实验要求( 1 )学习和掌握线性分类器的算法原理;( 2 )在 MATLAB 环境下编程实现三种线性分类器并能对提供的数据进行分类;( 3 ) 对实现的线性分类器性能进行简单的评估(例如算法使用条件,算法效率及复杂度等)。三、 算法原理介绍(1 )判别函数:是指由x 的各个分量的线性组合而成的函数:g(x)w t xw0w : 权向量w0 :阈值权若样本有 c 类,则存在c 个判别函数,对具有g(x)w t xw0 形式的判别函数的一个

2、两类线性分类器来说,要求实现以下判定规则:g(x)0,y i1g(x)0,y i2方程 g(x)=0定义了一个判定面,它把两个类的点分开来,这个平面被称为超平面,如下图所示。-可编辑 -精品(2 )广义线性判别函数线性判别函数g(x) 又可写成以下形式:dg(x)w 0wi xii 1其中系数 wi 是权向量w 的分量。通过加入另外的项(w 的各对分量之间的乘积),得到二次判别函数:因为,不失一般性,可以假设。这样,二次判别函数拥有更多的系数来产生复杂的分隔面。此时g(x)=0定义的分隔面是一个二阶曲面。若继续加入更高次的项,就可以得到多项式判别函数,这可看作对某一判别函数g(x)做级数展开,

3、然后取其截尾逼近,此时广义线性判别函数可写成:或:这里 y 通常被成为“增广特征向量”(augmented feature vector)类似的, a 被称,为-可编辑 -精品“增广权向量”,分别可写成:这个从 d 维 x 空间到 d+1维 y 空间的映射虽然在数学上几乎没有变化,但十分有用。虽然增加了一个常量,但在 x 空间上的所有样本间距离在变换后保持不变,得到的 y 向量都在 d 维的自空间中, 也就是 x 空间本身。 通过这种映射, 可以将寻找权向量w 和权阈值w0的问题简化为寻找一个简单的权向量a。(3 )样本线性可分即在特征空间中可以用一个或多个线性分界面正确无误地分开若干类样本;

4、对于两类样本点 w1 和 w2 ,其样本点集合表示为:,使用一个判别函数来划分 w1 和 w2 ,需要用这些样本集合来确定判别函数的权向量a,可采用增广样本向量y,即存在合适的增广权向量a ,使得:则称样本是线性可分的。所有满足条件的权向量称为解向量。通常对解区限制:引入余量b ,要求解向量满足:余量 b 的加入在一定程度上可防止优化算法收敛到解区的边界。(4 )感知器准则函数这里考虑构造线性不等式的准则函数的问题,令准则函数J(.)为:其中 Y 是被权向量a 错分的样本集。当且仅当JP(a*) = min JP(a) = 0时, a* 是解向-可编辑 -精品量。这就是感知器(Perceptr

5、on)准则函数。( 5 )基本的感知器设计感知器准则函数的最小化可以使用梯度下降迭代算法求解:其中, k 为迭代次数, 为调整的步长。即下一次迭代的权向量是把当前时刻的权向量向目标函数的负梯度方向调整一个修正量。即在每一步迭代时把错分的样本按照某个系数叠加到权向量上。这样就得到了感知算法。(6 )批处理感知器算法(7 )单样本感知器算法通常情况, 一次将所有错误样本进行修正不是效率最高的做法,更常用是每次只修正一个样本或一批样本的固定增量法:( 8 )最小均方差算法对于前面提出的不等式组:-可编辑 -精品在线性不可分的情况下,不等式组不可能同时满足。一种直观的想法就是,希望求一个a*使被错分的

6、样本尽可能少。这种方法通过求解线性不等式组来最小化错分样本数目,通常采用搜索算法求解。为了避免求解不等式组,通常转化为方程组:矩阵形式为:。方程组的误差为:,可以求解方程组的最小平方误差求解,即:Js(a) 即为最小平方误差(Minimum Squared-Error, MSE )的准则函数:准则函数最小化通常有两种方法:违逆法,梯度下降法。梯度下降法梯度下降法在每次迭代时按照梯度下降方向更新权向量:直到满足或者时停止迭代, 是事先确定的误差灵敏度。参照感知器算法中的单步修正法,对MSE 也可以采用单样本修正法来调整权向量:这种算法即Widrow-Hoff算法,也称作最小均方根算法或LMS (

7、 Least-mean-square-可编辑 -精品algorithm)算法。四、 实验结果及分析(1 )单样本感知器算法分析:通过对分类结果的观察知,单样本感知器可以将数据1 和数据 2 的数据进行正确的分类,达到了分类器的设计目的。同时观察到对两组数据计算的迭代次数都是40 次左右,耗时为 0.6ms 和 0.8ms 左右。单样本感知器的算法效率高于批处理感知器的算法效率。(2 )批处理感知器算法-可编辑 -精品分析:通过对分类结果的观察知,批处理感知器可以将数据1 和数据 2 的数据进行正确的分类, 达到了分类器的设计目的。同时观察到对两组数据计算的迭代次数相差较大。对数据1 迭代 17

8、 次,耗时 1.0ms 左右,相比于单样本感知器,迭代次数少但是耗时大,主要是因为批处理感知器一次迭代要对所有样本进行计算;对于数据2 迭代次数和耗时都比单样本感知器多。(3 )最小均方差算法分析:通过观察分类结果知,对于数据1 和数据 2 都存在一个分错的点,主要是由于步长选择不同会导致收敛时的分类结果存在分错的点。同时如果选择的步长不合适,会导致a不收敛,所以步长的选择非常重要。-可编辑 -精品五、 源代码(1 )单样本感知器算法functionsolution iter = SinglePerceptron(Y,tau)%solution = SinglePerceptron(Y,tau

9、)固定增量单样本感知器算法实现% 输入:规范化样本矩阵 Y,裕量 tau% 输出:解向量 solution ,迭代次数 iter%y_k d = size(Y);a = zeros(1,d);k_max = 10000;%k_iter=0;whilek_iterk_maxcount=0;for j=1:1:y_kif a*Y(j,:)taua=a+Y(j,:);k_iter=k_iter+1;count=count+1;-可编辑 -精品endendif count=0break ;endendk_max=k_iter;%k = k_max;solution = a;iter = k-1;(2

10、)批处理感知器算法functionsolution iter = BatchPerceptron(Y,tau)%solution = BatchPerceptron(Y,tau)固定增量批处理感知器算法实现% 输入:规范化样本矩阵 Y,裕量 tau% 输出:解向量 solution ,迭代次数 iter%y_k d = size(Y); a = zeros(d,1);-可编辑 -精品k_max = 10000;%k_iter=0;Y_temp=zeros(d,1);whilek_iterk_maxcount=0;for j=1:1:y_kif a*Y(j,:)=tauY_temp=Y_temp

11、+Y(j,:);count=count+1;endendif count=0break ;enda=a+Y_temp;k_iter=k_iter+1;endk_max=k_iter;%-可编辑 -精品k = k_max;solution = a;iter = k-1;(3 )最小均方差算法functionsolution iter = Widrow_Hoff(Y,stepsize)%solution = Widrow_Hoff(Y.tau)最小均方差实现算法% 输入:规范化样本矩阵 Y,裕量 tau ,初始步长 stepsize% 输出:解向量 solution ,迭代次数 iter%y_k

12、d = size(Y);a = zeros(1,d);k_max = 10000;%b=ones(1,y_k);k_iter=0;whilek_iterk_maxcount=0;for j=1:1:y_kif a*Y(j,:)=b(j)-可编辑 -精品a=a+stepsize*(b(j)-a*Y(j,:)*Y(j,:);k_iter=k_iter+1;count=count+1;endendif count=0break ;endendk_max=k_iter;%k = k_max;solution = a;iter = k-1;-可编辑 -精品实验二 人脸检测系统的设计与实现一、 实验目的:

13、了解人脸检测及跟踪系统的算法原理及设计实现过程。二、 实验要求( 1 )学习和了解基于 OpenCV 的人脸检测算法原理;( 2 )在 VC+ 环境下基于 OpenCV 实现一个简单的人脸检测和跟踪程序,要求利用笔记本摄像头或者其他网络摄像头进行实时检测,最好有良好的人机交互界面(如使用MFC 编程);( 3 )对检测到的人脸进行识别 (即能识别不同的人) 或对检测到的人脸做一些有趣的处理。三、 算法原理介绍( 1 )人脸检测原理人脸检测属于目标检测(object detection)的一部分,主要涉及两个方面:1.先对要检测的目标对象进行概率统计,从而知道待检测对象的一些特征,建立起目标检测

14、模型。2. 用得到的模型来匹配输入的图像,如果有匹配则输出匹配的区域,否则什么也不做。( 2 )Harr 特征级联表OpenCV在物体检测上使用的是haar特征的级联表,这个级联表中包含的是boost的分类器。首先,采用样本的haar 特征进行分类器的训练,从而得到一个级联的boost分类器。训练的方式包含两方面:1.正例样本,即待检测目标样本2.反例样本,其他任意的图片首先将这些图片统一成相同的尺寸,这个过程被称为归一化,然后进行统计。 一旦分类-可编辑 -精品器建立完成, 就可以用来检测输入图片中的感兴趣区域了,一般来说, 输入的图片会大于样本,那样, 需要移动搜索窗口,为了检索出不同大小

15、的目标,分类器可以按比例的改变自己的尺寸,这样可能要对输入图片进行多次的扫描。级联分类器是由若干个简单分类器级联成的一个大的分类器,被检测的窗口依次通过每一个分类器,可以通过所有分类器的窗口即可判定为目标区域。同时,为了考虑效率问题,可以将最严格的分类器放在整个级联分类器的最顶端,那样可以减少匹配次数。基础分类器以haar 特征为输入,以0/1 为输出, 0 表示未匹配,1 表示匹配。( 3 )Haar 特征边界特征,包含四种线性特征,包含八种中心围绕特征,包含两种在扫描待检测图片的时候,以边界特征中的(a) 为例,正如前面提到的那样,计算机中的图片是一个数字组成的矩阵,程序先计算整个窗口中的

16、灰度值x,然后计算矩形框中的黑色灰度值 y ,然后计算 (x-2y) 的值, 得到的数值与x 做比较, 如果这个比值在某一个范围内,则表示待检测图片的当前扫描区域符合边界特征(a) ,然后继续扫描。(4 )非固定大小目标检测因为是基于视频流的目标检测,我们事先不太可能知道要检测的目标的大小,这就要求-可编辑 -精品我们的级联表中的分类器具有按比例增大(或者缩小 )的能力,这样,当小的窗口移动完整个待检测图片没有发现目标时,我们可以调整分类器的大小,然后继续检测, 直到检测到目标或者窗口与待检测图片的大小相当为止。( 5 )算法介绍步骤一:图片预处理在从摄像头中获得一个帧 (一张图片 )后,我们

17、需要先对这张图片进行一些预处理:1. 将图片从 RGB 模式转为灰度图将灰度图2. 进行灰度图直方图均衡化操作。步骤二:检测并标记目标OpenCV中,对于人脸检测的模型已经建立为一个haarcascade_frontalface_alt2.XML文件,其中包含了上面提到的harr 特征的分类器的训练结果, 我们可以通过加载这个文件而省略掉自己建立级联表的过程。有了级联表, 我们只需要将待检测图片和级联表一同传递给OpenCV的目标检测算法即可得到一个检测到的人脸的集合。步骤三:用highgui画出视频窗口由于视频流是动态的,所以我们可以在程序的入口中使用一个无限循环,在循环中, 每次从视频中读

18、入一个帧,将这个帧传输给人脸检测模块,检测模块在这个帧上进行标记(如果有人脸的话 ),然后返回这个帧,主程序拿到这个帧后,更新显示窗口。-可编辑 -精品四、 程序流程图-可编辑 -精品五、 实验结果及分析人脸检测结果:-可编辑 -精品分析:通过实验结果知,程序基本达到了人脸检测以及跟踪人脸的要求,同时可以检测出不同的人脸。通过此次实验了解了人脸检测及跟踪系统的算法原理及设计实现过程。六、 源代码#include#includestdio.h#include#include#include#include#includeopencv2/objdetect/objdetect.hppusing namespacecv;-可编辑 -精品using namespacestd;stringface_cascade_name =haarcascade_frontalface_alt2.xml;CascadeClassifierface_cascade;stringwindow_name = 人脸识别 ;void detectAndDisplay(Matframe )std: vector faces;Mat frame_gray

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论