码迷,mamicode.com
首页 > 其他好文 > 详细

嵌入级联分类器

时间:2016-09-15 21:36:12      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:

嵌入级联分类器


读"C. Huang, H. Ai, B. Wu, and S. Lao, ‘Boosting Nested Cascade Detector for Multi-View Face Detection‘,ICPR, 2004,Vol II:415-418"笔记

论文主要贡献点

  • 提出一种基于Haar 特征查找表的弱分类器,并使用Real Adaboost学习出一种强分类器。

  • 提出一种嵌套级联分类器(nested cascade detector),该分类器能够更好更快的提升分类性能。通过nested weak classifier 的引入,极大的减少的特征的个数。


Real Adaboost讨论

其实这篇论文并没有对Real Adaboost算法进行改进,只是把cascade detector中的分类器设计AdaBoost替换成了Real AdaBoost的方法。

这方面的主要贡献点,我认为体现在,文章从巴氏距离(Bhattacharyya Distance)的角度解释了Real AdaBoost过程中特征选择的原因。

我们已经介绍过在Real AdaBoost选择特征时,先将某一维特征空间划分为若干区间,然后再在不同区间分类,其分类器的输出为

技术分享

而特征的选择是

技术分享

其中技术分享

当时我们是从最小化指数误差来推导的,现在从巴氏距离角度来理解特征选择的过程。

对于任意两个随机分布,其巴氏距离定义为:

技术分享

在寻找特征时肯定希望正负样本的分布距离尽可能的大,这样比较容易区分正负类。
当使用Real AdaBoost时,每个维度被划分为N个区间,那么在该维度上正负样本分布的巴氏距离为:

技术分享

所以我们在最小化技术分享时就是在最大化技术分享.

In conclusion, we state that in order to train a best LUT-type weak classifier under a distribution $D_t$, first a Haar feature which gets the maximum $J_B$ should be selected.

这里LUT-type 是指Look-Up-Table类型,因为每位特征划分成N个区间,每个区间都有对应的输出,所以可以采用查找表的方式分类。


嵌套级联分类器
级联分类器中下一级分类器的训练样本是上一级分类器检出的样本,而如果使用Real AdaBoost训练得到分类器,那么分类器输出的结果就不仅仅是正负样本的示性函数,而有确定的实数值,仅简单的将‘正样本’平等对待输入到下一级分类器,就极大的忽略了实值输出所蕴含的差异性。

在级联分类器中每一个分类器要求较高的检测率,而误检率在可接受范围内即可,这会导致分类器检测出的正样本仍然具有明显的可分性。

如下图所示的分布,左图是样本的原始分布,经过一级AdaBoost分类器后,所有的‘正样本’的分布如右图所示。易发现为了取得较高的检测率,在‘正样本’中有许多真实负样本,而由其分布可发现这些样本还是能够较好的分离的。

技术分享

resample.png

所以,文中为了利用上级分类器得到实值结果所蕴含的分类信息,在原有的cascade detector基础上,在每一层增加了一个弱分类器,该弱分类器使用的特征正是上一级分类器给出的实值输出。

总体上,nested cascade detector由四部分组成:Haar特征,一般弱分类器,嵌入的弱分类器(利用上层实值输出的分类器)和强分类器,其结构图如下:

技术分享

nested.png

nested weak classifier 一样可以使用分区间的方法构造,这样每一层Real AdaBoost的输出为:

技术分享

最终分类器的输出为

技术分享

k为分类器层数。

注:在每一层强分类器的设计中,nested weak classifier 被作为第一个弱分类器。

Experimentally, conf(x) has a much larger Bhattacharyya distance than a Haar feature, so the nested weak classifier is a ‘strong‘ one, which is placed as the first component in each layer except for the first layer.


多视角人脸检测
文章中应用nested cascade detector实现多视角地人脸检测,人脸rotation-out-plane的姿态被分为5类:左侧脸、左半侧脸、正脸、右半侧脸、右侧脸,然后对每一类都构建一个nested cascade detector,实验结果表明对该类应用能取得很好的效果。

下图是该检测过程示意图:

技术分享

MVFD.png

这里有一个模块,被称为Pose estimator,相当于一个预选择的过程,通过对姿势的筛选,使样本能够相对精确的进入对应的分类器,加快分类速度。


嵌入级联分类器

标签:

原文地址:http://www.cnblogs.com/YiXiaoZhou/p/5875462.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!