劉 璇,高保祿,王朝輝
(太原理工大學 軟件學院,山西 晉中 030600)
在現代社會,圖像處理已被視為一個非常重要的領域,變得越來越廣泛和重要[1]。圖像分割作為后期圖像分類、圖像識別的基礎技術,是根據一定規則將圖像劃分為若干子區域,使分割之后的每一個像素點只存在于一個子區域內。
模糊聚類圖像分割算法是由模糊理論和聚類理論結合而成的。在不需要訓練圖像的情況下,對具有相似特征的圖像像素進行分類。1987年Bezdek等人[2]首次將FCM(fuzzy C-means)算法運用在圖像分割領域。作為一種經典且有效的無監督圖像分割算法,FCM算法已成功應用于軍事、地質學、天文學和醫學圖像處理等許多領域。FCM算法具有實現簡單,運算速度快等優點,但由于算法初始參數為隨機生成,可能會使目標函數陷入局部最優解,降低算法效率。并且,該算法在聚類過程中只考慮了圖像單一灰度信息,導致對于圖像噪聲比較敏感,抗噪性差。
為解決算法存在的問題,近年來,很多學者對FCM算法模型進行了深入研究與改進。針對隨機生成初始參數的問題,Liu等人[3]提出了使用密度峰值聚類的思想來改進FCM算法(DPC-FCM),該算法通過計算數據集中,各個點局部密度與高密度點之間的距離來自適應生成初始參數。Li等人[4]提出了將聚類大小作為先驗信息,并基于密度基準限制搜索方向的改進FCM算法(CSCD-FCM),該算法根據數據集中各點不同密度,對初始聚類中心進行調整。文獻[5]提出一種基于均值漂移算法的初始聚類中心設置方法,利用圖像中的密度進行變換計算,將聚類中心點確立為圖像密度最大處,以此來優化FCM算法的初始參數選擇方法。
相比原始算法,基于數據密度的改進算法在選取初始聚類中心上更為合理,在確保分類正確的基礎上,提高了算法運行效率,但應用于圖像分割方面時,邊緣保持表現較差。
為提高FCM算法的抗噪性,Stelios等人[6]提出融合灰度特征與局部空間特征的改進FCM算法(FLICM),使算法對噪聲和異常值有更好的魯棒性,但目標函數的懲罰項中有一個關鍵參數的值是通過經驗試錯法確定的,導致該分割算法效率較低,實用性較差。文獻[7]提出了結合鄰域像素的改進FCM算法,首先計算鄰域像素與中心像素的灰度差來獲得鄰域像素對中心像素的影響程度,之后根據影響程度與像素之間的距離重新構建隸屬度矩陣,進行圖像分割。該算法利用了局部鄰域的空間信息,邊緣細節更完整,但計算量較大。文獻[8]提出先使用TGV執行正則化操作來保證圖像的平滑和細節保持,之后通過加入空間信息的權重因子修改目標函數,得到新的隸屬度計算公式,為像素點分配新的隸屬度,達到圖像分割的目的。該算法具有良好的抗噪性與邊緣保持能力,但處理灰度不均勻的圖像時效果較差。文獻[9]引入隸屬度信息,在迭代過程中使用隸屬度矩陣將同一聚類中心的像素點連接到一起,減少目標函數收斂次數。馬爾科夫隨機場[10-11]通過引入圖像先驗概率得出修正項,對原始FCM算法的目標函數進行修改,能顯著提升算法抗噪性。
通過以上研究,本文提出一種結合空間信息的自適應模糊聚類算法,首先使用基于圖像像素密度的方法對選取初始聚類中心的方法進行改進;然后,利用馬爾科夫隨機場獲取圖像空間信息,結合隸屬度特征提升算法的抗噪性;最后使用改進的算法對圖像進行分割。通過實驗證明,本文提出的算法對Berkeley圖像庫圖像有較好的分割性能。
假定圖像中像素點X=(x1,x2,…,xn)可以分為c類,那么每一類都有其對應的聚類中心,對應的聚類中心數目就為c,每一個像素點j屬于該類i的隸屬度為uij。因此FCM目標函數和其約束條件如公式(1)和(2)所示:
(1)
(2)

通過更新隸屬度與聚類中心得到目標函數,當目標函數達到最小值時,停止迭代。每一個像素點根據最大隸屬度確定聚類中心,獲得聚類結果。
(3)
(4)
LOF(local outlier factor)算法是一種基于密度來進行異常事件檢測的算法[12]。數據集中每一個數據的局部離群因子反映了該數據對于局部中心的偏離程度。有如下定義。
定義1:第k距離
在數據集中,對象p的第k距離記作k-dis(p),k是正整數。把對象p與對象o之間的距離記作d(p,o),如果滿足在數據對象中,至少存在k個或至多存在k-1個對象,使得d(p,s) 定義2:第k距離鄰域 將p的第k距離以內的所有點,包括第k距離,稱為對象p的第k距離鄰域,記作Nk(p),且|Nk(p)|≥k。 定義3:可達距離 點o到對象p的第k可達距離可用公式(5)定義: rdistk(p,o)=max{k,dis(o),d(p,o)} (5) 指定點o到對象p的可達距離是點o與對象p的真實距離,或者是點o的第k距離。因此,可認為點o到距離最近的k個點的距離相等。 定義4:局部可達密度 對象p的局部可達密度計算如公式(6)所示: (6) lrdk(p)為對象p的第k鄰域內點到對象p的平均可達距離的倒數。 綜上,可得出離群因子的計算公式(7)如下所示: (7) 根據Hamersley-Clifford定理,馬爾科夫隨機場的先驗概率可以等價于Gibbs分布概率[13]。先驗概率計算方法如公式(8)~(10)所示: (8) (9) (10) 式中,h為標號場Ω的元素,U(h)為吉布斯能量,C為所有勢團集合,Vc為勢團勢能。β為勢團參數,通過β值來調節圖像分割的細膩程度[14],取值范圍是[0,1],數值越小,圖像分割越細膩。 傳統的FCM算法隨機選取初始聚類中心,當初始聚類中心設置不佳,會導致算法陷入局部最優解,影響圖像分割結果。同時,因只使用了單一的灰度信息作為特征進行聚類,導致算法抗噪性比較差。針對初始聚類中心選擇不佳的問題,本文使用圖像直方圖來確定初始聚類中心個數,使用LOF算法獲取初始聚類中心,提高分割精確率;針對只使用灰度信息作為特征的問題,本文通過馬爾科夫隨機場引入局部空間信息對目標函數進行優化,通過對隸屬度矩陣進行修正改進算法流程,提高抗噪性。 在傳統的FCM算法中,隨機生成的初始聚類中心存在兩個問題:一是不確定聚類中心個數,數目過多,計算量增加降低算法效率;數目過少,部分不屬于同一類別的像素點也被歸為一類,導致分割的結果不佳。二是隨機取值的聚類中心可能為異常點,在迭代過程中使算法陷入局部最優解,導致分割結果不佳。為解決以上兩個問題,本文提出一種自適應的確定初始聚類中心的方法。 考慮到被分割圖片像素點過多,不論是進行灰度值映射得到灰度變化直方圖,或是使用LOF算法求像素點的離群因子,計算都比較復雜,直接計算會降低算法效率。對原始圖像進行高斯金字塔降維處理,將大大加快算法運行效率。降維處理首先對原始圖像Iold進行兩次高斯金字塔下采樣,得到新圖像Inew,接著對Inew灰度值進行映射,得到圖像灰度變化直方圖。取其局部極值的個數作為初始聚類中心個數。通過公式(7)計算像素點xi的局部離群因子,將所有的值放入集合P中。 如果圖像中每一個像素點的局部離群因子的值趨于1,說明該像素點與其所在鄰域像素點的密度相近,屬于同一類的可能性比較大;如果其值大于1,說明該像素點為異常點;如果其值小于1,說明該像素點的密度高于與其所在鄰域像素點,作為聚類中心的可能性比較大。 最后從集合P中選擇LOF值最小的對象xi作為第1個初始聚類中心;第2個初始聚類中心放置于與第1個初始聚類中心LOF值不同且距離最遠的點;第3個初始聚類中心放置于與前兩個初始聚類中心LOF值不同且距離次遠的點,以此類推,直到計算得到所有的初始聚類中心數為止。 傳統的FCM算法在聚類時只采用灰度信息作為唯一約束特征,導致圖片有噪點或灰度不均勻時分割效果差。為解決以上問題,本文將通過馬爾科夫隨機場得到的先驗概率與馬氏距離結合,作為修正項對原始的FCM算法進行改進,在算法迭代過程中,使用修正隸屬度矩陣的方法來改進算法流程。使圖像空間信息與原始FCM算法相結合,提高算法對噪聲與灰度不均勻的魯棒性。 2.2.1 結合馬爾科夫隨機場的改進FCM算法 馬爾科夫隨機場模型充分利用了相鄰像素之間的鄰域信息,對噪聲圖像有較強的魯棒性[15]。因此本文結合馬爾科夫隨機場模型,對FCM算法進行優化。 通過公式(8)可以求出每一個像素點j對于聚類中心i的先驗概率Pij。在計算像素點距離時,傳統的歐氏距離將不同像素點的差別同等看待,而使用馬氏距離度量,則會考慮到像素點之間的聯系,更符合實際圖像情況。因此本文算法在度量像素點間距離時,使用馬氏距離代替歐氏距離。馬氏距離M(i,j)的計算如公式(11)所示。本文結合馬爾科夫先驗概率與馬氏距離得出修正項Gij,如公式(12)所示: (11) (12) 使用Gij作為修正項,會有兩個明顯的優點。首先,使用馬爾科夫隨機場計算得到先驗概率Pij,因其考慮像素點j的鄰域像素標記信息,會包含更多的局部空間信息;其次,使用(1-Pij)會使空間約束描述的更為準確,當像素點j屬于第i類的先驗概率Pij較大的時候,(1-Pij)會變得比較小,這樣即使M(i,j)的值較大,整個Gij的值也會比較小。符合算法對修正項的預期要求。 將修正項Gij加入原始FCM算法的目標函數中,得到新的目標函數和約束如公式(13)、(14)所示。在先驗概率趨近1的情況下,既該像素基本屬于所選取的初始聚類中心,算法迭代中將不考慮修正項的影響。采用Gij對FCM算法進行改進,融合圖像空間信息,提升算法抗噪性。 (13) (14) 對目標函數使用拉格朗日乘子法,可得到新的隸屬度與聚類中心的更新公式如(15)、(16)所示: (15) (16) 最終通過求隸屬度矩陣中各個像素點對聚類中心的最大值來確定分割標簽,達到圖像分割的目標。 2.2.2 修正隸屬度矩陣改進算法流程 在FCM算法中,圖像的隸屬度矩陣決定了每個像素點屬于不同聚類中心的程度。在本文中,通過對隸屬度矩陣拆分、處理、合并,提取有用的空間信息,對原始隸屬度矩陣進行修正。修正隸屬度矩陣改進算法的具體實現過程,見算法1。 算法1:修正隸屬度矩陣改進算法 輸入:原始隸屬度矩陣Mold,聚類中心數目c。 輸出:修正后隸屬度矩陣Mnew。 1)拆分Mold為c個與原始隸屬度矩陣相同大小的矩陣 2)//拆分之后的矩陣為M1,M2,…,Mc 3)計算元素uij的3*3鄰域的平均值avg(uij)和標準差sd(uij) 4)//元素uij代表拆分后所有矩陣中的任一元素 5)forM1=M1toMc 6)dev(uij)=uij-avg(uij) 7)ifdev(uij)>sd(uij) 8)標記uij為待更新值,并記錄標記值所在矩陣位置 9)end if 10)end for 11)if 不同矩陣同一位置標記值數目>該位置所有值數目/2 12)uij=avg(uij) 13)end if 14)forMi=M1toMc 16)end for 17)/*使用本文方法更新之后,同一像素在不同聚類中像素的隸屬度之和變得大于1或者小于1,與原約束條件不符,不滿于拉格朗日乘子法的要求,因此必須對隸屬度進行規范化,使其在不同的類中隸屬度之和始終等于1。*/ 18)將拆分之后的隸屬度矩陣合并,得到Mnew。 在FCM算法中,使用修正隸屬度矩陣的方法可以有效的結合鄰域信息對圖像進行聚類。同時由于鄰域信息來源于隸屬度矩陣,因此提供了不同的信息特征,能有效提升FCM算法的抗噪能力。 本文提出的改進FCM算法流程如圖1所示。通過2.1節所提出的技術自適應尋找初始聚類中心,通過2.2節所提出的技術融合空間信息,達到對算法改進的目的。具體實施步驟如下。 圖1 改進的FCM算法實現流程圖 1)使用高斯金字塔,對原始圖像進行降維處理得到新圖像Inew。 2)對處理后的圖像Inew使用圖像直方圖算法得到初始聚類中心個數c,使用LOF算法得到初始聚類中心。設置模糊參數m和迭代停止誤差β。 3)計算修正項Gij。計圖像隸屬度矩陣Mold。 4)使用本文提出的修正隸屬度的方法,對步驟3)得到的隸屬度矩陣Mold進行修正,得到新的隸屬度矩陣Mnew。 5)計算聚類中心vi。 6)根據像素點最大隸屬度確定聚類中心,獲得聚類結果。計算目標函數的值。 7)計算連續兩次迭代之間的目標函數之差,如果小于β,則迭代停止,輸出分割之后的圖像,算法結束;否則轉回步驟4),進行迭代。 為了驗證本文算法的有效性,實驗采用是Berkeley圖像庫圖像作為實驗對象。同時對傳統FCM算法、FLICM算法、FKMFCM算法[16]及本文算法進行分割性能比較。實驗環境為Intel@CoreTMi7處理器,CPU主頻為2.6 GHz,8 Gb內存,Windows10系統的PC機,采用Python3.6編譯語言實現。 隸屬度指數m代表了為選取隸屬度指數m的最佳值,對m進行不同的賦值(m=1.4,1.5,…,2.1)。針對不同的隸屬度指數,選取Berkeley圖像庫#3 096圖像進行實驗,實驗結果如圖2所示。 圖2 隸屬度指數實驗結果圖 針對m的取值問題,從聚類有效性角度,使用Xie-Beni系數、Bezdek劃分系數這兩個客觀評價指標進行分析,其定義如公式(17)、(18)所示。其中Xie-Beni系數越小,Bezdek劃分系數越大表示聚類的效果越好。評價指標結果如表1所示。 表1 隸屬度指數實驗結果 (17) (18) 不同的m值導致計算過程中像素點之間的距離不同,對分割結果造成影響。根據圖2與表1的結果,選取Xie-Beni系數為0.019,Bezdek劃分系數為0.885的m=1.8作為實驗用隸屬度指數,迭代閾值β=0.000 1。其余參數自適應獲取。 為了評估本文選擇初始聚類中心算法的性能,選取Berkeley圖像庫#24 063圖像進行實驗,將通過FCM算法、FLICM算法隨機選擇的初始聚類中心、通過FKMFCM算法圖像直方圖選擇的初始聚類中心以及本文算法選擇的初始聚類中心,作為FCM算法的初始參數進行聚類。實驗結果如表2所示。 表2 適應初始聚類中心算法測試結果 從表2中可以看出,與隨機選擇的初始聚類中心相比,FKMFCM算法與本文算法選擇的初始聚類中心都更接近于最終聚類中心,同時算法的運行時間也會明顯減少。且使用本文算法選取的初始聚類中心進行聚類,迭代次數更少,說明使用LOF算法選取的初始聚類中心更優。同時,在增加空間信息之后,本文算法的迭代次數與運行時間依然小于其余算法,既保證了初始聚類中心的正確性,又提高了算法的運行效率。 為檢測文本算法對圖像分割的精確性,選取Berkeley圖像庫#24 063圖像、#42 049圖像、#317 080圖像進行實驗,實驗所用圖像和標準分割結果如圖3所示,分割測試的實驗結果如圖4所示。 圖3 實驗用圖 圖4 精確度實驗結果圖 從圖4可以看出,FCM算法由于只考慮灰度信息作為特征對圖像進行處理,分割后的圖像邊界不清晰且存在噪點。FLICM算法與FKMFCM算法雖然加入空間信息與灰度信息共同對圖像進行處理,但在邊界扔存在噪點與部分像素錯分現象。本文算法分割之后的結果,邊界清晰完整,有較好分割效果。 為更客觀準確對算法的分割精確度進行評價,本文引入Dice系數[17],JS系數[18]、SA系數[19]作為評價指標。其定義如公式(19)~(21)所示: (19) (20) (21) 其中:S1為分割之后圖像像素集合,S2為標準圖像像素集合。Dice、JS、SA系數的值越大,表明分割精確度越高。分割結果如表3所示。 表3 精確度實驗結果 % 從表3中可以得到,本文算法較其他3種算法,分割精確度上有所提升,Dice系數為85.94%,JS系數為91.92%,SA系數為91.32%。 為確保本文算法在Berkeley數據集上具有普遍意義,取Berkeley數據集中200張圖片作為實驗對象,計算Dice系數、JS系數、SA系數的平均值。實驗結果如表4所示。 表4 Berkeley數據集平均精確度實驗結果 % 從以上實驗結果能夠看出,本文算法在Berkeley圖像庫上的分割精確度上優于文中選取對比算法。 為了驗證本文算法的抗噪性,對#296 059(如圖5)、#106 025(如圖6)圖像進行實驗,分別對其添加高斯噪聲與椒鹽噪聲,實驗結果如圖7、圖8所示。 圖5 實驗用圖#296 059 圖6 實驗用圖#106 025 圖7、圖8為使用原始FCM算法、FLICM算法、FKMFCM算法以及本文算法對原始圖像、添加高斯噪聲之后的圖像、添加椒鹽噪聲之后的圖像進行分割的結果。 圖7 #296 059抗噪性實驗結果圖 相比于原始算法,3種改進算法在結合空間信息之后能有效抑制噪聲影響,分割出圖像噪點較少。但在圖7中,FLICM算法對椒鹽噪聲魯棒性較差,分割添加椒鹽噪聲圖像之后,噪點明顯多于FKMFCM算法與本文算法的分割結果;FKMFCM算法不能有效地將象牙分割出來。圖8中,FLICM、FKMFCM算法分割結果邊緣較為粗糙,存在部分像素點錯分情況,而本文算法能有效地將目標主體與其余部分分割,且與未添加噪聲圖像分割結果接近。 圖8 #106 025抗噪性實驗結果圖 為客觀評價算法抗噪性,引入峰值信噪比[20](PSNR,peak to signal noise ratio)作為評價指標,其定義如公式(23)、(24)所示: (23) (24) 其中:Iij表示無噪聲干擾圖像的標記值,Kij表示有噪聲干擾圖像的標記值,m*n代表圖像大小。PSNR值越大,表明圖像分割之后質量越好,算法的抗噪性越好。 圖9、圖10是實驗所用4種算法對#296 059、#106 025添加高斯噪聲與椒鹽噪聲之后分割結果PSNR值對比柱狀圖,可以看出本文算法在兩幅圖像中表現均優于其余對比算法,說明本文算法抗噪性較強。 圖9 #296 059峰值信噪比柱狀圖 圖10 #106 025峰值信噪比柱狀圖 本文提出一種融合空間信息的改進FCM圖像分割方法。利用LOF算法與直方圖算法選取數目恰當且局部離群因子較大的點作為初始聚類中心,解決原始FCM算法初始化不佳導致陷入局部最優解的問題。利用隸屬度矩陣之間的聯系與馬爾科夫隨機場的先驗概率獲取空間信息,對目標函數與算法流程進行改進,提高算法抗噪性。 實驗結果表明,該算法在分割圖像時能自適應選取較優的初始聚類中心,有效降低算法迭代次數,在分割精確度與抗噪性上均優于對比算法。但該算法也存在不足之處,如每一次迭代過程都需要對隸屬度矩陣進行運算,對椒鹽噪聲表現不佳。下一步研究方向是繼續提升算法抗噪性并優化算法流程,提高運算效率。1.3 馬爾科夫隨機場
2 融合空間信息的自適應FCM圖像分割算法
2.1 自適應選擇初始聚類中心
2.2 結合局部空間信息的改進FCM算法
2.3 改進的FCM算法流程

3 實驗數據分析
3.1 算法參數設置


3.2 自適應選取初始聚類中心算法性能分析

3.3 算法分割精確性分析




3.4 算法抗噪性分析






4 結束語