最近,再次熟悉了一下Mean Shift和Particle Filter的两种跟踪算法,对它们的基本思想和原理又有了一定的理解,写在这里供大家分享一下,不足之处还请及时指出,谢谢!
下面结合视频目标跟踪应用来具体说明
一、视频目标跟踪的基本过程
1)初始化目标区域。可以使用目标检测方法或人工选定方法来初始化目标的位置和大小;
2)提取目标的模型。经典的方法是提取目标区域的颜色直方图特征,该特征加上目标的位置和大小等信息构成目标初始时刻的状态;
3)够建候选目标模型。即在下一帧中的某一位置计算该位置区域是候选目标时的区域颜色直方图特征;
4)计算相似度。计算候选目标与初始目标模型的相似度;
5)寻找最大相似度位置。即寻找相似度值最大的候选目标位置,也就是跟踪的下一帧中的目标位置。
本质上来说,视频目标跟踪就是寻找到上面的相似度值最大的位置,即最佳匹配位置。
二、Mean Shift的基本原理及其在跟踪中的作用
Mean Shift算法本质上是最优化理论中的最速下降法(亦称梯度下降法,牛顿法等),即沿着梯度下降方法寻找目标函数的极值。在跟踪中,就是为了寻找到相似度值最大的候选目标位置。
那么,它究竟是如何来寻找这样的相似度最大位置(最佳匹配区域)?
我们知道从初始目标区域提取的特征,对于下一个的视频而言,其上任意位置都可以圈定出一个与初始化目标区域相同大小的区域,并提取该区域的颜色直方图特征与初始化目标区域提取的颜色直方图特征进行匹配,计算得到两个特征之间的相似度。由此,可以得到一个由特征匹配程度构成的一个相似度概率密度分布图(图.4)。我们真正需要寻找的就是该概率密度分布图上的最大值(与初始目标特征最相似的位置)。
Mean Shift方法就是沿着概率密度的梯度方向进行迭代移动,最终达到密度分布的最值位置。其迭代过程本质上是的最速下降法,下降方向为一阶梯度方向,步长为固定值。但是,Mean Shift没有直接求取下降方向和步长,它通过模型的相似度匹配函数的一阶Talor展开式进行近似,直接推到迭代的下一个位置。由此,沿着梯度方向不断迭代收敛到目标相似度概率目标分布的局部极大值。
实际中,我们不可能去求取下一帧中所有位置的相似度。Mean Shift是在不知道该概率密度分布的条件下,使用迭代过程中每次选定的目标区域的局部密度特征来进行迭代的,因此,它寻找的是目标的局部极大值。这就导致目标运动过快或背景过于复杂时,迭代寻找的局部极值并不是目标在下一帧中的最佳匹配位置。另外,Mean Shift作为最速下降法的一种,它的收敛速度并不快,且在接近最优值时,存在锯齿现象。
二、Particle Filter的基本原理及其在跟踪中的作用
Particle Filter算法本质上是蒙特卡罗仿真,即通过采样粒子来近似描述概率密度分布。跟踪中,不可能求取下一帧中所有位置的相似度,即无法获取相似度概率密度分布。而Particle Filter就是通过粒子采样来近似描述这样的分布,有了该分布就可以获取目标的相似度最大位置。一般是根据粒子自身的匹配程度来确定概率密度的最值。
与Mean Shift的主要区别在于寻找相似度概率密度分布的最值方法不同。Mean Shift算法通过迭代来寻找最值位置,而Particle FIlter没有这样的迭代过程,它通过播散大量的粒子,通过这些粒子来获取最值位置。另外,因为粒子采样是遍布整个相似度概率密度空间的,故其具有全局最优性质。
另外,粒子滤波还有重要性采样和重采样等技术,这些内容后面会慢慢补充上来。
今天就写到这里,谢谢大家...