粒子滤波到底是怎么得到的?

2020 年 12 月 9 日 计算机视觉life

点击上方“计算机视觉life”,选择“星标”

快速获得最新干货

本文转自3D视觉工坊

一、前言

粒子滤波(particle filter)是一种常见的滤波算法,广泛应用于目标跟踪、移动机器人等领域。网络上有不少关于粒子滤波的资料,但大多是直接给出了粒子滤波的相关公式和证明,或较为直观上的解释。作者在学习粒子滤波的过程中对一些概念和操作时常感到突兀,后来发现想要完整了解粒子滤波,需要首先了解前因,逐渐深入才能理解粒子滤波,而不是直接学习粒子滤波这个方法。
本文将侧重从“粒子滤波是怎么来的”这个问题介绍粒子滤波。限于篇幅与易懂性,对一些概念并没有展开介绍,读者在了解基本思路后可以根据给出的资料深入学习。本文包含了作者自己不严谨的理解与阐述,如有疏漏,望批评指正。

二、对“滤波”的一些介绍

2.1 何为“滤波”?

贝叶斯滤波、卡尔曼滤波、粒子滤波……种种这些滤波方法,都涉及到了“滤波”这个词。那么到底什么是滤波,不同的领域有不同的定义。比如在信号系统领域,滤波是指将信号中特定波段的频率滤除的操作。而在移动机器人领域,我暂时没有看到较为严格的定义。我认为可以姑且理解为:通过不断地观测,使得对目标状态的估计变得更加准确。

2.2 贝叶斯滤波

卡尔曼滤波与粒子滤波都是基于贝叶斯滤波框架下的滤波算法。讲粒子滤波便不得不提贝叶斯滤波。贝叶斯滤波的基本思想是根据上一时刻的状态对当前状态进行预测,并根据此时的观测进行更新。基本算法是:
(图片来源:《概率机器人》)
可以看出,在预测部分需要求一个积分,而这个积分往往很难求。所以显有方法可以直接利用原始的贝叶斯进行处理。

2.3 卡尔曼滤波

卡尔曼滤波也是非常庞大的一块内容,这里不展开介绍。只在这里说明,卡尔曼滤波是贝叶斯滤波在线性高斯系统下的一种滤波算法。而对于非线性系统,则衍生出来了扩展卡尔曼滤波。同时指出,无论是卡尔曼还是扩展卡尔曼滤波,都是参数化的滤波方法,对于无法用参数化进行表示的,则采用粒子滤波。粒子滤波是一种无参的滤波算法。

三、积分计算:从蒙特卡洛说起

3.1 分段近似法求积分

3.2 蒙特卡洛采样求积分

(此处略过蒙特卡洛基本原理)

3.2.1 简单的均匀采样

求积分和求期望是相同的。假设我们对一个分布求取积分,采用最简单的采样方式——均匀采样。我们求取在x满足均匀分布u(x)时,f(x)在[a,b]的期望I。按照分布u(x)进行N次随机采样:

可以发现最后一项对f(x)的积分,就是x的期望。所以我们可以发现,当我们按照均匀分布u(x)对x进行大量采样,计算对应的f(x)的平均值,就是f(x)的积分。

3.2.2 任意分布的采样

下面我们研究,如果不是按照均匀分布u(x)采样,而是任意分布p(x)进行采样,结果如何。此时

依旧与原始的积分相同。所以我们得出了重要的结论:在蒙特卡洛时,我们可以按照任意分布进行采样,再计算对应f(x)的积分。

这一点很好理解,如果我们选择的分布p(x)就是真实的分布,那么我们从p(x)进行采样,就和直接从真实分布进行采样是一样的,积分结果当然是没有误差的。这提醒我们,在选取p(x)分布时要尽可能的与实际分布接近,从而极大程度的降低方差,从而减少需要采样的数量。

四、重要性采样与序列重要性采样

4.1 重要性采样(Importance Sampling, IS)

4.2 序列重要性采样(Sequential Importance Sampling, SIS)

4.3 重采样(Resampling)

在实际过程中,我们发现利用权重更新公式进行更新时,在几次迭代之后,权重的分布会极其不均匀,出现个别粒子权重很大接近于1,而其他的都接近于0的情况。这时候采用了一种“重采样”策略,即每次权重更新之后,根据当前权重对所有粒子进行重采样,之后将所有权重设定为相同。这样我们用粒子的数量代替了粒子的权重,避免了权重的不均匀。

5. 粒子滤波(Particle Filter)

此时对权重更新公式进行变形(在不产生歧义情况下部分内容用点省略):

6. 总结

本文首先从滤波问题说起,指出了贝叶斯滤波框架下积分很难求的问题。由此引出蒙特卡洛方法。之后为了降低误差、减少运算量和避免权重集中,对应出现了重要性采样、序列重要性采样与重采样,顺理成章的得出了粒子滤波的数学原理,之后给出了对应的物理模型。最后给出了简单的粒子滤波的完整算法。
作者希望通过本文,能够使得大家对粒子滤波的学习有一个完整的认识,知道粒子滤波之前有什么,而不是上来就对着资料直接学习粒子滤波本身。网络上的学习资料甚多,在这里只推荐一个:徐亦达机器学习Particle Filter: https://www.bilibili.com/video/BV1xW411N7f1?p=1 。耐心看完,会有收获。
本文仅做学术分享,如有侵权,请联系删文。

从0到1学习SLAM,戳↓

学习SLAM的小伙伴,那些年有没有哭晕在厕所?



专辑:计算机视觉方向简介

专辑:视觉SLAM入门

专辑:最新SLAM/三维视觉论文/开源

专辑:三维视觉/SLAM公开课

专辑:深度相机原理及应用

专辑:手机双摄头技术解析与应用

专辑:相机标定

专辑:全景相机

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

投稿、合作也欢迎联系:simiter@126.com

扫描关注视频号,看最新技术落地及开源方案视频秀 ↓


登录查看更多
1

相关内容

所谓粒子滤波就是指:通过寻找一组在状态空间中传播的随机样本来近似的表示概率密度函数,用样本均值代替积分运算,进而获得系统状态的最小方差估计的过程,这些样本被形象的称为"粒子",故而叫粒子滤波。
专知会员服务
52+阅读 · 2020年12月24日
专知会员服务
81+阅读 · 2020年12月11日
【经典书】微积分导论第二卷,632页pdf
专知会员服务
72+阅读 · 2020年11月5日
专知会员服务
71+阅读 · 2020年8月25日
【2020 最新论文】对比学习中什么应该不是对比的?
专知会员服务
38+阅读 · 2020年8月16日
【ICML2020Tutorial】机器学习信号处理,100页ppt
专知会员服务
109+阅读 · 2020年8月15日
耶鲁大学《分布式系统理论》笔记,491页pdf
专知会员服务
44+阅读 · 2020年7月29日
专知会员服务
41+阅读 · 2020年7月29日
少标签数据学习,54页ppt
专知会员服务
194+阅读 · 2020年5月22日
【经典书】贝叶斯编程,378页pdf,Bayesian Programming
专知会员服务
244+阅读 · 2020年5月18日
求解稀疏优化问题——半光滑牛顿方法
极市平台
41+阅读 · 2019年11月30日
自动驾驶高精度定位如何在复杂环境进行
智能交通技术
18+阅读 · 2019年9月27日
面试题:Word2Vec中为什么使用负采样?
七月在线实验室
46+阅读 · 2019年5月16日
最近一年语义SLAM有哪些代表性工作?
计算机视觉life
6+阅读 · 2019年1月7日
【泡泡读者来稿】一步步深入了解S-MSCKF(二)
泡泡机器人SLAM
9+阅读 · 2018年10月25日
一文了解采样方法
AI100
5+阅读 · 2018年7月6日
从零开始学习「张氏相机标定法」(四)优化算法前传
计算机视觉life
4+阅读 · 2018年3月14日
EKF常用于目标跟踪系统的扩展卡尔曼滤波器
无人机
9+阅读 · 2017年7月25日
Arxiv
11+阅读 · 2018年7月8日
Arxiv
4+阅读 · 2018年6月1日
VIP会员
相关VIP内容
专知会员服务
52+阅读 · 2020年12月24日
专知会员服务
81+阅读 · 2020年12月11日
【经典书】微积分导论第二卷,632页pdf
专知会员服务
72+阅读 · 2020年11月5日
专知会员服务
71+阅读 · 2020年8月25日
【2020 最新论文】对比学习中什么应该不是对比的?
专知会员服务
38+阅读 · 2020年8月16日
【ICML2020Tutorial】机器学习信号处理,100页ppt
专知会员服务
109+阅读 · 2020年8月15日
耶鲁大学《分布式系统理论》笔记,491页pdf
专知会员服务
44+阅读 · 2020年7月29日
专知会员服务
41+阅读 · 2020年7月29日
少标签数据学习,54页ppt
专知会员服务
194+阅读 · 2020年5月22日
【经典书】贝叶斯编程,378页pdf,Bayesian Programming
专知会员服务
244+阅读 · 2020年5月18日
相关资讯
求解稀疏优化问题——半光滑牛顿方法
极市平台
41+阅读 · 2019年11月30日
自动驾驶高精度定位如何在复杂环境进行
智能交通技术
18+阅读 · 2019年9月27日
面试题:Word2Vec中为什么使用负采样?
七月在线实验室
46+阅读 · 2019年5月16日
最近一年语义SLAM有哪些代表性工作?
计算机视觉life
6+阅读 · 2019年1月7日
【泡泡读者来稿】一步步深入了解S-MSCKF(二)
泡泡机器人SLAM
9+阅读 · 2018年10月25日
一文了解采样方法
AI100
5+阅读 · 2018年7月6日
从零开始学习「张氏相机标定法」(四)优化算法前传
计算机视觉life
4+阅读 · 2018年3月14日
EKF常用于目标跟踪系统的扩展卡尔曼滤波器
无人机
9+阅读 · 2017年7月25日
Top
微信扫码咨询专知VIP会员