均值漂移演算法實現

2021-09-09 08:35:58 字數 1184 閱讀 2368

值漂移演算法是一種基於密度梯度上公升的非引數方法,它經常被應用在影象識別中的目標跟蹤,資料聚類,分類等場景。

其核心思想是:首先隨便選擇乙個中心點,然後計算該中心點一定範圍之內所有點到中心點的距離向量的平均值,計算該平均值得到乙個偏移均值,然後將中心點移動到偏移均值位置(另一種理解:在d維空間中,任選乙個點,然後以這個點為圓心,h為半徑做乙個高維球,因為有d維,d可能大於2,所以是高維球。落在這個球內的所有點和圓心都會產生乙個向量,向量是以圓心為起點落在球內的點位終點。然後把這些向量都相加。相加的結果就是meanshift向量。再以meanshift向量的終點為圓心,再做乙個高維的球。),通過這種不斷重複的移動,可以使中心點逐步逼近到最佳位置。這種思想類似於梯度下降方法,通過不斷的往梯度下降的方向移動,可以到達梯度上的區域性最優解或全域性最優解。幾何解釋為:如果樣本點xi服從乙個概率密度函式為f(x)的分布,由於非零的概率密度函式的梯度指向概率密度增加最大的方向,因此從平均上來說,sh區域內的樣本點更多的落在沿著概率密度梯度的方向。因此,mean shift向量mh(x)應該指向概率密度梯度的方向,所以 均值漂移演算法本質上是一種基於梯度的優化演算法。

如下是漂移均值演算法的思想呈現,首先隨機選擇乙個中心點(綠色點),然後計算該點一定範圍內所有點到這個點的距離均值,然後將該中心點移動距離均值,到黃色點處,同理,再計算該黃色點一定範圍內的所有點到黃點的距離均值,經過多次計算均值--移動中心點等方式,可以使得中心點逐步逼近最佳中心點位置,即圖中紅色點處。

均值漂移演算法的核心思想

從上面核心思想可以看出,均值漂移的過程就是不斷的重複計算距離均值,移動中心點的過程,故而計算偏移均值和移動距離便是非常關鍵的兩個步驟,如下為計算偏移均值的基礎公式。

其中sh:以x為中心點,半徑為h的高維球區域; k:包含在sh範圍內點的個數; xi:包含在sh範圍內的點

第二個步驟是計算移動一定距離之後的中心點位置,其計算公式為:

image

其中,mt為t狀態下求得的偏移均值; xt為t狀態下的中心

很顯然,移動之後的中心點位置是移動前位置加上偏移均值。

MeanShift 均值漂移演算法

前面說了k means聚類演算法,這裡我們介紹一種新的聚類演算法 meanshift,它常被用在影象識別中的目標跟蹤,資料聚類 分類等場景,前者的核函式使用了epannechnikov核函式,後者使用了gaussian 高斯核函式 一 演算法的原理理解 1 核函式 在mean shift演算法中引入...

均值漂移 Meanshift 演算法流程

均值漂移演算法是一種常見的聚類演算法,經常被應用在影象識別中的目標跟蹤 資料聚類等場景中。該演算法思想比較簡單,對於給定的一定數量樣本,首先隨便選擇乙個點,然後計算該點一定範圍之內所有點到中心點的距離向量的平均值作為偏移均值 也就是改點範圍內的質心 然後將中心點移動到偏移均值位置,通過這種不斷重複的...

Meanshift(均值漂移)

通過給出一組多維資料點,其維數是 x,y,r,g,b 均值漂移可以用乙個視窗掃瞄空間來找到資料密度最大的區域,可以理解為資料分布最集中的區域。在這裡需要注意,由於空間位置 也就是上面的x和y 的變化範圍與顏色的變化範圍 上面的r,g,b 有極大的不同,所以,meanshift對這兩個維數要採用不同的...