汪克峰, 錢 進, 李仁璞
(江蘇理工學院計算機工程學院,江蘇常州213001)
對于一張圖像,人們意識上會將該圖像分為自己感興趣與不感興趣的部分,通常情況下,將感興趣的部分稱之為目標區域,其余部分稱之為無關區域[1]。圖像的處理主要是對圖像像素的處理,伴隨著計算機技術的不斷發展,對于像素的處理變得更加精確,像素以組合的形式具有相似或者形同的特征,人們將計算機技術應用于圖像分割領域。
圖像分割在不同行業得到廣泛的應用。Feng等[2]將圖像分割應用于核磁共振圖像,從圖像中分離出腦脊髓、下丘腦部分;Ramanathan 等[3]將圖像分割技術應用于檢測超速車輛,將超速車輛作為目標,從交通畫面圖像中進行超速車輛的特征提取;Taravat 等[4]將圖像分割用于極端天氣的判斷,他們考慮不同天氣下,云層的表現不同,將不同云層從天氣畫面中分離;Ghosh等[5]將圖像分割用于火焰燃燒階段的分析,根據火焰燃燒狀態獲取不同的圖像,從而分析火焰的燃燒;Si 等[6]將圖像分割用于農作物生長的圖像分析,獲取不同生長時期農作物的生長特征,提取相應的圖像。圖像分割是獲取相同特征或者相似特征的像素集合,這些相似部分會作為一個整體,從圖像中進行分離,相似部分的分離過程其實是一個聚類的過程[7]。圖像的相似部分聚類已經被提出了大量的算法,包括基于相似性的模糊聚類算法[8]、基于模糊均值的聚類算法、基于圖關系的模糊聚類算法、基于不可識別關系的模糊聚類算法[9]。聚類算法可以將圖像分割成若干個區域,但是在實際圖像分割中,存在很多異常像素,這些異常像素點難以劃分到任何區域內,因而,需要用到異常點檢測的算法。異常像素看作為一種異常數據,在概念定義上,Liang 等[10]認為與其他數據相比,異常數據具有不可分析的特征,同時,這些數據與正常數據是相伴而生的。Kontaki等[11]以距離為約束條件,定義某一個數據距離大于規定的閾值,則稱該數據為異常數據;潘淵洋等基于數據密度,定義異常數據與正常數據,提出了APD 算法;Sinha 等[12]從偏差角度定義異常數據,在算法實現過程中,數據的偏差過大,則定義為異常數據;Albanese 等[13]引入了粗糙集的觀念,將其用于異常數據的檢測。
本文以模糊C 均值聚類算法(FCM)作為研究對象,將其應用于圖像分割領域??紤]到圖像存在異常像素,難以分類,同時,也不容易檢測的問題,將問題的知識發現分為圖像分割和異常像素檢測,將鄰域因素考慮在內,提出了改進算法,并通過大量實驗,驗證提出算法的可行性。
FCM算法是以模糊集理論作為基礎,采用模糊理論解決對象的歸屬。在經典集合理論中,集合S 在論域T上可采用標志位進行表示[14]:

式中:Us(t)表示元素t 對于集合S 的相關度,對應的取值為0 或者1,不存在模糊的判別。但在實際生活中,很多聚類問題存在不確定性的,也就是說,在現實生活中,欲判別的對象難以劃分至任何一類中。部分學者將模糊現象的思想應用于聚類分析里,Us(t)的取值從0 或者1 擴展至[0,1]的區間內,則不確定性的對象可以表示為一個值,該值的取值范圍為[0,1],從而,對應不同的相關度。
該理論可以用于其他領域,假設T 表示一個集合,表示多個對象,如果存在某個模糊集合a1,該集合是T的一部分,則相關度函數Ua1的取值范圍表示為[0,1],Ua1(t)表示集合T 中元素t 對于模糊集合a1的相關度。根據上述定義,相關度函數Ua1的值可以確定哪些元素是在模糊集合a1范圍內,每個Ua1(t)的值表示集合T中的元素t在[0,1]范圍內的映射,該值還可以表示元素t在模糊集合a1的相關性程度,而當Ua1(t)取值為0 或者1 時,相關度函數將退化為經典集合理論。
FCM算法的原理為:假設樣本集T ={t1,t2,…,tn},即樣本集包含n 個樣本,C 表示聚類的中心數,V表示聚類的聚類中心集合,vi 表示第i個聚類中心,Mf表示聚類中心集合包含的特征空間,f表示特征空間的維度,計算聚類中心與節點的距離差平方和,將其作為目標函數,函數表達為[15]:


式中:uij表示第j個樣本隸屬于第i 類的相關度,相關程度在[0,1]的區間內。FCM算法的實現步驟如圖1所示。

圖1 FCM算法的執行流程
算法的執行是一個反復迭代的過程,首先,初始化C個聚類中心,按照一定約束條件,將樣本集合劃分成C個簇類;每一個簇類內部進行中心點的再計算,從而每一個簇類得到新的中心點;將不同的簇類得到的新中心點與舊中心點,進行差值計算,如果差值大于β,則進行重新劃分;劃分過程中,需要更新聚類中心矩陣;新、舊中心點進行差值計算,如果差值小于β,則輸出當前的簇類中心點。其中,更新聚類中心矩陣的計算方式如下:式中:v(e+1)i表示迭代e +1 次后的聚類中心;u(e+1)ij表示迭代e +1 次后相關度的矩陣變量;q 表示模糊加權指數,它可以影響目標函數的凹凸性,控制聚類的模糊程度。

FCM算法可以解決很多分類問題,在圖像分割應用中也得到了廣泛的應用,但是應用該算法也存在不少問題。從數據對象角度比較不同數據對象之間的距離,按照數據對象之間的距離進行分類,這種分類方式忽視了對象的類別關系,尤其是它會促進本不屬于該類的數據對象,歸類到了該類別里。假設存在一個簡單數據集X,包含4 個數據,分別是A、B、C、D,它們的分布如圖2 所示。

圖2 一個數據集
由圖2 可以看出,4 個數據它們各自應該分為1類,因為它們具有不同的圖形屬性,其中,A是正方形,B是圓形,C是方形,D是橢圓形,即A表示1 類,B 表示1 類,C表示1 類,D 表示1 類。如果采用FCM 算法,會出現這樣的現象,以A和D作為聚類中心,由于B和D 距離在一定范圍內,將B 和D 分到1 個類別里,同時,又由于C與D的距離小于C與A的距離,因此,會將C歸類到D為中心的集合里。
按照FCM算法,會將數據集X 中的A、B、C、D 數據分為兩類,分別是[B、C、D]和A,這樣的結果顯然是錯誤的。從圖2 中發現,如果將數據A 看作為一個數據集,它是具有一定特征的,不僅是正方形,顏色為紅色,而將數據B 也看作為一個數據集,它的特征與數據集A不同,它是圓形,顏色為淺藍色。如果將數據集A、數據集B各自看作為不同的區域,它們對應的鄰域含有很多信息,而這些信息都是有用的?;诖?,可以將鄰域作為一個因素,引入到FCM 算法中,從而得到鄰域-FCM(N-FCM)。提出的算法在原來的算法函數中加入了鄰域這個變量,使得分類問題得到更加全面的考慮,不僅僅需要計算數據對象之間的距離,還需要考慮數據集之間鄰域的隸屬關系。
N-FCM算法可以采用歐式距離表示,對應的目標函數被改進為:

式中:第1 個多項式表示數據對象與聚類中心距離之差的平方和,該值需要為最小值,這一部分與FCM 的函數一致;第2 個多項式采用數據對象的平均值作為參數,該參數與聚類中心的距離之差,計算其平方和的最小值,也就是鄰域因素對應的函數。需要注意的是,兩個多項式都需要獲取最小值,同時,在對應的聚類中心更新矩陣中,含有一個約束條件,即:

N-FCM算法的執行流程如下:
(1)初始化一些參數,包括輸入的聚類數目C,模糊參數q(1≤q≤∞),數據的平均值t′以及迭代終止參數β。
(2)初始化C個聚類中心v0i(i =1,2,…,C)。
(3)計算uij,函數表達式為

式中:將鄰域構成的聚類中心之差作為一個變量pe;數據對象的聚類中心之差也作為一個變量pf,兩個變量都用于求解數據對象對應于不同類別的相關度。
(4)計算新的聚類中心,即求解v1i,對應的函數表示為:

式中:i的取值范圍為[1,C],函數中加入了鄰域因子,增加的變量集合為{θt′1,θt′2,…,θt′n},更新后的聚類中心點表示為v1i。
(5)如果新舊聚類中心之差小于β,則輸出所有的聚類中心,否則回到步驟(3),進一步探尋數據對象之間的相關性。
(6)輸出最終的聚類中心點(a,b)。
將APD檢測算法用于圖像異常像素的檢測,該算法是衡量數據與其他鄰域數據之間的密度來判斷數據是否存在異常,該算法存在以下定義。
假設數據對象e和數據對象u之間的距離較近,e與u之間的可達距離可以表示為:

式中:數據對象并不是一個單一元素,e到u 的距離表示為diT(e,u),小于u到e的距離集合,用表達式TdiT(u)表示。同時,也要考慮兩個數據對象之間的最短距離。
假如e至u的距離非常近,可以直接用el(e,u)表示,在實際計算時,該參數可以設置為常數,則數據對象之間的可達距離可以表示為:

該算法也沒有考慮到鄰域因素,將該因素引入到APD檢測算法中,在計算e與u之間的可達距離,需要分為兩種情況,具體如下:
假設e與u在一個類別里,e與u的可達距離表示為

式中:假設e與u在一個類別里,它們之間的可達距離就是從e到u的距離值以及u到e的距離值。因為它們在一個類別里,存在類別聚類中心。如果e 與u 是在不同的類別里,此時,(e,u)的最大可達距離e 需要先到達u的邊緣,然后達到u的聚類中心,因而可以表示為

式中:將不同類別數據對象考慮在內,(e,u)之間的距離除了數據對象邊緣之間的距離,還需要考慮邊緣屬性達到聚類中心之間的聚類。在式(11)、(12)中,diT(e,u)函數的1 或者2 表示兩種不同情況下數據對象e到u的距離。
對FCM與N-FCM進行性能比較。選擇對灰度圖加入高斯白噪聲,然后采用FCM 算法與N-FCM 算法進行圖像分割。這里選擇對細胞圖像進行加噪,加噪后的灰度波形圖如圖3 所示。

圖3 灰度波形圖
圖3中,細胞圖像的灰度分布范圍在70 ~220,有兩個明顯的波峰,分別位于灰度值100 和灰度值180;加入高斯白噪聲之后,細胞圖像的灰度分布變得較為均勻,取值范圍在45 ~280。
對加噪后的細胞灰度圖像進行分割,采用FCM和N-FCM算法分類產生了3 中顏色,分別是深灰色、細胞色以及噪聲的淺白色,分割結果如圖4 所示。

圖4 不同算法的分割效果
圖4 中,需要對圖像中的噪聲進行處理,得到3 個灰度值,分別是70、110、100,其中,70 表示噪聲,100
表示背景的顏色,140 表示細胞的顏色。需要采用像素替換的方式剔除噪聲的影響,從而進一步觀察圖像分割算法的性能,剔除噪聲后的細胞灰度圖像如圖5所示。

圖5 剔除噪聲后的算法圖像分割比較
(1)圖5 中,掃描噪聲后的灰度圖像如圖5(a)所示,需要記錄每個像素點的坐標和灰度值,進而得到所有噪聲的位置信息。
(2)根據噪聲的位置信息設計一個圓形區域進行定位,該區域包含5 個點,假設噪聲的坐標表示為(a,b),則該區域的中心像元定位到(a,b),然后遍歷區域內其他4 個像元灰度值,如果灰度為100 的個數大于灰度為140 的個數,則用背景灰度值替代噪聲對應位置的灰度值;如果灰度為100 的個數小于灰度為140的個數,則用細胞的灰度值替代噪聲對應位置的灰度值;如果灰度為100 的個數等于灰度為140 的個數,用背景的灰度值替代噪聲對應位置的灰度值。
(3)對FCM、N-FCM算法分割的噪聲圖像進行不同灰度值的替換,執行過程與步驟(2)一致,去噪后的結果如圖5(b)、(c)所示。
(4)對去噪后的圖像進行小面積處理,得到最后的分割結果,如圖5(d)、(e)所示。
對上述噪聲圖像的分割進行算法性能的統計,如表1 所示。

表1 噪聲圖像的算法性能對比
表1 中,對細胞圖像增加了高斯白噪聲,采用FCM和N-FCM算法進行圖像分割,分割的精度均在93%以上,因而,兩種算法對高斯白噪聲均具有一定的魯棒性,即對高斯白噪聲處理后的圖像分割保持較高的精度。同時,可以進一步發現,盡管FCM 算法的分割效率略高于N-FCM 算法,但是N-FCM 算法的執行效率遠高于FCM算法。
選擇彩色圖像進行圖像分割算法的比較。選取的圖像分別是3 種不同的花,這些圖像均采用RGB 格式,圖像大小在1 200 ×750 的范圍內,分類數為2。FCM和N-FCM聚類算法對3 張不同類別花的圖像進行圖像分割,結果如圖6 所示。

圖6 彩色圖像的圖像分割算法比較
圖6 中每一張圖像將其分解為4 張不同的圖像狀態進行分析,第1 張表示原圖,第2 張、第3 張表示采用FCM、N-FCM 算法分割后的圖像效果,第4 張對應圖像的分割模版。每一種花,在進行圖像分割時,需要保留花的明暗色調,即花的顏色分布,花并不是只有一種顏色,不同顏色在色調上比較相近。對應地,它們的明暗度是不同的,采用不同算法進行圖像分割,應該將花看作為一個多部分組合而成的整體,提取不同部分的邊緣像素值,圖像分割后需要保持圖像本身的輪廓。采用不同圖像分割算法對彩色圖像進行分割,圖像分割效果比較如表2 所示。
表2 中,采用N-FCM算法對3 種不同花的圖像進行圖像分割,它們的正確率為94.17%、94.98%、94.24%,而采用FCM 算法對3 種不同花的圖像進行圖像分割,它們的正確率為93. 64%、94. 70%、93.34%,因而,相比于FCM算法,采用N-FCM算法進行彩色圖像分割可以取得更好的效果。

表2 噪聲圖像的算法性能對比
圖像分割存在異常像素檢測的問題,選取的算法為APD算法,加入鄰域因素,改進后的檢測算法稱之為Fuzzy-APD算法。從之前分割圖像實驗中,獲取了大量的像素數據,從中提取1 500 個像素數據,其中300 個像素數據為暖色像素數據,1 200 個像素數據為冷色像素數據,根據本文的圖像分割情況,圖像在分割處理中表現為冷色,因而,暖色像素數據定義為本數據集的異常像素。采用APD 算法進行分割圖像異常像素檢測,結果如圖7 所示。
圖7 中,橫線表示閾值,橫線上面的橙色數據點為異常的像素點。橫線下面的藍色數據為正常的像素點,因為檢測存在錯誤,會使得很多藍色像素點被看作異常像素。同樣地,閾值下面的很多橙色像素點會被誤認為是正常的像素點。

圖7 采用APD算法的分割圖像異常像素檢測
在圖7(a)中,鄰域為2,閾值設置為0.98,被檢測出的異常像素點為28 個,本身為正常像素卻被看作異常像素點為14 個,同時,觀察閾值以下,有11 個異常像素被誤認為是正常像素;在圖7(b)中,鄰域為4,閾值設置為2.45,被檢測出的異常像素點為12 個,本身為正常像素卻被看作異常像素點為20 個,同時,觀察閾值以下,有11 個異常像素被誤認為是正常像素;在圖7(c)中,鄰域為8,閾值設置為2.17,被檢測出的異常像素點為19 個,本身為正常像素卻被看作異常像素點為8 個,同時,觀察閾值以下,有9 個異常像素被誤認為是正常像素;在圖7(d)中,鄰域為16,閾值設置為1.83,被檢測出的異常像素點為45 個,本身為正常像素卻被看作異常像素點為12 個,同時,觀察閾值以下,有10 個異常像素被誤認為是正常像素。
采用Fuzzy-APD 算法進行分割圖像異常像素檢測,結果如圖8 所示。

圖8 采用Fuzzy-APD算法的分割圖像異常像素檢測
圖8(a)中,鄰域為2,閾值設置為2.22,被檢測出的異常像素點為17 個,本身為正常像素卻被看作異常像素點為2 個,同時,觀察閾值以下,有7 個異常像素被誤認為是正常像素;在圖8(b)中,鄰域為4,閾值設置為2.03,被檢測出的異常像素點為14 個,本身為正常像素卻被看作異常像素點為3 個,同時,觀察閾值以下,有5 個異常像素被誤認為是正常像素;在圖8(c)中,鄰域為8,閾值設置為1.96,被檢測出的異常像素點為16 個,本身為正常像素卻被看作異常像素點為2個,同時,觀察閾值以下,有7 個異常像素被誤認為是正常像素;在圖8(d)中,鄰域為16,閾值設置為1.82,被檢測出的異常像素點為43 個,本身為正常像素卻被看作異常像素點為5 個,同時,觀察閾值以下,有11 個異常像素被誤認為是正常像素。
對比圖7、8 可以發現,相比APD檢測算法,Fuzzy-APD檢測算法的誤判像素點個數較少,可以對不同檢測算法的檢測效果進行統計分析,如圖9 所示。由圖可以看到,伴隨著鄰域值的增大,Fuzzy-APD算法的檢測正確率不斷提高,尤其是檢測像素點的增加,誤判的像素點增加較為緩慢,從而,提高了檢測的正確率。

圖9 不同檢測算法的性能對比
本文以FCM作為研究對象,將其應用于圖像分割領域,考慮到圖像存在異常像素,難以分類,同時,也不容易檢測的問題,將問題的知識發現分為兩個步驟,一個是圖像分割,另一個是異常像素檢測,將鄰域因素考慮在內,針對兩個步驟提出了改進算法。首先,對FCM算法提出了改進,提出了鄰域因素的鄰域-模糊C均值聚類算法(N-FCM),然后,研究異常像素檢測算法(APD),該算法用于離群點檢測,同樣,考慮了鄰域因素,提出了Fuzzy-APD。通過實驗分析,取得以下結論:
(1)對細胞圖像增加了高斯白噪聲,采用FCM聚類算法和N-FCM算法進行圖像分割,分割的精度均在93%以上,同時,FCM 算法的分割效率略高于N-FCM算法,但是N-FCM算法的執行效率遠高于FCM算法;
(2)對彩色圖像進行圖像分割,相比于FCM 算法,采用N-FCM算法進行彩色圖像分割可以取得更好的效果;
(3)從圖像分割的實驗中,選取1 500 個像素點進行異常像素點的檢測,發現伴隨著鄰域值的增大,Fuzzy-APD算法的檢測正確率不斷提高,尤其是檢測像素點的增加,誤判的像素點增加較為緩慢,從而,提高了檢測的正確率。