张长春,黄 英,杨 刚
摘 要:在智能监控系统中,通过帧差法对运动物体的识别、定位,利用卡尔曼滤波算法对目标运动进行预测、跟踪,从而控制摄像头转动,跟踪目标物,使目标物体始终出现监控画面的中心。在此采用卡尔曼滤算法,进行目标运动的预估,利用Matlab对其仿真。仿真结果显示跟踪效果非常好,证明采用该算法来跟踪动目标物有效可行,具有一定的研究价值。
关键词:卡尔曼滤波;帧差法;运动目标跟踪;Matlab
中图分类号:TP391.41文献标识码:A
文章编号:1004-373X(2009)20-054-03
Application and Simulation of Kalman Filter in Moving Target Tracking
ZHANG Changchun,HUANG Ying,YANG Gang
(College of Automation,Guangdong Technology University,Guangzhou,510006,China)
Abstract: In the intelligence video monitor system,making use of the frame subtraction method to identify,locate the moving objects,Kalman filter is used to predict the moving object,in order to control the video camera turn and track the moving target,making the moving target in the center of the monitor image all along.Focusing on the tracking of moving targets throngh using Kalman filtering method,simulation results show that the effect of tracting is very pefect,it has good values.
Keywords:Kalman filter;frame subtraction method;moving target tracking;Matlab
0 引 言
随着视频分析技术、图像处理、模式识别的发展,计算机视觉理论已经得到了广泛的应用,但是,目前的发展仍然不够成熟,智能化的视频监控系统就是计算机视觉领域的一个备受关注的前沿课题。
在智能视频监控系统中,往往需要摄像机能够及时跟踪运动目标物,那么如何准确跟踪,已成为智能化视频监控系统中一项重要的技术,在此借助Kalman滤波算法跟踪动态目标。当对某一目标进行跟踪时,首先需要观测所跟踪的目标物,通常所得到观测信息中不仅包含所需要信号,而且还包含随机观测噪声和干扰信号。如何通过对一系列带有观测噪声和干扰信号的观测数据进行处理,从中得到所需要的各种参量的估计值,并由已有的观测数据预测未来目标的运动状态是预测跟踪方法的关键问题。卡尔曼滤波采用递推算法原理是利用系统噪声和观测噪声的统计特性,以系统观测量为输入,以所要估计值为输出,对目标当前运动状态做估计并对未来运动状态预测,核心思想是: 利用前一时刻对当前时刻的预测和当前的观察值来更新对状态量的估计(得到当前时刻的最优预测值),从而求出下一时刻的预测值,实现递归的预测,达到及时准确跟踪的效果。
1 卡尔曼滤波方程
1.1 卡尔曼滤波方程
Kalman滤波是对一个动态系统状态序列进行线性最小方差估计的算法,预测时具有无偏、稳定和最优的特点。推导Kalman滤波的公式有多种途径,在此,直接利用最小方差准则,对Kalman滤波的递推公式做简要的推导。
设系统的状态方程和测量方程分别为:
Χk=φk/k-1Χk-1+Γk-1Wk-1
Ζk=ΗkΧk+Vk
式中: Χk为k时刻的n维状态矢量,即被估计矢量;φk/(k-1)为n×n维状态转移矩阵;Γk-1为n×n维动态噪声矩阵;Vk为n维动态噪声;Ηk为k时刻测量矩阵。其中,动态噪声Wk与观测噪声Vk是互不相关的零均值白噪声序列,即对所有的k,j有:
EWk=0,EVk=0
cov(Wk ,Wj ) = EWk WTj = Qk δkj
cov (VK ,Vj ) = EVk VTj=Rk δkj
cov(Wk ,Wj ) = EWk VTj= 0
式中:Q为动态噪声方差;R为观测噪声方差阵。
1.2 卡尔曼滤波方程的推导过程
观测值Χk和最优估计值k,采用某一线性组合Ak-1+BΖk作为Χk滤波估计值。观测值和估计值有误差,要求其均方误差阵为最小,则由状态方程和测量方程可以推出:
假设:k时候估计误差为 k,其均方误差阵为Pk,即:
k=Xk-(Ak-1+BΖk)Pk = EkTk
于是:
Pk=E(Χk-Ak-1-BΖk)(Χk-Ak-1-BΖk)T
Pk/(k-1)=φk/(k-1) P(k-1) φTk/k-1+ Γ k-1 QkΓ Tk-1
展开得:
Pk =[B-Pk/(k-1)Ηk(ΗkPk/(k-1)ΗTk)T](ΗkΓ k/(k-1) ΗTk +
Rk )[B-Pk/(k-1)Ηk(ΗkPk/(k-1) ΗTk)-1] +
[Pk/(k-1)-Pk/(k-1)Ηk(ΗkPk/(k-1)ΗTk+Rk)-1ΗkPk/(k-1)]+
[Pk/(k-1)-Pk/(k-1)Ηk(ΗkPk/(k-1)ΗTk+Rk)-1ΗkPk/(k-1)] +
[(1-BΗk)φk/(k-1)-A]Ηk(ΗkPk/(k-1)ΗTkRk)-1ΗkPk/(k-1)
式中的第1项和第3项都是非负定阵,而第2项与待定系数矩阵A,B无关,因此为使达到最小,应取A和使第1项和第3项都等于0,即取:
B=Kk=Pk/(k-1)ΗTk(ΗkPk/(k-1)ΗTk +Rk)-1
A=(1-KkΗk)φk/(k-1)k=Ak-1+BΖk =
φk/(k-1)Xk-1+Kk(Ζk-Ηkφk/(k-1)k-1)Pk=
(1-KkΗk)Pk/(k-1)
综合上述结果,可以得到一组卡尔曼滤波递推方程:
X(k/k)=Xk/(k-1)+K(k)[Zk-HXk/(k-1)](1)
Xk/(k-1)=ΦX(k-1)/(k-1)(2)
Kk=Pk/(k-1)HT[HPk/(k-1)HT+Rk]-1(3)
Pk/(k-1)=ΦP(k-1)/(k-1)ΦT+ΓQk-1ΓT(4)
Pk/k=[1-KkH]Pk/(k-1)(5)
2 卡尔曼滤波在跟踪运动物中的应用
在监视过程中,通过帧差法识别运动目标时,通过型心定位,确定运动目标的中心坐标,然后采用卡尔曼滤波的方法,对运动目标进行跟踪。对于摄像头目标跟踪,采用时间等间隔采样,希望在观测到某一时刻目标位置时,能够及时预估计出下一个时刻出现的最大可能位置,以便于摄像头及时调整角度快速跟踪目标。在已知系统初始状态时,根据当前观测值用卡尔曼滤波得到X(1),进而预测X(2),具体卡尔曼滤波方程如式(1)~式(5)所示。卡尔曼进一步预测:
X(k+1)/k=ΦXk/k(6)
式中:Xk/(k-1)和Pk/(k-1)是状态预测值及其最小预测均方误差矩阵;Kk为卡尔曼滤波增益矩阵;Zk为观测信息;Xk/k和Pk/k为修正的状态估计值及误差协方差矩阵。假设目标在平面内运动,当运动目标进入摄像头的观测的观测的范围,首先假设摄像头及图像处理具有坐标定位的功能,摄像头在拍到图像之后,可以根据这些信息获得k时刻对信号所做出的估计出发,根据式(2)对k时刻的状态信号Kk进行预估,在测得k时刻的目标当前坐标位置后;然后用式(1)获得目标的真实状态最优估计值Xk/k;然后利用预估计算法,由式(6)对预测值进行修正计算目标k+1时刻最大可能位置的观测值X(k+1)/k,根据坐标位置可获得目标的偏转角度,根据偏转角度控制摄像头的转动的时间,从而保持跟踪目标始终出现到在监控画面的中间。
3 利用Matlab仿真跟踪目标过程
用标准卡尔曼滤波对目标进行估计和预测,首先对目标物建立数学模型,以二维空间为例对目标运动物进行预测跟踪,从图像中通过帧差法识别运动目标,从中取得运动目标物的的中心坐标值,以中心坐标值作为跟踪对象。运动目标物数学模型可表示为:
x=t;y=t
其状态方程,测量方程:
Χk=φk/(k-1)Χk-1+Γk-1Wk-1
Ζk=ΗkΧk+Vk
状态变量:
Xk=[xk,k,yk,k]
首先建立卡尔曼滤波连续状态方程:
X(t)=AX(t-1)+BW(t)(7)
Z(t)=CX(t)+DV(t)(8)
状态转移矩阵、动态噪声矩阵、测量矩阵、测量噪声矩阵分别为:
A=0100
0000
0001
0000
B=00
10
01
00
C=1000
0010D=1001
再将式(7)、式(8)转换成离散状态方程:
Xk+1=AXk+BWk(9)
Zk=CXk+DVk(10)
动态噪声方差矩阵、观测噪声方差矩阵:
Q=5eye(2) R=5eye(2)
动态噪声矩阵、观测噪声矩阵:
W=sqrt(Q)*randn(2,100)
V=sqrt(R)*randn(2,100)
取采样时间t=1 s,设实际观测值:X预测的最优估计值为: X_hat预设实际观测点(x,y),两个坐标值的运动轨迹分别为正弦曲线,余弦曲线假设初始状态变量为:
X=[40 2 20 3]
x(i+1)=10sin(i);y(i+1)=5cos(i);
利用卡尔曼滤波算法,分别跟踪这两个坐标值。
4 仿真结果
仿真结果如图1~图4所示。
图1 实际x坐标运动曲线与预测运动曲线
图2 实际x坐标运动速度曲线与预测运动速度曲线
图3 实际y坐标运动曲线与预测运动曲线
图4 实际y坐标运动速度曲线与预测运动速度曲线
5 结 语
运动目标跟踪技术在智能监控、视频图像等领域起重要的作用,在此阐述了基于卡尔曼滤波算法跟踪运动目标的基本思想和公式以及在跟踪运动目标物的应用,并进行了仿真验证。仿真结果表明卡尔曼滤波能够很好地预测跟踪目标的运动,具有很好的实时跟踪效果。该方法弥补了以往图像跟踪滞后的缺点,但是在坐标速度的跟踪上还没有达到预期的效果,以后将继续深入研究。
进一步的研究工作是如何准确建立跟踪目标的数学模型,优化Kalman滤波算法,分析模型误差,以及考虑x,y方向上随机加速度扰动的影响,以取得更好的跟踪效果。
参考文献
[1]蒋志凯.数字滤波与卡尔曼滤波[M].北京:科学技术出版社,1993.
[2]宋文尧,张牙.卡尔曼滤波[M].北京:科学技术出版社,1991.
[3]李在铭.数字图像处理压缩与识别技术[M].成都:电子科技大学出版社,2000.
[4]孙江波.基于嵌入式Linux的视频监控系统设计[M].武汉工业学院学报,2006,25(3):31-36.
[5]杨建全,梁华,王成友.视频监控技术的发展与现状[J].现代电子技术,2006,29(21):84-88.
[6]卡尔曼滤波的应用[EB/OL].http://baike.baidu.com/view/302394.html.
[7]什么是卡尔曼滤波[EB/OL].http://hi.baidu.com/xiaoqiang0416/blog/item/49fdacec42d56c2162d09f8b.html.
[8]杨学超,刘文萍.视频图像序列中的运动目标检测技术[J].计算机应用与软件,2008(1):215-217.