石雪松,李憲華*,孫 青,宋 韜
(1.安徽理工大學機械工程學院,安徽淮南 232001;2.上海大學機電工程與自動化學院,上海 200444)
圖像分割是處理后續實際問題的基本預處理步驟,為初期圖像處理和后期識別架起了橋梁。圖像分割是將圖片分割成目標和背景,目標如圖像的突出區域、對象或對象的自然部分,其中分割過程是像素的分組過程,發生在鄰域內具有相似屬性的像素之間,如強度、顏色或紋理[1]。
噪聲是計算機視覺處理中不可避免的一部分,如何避免噪聲的影響是當前一個很有意義的研究方向。模糊C均值(Fuzzy C-means,FCM)算法是當前比較流行的圖像分割方法,大量的研究人員對基于FCM算法的噪聲圖像分割方法展開了研究[2-6],相比于硬分割方法,FCM算法能保留更多的圖像紋理細節信息。鑒于傳統FCM算法的抗噪性能弱,相關學者提出將FCM算法與其他算法相結合的方法來去除噪聲。文獻[7]提出了一種基于模糊C均值與人工蜂群(Artificial Bee Colony,ABC)優化的灰度圖像分割方法。文獻[8-9]提出了粒子群優化(Particle Swarm Optimization,PSO)算法[10]與FCM結合的圖像分割方法。PSO算法、遺傳算法[10]、灰狼算法的引入在一定程度上提高了圖像分割的魯棒性。其中,PSO算法在搜索過程中容易陷入局部極值,且在進化后期階段收斂精度較低、速度較慢[11]。目前也有研究人員通過改進FCM算法來增強算法的抗噪性能,文獻[12]中提出一種邊緣細分的動態參數模糊C均值圖像分割算法,文獻[13]中在目標函數中引入了局部和非局部信息,通過信息熵調整像素信息和非局部空間信息之間的權重,增強了算法的抗噪性能。以上分割方法較少地保留圖像邊緣紋理信息,僅在抗噪性能和分割性能上有所改進。
本文在基于傳統的FCM圖像分割的基礎上提出一種基于小波變換的噪聲圖像FCM分割方法。首先,將噪聲圖像進行二維小波分解;其次,采用ABC算法對圖像細節系數進行閾值處理,并對近似系數進行邊緣增強;然后,使用FCM算法來進行圖像分割,使其在分割時能更多地保留圖像邊緣紋理信息。
Mallat算法提出了多分辨分析的概念[14]。由于數字圖像通常以二維數組f(x,y)來表示,假設二維信號為f(x,y),采用二維Mallat算法來進行小波變化,二維小波變換的定義為:

其中:a是引入的歸一因子,保證了小波收縮前后能量不變;Ψ為傅里葉變換。
其逆變換為:

其中:

數字圖像在經過二維小波分解后會得到4個分量,分別為對角系數D、水平系數H、垂直系數V和近似系數A,其中D、H和V又稱之為細節系數。
本文采用軟閾值函數[15-16]來對小波系數進行閾值處理,去除或衰減容易被噪聲破壞的系數,保留有用的系數,從而抑制噪聲,閾值函數為:

ABC算法以蜜源的形式來提供閾值,然后通過式(4)來對圖像進行閾值處理。其中系數A并不進行閾值處理,因為A系數中包含很多對圖像有用的細節信息。
每次迭代都要對蜜源性能進行評估,這樣可以保證最終得到最優解。利用當前迭代的閾值系數進行閾值處理,處理后的細節系數和近似系數通過逆小波變換重建圖像,然后根據重建圖像計算FCM目標函數,如式(5)所示,其中數據點是每個像素點的灰度值。這種適應度評價直接針對分割結果,從而間接針對圖像噪聲。

雖然這個目標函數需要在ABC算法的每次迭代中進行計算,但是由于使用了基于直方圖的FCM,總體計算成本在能夠接受的范圍內。
ABC算法是模擬蜜蜂的覓食(采蜜)過程,組成要素有食物源、引領蜂、跟隨蜂和偵察蜂[17]。


其中fi為解的函數值。
1)首先,初始化蜜源i的位置,按照式(7)在搜索空間中隨機產生。

其中Ud和Ld分別為搜索空間的上邊界和下邊界。
2)更新蜜源位置。
在搜索之后,引領蜂根據式(8)在蜜源i周圍搜索一個新的蜜源。

其中:j≠i,?是在區間[-1,1]均勻分布的隨機擾動系數。
3)跟隨蜂按概率跟隨引領蜂。
根據所獲得的蜜源信息,并按式(9)來計算概率,按照概率來選擇引領蜂跟隨。

4)偵察蜂的產生。
設置迭代次數t,若蜜源i經過t次迭代后達到閾值界限threshold,但是并沒有找到更好的蜜源,這種情況下蜜源i會被放棄,這時對應的采蜜蜂轉變為偵查蜂,偵查蜂將繼續在搜索空間繼續搜索新的蜜源代替蜜源i。
圖片在經過小波分解后,圖片噪聲存在于細節系數之中,為了保留圖像邊緣紋理特征,本文使用Canny邊緣檢測算法作用于近似系數之中來檢測圖像邊緣信息,利用式(10)來實現圖像增強,將這兩個系數進行小波重構,保留了圖像的邊緣紋理特征,有效地提高圖片的分割質量。

其中:k為[0,1]的常數,Ae為經過Canny邊緣檢測算法處理后的系數。
FCM算法是一種基于目標函數的模糊聚類算法,為了使得FCM分割速度更快,本文采用FCM對灰度級進行聚類,而不是對像素點進行聚類,這是因為一般情況下灰度級的數量要比像素點的數量小得多。利用聚類方式進行圖像分割的實質是將灰度級集合分為C類的問題,每個類屬中均含有唯一的聚類中心,在不斷的迭代中實現聚類中心的更新,通過最小化目標函數優化聚類結果,使用隸屬度矩陣來描述各個像素點的類屬性質,通過單個像素點與聚類中心的相似程度來判斷其在不同類別中的隸屬程度。
圖片中灰度級集合為X={x1,x2,…,xc},將這些數據劃分為C類,那么聚類中心就有C個,xi是在一維向量空間中的一個與像素有關的特征向量,目標函數可改為:

其中:sj為灰度級為j的像素點數量;L為灰度級數量;m是隸屬度因子,m∈(1,+∞);使用拉格朗日乘數得到聚類中心更新方程和使目標函數最小的隸屬度方程。

FCM算法直接對噪聲圖像進行分割,分割效果受到圖像噪聲嚴重影響,故本文先采用小波變換與ABC算法融合,降低圖像噪聲并增強圖像邊緣紋理信息,然后對重構后的圖像進行FCM分割,使得分割后的圖像魯棒性更高。本文方法流程如圖1所示。

圖1 本文方法流程Fig.1 Flow chart of proposed method
本文方法總體可分為四大步驟,如下所示:
步驟1 輸入圖像,將圖像進行小波分解得到4個系數:

其中W表示小波分解。
步驟2 利用ABC算法對細節系數D、H和V分別進行閾值搜索,當適應度值不超過給定的閾值時,則在20次迭代后停止迭代,每次迭代后按當前閾值處理模糊系數,然后對模糊系數和未處理的細節系數進行小波重構,按照式(5)對重構后的圖像進行評估,這樣保證了獲得最優閾值。

其中:ABC表示ABC算法搜索最優閾值;δ表示閾值;Th表示進行閾值處理。
步驟3 對模糊系數A進行邊緣增強,具體表達式如式(10)所示。
步驟4 將處理后的系數進行小波重構,對重構后的圖像進行FCM分割處理。

其中:W-1是小波逆變換,用來重構圖像;FCM表示對圖像進行FCM分割。
為了驗證本文方法的分割性能和噪聲抑制能力,如圖2所示,選取五張典型的灰度圖像,分別命名為img1,img2,…,img5。并對這五張圖像分別添加高斯噪聲與椒鹽噪聲。首先對圖像邊緣增強中的系數k分別取0.5、0.7、0.9,然后對img1進行重構和分割,通過直接觀察重構后和分割后的圖像進行分析,從而選取合適的k值。然后聚類數C分別取3、5和6對img4進行分割實驗,分析分類效果和目標函數收斂速度,選擇合適的C值。最后分別采用本文的方法、傳統的FCM方法和粒子群優化算法分割方法進行分割,得到三種不同的結果,然后采用峰值信噪比和誤分率來定量地評價本文方法的抗噪性能和分割性能,采用算法運行時間來評價算法的時間復雜度。

圖2 原圖及添加噪聲圖像Fig.2 Original and noise added images
實驗在Windows10系統下進行,CPU為AMD Ryzen 5 2600,主頻3.40 GHz,運行內存為16 GB,實驗環境是Matlab a2017版本下運行。
在實驗研究基礎之上,ABC、FCM、小波變換、邊緣增強相關參數如表1所示。

表1 關鍵參數設置Tab.1 Key parameter settings
圖3是在不同k值下的圖像重構與分割效果,直接觀察可以發現在k取0.9時重構后的圖像紋理最清晰,且分割后的效果最好。

圖3 不同k值時圖像重構效果和分割效果對比Fig.3 Comparison of image reconstruction effect and segmentation effect with different k values
圖4是C值分別取3、5、6時FCM對img4含高斯噪聲和椒鹽噪聲圖像灰度值分類結果,發現當C取3時,圖像灰度值所分類別區分度明顯,C取5時,圖像灰度值分類層次分明,在分割時能有利于保留一些紋理細節。

圖4 C值取3、5、6時灰度值分類結果Fig.4 Classification results of grayscale valuewhen C value is3,5 and 6
圖5是使用本文方法、FCM算法、PSO算法對這五張圖片在添加不同噪聲情況下進行分割后的結果,通過直接觀察分割結果可以看出,本文算法分割后的圖片受到噪聲影響較小,特別是對含椒鹽噪聲圖像分割上效果比其他兩種方法有顯著的提升,而本文算法在這兩種噪聲下保持一定的穩定性。

圖5 分割后圖像Fig.5 Segmented images
為了進一步驗證本文方法的抗噪性能,本文采用峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)來定量地評價,PSNR越大,則表明本文方法抗噪性能越好,定義為:

其中,MAX為圖像像素的最大值;MSE為圖像像素均方差,定義為:

其中:m×n為圖像的大小,K和I分別為原始含噪圖像和分割后的圖像。
為了進一步驗證本文方法的分割性能,本文采用誤分率(Misclassification Error,ME)作為指標來評價本文方法的分割性能,ME值越小,就表明本文方法分割性能越好,定義為:

其中:Ai表示分割算法中分成第i類的像素點;Bj表示在沒有噪聲的理想圖像中分成第j類的像素點;C為類別數。
為了客觀地評價本文分割方法的抗噪性能與分割性能,表2給出了使用三種方法分割得到圖像的PSNR值和ME值。

表2 三種方法對噪聲圖像分割后的PSNR,ME和所用時間Tab.2 PSNR,ME and time consumption of noisy image segmentation by three methods
對比分析這三種方法分割后圖像的PSNR值和ME值,本文方法分割后圖像PSNR值相較于傳統FCM分割方法和PSO算法分割方法平均分別提升160%和20%,最多分別提升281%和54%;ME值平均分別降低28%和13%,最多分別降低55%和41%。本文方法對噪聲圖像的分割性能更好,并且具有更好的抗噪性能。但是對比算法運行時間,本文算法運行時間比傳統FCM方法要長,與粒子群優化算法分割方法相比稍有優勢。
將噪聲圖像進行二維小波分解,然后采用ABC算法對圖像細節系數進行閾值處理,并對近似系數進行邊緣增強,最后使用FCM算法來進行圖像分割。本文對五張不同的圖像分別添加高斯噪聲和椒鹽噪聲,然后對這些添加了噪聲的圖像分別使用本文方法、傳統的FCM方法和PSO算法分割方法進行分割,將分割后圖像的峰值信噪比和誤分率作為性能指標,實驗結果表明,本文方法能有效地保留圖像的邊緣特征,有較好的抗噪性能與分割性能。