基于Adaboost算法的人脸检测简介.ppt

基于Adaboost算法的人脸检测简介.ppt

基于Adaboost算法的人脸检测简介 人脸检测 人脸检测(face detection)是指对于任意一幅给定的图像,采用一定的策略对其进行搜索以确定其中是否含有人脸,如果是则返回人脸的位置、大小和姿态。 典型的方法有模板法、基于示例学习、基于器官特征的方法、神经网络、彩色信息+形状分析、AdaBoost的方法等等。 Adaboost算法基本原理 强分类器:如果一个学习算法通过一组样本的学习后,能够达到理想的识别率,则称它为强分类器。 弱分类器:如果一个学习算法的识别率仅好于随机的猜测,则称其为弱分类器。 通常,针对一个具体的识别问题,我们很难找到一个理想的强分类器,但是弱分类器一般都会很多,基于这种现象,Freund和Schapire提出了Adaboosting算法:通过一定的算法可以将一组弱分类器提升为一个强分类器。 Adaboost算法的具体描述如下: 输入:一组训练集: ,其中 为样本描述, 为样本标识, ;其中0,1分别表示正例子和反例。在人脸检测中,可以定义0为非人脸,1为人脸。 初始化:初始样本权值设为 。 对 ,循环执行下面的步骤: 1.归一化权重: 2.对每个特征f,训练一个弱分类器 ;计算所有特征的若分类器的加权错误率 3.选取最佳弱分类器 ,按最小错误率。 4.按照这个最佳弱分类器,调整权重: , 其中 表示 被正确分类, 表示 被错误分类。 5.最后的强分类器为: 其中 。 算法流程图: 一些理解 Adaboost 算法是一种用来分类的方法,它的基本原理就是“三个臭皮匠,顶个诸葛亮”。它把一些比较弱的分类方法合在一起,组合出新的很强的分类方法。 例如在下图中 需要一些线段把红色的球和深蓝色的球分开,然如仅果仅用一条线的话,是分不开的。 使用Adaboost算法来进行划分的话,先画出一条错误率最小的线段如图a,但左下角的深蓝色的球被错划分到红色区域,因此加重被错误划分的球的权重,再下一次划分的时候,将更加考虑那些权重大的球,如图c,最终得到一个准确的划分,如下图所示。 矩形特征与积分图 Viola和Jone将Adaboost应用于人脸检测,在保证检测率的同时,首次使得人脸检测达到了实时的速度。 为了保证Adaboost分类器的分类能力,其选择的弱分类器一般都应该尽可能的简单,通常都是一条简单的规则,对物体的某个特征进行简单判断。 在基于Adaboost的人脸检测系统中,每个弱分类器都是对图像一个特征值的判断,常用的特征是一种基于积分图计算的Haar-like特征。 矩形特征 在Viola的方法中,使用矩形特征作为分类的依据,称为Haar特征,因为它是用一种类似Haar小波的方法来形成人脸特征的。典型的矩阵特征由2到4个矩形组成,分别对应于边界、细线/棒或者对角线特征,见下图。对应的矩形特征的特征值定义为白色矩形内的像素和减去黑色矩形内的像素和。 后来,Lienhart等人提出扩展的Haar-like特征下图所示,每个特征由2~3个矩形组成,分别检测边界、细线、中心特征等。 在确定了特征形式后,Harr-like特征的数量就取决于训练样本图像矩阵的大小。当人脸样本图像和非人脸样本图像的矩阵大小为24×24时(一般人脸检测的训练样本为24×24大小),原始Harr-like特征库的四种特征的总数量就为162336个,见下表。 将haar特征这种反映图像中灰度分布特点的特性引入人脸检测问题当中,问题就转换成如何找到较好的haar特征对人脸图像灰度分布的特点进行描述。下图中的3个特征就能很好的描述图像中人脸的眼部的灰度的分布特点。 Adaboost算法通过从大量的haar特征中挑选出最优的特征,并将其转换成对应的弱分类器进行分类使用,从而达到对目标进行分类的目的。 积分图 利用矩形特征来计算选取人脸的特征有一种非常快速的算法,这种算法使用了一种间接的图像表示方法,称之为积分图(如图6(a))。在一张积分图上,点i(x,y)的积分值ii(x,y)是原图像上该点的上方和左方所有点的亮度值的和。即: 其中ii(x,y)为积分图,i(x,y)为原始图像,

文档评论(0)

1亿VIP精品文档

相关文档