許曉東,張雷,焦小雪,廉桂城
(河北工程大學(xué) 數(shù)理科學(xué)與工程學(xué)院,河北邯鄲, 056038)
圖像分割作為數(shù)字圖像處理的關(guān)鍵組成部分,其目的是將圖像中感興趣的部分提取出來。發(fā)展至今已有很多分割算法被提出和廣泛應(yīng)用。例如在模式識(shí)別、人工智能、醫(yī)學(xué)影像、深度估計(jì)[1]等領(lǐng)域,可以利用圖像分割技術(shù)對(duì)既定的目標(biāo)進(jìn)行定位及跟蹤。
按照技術(shù)路線的不同可將圖像分割技術(shù)分為:基于閾值、聚類、圖論以及深度學(xué)習(xí)等。其中基于閾值分割算法的原理一般為:通過設(shè)置一個(gè)門限閾值對(duì)圖像進(jìn)行二分類,將大于該閾值的像素置1否則置0。其目的是,為了識(shí)別和提取圖像中感興趣的部分。但對(duì)于大多情況下,僅用該方法是無法找到一個(gè)適合全局的分割閾值。
對(duì)于基于聚類的分割算法,其本質(zhì)是利用了樣本之間的相似度。通過設(shè)置的相似度函數(shù)將性質(zhì)相似的樣本或?qū)ο缶酆蠟橐活?,從而?shí)現(xiàn)分割的目的。常用的聚類分割算法有K-means[2]、FCM[3]等。
本文所提的改進(jìn)的SLIC算法屬于聚類分割算法。但該算法在執(zhí)行之前需要手動(dòng)設(shè)置預(yù)分割超像素的個(gè)數(shù),自適應(yīng)性較差。因此本文提出了相應(yīng)改進(jìn)的SLIC超像素分割算法。具體改進(jìn)在于,能夠自適應(yīng)地設(shè)置預(yù)分割超像素的塊數(shù)以及優(yōu)化了最終分割的效果。
超像素的概念最早是由Ren等人[4]提出的,具體指的是那些位置相鄰且顏色、紋理等特征相似的像素點(diǎn)組成的區(qū)域塊。超像素分割作為常用的圖像分割算法,通常用來提取圖片中的有用信息。
SLIC作為一種應(yīng)用廣泛的超像素分割算法,其原理是通過定義一個(gè)距離度量公式將性質(zhì)相似的像素聚合為一類來實(shí)現(xiàn)圖像的分割。具體的SLIC距離度量公式是通過約束像素點(diǎn)之間的CIELAB顏色空間距離和坐標(biāo)空間距離[5]來實(shí)現(xiàn)像素的聚類。之所以在SLIC算法中選擇LAB顏色空間代替RGB顏色空間是因?yàn)長(zhǎng)AB顏色空間是用數(shù)字化的方式來模擬人類的視覺感應(yīng),更加符合人類的真實(shí)生理感官。
此外,SLIC超像素分割算法作為一種基于K-means的新聚類算法,繼承了K-means聚類算法的優(yōu)點(diǎn),即算法框架清晰以及部署快捷。然而不同于K-means的是,SLIC在聚類操作過程中對(duì)聚類中心周圍2S x 2S范圍內(nèi)的像素點(diǎn)進(jìn)行聚類。而K-means則是在整個(gè)圖像的全局范圍內(nèi)對(duì)像素點(diǎn)進(jìn)行聚類。因此SLIC的聚類算法相較于K-means聚類收斂速度更快。算法的具體流程如下:
(1)對(duì)于一幅有N個(gè)像素的圖片,首先根據(jù)需求預(yù)設(shè)分割的超像素塊數(shù)K,則每個(gè)超像素塊的大小約為N/K,且相鄰超像素塊的種子點(diǎn)之間的距離
(2)由上述可知,在圖像上均勻分布K個(gè)初始聚類中心Cii= 1,2,3...K,且聚類中心用五維向量表示為Ci=[Li,ai,bi,xi,yi],其中Li、ai、bi分別為聚類中心對(duì)應(yīng)的CIELAB色彩分量,xi,yi為聚類中心的橫縱坐標(biāo)。
(3)為防止初始聚類中心Ci位于圖片的邊界,需要將初始聚類中心移至其3x3鄰域內(nèi)梯度最小的位置處。
(4)對(duì)圖片上的每個(gè)像素設(shè)置一個(gè)初始的標(biāo)簽L(n)=-1以及設(shè)置一個(gè)初始的距離d(n)=∞(n∈N)。
(5)每個(gè)像素的搜索范圍與其對(duì)應(yīng)最近的聚類中心相關(guān)聯(lián),具體限制為計(jì)算聚類中心與其2S x 2S鄰域內(nèi)像素之間的距離nD。如果nD 其中Ln、an、bn分別為聚類中心在2S x 2S鄰域內(nèi)的像素點(diǎn)對(duì)應(yīng)的CIELAB色彩分量,xn,yn為鄰域內(nèi)像素點(diǎn)的橫縱坐標(biāo)。dlab表示的是聚類中心與其鄰域像素之間的CIELAB顏色空間距離,dxy則表示的是聚類中心與其鄰域像素之間的空間坐標(biāo)距離。最終用nD來表示兩像素間的相似度,且nD的值越大就越表明兩像素之間越相似。m是該距離公式的緊湊因子。 (6)完成一次迭代后,更新聚類中心CK。通過計(jì)算標(biāo)簽值一致的像素的橫縱坐標(biāo)的均值,將計(jì)算的均值作為對(duì)應(yīng)聚類中心的新橫縱坐標(biāo)。 (7)重復(fù)步驟5和步驟6并計(jì)算誤差E,其中誤差E為前后兩次迭代得到的兩個(gè)聚類中心之間的距離,直至誤差小于設(shè)定的閾值停止迭代。然而在實(shí)際操作中,一般選擇重復(fù)步驟5和步驟6十次左右,得到的最終分割結(jié)果就很好了。 關(guān)于SLIC超像素分割算法需要設(shè)定兩個(gè)參數(shù),分別是預(yù)分割超像素塊數(shù)K和緊湊因子m。然而對(duì)于分割塊數(shù)K來說并不是越大越好。K值越大則表明圖像分割得越細(xì)致即產(chǎn)生過割行為,且每個(gè)分割區(qū)域的形狀也越來越規(guī)則。因此為了使SLIC算法的分割結(jié)果能夠擁有良好的邊界,這就需要通過大量的實(shí)驗(yàn)來設(shè)定合理的預(yù)分割超像素塊數(shù)K和緊湊因子m。其中由相關(guān)文獻(xiàn)[6]可知,緊湊因子m一般設(shè)定在1~40之間。如圖1給出的是SLIC超像素分割算法,在不同取值K下的分割效果圖。 圖1 不同K值下的超像素分割圖 由于原始的SLIC超像素分割算法在執(zhí)行之前,需要手動(dòng)預(yù)設(shè)分割的超像素塊數(shù),這可能會(huì)引發(fā)圖像的過分割或欠分割等問題。因此本小節(jié)利用待分割圖像的HSV顏色空間在全局上的非均勻量化來間接地表示待分割圖像的復(fù)雜度,并用其一維向量對(duì)應(yīng)直方圖得到的均值來表示預(yù)分割超像素的塊數(shù),從而達(dá)到自適應(yīng)設(shè)置超像素塊數(shù)的目的[7]。 具體操作如下:首先對(duì)待割圖像的顏色空間進(jìn)行轉(zhuǎn)換,將RGB顏色空間轉(zhuǎn)換為HSV顏色空間。這樣做的目的是HSV顏色空間相較于RGB顏色空間更接近人眼對(duì)色彩的敏感度,因此更適合參與后續(xù)的算法處理。具體兩種顏色空間之間的轉(zhuǎn)換公式如下所示: 其中CMax表示RGB顏色空間中的最大值,CMin則表示為RGB顏色空間中的最小值。 隨后對(duì)HSV的三個(gè)顏色分量分別進(jìn)行非等間隔量化,其中將H量化為16級(jí),S量化為4級(jí)、V量化為4級(jí)。這樣量化的目的是,在HSV顏色空間中,圖像的色彩信息僅僅與H分量和S分量有關(guān)而與V分量無關(guān),因此H量化的更加細(xì)致。隨后將量化后的三個(gè)色彩分量合并為一個(gè)一維的向量L,具體如下所示: 式(3)~(7)中SQ和VQ分別表示為分量S與分量V的量化級(jí)數(shù)。此外由式(3)~(7)可知,H的權(quán)重等于16,S的權(quán)重為4,V的權(quán)重為1。這樣分配權(quán)重的方式符合上述HSV顏色空間非等間隔量化的目的。 由公式(7)得到的一維向量L求其對(duì)應(yīng)的直方圖。隨后統(tǒng)計(jì)直方圖中的特征并按照增序進(jìn)行排序,并求排序后直方圖的平均值。選擇直方圖中大于平均值的那個(gè)最小特征作為圖像的預(yù)分割超像素個(gè)數(shù)K。 為了進(jìn)一步優(yōu)化超像素分割圖像的結(jié)果,提出利用圖像的梯度信息對(duì)分割結(jié)果做進(jìn)一步處理??紤]到在一般圖像中可能會(huì)存在噪聲以及其他干擾并最終影響分割的結(jié)果。為了消除干擾以及噪聲帶來的影響,首先對(duì)待割圖像進(jìn)行邊緣檢測(cè)以獲得圖像的邊緣信息,同時(shí)利用閾值分割技術(shù)獲取待割圖像的閾值門限,并最終將該閾值應(yīng)用在SLIC超像素分割圖像上。 此外常用的邊緣檢測(cè)算子有Sobel、Laplacian、Canny等。本小節(jié)使用的邊緣檢測(cè)算子是應(yīng)用廣泛的sobel算子。圖2顯示的是經(jīng)過水平方向和垂直方向Sobel算子濾波并歸一化處理的圖像。 圖2 Recycle圖像邊緣信息示意圖 本小節(jié)選擇的閾值分割是基于自適應(yīng)閾值分割而來,首先對(duì)每個(gè)SLIC超像素分割區(qū)域進(jìn)行了特征的統(tǒng)計(jì),并在每個(gè)分割區(qū)域中計(jì)算相應(yīng)的均值與方差。由均值和方差確定分割區(qū)域的閾值。這樣的做的目的是可以針對(duì)不同的分割區(qū)域選取不同的閾值,因此能夠得到更多的邊緣細(xì)節(jié)。但使用該方法的計(jì)算量會(huì)很大且復(fù)雜度也較高。因此本小節(jié)選擇對(duì)目標(biāo)圖像的梯度圖進(jìn)行均值和方差的計(jì)算。然后由公式(8)計(jì)算對(duì)應(yīng)梯度圖的閾值[8],并最終將該閾值應(yīng)用在SLIC超像素分割圖像上。 在公式(8)中,G表示的是目標(biāo)圖像的梯度圖、avg表示的是均值、var表示則是方差、n為設(shè)定的權(quán)重。對(duì)于權(quán)重n來說并不是越大越好,具體本小節(jié)將n設(shè)置為4就能獲得較好的結(jié)果[8]。 本小節(jié)我們將所提的改進(jìn)的SLIC超像素分割算法用于實(shí)際圖像的分割并進(jìn)行了相應(yīng)的驗(yàn)證與分析。具體選取圖3中的圖片來進(jìn)行分割測(cè)試,并將本章所提改進(jìn)算法的分割結(jié)果與原始的SLIC分割算法進(jìn)行對(duì)比。如圖3給出了SLIC分割算法及其改進(jìn)算法的分割效果圖。 圖3 超像素分割模板圖 從圖中可以看出,原始的SLIC分割算法雖也能夠較好地分割出目標(biāo)圖像的輪廓與邊界但仍存在一定的過割行為,即分割結(jié)果中相似的區(qū)域被分開了。并且由圖3(b)的第二幅圖中能夠看出,桌子附近的地板上存在大量的孤立分割區(qū)域。造成這樣的原因可能是,該區(qū)域相鄰像素之間的相似度較為接近從而導(dǎo)致分割算法的距離公式不能夠很好地發(fā)揮作用,即在進(jìn)行超像素分割時(shí)像素點(diǎn)的歸類發(fā)生了誤判。 此外由圖3(c)可知,相較于原始的SLIC分割算法,本章所提的改進(jìn)算法在保障分割質(zhì)量的前提下,能夠大幅減少圖像中超像素的過割行為并僅保留目標(biāo)圖像的邊界區(qū)域。 針對(duì)SLIC算法需要設(shè)置預(yù)分割超像素個(gè)數(shù)的問題,本文提出了一種改進(jìn)的SLIC圖像分割算法。首先對(duì)原始的SLIC分割算法進(jìn)行了分析并提出了相應(yīng)的改進(jìn)思路。隨后利用HSV顏色空間在全局上的非均勻量化來間接地表示待分割圖像的復(fù)雜度,并通過進(jìn)一步的計(jì)算來獲取預(yù)分割超像素的塊數(shù)。之后為了獲得更加完整的分割目標(biāo)輪廓信息,又提出了利用圖像的梯度信息對(duì)SLIC分割結(jié)果做進(jìn)一步的優(yōu)化處理。 最后將本文所提改進(jìn)的SLIC超像素分割算法用于實(shí)際的圖像分割并進(jìn)行了相應(yīng)的驗(yàn)證與分析。由實(shí)驗(yàn)可知,本文所提算法相較于原始的SLIC分割算法,在分割結(jié)果上確實(shí)有明顯的進(jìn)步。■1.2 SLIC分割算法的改進(jìn)與優(yōu)化
■1.3 梯度閾值處理
2 實(shí)驗(yàn)結(jié)果分析
3 總結(jié)