首页 理论教育 分类器级联优化策略

分类器级联优化策略

时间:2023-06-29 理论教育 版权反馈
【摘要】:如果一个目标最终成功通过了所有的分类器,则说明该目标符合所有弱分类器的要求,即符合级联分类器的整体要求。图4-8分类器的级联工程实践中,常用OpenCV图像算法库用正负样本训练分类器,最后用得到的分类器对人脸进行检测。最终得到强分类器:对提取的人脸Haar特征,采用AdaBoost分类器,对采集的不同光照条件下的人脸样本进行训练,得到训练好的级联分类器文件。

分类器级联优化策略

AdaBoost(Adaptive Boosting)是一种能在系统消耗较少的情况下获得较好分类效果的分类器,因此被广泛应用于模式分类的各种场合。其基本原理可以概括为用一系列较弱的分类器的组合(即级联)来达到较强的分类效果。具体来说,每一项弱分类器都对待分类目标进行一次筛选,滤除掉不符合这一分类器要求的目标,符合要求的目标则被提供给下一个弱分类器继续进行分类操作。如果一个目标最终成功通过了所有的分类器,则说明该目标符合所有弱分类器的要求,即符合级联分类器的整体要求。例如,要寻找一名疑犯,已知他的特点:男性、身高170~175cm、黑色上衣、灰色裤子,对于所有待选目标,首先判断其性别是否符合“男性”这一条件,滤除所有女性,再对结果中目标的身高进行判断,只保留身高在170~175cm之间的目标,以此类推使用所有参数过滤最终得到符合上述所有条件的目标。AdaBoost级联分类器进行人脸检测采用的就是类似的方法,每一个弱分类器都在像素级别上判断一幅图片是否符合人脸的特点,如果一幅图片能够通过所有的分类器,则说明从各种角度来考虑(各个弱分类器)都符合人脸的特点,因此有很大几率是一幅包含人脸的图片。

Haar的特征数量巨大,Paul Viola采用级联的方式提升计算速度,即根据哈尔特征对图像的非人脸区域逐步排除。首先分类器检测出大部分的非人脸的区域F,及所有人脸区域T,然后将非人脸区域F排除,把T送入下一分类器中检测,以此类推,如图4-8所示。

图4-8 分类器的级联

工程实践中,常用OpenCV图像算法库用正负样本训练分类器,最后用得到的分类器对人脸进行检测。流程如图4-9所示。

图4-9 AdaBoost+OpenCV人脸检测

AdaBoost算法能够取得较好的效果,但实际应用中发现,该算法存在较高的误检率,容易把非人脸区域误检测为人脸。为了改进检测效果,采用了肤色模型与AdaBoost结合的方法,首先从图像中检测出肤色区域,将其作为候选区域。然后对候选区域进行处理,检测其中的人脸。

在AdaBoost算法中,强分类器可以通过以下步骤训练获得(参见图4-10):

(1)给定N个训练样本组成的集合,即

式中,xi为计算得到的样本特征向量,yi={0,1}对应于行人假样本和真样本。

(2)初始化误差权重wl,i=D(i)。已知训练样本包含有k个假样本、l个真样本。当样本为真样本时,D(i)=1/2k;为假样本时,D(i)=1/2l。

(3)对于每个t=1,2,…,T(T为弱分类器个数)操作如下:

归一化权重:

②对每个特征j,训练得到相应的弱分类器:

式中,pj表示不等式的方向,只能取±1;fj(x)表示特征值;θj阈值

③计算对应所有特征的弱分类器的加权qt错误率εj

④选择具有最小误差εt的简单分类器ht(x)加入到强分类器中去:

⑤按照最佳简单分类器ht(x)更新样本对应的权重:

式中,如果第i个样本xi被正确分类,则ei=0;反之,ei=1

(4)最后形成的强分类器为

式中,αt=-lgβt。(www.xing528.com)

AdaBoost级联分类器的训练过程如图4-10所示,算法整体流程如图4-11所示。

AdaBoost和肤色模型结合的人脸检测结果如图4-12所示。

由于矩形特征的结构简单,利用单一的矩形特征构造出的分类器的分类性能一般难以满足实际检测的需要,所以检测效果通常只比随机猜测的准确率稍高,是典型的弱分类器。AdaBoost是一种分类器算法。不同于传统的Boost算法,它允许重复使用训练样本,对样本的数量要求相对不是很高。它通过将大量分类能力比较弱的分类器级联构造成一个分类能力强的强分类器。具体算法描述如下:

(1)输入N个训练样本{x1,y1},…,{xn,yn};其中xi是输入样本向量,属于样本训练集X;yi是分类标志,yi∈{-1,1},-1和1分别对应非人脸样本和人脸样本。

式中hi(x)为简单分类器的值,fi(x)表示特征值,δi为阈值。

(2)初始化误差权值:

图4-10 AdaBoost分类器分类流程

图4-11 AdaBoost算法流程

图4-12 肤色+AdaBoost人脸检测

(3)进行第t次训练,将弱学习算法在权值D下训练,归一化权重。

对每一个特征值i,生成简单的分类器h,并计算该分类器的错误率:

(4)更新样本权重:

若第i个样本被正确分类,则ei=0,否则ei=1。其中

(5)最终得到强分类器:

对提取的人脸Haar特征,采用AdaBoost分类器,对采集的不同光照条件下的人脸样本进行训练,得到训练好的级联分类器文件。这里采用已经训练好的正面人脸和侧面人脸分类器文件,在基于肤色提取的基础上进行人脸检测,具体操作步骤如下:

(1)在肤色提取的基础上,得到每个肤色区域的最小外接矩形框,将其放大Rs倍,对应部分设为感兴趣区域。

(2)计算感兴趣区域的大小,若小于阈值Fs或大于阈值Fm,则将其丢弃。

(3)将保留下来的感兴趣区域图像转换为灰度图。为减少搜索时间,将灰度图缩小至原图大小的1/Ga

(4)载入训练好的人脸分类器文件,在步骤(2)得到的灰度图中进行人脸搜索,初始化搜索窗口大小设为K×L。

(5)输出检测到的人脸区域。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈