基於隨機游走的三維網格分割算法(Random Walks)


  首先以一維隨機游走(1D Random Walks)為例來介紹下隨機游走(Random Walks)算法,如下圖所示,從某點出發,隨機向左右移動,向左和向右的概率相同,都為1/2,並且到達0點或N點則不能移動,那么如何求該點到達目的地N點的概率。

  該問題可以描述為如下數學形式:

P(0) = 0

P(N) = 1

P(x) = 1/2*P(x - 1) + 1/2*P(x + 1) for x = 1, 2, 3, … , N-1

  如果用矩陣形式描述,即:

       那么通過求解該線性方程組就可以得到各個點到達目的地N點的概率,以上就是一維隨機游走算法原理。

       [Grady et al. 2006]提出了利用隨機游走思想來分割二維圖像,文章將圖像考慮成一張圖(Graph),每個像素對應圖中一個節點,根據亮度差值定義節點間的權重(相當於一維隨機游走中向左和向右的概率),然后用戶指定前景(foreground)和背景(background)標簽(相當於一維隨機游走中N點和0點),通過求解線性方程組就可以得到各個像素點屬於前景或背景的概率,如果將閾值概率設置為0.5,那么就可以分割得到期望的圖像區域。

       [Lai et al. 2008]將這種思想擴展到三維網格分割,文章將網格中每個三角片對應圖中一個節點,利用相鄰三角片之間的二面角來定義節點之間的權重,具體如下:

對於三角片fi,定義一個fi與相鄰三角片fi,k(k = 1, 2, 3)之間幾何差異的函數d(fi, fi,k):

d(fi, fi,k) = η·[1 – cos(dihedral(fi, fi,k))] = η/2·||Ni – Ni,k||2

其中:dihedral(fi, fi,k)代表相鄰三角片fi與fi,k之間的二面角,Ni為三角片fi的法向,對於凹邊η設置為1.0,對於凸邊η設置為0.2。

  將d歸一化:

  節點之間的權重pi,k可以根據函數d(fi, fi,k)給定:

  同樣通過求解線性方程組可以得到網格分割效果。

  [Zhang et al. 2010]對[Lai et al. 2008]的網格分割算法做了部分改進,文章將網格中每個頂點對應圖中一個節點,由於一個網格的三角片數量通常是頂點數量的2倍左右,這樣求解的方程變量數就會減少一半左右,計算速度就會得到提高。

效果:

 

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

 

 

參考文獻:

[1] Grady, L., "Random Walks for Image Segmentation," in Pattern Analysis and Machine Intelligence, IEEE Transactions on , vol.28, no.11, pp.1768-1783, Nov. 2006

[2] Yu-Kun Lai, Shi-Min Hu, Ralph R. Martin, and Paul L. Rosin. 2008. Fast mesh segmentation using random walks. In Proceedings of the 2008 ACM symposium on Solid and physical modeling (SPM '08). ACM, New York, NY, USA, 183-191.

[3] Zhang, J., Wu, C., Cai, J., Zheng, J. and Tai, X.-c. (2010), Mesh Snapping: Robust Interactive Mesh Cutting Using Fast Geodesic Curvature Flow. Computer Graphics Forum, 29: 517–526.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM