APP下载

基于改进蛙跳算法的图像对比度增强方法

2014-04-03康杰红马苗

计算机工程与应用 2014年11期
关键词:族群适应度青蛙

康杰红,马苗

Kang Jiehong, Ma Miao

陕西师范大学 计算机科学学院 陕西 西安 710062

School of Computer Science, Shaanxi Normal University, Shaanxi Xi'an 710062

1 引言

在获取和传输数字图像的过程中,常因成像机制或噪声污染等因素导致图像分辨率低、细节模糊等现象,直接影响图像的后续处理。因此改善图像的质量,突出图像中感兴趣的部分成为必要。图像增强是用来改善图像的视觉效果和质量的常用手段。图像增强方法大致分为空域法和频域法两类。对比度增强法是空域法中的一种,包括:直方图均衡法、灰度变换法和反锐化掩模法等。其中,灰度变换是对比度增强方法中常用的一种方式,分为线性变换、分段线性变换,非线性变换三种[1]。为突出图像中感兴趣的部分,同时抑制不感兴趣的灰度区间,人们常用分段线性变换法对图像对比度进行拉伸或压缩,进而改善图像质量。目前常用的是三段线性变换法,其中,转折点的选取和分段直线斜率的确定是该方法的关键[2]。

蛙跳(Shuffled Frog-Leaping,SFL)算法是Eusuff等人于2003年提出的一种新型启发式群智能优化算法[3]。它模拟自然界中青蛙群体的觅食行为,具有高效的并行搜索能力。SFL算法的提出受到了各界研究学者的普遍关注,并被迅速引入到图像分割、图像增强等领域[4][5]。

为进一步研究有效的图像增强方法,本文借鉴文献[2]中将人工鱼群(Artificial Fish Swarm,AFS)算法用于图像自适应增强的思路,以 SFL算法为研究对象,在现有研究的基础上,深入分析其内部搜索机制后进行相关改进,并提出了一种基于改进SFL算法的图像对比度增强新方法。

2 蛙跳算法及其改进

2.1 基本蛙跳算法

基本SFL算法的主要过程是随机产生由F只青蛙组成的初始群体P={ X1,X2,...,XF},将每个青蛙个体作为所求问题的一个可行解其中d表示解空间维数,计算青蛙个体的适应度f(Xi),f(·)表示青蛙个体的适应度,然后将青蛙个体按适应度降序排列,记录蛙群中最优蛙Xg,再按照特定的分类规则将整个蛙群分成m个族群Y1,Y2,…,Ym,每个族群中包含n=F/m只青蛙,分类规则如下式:

例如,当m=3时,F只青蛙按适应度降序排列,位于第1的青蛙分入第1族群,第2的青蛙分入第2族群,第3的青蛙分入第3族群,第4的青蛙分入第1族群,依次类推,将所有青蛙划分到3个族群中。

族群中最差蛙更新中所涉及的公式如下:

其中,r∈(0,1)是一个随机数,Smax为青蛙最大跳跃步长。

族群在局部搜索过程中对最差蛙的更新过程是:通过式(2)、(3)产生一只临时蛙XTemp;若,则,否则,将式(2)中的用Xg代替,结合式(3)重新产生一只临时蛙XTemp;若,则,否则,就随机产生一只青蛙代替

重复上述操作,直到对族群中的最差蛙连续更新Ilocal次,族群的局部搜索结束。

所有族群的局部搜索完成后,重新合并为P,并按各个体的适应度重新划分族群,再重复进行全局搜索与局部搜索,直到达到终止条件,找到最优信息。

2.2 改进蛙跳算法

在基本SFL算法的局部搜索过程中,算法只在蛙群中的最优蛙Xg及族群中的最优蛙的引导下更新族群中的最差蛙,这样会因效率低的信息交流而影响整个蛙群的更新速度,从而削弱了算法的搜索效率。此外,仅依靠更新族群中的最差蛙来逼近最优解,势必会影响蛙群中最优蛙的收敛速度,且易使算法陷入局部最优,影响整个蛙群的寻优能力。

为此,本文对基本SFL算法的搜索机制及青蛙个体的更新策略进行优化。将只对族群中的最差蛙进行连续Ilocal次更新,调整为对族群中的每只青蛙都进行1次更新,且族群中的每只青蛙在更新时,除了受Xg、和影响外,还参考蛙群中其他蛙的信息。

在更新过程中,本文借鉴文[6]线性调节粒子惯性权值的思路,利用参数ω根据当前迭代次数动态控制青蛙的跳跃范围,提高算法的灵活性与搜索效率。

此外,因改进后各族群中的每只青蛙都要进行更新,所以我们对蛙群直接进行分类,去掉进行分类前的个体排序环节,这在一定程度上缩短了搜索时间。

改进SFL算法的主要步骤为:

(1) 初始化青蛙群体,并设置相关参数。参数包括:种群规模F、族群个数m、最大迭代次数Maxit、解空间维数d、动态控制参数ωmax和ωmin。此外,约定n为每个族群中的青蛙个数,Xg为蛙群最优蛙,和分别为第个族群中的最优蛙和最差蛙,为第i个族群中的第k只青蛙,XTemp表示一只临时蛙,Iter表示当前迭代次数。

(2) 计算蛙群中每个青蛙的适应度值。

(3) 记录蛙群的最优蛙Xg,并按式(1)将蛙群划分成m个族群。

(4) 对每个族群进行局部搜索,具体操作为:

3) 重复1)、2)直到族群中的青蛙全部更新完为止。

(5)将更新完的m个族群合并到P中,更新整个蛙群中的信息,Iter加 1 ,若转到步骤(3),否则,停止迭代,输出最优蛙Xg。

3 基于改进蛙跳算法的图像对比度增强

3.1 分段线性变换

分段线性变换是根据线性变换函数将图像灰度区间分成几段,再对各灰度区间分别进行处理,对图像中感兴趣的灰度范围进行相应的线性扩展,同时抑制不感兴趣的灰度区域。在[0,L-1]灰度区间上的三段线性变换的数学表示如下式:

其中,f(x,y)和g(x,y)分别表示变换前后像素点(x,y)的灰度值,(f1,g1)和(f2,g2)是两个转折点的坐标。三段线性变换的示意图见图1。

图1 三段线性变换示意图

由式(6)和图1可知,确定两个转折点即可确定分段直线的斜率,即通过f1,f2,g1,g2的取值即可对图像的任一灰度区间进行扩展或压缩等操作。因此,在利用分段线性变换法增强图像时,分段点选取是问题的关键。

通常,采用人工手动调整的方式来确定分段点。这种方式简单易行,但找到恰当的分段点需要反复实验,灵活性和稳定性不足。若采用自适应阈值选取的方法来确定分段点,则既可以较好地解决上述问题,又可得到理想的增强图像。

文献[7]~[9]表明,利用自适应阈值将图像分割成具有较高对比度的目标和背景两类,然后再增强图像的方式可以获得较理想的增强效果。下面尝试将改进 SFL算法引入到图像增强中,利用其结合二维 O tsu法自适应地选取阈值,进而确定分段线性变换中的分段点及变换函数的斜率,再利用变换函数增强图像。

3.2 图像对比度增强方法

基于改进SFL算法的图像对比度增强方法的基本思路是:将3.1中的改进SFL算法与二维Otsu法结合,以二维直方图中类间离散度矩阵的迹作为改进SFL算法的适应度函数,并行搜索将图像分为目标区、背景区及过渡区的两个阈值f1、f2,再利用图像对比度评价图像质量的指标作为改进SFL算法的适应度函数确定g1和g2,得到分段点(f1,g1)和(f2,g2),进而确定分段线性变换的斜率,得出变换函数,增强图像。

本文方法主要流程如图2所示,主要步骤为:

图2 基于改进SFL算法的自适应图像对比度增强方法流程图

(1) 读入待增强图像。

(2) 构造待增强图像及其均值图像的二维直方图,并将二维直方图中类间离散度矩阵的迹作为改进SFL算法的适应度函数[7]:

(3) 初始化蛙群P,并设置控制参数。包括:蛙群规模F=40,族群个数m=5,最大迭代次数Maxit=100,解空间维数d=2,动态控制参数ωmax=0.9和ωmin=0.4。

(4) 利用改进 SFL算法在式(7)的引导下搜

其中Xi表示青蛙个体,代表所求的一个可能解(g1, g2);M和N分别为图像的宽和高。根据图1,索阈值T,并将待增强图像分成目标区和背景区,因待增强图像的灰度区间为[0, 255],故所求阈值T∈[0,255]。

(5) 在目标区和背景区利用改进SFL算法分别进行阈值选取,记录所得阈值f1和f2。

(6) 在f1和f2的基础上,用图像对比度质量函数式(8)作为改进 S FL算法的适应度函数,并行搜索g1和g2。g1,g2分别表示阈值f1和f2经线性变换后的灰度值,因此有0≤g1≤g2≤255。显然Fitness(·)的值越大,图像对比度越高,灰度分布越均匀,图像质量越好。

(7) 利用所得的分段点(f1, g1)和(f2, g2),确定分段线性函数的斜率,得到分段线性变换函数,获得增强图像。

4 实验结果与分析

为了验证本文方法的可行性和有效性及检验改进SFL算法的搜索效率和精确性,将其与直方图均衡化法、文献[2]方法及基于基本SFL算法的增强方法(简称SFLAE法)分别对待增强图像进行增强。注意,三种算法的适应度函数及种群规模等控制参数相同,图像增强结果如图3所示。

图3 不同方法对待增强图像的增强实验结果对比

由图3知,图3(a)、图3(f)和图3(k)的对比度均较差,灰度层次少。直方图均衡化法所得图像的对比度有所提高,但在增强目标信息的同时,某些背景信息也被增强,目标细节信息被弱化;由文献[2]方法、SFLAE法与本文方法所得增强图像均有效提高了原图像的对比度,在增强目标信息的同时,对背景信息也有良好地抑制,且图像中的灰度分布更加均匀,视觉效果较好。

以图像对比度、模糊性指数[10]、峰值信噪比(Peak Signal to Noise Ratio,PSNR)为评价指标时,表1和和表2给出了图3中待增强图像增强结果。

表1 图3中各图像的对比度和模糊性指数对比

表2 图3中各测试图像经不同方法增强后PSNR值

图3(a) 26.7535 26.8685 26.6975 26.8685图3(f) 26.5658 27.8794 27.8371 27.9056图3(k) 27.2604 30.0616 29.9475 30.0616

表1和表2表明本文方法在图像对比度、模糊性指数和 PSNR值三个方面均优于直方图均衡化法;在适应度函数相同的条件下,与SFLAE法相比,各性能指标有明显提高,说明改进后SFL算法较改进前更具有高效精确的搜索能力,其自动获得阈值及线性变换函数的精确性更高;与文献[2]方法相比,二者均达到较好的增强效果,它们对图3(a)和图3(k)增强的效果一致,但表1和表2中二者对图3(f)的增强结果表明本文方法较文献[2]方法更优。究其原因,是因为在确定分段点时,改进SFL算法的搜索能力优于AFS算法。这说明本文方法在有效增强图像对比度和清晰度的同时,也提高了 SFL算法的搜索效率和精确度,优于直方图均衡化法和文献[2]方法。

另外,为测试改进后 SFL算法的稳定性,我们在求解图3(f)阈值T的(所求最优T值为113)过程中连续使其运行 50次并记录所得阈值情况,其中,两种算法所得阈值T为113的次数,基本SFL算法为40次,改进SFL算法为46次,即改进SFL算法较基本SFL算法所得阈值更加稳定。这说明改进 SFL算法不仅提高了算法的搜索效率和精确性,且稳定性更高。

5 结论

本文提出了一种基于改进 SFL算法图像对比度增强方法。该方法首先利用调整青蛙更新策略及加入动态控制青蛙跳跃范围的思想等方式改进基本SFL算法,然后以二维Otsu法为蛙跳向导,确定图像的双阈值,将待增强图像划分成目标区、过渡区和背景区三部分,接下来利用对比度标准作为改进 SFL算法的适应度函数,搜索三段线性变换函数的变换斜率,并最终增强图像。实验结果表明,本文方法所得增强图像的主观增强效果及图像对比度、模糊性指数和PSNR等指标均得以改善和提高。

[1]Gonzalez R C, Woods R E. Digital Image Processing [M]. Prentice Hall: Upper Saddle River,NJ, 2002.

[2]丁生荣, 马苗, 郭敏.人工鱼群算法在自适应图像增强中的应用[J].计算机工程与应用, 2012,48(2): 185-187.

[3]Eusuff M, Lausey K, Pasha F. Shuffled frog-leaping algorithm: a memetic meta-heuristic for discrete optimization [J]. Engineering Optimization, 2006, 38(2):129-154.

[4]Wang N, Li X, Chen X H. Fast three-dimensional Otsu thresholding with shuffled frog-leaping algorithm [J].Pattern Recognition Letters, 2010, 31(13): 1809-1815.

[5]岳梅, 郭宝平,张平等.基于混合蛙跳优化的条纹管图像自适应增强[J]. 光电工程, 2011, 38(5):108-113.

[6]陈贵敏, 贾建援,韩琪.粒子群优化算法的惯性权值递减策略研究[J].西安交通大学,2006,40(1): 53-56,61.

[7]刘健庄, 粟文青.灰度图像的二维 Otsu自动阈值分割法[J].自动化学报, 1993,19(1): 101-105.

[8]Nikhil R P, Sankar K P.A review on image segmentation techniques. Pattern Recognition,1993, 26(9): 1277-1294.

[9]Ma M, Liang J H, Guo M, et al. SAR image segmentation based on Artificial Bee Colony algorithm[J]. Applied Soft Computing, 2011, 11(8): 5205-5214.

[10]舒金龙,于振红, 朱振福.一种改进的红外图像模糊增强方法[J].系统工程与电子技术, 2005,27(6):957-959.

猜你喜欢

族群适应度青蛙
改进的自适应复制、交叉和突变遗传算法
论《白牙》中流散族群内部的文化冲突
新兴族群的自白
汉德森 领跑年轻族群保健品市场
一种基于改进适应度的多机器人协作策略
高句丽族群共同体的早期演进
小青蛙捉虫
谁能叫醒小青蛙?
基于空调导风板成型工艺的Kriging模型适应度研究
青蛙便签夹