郭瑞峰, 张文辉, 刘 娜, 彭战奎
(1.西安建筑科技大学 机电工程学院,陕西 西安 710055;2.西安理工大学 计算机科学与工程学院,陕西 西安 710055)
Mean-Shift算法[1,2]使用目标物的颜色直方图作为目标模型,对于目标物受部分遮挡表现出一定的鲁棒性,但对于长时间跟踪的目标物受光照变化、尺度变化以及全部被遮挡时,往往会跟踪失败。很多学者提出将Mean-Shift与Kalman相结合,可以解决短时间内目标物受遮挡或运动状态发生变化导致跟踪失败的问题,但算法的鲁棒性差,难以实现目标物的长时间跟踪[3]。Kalal Z等人提出跟踪—学习—检测(tracking-learning-detection,TLD)跟踪算法,将机器学习与传统的跟踪算法相结合,能够实现目标物的长时间跟踪,却存在算法复杂,实时性差等缺点。[4]
本文借鉴TLD算法的思想,在Mean-Shift+Kalman算法基础上引入检测机制和学习机制[5],提出了一种将Mean-Shift跟踪算法与Kalman滤波器以及在线学习检测器相融合的算法,可以有效解决光照变化,部分或全部遮挡以及尺度变化等导致目标物跟踪丢失的问题,实现对目标物较长时间的跟踪。
所提算法由Mean-Shift跟踪器、在线学习检测器、Kalman滤波器组成。在线学习能够防止检测器发生“误检”和“漏检”的现象,并更新检测器参数,使得检测器具备较好的检测性能。引入Kalman滤波器将其预测值作为检测器检测的初始位置,以此提高检测效率,此外Kalman滤波器还具有精准估计目标位置的作用。跟踪目标时,Mean-Shift跟踪器跟踪目标并输出目标位置,成功跟踪目标后进行,当跟踪器跟踪失败(巴氏系数作为判断阈值)则启动检测器,检测成功后(相似度系数作为判断阈值)输出目标位置并更新跟踪器的目标模板。跟踪结果将跟踪器、检测器、Kalman滤波器三者信息融合后,以矩形框的形式出现。
在Mean-Shift跟踪算法中,通常在视频流的第一帧中选择一个待跟踪目标,并利用其颜色直方图作为目标模型的特征[6]。设目标区域内n个像素点记为{xi}i=1,…,n,目标模型的概率密度估计为
(1)
在视频流第二帧及其以后的每帧图像中所包含的目标区域称为候选区域。与目标模型相类似,中心位置为y的候选模型概率密度估计为
(2)
式中ch为标准化的常量系数。nk为候选区域内的总像素个数。
为了使巴氏系数最大,对其在y0点进行Taylor展开,再计算候选区域的中心y0到y的向量
(3)
跟踪时,按照式(4)进行迭代,并将迭代出来的新值替换y值,当‖y-y0‖<ε时,计算终止
(4)
启动检测器可以在搜索窗口中进一步检查丢失的目标物。采用滑动窗的方法获得大量的图像块Pi(i=1,2,…,n),为了实现分类的时效性,设计一种级联检测器来完成分类。级联分类器由方差滤波器、组合分类器、以及最近邻分类器(nearest neighbor classifier,NNC)等3部分组成[7]:
1)方差滤波器:识别滑动窗口中目标物和背景区域。
2)随机蕨组合分类器:通过几个基分类器(蕨)对由前一级方差滤波器的图像块进行像素比较,完成分类。首先在图像块中随机选取Nf个点对,再进行灰度值比较,接下来将Nf个点对分成Mf个蕨。每个蕨中有NS=Nf/Mf个叶子节点。实验时,选取蕨的数量为10棵,且每棵蕨有13个叶子节点[8]。
3)NNC:对跟踪器成功跟踪目标后所输出的图像块计算其匹配概率值,以此判断是否达到在线学习的阈值要求;作为级联检测器中的第三层分类器判断是否检测成功。
图像块D1和D2的相似度λ2L系数为
2.日本血吸虫毛蚴 (Schistosoma japonicum miracidium):是日本血吸虫幼虫发育中的最早阶段,呈梨形或长椭圆形,左右对称,银灰色。 大小为(78~120) μm×(30~40) μm,前端有锥形突起,体表具有纤毛。
式中μ1,μ2,σ1,σ2分别为D1和D2的均值和方差;NT为图像块的大小。
前述的级联分类器是在离线状态下由视频流第一帧标记的数据训练出来的分类器 (检测器)不具有很好的泛化能力。另外,在目标跟踪丢失后,检测器工作时对正负样本并不能达到100 %的分类效果,很有可能发生的“误检”和“漏检”的现象,由于误差的积累,最终可能会导致检测的失败。为此,采用P-N在线学习的半监督机制通过时空约束根据跟踪到的物体产生正负样本,训练分类器,更新分类器参数,保证检测器具有良好的检测效果[10]。
在Mean-Shift算法中,相邻两帧图像中的目标物其偏移量需要小于核函数的带宽[11],因此,目标物的移动速度直接影响Mean-Shift跟踪器的跟踪效果。Kalman滤波器利用系统状态方程和观测方程对目标物的运动状态做出精确预测。Kalman滤波的过程可以被分成两部分,分别为时间更新和测量更新,二者通过迭代方式完成预测过程。有关Kalman算法可以参考文献[12]。
采用Kalman预测可以确定有效区域[13],从而提高检测速度,降低时间消耗,其方法如下:
1)Kalman预测当前帧目标物的中心位置;
2)以上述位置画一个矩形区域,其长宽比与跟踪框长宽比相同,面积是跟踪框的4倍;
3)找出所有与规定矩形区域有重叠的子窗口,确定为有效区域,进行检测器检测。
检测器检测到目标且相似度系数大于设定阈值时,目标物颜色模板以一种赋权重的方式更新,更新公式为[14]
qnew=βq0+(1-β)qk
(5)
式中q0为原始目标颜色直方图;qk为第k帧检测器所得到的目标颜色直方图;β为更新速率因子,取值为0.91。如果目标物变动幅度很大时,应该给检测器检测到的目标物颜色直方图更多的权重,故β取较小值。反之,β取较大值。
基于以上基础算法的研究,提出一种多信息融合的Mean-Shift算法,该算法主要是由Mean-Shift跟踪器、Kalman滤波器、具有半监督学习的检测器3部分组成
图1所示为算法的流程,虚线表示通过对图像块在线学习后,通过设定参数使得最近邻分类器得以更新。其中ξZL,ξZLM为相似度阈值。鉴于TLD算法时效性差的特点,从以下方面进行设计:1)跟踪失败后再启动检测器;2)引入Kalman滤波器,不仅可以提高预测目标物位置的准确度,还可以降低检测时的复杂度,大大节约了时间开支。
实验进行前需要进行相关参数的设置,其中巴氏系数σBC取0.72,相对相似度的阈值ξZL取0.9(判断是否能够进行学习),另一个阈值ξZLM取0.76(判断是否检测成功)。
实验在PC(i5处理器2.30 GHz,8 GB内存)上用MATLAB软件编程完成。为验证所提算法的有效性,选用网上公开的3种具有代表性的视频进行测试。视频展示了包括目标物部分遮挡或者全部遮挡、长时间消失重现、光照变化、目标大小变化等状况。对比所提算法与TLD算法和Mean-Shift+Kalman算法(以下简称KM算法)分别对视频流进行处理,观察跟踪效果,如图2所示。其中,1表示MK算法,2表示TLD算法,3表示本算法。
图2 多信息融合的Mean-Shift算法流程
为评价算法是否具有较长时间的跟踪性能,图2所示实验截图均为视频中后段的跟踪效果,实验采用的三种跟踪算法所得部分跟踪效果对比结果。其中,红色表示TLD算法,绿色表示本文算法,红色表示MK算法。
可以看出,本算法在4种场景中跟踪效果良好。图2第一列所示为行人运动的场景,此时目标物的形状比较小。在前面的视频帧中,3种跟踪算法表现基本良好。但由于摄像机角度调整,使得目标物在150帧以后消失并在171帧中重新出现,只有本文算法能够继续保持良好的跟踪效果,而MK算法则发生了严重的漂移。虽然TLD算法也具有检测器,但其检测器是一种穷尽式的检测方法,而所提算法中的Kalman滤波器不仅能够精确预测目标位置,还能确定检测有效区域,因此在目标重现后能够快速确定目标。图2第二列所示为David朝前行走的场景,期间伴随有身体的晃动以及光线的变化。MK算法很快就产生了漂移,导致跟踪失败,而本文算法和TLD算法跟踪效果基本良好。虽然所提算法同样是基于颜色特征进行跟踪,但由于在线学习检测器可以不断更新目标模板,从而保证跟踪的连续性。图2第三列所示为车辆行驶过程中受部分遮挡的场景,TLD算法的目标框消失。此时选目标模板的颜色信息并不充分,因此基于颜色信息的KM算法会发生严重的漂移。所提算法可以向跟踪器提供更新后的颜色模板以及借助Kalman滤波器的预测作用来处理遮挡的情况,因此依然能够较好地跟随目标。
为了定量评价跟踪效果,选用目标重叠度以及每秒传输帧数(fps)来衡量[15]。目标重叠度的定义为
(6)
式中RT为跟踪到的目标位置;RG为目标实际位置。显然,重叠度越接近1表示跟踪效果越好。每秒传输帧数,其值越大代表算法实时性越好。3种跟踪算法有关平均成功率及每秒传输帧数的对比实验结果如表1所示。其中,O为目标重叠度,F为每秒传输帧数。
表1 3种跟踪算法跟踪效果对比
可知,所提算法与TLD算法的跟踪平均成功率相对较高,数值均在0.70以上,而MK算法的跟踪平均成功率相对较差。另外,相比较TLD算法,由于本文算法和MK算法均采用基于颜色直方图跟踪目标,实时性相对较好。虽然本算法中存在检测模块和学习模块,但处理速度并不逊于MK算法,这是因为算法采用了跟踪失败再检测的流程,且在检测过程中根据Kalman预测结果确定检测有效区域,这将大大提高算法实时性。
为了解决Mean-Shift算法目前存在的问题,提出了以Mean-Shift为框架的多信息融合算法。经过实验对比分析,所提算法具有跟踪精度高、实时性强等特点,能够解决在较长跟踪时间内目标物所发生的尺度变化、光照变化、部分遮挡或者消失重现等目标物跟踪失败的问题。