映像分割之(二)Graph Cut(圖割)

來源:互聯網
上載者:User

標籤:改進   基礎   tar   實現   分配   http   匯聚   關聯   比較   

[email protected]

http://blog.csdn.net/zouxy09

 

       上一文對主要的分割方法做了一個概述。那下面我們對其中幾個比較感興趣的演算法做個學習。下面主要是Graph Cut,下一個博文我們再學習下Grab Cut,兩者都是基於圖論的分割方法。另外OpenCV實現了Grab Cut,具體的源碼解讀見博文更新。接觸時間有限,若有錯誤,還望各位前輩指正,謝謝。

       Graph cuts是一種十分有用和流行的能量最佳化演算法,在電腦視覺領域普遍應用於前背景分割(Image segmentation)、立體視覺(stereo vision)、摳圖(Image matting)等。

       此類方法把映像分割問題與圖的最小割(min cut)問題相關聯。首先用一個無向圖G=E>表示要分割的映像,V和E分別是頂點(vertex)和邊(edge)的集合。此處的Graph和普通的Graph稍有不同。普通的圖由頂點和邊構成,如果邊的有方向的,這樣的圖被則稱為有向圖,否則為無向圖,且邊是有權值的,不同的邊可以有不同的權值,分別代表不同的物理意義。而Graph Cuts圖是在普通圖的基礎上多了2個頂點,這2個頂點分別用符號”S”和”T”表示,統稱為終端頂點。其它所有的頂點都必須和這2個頂點相連形成邊集合中的一部分。所以Graph Cuts中有兩種頂點,也有兩種邊。

第一種頂點和邊是:第一種普通頂點對應於映像中的每個像素。每兩個鄰域頂點(對應於映像中每兩個鄰域像素)的串連就是一條邊。這種邊也叫n-links。

第二種頂點和邊是:除映像像素外,還有另外兩個終端頂點,叫S(source:源點,取源頭之意)和T(sink:匯點,取匯聚之意)。每個普通頂點和這2個終端頂點之間都有串連,組成第二種邊。這種邊也叫t-links。

 

       就是一個映像對應的s-t圖,每個像素對應圖中的一個相應頂點,另外還有s和t兩個頂點。有兩種邊,實線的邊表示每兩個鄰域普通頂點串連的邊n-links,虛線的邊表示每個普通頂點與s和t串連的邊t-links。在前後景分割中,s一般表示前景目標,t一般表示背景。

       圖中每條邊都有一個非負的權值we,也可以理解為cost(代價或者費用)。一個cut(割)就是圖中邊集合E的一個子集C,那這個割的cost(表示為|C|)就是邊子集C的所有邊的權值的總和。

         Graph Cuts中的Cuts是指這樣一個邊的集合,很顯然這些邊集合包括了上面2種邊,該集合中所有邊的斷開會導致殘留”S”和”T”圖的分開,所以就稱為“割”。如果一個割,它的邊的所有權值之和最小,那麼這個就稱為最小割,也就是圖割的結果。而福特-富克森定理表明,網路的最大流max flow與最小割min cut相等。所以由Boykov和Kolmogorov發明的max-flow/min-cut演算法就可以用來獲得s-t圖的最小割。這個最小割把圖的頂點劃分為兩個不相交的子集S和T,其中s ∈S,t∈ T和S∪T=V 。這兩個子集就對應於映像的前景像素集和背景像素集,那就相當於完成了映像分割。

        也就是說圖中邊的權值就決定了最後的分割結果,那麼這些邊的權值怎麼確定呢?

       映像分割可以看成pixel labeling(像素標記)問題,目標(s-node)的label設為1,背景(t-node)的label設為0,這個過程可以通過最小化圖割來最小化能量函數得到。那很明顯,發生在目標和背景的邊界處的cut就是我們想要的(相當於把映像中背景和目標串連的地方割開,那就相當於把其分割了)。同時,這時候能量也應該是最小的。假設整幅映像的標籤label(每個像素的label)為L= {l1,l2,,,, lp },其中li為0(背景)或者1(目標)。那假設映像的分割為L時,映像的能量可以表示為:

E(L)=aR(L)+B(L)

       其中,R(L)為地區項(regional term),B(L)為邊界項(boundary term),而a就是地區項和邊界項之間的重要因子,決定它們對能量的影響大小。如果a為0,那麼就只考慮邊界因素,不考慮地區因素。E(L)表示的是權值,即損失函數,也叫能量函數,圖割的目標就是最佳化能量函數使其值達到最小。

地區項:

,其中Rp(lp)表示為像素p分配標籤lp的懲罰,Rp(lp)能量項的權值可以通過比較像素p的灰階和給定的目標和前景的灰階長條圖來獲得,換句話說就是像素p屬於標籤lp的機率,我希望像素p分配為其機率最大的標籤lp,這時候我們希望能量最小,所以一般取機率的負對數值,故t-link的權值如下:

Rp(1) = -ln Pr(Ip|’obj’); Rp(0) = -ln Pr(Ip|’bkg’)

        由上面兩個公式可以看到,當像素p的灰階值屬於目標的機率Pr(Ip|’obj’)大於背景Pr(Ip|’bkg’),那麼Rp(1)就小於Rp(0),也就是說當像素p更有可能屬於目標時,將p歸類為目標就會使能量R(L)小。那麼,如果全部的像素都被正確劃分為目標或者背景,那麼這時候能量就是最小的。

邊界項:

 

        其中,p和q為鄰域像素,邊界平滑項主要體現分割L的邊界屬性,B

可以解析為像素p和q之間不連續的懲罰,一般來說如果p和q越相似(例如它們的灰階),那麼B

越大,如果他們非常不同,那麼B

就接近於0。換句話說,如果兩鄰域像素差別很小,那麼它屬於同一個目標或者同一背景的可能性就很大,如果他們的差別很大,那說明這兩個像素很有可能處於目標和背景的邊緣部分,則被分割開的可能性比較大,所以當兩鄰域像素差別越大,B

越小,即能量越小。

        好了,現在我們來總結一下:我們目標是將一幅映像分為目標和背景兩個不相交的部分,我們運用圖分割技術來實現。首先,圖由頂點和邊來組成,邊有權值。那我們需要構建一個圖,這個圖有兩類頂點,兩類邊和兩類權值。普通頂點由映像每個像素組成,然後每兩個鄰域像素之間存在一條邊,它的權值由上面說的“邊界平滑能量項”來決定。還有兩個終端頂點s(目標)和t(背景),每個普通頂點和s都存在串連,也就是邊,邊的權值由“地區能量項”Rp(1)來決定,每個普通頂點和t串連的邊的權值由“地區能量項”Rp(0)來決定。這樣所有邊的權值就可以確定了,也就是圖就確定了。這時候,就可以通過min cut演算法來找到最小的割,這個min cut就是權值和最小的邊的集合,這些邊的斷開恰好可以使目標和背景被分割開,也就是min cut對應於能量的最小化。而min cut和圖的max flow是等效的,故可以通過max flow演算法來找到s-t圖的min cut。目前的演算法主要有:

1) Goldberg-Tarjan

2) Ford-Fulkerson

3) 上訴兩種方法的改進演算法

 

權值:

 

         Graph cut的3x3映像分割:我們取兩個種子點(就是人為的指定分別屬於目標和背景的兩個像素點),然後我們建立一個圖,圖中邊的粗細表示對應權值的大小,然後找到權值和最小的邊的組合,也就是(c)中的cut,即完成了映像分割的功能。

上面具體的細節請參考:

《Interactive Graph Cuts for Optimal Boundary & Region Segmentation of Objects in N-D Images》(Boykov,iccv01)這篇paper講怎麼用graphcut來做image segmentation。

在Boykov 和 Kolmogorov 倆人的首頁上就有大量的code。包括maxflow/min-cut、stereo algorithms等演算法:

http://pub.ist.ac.at/~vnk/software.html

http://vision.csd.uwo.ca/code/

康奈爾大學的graphcuts研究首頁也有不少資訊:

http://www.cs.cornell.edu/~rdz/graphcuts.html

《Image Segmentation: A Survey of Graph-cut Methods》(Faliu Yi,ICSAI 2012)

分享:   

映像分割之(二)Graph Cut(圖割)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.