一种基于增量误差计算的行人检测器训练方法及系统与流程

文档序号:20953722发布日期:2020-06-02 20:17阅读:267来源:国知局
一种基于增量误差计算的行人检测器训练方法及系统与流程

本发明属于计算机视觉目标检测技术领域,特别涉及一种基于增量误差计算的行人检测器训练方法及系统。



背景技术:

行人检测任务从图像中检测出行人并画出包围盒,参见文献1,可作为包括步态识别、自动驾驶、服务机器人等任务的计算机视觉关键环节,广受学术界和工业界关注。adaboost方法组合多个决策桩构造强分类器,并且只要求决策桩比随机猜测的性能好。adaboost并不依赖于决策桩分类精度的任何先验知识,它自适应地根据精度确定决策桩的权重。理论分析和实验研究都表明adaboost的泛化能力很强,参加文献2在手工设计特征和深度学习特征框架中,adaboost分类器在行人检测上都展现出了优越的性能,参见文献3和文献4。

adaboost分类器形式为:其中,x表示样本,ht(x)是决策桩,αt是ht(x)的权重,t是分类器h包含的决策桩个数,为adaboost分类器的分类阈值,1表示样本被分类为行人,-1表示样本被分类为背景。

训练通过贪婪地选择最优的决策桩ht(x)和设置相应权重αt来最小化损失函数。开始训练时,给每个训练样本xi一个非负权重wi。每次迭代训练后,adaboost方法自适应地降低正确分类样本的权重、提高错误分类样本的权重。每次迭代都在更新了样本权重的训练集上训练一个新决策桩。

训练adaboost分类器就是不断迭代训练决策桩直至训练误差达到指定值。决策桩由决策结点和两个保存结果的叶子结点构成。决策桩hj由特征fj、阈值θj、和极性pj∈{-1,1}三个参数描述:hj(x)=pjsign(fj(x)-θj),其中,x是以局部图像特征向量形式描述的样本,sign()是符号函数。

每次训练决策桩都是寻找在当前权重分布下的分类误差∈达到最小的决策桩。对样本权重归一化后,决策桩h的分类误差∈定义为:,∑wi=1,其中,wi是每个样本当前的权重,1{x}是指示函数,自变量x为真时输出1,为假时输出0。

人们提出了很多方法来加快adaboost分类器的训练速度。这些方法大致可分为两类:一、基于特征和/或训练样本子采样的方法;二、提高决策桩训练速度的方法。前者如文献5和文献6,后者如文献7和文献8。因为样本集上特征值分布的随机性,现有方法使用顺序查找重复下述五个步骤训练各决策桩。

步骤g1:降低正确分类样本的权重,提高错误分类样本的权重;

步骤g2:对每个候选特征fi,按特征值升序排序得到样本编号序列;

步骤g3:对每个候选特征fi,依次以从小到大的特征值作为阈值,计算所有阈值对应的分类误差序列{εt};将特征值小于等于某个阈值θ的样本分类为正样本,其他样本分类为负样本,可计算出分类误差。也可以相反,就有另一个分类误差。选择误差小的分类方式作为阈值θ的分类,决策桩定义中的极性p记录该选择。

步骤g4:将误差序列{εt}中的最小值作为特征fi的分类误差;

步骤g5:选择误差最小的特征f*、对应分类阈值θ*和分类方向极性p*作为本轮训练出的决策桩。

上述步骤g3计算每个阈值对应的分类误差采用了下面的公式,

∈=min(s-+(z+-s+),s++(z--s-)),其中,以某个特征的特征值作为阈值进行样本分类时,s+和s-分别是指相同特征中特征值小于阈值的所有正样本的权重之和与相同特征中特征值小于阈值的所有负样本权重之和,z+是全部正样本权重之和,z-是全部负样本权重之和,∈表示分类误差。采用这种方式计算时,每次都需要累加所有权重,时间复杂度为o(n)。

尽管adaboost在行人检测上表现出了卓越的性能。但是训练耗时长仍是一个不容忽视的问题。为训练出高性能的adaboost行人检测器,需要大量的训练样本和大量的候选特征,该问题越发突出。包括加快训练方法在内的现有方法训练决策桩时都采用了全部权重累加方式计算每个阈值对应的分类误差,训练出高性能的adaboost行人检测器往往非常耗时。



技术实现要素:

本发明提供了一种基于增量误差计算的行人检测器训练方法,其目的在于,将训练adaboost检测器每个决策桩时计算每个阈值对应误差的方式由全部权重累加方式改进为每次只累加一个权重的增量方式,将该操作的复杂度由o(n)降低为o(1),以加快训练行人检测器的速度。

一种基于增量误差计算的行人检测器训练方法,包括以下步骤:

步骤1:以样本的局部图像特征和对应的类别标签,作为训练集;

样本是矩形图像窗口;类别标签包括行人和背景两种,行人为正样本,背景为负样本,分别以1和-1表示;

步骤2:对训练集中的每个样本的权重进行初始设置,且初始化用于行人检测的决策桩序号,设定决策桩序号的上限值;

步骤3:对权重进行归一化处理,并构建有序特征值数组集合和伴随权重数组集合;

对训练集中每个样本的相同特征的特征值进行升序排列,获取有序特征值数组集合;同时,对每个特征值对应的权重按照特征值的排序进行重排,获得与有序特征值数组集合对应的伴随权重数组集合;

步骤4:计算误差数组集合和极性数组集合;

依次以每个有序特征值数组中的每个元素为阈值,对训练集中的样本进行分类,使用与有序特征值数组对应的伴随权重数组中权重元素增量式计算分类误差,得到误差数组集合;同时,以误差数组中每个误差元素的极性值,构建对应的极性数组,得到极性数组集合;

步骤5:对误差数组集合中每个误差数组进行顺序查找最小误差,获得最小误差数组,并以最小误差所在的误差数组的下标构成下标数组;

步骤6:利用最小误差数组中的最小误差,设置决策桩;

步骤7:按照决策桩更新训练集中每个样本的权重,同时,更新决策桩序号;

步骤8:判断决策桩序号是否超过设定的上限值,若未超过,返回步骤3,否则,使用所有决策桩构建行人检测器。

进一步的,所述步骤4中的分类误差采用以下公式增量式计算:

其中,ei,j是以第i个有序特征值数组的第j个元素为阈值对应的分类误差,wi,j是第i个伴随权重数组的第j个元素,yi,j是对应样本标签,正样本标签为1,负样本标签为-1。

进一步的,所述误差元素的极性值是指当分类误差时,对应误差元素的极性值为1,否则为-1。

进一步的,所述决策桩按照以下方式设置:

令决策桩对应的特征维度序号μt=m1,决策桩分类误差εt=mine,决策桩极性ρt=pm1,m2,决策桩阈值θt=om1,m2,决策桩为

其中,mine为最小误差数组中的最小误差,(m1,m2)为mine在下标数组中的对应下标,pm1,m2和om1,m2分别是极性数组集合和有序特征值数组集合中第m1个数组中的第m2个元素,表示训练集中的样本x的第μt维特征,t表示决策桩序号。

进一步的,所述行人检测器如下:

其中,

进一步的,训练集中每个样本的权重按照以下公式更新:

其中,样本xi被分类正确时ei=0,否则ei=1,

一种基于增量误差计算的行人检测器训练系统,包括:

训练集:包括样本的局部图像特征和对应的类别标签;

初始化单元:对训练集中的每个样本的权重进行初始设置,且初始化用于行人检测的决策桩序号,设定决策桩序号的上限值;

权重归一化单元:对权重进行归一化处理;

有序特征值数组集合和伴随权重数组集合构建单元:对训练集中每个样本的相同特征的特征值进行升序排列,获取有序特征值数组集合;同时,对每个特征值对应的权重按照特征值的排序进行重排,获得与有序特征值数组集合对应的伴随权重数组集合;

误差数组集合和极性数组集合计算单元:依次以每个有序特征值数组中的每个元素为阈值,对训练集中的每个样本进行分类,使用与有序特征值数组对应的伴随权重数组中权重元素以增量方式计算分类误差,得到误差数组集合;同时,以误差数组中每个误差元素的极性值,构建对应的极性数组,得到极性数组集合;

最小误差数组获取单元:对误差数组集合中每个误差数组进行顺序查找最小误差,获得最小误差数组,并以最小误差所在的误差数组的下标构成下标数组;

决策桩设置单元:利用最小误差数组中的最小误差,设置决策桩;

决策桩训练单元:按照决策桩更新训练集中每个样本的权重,同时,更新决策桩序号;

行人检测器确定单元:判断决策桩训练单元中决策桩序号是否超过设定的上限值,若未超过,则重新依次调用权重归一化单元、有序特征值数组集合和伴随权重数组集合构建单元、误差数组集合和极性数组集合计算单元、最小误差数组获取单元以及决策桩设置单元,重新设置决策桩,再调用决策桩训练单元重新训练,直到决策桩序号达到设定的上限值后,利用所有的决策桩,构建行人检测器,否则,利用所有的决策桩,构建行人检测器。

有益效果

本发明提出了一种基于增量误差计算的行人检测器训练方法及系统,该方法包括以下步骤:步骤1:以样本的局部图像特征和对应的类别标签,作为训练集;步骤2:对训练集中的每个样本的权重进行初始设置,且初始化用于行人检测的决策桩序号,设定决策桩序号的上限值;步骤3:对权重进行归一化处理,并构建有序特征值数组集合和伴随权重数组集合;步骤4:计算分类误差得到误差数组集合和极性数组集合;步骤5:对误差数组集合中每个误差数组进行顺序查找最小误差,获得最小误差数组,并以最小误差所在的误差数组的下标构成下标数组;步骤6:利用最小误差数组中的最小误差,设置决策桩;步骤7:按照决策桩更新训练集中每个样本的权重,同时,更新决策桩序号;步骤8:判断决策桩序号是否超过设定的上限值,若未超过,返回步骤3,否则,利用所有的决策桩构建行人检测器。

所述步骤4中的分类误差采用以下公式增量式计算:

其中,ei,j是以第i个有序特征值数组的第j个元素为阈值对应的分类误差,wi,j是第i个伴随权重数组的第j个元素,yi,j是对应样本标签,正样本标签为1,负样本标签为-1。该方法步骤4使用增量误差计算方式,将该运算复杂度由o(n)降低为o(1),加快了行人检测器训练速度。

本发明所述提高了行人检测器的训练速度,训练过程完全与全部权重累加方式计算误差的方法一致,因此检测器的性能也一致。并且,本发明与现有加快训练速度的方法所采取措施是正交的,因此可以叠加到其他方法上进一步加快训练速度。

按照决策桩h的分类误差∈定义,∑wi=1,其中,wi是每个样本当前的权重,1{x}是指示函数,自变量x为真时输出1,为假时输出0;选择了特征fi的分类阈值θ,并指定特征值小于等于该阈值的样本为正样本、即设定极性p=-1,则分类误差∈-1为该阈值之前的负样本权重之和(s-)与之后的正样本权重之和(z+-s+)累加。若做相反的分类极性指定,则参与误差计算的权重的符号也相反,此时误差为s++(z--z-),记为∈+1。∈=min(s-+(z+-s+),s++(z--s-))==min(∈-1,∈+1),其中,以某个特征的特征值作为阈值进行样本分类时,s+和s-分别是指相同特征中特征值小于阈值的所有正样本的权重之和与相同特征中特征值小于阈值的所有负样本权重之和,z+是全部正样本权重之和,z-是全部负样本权重之和,∈表示分类误差。这种方式计算复杂度为o(n)。

本发明注意到每轮训练决策桩前都对权重进行了归一化处理,则有:

∈-1+∈+1

=s-+(z+-s+)+s++(z--s-)

=z++z-

=1;

而,

∈+1=s++(z--s-)

=z-+(s+-s-)

=z-+pres;

将负样本的权重加上负号,则pres就是阈值之前所有样本权重的代数和,该式表明计算∈+1只需考虑阈值θ之前的样本权重。而∈=min(∈+1,1-∈+1),该式表明计算误差∈时只需要累加阈值θ之前的样本权重。基于此,本发明公开了增量误差计算方式。

附图说明

图1为本发明实例所述方法的流程图;

具体实施方式

下面将结合附图和实例对本发明做进一步的说明。

如图1所示流程,一种基于增量误差计算的行人检测器训练方法,包括以下步骤:

步骤1:计算样本的特征;

从inria行人数据集(参见文献9)提取n=7478个样本,其中正负样本的数量分别是l=2478、m=5000;正样本是包含行人的尺寸为128×64的图像窗口,负样本是不含行人的同样大小的图像窗口;

对提取的n个样本计算低维方向梯度直方图(elhog)特征(参见文献1),得到训练集{(x1,y1),…,(xn,yn)},其中xi是样本i的k维特征向量,也直接称之为样本,使用18个梯度方向、维度k=2304,下标i是样本号,正负样本的标签yi分别为1和-1;

步骤2:初始化样本权重和决策桩序号;

初始化正负样本的权重wi分别为得到权重数组w={w1,…,wn},其中,下标i是样本号;设定决策桩总数t=2048,初始化决策序号t=1;

步骤3:归一化样本权重

步骤4:计算有序特征值数组集合和伴随权重数组集合;

对训练集中每个样本的相同特征的特征值[x1,j,…,xn,j]进行升序排列,xi,j是xi的第j维特征,得到k个有序特征值数组构成的集合{o1,…,ok};

上述排序时,同步对权重数组副本跟随变动重排,得到k个伴随权重数组构成的集合{a1,…,ak},数组ai长度为n,ai的元素ai,j与oi的元素oi,j对应的是同一样本xi;

步骤5:计算误差数组集合和极性数组集合;

以每个有序特征值数组oi中的每个元素为阈值,使用对应的伴随权重数组ai以增量方式计算分类误差,得到k个误差数组构成的集合{e1,…,ek},数组ei长度为n;

在以增量方式计算分类误差的同时记录误差计算极性,得到k个极性数组构成的集合{p1,…,pk},数组pi长度为n,pi的元素pi,j∈{1,-1};误差按下式计算,

其中,ei,j是以第i个有序特征值数组的第j个元素为阈值对应的分类误差,wi,j是第i个伴随权重数组的第j个元素,yi,j是对应样本标签,正样本标签为1,负样本标签为-1。

当分类误差时,对应误差元素的极性值为1,否则为-1。

步骤6:顺序查找误差数组集合,得到最小误差数组;

在每个误差数组ei上顺序查找确定最小误差,得到长度为k的最小误差数组e,记录对应的下标(i,j)得到长度为k的下标数组d=[(d1,1,d1,2),…,(dk,1,dk,2)];

步骤7:确定分类误差,定义决策桩;

令决策桩对应的特征维度序号μt=m1,决策桩分类误差εt=mine,决策桩极性ρt=pm1,m2,决策桩阈值θt=om1,m2,决策桩为

其中,mine为最小误差数组中的最小误差,(m1,m2)为mine在下标数组中的对应下标,pm1,m2和om1,m2分别是极性数组集合和有序特征值数组集合中第m1个数组中的第m2个元素,表示训练集中的样本x的第μt维特征,t表示决策桩序号。

步骤8:更新样本权重和决策桩计数;

更新样本权重其中,样本xi分类正确时ei=0,否则ei=1,更新决策序号t=t+1;

步骤9:决策桩数不达上限则跳转到步骤3;

若t>t,执行步骤10,否则跳转到步骤3;

步骤10:输出行人检测器;

输出adaboost行人检测器其中,

本发明注意到每轮训练决策桩前都对权重进行了归一化处理,将训练adaboost检测器每个决策桩时计算每个阈值对应误差的方式由全部权重累加方式改进为每次只累加一个权重的增量方式,将该操作的复杂度由o(n)降低为o(1),加快了训练行人检测器的速度。并且,本发明与现有加快训练速度的方法所采取措施是正交的,因此可以叠加到其他方法上进一步加快训练速度。

实验效果

本发明的方法与全部权重累加误差计算方法训练出的检测器在公开图像集inria行人数据集上的性能完全一样。使用cpu为i3-4150,内存为20g的pc集,本发明方法叠加在文献8提出的快速训练方法上、在inria行人数据集上训练耗时为6分30秒,比全部权重累加误差计算方法快25秒左右。

基于上述方法,本实例还提供一种基于增量误差计算的行人检测器训练系统,包括:

训练集:包括样本的局部图像特征和对应的类别标签;

初始化单元:对训练集中的每个样本的权重进行初始设置,且初始化用于行人检测的决策桩序号,设定决策桩序号的上限值;

权重归一化单元:对权重进行归一化处理;

有序特征值数组集合和伴随权重数组集合构建单元:对训练集中每个样本的相同特征的特征值进行升序排列,获取有序特征值数组集合;同时,对每个特征值对应的权重按照特征值的排序进行重排,获得与有序特征值数组集合对应的伴随权重数组集合;

误差数组集合和极性数组集合计算单元:依次以每个有序特征值数组中的每个元素为阈值,对训练集中的每个样本进行分类,使用与有序特征值数组对应的伴随权重数组中权重元素以增量方式计算分类误差,得到误差数组集合;同时,以误差数组中每个误差元素的极性值,构建对应的极性数组,得到极性数组集合;

最小误差数组获取单元:对误差数组集合中每个误差数组进行顺序查找最小误差,获得最小误差数组,并以最小误差所在的误差数组的下标构成下标数组;

决策桩设置单元:利用最小误差数组中的最小误差,设置决策桩;

决策桩训练单元:按照决策桩更新训练集中每个样本的权重,同时,更新决策桩序号;

行人检测器确定单元:判断决策桩训练单元中决策桩序号是否超过设定的上限值,若未超过,则重新依次调用权重归一化单元、有序特征值数组集合和伴随权重数组集合构建单元、误差数组集合和极性数组集合计算单元、最小误差数组获取单元以及决策桩设置单元,重新设置决策桩,再调用决策桩训练单元重新训练,直到决策桩序号达到设定的上限值后,利用所有的决策桩,构建行人检测器,否则,利用所有的决策桩,构建行人检测器。

应当理解,本发明各个实施例中的功能单元模块可以集中在一个处理单元中,也可以是各个单元模块单独物理存在,也可以是两个或两个以上的单元模块集成在一个单元模块中,可以采用硬件或软件的形式来实现。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

参考文献

[1]傅红普,邹北骥.一种方向梯度直方图的降维方法[j].浙江大学学报(理学版),2017(2):34-138.

[2]violap,jonesmj.robustreal-timefacedetection[j].internationaljournalofcomputervision,2004,57(2):137-154.doi:10.1023/b:visi.0000013087.49260.fb.

[3]p.dollar,r.appel,s.belongieandp.perona.fastfeaturepyramidsforobjectdetection[j].pami2014.

[4]liliang,zhang,liang,lin,xiaodan,liang,kaiming,he.isfasterrcnndoingwellforpedestriandetection?[c].europeanconferenceoncomputervision,2016:443-457.

[5]dollarp,tuz,taoh,etal.featureminingforimageclassification[c].computervisionandpatternrecognition,minneapolis,mn,usa.2007:1-8.

[6]tolbam,moustafam.gadaboost:acceleratingadaboostfeatureselectionwithgeneticalgorithms[c].internationalconferenceonevolutionarycomputationtheoryandapplications,porto,portugal.2016:156-163.

[7]mnihv,audibertjy.empiricalbernsteinstopping[c].internationalconferenceonmachinelearning,2008:672-679.

[8]r.appel,t.fuchs,p.dollar,p.perona.quicklyboostingdecisiontrees:pruningunderachievingfeaturesearly[c].icml2013.

[9]dalal,nandbilltriggs,b.histogramsoforientedgradientsforhumandetection[c].cvpr2005:886-893.

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1