转载粒子滤波PFParticleFil_第1页
转载粒子滤波PFParticleFil_第2页
转载粒子滤波PFParticleFil_第3页
转载粒子滤波PFParticleFil_第4页
转载粒子滤波PFParticleFil_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.转载 粒子滤波 PF Particle Filte原文地址:粒子滤波PF:Particle Filter Geoinformatics粒子滤波PF:Particle Filter的思想基于蒙特卡洛方法Monte Carlo methods,它是利用粒子集来表示概率,可以用在任何形式的状态空间模型上。其核心思想是通过从后验概率中抽取的随机状态粒子来表达其分布,是一种顺序重要性采样法Sequential Importance Sampling。简单来说,粒子滤波法是指通过寻找一组在状态空间传播的随机样本对概率密度函数进展近似,以样本均值代替积分运算,从而获得状态最小方差分布的过程。这里的样本即指

2、粒子,当样本数量N时可以逼近任何形式的概率密度分布。尽管算法中的概率分布只是真实分布的一种近似,但由于非参数化的特点,它摆脱理解决非线性滤波问题时随机量必须满足高斯分布的制约,能表达比高斯模型更广泛的分布,也对变量参数的非线性特性有更强的建模才能。因此,粒子滤波可以比较准确地表达基于观测量和控制量的后验概率分布,可以用于解决SLAM问题。粒子滤波的应用粒子滤波技术在非线性、非高斯系统表现出来的优越性,决定了它的应用范围非常广泛。另外,粒子滤波器的多模态处理才能,也是它应用广泛有原因之一。国际上,粒子滤波已被应用于各个领域。在经济学领域,它被应用在经济数据预测;在军事领域已经被应用于雷达跟踪空中

3、飞行物,空对空、空对地的被动式跟踪;在交通管制领域它被应用在对车或人视频监控;它还用于机器人的全局定位。粒子滤波的缺点虽然粒子滤波算法可以作为解决SLAM问题的有效手段,但是该算法仍然存在着一些问题。其中最主要的问题是需要用大量的样本数量才能很好地近似系统的后验概率密度。机器人面临的环境越复杂,描绘后验概率分布所需要的样本数量就越多,算法的复杂度就越高。因此,可以有效地减少样本数量的自适应采样策略是该算法的重点。另外,重采样阶段会造成样本有效性和多样性的损失,导致样本贫化现象。如何保持粒子的有效性和多样性,抑制样本贫化,也是该算法研究重点。粒子滤波的开展1.MCMC改进策略马尔可夫链蒙特卡洛M

4、CMC方法通过构造Markov链,产生来自目的分布的样本,并且具有很好的收敛性。在SIS的每次迭代中,结合MCMC使粒子可以挪动到不同地方,从而可以防止退化现象,而且Markov链能将粒子推向更接近状态概率密度函数probability density function,PDF的地方,使样本分布更合理。基于MCMC改进策略的方法有许多,常用的有Gibbs采样器和MetropolisHasting方法。2.Unscented粒子滤波器UPFUnscented Kalman滤波器UKF是Julier等人提出的。EKFExtended Kalman Filter使用一阶Taylor展开式逼近非线性项

5、,用高斯分布近似状态分布。UKF类似于EKF,用高斯分布逼近状态分布,但不需要线性化只使用少数几个称为Sigma点的样本。这些点通过非线性模型后,所得均值和方差可以准确到非线性项Taylor展开式的二阶项,从而对非线性滤波精度更高。Merwe等人提出使用UKF产生PF的重要性分布,称为Unscented粒子滤波器UPF,由UKF产生的重要性分布与真实状态PDF的支集重叠部分更大,估计精度更高。3.Rao-Blackwellised粒子滤波器RBPF在高维状态空间中采样时,PF的效率很低。对某些状态空间模型,状态向量的一部分在其余部分的条件下的后验分布可以用解析方法求得,例如某些状态是条件线性高

6、斯模型,可用Kalman滤波器得到条件后验分布,对另外部分状态用PF,从而得到一种混合滤波器,降低了PF采样空间的维数,RBPF样本的重要性权的方差远远低于SIR方法的权的方差,为使用粒子滤波器解决SLAM问题提供了理论根底。而Montemerlo等人在2002年首次将Rao-Blackwellised粒子滤波器应用到机器人SLAM中,并取名为FastSLAM算法。该算法将SLAM问题分解成机器人定位问题和基于位姿估计的环境特征位置估计问题,用粒子滤波算法做整个途径的位姿估计,用EKF估计环境特征的位置,每一个EKF对应一个环境特征。该方法交融EKF和概率方法的优点,既降低了计算的复杂度,又具

7、有较好的鲁棒性。最近几年,粒子方法又出现了一些新的开展,一些领域用传统的分析方法解决不了的问题,如今可以借助基于粒子仿真的方法来解决。在动态系统的模型选择、故障检测、诊断方面,出现了基于粒子的假设检验、粒子多模型、粒子似然度比检测等方法。在参数估计方面,通常把静止的参数作为扩展的状态向量的一部分,但是由于参数是静态的,粒子会很快退化成一个样本,为防止退化,常用的方法有给静态参数人为增加动态噪声以及Kernel平滑方法,而Doucet等提出的点估计方法防止对参数直接采样,在粒子框架下使用最大似然估计ML以及期望值最大EM算法直接估计未知参数。粒子滤波算法。他源于Montecarlo的思想,即以某

8、事件出现的频率来指代该事件的概率。因此在滤波过程中,需要用到概率如Px的地方,一概对变量x采样,以大量采样的分布近似来表示Px。因此,采用此一思想,在滤波过程中粒子滤波可以处理任意形式的概率,而不像Kalman滤波只能处理高斯分布的概率问题。他的一大优势也在于此。再来看对任意如下的状态方程xt=fxt-1,ut,wtyt=hxt,et其中的xt为t时刻状态,ut为控制量,wt和et分别为模型噪声和,观测噪声。前一个当然是状态转移方程,后一个是观测方程。那么对于这么一个问题粒子滤波怎么来从观测yt,和xt-1,ut滤出真实状态xt呢?看看滤波的预估阶段:粒子滤波首先根据xt-1和他的概率分布生成

9、大量的采样,这些采样就称之为粒子。那么这些采样在状态空间中的分布实际上就是xt-1的概率分布了。好,接下来根据状态转移方程加上控制量可以对每一粒子得到一个预测粒子。所有的预测粒子就代表了涉及哪些参数化的东西。进入校正阶段来:有了预测粒子,当然不是所有的预测粒子都能得到我们的时间观测值y对不,越是接近真实状态的粒子,当然获得越有可能获得观测值y对吧。于是我们对所有的粒子得有个评价了,这个评价就是一个条件概率Py|xi,直白的说,这个条件概率代表了假设真实状态xt取第i个粒子xi时获得观测y的概率。令这个条件概率为第i个粒子的权重。如此这般下来,对所有粒子都进展这么一个评价,那么越有可能获得观测y

10、的粒子,当然获得的权重越高。好了预测信息交融在粒子的分布中,观测信息又交融在了每一粒子的权重中。哈哈最后采用重采样算法不知道什么是重采样算法,那就只好翻书去吧,去除低权值的粒子,复制高权值的粒子。所得到的当然就是我们说需要的真实状态xt了,而这些重采样后的粒子,就代表了真实状态的概率分布了。下一轮滤波,再将重采样过后的粒子集输入到状态转移方程中,直接就可以获得预测粒子了。初始状态的问题:咱们一开场对x0一无所知对吧,那咱们就认为x0在全状态空间内平均分布呗。于是初始的采样就平均分布在整个状态空间中。然后将所有采样输入状态转移方程,得到预测粒子。嘿嘿再评价下所有预测粒子的权重,当然我们在整个状态

11、空间中只有部分粒子可以获的高权值咯。马上重采样算法来了,去除低权值的,将下一轮滤波的考虑重点立马缩小到了高权值粒子附近。哈哈就这么简单。也很实用。明白了没?没看糊涂吧哈哈。假设大家看得还不过瘾,后面有根据精彩的阐述。另外lishuai在文中也提到Particle filter的以下特点:假设跟kalman滤波相比,那确实。毕竟kalman滤波可以直接得到状态的解析估计,计算量很小。假设跟Markov定位相比,恰恰与ricky所说相反,粒子滤波计算量小很多,而事实上,粒子滤波被用于定位的背景就是为了降低普通的Markov定位计算量相当大并且随着维数的增长计算量迅速增长的缺陷。Sebastian

12、Thrun,Wolfram burgard,Dieter fox等在90年代做的一个图书馆机器人导航的工程,其中很多当时他们的工作都成了现今机器人研究领域的热点,比方粒子滤波,SLAM等。大家可能有几个疑问,1.Kalman滤波或者EKF都可以做定位并且运算量小,为什么还要用什么Markov定位呢?2.为什么Markov定位计算量大并且随着空间维数的增长而增长剧烈?3.为什么粒子滤波这么神奇,让计算量如此之大的Markov定位运算量骤降?4.到底粒子滤波本质是什么?好,如今就一一谈一下我的看法,1.Kalman滤波或者EKF都可以做定位并且运算量小,为什么还要用什么Markov定位呢?燢 al

13、man滤波是有适用条件的,a。初始状态必须是符合正态分布。b。必须是线性系统。当然,EKF通过将非线性系统线性化的方法处理非线性系统。而真实的定位问题很多时候不满足以上两个条件。为什么不满足呢?先说为什么a不满足:首先举个正态分布无法描绘的反例,大家都知道,正态分布是单峰函数,也就是说机器人初始时位于工作空间中某个位置的初始概率最大,其他地方都比这小。假设是采用地图匹配进展绝对定位,上面描绘的单峰高斯函数可能就无法准确的描绘事实了,比方有十个一模一样的房间。初始时把机器人放在其中一个里面,机器人根据绝对测量传感器获得部分地图,与他携带的先验地图匹配后他发现,他如今呆的位置在他的工作空间中有10

14、个峰值,每个房间一个,因为十个房间一模一样,他无法区分。显然,此时a假设不成立。再说b为什么不满足:这取决于真实机器人的物理特性,系统的状态更新方程是由里程计或者是dead reckon得到的,系统的观测方程是由绝对定位系统或者地图匹配得到的。对于一般的挪动机器人,无论是两个主动轮的形式还是一个主动轮一个steering wheel的形式,由此得到的状态更新方程都是非线性的。2.为什么Markov定位计算量大并且随着空间维数的增长而增长剧烈?Markov定位的根本原理很简单,就是用条件概率描绘状态更新,所有的可能的状态都枚举个遍,对于机器人的每一次更新,所有的可能的状态迁移都要被更新一遍,假设

15、我们用栅格描绘工作空间,假设t时刻机器人可能的位置为p1,p2,p3,在二维情况下采用正方形栅格划分那么p1有8个邻居,记为p11,p12,p13,.,p18.在三维情况下,采用立方体划分那么邻居就更多了,有26个。假设维数继续增加,那么邻居增加的更厉害。这里我们以二维情况为例来阐述问题。同理,我们记p2的邻居为p21,p22,。p28。p3的邻居为p31,p32,。,p38。在t时刻可能的位置只有3个,然而t+1时刻,所有的三个的邻居,以及p1,p2,p3都有可能成为当前位置,但是根据dead reckon的结果,我们可以排除一些小概率的邻居,减少计算量。但是随着时间的推移,整个空间中的所有

16、点都有可能成为估计的当前位置只不过各个位置的概率不同而已。这样,假设不采取措施,那状态的更新会是一件宏大的工程。并且,空间维数越大,节点数越多,计算量增长越厉害。3.为什么粒子滤波这么神奇,让计算量如此之大的Markov定位运算量骤降?粒子滤波强就强在它用统计的基于采样的方法来描绘整个空间中的概率分布。Markov的思想是你既然当前位置的分布概率是个特殊分布,我就干脆把你的样本空间离散化把空间划分为栅格,计算每一个样本的概率计算每一个栅格的概率。但是这带来了问题2.为理解决这个问题,粒子滤波采用了另一种思想:如今我不再均匀的把样本空间离散化了,而是根据我当前所掌握的概率分布对空间进展采样重要性

17、采样,显然,概率小的地方少采几个样反正概率小,即使采多了,每个样本差异也不大,完全可以由附近的其他样本反映;概率高的地方应该多采几个样。这样,我们可以规定,每次都采样N个,对于大概率的地方多采,小概率的地方少采。根据概率里的大数定律,可以证明即使在维数增加的时候仍然保持采N个样,仍然可以保持性能。这就是粒子滤波高的地方,当维数非常高的情况,Markov定位都累的算不出来了,因为需要更新的状态对实在是太多了,而人家粒子滤波仍然只采N个样,计算量还那样,变化不大。4.到底粒子滤波本质是什么?事实上,我们完全可以换一种思维来认识粒子滤波。就是基于奖励惩罚机制强化学习的优化的思想。首先,根据状态转移方

18、程,对于每个粒子的位置进展更新。但是这个更新只是基于dead reckon得到的,我们要交融绝对定位与相对定位,绝对定位的信息还没有交融进去呢。根据状态转移方程得到的新状态到底行不行?能有多大的概率?这还取决于绝对定位的结果也就是输出方程。把状态转移方程的到的结果代入输出方程,得到一个输出,这个输出是估计值,而根据绝对定位的观测,这个值对应的观测值也是可以测量得到的,如今这两个值之间有个差额,很明显,这个差额越小,刚刚的到的状态越可信,这个差额越大,状态越不可信。好,就把这个指标作为评估函数像GA,pso等优化算法里的evaluation function,来修正各个状态的估计概率。总结一下,

19、粒子滤波就是一种基于动态系统前向模型利用奖惩机制估计状态值的一种方法。粒子滤波算法的核心思想是:为了求解数学或物理等方面的问题,首先建立一个概率模型或者随机过程,使它的参数等于问题的解;然后通过对模型或过程的观察或采样试验计算所求参数的统计特征;最后给出所求解的近似值。下面详细介绍粒子滤波的根本思想。粒子滤波就是用完全描绘后验概率密度分布这里,x0:k=xj,j=0,k,z0:k=zj,j=0,k,分别表示各个时刻的系统状态和观测状态,表示j时刻所对应的粒子的归一化权值,即直接从后验概率px0:k|z1:k中进展取样是比较困难的。假设存在x,有并且可以很方便地从x中进展取样,这样的x称作重要性

20、密度。根据贝叶斯理论有:这样,就能很容易对系统状态进展估计,权值的递推方程可以写成:在k时刻的后验概率密度可以近似地写成:1.2粒子滤波算法改进策略传统的粒子滤波算法需要使用状态转移后的所有粒子进展系统观测和重采样。这使得计算量很大,而且增加了错误信息,甚至会导致跟踪目的漂移。鉴于此,笔者对传统的粒子滤波进展了一系列的改进。在对系统观测过程进展改进时,只选取部分最优粒子即权值较大的粒子进展状态转移;在重采样环节,也使用了这种部分最优原理,只选取部分大权值粒子。改进的粒子滤波算法,可以在很大程度上解决上述问题。图1描绘的是状态转移环节,当前时刻所有粒子对应的位置服从均匀分布。图中"&q

21、uot;表示跟踪目的在该时刻的真实位置,黑点表示该时刻的粒子,黑点的大小代表粒子权值的大小。由图发现,离""越近的粒子权值越大,超出1/2粒子传播半径的粒子,权值可忽略。根据这种先验知识,基于部分最优化原理选取部分粒子。当利用粒子进展系统观测时,将粒子按权值大小依次排序,只需选取半数大权值粒子,就能很准确地计算出最优估计的位置。这种改进策略可使该环节的计算量减少40%。由于忽略了远处的粒子,剔除了部分错误信息,因此跟踪精度也得到了进步。粒子重采样环节的改进是分裂粒子时只选取上述的半数大权值粒子。改进的重采样详细实现过程如下:将系统观测过程中使用的粒子,按大小排序均分为两组。

22、权值大的一组,每个粒子分裂为三个新的粒子;权值较小的一组,每个粒子只生成一个新粒子。这样做不但简化了计算,进步了运行速度,而且增强了重采样粒子的有效性。该改进算法的优点:1使得后验分布样本更加接近真实分布;2大大减少了计算量。屡次实验说明,改进算法在人体运动跟踪时较传统算法效果更好,鲁棒性更高。2基于改进粒子滤波算法的人体运动跟踪视频中的特定人体有其独特的运动特征,且其关节运动都是非刚性的。为使运动模型在运动预测中有更好的适用性和更高的准确性,根据统计分析的成果,采用一阶自回归过程ARPAuto-Regressive Process动力学模型作为运动模型,并通过训练序列计算出该模型的参数。在模

23、板区域相似性计算的根底上,通过粒子滤波实现人体运动的跟踪。基于这一根本思路,本文提出基于粒子滤波的人体运动跟踪的流程图,如图2所示。2.1初始化跟踪初始化,就是按运动模型的要求,在初始帧形成表示各自分布模型的粒子集。详细过程如下:在被跟踪序列的初始帧中手动提取目的模板,将它作为起始帧的状态向量。提取目的的初始运动参数在状态向量的各分量上加正态随机噪声,构造N个状态向量,即粒子数为N,每个粒子代表一个可能的运动状态。假设初始的权值i为1,那么具有N个运动状态参数这里Pi选择Pinit附近的点。2.2采样采样就是从表示先验模型的状态向量集中按概率选取其中的假设干向量。一次采样选取一个状态向量,进展N次这样的采样,得到N个新的状态向量。显然,权值太小的状态向量即粒子在采样过程中被选中的概率就小,而且在逐步迭代中可能被丢掉;权值大的粒子被选中的概率就比较大,也可能被屡次选中。这样,采样得到的新的粒子集能更好地估计概率分布。2.3状态转移系统状态转移,即粒子的传播过程。从采样得到的新的粒子集出发,经运动模型计算得到预测模型。粒子传播是一种随机运动过程,服从一阶ARP方程。式中,xt为目的在t时刻的状态,wt-1是归一化噪声量,A和B是常数。这里,t时刻系统的状态转移过程与当前时刻的观测量无关。粒子

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论