级联增强分类器原理,以haar人脸定位为例


级联增强分类器的原理

对于大多数机器学习算法,训练样本是一个迭代过程,构建训练模型时要循环遍历全部样本。这样创建的分类器的效果会随着样本的增加而逐步提高。一旦效果达到某个特定标准,或者对于当前训练集已经无法继续提升效果,就可以终止学习过程,如级联增强分类器。


一、图像模型及分类方法

先从图像样本中抽取特征,再利用分类方法将抽取出的特征进行分类
非常明显,LBP使用的是最邻近分类法,而这里,介绍的是级联增强分类。

二、HAAR特征

1.引入库

通常认为像素级别的建模方式过于低级,难以鲁棒地表示每个类别的内在特性。选用的模型最好能在多种尺度下描述图像的独特图案。这正是Haar特征(有时也称作类Haar特征)的目标,因为它基于Haar变换基函数。
在这里插入图片描述
就haar特征本身而言,一幅图像可以有很多个haar特征,所以要用机器学习的方法,找出最适用的特征。

分类器构建

级联分类器是由2分类器构成。级联是指前一系统的输出作为后一系统的输入而存在。优点在于可以对输入对象先粗判,再细判,快速排除不符合的输入对象。

两大原理:

多个弱分类器,加起来,就是强分类器 分阶段进行分类,快速排除不符合规定的样本。
每个阶段,都有若干个由不同特征值组成的分类器参与分类,越往后分类器越强,越往后参与的样本越少,难度越大。如某一阶段达不到分类要求,只需要加特征值即可。

具体操作

OpenCV提供了一个软件工具,可以完成全部必需的操作。安装该软件后,在对应的bin目录下有两个可执行文件,即opencv_createsamples.exe和opencv_traincascade.exe。要确保系统的PATH指向这个目录,以便能在任何位置启动这些工具。
正样本清单必须存储在一个文本文件中,这里的文件名为stop.txt。文件中包含图像文件名和矩形的坐标:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

字段说明如下:

-data:指定保存训练结果的文件夹;

-vec:指定正样本集;

-bg:指定负样本的描述文件夹;

-numPos:指定每一级参与训练的正样本的数目(要小于正样本总数);

-numNeg:指定每一级参与训练的负样本的数目(可以大于负样本图片的总数);

-numStage:训练的级数;

-w:正样本的宽;

-h:正样本的高;

-minHitRate:每一级需要达到的命中率(一般取值0.95-0.995);

-maxFalseAlarmRate:每一级所允许的最大误检率;

-mode:使用Haar-like特征时使用,可选BASIC、CORE或者ALL;

另外,还可指定以下字段:

-featureType:可选HAAR或LBP,默认为HAAR;

其他字段将不再说明。

参数-numPos和-numNeg分别表示所用正样本和负样本的数量
每应用一个Haar特征(指定类型、大小和位置),就得到一个特征值。只要找到根据特征值区分负实例和正实例的最佳阈值,就得到了一个单一分类器。
指标:
其中需要特别关注的是当前命中率(hit rate,HR);这个值表示当前被接受的正样本的百分比(即当前被识别为正实例,又称真正样本),这个数值越接近1.0越好。此外还会有当前虚警率(false alarm rate,FA),它表示被误认为正实例的负样本(又称假正样本),这个数值越接近0.0越好。每个阶段的每个特征都会显示这两个数值。
训练级联分类器的每个阶段都必须设置两个约束条件:最小命中率和最大虚警率,可以通过在opencv_traincascade中设置参数-minHitRate(默认为0.995)和-maxFalseAlarmRate(默认为0.5)实现。只有满足了这两个性能指标,才会在这个阶段加入Haar特征。设置的最小命中率必须足够大,以确保正实例能顺利进入下一阶段。注意,如果一个阶段排除了正实例,这个错误就无法修复。因此,为了避免分类器的生成过程太复杂,要把最大虚警率设置得高一点,否则在训练阶段就需要大量Haar特征才能满足性能指标。
一个好的级联分类器,前期阶段的特征数要很少,到后期再逐步增加。在opencv_traincascade工具中,用参数-maxWeakCount(默认值100)设置每个阶段的最大特征数,用-numStages(默认值20)设置阶段的个数
如果一个阶段排除了正实例,这个错误就无法修复,有少数正样本会随着训练阶段的推进而丢失,因此一定要提供比每个阶段所需数量更多的正样本。在上述例子中,numPos应该设为可用正样本数量的90%。
增强型级联学习法AdaBoost

停止条件

如果在一个阶段中,在不需要增加新特征的情况下就能满足两个性能指标,那就在此时停止级联分类器的训练。
注意,训练过程中,每个阶段的样本数是逐阶段减少的。所以到达同样的命中率,越来越困难。

最终精度

级联分类器的精度(命中率)预计为0.99520,虚警率预计为0.520。这意味着90%的正实例会被正确地标识,0.001%的负样本会被错误地标识为正样本。
是每个阶段命中率及虚警率的阶段数次方。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颢师傅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值