谷欣超,刘俊杰,才华,韩太林,杨勇
(1.长春理工大学 计算机科学技术学院,长春 130022;2.长春理工大学 电子信息工程学院,长春 130022)
基于Kalman滤波器的运动目标跟踪算法
谷欣超1,刘俊杰1,才华2,韩太林2,杨勇1
(1.长春理工大学计算机科学技术学院,长春130022;2.长春理工大学电子信息工程学院,长春130022)
运动目标跟踪是计算机视觉中的一个典型问题,如何能准确快速的跟踪目标是研究的关键。提出了Kalman滤波器结合Camshift的改进算法。首先选取一段视频图像序列,通过背景差分法快速检测出运动目标,初始化搜索窗口,用Kalmam滤波器预测目标位置,再用Camshift迭代算法计算目标最优的位置,将结果作为Kalman滤波器进行下一次预测的估计值。实验表明,当目标被严重遮挡或受到同色背景干扰时,本算法仍能快速准确的跟踪运动目标。
背景差分法;Kalman滤波器;Camshift;目标跟踪
一个完整的运动目标跟踪系统一般包括两部分内容,一是运动目标的检测,二是运动目标的跟踪[1]。静态背景下的运动目标检测主要应用于公共场所的视频监控,智能交通系统的实时监控等。传统的运动目标检测算法有三种:光流法、背景差分法、帧间差分法[2-4]。本文所使用的运动目标检测算法是背景差分法,它是目前运动目标检测技术中应用最广泛的一种方法。首先把不掺杂任何前景图像和噪声的背景图像作为背景模型,通过当前帧图像与背景模型作差分快速检测出运动目标。常用的运动目标跟踪算法主要分为以下几种:基于区域匹配的跟踪算法、基于特征点的跟踪算法、基于轮廓的跟踪算法、基于光流的跟踪算法等。本文所使用的Camshift算法根据目标区域的灰度或颜色分布特征进行跟踪,属于区域匹配的跟踪算法的。但Camshift算法需要手动选取运动目标,而且当目标与背景颜色接近或者目标被遮挡的情况下,算法实现的效果并不是很理想。
本文提出了Kalman滤波器与Camshift算法相结合的改进算法,用背景差分法检测出运动目标,改变传统Camshift算法需要手动选取运动目标的缺点[5-8]。通过Kalman滤波器预测目标所在位置,在此中心点用Camshift算法迭代搜索,更新Kalman滤波状态。该算法能够快速准确地跟踪到运动目标,具有一定的鲁棒性和准确性。
图1 背景差分法的流程图
背景差分法是用视频序列中的不包含前景图像和噪声的一帧图像作为背景,将以后各帧的每个像素的像素值与其背景的相应像素值相减,得到背景相减后的图像,再进行二值化运算得到最后的图像即为前景目标。由于背景差分法实现相对简单、速度较快且便于在硬件上实现,因此被广泛地使用于摄像机固定情况下的视频监控、运动目标检测等应用中。背景差分法的实现流程图如图1所示。
(1)背景模型的建立
目前最常用的背景模型建立方法是统计平均法,将连续多帧视频序列图像的灰度平均值作为背景图像。因为摄像机静止的情况下,一段图像序列中,背景相对于前景出现的次数更多,这样抽取一段时间内的序列图像,对于每个像素点,对所有帧取平均值,所求平均值就会和背景值接近。用式(1)表示:
(2)运动目标提取
获取背景图像后,用当前帧图像与背景图像作差分。取绝对值高于判决门限Tn的像素为运动目标,设置为1;低于判决门限值的为背景,设置为0,这样经过处理后的图像就为二值图像:
该方法的优缺点很明显,优点是计算简单,易于实现,而且能快速完整的检测出运动目标;缺点是不适用于摄像机运动或者背景实时变化的情况下,此外当光照发生变化时,该方法反应较慢,并不适用于光照变化较多的场景。
2.1Kalman滤波器
Kalman滤波器是一种对动态系统的状态序列,求线性最小方差误差估计的算法,利用动态的状态方程和观测方程来描述系统。它的基本思想是:首先建立描述随机动态变量随时间变化的先验模型,然后在对随机变量进行实时观测的情况下,利用KF方程组实时获得目标状态基于全局信息的最优估计值。Kalman滤波算法包含两个模型:
状态模型:
观测模型:
其中,Xk是n×1维状态向量,Ak是状态转移矩阵,n×n维,Bk是输入矩阵,Wk是动态干扰(白噪声)的随机向量,协方差为Q;Zk是m×1维观测向量,Hk是观测矩阵,m×n维,Vk是观测噪声向量,协方差维R。
根据上述模型,Kalman滤波器可分为算法预测和进一步观测的更新。其算法的具体流程如下:
算法的预测部分:
状态预测方程:
误差协方差预测方程:
进一步观测的更新部分:
Kalman增益系数方程:
状态修正方程:
误差协方差修正方程:
根据Kalman滤波器原理则可知,跟踪视频中运动目标时,可以有效的预测出运动目标在下一帧图像中可能出现的位置,减小搜索的范围,当目标被部分遮挡或者与少量背景相近时,也能快速准确的跟踪到目标。算法简单、方便,能达到实时跟踪的效果。
2.2基于Kalman滤波器的Camshift目标跟踪算法
传统的Camshift算法是基于Meanshift算法的扩展计算,是目标跟踪中最常用的一种算法。该算法通过图像的颜色直方图获得颜色概率分布图,当目标运动时,图像的颜色概率分布也随之变化,因此可以根据图像的颜色概率分布变化来跟踪运动目标。算法的基本思想如下:首先将序列图像由RGB颜色空间转换到HSV空间,提取H分量做颜色直方图,可以直观的观测到概率分布的大小,通过反向投影得到颜色概率分布图。实际上颜色概率分布图就是一个灰度图像,然后计算图像的零阶距,一阶距,以及搜索窗口的中心与质心的距离,找到满足条件的位置即实现跟踪。Camshift算法的实质就是对所有帧做Meanshift运算,并将上一帧的结果,也就是搜索窗的中心和大小作为下一帧搜索窗的初始值,经过反复迭代实现对运动目标的跟踪。
传统的Camshift算法有一些不足之处。它需要手动选取运动目标,容易受到光照等外界因素的干扰,而且当目标被遮挡或者与背景相似时,Camshift算法无法进行有效搜索,所以本文对算法进行一定的改进。
基于Kalman滤波器的Camshift目标跟踪算法的具体步骤:
(1)从视频序列中选取只有背景图像的一帧图像,对背景图像建模,计算当前帧与背景帧图像的差得到完整的运动目标。
(2)初始化搜索窗口,根据上一帧背景差分法得到的运动目标所在位置的最优估计值,通过Kalman滤波器预测运动目标在当前帧所在的位置。
(3)通过反向投影建立颜色概率分布图,在反向投影图中利用Meanshift算法在Kalman滤波器预测的目标中心点领域内搜索迭代搜索,计算出运动目标的最优位置。
(4)用Camshift算法计算的最优值作为观测值,更新Kalman滤波器。
(5)当出现背景颜色干扰或者目标被部分遮挡,用Kalman预测值作为观测值,并更新Kalman滤波器。
(6)重复(2)~(5)步骤,反复循环实现运动目标的跟踪。
算法的具体流程图如图2所示。
实验对象为一段运动的小车的视频图像序列,首先选取一帧只有背景的图像,用背景差分法检测到运动目标,提取运动目标的轮廓并用椭圆框标记,用Camshift算法进行跟踪。在小车所在目标区域内建立颜色概率分布直方图,过程如图3所示。
图2 改进的Camshift算法流程图
图3 运动目标跟踪
对同一段视频的图像序列用两种算法作比较,过程如图4和图5所示。传统Camshift目标跟踪算法进行跟踪时候,需要手动选择一个初始搜索窗。而改进后的算法根据背景差分法直接能检测出运动目标,并标记出运动目标。当跟踪到第50帧时,目标被障碍物严重遮挡,搜索窗出现发散的现象,改进后的算法可以用Kalman滤波器预测目标所在的位置。当跟踪到第70帧的时候,传统的Camshift算法已无法有效跟踪,而改进后的算法能继续跟踪,而且具有一定的稳定性。
图5 改进Camshift目标跟踪算法
本文详细的介绍了背景差分法,Kalman滤波器和Camshift算法的基本内容,提出了一种基于Kalman滤波器的Camshift目标跟踪算法,通过背景差分法能够快速和准确的检测出运动目标,对目标的几何特征提取的误差小,改变了Camshift算法需要手动选取目标区域的特点,并且当目标被严重遮挡时,用改进后的算法依然能够快速准确的捕捉到运动目标,实现了目标跟踪持久和稳定,具有很强的适应性和鲁棒性。
[1] Mazinan A H,Amir-Latifi A.Applying mean shift,motion information and Kalman filtering approaches to object tracking[J].ISA transactions,2012,51(3):485-497.
[2] 邬大鹏,程卫平,于盛林.基于帧间差分和运动估计的Camshift目标跟踪算法[J].光电工程,2010,37(1):55-60.
[3] 李刚,邱尚斌,林凌,等.基于背景差法和帧间差法的运动目标检测方法[J].仪器仪表学报,2006,27(8):961-963.
[4] 李木勇,冯进良,唐勇,等.基于序列图像中运动小目标检测[J].长春理工大学学报:自然科学版,2007,30(2):22-25.
[5] 朱胜利,朱善安.基于卡尔曼滤波器组的Mean Shift模板更新算法[J].中国图象图形学报,2007,12(3):460-464.
[6] 李晶,范九伦.一种基于卡尔曼滤波的运动物体跟踪算法[J].计算机应用研究,2010,27(8):3162-3164.
[7] 梁锡宁,杨刚,余学才,等.一种动态模板匹配的卡尔曼滤波跟踪算法[J].光电工程,2010,37(10):29-33.
[8] 廉绿松,蒋汉元,曹颖.卡尔曼滤波方法在经纬仪图像数字传感系统中的应用[J].长春理工大学学报:自然科学版,2013,36(5):120-122+126.
Algorithm of Moving Object Tracking Based on Kalman Filter
GU Xinchao1,LIU Junjie1,CAI Hua2,HAN Tailin2,YANG Yong1
(1.School of Computer Science and Technology,Changchun University of Science and Technology,Changchun 130022;2.School of Electronics and Information Engineering,Changchun University of Science and Technology,Changchun 130022)
Moving target tracking is always a typical problem in the field of computer vision.It has been involved in many areas of technology of video image processing,pattern recognition and artificial intelligence.So it has a strong research value.For the researchers,the key of the study is how to more accurately and quickly track the target.In this paper,the Camshift algorithm isimproved by using Kalman filter.First of all,we should choose a video image sequence,we can quickly detect moving targets by background subtraction,Initialize search window,and we need to predict the target location with the Kalmam filter,then we can calculate the optimal target location with Camshift algorithm,finally,as a result of the estimated value of the Kalman filter for the next forecast.The experimental results show that when the target is blocked or interfere by the same color background,the improved algorithm is able to fast and accurately track the moving targets.
background subtraction;Kalman filter;Camshift;target tracking
TP391.41
A
1672-9870(2015)05-0136-04
2015-09-16
谷欣超(1976-),男,硕士,讲师,E-mail:guxinchao@foxmail.com
杨勇(1970-),男,博士,教授,E-mail:yy@cust.edu.cn