本文内容来源于《测绘学报》2024年第9期(审图号GS京(2024)1896号)
胡波,1,2, 陈翰新,1,2, 任松3, 屈英豪1,2, 刘清屹1,2, 涂歆玥3, 王大涛1,2
1.
2.
3.
基金项目
重庆市自然科学基金面上项目 (CSTB2022NSCQ-MSX1615 ); 重庆市自然科学基金创新发展联合基金项目 (CSTB2023NSCQ-LZX0122 ); 重庆市规划和自然资源局科研项目 (KJ-2021054 )
基金项目
作者简介
作者简介
第一作者:胡波(1987—),男,博士,正高级工程师,研究方向为精密工程测量、智能测量装备、信息化。E-mail:hubo@cqkcy.com
通讯作者: 陈翰新 E-mail:chenhx@cqkcy.com
摘要
随着交通运输网络的建设,建成的隧道数量及隧道运营年限日益增加,给隧道安全运营带来了很大的挑战。快速检测隧道衬砌裂缝病害并准确提取裂缝长宽特征,是实现隧道高效养护和安全运营的重要保障。本文提出了一种高效精准的隧道裂缝病害后处理算法,基于DeepLabV3+语义分割模型的预测分割掩码,以连通域判别细化算法与端点聚类实例区分算法处理掩码断裂情况,实现了隧道裂缝骨架精准提取和实例区分。以长度计算和灰度差异值宽度分类算法实现了裂缝长宽特征的计算,长宽计算准确率分别为92.2%与86.3%。
本文引用格式
胡波, 陈翰新, 任松, 屈英豪, 刘清屹, 涂歆玥, 王大涛. 一种基于分割掩码的隧道裂缝病害自动识别后处理算法 [J]. 测绘学报, 2024, 53(9): 1715-1724 doi:10.11947/j.AGCS.2024.20240088
HU Bo, CHEN Hanxin, REN Song, QU Yinghao, LIU Qingyi, TU Xinyue, WANG Datao. A post-processing algorithm for automatic recognition of tunnel crack diseases based on segmentation masks [J]. Acta Geodaetica et Cartographica Sinica , 2024, 53(9): 1715-1724 doi:10.11947/j.AGCS.2024.20240088
阅读全文
http://xb.chinasmp.com/article/2024/1001-1595/1001-1595-2024-09-1715.shtml 随着隧道的长期服役,变形、渗漏水、裂缝已成为最常见的隧道衬砌病害[1-3],其中裂缝的出现在一定程度上标志着隧道衬砌退化,严重危害隧道的结构安全。一旦对裂缝的处理不当还容易引发连锁效应产生其他病害,甚至造成严重的安全事故。因此,快速准确地识别定位隧道裂缝病害并得到裂缝的长宽特征,对保证隧道结构安全具有重要意义[4-8]。在用于病害检测的基于深度学习神经网络模型研究方面,成果众多[9-14]。文献[15]构建了一种弱监督与全监督相结合的隧道裂缝分割框架,提出了用于标注分割数据的分割网络Crack-CAM,并改进Res2Net101网络作为DeepLabV3+模型主干,基于分割掩码实现了裂缝的长宽量化,但由于标注掩码宽度与裂缝的真实宽度间存在较大差异,因此实际应用仍具有一定难度。文献[16]提出在PANet模块上增加了一个语义分支,分割盾构隧道衬砌图像中的裂缝,对0.6~2.9 mm宽度范围内的裂缝进行了长宽特征提取。文献[17]基于Mask R-CNN算法,在1000张227×227的隧道裂缝图像上进行实例分割,并基于形态学细化算法提取裂缝骨架,计算裂缝长度与宽度,但该算法提出的裂缝骨架毛刺较多,且未针对交叉裂缝情况提出处理算法。文献[18]基于Mask R-CNN模型对盾构隧道衬砌图像中的裂缝进行实例分割,并引入形态学闭合后处理操作处理分割掩码断裂问题,但仍存在较多断裂问题无法通过后处理解决。 由于隧道裂缝病害大型公开的数据集稀少且数据集图像尺寸多样等原因,关于隧道裂缝病害智能检测的研究仍不太完善,对裂缝的特征精准提取方面,尤其是对隧道中颇为常见的交叉裂缝的特征提取算法的研究较少。因此,本文基于改进的DeepLabV3+语义分割模型的裂缝分割结果,根据提出的裂缝连通域判别细化算法、端点聚类裂缝实例区分算法,基于灰度差异值的裂缝宽度分类算法等裂缝病害后处理算法,实现隧道裂缝病害的骨架提取、实例区分和裂缝长宽特征的提取。 1 数据集及分割模型搭建
1.1 数据集准备
分割数据集的质量会影响分割模型的表现及其工程应用。本文采用隧道智能检测车在多个运营隧道采集的数据,并从中选出了1141张RGB三通道的裂缝图片搭建分割数据集。首先对所有图片进行预处理,将图片转换为1024×1024像素,每个像素点实际大小为0.976 mm×0.976 mm,然后进行人工语义注释与长宽信息标注,并以VOC(visual object classes)格式(一种用于目标检测以XML格式存储且包含目标对象信息的格式),按照1∶9的比例划分测试集与训练验证集,完成分割数据集的构造。 1.2 语义分割模型搭建
本文以重构的MobilenetV2网络作为DeepLabV3+模型的主干特征提取层。 DeepLabV3+模型采用Xception模型作为主干特征提取网络,由于Xception模型架构复杂,对内存需求大,考虑到病害识别实际应用的推广需求,为平衡精度与检测效率,本文采用更为轻便的MobilenetV2模型作为主干网络,重构DeepLabV3+模型。 MobilenetV2结构的核心部分主要由倒残差模块(inverted bottleneck)堆叠而成。倒残差模块基于ResNet模型中的残差结构进行改进,倒置了维度的拓展过程,先使用卷积核大小为1×1的标准卷积层扩展图像维度,该层被称为升维层,维度膨胀系数被称为倒残差模块的扩展因子,再使用卷积核大小为3×3的深度可分离卷积层提取特征信息,并通过控制卷积层步长调整特征图大小,最后将特征图送入卷积核大小为1×1的标准卷积层进行降维,从而减少参数计算量,该层被称为降维层。除降维层外,所有层后均使用Relu6函数进行非线性激活,降维层使用线性激活函数以防止低维度的特征信息损失。在深度可分离卷积层步长为1的倒残差结构中,通过残差连接操作将输入与输出信息进行相加,实现深、浅层特征融合,以提升检测性能。 移除原结构中尾部的标准卷积层与全局平均池化层,替换为两层inverted bottleneck模块组。调整后的主干网络结构见表1,共包含1个标准卷积层,7个inverted bottleneck模块组(共17个inverted bottleneck模块),总共对图像进行4次下采样操作,对应下采样系数为16。 表1 MobilenetV2主干网络结构
Tab.1 MobilenetV2 backbone network architecture
输入尺寸 操作结构 扩展因子 膨胀率 输出矩阵深度 1024×1024×3 convd2d — — 32 512×512×32 inverted bottleneck 1 1 16 512×512×16 inverted bottleneck×2 6 1 24 256×256×24 inverted bottleneck×3 6 1 32 128×128×32 inverted bottleneck×4 6 2 64 128×128×64 inverted bottleneck×3 6 2 96 128×128×96 inverted bottleneck×3 6 4 160 128×128×160 inverted bottleneck 6 4 320
新窗口打开| 下载CSV
神经网络模型训练主要基于监督学习模式,通过损失函数计算预测值与真实值之间的差异值,评估模型对实际数据的拟合效果。常用损失函数有Focal Loss[19]和Dice Loss[20]。 Dice Loss相较于CE损失函数平等对待各类别像素点,Dice Loss更重视对前景的特征挖掘,增强对于细小结构的分割能力,为缓解样本不平衡问题提供了解决思路。Focal Loss同样是为解决样本不平衡问题而提出的一种损失函数,相比于Dice Loss, Focal Loss更关注于难分类样本。 本文根据数据集的特点优化损失函数,经验证后以Focal Loss和Dice Loss组合构建损失函数解决样本不平衡问题,提升分割模型的性能,以获取高质量分割掩码。损失函数Loss的计算公式为 (1)
(2)
式中,FL为Focal Loss;(1-pt)γ为调制因子;γ为调整调制因子表现力的超参数,函数调制能力随γ的增加而增大;y代表像素点标签,取值为1则代表为裂缝;p为模型对像素点是否属于裂缝类别的预测概率;X是真实值的集合;Y是预测值的集合。
2 裂缝后处理算法
为有效修护处理隧道裂缝,不仅需要准确识别定位裂缝,还需准确提取出裂缝的长宽特征信息。由于语义分割模型只能区分出属于裂缝类别的像素信息,无法区分裂缝个体。因此,本文提出一种基于语义分割掩码的裂缝后处理算法,以实现裂缝实例区分与长宽量化。裂缝检测及后处理流程如图1所示,先对分割掩码进行二值化和形态学闭合操作[21-23],预处理其中的微小断裂。然后,利用裂缝连通域判别细化算法提取出一个像素点宽的裂缝骨架,接着使用端点聚类实例区分算法处理连通域骨架间的断裂并区分出裂缝个体。最后,计算骨架长度作为裂缝长度,并用宽度分类算法判断宽度类别。 图1
图1 裂缝检测及后处理流程
Fig.1 Crack detection and post-processing process
2.1 裂缝连通域判别细化算法
裂缝连通域判别细化算法基于Astar算法[24]提出,该算法通过对裂缝的二值图像中的连通区域进行划分并搜寻端点,根据端点数量结合Astar算法搜索出的端点间最短路径情况判别裂缝类型,最终分类实现一个像素点宽的裂缝骨架精准提取。裂缝连通域判别细化算法步骤如下。 (1)基于形态学连通域算法采用八邻接判定法区分裂缝分割掩码的各个连通域,以不同颜色标注各连通域。 (2)基于各个连通域掩码信息提取各连通域的定位框,以定位框的4个顶点为搜索起点,分别沿x方向、y方向,以w/2、h/2为搜索距离,搜索接触到定位框的掩码像素点,即触界点,并将搜寻到的触界点作为端点(图2)。其中,w为定位框的宽度,h为定位框的高度,若在某一方向上搜索到多个相邻的触界点,则选择居中点作为端点。 图2
图2 端点搜索
注:红色为端点,箭头为搜寻方向,虚线为对称轴。
Fig.2 Endpoint search
(3)根据每个连通域搜索所得的端点数量结合Astar算法进行裂缝类型的判别与细化处理。裂缝类型判定与骨架提取流程如图3、图4所示。 图3
图3 裂缝类型判断流程
注:l=(Lmid+Lmin)/Lmax。
Fig.3 Crack type determination process
图4
图4 裂缝骨架提取流程
Fig.4 Extraction process of crack skeleton
利用Astar算法分别搜索3个端点两两间的最短路径,并根据路径长度进行排序,其路径长度分别记为Lmax、Lmid、Lmin。 确定交叉点方法:若3条路径有共同点,取共同点为交点;否则,以最短路径的点为圆心、1.5倍的裂缝连通域宽度W为半径,遍历最短路径进行交叉点搜索。当搜索范围内同时存在其余两条路径上的点,则取该遍历点为交叉点,如图5所示。裂缝连通域宽度W计算公式为 (3)
式中,Pi表示像素点i是否属于当前连通域,属于则为1,否则为0。
图5
图5 交叉点搜索示例
Fig.5 Example of intersection search
对于含有4个触界点的掩码连通域,可循环采用三端点判别方式,删除触界点保留真实的裂缝端点,并对交叉裂缝进行交叉点搜索与裂缝骨架提取。若经判别,连通域内4个触界点均为裂缝端点,则分别取两组对角点,搜索其最短路径,其交点则为交叉点,所搜索的路径即为交叉裂缝骨架。裂缝骨架提取效果如图6所示。 图6
图6 裂缝骨架提取效果
Fig.6 Extraction effect of crack skeleton
2.2 端点聚类实例区分算法
端点聚类实例区分算法通过判断各连通域骨架端点间的断裂情况,分类处理,实现裂缝的实例划分。 各连通域间的断裂类型主要分为普通断裂与交错断裂。普通断裂是由图像在采样过程中丢失特征导致的。交错断裂是因为部分裂缝中间出现近距离交错并未连接在一起,故而分割掩码也存在断裂,工程实际中进行裂缝病害检测时,近距离交错的裂缝仍被视作同一条裂缝。端点聚类实例区分算法基于各裂缝连通域骨架的坐标信息,对断裂处的骨架端点进行分组配对,并判断配对端点所属骨架间的断裂类型,分类处理断裂情况,实现裂缝实例区分,具体流程如图7所示。 图7
图7 端点聚类实例区分算法流程
Fig.7 Endpoint clustering instance differentiation algorithm process
断裂类型判断需先计算配对端点所属骨架长度,提取较长骨架定位框,选择定位框边长较长一边走向为判值方向(x或y方向),然后自配对端点起沿判值方向各取n个点,若在两条骨架上所取点的判值方向的坐标中存在相同元素,如图8中白色区域所示,则两条裂缝存在交错区域,骨架断裂类型为交错断裂,反之则为普通断裂。 图8
图8 裂缝断裂类型判断示例
Fig.8 Example of determining the type of crack fracture
对于交叉裂缝,在进行断裂处理后,需要对其进行进一步的实例区分。首先以交叉裂缝交叉点为中心建立极坐标系,之后基于极坐标系分别计算各支路端点两两之间的夹角大小,将夹角最大的两个端点所属的裂缝支路判定为同一条裂缝。图9为裂缝实例区分结果示例。 图9
图9 裂缝实例区分
Fig.9 Differentiation of crack instances
本文n设置为20,第一判定距离设置为80,第二判定距离设置为60。断裂裂缝骨架的整合连接效果较好。在实际应用中,判定距离数值可根据裂缝分割效果调整。 2.3 裂缝长宽提取算法
裂缝长度和宽度是衡量裂缝发展状态及严重程度的重要参数,通过对比裂缝病害不同阶段的长度、宽度值,可对裂缝的发展趋势做出精准预测,为养护决策提供数据支撑。本文提出了基于实例区分结果的长度计算方法及宽度分类算法。 2.3.1 裂缝长度计算
由于经过实例区分操作提取的每条裂缝细化骨架为严格的单像素点宽的折线,走向与裂缝走向贴合度高,因此,计算骨架的长度即可得到裂缝的长度L (4)
式中,N为裂缝骨架像素点数量;(xi,yi)代表骨架上第i个像素点的坐标;Ls代表裂缝骨架的长度,为骨架上相邻像素点距离之和;Lp代表每个像素点的实际尺寸。
2.3.2 裂缝宽度计算
目前常见的裂缝宽度提取算法[25]对分割掩码的精确度要求极高,需要掩码边缘紧密贴合裂缝边缘。但由于本文采集的病害图像实际尺寸较大,而采集图像中裂缝区域覆盖的像素点过少,为保证分割效果,在人工语义注释时标注区域略宽于实际裂缝像素点区域,致使模型训练后输出的分割掩码还会包含较多隧道背景像素,因此常见的裂缝宽度计算方法并不适用。 对此,根据裂缝像素与周围背景像素在成像上灰度值有所差异的原理,即裂缝区域灰度值低于背景区域灰度值,且随裂缝宽度增加,裂缝区域灰度值降低,本文提出了基于灰度差异值的裂缝宽度判别算法。算法步骤如下。 (1)计算灰度差异值。由于背景干扰及运算量等因素,仅基于局部取值计算裂缝灰度差异值。在裂缝实例的骨架轴线上选取N个等距离点,作为取值定位点。基于每个取值定位点沿法线在定位点两侧各取X个点,作为灰度值取值点。将法线上的灰度值取值点坐标代入裂缝分割掩码二值图像,进行背景像素点与裂缝像素点区分,再分别将裂缝区域取值点与背景区域取值点坐标代入原图,计算取值点的灰度值。计算背景取值点的平均灰度值与裂缝取值点的平均灰度值之差,得到灰度差异值g0 (5)
式中,i为属于裂缝掩码区域的像素点;Pi为裂缝区域取值点灰度值;M为该区域像素点数量;j为属于背景掩码区域的像素点;Pj为背景取值点灰度值;N为该区域像素点数量。
(2)进行灰度差异值修正。为排除图像过亮(平均亮度大于170)或过暗(平均亮度小于110)对灰度差异值的准确性影响,对过亮及过暗图像的灰度差异值进行修正 (6)
式中,g0为基于原始图像计算的裂缝灰度差异值;g1为修正后的裂缝灰度差异值;brightness为图像平均亮度。
(3)裂缝被划分为0.2 mm≤W<0.6 mm、0.6 mm≤W≤1 mm、W>1 mm 3个宽度类别,根据灰度差异阈值Gray1、Gray2判定裂缝宽度类别(表2)。 表2 裂缝宽度分类判别标准
Tab.2 Classification and discrimination criteria for crack width
g1取值 裂缝宽度类别 g1<Gray1 0.2 mm≤W<0.6 mm Gray1≤g1≤Gray2 0.6 mm≤W≤1 mm g1>Gray2 W>1 mm
新窗口打开| 下载CSV
裂缝宽度分类过程中所涉及的参数经试验后确定,参数配置见表3。 表3 灰度差异值计算参数
Tab.3 Parameters for calculating grayscale difference values
参数 取值 取值定位点数量N 10,裂缝骨架像素点数量小于等于200时
40,裂缝骨架像素点数量大于200时 单侧灰度取值点数量X 10.0 Gray1 11.7 Gray2 19.0
新窗口打开| 下载CSV
3 后处理结果与分析
3.1 分割模型训练环境
本文基于Windows10 64位操作系统搭建深度学习环境,硬件平台采用Nvidia Quadro RTX 5000显卡,显存大小为16 GB;处理器型号为Intel(R)Xeon(R)CPU E5-2620 V4,内存(RAM)为128 GB。模型基于Anaconda、Visual Studio等软件,以python编程语言与Tensorflow (version 2.4.0)框架搭建,并行计算架构CUDA11.0,基于GPU的加速库cuDNN 8.0.5实现。 3.2 模型训练
语义分割模型使用ADAM作为优化器,学习率采用COS渐降方式,最大学习率为1×10-3,最小学习率为1×10-5。基于在VOC2012数据集上预训练的主干网络权重进行迁移学习,采取冻结训练与解冻训练相结合方式,冻结训练阶段样本训练批次大小为8,解冻训练阶段样本训练批次大小为2,共迭代32 100次。训练完成后选择效果最好的权重进行裂缝预测。 3.3 评价指标
本文采用通用评价指标准确率(precision)和召回率(recall)评价分割模型的预测效果;长宽特征提取效果采用自定义指标宽度分类准确率(WR)和长度匹配率(LR)作为裂缝后处理算法表现评价指标 (7)
式中,表示裂缝i的预测宽度类别与真实宽度类别C的一致性,一致则为1,否则为0;N1为预测正确的裂缝总数量
(8)
式中,Lpre为裂缝的预测长度;Lgt为裂缝的实际长度;N2为检测正确的裂缝总数;LR为被正确检出的裂缝的检测长度占实际长度比例的均值。
3.4 模型及后处理算法效果分析
为验证后处理算法的实例区分效果与特征提取效果,分别对训练集与测试集的分割模型预测结果进行后处理,结果见表4。 表4 裂缝检测结果
Tab.4 Crack detection results
数据集 准确率 召回率 LR/(%) WR/(%) 每张图处理时间/s 训练集 0.913 0.949 93.2 88.5 — 测试集 0.914 0.936 92.2 86.3 0.449
新窗口打开| 下载CSV
由表4可知,裂缝长度匹配率达到90%以上,可见后处理算法对裂缝掩码断裂的处理效果良好,但仍存在些许误差。从裂缝识别效果图10来看:①由于Astar算法计算的为裂缝端点间最短路径,相较于裂缝的实际骨架轴线,预测骨架更短,造成了一定的小误差;②由于分割模型输出的裂缝分割质量较差,部分较细裂缝分割效果不佳,如图11所示,有较长一段裂缝未被分割出,导致裂缝长度计算错误;③实例区分算法中的判断距离不能覆盖到所有情况,有少数裂缝掩码断裂距离超过判断距离,使得实例区分错误,进而导致长度计算有误,如图12所示。因此,通过优化分割模型的性能获得更高质量的分割掩码,以及通过试验设计优化算法中各参数的取值有助于进一步提高长度计算准确率。 图10
图10 裂缝识别效果
Fig.10 Crack recognition effect
图11
图11 裂缝分割效果
Fig.11 Crack segmentation effect
图12
图12 裂缝误检
Fig.12 Crack false detection
而宽度分类准确率接近90%,较长度准确率更低。原因可能是计算宽度时的干扰因素更多:①处于宽度分类边界的裂缝宽度容易误判;②虽对部分区域过曝和有背景噪声像素点干扰的图像进行了灰度差异值修正,但其影响仍不可完全避免。对此,尽量减少可控因素的干扰,如提高拍摄设备性能及优化拍摄参数设置提升成像质量,减少或避免图像出现部分区域过曝的情况,有利于提升宽度分类准确率。 此外,对比裂缝病害后处理算法在训练数据集和测试集上的表现,在测试集上的表现相较训练集仅有轻微的下降,长度匹配率与宽度分类准确率仍可达到92.2%与86.3%,说明阈值可行性较强,算法的稳健性较强,并且该算法每张图的处理时间仅为0.449 s,表现优秀,可满足高效精准的检测要求。 4 结论
本文根据数据集的特点改进DeepLabV3+模型,优化损失函数以获得高质量分割掩码,提出了基于分割掩码的裂缝病害后处理算法,实现了准确有效的裂缝骨架提取、实例区分及长宽特征精准提取,特别是交叉裂缝特征的有效提取。 后处理算法对掩码的有效处理使得裂缝特征提取表现优异,长度匹配率与宽度分类准确率达到92.2%与86.3%,能实现高效稳定检测。继续优化分割模型,提高成像质量和优化算法中的各项参数配置有望进一步提高宽度分类准确率。 综上所述,本文提出的裂缝病害后处理算法可为隧道衬砌裂缝病害的智能检测和隧道安全评估提供良好的技术支持,为保障隧道结构安全作出贡献。
第一作者:胡波(1987—),男,博士,正高级工程师,研究方向为精密工程测量、智能测量装备、信息化。E-mail:
摘要
随着交通运输网络的建设,建成的隧道数量及隧道运营年限日益增加,给隧道安全运营带来了很大的挑战。快速检测隧道衬砌裂缝病害并准确提取裂缝长宽特征,是实现隧道高效养护和安全运营的重要保障。本文提出了一种高效精准的隧道裂缝病害后处理算法,基于DeepLabV3+语义分割模型的预测分割掩码,以连通域判别细化算法与端点聚类实例区分算法处理掩码断裂情况,实现了隧道裂缝骨架精准提取和实例区分。以长度计算和灰度差异值宽度分类算法实现了裂缝长宽特征的计算,长宽计算准确率分别为92.2%与86.3%。
本文引用格式
胡波, 陈翰新, 任松, 屈英豪, 刘清屹, 涂歆玥, 王大涛.
HU Bo, CHEN Hanxin, REN Song, QU Yinghao, LIU Qingyi, TU Xinyue, WANG Datao.
阅读全文
1 数据集及分割模型搭建
1.1 数据集准备
1.2 语义分割模型搭建
表1 MobilenetV2主干网络结构
Tab.1
输入尺寸 | 操作结构 | 扩展因子 | 膨胀率 | 输出矩阵深度 |
---|---|---|---|---|
1024×1024×3 | convd2d | — | — | 32 |
512×512×32 | inverted bottleneck | 1 | 1 | 16 |
512×512×16 | inverted bottleneck×2 | 6 | 1 | 24 |
256×256×24 | inverted bottleneck×3 | 6 | 1 | 32 |
128×128×32 | inverted bottleneck×4 | 6 | 2 | 64 |
128×128×64 | inverted bottleneck×3 | 6 | 2 | 96 |
128×128×96 | inverted bottleneck×3 | 6 | 4 | 160 |
128×128×160 | inverted bottleneck | 6 | 4 | 320 |
新窗口打开| 下载CSV
式中,FL为Focal Loss;(1-pt)γ为调制因子;γ为调整调制因子表现力的超参数,函数调制能力随γ的增加而增大;y代表像素点标签,取值为1则代表为裂缝;p为模型对像素点是否属于裂缝类别的预测概率;X是真实值的集合;Y是预测值的集合。
2 裂缝后处理算法
图1
图1 裂缝检测及后处理流程
Fig.1 Crack detection and post-processing process
2.1 裂缝连通域判别细化算法
图2
图2 端点搜索
注:红色为端点,箭头为搜寻方向,虚线为对称轴。
Fig.2 Endpoint search
图3
图3 裂缝类型判断流程
注:l=(Lmid+Lmin)/Lmax。
Fig.3 Crack type determination process
图4
图4 裂缝骨架提取流程
Fig.4 Extraction process of crack skeleton
式中,Pi表示像素点i是否属于当前连通域,属于则为1,否则为0。
图5
图5 交叉点搜索示例
Fig.5 Example of intersection search
图6
图6 裂缝骨架提取效果
Fig.6 Extraction effect of crack skeleton
2.2 端点聚类实例区分算法
图7
图7 端点聚类实例区分算法流程
Fig.7 Endpoint clustering instance differentiation algorithm process
图8
图8 裂缝断裂类型判断示例
Fig.8 Example of determining the type of crack fracture
图9
图9 裂缝实例区分
Fig.9 Differentiation of crack instances
2.3 裂缝长宽提取算法
2.3.1 裂缝长度计算
式中,N为裂缝骨架像素点数量;(xi,yi)代表骨架上第i个像素点的坐标;Ls代表裂缝骨架的长度,为骨架上相邻像素点距离之和;Lp代表每个像素点的实际尺寸。
2.3.2 裂缝宽度计算
式中,i为属于裂缝掩码区域的像素点;Pi为裂缝区域取值点灰度值;M为该区域像素点数量;j为属于背景掩码区域的像素点;Pj为背景取值点灰度值;N为该区域像素点数量。
式中,g0为基于原始图像计算的裂缝灰度差异值;g1为修正后的裂缝灰度差异值;brightness为图像平均亮度。
表2 裂缝宽度分类判别标准
Tab.2
g1取值 | 裂缝宽度类别 |
---|---|
g1<Gray1 | 0.2 mm≤W<0.6 mm |
Gray1≤g1≤Gray2 | 0.6 mm≤W≤1 mm |
g1>Gray2 | W>1 mm |
新窗口打开| 下载CSV
表3 灰度差异值计算参数
Tab.3
参数 | 取值 |
---|---|
取值定位点数量N | 10,裂缝骨架像素点数量小于等于200时 40,裂缝骨架像素点数量大于200时 |
单侧灰度取值点数量X | 10.0 |
Gray1 | 11.7 |
Gray2 | 19.0 |
新窗口打开| 下载CSV
3 后处理结果与分析
3.1 分割模型训练环境
3.2 模型训练
3.3 评价指标
式中,表示裂缝i的预测宽度类别与真实宽度类别C的一致性,一致则为1,否则为0;N1为预测正确的裂缝总数量
式中,Lpre为裂缝的预测长度;Lgt为裂缝的实际长度;N2为检测正确的裂缝总数;LR为被正确检出的裂缝的检测长度占实际长度比例的均值。
3.4 模型及后处理算法效果分析
表4 裂缝检测结果
Tab.4
数据集 | 准确率 | 召回率 | LR/(%) | WR/(%) | 每张图处理时间/s |
---|---|---|---|---|---|
训练集 | 0.913 | 0.949 | 93.2 | 88.5 | — |
测试集 | 0.914 | 0.936 | 92.2 | 86.3 | 0.449 |
新窗口打开| 下载CSV
图10
图10 裂缝识别效果
Fig.10 Crack recognition effect
图11
图11 裂缝分割效果
Fig.11 Crack segmentation effect
图12
图12 裂缝误检
Fig.12 Crack false detection
4 结论
初审:张艳玲 复审:宋启凡
终审:金 君
往期推荐
资讯