刘 璇,高保禄,王朝辉
(太原理工大学 软件学院,山西 晋中 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 结束语