張小鳳,劉向陽
(河海大學(xué) 理學(xué)院,江蘇 南京 211100)
圖像分割是指將圖像分割成一些互不重疊的區(qū)域,各區(qū)域內(nèi)部具有相同或相近的某些特定屬性,而不同區(qū)域之間的屬性則相差明顯,其實質(zhì)就是按照像素的屬性進行聚類的過程[1-2]。圖像分割是圖像處理與計算機視覺領(lǐng)域的基本技術(shù)之一,它是圖像分析和模式識別的重要組成部分,其目的是為了將圖像中人們所感興趣的部分提取出來,為后續(xù)處理分析打下基礎(chǔ)[3]。因為聚類圖像分割方法是一種無監(jiān)督的機器學(xué)習(xí)算法,所以在圖像分割中應(yīng)用廣泛。
傳統(tǒng)的聚類圖像分割方法有k-means聚類算法[4]、模糊聚類算法[5-6]、基于密度的聚類算法[7]和譜聚類算法[8]等。k-means聚類算法思想簡單,實現(xiàn)方便,但由于其聚類中心的選取具有不確定性,不能得到理想的結(jié)果。FCM[9-10]作為模糊聚類算法的代表,有很多優(yōu)點,但也存在聚類數(shù)目的選取以及算法迭代復(fù)雜度過高等問題?;诿芏鹊木垲愃惴ň垲愃俣瓤烨夷軌蛴行幚碓肼朁c,但當(dāng)聚類的密度不均勻、聚類間距相差很大時,聚類質(zhì)量較差,且可實性很差。譜聚類算法只需要數(shù)據(jù)之間的相似度矩陣,所以對于處理稀疏數(shù)據(jù)的聚類很有效。它是屬于圖論的范疇,因此不可避免地存在圖論分割算法的缺點,當(dāng)聚類的維度非常高時,譜聚類的運行速度和最終分割結(jié)果都會受到影響。
上述聚類算法都是基于單個像素進行圖像分割的,這樣可能造成圖像分割結(jié)果的不穩(wěn)定性,且有很大的噪音。針對這些不足,提出了基于圖像超像素分析的圖像分割方法。該方法是基于超像素對圖像進行聚類,因為超像素更有利于局部特征的提取與結(jié)構(gòu)信息的表達,并且能夠大幅降低后續(xù)處理的計算復(fù)雜度[11]。首先利用SLIC算法[12]對圖像生成超像素并用其代替像素作為圖像處理的基本單元[13],然后計算每個超像素的顏色均值,提取超像素的顏色均值、聚類中心的空間位置以及顏色均值的方差作為超像素的特征屬性,再計算兩兩超像素之間的距離,得到超像素的距離矩陣。最后利用基于密度峰值的聚類算法(DPCA)[14]對超像素進行聚類。
超像素[15]是指具有相似顏色、亮度、紋理等特征的像素組成的有一定視覺意義的不規(guī)則像素塊,即同一個超像素內(nèi)的像素具有很大的相似性。它是利用像素之間特征的相似性將像素進行分組,用少量的超像素代表大量的像素來表達圖片特征。而且超像素能捕獲圖像的冗余信息,降低圖像后續(xù)處理的復(fù)雜度,通常作為圖像處理的預(yù)處理步驟。超像素已經(jīng)成為計算機視覺領(lǐng)域中的重要技術(shù),廣泛應(yīng)用于圖像分割、圖像分類以及目標(biāo)跟蹤等圖像分析領(lǐng)域。
簡單的線性迭代聚類算法(SLIC)[12]能生成大小均勻、形狀規(guī)則的超像素,且邊界黏連、運算速度和分割質(zhì)量都優(yōu)于其他的超像素分割算法。SLIC算法主要是應(yīng)用k-means生成超像素,首先將彩色圖片轉(zhuǎn)換為CIELAB顏色空間和空間坐標(biāo)下的5維特征向量[Labxy]T,用5維特征向量來構(gòu)造像素的度量標(biāo)準(zhǔn),然后對像素進行聚類,完成超像素過程。
具體步驟如下:
(2)在種子點的3×3鄰域內(nèi),將種子點移到該鄰域內(nèi)梯度值最小的地方。這樣做的目的是為了避免種子點落在梯度較大的輪廓邊界上,以免影響后續(xù)聚類效果。
(3)在每個種子點周圍的鄰域內(nèi)為每個像素點分配類標(biāo)簽,對于每個搜索到的像素點,分別計算它到該種子點的距離,將它分配到與其距離最近的類內(nèi)。重復(fù)此步驟直到殘余誤差收斂。這里的距離包括顏色空間和距離空間,搜索范圍為2S×2S,相比k-means算法要計算每個像素之間的距離,SLIC算法很大程度上提高了計算的速度。
距離定義如下:
(1)
其中,dc,ds分別表示顏色距離和空間距離;S表示種子點之間的距離;m表示顏色與空間差異的權(quán)重,m越大生成的超像素越緊湊,m越小生成的超像素越不規(guī)則,但圖像邊界黏連很好。
將每個超像素看成圖像處理的基本單元[8],計算兩兩超像素之間的歐氏距離dij,形成一個m×m維的矩陣d=(dij)m×m,其中dij定義如下:
(2)
(3)
(4)
dij=d1c+γd1s+αd3
(5)
其中,d1,d1和d3分別表示超像素Ci和Cj之間的顏色距離、中心位置距離和超像素的協(xié)方差距離;m為超像素個數(shù);γ為中心位置權(quán)重,當(dāng)γ越大時,距離權(quán)重較大,但此時圖像分割越不穩(wěn)定,可能把不一樣的區(qū)域分割在一起,當(dāng)γ越小時,會把同一個區(qū)域分割成多個部分;α為紋理特征權(quán)重,當(dāng)α越大時,圖像的紋理分割得越清晰,可能會把同一個區(qū)域分成很多小的部分。文中當(dāng)γ的取值范圍為[0,1],α取值范圍為[0,0.1]時,分割效果最好。在以下實驗中,將γ,α設(shè)置為最佳值。
2014年Alex Rodriguez[14]等提出了基于密度峰值的聚類算法(DPCA)。DPCA的主要思想是計算每個像素的局部密度值ρi和“距離”δi(δi是指與具有更高局部密度點的距離),以尋找聚類中心。聚類中心具有兩個特點:第一,其本身的密度很大,即它被密度均不超過它的鄰居所包圍;第二,與其他局部密度更大的數(shù)據(jù)點之間的距離相對更大。文中用該算法實現(xiàn)了對超像素的聚類,且詳細過程如下所述。
(6)
其中函數(shù)
(7)
參數(shù)dc為截斷距離,使得每個數(shù)據(jù)點的平均鄰居個數(shù)約為總數(shù)據(jù)點的1%~2%。由定義可知,ρi表示S中與Ci之間的歐氏距離小于dc的超像素的個數(shù),定義如下:
(8)
由定義可知,當(dāng)Ci具有最大局部密度時,δi表示S中與Ci距離最大的超像素與Ci之間的距離;否則,δi表示在所有局部密度大于Ci的超像素中,與Ci距離最小的超像素與Ci之間的距離。
這里把每個超像素看作一個數(shù)據(jù)點。一般選取局部密度較大的且同時有很大“距離”(與最近鄰的高局部密度的超像素的距離)的數(shù)據(jù)點為聚類中心。計算綜合考慮ρ值和δ值的一個量,定義為:
γi=ρiδi,i∈IS
(9)
對于非聚類中心數(shù)據(jù)點的歸類,是按照ρ值從大到小的順序進行遍歷的,它與局部密度比它大的最近鄰的數(shù)據(jù)點為同一個類簇。
(10)
文中方法主要包括兩步,第一步是利用SLIC算法對圖像進行超像素分割,生成超像素,然后計算每個超像素的顏色均值,提取超像素的特征屬性[liaibixiyidlidaidbi]T,之后再利用式5計算兩兩超像素之間的歐氏距離dij,得到超像素的距離矩陣d=(dij)m×m;第二步是把生成的超像素作為圖像處理的基本單元,利用基于密度峰值的聚類算法對生成的超像素進行聚類。文中算法流程如圖1所示。
首先輸入要分割的圖像、超像素的大小和最終分割類簇,根據(jù)圖像的大小計算超像素個數(shù),并在圖像內(nèi)均勻分配種子點(等于超像素個數(shù)),在聚類中心的2S×2S鄰域內(nèi)利用式1計算每個像素到聚類中心的距離D;然后將每個像素分配到距離其最近的聚類中心所在的類簇中,迭代更新聚類中心的位置,得到超像素,再根據(jù)式5計算兩兩超像素之間的距離dij,得到超像素的距離矩陣d=(dij)m×m,并計算每個超像素的局部密度ρi和與局部密度比它大的最近鄰的超像素的距離δi;最后對超像素進行聚類,輸出分割結(jié)果。
圖1 文中算法流程
為了驗證該方法的可行性和有效性,選取了一些自然圖像和紋理圖像進行分割實驗,并與SLIC算法和DPCA聚類算法進行了比較。
紋理圖像的分割結(jié)果如圖2所示。可以看到,使用SLIC算法進行紋理圖像分割不能把區(qū)域分割開來;使用DPCA聚類算法對圖像進行分割會產(chǎn)生很大的噪聲,并且把同一區(qū)域分割成很多小的部分。圖(d)是文中算法的分割結(jié)果。對于每種對比算法,都將內(nèi)部參數(shù)設(shè)置為最佳;對于文中算法,將超像素的大小設(shè)置為K=80或K=100,從上至下分別取γ=0.5,α=0.05,γ=0.5,α=0.001。由實驗結(jié)果可以看到,文中算法得到的分割結(jié)果要優(yōu)于其他兩種方法。
圖2 紋理圖像的圖像分割結(jié)果
自然圖像的圖像分割結(jié)果如圖3所示。可以看到,使用SLIC算法進行圖像分割不能把目標(biāo)物與背景分割開來;圖(c)中,第一張圖DPCA聚類算法未能把目標(biāo)物分割出來,其他兩張圖的分割結(jié)果也都有很大的噪聲;圖(d)是文中算法分割結(jié)果。將超像素的大小設(shè)置為K=80或K=100,從上至下分別取γ=0.1,α=0.05,γ=0.5,α=0.01,γ=0.1,α=0.01。由仿真實驗結(jié)果可看出,文中算法能夠很好地將目標(biāo)物與背景分割出來,且有相對較好的分割效果。
圖3 自然圖像的圖像分割結(jié)果
圖4中,圖(a)、(c)為原始圖像,圖(b)、(d)為文中算法分割結(jié)果。從圖(b)可看出,因為目標(biāo)物的顏色不相似,小狗身上的黑色區(qū)域不連通,該算法不能把目標(biāo)物分割開。而在對超像素進行聚類的過程中,缺乏對空間信息的考慮,所以對這類圖像進行圖像分割時,會把原本應(yīng)該分割成同一區(qū)域的分割成了很多部分,達不到分割的效果。從圖(d)可看出,天空、白云和山脈分割效果較好,而目標(biāo)物因為與背景顏色很相近,未把它分割出來。這些缺點也是后續(xù)要繼續(xù)努力的地方。
圖4 文中算法分割結(jié)果
針對傳統(tǒng)圖像分割方法基于單個像素對圖像進行分割造成的分割結(jié)果不穩(wěn)定等問題,提出了一種基于圖像超像素分析的圖像分割方法。通過構(gòu)建超像素的距離矩陣,將SLIC算法與DPCA聚類算法相結(jié)合,實現(xiàn)對圖像的分割。實驗結(jié)果表明,該方法有較好的分割效果,能夠?qū)⒛繕?biāo)物和背景清晰地分割開。但該方法也存在一定的不足,未來做進一步改進,把SLIC算法和DPCA聚類算法更好地結(jié)合在一起,使分割效果達到更好。