1. particle filter

Sampling Importance Resampling (SIR),根据重要性重采样。下面是我对粒子滤波实现物体跟踪的算法原理的粗浅理解:

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(Xn*Wn),Y = sum(Yn*Wn).

4)重采样阶段Resampling

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

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

根据我的粗浅理解,粒子滤波的核心思想是随机采样+重要性重采样。既然我不知道目标在哪里,那我就随机的撒粒子吧。撒完粒子后,根据特征相似度计算每个粒子的重要性,然后在重要的地方多撒粒子,不重要的地方少撒粒子。所以说粒子滤波较之蒙特卡洛滤波,计算量较小。这个思想和RANSAC算法真是不谋而合。RANSAC的思想也是(比如用在最简单的直线拟合上),既然我不知道直线方程是什么,那我就随机的取两个点先算个直线出来,然后再看有多少点符合我的这条直线。哪条直线能获得最多的点的支持,哪条直线就是目标直线。想法非常简单,但效果很好。

转自:http://www.cnblogs.com/konlil/archive/2012/02/05/2339142.html

2. kalman filter

那么我们就以小兔子的体重作为研究对象吧。假定我每周做一次观察,我有两个办法可以知道兔子的体重,一个是拿体重计来称:或许你有办法一下子就称准兔子的体重(兽医通常都有这办法),但现在为了体现卡尔曼先生理论的魅力,我们假定你的称实在很糟糕,误差很大,或者兔子太调皮,不能老实呆着,弹簧秤因为小兔子的晃动会产生很大误差。尽管有误差,那也是一个不可失去的渠道来得到兔子的体重。还有一个途径是根据书本上的资料,和兔子的年龄,我可以估计一下我的小兔子应该会多重,我们把用称称出来的叫观察量,用资料估计出来的叫估计值,无论是观察值还是估计值显然都是有误差的,假定误差是高斯分布。现在问题就来了,按照书本上说我的兔子该3公斤重,称出来却只有2.5公斤,我究竟该信哪个呢?如果称足够准,兔子足够乖,卡尔曼先生就没有用武之地了呵呵,再强调一下是我们的现状是兔兔不够乖,称还很烂呵呵。在这样恶劣的情景下,卡尔曼先生告诉我们一个办法,仍然可以估计出八九不离十的兔兔体重,这个办法其实也很直白,就是加权平均,把称称出来的结果也就是观测值和按照书本经验估算出来的结果也就是估计值分别加一个权值,再做平均。当然这两个权值加起来是等于一的。也就是说如果你有0.7分相信称出来的体重,那么就只有0.3分相信书上的估计。说到这里大家一定更着急了,究竟该有几分相信书上的,有几分相信我自己称的呢?都怪我的称不争气,没法让我百分一百信赖它,还要根据书上的数据来做调整。好在卡尔曼先生也体会到了我们的苦恼,告诉我们一个办法来决定这个权值,这个办法其实也很直白,就是根据以往的表现来做决定,这其实听起来挺公平的,你以前表现好,我就相信你多一点,权值也就给的高一点,以前表现不好,我就相信你少一点,权值自然给的低一点。那么什么是表现好表现不好呢,表现好意思就是测量结果稳定,方差很小,表现不好就是估计值或观测值不稳定,方差很大。想象你用称称你的哦兔子,第一次1公斤第二次10公斤,第三次5公斤,你会相信你的称吗,但是如果第一次3公斤第二次3.2公斤,第三次2.8公斤,自然我就相信它多一点,给它一个大的权值了。

有了这个权值,下面的事情就很好办了。很显然卡尔曼先生是利用多次观察和估计来达到目的的,我们也只能一步一步地调整我们的观察和估计值,来渐渐达到准确的测量,所以整个算法是递归的,需要多次重复调整的。调整的过程也很简单,就是把实测值(称出来的体重)和估计值(书上得来的体重)比较一下,如果估计值比测量值小,那就把估计值加上他们之间的偏差作为新的估计值,当然前面要加个系数,就是我们前面说的加权系数,这个地方我要写个公式,因为很简单就能说明白

比如我们的观查值是Z,估计值是X, 那么新的估计值就应该是 Xnew  =  X  + K ( Z-X),从这个公式可以看到,如果X估计小了,那么新的估计值会加上一个量K ( Z-X), 如果估计值大了,大过Z了,那么新的估计值就会减去一个量K ( Z-X),这就保证新的估计值一定比现在的准确,一次一次递归下去就会越来越准却了,当然这里面很有作用的也是这个K,也就是我们前面说的权值,书上都把他叫卡尔曼增益。。。(Xnew  =  X  + K ( Z-X) = X ×(1-K) + KZ ,也就是说估计值X的权值是1-k,而观察值Z的权值是k,究竟k 取多大,全看估计值和观察值以前的表现,也就是他们的方差情况了)

转自:http://blog.csdn.net/karen99/article/details/7771743

kalman、particle filter直白理解相关推荐

  1. 对 Error-State Kalman Filter 的理解

    我对 Error-State Kalman Filter 的理解.本文的主要参考文献是 Joan Sola 的 <Quaternion kinematics for the error-stat ...

  2. 高斯粒子滤波matlab,粒子滤波(Particle filter)matlab实现 | 学步园

    粒子滤波是以贝叶斯推理和重要性采样为基本框架的.因此,想要掌握粒子滤波,对于上述两个基本内容必须有一个初步的了解.贝叶斯公式非常perfect,但是在实际问题中,由于变量维数很高,被积函数很难积分,常 ...

  3. Particle Filter Tutorial 粒子滤波:从推导到应用(一)

    前言: 早几年前写博客的时候,编辑公式都是在线网站编辑的,有时候这个网站不稳定,贴的公式看不到.如果有需要,pdf版下载地址点击打开链接,给您阅读带来的不便表示抱歉,祝大家好运. 博主在自主学习粒子滤 ...

  4. Particle Filter 粒子滤波

    Particle Filter 粒子滤波 贝叶斯滤波 重要性采样 Sequential Importance Sampling (SIS) Filter 重采样 Sampling Importance ...

  5. Particle Filter Tutorial 粒子滤波:从推导到应用

    转载自作者白巧克力亦唯心的文章:粒子滤波 文章目录 1.贝叶斯滤波 2.蒙特卡洛采样 3.重要性采样 4.SIS Filter(Sequential Importance Sampling) 5.重采 ...

  6. 粒子滤波 particle filter —从贝叶斯滤波到 粒子滤波—Part-III(重要性采样序贯重要性采样SIS)

    粒子滤波 particle filter -从贝叶斯滤波到粒子滤波-Part-III(重要性采样&序贯重要性采样SIS) 原创不易,路过的各位大佬请点个赞 机动目标跟踪/非线性滤波/传感器融合 ...

  7. Particle Filter Tutorial 粒子滤波:从推导到应用(四)

    六.Sampling Importance Resampling Filter (SIR) SIR滤波器很容易由前面的基本粒子滤波推导出来,只要对粒子的重要性概率密度函数做出特定的选择即可.在SIR中 ...

  8. 论文笔记(十二):Particle Filter Networks: End-to-End Probabilistic Localization From Visual Observations

    Particle Filter Networks: End-to-End Probabilistic Localization From Visual Observations 文章概括 摘要 1. ...

  9. 论文笔记(十四):PoseRBPF: A Rao–Blackwellized Particle Filter for 6-D Object Pose Tracking

    PoseRBPF: A Rao–Blackwellized Particle Filter for 6-D Object Pose Tracking 文章概括 摘要 1. 介绍 2. 相关工作 3. ...

最新文章

  1. ​Arm芯片的新革命在缓缓上演
  2. java se翻译_(翻译)Java SE 8 Lambda 标准库概览(下)
  3. Useful websites for library
  4. spring boot 整合redis实现session共享
  5. 前端学习(3160):react-hello-react之样式的模块化
  6. 前端学习(2916):事件绑定
  7. 李彦宏:“最后一公里”的自动驾驶会提前实现
  8. python机器学习库sklearn——多类、多标签、多输出
  9. Struts标记库与JSTL标记库
  10. echarts label加边框_ECharts 教程 富文本标签 - 闪电教程JSRUN
  11. 从管理的角度如何提高团队工作效率?
  12. Spring_AOP代码修改_Introductions Advisors
  13. 质量功能配置(QFD)矩阵
  14. 通达信筹码循环指标源码 显示吸筹拉升出货的过程
  15. 如何优化传统项目,提高web应用的吞吐量
  16. 各大高权重搜索引擎博客矩阵链轮?
  17. 差分方程MATLAB求冲激响应,用matlab求解某已知的差分方程的单位冲激响应全过程...
  18. Python官网下载
  19. 地铁框架保护的原理_浅析地铁直流框架保护原理及应急处置
  20. 队列的存储结构和常见操作(c 语言实现)

热门文章

  1. Keil MDK526 相同变量 突出显示
  2. spring boot整合vue项目
  3. c#程序设计 习题7.3
  4. geoserver 发布 矢量切片(pbf)并用openlayers 6.14 /leaflet 1.8 加载展示 (三)(小白必备:超详细教程)
  5. mysql 导入大于2m_用phpmyadmin导入大于2M的数据,导入大量数据的方法
  6. 【CJOJ P1096】最佳老农
  7. PTA - 数据库合集51
  8. 极客 Play 玩 Terminal——GitHub 热点速览 Vol.40
  9. CentOS搭建代理服务器
  10. 用GRUB2来实现——坎特伯雷项目 The Canterbury Project