闫 哲,刘宏达
(哈尔滨理工大学自动化学院,黑龙江 哈尔滨 150080)
图像分割是计算机视觉和图像处理的基础,在各个领域都有着广泛的应用,如:医学领域,自动化领域,航空航天领域,农林学领域等。图像分割的优劣影响着后续的识别,分类等操作。图像分割就是把图像按照各个部分的特性,将其分成若干个小区域,从中找出感性区的技术。图像分割的方法众多,有基于边缘的分割[1],有基于颜色的分割[2],还有基于区域阈值的分割[3],由于阈值分割法运行速度快,且操作简单,故在图像处理中,有着广泛的应用。常用的阈值分割法有很多。其中最大熵算法考虑到图像的空间分布和灰度信息,根据研究者有着不同的视角和不同的假设,依靠准则函数,提出熵函数,通过对最大熵的计算,求得最优阈值。一维最大熵算法由于只考虑了灰度值,而未考虑到图像邻域的像素点,容易受到噪声的干扰。一旦噪声干扰增强时,处理效果也会随之下降,而且在分割精度上、分割速度上还有着较大的提升空间,从而二维最大熵的算法被提了出来。
二维最大熵算法相比一维最大熵算法考虑了空间邻域间的像素关系,处理精度高,抗噪能力强。但由于一维变二维,熵函数的运算更为复杂,会导致计算量增大,会浪费大量时间。为了减小计算量,优化运行时间,众多学者发现将各种优化算法与二维最大熵算法相结合能有效的提高分割精度和分割效率。文献[4]提出了改进果蝇算法优化二维熵分割算法,从而提高了分割精度。文献[5]提出了混合杜鹃优化二维熵分割算法,缩短了阈值寻优时间,提高了分割效率。文献[6]提出了基于人工蜂群优化二维熵分割算法,具有控制参数少,鲁棒性能高等有点。文献[7]提出了基于遗传算法优化二维熵分割算法,提高了分割效率。文献[8]提出了改进狼群算法优化二维熵分割算法,通过对整个解空间进行全局搜索,提高了分割的准确度。文献[9]提出了基于人工鱼群优化的二维熵算法,有着良好的去噪效果。综上算法均能有效的优化二维最大熵算法。但由于粒子群的特点,很容易陷入局部最优的情况,故不能寻得最优阈值。
鲸鱼优化算法是一种新型的寻优算法,由于其收敛速度快、寻优能力强[10]。为了快速获得最优阈值,提高图像分割精度,本文提出了一种改进鲸鱼优化算法与二维最大熵算法相结合算法,该算法可有效的提高图像的分割精度,能快速的获得最优阈值并能降低计算的复杂度。
图1 二维平面直方图
阈值(s,t)将图像分成四个区。A代表目标区,B代表背景区,C代表边界区,D代表噪声区。区域A和B是图像的感兴区,是要找的目标区。在感兴区中,运用二维最大熵法计算最大阈值[12]。其中,A和B的概率式(1)(2)如下
(1)
(2)
其中L为图像的灰度级。目标和背景区的熵函数如式(4)(5)
(3)
(4)
则图像的总熵值为
H(s,t)=H(A)+H(B)
(5)
故选取的最佳阈值为
H(s*,t*)=max(H(s,t))
(6)
鲸鱼优化算法最早是在2016年澳大利亚学者Mirjalili和Lewis通过观察座头鲸的觅食行为产生联想提出的[13]。由于座头鲸有着极其独特的捕食方法,一旦发现猎物,它们会用泡泡网的方式,把猎物包围在泡泡范围内,然后其潜伏在12m深的位置,气泡以螺旋上升的方式接近猎物,并把猎物包围在其中央,然后鲸鱼以螺旋的方式靠近猎物,最后进行捕捉。如图2所示。
图2 泡泡网觅食
鲸鱼优化算法通过对鲸鱼觅食过程的模拟,把算法分成3个部分。即包围猎物、螺旋靠近、搜寻猎物[14]。
鲸鱼首先观察猎物的位置,一只鲸鱼会朝着最优位置的鲸鱼进行移动或者朝着离它较近的鲸鱼随机游动。而离猎物最近的鲸鱼会以随机游动的方式逐渐的靠近猎物,进而使整个种群都在朝着猎物最近的方向移动[15]。
在d维向量空间中,每个鲸鱼的位置为:
X=(x1,x2,…,xd)
(7)
猎物的所在位置即WOA优化算法的最优解,则包围阶段可用式(8)表示
(8)
(9)
T表示最大迭代次数。
鲸鱼位置会随着鲸鱼不断靠近猎物而更新,采用螺旋的方式吐出气泡网并靠近猎物[15]。如式(10)所示。
(10)
(11)
鲸鱼通过A的大小来选择向最优的个体移动。由于A是一个d维的向量,所以当|A|≥1时,鲸鱼朝着随机个体移动。当|A|<1时,鲸鱼选择最优个体移动。在搜寻猎物时,鲸鱼在距离最优个体较近的地方搜索或者在距离随机个体较远的地方搜索,式(12)如下。
(12)
在传统的鲸鱼算法中,包围猎物和螺旋靠近的过程会产生局部最优解,如式(10)和式(11)所示,鲸鱼在寻优过程中,仅通过调节A的大小来调节阈值,而算法的收敛速度、搜索能力无法进行调节。根据鲸鱼优化算法的特性,前期应该提高其全部搜索能力,后期应该提高其局部搜索能力。为了提高其收敛速度与搜索能力,本文引入自适应权重ω。
(13)
则改进后的式(14)如下
(14)
其中μ为常系数,为了增强算法的收敛速度,这里取0.6。标准的鲸鱼算法由于权值固定,鲸鱼在寻优过程中只能朝向最优解附近移动,而不能找到其最优解,而由于引入的自适应权重的特性,鲸鱼可以根据自己种群的分布情况调整ω,使得前期能提高其全部搜索能力,后期能提高其局部搜索能力,可在最优解附近更精细的查找,便于找到其最优解。
改进鲸鱼算法的二维最大熵图像分割步骤如下:
步骤1:设鲸鱼的数量为N,概率Pi为0.5,最大迭代次数为T,座头鲸的活动范围为[0,255],如果座头鲸的活动范围小于最小值,则初始化位置为0,如果座头鲸的活动范围大于其最大值,则将其位置定为255。
步骤2:把式(4)设置为某只鲸鱼的适应度函数,并保留其最优个体Xb。
步骤3:按照式(13)(14)更新参数ω,并同时更新参数A和C的值。
步骤4:如果p>0.5,螺旋更新鲸鱼位置,当p<0.5,|A|≥1,进行随机搜索,当p<0.5,|A|<1时,以收缩形式更新个体位置。
步骤5:在迭代时,达到最大迭代次数T,选取满足条件的最优阈值(s*,t*)。反之,执行步骤2,继续往下进行,达到最大迭代次数即可。
步骤6:将得到的最优阈值(s*,t*)进行图像分割。
流程如图3所示。
图3 图像分割流程图
为了验证本文算法在运算速度和分割精度的优越性,分别选取4张不同场景的图像,选用Matlab R2014a编写程序,对阈值进行寻优处理,在Windows 7 64 bit系统运行,内存为4GB,设置鲸鱼算法的种群规模为20、鲸鱼位置的下界为0,上界为255,最大迭代次数为20。然后绘制灰度直方图。将本文算法与传统的最大熵算法相比较,通过对比二者选取的最佳阈值、分割精度与时间对本文算法分析。分割图像如图4所示。
图4 灰度直方图与基于2种优化算法的图像分割
从马图像可以看出本文算法能将马身上的皮毛,皱纹更准确的分割出来,而传统的二维最大熵算法只能将马的大概轮廓分割出来,对于细节的分割效果并不明显。从塔图像可以看出,相比传统的最大熵算法,本文算法能将塔本身轮廓,柱子轮廓,周围的草地和山完整的保存下来,而传统的二维最大熵算法对于草和山的细节没有分割出来。从老虎图像可以看出,本文算法把老虎的胡须、身上的花纹和周围的绿草都能更好的保留,而传统的二维最大熵算法基本不能看出老虎嘴前面的草。从小女孩图像可以看出,本文算法能将小女孩的胳膊还有地面上的绿色草地和土地明显的分割出来。而传统的二维最大熵算法就连小女孩的轮廓都不能很好的分割,综上,本文算法比传统的最大熵算法分割的图像更准确,分割速度更快。
从表1可以看出在各个图像中本文算法优化的二维最大熵算法能有效的找出最佳分割阈值,使运行的时间缩短了近三分之一,优化效果较为明显。
表1 分割各个图像的最佳阈值和运行时间
为在图像分割中准确高效的分割出感兴区,本文提出改进鲸鱼算法与二维最大熵相结合的算法对目标图像分割,在传统的鲸鱼算法中加入自适应权重,可有效的对二维最大熵算法进行优化。仿真结果表明,相比于传统的二维最大熵算法,本文算法在最佳阈值的搜索上更加准确,提高了分割精度,同时也显著的缩短了分割时间,有着良好的时效性,在处理图像分割问题中具有一定的应用价值。