粒子滤波器重采样

时间:2014-03-26 05:49:19

标签: image matlab opencv tracking

我通过阅读几篇Papers在C ++上实现了一个bootstrap Particle过滤器,我首先实现了一个非常好的一维鼠标跟踪器。我在本次考试中使用普通高斯加权。

我使用局部运动和HSV 32 bin直方图的2个特征将算法扩展到跟踪人脸。在这个例子中,我的称重函数成为直方图的运动x概率的概率。 (这是正确的。)

如果这是正确的,请注意重新取样功能。目前我的重新采样功能如下:

对于每个粒子N = 50;

计算CDF 生成随机数(通过高斯)X 更新索引X处的粒子 重复所有N粒子。 这是我目前的重新采样功能。注意:第二步我通过高斯分布使用随机数获得索引,而我的加权函数是运动概率和直方图。

我的问题是:我应该使用运动和直方图的概率生成随机数,还是只通过高斯的随机数就可以了。

1 个答案:

答案 0 :(得分:3)

在SIR(顺序重要性重采样)粒子滤波器中,重采样旨在复制重量较高的粒子,同时去除重量较轻的粒子。

因此,当您对粒子进行加权时(通常具有您使用过的可能性),重新取样的一种方法是创建权重的累积分布,然后在均匀分布后生成随机数 < / strong>并选择与CDF插槽对应的粒子。这样就更有可能选择重量更大的粒子。

此外,不要忘记在生成粒子副本后添加一些噪音,否则您的点估计可能会有一段时间的偏差。