深夜十点多了,忙完了一天,闲下心来来整理了粒子滤波跟踪算法。上一篇主要讲述的Kalman滤波跟踪算法,这一篇写写粒子滤波跟踪算法。
1.粒子滤波跟踪算法的由来
粒子滤波基于Bayesian理论和MonteCarlo方法,它的基本思想是将系统状态的后验分布用一组带权值的粒子表示,新的状态分布通过该组粒子的Bayesian迭代产生。粒子滤波作为一种基于序贯 Monte Carlo仿真方法的非线性滤波算法,为估计系统状态提供了一个概率的框架,它具有易于实现、鲁棒性强、适合并行处理等特点。相对Kalman滤波,它在处理非高斯非线性时变系统的参数估计和状态滤波问题方面有独到的优势,因此获得了很大的发展。
2.粒子滤波跟踪算法原理
粒子滤波器是一种通过蒙特卡罗仿真实现递推贝叶斯滤波的方法,实质是随机采样运算将积分转化为有限样本点的求和运算,用一个带权重值的随机样本集来表示后验密度函数,以此来计算系统的状态估计。样本的数量足够多时可较好地描述目标状态的后验概率分布,得到目标状态的最优贝叶斯估计。k时刻的后验密度可以近似表示为
式中,(·)为狄克拉函数;N为粒子总数;k为序列帧数;i 为粒子标志。以视频方式的目标为例,其模型如下图
总体来说,粒子滤波跟踪主要步骤总结如下:
(1) 随机采样一个粒子集并提取粒子特征;
(2)通过特征计算 粒子权重来表示后验密度函数,找到最相似粒子作为跟踪目标;
(3)对粒子进行重采样。