4

请帮忙。跟踪帧中对象的压缩算法步骤是:

  1. 初始化一个点并在其周围随机选择N个点,并将权重设置为1/N。

  2. 根据动态模型(恒速模型)传播点。

  3. 现在,使用观察模型计算每个粒子的权重。到目前为止,有 N 个粒子。

  4. 现在,在重采样步骤中,从上述粒子集中挑选 N 个粒子?

什么?我们如何从 N 个粒子中挑选 N 个粒子?

4

2 回答 2

3

我们如何从 N 个粒子中挑选 N 个粒子?

选择 N 个带有替换的粒子,即一个粒子可以根据您分配给它的权重多次选择。

如果您有 3 个粒子,权重为 [0.1 0.2 0.7 ],则选择第 3 个粒子两次,第 2 个粒子一次,因此您选择从 3 个粒子本身中获取 3 个粒子。

有很多技术可以完成这一步,即重新采样 N 个粒子。即使我只是试图为这一部分编写代码。

您可以了解重采样的一些网站是:-

  • Udacity - 机器人人工智能 -链接到课程页面

  • IEEE 论文-在线粒子过滤器教程.... Arulampalam,gordon maskell, 这是一篇被高度引用的论文,几乎每个人都只从这里获取粒子过滤器的参考资料。

  • 本文是讲座教程,他们很好地解释了重采样,只需遵循算法,我认为您的代码将执行重采样链接

于 2014-06-16T09:59:20.933 回答
-1

我不知道需要多少细节......如果大部分都知道,请原谅我。粒子滤波器尝试根据观测值 y_1,...,y_t 估计后验分布 p(x_t|y_1,...,y_t)。“校正步骤”依赖于简化:

p(x_t|y_1,...,y_t) = p(y_t|x_t)p(x_t|y_1,...,y_t-1)/p(y_t|y_1,...,y_t-1) 

从这个后验分布中采样N个点,然后根据右手边进化来逼近下一个后验。我们不是在处理法线,所以我们需要的不仅仅是 2 个矩。然后从新的后验中重新采样下一步的 N 个点,而不仅仅是使用旧点,无论它们已经进化。原因是众所周知的退化效应——除了 1 之外的所有点都趋于 0。

所以我们不是从 N 个粒子中挑选 N 个粒子,而是扔掉旧的粒子,并从新的后验估计中重新采样 N。

于 2013-11-18T02:33:01.720 回答