精华内容
下载资源
问答
  • 熵是基于图像的一维灰度直方图得到的,仅利用了像素的灰度信息。最小交叉熵就是要寻找最优阈值使原始图像和分割图像之间的信息...为了提高运算效率,提出了相应的快速递推算法,计算时间由从多于3小时减少到只要几秒。
  • 扩展卡尔曼滤波_无迹卡尔曼滤波_扩展信息滤波_l粒子滤波算法.rar
  • 针对粒子滤波存在退化现象,从围绕增加粒子的多样性和重要性分布函数的选择出发,提出了一种改进的无迹粒子滤波算法.该算法是利用迹卡尔曼滤波产生的近似高斯分布作为重要性密度函数,在每次迭代中,结合马尔科夫链...
  • 针对目前无迹粒子滤波算法(UPF)在城市车载组合导航系统滤波中容易出现粒子贫化及粒子多样性损失等现象,为了克服以上缺陷来提高组合导航定位系统的导航精度和可靠性;将混沌粒子群优化(CPSO)融入UPF算法的重采样过程...
  • 针对机器人导航迹快速同步定位与地图构建(Unscented FastSLAM)算法由于重采样造成样本粒子退化,进而导致估计精度下降的问题,提出一种基于自适应渐消无迹粒子滤波的Unscented FastSLAM算法。该算法无迹粒子...
  • 针对区间量测下目标的实时检测与跟踪问题,提出基于无迹变换的伯努利粒子滤波算法(Bernoulli- Upf).该算法在伯努利粒子滤波算法(Bernoulli-pf)的基础上融合无迹卡尔曼滤波(UKF),融合后的算法在预测步骤产生持续存活...
  • 讲述了自适应无迹粒子滤波的目标跟踪算法
  • 无迹粒子滤波

    2012-01-19 18:49:04
    A NEW UNSCENTED PARTICLE FILTER 2008 一种新的无迹粒子滤波
  • 基于该分布式结构,结合Unscented粒子滤波(UPF)和协方差交集(CI)融合方法设计完成了分布式无迹粒子滤波算法(DUPF-CI),统一了近、中、远程情况下滤波融合算法,仿真结果表明该算法对舰艇编队协同防空可行且...
  • 为了提高三维运动声阵列在有色噪声环境中对二维机动目标的跟踪精度,提出了一种基于测量残差的自适应交互多模型无迹粒子滤波算法。该算法建立了三维运动声阵列跟踪系统动态模型,通过迹变换(unscented ...
  • 针对标准粒子滤波算法存在的粒子退化现象而导致滤波精度低的问题,研究了容积粒子滤波...仿真结果表明,较之于标准粒子滤波和无迹卡尔曼滤波算法,容积粒子滤波算法滤波精确度更高,是一种理想的非线性滤波估计策略.
  • 原始卡尔曼滤波算法(KF)、扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算法(UKF)三者之间的区别? 原文:https://www.zhihu.com/question/22714163/answer/87629897 KF针对于线性高斯的情况,EKF针对于非...

    原始卡尔曼滤波算法(KF)、扩展卡尔曼滤波算法(EKF)以及无迹卡尔曼滤波算法(UKF)三者之间的区别?

    原文:https://www.zhihu.com/question/22714163/answer/87629897

     

    KF针对于线性高斯的情况,EKF针对于非线性高斯,其是将非线性部分进行一阶泰勒展开,因此忽 略了高阶项,误差较大,UKF是将UT变换与KF结合的产物,它的基础理念是接近一个非线性函数的 概率分布非接近其本身更简单。后两种卡尔曼是针对同一问题的不同思路的解决方案,其实UKF的 能力已经跳出了非线性高斯的范围,其也可以解决非高斯问题,只不过在这方面PF能做的更好,运 算量也更大。

     

    1.KF是线性滤波器,不多解释。2.说到非线性卡尔曼滤波器,是由贝叶斯滤波理论得出统一的理论框架:非线性卡尔曼滤波器的状态估计可等效为多维向量积分的计算。积分形式可表示为非线性函数x高斯概率密度函数。但该积分的闭式解很难求解,所以得对高斯加权的多维非线性函数的积分进行近似。近似主要分两大类:非线性函数的近似和高斯概率密度函数的近似。

    非线性函数的近似有基于泰勒级数展开的ekf,基于差分的DDF和多项式卡尔曼(比如 雪夫多项式等)。

    概率密度函数的近似主要有无迹变换(ukf),容积卡尔曼,中心差分卡尔曼,或是把协方差矩阵分解构成基于平方根的卡尔曼滤波器等。所以卡尔曼滤波器都是对后验密度做假设的次优估计。而粒子滤波,高斯混合滤波器,自适应网格点群滤波器等是不对后验概率密度做任何假设的最优估计。不过计算量挺大的。像基于ukf+srcdkf的位置状态估计,在进行时间更新的时候,就需要更新1700多个数据。要是采用粒子滤波计算量就更大……


    图说卡尔曼滤波,一份通俗易懂的教程

    原文:https://zhuanlan.zhihu.com/p/39912633

    作者:Bzarg

    编译:Bot

    编者按:卡尔曼滤波(Kalman filter)是一种高效的自回归滤波器,它能在存在诸多不确定性情况的组合信息中估计动态系统的状态,是一种强大的、通用性极强的工具。它的提出者,鲁道夫.E.卡尔曼,在一次访问NASA埃姆斯研究中心时,发现这种方法能帮助解决阿波罗计划的轨道预测问题,后来NASA在阿波罗飞船的导航系统中确实也用到了这个滤波器。最终,飞船正确驶向月球,完成了人类历史上的第一次登月。

    本文是国外博主Bzarg在2015年写的一篇图解。虽然是几年前的文章,但是动态定位、自动导航、时间序列模型、卫星导航——卡尔曼滤波的应用范围依然非常广。那么,作为软件工程师和机器学习工程师,你真的了解卡尔曼滤波吗?

    什么是卡尔曼滤波?

    对于这个滤波器,我们几乎可以下这么一个定论:只要是存在不确定信息的动态系统,卡尔曼滤波就可以对系统下一步要做什么做出有根据的推测。即便有噪声信息干扰,卡尔曼滤波通常也能很好的弄清楚究竟发生了什么,找出现象间不易察觉的相关性。

    因此卡尔曼滤波非常适合不断变化的系统,它的优点还有内存占用较小(只需保留前一个状态)、速度快,是实时问题和嵌入式系统的理想选择。

    如果你曾经Google过卡尔曼滤波的教程(如今有一点点改善),你会发现相关的算法教程非常可怕,而且也没具体说清楚是什么。事实上,卡尔曼滤波很简单,如果我们以正确的方式看它,理解是很水到渠成的事。

    本文会用大量清晰、美观的图片和颜色来解释这个概念,读者只需具备概率论和矩阵的一般基础知识。

    我们能用卡尔曼滤波做什么?

    让我们举个例子:你造了一个可以在树林里四处溜达的小机器人,为了让它实现导航,机器人需要知道自己所处的位置。

    也就是说,机器人有一个包含位置信息和速度信息的状态 [公式] :

    注意,在这个例子中,状态是位置和速度,放进其他问题里,它也可以是水箱里的液体体积、汽车引擎温度、触摸板上指尖的位置,或者其他任何数据。

    我们的小机器人装有GPS传感器,定位精度10米。虽然一般来说这点精度够用了,但我们希望它的定位误差能再小点,毕竟树林里到处都是土坑和陡坡,如果机器人稍稍偏了那么几米,它就有可能滚落山坡。所以GPS提供的信息还不够充分。

    我们也可以预测机器人是怎么移动的:它会把指令发送给控制轮子的马达,如果这一刻它始终朝一个方向前进,没有遇到任何障碍物,那么下一刻它可能会继续坚持这个路线。但是机器人对自己的状态不是全知的:它可能会逆风行驶,轮子打滑,滚落颠簸地形……所以车轮转动次数并不能完全代表实际行驶距离,基于这个距离的预测也不完美。

    这个问题下,GPS为我们提供了一些关于状态的信息,但那是间接的、不准确的;我们的预测提供了关于机器人轨迹的信息,但那也是间接的、不准确的。

    但以上就是我们能够获得的全部信息,在它们的基础上,我们是否能给出一个完整预测,让它的准确度比机器人搜集的单次预测汇总更高?用了卡尔曼滤波,这个问题可以迎刃而解。

    卡尔曼滤波眼里的机器人问题

    还是上面这个问题,我们有一个状态,它和速度、位置有关:

    我们不知道它们的实际值是多少,但掌握着一些速度和位置的可能组合,其中某些组合的可能性更高:

    卡尔曼滤波假设两个变量(在我们的例子里是位置和速度)都应该是随机的,而且符合高斯分布。每个变量都有一个均值 [公式] ,它是随机分布的中心;有一个方差 [公式] ,它衡量组合的不确定性。

    在上图中,位置和速度是不相关的,这意味着我们不能从一个变量推测另一个变量。

    那么如果位置和速度相关呢?如下图所示,机器人前往特定位置的可能性取决于它拥有的速度。

    这不难理解,如果基于旧位置估计新位置,我们会产生这两个结论:如果速度很快,机器人可能移动得更远,所以得到的位置会更远;如果速度很慢,机器人就走不了那么远。

    这种关系对目标跟踪来说非常重要,因为它提供了更多信息:一个可以衡量可能性的标准。这就是卡尔曼滤波的目标:从不确定信息中挤出尽可能多的信息!

    为了捕获这种相关性,我们用的是协方差矩阵。简而言之,矩阵的每个值是第 [公式] 个变量和第 [公式] 个变量之间的相关程度(由于矩阵是对称的, [公式] 和 [公式] 的位置可以随便交换)。我们用 [公式] 表示协方差矩阵,在这个例子中,就是 [公式] 。

    用矩阵描述问题

    为了把以上关于状态的信息建模为高斯分布(图中色块),我们还需要 [公式] 时的两个信息:最佳估计 [公式] (均值,也就是 [公式] ),协方差矩阵 [公式] 。(虽然还是用了位置和速度两个变量,但只要和问题相关,卡尔曼滤波可以包含任意数量的变量)

    接下来,我们要通过查看当前状态(k-1时)来预测下一个状态(k时)。这里我们查看的状态不是真值,但预测函数无视真假,可以给出新分布:

    我们可以用矩阵 [公式] 表示这个预测步骤:

    它从原始预测中取每一点,并将其移动到新的预测位置。如果原始预测是正确的,系统就会移动到新位置。

    这是怎么做到的?为什么我们可以用矩阵来预测机器人下一刻的位置和速度?下面是个简单公式:

    换成矩阵形式:

    这是一个预测矩阵,它能给出机器人的下一个状态,但目前我们还不知道协方差矩阵的更新方法。这也是我们要引出下面这个等式的原因:如果我们将分布中的每个点乘以矩阵A,那么它的协方差矩阵会发生什么变化

    把这个式子和上面的最佳估计 [公式] 结合,可得:

    外部影响

    但是,除了速度和位置,外因也会对系统造成影响。比如模拟火车运动,除了列车自驾系统,列车操作员可能会手动调速。在我们的机器人示例中,导航软件也可以发出停止指令。对于这些信息,我们把它作为一个向量 [公式] ,纳入预测系统作为修正。

    假设油门设置和控制命令是已知的,我们知道火车的预期加速度 [公式] 。根据运动学基本定理,我们可得:

    把它转成矩阵形式:

    [公式] 是控制矩阵, [公式] 是控制向量。如果外部环境异常简单,我们可以忽略这部分内容,但是如果添加了外部影响后,模型的准确率还是上不去,这又是为什么呢?

    外部不确定性

    当一个国家只按照自己的步子发展时,它会自生自灭。当一个国家开始依赖外部力量发展时,只要这些外部力量是已知的,我们也能预测它的存亡。

    但是,如果存在我们不知道的力量呢?当我们监控无人机时,它可能会受到风的影响;当我们跟踪轮式机器人时,它的轮胎可能会打滑,或者粗糙地面会降低它的移速。这些因素是难以掌握的,如果出现其中的任意一种情况,预测结果就难以保障。

    这要求我们在每个预测步骤后再加上一些新的不确定性,来模拟和“世界”相关的所有不确定性:

    如上图所示,加上外部不确定性后, [公式] 的每个预测状态都可能会移动到另一点,也就是蓝色的高斯分布会移动到紫色高斯分布的位置,并且具有协方差 [公式] 。换句话说,我们把这些不确定影响视为协方差 [公式] 的噪声。

    这个紫色的高斯分布拥有和原分布相同的均值,但协方差不同。

    我们在原式上加入 [公式] :

    简而言之,这里:

    [公式] 是基于 [公式] 和 [公式] 校正后得到的预测。

    [公式] 是基于 [公式] 和 [公式] 得到的预测。

    现在,有了这些概念介绍,我们可以把传感器数据输入其中。

    通过测量来细化估计值

    我们可能有好几个传感器,它们一起提供有关系统状态的信息。传感器的作用不是我们关心的重点,它可以读取位置,可以读取速度,重点是,它能告诉我们关于状态的间接信息——它是状态下产生的一组读数。

    请注意,读数的规模和状态的规模不一定相同,所以我们把传感器读数矩阵设为 [公式] 。

    把这些分布转换为一般形式:

    卡尔曼滤波的一大优点是擅长处理传感器噪声。换句话说,由于种种因素,传感器记录的信息其实是不准的,一个状态事实上可以产生多种读数。

    我们将这种不确定性(即传感器噪声)的协方差设为 [公式] ,读数的分布均值设为 [公式] 。

    现在我们得到了两块高斯分布,一块围绕预测的均值,另一块围绕传感器读数。

    如果要生成靠谱预测,模型必须调和这两个信息。也就是说,对于任何可能的读数 [公式] ,这两种方法预测的状态都有可能是准的,也都有可能是不准的。重点是我们怎么找到这两个准确率。

    最简单的方法是两者相乘:

    两块高斯分布相乘后,我们可以得到它们的重叠部分,这也是会出现最佳估计的区域。换个角度看,它看起来也符合高斯分布:

    事实证明,当你把两个高斯分布和它们各自的均值和协方差矩阵相乘时,你会得到一个拥有独立均值和协方差矩阵的新高斯分布。最后剩下的问题就不难解决了:我们必须有一个公式来从旧的参数中获取这些新参数!

    结合高斯

    让我们从一维看起,设方差为 [公式] ,均值为 [公式] ,一个标准一维高斯钟形曲线方程如下所示:

    那么两条高斯曲线相乘呢?

    把这个式子按照一维方程进行扩展,可得:

    如果有些太复杂,我们用k简化一下:

     

    以上是一维的内容,如果是多维空间,把这个式子转成矩阵格式:

    这个矩阵 [公式] 就是我们说的卡尔曼增益,easy!

    把它们结合在一起

    截至目前,我们有用矩阵 [公式] 预测的分布,有用传感器读数 [公式] 预测的分布。把它们代入上节的矩阵等式中:

    相应的,卡尔曼增益就是:

    考虑到 [公式] 里还包含着一个 [公式] ,我们再精简一下上式:

    最后, [公式] 是我们的最佳估计值,我们可以把它继续放进去做另一轮预测:

    希望这篇文章能对你有用!

    展开全文
  • 标准粒子滤波算法存在的最大问题是粒子退化,针对这一问题,提出了一种改进的粒子滤波算法,该算法将无迹卡尔曼滤波算法(UKF)、混合遗传模拟退火算法和基本粒子滤波算法相结合,运用无迹卡尔曼滤波算法获得重要性函数,...
  • 为了改善非线性系统状态估计问题中粒子滤波算法的估计精度,提出采用二阶中心差分滤波方法来产生建议分布函数的新算法。...仿真实验表明,与无迹粒子滤波算法相比,新算法的计算量更小,估计精度提高了20%以上。
  • 针对传统交互式多模型(interactive multiple model,IMM)算法跟踪机动式再入目标精度差和实时性不高的问题,提出一种交互式多模型迭代无迹Kalman粒子滤波算法?该算法在多模型滤波过程中采用改进的粒子滤波算法,通过...
  • 针对粒子滤波的退化现象、样本贫化问题以及标准无迹粒子滤波(UPF)算法计算量偏大的缺陷,利用基于超球面采样变换(SSUT)的UKF算法产生重要性概率密度函数,与序贯重要性再采样(SIR)结合,并引入粒子群优化,形成一种新的...
  • 2012年 10月 农 业 机 械 学 报 第 43卷第 10期DOI:10.6041/j.issn.10001298.2012.10.028基于区间分析无迹粒子滤波的移动机器人SLAM方法1,2 1,2 1 ...

    2012年 10月 农 业 机 械 学 报 第 43卷第 10期

    DOI:10.6041/j.issn.10001298.2012.10.028

    基于区间分析无迹粒子滤波的移动机器人SLAM方法

    1,2 1,2 1 1

    刘洞波  刘国荣  王迎旭  肖 鹏

    (1.湖南工程学院计算机与通信学院,湘潭 411104;2.湖南大学电气与信息工程学院,长沙 410082)

    【摘要】 移动机器人同时定位与地图创建算法 SLAM中,非线性系统线性化处理和雅可比矩阵计算导致运算

    量大、系统状态估计精度较低。为此提出了一种基于区间分析的无迹粒子滤波同时定位与地图创建的方法。利用

    基于区间分析的区间粒子滤波进行位姿估计,降低了定位需要的粒子数;并采用无迹卡尔曼滤波更新地图中的特

    征,提高了地图创建的精度。在同等粒子数的情况下,改进了 SLAM的精度,减少了运算时间,实验结果验证了方

    法的有效性。

    关键词:移动机器人 同时定位与地图创建 粒子滤波器 区间分析 无迹卡尔曼滤波

    中图分类号:TP24 文献标识码:A 文章编号:10001298(2012)10015506

    SLAMMethodforMobileRobotBasedonInterval

    AnalysisUnscentedParticleFilter

    1,2 1,2 1 1

    LiuDongbo  LiuGuorong  WangYingxu XiaoPeng

    (1.CollegeofComputerandCommunication,HunanInstituteofEngineering,Xiangtan411104,China

    2.CollegeofElectricalandInformationEngineering,HunanUniversity,Changsha410082,China)

    Abstract

    Inparticlefiltersimultaneouslocalizationandmappingmethod(SLAM)formobilerobots,

    linearizationofnonlinearsystemsandderivationoftheJacobianmatricesleadtolargecomputingand

    systemstateestimationproblemoflowaccuracy.Tosolvethisproblem,aSLAMmethodbasedoninterval

    analysisandunscentedparticlefilterwasproposed.Thenumberofparticleswasseriouslyreducedbased

    ontheintervalanalysisforposeestimation.Thenaturelandmarkswereupdatedthroughunscented

    Kalmanfiltertoimprovemapestimationaccuracy.Thisapproachimprovedthestateestimationaccuracy

    andcomputationaleffortwithasmallernumberofparticlesthanpreviousapproaches.Theresults

    indicatedthattheproposedmethodwasvalid.

    Keywords Mobilerobot,SLAM,Particlefilter,Intervalanalysis,UnscentedKalmanfilter

    展开全文
  • 所有滤波问题其实都是求感兴趣的状态的后验概率分布,只是由于针对特定条件的不同,可通过求解析解获得后验概率(KF、EKF、UKF),也可通过大数统计平均求期望的方法来获得后验概率(粒子滤波)。 KF、EKF、UKF ...

    所有滤波问题其实都是求感兴趣的状态的后验概率分布,只是由于针对特定条件的不同,可通过求解递推贝叶斯公式获得后验概率的解析解(KF、EKF、UKF),也可通过大数统计平均求期望的方法来获得后验概率(PF)。

    1 KF、EKF、UKF

    1.1 定义

    KF、EKF、UKF 都是一个隐马尔科夫模型与贝叶斯定理的联合实现。是通过观测信息及状态转移及观测模型对状态进行光滑、滤波及预测的方法。而KF、EKF及UKF的滤波问题都可以通过贝叶斯估计状态信息的后验概率分布来求解。Kalman在线性高斯的假设下,可以直接获得后验概率的解析解;EKF是非线性高斯模型,通过泰勒分解将非线性问题转化为线性问题,然后套用KF的方法求解,缺陷是线性化引入了线性误差且雅克比、海塞矩阵计算量大;而UKF也是非线性高斯模型,通过用有限的参数来近似随机量的统计特性,用统计的方法计算递推贝叶斯中各个积分项,从而获得了后验概率的均值和方差。

    1.2 原理

    KF、EKF、UKF滤波问题是一个隐马尔科夫模型与贝叶斯定理的联合实现。一般的状态模型可分为状态转移方程和观测方程,而状态一般都是无法直接观测到的,所以时隐马尔科夫模型。然后,它将上一时刻获得的状态信息的后验分布作为新的先验分布,利用贝叶斯定理,建立一个贝叶斯递推过程,从而得到了贝叶斯递推公式,像常用的卡尔曼滤波、扩展卡尔曼滤波、不敏卡尔曼滤波以及粒子滤波都是通过不同模型假设来近似最优贝叶斯滤波得到的。这也是滤波问题的基本思路。所有贝叶斯估计问题的目的都是求解感兴趣参数的后验概率密度。
    并且后验概率的求解是通过递推计算目标状态后验概率密度的方法获得的。在贝叶斯框架下,通过状态参数的先验概率密度和观测似然函数来求解估计问题;在目标跟踪背景下(隐马尔科夫模型),目标动态方差决定状态转移概率,观测方程决定释然函数。一般化的整个计算过程可以分为3步:
    01. 一步状态预测:通过状态转移概率及上一时刻的后验概率算出一步预测概率分布。从而得到状态预测的均值和方差
    02. 归一化系数计算:通过对似然函数与一步状态预测概率的乘积中的状态进行积分,可以得到观测转移的概率分布,从而得到目标观测的均值和方差,并可算出卡尔曼增益(用来权衡预测与观测对状态滤波的贡献)
    03. 然后利用递推贝叶斯公式算得状态的后验概率,从而得到目标状态的均值和方差【高斯乘积定理】
    其中KF可以直接得到解析解,EKF通过泰勒分解线性化后可得到解析解,而UKF通过在定义域按一定规则采样来近似获得后验状态的均值和方差,但这些样本点的要求是样本均值和方差收敛于真正的均值和方差,不过已经有许多学者提出了相关的采样方法。

    1.2.1 Kalmanlfilter:

    动态方程和观测方程式线性高斯的,且k-1时刻的后验密度也是高斯的,【近似高斯分布使得计算很方便,仅用均值和方差就可以完全界定高斯分布,并且这一假设在实际应用中效果也是非常好,】
    主要就是实现贝叶斯递推公式的求解,需要有概率、矩阵、积分运算的基本知识,在结合高斯乘积定理。

    1.2.2 扩展kalmanfilter:

    是一个简单的非线性近似滤波算法,指运动方差或观测方程不是线性的情况。为了简化计算,EKF通过一阶泰勒分解线性化运动/观测方程。KF与EKF具有相同的算法结构,都是以高斯形式描述后验概率密度的,都是通过计算贝叶斯递推公式得到的。最大的不同之处在于,计算方差时,EKF的状态转移矩阵(上一时刻的状态信息k-1|k-1)和观测矩阵(一步预测k|k-1)都是状态信息的雅克比矩阵。主要问题如下:
    1. 运动及观察模型用泰勒级数的一阶或二阶展开近似成线性模型,忽略了高阶项,不可避免的引入线性误差,甚至导致滤波器发散。有如下误差补偿方法:
    泰勒近似使得状态预测必然存在误差:
    A) 补偿状态预测中的误差,附加“人为过程噪声”,即通过增大过程噪声协方差来实现这一点。
    B) 扩大状态预测协方差矩阵,用标量加权因子φ>1乘状态预测协方差矩阵
    C) 利用对角矩阵φ=diag(sqrt(φi)), φi>1来乘以状态预测协方差矩阵
    其实无论增大过程噪声协方差还是状态预测协方差矩阵,都是为了增大kalman增益,即状态预测是不准的,我要减小一步状态预测在状态更新中的权重。
    2. 雅克比矩阵(一阶)及海塞矩阵(二阶)计算困难。二阶EKF的性能要好于一阶的,而二阶以上的性能相比于二阶并没有太大的提高,所以超过二阶以上的EKF一般不采用。但二阶EKF的性能虽好,但计算量大,一般情况下不用

    1.2.3 无迹kalman滤波

    前面的KF和EKF都是都将问题转化为线性高斯模型,所以可以直接解出贝叶斯递推公式中的解析形式,方便运算。但对于非线性问题,EKF除了计算量大,还有线性误差的影响,所以这里引入UKF。对于求解非线性模型的贝叶斯递推公式的主要困难在于如何解析的求解一步预测状态分布的概率、(观测方程得到的)似然函数分布密度以及后验条件概率的分布,EKF利用泰勒分解将模型线性化,在利用高斯假设解决了概率计算困难的问题。但是线性误差的引入降低了模型精度。那么我们换个思路,对于非线性模型,直接用解析的方式来求解贝叶斯递推公式比较困难主要很难解析的得到各个概率分布的均值和方差,但不敏变换(一种计算非线性随机变量各阶矩的近似方法)却可以较好的解决这个问题,通过一定规律的采样和权重,可以近似获得均值和方差。而且由于不敏变换对统计矩的近似精度较高,UKF的效果可以达到二阶EKF的效果。
    详细的推导过程如下图所示,由于EKF及UKF都是KF的扩展版本,所以推导过程极为相似。【详细的推导可以参考 [机器学习方法原理及编程实现–07.隐马尔科夫及其在卡尔曼滤波中的应用][1].】
    [1]https://blog.csdn.net/drilistbox/article/details/79886714
    这里写图片描述

    KF、EKF及UKF均较为简单,且网上有大量的开源算例,这里不再累述。

    2 粒子滤波

    2.1 定义

    粒子滤波也是一种非线性算法,是基于门特卡罗仿真的最后回归贝叶斯滤波算法,通过对后验概率密度进行数值近似求解,感觉是完全从大数定理统计的角度来解决问题。它将关心的状态矢量表示为一组带有权值的随机样本,并且基于这些样本和权值可以计算出状态估值。该方法没有模型或高斯噪声的限制。

    2.2 原理

    滤波问题中的困难主要在于后验概率的计算,粒子滤波的出发点是:只要从后验概率中采样很多粒子,用它们的状态求平均就得到了滤波结果。
    1. 引入蒙特卡洛随机采样来计算后验概率,从统计上获得状态的均值(后验概率分布的期望)
    2. 但由于采样时无法直接知道后验概率的分布,所以引入重要性采样这个方法,通过公式变换将问题转化为从已知分布中进行采样去计算粒子权值;
    3. 然后又通过马尔科夫性将权重计算转换成序贯权重计算(SIS)
    4. 通过残差重采样避免了权重消失现象。(SIS+重采样=标准的粒子滤波)
    5. 重要性概率密度函数=状态转移概率,简化粒子权重计算(SIR)

    2.2.1 kf/ekf/ukf与pf有什么区别和联系

    相同点:都是求后验概率
    不同点:条件的差别导致了求解方法的差别,由于kf/ekf/ukf都是高斯噪声,所以不论模型线性与否都能得到近似近似解析解,而pf没有模型限定,因此是Kf是通过求解递推贝叶斯公式来得到后验概率分布的,而pf直接通过带权重的随机样本统计后验概率的均值。

    2.2.2 门特卡罗

    这里写图片描述

    2.2.3 重要性采样

    这里写图片描述

    2.2.4 序贯重要性采样(SIS)

    这里写图片描述

    2.2.4.1 重采样

    这里写图片描述

    2.2.4.1.1 标准的粒子滤波算法(sis+重采样)

    这里写图片描述

    2.2.4.2 SIR滤波器 (重要性概率密度函数=状态转移概率,简化粒子权重计算)

    这里写图片描述

    2.2.4.2.1 SIR滤波器流程

    这里写图片描述

    2.2.5 算例实现

    这里写图片描述

    2.2.5.1 算例实现1:非线性运动模型的状态估计

    这里写图片描述
    代码实现:

    clear all
    close all
    clc
    x = 0.1; % initial actual state
    x_N = 1; % 系统过程噪声的协方差(由于是一维的,这里就是方差)
    x_R = 1; % 测量的协方差
    T = 75;  % 总的时刻数
    N = 100; % 粒子数,越大效果越好,计算量也越大
    
    V = 2; %初始分布的方差
    x_P = []; % 粒子
    % 粒子集初始化,按初始先验概率(这里设为高斯分布)生成初始粒子集合
    for i = 1:N
        x_P(i) = x + sqrt(V) * randn;
    end
    
    z_out = [x^2 / 20 + sqrt(x_R) * randn];  %实际测量值
    x_out = [x]; 
    x_est = [x]; 
    x_est_out = [x_est]; 
    
    for t = 1:T
        x = 0.5*x + 25*x/(1 + x^2) + 8*cos(1.2*(t-1)) +  sqrt(x_N)*randn;
        z = x^2/20 + sqrt(x_R)*randn;
        for i = 1:N
            %根据状态转移函数计算粒子的一步预测
            x_P_update(i) = 0.5*x_P(i) + 25*x_P(i)/(1 + x_P(i)^2) + 8*cos(1.2*(t-1)) + sqrt(x_N)*randn;
            %根据观测方程计算采样粒子的观测值
            z_update(i) = x_P_update(i)^2/20;
            %利用似然函数更新权重
            P_w(i) = (1/sqrt(2*pi*x_R)) * exp(-(z - z_update(i))^2/(2*x_R));
            %由于重采样后的权重为均匀分布,所以在计算未归一化的权重时可以不再乘以上一时刻的权重
        end
        % 归一化.
        P_w = P_w./sum(P_w);
        %残差重采样
        for i = 1 : N
            x_P(i) = x_P_update(find(rand <= cumsum(P_w),1));   % 粒子权重大的将多得到后代
        end                                                     % find( ,1) 返回第一个符合前面条件的数的下标
    
        %状态估计,重采样以后,每个粒子的权重都变成了1/N
        x_est = mean(x_P);
    %     x_est = sum(P_w.*x_P_update);
    
        x_out = [x_out x];
        z_out = [z_out z];
        x_est_out = [x_est_out x_est];
    end
    
    t = 0:T;
    figure(1);
    clf
    plot(t, x_out, '.-b', t, x_est_out, '-.r','linewidth',3);
    set(gca,'FontSize',12); set(gcf,'Color','White');
    xlabel('time step'); ylabel('flight position');
    legend('True flight position', 'Particle filter estimate');

    2.2.5.2 算例实现2:视频中红色像素点跟踪

    这里写代码片
    代码实现:https://pan.baidu.com/s/1qZLJ7Gg

    3 但这些方法都有优缺点:

    KF优点:计算简单
    KF缺点:高斯线性模型约束
    EKF优点:可以近似非线性问题
    EKF缺点:高斯噪声约束,线性化引入了误差会可能导致滤波发散,雅克比矩阵(一阶)及海塞矩阵(二阶)计算困难
    UKF优点:模型无损失,计算精度高
    UKF缺点:高斯噪声约束
    Kf是最优贝叶斯滤波的解析解,ekf和ekf是最优贝叶斯滤波的解析近似解。虽然ukf和ekf的计算效率很高,但是他们的计算精度受到有效性的限制,若有足够的计算资源,通过对后验概率密度进行数值近似可以提高计算进度。

    PF优点:模型噪声无限制,原理简单,
    PF缺点:计算量大,为了减缓权重缩减而引入重抽样,限制了算法的平行计算;抽样枯竭【具有较大权值的粒子将多出选中,使得现存的粒子不在能代表现有的概率密度,当过程噪声较小时,所有粒子讲可能转变为一个单一的点】,正则粒子滤波好像可以减轻这种现象,但我还没看。
    推荐看看无味卡尔曼滤波(UKF),他是有选择的产生粒子,粒子的权重均值和方差收敛于真正的均值和方差,
    而PF是随机产生(按指定分布产生)。

    展开全文
  • 为此提出了一种基于区间分析的无迹粒子滤波同时定位与地图创建的方法.利用基于区间分析的区间粒子滤波进行位姿估计,降低了定位需要的粒子数;并采用迹卡尔曼滤波更新地图中的特征,提高了地图创建的精度.在同等粒子...

    【摘要】

    In particle filter simultaneous localization and mapping method ( SLAM ) for mobile robots, linearization of nonlinear systems and derivation of the Jacobian matrices lead to large computing and system state estimation problem of low accuracy. To solve this problem,a SLAM method based on interval analysis and unscented particle filter was proposed. The number of particles was seriously reduced based on the interval analysis for pose estimation. The nature landmarks were updated through unscented Kalman filter to improve map estimation accuracy. This approach improved the state estimation accuracy and computational effort with a smaller number of particles than previous approaches. The results indicated that the proposed method was valid.%移动机器人同时定位与地图创建算法SLAM中,非线性系统线性化处理和雅可比矩阵计算导致运算量大、系统状态估计精度较低.为此提出了一种基于区间分析的无迹粒子滤波同时定位与地图创建的方法.利用基于区间分析的区间粒子滤波进行位姿估计,降低了定位需要的粒子数;并采用无迹卡尔曼滤波更新地图中的特征,提高了地图创建的精度.在同等粒子数的情况下,改进了SLAM的精度,减少了运算时间,实验结果验证了方法的有效性.

    展开全文
  • 从概念上讲,一个粒子滤波算法包含一个被监视系统的状态的概率分布。在本项目中,状态就是指被追踪物体的位置、大小等等。在许多情况下,非线性和非高斯型在物体的运动和相似性建模上会得到一个难以处理的滤波分布。...
  • 针对水下被动目标跟踪的非高斯噪声环境和弱可观性的特点,提出了将粒子滤波...仿真结果表明:粒子滤波算法提高了滤波的稳定性,跟踪精度优于扩展卡尔曼滤波算法和无迹卡尔曼滤波算法,收到了良好的效果,具有较高的实用价值.
  • 扩展卡尔曼-无迹卡尔曼-粒子滤波示例 里面包含ukf,ekf,pf的matlab代码过程 其中,状态方程和观测方程 可能与你的不一样,到时候自己替换就好,没有测试数据 不过自己对一遍公式就知道 该代码是否正确
  • 结合灰色预测模型和粒子滤波,提出一种新的视觉目标跟踪算法.由于粒子滤波未考虑先验信息对建议分布产生...与粒子滤波、卡尔曼粒子滤波和无迹粒子滤波进行对比实验,结果表明所提出的算法在视觉目标跟踪中具有更好的性能.
  • 人工蜂群算法是用以解决复杂优化问题的新方法,具有收敛速度快、优化性能高等特点.... 结果表明人工蜂群算法与其他智能算法相比具有更快的收敛速度,改进人工蜂群粒子滤波与无迹粒子滤波相比极大地提高了信道估计精度.
  • 提出一种基于粒子群优化的无迹卡尔曼滤波(panicle swarm optimized unscented Kalman filter, PSOUKF)的电网动态谐波估计方法,利用包含种群分类与动态学习因子的改进粒子群优化算法,优化无迹卡尔曼滤波算法...
  • 滤波算法的基本知识

    2021-03-02 16:40:01
    滤波算法的基本知识 一、滤波:从原始有干扰的测量数据 中提取有用信号 二、滤波理论:在对系统可观测信号进行测量的基础上,根据一定的滤波准则,对系统的状态进行估计的理论和方法。...粒子滤波算法 ...
  • 针对迹粒子滤波(UPF)在较偏观测时的退化现象及重采样带来的粒子枯竭问题,提出一种自适应免疫优化的无迹粒子滤波算法(AIO-UPF)。该算法在重采样过程中,利用免疫算法在亲和度与浓度调节机制下的全局寻优能力和...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 243
精华内容 97
关键字:

无迹粒子滤波算法