一种基于在线学习的自适应级联分类器训练方法
技术领域
本发明属于模式识别领域,具体涉及一种通过在线学习算法训练分类器,以提高分类器性能的方法。
背景技术
在线学习属于增量学习的研究范畴,在这一类方法中分类器对每个样本只学一次,而不是重复的学习,这样在线学习算法运行过程中不需要大量的存储空间来存储训练样本,分类器每获得一个样本,即对其进行在线学习,通过在线学习使分类器在使用过程中仍然能根据新样本自我更新和改进,进一步提高分类效果
早期的在线学习算法有Winnow算法,统一线性预测算法等,2001年学者Oza将这些算法与boosting算法进行结合,提出了在线boosting算法(该算法引自“Online bagging and boosting”N.Oza and S.Russell,In Proc.ArtificialIntelligence and Statistics,105-112,2001),在Oza的方法中,强分类器是一定数量的弱分类器的加权和,这些弱分类器都是从弱分类器集合中挑选出来的。在线学习时,每个训练样本逐一的更新弱分类器集合中的每个弱分类器,包括调整正负样本的分类阈值以及该分类器的权重,使好的弱分类器权重越来越高,而较差的弱分类器权重越来越低,从而每次在线学习一个样本就可以挑选出一个当前权重最高的弱分类器加入强分类器中使最终训练出来的分类器有较强的分类能力。但是,在线boosting算法的弱分类器集合中每个弱分类器都要对新样本进行在线学习,当弱分类器个数较多时,在线学习速度必然会变慢。Grabner对在线boosting算法进行了改进,使其也象Adaboost算法一样可以进行特征选择,并且这种特征选择以及对分类器的更新都是在线进行的,称为在线Adaboost(该算法引自“On-line boosting and vision”H.Grabner and H.Bischof,In Proc.CVPR,(1):260-267,2006)。但是在线Adaboost用特征选择算子代替一般的弱分类器合成强分类器,特征选择算子数以及特征选择算子对应的弱分类器数都是固定的,相应的在线学习分类器结构比较僵化。当发现其分类能力无法满足检测性能的要求时,即使持续的在线学习下去也无法提高检测精度。本发明提出将级联分类器算法(该算法引自“Robust real-time objectdetection”P.Viola and M.Jones Intl.J.Computer Vision,57(2):137-154,2004)引入到在线学习中,称为自适应级联分类器通过级联分类器使检测模型能够容纳更多的特征,有更强的分类能力。并且,级联分类器本身就有较灵活的分类器结构,其每一级分类器含有的弱分类器个数以及级联的级数均是训练过程中根据是否达到设定的检测率和虚警率指标自动产生的。此外,训练级联分类器每一级分类器所采用的正样本是相同的,而负样本为前一级分类器不能正确分类的负样本。这也是一种划分样本空间,分而治之的分类策略。从而使级联分类器有较强的分类能力。此外,本发明提出采用粒子滤波跟踪算法(该算法引自“Condensation-Conditional density Propagation for visual tracking”M.Isard andA.Blake,Intl.J.Computer Vision,29(1):5-28,1998)进行在线学习样本的获取以及样本类别的自动标注。利用粒子滤波算法的特性对目标检测结果进行验证,将错误的检测作为在线学习的负样本更新检测模型。此外,通过跟踪获取真实目标的不同姿态,从中提取检测模型较难检测出来的目标作为在线学习的正样本。从而使分类器在线学习的新样本可以自动获取以及自动标注,提高了在线学习分类器的智能化程度,大大减轻了人工标注样本类别的工作量。
发明内容
本发明的目的在于提出一种基于在线学习的自适应级联分类器的训练方法,用于分类器的自动学习和训练以提高分类性能。
具体技术方案如下:
一种基于在线学习的自适应级联分类器的训练方法,用于使分类器自动学习新样本提高分类精度,该训练方法包括如下步骤:
(1)准备一个训练样本集,该训练样本集含有M个训练样本(Ui,Vi),i=1,ΛΛ,M,M为训练样本数,采用级联分类器算法通过该训练样本集训练初始级联分类器Hc(x),其中,Ui表示训练样本的特征值集合,Vi为样本类别,
(2)使用该初始级联分类器Hc(x)遍历待检测的图像帧,逐一提取与上述训练样本同样大小的区域计算其特征值集合,用所述初始级联分类器Hc(x)对上述区域进行分类,判断是否为目标区域,从而用级联分类器Hc(x)检测出图像帧中的目标;
(3)获得在线学习样本:对检测到的目标采用粒子滤波算法进行跟踪,利用粒子滤波算法的特性对目标检测结果进行验证,将验证为错误的检测结果标注为在线学习的负样本,将验证为正确的检测结果认为是真实目标,通过跟踪获取真实目标的不同姿态,从中提取在线学习的正样本;
(4)每获得一个在线学习样本则采用自适应级联分类器算法训练初始的级联分类器Hc(x)。
所述的步骤(3)具体过程为:
(3.1)将所述初始级联分类器Hc(x)检测到的目标作为目标的初始分布p(x0),根据p(x0)采样得到粒子集合Xk=(xk,i,yk,i,rk,i),i=1,...Nk,Xk为检测到的任意的第k个目标,其中xk,i和yk,i为该第k个目标中任意的第i个粒子的中心位置在图像帧中的坐标值,rk,i为该第i个粒子的大小,xk,i、yk,i和rk,i这三个值构成了第i个粒子的状态,此外,对于第i个粒子在任意第t个时刻的状态记为(xtk,i,ytk,i,rtk,i),Nk为该第k个目标取样的粒子数,第i个粒子在t时刻的权值记为wtk,i,t为自然数,初始时刻t=0,相应的初始时刻粒子权重设为:
(3.2)对于每一帧图像进行如下循环计算,直至所述检测到的目标消失,以完成对所述检测到的目标的跟踪以及该目标的粒子似然比的计算:
(3.2.1)采用状态转移方程计算该帧图像中的每个粒子的状态:
xtk,i=xt-1k,i+N(σxk)]]>
ytk,i=yt-1k,i+N(σyk)]]>
rtk,i=rt-1k,i(1.2)|q|,]]>q∈N(σrk)]]>
其中
以及
分别表示方差为σx、σy以及σr的高斯白噪声;
(3.2.2)计算每个粒子权值,进行归一化处理,得到带权值的粒子集合,其中,计算权值公式如下:
wtk,i=p((xtk,i,ytk,i,rtk,i)|Xk)]]>
其中p((xtk,i,ytk,i,rtk,i)|Xk)为第k个目标的第i个粒子的似然比,即为所求权值,其计算公式为:
p((xtk,i,ytk,i,rtk,i)|Xk)=HC(Uk,i)]]>
其中,HC(Uk,i)为粒子所对应图像帧区域的置信度,Uk,i为该粒子所对应的图像帧中的区域的特征值集合,
归一化粒子权值:
即可得到带权值的粒子集合;
(3.2.3)通过上述得到的带权值的粒子集合对目标进行状态估计,目标的当前状态为:
(3.2.4)根据权值
的大小对上述粒子集合中进行重采样,即对于权值大于阈值Thhw的粒子进行复制,而权值小于Thlw的粒子则进行删除,保证粒子集合的总粒子数仍然为Nk个,并重新分配粒子的权值
(3.3)当跟踪目标的粒子最大似然比连续M1帧均小于阈值ThL,则该目标为错误的检测目标,将其标注为在线学习的负样本(U,V-),若连续M1帧粒子最大似然比均大于阈值ThH,则该目标为正确的检测目标,继续跟踪接下来连续的M2帧,提取该连续的M2帧中置信度最小的跟踪目标作为在线学习的正样本(U,V+)。
所述的步骤(4)的具体过程为:
(4.1)采用在线boosting算法将在线学习样本用于Hc(x)中每一级分类器的在线学习;
(4.2)对于在线学习的负样本,若学习完后当前的分类器仍不能正确分类,则存入负样本集合Ne,对于在线学习的正样本,学习完后存入正样本集合Po,若Po或Ne中的样本数超过设定的最大样本数,则去掉相应集合中存在时间最长的样本;
(4.3)当Po中的样本数大于阈值N1,同时Ne中的样本数大于阈值N2时,采用级联分类器算法用Po和Ne中的样本训练新一级分类器扩充当前级联分类器HC(x)的级数。
本发明所述特征值集合中的特征类型为矩形特征或梯度方向直方图特征。
本发明提出首先采用少量样本训练初始级联分类器,然后将该分类器用于图像中的目标检测,由于训练样本较少,该分类器初始检测效果不好。但是,通过跟踪自动提取在线学习样本,采用自适应级联分类器算法对初始级联分类器进行在线学习,从而可以逐步提高该分类器在图像中进行目标检测的精度。并且通过跟踪使分类器在线学习的新样本可以自动获取并且自动标注,提高了分类器训练过程的智能化程度,大大减轻了人工标注样本类别的工作量。
附图说明
图1为本发明流程图;
图2示出了本发明中自适应级联分类器结构图;
图3示出了本发明方法在线训练分类器前后检测性能的对比图;
图3a-3d是在线训练前的检测结果,
图3e-3h是本发明方法训练后的检测结果;
图4是在线学习1000个样本后本发明与常用的在线Adaboost算法、在线boosting算法的ROC曲线比较;
具体实施方式
下面结合附图和具体实施例对本发明作详细说明。
一种基于在线学习的自适应级联分类器的训练方法,包括以下步骤:
(1)准备一个训练样本集,该训练样本集含有M个训练样本(Ui,Vi),i=1,ΛΛ,M,M为训练样本数,M为自然数,一般小于300,采用级联分类器算法通过该训练样本集训练初始级联分类器Hc(x)。其中,所述的训练样本集中的训练样本在本发明中就是相同大小的图像块,一般尺寸为32×64,若图像块中含有待检测的目标则该训练样本为正样本,没有则为负样本。Ui表示训练样本的特征值集合,该特征值集合中的一个元素表示一个特征值,图像块的特征有很多种类型,如矩形特征、梯度方向直方图特征等。特征类型不同,其特征值个数也不同,本发明中采用的是梯度方向直方图特征。Vi为样本类别,
(2)使用该初始的级联分类器Hc(x)遍历待检测的图像帧,逐一提取与上述训练样本同样大小的区域计算其特征值集合,用初始的级联分类器Hc(x)对其进行分类,判断是否为目标区域,从而可以用级联分类器Hc(x)检测出图像帧中的目标。
(3)获得在线学习样本:对检测到的目标采用粒子滤波算法进行跟踪,利用粒子滤波算法的特性对目标检测结果进行验证,将验证为错误的检测结果标注为在线学习的负样本,将验证为正确的检测结果认为是真实目标,通过跟踪获取真实目标的不同姿态,从中提取在线学习的正样本。具体过程如下:
(3.1)将所述初始级联分类器Hc(x)检测到的目标作为目标的初始分布p(x0),根据p(x0)采样得到粒子集合Xk=(xk,i,yk,i,rk,i),i=1,...Nk,Xk为检测到的任意第k个目标,其中xk,i和yk,i为该第k个目标中任意第i个粒子的中心位置在图像帧中的坐标值,rk,i为第i个粒子的大小,这三个值构成了第i个粒子的状态。此外,对于每一个粒子在任意t时刻的状态记为(xtk,i,ytk,i,rtk,i)。Nk为该第k个目标取样的粒子数,Nk为自然数。每个粒子在t时刻的权值记为wtk,i,t为自然数,初始时刻t=0,相应的初始时刻粒子权重设为:
(3.2)对于每一帧图像进行如下循环计算,直至所述检测到的目标消失,以完成对所述检测到的目标的跟踪以及该目标的粒子似然比的计算:
(3.2.1)采用状态转移方程计算该帧图像中的每个粒子状态:
xtk,i=xt-1k,i+N(σxk)]]>
ytk,i=yt-1k,i+N(σyk)]]>
rtk,i=rt-1k,i(1.2)|q|,]]>q∈N(σrk)]]>
其中
以及
分别表示方差为σx、σy以及σr的高斯白噪声。
(3.2.2)计算每个粒子权值,进行归一化处理,得到带权值的粒子集合。其中,计算权值公式如下:
wtk,i=p((xtk,i,ytk,i,rtk,i)|Xk)]]>
其中p((xtk,i,ytk,i,rtk,i)|Xk)为第k个目标的第i个粒子的似然比,可见粒子似然比即为所求权值。计算粒子似然比的方法有很多,本发明中采用分类器来计算粒子似然比。由步骤(3.1)可知每个粒子的状态包括该粒子中心位置在图像帧中的坐标值,以及该粒子的大小,从而根据每个粒子的状态都可以找到该粒子所对应的图像帧中的区域,计算该区域的特征值集合记为Uk,i,相应的可通过分类器Hc(x)计算粒子似然比:
p((xtk,i,ytk,i,rtk,i)|Xk)=Hc(Uk,i)]]>
其中Hc(Uk,i)为粒子所对应图像帧区域的置信度,即通过分类器Hc(x)计算粒子的置信度,作为该粒子的似然比。
归一化粒子权值:
(3.2.3)通过上述得到的带权值的粒子集合对目标进行状态估计,目标的当前状态为:
(3.2.4)根据权值
的大小对上述粒子集合中进行重采样,即对于权值大于阈值Thhw的粒子进行复制,而权值小于Thlw的粒子则进行删除,保证粒子集合的总粒子数仍然为Nk个,并重新分配粒子的权值
(3.3)当跟踪目标的粒子最大似然比连续M1帧均小于阈值ThL,则该目标为错误的检测目标,将其标注为在线学习的负样本(U,V-),若连续M1帧粒子最大似然比均大于阈值ThH,则该目标为正确的检测目标,继续跟踪接下来连续的M2帧,提取该连续的M2帧中置信度最小的跟踪目标作为在线学习的正样本(U,V+)。其中,M1为自然数,一般取3-8,M2为自然数,一般取8-12。
(4)每获得一个在线学习样本则采用自适应级联分类器算法训练初始的级联分类器Hc(x),具体过程如下:
(4.1)采用在线boosting算法将在线学习样本用于Hc(x)中每一级分类器的在线学习;
(4.2)对于在线学习的负样本,若学习完后当前的分类器仍不能正确分类,则存入负样本集合Ne,对于在线学习的正样本,学习完后存入正样本集合Po,若Po和Ne中的样本数超过设定的最大样本数,则去掉相应集合中存在时间最长的样本。
(4.3)当Po中的样本数大于阈值N1,同时Ne中的样本数大于阈值N2时,采用级联分类器算法用Po和Ne中的样本训练新一级分类器扩充当前级联分类器HC(x)的级数。N1为自然数,一般取100-300,N2为自然数,一般取400-600。