陈戈珩, 杨 林
(长春工业大学 计算机科学与工程学院, 吉林 长春 130012)
基于Camshift/Kalman运动目标跟踪算法
陈戈珩, 杨 林
(长春工业大学 计算机科学与工程学院, 吉林 长春 130012)
将Kalman滤波与Camshift跟踪算法相结合,解决了运动目标被长时间遮挡以及相似颜色特征大面积干扰背景下目标丢失或跟踪精度下降问题。
Kalman滤波; Camshift; 跟踪算法
运动目标跟踪,即在视频序列的每一帧图像中找出锁定运动目标的位置,来完成对目标的跟踪。它不仅提供了很多可靠的数据信息,比如运动轨迹、运动参数和精确坐标等,也对锁定目标的动作分析及环境分析给出了准确的数据基础,甚至在精确检测及识别锁定目标方面给出了极大的支持。因而,运动目标跟踪是一个至关重要的桥梁,衔接运动目标检测及目标行为分析与理解,在计算机视觉、模式识别范畴中,长期以来是热门研究课题。
探究运动目标跟踪这类课题大致两个方向[1-2]:一类是依赖于经验,选中一段视频序列,检测并锁定运动目标,识别并检验锁定运动目标是否是想要跟踪的目标,如果正确就跟踪,否则重新检测并锁定;另一类与之相反,依赖于先验知识,通过对运动目标建模,在选中的视频序列中找到与模型相符的运动目标。
基于Kalman滤波的运动目标跟踪算法与Camshift运动目标跟踪算法有所不同,前者是一种全自动跟踪算法,后者是一种半自动跟踪算法。前一种算法通过预测视频序列中运动物体的质心坐标来锁定运动目标。为了实现该算法,开始要先检测视频序列中锁定的运动目标,目前主要是探究单个锁定的运动目标跟踪问题,因此无需辨识锁定的运动目标,从而可以直接从结果中获取质心坐标,通过Kalman滤波器对下一帧图像推测运动目标的质心坐标。后一种算法实现该算法时,起初要人为的确定锁定运动目标的起始坐标,获取锁定运动目标的颜色直方图以便跟踪运动目标。
1.1 Kalman滤波跟踪算法
Kalman滤波方法是在20世纪60年代初由一位美国学者提出的一种最优递推滤波方法[3]。此方法是依据当前时刻的获取值与前一刻的预测值,通过两个方程(状态方程、测量方程)持续迭代变换估测与修正两个步骤,以便减小某些因素(系统噪声、观测噪声等)引起的误差,从而得到想要的状态参数。
取一段视频序列,从这段视频序列中通过利用Kalman滤波运动目标跟踪算法验证其跟踪的效果[4],由于运动目标的质心坐标不容易精确地得到,在锁定运动目标质心坐标进行检测时,只能依据作类似比较的方法,通过检测结果的二值图像中拿到的质心坐标位置近似作为利用此跟踪算法得到的质心坐标。除此之外,利用一些运动目标检测方法也可以比较容易的拿到一段视频序列中其中一帧图像的质心坐标,可以以此作为观察数据,建立相应的模型,最后根据Kalman递推算法将接下来一帧图像中的质心坐标位置估测出来[5]。
1.2 Camshift跟踪算法
Camshift跟踪算法与基于Kalman滤波的运动目标跟踪算法有着不同,此算法是利用颜色直方图特征锁定运动目标的方式来跟踪运动目标。因此,它与Kalman滤波跟踪算法不同,依靠人为的方式追踪[6]运动目标,不需要对运动目标检测,是一种半自动跟踪算法。
此算法为了获得运动目标的颜色直方图,必须先在首帧图像中将搜索窗的大小和坐标初始化,并且要将跟踪的运动目标全部覆盖;在接下来的每帧图像中,为了获得对应的颜色概率分布图,要对依据搜索窗所处位置确定的计算区域进行反向投影,需将提取的运动目标颜色直方图作为查找表。并依据此图计算搜索窗的质心坐标,将此坐标看做搜索窗的中心坐标,再次设定搜索范围。重复多次,计算邻近两次获得的搜索窗质心坐标之间的误差,即搜索窗口的质心收敛在一个预期的范围内,如果迭代次数[7]达到规定的值也结束计算。依据这样的迭代方法,通过当前一帧的结果设定下一帧图像中搜索窗的坐标和大小,以此类推可以实现持续跟踪运动目标。
1.3 Camshift和Kalman滤波相结合的跟踪算法
通过Camshift跟踪算法可知,此跟踪算法的跟踪效果由跟踪运动目标周围背景的颜色特征差别大小决定的,差别越大,效果越好,此时能够将运动目标和背景区分开来,以便更好地对运动目标进行跟踪。如果在跟踪的运动目标附近出现与之类似颜色特征的复杂背景,也就是所谓的干扰物,那么此算法在锁定运动目标获取其位置坐标时就无法精确。为了避免运动目标周围存在干扰物对其跟踪结果造成的影响,从而能够更好地跟踪运动目标,于是利用将Camshift与Kalman滤波相结合的跟踪算法。利用Kalman滤波跟踪算法要得到当前帧图像中运动目标的质心坐标位置,需要通过前一帧图像中运动目标的质心坐标进行估测,以便建立邻近两帧图像中运动目标质心坐标的一种联系,然后根据Camshift跟踪算法的相关知识,将其运用此算法获取的质心坐标和估测值进行对比,依据这样的对比结果判断并得到当前运动目标的质心坐标以及下一帧图像中搜索窗的坐标和大小。
将i看作视频序列中的帧序,那么将两种运动目标跟踪算法相结合的算法主要步骤如下:
1)在初始帧图像中设置的搜索窗的坐标和大小须满足的条件是要能够全部覆盖所要跟踪的运动目标,得到运动目标的颜色直方图,搜索窗作为计算范围,以此能够获取其颜色概率分布图,从中得到其运动目标的质心坐标,并用(xi,yi)表示,此时i=1。
4)把Kalman滤波算法对质心坐标的估计值与Camshift跟踪算法得到的质心坐标进行对比,若符合以下条件:
(1)
式中:T----设定的阈值。
(2)
从而,设置当前帧图像中运动目标的范围及中心位置坐标,并通过初始化搜索窗的范围对下一位置进行设定。
相反,若不符合式(2),那么当前帧运动目标的质心位置就由Camshift跟踪算法得到的质心位置来设定。即:
(3)
从而决定下一帧图像中搜索窗的范围,是由Camshift跟踪算法来设定。
5)i=i+1,跳转到2),依次执行2),3),4),5)。重复此过程,跟踪结束后,对运动目标的持续跟踪便能完成。
为了验证将两种算法进行结合的改进跟踪算法在跟踪运动目标时的效果是否达到预期,于是将改进跟踪算法运用于mother-daughter视频序列中的人手跟踪,把此次实验结果拿来与利用Camshift跟踪算法的结果做对比。实验中,改进跟踪算法中的参数T设为4,在搜索跟踪过程中,邻近的两次得到的搜索窗的质心坐标相差小于4个像素或迭代次数不小于15次,以此作为此算法的质心收敛条件。其跟踪实验结果对比如图1所示。
图1 跟踪实验结果对比图
图1中矩形框是对运动目标跟踪结果的标记,而十字是对运动目标质心坐标的标记。
从图1中还能够看出,图(b)、(c)和(d)的矩形框慢慢变大,这是由于人脸跟人手存在着类似的颜色特征,使得在跟踪人手的过程中,受到了人脸的干扰,利用Camshift跟踪算法跟踪人手时,就会将人脸也放入了搜索窗内,即人脸也被认为是跟踪的运动目标,因此矩形框慢慢变大。搜索窗变大之后,对人手的跟踪定位会出现偏差,即运动目标的质心坐标发生变化,由图(d)可以看出,这不是所要的跟踪结果。
反之,采用改进跟踪算法,由图中可以看出,能够一直非常不错地跟踪人手的坐标位置,通过图(d)与(g)的跟踪结果对比很明显。利用Camshift跟踪算法定位运动目标的质心坐标时,往往会由于运动目标所在范围出现类似颜色特征干扰物(如人手旁边的人脸)导致真正的质心坐标出现偏离(见图(d)),而采用相结合的改进跟踪方法就能很好地对运动目标进行跟踪(见图(g))。
除此之外,能够清晰地看到图(b)与(d),(c)与(f)几乎无变化,原因是利用相结合的改进跟踪算法在跟踪第68和69帧图像时,Camshift跟踪算法获得的运动目标质心坐标与Kalman滤波跟踪算法的估测值,两者相差没有超过阈值T,因此在这种情况下,将Camshift跟踪算法得到的结果作为真实的跟踪结果。
根据以上的实验结果及理论分析能够知道,将两者相结合的运动目标跟踪算法在对运动目标质心位置估计的部分,因为Kalman滤波算法的融入,使得相邻两帧图像中运动目标的质心位置之间有了一定的联系。此时,在待跟踪的运动目标周围存在大面积的具有相似颜色特征的干扰物时,只采用Camshift跟踪算法不能精确地跟踪运动目标,这时,加入Kalman滤波跟踪算法就可以修正跟踪结果,从而精确地跟踪运动目标的坐标。除此之外,Kalman滤波跟踪算法不仅使得在待跟踪运动目标周围存在大面积干扰物影响跟踪结果这种情况得以解决,而且在仅使用Kalman滤波跟踪算法时,目标瞬间丢失、交错及重叠等问题[8]也因此得到较好解决。
基于Kalman滤波的运动目标跟踪算法和Camshift跟踪算法,这是两种基本的运动目标跟踪算法,文中分别阐述了其基本原理及两种算法的优缺点。其中Kalman滤波跟踪算法是通过估测运动目标的质心坐标来对运动目标进行跟踪,以此在跟踪目标的过程中,通过估测当前帧图形中运动目标质心坐标来估测下一帧图像中运动目标的坐标。而Camshift跟踪算法是根据运动目标的颜色直方图作为跟踪特征对运动目标进行跟踪,所以在跟踪初始时,一般要人为的指定运动目标的初始位置和大小,这样做的目的就是为了方便提取运动目标的颜色直方图。在分析两种基本跟踪算法在跟踪运动目标过程中存在的问题,给出了将两者相结合的改进的跟踪算法,通过实验证明了改进的跟踪算法能够使大面积颜色干扰问题得到解决。
[1] 侯志强,韩崇昭.视觉跟踪技术综述[J].自动化学报,2006,32(4):603-617.
[2] 张娟,毛晓波,陈铁军.运动目标跟踪算法研究综述[J].计算机应用研究,2009,26(12):4407-4410.
[3] Kalman R E. A new approach to linear filtering and prediction problems[J]. Transactions of the ASME-Journal of Basic Engineering,1960,82(Series D):35-45.
[4] 万琴,王耀南.基于卡尔曼滤波器的运动目标检测与跟踪[J].湖南大学学报:自然科学版,2007,34(3):36-40.
[5] 刘跃锋,宋永霞,李松涛.一种基于直方图对二值图像进行处理的方法[J].长春工业大学学报:自然科学版,2010,31(5):554-558.
[6] Dellaert F, Thorpe C. Robust car tracking using Kalman filtering and Bayesian templates[C]//In Proceedings of SPIE Conference on Intelligent Transportation Systems Pittsburgh Pa,1997,3207:72-83.
[7] 朱博,王宏志.基于多小波变换的图像去噪改进算法[J].长春工业大学学报:自然科学版,2009,30(1):37-42.
[8] 孙凯,刘世荣.多目标跟踪的改进Camshift/Kalman滤波组合算法[J].信息与控制,2009,38(1):9-14.
A moving target tracking algorithm based on Camshift/Kalman filtering
CHEN Geheng, YANG Lin
(School of Computer Science and Engineering, Changchun University of Technology, Changchun 130012, China)
Combining Kalman filter with Camshift tracking algorithm, we solve the problems such as moving target lost or degraded tracking precision when the target is occluded for a rather long time or large area of similar color feature background appears.
Kalman filter; Camshift; tracking algorithm.
2016-12-15
国家科技支撑计划基金资助项目(2007BAQ00097)
陈戈珩(1961-),女,汉族,吉林长春人,长春工业大学教授,主要从事数字信号处理及应用方向研究,E-mail:chengeheng@ccut.edu.cn.
10.15923/j.cnki.cn22-1382/t.2017.3.08
TP 391
A
1674-1374(2017)03-0256-04