MeanShift
该算法也叫做均值漂移,在目标追踪中应用广泛。本身其实是一种基于密度的聚类算法。
主要思路是:计算某一点A与其周围半径R内的向量距离的平均值M,计算出该点下一步漂移(移动)的方向(A=M+A)。当该点不再移动时,其与周围点形成一个类簇,计算这个类簇与历史类簇的距离,满足小于阈值D即合并为同一个类簇,不满足则自身形成一个类簇。直到所有的数据点选取完毕。
一般形式
对于给定的 n 维空间 R n R^n Rn 中的 m 个样本点 X i X^i Xi,i=1…m,对于其中一个样本X,他的均值漂移向量为: M h ( X ) = 1 K ∗ ∑ X i ∈ S h ( X i − X ) M_h(X)=\frac{1}{K}*\sum_{X^i\in S_h}(X^i-X) Mh(X)=K1∗Xi∈Sh∑(Xi−X),其中 S h S_h Sh指的是一个半径为h的球状领域,定义为 S h ( X ) = { y ∣ ( y − x ) ( y − x ) T ≤ h 2 } S_h(X)=\{y|(y-x)(y-x)^T \le h^2\} Sh(X)={
y∣(y−x)(y−x)T≤h2},如下图所示
蓝色圈内表示半径h的区域 S h S_h Sh,黄色箭头尾部指的是计算前的数据点 X X X,箭头本身是指的计算后的漂移向量 M h ( X ) M_h (X) Mh(X)。由上图可以看出,均值漂移会不断的往密度较大的区域移动。熟悉的同学可能了解到,一般用的