一种结合Camshift和Kalman滤波的TLD目标跟踪算法
2019-04-01蔡亚南李东兴吴秀东宋汝君
蔡亚南 李东兴 吴秀东 宋汝君 王 迎
(山东理工大学机械学院 山东 淄博 255000)
0 引 言
随着时代的发展,机器视觉已成为人类感知世界和获得重要信息的主要途径。其中,计算机视觉的重要研究方向是视频目标跟踪,其应用前景越来越广泛,主要应用在机器人视觉方面、医疗诊断方面和军事领域等[1-2]。通过对视频进行图像处理得到目标的图像序列,然后分析、理解和处理图像序列,最终实现对运动目标的检测和跟踪[3]。在目标追踪过程中,光流法最为常见,但其不仅计算量大,而且适用于短时间目标跟踪而非适用于长时间的目标检测、识别和跟踪。
目标跟踪问题可以分为两类:一是递归方式,二是基于检测的方式。Meanshift算法具有快速模型匹配、无需参数、计算量小和可与其他算法结合的特点。但当目标尺寸变化较大时,Meanshift算法由于核函数的固定不变性,不具有自适应性,需要手动初始化等缺点,不能准确尺度定位、在线更新,不可实现长时间的有效跟踪,最终导致目标跟踪失败。所以要越来越多地关注在线更新的目标跟踪方法[4]。TLD算法是一种可以实现长时间对目标跟踪的功能,主要从追踪、检测和学习三个方面着手实现跟踪,具有鲁棒性高、学习恢复能力强的特点。但当出现相似目标物,或者目标物被遮挡和旋转时TLD算法跟踪精确度低、效果差[5-6]。
本文提出了一种结合Camshift和Kalman滤波的TLD目标跟踪算法,可实现对目标的长期有效跟踪和对目标窗口大小的自动化控制。Camshift算法是基于Meanshift算法形成的可连续自适应的一种算法,将Camshift结合Kalman滤波既可实现对目标位置的快速查找又可实现对窗口大小的控制功能。Camshift结合Kalman滤波后再改进TLD跟踪算法,可实现对目标的运动方向、速度大小建模。将TLD跟踪方法的原始输出数据与改进算法的预测结果相结合,然后对此时的状态输出结果进行修正,最后对输出结果加权处理,确定目标的最终准确位置。若出现目标物被遮挡状况,交由TLD学习器处理,若发生严重遮挡状况,则由改进的算法来预测目标的运动轨迹。本文算法既具有TLD算法原有的长期有效跟踪特点和自动调整识别窗大小的功能,又提高了对目标实时跟踪的准确性,同时对短时遮挡具有预测功能。
1 TLD算法
TLD算法由追踪器、检测器和机器学习三部分组成,框架结构如图1所示。
图1 TLD算法的框架结构
在TLD算法初始化的过程中,首先将视频帧送入到机器学习模块,此时的学习模块会产生正负样本,用来初始化追踪模块和检测模块。在此之后的图像序列中,对数据的处理过程需追踪模块和检测模块并行进行。将输出的融合结果作为当前帧,此时融合的数据被送入在线学习模块,学习模块会对跟踪模块和检测模块起到反作用。该过程可实现对跟踪模块和检测模块的数据更新,进而验证所得数据的准确性,跟踪目标更加准确[7-8]。这三个部分相互作用,并将所得到的数据整合,最终确定下一帧的跟踪目标。
1.1 追踪器模块
TLD算法的跟踪模块是基于LK光流跟踪法形成的中值流跟踪法,利用前向、后向跟踪算法,进一步估算前向轨迹和后向轨迹的误差值,即可实现对像素点的跟踪,预估目标在当前帧的位置[9-10]。
计算过程如下:
S=(Iτ,Iτ+1,…,Iτ+k)
(1)
(2)
(3)
(4)
(5)
1.2 检测器模块
该模块首先用尺寸不同的扫描窗全局扫描视频流的图像帧,经样本采集,将其输入级联分类器进行筛选,再对每一个矩形框进行判定,最终确认是否出现跟踪目标。级联分类器的结构组成如图2所示。
图2 检测器结构示意图
1.3 学习模块
P-N学习的过程是TLD算法的核心所在,包括P约束和N约束两个部分,P约束通过对目标移动的轨迹进行研究,来实现对正样本的添加[11]。若分类器检测出很多个目标时N约束可标记远离目标边界框样本为负样本。
2 算法设计
2.1 Camshift算法
Camshift算法包括反向投影图像的计算,对反向投影图像进行Meanshift计算和不断搜索三个过程。
由RGB转换到HSV颜色空间时,图像的直方图为:
(6)
对直方图归一化处理:
(7)
式中:n为像素个数;m为色度级别;xi为像素点位置;c(xi)为第i个像素位置的目标索引;δ为单位脉冲函数。
2.2 Camshift算法结合Kalman滤波的算法
1) Kalman滤波分为预测和修正两个阶段,其中预测阶段包括两部分:状态预测和误差协方差预测[12-13]。对Kalman滤波算法建模如下:
信号模型:Xk=AkXk-1+BkWk
(8)
观测模型:Zk=HkXk+BkVk
(9)
式中:Ak、Bk、Hk分别是状态转移矩阵、输入矩阵和观测矩阵;Wk、Vk分别为动态噪声和观测噪声;Wk与Vk是互不相关的白噪声序列;Xk-1为状态向量,其中核心部分是Zk,决定Kalman滤波预测的准确性。
2) Camshift结合Kalman滤波的算法由当前帧目标位置预测、匹配目标和更新Kalman滤波状态三部分组成。
(1) Kalman滤波通过判定图像目标的历史信息来确定当前帧图像目标的正确位置。
(2) Kalman滤波预测值的邻域范围内,依据由Camshift算法得出的颜色概率分布图来控制目标窗口,变换窗口的大小和进一步搜索与目标模板最相似的目标。
(3) 将完成匹配的目标位置作为Kalman滤波的观测值,然后更新Kalman滤波的状态。
残差法可以用来判断目标物被严重遮挡与否。即观测值与预测值之间的差值。
(10)
式中:x(k)、y(k)代表目标位置的观测值,x′(k)、y′(k)代表目标位置的预测值。该过程可以通过比较r(k)与阈值的大小,判断是否出现严重遮挡现象。
Camshift与Kalman滤波相结合的算法具体实现流程如图3所示。
图3 Camshift与Kalman滤波相结合的算法流程图
该过程经过初始化搜索窗,由Camshift算法实现跟踪、窗口大小控制,Kalman滤波器进行初步建模,并不对跟踪干扰。通过Camshift算法计算的目标区域大小和目标区域内像素个数判定是否有大面积颜色相似背景干扰和遮挡,若出现颜色相似遮挡,需加入Kalman预测信息。
2.3 结合Camshift和Kalman滤波的TLD目标跟踪算法
本文提出了Camshift结合Kalman滤波的TLD目标跟踪算法,实现对目标的长期有效跟踪和目标窗口大小的自动化控制功能,同时提高TLD跟踪算法在目标遮挡下的跟踪能力。其算法框图如图4所示。
图4 结合Camshift和Kalman滤波的TLD目标跟踪算法
输入视频帧,首先初始化Kalman滤波器,由Camshift与Kalman滤波相结合的算法跟踪目标,预测运动目标的下一时刻的状态。同时,由TLD算法得到目标下一时刻的状态,确定其跟踪区域。此时,如果TLD跟踪效果较好,即可将TLD跟踪的结果输出,作为观测值去更新改进的卡尔曼滤波。如果TLD由于遮挡或者相似背景导致跟踪失败时,由卡尔曼滤波预测目标的位置和状态,即可将此时的预测值作为观测值更新改进的卡尔曼滤波。该方法具有抗遮挡和相似背景干扰的能力。
3 实验结果与分析
为了验证本文算法跟踪的准确性,本文选择了Moto、Pedestrian和David三组具有遮挡、明暗变化的视频进行实验,并且将本文算法与原TLD、CT、CNT三种算法进行效果比对,根据跟踪成功率和跟踪性能进行评价:
(11)
式中:TB、TG分别是跟踪的边界框和跟踪框,当Csr>0.5时认为跟踪是有效的。根据目标中心的定位误差δdist=|Ctrack(x,y)-Cture(x,y)|来评价跟踪性能,Ctrack和Cture分别是跟踪框的中心点坐标和目标框的中心点坐标,CT和CNT分别为图像重建算法和决策树算法。
本文选取了以上三组视频帧,对不同算法在不同视频中的跟踪成功率进行比较。从表1中可以看出,不管是具有遮挡还是明暗变化的视频,本文改进的TLD算法跟踪正确率是较高的。
表1 不同算法的成功率比较 %
另外,根据中心位置的定位误差定性地评定不同算法的跟踪性能。图5分别表示了不同跟踪算法在三组视频帧中的中心位置误差曲线,由图可知本文算法在目标遮挡方面处理的较好,对原TLD算法易发生漂移现象[14]有很好的抑制作用。
(a) (b) c)图5 不同跟踪算法在各个视频帧中的中心位置误差曲线
为了验证本文算法的实时性和快速性,本文将本文算法和原TLD跟踪算法进入分类器的样本数量进行了比较,如图6所示。
图6 输入的样本数量比较图
通过图6对比可以看出,改进的TLD算法需要插入检测模块的样本数量明显下降,从而加快了样本的分类速度,提高了运算速度。表2给出了本文算法与原TLD算法的平均帧率,其中本文算法优于原TLD跟踪算法,该速率能够保证视频的流畅性和实际场合跟踪的实时快速性。
表2 两种算法在测试过程中的平均帧率帧·s-1
图7是本文跟踪算法应用在David视频帧中,截取的一些视频帧。可以看出,该算法在明暗变化、目标尺度方向改变和目标改变外观时都能很好的跟踪。
(a) (b) (c)
(d) (e) (f)图7 本文算法在David视频中的跟踪
当目标被遮挡时,为体现本文算法的长时、准确跟踪性能,现将本文算法与原TLD算法的跟踪进行比较,如图8所示。可以看出,当被跟踪目标发生遮挡后(帧255为第一次遮挡、帧623为第二次遮挡),两种跟踪算法都具有对遮挡的预测功能。但原TLD算法的跟踪窗出错,导致跟踪失败,而本文算法可以长时间实时准确跟踪目标,且跟踪成功。
图8 目标遮挡时两种跟踪算法的准确性比较
4 结 语
针对跟踪过程中目标受干扰、漂移现象和计算量大导致跟踪失败的问题,本文采用改进的TLD算法与Kalman滤波相结合的方法实现对目标的长时跟踪和对目标跟踪窗口大小的控制。本文用Camshift跟踪器替代原始的光流法跟踪器,一定程度上提升了运算速度,抑制了漂移现象。当目标被遮挡时用Camshift优化过的TLD学习器处理,当目标物发生严重遮挡时则用改进的Kalman滤波算法预测目标的运动轨迹。首先判断是否有大面积颜色、相似背景干扰和遮挡以及颜色相似运动物。若没有,则用Camshift算法不加入Kalman预测信息;若有,则加入Kalman预测信息。一方面调整窗口位置和大小并设定窗口的最大长度,通过判定搜索窗口的长和宽是否大于设定值,来调整搜索窗口的长和宽大小;另一方面,通过判断是否出现遮挡或严重遮挡,进一步修正Kalman滤波的预测值,更新Kalman滤波,实现目标跟踪。通过几组不同的视频实验,实验结果显示:本文的算法不但提高了运算速度,还在一定程度上改进了目标发生严重遮挡时容易丢失的问题。对于明暗变换,目标形变也能够实现跟踪。但当目标被完全遮挡、遮挡时间过长和发生巨大形变的时候会出现跟踪失败的问题,还有待改进。