从卡尔曼滤波到粒子滤波

【转载】从卡尔曼滤波到粒子滤波

前言

在学习粒子滤波的过程中,看到一篇写的还不错的博客,故记录。
原文链接:http://blog.sina.com.cn/s/blog_6a881de70100pthe.html

从卡尔曼滤波到粒子滤波

这里主要讲计算机视觉范畴下的Kalman Filter(KF)和Particle Filter(PF)。

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

同时,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时刻对系统的控制量。F(dynamic model或transition model)和B(control model)是系统参数,对于state vector维度高于一的系统,他们为矩阵。Z(k)是k时刻的测量值,H 是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance 分别是Q,R。这里要注意区分状态量(state)X(t)和观测量(measurement)Z(t)的区别。比如若state是追踪目标的图像位置(x,y)以及速度v,即state vector是一个三维向量,而观测时可能只能对目标的位置进行直接观测,即观测量是(x,y)这样一个二维向量。这两者的不同,体现在矩阵F和H上。

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

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

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

所以可以总结, KF和PF相同的是,都分为三个步骤:Prediction,Measurement和Assimilation(或称为correction)。只是每步的实现上不同。

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

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

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

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

参考文献

1、卡尔曼滤波器:http://www.china-vision.net/blog/user1/6/2006111115624.html

2、Learning OpenCV — Computer Vision with the OpenCV Library

3、Michael Isard and Andrew Blake,CONDENSATION—Conditional Density Propagation for Visual Tracking,IJCV 1998

4、Michael Isard and Andrew Blake ,Contour Tracking by Stochastic Propagation of Conditional Density,ECCV,1996

5、Aly Merchant, Keir Mierle ,A Simple Implementation of the Condensasion Algorithm,2005

6、Arnaud Doucet , Simon Godsill , Christophe Andrieu ,On Sequential Monte Carlo sampling methods for Bayesian filtering,Statistics and Computing,2000

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值