结合pca的adaboost算法用于人脸识别

上传人:n**** 文档编号:91581893 上传时间:2019-06-30 格式:DOC 页数:5 大小:83KB
返回 下载 相关 举报
结合pca的adaboost算法用于人脸识别_第1页
第1页 / 共5页
结合pca的adaboost算法用于人脸识别_第2页
第2页 / 共5页
结合pca的adaboost算法用于人脸识别_第3页
第3页 / 共5页
结合pca的adaboost算法用于人脸识别_第4页
第4页 / 共5页
结合pca的adaboost算法用于人脸识别_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《结合pca的adaboost算法用于人脸识别》由会员分享,可在线阅读,更多相关《结合pca的adaboost算法用于人脸识别(5页珍藏版)》请在金锄头文库上搜索。

1、 结合PCA的Adaboost算法用于人脸识别 摘 要: 人脸识别是一种生物特征识别技术,是进入21世纪以来,计算机技术在社会生活领域中的一项热门应用。其被广泛应用于数码相机、摄像机的人脸自动对焦技术、视频监控中的身份识别、门禁系统的身份识别和各种人工智能控制系统的识别应用。相信在未来的一段时间内,应用人脸识别的地方会越来越多,而各种识别算法也将更先进和便捷。基于Adaboost算法的人脸检测正是众多算法中运用最为广泛的算法。本文采用主成分分析方法(PCA)对训练集、测试集和待测图片做了降维处理。并分析了影响此算法的主要因素关键词:人脸识别;主成分分析方法;Adaboost算法;一Adaboo

2、st算法介绍 Adaboost算法并不是一个专门针对人脸检测的算法,在2001年Viola和Jones最先将此算法应用于人脸检测。其后在人脸检测中才被越来越多的人使用。算法最终可以将一个弱分类器(分类能力与随机检测差不多),提升为一个强分类器(分类结果要比弱分类器好很多)。算法根据一定的策略调整各样本抽样权重,并按给定权重累加这些弱分类器,从而得到各弱分类器票拟累加的强分类器。在传统的算法中,通常就用这个得到的强分类器对待测图片进行人脸检测。 Adaboost算法的具体步骤如下: 1.给定一个人脸训练样本库并规定算法的最大循环次数T,即算法终止条件。 2.将样本库中的各训练样本给予一样的抽样权

3、重。 3.迭代过程: (1)在此训练样本上训练一个弱分类器对各个样本进行分类?, (2)计算此弱分类器对所有样本的分类误差率(分错的样本与分对的样本的比值); (3)根据它的误差率赋以此分类器一个权重,大体是误差越大权重就越小; 对于此次分错的样本则增大它的抽样权重,分对的样本则减小它的抽样权重。 (5)所有样本的抽样权重更新一遍后,再针对新样本数据训练新的弱分类器对各个样本进行分类,回到步骤(2) 4.经T次循环后,得到T个弱分类器,按迭代过程中分别赋予的权重叠加,最终得到强分类器。 算法思路如流程图所示: 在整个Adaboost算法中,弱分类器的能力得到了不断的加强。一开始时,由于各样本抽

4、样权重相同。弱分类器分对的概率很低,而在循环的过程中,训练样本库中的负样本抽样权重被加大突出,使得弱分类器更多的接触到这些样本,从而提升了对负样本的识别率。同时,弱分类器也在根据自身的分类误差得到了相应的票拟权重。.这样将会大大的突出那些分类正确率比较高的弱分类器,最后经过T次循环得到的多个对应着自身相应权重的弱分类器,最终的强分类器就是由这样的多个弱分类器加起来形成的。在传统的基于Adaboost算法的人脸检测中,将根据这个强分类器来对含有人脸的图片进行人脸检测。二PCA算法原理 主成分分析算法(PCA)是一种经典的统计方法。人脸检测的算法中,第一步首先要将人脸图像转化成相应的数据矩阵,从而

5、转换成对应的向量表示,但此向量不仅维数高而且数据上还存在着较大的冗余性,十分不利于计算机的计算。所以如何将高维向量降低为低维向量,并且又不失去原图的太多信息,从而方便计算机进行处理是一个首要问题,本文正是采取了 PCA算法对图片进行了降维处理。 K-L变换是PCA算法的核心内容。从理论上看,各式各样的人脸图像都可以映射到低维线性空间中,并且他们是可以区分开的。一般而言,一组人脸图像在转化成相应矩阵后维数是比较高的,而K-L变换算法可以找到一个与之密切相关但维数又比较低的矩阵,只要按照特征值从大到小保留此矩阵的部分数据,那么这个矩阵数据就可以叫做这组人脸图像的特征子空间,也可以叫特征脸子空间。一

6、幅人脸图像转换成向量表示后,PCA算法再将此向量投影到之前得到的特征子空间上,从而原有的高向量就得到了降维处理,此时这幅图像就相当于此特征子空间上的一个点。 选取M幅人脸图像,分别记为使用K-L变换得到一个用来表示原始的人脸空间的低维子空间。 记:= 由本式可以得到一个新的向量集合:A=集合A的均值为零,其协方差矩阵(即总体散布矩阵)为:C=A 式中的矩阵按特征值的大小保留部分正交基,将其用计算机还原成图像显示出来,可见他们都呈现了人脸的大致形状,所以他们也被称为特征脸子空间。三结合PCA的Adaboost算法用于人脸检测 1,PCA算法降维 为减少计算量和方便MATLAB实现,本文采取PCA

7、算法提取人脸库和待测图片的PCA特征向量。具体步骤如下: (1)读入MIT人脸库中的样本 (2)将读入样本转换为向量集合后通过K-L变换得出特征脸子空间 (3)将人脸库和待测图片都投影到此特征脸子空间上即可得到它们的PCA特征向 此处的MATLAB代码实现如下: %输入: % A :训练样本 % numvecs:要求降低到的特征维数 %输出: % Vectors:特征向量 %Values:特征值 % Psi:训练样本均值 function Vectors,Values, Psi = pc_evectors(A,numvecs) nexamp = size (A, 2); %返回A矩阵第二列元素

8、个数 Psi = mean (A,),: for i = 1:nexamp A(:, i) 二 A(:,i) - Psi: end L = A,*A ; Vectors, Values =eig(L); % eig:求特征值和特征向量 Vectors, Values = sortem (Vectors, Values) ; % 对特征值按降序排序 Vectors = A*Vectors: Values = diag(Values): Values = Values / (nexanip-l); numgood = 0: for i - 1:nexamp Vectors(:,i) = Vecto

9、rs(:, i)/norm(Vectors(:, i) ; % 向量 Vectors(:, i) 的欧氏(Euclidean)长度 if Values (i) numgood) fprintf (1, Warninginumvecs is%d; only %d exist, n, numvecs, num_good): numvecs = num_good: end: Vectors = Vectors (:, 1:numvecs): 2,弱分类器的设计 得到人脸库和待测图片在特征子空间的投影后,需要获取一种分类方法对待测图片进行分类。这种分类方法的准确性只要不低于随机检测的结果就可以了。本文

10、通过判断投影到特征子空间的各样本和测试数据间的向量距离来设计弱分类器。计算待测样本与多个已知类型的样本的距离,从而得到一个最近的距离,则判断与最近距离相连接的这个已知样本的类型与待测样本是同一类的,这是一种典型的按空间来分类的方法。弱分类器设计好后既可以对样本进行简单分类,后面再通过Adaboost算法的迭代处理,可以把此弱分类器提升为强分类器,从而实现对人脸的检测。 3,检測过程 整个检测步骤描述如下: (1)通过PCA算法训练人脸库中的样本得到特征子空间 (2)将各样本投影到此特征空间上,得到各样本降维的PCA向量 (3)通过Adaboost算法训练此样本数据得出若干弱分类加权和的强分类器

11、 (4)将测试图片投影到特征空间上 (5)通过强分类器对投影的测试图片进行检测并输出判决结果MATLAB实现流程及部分实现代码如下: function trainX, Y = samplecreation(varargin) M=vararginl; Eac h=varar g i n2; nuTn2=varargin 3; R=varargin4; kk=0: for i=l:2000 kk=kk+l: a=iinread(strcat (,D:faces, num2str(kk),. bmp,): if size (a, 3)1 a=rgb2gray(a): end b=reshape (

12、a, 1, R): p_train(kk, :)=b;end for i=l:2000 kk=kk+l; a=imread(strcat( D:nonfacesV,num2str(i),. bmp,): if size (a, 3) 1 a=rgb2gray(a): end b=reshape(a, 1, R): p_train(kk, :)=b: end (2)获取PCA特征向量,得到降维后图像特征向量 (3)通过学习法则,构建弱分类器 (4)获取训练样本、训练样本标签。 (5)获取测试样本、测试样本标签 (6)调用AdaBoost算法得到各弱分类器和其权值矩阵 (7)进行强分类器判决 (8

13、)标记正负样本 (9)画图显示 利用Adaboost算法训练得到的强分类器可以对图像进行人脸检测,但是由于待检测的图像和有PCA提取特征训练得到的分类器的尺寸往往是不一样的,这就要求在检测过程中需要改变图像的尺寸,本算法采用以下方法改变尺寸。 把待检测的人脸图像按比例缩小而保持特征检测窗口不变,用PCA提取特征窗口扫描检测图像,检测出人脸子窗口。然后返回同时将检测到的窗口那比例放大,画出人脸的具体位置。 本算法的影响因素:PCA提取特征的数目、正负样本的个数、Adaboost算法的循环次数和待测图片人脸图像的缩放大小。这几个因素都将影晌最终的检测效果。 4,总结 本文首先对Adaboost算法的原理和应用做了详细的说明,给出了算法步骤和算法流程图,特别说明了该算法是如何通过多次迭代把若干个弱分类器提升为强分类器的算法过程。接着给出了 PCA对图像进行降维的原理和数学实现。说明了如何在MATLAB中使用PCA降维结合Adaboost算法来训练MIT人脸数据库中的图片得到强分类器并对待测图片进行检测的方法。最后基于Adaboost的算法的检测精度受多种因素影响,适当的改变这些关键因素的参数去得到不同结果,改变不同的参数和优化组合,在此算法下的误检率和重复检测率会有不同的结果,实际情况重要结合实际改变参数和优化组合来达到最好的效果。

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

当前位置:首页 > 大杂烩/其它

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