卡尔曼滤波与粒子滤波(转载)

因需要学习卡尔曼和粒子滤波,转载了本篇文章!!

转载地址:http://skpsun.blog.163.com/blog/static/2760055201010251210841/

         Kalman Filter建立在高斯模型上的,这是说目标的model,即状态噪音的概率密度函数(state probability density)和观察模型(observation model)是高斯分布。Kalman的数学基础是指,将两个高斯模型结合起来时,将得到一个新的高斯模型,并且新高斯模型的参数(均值和方差)可完全由原来两个高斯模型的参数计算得到。应用在时间序列中,就是说,知道了t-1时刻和t时刻state噪音的分布(符合高斯模型),就可算出t+1state的分布。从而实现迭代运算。

同时,Kalman Filter又是线性的,t时刻的state可以由t-1时刻的state经过一个矩阵相乘得到。

前面提到,噪音是高斯白噪音,白噪音是指其分布和时间不相关。噪音分为两个部分,状态量中的噪音和观测量中的噪音。即分别为下述式(1)的W(t)和和式(2)中V(k)

所以在高斯和线性两个假设之下,我们既可以得到state的取值(由线性假设得到),又可以得到state取值的概率密度(由高斯假设得到),这时就可以通过迭代实现对系统每一时刻状态的预测。再结合(assimilate)上观测值,对预测结果纠正,从而实现一个完整的跟随预测系统。也就是说,卡尔曼滤波器就是一个信息融合器,把我们不准确的预测结果和不准确的测量结果融合在一起,得到一个估计结果。

以上过程可由一个线性随机微分方程Linear Stochastic Difference equation来描述
                X(t)=F X(t-1)+B U(t)+W(t) -------------------------
式(1
再加上系统的测量值
                Z(t)=H X(t)+V(t) ------------------------------------
式(2
 两式子中X(k)k时刻的系统状态U(k)k时刻对系统的控制量。Fdynamic modeltransition model)和Bcontrol model)是系统参数,对于state vector维度高于一的系统,他们为矩阵。Z(k)k时刻的测量值,是测量系统的参数,对于多测量系统,H为矩阵。W(k)V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance 分别是QR。这里要注意区分状态量(stateX(t)和观测量(measurementZ(t)的区别。比如若state是追踪目标的图像位置(x,y)以及速度v,即state vector是一个三维向量,而观测时可能只能对目标的位置进行直接观测,即观测量是(x,y)这样一个二维向量。这两者的不同,体现在矩阵FH上。

Kalman Filter中的高斯和线性假设有时并不能满足实际情况,因为高斯模型是单峰的(uni-modal)。比如当一个运动目标被遮挡后,我们不知道它将在遮挡物的后面做什么运动,是继续前进,或是停下,还是转向或后退。这种情况下,Kalman Filter只能给出一个位置的预测,至多加大这个预测的不确定性(即增大协方差矩阵,或,若state是单维度时的方差)。这种情况下,预测位置的不确定噪音事实上已不是高斯模型,它将具有多个峰值(multi-modal)。而且,这种噪音常常无法解析表达。这就引入了Particle Filter

        Particle Filter是基于蒙特卡洛方法(Monte Carlo Method),简言之就是用点来表达概率密度函数。点密集的地方,概率密度就大。在时间序列中,就是时间序列蒙特卡洛(Sequential Monte Carlo)。所以Particle Filter在机器视觉中的应用,称为CONDENSATIONConditional Density Propagation),它和Bootstrap Filter一样,同属于Sequential Monte Carlo范畴。

具体实施上,PFstate的更新不再采用KF中的高斯模型更新,而是采用factored sampling方法。简单说就是对t-1时刻的所有Particle,根据每个Particle的概率,重新对他们采样。高概率的Particle将得到高的采样几率,而低概率的Particle对应低的采样几率。这样,高概率Particle将可能被多次采样,而低概率Particle可能就被放弃。这样得到t时刻的Particle。然后将t时刻每一个Particle所对应的测量值结合起来,为t时刻的Particle重新赋以新的概率,以用于t+1时刻新Particle的生成。

所以可以总结, KFPF相同的是,都分为三个步骤:PredictionMeasurementAssimilation(或称为correction)。只是每步的实现上不同。

Prediction阶段,KF利用高斯模型进行预测,而PF采用factored sampling对原Particle重采样。

Measurement阶段,KF将得到唯一的measurement,而PF将为每一个Particle得到一份measurement

Assimilation阶段,KF将由state计算得到的观测值和实际观测值比较结合,得到更新后的系统参数。而PF通过比较 每个Particle所对应的观测值和模型预测值之间的差别,更新每个Particle的概率。

所以,KFPF最大的不同就在于对状态概率密度函数的表达方式上。KF采用高斯模型,而PF利用用无参数的点来近似。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值