资源描述:
《结合PCA的Adaboost算法用于人脸识别.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、结合PCA的Adaboost算法用于人脸识别摘要:人脸识别是一种生物特征识别技术,是进入21世纪以来,计算机技术在社会生活领域中的一项热门应用。其被广泛应用于数码相机、摄像机的人脸自动对焦技术、视频监控中的身份识别、门禁系统的身份识别和各种人工智能控制系统的识别应用。相信在未来的一段时间内,应用人脸识别的地方会越来越多,而各种识别算法也将更先进和便捷。基于Adaboost算法的人脸检测正是众多算法中运用最为广泛的算法。本文采用主成分分析方法(PCA)对训练集、测试集和待测图片做了降维处理。并分析了影响此算法的主要因素关
2、键词:人脸识别;主成分分析方法;Adaboost算法;一Adaboost算法介绍Adaboost算法并不是一个专门针对人脸检测的算法,在2001年Viola和Jones最先将此算法应用于人脸检测。其后在人脸检测中才被越来越多的人使用。算法最终可以将一个弱分类器(分类能力与随机检测差不多),提升为一个强分类器(分类结果要比弱分类器好很多)。算法根据一定的策略调整各样本抽样权重,并按给定权重累加这些弱分类器,从而得到各弱分类器票拟累加的强分类器。在传统的算法中,通常就用这个得到的强分类器对待测图片进行人脸检测。Adaboo
3、st算法的具体步骤如下:1.给定一个人脸训练样本库并规定算法的最大循环次数T,即算法终止条件。2.将样本库中的各训练样本给予一样的抽样权重。3.迭代过程:(1)在此训练样本上训练一个弱分类器对各个样本进行分类?,(2)计算此弱分类器对所有样本的分类误差率(分错的样本与分对的样本的比值);(3)根据它的误差率赋以此分类器一个权重,大体是误差越大权重就越小;⑷对于此次分错的样本则增大它的抽样权重,分对的样本则减小它的抽样权重。(5)所有样本的抽样权重更新一遍后,再针对新样本数据训练新的弱分类器对各个样本进行分类,回到步骤(
4、2)4.经T次循环后,得到T个弱分类器,按迭代过程中分别赋予的权重叠加,最终得到强分类器。算法思路如流程图所示:在整个Adaboost算法中,弱分类器的能力得到了不断的加强。一开始时,由于各样本抽样权重相同。弱分类器分对的概率很低,而在循环的过程中,训练样本库中的负样本抽样权重被加大突出,使得弱分类器更多的接触到这些样本,从而提升了对负样本的识别率。同时,弱分类器也在根据自身的分类误差得到了相应的票拟权重。.这样将会大大的突出那些分类正确率比较高的弱分类器,最后经过T次循环得到的多个对应着自身相应权重的弱分类器,最终的
5、强分类器就是由这样的多个弱分类器加起来形成的。在传统的基于Adaboost算法的人脸检测中,将根据这个强分类器来对含有人脸的图片进行人脸检测。二PCA算法原理主成分分析算法(PCA)是一种经典的统计方法。人脸检测的算法中,第一步首先要将人脸图像转化成相应的数据矩阵,从而转换成对应的向量表示,但此向量不仅维数高而且数据上还存在着较大的冗余性,十分不利于计算机的计算。所以如何将高维向量降低为低维向量,并且又不失去原图的太多信息,从而方便计算机进行处理是一个首要问题,本文正是采取了PCA算法对图片进行了降维处理。K-L变换是
6、PCA算法的核心内容。从理论上看,各式各样的人脸图像都可以映射到低维线性空间中,并且他们是可以区分开的。一般而言,一组人脸图像在转化成相应矩阵后维数是比较高的,而K-L变换算法可以找到一个与之密切相关但维数又比较低的矩阵,只要按照特征值从大到小保留此矩阵的部分数据,那么这个矩阵数据就可以叫做这组人脸图像的特征子空间,也可以叫特征脸子空间。一幅人脸图像转换成向量表示后,PCA算法再将此向量投影到之前得到的特征子空间上,从而原有的高向量就得到了降维处理,此时这幅图像就相当于此特征子空间上的一个点。选取M幅人脸图像,分别记为
7、···使用K-L变换得到一个用来表示原始的人脸空间的低维子空间。记:=由本式可以得到一个新的向量集合:A={···}集合A的均值为零,其协方差矩阵(即总体散布矩阵)为:C==A式中的矩阵按特征值的大小保留部分正交基,将其用计算机还原成图像显示出来,可见他们都呈现了人脸的大致形状,所以他们也被称为特征脸子空间。三结合PCA的Adaboost算法用于人脸检测1,PCA算法降维为减少计算量和方便MATLAB实现,本文采取PCA算法提取人脸库和待测图片的PCA特征向量。具体步骤如下:(1)读入MIT人脸库中的样本(2)将读入样
8、本转换为向量集合后通过K-L变换得出特征脸子空间(3)将人脸库和待测图片都投影到此特征脸子空间上即可得到它们的PCA特征向此处的MATLAB代码实现如下:%输入:%A:训练样本%numvecs:要求降低到的特征维数%输出:%Vectors:特征向量%Values:特征值%Psi:训练样本均值function[Vectors,Val