计算机系统应用  2023, Vol. 32 Issue (3): 282-290   PDF    
改进飞鼠搜索算法的自适应图像增强
高婕, 王秋萍, 李晓丹     
西安理工大学 理学院, 西安 710054
摘要:为了实现灰度图像增强最佳参数的自动寻优, 提出一种改进飞鼠搜索算法的自适应图像增强方法. 在普通树上的飞鼠位置更新中引入双向搜索策略, 提高获得最好解的可能性; 利用螺旋觅食策略更新位于橡子树上的飞鼠位置, 提升算法的收敛速度和搜索精度. 在CEC 2017测试集上, 将所提算法BCSSA与蝙蝠算法、鲸鱼优化算法、基本的SSA和2种改进的SSA进行对比分析, 结果表明, BCSSA具有更高的稳定性和更快的收敛速度. 最后, 将所提出的BCSSA应用于灰度图像增强, 与经典的直方图均衡化方法和SSA进行了4种评价指标的性能比较, 证明了BCSSA的优越性.
关键词: 飞鼠搜索算法    自适应图像增强    双向搜索策略    螺旋觅食策略    直方图均衡化    
Improved Squirrel Search Algorithm for Adaptive Image Enhancement
GAO Jie, WANG Qiu-Ping, LI Xiao-Dan     
Faculty of Sciences, Xi’an University of Technology, Xi’an 710054, China
Abstract: In order to realize the automatic optimization of the optimal parameters of grayscale image enhancement, an adaptive image enhancement method based on an improved squirrel search algorithm is proposed. A bilateral search strategy is introduced into the position updating of the squirrels on normal trees to increase the likelihood of obtaining an optimal solution. A cyclone foraging strategy is used to update the position of the squirrels on acorn trees to improve the convergence rate and search accuracy of the algorithm. In addition, the proposed squirrel search algorithm with bilateral search and cyclone foraging (BCSSA) is compared with the bat algorithm (BA), whale optimization algorithm (WOA), basic squirrel search algorithm (SSA), and two improved SSAs on CEC 2017 test suite. The results indicate that BCSSA has higher stability and faster convergence rate. Finally, the proposed BCSSA is applied to grayscale image enhancement, and its performance is compared with that of the classical histogram equalization method and SSA in terms of four evaluation indicators, which thus validates the superiority of BCSSA.
Key words: squirrel search algorithm (SSA)     adaptive image enhancement     bilateral search strategy     cyclone foraging strategy     histogram equalization    

图像增强是为了突出某部分有用信息而抑制另一些信息, 使处理后的图像更加适合人类和机器进行分析和处理[1]. 图像对比度增强(image contrast enhancement, ICE)是图像增强的方法之一, 图像对比度增强是在空间域中使用变换函数进行的, 它为原始图像的每个像素产生一个新的强度以生成增强图像. 传统的对比度增强方法是使用分段线性变换函数来处理低质量的图像[2]. 但是, 应用变换函数后, 分段点处的像素可能变为负数或大于255. 为了克服这个问题, Tubbs[3]提出了一种用连续曲线代替分段曲线的非完全Beta函数参数化方法, 提高了空域方法实用性.

确定非完全Beta函数的最佳参数 $ \alpha $ $\; \beta $ 值是一个优化问题, 群智能算法是求解复杂优化问题的先进技术. 灰度变换函数可以与群智能算法相结合, 用于搜索输入图像的灰度到新灰度的最佳映射, 从而增强图像对比度. 文献[4]利用蛾群算法对简化直方图的像素强度进行重新分配, 以便KL熵值最大化, 实现图像对比度的调节. 文献[5]提出了一种改进的布谷鸟搜索算法(ECS)的图像对比度增强, 实验结果证实了ECS算法的优越性. 文献[6]提出了一种人工蜂群(ABC)图像对比度增强算法, 在图像集上进行测试, 并与遗传算法进行比较, 证明了其优越性. 然而, 文献[4-6]中图像的适应度函数的计算方法仍有进一步的提升空间.

飞鼠搜索算法(squirrel search algorithm, SSA)[7]是Jain等人受飞鼠的动态觅食策略和滑翔的有效运动方式的启发, 于2019年提出的一种新的群体智能算法. 自SSA被提出以来, 已成功地应用于解决复杂的实际优化问题, 如多区域热电联合经济调度[8]、车间调度[9]和图像压缩[10], 与经典的算法相比, 该方法获得了更高质量的解. 因此, SSA是一个简单而强大的算法.

目前, 我们视野中鲜少见到SSA用于解决图像增强问题. 基于此, 本文提出一种双向搜索和螺旋觅食的飞鼠搜索算法(SSA with bilateral search and cyclone foraging, BCSSA)用于灰度图像的自适应增强. 所做的工作如下: (1) 对基本的SSA进行两方面的改进. 在普通树上的飞鼠的位置更新中加入双向搜索策略, 避免最好解的丢失; 对位于橡子树上的飞鼠, 执行螺旋觅食策略, 增强算法的开发能力. (2) 文献[4,5]中图像的适应度函数包括边缘强度、边缘像素数和熵值3部分, 在此基础上加入紧致度指标, 使增强图像的质量得到更加全面的评价. (3) 成功地将改进的SSA与图像增强相结合. 将BCSSA应用于图像增强的非完全Beta函数的参数选择上, 从而获得Beta函数的参数, 改善图像对比度, 得到视觉效果更佳的增强图像.

1 飞鼠搜索算法

考虑4个假设.

(1) 落叶林中有 $ n $ 只飞鼠, 假定一只飞鼠待在一棵树上.

(2) 每只飞鼠单独觅食, 凭借动态觅食行为最优地利用可用的食物资源.

(3) 森林中仅有3种树可用: 山核桃树(优质食物源)、橡子树(普通食物源)和普通树(没有食物源).

(4) 考虑的森林区域中, 假定包含1棵山核桃树和3棵橡子树.

1.1 随机初始化

设森林中有n只飞鼠(FS), 每只飞鼠的位置用d维向量表示, 第 $ i $ $ \left( {i = 1, 2, \cdots , n} \right)$ 只飞鼠的位置为 $ F{S_i} = \left( {F{S_{i1}}, F{S_{i2}}, \cdots , F{S_{id}}} \right) $ , 每只飞鼠的初始位置为:

$ F{S_i} = F{S_{\rm{L}}} + U\left( {0, 1} \right) \times \left( {F{S_{\rm{U}}} - F{S_{\rm{L}}}} \right) $ (1)

其中, $ U\left( {0, {\text{ }}1} \right) $ 为均匀分布的随机数, $F{S_{\rm{L}}}$ $F{S_{\rm{U}}}$ 分别为搜索区间下界和上界.

1.2 计算适应度值、排序和随机选择

$ i $ $\left( {i = 1, 2, \cdots , n} \right)$ 只飞鼠的适应度值 $ {f_i} $ , 即:

$ {f_i} = f\left( {F{S_i}} \right) = f\left( {F{S_{i1}}, F{S_{i2}}, \cdots , F{S_{id}}} \right) $ (2)

将飞鼠个体的适应度值按升序排列. SSA将飞鼠分为3类: 位于普通树上( $F{S_{{\rm{nt}}}}$ )、位于橡子树上( $F{S_{{\rm{at}}}}$ )和位于山核桃树上的飞鼠( $F{S_{{\rm{ht}}}}$ ). $F{S_{{\rm{ht}}}}$ 是适应度值最小的飞鼠, 即 $F{S_{{\rm{ht}}}}$ = $ F{S_1} $ , $F{S_{{\rm{at}}}}$ 是排名2–4的3只飞鼠, 其余的飞鼠记为 $F{S_{{\rm{nt}}}}$ . 为了获得更好的食物来源, 橡子树上的个体向山核桃树移动; 通过随机选择机制, 一些在普通树上已经满足日常能量需求的飞鼠朝山核桃树移动; 另一些飞鼠向橡子树移动. 在觅食过程中, 飞鼠受到捕食者存在概率 ${P_{{\rm{dp}}}}$ 的影响, ${P_{{\rm{dp}}}}$ 通常假设为0.1.

1.3 生成新的位置

飞鼠的动态觅食过程如下.

Case 1. 橡子树上的飞鼠可能向山核桃树移动.

$ FS_{{\rm{at}}}^{t + 1} = \left\{ \begin{gathered} FS_{{\rm{at}}}^t + {d_g} \times {G_c} \times \left( {FS_{{\rm{ht}}}^t - FS_{{\rm{at}}}^t} \right) , \\ {{{\rm{Random \; location}}}} , \\ \end{gathered} \right. \begin{gathered} {R_1} \geqslant {P_{{\rm{dp}}}} \\ {\text{otherwise}} \\ \end{gathered} $ (3)

Case 2. 普通树上的飞鼠可能向橡子树移动, 以满足日常的能量需求.

$ FS_{{\rm{nt}}}^{t + 1} = \left\{ \begin{gathered} FS_{{\rm{nt}}}^t + {d_g} \times {G_c} \times \left( {FS_{{\rm{at}}}^t - FS_{{\rm{nt}}}^t} \right) , \\ {{{\rm{Random \; location}}}} , \\ \end{gathered} \right. \begin{gathered} {R_2} \geqslant {P_{{\rm{dp}}}} \\ {\text{otherwise}} \\ \end{gathered} $ (4)

Case 3. 一些普通树上已经进食过橡子的飞鼠可能会向山核桃树移动, 来储存山核桃, 以便在食物短缺时食用.

$ FS_{{\rm{nt}}}^{t + 1} = \left\{ \begin{gathered} FS_{{\rm{nt}}}^t + {d_g} \times {G_c} \times \left( {FS_{{\rm{ht}}}^t - FS_{{\rm{nt}}}^t} \right) , \\ {{{\rm{Random \; location}}}} , \\ \end{gathered} \right. \begin{gathered} {R_3} \geqslant {P_{{\rm{dp}}}} \\ {\text{otherwise}} \\ \end{gathered} $ (5)

其中, $ {d_g} $ 为随机滑翔距离, $ {R_1} $ , $ {R_2} $ , $ {R_3} $ 为[0, 1]范围内的随机数, $ t $ 为当前迭代次数, $ {G_c} $ =1.9为滑翔常数.

1.4 季节监测和冬季结束的随机迁移

季节变化对飞鼠的觅食活动有显著影响, 在SSA中引入季节监测条件, 防止算法陷入局部最优解. 季节常数 $ {S_c} $ 的计算公式如式(6)所示[7]:

$ S_c^t = \sqrt {\sum\limits_{k = 1}^d {{{\left( {FS_{{\rm{at}}, k}^t - FS_{{\rm{ht}}, k}^{}} \right)}^2}} } , \; ( t = 1, 2, 3 ) $ (6)

其中, $ d $ 为搜索空间的维数.

季节常数最小值 $ {S_{\min }} $ 的计算公式如式(7)所示[7]:

$ {S_{\min }} = \frac{{10{{\rm{e}}^{ - 6}}}}{{{{\left( {365} \right)}^{\frac{{2.5t}}{T}}}}} $ (7)

其中, $ t $ 为当前迭代次数, $ T $ 为最大迭代次数.

如果季节监测条件 $ S_c^t \lt {S_{\min }} $ 为真, 不能找到最佳冬季食物来源仍要生存的飞鼠将会随机迁移, 公式如下:

$ FS_{{\rm{nt}}}^{{\rm{new}}} = F{S_{\rm{L}}} + {\text{L\'evy}}\left( d \right) \times \left( {F{S_{\rm{U}}} - F{S_{\rm{L}}}} \right) $ (8)

其中, Lévy分布能够更好地促进搜索空间的探索.

1.5 停步规则

当达到最大迭代次数时, 输出山核桃树的飞鼠位置 $F{S_{{\rm{ht}}}}$ 和适应度值 $f\left( {F{S_{{\rm{ht}}}}} \right)$ .

2 双向搜索和螺旋觅食的飞鼠搜索算法

在基本的SSA中, 飞鼠种群随着不断的迭代更新, 种群的个体分布逐渐集中, 在算法迭代后期, 种群多样性降低, 容易陷入局部最优. 为了解决这些问题, 本文做出了相应的改进措施.

2.1 双向搜索策略

为进一步提升算法的寻优能力, 在式(4)和式(5)中, 引入双向搜索策略[11], 使个体充分利用当前最优解( $F{S_{{\rm{ht}}}}$ )和当前解的信息; 同时, $ {r_U} $ 服从 $ U\left( { - 1, {\text{ }}1} \right) $ 为方向控制因子, 控制飞鼠的搜索方向, 扩大飞鼠个体的搜索范围, 加强种群的探索能力, 避免最好解的丢失. 改进式(4)–式(5)中, ${R_i} \geqslant {P_{{\rm{dp}}}} \; (i = 2, 3)$ 时飞鼠的位置更新公式为:

$ FS_{{\rm{nt}}}^{t + 1} = FS_{{\rm{nt}}}^t + {d_g} \times {G_c} \times \left( {FS_{{\rm{at}}}^t - FS_{{\rm{nt}}}^t} \right) + {r_U} \times \left( {FS_{{\rm{ht}}}^t - FS_{{\rm{nt}}}^t} \right) $ (9)
$ FS_{{\rm{nt}}}^{t + 1} = FS_{{\rm{nt}}}^t + {d_g} \times {G_c} \times \left( {FS_{{\rm{ht}}}^t - FS_{{\rm{nt}}}^t} \right) + {r_U} \times \left( {FS_{{\rm{ht}}}^t - FS_{{\rm{nt}}}^t} \right) $ (10)
2.2 螺旋觅食策略

飞鼠在橡子树上向山核桃树移动, 当 ${R_1} \gt {P_{{\rm{dp}}}}$ 时, 用螺旋觅食策略[12]代替原来的位置更新. 螺旋觅食策略通过在整个搜索空间所确定的适应度值最小的飞鼠位置( $F{S_{{\rm{ht}}}}$ )作为参考位置, 并与螺旋权重系数相结合, 提高种群多样性, 从而有效地提升算法的收敛速度和搜索精度. 当 ${R_1} \gt {P_{{\rm{dp}}}}$ 时, 改进的橡子树上的飞鼠位置更新公式如式(11)所示:

$ FS_{{\rm{at}}, {\rm{new}}}^{t + 1} = FS_{{\rm{at}}}^t{\text{ + }}r \times \left( {FS_{{\rm{ht}}}^t - FS_{{\rm{at}}}^t} \right) + \xi \times \left( {FS_{{\rm{ht}}}^t - FS_{{\rm{at}}}^t} \right) $ (11)

其中, $ r $ 为[0, 1]范围内的随机数, $ \xi $ 为螺旋运动的权重系数, 是为了防止因当前最优值的引入而导致在搜索时算法陷入局部极值, 进一步提高算法的寻优性能, 找到全局最优解, $ \xi $ 的计算公式如式(12)所示:

$ \xi = 2{e^{{r_1} \cdot \left( {T - t + 1} \right)/T}} \cdot \sin \left( {2\pi {r_1}} \right) $ (12)

其中, $ {r_1} $ 为[0, 1]范围内的随机数, $ t $ 为当前迭代次数.

2.3 贪婪选择

${R_1} \gt {P_{{\rm{dp}}}}$ 时, 将橡子树上的飞鼠的位置更新公式的原解的适应度值, 与执行螺旋觅食策略的飞鼠位置的新解的适应度值进行比较. 若新解优于原解, 则原解被替换. 否则, 保持原解不变. 贪婪选择如式(13)所示:

$ FS_{{\rm{at}}}^{t + 1} = \left\{ \begin{gathered} FS_{{\rm{at}}, {\rm{new}}}^t , \\ FS_{{\rm{at}}}^t , \\ \end{gathered} \right. \begin{gathered} f\left( {FS_{{\rm{at}}, {\rm{new}}}^t} \right) \lt f\left( {FS_{{\rm{at}}}^t} \right) \\ {\text{otherwise}} \\ \end{gathered} $ (13)
2.4 改进算法BCSSA的步骤

本节给出双向搜索(bilateral search)和螺旋觅食(cyclone foraging)的飞鼠搜索算法(BCSSA)的步骤.

算法1. BCSSA算法
初始化阶段
Step 1. 初始化参数, 种群规模 $\scriptstyle n $ =50, 最大迭代次数 $\scriptstyle T $ =1000, 维数 $\scriptstyle d $ =30, 捕食者存在概率 $\scriptstyle {P_{{\rm{dp}}}}$ =0.1, 滑翔步长 $\scriptstyle {G_c} $ =1.9;
Step 2. 随机初始化 $\scriptstyle n $ 只飞鼠的位置, 如式(1);
Step 3. 计算每个位置飞鼠的适应度值, 如式(2), 并升序排列, 确定位于山核桃树(最好食物源)、橡子树和普通树的飞鼠位置, 保存位于山核桃树的飞鼠的位置及其适应度值;
主循环阶段
Step 4. While $\scriptstyle t $ $\scriptstyle T $
   for $\scriptstyle t $ =1 to $\scriptstyle {n_1} $ ( $\scriptstyle {n_1} $ 为橡子树向山核桃树移动的飞鼠总数)
     if $\scriptstyle {R_1} $ $\scriptstyle {P_{{\rm{dp}}}}$
       $\scriptstyle FS_{{\rm{at}}}^{t + 1} = FS_{{\rm{at}}}^t + {d_g} \times {G_c} \times (FS_{{\rm{ht}}}^t - FS_{{\rm{at}}}^t)$
       $\scriptstyle FS_{{\rm{at}}, {\rm{new}}}^{t + 1} = FS_{{\rm{at}}}^t{\text{ + }}r \times \left( {FS_{{\rm{ht}}}^t - FS_{{\rm{at}}}^t} \right) + \xi \times \left( {FS_{{\rm{ht}}}^t - FS_{{\rm{at}}}^t} \right)$
      利用式(13)进行贪婪选择
     Else
       $\scriptstyle FS_{{\rm{at}}}^{t + 1} = {{{\rm{Random \; location}}}}$
     End if
    End for
    for $\scriptstyle t $ =1 to $\scriptstyle {n_2} $ ( $\scriptstyle {n_2} $ 为普通树向橡子树移动的飞鼠总数)
     if $\scriptstyle {R_2} $ $\scriptstyle {P_{{\rm{dp}}}}$
       $\scriptstyle FS_{\rm{nt}}^{t + 1} = FS_{\rm{nt}}^t + {d_g} \times {G_c} \times (FS_{{\rm{at}}}^t - FS_{\rm{nt}}^t){\text{ + }}{r_U} \times (FS_{{\rm{ht}}}^t - FS_{\rm{nt}}^t)$
     Else
       $\scriptstyle FS_{{\rm{nt}}}^{t + 1} = {{{\rm{Random \; location}}}}$
     End if
    End for
    for $\scriptstyle t $ =1 to $\scriptstyle {n_3} $ ( $\scriptstyle {n_3} $ 为普通树向山核桃树移动的飞鼠总数)
     if $\scriptstyle {R_3} $ $\scriptstyle {P_{{\rm{dp}}}}$
       $\scriptstyle FS_{\rm{nt}}^{t + 1} = FS_{\rm{nt}}^t + {d_g} \times {G_c} \times (FS_{{\rm{ht}}}^t - FS_{\rm{nt}}^t){\text{ + }}{r_U} \times (FS_{{\rm{ht}}}^t - FS_{\rm{nt}}^t)$
     Else
       $\scriptstyle FS_{{\rm{nt}}}^{n + 1} = {{\rm{{Random \; location}}}}$
     End if
   End for
Step 5. 计算季节常数 $\scriptstyle {S_c} $ , 如式(6)
   if $\scriptstyle {S_c} $ < $\scriptstyle {S_{\min }} $
      $\scriptstyle FS_{{\rm{nt}}}^{{\rm{new}}} = F{S_L} + {\text{L\'evy}}\left( d \right) \times \left( {F{S_U} - F{S_L}} \right)$
   End if
Step 6. 更新季节常数的最小值 $\scriptstyle {S_{\min }} $ , 如式(7)
    $\scriptstyle t $ = $\scriptstyle t + 1 $
   End while
输出阶段
Step 7. 输出位于山核桃树的飞鼠的位置及其适应度值

2.5 BCSSA的时间复杂度分析

本节对BCSSA的时间复杂度进行分析. 计算复杂度是基于初始化、搜索代理的更新和最大迭代次数, 假设飞鼠种群的大小为 $ n $ , 搜索空间的维数为 $ d $ , 最大迭代次数为 $ T $ , BCSSA迭代的时间复杂度如下.

(1) 初始化种群阶段的时间复杂度为: ${\rm{O}}\left( n \right)$ .

(2)适应度计算需要的时间复杂度为: ${\rm{O}}\left( {T \times n \times d} \right)$ .

(3) 采用双向搜索策略更新普通树上向橡子树和山核桃树移动的飞鼠个体需要的时间复杂度为: ${\rm{O}}( T \times ( {n_2} + {n_3} ) \times d )$ , 其中 $ {n_2} $ $ {n_3} $ 分别为普通树向橡子树和向山核桃树移动的飞鼠总数.

(4) 采用螺旋觅食策略更新橡子树上向山核桃树移动的飞鼠个体需要的时间复杂度为: ${\rm{O}}\left( {T \times {n_1} \times d} \right)$ , 其中 $ {n_1} $ 为橡子树向山核桃树移动的飞鼠总数.

(5) 重复步骤(2)–(4), 直到达到最大迭代次数 $ T $ . 因此, BCSSA的时间复杂度与SSA保持一致均为 ${\rm{O}}( T \times n \times d )$ .

3 CEC 2017基准测试集上的数值实验

通过在CEC 2017基准测试函数上进行的一系列实验测试和分析, 验证了BCSSA在解决数值优化问题方面的有效性.

3.1 基准测试函数的选择和参数设置

CEC 2017有30个基准测试函数, 实验设置的问题为极小化问题, 我们选择单峰(F1)、多峰(F6、F9)、混合(F12、F15、F18)和复合(F21、F22、F25、F30)共10个函数进行实验, 所得的实验结果越小越好. 所有选定的函数在[–100, 100]d的范围内搜索, 其中 $ d $ 为问题的维数. 所选的函数来自不同的类, 并且每个类都有自己的特性, 因此BCSSA会受到不同方面的挑战.

3.2 BCSSA与其他算法的比较

将BCSSA与BA[13]、WOA[14]、SSA[7]、利用粒子群算法策略改进的SSA (PSOSSA)[15]和具有自适应捕食者存在概率的SSA (ISSA)[16]进行对比, 这些算法的参数设置如表1所示. 为了避免随机性, 验证算法的性能, 在Matlab上共进行30次独立实验, 记录了均值(Mean)和标准差(Std).

表 1 算法的参数设置

表2的实验结果表明了采用本文所提方法获得的最佳结果. 其中, 最好的结果用粗体标出. 在10个测试函数的准确性方面BCSSA优于对比的5种算法. 此外, 根据表2中的标准差值, BCSSA在优化过程中显示出最高的稳定性, 尤其是与标准SSA相比. 结果的准确性表明在SSA上的改进策略是有效的.

4 BCSSA在图像增强算法中的应用

图像对比度增强的主要目的是提高处理后图像中包含的视觉信息的质量, 使图像更好地可视化. 噪声和少量像素强度的存在不允许在整个范围内调整原始图像分布, 对图像增强过程产生负面影响.

4.1 变换函数

Tubbs提出的归一化非完全Beta函数能够自动拟合图像增强的4类非线性变换曲线, 对应不同的 $ \alpha $ $ \;\beta $ 值, 非完全Beta函数 $ F\left( u \right) $ 具有不同的变换曲线[17]. 然而, 穷举法和人工法确定 $ \alpha $ $\;\beta $ 值的计算量较大. 若参数选择不合适, 图像增强效果可能会受到影响. 本文利用改进SSA动态地搜索最佳 $ \alpha $ $ \;\beta $ 值, 实现图像增强. 归一化的非完全Beta函数 $ F\left( u \right) $ 的表达式为[3]:

$ F\left( u \right) = \frac{1}{{\int_0^1 {{t^{\alpha - 1}}{{\left( {1 - t} \right)}^{\beta - 1}}dt} }} \times \left[ {\int_0^u {{t^{\alpha - 1}}{{\left( {1 - t} \right)}^{\beta - 1}}dt} } \right] $ (14)

其中, $0 \lt \alpha , \; \beta \lt 10$ .

表 2 6种算法在CEC 2017基准测试函数上的优化结果

4.2 图像增强适应度函数

BCSSA算法通过适应度函数衡量飞鼠搜索的优劣, 同时, 适应度函数也是测量生成图像质量的客观评价标准, 对确定增强图像的质量至关重要. 为此, 文献[18]提出了一个新的包含边缘强度、边缘像素数、熵值和紧致度的适应度函数. 边缘强度之和表明图像的局部变化; 边缘像素数表明图像包含的细节信息; 熵值表明图像的分布情况; 紧致度表明图像的对比度值, 值越大对比度越高; 适应度函数的定义为:

$ Fit\left( {{I_e}} \right) = {\log _{10}}\left( {{{\log }_{10}}\left( {S\left( {{I_e}} \right)} \right)} \right) \times E\left( {{I_e}} \right) \times H\left( {{I_e}} \right) \times C\left( {{I_e}} \right) $ (15)

其中, $ {I_e} $ 为增强图像, $ S\left( {{I_e}} \right) $ $ H\left( {{I_e}} \right) $ $ E\left( {{I_e}} \right) $ $ C\left( {{I_e}} \right) $ 分别为增强图像的边缘强度之和、边缘像素数、熵值和紧致度. $ Fit\left( {{I_e}} \right) $ 的值越大, 图像 $ {I_e} $ 的质量越好.

4.3 采用BCSSA的自适应图像增强方法步骤

采用BCSSA的自适应图像增强的过程如下.

Step 1. 输入大小为 $ M \times N $ 的原始图像 $ I $ .

Step 2. 将原始图像的灰度值压缩到[0, 1], 即:

$ u\left( {i, j} \right) = \frac{{f\left( {i, j} \right) - {L_{\min }}}}{{{L_{\max }} - {L_{\min }}}} $ (16)

其中, $ f\left( {i, j} \right) $ 为原图像中像素点 $ \left( {i, j} \right) $ 的灰度值, $ 0 \leqslant u\left( {i, j} \right) \leqslant 1 $ , $ {L_{\max }} $ , $ {L_{\min }} $ 为原始图像灰度最大、最小值.

Step 3. 用BCSSA求解归一化后图像的最佳参数 $ \alpha $ $ \;\beta $ 的值.

Step 4. 利用式(14)对归一化的图像进行变换:

$ u'\left( {i, j} \right) = F\left( {u\left( {i, j} \right)} \right) $ (17)

其中, $ 0 \leqslant u'\left( {i, j} \right) \leqslant 1 $ .

Step 5. 重建增强后的图像. 变换公式为:

$ f'\left( {i, j} \right) = 255 \times u'\left( {i, j} \right) $ (18)
4.4 图像增强效果的评价标准

为了评价所提出的BCSSA的性能, 在增强图像的客观评价中选择了4个指标评估增强图像的质量, 包括均方误差(mean squared error, MSE)、峰值信噪比(peak signal-to-noise ratio, PSNR)、边缘保留指数(edge preserve index, EPI)和相对增强对比度(relative enhancement contrast, REC).

PSNR反映了 $ {I_e} $ $ I $ 相比对比度的提高程度; EPI表示 $ I $ 中的显著边缘在 $ {I_e} $ 中的保留程度; REC评估了 $ {I_e} $ $ I $ 中包含的多个对象和结构之间的强度差异.

均方误差(MSE)通过用增强后图像 $ {I_e} $ 的像素减去原始图像 $ I $ 的像素值, 来评估增强图像 $ {I_e} $ 与其原始图像 $ I $ 之间的相似性, 然后计算平均总误差的值. MSE计算公式为:

$ {{\textit{MSE}}} = \frac{1}{{MN}}\sum\limits_{i = 0}^M {\sum\limits_{j = 0}^N {{{\left( {{I_e}\left( {i, j} \right) - I\left( {i, j} \right)} \right)}^2}} } $ (19)

峰值信噪比(PSNR)[19]是使用最为广泛的一种图像评价指标, 它是基于对应像素点间的误差, 即基于误差敏感的图像质量评价. PSNR的计算公式为:

$ {{{\textit{PSNR}}}} = 10 \times {\log _{10}}\left( {\frac{{{{\left( {{2^8} - 1} \right)}^2}}}{{{\textit{MSE}}}}} \right) $ (20)

边缘保留指数(EPI)是原始图像 $ I $ 和增强图像 $ {I_e} $ 中水平和垂直绝对梯度的比率. EPI的计算公式为:

$ {{{\textit{EPI}}}} = \frac{{\displaystyle\sum\limits_{i = 0}^M {\displaystyle\sum\limits_{j = 0}^N {\left[ {\left| {{I_e}\left( {i, j} \right) - {I_e}\left( {i, j + 1} \right)} \right| + \left| {{I_e}\left( {i, j} \right) - {I_e}\left( {i + 1, j} \right)} \right|} \right]} } }}{{\displaystyle\sum\limits_{i = 0}^M {\displaystyle\sum\limits_{j = 0}^N {\left[ {\left| {I\left( {i, j} \right) - I\left( {i, j + 1} \right)} \right| + \left| {I\left( {i, j} \right) - I\left( {i + 1, j} \right)} \right|} \right]} } }} $ (21)

相对增强对比度(REC)可以量化增强图像 $ {I_e} $ 和原始图像 $ I $ 之间的对比度差异. 较高的REC值对应于更好的增强图像. REC通过式(22)获得:

$ \begin{split} &{{REC}} = \\ &20 \times {\log _2}\left[ {\frac{1}{{MN}}\sum\limits_{i = 0}^M {\sum\limits_{j = 0}^N {{{\left( {{I_e}\left( {i, j} \right)} \right)}^2}} } - {{\left( {\frac{1}{{MN}}\sum\limits_{i = 0}^M {\sum\limits_{j = 0}^N {I\left( {i, j} \right)} } } \right)}^2}} \right] \end{split}$ (22)
4.5 图像增强实验结果与分析

用BCSSA对数字图像处理中常用的Lena, Jetplane, Couple和Pepper这4幅图像(256像素×256像素)进行对比度增强. 将所提方法与基本的SSA进行了比较, 同时, 为了验证BCSSA的性能, 将其与传统的直方图均衡化方法(histogram equalization, HE)进行比较. 使用4个图像质量评价标准对3种算法的性能进行评估. 优化参数 $ \alpha $ $ \beta $ 的智能算法的参数设置如下, 飞鼠种群的规模n =50, 最大迭代次数T =50, 维数d =30, 捕食者存在概率Pdp=0.1, 滑翔步长Gc =1.9. 实验环境为CPU i5-6500, 内存8 GB的计算机, 在Matlab 2019a软件平台上进行.

表3给出BCSSA和SSA在4幅图像上独立运行30次, 得到的最优、平均、最差的适应度函数值及HE方法的适应度值. $ Fit\left( {{I_e}} \right) $ 的值越大, 图像 $ {I_e} $ 的质量越好. 由此客观评价准则, 可以看出BCSSA均表现最佳, SSA次之, HE最差. 同时, 为了证明所提算法的图像对比度增强技术从图像中提取信息的能力, 表4给出3种算法在4幅图像上的均方误差(MSE)、峰值信噪比(PSNR)、边缘保留指数(EPI)、相对增强对比度(REC)的实验数据. 除MSE之外, 其他指标的值越大表示其具有更好的性能. EPI是间接评估图像视觉感知的因素, 评估处理后图像的边缘信息量. 在表4中, BCSSA获得了最低的MSE元素, 低MSE的值决定了处理图像中的较小失真或误差; 而MSEPSNR是成负相关的, BCSSA取得了最高的PSNR值; BCSSA增强图像的EPI以最高值显示, 表明BCSSA方法在保留原始图像中存在的边缘有最好性能. 同时, BCSSA具有最高的REC值, 表明它能够生成对比度明显高于HE和SSA的图像.

表 3 3种方法在4幅图像的适应度值对比

图1显示了4幅图的原始灰度图像以及由HE、SSA和提出的BCSSA获得的对比度增强结果. 从图1(b1)–图1(b4)可以看出, HE增强的图像的对比度高于原图像, 但存在某些细节丢失的情况; 从图1(c1)–图1(c4)可以看出, SSA所得到的增强图像的细节比较清晰, 图像整体质量较好, 显示SSA优于HE. 从图1(d1)–图1(d4)可以看出, 相比于HE和SSA, BCSSA所获得的增强图像整体亮度更均匀以及细节信息较突出. 从上述分析得出BCSSA获得增强图像的视觉效果更佳这一结论, 与表3 中BCSSA获得最好的适应度值一致.

表 4 3种方法在4幅图上的评价指标的结果对比

图 1 4幅图像增强结果对比

图2给出Lena图被不同算法处理后的直方图, 可以看出, Lena图的原始直方图灰度值主要集中于40–160之间; 经过HE方法处理的直方图灰度值几乎是均匀分布的; SSA增强的直方图的灰度值相较于原始图像有一定的拉伸; 由于BCSSA显著提高了SSA全局搜索能力, 避免算法陷入局部最小值, 故呈现出更好的像素分布, 这证明了BCSSA方法的有效性.

5 总结

为了提高飞鼠搜索算法的寻优精度, 加快算法的收敛速度, 避免陷入局部最优, 本文提出了基于双向搜索和螺旋觅食策略的飞鼠搜索算法(BCSSA), 双向搜索策略提升算法的收敛速度, 螺旋觅食策略提高算法的搜索效率. CEC 2017基准测试函数的仿真实验表明BCSSA的性能优于BA, WOA, SSA, PSOSSA, ISSA. 同时, 将改进SSA用于灰度图像的对比度增强中, 这比需要搜索最佳图像像素对比度的传统方法更快、更有效. 在一组灰度图像上对HE, SSA和BCSSA的性能进行了测试. 实验结果表明, 在评估增强质量的不同性能指标方面, 改进方法具有更好的性能. 并行策略是一种显著有效的改进群智能算法的方式, 不同的并行策略对算法的性能有不同的影响, 下一步研究工作考虑并行策略改进的SSA; 对于任何有效的元启发式算法, 在探索和开发之间必须有一个适当的平衡. $ {S_{\min }} $ 的值影响SSA的探索和开发能力. $ {S_{\min }} $ 值越大, 促进探索, $ {S_{\min }} $ 值越小, 促进开发. 如何更优的自适应地减小 $ {S_{\min }} $ 的值, 这也是未来改进的另一个方向.

图 2 Lena图被不同算法处理后的直方图

参考文献
[1]
毕晓君, 潘铁文. 基于改进的教与学优化算法的图像增强方法. 哈尔滨工程大学学报, 2016, 37(12): 1716-1721.
[2]
Ling ZG, Liang Y, Wang YN, et al. Adaptive extended piecewise histogram equalisation for dark image enhancement. IET Image Processing, 2015, 9(11): 1012-1019. DOI:10.1049/iet-ipr.2014.0580
[3]
Tubbs JD. A note on parametric image enhancement. Pattern Recognition, 1987, 20(6): 617-621. DOI:10.1016/0031-3203(87)90031-8
[4]
Luque-Chang A, Cuevas E, Pérez-Cisneros M, et al. Moth swarm algorithm for image contrast enhancement. Knowledge-based Systems, 2021, 212: 106607. DOI:10.1016/j.knosys.2020.106607
[5]
Kamoona AM, Patra JC. A novel enhanced cuckoo search algorithm for contrast enhancement of gray scale images. Applied Soft Computing, 2019, 85: 105749. DOI:10.1016/j.asoc.2019.105749
[6]
Draa A, Bouaziz A. An artificial bee colony algorithm for image contrast enhancement. Swarm and Evolutionary Computation, 2014, 16: 69-84. DOI:10.1016/j.swevo.2014.01.003
[7]
Jain M, Singh V, Rani A. A novel nature-inspired algorithm for optimization: Squirrel search algorithm. Swarm and Evolutionary Computation, 2019, 44: 148-175. DOI:10.1016/j.swevo.2018.02.013
[8]
Basu M. Squirrel search algorithm for multi-region combined heat and power economic dispatch incorporating renewable energy sources. Energy, 2019, 182: 296-305. DOI:10.1016/j.energy.2019.06.087
[9]
Wang YJ, Han JR. A FJSSP method based on dynamic multi-objective squirrel search algorithm. International Journal of Antennas and Propagation, 2021, 2021: 6062689.
[10]
Minu MS, Canessane RA. An efficient squirrel search algorithm based vector quantization for image compression in unmanned aerial vehicles. Proceedings of the 2021 International Conference on Artificial Intelligence and Smart Systems (ICAIS). Coimbatore: IEEE, 2021. 789–793.
[11]
何庆, 黄闽茗, 王旭. 基于精英反向学习的逐维改进蜻蜓算法. 南京师大学报(自然科学版), 2019, 42(3): 65-72.
[12]
Zhao WG, Zhang ZX, Wang LY. Manta ray foraging optimization: An effective bio-inspired optimizer for engineering applications. Engineering Applications of Artificial Intelligence, 2020, 87: 103300. DOI:10.1016/j.engappai.2019.103300
[13]
Chen MR, Huang YY, Zeng GQ, et al. An improved bat algorithm hybridized with extremal optimization and Boltzmann selection. Expert Systems with Applications, 2021, 175: 114812. DOI:10.1016/j.eswa.2021.114812
[14]
Chakraborty S, Saha AK, Chakraborty R, et al. An enhanced whale optimization algorithm for large scale optimization problems. Knowledge-based Systems, 2021, 233: 107543. DOI:10.1016/j.knosys.2021.107543
[15]
朱群锋, 王璐, 汪超. 基于粒子群算法策略改进的飞鼠优化算法. 洛阳理工学院学报(自然科学版), 2020, 30(4): 52-58.
[16]
Fares D, Fathi M, Shams I, et al. A novel global MPPT technique based on squirrel search algorithm for PV module under partial shading conditions. Energy Conversion and Management, 2021, 230: 113773. DOI:10.1016/j.enconman.2020.113773
[17]
姜建国, 周佳薇, 周润生, 等. 一种采用改进细菌觅食优化算法的图像增强方法. 控制与决策, 2015, 30(3): 461-466. DOI:10.13195/j.kzyjc.2013.1794
[18]
Chen J, Yu WY, Tian J, et al. Image contrast enhancement using an artificial bee colony algorithm. Swarm and Evolutionary Computation, 2018, 38: 287-294. DOI:10.1016/j.swevo.2017.09.002
[19]
邵保泰, 汤心溢, 金璐, 等. 基于生成对抗网络的单帧红外图像超分辨算法. 红外与毫米波学报, 2018, 37(4): 427-432. DOI:10.11972/j.issn.1001-9014.2018.04.009