粒子滤波终结版

现实案例:美式橄榄球比赛画面的一段,在屏幕上指点一个区域比如计算颜色特征或空间轮廓特征等等,然后跟踪框跟踪目标

粒子滤波算法思想源于蒙特卡洛思想,以事件出现的频率代替该事件的概率,在粒子滤波算法中,凡是用到概率的地方都用离散化采样,通过大量的采样分布来近似表示,此法优点是可以处理任意形式的概率。我们的目的就是让预测粒子接近真实状态。

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

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

2)搜索阶段-放狗

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

3)决策阶段

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

图可以用一个向量来表示,所以目标特征就是一个N*1的向量V。(此阶段可以融合多种信息作为目标特征),当然特征与下图并无联系。此处得到了要跟踪目标的目标直方图

2)搜索阶段-放狗

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

3)决策阶段

我们放出去的一条条聪明的狗向我们发回报告,【此部分需要通过计算概率函数比较粒子所在的与模板的相似度】“一号狗处图像与目标的相似度是0.3”,“二号狗处图像与目标的相似度是0.02”,“三号狗处图像与目标的相似度是0.0003”,“N号狗处图像与目标的相似度是0.013”...那么目标究竟最可能在哪里呢?我们做次加权平均吧。设N号狗的图像像素坐标是(Xn,Yn),它报告的相似度是Wn,于是目标最可能的像素坐标X = sum(Xn*Wn),Y = sum(Yn*Wn).此阶段即重要性加权阶段

此阶段亦可成为校正阶段,前面得到了采样粒子也即预测粒子,获得了粒子就要计算它的权重,即重要性加权。

4)重采样阶段Resampling

此阶段的目的是解决上一阶段粒子集的退化问题,这是因为【2】搜索阶段用重要性函数q代替后验概率分布作为采样函数时,理想情况是重要性函数非常接近后验概率分布,即希望重要性函数的方差基本为零。因此重要性权重的方差随着时间推移随机递增,使得粒子的权重集中到少数粒子上。本阶段要解决粒子集退化问题。

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

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

底端的概率分布曲线表示是任意形状的,初始状态X(0)往往是未知的,于是初始的采样往往是均匀分布的,但随着状态的转移和迭代,粒子状态的概率形状就逐步发生变化,即可能是随意的如图形状。

时间: 2024-08-02 11:00:40

粒子滤波终结版的相关文章

基于粒子滤波的目标追踪

基于粒子滤波的目标追踪 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.都有观测值了还修正

SQL Server数据全同步及价值分析[终结版]

SQL Server数据全同步[终结版] 版权全部.转载请注明出处.谢谢! 经过两天的同步编写和測试.出了第一个Release版本号: 1. 本函数仅支持单向同步.即从一个主数据库想多个从数据库同步 2.主数据库的不论什么增删改都会同步到全部从数据库上 3. 最重要的一点:同步数据库的价值所在:当主数据库server不可用时,程序能够使用其它从数据库或者备用数据库,这对于未来公有云和私有云应用具有重大价值! 代码: <span style="font-size:18px;">

正则表达式及R字符串处理之终结版

转载于: 正则表达式及R字符串处理之终结版 0.动机:为什么学习字符串处理 传统的统计学教育几乎没有告诉过我们,如何进行文本的统计建模分析.然而,我们日常生活中接触到的大部分数据都是以文本的形式存在.文本分析与挖掘在业界中也有着非常广泛的应用. 由于文本数据大多属于非结构化的数据,要想对文本数据进行传统的统计模型分析,必须要经过层层的数据清洗与整理. 今天我们要介绍的『正则表达式及R字符串处理』就是用来干这一种脏活累活的. 与建立酷炫的模型比起来,数据的清洗与整理似乎是一种低档次的工作.如果把建

一维粒子滤波纯代码

%一维粒子滤波代码 %状态方程: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

粒子滤波概述

粒子滤波器是贝叶斯滤波器的一种非参数执行情况,且经常用于估计一个动态系统的状态.粒子滤波器的关键思想是采用一套假设(即粒子)来表示后验概率,其中每一个假设代表了这个系统可能存在的一种潜在状态.状态假设表示为一个有 \( N \) 个加权随机样本的集合 \(S \) : \( S=\left \{ < s^{[i]},w^{[i]} > |i=1,2,...,N \right \} \) 式中: \( s^{[i]}\)是第\( i \)个样本的状态向量:\( w^{[i]}\)是第\( i \

粒子滤波

跟着博主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)作为这个动态系统