卡尔曼滤波、粒子滤波的形象理解

卡尔曼滤波、粒子滤波的滤波含义

filtering is weighting(滤波即加权)。滤波的作用就是给不同的信号分量不同的权重。

其实卡尔曼、粒子是叫估计器estimator。估计estimate当前值叫滤波filtering,估计过去叫平滑smoothing,估计未来叫预测prediction。不过为了方便,往往就叫滤波器了。

明确一下插值、滤波、预测这三者的区别或许能解答题主的疑惑
插值,就是用过去的数据来拟合过去的数据,比如牛顿插值,拉格朗日插值
滤波,是用当前和过去的数据来求取当前的数据
预测,是指用当前和过去的数据来求取未来的数据

粒子滤波的形象理解

粒子滤波的核心思想是随机采样+重要性重采样。粒子滤波实现物体跟踪的算法原理的粗浅理解如下:

1)初始化阶段-提取跟踪目标特征

该阶段要人工指定跟踪目标,程序计算跟踪目标的特征,比如可以采用目标的颜色特征。具体到Rob Hess的代码,开始时需要人工用鼠标拖动出一个跟踪区域,然后程序自动计算该区域色调(Hue)空间的直方图,即为目标的特征。直方图可以用一个向量来表示,所以目标特征就是一个N*1的向量V。

2)搜索阶段-放狗

好,我们已经掌握了目标的特征,下面放出很多条狗,去搜索目标对象,这里的狗就是粒子particle。狗有很多种放法。比如,a)均匀的放:即在整个图像平面均匀的撒粒子(uniform distribution);b)在上一帧得到的目标附近按照高斯分布来放,可以理解成,靠近目标的地方多放,远离目标的地方少放。Rob Hess的代码用的是后一种方法。狗放出去后,每条狗怎么搜索目标呢?就是按照初始化阶段得到的目标特征(色调直方图,向量V)。每条狗计算它所处的位置处图像的颜色特征,得到一个色调直方图,向量Vi,计算该直方图与目标直方图的相似性。相似性有多种度量,最简单的一种是计算sum(abs(Vi-V)).每条狗算出相似度后再做一次归一化,使得所有的狗得到的相似度加起来等于1.

3)决策阶段

我们放出去的一条条聪明的狗向我们发回报告,“一号狗处图像与目标的相似度是0.3”,“二号狗处图像与目标的相似度是0.02”,“三号狗处图像与目标的相似度是0.0003”,“N号狗处图像与目标的相似度是0.013”…那么目标究竟最可能在哪里呢?我们做次加权平均吧。设N号狗的图像像素坐标是(Xn,Yn),它报告的相似度是Wn,于是目标最可能的像素坐标X = sum(XnWn),Y = sum(YnWn).

4)重采样阶段Resampling

既然我们是在做目标跟踪,一般说来,目标是跑来跑去乱动的。在新的一帧图像里,目标可能在哪里呢?还是让我们放狗搜索吧。但现在应该怎样放狗呢?让我们重温下狗狗们的报告吧。“一号狗处图像与目标的相似度是0.3”,“二号狗处图像与目标的相似度是0.02”,“三号狗处图像与目标的相似度是0.0003”,“N号狗处图像与目标的相似度是0.013”…综合所有狗的报告,一号狗处的相似度最高,三号狗处的相似度最低,于是我们要重新分布警力,正所谓好钢用在刀刃上,我们在相似度最高的狗那里放更多条狗,在相似度最低的狗那里少放狗,甚至把原来那条狗也撤回来。这就是Sampling Importance Resampling,根据重要性重采样(更具重要性重新放狗)。

(2)->(3)->(4)->(2)如是反复循环,即完成了目标的动态跟踪。

MATLAB代码见文献3,C++代码见文献4。

参考文献

  1. https://blog.csdn.net/qq_22201697/article/details/51884520?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog
  2. https://www.cnblogs.com/yangyangcv/archive/2010/05/23/1742263.html
  3. https://www.cnblogs.com/YiXiaoZhou/p/5877398.html
  4. https://blog.csdn.net/jinshengtao/article/details/30970733
卡尔曼滤波是一种用于估计系统状态的递归滤波器,它基于线性系统模型和高斯噪声假设。卡尔曼滤波的原理如下: 1. 预测步骤:根据系统的动态模型和上一时刻的状态估计,通过状态转移方程预测当前时刻的状态和协方差矩阵。 2. 更新步骤:根据测量模型和当前时刻的观测值,通过观测方程计算卡尔曼增益,然后使用该增益来更新状态估计和协方差矩阵。 扩展卡尔曼滤波(Extended Kalman Filter,EKF)是卡尔曼滤波的一种扩展,用于非线性系统的状态估计。它通过在预测和更新步骤中使用线性化的非线性模型来近似非线性系统。具体原理如下: 1. 预测步骤:与卡尔曼滤波相同,使用非线性系统模型进行状态预测。 2. 更新步骤:与卡尔曼滤波不同,使用线性化的非线性观测模型进行状态更新。 粒子滤波(Particle Filter)是一种基于蒙特卡洛方法的滤波器,用于非线性和非高斯系统的状态估计。它通过使用一组粒子来表示状态的后验概率分布,并根据观测值对粒子进行重采样和权重更新来逼近真实的后验概率分布。具体原理如下: 1. 初始化:根据先验概率分布,生成一组初始粒子。 2. 预测步骤:根据系统模型,对每个粒子进行状态预测。 3. 权重更新:根据观测模型,计算每个粒子的权重,并进行归一化。 4. 重采样:根据粒子的权重,进行有放回抽样,生成新的粒子集合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值