圖割論文閱讀筆記:Interactive Graph Cuts for Optimal Boundary & Region Segmentation of Objects in N-D Images

Interactive Graph Cuts for Optimal Boundary & Region Segmentation of Objects in N-D Images

翻譯總結下這篇文章,如果有理解有誤的地方,請各位大神指出。

摘要
在本文中,我們描述了一種用於N維圖像的通用交互式分割的新技術。用戶將某些像素標記爲“對象”或“背景”,以爲分割提供硬約束。 附加軟約束包括邊界和區域信息。Graph Cuts用於找到N維圖像的全局最優分割。 並在滿足硬約束和軟約束的情況下得到很好的分割。我們的分割的數量是不受限制的,並且“對象”和“背景”段可以是幾個獨立的區域。 並通過一個新的max-flow算法可以快速實現我們的分割方法。

1. Introduction
由於自動分割不完美,交互式分割越來越受歡迎了。我們的目標是一個通用的交互分割技術來分割目標和背景。首先通過用戶提供的硬約束來初始分割,然後,圖像剩下的部分在滿足硬約束的條件下,通過計算全局最優值來自動分割。Cost函數由邊界項和分割的區域屬性來定義(應該就是邊界項和區域項)。而邊界和區域的cost函數也就是軟約束。 當用戶增加或者刪除硬約束(用戶提供的種子像素點)時,全局最優分割也能很快計算出來。所以用戶能得到想要的圖像分割效果。
我們的方法主要的優勢之一是有一個定義清晰的cost函數,從而能很好的得到全局最優的結果。之前的一些方法都沒把cost函數定義好,bulabula,,,,。所以分割結果更可靠。
其cost函數同時包含區域和邊緣的性質也是很重要的。考慮P是一個數據點集合,N是P中一個元素p和他的鄰域的無序對{p,q}(不管p,q的順序)的集合,以及由N表示的一些鄰域系統。比如,P是2D網格中的像素點,N就是一個像素點的8鄰域像素對的集合。令A=(A1,A2,….A|P|)是一個二進制vector,對應P中的像素p。每個Ap不是目標,就是背景(比如Ap爲0是背景,爲1是目標)。那麼A就定義了一個分割。現在就可以定義軟分割了,也就是cost函數。
這裏寫圖片描述
係數λ>=0是區域項R(A)相對於邊界項B(A)的權重係數。其中,區域項R(A)是把像素p分配到目標或者背景的懲罰,對應Rp(“obj”)和Rp(“bkg”)。例如,R(·)可能反應瞭如何由一個給定的強度模型來確定像素點p的強度(反正這玩意兒是能求出來的,後面會有介紹)。
邊界項B(A):B{p,q}是p和q之間不連續性的懲罰,一般而言,p和q相似性越高,B{p,q}越大,反之亦然。B{p,q}也能隨着p和q的距離函數減小。B{p,q}可以由局部梯度強度、拉普拉斯過零點、梯度方向等來決定。B(A)的後一項的意思就是p和q不能是同一像素點。
(E也就是邊界項和區域項權衡之後的最小值)
之後就介紹了本文硬約束的優勢:用矩形框選目標,簡單快捷,而且也支持直接標記目標和背景的方法。
只有硬約束不行,所以本文加入了軟約束。同時也說明了如果用戶再改變硬約束的話,怎樣高效的重新計算。
本文的graph cut從[7,8]中組合優化來,並用了新的“max-flow”[2]。之後的第2節解釋術語並介紹背景,第三節是本文分割方法的細節,第四節實驗,第五節總結。

2. graph cuts and cumputer vision
一個無向圖G=[V,E]由節點的組合V和連接這線節點的邊的組合E組成。每一條邊都有一個非負權重w。當然還有兩個頂點,只有出度的起點和只有入度的終點(圖論中有相關知識,簡單的來說就是起點只有流出的,終點只有流入的,這樣組成的圖才能用max-flow理論)。由兩個終點促使割集的形成,其中割集是E的子集。一般而言,割的cost是割所經過的邊的權重和。|C|=w1+w2+….+wc(1到c是被分割的邊)。
Graph Cuts非常適用與圖像分割。其節點對應像素點,邊的權值對應像素點之間的相關性。如圖,是一個簡單的例子。Graph cut的3x3圖像分割示意圖:我們取兩個種子點(就是人爲的指定分別屬於目標和背景的兩個像素點),然後我們建立一個圖,圖中邊的粗細表示對應權值的大小,然後找到權值和最小的邊的組合,也就是(c)中的cut,即完成了圖像分割的功能。
這裏寫圖片描述
衆所周知,低階多項式能有效的計算有兩個終點的圖怎樣得到全局最小割。那接下來的第三節,我們將介紹如何設置兩個終點的圖,從而得到最小割,在滿足硬約束的條件下。
接下來兩段bulabula,就是用自己的新max-flow算法來實現圖的分割。

3. Segmentation Technique
這節講了本文分割算法的細節。設O和B分別是標記爲目標和背景的像素點的集合。所以O屬於P,B屬於P且O和B沒有交集。切記我們的目標是在滿足硬約束的條件下計算分割集合A的全局最小值。
一般的流程就像上圖一樣。給一個圖以及我們由圖生成的圖和兩個終端。 邊權重反映d的是成本函數的區域(2)和邊界(3)項中的參數,以及圖像中的種子的已知位置。在圖的節點和邊權重生成之後,就是要通過分割兩個終端來求全局最優最小割了。在上圖中,最小割恰好把圖像分割成了一個前景和一個背景。但一般而言,背景和前景的數量是任意的。比如在第四節中前景和背景就被分割成了孤立的小塊。
下面我們描述圖的細節,並證明所獲得的分割是最優的。 爲了分割給定的圖像,我們創建了一個圖形G = [V,E],其中節點對應於圖像的像素p∈P。 有兩個附加節點:代表前景的源節點S和代表背景的終點T。所以,G的節點V=P+S+T。
邊E的集合包括兩種類型的無向邊:像素點之間的邊n-links和像素與兩個終端的邊t-links。 每個像素p兩個t-links,{p,S}和{p,T}。 N(N是P中一個元素p和他的鄰域的無序對{p,q},前邊有講)中的每對相鄰像素{p,q}都由一個n-links連接。 在不引入任何歧義的情況下,連接一對鄰居p和q的n-links將由{p,q}表示。 因此,E=N+(所有的){p,S}和{p,T}。
具體的邊權值對應下表:
這裏寫圖片描述
現在圖G已經構建好了。這時就能通過求G的最小割來分割圖像了。圖的最小割C能通過計算兩個終端的圖割用多項式時間來計算出來(第二節)(設上表中的權值都是非負的)(我們的算法要求權值是非負的,所以我們對每個懲罰都加了一個大的正數,以確保權值非負。當然,由於整個公式都加了正數,所以不影響最後結果)
下邊我們介紹最小割C如何定義,並證明分割的圖像是最佳的。我們需要先介紹一個技術引理。假設F代表G中所有可行的C的集合,那麼:
1.C在每個P上只切割一個t-links(就是要麼切割爲前景,要麼切割爲背景)
2.如果相鄰像素對{p,q}是一個割,那麼p,q就分別連接不同的終端。(p,q一個是前景,一個是背景,他們就有一個割)
3.如果p屬於前景,那麼p和背景終點T就是一個割
4.如果p屬於背景,那麼p和前景起點S就是一個割
引理 一個圖的最小割是存在的
證明,其實就是對上邊4點的解釋。Bulabula…反正任何一個可行割都能精確分割p的兩個t-links之一,把他劃分爲前景或者背景。下邊的定理完整的介紹了本文算法。
對於割集F中的任意一個割C,我們定義與之對應的唯一一個圖形分割A(C):
這裏寫圖片描述
定理 在滿足硬約束的條件下,一個圖的最小割能最小化能量公式。(也就是求割的過程就是最小化能量的過程)
證明:使用表格中的數據,定義一個可行割集F,通過(6)l來表明F中的一個割C:
這裏寫圖片描述
也就是|C|=E(A(C))-const(C),其中A(C)都滿足硬約束。事實上,(6)是F中所有C和H(the set H of all assignments A)中所有A的一一對應的關係。然後
這裏寫圖片描述
就被證明了。
這部分我們說明了我們的算法在滿足硬約束的條件下能有效的分割。具體來說,假設用最大流算法來生成圖的最小割。最大流算法在給定G的邊權重的情況下逐漸增加從S到T的flow。最大流量飽和時終止。飽和的邊對應圖的最小割,從而給出最優解。(也就是最大流等於最小割的定理。Max-flow有兩種經典的方法,增廣路徑就是其中之一,而作者的這個方法就是增廣路徑的改進方法。增廣路徑算法遵循循循漸進的原則,不斷在圖上查找從S到T的可用路徑,從0開始慢慢提升圖的流量到最大。可以參考圖論方面的知識,還有作者的論文:An Experimental Comparison of Min-cut/max-flow Algorithms for Energy Minimization in Vision)
假設已經通過用戶交互的種子點得出了最優分割。這時用戶又加了前景的標記,也就是種子點,且不同於之前的種子點。我們就需要改變像素點p的兩個t-links的costs了。
這裏寫圖片描述
然後再計算新的圖的最大流最小割。實際上,我們能從第一次計算的結果來開始flow的建立。唯一的問題是上述邊權重的重新分配會減少一些邊的權重。如果一個flow通過這樣的邊,就會破壞整個flow的一致性。但是,增加邊緣的權重就不是問題了。這下我們就能解決問題了,如下。
爲了計算新加的目標種子像素點,我們增加了t-links的權重,如下表:
這裏寫圖片描述
這個新的costs和邊緣權重表(最前邊那張表)是一致的,因爲兩個t-links中額外的cp沒有改變最佳割。然後,從前一個flow就能有效的得到新圖中的最大流,而不用重新計算。
同樣的,增加背景或者刪除種子點也是童謠的道理,在相應的像素點上增加兩個t-links的權重。這個新的costs的加減的常數應該與邊緣權重表一致。

4. Example
在照片/視頻編輯,和醫療數據處理等方面做了實驗。
我們當前的實現實際上對用戶輸入的種子做了雙重使用。首先,像第三節那樣,提供了硬約束。另外,我們用標記的像素強度來得到目標和背景的強度分佈直方圖:Pr(I|O)和Pr(I|B)(或者從之前的計算當中獲得)。然後對直方圖做負對數似然來設置區域懲罰Rp(·):
這裏寫圖片描述
這種懲罰要通過底層MAP_MRF來激發。(不懂)
使用一個ad-hoc(點對點)函數來設置邊緣懲罰
這裏寫圖片描述
像素強度相差越小,懲罰越大,像素強度相差越大,懲罰越小。直觀的來說,這個函數就對應於相鄰像素之間分佈的噪聲。因此,σ能被估計爲“相機噪點”。(這裏和前邊的說法不太一樣)
注意我們在2D中用的8鄰域系統,3D中用的26鄰域系統。用333MHz Pentium III處理器。用一種新的“max-flow”算法(也就是上邊提到的作者提出的基於增廣路徑的改進方法)。
下邊就是幾個實驗和最後的介紹了….

最後總結一下。首先構建一個圖,這個圖除了像素點對應的節點之外,還有兩個終端節點。此時一個圖就有兩類節點和兩類邊。那麼,普通節點之間邊的權重由邊界項決定;普通節點與兩個終點的邊權重由區域項決定。組成圖後,使用作者改進的max-flow來分割圖。
只看論文的話一般是沒法完全理解的,需要對應代碼一起。但是我沒找到這篇論文的代碼,請問有人有代碼麼。
點這,作者主頁上有一些代碼,包括max-flow

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章