一种基于改进的烟花算法进行图像处理的方法与流程

文档序号:12787321阅读:1798来源:国知局

本发明涉及图像处理领域,尤其是一种基于改进的烟花算法进行图像处理的方法。



背景技术:

群体智能算法原理简单,具有潜在的并行和分布式特点,通过协作完成复杂问题的求解,在图像处理、机器人控制、无人交通驾驶、社会行为预测、通信网络加强和电力系统调度等工程领域得到了广泛运用。受夜空中烟花爆炸现象的启发,谭营等在2010年提出了一种新的群体智能算法——烟花算法(Fireworks Algorithm,FWA)。

烟花算法具有局部搜索能力和全局搜索能力自调节机制,但大量的实验证明烟花算法针对最优解点不在原点的函数的求解结果依然不够理想,这主要是由两个原因造成的:1、在烟花算法中,其映射规则很容易将超出边界的值映射到搜索空间中间原点位置附近,如果测试函数的全局最优点在原点位置,且搜索空间的上下边界对称,则这种映射规则会使得超出边界的点被映射到原点附近,无意中加速了算法的收敛性;2、如果一个解的位置已经非常接近原点的位置,那么高斯变异算子很容易将解变异到原点附近位置,使得解很难跳出原点附近的区域。因此,解决传统烟花算法中的缺点以提高其效果显得非常重要。



技术实现要素:

本申请人针对上述问题及技术需求,提出了一种基于改进的烟花算法进行图像处理的方法。使用本方法可以克服传统烟花算法应用于分类和回归时结果较差的缺点,有效地提高查找最优值点的结果。

本发明的技术方案如下:

一种基于改进的烟花算法进行图像处理的方法,包括如下步骤:

步骤1:在n维可行域空间内随机初始化N个烟花粒子的位置,记为初始粒子Gold;设置t=1,迭代开始;其中n和N都是正整数;

步骤2:按照预定算法计算每个烟花粒子爆炸所产生的爆炸火花的位置Sj、每个烟花粒子的爆炸半径Aj,以及对p个烟花粒子进行变异所产生的变异火花的位置;

步骤3:将超出可行域空间的粒子映射到可行域空间内,粒子包括烟花粒子、爆炸火花和变异火花中的至少一种;

步骤4:从所有粒子中选择进入下一轮迭代的粒子Gnew,所有粒子包括所有的烟花粒子、爆炸火花以及变异火花;

步骤5:确定初始粒子Gold与粒子Gnew所包括的所有粒子中适应度值最好的最优粒子,并根据细菌觅食算子对除最优粒子以外的其余粒子进行最优值方向上的优化,并将超出可行域空间的粒子映射到可行域空间内;

步骤6:将优化完毕的粒子中适应度值最大的N个粒子作为下一次迭代的初始烟花Gold

步骤7:若t<T且最优粒子的适应度值gbest大于预定阈值,则令t=t+1,并重新开始执行步骤2以根据新的初始烟花Gold进行下一次迭代;否则停止迭代,确定最优粒子的位置为最优解,并根据最优解进行图像处理,其中,T是预先设置的迭代次数。

其进一步的技术方案为,步骤2:按照预定算法计算每个烟花粒子爆炸所产生的爆炸火花的位置Sj、每个烟花粒子的爆炸半径Aj,以及对p个烟花粒子进行变异所产生的变异火花的位置,包括:

步骤2-1:按照公式计算每个烟花粒子爆炸所产生的爆炸火花的位置Sj,其中,函数f(x)是用于计算粒子的适应度值的适应度函数,f(xj)是粒子xj是适应度值,α和ε是常数;

步骤2-2:按照公式计算每个烟花粒子的爆炸半径Aj,β是常数;

步骤2-3:选择p个烟花粒子,并按照公式xj=xj*g计算对p个烟花粒子进行变异产生的变异火花的位置,p是正整数,g是常数。

其进一步的技术方案为,步骤3:将超出可行域空间的粒子映射到可行域空间内,包括:

按照公式xj=xmin+|xj|%(xmax-xmin)将超出可行域空间的粒子映射到可行域空间内,其中,xmin是可行域空间的最小值,xmax是可行域空间的最大值。

其进一步的技术方案为,步骤4:从所有粒子中选择进入下一轮迭代的粒子Gnew,包括:

按照公式以及公式从所有粒子中选择进入下一轮迭代的粒子Gnew,其中,k是预先设定的粒子Gnew的个数。

其进一步的技术方案为,根据细菌觅食算子对除最优粒子以外的其余粒子进行最优值方向上的优化,包括:

按照公式θi(j+1,k,l)=θi(j,k,l)+step(i)*φ(j)、公式step(i)=λ(gbest-gj)+F(gm(i)-gn(i)),以及公式g(i+1)=g(i)+λ(gbest-gj)+F(gm(i)-gn(i))对除最优粒子以外的其余粒子进行最优值方向上的优化;其中,λ和F为常数,gm(i)和gn(i)是其余粒子中随机选取的两个互不相同的粒子的适应度值,

本发明的有益技术效果是:

较好地克服了传统烟花算法应用于分类和回归时结果较差的缺点,相对于传统烟花算法和细菌觅食算法,本发明方法可以增加粒子间的信息交互,增强种群的多样性,具有较强的鲁棒性,有效地提高了查找最优值点的结果以及算法的求解精度。

附图说明

图1是基于改进的烟花算法进行图像处理的方法流程图。

具体实施方式

下面结合附图对本发明的具体实施方式做进一步说明。

参考图1的流程图,本发明的实现过程如下:

步骤1:在n维可行域空间内随机初始化N个烟花粒子的位置,记为初始粒子Gold;设置t=1,迭代开始;其中n和N都是正整数。

步骤2:按照预定算法计算每个烟花粒子爆炸所产生的爆炸火花的位置Sj、每个烟花粒子的爆炸半径Aj,以及对p个烟花粒子进行变异所产生的变异火花的位置。

具体的,步骤2包括如下几个子步骤:

步骤2-1:按照公式计算每个烟花粒子爆炸所产生的爆炸火花的位置Sj

其中,函数f(x)是用于计算粒子的适应度值的适应度函数,f(xj)是粒子xj是适应度值;α是常数,用于控制产生的爆炸火花的最大个数;ε是常数,用于避免产生分子和分母为0的情况。

实际使用时,常用的适应度函数f(x)包括:Sphere函数、Schwefel’Problem 1.2函数、Generalized Rosenbrock函数、Ackley函数、Penalized FunctionP16函数、Axis Parallel Hyper Ellipsoid函数、Rotated Hyper Ellipsoid函数、Generalized Rastrigin函数。

步骤2-2:按照公式计算每个烟花粒子的爆炸半径Aj。其中,β是常数,用于控制烟花粒子的爆炸半径。

步骤2-3:选择p个烟花粒子,并按照公式xj=xj*g计算对p个烟花粒子进行变异产生的变异火花的位置,p是正整数,g是常数,通常情况下,g=N(1,1),也即g为矩阵为1,方差为1的随机数。

需要说明的是,上述步骤2-1、步骤2-2以及步骤2-3没有特定的先后执行顺序。

步骤3:将超出可行域空间的粒子映射到可行域空间内。

该步骤中的粒子包括烟花粒子、爆炸火花和变异火花中的至少一种。该步骤具体实现为:按照公式xj=xmin+|xj|%(xmax-xmin)将超出可行域空间的粒子映射到可行域空间内,其中,xmin是可行域空间的最小值,xmax是可行域空间的最大值。

步骤4:从所有粒子中选择进入下一轮迭代的粒子Gnew

该步骤中的所有粒子包括所有的烟花粒子、爆炸火花以及变异火花,可以通过轮盘赌或者其他选择方式选择出粒子Gnew,该步骤具体实现为:按照公式以及公式从所有粒子中选择进入下一轮迭代的粒子Gnew,其中,k是预先设定的粒子Gnew的个数。

步骤5:确定初始粒子Gold与粒子Gnew所包括的所有粒子中适应度值最好的最优粒子,并根据细菌觅食算子对除最优粒子以外的其余粒子进行最优值方向上的优化,并将超出可行域空间的粒子映射到可行域空间内。

细菌觅食算子利用了细菌觅食算法中重要的操作:趋向性操作,趋向性操作指细菌随机选定一个方向,在该方向上向前或向后移动一个步长,计算当前位置的适应度值,若优于先前位置的适应度值,则按照该方向继续移动一个步长,当达到细菌觅食算子迭代次数d或者适应度值变差时,结束本次趋向性操作,细菌觅食算子迭代次数d是一个预先设置的常数。

该步骤实现为:按照公式θi(j+1,k,l)=θi(j,k,l)+step(i)*φ(j)、公式step(i)=λ(gbest-gj)+F(gm(i)-gn(i)),以及公式g(i+1)=g(i)+λ(gbest-gj)+F(gm(i)-gn(i))对除最优粒子以外的其余粒子进行最优值方向上的优化。其中,θi(j,k,l)表示细菌个体i当前的位置信息,θi(j+1,k,l)表示细菌个体i移动后的位置信息,j表示细菌的第j代趋化算子,k表示细菌的第k代繁殖算子,l表示细菌的第l代迁徙算子,step(i)表示向前移动的步长单位,且step(i)>0。θrand(j,k,l)表示随机选取的一个细菌个体当前的位置信息,φ(j)表示旋转后随机前进的方向,gbest是最优粒子的适应度值,gj是粒子xj的适应度值,gm(i)和gn(i)是其余粒子中随机选取的两个互不相同的粒子的适应度值,λ和F为常数,λ用于控制算法的贪婪程度,为了减少控制参数数量,一般取λ=F。

步骤6:将优化完毕的粒子中适应度值最大的N个粒子作为下一次迭代的初始烟花Gold

步骤7:若t<T且最优粒子的适应度值gbest大于预定阈值,则令t=t+1,并重新开始执行步骤2以根据新的初始烟花Gold进行下一次迭代;否则停止迭代,确定最优粒子的位置为最优解,并根据最优解进行图像处理,其中,T是预先设置的迭代次数,预定阈值是预先设置的常数。具体的,在根据最优解进行图像处理时,可以是将最优解作为分割阈值对图像进行图像分割。

为了说明改进实验的性能,本发明选取了8个包括单峰和多峰的标准测试函数进行实验,如下表一为8个函数的函数名称、属性、最优值、搜索范围和搜索维度:

表一

表二示出了函数f1-f8在不同的偏移指数(SI)下的实验结果,当SI等于零时,被测函数不发生偏移,当SI不等于零时,将从最优点位置偏移到远离搜索区域原点处,BFA表示根据本发明公开的改进过的烟花算法得到的实验结果,FA表示根据传统的烟花算法得到的实验结果:

表二

表二续

由上表可以直观的看出,本发明公开的基于细菌觅食算子的烟花算法相比于传统的烟花算法,能够顺利的找出全局最优解,表明改进后的算法是更优的,它有效增加了粒子间的信息交互,增强了种群的多样性,算法的求解精度更高。

以上所述的仅是本发明的优选实施方式,本发明不限于以上实施例。可以理解,本领域技术人员在不脱离本发明的精神和构思的前提下直接导出或联想到的其他改进和变化,均应认为包含在本发明的保护范围之内。

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