林佳庆 林嘉炜
(江苏科技大学计算机学院 镇江 212100)
图像分割[1~3]是将一副图像按照一定的规则分割成特点不同且不相交的区域,其相关算法根据不同的分割规则主要包括边缘分割[4~5]、阈值分割[6~8]和基于理论的分割方法。其中聚类分割方法是最经典的基于理论的分割方法,其应用也是最为广泛的方法之一。本文将以模糊C 均值聚类算法FCM(Fuzzy C-means Algorithm)作为研究的主要对象。
1969年,Ruspini[9]首次在聚类分析中引入模糊划分的概念,使得聚类算法中隶属度的取值范围变得灵活,也更加符合对事物划分的规律。在此基础上,Dunn 在1974 年首次提出了FCM 算法[10],并由Bezdek 在1981 年实现,从此FCM 成为了模糊聚类算法[11]研究的主流。目前,有很多改进的FCM 算法[12~13]考虑了像素点的位置信息和灰度信息,但是对于位置信息仅考虑像素点的4 邻域或8 邻域,缺乏对每个像素点区域特性的考虑,并且没有体现最敏感的“梯度”信息,因此不能很好地划分梯度变化不明显的区域。针对上述问题,可以采用分水岭[14]算法将图像中梯度变化不明显的区域进行预划分。同时,为尽可能将相邻区域归属为一类,使用相邻区域的隶属度差异代替聚类算法目标函数中的隶属度。然而,由于分水岭算法自身的缺陷,图像可能会出现“过分割”的问题,此时需要引入形态学方法[15~16]重建图像,重建后既可以提高鲁棒性,也使得结果更加迎合人的视觉感知。
分水岭算法主要是将一副图像进行三维立体化,图像中像素点的灰度值作为该像素点的海拔高度。
分水岭算法在对图像进行分割时,将图像划分成多个小区域,每个小区域视为一类,再用每个区域内像素点的灰度平均值替换该区域内所有像素点的灰度值。通过上述方法,可有效将图像中的噪声和不重要的细节过滤掉,有效地进行预划分。图1(b)和(c)展示了将图1(a)原图进行分水岭分割和图像重建的结果。
图1 分水岭分割与图像重建示意图
传统的FCM 图像分割是将图像中的像素点的灰度值作为聚类的对象[17~18]。FCM是一种基于目标函数的算法。其目标函数如下所示:
其中,V={vk}表示第k个聚类中心,‖xi-vk‖2表示第i个数据和第k个聚类中心的距离(欧氏距离)。U={uik}表示第i个数据xi对于第k个聚类中心的隶属度,并满足如下条件:
式(1)中,m>1 ,表示模糊系数,通常取m=2。FCM 算法是将目标函数最小化的过程,根据拉格朗日求极值法得到:
一副图像由n个像素点构成,已知每个像素点的灰度值xi,将图像分为c 类,通过式(3)和式(4)可得隶属度矩阵U。考虑第i个像素点,遍历ui1~uic找出最大值uik,则该像素点将被归为第k类。
在这种教学方法下,有些学生甚至会感觉课堂乏味无趣,所学到的知识也并没有完全理解与融合。但是教师却希望让学生学到更多知识,所以在课堂上会大篇幅地灌输学生自己的想法。教师的这种想法与做法,最终也就引发了教学质量的不断降低。随着经济全球化的发展,多元化教学方式也随之逐渐传入中国。例如:被教师运用最为广泛的一种教学方式——“少教学,多创新”,它不但可以让学生实现用最少的时间取得最大的学习成果,还提高了学生的思考与创新能力。
FCM算法在处理高维数据集时效率较低,为解决这一问题,引入了核方法[19~20],将FCM 算法中的距离变为核化距离,生成新的目标函数,新的算法称为基于核方法的模糊C 均值聚类算法KFCM(kernel fuzzy C-means)。KFCM的目标函数如下:
其中‖ Φ(xi)-Φ(vk)‖2为核化距离,根据核函数的性质:K(x,y)= Φ(x),Φ(y) ,将距离公式化简有:
核函数中使用频率较高的是高斯核函数,其形式如下所示:
其中σ表示核参数,本文中将设定σ=20。根据式(7)有K(x,x)=0,则式(5)可化简为
将n个像素点构成的图像,划分为c类。
先将图像利用形态学和分水岭方法预划分为N个区域,令第p个区域(1 ≤p≤N)的灰度均值为Lp,像素点数为Cp。根据KFCM 算法的目标函数,可得到新的目标函数如下:
其中upk表示第p个区域对第k个聚类中心的隶属度。
其中,Ei为第i个像素点xi的邻域范围。根据ujk的定义可知,其表示xj对第k类的隶属度,则1-ujk即为xj不属于第k类的程度。因此式(9)的含义表示每个像素点与其邻域像素点不属于同一类的程度,即隶属度差异。类似地,基于区域规则的隶属度差异可以定义为
其中Ep表示p区域的邻近区域,G͂代表相邻区域的隶属度差异。
这里为简化计算过程,引入邻域矩阵W={wpq}的概念:
则式(10)可改写为
在式(13)的基础上引入调控因子λ,再与式(9)进行相加,即可得到本文基于区域规则的粒子群核模糊C 均值聚类方法RBPKFCM(Re⁃gion-Based PSO Kernel Fuzzy C-Means Clustering Method)的目标函数:
其中为避免邻区域隶属度差异惩罚对RBPKFCM的目标函数产生过度的影响,引入了调控因子λ。为使RBPKFCM 的目标函数极小化,根据拉格朗日求极值法得到聚类中心V={vk}和隶属度矩阵U={upk}的结果如下:
该算法具体流程如下:
Step 1 采用形态学方法对图像I进行预处理;
Step 2 采用分水岭算法将图像划分为N个小区域,求出第p个区域(1 ≤p≤N)的灰度均值Lp,并将该区域所有像素点的灰度值设为Lp,再将每个小区域设为一个单独种群,设置种群初始化,利用粒子群的全局寻优能力从小区域中搜索出较为准确的初始聚类中心;
Step 3 将上述参数代入式(15)、(16)的迭代式中,同时设定调控因子λ的值,求出URBPKFCM和VRBPKF⁃CM;
Step 4 根据VRBPKFCM将各个区域所属类别的聚类中心的值设为各区域的灰度值,再根据URBPKFCM确定各个区域该被划分到哪一类;
Step 5 得到分割后的图像。
实验操作环境为Matlab2018b。对比算法分别为RBKFCM(region-based kernel fuzzy c-means clustering method)、PFCM 算 法(penalized fuzzy c-means)和KWFLICM 算法(kernel weighted fuzzy local information c-means clustering algorithm)。上述三种算法以及本文提出的RBPKFCM 算法,都是基于FCM的图像分割算法。
本文的实验对象采用的是分别添加不同噪声的合成图片,并利用四种算法分别对图片进行分割。最终实验结果如图2、3、4 所示。从实验结果看,四种算法的抗椒盐噪声能力都比较强,但在对添加高斯噪声的图片分割时,KWFLICCM和RBPK⁃FCM 算法要好于PFCM、RBKFCM 算法,其实验数据结果如表1 所示,前两者的正确率均接近100%,其中正确率表示像素点被正确分割的数量占总像素点数量的百分比。将四种算法处理后的分割结果进行对比可以发现,由于RBPKFCM 算法在确定初始聚类中心时采用粒子群方法,使结果最终更加稳定。而主要的误差集中在区域边界附近,该位置也恰好是噪声出现的位置,此结果也是相对可以预见的。
图2 对图像I1(0.03椒盐噪声)采用不同算法的分割结果
表1 不同类型图片的分割正确率/%
上述实验验证了本文算法对于合成图片进行分割时取得了良好效果,以下实验对自然图片进行实验,进一步说明本文算法的优越性。
图5、图6、图7 分别给出了对自然图片进行分割的实验结果。图5 中,PFCM 在分割背景区域和屋顶区域时,背景和屋顶均被划分为两部分,结果并不理想,RBKFCM 在对屋顶和屋体划分时,空隙处的细节分割效果并不理想。由于屋顶边缘处的灰度值较大,KWFLICM算法在划分屋顶部分时,将其划分成了多个部分,而RBPKFCM 算法正确地将整个屋顶视作了一类,并且整体分割效果层析清晰。图6 中,羚羊的身体和头部的灰度值相差较大,PFCM 和KWFLICM 算法在对其进行分割时,对身体区域的划分有较大误差,RBKFCM 和RBPKF⁃CM 算法对羚羊身体区域有着较好的分割效果,然而在草坪中由于RBPKFCM 引入PSO 寻优,使得最终分割结果更理想。图7 的分割结果体现了RBP⁃KFCM 算法在提取图像主干上的高效性:背景中天空的云朵被忽略,地面上的倒影却被勾勒。通过多次实验对比可以看出,本文算法对比前三种算法,其分割结果层次清晰,细节也不冗余,对比其他算法,具有较明显的优势。
图3 对图像I2(0.03高斯噪声)采用不同算法的分割结果
图4 对图像I3(0.03高斯噪声)采用不同算法的分割结果
图5 对图像“Church”采用不同算法的分割结果
图6 对图像“Reno”采用不同算法的分割结果
图7 对图像“Pilots”采用不同算法的分割结果
传统的聚类算法在进行图像分割时是将每个像素点作为聚类的对象,RBPKFCM 算法综合考虑了灰度信息、梯度信息和位置信息,使得最终的分割效果更佳。其具体过程是先通过形态学和分水岭方法将图片进行预划分,形成多个小区域,将各个小区域作为聚类的对象,通过PSO算法寻找每个区域内最佳初始聚类中心,再将这些初始聚类中心视作聚类入口,弥补了聚类算法在“梯度”上的缺陷。结合引入的惩罚项和调控因子,使得距离较近的区域更容易划分成一类。但是,本文算法仍存在一些不足之处,本文算法中的一些参数是预先设定的,尚未能根据实际情况自动取值。接下来的研究方向将是重点研究如何根据实际应用情况进行参数设定。