基于图像处理的裂缝量化分析
2024-04-26许守春许向阳冯宇恒
许守春 许向阳 冯宇恒
作者简介:许守春(1997-),硕士研究生,从事目标检测、语义分割等图像处理方面的研究。
通讯作者:许向阳(1970-),高级工程师,从事工业自动化、目标检测及分割方面的研究,xxy1970@126.com。
引用本文:许守春,许向阳,冯宇恒.基于图像处理的裂缝量化分析[J].化工自动化及仪表,2024,51(2):173-180;337.
DOI:10.20030/j.cnki.1000-3932.202402005
摘 要 对裂纹量化技术进行了研究,从而获取对应裂缝的长度、宽度信息。针对长度特征的量化,分析现有细化算法提取裂缝骨架的不足,提出新的删除模板与保留模板,通过模板匹配的方式消除裂纹骨架中的冗余像素,并设置合理的长度阈值消除骨架中的冗余骨刺结构,优化骨架的提取,进而获取精确的裂缝长度信息。针对裂缝宽度特征的量化,根据裂纹走向,优化最近距离法,减少计算裂缝宽度的迭代次数,提高量化效率。同时,为了获取更精确的裂缝宽度信息,结合裂缝特征和提取的骨架,采用骨架法向法获取像素级精度的裂缝宽度信息。
关键词 裂缝量化 骨架提取 最近距离法 骨架法向法 安全评估
中图分类号 TP391.41 文献标志码 A 文章编号 1000-3932(2024)02-0173-09
混凝土是各类工程建筑中使用最广泛的材料之一,但是在各种内外因素的影响下,建筑物表面会不可避免地出现裂缝[1,2]。裂缝是混凝土建筑物中最常见的结构缺陷,量化分析可以为裂缝的风险等级评估提供重要依据,为混凝土建筑的安全状况提供精确的数字化分析和参考[3],以便工作人员能够及时发现混凝土建筑物中存在的隐患,从而对裂缝进行及时检修和维护,保障建筑物的整体安全。
裂缝量化是对裂缝面积、长度、宽度等特征的获取。传统的裂缝特征量化主要通过人工使用检测工具或测量仪器完成,存在操作难度大、风险高、成本高、效率低下、对人员技术要求高等问题。随着图像处理技术的发展,目前的裂缝量化大多采用基于图像处理的方式,可以利用深度学习技术对图像中的裂缝区域进行检测,然后通过像素计算的方式获取裂缝的实际量化结果。
裂缝长度的计算大多基于裂缝的细化骨架,通过统计裂缝骨架的像素个数即可得到对应的裂缝长度信息。最简单的裂缝骨架获取方式就是取裂缝两边缘的中线作为骨架线,但是这种方式在裂缝交点处时获取两边界中点比较复杂,容易出现骨架线断裂、骨刺较多的情况。近年来的报道中,骨架的提取一般由细化操作得到,利用Pavlidis细化算法[4]、Hilditch细化算法[5]、基于索引表的细化算法[6]及Zhang-Suen细化算法[7~9]等删除裂缝图像的边缘像素,从而提取对应骨架。但是利用这些算法直接提取裂缝骨架时,总会出现裂缝的拓扑结构改变、骨架断裂、冗余像素及骨刺结构过多等情况。裂缝宽度方向一般与裂缝两边界相切,针对裂缝宽度的测量主要有最大内切圆法、最小外接矩形法[10]及最近距离法[11]等。其中,最大内切圆法通过计算裂缝最大内切圆的直径来得到裂缝的最大宽度,但由于裂缝形态不规则,这种方式得到的宽度值会比实际偏小。最小外接矩形法通过求取裂缝最小外接矩形的宽度来获取裂缝宽度,为了提高精确度可以将裂缝分为多个小段,并取各段结果的最大值作为裂缝宽度,但是该方式得到的宽度值通常会比实际偏大。最近距离法[12]一般选取裂缝左边界上的点,然后遍历图像中右边界上的点,通过计算两点之间的距离,找到右边界上与左边界当前点距离最近的点,将两点之间的连线作为该点处的宽度方向,两点间的距离即为宽度值。
综上所述,在利用细化算法提取裂缝骨架时,还需要结合特定算法并对其进行优化,从而在保持裂缝原有拓扑链接结构的前提下,获取单像素宽度的骨架,进而求取精确的裂缝长度。在计算裂缝宽度信息时,上述方法并不能很好地表达裂缝各点处的宽度方向,得到的裂缝宽度值也不精确,因此需要寻找高效的方法进行优化改进。
1 裂缝检测
在前期的研究工作中,笔者提出了图1a所示的用于檢测裂缝位置及形态的双分支分割网络DbCrackNet[13]。该网络中引入了空间金字塔池化ASPP融合不同感受野的信息,并利用注意力机制对通道和空间特征进行优化,最后将两分支的结果进行融合得到图1b所示的分割结果。
图1 DbCrackNet网络结构及对应的
裂缝分割结果
2 裂缝量化
利用分割网络检测出裂缝的位置及形态(图1b)后,即可进行裂缝量化,获得裂缝的面积、长度和宽度信息。裂缝量化示意图如图2所示。
2.1 裂缝面积
通过统计图1b裂缝分割结果中的像素个数即可得到对应裂缝的面积S。
2.2 裂缝长度
Zhang-Suen细化算法在进行骨架提取时,能够保持裂缝拐点、各分支交点处的细节连接结构,并且其计算效率较高,但是该方法提取的裂缝骨架中存在冗余像素和多余的骨刺结构。为此,笔者针对其不足之处进行优化,获取单像素宽度的骨架,通过统计骨架的像素数即可得到对应裂缝的长度。
2.2.1 Zhang-Suen细化算法
Zhang-Suen细化算法是一个经典的迭代式细化算法,其基本原理示意图如图3所示。在进行细化操作时,需要查看二值图像中当前前景像素点(P0)的8邻域(P1~P8)状态,并通过模板匹配的方式标记需要删除的像素点,当遍历完图像中所有前景像素时,统一删除标记的像素,从而获取对应的骨架结构。
图3 P0的8邻域
假设二值图像中前景即裂缝灰度值为1,背景为0。Zhang-Suen细化算法在提取骨架时反复迭代下述两个子过程,直到没有需要被删除的像素。
子过程一。对检测结果中的前景像素进行遍历,如果像素点P0同时满足以下4个条件:
2≤N(P0)≤6
S(P0)=1
P2×P4×P6=0
P4×P6×P8=0
则将其标记,并在遍历结束后将其灰度变为0,即将当前点从骨架结构中删除。
子过程二。对检测结果中的前景像素进行遍历,如果像素点P0同时满足以下4个条件:
2≤N(P0)≤6
S(P0)=1
P2×P6×P8=0
P2×P4×P8=0
则将其标记,遍历结束后将其灰度值变为0。
其中,前景像素点P0=1,N(P0)为8邻域中前景像素的个数,S(P0)为P1-P8-P1这一圈中灰度值从0变为1的次数。
当像素点满足两个子过程的条件时,P0只可能为需要被清除的边缘像素点。
利用Zhang-Suen细化算法提取图1b中最左侧裂缝的骨架,结果如图4所示。可以看出,骨架中存在较多的骨刺结构,并且在局部放大图中可以清晰地看到其斜向区域存在很多的冗余像素,没有严格满足单像素宽度的条件。
图4 Zhang-Suen细化算法提取的裂缝
骨架及局部放大图
2.2.2 冗余像素的清除
由Zhang-Suen细化算法两个子过程的条件可知,其只考虑了S(P0)=1的情况,并没有考虑
S(P0)>1的情况,这会导致骨架斜向区域中留有冗余像素,为此提出了图5所示的8邻域模板,用于删除斜向的冗余像素。
遍历裂缝骨架上的像素点,当其8邻域与图5中的模板相同时,将其标记,并在遍历结束后将被标记的所有像素点删除,经过删除模板处理后的骨架如图6所示。
图6 删除模板处理后的骨架及局部放大图
图6中,经过删除模板处理后的裂缝骨架中斜向区域的冗余像素已经清除,但是出现了骨架断裂的情况,说明删除模板存在误删骨架像素的问题。经过分析,提出图7所示的保留模板,其中P0、P0′都是骨架像素,且其8邻域都与删除模板相符,所以在删除模板遍历时都被清除,从而造成骨架断裂。为此设置保留模板,使得遍历时与删除模板匹配的P0保留,P0′被清除,从而正确消除骨架中的冗余像素。
2.2.3 骨刺的清除
经过删除模板和保留模板处理后的裂缝骨架为单像素宽度,单像素宽度的特性一方面有助于得到更精确的裂缝长度,另一方面有助于识别裂缝中的分支结构。在利用模板优化后的骨架中,N(P0)=1的为骨架端点,N(P0)=2的为骨架中间的点,N(P0)≥3的为骨架中的分支交点。
为了消除骨架中存在的多余骨刺结构,设置分支长度阈值为l,计算各分支长度lengthi,若lengthi<l,则将该分支中点的灰度置为0,即将对应骨刺结构从骨架结构中删除。骨刺删除具体流程如下:
a. 根据N(P0)=1获取骨架中的分支端点,根据N(P0)≥3获取骨架中的分支交点;
b. 取出一个端点P,寻找其8邻域内灰度为1的点P′,并以从P到P′的方向为骨架的生长方向,此时P′为骨架中间的点;
c. 观察中间点P′点的8邻域情况,找到灰度值为1的两个点,其中一个点为端点P,然后以P′到另一个点的方向作为骨架生长方向;
d. 根据步骤c沿着骨架生长方向不断遍历,直到遇到分支交点为止,此时即可得到当前分支的长度length;
e. 若length≥l,则当前分支为裂缝真实分支,将其保留,若length<l,则该分支为骨刺结构,执行删除操作;
f. 重复执行步骤b~e,直到骨架结构中的分支均判断完毕。
完成上述过程,就可以清除单像素宽度的裂缝骨架中多余的骨刺结构,得到精准的裂缝骨架(图8),然后统计当前骨架中的像素点个数,即可得到裂缝的长度Length。
图8 优化后的单像素宽度骨架及局部放大图
2.3 裂缝宽度
裂缝宽度特征包括最大宽度Width和平均宽度Width,其中Width可以根據裂缝面积S和骨架长度Length的比值直接得到。裂缝宽度方向应尽量与裂缝的两边界相切,从而较好地表达裂缝的宽度信息。
2.3.1 最近距离法
在裂缝的左边界上取点(x,y),找到右边界上与之最近的点(x,y),并以两点间的连线作为当前位置的宽度方向,利用最近距离法求取裂缝宽度:
Width=(1)
在判断左右边界点时有两种方法:
a. 提取裂缝分割结果中的所有轮廓点(x,y),判断点(x,y+1)的情况,若其值为1,则当前点(x,y)为裂缝的左边界点,反之则为右边界点;
b. 取骨架上的点(x,y),向左遍历裂缝区域,如果某一点左侧像素点的值为0,则得到左边界点,同理,可以得到右边界点。
2.3.2 最近距离法的优化
最近距离法中,左边界上的点需要与右边界上所有点计算距离后才能找到对应的宽度方向,但是右边界上的点与左边界当前点在宽度方向上的距离不会太远,计算距离时遍历所有在右边界上的点不仅耗时长而且大部分为无效计算。为此,以裂缝骨架的走向设置距离迭代阈值N,即对左边界上的每个点只需要计算N次即可找到右边界上与之最近的点,其示意图如图9所示。裂缝在小范围内只会呈现4种状态,分别为裂缝向左收缩、向左扩张、向右收缩、向右扩张。
图9中,黑色实线为裂缝边界,蓝色虚线为裂缝骨架线。通过最小二乘法拟合可以得到当前位置处的骨架斜率k,图9a、b中的k>0,图9c、d中的k<0。在图9中做左边界上的点O到右边界的横向连线(绿色虚线)和垂线(红色虚线),其中横向连线交点为Q,垂线交点为P,根据最小距离法的原理,此时垂线即表示当前的宽度方向。
当k<0时,从右边界沿Q到P(从下到上)迭代计算N次,当k>0时,从右边界沿Q到P(从上到下)迭代计算N次,如此即可减少计算最近距离时的迭代次数,达到优化最近距离法的目的。
利用优化后的最近距离法求取图1b左侧裂缝宽度的可视化结果如图10所示。
2.3.3 骨架法向法
由图10可知,使用最近距离法可以计算裂缝的宽度,但是最小距离的方向不一定与宽度方向
图10 优化后的最近距离法宽度测量结果
一致,而裂缝宽度方向一般与骨架线相切,所以采用骨架法向法求取对应的裂缝宽度。如图11所示,取骨架相邻的5个像素(x,y)(i=1,2,…,5)作为一段短裂缝,并利用最小二乘法求取骨架线方程中的参数a、b。
图11 骨架法向法示意图
最小二乘法通过最小化真实值y与拟合值a+bx的平方和来估计参数a、b的最佳值,即:
min[y-(a+bx)](2)
要使式(2)的值最小,则参数a、b的偏导数应为0,经过整理可得:
aN+b∑x=∑y(3)
a∑y+b∑x=∑xy
通过解方程组(3)即可得到直线参数a、b的最佳估计值:
=
=
则经过(x,y)的骨架法向表达式为:
y′=a′+b′x′(5)
b′=-
a′=y+x
通过最小二乘法得到裂缝骨架法线的表达式后,采用迭代式搜寻法获得裂缝骨架法线与裂缝边界的交点,如图12所示,图中黑色区域为裂缝前景,红色实线为裂缝骨架,绿色实线为O点处的骨架法线,P、Q为法线与裂缝边界交点。计算O点处的宽度时,从O点出发,分别沿当前位置处的法向正向和反向迭代,并判断当前点是否为裂缝区域,从而找到O点处宽度方向上的两个端点P点(x,y)和Q点(x,y),最后求取两点间的欧氏距离即可得到O点处的宽度WidthO。
图12 骨架法向法求取裂缝宽度示意图
按照上述方法求取骨架上每个点处的裂缝宽度,对应的可视化结果如图13所示,图中绿色线即为宽度方向,红色线为最大宽度所在位置,从图13中可以看出,骨架法向法可以更好地获取裂缝的宽度方向。
图13 骨架法向法求取裂缝宽度的可视化结果
2.4 裂缝量化结果
对分割结果(图1b)进行量化分析,结果见表1。其中Size为图片尺寸,Lzs为Zhang-Suen细化算法得到的初始骨架长度,Ltemplate为利用模板消除冗余像素后的骨架长度,Length为继续消除骨刺后的长度,S为裂缝面积,Widthmax为裂缝最大宽度,Widthmean为裂缝平均宽度。由表1可以看出,在进行裂缝量化时,采用模板匹配和骨刺消除的方法可以对Zhang-Suen细化算法进行合理优化,有效清除不属于骨架的像素和结构,从而得到精确的裂缝长度信息,精确的骨架也为基于骨架法向法的宽度测量提供了基础,提高了宽度测量的合理性和精确度。
为了进一步验证求取裂缝宽度特征结果的合理性,在图1b左侧裂缝的骨架上取9个点,用骨架法向法求取其宽度值,然后取这9个宽度方向与裂缝左边界的9个交点再用最近距离法与人工测量法在裂缝右边界上分别寻找与之相匹配的点,从而获得对应的宽度方向和宽度值,3种方式所得宽度值、宽度角(宽度方向与水平方向的夹角)列于表2、3,利用表2、3的数据,可以得到最近距离法与骨架法向法在9个采样点处的平均宽度值误差分别为2.17像素、2.86像素,平均宽度角误差分别为4.73、11.83°,说明与最近距离法相比,骨架法向法能够更好地求取裂缝的宽度信息。
采用不同方法获取9个采样点的宽度测量结果可视化对比如图14所示,其中,红色线为骨架法向法测量结果,白色线为最近距离法结果,蓝色线为人工测量结果。由图14可以看出,利用骨架法向法求取的裂缝宽度方向与人工测量结果一致程度更高,说明利用骨架法向法求取裂缝宽度更加合理性,其能够有效确定对应裂缝的宽度方向和宽度值。
3 结束语
对裂缝的量化分析方案进行了研究,并基于神经网络的裂缝分割结果获取裂缝的量化信息。针对现有细化算法提取裂缝骨架的不足,笔者提出了新的8邻域保留模板和删除模板,通过模板匹配的方式删除骨架中的冗余像素,并通过长度阈值筛选清除骨架中的多余骨刺,从而优化Zhang-Suen细化算法,获得严格单像素宽度的裂缝骨架及精确的裂缝长度信息。对于裂缝宽度特征的量化,笔者设计了最近距离法和骨架法向法求取的方案。结合裂缝的走向,对最近距离法进行了优化,减少了宽度的计算次数,提高了宽度计算的效率。同时,为了更好地表达裂缝方向,利用最小二乘法求取裂缝骨架及其法向的表达式,然后使用迭代式搜寻法确定法线与裂缝边界的交点,从而获得对应的宽度信息。
笔者提出的量化方案可以有效获取对应裂缝的长度、宽度等特征,可以为裂缝的严重程度及发展状况提供数字化参考,辅助建筑物损害程度的评估。
参 考 文 献
[1] 寧志军.建筑工程施工中混凝土裂缝的成因与治理方法[J].陶瓷,2023(12):198-200.
[2] 张艳霞.建筑工程施工中混凝土裂缝的成因与应对措施[J].城市建设理论研究(电子版),2023(33):112-114.
[3] 吕志金,陈雪芳.基于深度学习的桥梁裂缝检测与量化分析[J].信息技术与信息化,2021(10):75-77.
[4] PAVLIDIS T.Algorithms for Graphics and Image Processing[J].ZAMM-Journal of Applied Mathematics and Mechanics,2010,63(8):395.
[5] NASERI M,HEIDARI S,GHEIBI R,et al.A novel quantum binary images thinning algorithm:A quantum version of the Hilditch′s algorithm[J].Optik,2017,
131:678-686.
[6] 白瑩.手写汉字的细化算法研究[D].西安:西安电子科技大学,2014.
[7] DONG J W,CHEN Y M,YANG Z J,et al.A parallel thinning algorithm based on stroke continuity detection[J].Signal,Image and Video Processing,2017,11(5):873-879.
[8] 张翠芳,杨国为,岳明明.Zhang并行细化算法的改进[J].信息技术与信息化,2016(6):69-71.
[9] 陈树,杨天.一种基于改进ZS细化算法的指针仪表检测[J].计算机工程,2017,43(12):216-221.
[10] 董大卫.基于最小外接矩形的汽车表面缝隙尺寸检测方法研究[D].上海:上海工程技术大学,2021.
[11] 房铭坤,付国.基于数字图像处理的混凝土裂缝宽度检测方法研究[J].建筑结构,2019,49(S2):630-634.
[12] 沈艺.基于机器视觉的建筑物裂缝检测研究及应用[D].苏州:苏州科技大学,2020.
[13] XU S C,XU X Y,WEI H R,et al.DbCrackNet:Dual-branch network for crack segmentation[C]//2022 China Automation Congress (CAC).2022:690-695.
(收稿日期:2023-04-15,修回日期:2024-01-30)
Quantitative Analysis of Cracks Based on Image Processing
XU Shouchun, XU Xiangyang, FENG Yuheng
(School of Automation, Beijing Institute of Technology)
Abstract In this paper, the quantification technique of cracks was studied to obtain the information on both length and width of corresponding cracks. Aiming at the quantification of length features, the shortcomings of the existing refinement algorithm to extract the crack skeleton were analyzed and a new deletion template and a retention template were proposed, including making use of template matching to eliminate the redundant pixels in the crack skeleton, and setting a reasonable length threshold to eliminate the redundant bone spur structure in the skeleton so as to optimize the extraction of the skeleton and obtain accurate crack length information. Aiming at the quantification of crack width characteristics, having the crack trend and optimal nearest distance method based to reduce the number of iterations for calculating the crack width and improve the quantification efficiency. In addition, for purpose of obtaining more accurate information on the crack width, having crack characteristics and extracted skeleton considered and the skeleton normal method used to obtain pixellevel accuracy information on the crack width were implemented.
Key words crack quantification, skeleton extraction, nearest distance method, skeleton normal method, safety assessment