您好, 访客   登录/注册

基于卡尔曼预测的运动目标实时跟踪

来源:用户上传      作者: 张富铭 王展青 王传廷

  【摘要】 针对运动目标实时跟踪问题,采用图像坐标系下的卡尔曼滤波预测来指导跟踪,对被跟踪目标的运动参数(位移,速度)进行滤波预测。并利用Matlab的视频处理功能对该算法进行了计算机仿真。
  【关键词】 目标跟踪;卡尔曼滤波;预测――修正;Matlab视频处理
  
  目标跟踪的研究作为探测技术的一个重要方面,可以追溯到1937年世界上第一部跟踪雷达SCR-28诞生的时候。随着科学技术的飞速发展,各种雷达、红外、激光、声纳等目标跟踪系统相继得到快速发展并日趋完善。目标跟踪技术在国防上占据着极其重要的地位,在民用领域也得到了广泛应用。目标跟踪问题一般可分为四类:一个传感器跟踪一个目标(OTO)、一个传感器跟踪多个目标(OTM)、多个传感器跟踪一个目标(MTO)、多个传感器跟踪多个目标(MTM)。
  在军事上,随着光电对抗、电子对抗技术的发展,目标的隐身特性和机动性能不断改善,被探测目标的不确定性更加复杂,机动目标跟踪,特别是杂波环境下的多传感器机动目标跟踪是近来人们研究较多的一个课题。基于图像跟踪技术的常用算法主要有卡尔曼滤波,概率数据关联滤波和多重假设跟踪器。卡尔曼滤波理论具有模型简单,数据存储量小的特点,特别适用于计算机应用,被广泛应用于航天、航空、航海、系统工程、通信等多种领域。
  一、目标跟踪框架
  目标跟踪的任务可概述为:充分有效地利用传感器信息最终形成目标航迹,一旦航迹形成并确认,就可获得目标个数,以及每个目标的状态,包括位置、速度、加速度等运动参数,并进一步获知目标的特征参数。根据文献,目标跟踪可以看作是一个“匹配――修正――预测”环。在时刻ti,所检测到的图像特征要和系统已有的特征建立对应关系(匹配),然后修正这些特征的参数,最后预测它们在下一时刻可能出现的方位。在匹配过程中,我们将要用到统计决策理论;在修正和预测中,需要用到参数估计理论;为了预测,我们还必需描述目标的运动模型。
  二、卡尔曼预测器
  卡尔曼预测器是一种递推估计器。卡尔曼预测估计采用的递归技术是其最有意义的特点之一,无须考虑多个过去的输人信号,而且在每次递归运算时,只考虑前一个输入信号就行了,即认为信号现在的状态只依赖于前一个,而不依赖前所有信号的状态。这样就不需要将过去的测量值都存起来备用。便于用计算机对信号的实时处理。其原理是通过第k时刻给出第k+1时刻的预侧值^X(k+1│k),然后再根据第k+1时刻的观测值修正预测值^X(k+1│k)得到最优估计值^X(k+1),并保证该预测值的均方误差最小。
  设一个离散时间线性系统的状态方程和观测模型分别为:
  状态方程:^X(k+1│k)=A(k+1│k)X(k)+W(k) (1)
  观测方程:Z(k)=C(k)X(k)+V(k) (2)
  其中,X(k)是第k时刻的状态变量,^X(k+1│k)是根据k时刻的状态变量预测得到的第k+1时刻的状态变量,A(k+1│k)是状态转移矩阵,用于描述目标物体的平移和旋转运动,C(k)是观测矩阵,W、V分别为状态和观测对应的噪声序列阵,其方差矩阵分别为Q和R。
  卡尔曼滤波算法(用现时刻 来预测 时刻的值)如下:
  ^X(k+1│k)=A(k+1│k)X(k) (3)
  ^X(k+1)=^X(k+1│k)+K(k+1)×(Z(k+1)-H(K+1))×^X(k+1│k))(4)
  K(k+1)=P(k+1│k)×CT(k+1)×(C(k+1)×P(k+1│k))CT (k+1)+R(k) (5)
  P(k+1│k)=A(k+1│k)×P(k)×AT(k+1│k)+Q(k) (6)
  P(k+1)=(1-K(k+1)×H(k+1))×P(k+1│k) (7)
  其中,^X(k+1│k)为一步状态预测,^X(k+1)为最优状态估计,K(k+1)为滤波增益矩阵,P(k+1│k)为一步预测误差方差阵,P(k+1)为估计误差方差阵。(3)式可以看作是根据k时刻的状态对k+1时刻状态的预测,(4)式可以看作是根据k+1时刻的观测值Z(k+1)对预测值的进一步修正。
  基于上述算式可将目标跟踪算法描述步骤为:
  (1)首先设置方差Q,R和协方差P的初始值。
  (2)根据Kalman滤波,预测第k+1帧的状态向量。根据运动对象的状态方程和已知的第k帧目标中心点坐标值,求出第 k+1帧目标中心点的预测坐标值。
  (3)对已预测的第k+1帧目标中心点的坐标值用最新获得的量测值进行修正,即对目标位置进行精确地定位。
  (4)将第k+1帧的修正坐标值代人方程式(3)~(7)式中继续跟踪下一帧,这种递推预测可不断进行下去,从而实现对目标的边测量边跟踪。
  三、基于卡尔曼预测的目标实时跟踪算法实现
  令状态向量:X(k)=[x(k)y(k)x'(k) y'(k)]T其中 x(k),y(k)分别是目标中心在x,y轴上的位置分量,x'(k),y'(k)分别是x,y轴上的速度。观测向量Y(K)=[xc(k) yc(k)]T,其中 xc(k)、yc(k)分别是目标中心在 轴上位置的观测值。
  物体中心运动状态的系统方程为:^X(k+1│k)=AX(k)+?孜(k)
  式中?孜(k)=[0u(n)]T为系统噪声;A=10?子0010?子2/200100001为状态转移矩阵;?子为帧间间隔时间。
  系统噪声的协方差矩阵:Q(k)=E[?孜(k)?孜T(k)]=?滓12I
  观测方程为:Z(k)=CX(k)+?灼(k)
  式中:C=10000100为观测矩阵;?灼(k)=v(k)为观测噪声,则观测噪声的方差R(k)=?滓22I 。
  设?滓12I=1,?滓22I=1。由以上跟踪算法可知,在递推运算能够开始进行以前,必须先求出前一帧预测协方差矩阵P(k+1│k)的初始值,可设P(k+1│k)的初始值为单位矩阵。
  四、运动目标实时跟踪实例与分析
  在此研究的基础上,结合Matlab7.5编程用一个实例说明本算法的应用。实例是一个小球的运动视频,实验中跟踪原始运动视频中的每一帧图像,同时对应目标的跟踪效果图。小球在每一帧中作垂直方向的往返运动。实验发现算法精确地对小球进行了跟踪。
  四个图依次显示了:目标纵向位置及其预测值、目标横向位置及其预测值、目标纵向速度预测值、目标横向速度预测值。反映了横向(y方向)、纵向(x方向)上卡尔曼预测跟踪结果,从第一幅图和第二幅图可以看出经过有限次滤波之后,Kalman滤波器在两方向上都可以准确预测出目标的真实状态,具有预测的稳定性。也可以发现在滤波器初始化后的头几次预测并不可靠,与真实数据有一定的误差。经过一段后误差逐渐稳定。由于每次预测的时间间隔较小,目标位置可认为改变较小,可以认为目标应在上次出现的位置附近的可能性较大,保留原来预测值作为当前帧的最佳相关匹配点,这样就可克服局部遮挡的影响。
  五、结论
  该算法应用到上述实例时,效果非常好。分析其原因认为主要是由于:(1)背景比较恒定不变且没有噪声影响;(2)状态转移矩阵很好地刻画了该目标的运动; (3)各种噪声方差矩阵的设置符合该段运动视频。这些因素也是影响卡尔曼滤波效果的关键,如何根据不同的视频场景去初始化这些参数是很有价值的研究内容。接下来,将该算法应用到更多的实例中去、研究扩展的以及自适应的卡尔曼滤波方法、了解其他滤波方法、处理多目标跟踪、目标遮挡、变体跟踪、高速运动目标跟踪、复杂场景下的目标跟踪等,是比较令人感兴趣的课题。
  参考文献
  [1]宋文尧,张牙.卡尔曼滤波[M].北京:科学出版社,1991
  [2]马颂德,张正友.计算机视觉[M].北京:科学出版社,1998
  [3]常发亮,刘雪,王华杰.基于均值漂移与卡尔曼滤波的目标跟踪算法.计算机工程与应用.2007
  [4]姚红革,耿军雪.基于卡尔曼预测的视频目标实时跟踪.西安工业大学学.2007(2)
  [5]周宏仁,敬忠良,王培德等.机动目标跟踪[M].北京:国防工业出版社,1991
  [6]董振海.精通Matlab7编程与数据库应用[M].北京:电子工业出版社,2007(9)


转载注明来源:https://www.xzbu.com/2/view-612728.htm