梁远哲,马 瑜,江 妍,王 原,马 鼎,李 霞
(宁夏大学 物理与电子电气工程学院,宁夏 银川 750021)
图像分割是计算机视觉的重要组成部分,其主要目的是从图像中分离出需要的目标区域,其中基于阈值的图像分割应用广泛。最大类间方差法(Otsu)是一种阈值分割方法,根据灰度特性将图像分为两部分,类间方差最大值为阈值[1]。二维Otsu算法相较Otsu算法有着更好的分割效果[2]与抗噪性能[3]。申铉京等[4]提出了一种基于时间复杂度的多阈值Otsu快速分割算法,提升了算法的计算效率,能够较好地应用于实时环境。
蝙蝠算法(bat algorithm,BA)是受蝙蝠觅食行为的启发而提出的一种新型群体智能算法[5],近年来受到广泛应用。裴宇航等[6]提出一种动态调整惯性权重的自适应蝙蝠算法,提升了寻优性能。Vallikutti Sathananthavathi等[7]将蝙蝠算法应用于视网膜血管图像分割,对于血管的识别具有很高的灵敏度。
分数阶微积分作为一种数学模型近年来得到了广泛的应用。魏晶茹等[8]将分数阶微积分与粒子群算法结合来进行图像分割,提升了分割效果。Yashar Mousavi等[9]在萤火虫算法中引入分数阶来处理混沌系统的参数估计问题,取得了可观的实验结果。
针对蝙蝠算法在图像分割中寻优精度与收敛速度的问题,本文将分数阶微积分引入蝙蝠算法中的速度更新阶段,提高其搜索能力。在蝙蝠算法的全局寻优阶段引入天牛须搜索算法(beetle antennae search,BAS)[10]以加快蝙蝠算法的收敛速度并结合二维Otsu算法获取最佳分割阈值,提升了图像分割精度与收敛速度。
日本学者大津在1979年提出了一种自适应阈值分割算法,即为Otsu算法。其主要原理是通过图像的灰度特性将图像分成目标与背景两类,首先统计出在整幅图像里灰度级中每个像素的个数,计算图像中所有像素点的概率分布,对于每一个灰度级,计算出该灰度级下目标与背景的类间概率,通过目标函数计算出目标与背景的类间方差,类间方差越大说明构成图像两部分的区别越大,因此类间方差越大则图像分割效果越明显。
二维Otsu算法是在Otsu算法的基础上提出的,相较于Otsu算法,二维Otsu算法同时考虑到了像素灰度级分布和它们的灰度级与邻域像素平均灰度级之差的分布,因此得到的阈值是一个二维矢量灰度-梯度。若将横坐标视为灰度,纵坐标视为梯度,则形成了图像的灰度-梯度二维直方图。此时,概率集中分布在梯度值较小的区域,此区域为图像的背景与目标区域,而图像的噪声、边缘区域分布在梯度值相对较大的区域,这样就实现了图像目标与背景的分离,减少了噪声信息的干扰。
假设一幅大小为M×N的图像,其灰度为i,梯度为j的像素nij出现的概率是
(1)
若分割图像的阈值平均灰度为s,梯度为t,则阈值(s,t)将灰度图像分成两类,用B表示背景类、T表示目标类。它们两者的概率分布可表示为
(2)
其中,L表示图像的灰度级数。用μB和μT表示背景类、目标类的均值向量,μ表示所有像素的总均值向量,它们可表示为
(3)
(4)
(5)
离散度测度函数表示为
S(s,t)=PB×(μB-μ)×(μB-μ)T+
PT×(μT-μ)×(μT-μ)T
(6)
离散度测度的值代表目标与背景两类之间的差别,越大则目标与背景两类的差别越大,图像分割效果越好。所以使离散度测度函数的值最大时的自变量(s*,t*)就是图像的最佳分割阈值,表示为
tr(S(s*,t*))=Max(tr(S(s,t)))
(7)
蝙蝠算法启发于蝙蝠觅食时的回声定位能力。蝙蝠算法模拟自然界中蝙蝠利用超声波对猎物进行判断与定位,从而逼近、捕获猎物。参考文献[6]可知因为蝙蝠算法仅含有频率、速度、位置等参数,所以相较于其它优化算法结构较为简洁,在有效性与准确性方面也有着优势。如今蝙蝠算法在各个领域中都有着广泛的应用。
在蝙蝠算法中,蝙蝠通过以下3个理想化的规则来进行猎物捕获。
所有蝙蝠都通过回声定位法感知距离,并且蝙蝠能够判断出是否遇到所需的猎物。
每一只蝙蝠在位置x处以速度v随机飞行,通过可变频率f、固定波长λ、脉冲发射率R、音量A来寻找目标猎物。蝙蝠通过自身与猎物的接近程度自动调节其发射频率与脉冲发射率。
虽然有多种音量变换方式,但是在算法中假设音量均为正数,其范围属于[Amin,Amax]。
fi=fmin+(fmax-fmin)β
(8)
(9)
(10)
式中:β∈[0,1]为服从均匀分布的随机变量,x*为当前找到的最优解。
当寻找出一个最优解时,开始局部搜索阶段,通过下式产生新的解
(11)
蝙蝠的脉冲发射率与音量的更新公式为
(12)
(13)
其中,常数γ>0,0<ξ<1。
虽然相较于其它群体智能算法,蝙蝠算法有着参数少,较为灵活和简单等优点,但仍存在一些缺陷。经过分析主要有以下两点问题:
(1)从蝙蝠通过回声定位来追寻猎物的机理和蝙蝠个体的更新方式可看出,蝙蝠算法中蝙蝠个体的探索能力很大程度上取决于速度,通过速度改变当前蝙蝠的位置进而影响到算法整体的优化效果。而传统蝙蝠算法的速度忽略了历史速度的状态,缺乏对历史的继承,这导致算法的全局搜索过程不够均衡,更新后的蝙蝠个体很容易被局部值吸引而陷入局部最优。
(2)传统蝙蝠算法在局部搜索阶段过于依赖随机选择与概率分布来生成新的蝙蝠位置,随机性会导致种群的多样性受到影响,最后导致算法在后期最优值附近花费较多的时间。
分数阶微积分是传统微分与积分的推广[11],对历史具有记忆性,能够改善整数阶微积分只与当前状态有关的局限性[12]。近年来分数阶微积分在信号处理、图像处理、控制工程等领域得到了广泛的应用。分数阶微积分有多种定义,常用的G-L(Grumwald-Letniko)定义表达式为[13]
(14)
其离散表达式为[13]
(15)
天牛须搜索(beetle antennae search,BAS)是在2017年提出的一种新型仿生算法,具有很强的全局搜索能力。其原理为,天牛在觅食过程中通过左右两个触须感应到的气味强度来判断食物的大致方位,若右边触须感应到的气味较强时则向右移动,反之则向左移动,移动一段距离后再次使用两个触须感应气味,直到移动到气味最浓的位置即找到最优解[14]。
天牛须搜索的数学描述为[14]:
(1)对于目标函数为f的n维优化问题,设天牛位置为S,左触须Sl,右触须Sr,左右触须相隔d,步长为
step=c*d
(16)
在空间中天牛的朝向随机,因此左右触须的方向可用n维随机向量表示为
dir=rand(n,1)
(17)
(2)此时得到两个触须的位置
(18)
求出两个触须的适应度fl和fr,比较两者大小,天牛向适应度大的方向移动,移动后的位置为
(19)
(3)求出天牛新位置的适应度fs,更新步长和左右触须的距离
step=eta*step
(20)
d=eta*d
(21)
其中,eta为步长与距离的衰减系数,一般设为0.95。
(4)循环(2)、(3)两步直至找到最优解。
传统的蝙蝠算法存在寻优精度有限,在较高精度要求下收敛偏慢,易出现局部最优等缺陷。为了提升传统蝙蝠算法的寻优能力,克服其在搜索过程中易陷入局部最优的缺陷,本文将分数阶微积分与天牛须搜索融合到传统蝙蝠算法中,提出一种分数阶混合蝙蝠算法(fractional hybrid bat algorithm,FHBA)。
2.4.1 分数阶优化全局寻优
在传统蝙蝠算法的全局寻优阶段,基于分数阶微积分拥有描述事件的记忆和遗传特性这一特点,对蝙蝠的速度v求α阶导数,使用新的速度更新公式来更新其位置的值,这时蝙蝠速度与位置的值就会遗传和继承其历史状态,使得全局搜索过程更加均衡。同时通过蝙蝠在寻优过程中的速度与位置来自适应调整导数的阶次α。这样能够有效改善传统蝙蝠算法出现局部最优的问题,在图像阈值分割中也可以取得良好的效果。先将式(9)改写为
(22)
(23)
结合式(22),得到新的速度更新公式
(24)
为了使阶次α能够自适应改变,本文从文献[8]中引入进化因子f,根据蝙蝠速度和位置来不断调整分数阶次α,方法如下:
蝙蝠i与其它蝙蝠的平均距离为
(25)
上式N为蝙蝠的总数,D代表空间维度。
决定蝙蝠当前状态的进化因子f表示为
(26)
上式中dg是蝙蝠的全局最优位置与其它蝙蝠距离的平均值,在所有dix中,最大值为dmax,最小值为dmin。由文献[8]可知当阶次α∈[0.5,0.8]时,收敛速度普遍较快。因此阶次α的动态调节方式为
α(f)=1/2e-0.47f∈[0.5,0.8]
(27)
2.4.2 天牛须搜索改进局部寻优
通过对传统蝙蝠算法缺陷的分析可知,算法的局部寻优阶段是通过对当前的最优位置进行随机变化来产生新的蝙蝠个体,导致后期种群多样性不足。
而天牛须搜索拥有较为优秀的全局搜索能力,因此将其引入蝙蝠算法的局部更新阶段,对传统蝙蝠算法随机产生的个体再次进行更新,丰富种群的多样性。在蝙蝠算法的局部搜索阶段,当蝙蝠的位置更新后,再将每一只蝙蝠视为天牛个体,并按照天牛须搜索进行更新,计算更新后的适应度并与更新前的适应度比较,若更新后适应度值更优,就进行更新,否则不更新。通过这样的方式更新群体与个体的最优适应度,可以使群体的多样性得到完善,加快达到最佳收敛点的速度。
改进后的局部更新为
(28)
2.4.3 算法改进效果测试
为了验证对传统蝙蝠算法的改进效果,选择常用的3个Benchmark测试函数对原始的蝙蝠算法(BA)和改进后的分数阶混合蝙蝠算法(FHBA)进行测试,3个测试函数如下:
(1)Griewank函数
(2)Ackley函数
a+exp(1),此函数的取值范围x∈[-32.768,32.768],函数中a=20,b=0.2,c=2π,理论最优适应度值为0,在x=0处取得。
(3)Rastrigin函数
将函数维度d设置为10维,两个算法的种群数为20,迭代次数1000次。Griewank函数的适应度曲线如图1所示。
图1 Griewank函数适应度曲线
Ackley函数的适应度曲线如图2所示。
图2 Ackley函数适应度曲线
Rastrigin函数的适应度曲线如图3所示。
图3 Rastrigin函数适应度曲线
由图1可看出,原始的BA算法在前期收敛速度偏慢,在300次左右之后适应度曲线平行于x轴,说明算法陷入了局部最优,并且在后期难以跳出局部最优。在图2中,原始BA算法在10次左右的迭代就出现了局部最优,在70次左右的迭代和650次迭代时,虽然有细微的变化,但也没能够跳出局部最优。从图3来看,原始BA算法在前10次迭代中收敛速度很快,但在10次至180次左右和之后都是水平线段,说明算法陷入了局部最优,并且需要多次迭代来跳出局部最优。在3个函数的测试中,原始BA算法的寻优精度有限,易出现局部最优的问题。
在3个测试函数的适应度值曲线中,相较于原始的BA算法,通过在全局寻优中引入自适应分数阶微积分,局部搜索中混合天牛须搜索的改进后的FHBA算法跳出了局部最优,有效提升了寻优精度。并且在图1和图3可看出改进后的算法对收敛速度也相对更快。
原始蝙蝠优化的二维Otsu图像分割算法(BA-Otsu)存在分割精度低、收敛速度慢等问题,本文将改进后的FHBA算法与Otsu算法相结合,将二维Otsu算法的离散度矩阵作为FHBA算法的寻优函数,提出基于分数阶混合蝙蝠算法的图像分割(FHBA-Otsu),算法的具体步骤如下:
步骤1输入待分割图像,基于二维Otsu法生成目标函数;
步骤2初始化参数。种群数量N设为20,迭代次数Iter为100,蝙蝠位置xi,速度vi,音量Ai,脉冲发射率Ri,最小频率fmin为0,最大频率fmax为2,天牛须步长衰减系数eta设为0.95,左右触须距离d为3;
步骤3将蝙蝠当前的位置向量视为待寻优的阈值,式(6)作为寻优目标函数,将位置向量带入目标函数中计算出目标函数值最大时蝙蝠的位置。
步骤4按式(8)更新频率,式(24)更新蝙蝠速度;
步骤5若rand>Ri,由式(28)更新蝙蝠位置,由式(20)、式(21)更新天牛步长和两触须距离;
步骤6若rand 步骤7计算新位置的目标函数值并与步骤3相比较,更新全局最优位置; 步骤8判断是否达到停止迭代的条件,达到则退出迭代,未达到则返回步骤4; 步骤9将输出的最优位置(s,t)作为分割阈值进行二维Otsu图像分割。 FHBA-Otsu算法流程如图4所示。 图4 FHBA-Otsu算法流程 为了验证本文算法在收敛速度及图像分割精度方面的改进,同时确保分割算法的健壮性,本文分别采用人物图像man(320×320)、医学肺部图像lung(512×512)及机场图像airfield(1024×1024)这3种不同类型的图像进行实验,并将本文提出的算法(FHBA-Otsu)与原始蝙蝠优化二维Otsu算法(BA-Otsu)、文献[8]提出的分数阶粒子群Otsu算法(FP-Otsu)进行对比分析。实验的硬件环境采用Windows 10操作系统,Intel Xeon E3-1230 V2处理器(3.3 GHz),16 GB内存,实验的软件环境为MatlabR2016b。 通过适应度曲线完全收敛时的迭代次数来评价算法的收敛速度,收敛越快则速度越快。通过适应度值、峰值信噪比(PSNR)和均方误差(MSE)这3个指标来评价图像分割的精度。适应度值即为离散度测度值,适应度值越大分割效果越好。PSNR值越大,图像的噪声信息越低,说明分割图像的抗噪性能更好,拥有更好的分割效果。MSE可理解为分割后的结果图像与原图像之间差异的期望[15],MSE的值越小,则图像分割精度越高。 分割结果如图5~图7所示,首先对分割效果进行视觉上的对比,其次对各算法收敛速度进行对比,最后通过PSNR与MSE对3种算法进行对比。可以看出,本文算法在上述评价指标中均取得了良好的效果。 图5 man图像及其分割结果 图6 lung图像及其分割结果 图7 airfield图像及其分割结果 从图像直观效果上来看,对于man图像的分割,BA-Otsu算法在人物胳膊、饰品、背景等区域分割过度,FP-Otsu算法在一些细节方面分割的不够精确。相比较,本文算法保证了人物图像细节部分的分割。对lung医学图像,BA-Otsu算法分割的器官组织不够完整,FP-Otsu算法在一些微小细节上略有欠缺,本文算法分割出的器官组织结构更加清晰完整。对于airfield机场图像的分割,相较于其它两种算法,本文算法保留了更多的细节。 3种算法分割3幅图像的适应度曲线如图8~图10所示。 图8 man图像适应度曲线 图9 lung图像适应度曲线 图10 airfield图像适应度曲线 从图8中可直观地看出,在对man图像的分割中,BA-Otsu算法在4次左右迭代后就陷入了局部最优,FP-Otsu算法在65次左右完全收敛,本文算法在10次左右完成收敛。 从图9可看出,在lung图像的分割中,BA-Otsu算法在80次左右收敛,FP-Otsu算法在75次左右收敛,本文算法经过7次左右迭代完成收敛。 从图10可看出,在airfield图像的分割中,BA-Otsu算法在10次左右迭代后陷入局部最优,FP-Otsu算法经过68次迭代后收敛,本文算法在10次左右完成收敛。 从适应度曲线可看出,本文算法在克服了BA-Otsu算法易陷入局部最优的同时,提升了寻优的速度。 表1可看出,通过本文算法对3幅图像分割的适应度值均要高于另外两种算法,说明本文算法的分割效果更好。 表1 3种算法适应度值的对比 表2为3种算法分割3幅图像的PSNR值,可看出本文算法的PSNR值高于其它两种算法,说明分割后图像的噪声信息较少,抗噪性能更强,因此本文算法在图像分割时受噪声影响较少,保证了分割后图像的质量。 表2 3种算法PSNR值的对比 表3为3种算法分割图像的MSE值对比,从表中可看出,对于3幅图像的分割,本文算法的MSE值均小于另外两种算法,说明本文算法分割后的图像精度相较另外两种算法更具优势。 表3 3种算法MSE值的对比 从上述实验结果可看出,本文算法有效提升了图像的分割精度。同时,本文算法在3幅不同背景、不同类型、不同复杂度、不同分辨率的图像分割中均有着更好的分割精度与效果,说明本文算法不仅在单一类型的图像分割上有着更佳的效果和更快的收敛速度,而是在3种常见类型图像分割上都有着更加出色的表现,因此本文算法在对常见类型的图像分割上具有良好的健壮性。 为了改善原始蝙蝠算法存在的易陷入局部最优、寻优精度不高、在较高求解精度下收敛速度慢等缺点,本文通过分数阶微积分、天牛须搜索的特性来优化原始蝙蝠算法,利用分数阶微积分的历史记忆性优化蝙蝠的全局搜索过程,克服局部最优,提高其寻优能力,在蝙蝠的局部更新阶段引入天牛须搜索,弥补后期种群多样性不足导致的后期收敛速度问题,同时结合二维Otsu算法寻找最佳分割阈值,进行图像分割。实验结果可看出,本文算法相较于原始的BA-Otsu算法和文献[8]的算法提升了图像分割的精度与效果,有着更快的收敛速度与良好的健壮性。4 实验结果与分析
4.1 分割效果对比
4.2 收敛速度对比
4.3 分割精度对比
4.4 分割算法健壮性分析
5 结束语