1、Kalman 滤波在运动跟踪中的应用一 kalman 滤波简介Kalman 滤波是卡尔曼(R.E.kalman) 于 1960 年提出的从与被提取信号的有关的观测量中通过算法估计出所需信号的一种滤波算法。他把状态空间的概念引入到随机估计理论中,把信号过程视为白噪声作用下的个线性系统的输出,用状方程来描述这种输入输出关系,估计过程中利用系统状态方程、观测方程和白噪声激励(系统噪声和观测噪声)的统计特性形成滤波算法,由于所用的信息都是时域内的量,所以不但可以对平稳的一维随机过程进估计,也可以对非平稳的、多维随机过程进行估汁。Kalman 滤波是一套由计算机实现的实时递推算法它所处理的对象是随机信号
2、,利用系统噪声和观测噪声的统计特性,以系统的观测量作为滤波器的输入,以所要估计值(系统的状态或参数)作为滤波器的输出,滤波器的输入与输出之间是由时间更新和观测更新算法联系在一起的,根据系统方程和观测方程估计出所有需要处理的信号。所以,Kalman 滤波与常规滤波的涵义与方法不同,它实质上是一种最优估计法。二 kalman 滤波基本原理Kalman 滤波器是目标状态估计算法解决状态最优估计的一种常用方法具有计算量小、存储量低、实时性高的优点。实际应用中,可以将物理系统的运行过程看作是一个状态转换过程,卡尔曼滤波将状态空间理论引入到对物理系统的数学建模过程中来。其基本思想是给系统信号和噪声的状态空
3、间建立方程和观测方程,只用信号的前一个估计值和最近一个观察值就可以在线性无偏最小方差估计准则下对信号的当前值做出最优估计。设一系统所建立的模型为:状态方程: kkwXA1观测方程: kkvHZ其中, 为 k 时刻系统特征的状态向量, 为观测向量, 为状态由 k-kZ1kA1 时刻到 k 时刻的转移矩阵, 从为观测矩阵, 为 k 时刻系统输入随机噪声kw向量, 为观测噪声向量,其中 和 为状态变换过程中用来调整状态的系v1AkH数,为已知矩阵。一般系统随机噪声和观测噪声符合高斯白噪声的过程,因此假设它们的概率密度函数是均值为零的高斯函数且相互独立。设 , 它们的kwv方差分别为 和 ,初始状态与
4、 和 不相关,则 ,kQRkwv)0(Qk,。)0(vk,随机系统的状态估计问题,就是根据选定的估计准则和获取的观测信息对系统状态进行估计。Kalman 预估计采用递推的方法来实现对状态的估计。它在先不考虑系统和观测噪声的前提下获得状态的先验估计,并以此推算当前的状态变量。这是没有考虑噪声的情形下获得的估计值与真实值有一定得误差,然后用状态先验估计和观测变量的加权线性组合构成后验状态估计,当后验状态估计协方差误差取得最小时即获得对状态的最优估计。用 表示对状态的最优kX估计, 表示状态先验估计, 表示先验估计误差方差矩阵, 表示状态最kXkPkP优估计的误差方差矩阵, 为使状态获得最优估计时的
5、系数矩阵,称为KKalman 增益。Kalman 滤波器实现的主要五个方程为:(1)状态向量预报方程1kkXA(2)状态向量协方差预报方程 11 kTkkQP(3)Kalman 加权矩阵 (或增益矩阵) 1) kkkRHK(4)状态向量更新方程 (kkkXZX(5)状态向量协方差更新方程 )(kkPIPKalman 滤波预估计就是用前面两个时间更新方程获得先验估计然后通过后面三个状态更新方程对先验估计矫正获得最优估计。三 Kalman 滤波在运动跟踪中的应用卡尔曼滤波器是一个对动态系统的状态序列进行线性最小误差估计的算法,一般用于线性系统。一般在运动跟踪领域中摄像机相对于目标物体运动有时属于非
6、线性系统,但由于在一般运动跟踪问题中图像采集时间间隔较短,可近似将单位时间内目标在图像中的运动看作匀速运动,采用卡尔曼滤波器可以实现对目标运动参数的估计。对于复杂背景下运动目标识别与跟踪问题,要实现实时控制,对算法的实时性和准确性都有较高的要求。通常的目标识别算法都是基于像素的全局搜索,从目前实践来看,该方法存在显著缺点:1)全局搜索计算量大、耗时,实时性无法满足;2)全局搜索抗干扰能力差,容易受到背景中相似特征物体的干扰。基于卡尔曼滤波器预测功能的运动目标快速跟踪算法可以通过预测目标物体在下一帧中的位置,将全局搜索问题转化为局部搜索,提高算法的实时性。3.1 应用实例在移动机器人跟踪运动目标
7、的过程中,由于目标物体单位时间内在图像中的运动可以看作匀速运动,所以可以采用目标某一时刻在图像中的位置和速度来表示目标的运动状态。为了简化算法的计算复杂度,可以设计了 2 个卡尔曼滤波器分别描述目标在 X 轴和 Y 轴方向上位置和速度的变化。下面仅讨论 X轴方向上卡尔曼滤波器的实现过程,Y 轴方向上同理。目标物体运动方程为:Tavxkk1式中 , , 分别为目标在 t=k 时刻的 X 轴方向的位置、速度和加速度;T 为 k 帧图像和 k+1 帧图像之间的时间间隔, 可以当作白噪声处理。写成Tak矩阵形式如下:系统状态方程为: Tavxvxkkk 0101卡尔曼滤波器系统状态矢量为: TkkxX
8、状态转移矩阵为: 10)(H系统动态噪声矢量为: Tawk系统观测方程为: kkvxx01卡尔曼滤波器系统观测矢量为: kZ观测系数矩阵为:01kH由观测方程可知,观测噪声为 0,所以 =0。kR建立了上述系统状态方程和观测方程之后,就可以利用卡尔曼滤波方程式通过递推方法,不断预测目标在下一帧中的位置。在 t=k 时刻,对第 k 帧图像利用目标识别算法识别出的目标位置记为 ,当目标首次出现时,根据此时目kx标的观测位置初始化滤波器 = ,0。0X系统初始状态向量协方差矩阵可以在对角线上取较大值,取值根据实际测量情况来获得,但在滤波启动一段时间后影响就不大了。取:。100P系统动态噪声协方差为 ,可取为:0Q。100Q通过公式(1),计算得到目标在下一帧图像中的预测位置 。在该位置附近,1X对下一帧图像进行局部搜索,识别出的目标质心位置即为 ,通过公式(2) 至公Z式(5)完成对状态向量和状态向量协方差矩阵的更新,为目标位置的下一步预测做好准备,得出新的预测位置 ,采用图像处理算法,在该位置进行局部搜2X索,从而得出新的目标质心位置 ,一直迭代计算下去,从而实现对目标物体Z的跟踪。