粒子滤波概述

  粒子滤波器是贝叶斯滤波器的一种非参数执行情况,且经常用于估计一个动态系统的状态。粒子滤波器的关键思想是采用一套假设(即粒子)来表示后验概率,其中每一个假设代表了这个系统可能存在的一种潜在状态。状态假设表示为一个有 \( N \) 个加权随机样本的集合 \(S \) :

\( S=\left \{ < s^{[i]},w^{[i]} > |i=1,2,...,N \right \} \)

  式中: \( s^{[i]}\)是第\( i \)个样本的状态向量;\( w^{[i]}\)是第\( i \)个样本的权重。权重为非0值,且所有权重的总和为1.该样本集合代表如下分布:

\(p\left ( x \right )=\sum_{i=1}^{N}w_{i}\cdot \delta_{s\left [ i \right ]}\left ( x \right )\)

  式中:\(\delta_{s\left [ i \right ]}\)是在第\(i\)个样本的状态\( s^{[i]}\)下的狄拉克函数。样本集\(S\)可用于近似任意分布,这些样本则是从那些被近似的分布中采样而来。为了说明这种近似,下图(1)描述了两种分布及其相应的样本集。一般来说,被用的样本越多,近似越好。粒子滤波器利用一套样本集合对多模态分布模型建模的能力相比于其他系列的滤波器有优势,例如,卡尔曼滤波器近限于高斯分布。

图(1)

  当我们想要对一段时间内一个动态系统的状态进行估计时,可以采用粒子滤波算法。该方法就是在每个时间点采用一套样本,也称为粒子,来表示分布。粒子滤波算法使我们能够在前一段时间估计\(S_{t-1}\)的基础上递归估计出下一时刻的粒子集\(S_{t}\)。基于样本的重要性重采样(Sampling Importance Resampling,SIR)的粒子滤波器可归纳以以下三个步骤:

  1、采样。在先前样本集\(S_{t}\)的基础上创建下一代粒子集\(S^{‘}_{t}\)。这一步也被称作采样或从提议的分布中提取样本。

  2、重要性加权。在集合\(S^{‘}_{t}\)中为每个样本计算一个重要性权重。

  3、重采样。从集合\(S^{‘}_{t}\)中提取\(N\)个样本。其中,粒子被提取的可能性与它的权重成正比。由提取出的粒子获得新的集合\(S_{t}\)。

  接下来将详细地解释这三个步骤。在第一步中,提取样本是为了获取下一个时刻的下一代粒子。一般来说,样本粒子的真实概率分布是未知的活着是一种不适合采样的形式。我们将说明从不同于我们想要近似的分布中提取样本是可能的。这种技术成为重要性采样。

  我们面临计算一个期望值\(x\in A\)的问题,其中\(A\)是一个区域。一般来说一个函数\(f\)的期望\(E_{p}[f(x)]\)定义如下:

\(E_{p}[f(x)]=\int p(x)\cdot f(x)dx\)

  定义一个函数\(B\):如果参数为真,则返回1,否则为0.我们可以通过以下表达式表示\(x \in A\)这个期望:

  \(E_{p}[B(x \in A)]=\int p(x)\cdot B(x \in A)dx\)

\(E_{p}[B(x \in A)]=\int \frac{p(x)}{\pi(x)}\cdot \pi(x)\cdot B(x \in A)dx \)

时间: 2024-10-25 11:24:24

粒子滤波概述的相关文章

基于粒子滤波的目标追踪

基于粒子滤波的目标追踪 particle filter object tracking 读"K. Nummiaro, E. Koller-Meier, L. Van Gool. An adaptive color-based particle filter[J], Image and Vision Computing, 2002"笔记 粒子滤波中最重要的一个过程就是重要性重采样, Sampling Importance Resampling (SIR). 这篇博客基于粒子滤波的物体跟踪

【计算机视觉】粒子滤波跟踪

粒子滤波步骤 1.初始化随机选取N个点,权重统一赋值1/N 2.选取目标特征,颜色直方图等等,用于获取先验概率密度,对比相似度 3.确定状态转移矩阵,用于预测下一帧目标位置 循环开始 4.根据状态转移矩阵,对每个粒子,预测目标新位置 5.获得系统观测值,计算观测位置处特征 6.计算每个预测位置处特征,与观测处位置特征对比,相似度高的赋予较大的权重,反之,赋予较小的权重 7.对粒子加权获取当前的目标最佳位置 8.粒子重采样 循环结束 上面是我自己的理解,有些问题仍然不明白: 1.都有观测值了还修正

粒子滤波终结版

现实案例:美式橄榄球比赛画面的一段,在屏幕上指点一个区域比如计算颜色特征或空间轮廓特征等等,然后跟踪框跟踪目标 粒子滤波算法思想源于蒙特卡洛思想,以事件出现的频率代替该事件的概率,在粒子滤波算法中,凡是用到概率的地方都用离散化采样,通过大量的采样分布来近似表示,此法优点是可以处理任意形式的概率.我们的目的就是让预测粒子接近真实状态. 1)初始化阶段-提取跟踪目标特征 该阶段要人工指定跟踪目标,程序计算跟踪目标的特征,比如可以采用目标的颜色特征.具体到Rob Hess的代码,开始时需要人工用鼠标拖

一维粒子滤波纯代码

%一维粒子滤波代码 %状态方程:x(k)=x(k-1)/2+25*x(k-1)/(1+x(k-1)^2)+8cos(1.2(k-1))+vk;vk为噪声 %测量方程:y(k)=x(k)^2/20+nk;nk为噪声 %初始化时的状态 x0=0.1; %过程噪声的协方差,且其均值为0 Q=1; %测量噪声的协方差,且其均值为0 R=1; %仿真步数 simu_steps=70; %粒子滤波中的粒子数 N=100; %初始化分布的方差 V=2; %初始化粒子滤波的估计值与初始状态一致 x_estima

粒子滤波

跟着博主http://blog.csdn.net/heyijia0327/article/details/40899819一起学习 尽管利用高斯逼近能有效解决许多滤波问题,但当滤波分布为多模型或某些状态为离散时,高斯逼近将不再适用.在这种情况下,可选择基于序贯重要性重采样的粒子滤波,该方法通过蒙特卡洛逼近得到贝叶斯滤波方程的解. 在学习过程中,不好理解的地方,比如:理论推导过程中那么多概率公式,概率怎么和系统的状态变量对应上的?状态粒子xk是怎么一步步采样出来的,为什么程序里面都是直接用状态方程

基于粒子滤波的物体跟踪

先上图: Rob Hess(http://web.engr.oregonstate.edu/~hess/)实现的这个粒子滤波. 从代码入手,一下子就明白了粒子滤波的原理. 根据维基百科上对粒子滤波的介绍(http://en.wikipedia.org/wiki/Particle_filter),粒子滤波其实有很多变种,Rob Hess实现的这种应该是最基本的一种,Sampling Importance Resampling (SIR),根据重要性重采样. 算法原理的粗浅理解: 1)初始化阶段-提

从贝叶斯到粒子滤波——Round 2

粒子滤波确实是一个挺复杂的东西,从接触粒子滤波到现在半个多月,博主哦勒哇看了N多篇文章,查略了嗨多资料,很多内容都是看了又看,细细斟酌.今日,便在这里验证一下自己的修炼成果,请各位英雄好汉多多指教. 讲粒子滤波之前,还得先讲一个叫”贝叶斯滤波”的东西,因为粒子滤波是建立在贝叶斯滤波的基础上的哩.说太多抽象的东西也很难懂,以目标跟踪为例,直接来看这东西是怎么回事吧: 1. 首先咋们建立一个动态系统,用来描述跟踪目标在连续时间序列上的变换情况.简单一点,我们就使用目标的位置(x,y)作为这个动态系统

二维粒子滤波纯代码

% 参数设置 N = 100; %粒子总数 Q = 5; %过程噪声 R = 5; %测量噪声 T = 20; %测量时间 theta = pi/T; %旋转角度 distance = 80/T; %每次走的距离 WorldSize = 100; %世界大小 X = zeros(2, T); %存储系统状态 Z = zeros(2, T); %存储系统的观测状态 P = zeros(2, N); %建立粒子群 PCenter = zeros(2, T); %所有粒子的中心位置 w = zeros

学习OpenCV——粒子滤波(网上两篇文章总结)

粒子滤波的理论实在是太美妙了,用一组不同权重的随机状态来逼近复杂的概率密度函数.其再非线性.非高斯系统中具有优良的特性.opencv给出了一个实现,但是没有给出范例,学习过程中发现网络上也找不到.learning opencv一书中有介绍,但距离直接使用还是有些距离.在经过一番坎坷后,终于可以用了,希望对你有帮助. 本文中给出的例子跟 我的另一篇博文是同一个应用例子,都是对二维坐标进行平滑.预测 使用方法: 1.创建并初始化 const int stateNum=4;//状态数 const in