基于异步更新策略的蚁群边缘提取算法
车翔玖, 张孙旻
吉林大学 计算机科学与技术学院,长春130012

作者简介:车翔玖(1969-),男,教授,博士生导师.研究方向:医学图像分割,图像传输与信息隐藏,大数据三维可视化及其在地学和医学中的应用.E-mail:chexj@jlu.edu.cn

摘要

针对蚁群算法在提取边缘不连续以及难以搜索到弱边缘的问题提出了改进措施,利用Otsu预处理,并对信息素矩阵和启发式矩阵初始化做了改进,同时加入信息素异步更新策略和参数自适应修改来避免过早陷入停滞从而发现更多弱边缘。通过主观对比和定量分析,本文方法提取了更多的连续边缘以及弱边缘,具有更好的鲁棒性。

关键词: 计算机应用; 边缘检测; 蚁群算法; 异步更新
中图分类号:TP391.4 文献标志码:A 文章编号:1671-5497(2017)05-1577-06
Edge extraction method based on ant colony asynchronous update strategy
CHE Xiang-jiu, ZHANG Sun-min
College of Computer Science and Technology,Jilin University,Changchun 130012, China
Abstract

An ant colony algorithm with features of high robustness, distributed computing, and positive feedback, is used to solve edge detection problem. In order to prevent extracting discontinuous edges and missing weak edges by using ant colony algorithm, some improving measures are put forward. An Ostsu's method for pre-processing is proposed, the initialization of pheromones matrix and heuristic matrix is improved; meanwhile, pheromones asynchronous update strategy and parameter self-adaptive modification are applied to avoid early stagnancy. Experiments show that the proposed method can extract more continuous edges and weak edges with better robustness.

Key words: computer application; edge detection; ant colony algorithm; asynchronous update
0 引 言

边缘检测的实质是利用某种策略来提取图像中前景和背景的边界线。边缘即为图像中灰度发生剧烈变化的区域边界。图像灰度变化的梯度反映了图像灰度的变化程度, 因此经常利用图像中各像素的小范围邻域来构造边缘检测算子。常用的边缘检测算子有Sobel算子[1], Prewitt算子[2], Laplacian算子[3], Canny算子[4]。近年来, 涌现了许多新兴的算法如:基于小波变换的边缘检测算法[5], 基于模糊理论的边缘检测方法[6], 基于聚类的边缘检测方法[7], 基于群体智能的边缘检测算法。

群体智能作为人工智能的一个分支, 利用了自组织分散算法提供了动态、自组织、灵活的解决方案。因为群体智能在其大部分过程中保有随机性, 它在众多领域都提供了具有鲁棒性的解决方案, 近几年针对科学研究和工程问题, 群体智能的应用有大幅增长。

本文所使用蚁群算法作为群体智能中的经典算法之一, 最早由Dorigo[8]提出, 运用正反馈的原理和蚂蚁间分布式合作来找到最优解。作为以种群为基础寻求更佳路线的方法, 蚂蚁个体间的信息交换尤其重要, 寻找出洞穴到食物的最佳路线。由于蚁群算法的这个特性, 2005年, Bao等[9]将其应用到边缘检测中, 取得了不错的成果。2013年, Mullen等[10]提出了一种自适应变化的阈值策略, 利用每只蚂蚁的局部阈值代替全局阈值, 而且每只蚂蚁个体的局部阈值在其移动过程中都将发生动态变化, 优化了边缘检测的结果。2015年, Liu等[11]采用一种新的启发式函数, 并利用用户定义阈值的信息素更新过程, 提供一组合适的参数值进一步提高了检测精度。2016年, Dorrani等[12]在Liu的基础上对含噪声的图像实验同样取得了良好的效果, 同年, Che等[13]提出了将Otsu算法作为蚁群算法的初始化流程。

本文利用Otsu预处理, 在信息素矩阵和启发式矩阵初始化做了改进, 同时加入信息素异步更新策略和参数自适应修改来避免过早陷入停滞从而发现更多弱边缘。本文方法提取了更多的连续边缘以及弱边缘, 具有更好的鲁棒性。

1 蚁群算法概述

本文基于文献[13]的研究成果加以改进, 成功地发现了更多的连续边缘以及弱边缘。蚁群算法的基本过程如下:

N只蚂蚁被初始随机分配在若干不同的N个像素点上, 每个蚂蚁个体都有一个移动的准则, 遵循:

(1)由像素i到下一允许访问的像素点j由启发式信息及边上的信息素同时控制选取哪一像素点, 可以用函数表达。

(2)为强行制约蚁群合理地移动, 规定每个个体不能经过刚访问的像素点, 由tabu表控制。

(3)每当做完周游后, 蚂蚁个体能于经过的边残留下信息素。

τ ij(t)为像素点i与像素点j之间的信息素大小。在每次发生蚂蚁移动后, 信息素发生变化, 由于信息素有一个蒸发率, 所以有如下信息素更新准则:

τijt+n=1-ρτijt+Δτij1

式中:ρ 为从这次周游后信息素消散水平。

Δτij=k=1nΔτijk(2)

Δτijk=ηij/255, k只蚂蚁在(i, j)ηij> T0, 其他(3)

式中:Δ τijk为第k个蚂蚁个体一次移动完成时留存于像素i与像素j连接边上信息素大小; T为用户定义的一个阈值, 只允许启发式信息大于一个特定的常数值的蚂蚁释放信息素; η 为在每一时间点每只蚂蚁的可见性, 即每只蚂蚁从当前像素转移到周围8像素的能见性, 比如在像素(x, y)处:

η x-1, y-1=I(x-1, y)-I(x, y-1)

η x-1, y=I(x-1, y-1)-I(x-1, y+1)

η x-1, y+1=I(x-1, y)-I(x, y+1)

η x, y-1=I(x+1, y-1)-I(x-1, y-1)

η x, y+1=I(x-1, y+1)-I(x+1, y+1)

η x+1, y-1=I(x, y-1)-I(x+1, y)

η x+1, y=I(x+1, y-1)-I(x+1, y+1)

η x+1, y+1=I(x+1, y)-I(x, y+1)

以上各项均为取绝对值后的结果。

定义从像素i转到像素j在时刻t转移概率为:

pijk(t)=[τij(t)]α[ηij(t)]βΣs[τij(t)]α[ηij(t)]β, if(i, j)allok0, else(4)

式中:allok为第k只蚂蚁的周围8个像素点, 已走过的任意像素即tabu表中的像素点除外; α β 分别控制相对信息素路径和可见性的相对重要性, 转移几率是灰度梯度(梯度大的被选几率高, 贪婪性试探法)和信息素浓度共同作用的结果。

很显然, 阈值T是直接影响信息素路径的关键, 进而影响了算法的效果, 当T值很小时, 蚂蚁将释放大量信息素, 其中包括了很多的弱边缘, 而且提取许多背景信息或噪声信息, 不利于提取。当T值很大时, 只允许蚂蚁释放少量信息素, 导致了蚂蚁只能搜索到强边缘而忽略弱边缘, 并且出现许多不连续的边缘线。所以, 取合适的T值显得尤为重要。

文献[13]提出了一种T自适应的阈值改进措施, 代替一个用户自定义的全局阈值, T的更新策略如下:

T(t)n=T(t-1)n+1, ifηn(x, y)> T(t-1)nT(t-1)n-1, ifηn(x, y)< T(t-1)nT-, ifT(t-1)n< T-(5)

式中: T-为每次迭代之后所有蚂蚁的平均阈值; η n(x, y)为第n只蚂蚁个体在(x, y)像素点处的能见度。

2 蚁群算法的改进
2.1 图像预处理

一般地, 将彩色图像从RGB色彩表示转变为灰度图像使用的是如下公式:

Gray=0.29900* R+0.58700* G+0.11400* B

这种方法虽然将求图像的边缘问题转化为求灰度梯度的问题, 但是图像的背景与前景同样发生了变化, 保留了过多背景信息, 这将不利于蚂蚁发现真正的边缘。为了更好地提取到感兴趣区域以及消除背景, 采用了Otsu阈值分割法, 依照图像的灰度特性, 自适应地定义阈值来分割出目标图像的前景和背景。因为Otsu衡量的标准是最大类间方差, 往往能取到很好的阈值, 使得目标的前景和背景被更好地分离。本文利用Otsu方法对原始彩色图像做预处理, 得到一个二值图像, 然后将其作为蚁群算法的输入图像。

2.2 蚁群算法初始化

设输入图像是M* N的图像I, 原始K个蚂蚁分布在图像的不同像素点上。这些像素点满足梯度幅值超过特定阈值的条件, 初始候选点被选中的概率由其梯度幅值确定。概率公式如下:

Pf=GiGf(6)

式中:Gii点的梯度幅值; ∑ Gf为所有候选点梯度幅值之和。

信息素矩阵τ 0被赋予一个初值τ initτ init是由τ min限制的, 是一个大于0的常数, 目的是为了防止蚂蚁运动陷入停滞, 根据最大最小蚁群系统[14], 本文将值设为0.0001, 且τ initmin

本文对启发式信息矩阵的初始化进行修改, 由像素点(i, j)处的局部统计信息计算[15]:

ηi, j=VIi, jY(7)

V(Ii, j)=f|Ii-2, j-1-Ii+2, j+1+|Ii-2, j+1-Ii+2, j-1+|Ii-1, j-2-Ii+1, j+2+|Ii-1, j-1-Ii+1, j+1+|Ii-1, j-Ii+1, j+|Ii-1, j+1-Ii+1, j-1+|Ii-1, j+2-Ii+1, j-2+|Ii, j-1-Ii, j+1|)Y=i=1:Mj=1:NVIi, j(9)fx=λx, x0(10)(8)

式中:λ 为按情况进行选取的调整参数; Ii, j为图像I在(i, j)点处的灰度值。

2.3 增加信息素异步更新策略

当迭代次数到达一定次数之后, 蚂蚁大多趋向于走固定的路径, 不利于发现较弱的边缘。因此, 本文增加信息素异步更新策略。当所有蚂蚁个体做完当次迭代, 对整个图中所有蚂蚁个体所经过的边缘信息量按照下式再做一次全局修改:

τijt+n=1-θτijt+θ·c11

式中:θ 为信息素的衰减系数, 是(0, 1)间的某个正常数, 本文选取为0.2; c为最初信息素大小。

异步更新的作用在于, 当该蚂蚁周围有多个像素点可以到达时, 若其本次迭代已经过某条支路, 则该支路信息素将会减少, 使得个体选取该支路的可能性降低, 从而将增加探索周围其余像素点的机会, 有利于发现更多更弱的边缘, 使算法不会过早陷入停滞。

2.4 参数的自适应修改

信息启发式因子α 的大小表示信息素总量挑选此路径作用的水平大小, 也就是表示蚂蚁在移动中信息量指示个体搜寻相对作用大小, 即α 数值表示个体在搜寻最优行动轨迹时随机因子的影响力大小, α 值越大, 群体在选取之前经过边的倾向性更高, 查寻新路径倾向性将减小。然而, α 值太小时, 又容易让群体的搜寻太早发生停滞。参数初始值选取同文献[11]一样。

基于此, 本文提出了一种自适应修改策略, 当迭代次数到达一定次数时, 通过减小信息素相对影响力因子来减小信息素对该路径被选取的影响。

当发生停滞后, 按照如下方法更改蚂蚁数量K, 通过增加新的蚂蚁, 使得信息素不再是只在停滞之后的道路上才会更新, 使算法有能力继续扩大搜寻范围, 再次搜寻图像的边缘。

3 实验结果及对比

实验流程图如图1所示。

图1 流程图Fig.1 Flow chart

由于蚁群算法处理的问题都是NP完全问题, 不存在最优解, 以下初始参数选取均是实验中取得最好效果的值。

蚂蚁数量K:由于蚁群算法是群智能算法, 依赖群体之间的协作和信息传递, 蚂蚁数量越多取得效果越好, 本文设置为 MN

信息素蒸发率因子ρ :ρ 影响到整个方法收敛速度与功能。ρ 越大, 增长越快, ρ =1时, 只需一次就到达了最大阈值; ρ 越小, 收敛速度越快, 本文将其设置为0.1。

启发式因子β :β 是启发式信息在搜寻时指示个体选取最优行动轨迹的影响力, 若β 太小, 便变为纯正的任意搜寻方法, 找寻到最佳方案的可能性非常低; 若β 太大, 所搜寻到的最佳方案将会有越来越差的趋向。本文将其设置成2。

初始信息素大小:由文献[11]给出, 本实验将其设置为0.0001。

用户自定义初始阈值T:由文献[13]给出, 本实验将其设置为35。

最大迭代次数:迭代次数越大, 蚂蚁可以寻到越多路径(边缘), 由文献[13]给出, 本实验将其设置为300。

其他参数如下:信息素相对影响力因子α 变化后分别为2, 1, 0.5; λ 为1; 异步更新时的迭代次数为50; 信息素相对影响因子修改时的迭代次数为100。

3.1 主观对比

图2~图5分别为基于Lena图像以及从USC-SIPI数据集中的Peppers, House, Cameraman图像在Matlab实验环境下所得到的结果, 图中从左上至右下依次为原图, 文献[11]方法, 文献[13]方法和本文方法结果。

对比每幅图的左下和右下图像可以看出, 本文方法在文献[11]和文献[13]的基础上效果有很大的改进, 能更精确、更多地发现弱边缘, 而且, 本文方法也减少了图像中背景被归为边缘的错误, 在查准率和查全率方面都有明显提高。

图2 Lena图像及结果Fig.2 Lena pictures and results

图3 Peppers图像及结果Fig.3 Peppers pictures and results

对于有噪声的图像, 本文同样发现了了更多的弱边缘。

图6中的左图和右图分别是Lena图像加入0.02的高斯噪声和椒盐噪声使用文献[12]方法以及本文方法处理得到的结果。

图4 House图像及结果Fig.4 House pictures and results

图5 Cameraman图像及结果Fig.5 Cameraman pictures and results

图6 含噪声的Lena图像处理结果Fig.6 Results of Lena pictures with noise

3.2 定量分析

本文使用的是BSDS300数据库, 该数据库包含了彩色、灰度以及标注过的真实数据, 即边缘二值图像。基于如下指标进行评价:TP, 预测为边缘, 实际也是边缘的像素数; FP, 预测为边缘, 实际不是边缘的像素数; TN, 预测不是边缘, 实际不是边缘的像素数; FN, 预测不是边缘, 实际是边缘的像素数; TPR=TP/(TP+FN), 实际是边缘的像素被成功提取的百分比; FPR=FP/(FP+TN), 实际不是边缘的像素被错误提取为边缘像素的百分比。表1为实验结果对比。

表1 实验结果对比 Table 1 Experimental results comparison

图7图8图9中从左上至右下依次是原图, 文献[11]方法, 文献[13]方法以及本文方法处理得到的结果。

图7 Kaola图像及结果Fig.7 Kaola pictures and results

图8 Plane图像及结果Fig.8 Plane pictures and results

图9 House图像及结果Fig.9 House pictures and results

4 结束语

针对蚁群算法检测检测边缘时出现的边缘不连续以及算法易陷入停滞的问题, 提出了改进的方法, 有效地提取了更多的弱边缘和连续的边缘, 在有噪声的图像中能够得到较好的结果, 在对自然图像提取边缘方面具有鲁棒性和精确性。本文对于自然图像的实验取得了较好的结果, 但是对于特定领域的图像如医学图像, 因为其存在一些特定的病理情况或其他特殊原因, 结构边缘十分模糊, 所以很难被准确检测。对于这类图像, 蚁群算法在提取边缘过程中往往不能提取到较细的边缘特征, 以至于不能得到较精确的检测结果。

The authors have declared that no competing interests exist.

参考文献
[1] Zhao C, Deng Y. A modified Sobel edge detection using Dempster-Shafer theory[C]//International Congress on Image and Signal Processing, IEEE, 2009: 1-4. [本文引用:1]
[2] Maini R, Sohal J S. Performance evaluation of Prewitt edge detector for noisy images[J]. GVIP Journal, 2006, 6(3): 39-46. [本文引用:1]
[3] Wang X. Laplacian operator-based edge detectors[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2007, 29(5): 886-890. [本文引用:1]
[4] He X, Li J, Wei D, et al. Canny edge detection on a virtual hexagonal image structure[C]//Pervasive Computing, IEEE, 2009: 167-172. [本文引用:1]
[5] Sun J, Gu D, Chen Y, et al. A multiscale edge detection algorithm based on wavelet domain vector hidden Markov tree model[J]. Pattern Recognition, 2004, 37(7): 1315-1324. [本文引用:1]
[6] Khaire P A, Thakur N V. A fuzzy set approach for edge detection[J]. Computer Science Journals, 2013, 6(6): 403-412. [本文引用:1]
[7] Golestani H B, Joneidi M, Sadeghi M. A study on clustering for clustering based image de-noising[J]. Journal of Information Systems and Telecommunication, 2014, 2(2): 196-204. [本文引用:1]
[8] Dorigo M, Maniezzo V, Colorni A. The ant system: optimization by a colony of cooperating agents[J]. IEEE Transactions on Systems, Man, and Cybernetics, 1996, 26(1): 29-41. [本文引用:1]
[9] Bao P, Zhang L, Wu X. Canny edge detection enhancement by scale multiplication[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2005, 27(9): 1485-1490. [本文引用:1]
[10] Mullen R J, Monekosso D N, Remagnino P. Ant algorithms for image feature extraction[J]. Expert Systems with Applications, 2013, 40(11): 4315-4332. [本文引用:1]
[11] Liu X, Fang S. A convenient and robust edge detection method based on ant colony optimization[J]. Optics Communications, 2015, 353(8): 147-157. [本文引用:1]
[12] Dorrani Z, Mahmoodi M S. Noisy images edge detection: ant colony optimization algorithm[J]. Journal of AI and Data Mining, 2016, 4(1): 77-83. [本文引用:1]
[13] Che X, Wang L, Guo X. An Improved Edge Detection Method Using Adaptive Threshold[M]. Berlin: Springer, 2016: 142-151. [本文引用:1]
[14] Stutzle T, Hoos H. MAX-MIN ant system and local search for the traveling salesman problem[C]//IEEE International Conference on Evolutionary Computation, IEEE, 1997: 309-314. [本文引用:1]
[15] Zhang J, He K, Zheng X, et al. An ant Colony optimization algorithm for image edge detection[C]//Evolutionary Computation, IEEE, 2008: 751-756. [本文引用:1]