人脸检测----Adaboost学习方法

  有了haar特征,有了提高性能的积分图,是否是已经能够很好的解决人脸检测问题了?答案是:no. 由于,计算每个特征值的时候速度都大幅提高了,可是,一个小小的24*24是人脸图像根据不一样的位置,html

以及不一样的缩放,能够产生超过160,000个特征!这个数量太庞大了,因此确定要舍弃大量的特征。那么,如何保证使用少许的特征,而又能获得精确的结果呢?git

  大神永远有解决方法,viola等人使用adaboost来进行分类。声明一下,adaboost并非viola等人提出的,而是Freund和Schapire提出。可是viola的伟大正是由于他将这个模型首次用到了人脸识别中,这使得算法

人脸识别在嵌入式系统应用成为一个可能的事情。api

  什么是adaboost呢?机器学习

  AdaBoost,是英文"Adaptive Boosting"(自适应加强)的缩写,是一种机器学习方法,由Yoav Freund和Robert Schapire提出。[1]AdaBoost方法的自适应在于:前一个分类器分错的样本会被用来训练下一个分类器。性能

AdaBoost方法对于噪声数据和异常数据很敏感。但在一些问题中,AdaBoost方法相对于大多数其它学习算法而言,不会很容易出现过拟合现象。AdaBoost方法中使用的分类器可能很弱(好比出现很大错误率),但只学习

要它的分类效果比随机好一点(好比两类问题分类错误率略小于0.5),就可以改善最终获得的模型。而错误率高于随机分类器的弱分类器也是有用的,由于在最终获得的多个分类器的线性组合中,能够给它们赋予负.net

系数,一样也能提高分类效果。htm

  AdaBoost方法是一种迭代算法,在每一轮中加入一个新的弱分类器,直到达到某个预约的足够小的错误率。每个训练样本都被赋予一个权重,代表它被某个分类器选入训练集的几率。若是某个样本点已经被准确blog

地分类,那么在构造下一个训练集中,它被选中的几率就被下降;相反,若是某个样本点没有被准确地分类,那么它的权重就获得提升。经过这样的方式,AdaBoost方法能“聚焦于”那些较难分(更富信息)的样本上。

在具体实现上,最初令每一个样本的权重都相等,对于第k次迭代操做,咱们就根据这些权重来选取样本点,进而训练分类器Ck。而后就根据这个分类器,来提升被它分错的的样本的权重,并下降被正确分类的样本权重。

而后,权重更新过的样本集被用于训练下一个分类器Ck[2]。整个训练过程如此迭代地进行下去。

  人脸检测使用adaboost的流程是什么呢?

  首先是要把级联的概念搞清楚。全部伟大的东西,其思想都是很简单的。

        级联结构:

  将多个强分类器链接在一块儿进行操做。每个强分类器都由若干个弱分类器加权组成。例如,一个级联用的强分类器包含20个左右的弱分类器,而后在将10个强分类器级联起来,就构成了一个级联强分类器,

这个级联强分类器中总共包括200个(20*10)分类器。由于每个强分类器对负样本的判别准确度很是高,因此一旦发现检测到的目标位负样本,就不在继续调用下面的强分类器,减小了不少的检测时间。由于一幅

图像中待检测的区域不少都是负样本,这样由级联分类器在分类器的初期就抛弃了不少负样本的复杂检测,因此级联分类器的速度是很是快的;只有正样本才会送到下一个强分类器进行再次检验,这样就保证了最后

输出的正样本的伪正(false positive)的可能性很是低。

  最优弱分类器:

寻找合适的阈值,使该分类器对全部样本的判断偏差最小。对于每一个特征f,计算全部训练样本的特征值并排序:

遍历排序后的特征值,对于序列中的每一个元素,计算如下值:

 

     1.所有人脸样本的权重和t1

 

     2.所有非人脸样本的权重和t0

 

     3.在此元素以前的人脸样本的权重和s1

 

     4.在此元素以前的非人脸样本的权重和s0

 

     5.此元素的分类偏差:r=min{[s1+(t0-s0)],[s0+(t1-s1)]}

 找出r值最小的元素做为最优阈值,最优分类器就产生了。

  强分类器:

For T轮迭代:

 

     1.从新统一权重

 

     2.训练出本轮的最优弱分类器(详见上一P)

 

     3.根据本轮迭代中的分类结果从新分配样本权重(增长错误分配样本的权重)

     这样,T轮以后将产生T个最优弱分类器

组合T个最优弱分类器获得强分类器:

  至关于让全部弱分类器投票,再对投票结果按照弱分类器的错误率加权求和,将投票加权求和的结果与平均投票结果比较得出最终的结果。

 

  级联分类器的训练过程:

 

 参考文档:

1 https://wizardforcel.gitbooks.io/dm-algo-top10/content/adaboost.html 

2 https://zh.wikipedia.org/wiki/AdaBoost  

3 https://blog.csdn.net/cyh_24/article/details/39755661 

相关文章
相关标签/搜索