基于狮群优化的FCM图像分割算法研究
2019-08-08韩涛黄友锐徐善永许家昌周宁亚
韩涛,黄友锐,徐善永,许家昌,周宁亚
(安徽理工大学电气有信息工程学院,安徽 淮南 232001)
1 引言
图像分割是将图像分割成多个不同区域并提取感兴趣区域的过程。它在图像处理、模式识别和人工智能等领域占有很重要的地位。近年来,已经提出了大量的图像分割算法,如阈值分割法、区域生长方法和聚类算法[1-3]等。其中,模糊C 均值(FCM)[3]作为一种模糊聚类算法,具有同时处理图像分割和噪声去除两个问题的潜力,成为近年来许多学者的研究方向。但是由于FCM 聚类算法在进行图像分割时容易陷入局部最优和需要预先设定初始聚类中心的问题,一些学者提出了多种改进的FCM 聚类算法。针对目标函数易陷入局部最优值,文献[4],提出了利用仿生智能算法遗传算法与FCM 结合(GAFCM)来解决该问题。对于初始聚类中心的选取,文献利用最大类间方差划分多个灰度区间,根据区间灰度值来确定初始聚类中心。
基于前面两种问题的改进,本文提出一种新的自适应FCM 图像分割算法。首先,该算法在优化FCM 的目标函数时,利用狮群算法更新聚类中心,然后,引入聚类有效性函数,通过迭代更新搜索到合理的分割类别数,实现自动确定图像分割最佳类别数,并根据最佳类别数确定最佳的分割结果,最终实现图像的自适应分割。利用改进的方法对仿真图像进行实验,实验结果表明,本文算法不仅可以提高算法的收敛速度,而且还能自适应地确定图像分割最佳类别数,并能快速准确地实现图像分割。
2 改进的FCM算法
2.1 模糊C均值聚类和相关算法
模糊 C 均值(FCM)首先由 Ruspini[5]引入,然后经由J.C.Dunn 和J.C.Bezdek[6]推广到模糊聚类。它是一种聚类算法,其中所有数据点都被认为在某种程度上隶属于所有聚类。数据点(也就是像素)表示为一个集合X={x1,x2,…,xN},其中作为像素的xi维度向量与每个像素x 相关联。目的是以下列目标函数最小化的方式找到C 簇中心:
其中U 为模糊划分矩阵,V 为聚类中心矩阵,N 和C 分别为像素个数和簇数,uij为像素i 到簇j的隶属度的值,需要满足m是加权指数。d(.,.)表示距离度量,d(xi,vj)就是像素xi和聚类中心vj之间的距离,它在我们的方法中使用欧几里德度量。然后使用拉格朗日乘数得到以下两个更新方程,这些方程是必要的但还不足以使方程(1)最小:
2.2 狮群算法
狮群算法[7-8]根据自然界狮子真实的生存状态将狮群分为狮王、母狮、幼狮三大类,由于在狮群中狮王、母狮、幼狮的分工不同,模拟出狮王守护、母狮捕猎、幼狮跟随三种行为。
狮王是狮群中最强壮和凶猛的公狮,是在“弱肉强食,胜者为王”的自然界生存法则产生的首领。有守护领土和保护幼狮以及分配食物的职责。
母狮在狮群中的任务主要是捕猎和照顾幼狮,它们首先探寻猎物的踪迹,再通过协作来进行围捕,在追捕猎物时先进行大范围地搜索,当靠近猎物时,缩小包围圈来围捕猎物。
幼狮在狮群中属于跟随狮,主要有三种活动,一是饥饿时靠近狮王,在其附近开始进食;二是食饱后跟随母狮学习捕猎;三是长大后被狮王驱赶出狮群,成为流浪狮,在经过锻炼后可以向狮王发起挑战。
2.2.1 狮群初始化
设狮群中的狮子数量为N,维度空间为D,其中成年狮子的数量为nLeader,
式中 β 为成年狮所占比例因子,为(0,1)内的一个随机数。令待寻优的阈值向量为xi=(xi1,xi2,…,xiD),1≤i≤N。捕猎过程中不同类型的狮子都会按照自己的方式来移动自身的位置。
2.2.2 狮王守护
从待寻优空间的初始化位置开始,计算适应度值,其中具有最佳适应度值的为狮王,记为Klion。狮王在最佳食物处小范围移动,以确保自己的特权,按照下式更新自己的位置。
狮王只负责照顾幼狮和保护领土和给幼狮分配食物,直到进入下一次迭代,被更为强壮和凶猛的成年狮替代。
2.2.3 母狮捕猎
在确定好狮王后,选取一定比例的捕猎狮,由于开始时目标搜索空间只有一头公狮,所以母狮的数量为。母狮在捕食过程中需要和另一头母狮合作,按
更新自己的位置。式中
其中为母狮移动范围扰动因子,是为了加强局部开发能力,让母狮在捕猎过程中先在较大的范围内勘探食物,确定大致范围后,勘探范围从大慢慢缩小,后期保持活动范围趋于零的微小值。
上式中
式中表示狮子在活动范围内最大步长,而狮子在活动范围空间维度的最大和最小均值分别用和表示。
2.2.4 幼狮跟随
幼狮是跟随狮,主要围绕狮王和母狮进行活动。按:
调整自己的位置。式中γ 是一个随机数,按正态分布 N(0,1)产生。表示第i 头狮子第k 代历史最优位置,gk表示第k 代狮群最优位置,表示母狮捕猎狮挑选的合作对象的历史最佳位置。表示第i 头幼狮在捕猎范围内被驱赶的位置。表示幼狮跟随母狮第k 代历史最优位置,q是概率因子,根据均匀分布U[0,1]产生的均匀随机数。
2.3 基于狮群优化的FCM算法
初始化参数。设置狮群中狮子的位置xi及数目N,成年狮占狮群数量比例β,最大迭代次数T,维度空间D。
将每一头狮子设为待寻优的位置向量,计算出狮群中狮王、母狮以及幼狮三类的数量,并将个体历史最优位置设置为各个狮子的当前位置,群体最优位置设置为狮王位置。
通过式(5)更新狮王的位置,同时计算适应度值。
通过式(6)更新母狮的位置。
通过式(7)更新幼狮的位置,
计算出适应度值,更新自身历史最优位置和狮群历史最优位置,判断算法是否满足终止条件,若满足跳转到步骤(8),否则跳转步骤(7)。
间隔一定的迭代次数(约10 次)对狮群进行重新排序,重新确定三类狮子的位置,跳转到步骤(3)。
输出狮王位置,作为图像的最优聚类中心。
2.4 改进狮群优化的FCM算法
2.4.1 聚类有效性指标
本文引入聚类有效性指标[9],通过迭代更新搜索到合理的分割类别数以实现自动确定图像分割最佳类别数,其定义如下:
其中,V 表示为类内紧凑度和类间分离度之间的平衡度,当它的值达到最小时,聚类效果也就达到了最好。c 表示为聚类数目,由VXi达到最小时,此时的c 就为最佳聚类数目。利用VXi这一指标的优点,在FCM 算法中引入VXi指标,用来自适应确定待分割图像的最佳聚类数目。
2.4.2 基于聚类有效性的改进狮群优化FCM 算法
本文利用改进狮群算法优化FCM 算法,其算法步骤:
(1)初始化参数。首先设置聚类数的范围[cmin,cmax],令初始聚类数目c=cmin,再设置算法其他参数。
(2)令狮群中的狮子的维数d=c。
(3)运行改进的狮群优化算法,将FCM 分割算法的目标函数公式(1)作为改进狮群优化算法的适应度函数。
(4)将改进狮群算法寻找到的最优解作为最佳聚类中心。
(5)根据公式(10)计算有效性指标V_Xi(c)。
(6)令 c=c+1,如果 c〉cmax,则执行下一步;否则,返回步骤(2)继续执行。
(7)比较所有的VXi(c),最小的有效性指标所对应的参数c 就是最佳图像分割类别数
(8)根据最佳聚类中心,实现图像分割。
3 实验仿真与分析
为了全面评估所提出的方法,我们在Berkeley数据集上测试了我们的方法。它专门用于图像分割和边界检测。对于这个数据集,选择了3 张名为3096、42049、253027 的图像进行实验。
我们将我们的方法与传统FCM 和GAFCM 的图像分割算法进行了比较。
3.1 参数设计
实验硬件配置为: 因特尔2.5GHZ 4 核处理器,8G 内存,500GB 固态硬盘,Windows7 系统。软件开发环境为Matlab2010a。仿真程序中设置狮群的群体规模N=100,向量空间维数D=2,最大迭代次数T=100,根据文献[8]并经过多次仿真实验发现比例因子β=0.2 时收敛效果最好,FCM 的终止阈值为0.001,最大迭代次数T=100,加权指数m=2,聚类数目为2。对比算法中GA 中参数为:对于GA 中参数设定:N=100,最大遗传代数T=100。
(a)为原图像。为了定性地比较我们的方法与其他方法的分割结果,我们将我们的方法与传统FCM 和GAFCM 的图像分割算法进行了比较。
利用三种方法分别对图像进行分割,结果如图(b)。
(1)FCM 算法分割效果比较模糊,目标丢失严重,一些细节还没有分割出来,对于背景复杂的图像,分割效果更差,这主要是由于FCM 算法对初始聚类中心的值十分敏感,容易收敛于局部极小值,导致误分、错分现象出现。
(2)较于 FCM 算法,GAFCM 图像分割算法的分割效果得到改善,主要是采用粒子群优化算法选择 FCM 算法的初始聚类中心,较好克服FCM 算法的不足。
(3)狮群优化FCM 算法不但误分割很少,可以更加有效地分割背景与目标,而且能够有效保持图像细节信息,尤其在复杂背景的图像中优势更加明显,这主要是由于狮群群算法比遗传算法具有更优的寻优效果,有效解决了FCM 算法对易陷于局部最小的不足,具有更广泛的应用价值。
3.2 定性分析
为了定性的分析,列出各算法的相应指标,对比算法的分割效率。
表1 传统FCM 的相应指标
表2 PSOFCM 的相应指标
表3 本文算法的相应指标
从这三个表可知,相对于传统FCM 和GAFCM图像分割算法,狮群优化的FCM 算法的迭代次数大幅度下降,分割时间明显比另外两种短,这主要是由于采用狮群算法对模糊C 均值聚类算法进行优化,收敛速度明显加快,有效提高了图像分割效率,可以满足图像分割实时性需求。
4 结束语
本文提出了一种改进狮群优化的FCM 图像分割算法,利用狮群优越的全局寻优能力克服了FCM算法确定初始值困难的确定,并通过引入有效性指标较好地解决了图像分割中确定分割类数较难的问题,从而实现图像的自适应分割。实验结果表明,狮群优化的FCM 算法比传统FCM 和GAFCM 寻优能力更强,分割结果更好,而且分割完成的时间比这两种算法要短的多,整体在提高效率的同时大大缩短了运行时间。