发明内容
本发明的目的是解决现有技术中使用多个独立的单目标跟踪器跟踪多个表观相似的目标,当目标离得比较近的时候,发生目标合并错误;以及在联合状态空间中使用一个多目标跟踪器时,由于联合状态空间维度较高,使得计算的复杂度大大增加的技术缺陷。为此本发明提供一种视频分析领域内多目标自动检测和跟踪的方法。
为了实现所述目的,本发明提供了一种基于动态群组划分的多目标跟踪的方法,实现所述方法步骤是:
步骤S1:对于视频场景中的某一时刻,首先使用目标检测器检测场景边缘处,判定是否有目标进入或离开场景区域,根据检测结果更新目标集合,将新进入场景的目标加入目标集合,将离开的目标从目标集合中去除;使用AdaBoost算法和梯度方向直方图(HOG)特征学习出目标检测器,同时使用AdaBoost从梯度方向直方图特征中选出一组稀疏特征表示目标,形成目标的稀疏表示;
步骤S2:设定目标集合的分组阈值,使用层次聚类按距离对上一时刻目标集合进行聚类,根据上一时刻的聚类结果,将上一时刻目标位置分成不同群组;
步骤S3:为目标集合中的每个群组分配一个跟踪器,跟踪器根据群组内每个目标上一时刻的位置状态,加上群组内每个目标当前时刻在图像上的观测值,使用贝叶斯框架推断每个目标在当前时刻位置的最优值,使用AdaBoost选出来的稀疏特征表示目标的观测值,用每个目标当前时刻位置的最优值更新目标集合中各个目标的位置状态,为推断各个目标的下一时刻的位置做准备。
优选实施例,选出一组稀疏特征具体步骤如下:
步骤S21:提取目标的表观特征组成特征集;
步骤S22:使用AdaBoost方法从特征集中选择出最有区分力的一组特征,用选出的特征构成对目标的一个稀疏表示;
步骤S23:用目标的稀疏表示构建贝叶斯跟踪框架中的观测模型,用于表示目标的观测。
优选实施例,在设定分组阈值时,遵循最小分组原则,所述最小分组原则是在保证目标之间没有交互的情况下,分成尽可能多的群组。
优选实施例,对于只包含一个目标的群组,使用单目标跟踪器估计目标当前时刻位置。
优选实施例,对于包含多个目标的群组,使用多目标跟踪器,在多个目标的联合状态空间求解多个目标位置的最优值。
优选实施例,所述跟踪器使用基于MCMC的粒子滤波器对每个群组进行跟踪,每个群组的目标数目为动态变化。
优选实施例,对于包含多个目标群组的分裂步骤如下:当包含多个目标群组分裂成不同的单目标群组时,将多目标状态空间中的粒子按照其分量对应的单目标直接分裂成多个单目标状态空间中的粒子;所述多目标状态空间中的每个粒子为多目标的联合状态,所述单目标状态空间中的每个粒子为单个目标的状态。
优选实施例,对于包含多个目标合并成一个群组的步骤如下:当各个单目标的群组合并成多目标的群组时,根据各个单目标状态空间中的粒子,在多目标状态空间中重采样,得到多目标状态空间中的粒子;所述多目标状态空间中的每个粒子为多目标的联合状态,所述单目标状态空间中的每个粒子为单个目标的状态。
本发明通过自动检测进出场景的目标,对场景中的目标按位置聚类分组,对场景中的多个目标标实现动态分组跟踪,遵循最小分组原则,用以提高跟踪算法的效率。解决了多目标跟踪时,使用多个单目标跟踪器容易发生目标合并的错误,以及将所有的目标在联合状态空间跟踪时效率低下的问题。本发明兼顾了多目标跟踪的准确性与效率。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明对于场景中的多个目标采取动态分组跟踪,首先对存在于目标集合中的多个目标按照位置进行聚类,将距离比较近可能会发生交互的目标聚类为一组。使用层次聚类的方法,设定相应的类间距离的阈值后,自动生成相应的组别数以及场景中各个目标的组别标签。根据聚类的结果对于每一个目标组,分配一个跟踪器;如果该组只包含一个目标,则使用一个单目标跟踪器;如果该组包含多个目标,则使用一个多目标跟踪器。
对于场景中的多个目标采取分组跟踪,即对于分散独立的单个目标采用单目标跟踪器跟踪;而对于在局部汇集的多个目标采用在联合状态空间里的多目标跟踪器。
本发明实施例提供了一种多目标自动检测,分组跟踪的方法。克服了传统方法准确性与效率不能够兼顾的情况。下面对本发明实施例的实现过程进行详细介绍。图1为提供了本发明实施例的流程图,分为跟踪与检测模块。
对于检测模块,发明实施例使用训练好的目标分类器,在目标的进口和出口检测目标。我们为场景中存在的目标维护一个目标集合,集合中包含了场景中每个目标的状态也就是目标的位置。对于检测器在进口和出口区域检测到的目标,如果没有存在于目标集合中,我们将其添加到目标集合中。反之,如果有目标集合中的目标存在于进口和出口区域,而在连续若干帧中没有被检测器检测到,则我们认为该目标已经离开视频场景,将其从目标集合中删除。
对于目标分类器,我们通过大量正负样本的离线学习得到,我们使用AdaBoost学习目标分类器,使用目标的梯度方向直方图(HOG)特征。同时我们使用AdaBoost从特征集中选择出最有能力区分目标的特征分量,最终形成一个稀疏的特征向量用来表示目标。
对于目标的跟踪,发明实施例采样了分组跟踪的思路。在跟踪模块中,首先我们对存在于目标集合中的多个目标按照位置进行聚类,将距离比较近可能会发生交互的目标聚类为一组。使用层次聚类的方法,设定相应的类间距离的阈值后,自动生成相应的组别数以及场景中各个目标的组别标签。根据聚类的结果对于每一个目标组,我们分配一个跟踪器;如果该组只包含一个对象,则使用一个单目标跟踪器;如果该组包含多个目标,则使用一个多目标跟踪器。最后根据跟踪结果跟新目标集合中的目标。
对于聚类分组,本发明实施例使用层次聚类的方法,层次聚类并不需要事先知道类别数,得到的结果是一棵层次树,可以根据实际需要从层次树任意一层切分得到不同的类别数的聚类结果。在我们的目标分组中设定相应的组间距离的阈值后,系统能够自动生成相应的组别数以及场景中各个目标的组别标签。具体过程由图2示意。
图2使用层次聚类进行目标分组,显示了分布在不同位置的5个目标,使用层次聚类方法通过4次迭代,可以得到5种不同情况的聚类结果,也就是可以有5种分组方式。分别如下表示:
1.每个目标各自为一组,一共分为5组;
2.目标3和目标4为一组,其他目标各自为一组;一共分为4组;
3.目标3和目标4为一组,目标2和目标5为一组,目标1为一组,一共分为3组;
4.目标2、3、4和5为一组,目标1为一组,一共分为2组;
5.所有目标为同一组,一共分为1组;
本发明实施例使用分组原则是在目标之间没有相互影响的情况下,尽可能分多的组,也就是相应地设置尽可能小的组间距离的阈值,使得每个组内包含的目标数目尽可能的少,这样能够最大限度的提高跟踪的效率。
对目标分组之后,我们需要对每组使用一个跟踪器,对于包含单目标的组使用单目标跟踪器,对于包含多目标的组使用多目标跟踪器。本发明实施例使用基于贝叶斯框架的跟踪器。下面对简单描述在贝叶斯框架下的跟踪问题
贝叶斯框架下跟踪问题描述
从贝叶斯理论的角度来看,跟踪问题就是从所有的观测信息Z
1:t={Z
1,Z
2,...Z
t}中推理出t时刻状态变量X
t的值,即估计后验概率p(X
t|Z
1:t)。其中
为目标集合状态,X
it为单个目标的状态。分为单目标跟踪和多目标跟踪两种情况。
1.贝叶斯框架下单目标跟踪
假定在贝叶斯框架下跟踪目标集中的第i个目标Xit,由贝叶斯理论可以得到单目标跟踪器的描述,如公式(1)所示:
p(Xit|Z1:t)=cP(Zi|Xit)∫p(Xit|Xi(t-1))p(Xi(t-1)|Z1:t-1)dXi(t-1) (1)
这里,Xit表示了目标i在t时刻的状态;p(Xit|Z1:t)为t时刻目标Xit的后验概率;p(Xit|Xi(t-1))为目标Xit的动态模型;表示了由目标i在t-1时刻的状态Xi(t-1)预测其在t时刻的状态Xit的模型;p(Zt|Xit)为目标Xit的观测模型,p(Zt|Xit)定义了目标的观测模型,表示在t时刻目标状态变量为Xit时,观测值为Zt的概率;其中Z1:t={Z1,Z2,...Zt}为各个时刻的观测值,c是规范化常量。
2.贝叶斯框架下多目标跟踪
贝叶斯框架下多目标跟踪的问题与单目标相似,同样是通过动态模型和观测模型确定后验概率分布。不同的是,由于存在多个目标,需要在多个目标的联合状态空间中估计贝叶斯框架的后验概率。多目标跟踪可以使用贝叶斯框架描述如下:
P(Xt|Z1:t)=cP(Zt|Xt)∫P(Xt|Xt-1)P(Xt-1|Z1:t-1)dXt-1 (2)
上式中X
t为联合状态,即各个目标状态的集合
P(Z
t|X
t)是观测模型;P(X
t|X
t-1)是运动模型,给定X
t-1预测X
t的概率分布;多目标跟踪的目标就是在给定观测值情况下,在联合状态空间中确定后验概率P(X
t|Z
1:t),其中Z
1:t={Z
1,Z
2,...Z
t}为各个时刻的观测值,c是规范化常量。由于多目标跟踪是将目标的集合作为一个高维空间中的变量,由于目标集合中的目标之间存在相互影响和关联,使得高维空间中动态模型变得相对复杂。
3.贝叶斯框架中的动态模型
在本节中,我们将描述贝叶斯框架中,动态模型的建立。对于多目标跟踪,如果每个目标相互独立,没有发生交互的话,则整体的动态模型可以分解为各个单目标的动态模型,表示如下:
其中,单个目标的状态包括x方向和y方向的位置信息,即Xit={xit,yit}。单目标的动态模型P(Xit|Xi(t-1))表示为:
Xit=Xi(t-1)+vit+r (4)
vit表示目标i在当前的速度,r~N(0,∑)表示高斯噪声。
当目标离得比较近时,我们需要考虑目标之间的相互影响,在本文中我们使用马尔可夫随机场(MRF)表示目标之间的交互模型。一个马尔可夫随机场由一个无向图表示(V,E)表示,图中的顶点V表示目标的集合;图中的边E表示目标之间的关联。为了简化计算,我们只考虑目标之间的两两交互。因此系统的动态模型可以表示如下:
这里,表示了两个目标之间交互的模型,我们可以加入一些相关的先验知识表示目标的交互。本文使用Gibbs分布表示两个目标的交互。
这里f(Xit,Xjt)是惩罚函数,f(Xit,Xjt)=λd(Xit,Xjt)d(Xit,Xjt)表示目标Xit和Xjt之间的距离;λ表示权重系数,用来调节惩罚项的大小。
4.贝叶斯框架中的观测模型
观测模型p(Zt|Xt)表示了当状态空间中的状态变量为Xt时,观测空间中观测值的概率测度。由于每个目标的观测相对独立,因此多目标的观测可以被分解为各个单目标的观测,如下式所示:
目标观测的表示主要目的是提取目标的表观,形状等观测特征,并形成特征向量或矩阵等表达形式。我们提取目标的HOG特征,并使用AdaBoost选择出HOG特征中最有能力区分目标的特征分量,最终形成一个稀疏的特征向量。本文使用这个稀疏的特征向量表示目标。因此,给定任意目标状态变量Xit指定的任意目标区域,我们可以提取其HOG特征相对应的稀疏的特征向量,形成目标相应的观测值Zt,由归一化的单位特征向量(z1(Xit)...,zm(Xit))表示。观测模型由观测特征向量与模板之间的Bhattacharyya系数度量。
基于MCMC的粒子滤波器实现贝叶斯滤波器
公式(1)所示的贝叶斯滤波器通常不容易获得其解析解,通常是使用基于蒙特卡罗的方法得到其近似解。本发明实施例使用基于马尔可夫链采样的蒙特卡罗方法即MCMC方法,MCMC的方法使用一组不带权重的粒子表示后验概率分布,通过设计一个平稳的马尔科夫链,使用贝叶斯模型的后验概率作为马尔可夫链的平稳分布,通过马尔科夫链获得采样粒子,使得采样粒子更加多样化。在本发明实施例中,对每个跟踪器使用一组无权重的粒子表示。对于单目标跟踪器这组粒子表示了单个目标的状态;对于多目标跟踪器,这组粒子表示了多个目标的联合状态。
本发明实施例通过对多目标跟踪器中粒子的分裂,以及单目标跟踪器中粒子的重采样组合,来处理目标变化的分组,也就是各个组的目标拆分以及重新组合的情况。
对于包含多个目标的分组,当目标分裂成不同的组时,我们按照其粒子相对应单目标的分量分裂粒子即可;如图3所示由联合状态空间中的多目标分裂为多个独立状态空间中的单目标的示意图,图3中左边是一个多目标跟踪器,大矩形表示了多个目标的联合状态空间,其中的圆形表示了单个目标,所有目标在联合状态空间相互关联。图3中右边是多个相互独立的单目标跟踪器,每个小矩形表示了单个目标独立的状态空间,每个目标在其相应的状态空间中独立表示。
对于单目标的组合并成多目标的组时,我们通过对表示各个单目标组的粒子进行重采样,得到表示多目标的跟踪器的粒子,如图4所示。
实施效果
为了评估本文提出的方法,我们在监控视频上测试我们的方法。图5显示了一段测试视频的结果,其图5至图7中的(a)、(b)、(c)、(d),(e)及(f)分别显示了第117,172,218,249,309,342帧图像。图5中显示了各帧图像中的目标分组情况,以及每个组的跟踪结果。
根据我们方法中提出的最小分组原则,即在目标互不影响的前提下尽可能分更多的组,使每组包含的目标最少。图5显示了分组结果,在图5中的(a)、图5中的(b)中5个目标分为5组;图5的中(c)、图5中的(d)中场景里左边两个目标由于距离过近合并为一组,其余目标分组情况没有发生变化;图5中的(e)及图5中的(f)中两个合并为同组的目标由于相互分开,重新又成为两个独立的组。
为了显示同组目标相互作用的效果,图6,图7分别显示了多个单目标跟踪器和我们提出的分组跟踪的方法对于场景中两个合并成同组目标的跟踪结果。在图6及图7中的(a)、(b)、(c)、(d)、(e)及(f)分别显示了第141,172,218,249,309,342帧图像。在图6中,使用多个单目标跟踪器,当目标之间保持一定的距离时,跟踪效果很好,如图6中的(a)和图6中的(b)所示;但当目标之间的距离比较近的时候,两个单目标器会同时跟踪到观测值较好的目标上,由于目标姿态不断变化,使得观测值的好坏也不断变化,这也可能导致跟踪器在目标之间震荡,如图6中的(c),图6中的(d)所示;当目标分离时,由于多个跟踪器已经同时跟踪到同一目标,所以就产生了其他目标丢失的现象,图6中的(e)和(f)中最前面的目标,也就是在图6中的(a),图6中的(b)中被红色方框标注的行人发生了跟踪丢失。在图7中,由于将距离较近相互影响的目标分到同一个组内,对该组使用一个多目标跟踪器,跟踪组内目标的联合状态,所以即使在图7中的(c)和(d)中,目标之间的距离比较近的时候,两个目标仍然能被很好的跟踪上。
以上所述,仅为本发明中的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可理解想到的变换或替换,都应涵盖在本发明的包含范围之内,因此,本发明的保护范围应该以权利要求书的保护范围为准。