基于轨迹分割与拼接的目标跟踪方法与流程

文档序号:14718945发布日期:2018-06-17 00:08阅读:789来源:国知局
本发明涉及一种目标跟踪方法,特别是涉及一种基于轨迹分割与拼接的目标跟踪方法。
背景技术
:目标跟踪技术无论在军事还是民用领域都有十分广泛的应用。有效的数据关联是解决多目标跟踪问题的关键。数据关联是把来源于单个或多个传感器的量测数据与已知的轨迹进行相互配对的过程。Edmonds提出的匈牙利算法是求解二维分配问题最优解的经典算法。文献“Robustobjecttrackingbyhierarchicalassociationofdetectionresponses,ComputerVision–ECCV2008.SpringerBerlinHeidelberg,2008:788-801”提出了一种基于分层数据关联的目标跟踪方法。该文献在使用匈牙利算法进行第二层数据关联时,仅考虑了目标的空间信息,如目标间的距离、轨迹片段的方向。当图像序列中存在目标遮挡问题时,被遮挡目标的信息会产生不同程度的丢失。若仅用空间信息作为数据关联的输入,不能准确地对目标的位置进行判断,容易产生漏跟或错跟现象。技术实现要素:为了克服现有目标跟踪方法准确率差的不足,本发明提供一种基于轨迹分割与拼接的目标跟踪方法。该方法首先初始化每个目标的轨迹,然后根据关联结果与轨迹历史信息的符合程度将轨迹进行有效分割,再将分割后的轨迹进行准确拼接,最后将帧窗间的轨迹依据重叠度进行拼接得到目标最终轨迹。本发明弥补了在缺乏目标外观信息的情况下,现有多目标跟踪方法的漏跟及错跟现象,实现了更为精确的多目标跟踪。本发明解决其技术问题所采用的技术方案是:一种基于轨迹分割与拼接的目标跟踪方法,其特点是包括以下步骤:步骤一、设定一个初始化常数f0,当图像序号frameNo满足0<frameNo<f0时,对相邻的两帧图像中的目标检测结果Object1={obj11,obj12,…,obj1m}及Object2={obj21,obj22,…,obj2m},计算代价矩阵其中,costij为obj1i与obj2j之间的欧式距离,计算如下:costij=cost(obj1i,obj2j)=(x1i-x2j)2+(y1i-y2j)2---(2)]]>将代价矩阵作为数据关联的输入矩阵,用匈牙利算法求解,得到匹配矩阵若obj1i与obj2j匹配成功,则将obj2j存入obj1i的轨迹当中。按此过程遍历初始化常数内的所有图像,得到每个目标的初始化轨迹片段trackleti。用最小二乘法对轨迹片段进行二次曲线拟合求得拟合参数param,拟合的曲线方程为:Ax2+Bx+C=0。当图像序号frameNo>f0时,对相邻两帧图像用匈牙利算法进行数据关联,并判断关联后的轨迹片段是否满足分割条件。分割条件为:∀obj2n,cosij<sizeThreshold(n=1,2,3...n,n≠j)---(3)]]>simi(param(trackleti),param(trackleti+obj2j))>simithreshold(4)其中,sizethreshold为目标的最小尺寸,simithreshold为轨迹片段的相似度阈值。设obj1i与obj2j匹配成功,若满足分割条件,则在当前帧分割obj1i的轨迹片段,即结束trackleti,将与其关联的obj2j作为新出现的目标。按上述过程,依次遍历帧窗内的每帧图像,即得到当前帧窗内分割过的轨迹片段集合。步骤二、对输入的轨迹片段集合构造其代价矩阵costn*n。矩阵中的costij为trackleti与trackletj之间的相异度,计算如下:costij=w1*distij+w2*frameGapij+w3*direDiffij+w4*veloDiffij(5)其中,distij,frameGapij,direDiffij,veloDiffij分别为trackleti与trackletj之间的空间距离,帧差,速度差及方向差,分别计算如下:distij=(xstartj-xendi)2+(ystartj-yendi)2---(6)]]>其中,(xstartj,ystartj)为trackletj的轨迹起始帧中的目标位置,(xendi,yendi)为trackleti的轨迹结束帧中的目标位置。frameGapij=startFramej-endFramei(7)其中,startFramej为trackletj的轨迹起始帧序号,endFramei为trackleti的轨迹结束帧序号。direDiffij=cos(Line(trackleti))-cos(Line(trackletj))(8)其中,cos(Line(trackleti))为trackleti的轨迹切线的余弦值。veloDiffij=|veloi-veloj|(9)其中,veloi为trackleti中的目标速度,veloj为中的目标速度。根据frameGapij判断每一对关联成功的轨迹片段之间是否有空白帧。若frameGapij=0,则按照帧顺序将该对关联成功的轨迹片段拼接。若frameGapij≠0,则需计算出目标在缺失帧处的位置,再按照帧顺序进行拼接。目标在空白帧miss处的位置(xmiss,ymiss)应用目标的历史信息进行估算:xmiss=(xestimatei+xestimatej)/2(10)xestimatei=endLocationi+veloi*(miss-endFramei)(11)xestimatej=startLocationj+veloj*(startFramej-miss)(12)其中,xestimatei和xestimatej分别为根据轨迹trackleti和trackletj的信息估算出的目标在miss处的x坐标的位置。veloi和veloj分别为根据trackleti和trackletj的轨迹信息进行多次估算求得的目标在该段轨迹的平均速度。按此过程估算出目标在每一空白帧处的位置,最后将三段轨迹按照帧顺序拼接形成长的轨迹片段。步骤三、每两个相邻帧窗间的重叠为overlap帧,据此进行初步候选轨迹的筛选:iscandidate{=0trackletOverlap<overlapThreshold=1trackletOverlap≥overlapThreshold---(13)]]>得到每段轨迹的候选轨迹后,以轨迹的其他时空信息进行约束,求得每段轨迹的最终拼接轨迹。拼接后的轨迹在重叠帧overlap处的目标位置为两段轨迹中目标位置的算术平均。本发明的有益效果是:首先初始化每个目标的轨迹,然后根据关联结果与轨迹历史信息的符合程度将轨迹进行有效分割,再将分割后的轨迹进行准确拼接,最后将帧窗间的轨迹依据重叠度进行拼接得到目标最终轨迹。本发明弥补了在缺乏目标外观信息的情况下,现有多目标跟踪方法的漏跟及错跟现象,实现了更为精确的多目标跟踪。下面结合具体实施方式对本发明作详细说明。具体实施方式本发明基于轨迹分割与拼接的目标跟踪方法具体步骤如下:1.帧窗内轨迹片段生成与分割。设定一个初始化常数f0,当图像序号frameNo满足0<frameNo<f0时,对相邻的两帧图像中的目标检测结果Object1={obj11,obj12,…,obj1m}及Object2={obj21,obj22,…,obj2m},计算代价矩阵其中,costij为obj1i与obj2j之间的欧式距离,计算如下:costij=cost(obj1i,obj2j)=(x1i-x2j)2+(y1i-y2j)2---(2)]]>将代价矩阵作为数据关联的输入矩阵,用匈牙利算法求解,得到匹配矩阵若obj1i与obj2j匹配成功,则将obj2j存入obj1i的轨迹当中。按此过程遍历初始化常数内的所有图像,得到每个目标的初始化轨迹片段trackleti。用最小二乘法对轨迹片段进行二次曲线拟合求得拟合参数param(trackleti),拟合的曲线方程为:Ax2+Bx+C=0。当图像序号frameNo>f0时,对相邻两帧图像用匈牙利算法进行数据关联,并判断关联后的轨迹片段是否满足分割条件。分割条件为:∀obj2n,cosij<sizeThreshold(n=1,2,3...n,n≠j)---(3)]]>simi(param(trackleti),param(trackleti+obj2j))>simithreshold(4)其中,sizethreshold为目标的最小尺寸,simithreshold为轨迹片段的相似度阈值。设obj1i与obj2j匹配成功,若满足分割条件,则在当前帧分割obj1i的轨迹片段,即结束trackleti,将与其关联的obj2j作为新出现的目标。按上述过程,依次遍历帧窗内的每帧图像,即得到当前帧窗内分割过的轨迹片段集合。2.帧窗内轨迹片段拼接。首先,对输入的轨迹片段集合构造其代价矩阵矩阵中的costij为trackleti与trackletj之间的相异度,计算如下:costij=w1*distij+w2*frameGapij+w3*direDiffij+w4*veloDiffij(5)其中distij,frameGapij,direDiffij,veloDiffij分别为trackleti与trackletj之间的空间距离,帧差,速度差及方向差,分别计算如下:distij=(xstartj-xendi)2+(ystartj-yendi)2---(6)]]>其中,(xstartj,ystartj)为trackletj的轨迹起始帧中的目标位置,(xendi,yendi)为trackleti的的轨迹结束帧中的目标位置。frameGapij=startFramej-endFramei(7)其中,startFramej为trackletj的轨迹起始帧序号,endFramei为trackleti的轨迹结束帧序号。direDiffij=cos(Line(trackleti))-cos(Line(trackletj))(8)其中,cos(Line(trackleti))为trackleti的轨迹切线的余弦值。veloDiffij=|veloi-veloj|(9)其中,veloi为trackleti中的目标速度,veloj为中的目标速度。根据frameGapij判断每一对关联成功的轨迹片段之间是否有空白帧。若frameGapij=0,则按照帧顺序将该对关联成功的轨迹片段拼接。若frameGapij≠0,则需计算出目标在缺失帧处的位置,再按照帧顺序进行拼接。目标在空白帧miss处的位置(xmiss,ymiss)应用目标的历史信息进行估算:xmiss=(xestimatei+xestimatej)/2(10)xestimatei=endLocationi+veloi*(miss-endFramei)(11)xestimatej=startLocationj+veloj*(startFramej-miss)(12)其中,xestimatei和xestimatej分别为根据轨迹trackleti和trackletj的信息估算出的目标在miss处的x坐标的位置。veloi和veloj分别为根据trackleti和trackletj的轨迹信息进行多次估算求得的目标在该段轨迹的平均速度。按此过程估算出目标在每一空白帧处的位置,最后将三段轨迹按照帧顺序拼接形成长的轨迹片段。3.帧窗间长轨迹片段拼接及轨迹输出。每两个相邻帧窗间的重叠为overlap帧,故两帧窗内同一目标的轨迹会有一定的重叠。据此进行初步候选轨迹的筛选:iscandidate{=0trackletOverlap<overlapThreshold=1trackletOverlap≥overlapThreshold---(13)]]>据此得到每段轨迹的候选轨迹后,以轨迹的其他时空信息进行约束,如veloDiffij和direDiffij,求得每段轨迹的最终拼接轨迹。拼接后的轨迹在重叠帧overlap处的目标位置为两段轨迹中目标位置的算术平均。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1