一种基于二分查找的行人检测器训练方法及系统
技术领域
本发明属于计算机视觉目标检测技术领域,特别涉及一种基于二分查找的行人检测器训练方法及系统。
背景技术
行人检测任务从图像中检测出行人的包围盒,参见文献1,可作为包括步态识别、自动驾驶、服务机器人等任务的计算机视觉关键环节,广受学术界和工业界关注。AdaBoost方法组合多个决策桩构造强分类器,并且只要求决策桩比随机猜测的性能好。AdaBoost并不依赖于决策桩分类精度的任何先验知识,它自适应地根据精度确定决策桩的权重。理论分析和实验研究都表明AdaBoost的泛化能力很强,参见文献2。在手工设计特征和深度学习特征框架中,AdaBoost分类器在行人检测上都展现出了优越的性能,参见文献3和文献4。
AdaBoost分类器形式为:
其中,x表示样本,h
t(x)是决策桩,α
t是h
t(x)的权重,T是分类器H包含的决策桩个数,
为AdaBoost分类器的分类阈值。
训练通过贪婪地选择最优的决策桩ht(x)和设置相应权重αt来最小化损失函数。开始训练时,给每个训练样本xi一个非负权重wi。每次迭代训练后,AdaBoost方法自适应地降低正确分类样本的权重、提高错误分类样本的权重。每次迭代都在更新了样本权重的训练集上训练一个新决策桩。
训练AdaBoost分类器就是不断迭代训练决策桩直至训练误差达到指定值。决策桩由决策结点和两个保存结果的叶子结点构成。决策桩hj由特征fj、阈值θj、和极性pj∈{-1,1}三个参数描述:hj(x)=pjsign(fj(x)-θj),其中,x是以向量形式描述的样本,sign()是符号函数。
每次训练决策桩都是寻找在当前权重分布下的分类误差∈达到最小的决策桩。对样本权重归一化后,决策桩h的分类误差ε定义为:
∑w
i=1,其中,w
i是每个样本当前的权重,1
{x}是指示函数,自变量x为真时输出1,为假时输出0。
人们提出了很多方法来加快AdaBoost分类器的训练速度。这些方法大致可分为两类:一、基于特征和/或训练样本子采样的方法;二、提高决策桩训练速度的方法。前者如文献5和文献6,后者如文献7和文献8。因为样本集上特征值分布的随机性,现有方法使用顺序查找重复下述五个步骤训练各决策桩。
步骤G1:降低正确分类样本的权重,提高错误分类样本的权重;
步骤G2:对每个候选特征fi,按特征值升序排序得到样本编号序列;
步骤G3:对每个候选特征fi,依次以从小到大的特征值作为阈值,计算所有阈值对应的分类误差序列{εt};将特征值小于等于某个阈值θ的样本分类为正样本,其他样本分类为负样本,可计算出分类误差。也可以相反,就有另一个分类误差。选择误差小的分类方式作为阈值θ的分类,决策桩定义中的极性p记录该选择。
步骤G4:将误差序列{εt}中的最小值作为特征fi的分类误差;
步骤G5:选择误差最小的特征f*、对应分类阈值θ*和分类方向极性p*作为本轮训练出的决策桩。
上述的步骤G3需要考察所有候选特征,对每个特征需要在每个样本特征值上进行顺序查找。若有n个样本、k个候选特征,训练一个决策桩需要n×k次比较,这种顺序查找的方式是训练AdaBoost分类器耗时的原因之一。
尽管AdaBoost在行人表现出了卓越的性能。但是训练耗时长仍是一个不容忽视的问题。为训练出高性能的AdaBoost行人检测器,需要大量的训练样本和大量的候选特征,该问题越发突出。包括加快训练方法在内的现有方法训练决策桩时都采用了顺序查找法,其计算量随样本数量和候选特征数量的增加成平方级增加,因此训练出高性能的AdaBoost行人检测器往往非常耗时。
发明内容
本发明提供了一种基于二分查找的行人检测器训练方法及系统,其目的在于,将训练AdaBoost检测器每个决策桩时确定每个特征误差序列中最小值的方式由顺序查找法改进为变种二分查找法,将查找操作的复杂度由O(n)降低为O(logn),以加快训练行人检测器的速度。
一种基于二分查找的行人检测器训练方法,包括以下步骤:
步骤1:以图像样本的局部图像特征和对应的类别标签,作为样本训练集;
图像样本的类别包含两个,行人和背景;
样本训练集中包括正、负样本,正样本是行人样本,负样本是背景样本;
步骤2:对样本训练集中的每个样本的权重进行初始设置,且初始化用于行人检测的决策桩序号;
步骤3:对权重进行归一化处理,并构建有序特征值数组集合和伴随权重数组集合;
对样本训练集中每个样本的相同特征的特征值进行升序排列,获取有序特征值数组集合;同时,对每个特征值对应的权重按照特征值的排序进行重排,获得与有序特征值数组集合对应的伴随权重数组集合;
步骤4:计算误差数组集合和极性数组集合;
依次以每个有序特征值数组中的每个元素为阈值,对样本训练集中的每个样本进行分类,使用与有序特征值数组对应的伴随权重数组中权重元素计算分类误差,得到误差数组集合;同时,以误差数组中每个误差元素的极性值,构建对应的极性数组,得到极性数组集合;
两个数组集合的下标记录的都是特征维度序号和特征值的序号,即在第i维特征中的第j个特征值,且所有数组的下标均一一对应;
步骤5:对误差数组集合中每个误差数组进行变种二分查找最小误差,获得最小误差数组,并以最小误差所在的误差数组的下标构成下标数组;
即从每个误差数组中寻找最小的误差,所有最小的误差,构成最小误差数组;同时记录每个最小误差对应的下标得到下标数组;
步骤6:利用最小误差数组中的最小误差,设置决策桩;
步骤7:按照决策桩更新样本训练集中每个样本的权重,同时,更新决策桩桩号;
步骤8:判断决策桩桩号是否超过设定的最大桩号,若未超过,返回步骤3,否则,利用所有的决策桩,构建用于行人检测的检测器。
进一步地,所述对误差数组集合中每个误差数组进行变种二分查找最小误差的具体过程如下:
步骤B1:令N=n,n表示样本总数;
步骤B2:设定l=2,r=N-1,m=(r+l)/2,l、r以及m均表示中间变量;
步骤B3:如果l≥r,跳转到步骤B8;
步骤B4:如果ei,l≥ei,m,跳转到步骤B6;
步骤B5:若ei,l<ei,r,r=m-1,否则l=m-1;跳转到步骤B7;
步骤B6:l=l+(m-l)/2,r=m+(r-m)/2;
步骤B7:m=(r+l)/2;
步骤B8:输出ei,l及下标(i,l),获得每个误差数组中的最小误差和对应的数组下标;其中,ei,l、ei,m以及ei,r分别表示第i个误差数组中的第l、m、r个误差元素。
进一步地,所述决策桩按照以下方式设置:
令决策桩对应的特征维度序号μ
t=m1,决策桩分类误差ε
t=mine,决策桩极性ρ
t=p
m1m2,决策桩阈值θ
t=o
m1m2,决策桩为
其中,mine为最小误差数组中的最小误差,(m1,m2)为mine在下标数组中的对应下标,p
m1,m2和o
m1,m2分别是极性数组集合和有序特征值数组集合中第m1个数组中的第m2个元素,
表示样本训练集中的样本x的第μ
t维特征,t表示决策桩桩号。
进一步地,所述用于行人检测的检测器如下:
进一步地,样本训练集中每个样本的权重按照以下公式更新:
其中,样本x
i被分类正确时e
i=0,否则e
i=1,
进一步地,所述步骤4中的分类误差采用以下公式计算:
∈=min(s-+(z+-s+),s++(z--s-))
其中,以某个特征的特征值作为阈值进行样本分类时,s+和s-分别是指相同特征中特征值小于阈值的所有正样本的权重之和与相同特征中特征值小于阈值的所有负样本权重之和,z+是全部正样本权重之和,z-是全部负样本权重之和,∈表示分类误差。
进一步地,所述误差元素的极性值是指当分类误差∈=s-+(z+-s+)时,对应误差元素的极性值为1,否则为-1。
一种基于二分查找的行人检测器训练系统,包括:
样本训练集:包括行人图像样本的局部图像特征和对应的类别标签;
初始化单元:对样本训练集中的每个样本的权重进行初始设置,且初始化用于行人检测的决策桩序号;
权重归一化单元:对权重进行归一化处理;
有序特征值数组集合和伴随权重数组集合构建单元:对样本训练集中每个样本的相同特征的特征值进行升序排列,获取有序特征值数组集合;同时,对每个特征值对应的权重按照特征值的排序进行重排,获得与有序特征值数组集合对应的伴随权重数组集合;
误差数组集合和极性数组集合计算单元:依次以每个有序特征值数组中的每个元素为阈值,对样本训练集中的每个样本进行分类,使用与有序特征值数组对应的伴随权重数组中权重元素计算分类误差,得到误差数组集合;同时,以误差数组中每个误差元素的极性值,构建对应的极性数组,得到极性数组集合;
最小误差数组获取单元:对误差数组集合中每个误差数组进行变种二分查找最小误差,获得最小误差数组,并以最小误差所在的误差数组的下标构成下标数组;
决策桩设置单元:利用最小误差数组中的最小误差,设置决策桩;
决策桩训练单元:按照决策桩更新样本训练集中每个样本的权重,同时,更新决策桩桩号;
行人检测器确定单元:判断决策桩训练单元中决策桩桩号是否超过设定的最大桩号,若未超过,则重新依次调用权重归一化单元、伴随权重数组集合构建单元、误差数组集合和极性数组集合计算单元、最小误差数组获取单元以及决策桩设置单元,重新设置决策桩,再调用决策桩训练单元重新训练,直到决策桩桩号达到设定的最大桩号后,利用所有的决策桩,构建用于行人检测的检测器,否则,利用所有的决策桩,构建用于行人检测的检测器。
其中,对误差数组集合中每个误差数组进行变种二分查找最小误差采用上述方法中提及的变种二分查找法。
有益效果
本发明提出了一种基于二分查找的行人检测器训练方法及系统,该方法包括以下步骤:步骤1:以图像样本的局部图像特征和对应的类别标签,作为样本训练集;步骤2:对样本训练集中的每个样本的权重进行初始设置,且初始化用于行人检测的决策桩序号;步骤3:对权重进行归一化处理,并构建有序特征值数组集合和伴随权重数组集合;步骤4:计算误差数组集合和极性数组集合;步骤5:对误差数组集合中每个误差数组进行变种二分查找最小误差,获得最小误差数组,并以最小误差所在的误差数组的下标构成下标数组;步骤6:利用最小误差数组中的最小误差,设置决策桩;步骤7:按照决策桩更新样本训练集中每个样本的权重,同时,更新决策桩桩号;步骤8:判断决策桩桩号是否超过设定的最大桩号,若未超过,返回步骤3,否则,利用所有的决策桩,构建用于行人检测的检测器。
基于样本集上特征值分布的随机性,现有方法使用顺序查找法训练决策桩;而本发明发现分类误差很小的决策桩对应的优秀特征具有以下显著特点:利用本发明所述方法得到的误差数组ei可视为以误差为纵坐标、以阈值为横坐标的阈值-误差(Threshold-Error)平面上的曲线采样,这里称之为T-E曲线。优秀特征的T-E曲线非常光滑,并非常接近凸曲线。而一般特征对应的T-E曲线不具有这个特点。
本发明正是发现了该特点后,设计了变种二分查找法,将变种二分查找法代替最小误差查找中惯用的顺序查找。相较于现有方法采用的顺序查找,该方法使用的变种二分查找,将查找操作的复杂度由O(n)降低为O(logn),加快了行人检测器的训练速度,同时维持训练出的检测器性能不降低。并且,本发明与现有加快训练速度的方法所采取措施是正交的,因此可以叠加到其他方法上进一步加快训练速度。
附图说明
图1为本发明实例所述方法的流程图;
图2是Inria行人数据集上第一轮训练时误差从小到大排列第十对应的优秀特征的T-E曲线图;
图3是Inria行人数据集上第一轮训练时某个一般特征的T-E曲线图;
图4是Inria行人数据集上两个方法训练出来的检测器的性能比较结果示意图。
具体实施方式
下面将结合附图和实例对本发明做进一步的说明。
如图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和0;
步骤2:初始化样本权重和决策桩桩号;
初始化正负样本的权重w
i分别为
和
得到权重数组w={w
1,…,w
n},其中,下标i是样本号;设定决策桩总数T=2048,初始化决策桩号t=1;
步骤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};
按下列公式计算分类误差,∈=min(s-+(z+-s+),s++(z--s-)),其中,以某个特征的特征值作为阈值进行样本分类时,s+和s-分别是指相同特征中特征值小于阈值的所有正样本的权重之和与相同特征中特征值小于阈值的所有负样本权重之和,z+是全部正样本权重之和,z-是全部负样本权重之和,∈表示分类误差;当分类误差∈=s-+(z+-s+)时,所述步骤5误差计算极性为1,否则为-1;
步骤6:变种二分查找误差数组集合,得到最小误差数组;
在每个误差数组ei上变种二分查找确定最小误差,得到长度为k的最小误差数组E,记录对应的下标(i,j)得到长度为k的下标数组D=[(d1,1,d1,2),…,(dk,1,dk,2)];
在长度为n,起始下标为1,终止下标为n的数组ei上变种二分查找包含以下步骤:
步骤B1:令N=n,n表示样本总数;
步骤B2:设定l=2,r=N-1,m=(r+l)/2,l、r以及m均表示中间变量;
步骤B3:如果l≥r,跳转到步骤B8;
步骤B4:如果ei,l≥ei,m,跳转到步骤B6;
步骤B5:若ei,l<ei,r,r=m-1,否则l=m-1;跳转到步骤B7;
步骤B6:l=l+(m-l)/2,r=m+(r-m)/2;
步骤B7:m=(r+l)/2;
步骤B8:输出ei,l及下标(i,l),获得每个误差数组中的最小误差和对应的数组下标;其中,ei,l、ei,m以及ei,r分别表示第i个误差数组中的第l、m、r个误差元素。
步骤7:确定分类误差,定义决策桩;
令决策桩对应的特征维度序号μ
t=m1,决策桩分类误差ε
t=mine,决策桩极性ρ
t=p
m1,m2,决策桩阈值θ
t=o
m1,m2,决策桩为
其中,mine为最小误差数组中的最小误差,(m1,m2)为mine在下标数组中的对应下标,p
m1,m2和o
m1,m2分别是极性数组集合和有序特征值数组集合中第m1个数组中的第m2个元素,
表示样本训练集中的样本x的第μ
t维特征,t表示决策桩桩号。
步骤8:更新样本权重和决策桩计数;
更新样本权重
其中,样本x
i分类正确时e
i=0,否则e
i=1,
更新决策桩号t=t+1;
步骤9:决策桩数不达上限则跳转到步骤3;
若t>T,执行步骤10,否则跳转到步骤3;
步骤10:输出行人检测器;
基于样本集上特征值分布的随机性,现有方法使用顺序查找法训练决策桩;而本发明发现分类误差很小的决策桩对应的优秀特征具有以下显著特点:利用本发明所述方法得到的误差数组ei可视为以误差为纵坐标、以阈值为横坐标的阈值-误差(Threshold-Error)平面上的曲线采样,这里称之为T-E曲线。优秀特征的T-E曲线非常光滑,并非常接近凸曲线。而一般特征对应的T-E曲线不具有这个特点。图2展示了在第一趟训练时某个行人数据集上误差从小到大排列第十对应的优秀特征的T-E曲线,图3展示了同一数据集某个一般特征的T-E曲线。
本发明正是发现了该特点后,设计了变种二分查找法,将变种二分查找法代替最小误差查找中惯用的顺序查找。相较于现有方法采用的顺序查找,该方法使用的变种二分查找,将查找操作的复杂度由O(n)降低为O(logn),加快了行人检测器的训练速度,同时维持训练出的检测器性能不降低。并且,本发明与现有加快训练速度的方法所采取措施是正交的,因此可以叠加到其他方法上进一步加快训练速度。
实验效果
图4是本发明的方法与普通顺序查找方法训练出的检测器在公开图像集Inria行人数据集上的性能比较结果。水平轴代表每幅图像检测出的假正率,垂直轴代表正样本遗漏率。性能曲线与水平轴之间的面积越小平均遗漏率越小,对应检测器性能越好,图例旁的数值是平均遗漏率。fastInr代表采用本发明方法训练出来的检测器的性能,normInr代表采用普通顺序查找方法训练出来的检测器的性能。从图中可以看出,本发明的方法与普通顺序查找方法训练出的检测器的性能相当。
基于上述方法,本实例还提供一种基于二分查找的行人检测器训练系统,包括:
样本训练集:包括图像样本的局部图像特征和对应的类别标签;
初始化单元:对样本训练集中的每个样本的权重进行初始设置,且初始化用于行人检测的决策桩序号;
权重归一化单元:对权重进行归一化处理;
有序特征值数组集合和伴随权重数组集合构建单元:对样本训练集中每个样本的相同特征的特征值进行升序排列,获取有序特征值数组集合;同时,对每个特征值对应的权重按照特征值的排序进行重排,获得与有序特征值数组集合对应的伴随权重数组集合;
误差数组集合和极性数组集合计算单元:依次以每个有序特征值数组中的每个元素为阈值,对样本训练集中的每个样本进行分类,使用与有序特征值数组对应的伴随权重数组中权重元素计算分类误差,得到误差数组集合;同时,以误差数组中每个误差元素的极性值,构建对应的极性数组,得到极性数组集合;
最小误差数组获取单元:对误差数组集合中每个误差数组进行变种二分查找最小误差,获得最小误差数组,并以最小误差所在的误差数组的下标构成下标数组;
决策桩设置单元:利用最小误差数组中的最小误差,设置决策桩;
决策桩训练单元:按照决策桩更新样本训练集中每个样本的权重,同时,更新决策桩桩号;
行人检测器确定单元:判断决策桩训练单元中决策桩桩号是否超过设定的最大桩号,若未超过,则重新依次调用权重归一化单元、伴随权重数组集合构建单元、误差数组集合和极性数组集合计算单元、最小误差数组获取单元以及决策桩设置单元,重新设置决策桩,再调用决策桩训练单元重新训练,直到决策桩桩号达到设定的最大桩号后,利用所有的决策桩,构建用于行人检测的检测器,否则,利用所有的决策桩,构建用于行人检测的检测器。
其中,对误差数组集合中每个误差数组进行变种二分查找最小误差采用上述方法中提及的变种二分查找法。
应当理解,本发明各个实施例中的功能单元模块可以集中在一个处理单元中,也可以是各个单元模块单独物理存在,也可以是两个或两个以上的单元模块集成在一个单元模块中,可以采用硬件或软件的形式来实现。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
参考文献
[1]傅红普,邹北骥.一种方向梯度直方图的降维方法[J].浙江大学学报(理学版),2017(2):34-138.
[2]Viola P,Jones M J.Robust Real-Time Face Detection[J].InternationalJournal of Computer Vision,2004,57(2):137-154.DOI:10.1023/B:VISI.0000013087.49260.fb.
[3]P.Dollar,R.Appel,S.Belongie and P.Perona.Fast Feature Pyramids forObject Detection[J].PAMI 2014.
[4]Liliang,Zhang,Liang,Lin,Xiaodan,Liang,Kaiming,He.Is Faster RCNNDoing Well for Pedestrian Detection?[C].European Conference on ComputerVision,2016:443-457.
[5]Dollar P,Tu Z,Tao H,et al.Feature Mining for Image Classification[C].computer vision and pattern recognition,Minneapolis,MN,USA.2007:1-8.
[6]Tolba M,Moustafa M.GAdaboost:Accelerating adaboost featureselection with genetic algorithms[C].international conference on evolutionarycomputation theory and applications,Porto,Portugal.2016:156-163.
[7]Mnih V,Audibert J Y.Empirical Bernstein stopping[C].InternationalConference on Machine Learning,2008:672-679.
[8]R.Appel,T.Fuchs,P.Dollar,P.Perona.Quickly Boosting Decision Trees:Pruning Underachieving Features Early[C].ICML 2013.
[9]Dalal,N and Bill Triggs,B.Histograms of oriented gradients forhuman detection[C].CVPR2005:886-893.