一种改进的AdaBoost分类器构造方法

文档序号:6474965阅读:202来源:国知局

专利名称::一种改进的AdaBoost分类器构造方法
技术领域
:本发明涉及一种改进的AdaBoost分类器构造方法,属于图像检测
技术领域

背景技术
:在机器学习中,AdaBoost分类器与SVM(支持向量机,SupportVectorMachines)相比,在模式识别应用中具有识别精度高、实时性好的优点,因而在汽车辅助驾驶中障碍物(如车辆、摩托车、行人)识别中取得了较好的应用效果,然而,AdaBoost分类器在应用中的不足之处是训练过程远比SVM分类器耗时得多,妨碍了其在其他领域的应用推广。AdaBoost(AdaptiveBoosting)分类器构造方法是由Freund&Schapire提出的一种自适应的Boost分类器构造方法,其主要原理是将所有待分类样本赋予相等的初始权值,在每一轮选取弱分类器(比随机猜测略好)的训练中,选择对样本带权分类错误最小的特征与阈值组合作为当前选取的弱分类器,并根据当前的弱分类器的分类效果对样本的权值进行更新即分类错误的样本权值升高,而分类正确的样本权值降低。在反复进行多次迭代训练后,可以使分类错误趋近于零,最后将这些弱分类器组合成强分类器。由此可以看出,AdaBoost分类器训练阶段大部分时间都消耗在寻找弱分类器上。传统的寻找弱分类器方法是仅仅依据每个样本的类Haar特征值来寻找弱分类器,即首先对每个类Haar特征在训练样本集上得到的特征向量采用穷举的方式得到相应的候选分类位置,然后从所有候选分类位置中寻找分类错误最小的分类位置,再基于此位置构造弱分类器,因而导致AdaBoost分类器训练过程计算量大、耗时长,此外,在构造弱分类器过程中,传统的阈值设置方法在反映训练样本的分布规律方面仍有待进一步改善。
发明内容本发明的所要解决的技术问题是针对现有AdaBoost构造方法训练过程中存在的计算量大、耗时长以及弱分类器构造过程中传统阈值设置方法存在的问题,提出一种改进的AdaBoost分类器构造方法。本发明为实现上述发明目的采用如下技术方案一种改进的AdaBoost分类器构造方法,包括步骤(1)、获取图像感兴趣区域;步骤(2)、计算积分图;步骤(3)、获得弱分类器;步骤(4)、将步骤(3)得到的弱分类器组合成强分类器;其特征在于所述步骤(3)中获得弱分类器的步骤为(3)-I、设所有类Haar特征在训练样本集S上得到的特征值集合为矩阵A权利要求一种改进的AdaBoost分类器构造方法,包括步骤(1)、获取图像感兴趣区域;步骤(2)、计算积分图;步骤(3)、获得弱分类器;步骤(4)、将步骤(3)得到的弱分类器组合成强分类器;其特征在于所述步骤(3)中获得弱分类器的步骤为(3)Ⅰ、设所有类Haar特征在训练样本集S上得到的特征值集合为矩阵A<mrow><mi>A</mi><mo>=</mo><mfencedopen='('close=')'><mtable><mtr><mtd><msub><mi>a</mi><mn>11</mn></msub></mtd><mtd><msub><mi>a</mi><mn>12</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>a</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>a</mi><mrow><mn>1</mn><mi>n</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>a</mi><mn>21</mn></msub></mtd><mtd><msub><mi>a</mi><mn>21</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>a</mi><mrow><mn>2</mn><mi>j</mi></mrow></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>a</mi><mrow><mn>2</mn><mi>n</mi></mrow></msub></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>a</mi><mrow><mi>i</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>a</mi><mrow><mi>i</mi><mn>2</mn></mrow></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>a</mi><mi>ij</mi></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>a</mi><mi>in</mi></msub></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd><mtd></mtd><mtd><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>a</mi><mrow><mi>m</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>a</mi><mrow><mi>m</mi><mn>2</mn></mrow></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>a</mi><mi>mj</mi></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>a</mi><mi>mn</mi></msub></mtd></mtr></mtable></mfenced></mrow>其中n表示训练样本集中样本的个数,m代表一张归一化为32×32的灰度图中构造的类Haar特征的个数,a11表示第1个类Haar特征在第1个样本上的值;aij表示第i个类Haar特征在第j个样本上的值,其中i∈{1,2,…,m},j∈{1,2,…,n},依此类推;(3)Ⅱ、进行迭代训练;Ⅱ1,采用基于计算积分图的方法求第i个类Haar特征在训练样本集S上的特征值,设对应的特征值构成的向量为Vec,样本xj的权值为wj,类型为yj,yj∈{1,+1},其中1表示车,1表示非车,Vec[j]的值为在样本xj上的特征值;Ⅱ2,生成候选分类位置集Ⅱ2.1,对特征向量排序将对应的特征值构成的向量Vec中的元素由小到大排序得到新的向量SortVec,设排完序后对应的类别标签向量变为Lab;Ⅱ2.2,构造候选分类位置集从左向右察看所有类别标签出现变化的位置对,判断所述出现变化的位置对所对应的特征值是否相同;若特征值不同,将所述位置对的第一个位置放入候选分类位置集中;若特征值相同,首先向左查找与所述相同特征值不同的第一个特征值,判断该特征值对应的位置是否已包含在候选分类位置集中,若该特征值对应的位置没有包含在候选分类位置集中,则将该特征值对应的位置加入候选分类位置集中;然后再向右查找与所述相同特征值不同的第一个特征值,断该特征值对应的位置是否已包含在候选分类位置集中,若该特征值对应的位置没有包含在候选分类位置集中,则将该特征值对应的位置加入候选分类位置集中;记得到的候选分类位置集为L={l1,l2,…,lk′},其中k′为候选分类位置的个数,每一个候选分类位置用特征值对{SortVec(j1),SortVec(j)}来表示,记为li′,i′=1,2,…,k′;Ⅱ3,求最佳分类位置从步骤Ⅱ2.2得到的候选分类位置集L中选取一个使得分类错误最小的分类位置作为最佳分类位置τ,τ∈L;Ⅱ4,设置分类阈值Ⅱ4.1,设当特征值小于等于SortVec[τ1]时,类别输出为Label;设当特征值大于等于SortVec[τ]时,类别输出为Label,其中,Label∈{1,+1};当特征值小于等于SortVec[τ1]时,类别输出为Label的先验概率P1为<mrow><msub><mi>P</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>Label</mi><mo>|</mo><mi>SortVec</mi><mo>[</mo><mi>j</mi><mo>]</mo><mo>&le;</mo><mi>SortVec</mi><mo>[</mo><mi>&tau;</mi><mo>-</mo><mn>1</mn><mo>]</mo><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munder><mi>&Sigma;</mi><mrow><msub><mi>y</mi><mi>j</mi></msub><mo>=</mo><mi>Label</mi></mrow></munder><msub><mi>w</mi><mi>j</mi></msub></mrow><mrow><munder><mi>&Sigma;</mi><mrow><mi>j</mi><mo>&le;</mo><mi>&tau;</mi><mo>-</mo><mn>1</mn></mrow></munder><msub><mi>w</mi><mi>j</mi></msub></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>当特征值大于等于SortVec[τ]时,类别输出为Label的先验概率P2为<mrow><msub><mi>P</mi><mn>2</mn></msub><mrow><mo>(</mo><mo>-</mo><mi>Label</mi><mo>|</mo><mi>SortVec</mi><mo>[</mo><mi>j</mi><mo>]</mo><mo>&GreaterEqual;</mo><mi>SortVec</mi><mo>[</mo><mi>&tau;</mi><mo>]</mo><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munder><mi>&Sigma;</mi><mrow><msub><mi>y</mi><mi>j</mi></msub><mo>=</mo><mo>-</mo><mi>Label</mi></mrow></munder><msub><mi>w</mi><mi>j</mi></msub></mrow><mrow><munder><mi>&Sigma;</mi><mrow><mi>j</mi><mo>&GreaterEqual;</mo><mi>&tau;</mi></mrow></munder><msub><mi>w</mi><mi>j</mi></msub></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>其中,wj为第j个训练样本的权值,yj为第j个训练样本的真实类别;Ⅱ4.2,当P1=0或P2=0,直接进入(3)Ⅲ步骤;Ⅱ4.3,当P1≠0并且P2≠0时,分类阈值θi,即第i个类Haar特征所对应的弱分类器分类阈值,设置方法如下<mrow><msub><mi>&theta;</mi><mi>i</mi></msub><mo>=</mo><mi>SortVec</mi><mo>[</mo><mi>&tau;</mi><mo>-</mo><mn>1</mn><mo>]</mo><mo>+</mo><mfrac><mrow><msub><mi>P</mi><mn>1</mn></msub><mo>*</mo><mo>|</mo><mi>SortVec</mi><mo>[</mo><mi>&tau;</mi><mo>-</mo><mn>1</mn><mo>]</mo><mo>-</mo><mi>SortVec</mi><mo>[</mo><mi>&tau;</mi><mo>]</mo><mo>|</mo></mrow><mrow><msub><mi>P</mi><mn>1</mn></msub><mo>+</mo><msub><mi>P</mi><mn>2</mn></msub></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>Ⅱ5,根据以上的阈值,在给定的样本权重分布下构造弱分类器如下<mrow><msub><mi>f</mi><mi>i</mi></msub><mo>=</mo><mfencedopen='{'close=''><mtable><mtr><mtd><mn>1</mn></mtd><mtd><msub><mi>pSortVec</mi><mi>j</mi></msub><mo>&lt;</mo><mi>p</mi><msub><mi>&theta;</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><mo>-</mo><mn>1</mn></mtd><mtd><mi>otherwise</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>其中SortVecj为第i个类Haar特征在第j个样本上相应的特征值,p∈{1,+1}表示分类方向;Ⅱ6,计算每个弱分类器对样本集的分类错误率<mrow><msub><mi>e</mi><mi>i</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mtext>j=1</mtext><mi>n</mi></munderover><msub><mi>w</mi><mi>j</mi></msub><mo>|</mo><msub><mi>f</mi><mi>i</mi></msub><mrow><mo>(</mo><msub><mi>x</mi><mi>j</mi></msub><mo>)</mo></mrow><mo>-</mo><msub><mi>y</mi><mi>j</mi></msub><mo>|</mo><mo>,</mo></mrow>其中wj代表样本xj的权值,fi(xj)表示基于第i个类Haar特征构造的弱分类器fi对样本xj的分类结果;Ⅱ7,选取分类错误最小的弱分类器,并根据其分类效果对样本的权值进行更新即分类错误的样本权值升高,而分类正确的样本权值降低;(3)Ⅲ、反复进行步骤(3)Ⅱ的迭代训练过程,直至分类错误趋近于零。全文摘要本发明提供一种改进的AdaBoost分类器构造方法,属于图像检测
技术领域
。本发明首先将样本的类Haar特征值与其类别标签结合起来生成候选分类位置集,从候选分类位置集中寻找使分类错误最小的位置,基于此位置构造弱分类器,并同时提供一种自适应的弱分类器阈值构造方法。本发明较好地解决了AdaBoost分类器训练准备时间过长以及性能的提升问题,将其结合类Haar特征用于车辆图像检测实验,与传统AdaBoost分类器方法相比,明显减少了分类器的训练所需时间,同时还提升了其识别性能。文档编号G06K9/66GK101964063SQ20101028083公开日2011年2月2日申请日期2010年9月14日优先权日2010年9月14日发明者文学志,方巍,郑钰辉申请人:南京信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1