AdaBoost人脸检测训练算法 (中)
2014-01-09 11:07
351 查看
(3)采用[b]AdaBoost算法选取优化的弱分类器[/b]
通过Adaboost算法挑选数千个有效的haar特征来组成人脸检测器,Adaboost算法中不同的训练集是通过调整每个样本对应的权重来实现的。
开始时,每个样本对应的权重是相同的,对于h1分类错误的样本,加大其对应的权重;而对于分类正确的样本,降低其权重,这样分错的样本就被突出出来,从而得到一个新的样本分布U2。
在新的样本分布下,再次对弱分类器进行训练,得到弱分类器h2。依次类推,经过T次循环,得到T个弱分类器,把这T个弱分类器按一定的权重叠加(boost)起来,得到最终想要的强分类器。
![](http://www.edabc.net/blog/attachments/2009/03/20_2009031319545918xx2.jpg)
这里,我给出训练弱分类器和选取优化的弱分类器的算法(算法图若看不清,请点击放大):
![](http://www.edabc.net/blog/attachments/2009/03/20_200903131956031xbRt.png)
分类器训练完以后,就可以应用于输入图像中的感兴趣区域(与训练样本相同的尺寸)的检测。检测到目标区域(汽车或人脸)分类器输出为1,否则输出为0。
为了检测整副图像,可以在图像中移动搜索窗口,检测每一个位置来确定可能的目标。为了搜索不同大小的目标物体,分类器被设计为可以进行尺寸改变,这样比改变待检图像的尺寸大小更为有效。
所以,为了在图像中检测未知大小的目标物体,扫描程序通常需要用不同比例大小的搜索窗口对图片进行几次扫描。
(4)构成级联结构的层叠分类器
每个特定分类器所使用的特征用形状、感兴趣区域中的位置以及比例系数(这里的比例系数跟检测时候采用的比例系数是不一样的,尽管最后会取两个系数的乘积值)来定义。
分类器中的“级联”是指最终的分类器是由几个简单分类器级联组成。在图像检测中,被检窗口依次通过每一级分类器,这样在前面几层的检测中大部分的候选区域就被排除了,全部通过每一级分类器检测的区域即为目标区域。
![](http://www.edabc.net/blog/attachments/2009/03/20_200903131957381YJmk.png)
同样,我们给定训练级联结构的分类器的算法(算法图若看不清,请点击放大):
![](http://www.edabc.net/blog/attachments/2009/03/20_200903131959011gBrj.png)
补充:训练样本的选择和训练系统总体框架
训练样本要求是面部特写图像,下图是一簇训练样本,大小被归一化为24×24像素。
其中,正训练样本要求是面部特写图像,但是人脸形态千差万别,所以训练样本选取过程中要考虑到样本的多样性。
负训练样本,大小被归一化为24×24像素,其中各样本不完全相同,分别具有一定的代表性。
![](http://www.edabc.net/blog/attachments/2009/03/20_200903131959481P85V.thumb.jpg)
训练系统总体框架,由“训练部分”和“补充部分”构成。依据系统框架,本文的训练系统可分为以下几个模块:
(1)以样本集为输入,在给定的矩形特征原型下,计算并获得矩形特征集;
(2)以特征集为输入,根据给定的弱学习算法,确定闽值,将特征与弱分类器一一对应,获得弱分类器集;
(3)以弱分类器集为输入,在训练检出率和误判率限制下,使用A d a B o o s t算法
挑选最优的弱分类器构成强分类器;
(4)以强分类器集为输入,将其组合为级联分类器;
(5)以非人脸图片集为输入,组合强分类器为临时的级联分类器,筛选并补充非人脸样本。
![](http://www.edabc.net/blog/attachments/2009/03/20_200903132001411t7BG.jpg)
通过Adaboost算法挑选数千个有效的haar特征来组成人脸检测器,Adaboost算法中不同的训练集是通过调整每个样本对应的权重来实现的。
开始时,每个样本对应的权重是相同的,对于h1分类错误的样本,加大其对应的权重;而对于分类正确的样本,降低其权重,这样分错的样本就被突出出来,从而得到一个新的样本分布U2。
在新的样本分布下,再次对弱分类器进行训练,得到弱分类器h2。依次类推,经过T次循环,得到T个弱分类器,把这T个弱分类器按一定的权重叠加(boost)起来,得到最终想要的强分类器。
![](http://www.edabc.net/blog/attachments/2009/03/20_2009031319545918xx2.jpg)
这里,我给出训练弱分类器和选取优化的弱分类器的算法(算法图若看不清,请点击放大):
![](http://www.edabc.net/blog/attachments/2009/03/20_200903131956031xbRt.png)
分类器训练完以后,就可以应用于输入图像中的感兴趣区域(与训练样本相同的尺寸)的检测。检测到目标区域(汽车或人脸)分类器输出为1,否则输出为0。
为了检测整副图像,可以在图像中移动搜索窗口,检测每一个位置来确定可能的目标。为了搜索不同大小的目标物体,分类器被设计为可以进行尺寸改变,这样比改变待检图像的尺寸大小更为有效。
所以,为了在图像中检测未知大小的目标物体,扫描程序通常需要用不同比例大小的搜索窗口对图片进行几次扫描。
(4)构成级联结构的层叠分类器
每个特定分类器所使用的特征用形状、感兴趣区域中的位置以及比例系数(这里的比例系数跟检测时候采用的比例系数是不一样的,尽管最后会取两个系数的乘积值)来定义。
分类器中的“级联”是指最终的分类器是由几个简单分类器级联组成。在图像检测中,被检窗口依次通过每一级分类器,这样在前面几层的检测中大部分的候选区域就被排除了,全部通过每一级分类器检测的区域即为目标区域。
![](http://www.edabc.net/blog/attachments/2009/03/20_200903131957381YJmk.png)
同样,我们给定训练级联结构的分类器的算法(算法图若看不清,请点击放大):
![](http://www.edabc.net/blog/attachments/2009/03/20_200903131959011gBrj.png)
补充:训练样本的选择和训练系统总体框架
训练样本要求是面部特写图像,下图是一簇训练样本,大小被归一化为24×24像素。
其中,正训练样本要求是面部特写图像,但是人脸形态千差万别,所以训练样本选取过程中要考虑到样本的多样性。
负训练样本,大小被归一化为24×24像素,其中各样本不完全相同,分别具有一定的代表性。
![](http://www.edabc.net/blog/attachments/2009/03/20_200903131959481P85V.thumb.jpg)
训练系统总体框架,由“训练部分”和“补充部分”构成。依据系统框架,本文的训练系统可分为以下几个模块:
(1)以样本集为输入,在给定的矩形特征原型下,计算并获得矩形特征集;
(2)以特征集为输入,根据给定的弱学习算法,确定闽值,将特征与弱分类器一一对应,获得弱分类器集;
(3)以弱分类器集为输入,在训练检出率和误判率限制下,使用A d a B o o s t算法
挑选最优的弱分类器构成强分类器;
(4)以强分类器集为输入,将其组合为级联分类器;
(5)以非人脸图片集为输入,组合强分类器为临时的级联分类器,筛选并补充非人脸样本。
![](http://www.edabc.net/blog/attachments/2009/03/20_200903132001411t7BG.jpg)
相关文章推荐
- AdaBoost人脸检测训练算法
- AdaBoost人脸检测训练算法 (下)
- AdaBoost人脸检测训练算法
- AdaBoost人脸检测训练算法 (上)
- AdaBoost人脸检测训练算法 (中)
- AdaBoost人脸检测训练算法
- 人脸检测之MTCNN训练自己的数据(部分代码公开!请关注置顶的MTCNN算法优化!)
- 基于Adaboost的人脸检测算法
- AdaBoost人脸训练算法
- AdaBoost人脸检测训练算法 (上)
- 移植OpenCV的AdaBoost人脸检测算法到DM6467
- 基于Adaboost的人脸检测算法
- 移植OpenCV的AdaBoost人脸检测算法到DM6467
- AdaBoost 人脸检测介绍(6) : 使用OpenCV自带的 AdaBoost程序训练并检测目标
- 基于肤色分割和改进AdaBoost 算法的人脸检测
- 移植OpenCV的AdaBoost人脸检测算法到DM6467
- 转载——Adaboost 算法 人脸检测原理
- 使用opencv2.0的haar算法人脸检测分类器训练xml
- AdaBoost人脸检测训练算法 (下)
- AdaBoost中利用Haar特征进行人脸识别算法分析与总结2——级联分类器与检测过程