高斯滤波知识点总结——KF、EKF、UKF以及IF、EIF等

1 引言

本文是我在学习《Probabilistic Robotics 》这本书中第三章——高斯滤波过程中的一些知识总结。本文主要是整理高斯滤波算法的知识点和一些讨论,具体算法推导步骤请查阅上面所提到的这本书《Probabilistic Robotics 》,里面有非常详细的推导过程。
本章内容主要描述了一个重要的递归状态估计器家族,统称为高斯滤波(Gaussian filter)。所有的高斯技术共享了基本思想,即置信度用多元正态分布表示。因为高斯函数是单峰的,有单一的极大值,这样的后验概率是机器人学中很多跟踪问题的特点,后验以小的不确定性狙聚集在真实状态周围。对很多全局估计问题,由于许多很不同的假设存在,每一个假设都形成其自己的后验模式,因此高斯后验匹配性并不好。
下文主要总结两种最基本的高斯滤波算法,即卡尔曼滤波(KF)和信息滤波(IF)。KF和IF都是针对线性高斯系统的,在此基础上,将KF扩展到非线性问题中,从而得到扩展卡尔曼滤波(EKF)和无迹卡尔曼滤波(UKF)等;后者则得到扩展信息滤波(EIF)等。

2 线性高斯系统

这里首先介绍一下线性高斯系统。KF是由Swerling(1958)和Kalman(1960)作为线性高斯系统(linear Gaussian system)中预测和滤波技术而发明的,是用矩来定义的。KF实现了对连续状态的置信度计算,它不适用于离散或者混合状态空间。
KF 用矩参数表示置信度(置信度反映了机器人有关环境状态的内部信息。因为状态是不能直接测量的。概率机器人通过条件概率分布表示置信度):在时刻t, 置信度用均值μ, 和方差Σ_t表达。如果除了贝叶斯滤波的马尔可夫假设以外,还具有如下三个特性,则后验就是高斯(Gaussian) 的:

  • 状态转移概率P(x_t | u_t,x_t-1)必须是带有随机高斯噪声的参数的线性函数,可由下式表示:
  • 测量概率P(Z_t | x_t)也与带有高斯噪声的自变量呈线性关系:
  • 最后,初始置信度bel(x_0)必须是正态分布的。这里用μ_0表示置信度的均值,用Σ_0表示方差:

    这三个假设足以确保后验bel(x_t) 在任何时刻t 总符合高斯分布.

3 卡尔曼滤波

3.1 卡尔曼滤波算法

卡尔曼滤波主要分为两部分:第一部分——预测;第二部分:量测更新

3.2 卡尔曼滤波算法的讨论

  • 卡尔曼滤波算法的输入为t-1时刻的置信度,其均值和协方差用μ_t-1 和Σ_t-1 表示。首先由2和3式通过运动方程计算t时刻的预测的置信度;然后通过综合观测方程,用4、5、6式将置信度顺序地转换成t时刻期望的置信度;最后输出t时刻的置信度,其均值和协方差用μ_t和Σ_t表示。
  • 对于高斯噪声的线性系统,卡尔曼滤波器是最优线性无偏估计(best linear unbiased estimate,BLUE)。这意味着它给出的解的协方差矩阵正位于克拉美罗下界(CRLB)(克拉美罗下界是衡量一个无偏估计器是否有效的重要工具,也就是说,给定一个无偏估计器,我们可以利用克拉美-罗下界去判断这个估计器是否是最优的)处。
  • 卡尔曼滤波必须要有初始状态。
  • 卡尔曼滤波计算是相当高效的。

最后给出KF算法的图例是一个简单的一维定位案例。

4 扩展卡尔曼滤波

4.1 扩展卡尔曼滤波算法

扩展卡尔曼滤波(Extended Kalman Filter, EKF)利用**(一阶)泰勒展开(Taylor expansion) 实现线性化方法**。泰勒展开根据g和h 的值和斜率构造一个函数g 和h的线性近似函数。

4.2 扩展卡尔曼滤波算法的讨论

  • EKF放宽了一个假设:线性化假设。这里假设状态转移概率和测量概率均为非线性函数。线性化的主要优点在于于既简单又有较高的计算效率。
  • EKF 计算真实置信度的高斯近似值。EKF 从KF 继承了基本的置信度表示,但是它又不同,因为这个置信度只是一个近似值,而不如KF 情况下的精确。因此, EKF 的目标就从计算精确的后验概率转变为有效地估计其均值和方差。
  • EKF适用于各种传感器形式,易于做多传感器融合。
  • EKF的缺点也较为明显:(1)一阶马尔可夫假设过于简单(2)要求数据不能有外点,否则可能会发散;(3)对于非线性较强的情况,线性化误差较大。
    下图给出了这个通过泰勒展开的线性化基本概念。(线性化通过一个在高斯函数的均值处与非线性函数g 相切的线性函数去近似g (右上图虚线所示)。将高斯通过这个线性近似映射成一个高斯密度,如左上图虚线所示。左上图的实线表示蒙特卡罗近似的均值和方差。这两个高斯函数之间的不匹配是由g 的线性近似而引起的误差。)

5 无迹卡尔曼滤波

5.1 无迹卡尔曼滤波算法

无迹卡尔曼滤波(Unscented Kalman Filter, UKF) , 它通过使用加权统计线性回归过程实现随机线性化

5.2 无迹卡尔曼滤波算法的讨论

  • UKF 算法的渐近复杂性与EKF 的相同。实际上, EKF 往往比UKF 稍快一些。即使被常数因子减缓, UKF 仍然是非常高效的。并且, UKF 继承了线性无迹变换的优点。对于纯线性系统,由UKF 产生的估计与由卡尔曼滤波产生的估计是相同的。对于非线性系统, UKF 的结果与EKF 的结果相同或者比后者要好,EKF 的改进依赖非线性和先验状态不确定性的范围。在许多实际应用中, EKF和UKF 之间的差异不大。
  • UKF 的另一个优点是,它不需要计算雅可比矩阵,而雅可比矩阵在某些领域是很难确定的。因此UKF 也经常被认为是免求导滤波器(derivative-free filter) 。

下图给出了UKF的线性化示例。

下图给出了UKF 和EKF 近似之间的对比,依据的是函数g 的非线性特性。正如这里看到的,无迹变换比由EKF 采用的泰勒级数一阶展开要精确。事实上,可以证明无迹变换与泰勒级数展开的前两项精度相同,但EKF 只取了前一项。但是,应该注意, EKF 和UKF 都可以通过采用更高阶项进行修正。

6 信息滤波

6.1 信息滤波算法

6.2 信息滤波算法的讨论

  • 卡尔曼滤波(KF) 的对偶滤波算法就是信息滤波(Information Filter, IF)。标 准的IF 具有和KF 相同的假设。KF 和IF 之间的主要不同源于高斯置信度表示的方式。对于一系列KF 算法,高斯分布都由它们的矩(均值、协方差)表示, IF以正则参数表示高斯分布,该正则参数由一个信息矩阵和信息向量组成。参数的不同导致了不同的更新等式。具体来说,对一个参数计算是复杂的,而对另一个参数的计算可能是简单的(反之亦然)。正则参数和矩参数经常被认为是对偶的, IF 和KF 也是如此。

7 扩展信息滤波

7.1 扩展信息滤波算法

7.2 扩展信息滤波算法的讨论

  • 扩展信息滤波(Extended Information Filter, EIF) 将信息滤波扩展到非线性情况。与EKF 一样,它也是信息滤波的非线性扩展。

总结


KF与IF的对比讨论

  • 在IF 中表示全局不确定性是很简单的:简单地设置n =0。当使用矩参数时,这样的全局不确定性意味着无限大的方差。当传感器测量携带的信息是有关所有状态变量的一个严格子集时,这就很成间题,而这种情况在机器人学中是要经常面对的。各种EKF 是做了特殊规定来处理此类情况。IF 往往比KF 更稳定。
  • IF 及其几种扩展方法使机器人能够进行信息整合,而不是立即将信息转化成概率。这在涉及成百甚至更多变量的复杂估计问题时具有很大的优势。对这样的大间题, KF 的整合引出几个计算问题,因为任何新的信息流都需要通过大系统的变最来传播。对IF 进行适当的修改,通过简单地将新的信息局部地添加到系统可避开这个问题。
  • IF 相对KF 的另一个优点源于它对多机器人间题的自然适应性。多机器人问题经常涉及将分散采集的传感器数据进行融合。这样的融合通常由贝叶斯准则完成。当用对数形式表示时,贝叶斯准则变成了加法。如上文所述, IF 的正则参数将概率以对数形式表示。因此,信息融合通过将多机器人的信息相加来获得。因此, IF 经常能以完全分散的形式,以任意时延、任意顺序进行信息融合。虽然利用矩参数也可能做到-毕竟它们表示同样的信息,但这样做必要的开销要高得多。尽管有这样的优势,但IF 在多机器人系统的应用仍有很多未开发的部分。
  • IF 的优势被某些重要的局限性所抵消。EIF 的主要缺点就是应用于非线性系统时,在更新这一步骤中需要重新获得状态估计。如果如此实现的话,需要信息 矩阵的逆。在IF 的预测步骤需要更多的矩阵求逆。在许多机器入问题中, EKF不涉及同等规模的矩阵求逆。对高维状态空间,一般认为在计算上IF 逊色于KF 。这就是为什么EKF 比EIF 更受欢迎的原因之一。

高斯滤波知识点总结——KF、EKF、UKF以及IF、EIF等相关推荐

  1. INS/GNSS组合导航(四)卡尔曼滤波比较之KF/EKF/UKF/PF

    1.摘要 卡尔曼滤波自1960年代发表至今,在各个时间序列估计领域尤其是位置估计.惯性导航等得到了广泛的应用,后续逐渐演化出EKF.UKF以及PF,本文重点对比KF.EKF与UKF及PF的差异及演化来 ...

  2. 运动目标跟踪(一)--搜索算法预测模型之KF,EKF,UKF

    这里先总体介绍下,原文转自: http://www.cnblogs.com/gaoxiang12/p/5560360.html 任何传感器,激光也好,视觉也好,整个SLAM系统也好,要解决的问题只有一 ...

  3. 运动目标跟踪(五)--搜索算法预测模型之PF,KF,EKF,UKF比较总结

     http://blog.sina.com.cn/s/blog_7dc49c690100t9dv.html [转载] 之前一直在做移动机器人定位算法.查来查去,发觉粒子滤波算法(又叫MC算法)应该 ...

  4. 常见滤波汇总(KF、EKF、UKF和PF)

    1.KF 无人驾驶技术入门(十三)| 手把手教你写卡尔曼滤波器 2.EKF 无人驾驶技术入门(十八)| 手把手教你写扩展卡尔曼滤波器 3.PF 无人驾驶技术入门(二十)| 手把手教你用粒子滤波实现无人 ...

  5. 卡尔曼滤波算法原理(KF,EKF,AKF,UKF)

    卡尔曼滤波算法原理(KF,EKF,AKF,UKF) 主要是KF.EKF.UKF算法公式推导,直接看公式会比较枯燥,建议推导一下. 新增文章卡尔曼运动模型公式推导CTRV+CTRA,主要是EKF的CTR ...

  6. 【滤波跟踪】基于EKF、UPF、PF、EPF、UPF多种卡尔曼滤波实现航迹滤波跟踪matlab源码

    1. 使用卡尔曼滤波器的目的 我们假设你建造了一个可以在树林里行走的小机器人,为了精准的进行导航,机器人需要每时每刻都知道它自己的位置 我们用符号来表示机器人的状态变量,在此处我们假设状态变量只包含机 ...

  7. Python 图像处理 | 图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波

    作者 | 杨秀璋,责编 | 夕颜 题图  | 视觉中国 出品 | CSDN博客 本篇文章主要讲解Python调用OpenCV实现图像平滑,包括四个算法:均值滤波.方框滤波.高斯滤波和中值滤波.全文均是 ...

  8. 【图像处理】【计算机视觉】线性邻域滤波专场:方框滤波、均值滤波与高斯滤波...

    首先注意点:关于OpenCV中的函数,有老的数据结构,还有新的opencv2的数据结构,一般地区别就是IplImage*与Mat的区别,两者大致分别对应着C和C++内的两个功能一样,但是函数名称有别. ...

  9. SIFT四部曲之——高斯滤波

    版权声明:本文为博主原创文章,未经博主允许不得转载.博客不用于商业活动,博主对博客的使用,拥有最终解释权  本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权  欢 ...

最新文章

  1. python将txt转换为csv_Python Pandas 三行代码将 txt 文件转换成 csv 文件
  2. 浅析C#基于TCP协议的SCOKET通信
  3. 使用Lombok简化开发及无效解决方案
  4. asp 强制转换浮点数值_C/C++中浮点数的编码存储
  5. [html] HTML5的Geolocation不允许定位后如何于次让它弹起授权定位?
  6. 158 行 Python 代码,复现 DeepMind 递归神经网络 DRAW!
  7. c/c++ static
  8. Matlab图形修饰之视点处理
  9. Android图片加载那些事(一)-实现加载手机中的所有图片
  10. Java程序员年薪40W是什么水平?税前还是税后?
  11. 数字乡村建设浅谈(一):可行性、难点、思考
  12. Django安装教程——4.0(官方文档版)
  13. 鸿合一体机触屏没反应怎么办_电脑一体机触摸屏没反应 触摸屏电脑一体机常见故障解决方法...
  14. 阿里云云服务器ECS介绍
  15. 科技作者吴军:不用低效率的算法做事情
  16. Thinkpad E40 Xp下安装AHCI驱动
  17. python爬虫爬取股票软件数据_Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储(转载)...
  18. Echarts图表之雷达图(一)
  19. [ctfhub]刷题记录
  20. 详解Python正则表达式中group与groups的用法

热门文章

  1. The Sandbox 和 Brinc 公布入选 5000 万美元元宇宙加速器计划的首批初创公司
  2. keil中micro lib
  3. C# / VB.NET 在PPT中创建、编辑PPT SmartArt图形
  4. python打开.mat文件_python怎么打开mat文件?
  5. 【产业互联网周报】神舟十四号载人飞行圆满成功;美法院正式撤销对孟晚舟指控;工信部公布45个国家先进制造业集群名单...
  6. 爬虫逆向——某建筑市场监管平台的滑块验证码分析
  7. 如何查看物理CPU和逻辑CPU
  8. APP全流程框架总结
  9. ncurses库的安装
  10. RTOS如何保证实时性