毛艳玲,李天宇,吴 浩,陈明举
(1. 四川轻化工大学自动化与信息工程学院,四川 宜宾 644000;2.人工智能四川省重点实验室,四川 宜宾 644000)
随着纸机车速的提升、纸幅宽度的加大,造纸过程中纸张出现缺陷的几率增大[1]。因此,在造纸过程中及时发现有病害的纸张是我国造纸工业技术自主研发的重要方向之一。纸病检测系统可以提前发现纸张缺陷,以便及时去除缺陷纸张[2]。纸病检测系统的图像采集模块主要由一个或多个线性CCD(Charge Coupled Device,电荷耦合器件)相机组成,利用CCD 技术对产品表面质量进行检测具有结构简单、性能稳定可靠等优点[3-4]。但是基于CCD技术的纸张检测系统也具有以下缺点[5]:(1)被测纸张的反光性影响CCD接收的像素的RGB值,造成象图的边界模糊;(2)若CCD 成像的对比度较差,则会使得图像暗区灰度层次增加,不利于图像和背景的分离;(3)检测过程中沿光轴方向振动使被测件轮廓在CCD 成像的清晰度发生变化。因此,研究纸病图像增强算法具有重要意义。
传统的纸病图像增强方法包括空域增强、频域增强和混合域增强[6-7]。除此之外,李光明等[8]提出了基于多尺度形态学梯度的图像增强方法,曲蕴慧等[9]提出了利用Gabor 滤波器和Gussian 滤波器去除纸张的纹理干扰。冯波等[10]将模糊逻辑理论应用在纸病检测中,具有很好的检测效果。但上述方法存在计算量大、参数手动设置、效率低和适应性差的缺点。基于启发式算法的图像增强方法是一种新颖的图像增强技术,图像增强被认为是一个优化问题,利用各种基于启发式的群体智能优化算法可以更高效、适应性更强地解决这些优化问题[11]。蝙蝠算法是基于蝙蝠种群捕猎过程的回声定位行为的随机全局优化技术,它是处理各种优化问题的最新和最强有力的方法之一[12],其应用主要有组合优化[13]、数据挖掘[14]、图像处理[15-17]等。马双娜[15]将频移效应和模拟退火权重引入蝙蝠算法,解决图像多阈值分割问题。文献[16]采用二进制蝙蝠算法对白细胞(White Blood Cells,WBCs)进行分类,结果表明优化蝙蝠算法能够快速分类,且具有较高的准确性。文献[17]将遗传算法引入蝙蝠算法来对遥感图像进行分类,实现了分类精度的提升。然而标准蝙蝠算法的搜索能力完全由随机漫步决定,并且由于标准蝙蝠算法随机漫步执行条件的限制,导致蝙蝠种群多样性在迭代过程中骤减,种群容易陷入局部最优,因此算法后期存在收敛速度缓慢,甚至“早熟”的问题。
纸病图像存在照度不均、清晰度低、部分纸病细小且对比度低,如果直接采用蝙蝠算法,无法较好地实现对纸病图像的增强。基于上述分析与启发,将混沌映射与引力搜索引入到蝙蝠算法中,提出一种基于混沌映射和引力搜索优化的图像增强蝙蝠算法,利用混沌映射更新响度和脉冲发射率,提高蝙蝠种群解的多样性;采用引力搜索算法更新蝙蝠个体速度,提高蝙蝠算法的搜索能力,将改进的蝙蝠算法自适应搜索最佳伽马值,对纸病图像进行伽马变换,以解决标准蝙蝠算法易出现早熟现象和收敛速度慢等问题,并提高低照度条件下纸病图像的对比度。
蝙蝠算法就是对每个蝙蝠个体的频率、速度、脉冲发射率和响度迭代更新来获得最优解[18]。蝙蝠种群的频率、速度和波长更新方式如式(1)~(3)所示。
其中:β为一个随机变量,fmin为蝙蝠发出的最低频率;fmax为蝙蝠发出的最高频率;fi表示第i只蝙蝠发出的频率,其中fi∈[fmin,fmax]。
其中:表示蝙蝠i在第(t+ 1 )次迭代时的位置,若在当前解中产生了一个最优解,则以随机游走方式生成新的局部解:
其中:xnew为新的局部解,xold为当前局部最优解,ε为一个随机数且ε∈[-1,1],At为蝙蝠群体在同一代中的平均响度。
蝙蝠在寻找猎物的过程中,随着搜索范围的缩小,蝙蝠个体响度逐渐减小直至不再变化,脉冲发射率不断增加,以动态掌握目标猎物的方位。第i只蝙蝠的声波响度和脉冲发射率使用式(5)和(6)更新。
在式(4)中只有当满足“rand>ri”的条件下随机漫步才被执行,其中rand为0~1 之间的随机数。随着迭代次数的增加,由式(6)可知,逐渐增大,因此随机漫步的几率逐渐减小,种群生成多样性解的概率减小,种群容易陷入局部最优导致早熟收敛。同时,式(2)和式(3)表明标准蝙蝠算法的速度和位置更新仅涉及到对当前最优蝙蝠的学习,因此,一旦当前最优个体被局部极值吸引,标准蝙蝠算法本身并没有有效的变异机制来使其“跳出”局部极值,种群多样性将迅速丧失进而失去进化能力,若个体陷入局部最优,将会影响算法的收敛速度。因此,将混沌映射与引力搜索引入到蝙蝠算法中,提高纸病图像的增强能力、检索搜索时间。
对于大部分的具有随机成分的元启发式算法,算法的随机性是通过使用概率分布来实现的[19]。混沌是一种具有随机性的运动状态,它能够在一定范围内按自身“规律”不重复地遍历所有状态[20]。近年来,许多优化算法通过使用混沌映射替换原始算法的随机参数或变量而提高了算法的性能。利用混沌不可重复性、遍历性和混合特性的优点,基于混沌映射的算法具有更好的全局搜索能力[21],同时基于混沌映射的算法可能比标准概率分布的标准随机搜索具有更高的执行速度。其中正弦图是替代蝙蝠算法中响度或脉冲发射率的最合适的混沌图[19],因此本文改进蝙蝠算法采用正弦映射来更新蝙蝠个体的响度和脉冲发射率,如式(7)所示:
其中:Xk为蝙蝠个体的响度或脉冲发射率;a为控制参数,取值为2.3。
万有引力搜索算法是模拟物理学中万有引力和牛顿定律的种群优化算法,在搜索空间中,每一个粒子都有一个惯性质量,低惯性质量粒子向高惯性质量粒子移动[22],粒子之间相互作用的万有引力是粒子运动的动力,当粒子移动到最优位置时,该位置即为所求问题的最优解[23]。
假设一个具有n个粒子的引力系统,并且粒子i的位置为:
表示粒子i在维度d上的位置。根据万有引力定律,在t时刻,d维度上,质点i从质点j处所获得引力定义如下:
其中:t时刻的重力常数表示宇宙初始重力常数,通常设置为1,∂为常数,T表示最大迭代次数;t时刻粒子i和粒子j之间的欧氏距离;Mi和Mj分别代表质点i和质点j的质量(t)与(t)分别为t时刻质点i与质点j的位置;ε是一个常数。
其中:fi(t)表示粒子i在t时刻的适应度值,fbest和fworst分别表示搜索空间中粒子的最优适应度值和最差适应度值。
根据牛顿第二定律,在t时刻,粒子i在d维上的加速度定义为:
其中:粒子i所受的作用力是其他所有粒子作用力(t)的总和。
最后,对于每一次的迭代过程,粒子都按照牛顿第二定律如式(12)~(13)来更新它的速度和位置。
其中:randi是[0,1]区间内的随机数。
蝙蝠算法具有收敛性强和搜索范围大的优点,但是随着迭代次数增加,脉冲发射率ri增加,这使得后期局部随机漫步被执行的概率大大降低[21,24],种群解的多样性降低,算法容易早熟收敛,同时随着响度Ai逐渐减小,对新产生的解,算法的接纳能力降低[12]。为了提高解的多样性,使算法以更快的速度执行搜索步骤,根据文献[25],更新响度和脉冲发射率,即:
式中:Ai和Af表示线性递减函数的初始值和最终值,ri和rf代表线性增长函数的初始值和最终值。其中,Ai= 1,Af= 0.1,ri= 0.1,rf= 0.8,chaos(t)代表典型的混沌函数,这里代表正弦图。标准蝙蝠算法随机漫步决定了蝙蝠算法的探索能力,由于标准蝙蝠算法本身变异机制的限制,若算法陷入局部最优,将影响算法收敛速度和性能[12],为了解决以上问题,将蝙蝠算法与其他算法的混合是提高算法性能的最有效方法[26],改进算法将引力搜索算法引入蝙蝠算法,粒子通过相互之间的吸引力来朝着最佳解方向移动,减少算法陷入局部最优解的可能性[23],引力搜索算法的局部搜索能力提升了算法的探索能力,加快全局搜索的收敛速度[27]。根据万有引力算法,本文提出粒子速度更新公式,在(t+ 1 )时刻,粒子i在维度d上的速度更新策略定义为:
经过以上改进之后,基于混沌映射和引力搜索的蝙蝠算法的伪代码如下:
从视觉效果上来看,由对比度引起的降质图像一般有3种情况,分别是偏亮、偏暗和灰度集中在某一区域。低对比度的纸病图像属于偏暗的降质图像,根据文献[28],本文选择伽马变换来对较暗区域拉伸,改善图像对比度。伽马校正是一种常见的增强图像对比度的方法,通过对过暗的图片使用一个可变的参数γ来提升图像暗部细节,改变图像的亮度和对比度。伽马校正的公式如下所示:
式中:l∈[0,lmax],表示输入图像实际灰度值;T(l)表示输出图像实际灰度值;lmax表示输入图像灰度最大值;校正参数γ控制图像拉伸程度,不同γ将产生不同的拉伸效果。对于全局伽马校正而言有必要选择一个最佳的γ值,以便产生更好质量的图像。
利用改进的蝙蝠算法(图1)确定待增强图像所对应伽马变换的最佳参数γ,通过伽马变换曲线实现增强图像的对比度,算法的具体步骤如下:
图1 增强图像流程图
步骤1:输入纸病图像。
步骤2:初始化种群fmin和脉冲发射率ri0最大迭代次数tmax。
步骤3:对输入的纸病图像进行伽马校正。每一个蝙蝠个体对图像进行伽马校正,通过式(17)计算每个蝙蝠个体的适度值f,种群最佳适应度值fbest、种群最差适应度值fworst,找出当前最佳γ值。
步骤4:蝙蝠个体更新。更新蝙蝠个体的频率、位置,基于引力搜索的蝙蝠算法更新蝙蝠个体速度。
步骤5:计算当前全局最优解。若满足判断条件,则将新的蝙蝠个体适度值fnew作为当前个体最佳适度值,更新全局最优解和全局最差解,得出当前最佳伽马值。
步骤6:判断是否满足迭代停止条件,若未达到,则返回步骤4。若满足迭代停止条件,则退出循环。
步骤7:使用迭代中存储下来的最优γ值增强图像。
研究对象是低照度条件下的纸病图像,如图2(a)、图3(a)、图4(a)、图5(a)所示,它们都为低照度下黑斑缺陷的纸病图像。从图中可以看出,原始图像的可观测性比较差,对比度低,纹理细节不清晰,为满足需求,采用上述改进算法对图像进行处理。为了验证本文基于改进蝙蝠算法的图像对比度增强的效果,将基于直方图均衡化(HE)优化的纸病图像增强算法、基于限制对比度自适应直方图均衡化(CLAHE)优化的纸病图像增强算法、基于标准蝙蝠算法的纸病图像增强算法、基于混沌蝙蝠算法的纸病图像增强算法与本文算法分别进行比较,其中所有蝙蝠算法参数设置如下:种群大小为30,迭代次数为100,最小频率为0,最大频率为1。实验结果如图2~5所示。
图2 纸病图像1增强效果
图3 纸病图像2增强效果
从增强结果图像中可以看出,基于传统直方图均衡化的算法和基于限制对比度自适应直方图均衡化的算法过度增强了图像对比度,使得图像有所失真,基于标准蝙蝠算法、基于混沌蝙蝠算法和本文算法都对图像有所增强。本文算法增强效果最好,有效提高图像对比度的同时能够突出缺陷边缘细节,综合结果对比得出本文算法处理图像能更好地呈现视觉效果。
为了对本文提出的方法处理纸病图像进行有效客观评价,分别采用对比度(CON)、灰度差分乘积函数(SMD2)、均值3 种标准对实验结果进行评估。对比度是画面黑与白的比值,也就是从黑到白的渐变层次。比值越大,从黑到白的渐变层次就越多,从而色彩表现越丰富。对比度越大,图像越清晰醒目,对比度小,图像越模糊。对比度C采用式(18)计算。
灰度差分乘积聚焦评价函数以相邻像素灰度值差表征图像的清晰度[29],灰度差分乘积聚焦评价函数采用式(19)计算。
其中:Ik(x,y)是像素fk(x,y)与其左右及正下像素灰度差的乘积,然后对整幅图像进行像素遍历计算即可得到评价值sdm(k)。当该函数值最大时,对应图像最清晰。
均值即图像像素的平均值,它反映了图像的平均亮度,平均亮度越大,图像质量越好,均值u计算如下:
其中:F为待评价图像,M和N为待评价图像的大小。
用式(18)~(21)评价本文提出算法和其他算法对图像增强的效果,结果如表1 ~3 所示。表1 ~3分别为通过对原图和5种不同算法增强后的纸病图像对比度、灰度方差乘积函数和均值的计算结果,以比较5 种纸病增强算法性能,其中算法1、算法2、算法3、算法4 分别为基于HE 算法优化的纸病增强算法、基于CLAHE 法的纸病增强算法、基于标准蝙蝠算法优化的纸病增强算法、基于混沌蝙蝠算法优化的纸病增强算法。由表1~3 可以得出:本文提出的纸病图像增强算法的对比度、灰度方差乘积函数值和均值优于基于标准蝙蝠算法优化的纸病图像增强算法和基于混沌蝙蝠算法优化的纸病图像增强算法,增强效果最佳。虽然算法1 和算法2 两种算法下4张图片的3种指标较高,但是由图2~4可知算法1 和算法2 存在过度增强现象,视觉效果较差。本文算法下4 张图片的平均对比度相对于算法3 增加了78%,相对于算法4 增加了39.8%;平均灰度方差乘积函数值相对于算法3 增加了70.6%,相对于算法4 增加了33.4%;均值相对于算法3 增加了43.5%,相对于算法4增加了48.8%。
表1 对比度指标比较
表2 灰度差分乘积函数指标比较
表3 均值指标比较
为了解决低对比度、低照度纸病图像视觉效果不佳、边缘模糊等问题,在蝙蝠算法基础上进行改进,提出了一种基于改进的蝙蝠算法的纸病图像增强方法。通过在标准蝙蝠算法中引入混沌映射和引力搜索算法分别更新个体响度、脉冲发射率和个体速度增强种群多样性,平衡了算法的局部和全局搜索能力。同时,将提出的改进蝙蝠算法搜索伽马变换的最佳参数γ实现图像的对比度增强。结果表明,与基于传统直方图均衡优化的纸病图像增强算法、基于限制对比度自适应直方图均衡优化的纸病增强算法、基于标准蝙蝠算法优化的纸病图像增强算法、基于混沌蝙蝠算法优化的纸病图像增强算法相比,本文算法的增强效果为所有对比算法中最优,其中对比度相对于标准蝙蝠算法优化的纸病图像增强算法增加了78%,相对于混沌蝙蝠算法优化的增强算法增加了39.8%;灰度方差乘积函数值相对于标准蝙蝠算法优化的纸病图像增强算法增加了70.6%,相对于混沌蝙蝠算法优化的增强算法增加了33.4%;均值相对于标准蝙蝠算法优化的纸病图像增强算法增加了43.5%,相对于混沌蝙蝠算法优化的增强算法增加了48.8%。