劉 洋,周寧寧
(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 南京 210046)
圖像分割是計(jì)算機(jī)視覺領(lǐng)域的關(guān)鍵技術(shù)之一,是一個(gè)提取圖像中感興趣或者有意義的像素集合和特征的過程。圖像的特征有很多種,可以是像素的灰度值、顏色和紋理等圖像原有的特征,也可以是直方圖等經(jīng)過處理后的非圖像原有的特征。圖像分割的目標(biāo)就是把一幅圖像分成幾個(gè)子區(qū)域,這些子區(qū)域的劃分是基于圖像的某個(gè)特征的,而且相同區(qū)域內(nèi)某個(gè)特征很相似,不同區(qū)域內(nèi)的某個(gè)特征有著顯著區(qū)別。圖像分割是圖像分析以及圖像處理必不可少的步驟,在某種意義上,很多后續(xù)的圖像處理的質(zhì)量取決于圖像分割的質(zhì)量。
近年來,新的數(shù)學(xué)理論和研究不斷出現(xiàn),每個(gè)數(shù)學(xué)理論都被學(xué)者們進(jìn)行二次研究,并應(yīng)用到圖像分割領(lǐng)域,所以有許多結(jié)合了一些具體的理論、方法和工具的圖像分割技術(shù)被提出[1]。由于圖像分割技術(shù)不存在一般性的理論,因此每當(dāng)數(shù)學(xué)界有新的理論和方法問世時(shí),學(xué)者們就會把它用于圖像分割領(lǐng)域,因此一直都有新的獨(dú)特圖像分割算法被提出。
基于區(qū)域的分割方法是根據(jù)相似性準(zhǔn)則,將圖像劃分為不同的區(qū)域[2]。一組像素集合可以代表相應(yīng)的增長區(qū)域,遍歷種子點(diǎn),并把它歸于符合的種子像素集合,直到所有的像素被歸并完成[2]。分水嶺分割方法是一種基于數(shù)學(xué)形態(tài)學(xué)和拓?fù)淅碚摰姆指罘椒?,其基本思想是利用類比圖像處理的地形測繪,將圖像的每個(gè)像素灰度值代表點(diǎn)的高程,每一個(gè)局部最小值和影響的地區(qū)稱為集水盆地,盆地的邊界形成了一個(gè)分水嶺。之所以叫分水嶺算法,是因?yàn)樗c水勢淹沒的過程比較相似,首先淹沒的是圖像的最低處,然后整幅圖像被慢慢淹沒,當(dāng)完全淹沒圖像時(shí),它會溢出,然后在溢水區(qū)域建成。重復(fù)這一過程,直到整個(gè)圖像的所有點(diǎn)被淹沒,然后建立一系列水壩,就變成了每一個(gè)流域的分水嶺。分水嶺算法是一種經(jīng)典而有效的分割方法,但受噪聲的影響較大[3]。
模糊集理論和系統(tǒng)是近年來一個(gè)非常流行的研究領(lǐng)域,該方法可以提高模式識別的精確率,可以解決一系列不確定問題,比如不同程度的信息不完整、不精確和模糊等,已成為圖像分割的一個(gè)重要的數(shù)學(xué)工具[4]。
20世紀(jì)80年代,人工智能概念被提出,近年來發(fā)展迅猛,在圖像分割領(lǐng)域也有其用武之地,因此出現(xiàn)了基于神經(jīng)網(wǎng)絡(luò)的圖像分割技術(shù)。利用神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像分割,主要是利用神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)確定圖像分割所需要的數(shù)據(jù),比如節(jié)點(diǎn)之間邊的權(quán)值,然后輸入訓(xùn)練完成的數(shù)據(jù)對圖像進(jìn)行重新分割[5]。
基于圖論的圖像分割也是熱點(diǎn)研究課題[6],并且發(fā)展迅速,已經(jīng)有了很多成熟的算法。在該算法中,圖像用帶權(quán)的無向圖表示,圖像的像素點(diǎn)用無向圖的節(jié)點(diǎn)表示,將無向圖邊的權(quán)值視為圖像像素間的相似度,通過剪切無向圖的邊,得到一個(gè)圖割,當(dāng)一個(gè)圖割的邊集合權(quán)重之和最小時(shí),邊稱為一個(gè)最小割,這就是圖割的最終結(jié)果。換句話說,基于圖論的圖像分割是一個(gè)最優(yōu)化問題,不斷優(yōu)化經(jīng)過分割后的邊集合的權(quán)值來達(dá)到一個(gè)最小割。基于圖論的分割算法首先將圖像映射為帶權(quán)無向圖G=(V,E),圖像中的每個(gè)像素點(diǎn)和相鄰像素點(diǎn)之間的連接分別用無向圖的節(jié)點(diǎn)N∈V和無向圖的每條邊e∈E表示,邊的權(quán)值表示相鄰像素在灰度、紋理等特征上的相似程度。而圖的一個(gè)剪切可以用對圖的一個(gè)分割s來表示,被分割的每個(gè)區(qū)域C∈S對應(yīng)著圖中的一個(gè)子圖。而分割的最佳原則是保持在同一個(gè)子圖之內(nèi)的相似性最大,而不同子圖之間的相似性保持最小。除去不需要的邊,劃分成幾個(gè)子圖的無向圖,實(shí)現(xiàn)分割,這是基于圖論圖像分割算法的核心和本質(zhì)。GrabCut是一種基于圖論的分割方法[7-9],針對GrabCut圖像分割方法時(shí)間復(fù)雜度過高以及對背景和前景相似的圖片處理質(zhì)量不好的問題,文中提出一種基于超像素的GrabCut圖像分割方法。該算法首先對圖像進(jìn)行超像素塊的提取,然后對提取后的圖像進(jìn)行GrabCut圖像分割。
GrabCut算法是迭代的GraphCut算法。GrabCut算法是由微軟研究院研究的一種經(jīng)典圖割算法,具有良好的分割效果和簡單的操作性,因此得到了廣泛的應(yīng)用。GrabCut是非完全標(biāo)記的,通過這種標(biāo)記,初始化先用矩形框框出前景區(qū)域,那么矩形框外面的區(qū)域便是背景區(qū)域,然后對其顏色空間建立GMM,用GMM進(jìn)行迭代來代替之前的估計(jì)以完成能量的最小化。
超像素為計(jì)算圖像特征提供了一種便捷的方式[10-12]。通過獲得圖像中的冗余來大幅地減輕后續(xù)圖像處理的復(fù)雜度。超像素塊集合提取的結(jié)果就是根據(jù)圖像的某個(gè)特征,灰度圖像可以是灰度值,彩色圖像可以是RGB顏色通道的歐氏距離,把原始圖像分成一組不同的小區(qū)域。這些區(qū)域內(nèi)部是基于某個(gè)圖像特征相似的,相鄰區(qū)域中的像素點(diǎn)是基于某個(gè)特征差異比較大的。計(jì)算基于超像素的圖像特征比像素更有效。因此,在基于超像素的圖像處理任務(wù)中,圖像原語和冗余大大減少。一般來說,圖像超像素分割方法通常用于計(jì)算機(jī)視覺中的預(yù)處理步驟,以提高它們的效率和性能。
在超像素生成方法的大多數(shù)論文中,現(xiàn)有的方法基于其基本思想分為兩類:基于圖論的方法和基于k-均值的方法?;趫D論的超像素生成模型以圖像像素為節(jié)點(diǎn),相鄰像素之間的相似性作為邊權(quán)值。超像素是通過最小化圖上定義的能量函數(shù)來生成的。
基于k-均值的方法通過對集群中心的粗略初始化和對集群的優(yōu)化來生成超像素,直到滿足一些收斂條件為止。盡管這些現(xiàn)有方法的解決方案是不同的,但它們的目標(biāo)是相同的。一種理想的超像素生成方法應(yīng)該是高效和簡單的,并且生成的超像素應(yīng)該具有許多特定的屬性。第一,邊緣堅(jiān)持屬性,生成的超像素的邊緣應(yīng)盡可能地與圖像的對象邊界保持一致;第二,同質(zhì)性,一個(gè)超像素的像素應(yīng)該是均勻的;第三,緊湊性,產(chǎn)生的超像素集合應(yīng)該是緊湊適當(dāng)?shù)摹?/p>
文中算法是先載入處理的圖像,然后用SLIC算法提取超像素塊,對提取后的超像素進(jìn)行預(yù)處理,最后用GrabCut進(jìn)行分割。具體流程如圖1所示。
圖1 算法流程
算法步驟如下:
(1)載入要處理的圖像。
(2)將圖像轉(zhuǎn)換為Lab顏色空間。
因?yàn)镾LIC算法圖像信息是取自于CIELAB空間而不是RGB空間,這是在5維中進(jìn)行的,[labxy]。[lab]是指CIELAB顏色空間中的像素顏色向量。CIELAB顏色空間就是指HSV空間,亮度空間,xy指像素的位置。兩種顏色的最大的空間是有限的,空間距離依賴于圖片大小。
(3)用SLIC算法提取超像素塊。
SLIC生成超像素是通過基于顏色相似度和臨近度的像素聚類[13-16]。SLIC提供的方法,雖然簡單,但它解決了這些問題,并且產(chǎn)生了高質(zhì)量、緊湊、幾乎一致的超級像素。簡單的線性迭代聚類(SLIC)在由L,a,b值和x,y像素坐標(biāo)定義的5-d空間中,執(zhí)行一個(gè)局部的像素集群。SLIC采用一種距離度量,在超像素形狀中實(shí)現(xiàn)了緊湊性和規(guī)律性,并無縫地適應(yīng)灰度和彩色圖像。SLIC很容易實(shí)現(xiàn),并且與競爭的方法相比,SLIC的效率要高得多。對于許多視覺任務(wù),緊湊且高度一致的超像素是尊重圖像邊界的,當(dāng)從基于像素的圖形切換到超像素時(shí),可以看到顯著的速度增加,但是不規(guī)則的超像素會使分割效果變差,在超像素位置上從圖像中提取的灰度值等局部特征變得不那么有意義。與現(xiàn)有的其他方法相比,SLIC以較低的計(jì)算成本得到類似或更大的性能。其算法思想是,首先將圖像從RGB顏色空間轉(zhuǎn)換到Lab顏色空間,對應(yīng)每個(gè)像素的(L,a,b)顏色值和(x,y)坐標(biāo)組成一個(gè)5維向量V[L,a,b,x,y],兩個(gè)像素的相似性即可由它們的向量距離來度量,相似性與它們之間的向量距離成反比。
SLIC是基于圖像的顏色相似性和在圖像平面上的距離來生成超像素。這是在五維的Labxy空間中完成的。Lab顏色空間中的像素顏色空間,被認(rèn)為是對小顏色距離的感知一致,而xy是像素位置。在這個(gè)5D空間中,不可能簡單地使用歐氏距離,而不使空間距離標(biāo)準(zhǔn)化。為了在這個(gè)5D空間中聚集像素,引入了一種考慮超像素大小的新距離度量。使用它,在這5D空間中加強(qiáng)了顏色的相似性和像素的接近性,這樣預(yù)期的集群大小和它們的空間范圍幾乎是相等的。在Lab顏色空間中的歐氏距離對于短距離的感知是有意義的。如果空間像素的距離超過了這個(gè)感知顏色距離限制,那么它們就開始超過像素顏色的相似性(產(chǎn)生的超像素不尊重區(qū)域邊界,只在圖像平面上接近)。因此,不用在5D空間中使用簡單的歐氏規(guī)范,而是使用一種距離尺度來定義:
(1)
其中,m用來調(diào)整d_xy的權(quán)值,一般為1~20,在算法中設(shè)置為10。
(4)對提取后的超像素進(jìn)行預(yù)處理。
為了方便后續(xù)的分割操作,需要對提取后的超像素塊進(jìn)行一些處理。首先載入提取成超像素塊的圖像,然后將每個(gè)超像素塊按照左上角的顏色將整個(gè)超像素塊統(tǒng)一分配顏色。
(5)用GrabCut進(jìn)行分割。
E(α,k,θ,S)=U(α,k,θ,S)+V(α,S)
(2)
數(shù)據(jù)項(xiàng)U定義為:
(3)
其中
D(αn,kn,θn,Sn)=-logp(Sn|αn,kn,θ)-
logπ(αn.Kn)
(4)
其中,p()是高斯概率分布;π()是混合權(quán)重系數(shù)。
于是有:
D(αn,kn,θn,Sn)=0.5logdet∑(an,kn)+
0.5[Sn-μ(an,Kn)T]∑(an,kn)
[Sn-μ(an,kn)]-logπ(an,kn)
(5)
那么,參數(shù)θ可表示為:
θ={π(α,k),μ(α,k),∑(α,k),α=0,1,k=1,2,…,K}
(6)
平滑項(xiàng)V可用RGB空間的歐幾里德距離求出:
(7)
其中,C表示相鄰像素對。
具體的實(shí)現(xiàn)步驟如下:
首先,用戶在原始圖像上標(biāo)注一個(gè)包含目標(biāo)物的矩形框,算法以“非完全標(biāo)號”方式來標(biāo)定圖像的背景區(qū)域(TB)和未知區(qū)域(TU),矩形框外的區(qū)域?yàn)門B:
(8)
然后,根據(jù)標(biāo)定的背景區(qū)域和前景區(qū)域初始化GMM,對TU迭代進(jìn)行直至收斂:
最后,根據(jù)所得到的參數(shù)對圖像構(gòu)造網(wǎng)絡(luò),并用最大流算法進(jìn)行分割。分割完成后,將預(yù)處理后的圖像中的超像素塊按照坐標(biāo)還原成原圖。
(6)算法執(zhí)行完畢。
實(shí)驗(yàn)統(tǒng)一在Win7 64位操作系統(tǒng)上進(jìn)行,處理器Intel I5,內(nèi)存4 GB。實(shí)驗(yàn)采用C++語言,在VS2015平臺上進(jìn)行。
實(shí)驗(yàn)1的目的是驗(yàn)證文中算法能夠提高GrabCut算法的實(shí)現(xiàn)速度。
具體的實(shí)驗(yàn)流程如圖2所示。
圖2 實(shí)驗(yàn)流程
原始的GrabCut算法和文中算法的分割效果對比如圖3和圖4所示。
圖3 分割效果對比(1)
其中圖3是41 k的圖像,圖4是100 k的圖像。
表1是原始GrabCut算法與使用超像素處理后的GrabCut算法運(yùn)行時(shí)間的對比。
表1 運(yùn)行時(shí)間對比 s
通過對比可知,當(dāng)處理前景和背景相似的圖像時(shí),采用超像素預(yù)處理后的GrabCut圖像分割算法的分割效果和原始的GrabCut算法差不多,幾乎一致,但是運(yùn)行速度明顯快。并且當(dāng)設(shè)定的超像素塊越少時(shí),運(yùn)行速度越快,這也和常理吻合。但是,過少的超像素塊會使分割后的圖像失真,效果變差。
實(shí)驗(yàn)2是為了檢驗(yàn)當(dāng)處理前景和背景相似的圖片時(shí),文中算法對原始的GrabCut圖像分割算法是否有所改進(jìn)。
原始的GrabCut算法和文中算法的對比如圖5所示。
圖5 GrabCut算法和文中算法的對比
由圖5可以看出,在處理前景和背景相似的圖片時(shí),文中算法比原始的GrabCut算法有著較為明顯的改進(jìn)。因?yàn)榘褕D片進(jìn)行超像素塊的提取,把每個(gè)超像素設(shè)為同一個(gè)色塊,這樣處理后,前景和背景之間的特征差距增大,相似度減弱,所以才能提高分割效果。
針對GrabCut圖像分割算法運(yùn)行速度慢,以及對于前景背景相似的圖片分割效果較差的不足,提出了一種改進(jìn)方法。實(shí)驗(yàn)結(jié)果表明,通過對圖像進(jìn)行一些預(yù)處理,即對圖像進(jìn)行超像素塊的采集,然后對采集后的圖像再進(jìn)行分割,會有效提高算法的分割速度,并在一定程度上改善GrabCut圖像分割方法對于前景背景相似圖像分割效果較差的不足,是一種可行的方法。但是,該方法依然沒有完美地解決這一不足,在以后的研究中會繼續(xù)致力于這個(gè)問題。