彭智東,宣士斌
(廣西民族大學 信息科學與工程學院,廣西 南寧 530006)
圖像分割是將圖像中人們感興趣的部分提取出來的一個過程,是圖像處理環(huán)節(jié)中最關鍵的步驟,直接影響圖像的后續(xù)處理?,F(xiàn)有的圖像分割方法主要分為兩大類:傳統(tǒng)的圖像分割方法和基于特定理論的方法。在基于特定理論方法中,基于圖的方法近年來備受關注,最常見的有minimum cut[1]、average cut[2]、ratio cut[3]、normalized cut[4]、min-max cut[5]。其中min-max cut是一種經(jīng)典的基于圖論的分割方法。
1989年,基于圖論的方法[6]首次引入到圖像處理領域,由于當時技術的限制,該方法并沒有得到較好的發(fā)展。21世紀初,Boykov等[7]通過引入最大流算法[8],提出了一種快速的基于圖論的圖像分割算法,加快了對圖割的研究。在隨后數(shù)年中,圖割算法逐漸應用到各領域,如醫(yī)學[9]、地理[10]、人體行為識別[11]、視頻分割[12]等,使得人們不斷地去改進圖割算法。而對算法的改進,無非是從圖的構造和能量函數(shù)的構造這兩個方面進行。文獻[13-14]使用了分水嶺和均值漂移的方法,將圖像劃分為多個小型區(qū)域,最后使用最大流最小割實現(xiàn)圖像分割。文獻[15]在原有圖割方法的基礎上加入了自適應的形狀先驗模型。文獻[16]在傳統(tǒng)的方法上加入了非局部信息,并且用像素片替代了像素,從算法的效率和效果兩方面提高了算法的性能。文獻[17]使用了對目標和背景種子點特征向量聚類的方法,以改進算法的分割效果。文獻[18-19]通過重新構造邊上的權值和刪除圖中簡單邊的方法來改進算法等。
在上述研究的基礎上,文中提出了一種結合最小生成樹的圖割方法,并通過實驗對其進行驗證,
圖像分割問題從本質(zhì)上來說是像素分配的問題,也可以說是像素的標記問題。給定一個標簽集合L,圖像中的一個像素為Pi(i=1,2,…,n),圖像分割就是對圖像中的每一個像素分配一個標簽Pi∈Lo或者Pi∈Lp(Lo為目標,Lp為背景)的過程。圖割是基于圖論的一種方法,首先將一幅圖像映射為一個網(wǎng)絡圖G=(V,E),在這個圖中有兩類節(jié)點,即普通節(jié)點Pi,端節(jié)點S和T,其中S為前景目標,T為背景目標。邊E={(u,v)|u∈P,v∈P}表示圖中邊的集合,一般的圖割方法中只有相鄰的節(jié)點間才存在邊,每條邊上都有權值ω(u,v)。所要解決的問題就是在已知能量函數(shù)的前提下,如何將這個圖切割開,并且隔開后所花的代價最小。G1,G2為被割開后的子圖。
Cut(G1,G2)min=∑ω(u,v)
(1)
一般情況下,用到的能量函數(shù)的形式為:
E(L)=αR(L)+B(L)
(2)
其中,R(L)為區(qū)域項,決定t-link邊的權值。
(3)
其中,Rp(lp)表示像素p分配給標簽lp的代價,也可以說是Pi∈lp的概率。
(4)
當像素p屬于前景的概率P(lp|obj)大于屬于背景的概率P(lp|bkg)時,就給p分配標簽lp=1,反之,給p分配標簽0。如果全部的像素都被正確劃分后,此時區(qū)域項R(L)的能量值就達到最小。
B(L)表示邊界項,決定n-link邊的權值。
(5)
其中
(6)
(7)
其中,B(L)為權重函數(shù),表示像素p和像素q之間被切割開所要花費的代價;為圖像鄰域,p,q∈表示p和q為兩個相鄰的像素,‖p-q‖表示兩像素點之間的歐氏距離;σ為圖像噪聲參數(shù)。當兩個像素之間的變化不大時,表示它們更可能是圖像的邊界點,它們之間的局部權值就越小,反之亦然。
參數(shù)α是一個作為平衡區(qū)域項與邊界項的平衡參數(shù),α的大小直接會影響到圖像分割的結果。當α越大時,表示分割的結果受區(qū)域項的影響更大,當α=0時,只考慮邊界項。對于α的取值并沒有明確的規(guī)定。文獻[20]中介紹了一種自適應α的方法。
傳統(tǒng)圖割算法的復雜度較高,對于部分圖像來說,還容易造成錯誤的分割。在一幅圖像中,將圖像映射成圖,在圖中可能存在本不應該被割開的邊,然而實際卻被分割開了,這就造成了錯誤的分割。對此,文中借鑒最小生成樹的思想[21],最小生成樹也可以用來做圖像切割。加入最小生成樹后,能有效降低錯誤分割。在實驗中,隨機生成一個3階矩陣,然后將這個矩陣映射成圖,如圖1所示。然后對圖進行最小生成樹處理,結果如圖2所示。
695564141
圖1 隨機3階矩陣
圖2 最小生成樹
由圖2和圖3的比較可以看出,原來每兩個相鄰節(jié)點之間都存在著一條邊,而現(xiàn)在只有部分相鄰節(jié)點之間還存在著邊,另一部分相鄰節(jié)點之間的邊被刪除,并且被刪除邊后的兩個節(jié)點之間的距離也隨之發(fā)生變化。例如,節(jié)點4和7之間的距離為5,節(jié)點8和9之間的距離為3等。
在圖的構造中借鑒最小生成樹的思想,對圖中邊的權值進行了新的定義:
(8)
其中,p,q為圖像中兩個相鄰的像素,p,q?表示像素p,q在最小生成樹中不相鄰;0≤γ≤1為一個調(diào)節(jié)參數(shù),當γ=1時φ退化為傳統(tǒng)權重函數(shù);Spq表示像素p和q在最小生成樹中的相似程度。
(9)
其中,∑ω(p,q)=ω(p,p1)+ω(p1,p2)+…+ω(pn,q)表示從像素p到像素q所經(jīng)過最短路徑的權值之和;d(p,q)表示兩個像素之間的距離,即像素p到q之間最短路徑上邊的條數(shù)。
通過對圖中邊的權值進行重新定義,能夠盡可能地提高圖像分割的精確度,使分割結果更加理想。圖3為加入最小生成樹方法后使用最大流/最小割得到的分割結果。通過實驗證明,該方法有效提高了分割的精確度,但在精確度提高的同時,勢必會增加算法的復雜度,于是考慮從減少圖的節(jié)點上去減少算法運行的時間。因此,引入了一種四叉樹方法[22]來減少圖中節(jié)點的數(shù)量。
令G表示一幅圖像,將G分割成n個子區(qū)域G1,G2,···,Gn的過程就叫分割,滿足的條件如下:
(2)Gi(i=1,2,…,n)是一個連通域;
(3)Gi∩Gj=?,i≠j;
(4)P(Gi)=TRUE;
(5)P(Gi∪Gj)=FALSE,對于任意相鄰像素Gi和Gj。
其中,P(Gi)是定義在集合Gi的點上的邏輯謂詞,?表示空集。
四叉樹的分解步驟如下:
(1)將原圖像分成幾個(一般為4個)大小相同的區(qū)域。