李 鹏,李 强,3,马味敏+,蒋 威
(1.南京信息工程大学 江苏省气象探测与信息处理重点实验室,江苏 南京 210044; 2.南京信息工程大学 电子与信息工程学院,江苏 南京 210044; 3.杭州市气象局,浙江 杭州 310001)
传统的人工检测路面病害的效率低下,成本较高,且具有一定的安全隐患。因此,传统图像处理分析已被广泛应用于路面裂缝识别。Oliveira等[1]基于像素细化突出的裂纹种子,迭代二值像素识别裂纹。Amhaz等[2]通过最小路径提取裂缝骨架,并设置权重进行细化完成分割。Quintana等[3]根据Hough变换的特征定位感兴趣的区域,然后结合局部二进制模式将裂缝图像分割成不重叠的小网格单元,提取边缘纹理特征获得裂纹种子以完成检测。Ahmed等[4]以图像直方图为依据,提出自适应模糊阈值的裂缝图像分割方法。李鹏等[5]采用双树双密度复小波的方法对图像子带分解,并进行直方图梯度矩阵计算分解后的子带图像阈值提取裂缝边缘。张玉雪等[6]提出了基于稀疏表示和多特征融合的路面裂缝检测算法。高尚兵等[7]通过最大类间方差法和Canny算子边缘检测,根据其最大连通性提出分割算法。王世芳等[8]提出基于多尺度脊边缘结合最小生成树算法实现了裂缝检测。上述方法虽然能有效识别裂缝,但仍然存在非均匀背景下检测效率低、准确度差以及稳定性低等问题。
K-means聚类算法[9]在图像分割中具有物理意义明确、易实现等优点,但该方法仅从像素特征考虑,容易引起分割误差。因此再从几何特征角度考虑结合区域生长算法,而区域生长的难点在于初始种子点的选择,本文通过先聚类初步分割得出聚类中心值作为区域生长种子点,再进行区域生长完成精确分割。相比传统聚类分割与区域生长分割算法,本文方法分割准确度更高,并且融合多特征解决了非均匀背景下噪声大、分割不连续等问题。
本文提出的分割算法主要由3个部分组成,分别是K-means聚类、区域生长、形态学滤波[11]。为了减少不必要的分析计算以提高效率,选择灰度化的裂缝图像[12]运用K-means聚类对裂缝目标进行粗定位,获取裂缝聚类中心点像素灰度值,结合区域生长法选择其对应的像素点作为初始种子点进行生长分割,最后形态学滤波处理精确地分割出清晰的裂缝。
K-means聚类是一种在非监督状态下寻找最优划分的迭代型聚类算法,在大规模数据处理中具有稳定性好、计算效率高等优点,因此被广泛应用于图像分割领域。K-means 聚类算法中最为核心的两个量即K和means,K指所期望聚类簇的个数,means指的是每个聚类簇的质心。该方法的基本原理是选取欧式距离作为相似度指标,通过迭代的思想将样本数据集划分为不同的类,聚类目标是使得各类的聚类平方和最小,评价聚类性能的准则函数(平均误差准则函数)达到最优,保证聚类结果类与类之间分离度最大,类内样本点最紧凑,使得聚类稳定效果好。
基于K-means聚类的路面裂缝检测从图像灰度像素特征分析,首先将路面图像按像素特征划分为3类:背景区域、噪声区域和裂缝区域,初始化K值为3。通过计算裂缝图像中每个像素点到预设初始中心的距离,动态调整聚类中心,迭代此过程直至聚类结果收敛为止,则得到最佳聚类结果。在路面裂缝聚类算法中,图像像素灰度值集合 {x1,x2,…xn} 为样本数据,K-means聚类算法是将图片聚类成K个簇,表示K类,具体算法描述如下:
(1)初始化K值,根据裂缝图像特征设定K=3,观察直方图选取合适的K个初始质心点 {u1,u2,…un};
(2)将样本中的像素灰度值按最小范数原则分配到最临近聚类,表达式为
(1)
式中:ci为样本点i到各类质心距离向量最小的聚类对应的值;
(3)重新计算每个聚类的均值作为新的聚类质心,计算公式如下
(2)
式中:uj为每个类的质心;
(4)重复步骤(2)、步骤(3)直至聚类的质心收敛;
(5)输出聚类划分,得到K个聚类及其聚类中心像素值。
K-means聚类初步地划分出裂缝类并且得到聚类中心像素灰度值,为区域分割提供稳定可靠的种子点。
区域生长是以裂缝几何纹理特征为基础的分割技术,将图像中具有相似特性的像素点集合归类形成目标区域实现分割。选取裂缝图像中满足要求的区域集合作为分割的种子集合,从种子点开始按照预设确定相似性准则(也称生长准则)生长,将种子点邻域内符合准则的像素点与生长点合并形成新的生长点,重复判断此过程,直到没有新像素纳入已生长区域时停止,至此形成裂缝分割区域。
区域生长分割的准确性主要取决于初始种子点的选择和区域生长准则。种子点能够代表裂缝目标的大部分像素性质,本文采用K-means聚类算法求出裂缝目标聚类中心像素灰度值对应的点作为初始种子点,因其与裂缝特征具有极高的灰度相似性,可以有效提高区域生长分割的精确度。将种子点与周围八邻域灰度像素点大小变化作为生长准则的评判标准,假设裂缝图像大小为M×N,G(i,j)表示点坐标为 (i,j) 的像素灰度值,给每点 (i,j) 置一个标量Fi,j,Fi,j=0表示点 (i,j) 不属于裂缝生长区域,Fi,j=1表示该点为裂缝生长点,对当前像素点 (i,j) 如果满足
S(G(i,j),G(i±1,j±1))≤T
(3)
则Fi,j=1,其中G(i±1,j±1) 表示点 (i,j) 八邻域内任一点,S(G(i,j),G(i±1,j±1)) 表示点 (i,j) 与周围八邻域点灰度值的相似程度,该算法是指两个像素点的灰度差值,T是一个阈值,经大量调试选择T=10,因此,路面裂缝的生长准则S可表示为
S∶|G(i,j)-G(i±1,j±1)|≤T
(4)
在本文提出的算法中,针对路面裂缝图像进行 K-means 聚类和区域生长分割后的图像中存在过分割和欠分割的细节问题,其中过分割的体现在于分割后的裂缝出现的部分断裂点,而欠分割的体现在于分割后的裂缝图像中存在细小的孤立噪声点。因此,为实现更好的分割效果,本文采用基于数学几何形态学上的滤波[19]。其中膨胀运算用于桥接图像分割的断裂点,而开运算可以保留裂缝边缘形态的同时有效去除不相关的噪声点。设A和B是样本Z2中的两个集合,腐蚀运算可定义为
A⊖B={z|(B)z∩Ac=∅}
(5)
式中:A⊖B表示B对A的腐蚀,Ac表示A的补集,∅是空集;膨胀运算可定义为
(6)
A∘B=(A⊖B)+B
(7)
式中:A∘B表示B对A的开运算。
本文算法采用基于RGB到YUV模型的灰度图像[13],首先初始化图像聚类个数K及其对应的聚类中心灰度值,使用K-means聚类可获取裂缝目标类,计算裂缝目标收敛的聚类中心像素值,将其对应的像素点作为区域生长算法的初始种子点,按预设相似性准则进行区域生长分割[14]。该方法将K-means聚类和区域生长相结合,融合裂缝灰度特征及几何纹理特征,再结合形态学滤波处理可以对非均匀复杂背景下的裂缝图片完成精确的分割。具体算法流程如图1所示。
图1 本文算法流程
实验中采用非均匀光照的路面裂缝图像,对以上算法进行验证。图2为裂缝图片聚类前后对比,图3为聚类前后灰度直方图对比。聚类后直方图显示图像聚成3个灰度等级的簇,灰度值最低的一类对应裂缝目标[15]。
图2 聚类前后对比
图3 聚类前后直方图对比
为了突出本文算法的优势,将本文算法与仅采用传统K-means聚类算法与仅采用区域生长算法相比,使用横向、纵向以及块状裂缝图片分割的结果如图4~图6所示。
图4 横向裂缝实验结果对比
图5 纵向裂缝实验结果对比
图6 块状裂缝实验结果对比
实验结果表明,K-means聚类算法分割结果噪声干扰大,区域生长算法因初始种子点的不确定性易产生欠分割,本文算法将二者结合后分割质量明显提升。为了进一步验证本文算法改进效果的说服力,分别对横向裂缝、纵向裂缝、块状裂缝依次进行Sobel和Canny边缘检测[16,17],如图7~图9所示。可以直观看出,Sobel和Canny边缘检测后的裂缝图像中均存在不相关的噪声点,Canny边缘检测后的裂缝中还存在裂缝细节处的断裂,信息完整度不高。相比于这两种算法,本文算法处理后的裂缝不仅较好保证了裂缝的形态信息,而且孤立的噪声点得以有效地去除,抗干扰能力远高于其它两种算法。
图7 3种算法横向裂缝分割效果对比
图8 3种算法纵向裂缝分割效果对比
图9 3种算法块状裂缝分割效果对比
通过上述对比可以从视觉上看出本文分割算法的优势,为进一步从客观角度验证本文算法的有效性,本文计算3种算法的PR曲线值和ROC曲线值作为衡量分割后裂缝图像的指标[18]。
P代表准确率,R代表召回率。Sn代表真阳性率,1-Sp代表假阳性率。计算公式分别如式(8)~式(10)所示
(8)
(9)
(10)
N代表总像素数,A为检测到的裂缝像素数,B为实际裂缝总像素数,Xi,j为分割后图像,Yi,j为取一定阈值得到的图像[19]。
取图8作为评价样本,计算3种算法的PR曲线和ROC曲线值,绘制曲线对比如图10和图11所示。
图10 3种算法的PR曲线
图11 3种算法的ROC曲线
在比较3种算法性能优劣过程中,PR曲线中计算的准确率和召回率越大,即PR曲线的下面积越大,代表算法对于裂缝分割的效果越高。而ROC曲线中,横轴的假阳性率越低,纵轴的真阳性率越高,最终的算法检测效果越好。因此可以从3种算法对比的PR曲线图和ROC曲线图直观看出本文算法的分割效果更好。经计算不同算法的PR和ROC曲线下面积见表1。
表1 不同算法的PR和ROC曲线下面积
经过对二者评价指标的计算对比,本文算法相比于 Sobel 算法和Canny算法处理,PR曲线下面积分别提高了9.06%和13.04%,ROC曲线的下面积分别提高了9.64%和11.22%。因此本文算法从客观的评价指标计算来看,比传统的检测算法,对裂缝检测分割的准确性更加优异,抗干扰能力强,鲁棒性高。
针对非均匀复杂背景下裂缝分割方法的不足,本文提出一种基于K-means聚类的路面裂缝区域生长分割算法。首先对路面图像进行K-means聚类,获取裂缝目标聚类中心值,再将其对应的点作为初始种子点进行区域生长分割,最终对其形态学滤波处理。该方法将K-means聚类和区域生长算法相结合,综合裂缝的灰度像素特征和几何特征实现分割,提高了路面裂缝检测的可靠性与准确性。实验结果表明,本文算法对不同类型裂缝均可以有效地分割,并且与传统方法相比,不同类型裂缝分割的PR和ROC曲线下面积计算结果表明,本文算法分割精度达到90%以上。