曹春萍, 梁 慧
(上海理工大学 光电信息与计算机工程学院,上海 200093)
边缘是图像的重要特征之一,包含了大量的图像信息,为人们描述或识别目标以及解释图像提供了一个重要的特征参数.边缘检测问题一直是数字图像处理领域的研究热点和焦点问题.自从1959年人们开始对图像边缘检测方法进行研究以来,产生了许多边缘检测方法.如Roberts算子、Sobel算子、Prewitt算子、Kirsch 算子、Laplacian 算子等,这些经典的边缘检测方法是对图像的像素点进行一阶微分运算,计算出图像的梯度幅度信息,并根据设定的阈值判断是否是边缘.但是这些算法容易受到噪声的影响,当图像边缘灰度变化不明显的时候,阈值设定不准确,容易导致图像边缘检测不理想或者检测不出来,结果丢失很多重要的细节.近些年,国内外专家根据蚁群算法的离散型、正反馈性和并行性特点,将蚁群算法应用于数字图像处理的领域,并在获取图像边缘的细节方面取得了一定的研究进展.但是,传统基于蚁群算法的图像边缘检测存在缺陷:由于噪声与边缘都处在图像中灰度发生突变的部分,因此蚂蚁搜索过程中选择噪声点与选择边缘点的概率是相同的,未能有效抑制噪声;要得到完整的边缘需要众多蚂蚁经过大量循环计算,耗时长.本文针对以上问题,提出一种改进的蚁群算法进行图像边缘检测.在该方法中,对蚁群算法中启发式信息值的计算进行了改进,使其能更好地引导蚂蚁向边缘节点进行移动,节省时间.另通过引入模糊C 均值,计算出一个信息素阈值,利用信息素阈值判断信息素矩阵中的点是否是边缘点.这种算法经试验证明不仅能够避免直接利用蚁群算法进行边缘检测造成的缺陷,而且能够快速精确地检测出图像的边缘,并能有效地抑制噪声.
蚁群算法来源于蚂蚁在寻找食物过程中发现路径的行为,是一种模拟进化算法.观察研究发现,蚂蚁个体之间是通过在其所经过的路径上释放一种称为信息素的物质来进行信息传递的.随后的蚂蚁不仅能检测出该物质的存在及其强度,而且根据信息素的强度来指导自己前进的方向;经过蚂蚁越多的路径其信息素就越强,同时信息素也会随时间的推移而逐渐挥发[1].因此,某一路径上走过的蚂蚁越多,则后来者选择该路径的概率就越大.同时蚁群还能够适应环境的变化,当蚁群的运动路径上突然出现障碍物时,它们也能很快地重新找出一条最优路径,最终整个蚁群会找出最优路径.蚂蚁这种群体行为表现出了一种信息正反馈现象.蚂蚁个体之间就是通过这种信息交流寻求通向食物源的最短路径.蚁群算法正是基于这样的生物运动优化机制的思想,即通过个体之间的相互协作和信息交流最终找到最优解.
蚁群算法应用于边缘检测的原理是将图像抽象成一个无向图,然后将蚁群蚂蚁随机放置到图中,各个蚂蚁将根据顶点信息素强度和启发式引导函数求得的概率从其8个领域顶点中选择一个作为下一个的目标位置,通过多次循环迭代最终使大多数蚂蚁集中到图像边缘上[2],具体过程如下:
a.数学模型
设要检测的图像为灰度图像I(i,j),大小为M×N.顶点表示蚂蚁所在的具体位置,边表示蚂蚁要走的路径.
b.初始化
在图像中随机放置m个蚂蚁,初始化各参数变量和像素上的信息素初值.
c.蚂蚁路径的选择
每个蚂蚁从其8个邻域像素中根据概率大小选择其一作为下一步的目的位置,选择概率值的计算式为
式中,i为第k个蚂蚁的初始位置;j 为蚂蚁下一步的位置;τij(t)为t时刻路径(i,j)上的信息素强度;ηij为顶点i 到j 处的启发信息,其值通常被定义为顶点i到j 之间的距离的倒数,即ηij=1/dij;为第k个蚂蚁已经访问过的路径集合.
d.信息素的更新
蚂蚁每移动一步,都要对顶点的信息素强度进行更新,更新方法为
式中,ρ为信息素挥发系数,通常的取值范围为[0,1];Δτij(t)为蚂蚁从顶点i移动到j 处释放的信息素增量.
e.终止条件
蚂蚁在完成预定的迭代次数之后,结束算法,并将每个像素的信息素强度值和预先设定的阈值进行比较,判定是否是边缘.
从以上算法过程可以看出,在整个蚁群算法边缘检测过程中,路径节点的选择策略影响着算法的计算时间和效率[3],而终止条件中阈值的设定,则是判定是否是边缘点的关键.
但是在传统的蚁群边缘检测算法中,启发信息η作为蚂蚁路径选择的重要参数,在计算时被定义为两个顶点之间的距离倒数.这种方法在蚂蚁选择路径时,将图像像素矩阵中所有的节点看作对蚂蚁具有同等影响力.但是,将像素点的邻域矩阵转换成梯度矩阵后,可以看出邻域中像素节点对蚂蚁产生的影响不是等价的[4].在算法的终止条件中,是将更新后矩阵中的每个像素的信息素强度值和预先设定的阈值进行比较,判定是否是边缘.其中,这个阈值在目前很多研究算法中都是人为根据经验计算出一个阈值.但是,由于真实图像的复杂性和模糊性,导致人为阈值取值不够准确科学,最终导致对图像边缘的错误定位.
经过以上分析,本文提出了一种改进的蚁群边缘检测算法:首先,针对启发式信息值在蚂蚁路径选择中的重要作用和传统蚁群算法中存在的不足,在现有的蚁群路径选择方法中,对启发式信息值的计算方法进行改进;其次,在执行完蚁群算法完成信息素矩阵更新之后,基于新矩阵利用模糊C 均值算法计算出阈值,以此阈值进行判定一个像素点是否是边缘.
在传统的蚁群算法中,蚂蚁的移动主要是由启发式信息值决定的(即ηij),其值通常被定义为顶点i到j 之间的距离的倒数.但是,在二维图像中,像素节点的梯度能够更好地反应边缘信息,因为图像的边缘像素点具有较高的梯度值,可以引导蚂蚁在其节点邻域中向边缘节点移动,从而检测到完整的边缘.因此,在传统蚁群算法的基础上,对蚂蚁节点选择的启发式信息值计算方法进行改进:利用邻域中节点的梯度值计算得到启发式信息值,从而更加准确地引导蚂蚁对边缘节点的选择.启发式信息值的计算式为
式中,n为邻域中节点的个数;Gi为节点i 在邻域中的梯度值.
传统的蚁群算法在最后确定是否是边缘点的阈值时都是人为计算出一个阈值用以区分边缘点和非边缘点,但是,由于真实图像的复杂性和模糊性,导致阈值取值不够准确,图像边缘点和非边缘点区分不精确,最终导致对图像边缘的错误定位.
模糊C 均值算法具有处理不确定性问题的良好能力,既能认识到事物的明晰性状态,又能认识事物的模糊性状态,在很多领域得到广泛应用.本文应用模糊C均值的以上特性,对蚁群算法中阈值的计算进行改进:蚂蚁在进行过迭代计算并完成所有节点的信息素更新工作之后,形成了一个新的信息素矩阵,针对这个矩阵利用模糊C 均值算法进行模糊聚类划分,并计算出矩阵中边缘类和非边缘类的聚类中心值,根据两个聚类的中心值计算出阈值,作为边缘节点和非边缘节点的划分标准.
2.2.1 模糊C均值
模糊C 均值算法(FCM)是一种基于目标函数的模糊聚类方法,其原理如下:
设数据集X={x1,x2,…,xn,}∈Rs,X 是一个s维的欧式空间中n个样本点的数据集合.用μik表示样 本 点xk与 样 本 子 集Xi的 隶 属 度,μik ∈[0,1],用矩阵U 来表示模糊聚类矩阵.设Vc×n是所有c×n阶矩阵集合,则数据集X 进行模糊C 划分的方法为
式中,设V={v1,v2,…,vn}为各类的聚类中心,vi∈Rs,1≦i≦c.
FCM 的函数目标定义为
式中,J(U,V)为各聚类中数据样本点到聚类中心的加权距离平方和;m∈[2,∞]表示模糊指数;dikA表示第k个样本到第i类的距离,即
式中,xk为第Rs空间中的k个样本;xk-vi为样本点xk到聚类中心vi的欧氏距离;A 为单位矩阵.
由以上方程式可知,求出目标函数的极小值即可得出聚类划分准则,进而对聚类进行合理的划分.换言之,就是通过迭代寻找聚类中心vi和隶属度函数μik,使得模糊目标函数达到最小,以实现样本集合X 的最佳模糊C 划分.FCM 采用如下迭代优化方案使模糊目标函数达到最小:
a.设迭代计数器b=0,迭代停止阈值ε,指定聚类类别数为c(0<c<n),其中n是待聚类样本点数,U0表示初始化隶属矩阵(U0值为在[0,1]间的随机数),满足式(4)中的约束条件;并选择模糊指数m(m>1);
b.根据式(8)更新c个聚类中心矩阵Vb+1,其中
d.根据式(6)计算模糊目标函数,如果Jb-Jb+1≤ε,则输出模糊隶属矩阵U 和聚类中心V,并停止算法;否则令b =b+1,转向执行b步骤.
通过以上步骤,可以得出各个聚类中心V的值.
2.2.2 基于模糊C均值的蚁群阈值的计算
利用蚁群算法计算得到一个新的信息素矩阵X,矩阵中的节点可分为两类:边缘节点类和非边缘节点类,即聚类的数目为2[5].本文利用模糊C 均值方法判定信息素矩阵中每一个节点针对这两类的隶属度,并最终计算出聚类中心,根据各聚类中心计算出阈值用来判断一个节点是否是边缘节点.基于模糊C 均值的蚁群阈值计算步骤如下:
a.将矩阵X 进行模糊C 划分,代入式(5)~式(7)中;
b.根据式(8)和式(9)计算聚类中心V,其中,c=2;
c.迭代完成之后得到边缘节点类和非边缘节点类中心的值分别为v1和v2,则阈值T 的计算式为
然后根据阈值进行对信息素矩阵中的节点进行判断:如果节点的信息素值低于阈值,则这一点为非边缘点;否则,为边缘点.
在VC 6.0环境下,运用C 语言对该算法进行实验仿真,结果如图1所示.
实验结果表明,该方法能够结合模糊C 均值和改进的蚁群算法的优势,避免了传统蚁群算法在图像边缘检测时产生的缺陷.并且,该方法对噪声以及模糊图像中的边缘提取具有算法效率高、抑制噪声能力强、边缘信息全面准确等特点,能够有效精确地从噪声图像中提取物体的真实边缘.此外,模糊C均值算法在处理模糊问题方面的优势和蚁群算法的正反馈特性以及抑制噪声的能力有效的结合,使其在复杂场景中的边缘检测具有快速准确的优势.
图1 Lena图例及检测的边缘效果图Fig.1 Lena’s original image and edge map derected by using the proposed algorithm
边缘检测是图像处理的重要步骤,但传统的边缘检测算法在边缘细节、抗噪性以及耗时上存在缺陷.本文试将FCM 与改进的蚁群算法相结合,与传统的边缘检测算法相比较,该算法具有抗噪性强、边缘细节检测更精确的优点.但是由于蚁群算法需要进行迭代运算,在图像很复杂的情况下,所需时间较长,需要改善.在进一步的研究中,将对整个算法的效能做深入的研究,以达到更加快速精确的目的.
[1]Dorigo M,Maniezzo V,Colorni A.Ant System:optimization by a colony of cooperating agents[J].IEEE Trans On System,Man,and Cybernetics,1996,26(1):29-41.
[2]Tian J,Yu W Y.An ant colony optimization algorithm for image edge detection[C]∥2008IEEE Congress on Evolutionary Computation(CEC).Hong Kong,2008:751-756.
[3]魏伟波,芮筱亭.图像边缘检测方法研究[J].计算机工程与应用,2006(30):88-91.
[4]于天河,郝富春.红外图像增强技术综述[J].红外与激光工程,2007(S2):335-338.
[5]J.罗西平,田捷,诸葛婴,等.图像分割方法综述[J].模式识别与人工智能,1999,12(3):300-312.