太赫兹科学与电子信息学报  2021, Vol. 19 Issue (1): 117-124     DOI: 10.11805/TKYDA2019532
基于蚁群优化与细菌趋化性的图像边缘检测算法    [PDF全文]
卢曦1, 邱建林2, 潘良1     
1. 南通理工学院 计算机与信息工程学院,江苏 南通 226000;
2. 南通大学 计算机科学与技术学院,江苏 南通 226000
摘要: 为解决基于蚁群优化的图像边缘检测算法中信息素的作用不明显,难以获得全局最优解,从而降低目标边缘的检测精确度与效率等问题,提出一种基于细菌趋化性(BC)耦合蚁群优化(ACO)的边缘检测算法。通过细菌趋化性找到最佳解决方案,用于产生信息素的初值;将BC得到的信息素初值作为ACO的初始信息素,计算每只蚂蚁的行走概率,从而选择最佳的行走路径。当蚂蚁每经历一个像素点时,更新局部信息素。全部的蚂蚁完成迭代后,进行全局信息素更新,搜寻全局最优解;最后,根据信息素最优解与阈值的关系,得到目标的边缘与非边缘,完成边缘检测。测试表明:与其他边缘检测算法相比,所提算法具有更好的边缘连续性和清晰性,能准确检测图像中的微小边缘,同时呈现出理想的收敛速度。
关键词: 边缘检测    蚁群算法    细菌趋化性    信息素    行走概率    行走路径    全局最优解    
Image edge detection algorithm based on Ant Colony Optimization coupled with Bacterial Chemotaxis
LU Xi1, QIU Jianlin2, PAN Liang1     
1. School of Computer and Information Engineering, Nantong University of Technology, Nantong Jiangsu 226000, China;
2. School of Computer Science and Technology, Nantong University, Nantong Jiangsu 226000, China
Abstract: The function of pheromone in image edge detection algorithm based on ant colony optimization is not obvious and it is difficult to obtain the global optimal solution, thus reducing the accuracy and efficiency of the target edge detection. An Ant Colony Optimization(ACO) based on Bacterial Chemotaxis(BC) is proposed to improve the performance of edge detection. Firstly, the best solution is found through bacterial chemotaxis to produce the initial value of pheromone. Then, the initial value of pheromone obtained from BC is used as the initial pheromone of ACO, to calculate the walking probability of each ant and choose the walking path. When ants experience a pixel, local pheromones are updated. After all the ants complete the iteration, they update the global pheromone and search for the global optimal solution. Finally, according to the relationship between the optimal solution of pheromone and the threshold, the edge and non-edge are obtained. The results show that the proposed method has a great improvement in search accuracy, optimization speed and stability. Compared with other edge detection algorithms, it has better edge continuity, clarity and detection accuracy for small edges with perfect convergence speed.
Keywords: edge detection    ant colony algorithm    Bacterial Chemotaxis    pheromone    walking probability    walking path    global optimal solution    

边缘是最重要的图像特征之一,在图像分割、增强等方面有着广泛的应用。边缘检测是提取边缘信息的过程,其目的是获取灰度值不连续或变化迅速的点[1]。传统边缘检测主要是在高通滤波的基础上,通过空间域的差分操作实现[2]。目前,常见的边缘检测算法包括Roberts, Sobel, Prewitt, Canny等[3]。相对复杂的图像,即使在相同的组织结构中也可能存在不同的灰度,图像包含丰富的细节和大量的噪声,因此传统图像边缘检测算法存在检测效果差、缺失检测、误检测等问题。

蚁群算法是一种新的仿生方法,它模拟蚂蚁寻找食物的过程[4],根据不同蚂蚁之间的信息交互找到最优解[5]。在基于蚁群优化算法(ACO)中,将像素梯度值和邻域的差值作为蚁群的启发因子,搜寻边缘[6]。ACO对显著边缘检测效果良好,能有效反映出主要的边缘信息。但ACO的边缘检测也存在一些不足,主要表现为:初始阶段的算法将耗费较长时间;无法得到全局最优解。何拥军等[7]提出的一种Hough变换与蚁群优化的边缘检测方案,该算法取得了较好的检测效果,降低了噪声干扰。但该算法基于ACO,同样存在信息素作用不明显,效率不高,对全局最优解无法准确获得,无法对微小边缘精确检测的问题。为了改进ACO算法的不足,张立毅等[8]提出一种细菌觅食的改进蚁群方案,提高了收敛速度与全局搜索能力。贾翠玲等[9]提出了结合细菌觅食与蚁群算法的机器人路径规划方法,提高了准确找到目标位置所需的速度和效率。但这些方法均是简单的联合应用,难以解决蚁群算法缺乏有效初始信息素的问题

本文基于细菌趋化性的蚁群算法,设计了一种新的优化算子解决边缘检测问题。

1 基于细菌趋化性的改进蚁群优化算法 1.1 蚁群优化

蚂蚁在采食过程中会排放一种信息素作为交流的载体,从而与其他蚂蚁获得信息交互,通过感知信息素的强度来引导方向,并以较大的概率选择信息多的路线[10]。假设蚂蚁和节点的数量分别为mL${\tau _{ij}}(t),i,j = 1,2, \cdots ,L$表示时间t时,节点i和节点j之间的信息素大小。开始时,每条路线上的信息素大小相等,${\tau _{ij}}(0) = C$C为常数。蚂蚁在运动过程中根据信息素大小进行移动。因此,蚂蚁k从节点i行走到j的几率P可定义为[11]

$P_{ij}^k = \left\{ \begin{gathered} \frac{{{{\left[ {{\tau _{ij}}{{(t)}^\alpha }\left[ {{\eta _{ij}}(t)} \right]} \right]}^\beta }}}{{\sum\limits_{s \in {\rm allowed}{_k}} {{{\left[ {{\tau _{is}}{{(t)}^\alpha }\left[ {{\eta _{is}}(t)} \right]} \right]}^\beta }} }},{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} j \in {\rm allowed}{_k} \\ 0{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} ,{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\rm other}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} \\ \end{gathered} \right.$ (1)

式中:${\rm allowed}{_k} = \left\{ {0,1, \cdots ,L - 1} \right\} - {\rm tabu}{_k}$为蚂蚁k待访问的点集,${\rm tabu}{_k}\left( {k = 1,2, \cdots ,m} \right)$为蚂蚁k的tabu列表,表示蚂蚁k的服务点;${\eta _{ij}}(t)$为启发式值,表示时间t时节点i到节点j的期望程度,通常表示为${\eta _{ij}}(t){\rm{ = }}1/{d_{ij}}$dij表示节点i和节点j之间的距离,${d_{ij}}{\rm{ = }}\sqrt {{{({x_i} - {x_j})}^2} + {{({y_i} - {y_j})}^2}} $,其中,$({x_i},{y_i}),({x_j},{y_j})$分别为节点i和节点j的坐标;α为信息素值,表示两个节点之间运动轨迹的相对权重;β为期望值,表示可见性的相对权重。

在所有蚂蚁完成一个循环后,应更新路径中的剩余信息素,以避免信息素的无限积累:

${\tau _{ij}}(t + 1) = (1 - \rho ){\tau _{ij}}(t) + \Delta {\tau _{ij}}(t)$ (2)
$\Delta {\tau _{ij}}(t){\rm{ = }}\sum\limits_{k = 1}^m {\Delta \tau _{ij}^k} (t)$ (3)
$\Delta \tau_{i j}^{k}(t)=\left\{\begin{array}{ll} Q / D_{k}, & \text { 蚂蚁在这个循环中通过路径 } \\ 0, & \text { other } \end{array}\right.$ (4)

式中:ρ为一个信息素全球蒸发因子,代表信息素的持久性,如果$\rho \in \left[ {0,1} \right]$$1 - \rho $反映了信息素的蒸发程度;$\Delta \tau _{ij}^k(t)$为这个圆圈中蚂蚁路径(i, j)的信息素大小;$\Delta {\tau _{ij}}(t)$为这个圆圈中所有蚂蚁在路径(i, j)中的信息素大小总和;Dk为蚂蚁k在这个圆上行走的路线长度;Q为信息素大小,其设置可能影响算法的收敛快慢。

1.2 基于细菌趋化性改进的蚁群算法

细菌趋化性是基于细菌觅食过程中的行为,通过不断地感知环境变化来搜寻最优解[12]。细菌趋化算法简单,鲁棒性强,全局搜寻能力强。蚁群优化具有突出的分布式同步搜寻能力,但由于初始时刻信息素的缺乏,计算速度较慢。为克服基本蚁群优化的缺点,将细菌趋化算法和基本蚁群算法相结合。首先,利用细菌趋化性查找可行的最优解,用于产生信息素的初值;然后,通过蚁群优化算子进行边缘检测,提高效率与精确度。

基于细菌趋化性改进的蚁群算法步骤如下:

1) 初始化参数:α, β, ρ, Q

2) 对细菌趋化算子的参数进行初始化,包括细菌尺寸、细菌定位初始值和细菌移动速度。

3) 将细菌趋化的计算精确度设定为ε,获得相关参数,分别为:最小运动时间T0(${T_0} = {\varepsilon ^{0.3}} \times {10^{ - 1.73}}$)、维数无关b($b = {T_0}({T_0}^{ - 1.54} \times {10^{0.6}})$)、相关时间tctc定义如下:

${t_c} = {({b / T})^{0.31}} \times {10^{ - 1.16}}$ (5)

式中T为时间参数,$T{\rm{ = }}\left\{ \begin{gathered} {T_0}{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} ,\quad \quad \quad \quad \quad \frac{{{f_{\rm pr}}}}{{{l_{\rm pr}}}} \geqslant 0\; \\ {T_0}\left( {1 + b\left| {\frac{{{f_{\rm pr}}}}{{{l_{\rm pr}}}}} \right|} \right),\;\frac{{{f_{\rm pr}}}}{{{l_{\rm pr}}}} < 0\; \\ \end{gathered} \right.$fpr为当前位置和以前位置的函数值差;lpr为搜索空间中当前位置和前一位置的向量范数。

4) 计算移动方向。$({\varphi _1},{\varphi _2}, \cdots ,{\varphi _{n - 1}})$表示细菌的n-1维角矢量,在n维空间$({x_1},{x_2}, \cdots ,{x_n})$处,细菌被表达为:

${x_n} = r\sin ({\varphi _{n - 1}})$ (6)

式中r为回转半径。

然后,根据式(7)~式(8)判断向左或向右转动的新方向:

$P({X_i} = {\varphi _i},{\mu _i} = {u_i}) = \frac{1}{{\sqrt {2\pi {\sigma _i}} }}{e^{ - \frac{{{{({\varphi _i} - {\mu _i})}^2}}}{{2\sigma _i^2}}}}$ (7)
$P({X_i} = {\varphi _i},{\mu _i} = - {u_i}) = \frac{1}{{\sqrt {2\pi {\sigma _i}} }}{e^{ - \frac{{{{({\varphi _i} - {\mu _i})}^2}}}{{2\sigma _i^2}}}}$ (8)

式中:${\varphi _i}$为第i个角向量;${u_i}$为均值;${\sigma _i}$为方差;${\mu _i}$为期望值。

由于左转或右转的概率相同,新移动方向与原方向夹角${\varphi _i}$的概率为:

$P({X_i} = {\varphi _i}) = \frac{1}{2}\left[ {P({X_i} = {\varphi _i},{\upsilon _i} = {\mu _i}) + P({X_i} = {\varphi _i},{\upsilon _i} = - {\mu _i})} \right]$ (9)

5) 细菌在新方向的持续时间ti$P({X_i} = {t_i}) = \frac{1}{T}{e^{ - {t_i}/T}}$

6) 计算搜索空间中的坐标,然后找到可行的最优解:

${x_{i,\rm new}} = {x_{i,\rm old}} + {n_\mu }l$ (10)

式中:${x_{i,\rm new}}$为细菌的新坐标;${x_{i,\rm old}}$为前一刻细菌的坐标;${n_\mu }$为正则化新路径线的向量;l为长度。

7) 根据步骤6)中搜索到的可行最优解,生成初始信息素为:

$\tau_{i j}(0)=\left\{\begin{array}{l} \left.\tau_{i j}^{\mathrm{\rm BC}}(0), \text { 通过步骤6 }\right) \text { 得到的可行解 } \\ 0 \quad, \text { other } \end{array}\right.$ (11)

式中$\tau _{ij}^{\rm BC}(0)$为通过BC得到的零时刻节点i和节点j之间的信息素大小。

8) 使迭代时间NC=0。

9) 根据式(1)计算蚂蚁k的移动概率,并移动到下一个位置j,同时将j加入${\rm tabu}{_k}$

10) 判断${\rm tabu}{_k}$是否已满,如果没有,返回步骤9);否则,继续执行步骤11)。

11) 根据式(2)~(4)对信息素整体更新。当蚂蚁每经历一个像素点时,更新局部信息素。

12) 重复执行步骤8)~步骤11),全部的蚂蚁完成迭代后,进行全局信息素更新,搜寻全局最优解。

2 本文图像边缘检测算法

本文采用了基于蚁群优化耦合细菌趋化性的边缘检测算法,其过程见图 1。根据蚁群算法正反馈的特点,利用最后生成的信息素矩阵获得边缘分割的阈值,进而提取边缘。对于M×N的图像,基于蚁群优化耦合细菌趋化性的图像边缘检测主要包括初始化阶段、路径选择和信息素更新阶段、判断阶段。

Fig.1 Detection process of proposed algorithm 图 1 本文算法的检测过程
2.1 初始化

首先,根据细菌趋化性进行图像处理。将当前搜索到的可行最优解转化为蚁群算法的初始信息素矩阵。因此,传递的初始信息素矩阵中像素点(i, j)的信息素初始值为:

$\tau _{i,j}^s(0) = \tau _{i,j}^{}(0) + \tau _{i,j}^{\rm BC}(0)$ (12)

式中:$\tau _{i,j}^s(0)$为边缘检测蚁群优化耦合细菌趋化算法的初始信息素;$\tau _{i,j}^{}(0)$信息素是常数。

其次,由于启发式信息只由像素信息素决定,像素信息素是一个固定常数,在初始化阶段确定。像素点(i, j)的启发式信息${\eta _{i,j}}$[13]

${\eta _{i,j}}{\rm{ = }}\frac{1}{{\sum\limits_{i = 1}^M {\sum\limits_{j = 1}^N {{V_c}({I_{i,j}})} } }}{V_c}({I_{i,j}})$ (13)

式中:${I_{i,j}}$为(i, j)的灰度值;${V_c}({I_{i,j}})$为蚂蚁像素点的强度,其值由像素点所在区域的值决定:

$\begin{gathered} {V_c}({I_{i,j}}){\rm{ = }}\left| {{I_{i - 2,j - 1}} - {I_{i + 2,j + 1}}} \right| + \left| {{I_{i - 2,j + 1}} - {I_{i + 2,j - 1}}} \right| + \left| {{I_{i - 1,j - 2}} - {I_{i + 1,j + 2}}} \right| + \left| {{I_{i - 1,j - 1}} - {I_{i + 1,j + 1}}} \right| + \\ \quad \quad \quad \;\;\left| {{I_{i - 1,j}} - {I_{i + 1,j}}} \right|\left| {{I_{i - 1,j + 1}} - {I_{i + 1,j - 1}}} \right| + \left| {{I_{i - 1,j + 2}} - {I_{i + 1,j - 2}}} \right| \\ \end{gathered} $ (14)
2.2 路径选择与信息素更新

对于每个迭代过程,蚂蚁在图像中的像素点之间移动。设蚂蚁目前的位置是(iz, jz),在八邻域范围内,邻域像素点为(i, j)。蚂蚁在下一步到达的位置由转移概率${p_{({i_z},{j_z}),(i,j)}}(n + 1)$决定:

${p_{({i_z},{j_z}),(i,j)}}(n + 1){\rm{ = }}\frac{{{{\left[ {{\tau _{i,j}}(n)} \right]}^\alpha }{{\left( {{\eta _{i,}}_j} \right)}^\beta }}}{{\sum\limits_{(i,j) \in \Omega } {{{\left[ {{\tau _{i,j}}(n)} \right]}^\alpha }{{\left( {{\eta _{i,}}_j} \right)}^\beta }} }}$ (15)

式中Ω为在8个相邻的范围内所有像素点$({i_z},{j_z})$的集合。当蚂蚁经历一个像素点时,信息素就会更新。在每次迭代中,像素点(i, j)的信息素更新策略为:

${\tau _{i,j}}(n + 1) = (1 - \varphi ){\tau _{i,j}}(n) + \varphi \tau _{i,j}^s(0)$ (16)

式中$\varphi $为局部信息素衰减系数。

全部蚂蚁迭代运算后,对全局信息素更新,更新策略为:

$\tau_{i, j}(n+1)=\left\{\begin{array}{ll} (1-\rho) \tau_{i, j}(n)+\sum\limits_{k=1}^{m} \Delta \tau_{i, j}^{k}(n), & \text { 点 }(i, j) \text { 被吗虹 } k \text { 访问 } \\ \tau_{i, j}(n), & \text { other } \end{array}\right.$ (17)

式中$\Delta \tau _{i,j}^k(n)$为像素点(i, j)在时刻n的信息素变化值,$\Delta \tau _{i,j}^k(n){\rm{ = }}{\eta _{i,j}}$

2.3 边缘判断

根据阈值T(l),像素点(i, j)的最终信息素${\tau _{i,j}}(n + 1)$分为两部分:大于T(l)与小于T(l),分别计算这两部分的平均值。经过迭代后,当新阈值T(l)不大于设定值时,阈值T(l)输出。根据该值对图像进行分割,找到图像的边缘。具体步骤如下:

1) 初始化阈值T(l),l=0:

$T(0){\rm{ = }}\frac{{\sum\limits_{i = 1}^M {\sum\limits_{j = 1}^N {{\tau _{i,j}}(n + 1)} } }}{{MN}}$ (18)

式中${\tau _{i,j}}(n + 1)$是像素点(i, j)的最终信息素。

2) 计算两部分的平均值:大于T(l)与小于T(l),分别为:

${m_L}(l) = \frac{{\sum\limits_{i = 1}^M {\sum\limits_{j = 1}^N {g_{T(l)}^L({\tau _{i,j}}(n + 1))} } }}{{\sum\limits_{i = 1}^M {\sum\limits_{j = 1}^N {h_{T(l)}^L({\tau _{i,j}}(n + 1))} } }};{m_U}(l) = \frac{{\sum\limits_{i = 1}^M {\sum\limits_{j = 1}^N {g_{T(l)}^U({\tau _{i,j}}(n + 1))} } }}{{\sum\limits_{i = 1}^M {\sum\limits_{j = 1}^N {h_{T(l)}^U({\tau _{i,j}}(n + 1))} } }}$ (19)

式中:$g_{T(l)}^L,h_{T(l)}^L,g_{T(l)}^U,h_{T(l)}^u$分别定义如下:$g_{T(l)}^L{\rm{ = }}\left\{ \begin{gathered} x,{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} x \leqslant T(l) \\ 0{\kern 1pt} ,{\kern 1pt} {\kern 1pt} {\kern 1pt} {\rm others} \\ \end{gathered} \right.$; $h_{T(l)}^L{\rm{ = }}\left\{ \begin{gathered} 1{\kern 1pt} ,{\kern 1pt} {\kern 1pt} {\kern 1pt} x \leqslant T(l) \\ 0{\kern 1pt} ,{\kern 1pt} {\kern 1pt} {\kern 1pt} {\rm others} \\ \end{gathered} \right.$; $g_{T(l)}^U{\rm{ = }}\left\{ \begin{gathered} x,{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} x \geqslant T(l) \\ 0{\kern 1pt} ,{\kern 1pt} {\kern 1pt} {\kern 1pt} {\rm others} \\ \end{gathered} \right.$; $h_{T(l)}^U{\rm{ = }}\left\{ \begin{gathered} 1{\kern 1pt} ,{\kern 1pt} {\kern 1pt} {\kern 1pt} x \geqslant T(l) \\ 0{\kern 1pt} ,{\kern 1pt} {\kern 1pt} {\kern 1pt} {\rm others} \\ \end{gathered} \right.$。变量$x = {\tau _{i,j}}(n + 1)$

3) 根据式(20)更新阈值T(l):

$T(l){\rm{ = }}{m_L}(l - 1) + {m_U}(l - 1)/2$ (20)

4) 判断终止条件。如果$\left| {T(l) - T(l - 1)} \right| > \varepsilon $,返回步骤2),继续划分阈值T(l);反之,输出阈值T(l)。根据阈值,将图像分割为:

${E_{i,j}} = \left\{ \begin{gathered} 1,{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\tau _{i,j}}(n + 1) \geqslant T(l) \\ 0,{\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\kern 1pt} {\rm others} \\ \end{gathered} \right.$ (21)

式中${E_{i,j}}$为检测因子。如果${E_{i,j}}$为1,判断为边缘;如果${E_{i,j}}$为0,判断为非边缘。

3 实验与讨论

对提出算法性能进行验证,测试平台为:Inter (R)Core (TM)i3-4150 CPU@3.70 GHz,仿真软件为VS2015。参数设置为:m=100, α=1, β=5, ρ=0.8, Q=100,细菌尺寸D=2,精确度ε=10-5,细菌移动速度为1。为使实验更具说服力和对比性,以Hough变换(Hough Transform,HT)与ACO, BC+ACO, HT+ACO+BC的边缘检测作为参照。

图 2为Cameramen, Lena, Building, Antenna原始图像,图 3~图 5依次为对图 2采用HT+ACO, BC+ACO,HT+ACO+BC检测的边缘结果。图 3为基于HT+ACO的边缘检测结果。从图 3中看出,对图像中显著特征能有效识别,降低了噪点与杂点的影响,具有较好的边缘检测效果。但也存在一些不足,如多微小边缘无法准确识别。图 4为本文算法获得的边缘检测结果,可看出,图 4(a)中显示了摄影者的轮廓以及主要的背景信息,此外,对于图中的花草也反映出来了。图 4(b)中清晰地显示了人物的脸部结构,对帽子、头发等细节特征也能够反映,对前景与背景均能有效检测,主要原因是本文采用了具有简单、鲁棒性强、全局搜索能力强的细菌趋化性方法,通过其搜寻最佳解决方案,得到信息素的初始值。通过细菌趋化发现可行的解并反馈为初信息素。然后,利用蚁群算法搜寻全局最优解,并将其应用于边缘检测。图 5为HT+ACO+BC算法的检测边缘效果,从图中发现,其效果更为优异,能较好满足人眼识别系统。HT+ACO+BC算法在结合了ACO+BC算法的优势的基础上,通过HT能优化边界描述中的间隙,相对不受噪声的影响。而基于HT+ACO中初信息素的效果不显著,收敛慢。此外,ACO算法中正反馈机制虽然能提高算法的寻优能力,但它使算法呈现停滞行为,即一旦得到局部最优解,算法就会终止,从而无法得到全局最优解。

Fig.2 Original images 图 2 原始图像
Fig.3 Edge detection results of HT + ACO algorithm 图 3 HT+ ACO边缘检测结果
Fig.4 Edge detection results of BC +ACO algorithm 图 4 BC+ACO边缘检测结果
Fig.5 Edge detection results of HT+BC+ACO algorithm 图 5 HT+BC+ACO边缘检测结果

为测试所提算法的效率,借助Matlab对各算法进行了测试,以记录各算法检测图像边缘所需要的耗时。测试环境为:Intel i3 3.30 GHz,32位,4 GB内存,Windows7的PC机。表 1表 2分别是以图 2(a)为对象,在不同的步长和蚂蚁数量情况下,HT+ACO, BC+ACO以及HT+ACO+BC算法的检测耗时统计结果。从表 1表 2中看出,随着步长的增加,蚂蚁数量的增多,所需检测时间逐步增长。在步长和蚁群数量相同情况下,本文提出的BC+ACO算法对应的检测耗时要短于HT+ACO, HT+ACO+BC算法。在步长为25时,BC+ACO的耗时比HT+ACO减少了42.55%,比HT+ACO+BC减少了61.78%。在蚁群数量为3 200时,BC+ACO的耗时比HT+ACO与HT+ACO+BC算法分别减少了33.72%、26.56%。这是因为基于HT+ACO算法由于初始时刻信息素的缺乏,初始时刻信息素积累时间长,从而大幅增加了检测耗时。基于HT+ACO算法同样存在收敛速度慢,运算时间较长的问题。而BC+ACO算法简单,能够快速获取初始信息素,节约了计算时间。HT+ACO+BC算法需要对每个像素进行HT变换,相对于BC+ACO算法,其运行时间显著增加。

表 1 不同移动步长下的算法检测耗时 Table 1 Detection time-consuming under different moving steps
表 2 不同蚂蚁数量下的算法检测耗时 Table 2 Detection time-consuming under different ant numbers

为准确评价检测性能,采用Canny的三项准则表示,分别为:信噪比、定位精确度、单边响应,定义如下[14]

信噪比(Signal to Noise Ratio,SNR)表示边缘检测的正确性。一般而言,SNR越大,真实边缘越多。

${R_{SN}} = \frac{{\left| {\int_{ - W}^W {G( - x)f(x)\,{\rm d}x} } \right|}}{{\sigma \sqrt {\int_{ - W}^W {{f^2}(x)\,{\rm d}x} } }}$ (22)

式中:$f(x)$为滤波响应;$G(x)$为边缘信号;$\sigma $为噪声均方差。

定位精确度(Location,L)为得到的边缘与理想边缘的差异,通常,L值越大,精确度越高。

$L = \frac{{\left| {\int_{ - W}^W {G'( - x)f'(x)\,{\rm d}x} } \right|}}{{\sigma \sqrt {\int_{ - W}^W {{{f'}^2}(x)\,{\rm d}x} } }}$ (23)

式中$G'( - x),f'(x)$依次为$G( - x),f(x)$的一阶导数。

单边响应:对单个边缘的响应要尽可能少,抑制虚假边缘。对此,为满足只有一个像素响应,响应函数的零交叉点距离$D(f)$满足:

$D(f) = \pi {\left\{ {\frac{{\int_{ - \infty }^\infty {{{f'}^2}(x){\rm d}x} }}{{\sqrt {\int_{ - \infty }^\infty {{{f''}^2}(x){\rm d}x} } }}} \right\}^{1/2}}$ (24)

D(f)越大,则伪边缘数量越少。

表 3表 4分别为基于HT+ACO, HT+ACO+BC以及本文算法(BC+ACO)对图 2(a)图 2(b)边缘检测的定量评价结果。从表 3表 4中看出,在Canny的三项准则中,所提算法与HT+ACO+BC算法得到的信噪比、定位精确度与单边响应客观评价效果最优,表明提出的边缘检测算法性能具有一定优势。但HT+ACO+BC算法由于采用了HT变换,其检测精确度最高,优于所提算法。原因是本文提出BC+ACO组合方法,具有很强的鲁棒性与全局搜索能力,能够很好地抑制噪声。基于HT+ACO+BC算法中的Hough变换可用于图像信息的提取和转换,对信息素矩阵和阈值的确定有促进作用,从而有效改善检测精确度。

表 3 图 2(a)客观评价结果 Table 3 Objective evaluation results of Fig.2(a)
表 4 图 2(b)客观评价结果 Table 4 Objective evaluation results of Fig.2(b)

为进一步测试算法的性能,在图像中添加噪声,测试算法的抗噪性。图 6(a)为Gaussian污染的“Lena”,其噪声方差为20。图 6(b)~(d)依次为基于HT+ACO, BC+ACO, HT+ACO+BC得到的边缘结果。从图 6中看出,图 6(b)中得到了人脸主体轮廓特征,但一些细节特征和背景信息基本上无法看清楚。图 6(c)~(d)中可看出,得到的边缘清晰,完整性较好,能够准确分辨出脸部“眼睛”、“鼻子”、“嘴巴”等部位,“头发”也能够较好显示。从图 6得知,本文算法与HT+BC+ACO算法的抗噪性优于HT+ACO算法,具有良好的噪声抑制能力。

Fig.6 Noise image test 图 6 噪声图像测试

综合上述测试实验发现,虽然HT+ACO+BC方法具有最高的边缘检测精确度,所提算法(BC+ACO)也具备较高的精确度,与HT+ACO+BC方法具有相近的水平,二者的差距较小,但HT+ACO+BC方法由于增加了计算量,检测效率明显低于所提算法。

4 结论

本文将细菌趋化性与蚁群优化算法相结合,弥补了蚁群算法缺乏初始信息素的缺点。本文通过细菌趋化性找到最佳解决方案,用于产生信息素的初始值,提高了算法的优化速度和准确度。将改进的蚁群算法用于边缘检测,验证了算法的有效性。结果表明,改进的细菌趋化蚁群算法具有更好的边缘连续性和更清晰的边缘,甚至可以准确地检测微小的位置。

作为一种新的改进蚁群算法,参数设置及其理论证明尚在探索中,有待进一步研究。此外,用于图像边缘检测的改进算法还处于起步阶段,后续需要进一步验证。

参考文献
[1]
张雄美, 易昭湘, 蔡幸福. 基于多尺度信息融合的SAR图像建筑物提取[J]. 太赫兹科学与电子信息学报, 2018, 16(3): 129-135. (ZHANG Xiongmei, YI Zhaoxiang, CAI Xingfu. Building extraction from SAR image based on multi-scale information fusion[J]. Journal of Terahertz Science and Electronic Information Technology, 2018, 16(3): 129-135.)
[2]
张经宇, 滕建辅, 白煜. 医学图像边缘检测Levy-DNA-ACO算法研究[J]. 计算机工程与应用, 2018, 54(8): 14-20. (ZHANG Jingyu, TENG Jianfu, BAI Yu. Research on levy-DNA-ACO algorithm for medical image edge detection[J]. Computer Engineering and Applications, 2018, 54(8): 14-20.)
[3]
YUAN Suzhen, SALVADOR Venegasandraca, WANG Yuchan. Quantum image edge detection algorithm[J]. International Journal of Theoretical Physics, 2019, 58(9): 2823-2833. DOI:10.1007/s10773-019-04166-9
[4]
涂亮杰. 基于改进蚁群算法的果园移动机器人路径规划研究[D]. 衡阳, 湖南: 南华大学, 2018: 16-35. (TU Liangjie. Research on path planning of orchard mobile robot based on improved ant colony algorithm[D]. Hengyang, Hunan, China: University of South China, 2018: 16-35.)
[5]
张斌斌. 基于蚁群优化分数阶PID的BUCK充电电路控制算法研究[D]. 合肥: 合肥工业大学, 2018: 11-26. (ZHANG Binbin. The research of BUCK circuit based on ant colony algorithm fractional PID controller[D]. Hefei, China: Hefei Polytechnic University, 2018: 11-26.)
[6]
杨高伟. 改进蚁群优化算法的图像边缘检测[J]. 现代电子技术, 2018, 41(3): 50-53. (YANG Gaowei. Image edge detection based on improved ant colony optimization algorithm[J]. Modern Electronics Technique, 2018, 41(3): 50-53. DOI:10.16652/j.issn.1004-373x.2018.03.012)
[7]
何拥军, 余爱民, 曾文权. 霍夫变换耦合蚁群优化图像边缘提取算法[J]. 包装工程, 2017, 38(5): 205-210. (HE Yongjun, YU Aimin, ZENG Wenquan. The image edge extraction algorithm based on Hough transform coupling ant colony optimization[J]. Packaging Engineering, 2017, 38(5): 205-210.)
[8]
张立毅, 肖超, 费腾. 基于细菌觅食的改进蚁群算法[J]. 计算机工程与科学, 2018, 40(10): 1882-1889. (ZHANG Liyi, XIAO Chao, FEI Teng. An improved ant colony optimization algorithm based on bacterial foraging[J]. Computer Engineering & Science, 2018, 40(10): 1882-1889.)
[9]
贾翠玲, 徐明娜, 王利利. 基于混合细菌觅食和蚁群算法的机器人路径规划研究[J]. 制造业自动化, 2013, 35(8): 65-69. (JIA Cuiling, XU Mingna, WANG Lili. Research on the path planning for robot based on the hybrid bacteria foraging and ant colony algorithm[J]. Manufacturing Automation, 2013, 35(8): 65-69. DOI:10.3969/j.issn.1009-0134.2013.08.020)
[10]
张立毅, 王迎, 费腾. 混沌扰动模拟退火蚁群算法低碳物流路径优化[J]. 计算机工程与应用, 2017, 53(1): 63-68, 102. (ZHANG Liyi, WANG Ying, FEI Teng. Research on low carbon logistics routing optimization based on chaotic simulated annealing ant colony algorithm[J]. Computer Engineering and Applications, 2017, 53(1): 63-68, 102. DOI:10.3778/j.issn.1002-8331.1503-0167)
[11]
张海南, 游晓明, 刘升. 动态调度策略与竞争机制融合的蚁群优化算法[J]. 微电子学与计算机, 2019, 36(7): 36-42. (ZHANG Hainan, YOU Xiaoming, LIU Sheng. Ant colony optimization algorithm based on dynamic scheduling strategy and competition mechanism[J]. Microelectronics & Computer, 2019, 36(7): 36-42. DOI:10.19304/j.cnki.issn1000-7180.2019.07.008)
[12]
CLMENCE Roggo, CRISTIAN Picioreanu, XAVIER Richard. Quantitative chemical biosensing by bacterial chemotaxis in microfluidic chips[J]. Environmental Microbiology, 2018, 20(1): 241-258. DOI:10.1111/1462-2920.13982
[13]
CLARK Adam, HILLEBRAND Helmut, HARPOLE Stanley. Scale both confounds and informs characterization of species coexistence in empirical systems[J]. The American Naturalist, 2019, 194(6): 128-139.
[14]
SANGEETHA P D. FPGA implementation of cost-effective robust Canny edge detection algorithm[J]. Journal of Real-Time Image Processing, 2019, 16(4): 957-970. DOI:10.1007/s11554-016-0582-2