python实现粒子滤波目标跟踪_粒子滤波在目标跟踪中的作用是什么?

我们用简单且直白的话来讨论

首先,我们来说说为什么需要采用概率论的方法来进行定位?

高票答案已经把状态方程和观测方程的公式给出来了,而且关于公式的内容解释也非常的完善了。我这里主要讲给刚入门的同学们听。相信学过现代控制原理的同学都明白,状态方程是根据上一时刻的状态对这一时刻的估计,好,问题来了,为什么要估计,因为我们采得到的图像有噪声(或者直接说有误差,简单的大白话的感觉就是,你遍历的图像数据,第一,图像本身就采集的不准,第二,遍历的不准,因为图形的遍历一般是基于各种特征进行的,所以肯定是会存在特征丢失,导致不准,还有你的遍历算法也会不准)所以,即使你采用诸如遗传算法等高级一点的算法进行遍历,也没有卵用,因为就不准。那有没有什么方法可以消除这种“不准”呢?好啦,大名鼎鼎的卡尔曼滤波出来了,卡尔曼滤波的重要核心就是可以计算对下一时刻的估计。听起来很悬乎对不对。简单来说,你的状态方程可以进行估计,那么你的观测方程可以对估计进行纠正。也就是说,我自己首先会有一个底,大概我算出来的值,或者说我这个图形遍历的匹配率大概是多少,比如说我用状态方程算出这个点的匹配率是0.8,观测方程算出来是0.9,那么我觉得这个0.9可能是存在偏差的,那我把这点的匹配率取个0.85怎么样(当然真正的卡尔曼算法里不是简单的取平均值,而是利用了协方差。重点在于思想),所以很清楚啦。这就是为什么我们需要对下一时刻进行估计,就是为了消除这种“不准”。

接下来我们来讨论一下为什么要使用粒子滤波呀?

首先。卡尔曼滤波有一个很大的前提,那就是a、系统噪声必须是符合高斯分布(也就是正态分布)。b、必须是线性系统。(当然,EKF通过将非线性系统线性化的方法处理非线性系统)。这俩个点,实际的操练中还真的挺难同时满足的,例子我就不举了。

粒子滤波的好处在于,对系统没啥要求。兵来将挡,水来土掩。嘻嘻嘻。因为粒子滤波的核心思想就是就是基于奖励惩罚机制(强化学习)的优化~~~~首先,根据状态转移方程,对于每个粒子的位置进行更新。但是这个更新只是基于dead reckon得到的,我们要融合绝对定位与相对定位,绝对定位的信息还没有融合进去呢。根据状态转移方程得到的新状态到底行不行?能有多大的概率?这还取决于绝对定位的结果也就是输出方程。把状态转移方程的到的结果代入输出方程,得到一个输出,这个输出是估计值,而根据绝对定位的观测,这个值对应的观测值 也是可以测量得到的,现在这两个值之间有个差额,很明显,这个差额越小,刚才的到的状态越可信,这个差额越大,状态越不可信。好,就把这个指标作为评估函数(像GA,pso等优化算法里的evaluation function),来修正各个状态的估计概率。。。。简单地说就是,我一开始在整个地图上均匀分配一大波粒子(当然有改进的预处理算法,可以事先往正确点靠,减少计算量),每个粒子都可以算出一个估计值对不对,然后咱们再得到一个实际的观测值,那么把和观测值相差较小的粒子留下来。。。(具体留多少个粒子需要根据你系统模型,当然现在也有自适应的算法,可以自己改变留下来的粒子数目),这样每个粒子都有一个和观测值的差值,然后再进行下一次同样方法的更新(这个过程叫做重采样),最后我们就会留下可信度非常高的粒子啦。。这一般就是最后的正确值。。。。。

最后,我们再简单讨论一下,为什么粒子算法这么好,卡尔曼还用的这么广?

其实通过我的介绍,大家也能发现,粒子滤波的计算量比卡尔曼滤波大的不是一个数量级的。 - - 。卡尔曼滤波一次估计花了几个简单的数学公式(甚至我可以用手算,我们学校期末考试出了一道卡尔曼滤波的手推题,也是。。。大部分人都能算出来)。。。。然而粒子滤波。。。呵呵哒。经历了那么多次迭代。才估计出来了 。 。。。- - 虽然你比卡尔曼精准。。但是我还是不得不吐槽一下。。(这里其实更需要吐槽的是另一种滤波算法——马尔卡夫算法,具体计算量怎么大,自行google)所以呀 ,在我们不需要精度很高的时候,卡尔曼滤波还是非常好用的。。。所以卡尔曼滤波仍然是用途最广的滤波算法。。

好啦 。。。。如果觉得我的回答让你成功人门了得话 ,别忘了点个赞,当然如果我哪里说的不对,也欢迎指正~~么么哒

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值