基於均值漂移的三維網格分割算法(Mean Shift)

  mean shift算法是一種強大的無參數離散數據點的聚類方法,其在圖像平滑、圖像分割以及目標跟蹤等方面都有着普遍的應用。[Yamauchi et al. 2005]基於mean shift算法提出了一種網格分割方法,具體來講,給定一個三角網格,其面片重心和麪片法向能夠組成6維特徵空間中的一系列離散點集,而後使用mean shift算法對其進行聚類,聚類後每一個面片的法向能夠修正爲各自聚類中心的法向信息,最後基於面片修正法向進行網格分割。下面具體介紹該算法的過程。算法

  給定一個由面片{Ti}所組成的三角網格M,其面片重心{ci}和麪片法向{ni}組成R6空間中的離散點集χ = {(pi, qi) = (ci, ni)}。利用mean shift算法對其進行聚類以後,對每一個聚類中心yi[c] = {(p, q)的法向部分歸一化以後能夠做爲該類中三角面片的新法向。ide

  修正後的面片法向有兩個應用,一個是網格光順,另外一個是網格分割。對於網格分割應用,須要指定網格分割的區域數目。在初始化階段,先隨機選定各個區域的種子面片,而後迭代如下兩個步驟直到收斂穩定。函數

1:區域增加spa

  相鄰三角面片TiTj之間的距離定義爲:.net

distance(Ti, Tj) = || NmiNmj ||3d

其中Nm爲利用mean shift算法獲得的面片修正法向。blog

  這樣利用多源Dijkstra最短路算法能夠爲每一個三角面片指定一個所屬區域。ci

2:計算種子面片get

  區域增加完成後,須要從新計算每一個區域的種子面片,新的種子面片爲每一個區域最中心的三角面片。所以該階段相鄰三角面片TiTj之間的距離定義爲:it

distance(Ti, Tj) = || cicj ||

其中ci爲三角面片Ti的重心。

  這樣每一個區域能夠找到一個距離邊界最遠的三角面片,即爲新的種子面片。

圖:(上左)原始網格 (上中)原始網格法向 (上右)mean shift聚類

(下左)網格修正法向 (下中)網格分割效果 (下右)網格光順效果

 

 

參考文獻:

[1] Hitoshi Yamauchi, Seungyong Lee, Yunjin Lee, Yutaka Ohtake, Alexander Belyaev, and Hans-Peter Seidel. 2005. Feature Sensitive Mesh Segmentation with Mean Shift. In Proceedings of the International Conference on Shape Modeling and Applications 2005 (SMI '05). IEEE Computer Society, Washington, DC, USA, 238--245.

 

附錄

Mean-shift算法

  利用某個機率密度函數f(x)採樣獲得一系列數據樣本χ = (x1, x2, … , xn)∈Rd。假設咱們須要估計這些樣本的機率密度函數f(·),那麼由核密度估計(kernel density estimation)方法能夠近似獲得其機率密度函數爲:

其中K(x)稱爲核函數(kernel function),h爲帶寬(bandwidth)。核函數知足以下條件:

K(x) ≥ 0 而且

  通常核函數是知足徑向對稱(radially symmetric),便可以表示爲:

其中k(x)稱爲分佈函數(profile function),c爲歸一化參數。

  因而機率密度函數能夠轉化成以下形式:

  通常使用較多的核函數是Gaussian核函數和Epanechnikov核函數,其具體形式以下:

Gaussian核函數:

Epanechnikov核函數:

其中cdd維單位球的體積。

  假設將數據樣本χ聚類成一系列簇,咱們能夠將聚類中心設定爲機率密度函數的局部極值點,而尋找局部極值點的一個最簡單方法就是梯度上升法。

  對機率密度函數求導後獲得:

其中g(x) = -k’(x),m(x)的形式以下:

  上式中的m(x)就是所謂的mean shift向量,它的物理含義就是機率密度函數的梯度,也就是當前點的移動方向和大小。

  利用mean shift算法進行聚類的過程分以下兩步:

  1. 對於每個數據樣本xi∈χ,初始化xiyi[0]

  2. 利用梯度上升方法計算yi[j]直到收斂,yi[j+1] = yi[j] + m(yi[j]),j = 0, 1, 2, …。

  對於以下二維數據樣本,利用核密度估計方法能夠獲得不一樣帶寬下的機率密度函數分佈,而且利用mean shift算法能夠獲得不一樣的聚類結果。

圖:原始二維數據樣本

圖:bandwidth = 2和bandwidth = 0.8所對應的機率密度函數分佈圖

圖:bandwidth = 2和bandwidth = 0.8所對應的mean shift聚類效果

  上述mean shift算法有個簡單的擴展,對於數據樣本χ = {xi= (pi, qi): pi∈P, qi∈Q},每一個樣本由兩部份內容組成,那麼使用多元核密度估計(multivariate kernel density estimation)方法能夠獲得其機率密度函數爲:

  此時mean shift向量爲:

本文爲原創,轉載請註明出處:http://www.cnblogs.com/shushen

 

 

參考:

http://blog.csdn.net/ttransposition/article/details/38514127

相關文章
相關標籤/搜索