基于遗传算法和蚁群算法的图像边缘检测方法与流程

文档序号:16791848发布日期:2019-02-01 19:39阅读:802来源:国知局
基于遗传算法和蚁群算法的图像边缘检测方法与流程

本发明涉及图像边缘检测技术领域,具体而言,尤其涉及一种基于遗传算法和蚁群算法的图像边缘检测方法。



背景技术:

21世纪是一个充满信息的时代,图像作为人类感知世界的视觉基础,是人类获取信息、表达信息和传递信息的重要手段。图像边缘检测是图像处理和计算机视觉中,尤其是特征提取中的一个研究领域,图像边缘检测的好坏直接影响后续图像处理工作。但现有的图像边缘检测算法存在边缘检测不准确,效率低,适应能力差等问题。因此,研究图像边缘检测算法有重大的意义。

遗传算法是通过自然界生物进化而提出的一种优化算法。它是通过模拟自然界生物进化过程找出问题的较优解。遗传算法是把求解的问题设计成所需的编码方案,选择对应的适应度函数,用编码整体作为进化的基础。制定合理选择策略,建立相应的迭代过程进行选择、交叉、变异操作,使个体不断的进化,逐渐达到最优。遗传算法可以应用于图像边缘检测。遗传算法在运行的初期,算法的迭代速度比较快。但是算法运行到后期,存在冗余而且迭代的速度明显变慢。

蚁群算法是通过大自然中蚂蚁觅食得到的启发而提出的一种仿生算法。它是蚂蚁在觅食的过程中,最终能够找到食物源和巢穴之间的最短距离。该算法具有全局优化、智能搜索、正反馈机制、并行性等优点,而且还容易和其他算法融合,改进彼此的不足,因此可以应用于图像边缘检测。蚁群算法在运行的初期,由于信息素的浓度非常低,使得算法的收敛速度非常缓慢。但是在算法运行的后期,由于蚁群的正反馈性,算法的收敛速度明显加快。由于图像边缘的不确定性,使得以上两种智能算法在单独应用于边缘检测时,存在很大的缺点。



技术实现要素:

根据上述提出的技术问题,而提供一种基于遗传算法和蚁群算法的图像边缘检测方法。本发明把两个算法进行有效结合,发挥各自的优点,提高算法的收敛速度和性能。

本发明采用的技术手段如下:

一种基于遗传算法和蚁群算法的图像边缘检测方法,包括如下步骤:

s1、根据预处理后的图像的边缘特点提出改进的遗传算法,引入新的变异算子和种群;

s2、将遗传算法种群中筛选出的较优解作为蚁群算法的信息素浓度初始值;

s3、根据图像中信息素的分布和加入的动态变化因子将蚁群随机放到图像的节点上,完成节点选择,进而完成节点的转移,所述动态变化因子具体为:依据图像上节点阈值t的大小来决定节点被选中的几率大小;

s4、当算法每一次循环结束后,对蚁群经过的图像节点进行局部节点信息素的更新,当所有的蚂蚁完成一次搜索后,对图像中全部节点的信息素进行更新,当满足预设的迭代次数时,输出最终结果。

进一步地,所述步骤s1图像预处理后的步骤具体为:

s11、随机生成一组可行解种群;

s12、根据实际问题选取预设的编码方案,对染色体进行解码,然后选择相应的适应度函数、种群大小、最大迭代次数以及相关参数;

s13、进行选择、交叉、变异操作,直到设定的停止条件;

s14、根据图像边缘的特点提出改进的遗传算法,引入新的变异算子和种群。

图像预处理包括:平滑处理、中值滤波、边缘检测、梯度算子等方法。

进一步地,所述步骤s14具体为:

s141、选择算子的改进:用于对遗传算法中群体的染色体采用概率大小的方式进行选择,当染色体适应值大的被选择的几率就大,反之,适应值小的选择的几率就小;

s142、交叉算子的改进:用于在遗传算法进化初期加大染色体的交叉概率,从而加快新染色体的形成,随着遗传算法的持续进行,慢慢降低进化的速度,减少染色体的交叉概率;

s143、变异算子的改进:用于提高检测的效率,进化变异了的染色体采用变步长的策略,从而使得变异的染色体在合理有效地范围内变化,具体变异方式采用如公式(1)所示:

yi=yi+δ(1)

其中,δ是随机变化的整数,取值在[-5,+5]之间;

s144、种群的进化淘汰机制:遗传算法在进化过程中,当每进化一次,染色体适应值小于整个群体适应值时就淘汰该染色体,通过交叉变异产生新的群体,使得整个群体不断地进化,从而保证算法得到更优的全局解。

进一步地,所述步骤s2中,从种群中选择n个较优的个体,作为蚁群算法的信息素浓度初始值,其中,通过如下公式让蚁群算法的信息素有合理的初始值,从而加快算法初期的搜索速度:

继而通过初始化参数,把较优的个体转换为初期的信息素分布到图像中。

进一步地,所述动态变化因子具体计算公式为:

θ(i,j)=t/di,j(3)

转移规则具体为:

其中,表示t时刻蚂蚁k由节点i转移到节点j的状态转移概率,θ(i,j)表示某个节点被选中的几率大小,即动态变化因子,t表示图像上节点的阈值,dij表示两节点之间的距离,ηij是启发函数,其表达式为:τij表示某时刻图像节点(i+j)处信息素的强度,k表示蚂蚁的编号,即第k只蚂蚁,参数α是蚁群对图像检测时选择领域节点概率的影响因子,γ为节点处α因子挥发残余因子,取值为[0,1],α的取值范围在[1,8]时,随着α值的增加,检测的图像边缘会慢慢变得更清晰,β是蚁群进行检测时选择领域梯度值高概率的影响因子,β的取值范围在[0.1,1.5]时,检测出的边缘会更加完整而且可以避免算法过早陷入局部最优。

进一步地,所述步骤s4中,为了能够更好地检测出图像边缘,通过如下公式进行信息素的动态挥发,从而使蚂蚁经过非图像边缘的节点信息素快速挥发:

式中,ζ(n)为第n次迭代时的信息素挥发因子,ε为动态调整的系数,其取值范围是(1,8],nc是没有找到最优解时算法循环迭代的次数。

进一步地,所述步骤s4中,局部节点信息素的更新公式具体为:

全部节点的信息素更新公式具体为:

τ(t)=(1-μ)·τ(t-1)+μ·τ0+k·fx(x)(7)

其中,μ即ζ(n),fχ(x)为信息素更新系数,具体为:

fx(x)=cos(xarccosx),-1≤x≤1(8)。

较现有技术相比,本发明具有以下优点:

本发明将蚁群算法和遗传算法进行有效的融合,通过对遗传算法中选择、交叉、变异算子和进化淘汰机制的改进,把搜索的优质解转化为蚁群算法信息素初始值,并对蚁群算法的转移规则、信息素浓度更新机制进行改进,提高了图像边缘检测的效果。

基于上述理由本发明可在图像边缘检测技术领域广泛推广。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做以简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一种基于遗传算法和蚁群算法的图像边缘检测方法流程图。

图2为本发明实施例1中采用本发明遗传蚁群优化算法与canny算子和蚁群算法的两组直观对比例。

其中,(a)(e)为原图,(b)(f)为canny算子的边缘检测图片,(c)(g)为蚁群算法边缘检测图片,(d)(h)为本发明遗传蚁群优化算法的边缘检测图片。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

如图1所示,本发明提供了一种基于遗传算法和蚁群算法的图像边缘检测方法,包括:如下步骤:

s1、根据预处理后的图像的边缘特点提出改进的遗传算法,引入新的变异算子和种群;

s2、将遗传算法种群中筛选出的较优解作为蚁群算法的信息素浓度初始值;

s3、根据图像中信息素的分布和加入的动态变化因子将蚁群随机放到图像的节点上,完成节点选择,进而完成节点的转移,所述动态变化因子具体为:依据图像上节点阈值t的大小来决定节点被选中的几率大小;

s4、当算法每一次循环结束后,对蚁群经过的图像节点进行局部节点信息素的更新,当所有的蚂蚁完成一次搜索后,对图像中全部节点的信息素进行更新,当满足预设的迭代次数时,输出最终结果。

所述步骤s1图像预处理后的步骤具体为:

s11、随机生成一组可行解种群;

s12、根据实际问题选取预设的编码方案,对染色体进行解码,然后选择相应的适应度函数、种群大小、最大迭代次数以及相关参数;

s13、进行选择、交叉、变异操作,直到设定的停止条件;

s14、根据图像边缘的特点提出改进的遗传算法,引入新的变异算子和种群。

所述步骤s14具体为:

s141、选择算子的改进:用于对遗传算法中群体的染色体采用概率大小的方式进行选择,当染色体适应值大的被选择的几率就大,反之,适应值小的选择的几率就小;

s142、交叉算子的改进:用于在遗传算法进化初期加大染色体的交叉概率,从而加快新染色体的形成,随着遗传算法的持续进行,慢慢降低进化的速度,减少染色体的交叉概率;

s143、变异算子的改进:用于提高检测的效率,进化变异了的染色体采用变步长的策略,从而使得变异的染色体在合理有效地范围内变化,具体变异方式采用如公式(1)所示:

yi=yi+δ(1)

其中,δ是随机变化的整数,取值在[-5,+5]之间;

s144、种群的进化淘汰机制:遗传算法在进化过程中,当每进化一次,染色体适应值小于整个群体适应值时就淘汰该染色体,通过交叉变异产生新的群体,使得整个群体不断地进化,从而保证算法得到更优的全局解。

所述步骤s2中,从种群中选择n个较优的个体,作为蚁群算法的信息素浓度初始值,其中,通过如下公式让蚁群算法的信息素有合理的初始值,从而加快算法初期的搜索速度:

继而通过初始化参数,把较优的个体转换为初期的信息素分布到图像中。

所述动态变化因子具体计算公式为:

θ(i,j)=t/di,j(3)

转移规则具体为:

其中,,表示t时刻蚂蚁k由节点i转移到节点j的状态转移概率,θ(i,j)表示某个节点被选中的几率大小,即动态变化因子,t表示图像上节点的阈值,dij表示两节点之间的距离,ηij是启发函数,其表达式为:τij表示某时刻图像节点(i+j)处信息素的强度,k表示蚂蚁的编号,即第k只蚂蚁,参数α是蚁群对图像检测时选择领域节点概率的影响因子,γ为节点处α因子挥发残余因子,取值为[0,1],α的取值范围在[1,8]时,随着α值的增加,检测的图像边缘会慢慢变得更清晰,β是蚁群进行检测时选择领域梯度值高概率的影响因子,β的取值范围在[0.1,1.5]时,检测出的边缘会更加完整而且可以避免算法过早陷入局部最优。

所述步骤s4中,为了能够更好地检测出图像边缘,通过如下公式进行信息素的动态挥发,从而使蚂蚁经过非图像边缘的节点信息素快速挥发:

式中,ζ(n)为第n次迭代时的信息素挥发因子,ε为动态调整的系数,其取值范围是(1,8],nc是没有找到最优解时算法循环迭代的次数。

所述步骤s4中,局部节点信息素的更新公式具体为:

全部节点的信息素更新公式具体为:

τ(t)=(1-μ)·τ(t-1)+μ·τ0+k·fx(x)(7)

其中,fχ(x)为信息素更新系数,具体为:

fx(x)=cos(xarccosx),-1≤x≤1(8)。

实施例1

实验仿真检测用的是camera和baboon1经典图像,尺寸为128×128,其中,测试参数分别为α=3,β=0.5,ρ=0.2,m=256,l=30,z=3,c=0.0001。在matlab上分别用canny算子、基本蚁群算法和遗传蚁群优化算法对两组图像进行边缘检测,各种图像边缘检测算法实验仿真结果效果对比如图2所示。图像边缘检测所耗时间对比如表1所示。

表1图像边缘检测所耗时间对比(单位:秒)

从图2和表1的检测结果来看,canny算子检测到的图像边缘不是很清晰,在边缘的某些小的区域有误检,检测出伪边缘的情况。基本蚁群算法检测到的图像边缘不完整,有部分边缘丢失的现象。遗传蚁群优化算法检测到的图像边缘有一定的提高,图像边缘相对较为完整、细微的边缘处更加清晰。从两组图像边缘检测所耗时间对比来看,基本蚁群算法检测图像所耗时间明显比遗传蚁群优化算法长,在检测camera图像时,遗传蚁群优化算法用时比基本蚁群算法提高了15.1%。在检测baboon1图像时,遗传蚁群优化算法用时比基本蚁群算法提高了15.5%。仿真结果表明,这种基于遗传蚁群优化的图像边缘检测算法,可以更好地检测出图像的边缘,同时运行效率也比单独的蚁群算法得到了提高。

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

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