《(人脸检测之Haar分类器)》由会员分享,可在线阅读,更多相关《(人脸检测之Haar分类器)(23页珍藏版)》请在金锄头文库上搜索。
1、,杨俊 2013.09.24,2,目录,1.什么是Haar分类器? 2.什么是Haar-like特征? 3.什么是强、弱学习算法? 4.什么是adaboost算法? 5.什么是分类器级联,3,人脸检测方法,基于知识的方法: 模板匹配 人脸特征 形状与边缘 纹理特性 颜色特征,基于统计的方法: 主成分分析与特征脸 神经网络方法 支持向量机 隐马尔可夫模型 Adaboost算法,4,Haar分类器,Haar分类器算法的要点如下: 使用Haar-like特征做检测。 使用积分图(Integral Image)对Haar-like特征求值进行加速。 使用AdaBoost算法训练区分人脸和非人脸的强分类
2、器。 使用筛选式级联把强分类器级联到一起,提高准确率。,Haar分类器 = Haar-like特征 + 积分图方法 + AdaBoost +级联,本文中介绍的Haar分类器方法,包含了Adaboost算法。,5,Haar-like特征,Haar-like特征分为三类: 边缘特征 线性特征 中心特征和对角线特征,6,Haar-like特征,将任意一个矩形放到人脸区域上,然后将白色区域的像素和减去黑色区域的像素和,得到的值我们暂且称之为人脸特征值。,作用:如果你把这个矩形放到一个非人脸区域,那么计算出的特征值应该和人脸特征值是不一样的。而且越不一样越好,所以这些方块的目的就是把人脸特征量化,以区分
3、人脸和非人脸。,7,Haar-like特征,举例:将白色区域内的像素和减去黑色区域,因此在人脸与非人脸图片的相同位置上,值的大小是不一样的,这些特征可以用来区分人脸和分人脸。一个Haar-like特征在一个窗口中怎样排列能够更好的体现人脸的特征,这是未知的,所以才要训练,8,弱学习和强学习,弱学习算法:识别错误率小于 1/2(即准确率仅比随机猜测略高的学习算法)。 强学习算法:识别准确率很高并能在多项式时间内完成的学习算法。 Kearns和Valiant提出了弱学习和强学习等价的问题并证明了只要有足够的数据,弱学习算法就能通过集成的方式生成任意高精度的强学习方法。,9,AdaBoost算法,A
4、daBoost算法:使用Adaboost算法挑选出一些最能代表人脸的矩形特征( 弱分类器),按照加权投票的方式将弱分类器构造为一个强分类器。,举例:图中符号分别代表正负样本,10,AdaBoost算法,11,AdaBoost算法,第一步:获得弱分类器。最初的弱分类器可能只是一个最基本的Haar-like特征,计算输入图像的Haar-like特征值,和最初的弱分类器的特征值比较,以此来判断输入图像是不是人脸,然而这个弱分类器太简陋了,可能并不比随机判断的效果好多少.,对弱分类器的孵化就是训练弱分类器成为最优弱分类器,注意这里的最优不是指强分类器,只是一个误差相对稍低的弱分类器,训练弱分类器实际上
5、是为分类器进行设置的过程。,12,AdaBoost算法,要比较输入图片的特征值和弱分类器中特征,一定需要一个阈值,当输入图片的特征值大于该阈值时才判定其为人脸。训练最优弱分类器的过程实际上就是在寻找合适的分类器阈值,使该分类器对所有样本的判读误差最低。,说明:图中,“+”和“-”分别表示两种类别,在这个过程中,我们使用水平或者垂直的直线作为分类器,来进行分类。,13,AdaBoost算法,第二步:更新被误判的样本的权重,14,AdaBoost算法,算法最开始给了一个均匀分布 D 。所以h1 里的每个点的值是0.1。ok,当划分后,有三个点划分错了,根据算法误差表达式得到 误差为分错了的三个点的
6、值之和,所以1=(0.1+0.1+0.1)=0.3,而1 根据表达式 的可以算出来为0.42:,15,AdaBoost算法,然后就根据算法 把分错的点权值变大。分错点的权值计算如下:,对于归类正确的 7 个点,其权值保持不变,为 0.1;对于归类错误的三个点,其权值为:,16,AdaBoost算法,第二次迭代:重复第一、二步 根据分类的正确率,得到一个新的样本分布 D3,一个子分类器 h2 如上图所示,弱分类器 h2 中有三个“-”符号分类错误,分类错误的权值为 we2=0.1*3=0.3; 上图中十个点的总权值为:wt2=0.1*7+0.233*3=1.3990; 错误率为:,17,AdaB
7、oost算法,对于分类错误的三个点,其权值为:,即,分类错误的三个点误差增加为0.3664如此迭代。,18,AdaBoost算法,第三次迭代:重复一、二步,19,AdaBoost算法,第三步:整合所有弱分类器:,20,AdaBoost算法,每个区域是属于哪个属性,由这个区域所在分类器的权值综合决定。比如左下角的区域,属于蓝色分类区的权重为h1 中的 0.42和 h2 中的 0.65,其和为1.07;,属于淡红色分类区域的权重为 h3中的0.92;属于淡红色分类区的权重小于属于蓝色分类区的权值,因此左下角属于蓝色分类区。,21,AdaBoost算法,AdaBoost算法总结:AdaBoost 是
8、一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器,即弱分类器,然后把这些弱分类器集合起来,构造一个更强的最终分类器。(很多博客里说的三个臭皮匠赛过诸葛亮)。算法本身是改变数据分布实现的,它根据每次训练集之中的每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改权值的新数据送给下层分类器进行训练,然后将每次训练得到的分类器融合起来,作为最后的决策分类器。,22,级联强分类器,级联强分类器的策略是,将若干个强分类器由简单到复杂排列, 希望经过训练使每个强分类器都有较高检测率,而误识率可以放低。,比如几乎99.9%的人脸可以通过(检测率),但50%的非人脸也可以通过(误识率),这样如果有20个强分类器级联,那么他们的总识别率为0.9920=98%,错误接受率也仅为0.520=0.0001%,23,谢谢!,