基于SVM和改进区域生长法的桥梁裂缝分割算法

2023-01-09 06:58:12贺福强纪家平
公路交通科技 2022年11期
关键词:灰度滤波像素

何 昊, 贺福强, 谢 丹,纪家平

(贵州大学 机械工程学院,贵州 贵阳 550025)

0 引言

随着我国交通的高速发展,桥梁的数目日益增多,桥梁的安全问题得到了巨大的关注。由于桥梁状况的检测手段多为人工检测,效率非常低,检测的准确性也很难得到保证。贵州作为山区,其桥梁的数量已经达到20 000多座,光靠人工检测会浪费许多的人力物力,开发桥梁缺陷自动检测系统能很好的解决这一难题。其中裂缝是桥梁的主要缺陷之一,裂缝的分割是完成自动检测的关键技术,裂缝分割的准确性[1]决定了后续裂缝长度、宽度等特征分析和裂缝分类的可靠性。

近年来,国内外学者提出了很多的裂缝检测算法。Frangi等[2]提出基于使用多尺度二阶局部结构-海森矩阵的特征值来构建响应函数,能够极大增强线性结构,但对于噪声十分敏感,滤波需要对图像平滑处理。Tsai等提出了一种评分指标客观定量的评价分割性能。Sorncharean等[3]针对不均匀光照和强纹理的图像,将图像分为网格单元,通过比较裂纹单元的特征和预先设置的阈值,识别出裂纹单元和非裂纹单元,Yun等[4]提出了一种基于对比度增强和多重自适应滤波相结合的图像预处理方法,提高了背景噪声的去除效果,结合改进的Sobel算子过滤孤立噪声点,提取裂纹边缘信息,但对信噪比低的图像提取效果较差。李灏天等[5]提出了一种基于双边滤波的改进Frangi滤波,相较于传统frangi滤波更能保留并增强裂缝边缘特征。Jenkins等[6]提出了一种基于CNN的语义分割算法,对图像进行像素级的分类,并提供大量道路裂缝数据集,对深度学习在裂缝分割的研究有很大的促进作用,但运算时间太长。Shu等[7]提出了一种基于轮廓线域的多方向、多层次的裂缝检测算法,利用轮廓线变换对图像进行分解,利用方向性和各向异性增强图像的奇异性。贺福强、平安等[8]提出了一种联合局部特征网格聚类和区域增长的算法来检测裂缝,根据裂缝点的空间相关性实现裂缝点聚类,并利用形状特征和结构相似性剔除区域生长后的噪声。

本研究以Bilateral-Frangi滤波、Otsu[9]预处理后的图像为基础,利用支持向量机去除非裂缝连通域,在裂缝连通域中提取高质量种子点集,对种子点进行检验保证种子点都位于裂缝区域,用筛选后的种子点进行区域生长,最后根据裂缝连通域间方向一致性和相对位置信息连接裂缝。

1 图像预处理

1.1 图像灰度化

为降低运算量,按式(1)将RGB图像转化为单通道的灰度图像。

Gray=0.114B+0.587G+0.299R,

(1)

式中B,G,R分别为RGB 3通道灰度值。

1.2 图像背景去噪及结构增强

拍摄过程中由于光照、温度、杂物、油污等原因,图像质量较差,获得的图像具有较大的背景噪声,需要对图像进行滤波去噪。增强裂缝结构,增加裂缝的对比度,减少辨识难度,能让后续的工作更好地完成。

本研究采用一种结合双边滤波的Bilateral-Frangi滤波增强裂缝结构、去噪。双边滤波[10]的原理和高斯滤波很相近,同高斯滤波一样采用周边像素的亮度值高斯分布的加权平均,但双边滤波除了考虑了像素欧式距离,还考虑了像素周围的辐射差异。相较于传统的Frangi滤波采用高斯滤波去噪,保留了相同的结构增强、去噪效果,同时保留了更多的边缘信息,双边滤波的空间域高斯核函数可以表示为:

(2)

灰度值域高斯核函数可以表示为:

(3)

双边滤波的高斯核函数表示为:

G(x,y,k,l)=G1(x,y,k,l)·G2(x,y,k,l)

(4)

式中,(x,y)为目标像素点坐标;(k,l)为卷积核的其他像素的坐标;I(x,y)和I(k,l)分别为像素点(x,y),(k,l)的灰度值;σd和σr分别为空域和灰度值域核函数的标准差。

Frangi滤波利用图像海森矩阵[11]的特征值来构建传递函数,使线性目标的像素对传递函数有较高的响应值。

海森矩阵的计算公式为:

(5)

式中,Ixx,Iyy分别为图像在x,y方向上的2阶偏导数,Ixy为图像先对x方向求偏导,再对y方向求偏导,Iyx值与Ixy相等。

结合双边滤波高斯核后图像的2阶偏导数可以表示为:

(6)

(7)

Ixy=I⊗[G(x,y,k,l)⊗▽x▽y]=

(8)

二维图像的海森矩阵H有2个特征值:λ1和λ2(λ1≤λ2),和该点特征向量方向的梯度大小成正相关,特征值越大,对应梯度越大。λ1对应特征向量方向为该点较小的梯度方向,λ2对应特征向量方向为该点较大的梯度方向。 据此构造变量:

构造相应函数:

(9)

式中,β为条形区域敏感系数;c为整体平滑系数;λ1和λ2(λ1≤λ2)为海森矩阵的特征值。经过去噪和增强后的结果如图1所示。

图1 去噪、增强结果Fig.1 Denoising and enhancement result

1.3 裂缝预分割

为方便后续裂缝区域提取,还需要对图像进行二值化处理,常用的二值化算法有:全局阈值、局部阈值、自适应阈值法、Niblack、P-分位数、迭代、熵方法、最大类间方差法等。

本研究采用(迭代、熵方法、最大类间方差法、Niblack)方法经过多组试验对比,发现迭代法和最大类间方差法虽然有大量的噪点,但基本能将裂缝区域分割出来,而迭代法耗时较长,故本研究采用最大类间方差法。最大类间方差法又名大津法(Otsu),算法假设图像被阈值分割为前景和背景,若背景和前景之间的方差越大,则分割效果越好。分割结果如图2所示,噪声比较多,并且扩宽了实际裂缝宽度。

图2 粗分割结果Fig.2 Rough segmentation result

2 裂缝区域提取

为了将预分割中的噪声去除,获得裂缝区域,本研究利用连通域的特征区别裂缝区域和非裂缝区域。提取出预分割的各连通域,计算出特征向量,采用基于支持向量机的分类方法对裂缝和非裂缝区域进行分类。将图像中8-领域像素值为255的像素邻接,记连通域为Pi,i为连通域序号。

2.1 裂缝特征

裂缝特点[12]如下:(1)裂缝像素较暗,垂直方向灰度呈亮-暗-亮。(2)裂缝方向性较强。(3)一定的线性结构。(4)裂缝长度较长。基于对裂缝特征分析,构造裂缝连通域如下特征:

(1)最小外接矩形长宽比

最小外接矩形长宽比Ts是区分细长矩形和方形的形状度量。缝一般有细长的特点,故可以利用连通域长比来区分。以连通域每一个边界线做其外接矩形,其中面积最小的外接矩形为最小外接矩形。

(10)

式中l,w分别为最小外接圆长和宽。对于部分裂缝(龟状裂纹、环形裂纹等),最小外接矩形长宽比表现不好,不能很好区分裂纹和噪声,但可以根据其他特征(面积、结构相似性、圆形度等)区分。

(2)面积(0阶矩)

利用连通域面积特征可以直接筛除大部分噪声,面积公式表示为:

S=m00,

(11)

式中,m00为连通域0阶矩;S为连通域面积(像素点数目)。

(3)圆形度

圆形度[13]是描述指定区域紧凑度、圆形度的一个指标,圆形度Tc的计算公式为:

(12)

式中,S为连通域面积;C为连通域轮廓周长;圆形度取Tc值范围0~1,当Tc越接近1时,连通域越接近圆形。圆形度和最小外接矩形长宽比在一些方面有相似,但圆形度对龟状裂纹、环形裂纹有很高的识别能力。

(4)标准差

标准差等于方差的算术平均数的算术平方根,是衡量数据波动程度的指标。在原图中裂缝区域和背景区域的的灰度值波动程度是不一样的。标准差表示为:

(13)

2.2 基于连通域基础特征的去噪

为减少运算量,可以利用连通域的部分特征去除掉图像部分噪声,考虑连通域面积、圆形度特征计算速度快,区分效果好,最终选择连通域面积、圆形度特征进行初筛选。经过多组试验,拟定的特征阈值为:

圆形度:Tc≤0.2;面积:S≥10。基础特征去噪结果如图3所示。

图3 基础特征去噪结果Fig.3 Denoising result of basic feature

2.3 基于支持向量机裂缝分类

支持向量机是一种经典的2分类模型,通过寻找一个使类别间间隔最大的超平面对数据样本进行分割。

2.3.1 训练

本研究选取56张预处理后的图像作为样本,共2 436个连通域,其中裂缝连通域152个。为了解决正负样本比例失调问题,采用SMOTE算法对正类(裂缝类)样本进行过采样添加到数据集中。计算每个正类样本x的k近邻,设置采样倍率N为2 436/152≈16,从每个正类样本x的k近邻选择N-1个近邻p。则对于每个选择的近邻p,按照式(14)构造新的正类样本。

xnew=x+rand(0,1)×|x-p| 。

(14)

获得正类新样本2 280个,正类样本共计2 432个,负类样本2 436个。将样本随机打乱,数据样本集为:

{(x1,y1)(x2,y2),…,(x4 868,y4 868)},

(15)

式中,xi为第i个连通域特征向量,xi=(Ts,S,Tc,σ),并对xi做归一化处理;yi为类标记yi∈{1,-1},yi=1时,为此连通域为裂缝区域。

以样本集{(x1,y1)(x2,y2),…,(x2 000,y2 000)}作为训练集,以{(x2 001,y2 001),…,(x4 868,y4 868)}作为测试集。通过sklearn库对训练集进行训练,采用径向基(RBF)作为核函数,采用基于网格搜索的交叉验证的方法对惩罚因子C、损失系数ε和核函数参数g进行寻优。

2.3.2 测试

将测试集样本特征数据代入训练好的SVM分类模型,将输出结果和类标记ym对比,该SVM模型在测试集上获得的正确率为98.85%。按分类结果,将非裂缝类的连通域删除,结果如图4所示。

图4 SVM分类结果Fig.4 SVM classification result

3 改进区域生长法

大多分割算法在裂缝边缘处不能取得很好的准确度,区域生长法的边缘分割效果较好,故本研究利用区域生长提取更精准的裂缝边缘。区域生长法需要预先选择种子点,人工选择种子点效率低下,种子点质量不稳定;区域生长后的图像有噪声,并且一些裂缝会不连续。针对上述问题,本研究提出一种自动选择高质量种子点的方法。然后对区域生长后的图像进行去噪、裂缝连接的后处理。

3.1 种子点选择与检验

3.1.1 种子点的选择

一般来讲,种子点选择在裂缝边缘及毛刺会使后续区域生长的效果不佳,反之,选择裂缝中心作为种子点,生长效果普遍较好。故对经过SVM分类后的图像进行形态学腐蚀,以减少毛刺、排除掉裂缝边缘,获得裂缝绝对区域。

为保证种子点与ROI的相似性,选择的种子点像素值应该靠近ROI像素值均值。像素值要求如下:

(16)

3.1.2 种子点的检验

如果所选择的种子点在绝对的裂缝区域,那么以种子点为中心,沿着裂缝垂直方向各像素的深度值大致呈高-低-高的形态。计算出种子点在0°,45°,90°,135°方向上的深度变化,判断其变化是否呈高低高形态。种子点左右两侧r个像素的灰度平均值分别为:

(17)

各方向的灰度变化为:

(18)

深度形态变化判定:

max(dw)≥T1。

(19)

裂缝方向性判定:

max(dw)-min(dw)≥T2,

(20)

式中,I(u)为检测模板中第u个像素的灰度值;w=1,2,3,4,分别代表0°,45°,90°,135°方向;mwm为w方向两侧的最小灰度值;T1,T2分别为形态变化阈值和方向性阈值。如果种子点不满足深度形态变化判定或者方向性判定,则去除该种子点。结果如图5所示,局部细节图如图6所示,方框内为展示的种子点。

图5 种子点集示意图Fig.5 Schematic diagram of seed point set

图6 局部细节Fig.6 Local details

3.2 区域生长

区域生长的思想就是把领域(4领域、8领域等)的相同性质化为一个区域。首先顶出种子地点集中一个种子点作为生长的开始,然后将种子点邻域内满足相似准则要求的像素点合并到种子的区域,将这个区域的像素都作为种子点加入种子点集,在种子点集中重新顶出一个种子点,继续进行生长,直到种子点集中没有种子地安,生长结束,所有顶出的种子点像素作为生长的区域。上文已经选择好种子点集,相似准则为:

|gray(seed)-gray(4_neibour)|≤Thresh,

(21)

式中,gray(seed)为本轮种子点的灰度值;gray(4_neibour)为其4邻域各点的像素值;Thresh为设置的阈值。

区域生长的具体流程如下:

(1)将各个连通域选择的种子点集坐标放入种子点集seeds。

(2)顶出种子点集中的一个种子点,对种子点8邻域的像素点进行相似准则判断;满足相似准则条件的点,视为种子点放入种子点集seeds。

(3)将顶出的种子点存入种子集S。

(4)如果种子点集内没有元素,则跳到步骤(5);如果种子点集中还有元素,则跳到步骤(2)。

(5)生成一张和输入图像长宽一致,像素值全为0的图像I。

(6)将图像I中对应种子集S坐标的像素值置为255,得到分割图像I′。

获得的图像有毛刺,并且有些断连。但相对于预处理,裂缝没有被扩宽,边界处的分割更准确,区域生长后的结果如图7所示。

图7 区域生长结果Fig.7 Regional growth result

3.3 裂缝连接

经过区域生长后的裂缝由于噪声的影响,会出现毛刺、空洞甚至裂缝断裂的情况,故需要对区域生长后的裂缝图像进行去噪和裂缝连接。本研究首先对经过区域生长后的裂缝图像进行形态学开运算处理去除毛刺、再进行形态学闭运算去除空洞,过滤掉面积小于10的孤立区域。然后根据连通域之间的方向性和位置信息对裂缝进行连接。

经过区域生长后的裂缝存在的毛刺般比较细,空洞比较小,形态学开运算只需要对很小的结构元就能剔除毛刺和空洞。但开运算也会过滤掉本来相连接的细小裂缝,再加上区域生长的局限性所产生的裂缝不连续,对裂缝进行连接就变得更加重要了。

本研究根据裂缝区域间方向一致性和相对位置距离来连接裂缝。

上文中得到各最优拟合椭圆的旋转角为θi;相邻的裂缝区域Pj最优拟合椭圆的旋转角为θj;lij为裂缝区域Pi和Pj的最近距离。当两个裂缝连通域生长方向基本一致并且距离也比较近时,就可以判定两裂缝区域需要连接,否则不连接。当满足式(22)时,将距离最近的两个像素直接连接,线宽为3。

(22)

4 试验与分析

对20张包括各种裂缝的图像进行检测,利用labelme对图像进行人工标注。

4.1 算法参数

算法需要确定深度形态变化判定阈值T1、裂缝方向性判定阈值T2、区域生长阈值Thresh、像素均值偏置a、检测模板半径r这5个参数。经观察,多数裂缝的宽度为4~6,要尽可能避免检测模板未跨越裂缝,需要满足2r+1>16,考虑到r越小灵敏度越好,合理选择T1=4,T2=3,经过试验比较,当检测模板半径r=8时取得较好结果。此外,由于选择的一系列点作为种子点,严格的生长条件也能获得不错的边界,但连续性受影响,综合考虑选择Thresh=5。为保证种子点与ROI的相似性,又尽可能多保留像素作为种子点,设置a=10。

4.2 试验结果

选取的20张不同类型的裂缝图像作为试验图像,图像背景包括渗水、混凝土砂浆黏结等干扰,图像尺寸为1 024×1 024像素。测试平台硬件处:Intel(R) Core(TM) i5-8500 CPU @3.00GHz; 安装内存(RAM): 16.0GB; 操作系统: Ubuntu 16.04,软件编程语言: Python。

本研究分别对分水岭法[14]~[15]、文献[16]~[17]的FFA算法、本研究算法、Frangi滤波后进行基础特征滤。

图8中,图8(a)为对应图像的人工标注图像,图8(b)为对应图像分水岭算法分割结果,图8(c)为对应图像FFA算法分割结果,图8(d)为对应图像本研究算法分割结果,图8(e)为对应图像算法F的分割结果。从图中对比可以看出本研究算法由于使用SVM预先选出裂缝区域,误判较少,噪声较少;区域生长法的边缘分割较准确。

图8 各算法分割结果对比Fig.8 Comparison of segmentation results obtained by different algorithms

对比标注图像,计算分割图像各算法的准确率A、精确率P、召回值R,F1值[18],进行分割效果客观比较。

准确率:

(23)

精确率:

(24)

召回率:

(25)

F1值:

(26)

式中TP,TN,FP,FN分别为正类判定为正类数目、负类判定为负类数目、负类判定为正类数目、正类判定为负类数目。

根据各算法分割结果计算的准确率、精确率、召回率、F1值绘制折线图。由于分水岭算法结果较差,为更好显示折线图细节,不展示分水岭评价对比。各算法分割结果评价如图9所示,图9(a)为各算法准确率图,图9(b)为各算法精确率图,图9(c)为各算法召回率图。

图9 各算法分割结果评价Fig.9 Evaluation of segmentation result obtained by each algorithm

从图9可以看出,本研究算法在准确率、精确率、F1值方面表现较好,并且波动较小;在召回率方面,算法F较本研究好。因为在本研究算法中,召回率表示正确预测的裂缝点占总的裂缝点比例,算法F在增加TP数目同时拓宽了实际裂缝,虽然实际效果并不好,但能获得较好召回率。

表1 各算法性能比较Tab.1 Comparison of performance of different algorithms

从表1可以看出,本研究算法在准确率、精确率、F1值优于其他算法,召回率均值上表现不如算法F。本研究算法各指标均方差都最小,说明本研究算法波动较小,泛化更好。

5 结论

(1)本研究针对复杂背景下的裂缝,提出裂缝分割算法,进行了Bilateral-Frangi滤波、支持向量机训练、种子点集选择、区域生长、去噪、裂缝连接。经过测试,本研究算法在准确率、召回率和F1值方面表现良好,总体上优于其余3种算法。

(2)本研究对于各种裂缝有更好的泛化性,但运行速度不够理想,可以利用多线程等手段加速运行速度。

(3)裂缝人工标注具有主观性,标注没有形成标准,所测结果随标注不同而表现不同,后续可以对标注标准进行研究。由于背景和裂缝种类繁多,单一图像包含信息有限,可以进一步结合更多信息,开发新的裂缝分割方法。

猜你喜欢
灰度滤波像素
赵运哲作品
艺术家(2023年8期)2023-11-02 02:05:28
采用改进导重法的拓扑结构灰度单元过滤技术
像素前线之“幻影”2000
基于灰度拉伸的图像水位识别方法研究
高技术通讯(2021年3期)2021-06-09 06:57:48
“像素”仙人掌
基于最大加权投影求解的彩色图像灰度化对比度保留算法
自动化学报(2017年5期)2017-05-14 06:20:56
基于灰度线性建模的亚像素图像抖动量计算
高像素不是全部
CHIP新电脑(2016年3期)2016-03-10 14:22:03
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
遥测遥控(2015年2期)2015-04-23 08:15:18