Haar+cascade AdaBoost分类器学习训练总结
2017-01-31 17:22
357 查看
尽量用简单的语言总结一下,利用haar特征,结合级联分类器进行XX检测,这里以XX代表人脸。
整体思路分为5大步:
1、准备人脸、非人脸样本集;
2、计算特征值和积分图;
3、挑选最优分类器;
4、利用AdaBoost把这些分类器训练成一个强分类器;
5、级联,也就是强分类器的强强联手。
在开始前,一定要记住,以24*24窗口为例,就有16万+的特征数量,所以首先要从中筛选有用的特征(即最优弱分类器),然后利用AdaBoost将这些最优弱分类器训练成一个强分类器,最后将强分类器进行级联。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1、准备人脸、非人脸样本集
这一步没什么好说的,
2、计算特征值和积分图
Haar特征,也就是那三种特征,边缘特征、线性特征、特征方向特征,
haar特征及特征值计算,推荐博文,点击链接
积分图计算也很简单,一搜一大把,给个例子
如下图
那么如何利用积分图进行计算呢?举例如下图
假设计算特征 1 1 2 2,直接 sum(蓝色区域) - sum(粉色区域) = (2+2) - (1+1) = 2
利用积分图像计算 区域A = (9+2) - (3+6) =2, 区域B = (17+6) - (10+9) = 4, 区域B - 区域A = 4 - 2 = 2。
使用积分图,可以对haar特征值计算进行加速。
3、挑选最优分类器
这一步是很多教程讲解不清楚的地方。
之前一直以为计算到haar特征值后,然后直接用AdaBoost进行训练强分类器,大错特错!
以24*24为例,16万+个特征值,如果直接利AdaBoost训练,那么工作量是极其极其巨大的。
所以必须有个筛选的过程,筛选出T个优秀的特征值(即最优弱分类器),然后把这个T个最优弱分类器传给AdaBoost进行训练。
如何挑选?
链接,只需了解 3.1即可
4、利用AdaBoost训练一个强分类器
此时,我们手中有T个最优弱分类器(在第3步中得到),现在就要利用AdaBoost算法了
换句话说,a weighted combination of all these found weak classifiers to evalute and decide any given window has a face or not.
这里有个非常好的讲解,结合实例来说,更明朗
PPT中的Y值 是1 or -1,可以理解为正样本和负样本,或者理解为人脸和非人脸,
X为haar特征值,所以从这个角度来讲,每个haar特征值就是一个弱分类器。
5、级联,也就是强分类器的强强联手
推荐这篇文章 的2.3节,虽然我也没有看明白, 感觉就是决策树的问题了。
就这么多了,有问题一起探讨。
整体思路分为5大步:
1、准备人脸、非人脸样本集;
2、计算特征值和积分图;
3、挑选最优分类器;
4、利用AdaBoost把这些分类器训练成一个强分类器;
5、级联,也就是强分类器的强强联手。
在开始前,一定要记住,以24*24窗口为例,就有16万+的特征数量,所以首先要从中筛选有用的特征(即最优弱分类器),然后利用AdaBoost将这些最优弱分类器训练成一个强分类器,最后将强分类器进行级联。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1、准备人脸、非人脸样本集
这一步没什么好说的,
2、计算特征值和积分图
Haar特征,也就是那三种特征,边缘特征、线性特征、特征方向特征,
haar特征及特征值计算,推荐博文,点击链接
积分图计算也很简单,一搜一大把,给个例子
如下图
那么如何利用积分图进行计算呢?举例如下图
假设计算特征 1 1 2 2,直接 sum(蓝色区域) - sum(粉色区域) = (2+2) - (1+1) = 2
利用积分图像计算 区域A = (9+2) - (3+6) =2, 区域B = (17+6) - (10+9) = 4, 区域B - 区域A = 4 - 2 = 2。
使用积分图,可以对haar特征值计算进行加速。
3、挑选最优分类器
这一步是很多教程讲解不清楚的地方。
之前一直以为计算到haar特征值后,然后直接用AdaBoost进行训练强分类器,大错特错!
以24*24为例,16万+个特征值,如果直接利AdaBoost训练,那么工作量是极其极其巨大的。
所以必须有个筛选的过程,筛选出T个优秀的特征值(即最优弱分类器),然后把这个T个最优弱分类器传给AdaBoost进行训练。
如何挑选?
链接,只需了解 3.1即可
4、利用AdaBoost训练一个强分类器
此时,我们手中有T个最优弱分类器(在第3步中得到),现在就要利用AdaBoost算法了
换句话说,a weighted combination of all these found weak classifiers to evalute and decide any given window has a face or not.
这里有个非常好的讲解,结合实例来说,更明朗
PPT中的Y值 是1 or -1,可以理解为正样本和负样本,或者理解为人脸和非人脸,
X为haar特征值,所以从这个角度来讲,每个haar特征值就是一个弱分类器。
5、级联,也就是强分类器的强强联手
推荐这篇文章 的2.3节,虽然我也没有看明白, 感觉就是决策树的问题了。
就这么多了,有问题一起探讨。
相关文章推荐
- Ubuntu14.04安装失败!!很伤心,Why?
- 微信红包知多少
- python之tile函数,shape函数,argsort函数介绍
- css常用属性
- Android贝塞尔曲线————波浪效果(大波浪)
- 并查集
- 八皇后
- 指针变量作为函数参数为了改变指针变量指向实参的值
- vue+webpack+es6+sass
- P1028 数的计算(洛谷)
- HDFS“慢节点”监控分析功能
- C++ 11 线程调用类的成员函数解决办法
- 必联智能路由器
- OPEN(SAP) UI5 学习入门系列之四:更好的入门系列-官方Walkthrough
- rEFI引导Win10+Ubuntu16双系统
- RHCE_1-2_[从命令行管理文件]
- OPEN(SAP) UI5 学习入门系列之三:MVC (下) - 视图与控制器
- 2.6.1HTML5表单的创建
- POJ1008 maya calender convert
- Integer和int