基于改进双种群水母搜索算法的多阈值图像分割
2022-09-29王秋萍李晓丹戴芳高婕
王秋萍,李晓丹,戴芳,高婕
(西安理工大学理学院,陕西 西安 710048)
1 引言
图像处理广泛应用于现实世界,如航空航天,医学,通讯,军事等领域.阈值图像分割是图像处理的重要技术.图像分割就是把图像分成各具特性的区域并提取出感兴趣目标的技术和过程[1].基于阈值的图像分割方法有最大熵法[2],最大类间方差法[3],最小交叉熵法[4]等.然而,随着阈值个数的增加,传统的阈值选取方法(穷举法)的计算量呈指数增长,分割时间消耗多.因此,学者们开始利用元启发算法解决多阈值图像分割问题.如文献[5]将改进的遗传算法应用于最大熵多阈值图像分割找图像的最优阈值,改善了图像的分割效果.文献[6]将提出的自适应差分进化算法与Otus多阈值图像分割算法相结合,用于处理MRI医学图像分析.文献[7]将布谷鸟搜索算法与最小交叉熵结合对遥感卫星图像进行分割,得到了较高质量的分割图像.但任何算法都不能解决所有的优化问题,这激励着学者们寻找新的算法.
2020年Chou Jui-Sheng和Truong Dinh-Nhat提出了水母搜索(Jelly fish Search,JS)算法[8],其灵感来源于水母在海洋中搜索食物的行为:跟随洋流和两种群内运动.JS算法较强的搜索能力使其成为潜在的解决优化问题的优秀启发式算法.
JS算法用于多阈值图像分割问题时存在可能陷入局部最优,导致分割不准确的问题.为了获得高精度,稳定性好的图像分割效果,本文提出一种基于改进双种群水母搜索(IDPJS)算法的多阈值图像分割方法.对JS算法进行改进:在一个种群中引入组合变异策略之后,两个种群进行交互学习加快算法的收敛速度;利用动态反向策略对当前种群最好位置进行扰动,动态反向的搜索空间的不对称和动态调整特点,增加了接近最好解的概率.在CEC2017基准测试集上进行实验测试,结果显示,本文IDPJS算法在寻优精度,稳定性较对比算法具有竞争力.将IDPJS用于最大熵多阈值图像分割问题,快速有效地找到了最佳阈值,得到好的图像分割效果.
2 水母搜索算法
水母搜索算法通过模拟水母跟随洋流和在种群内部的运动方式(主动运动和被动运动),以及在这些运动之间切换的时间控制机制来建立数学模型.
(1)初始化水母种群,种群数量npop,最大迭代次数Maxiter,搜索空间的上下界分别为Ub和Lb.Logistic混沌映射用于产生初始水母种群,Logistic映射如下:
其中,Xi为第i只水母位置的 Logistic 混沌值 (i=1,2,···,npop),X0为 Logistic 映射的初值,X00.0,0.25,0.75,0.5,1},η=4.
(2)水母的运动方式
时间控制函数为
洋流中含有大量的营养物质,会吸引大量水母.若C(t)≥0.5,水母跟随洋流运动.位置更新公式为
其中,Xi(t)为第t代第i只水母的位置,Xbest是当前水母种群中的最好位置,β是分布系数,取β=3,μ是种群中所有水母的平均位置.
当C(t)<0.5且rand(0,1)>(1-C(t))时,水母进行被动运动,位置更新公式为
其中,γ>0是运动系数,取γ=0.1.
当C(t)<0.5且rand(0,1)≤(1-C(t))时,水母进行主动运动,位置更新公式为
3 改进的水母搜索算法
3.1 组合变异策略
在JS算法的主动运动中,水母个体i通过随机选择一个水母个体j来确定移动方向,在一定程度上保持了种群多样性.但这种更新方法没有利用最好个体的信息,本文引进组合变异策略[9]改进算法,如果rand(0,1)<ζ,按公式(6)更新,否则按公式(7)更新.
其中,a和b是服从高斯分布的随机数,分布的均值为0.5,标准偏差为0.1,
Xr1,Xr2,Xr3,Xr4为种群中 4个随机选取的个体.
迭代前期,算法以较大的概率执行(6),进一步增加了种群多样性;迭代后期,以更高的机会执行(7),引导种群个体朝最好个体附近聚集,加快了算法的收敛速度.
3.2 交互学习策略
采用两个种群交互学习来优化算法的寻优性能.利用Logistic混沌映射初始化两个规模为N的水母种群P1和P2并进行位置更新;种群P1中的个体采用组合变异策略后,对P1中排名后N/2的每个个体与P2中排名前N/2的个体随机对比,保留适应度值优的个体.
3.3 动态反向学习策略
设D维空间点X=(X1,X2,···,XD)的动态反向点[10]
其中Xj∈[aj,bj],,j=1,2,···,D,本文取w=10[10].
动态反向学习策略:比较X与其动态反向点XDO的适应度值,择优保留X与XDO二者中之一.
本文改进的算法以跳跃速率Jr=0.75对种群P1最好个体Xbest执行动态反向学习策略.生成Xbest的动态反向个体,根据适应度值进行贪婪选择,保留适应度值较小的个体作为种群P1最好个体Xbest.
动态反向学习扩大搜索空间的不对称区域,使算法接近最优解的概率得到提升,从而增强算法的开发能力,搜索空间的动态特性增强了种群的多样性,防止种群陷入局部最优,使算法具有良好的探索能力,用权重因子w来平衡探索和开发[10].
3.4 IDPJS算法步骤
IDPJS算法伪代码:初始化算法参数:每个种群规模为npop,空间的维数为D,最大迭代次数为Maxiter,利用Logistic混沌产生两个水母种群P1和P2,跳跃速率Jr=0.75.t=1 For t=1:Maxiter For i=1:npop使用公式(2)更新C(t)的值If C(t)≥0.5使用公式(3)更新种群P1,P2的水母位置Else If(1-C(t))< rand(0,1)使用公式(4)更新种群P1,P2的水母位置Else使用公式(5)更新种群P1,P2的水母位置End End分别计算种群P1,P2当前个体的适应度值并据此与上一代个体进行贪婪选择使用公式(6)-公式(7)对种群P1执行组合变异策略End对种群P1,P2执行交互学习策略,得到新的种群P1 If rand(0,1)< Jr对种群P1执行动态反向学习策略End End输出种群P1的Xbest
3.5 CEC2017基准测试集上的数值实验
在CEC2017基准测试集上选取单峰函数F1,多峰函数F6,混合函数F12,F19和组合函数 F22,F30来验证 IDPJS性能.并与 JS[8],IJS[11],QRJFS[12],花授粉算法[13](Flower Pollination Algorithm,FPA),樽海鞘算法[14](Salp Swarm Algorithm,SSA)进行对比.设置最大迭代次数Maxiter=1000,种群规模npop=30,维数D=30.6个算法在所选测试函数上独立运行30次,记录其均值和标准差,最好结果用粗体表示,如表1所示.由表1可知,IDPJS算法与5种对比算法相比,在不同类型的函数上都展现了好的寻优能力,精度高稳定性好.
表1 不同算法在部分CEC2017测试函数的结果对比
4 IDPJS算法的多阈值图像分割
4.1 最大熵多阈值分割算法
最大熵法是一种使用较为广泛的阈值分割方法,该方法假设目标区域和背景区域服从不同的概率分布,通过计算分割后图像的最大熵来确定分割阈值.最大熵多阈值图像分割法能同时分割图像中的多个目标区域[15],分割原理如下:
设图像灰度值的取值范围{0,1,···,L-1},若将图像划分成个m+1不同的类别,图像阈值向量为 [t1,t2,···,tm],这时图像的熵为
4.2 IDPJS算法的多阈值分割步骤
IDPJS算法的多阈值图像分割步骤为:
步骤1 读取待分割的灰度图像.
步骤2 计算图像的直方图.
步骤3设置IDPJS算法的参数:最大迭代次数为Maxiter,阈值向量的维数为m(m对应阈值个数),每个种群规模npop.
步骤4 初始化两个水母种群P1和P2.水母个体的位置向量代表图像分割的阈值向量,向量的分量是按升序排列的像素灰度值,分量的上下界取0和255.
步骤5 根据(8)式计算两个水母种群的适应度值,得到当前最佳适应度值的水母个体位置.
步骤6 执行IDPJS算法主循环.
步骤7t=t+1,若迭代次数t>Maxiter,则寻优结束,执行步骤8;否则,跳转步骤6.
步骤8 输出种群P1的最好水母位置,即最佳阈值分割向量.利用最佳阈值分割向量分割灰度图像.
步骤9 输出分割后的图像.
4.3 实验结果与分析
为验证IDPJS算法的多阈值图像分割性能,实验选取Lena,Cameraman,Leopard和 Clock图,序号分别记为 No.1,No.2,No.3,No.4,如图 1(第 1列)所示.最大迭代次数 Maxiter=300,每个种群规模npop=30,阈值数分别取 5,7,9.将 IDPJS算法与JS算法,SSA算法,QRJFS算法以及FPA算法进行测试对比,5种算法独立运行30次.
(1)不同阈值水平下IDPJS算法的分割效果
用 IDPJS算法对4幅图像分别进行 5,7,9阈值分割,分割效果如图1(第 2-4列)所示.可以看出本文所提算法能有效实现对图像的多阈值分割,阈值个数越多,图像分割的结果越能提供更多的目标信息.
图1 原始图像及IDPJS多阈值分割结果图
(2)不同算法分割精度对比
为验证 IDPJS算法的图像分割效果,将其与 4种算法进行对比实验.表 2给出5种算法在不同阈值水平下图像分割后的目标函数值.目标函数的值越大,图像分割质量越好.由表2可知,本文算法的分割效果优于对比算法,且随着阈值数的增加,该算法的优势更明显.
表 2 5种算法的目标函数值的对比
表 2 5种算法的目标函数值的对比
图像 m IDPJS JS SSA QRJFS FPA No.1 5 21.148 8 21.144 0 21.142 6 21.145 3 21.135 8 7 25.960 9 25.872 3 25.896 5 25.886 2 25.889 3 9 30.391 1 30.096 3 30.135 9 30.102 5 30.184 2 No.2 5 21.144 0 21.117 2 21.074 8 21.120 9 21.110 4 7 26.388 1 26.250 8 26.258 5 26.239 5 26.282 3 9 31.008 4 30.716 3 30.797 7 30.665 0 30.810 3 No.3 5 17.696 2 17.689 6 17.662 0 17.687 4 17.682 7 7 21.363 2 21.293 0 21.237 3 21.274 4 21.286 5 9 24.580 5 24.318 9 24.235 7 24.312 1 24.328 1 No.4 5 20.715 6 20.709 4 20.705 6 20.709 4 20.704 5 7 25.444 7 25.367 2 25.390 3 25.359 0 25.377 8 9 29.691 5 29.450 5 29.499 7 29.455 8 29.505 0
采用峰值信噪比PSNR,结构相似性SSIM度量分割后图像的失真程度以及和原图的相似性.PSNR,SSIM值越大,图像的失真程度越低.I和分别代表M×N的原图像和分割后图像,,其中,,其中,μI和分别是图像I和的平均值,是图像I和的协方差,和分别是图像I和的方差,本文取常量C1=6.4025,C2=6.4025.
表3给出了5种算法实验结果的PSNR,SSIM值.由表3可知,在各个分割阈值水平下,IDPJS算法的PSNR,SSIM值均取得了最好的结果.对Lena进行5阈值分割时,IDPJS和JS算法的PSNR,SSIM值相等,对Cameraman进行7阈值和9阈值分割时,SSIM值均超过0.98.依照PSNR,SSIM指标,本文算法图像分割性能优于对比算法.
表3 5种算法得出的PSNR,SSIM值对比
(3)算法的收敛性能对比
图 2给出 5种算法 IDPJS,JS,SSA,QRJFS和 FPA在阈值水平为 9时的收敛曲线图.观察图2可知,IDPJS算法的收敛曲线图均位于其他对比算法的上方,说明IDPJS算法的分割精度更好.随着迭代次数的增加,加入变异策略和学习策略的 IDPJS算法可以较好地引导种群收敛到全局最优解.相较于其他4种对比算法,IDPJS算法在收敛速度和分割精度上都有一定的提高和改善.
图2 5种算法的收敛曲线对比图
5 总结
针对传统多阈值图像分割的计算量随阈值增加呈指数增长,分割效率降低,计算时间长的问题,本文提出了基于改进双种群水母搜索算法的多阈值图像分割方法.在改进的水母搜索算法IDPJS中,引入组合变异和两个种群的交互学习策略平衡了算法的探索和开发,增强了算法的全局搜索能力,动态反向学习策略降低了算法陷入局部最优的可能,提高了算法的求解精度,在CEC2017测试集上进行实验,与基本JS算法,2种改进JS算法,FPA算法和SSA算法相比,IDPJS具有更好的求解精度和稳定性.利用IDPJS来优化最大熵多阈值图像分割问题,选择4幅图进行对比实验,表明了IPDJS算法的分割准确性和收敛性最优,为解决图像分割问题提供了有效的方法.