基于改进人工蜂群算法的图像分割方法与流程

文档序号:12471809阅读:538来源:国知局
基于改进人工蜂群算法的图像分割方法与流程

本发明涉及图像处理领域,具体涉及基于改进人工蜂群算法的灰度图像分割方法。



背景技术:

在图像处理过程中人们通常只对图像中的某些部分感兴趣。例如红外图像中,亮度较高的区域是红外传感器检测到热目标,其余部分对于红外图像来说就是背景。为了保留这部分有价值区域,可以考虑将目标区域从图像中分割出来,为后续的图像融合、目标检测、目标跟踪等做准备,而图像分割的准确性和分割效果的鲁棒性均会对后续的图像处理产生直接影响,因此开展图像分割技术的研究具有较大的应用价值。

图像分割的方法可分为阈值法、分水岭分割法、区域生长法、聚类法等。其中聚类法是将图像像素的特征作为样本,根据样本空间中的相似性完成归类,实现图像分割。这种方法属于无监督分类,无需训练样本,众多聚类算法中基于K均值聚类的分割方法应用最为广泛,其具有算法简单、高效的优点,适合处理大规模的数据聚类问题。但是K均值聚类易受初始值影响,导致分割效果不稳定,并且算法易于陷入局部最优,影响分割的准确性。因此需要更先进的聚类方法处理图像分割问题。

人工蜂群算法是由Karaboga于2005年提出的一种优化函数数值的智能算法。这种方法模拟蜜蜂采蜜过程,蜜源位置对应所求问题的可行解,蜜蜂寻找蜜源可以理解为是寻找最优解的过程,具有误差小、鲁棒性强的特点,比传统的优化方法更适合处理多维、大规模、非线性的复杂问题,且受人为主观因素的影响较小。

基于这个特点,本发明提出了一种基于改进人工蜂群算法的图像分割方法,提高图像分割的鲁棒性和准确性。



技术实现要素:

鉴于上述现有技术存在的问题,本发明提供基于改进人工蜂群算法的图像分割方法。

本发明解决技术问题采用如下技术方案:基于改进人工蜂群算法的图像分割方法,基于改进人工蜂群算法的图像分割方法,包括:步骤1.输入待分割的灰度图像;步骤2.设置参数并完成可行解矩阵初始化,将所述图像中包含的不同灰度值作为样本,聚类中心值作为算法的解,依次设置蜂群数量ColonySize、最大循环次数MaxCycles、可行解维数Dim以及取值范围、“开采”失败次数上限limit、目标函数,在可行解取值范围内初始化大小为ColonySize*Dim的可行解矩阵,在聚类数取值范围[2,kmax]内,选择最高的平均sil值对应的聚类数k作为改进人工蜂群算法中可行解的维数Dim,待分割灰度图像的最大、最小灰度值规定了可行解的取值范围,将误差和函数作为目标函数;步骤3.构造新解并记录较优的解信息,构造新解vi,并求适应度值,若新解适应度值更优则替换原解,否则解不变,limit的值加一;步骤4.观察蜂选择蜜源,计算信息素,将灵敏度与信息素比较,观察蜂选择蜜源并更新,若新解的适应度值更优则替换原解,limit置零,否则解不变,limit的值再加一;步骤5.根据limit的值判断是否舍弃某解,若某个解的limit的值超过预先设置的limit上限,则按步骤2中初始化可行解的方法产生新的蜜源,蜜源对应的limit值置零,并重新计算适应度值,若limit的值未达到上限,则不进行操作;步骤6.替换最差解,更新每代循环中适应度值最小的解,计算新解的适应度值,若优于原解的适应度值,则替换原解,对应的limit置零,否则解不变;步骤7.更新全局最优解,将本次迭代最优解与全局最优解比较,若适应度值更高,则更新全局最优解,否则全局最优解不变,所述本次迭代最优解具有最高适应度值;步骤8.判断是否结束循环,判断迭代次数是否达到预先设置的最大循环次数,若达到则结束循环并输出全局最优解,否则回到步骤3,迭代次数加一;以及步骤9.得到分割图像。

可选的,可行解矩阵初始化的方法为:其中可行解xi表示一个蜜源,也就是矩阵中的第i行,xij表示蜜源i的j位置,i=1,2,...,ColonySize,j=1,2,...,Dim,和分别表示j维可行解的下界和上界,rand为一个0-1之间的随机数。

可选的,聚类数为k时对应的Silhouette值计算方法为:

其中,a(i,Ci)表示样本i与所在聚类Ci中其余样本的平均距离,b(i,Cj)表示样本i与另一聚类Cj中所有样本的平均距离,i≠j,j∈[1,k],b(i)=min{b(i,Cj)}。Sil取值范围是[-1,1]。Sil的平均值越高说明当前聚类数额取值越合适。

可选的,适应度值的计算方法为:

其中,f(xi)为目标函数,即误差和函数。将蜜源按适应度值由大到小排列,雇佣蜂与前50%的蜜源一一对应,记录排名第一的蜜源信息,并设为全局最优解。

可选的,构造新解的方法为:

其中,γ是[0,1]之间的随机数,是[-1,1]之间的随机数,xbest,j表示目前能得到的最好蜜源在j维的位置。

可选的,信息素的计算方法为:

其中,f(i)表示蜜源i的适应度函数值,fmax和fmin分别表示当前ColonySize/2个蜜源中最大和最小的适应度函数值,第l个观察蜂的灵敏度S(l)~U(0,1),此处l=1,2,...,ColonySize/2。

可选的,步骤6中适应度值最小的解的更新方式为:

本发明具有如下有益效果:

与传统人工蜂群算法相比,所述的基于改进人工蜂群的灰度图像分割方法分别在蜜源位置更新公式、观察蜂选择蜜源方式进行改进,并增加了“替换最差蜜源”环节,使得算法不易于陷入局部最优,确保了较好的分割精度。在初始聚类中心随机的情况下,与基于传统人工蜂群算法的分割方法比能获得更稳定的分割效果,分割结果的误差平方和更小,分割精度更优。

此外,本发明在传统人工蜂群算法的基础上进一步提高寻优速度。算法执行时间与基于K均值聚类的分割方法相当,是一种高效的灰度图像分割方法。

附图说明

图1为本发明的所述基于改进人工蜂群算法的图像分割方法的流程图。

图2(a)是本发明实验中的可见光测试图像“VI_Foggy”;图2(b)是本发明实验中的红外测试图像“IR_Foggy”。

图3是图2测试图像的聚类数-Silhouette指示图,用于选择合适的聚类数。

图4分别采用人工蜂群算法和改进人工蜂群算法获得的“IR_Foggy”图像的目标函数优化曲线。

图5分别采用人工蜂群算法和改进人工蜂群算法获得的“VI_Foggy”图像的目标函数优化曲线。

表1为基于K均值聚类、基于传统人工蜂群、基于改进人工蜂群三种算法的“IR_Foggy”图像分割数据比较。

表2为基于K均值聚类、基于传统人工蜂群、基于改进人工蜂群三种算法的“VI_Foggy”图像分割数据比较。

具体实施方式

下面结合实施例及附图对本发明的技术方案作进一步阐述。

如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。

实施例1

本实施例提供了基于改进人工蜂群算法的图像分割方法。如图1为本发明所述的基于改进人工蜂群算法的图像分割方法的流程图,包括:

步骤1.输入待分割的灰度图像。在解决图像分割问题时,可将图像像素的灰度值作为聚类样本,但考虑到像素个数偏多,会使聚类时间过长,并且图像中像素灰度值有重复,样本与聚类中心距离会重复计算,这样影响聚类速度。因此考虑用灰度直方图与聚类算法结合的方式完成图像分割。主要思路是计算图像的灰度直方图,将直方图中出现的不同灰度值(范围一般在0到255之间)作为样本,在计算目标函数(误差和函数)时才需要考虑相同灰度值的像素个数,这样可减少样本数量。

步骤2.设置参数并完成可行解矩阵初始化。将图像中包含的不同灰度值作为样本,聚类中心值作为算法的解。依次设置蜂群数量ColonySize、最大循环次数MaxCycles、可行解维数Dim以及取值范围、“开采”失败次数上限limit、目标函数。在可行解取值范围内初始化大小为ColonySize*Dim的可行解矩阵。

在聚类数取值范围[2,kmax]内,执行kmax-1次K均值算法,选择最高的平均sil值对应的聚类数k作为改进人工蜂群算法中可行解的维数Dim。需要注意的是K均值算法对初始中心的依赖度很高,为了避免迭代过程中k(k∈[2,kmax])个初始中心影响聚类数的确定,可以让初始聚类中心尽可能分散,因此采取一种等距抽取的方式确定初始聚类中心。令m为图像中最大的灰度值,则centre=n*m/(k+1),n=1,2,...,k表示初始聚类中心。这里n为聚类类别,k为分类总数。显然聚类数越大分割所消耗的时间越长,并且当聚类数超过一定值后,分割结果的变化不大,根据经验设其中,n为聚类样本数,即n=图像所包含不同灰度值的个数。Silhouette指标是反映类内样本紧凑度和类间样本分散度的指标,计算方法为:

其中,a(i,Ci)表示样本i与所在聚类Ci中其余样本的平均距离,b(i,Cj)表示样本i与另一聚类Cj中所有样本的平均距离,i≠j,j∈[1,k],b(i)=min{b(i,Cj)}。Sil取值范围是[-1,1]。用Sil的平均值判断当前聚类数的优劣,平均Sil值越高证明所对应的聚类数(即图像分割数)越适宜。待分割灰度图像的最大、最小灰度值规定了可行解的取值范围。在可行解取值范围内初始化大小为ColonySize*Dim 的可行解矩阵。初始化可行解矩阵的方法为:

其中可行解xi表示一个蜜源,也就是矩阵中的第i行,xij表示蜜源i的j位置,i=1,2,...,ColonySize,j=1,2,...,Dim,和分别表示j维可行解的下界和上界,rand为一个0-1之间的随机数。

矩阵的每一行看作是一个蜜源。将误差和函数作为目标函数,表示样本X={x1,x2,...,xn}与其所属聚类中心C={c1,c2,...,ck}差异的平方之和,计算方式为:

其中K=Dim,表示分割总数,nj表示类别j中的样本个数(由于将图像直方图中出现的不同灰度值作为样本,因此此处nj还应包含灰度值相同的像素个数),cj为类别j的聚类中心值,计算方法为:

通过不断迭代,误差和函数值逐渐减小,直到收敛为止。误差和函数是评价聚类结果质量的指标之一,其值越小,聚类效果越好。每个蜜源可得到一个适应度值,计算方法为:

其中,f(xi)为蜜源xi对应的目标函数,即误差和函数。将蜜源按适应度值由大到小排列,雇佣蜂与前50%的蜜源一一对应,记录排名第一的蜜源信息,并设为全局最优解。

步骤3.构造新解并记录较优的解信息。构造新解vi,并求适应度值,构造新解的方法为:

其中,γ是[0,1]之间的随机数,是[-1,1]之间的随机数,xbest,j表示目前能得到的最好蜜源在j维的位置。传统人工蜂群算法构造新解的方法为:

没有考虑位置更新前后的蜜源质量,在搜索过程中缺少群体经验对个体行为的指导。因此改进人工蜂群算法在构造新解时加入全局引导因子(xbest j-xij),若蜜源xi在j维上与最优位置差距大,则位置更新的步长随之增大;若差距较小,位置更新公式会使候选蜜源缓慢逼近最优位置,使候选蜜源的随机生成过程具有更强的方向性,尽量避免产生对进化无效的蜜源。若新解适应度值更优(越大越好)则替换原解,否则解不变,limit的值加一。

步骤4.观察蜂选择蜜源。计算信息素,将灵敏度与信息素比较,观察蜂选择蜜源并更新。若新解(蜜源)的适应度值更优则替换原解,limit置零;否则解不变,limit的值再加一。

信息素的计算方法为:

其中,f(i)表示蜜源i的适应度函数值,fmax和fmin分别表示当前ColonySize/2个蜜源中最大和最小的适应度函数值,第l个观察蜂的灵敏度S(l)~U(0,1),此处l=1,2,...,ColonySize/2。如果S(l)≤nf(i),观察蜂选择第i个蜜源去“开采”,若S(l)>nf(i)则放弃i蜜源重新选择,直到每只观察蜂选择好自己要“开采”的蜜源为止。与轮盘赌方式相比,这种方式让每个蜜源都有可能被观察蜂选择,确保了种群的多样性,并且也具有选择方向性,对算法收敛速度影响不大。

步骤5.根据limit的值判断是否舍弃某解。若某个解的limit的值超过预先设置的limit上限,则按步骤2中初始化可行解的方法产生新的蜜源,蜜源对应的limit值置零,并重新计算适应度值。若limit的值未达到上限,则不进行操作。

步骤6.替换最差解。更新每代循环中适应度值最小的解。更新方式为:

其中分别为xi在第j维的下界和上界,rand表示一个[0,1]之间的随机数。若新的蜜源位置xij'超过可行解取值的范围,则按如下方式调整:

之后计算新解的适应度值,若优于原解的适应度值,则替换原解,对应的limit置零;否则解不变。

步骤7.更新全局最优解。将本次迭代最优解(具有最高适应度值)与全局最优解比较,若适应度值更高,则更新全局最优解,否则全局最优解不变。

步骤8.判断是否结束循环。判断迭代次数是否达到预先设置的最大循环次数,若达到则结束循环并输出全局最优解;否则回到步骤3,迭代次数加一。

步骤9.得到分割图像。循环结束时得到的一组全局最优解,将其作为最佳的聚类中心值。将聚类中心值由小到大排列,计算图像像素灰度值与每个最佳聚类中心的欧式距离,将像素分到距离最短的类别中。所有像素完成分类后输出分割图像,亮度最高的区域对应的是第k个区域。

本发明的图像分割方法基于改进人工蜂群算法,利用群智能优化算法不易受主观因素干扰、对初始参数的依赖性较弱的优点,通过像素灰度值聚类实现灰度图像的区域分割。

下面结合附图和实例对本发明“基于改进人工蜂群算法的灰度图像分割方法”做进一步描述。

图2为本发明测试实验的一组待分割图像,分别为可见光图像和红外图像。首先需要获得待分割图像的灰度直方图。若测试图像为彩色图像,可将图像由RGB空间转换到HIS空间,对其中的I分量进行分割,HIS变换方法为:

根据不同聚类数对应的Silhouette均值选择适合待分割图像的聚类数。如图3所示,对于“VI_Foggy”图像来说,当聚类数k=2时Silhouette均值最大,分割效果最好;对于“IR_Foggy”图像来说,k=9是最佳的聚类数目。

为验证本发明方法的优越性,分别对图2(a)和图2(b)图像进行分割。将基于K均值聚类、基于传统人工蜂群算法、基于改进人工蜂群算法的灰度图像分割方法分别重复运行20次,记录每次最优解对应的目标函数值(即误差平方和),比较误差平方和最小值、最大值、均值与标准差。“IR_Foggy”图像的分割数据比较结果如表1所示,“VI_Foggy”图像的分割数据比较结果如表2所示。

表1

表2

从分割结果中可以看出基于传统人工蜂群算法和基于改进人工蜂群算法的灰度图像分割方法在误差平方和的最小值、最大值、平均值、标准差方面均优于基于K均值聚类的图像分割方法。基于K均值聚类的图像分割方法使得SSEmin和SSEmax差距较大,且标准差较高,说明对初始聚类中心的依赖性强。而其余两种方法在标准差上明显低于基于K均值聚类的图像分割方法的SSEstd值,说明后两种方法具有较好的鲁棒性,并且其误差平方和与基于K均值聚类的图像分割方法比也进一步减小,说明分割精度得到提高。基于改进人工蜂群算法的分割方法与基于传统人工蜂群算法的分割方法相比,在分割精度及鲁棒性上进一步提高,并且前者的执行时间更接近基于K均值聚类算法的分割方法,因此本发明提供的基于改进人工蜂群算法的灰度图像分割方法具有快速、有效且鲁棒性较好的优点。

由于红外图像的分割较为复杂,因此在比较基于传统和改进人工蜂群算法的分割方法时,将迭代次数延长至100次,其余参数不变。记录算法每次迭代所得的目标函数值(SSE),将两种算法各运行一次,得到“IR_Foggy”图像的SSE曲线,如图4所示。由于图1中的可见光图像较为简单(仅分割为两个区域),因此迭代次数可设为较小的值便可明显观察出目标函数优化曲线的变化,因此此处迭代次数设为40,得到“VI_Foggy”图像的SSE曲线,如图5所示。

以上实施例的先后顺序仅为便于描述,不代表实施例的优劣。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1