笔记_人脸检测框架(Viola-Jones Objects detection framwork)
2016-03-03 10:36
459 查看
参考文献地址:http://www.docin.com/p-499040137.html
文献中物体检测框架包括三部分:
a. 特征提取
采用类似于harr特征。如下图所示:
![](https://img-blog.csdn.net/20140802010437781?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTkpaaHVKaW5odWE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
其特征取值为白色区域对应图像的像素值之和减去灰色区域对应图像的像素值之和。一副图像中这样的特征数量太多,为降低复杂度作者引入积分图加速技术,使得计算效率大大提高。注:积分图是一张与原图大小长宽各大一个像素的图,其每个点的取值为其原图左上角所有像素取值的和。
假设积分图中某点p的取值记为iis(p),则 矩形D的像素 = iis(p4)-iis(p2)-iis(p3)+iis(p1);
b. 训练
采用基于Adaboost的分类器训练的方法来选择特征并训练分类器。Adaboost的通过组合多个弱分类器得到一个强分类器。所谓弱分类器指其仅比随机猜略好。为了对弱分类器提升,可理解为一系列弱分类器的相继学习过程,在一次学习结束后,对错误分类的样本通过增加其权重并重新进行学习以得到比上一次更好的分类器。Adaboost的过程可以达到特征选择的目的。训练流程如下:
![](https://img-blog.csdn.net/20160303103746918?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
for循环中,
1. 初始化权重,
2.错误率实际依赖于hj(xi)如果其与yi一致,即分类正确时,hj(xi)-yi = 0,如果分类错误则=1,错误率即增加了。
3. 选择错误最少的分类器。
4. 更新每个样本的权重,错误率都是小于0.5,因此beta_t也是小于1的,因而样本分类正确,则其权重下降,否则权重不变。(注:与Adaboost训练不同,Adaboost中分类正确则权重下降,分类错误则权重提升)。
c.强分类器进行级联来进行人脸/物体检测
将AdaBoost构建的强分类器进行级联来进行人脸/物体检测,提高检测性能的同时大幅加快检测速度。级联分类器其实现方法是先将多个强分类器按复杂度排序,
简单的在前面。这些强分类器虽然对检测率有很高要求,为了效率误识率可以放低。其首先构建简单的(小而高效)boosted分类器,这种分类器在检测出几乎所有正样本时可以拒绝大部分负样本。在一个复杂的低误识率的分类器执行之前通过这个较简单的分类器排除掉大部分子窗口。即只要前一级分类器拒绝的窗口不再进入下一级分类器。
文献中物体检测框架包括三部分:
a. 特征提取
采用类似于harr特征。如下图所示:
其特征取值为白色区域对应图像的像素值之和减去灰色区域对应图像的像素值之和。一副图像中这样的特征数量太多,为降低复杂度作者引入积分图加速技术,使得计算效率大大提高。注:积分图是一张与原图大小长宽各大一个像素的图,其每个点的取值为其原图左上角所有像素取值的和。
假设积分图中某点p的取值记为iis(p),则 矩形D的像素 = iis(p4)-iis(p2)-iis(p3)+iis(p1);
b. 训练
采用基于Adaboost的分类器训练的方法来选择特征并训练分类器。Adaboost的通过组合多个弱分类器得到一个强分类器。所谓弱分类器指其仅比随机猜略好。为了对弱分类器提升,可理解为一系列弱分类器的相继学习过程,在一次学习结束后,对错误分类的样本通过增加其权重并重新进行学习以得到比上一次更好的分类器。Adaboost的过程可以达到特征选择的目的。训练流程如下:
for循环中,
1. 初始化权重,
2.错误率实际依赖于hj(xi)如果其与yi一致,即分类正确时,hj(xi)-yi = 0,如果分类错误则=1,错误率即增加了。
3. 选择错误最少的分类器。
4. 更新每个样本的权重,错误率都是小于0.5,因此beta_t也是小于1的,因而样本分类正确,则其权重下降,否则权重不变。(注:与Adaboost训练不同,Adaboost中分类正确则权重下降,分类错误则权重提升)。
c.强分类器进行级联来进行人脸/物体检测
将AdaBoost构建的强分类器进行级联来进行人脸/物体检测,提高检测性能的同时大幅加快检测速度。级联分类器其实现方法是先将多个强分类器按复杂度排序,
简单的在前面。这些强分类器虽然对检测率有很高要求,为了效率误识率可以放低。其首先构建简单的(小而高效)boosted分类器,这种分类器在检测出几乎所有正样本时可以拒绝大部分负样本。在一个复杂的低误识率的分类器执行之前通过这个较简单的分类器排除掉大部分子窗口。即只要前一级分类器拒绝的窗口不再进入下一级分类器。
相关文章推荐
- java学习日记——Object类I
- IOS 打包All object files and libraries for bitcode must be generated from Xcode Archive or Install bui
- AttributeError: 'NoneType' object has no attribute
- jquery ajax 回调函数的值alert出来[object Object] 解决方法
- Object 的所有方法
- Objective-C-NSObject类的线程方法
- Objective-C-NSOperation
- Objective-C-NSOperation自定义实现
- Objective-C-GCD
- objective-c学习笔记(1)
- 多线程(中) 1.NSThread 2.NSOperationQueue 3.NSObject 4.GCD
- 从C/C++到Objective-C(三)--- 内存管理
- 多线程(NSThread, NSOperationQueue, NSObject,GCD)上
- Objective-C 中的 BOOL
- objective-c中对类别category的理解
- K-means: optimization objective(最小化cost function来求相应的参数)
- 在Objective-C中,字符串的搜索
- iOS中的 多线程- NSThread 与 NSObject
- ActiveXObject 对象 (JavaScript)
- [iOS]编写高质量的Objective-C代码