一种基于视频的目标长期跟踪方法与流程

文档序号:11953578阅读:233来源:国知局
一种基于视频的目标长期跟踪方法与流程
本发明属于视频目标跟踪领域,更具体地说,涉及一种基于视频的目标长期跟踪方法。
背景技术
:视频跟踪技术是指计算机对视频序列中的目标状态进行持续推断的过程,其任务在于通过在视频的每一帧中定位目标来生成目标的运动轨迹,并在每一时刻提供完整的目标区域。目标跟踪算法的种类很多,一般也能达到想要的效果,但是缺乏通用性。比较常用的目标跟踪算法有以下几种:基于目标运动特征的跟踪算法,如帧差分法、基于光流的跟踪方法等等;基于目标特征参数的跟踪算法,如基于轮廓的跟踪算法、基于特征点的跟踪算法等;基于视频序列前后相关性的目标算法,如基于模板的相关跟踪算法等。目前,基于检测的跟踪算法越来越流行。基于检测的跟踪算法采用学习的方式产生检测器,用第一帧中人工标记的样本训练检测器,采用在线学习的方式对检测器进行更新。虽然视频目标跟踪技术已经取得了很大的发展,部分结果也进入了实用化阶段,但是当前仍然面临着许多问题:(1)跟踪目标具有多样性。由于需求不同,视频跟踪的对象多样,导致算法的设计也复杂多样。视频跟踪的对象可能是行人,也有可能是有不同颜色、形状的车辆以及它们的局部区域等等,这就导致了我们需要建立不同的描述目标外观的特质模型。(2)跟踪目标受外界的影响。在实际中,跟踪目标在成像时容易受到光照,摄像机角度和距离等因素的影响,这就要求目标跟踪算法要具有优秀的鲁棒性。(3)目标模板的更新。由于目标在跟踪过程中可能发生尺度变化、形状变化以及外观变化,需要配合相应的模板更新策略,防止目标模板的漂移及其引起的跟踪失败。(4)复杂背景环境干扰。跟踪算法容易受到背景信息的干扰而导致跟踪失败。本发明能够较好地解决以上这些难题。技术实现要素:本发明提供一种基于视频的目标长期跟踪方法,算法会在跟踪过程中不断对检测器进行在线更新,跟踪算法在检测和更新检测器的过程中使用了卡尔曼滤波技术、目标运动方向检测技术以及多线程处理技术,大大提高了跟踪的实时性。为解决上述技术问题,本发明一种基于视频的目标长期跟踪方法,其特征在于,包括以下步骤:(1)、读取视频,读入视频第一帧,得到目标跟踪框;(2)、对系统进行初始化,建立扫描窗口,训练检测器中的三个分类器;(3)、从视频中读入下一帧图像;(4)、跟踪器通过上一帧中的目标跟踪框,预测出当前帧图像中的目标跟踪框的大小和位置;(5)、进入检测器,通过卡尔曼滤波和方向检测限制检测区域,减少所需检测的扫描窗口数量,扫描窗口依次进入方差分类器、集合分类器、最近邻分类器三个级联的分类器,利用多线程处理技术将扫描窗口一分为二,分别放到两个线程中检测扫描窗口中的图像块,得到所有包含目标的图像块;(6)、综合器根据跟踪器和检测器的输出结果得到最终的输出,并判断是否更新检测器;(7)、根据步骤(6)的结果对检测器进行更新,将最终输出的目标跟踪框在屏幕上打印出来;(8)、判断视频是否结束,如果未结束则返回步骤(3),如果结束,则跟踪结束。作为本方案的进一步优化,本发明一种基于视频的目标长期跟踪方法所述步骤(1)通过鼠标选取或者读入目标框位置参数的方式得到得到目标跟踪框。作为本方案的进一步优化,本发明一种基于视频的目标长期跟踪方法所述步骤(2)中的三个分类器为方差分类器、集合分类器和最近邻分类器。作为本方案的进一步优化,本发明一种基于视频的目标长期跟踪方法所述步骤(6)中综合器根据跟踪器和检测器的输出结果得到最终的输出,并判断是否更新检测器的具体步骤包括:(61)、综合器对跟踪器进行评估,计算跟踪器输出的矩形框所代表的子图像块与目标模型之间的保守相似度,判定保守相似度是否小于阈值,所述阈值为0.65;(62)、综合器对检测器进行处理和评估,首先综合器对检测器输出的图像块进行聚类,使得聚类完的矩形框两两之间的重叠度不超过0.5,对每一个聚类的结果求其与目标模型之间的保守相似度,以聚类结果与目标模型之间的保守相似度和跟踪器输出的矩形框所代表的子图像块与目标模型之间的保守相似度为依据,将检测器的输出与跟踪器的输出进行融合。作为本方案的进一步优化,本发明一种基于视频的目标长期跟踪方法所述步骤(62)中的融合遵循用检测器的结果来纠正跟踪器的原则,融合的具体步骤包括:当跟踪器有输出且检测器有输出时,如果在步骤(62)中检测器输出的聚类结果中,存在一个图像块与跟踪器输出重叠度小于0.5且其与目标模型之间的保守相似度比跟踪器输出的矩形框所代表的子图像块与目标模型之间的保守相似度大,则使用此聚类结果作为最终的输出,并且不对检测器进行更新,否则将跟踪器的输出和检测器输出的图像块与跟踪器输出的图像块重叠度大于0.7的这部分图像块的位置信息进行加权处理,跟踪器输出的图像块比重为检测器输出图像块的5-15倍,并对检测器进行更新;当跟踪器有输出且检测器无输出时,将跟踪器的输出作为最终的输出,并根据步骤(61)的结果判定是否更新检测器,如果跟踪器输出的矩形框所代表的子图像块与目标模型之间的保守相似度小于阈值,则不更新检测器,否则更新检测器;当跟踪器无输出且检测器有输出时,不对检测器进行更新,此时如果步骤(62)的聚类结果数量为1,则将这个聚类结果作为最终的输出,否则不进行输出;当跟踪器无输出且检测器无输出时,不输出也不更新检测器。作为本方案的进一步优化,本发明一种基于视频的目标长期跟踪方法所述步骤(7)通过卡尔曼滤波生成样本区域,在样本区域中生成训练集合分类器和最近邻分类器所需的样本,用生成的样本对集合分类器和最近邻分类器进行再次训练,更新检测器。本发明一种基于视频的目标长期跟踪方法的有益效果为:1、通过不断的在跟踪过程中更新分类器,能够很好地适应目标在跟踪过程中的外观变化,提高了跟踪的准确性和鲁棒性,从而达到长期跟踪的效果。2、在检测和更新检测的过程中应用卡尔曼滤波技术,目标运动方向检测技术以及多线程处理技术,满足了跟踪的实时性要求,并且对跟踪精度的影响不大,并且在某些特殊情况下能够降低跟踪错误的概率。附图说明下面结合附图和具体实施方法对本发明做进一步详细的说明。图1为本发明一种基于视频的目标长期跟踪方法的流程;图2为本发明一种基于视频的目标长期跟踪方法更新检测器的示意图;图3为本发明一种基于视频的目标长期跟踪方法中尔曼滤波技术、目标运动方向检测技术以及多线程处理技术的作用示意图。具体实施方式结合图1、2、3说明本发明专利,本发明专利所述的一种基于视频的目标长期跟踪方法,包括以下步骤:(1)、读取视频,读入视频第一帧,通过鼠标选取或者读入目标框位置参数的方式得到目标跟踪框;读取视频,读入视频的第一帧,将视频的第一帧在屏幕上的图像窗口中打印出来,通过鼠标在图像窗口中选取目标框或者通过文本读入目标框的参数,从而得到初始目标框的参数信息。(2)、对系统进行初始化,建立扫描窗口,训练检测器中的方差分类器、集合分类器和最近邻分类器;以初始的目标框的的大小为基准,以21个尺度大小建立扫描窗口,每个尺度的扫描窗口都覆盖整幅图像。初始化中的训练即检测器的初次更新,检测器的更新是基于P-N学习的。x为特征空间X的一个实例,即某一种特征,y为空间标签Y={-1,1}的一个标签,即y的值有可能为1,也有可能为-1。这样,特征空间X里的实例都是未标注的,Y空间都是已标注的(1或者-1)。令L={x,y},则L属于一个被标注的数据集。那么P-N学习的输入就是已标注的数据集Ll和未标注的特征空间集Xu,其中,l<<u,即已标注的样本数量远小于未标注的样本数量。P-N学习的任务就是学习训练得到这样的一个分类器f:根据已标注的数据集Ll完成特征空间X到标签空间Y的标注,即实现对X的标注,而且未被标注的Xu是能够自引导进行标注的。分类器f为一个来自于由参数Θ参数化的函数族F的函数。函数族F在执行过程中是受到约束的,在训练过程中被认为是固定不变的。这样,训练过程主要就和参数Θ的估计相关连。P-N学习主要包括四个模块:(1)待学习的分类器;(2)训练样本—已标注的训练样本集;(3)监督训练—一种用来训练样本得到分类器的方法;(4)P-N约束—学习过程中能够产生正负训练样本的函数;更新检测器的过程如图2所示,是基于P-N学习的,其主要功能就是不断更新检测模块中的集合分类器和最近邻分类器。在更新的过程中每次都会生成训练样本,这些样本都被认为是非常可靠,并且标签已知的。那么对于集合分类器来说,这些训练样本会导致每个基本分类器中的后验概率的变化,达到学习的效果。对应最近邻分类器来说,P约束和N约束产生的图像块都会被添加到目标模型中去,这些图像块都是非常典型的,容易被分错的图像块,目标模型更加精确,通过比较与这些图像块的相似度,目标模型的可靠性更高。(3)、从视频中读入下一帧图像;(4)、跟踪器通过上一帧中的目标跟踪框,预测出当前帧图像中的目标跟踪框的大小和位置;(5)、进入检测器,通过卡尔曼滤波和方向检测限制检测区域,减少所需检测的扫描窗口数量,扫描窗口依次进入方差分类器、集合分类器、最近邻分类器三个级联的分类器,利用多线程处理技术将扫描窗口一分为二,分别放到两个线程中检测扫描窗口中的图像块,得到所有包含目标的图像块;为了减少检测的图像块的数量,需要预测目标所在的大概位置,检测模块只检测该区域内的扫描窗口。Kalman滤波是一种线性系统状态方程,通过观测数据对系统状态作最优估计的方法。大多数视频中的目标运动都是线性的,Kalman滤波能够很好的适用于大多数视频中。利用Kalman滤波对目标框中心进行估计,在估计的中心点处画出上一帧视频目标矩形框两倍大的矩形框。卡尔曼滤波是一种高效率的递归滤波器,它能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。卡尔曼滤波的一个典型实例是从一组有限的,包含噪声的,对物体位置的观察序列(可能有偏差)预测出物体的位置的坐标及速度。卡尔曼滤波的原理如下:首先,引入一个离散控制过程的系统。该系统可用一个线性随机微分方程来描述:X(k)=AX(k-1)+BU(k)+W(k)(4-1)以及系统的测量值:Z(k)=HX(k)+V(k)(4-2)其中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。W(k)表示过程的噪声,V(k)表示测量的噪声,假设W(k)和V(k)都是高斯白噪声。对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面估算系统的最优化输出。首先利用系统的过程模型来预测下一状态的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:X(k|k-1)=AX(k-1|k-1)+BU(k)(4-3)式(4-3)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,可令U(k)为0。到此为止,系统结果已被更新,但对应于X(k|k-1)的协方差矩阵还没更新。我们用P表示协方差矩阵:P(k|k-1)=AP(k-1|k-1)A'+Q(4-4)式(4-4)中,P(k|k-1)是对应X(k|k-1)的协方差矩阵,P(k-1|k-1)是对应X(k-1|k-1)的协方差矩阵,A'表示A的转置矩阵,Q是系统过程的协方差矩阵。式(4-3)和式(4-4)是对系统的预测。得到当前状态的预测结果后,再收集当前状态的测量值。结合预测值和测量值,可以得到当前状态k的最优化估算值X(k|k):X(k|k)=X(k|k-1)+Kg(k)(Z(k)-H(k|k-1))(4-5)其中Kg为卡尔曼增益(KalmanGain):Kg(k)=P(k|k-1)H'/(HP(k|k-1)H'+R)(4-6)由式(4-6)可得到了k状态下最优的估算值X(k|k)。但是为了卡尔曼滤波器能够持续运行直到系统过程结束,还要更新k状态下X(k|k)的协方差矩阵:P(k|k)=(I-Kg(k)H)P(k|k-1)(4-7)其中I为1的矩阵,对于单模型单测量,I=1。当系统进入k+1状态时,P(k|k)就是式(4-4)的P(k-1|k-1)。这样,算法就可以递归地运算下去。方向检测:在视频图像中,目标的运动可以分解为水平和垂直两个方向。以水平方向为例,0代表向左,1代表向右。在跟踪模块中,使用了光流法得到并筛选出了一系列前后向跟踪点,从中选取中最好的一对前后向跟踪点,比较它们的横纵坐标来判定物体的运动方向。而在跟踪器没有跟踪到的情况下,引入基于马尔可夫模型的方向预测模块,这个方向预测模型对于线性运动有着很好的效果。运动方向模型认为当前预测状态只与上一时刻的状态和状态转移矩阵有关。定义t时刻的状态转移矩阵为:Tt=p(st+1=1|st=1)p(st+1=1|st=0)p(st+1=0|st=1)p(st+1=0|st=0)---(3-8)]]>已知t时刻的目标运动方向状态量以及转移矩阵,预测t+1时刻的目标运动方向为:p(st+1=1)p(st+1=0)=Ttp(st=1)p(st=0)---(3-9)]]>以水平方向为例,如果t时刻物体向右运动,则p(st=1)=1,p(st=0)=0。其他情况以此类推,通过状态转移矩阵得出p(st+1=1)和p(st+1=0),比较它们的大小得到物体的预测的运动状态。状态转移矩阵的每一列元素相加为1,所以只需要计算p(st+1=1|st=1)和p(st+1=1|st=0),其计算公式为:p(st+1=1|st=1)=h11h1p(st+1=1|st=0)=h01h0---(3-10)]]>在0~t时刻,目标每向左移动一次,h0加1,每向右移动一次,h1加1,每有一次前一时刻向左,后一时刻向右的运动状态,h01加1,每有一次前一时刻向右,后一时刻向右,h11加1。根据这个运动方向模型,需要记录下当前时刻t之前所有的运动状态,运动状态越精确,则运动方向模型就越准确。在每两帧视频之间如果跟踪器跟踪到了,就用最好的前后向跟踪点确定物体的运动方向,并将运动方向记录下来,更新运动方向模型。如果没有跟踪到,就用这两帧视频中的目标框中心点来更新运动方向模型,比较两帧视频目标框中心点的横纵坐标来得到运动方向。在每一帧视频中,都能根据运动方向模型预测出当前目标的运动方向,能够很好的弥补跟踪器跟踪不到无法判定运动方向的情况。得到物体的运动方向后,可以进一步减小检测模块的扫描区域,对鲁棒性影响不大,在特殊情况下甚至可以提高跟踪的精度。多线程处理:对于检测模块,本发明使用了线程池技术,把需要检测的所有扫描窗口一分为二,分别放在两个线程中进行检测,最终的结果堆栈到一个容器中。线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但他们要等到其他线程完成后才启动。在初始化时,创建一个两线程的线程池,而不是在每一帧处理时都创建和销毁线程池,检测模块的任务一分为二堆栈进线程池中进行处理,能够减少检测模块的时间。Kalman滤波、多线程处理技术和方向预测技术在跟踪算法中的关系如图3。(6)、综合器根据跟踪器和检测器的输出结果得到最终的输出,并判断是否更新检测器,具体步骤包括:(61)、综合器对跟踪器进行评估,计算跟踪器输出的矩形框所代表的子图像块与目标模型之间的保守相似度,判定保守相似度是否小于阈值,所述阈值为0.65;(62)、综合器对检测器进行处理和评估,首先综合器对检测器输出的图像块进行聚类,使得聚类完的矩形框两两之间的重叠度不超过0.5,对每一个聚类的结果求其与目标模型之间的保守相似度,以聚类结果与目标模型之间的保守相似度和跟踪器输出的矩形框所代表的子图像块与目标模型之间的保守相似度为依据,将检测器的输出与跟踪器的输出进行融合。融合的具体步骤包括:当跟踪器有输出且检测器有输出时,如果在步骤(62)中检测器输出的聚类结果中,存在一个图像块与跟踪器输出重叠度小于0.5且其与目标模型之间的保守相似度比跟踪器输出的矩形框所代表的子图像块与目标模型之间的保守相似度大,则使用此聚类结果作为最终的输出,并且不对检测器进行更新,否则将跟踪器的输出和检测器输出的图像块与跟踪器输出的图像块重叠度大于0.7的这部分图像块的位置信息进行加权处理,跟踪器输出的图像块比重为检测器输出图像块的5-15倍,并对检测器进行更新;当跟踪器有输出且检测器无输出时,将跟踪器的输出作为最终的输出,并根据步骤(61)的结果判定是否更新检测器,如果跟踪器输出的矩形框所代表的子图像块与目标模型之间的保守相似度小于阈值,则不更新检测器,否则更新检测器;当跟踪器无输出且检测器有输出时,不对检测器进行更新,此时如果步骤(62)的聚类结果数量为1,则将这个聚类结果作为最终的输出,否则不进行输出;当跟踪器无输出且检测器无输出时,不输出也不更新检测器。(7)、根据步骤(6)的结果对检测器进行更新,通过卡尔曼滤波生成样本区域,在样本区域中生成训练集合分类器和最近邻分类器所需的样本,用生成的样本对集合分类器和最近邻分类器进行再次训练,更新检测器;并将最终输出的目标跟踪框在屏幕上打印出来;该步骤对检测器的更新与初始化基本一致,不同点在于,初始化中的更新使用整幅图像来生成训练分类器的样本,而该步骤只使用卡尔曼滤波确定的区域来生成样本,减小了更新检测器的时间。(8)、判断视频是否结束,如果未结束则返回步骤(3),如果结束,则跟踪结束。虽然本发明已以较佳的实施例公开如上,但其并非用以限定本发明,任何熟悉此技术的人,在不脱离本发明的精神和范围内,都可以做各种改动和修饰,因此本发明的保护范围应该以权利要求书所界定的为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1