meanShift算法介绍

meanShift,均值漂移,在聚类、图像平滑、分割、跟踪等方面有着广泛的应用。meanShift这个概念最早是由Fukunage1975年提出的,其最初的含义正如其名:偏移的均值向量;但随着理论的发展,meanShift的含义已经发生了很多变化。如今,我们说的meanShift算法,一般是指一个迭代的步骤,即先算出当前点的偏移均值,然后以此为新的起始点,继续移动,直到满足一定的结束条件。

在很长一段时间内,meanShift算法都没有得到足够的重视,直到1995年另一篇重要论文的发表。该论文的作者Yizong Cheng定义了一族核函数,使得随着样本与被偏移点的距离不同,其偏移量对均值偏移向量的贡献也不同。其次,他还设定了一个权重系数,使得不同样本点的重要性不一样,这大大扩展了meanShift的应用范围。此外,还有研究人员将非刚体的跟踪问题近似为一个meanShift的最优化问题,使得跟踪可以实时进行。目前,利用meanShift进行跟踪已经相当成熟。

meanShift算法其实是一种核密度估计算法,它将每个点移动到密度函数的局部极大值点处,即,密度梯度为0的点,也叫做模式点。在非参数估计部分(请参考http://blog.csdn.net/carson2005/article/details/7243425),我们提到,多维核密度估计可以表示为:

meanShift算法介绍_第1张图片

meanShift算法介绍_第2张图片

meanShift算法介绍_第3张图片

估计为0meanShift向量也总是指向密度增加最大的方向,这可以由上式中的分子项来保证,而分母项则体现每次迭代核函数移动的步长,在不包含感兴趣特征的区域内,步长较长,而在感兴趣区域内,步长较短。也就是说,meanShift算法是一个变步长的梯度上升算法,或称之为自适应梯度上升算法。


你可能感兴趣的:(算法,优化,扩展)