一种基于多模型融合和数据关联的多目标跟踪方法与流程

文档序号:12035800阅读:412来源:国知局

本发明属于图像处理、视频检测和人工智能交叉技术应用领域,尤其涉及一种基于多模型融合和数据关联的多目标跟踪方法。



背景技术:

多目标跟踪是当前计算机视觉领域的研究热点和难点,在智能交通控制,智能视频监控等领域有着重要的应用价值。由于现实环境具有复杂性,背景噪声,目标遮挡等问题亟待解决。当前跟踪算法中主要使用的有:基于模型的跟踪、基于目标轮廓的跟踪、基于区域的跟踪和基于特征的跟踪。

(1)基于模型的目标跟踪:首先要获取跟踪目标的先验信息来对目标的结构与运动状态进行建模,虽然能够实现较好的效果,但如果不能够获取目标足够的信息,则会导致跟踪效果恶化,同时不能够满足实时性的要求。

(2)基于目标轮廓的目标跟踪:因为轮廓信息的鲁棒不变性,使用物体的轮廓来表示运动目标,并不断进行更新,具有较强的抗光照变换特性,但在背景相对复杂的情况下会出现跟踪失效的状况。

(3)基于区域跟踪的方法:建立目标模板,根据目标跟踪目标,在运动目标被遮挡的情况下将无法继续准确跟踪,目标重新出现也无法自动复原,造成跟踪算法失效。

(4)基于特征的目标跟踪:提取目标颜色、质心位置等特征进行目标的匹配和搜索,进而实现对目标跟踪。此算法在目标被遮挡的情况下可以保持良好的跟踪,但是如果目标的特征点发生变化,比如发生缩放、旋转等,则跟踪效果会受到影响。



技术实现要素:

本发明的目的在于弥补现有目标跟踪技术的不足,提出了一种基于多模型融合和数据关联的多目标跟踪方法,本发明融合金字塔光流法和卡尔曼滤波预测下一时刻目标的位置,利用匈牙利算法进行数据关联,克服了目标遮挡和目标间相互干扰导致的跟踪失效,实现对目标遮挡的稳定跟踪。

本发明为解决上述技术问题采用以下技术方案:

一种基于多模型融合和数据关联的多目标跟踪方法,其特征在于,具体包括如下步骤:

步骤1,用户输入视频镜头s,定义s={f1,f2,...,fn},fn为第n个镜头帧,fn用大小为r*l的二维矩阵表示,其中,n为正整数,r为矩阵行数,l为矩阵列数;

步骤2,对视频镜头s进行预处理获得运动目标轮廓和质心坐标;具体步骤如下:

步骤2.1,对视频镜头s中的fk-1,fk进行灰度化处理得到灰度差值图像f′k-1,f′k,对f′k-1,f′k中的每个像素点j进行如下计算:

dk(j)=f′k(j)-f′k-1(j)

若dk(j)>t,则dk(j)取值1,则判定j为前景点,

若dk(j)≤t,则dk(j)取值0,则判定j为背景点;

则dk(j)取值1的构成目标轮廓dk;

步骤2.2;将步骤2.1得到的运动目标轮廓dk的中心点坐标作为运动目标的质心坐标(xk,yk);其中,2≤k≤n,xk,yk分别代表质心的横坐标和纵坐标,f′k-1(j)为第k-1个镜头帧f′k-1第j个像素点的色彩值,f′k(j)为第k个镜头帧f′k第j个像素点的色彩值,dk(j)为运动目标轮廓第j个像素点的色彩值,t为大津法得到的最优阈值;

步骤3,对步骤,2,得到的运动目标轮廓dk用金字塔光流法进行角点跟踪,预测出运动目标在下一帧的质心坐标(xlk,ylk);其中,xlk,ylk分别代表质心的横坐标和纵坐标;

步骤4,初始化卡尔曼滤波器参数,利用卡尔曼滤波器进行多目标跟踪,预测出运动目标轮廓dk在下一帧的质心坐标(xkal,ykal),xkal,ykal分别代表质心的横坐标和纵坐标;

步骤5,利用匈牙利算法对步骤4预测的质心坐标(xkal,ykal)进行数据关联,计算最优匹配后,完成对卡尔曼滤波器参数进行修正;进而获取运动目标在各时刻的质心坐标,通过依次连接运动目标在各时刻的质心坐标获取物体的跟踪轨迹。

作为本发明一种基于多模型融合和数据关联的多目标跟踪方法的进一步优选方案,所述步骤5具体包含如下步骤:

步骤5.1,利用匈牙利算法对步骤4预测的质心坐标(xkal,ykal)进行数据关联,计算最优匹配,具体步骤如下:对步骤2获取的运动目标质心坐标的检测值和步骤4获取的质心坐标预测值进行指派:设k时刻运动目标的质心检测集合是hk={h1,h2,...,hn},利用卡尔曼滤波器对hk中的每个运动目标的质心hi进行预测得到下一时刻质心坐标的预测值pi,即得到质心坐标预测集合pk={p1,p2,...,pn},k+1时刻运动目标的质心检测集合是hk+1={h1,h2,...,hm},则将质心坐标的预测值pk和下一时刻质心坐标的检测值hk+1之间看做一个指派问题,将质心预测坐标和下一时刻检测坐标的欧式距离作为效益矩阵,利用匈牙利算法求得最佳匹配;其中,n为k时刻检测到运动目标总数,m为k+1时刻检测到运动目标总数;所述匈牙利算法是一种二部图匹配算法,核心就是寻找增广路径求二分图最大匹配,可以有效地处理指派问题;所述欧式距离是二维和三维空间中两点之间的实际距离;

步骤5.2,去除利用卡尔曼滤波器进行多目标跟踪中不满足要求的部分,同时为未指派的检测建立跟踪单元;

步骤5.3,完成对卡尔曼滤波器参数进行修正,进而获取运动目标在各时刻的质心坐标,通过依次连接运动目标在各时刻的质心坐标获取物体的跟踪轨迹。

作为本发明一种基于多模型融合和数据关联的多目标跟踪方法的进一步优选方案,所述步骤2具体包含如下步骤:对当前帧检测到的运动目标轮廓进行角点检测,提取特征点坐标存入向量p[0],构建图像金字塔并进行光流估计,预测出角点在下一帧的坐标存入向量p[1];通过预测出的角点坐标进行加权平均估计出运动目标的质心坐标(xlk,ylk);其中,xlk,ylk分别代表质心的横坐标和纵坐标,所述角点是图像中的特征点;所述图像金字塔是一种以多分辨率来解释图像的结构;所述光流是目标运动的运动信息。

作为本发明一种基于多模型融合和数据关联的多目标跟踪方法的进一步优选方案,所述步骤5.2具体包含如下步骤:

步骤5.21设质心坐标的预测值和质心坐标的检测值之间的间隔帧数为f,欧式距离为d,若f和d满足下列表达式,则跟踪丢失,要对此质心坐标的检测值进行重新跟踪;

f>fmax或d>dmax

其中fmax为最大消失帧数和dmax为最大距离阈值;

步骤5.22,设k时刻预测值的数量为n,k+1时刻检测值的数目为m,n<m时有检测值不会被指派到任何预测值,将此检测结果当做新的跟踪目标。

作为本发明一种基于多模型融合和数据关联的多目标跟踪方法的进一步优选方案,所述步骤5.3具体包含如下步骤:

步骤5.31,若金字塔光流法跟踪成功且当前运动目标质心坐标的预测值和下一时刻运动目标质心坐标的检测值匹配成功,则将检测的运动目标质心坐标(xk,yk)和利用金字塔光流法预测出的运动目标的质心坐标(xlk,ylk)进行加权平均作为最终观测值更新卡尔曼滤波参数;

步骤5.32,若金字塔光流法跟踪成功且当前运动目标质心坐标的预测值和下一时刻运动目标质心坐标的检测值匹配失败,则将利用卡尔曼滤波器预测的运动目标的质心坐标(xkal,ykal)作为最终观测值更新卡尔曼滤波参数;

步骤5.33,若金字塔光流法跟踪失败且当前运动目标质心坐标的预测值和下一时刻运动目标质心坐标的检测值匹配成功,则将检测的运动目标质心坐标(xk,yk)作为最终观测值更新卡尔曼滤波参数;

步骤5.34,根据完成的卡尔曼滤波参数获取运动目标在各时刻的质心坐标,通过依次连接运动目标在各时刻的质心坐标获取物体的跟踪轨迹。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

1、本发明利用帧间差分法减少了光线和背景噪声的干扰,具有良好的实时性和鲁棒性,有效地检测出运动目标完整轮廓和质心位置;

2、本发明融合金字塔光流法和卡尔曼滤波预测下一时刻目标的位置,金字塔光流法处理速度快,受光线和噪声干扰非常小,卡尔曼滤波在对目标运动趋势不了解的情况下,有效地预测了目标的位置并不断进行滤波参数的更新,克服了目标遮挡和目标间相互干扰导致的跟踪失效,降低多目标跟踪是的漏检率和误报率;

3、本发明利用匈牙利算法在目标检测和数据关联之间建立了紧密的联系,使得两者相互促进,提高了多目标跟踪的准确性,有效地减少跟踪误差。

附图说明

图1是基于多模型融合和数据关联的多目标跟踪方法的实现流程图。

具体实施方式

下面对本发明附图的某些实施例作更加详细的描述。

根据附图1,本发明具体实施方式为:

1)输入一个视频序列s={f1,f2,...,f50},fi为第i个镜头帧,用大小为50*50的二维矩阵表示,用帧间差分法处理视频镜头s获得运动目标轮廓和质心坐标,具体步骤如下:

1.1)以视频镜头s中的f1,f2为例进行灰度化处理得到灰度差值图像f1',f′2,对f1',f′2中的每个像素点j,计算d2(j)=f′2(j)-f1'(j),当d2(j)满足判定方程:

d2(j)>t,判定j为前景点;

d2(j)≤t,判定j为背景点。

得到运动目标轮廓d2后将其中心点坐标作为运动目标的质心坐标存入point类型变量detection中,对s中其余元素做同样处理。

1.2)由于运动目标有些像素点的灰度值和背景图像的灰度值接近,被误认为背景像素,导致运动目标轮廓存在空洞和孤立噪声。为了填充运动目标边缘空洞,去除孤立噪声,对运动目标轮廓d2进行形态学膨胀和腐蚀操作,最后将运动目标的轮廓点和质心坐标分别存入向量m_regions和m_centers。

2)对1)得到的运动目标轮廓d2用金字塔光流法进行角点跟踪,预测出运动目标在下一帧的质心坐标,具体步骤如下:

2.1)对当前帧中的运动目标进行角点检测:角点是图像重要的局部特征,它最小化了图像上重要的形状信息,检测几乎不受光照条件等外界环境的影响,具有旋转不变性。在运动估计中起着非常重要的作用,也满足了实时性的要求。将第一帧图像中的运动目标轮廓m_regions当做角点的初始值,为了提高角点坐标的精度,利用cornersubpix()函数将角点位置精确到亚像素级,然后存入point2f类型的向量points[0]中。

2.2)构建图像金字塔并进行光流计算:基本思想是构造图像序列金字塔,首先在金字塔顶层计算光流,再将上一次估计到的运动作为下一层光流计算初始值,这一过程不断进行,直至估计出原始图像的光流,具体步骤如下:

将搜索窗口大小设置为(31*2+1)*(31*2+1)=63*63,金字塔最大层数为4,迭代的终止条件是达到最大迭代次数30或者达到最大阈值0.01。通过金字塔光流法可以计算出角点在下一帧的位置,去除位置没有发生变化的特征点,将跟踪成功的角点存入类型为point2f的向量point[1]。对跟踪成功的角点分别求和取平均值作为运动目标在下一帧的质心坐标存入point类型变量opticalflow中。最后将向量point[0]和point[1]进行交换,将上一帧的跟踪结果当做下一帧的检测结果,不断进行金字塔光流跟踪。

3)利用卡尔曼滤波进行多目标跟踪,预测出运动目标在下一帧的质心坐标,并利用匈牙利算法进行数据关联,计算最优匹配后对滤波参数进行修正,具体步骤如下:

3.1)对卡尔曼滤波器参数进行初始化:卡尔曼滤波器是遵循最小均方误差准则的递归算法,在假设目标进行匀速运动且目标大小线性变化的前提下,以目标的位置和速度等作为状态参数,结合历史目标位置和实际观测值对状态变量进行最优估计预测下一刻目标出现的可能位置,最后修正滤波器参数。卡尔曼滤波算法运动模型如下:

信号模型:xk=akxx-1+bkwk

观测模型:zk=hkxk+vk

其中xk表示状态向量,zk表示观测向量,ak表示状态转移矩阵,bk表示输入矩阵,hk表示观测矩阵,wk为动态噪声,其协方差为q,vk为观测噪声,其协方差为r,wk和vk互不相关,都是均值为0的白噪声序列。

对卡尔曼滤波参数进行了如下的初始化:

(1)令状态向量xk=[xk,yk,vx,vy]t,其中xk和yk表示当前帧检测出的运动目标质心坐标在x轴和y轴上的分量,vx和vy表示目标在x轴和y轴上速度分量。

(2)令观测向量zk=[xk,yk]t,其中xk和yk表示当前帧检测出的运动目标质心坐标在x轴和y轴上的分量。

(3)令状态转移矩阵动态噪声协方差其中δt为相邻帧时间间隔0.2s,c=δt2

(4)令观测矩阵观测噪声协方差

3.2)对1)得到的运动目标轮廓d2利用卡尔曼滤波器预测出运动目标质心在下一帧的位置坐标,存入变量prediction中。

3.3)利用匈牙利算法进行数据关联,计算最优匹配,对质心检测值和预测值进行指派。以第一帧中运动目标的质心检测集合h1={h1,h2,...,h10}为例,利用卡尔曼滤波器对h1中的每个运动目标质心hi进行预测,得到下一时刻质心坐标预测值pi,即可得到质心坐标预测集合p1={p1,p2,...,p10},第二帧中运动目标的质心检测集合是h2={h1,h2,...,h10},则质心坐标预测值p1和下一时刻检测值h2之间可以看做一个指派问题,将质心预测坐标和下一时刻检测坐标的欧式距离作为效益矩阵,利用匈牙利算法求得最佳匹配,对视频镜头s其余帧做同样处理。

3.4)去除卡尔曼跟踪器中不满足要求的部分,同时为未指派的检测建立跟踪单元,具体步骤如下:

(1)去除跟踪器中不满足要求的部分:质心坐标预测值和检测值之间的间隔帧数为f,欧式距离为d,如果f和d满足下列表达式,则认为跟踪丢失,要对此检测值进行重新跟踪。

f>5或d>80

(2)为未指派的检测在跟踪器中建立跟踪单元:k时刻预测值的数量为n,k+1时刻检测值的数目为m,n<m时有检测值不会被指派到任何预测值,则跟踪器将此检测结果当做新的跟踪目标。

3.5)卡尔曼滤波器进行参数修正,具体步骤如下:

(1)如果金字塔光流法跟踪成功并且当前运动目标质心坐标预测值和下一时刻检测值匹配成功,则将检测值detection和金字塔光流法opticalflow结果进行加权平均作为最终观测值更新卡尔曼滤波参数。

(2)如果金字塔光流法跟踪成功并且当前运动目标质心坐标预测值和下一时刻检测值匹配失败,则将卡尔曼滤波器预测的结果prediction作为最终观测值更新卡尔曼滤波参数。

(3)如果金字塔光流法跟踪失败并且当前运动目标质心坐标预测值和下一时刻检测值匹配成功,则将检测值detection作为最终观测值更新卡尔曼滤波参数。

3.6)通过3.3)~3.5)可以获得运动目标在各时刻的质心坐标,依次连接起来便构成了物体的跟踪轨迹。

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