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

2 實驗結果分析

3 總結