改进TLBO 优化人工鱼群算法实现FCM 图像分割
2021-06-14贺风婷刘彦隆刘鑫晶
贺风婷,刘彦隆,刘鑫晶
(太原理工大学信息与计算机学院,山西晋中 030600)
海量的图片是计算机与外部世界沟通的桥梁,图像分割作为图像处理的第一步,也是最为重要的一步,是之后图像处理的基础,分割效果的好坏决定了后续步骤的质量。图像分割本质上是将像素进行分类,将具有相似特征的像素划分到一类,具有差异性的像素则被划分到不同类别[1]。FCM 算法是一种常用的聚类方法,由Dunn 首先提出,是对早期K 均值聚类算法的一种改进,其由于简单有效的特点得到了广泛的使用[2]。
近几年来,针对FCM 算法对初始聚类中心较为敏感的问题,许多群智能优化算法被应用于确定FCM 算法的聚类中心。其中,人工鱼群算法(AFSA)具备优秀的全局寻优性能,同时对初始参数的要求较低,鲁棒性较强[3]。研究学者针对人工鱼群算法做出了很多改进,文献[4]将通信行为引入人工鱼群算法中,并与FCM 算法进行结合;文献[5]利用最速下降法对公告板中适应度最好的人工鱼进行更新,提高了算法的收敛速度;文献[6]将反向学习机制引入到人工鱼群算法中,避免了算法的早熟;文献[7]利用体能变换模型确定算法搜索过程中的步长,使得算法的寻优精度得以提高;文献[8]为了防止算法陷入局部最优,在人工鱼的行为中加入了游动行为;文献[9]将跳跃行为加入到工鱼群算法中,以改善算法后期易陷入局部最优解的缺陷。虽然国内外学者针对标准AFSA 算法进行了不同程度的改进,并且用于各个领域的研究,但仍存在不足。
为了更好地改进标准AFSA 算法存在的后期寻优效果较差以及FCM 算法对初始聚类中心敏感导致的图像分割速率和精度较低的问题,文中提出了基于改进教学优化的人工鱼群算法(ITLBO-AFSA)实现FCM 图像分割的方法。算法利用AFSA 较强的全局搜索能力,同时将改进之后的教学优化算法(TLBO)融入寻优过程,充分利用人工鱼群算法寻优过程中每一次的最优值,进行正向引导。通过仿真实验数据证明,将优化后的算法应用于寻找FCM 算法的聚类中心,算法容易跳出局部极值,图像分割的速度和精确度均有较明显的提升。
1 优化的人工鱼群算法
1.1 基本的人工鱼群算法
基本的人工鱼群算法(AFSA)[10]是模仿鱼类寻找食物过程中的各种行为特点而提出的一种动物体的智能全局优化算法。用向量X={x1,x2,x3…xn}表示人工鱼个体的状态,每条人工鱼代表了问题的一个解,食物浓度则代表了目标函数的值,为Y=f(X),算法通过不断地进行行为选择来执行鱼群的基本行为,通过更新人工鱼的位置来找到食物浓度最高的地方,寻得最优解。鱼群的基本行为有以下4 种:
1)聚群行为:人工鱼根据所确定的视野范围搜索此范围内的所有人工鱼,令所有人工鱼的数目为s,其中心位置表示为Xc,如果Yc>Yi并且s/N<δ,说明Xc处的食物浓度较高并且拥挤度较低,则人工鱼按照下式向Xc前进一步:
否则执行觅食行为。
2)追尾行为:人工鱼根据所确定的视野范围,搜索此范围内食物浓度最高的位置Xh,邻域内所有人工鱼的数目为s,如果探测到s/N<δ,则人工鱼按照下式向Xh前进一步:
否则执行觅食行为。
3)觅食行为:人工鱼根据确定的视野范围随机搜索一个位置Xj,如果Yj>Yi,则说明Xj处的食物浓度比当前位置Xi处的更高,则人工鱼按照下式向Xj前进一步:
否则执行随机行为。
4)随机行为:如果人工鱼在觅食行为进行了try_number次之后,在视野范围内还是没有发现食物浓度更高的位置,则按照下式随机移动一步,以免解陷入局部最优:
5)公告板:用来记录人工鱼群的最优解,包括食物浓度及位置,它是一个根据人工鱼行为动态变化的值。
1.2 AFSA的改进
1.2.1 自适应确定视野和步长的值
在基本的AFSA 中,visual和step的值均为固定的值。如果初始化的visual值过大,那么在人工鱼群算法的前期可以提高收敛速度,但是在后期,逐渐逼近最优解,这时过大的visual值会导致算法错过最优解,得到的仅仅是局部最优解,反之,如果初始化的visual值过小,则收敛速度过慢,效率下降。如果步长较大,则在算法初期,人工鱼的聚集速度很快,但是在后期,较大的步长将会使人工鱼很难精确地到达极值点,从而产生振荡现象,而此时较小的步长会获得更加精确的极值。如果采用随机值,则将会增加计算的时间。所以文中采用自适应视野和步长的策略[11],具体的视野和步长取决于人工鱼当前的位置和距最优人工鱼位置的距离,方法如下:
每进行一次迭代之前,每条人工鱼都要计算自身Xi与公告板中保存的最优个体Xm的距离,并将这个距离值作为其视野,而步长通过联合系数a(0<a≤1)和视野联系起来,即
因此,视野和步长不再是一个固定不变的值,而是会随着最优个体的改变而不断地进行更新,从而避免盲目寻找。随着算法的进行,选择合适的视野和步长值,从而改善算法的整体性能。
1.2.2 引入改进的教学优化算法
虽然AFSA 算法超初收敛速度快,效果较好,但是当算法进行到后期时,如果继续在全局范围内盲目搜索,将会导致时间的浪费,而如果充分利用公告板中所保存的历史解[12],对其余人工鱼个体的寻优过程进行正向指引,则会加快寻优速度。
基本的教学优化算法[13]主要包括教师教学和学生交流两个阶段,整个人工鱼群是一个“班级”,公告板上记录的个体是班级中的“教师”,为当前最优个体,每个人工鱼除自身以外的个体都看作是“学生”。具体实现如下:
1)自适应教学因子的教学过程
教师通过不断地向学生传授知识,提高学生的整体水平。经过教学过程产生的解为:
在基本的教学算法中,教学因子TF随机取值为1 或2,这就导致了学生学习过程中要么不向老师汲取知识,要么汲取全部知识,所以令
其中,Xinew为经过教学过程后人工鱼Xi的新位置,rand 为[0,1]的随机数,Xm为公告板上的最优人工鱼个体位置,i为当前的迭代次数。从式(7)可看出,随着迭代次数的增加,TF的值从2 逐渐减小,直到最后减为0,这符合前期学生与教师之间水平差距较大,学习能力较强,后期掌握的知识逐渐增多,学习能力减弱的客观事实。经过教学过程后,如果Yinew<Yi,则将人工鱼位置更新为Xinew,否则不更新。
2)基于差分进化的交流过程
在人工鱼群算法的前期,学生之间可以相互交流,此时充分利用人工鱼个体的多样性,可以进一步提升寻优结果的全局性。在基本的教学算法中,交流过程只与两个学生有关,在改进后的交流过程中,学生之间不仅可以内部交流,同时也可以和教师进行交流,经过此过程所得到的解为:
其中,Xinew为经过交流过程后人工鱼Xi的新位置,Xm为公告板上的最优人工鱼个体位置,Xa、Xb为当前迭代次数中不同于Xi的两个互异的学生。经过交流过程后,如果Yinew<Yi,则将人工鱼位置更新为Xinew,否则不更新。
2 混合优化算法用于FCM图像分割
2.1 基本的FCM算法
假设一个数据集中有n个元素,用X={x1,x2,x3…xn}表示,如果把这些元素分为c类,则会有c个聚类中心[14],每个类对应的类中心为Vi(1<i≤c),数据集中的每个样本xi属于每一类别j的隶属度为uij,FCM 的目标函数定义如下:
利用拉格朗日乘数法得到以下两个方程:
可以发现,uij和Vi属于相互包含、相互影响的关系,FCM 算法就是不断地对隶属度uij和聚类中心Vi进行调整,迭代之后使目标函数的值最小,最终求解最优值的过程。
FCM 算法的具体步骤如下:
1)初始化模糊指数m、聚类个数c、最大迭代次数T、迭代停止阈值ε等参数以及隶属度矩阵U;
2)根据式(10)计算聚类中心Vi;
3)根据式(11)更新隶属度uij;
4)重复步骤2)、3),直到达到最大迭代次数或者收敛阈值ε。
2.2 文中算法具体步骤
文中算法流程如图1所示。
图1 文中算法流程图
步骤1 初始化参数:初始化人工鱼群数目N、觅食行为的试探次数try_number、最大迭代次数max_inter、拥挤度因子δ、最大停滞次数Tm等各项参数;
步骤2 更新公告板:在该算法中,人工鱼个体的适应度值即为FCM 聚类算法的目标函数,根据式(9)计算每个人工鱼个体的适应度值,在公告板上保存最优个体的信息;
步骤3 计算视野和步长:计算每条人工鱼与公告板中记录的人工鱼个体的距离,将其作为visual值,并根据式(1)计算出相应的step值;
步骤4 更新人工鱼个体的位置:按照式(1)~(4)执行人工鱼群的4 种基本行为,更新人工鱼个体的位置,得到更新后的人工鱼;
步骤5 交流过程:根据式(8),每条人工鱼分别执行交流过程得到Xinew,如果Yinew<Yi,则更新人工鱼的位置为Xinew,否则不更新,再与公告板中的状态进行比较,如果Yinew<Ym,则更新公告板,否则不更新;
步骤6 检查公告板:如果公告板没有更新,则T=T+1,判断是否T=Tm,如果成立,则转到步骤8,否则转到步骤7,如果公告板更新,则T=0;
步骤7 教学过程:利用公告板中记录的最优人工鱼对每条人工鱼个体执行教学过程,得到Xinew,如果Yinew<Ym,则更新公告板,否则不更新;
步骤8 判断是否结束迭代:如果当前迭代次数i<max_inter,则迭代次数i=i+1,转到步骤3,否则转到步骤9;
步骤9 输出寻优结果,即为聚类中心;
步骤10 根据寻优结果进行FCM 图像分割。
3 仿真实验与结果
为了验证提出算法的有效性,文中选取了MatlabR2015b 中的5 张典型图片(rice、circuit、tire、cameraman 和mri),将改进后的算法用于图像分割,进行了5 次实验,并将文中算法与传统FCM 算法和人工鱼优化FCM 算法(AFSA_FCM)进行图像分割的分割效果进行对比,5 次实验的结果分别如图2~6所示。
图2 rice图像运行结果
文中的实验环境为2.2G CPU,4GB RAM,Windows10.0 操作系统。实验所使用的工具是MatlabR2015b。实验中的相关参数设置如下:人工鱼数目N=20,觅食行为的试探次数try_number=3,最大迭代次数max_inter=100,最大停滞次数Tm=10,拥挤度因子σ=0.618,视野和步长的相关系数a=0.5,迭代停止阈值ε=10-3。
图3 circuit图像运行结果
图4 tire图像运行结果
图5 cameraman图像运行结果
图6 mri图像运行结果
首先,从分割效果图上来看,针对实验1,文中算法的分割过程减少了无关信息的干扰,得到了较为清晰的分割结果;针对实验2,文中算法分割出了较为清晰的线路纹路;针对实验3,文中算法将轮胎边缘的线条保留得较为完整细致,更接近原始图像;针对实验4,文中算法将cameraman 图像中人物的衣服、脸部、手部分割得较为清楚,更加注重细节的体现;针对实验5,文中算法分割的核磁共振图像保留了较多的细节信息,分割线条更加清晰,具有一定的现实意义。
其次,为了验证文中算法的收敛速度优于其他两种算法,将3 种算法的迭代次数和运行时间进行对比,结果如表1 所示。从表1 数据可以看出,与标准的FCM 算法进行比较,文中算法的迭代次数明显减少,原因就在于提出的算法利用改进的人工鱼群算法,同时在算法后期提高了鱼群的收敛速度,对FCM算法进行优化,提高了整体的运行速度,平均运行时间下降了50%~55%,与AFSA_FCM 算法相比,运行时间也下降了15%~30%,图像分割的速率大幅提升。
表1 3种算法迭代次数和运行时间对比
最后,为了对文中算法的收敛精度进行说明,选取了评价聚类分割效果常用的两种指标Vpc和Vpe以及对图像分割效果进行评价的评价准则分类正确率SA,对3 种算法进行了对比:
1)Bezdek 划分系数Vpc[15],定义为:
2)划分熵Vpe[16],定义为:
3)分类正确率SA定义为:
其中,正确率SA越高,说明分割效果越好。Vpc和Vpe反映了分割矩阵的模糊程度。一般来说,如果目标图像中的每个像素点属于其中一类的隶属度值越大,属于其他类的隶属度值越小,说明聚类算法的效果越好,则Vpc的值越大,而Vpe的值越小。
各个实验图像的指标如表2 所示。划分系数Vpc的值越接近1,说明聚类的程度越强,划分熵Vpe的值越接近于0,说明聚类的结构越清晰。从表2 的数据可以看出,文中算法的Vpc值比标准FCM 算法分割图像提升了7%左右,而Vpe值下降了57%左右,与AFSA_FCM 算法相比,Vpc值提升了3%左右,Vpe值下降了10%左右。同时,文中算法比标准FCM 算法的图像分割正确率平均提升了10%,比AFSA_FCM 算法平均提升了7%。因此,综合看来,文中算法相对于其他两种算法,显然聚类效果更优。
表2 3种算法的聚类有效性指标和正确率对比
为了进一步体现文中算法的优越性,再次从目标函数值变化的方面对3 种算法的速度与精度进行说明。图7 为对cameraman 图像进行分割时目标函数值随迭代次数的变化曲线,从图7 可看出,提出的算法在刚开始时就能得到一个比较小的目标函数值,与标准FCM 算法和AFSA_FCM 算法相比,收敛速度更快,并且从最终结果来看,目标函数值最小,避免算法陷入局部最优值,聚类效果更好[17-19]。
图7 对cameraman图像进行分割时目标函数值随迭代次数的变化曲线
综上所述,提出的基于ITLBO-AFSA 算法实现FCM 图像分割的方法,在保证分割效果提升的同时,能够快速地对图像进行分割,满足了图像分割的实时性要求,尤其是对复杂图像的分割,相比于其他两种算法,更能体现出其优势。
4 结束语
文中提出了一种基于改进教学算法优化人工鱼算法(ITLBO-AFSA)进行FCM 图像分割的方法,通过改进AFSA 算法寻优过程中后期搜索速度较慢的缺陷,得到更精确的最优解,将其作为FCM 的聚类中心,改进了FCM 算法对初始聚类中心较为敏感的不足,提高了FCM 算法分割图像的准确度和速率。同时,通过观察Vpc、Vpe、正确率和运行时间等数据,直观地表明了文中算法的可行性,该方法已经应用于各类型的分割图像,如简单图像(rice 图)、人物图像(cameraman 图)、医学图像(mri 图)、生活图像(tire图、circuit 图),具有现实意义。但是,如何降低噪声的影响,将是未来的一个研究方向。