APP下载

利用深度可变形轮廓模型进行结构体裂纹视觉检测

2023-09-18彬,王

电子科技 2023年9期
关键词:掩码轮廓实例

赖 彬,王 森

(1.昆明理工大学 机电工程学院,云南 昆明 650500;2.云南省先进装备智能制造技术重点实验室,云南 昆明 650500)

桥梁、公路以及机械设备等结构体表面在服役期内长期受交变载荷形成扩展裂纹,并逐渐产生表面坑槽、隆起等不同程度的故障病害。因此,需要采用有效的结构体健康监测手段对结构体表面进行定期状态监测,对具有危机隐患的裂纹进行及时修复[1],确保结构体表面安全和正常运行。传统的结构体主要依靠人工巡检进行裂纹检测,然而这种方式存在效率低下、成本高等缺陷。随着计算机软硬件技术的升级和自动化检测的快速发展,传统的图像处理技术例如阈值分割[2]、边缘检测[3]、随机森林[4]和支持向量机[5]等机器学习方法开始在裂纹检测的任务上取得较大发展,但这些方法因精度不高且检测速度较慢而无法满足复杂场景下的有效裂纹检测。

近年来,目标检测、语义分割以及实例分割的深度学习[6-8]方法开始被频繁应用于工程结构的病害检测。包括基于端到端的深度卷积神经网络检测方法开始在结构体裂纹检测领域初显成效。文献[9]利用改进的SSD(Single Shot MultiBox Detector)卷积神经网络进行钢板裂纹检测,这种网络采用空洞卷积改进了SSD卷积神经网络的平衡性,在图片样本较少的试验中取得了较为满意的检测效果。文献[10]提出基于YOLOv3(You Only Look Once version 3)与注意力机制的桥梁表面裂痕检测算法,其具有更高的检测精度和速度。文献[11]利用Faster R-CNN(Region-Convolutional Neural Networks)网络进行道路裂缝识别。但这些目标检测算法无法提取结构体裂纹的具体形状和大小,缺乏面积数据的统计。因此,利用基于像素级分割的裂纹检测方法,通过判断有无裂纹可以对裂纹的形状等信息进行详细描述。文献[12]提出了基于深度学习的全卷积网络图像裂纹检测,在提高检测精度的同时可有效降低错误标记率。文献[13]提出了一种基于全卷积神经网络的坝面裂纹检测方法,能够实现对坝面裂纹的识别和定量。结构体裂纹在拍摄的整个图像中占比较小,且大多图像存在噪声,使用语义分割逐像素预测易误报。目前,基于图像实例分割的检测裂纹方法的检测性能获得了较大提升,文献[14]提出将Mask R-CNN模型应用于路面缺陷检测,该方法的检查准确率能够达到92.1%。文献[15]提出基于机器视觉的路面裂缝病害多目标识别方法,经过训练后的模型识别裂缝对象的正确率达98.9%。但这些方法生成的掩码由许多密集像素点组合而成,因此后处理过程中的特征聚类较为耗时。

为解决大多数实例裂纹分割算法耗时的问题,本文将基于深度可变形轮廓的实例分割算法引入结构体裂纹检测领域,将基于Centernet[16]的目标检测器与Deep Snake[17]框架相结合进行裂纹对象的联合预测。本文采用自制的结构体裂纹数据集进行预训练模型的参数微调,利用最优权重实现端对端训练和裂纹图像实例分割。相比于语义分割和目标检测的方法,基于深度轮廓变形的实例分割方法不仅可实现裂纹的有效识别和定位,而且能够同时完成多个裂纹目标的鲁棒性分割。相较于大多数两阶段的实例分割方法,该方法具有以下两方面优势:1)参数量远小于稠密像素,使得实例分割的速度上限更高;2)能够处理目标检测模型定位错误的问题。即使目标检测定位错误,该方法也能通过后续的轮廓变形到达目标既定区域。

1 深度轮廓变形实例分割算法

本文算法主要包括裂纹目标检测和裂纹轮廓实例分割两个阶段,如图1所示。本文沿用Deep Snake实例分割初始轮廓提议和轮廓变形的两阶段管道任务,首先将提出的框检测器规范为一个菱形轮廓,然后将其4个顶点通过Deep Snake移动到对象极值点,最后通过极值点构造八边形结构。以八边形为初始轮廓,通过迭代变形以匹配对象边界。

图1 裂纹实例分割流程(a)裂纹图像 (b)目标检测 (c)菱形轮廓 (d)轮廓变形 (e)裂纹分割Figure 1. Segmentation process of crack example(a)Crack image (b)Object detection (c)Diamond outline (d)Contour deformation (e)Crack segmentation

1.1 CenterNet检测器

本文选用CenterNet作为检测裂纹区域的检测器,实现输出结构体裂纹的边界框(Bounding box,Bbox)回归,该网络通过定义一个“锚点”直接检测目标的中心点和大小从而实现简单有效的背景和前景区分。CenterNet检测的每一类别都有相应的热映射图,热映射图出现在中心点时会生成一个关键点的高斯分布区域。关键点周围的8个邻点在经过最大池化后仅保留热值最大的中心点,再通过直接回归的目标框尺寸得到边界框。以输入一幅裂纹图像为例,具体的检测过程如图2所示。

图2 CenterNet的裂纹检测过程Figure 2. The detection process for CenterNet

1.2 Deep Snake网络结构与原理

本文将图3所示的Deep snake算法结构作为基础网络。该算法结构由骨干网络、融合模块和预测模块3部分构成。将前级输出的轮廓作为输入,通过输出顶点偏移使轮廓达到变形。基于初始轮廓提议和轮廓变形的两阶段通路算法可以实现有效的实例分割。其中,检测器建议可以将获得的Bbox生成菱形轮廓,Deep Snake将其迭代变形到对象边界。主干网络由8个基于循环卷积CirConv的CirConv-Bn-ReLU组成,所有层直接使用残差跳跃连接的方式。通过融合模块的多尺度的信息融合主要用于主干网络中所有层的特征的合并,然后利用1×1的卷积层和最大池化操作实现主干特征和每个顶点特征有效合并。预测模块对于顶点特征采用了3个1×1的卷积层,然后映射到每个顶点的偏移量后输出最终结果。

图3 Deep Snake网络框架Figure 3. Deep Snake network framework

1.2.1 循环卷积

为了构建一个单独的网络层进行特征学习,Deep Snake引入如图4所示的循环卷积。轮廓上椭圆的点定义为输入特征,下椭圆上的点定义为输出特征。与标准卷积类似,循环卷积的输出特征与输入特征的长度相同。

图4 循环卷积Figure 4. Circular convolution

图4中的目标轮廓是图像上一组有序点P={xi},i=1~N的集合,其中,(xi,yi)为点i的坐标,N为点的个数。点xi的特征可表示为fi=[F(xi);x′i],其中,F为原始输入图像通过卷积神经网络得到的特征图,F(xi)为点xi在F上的双线性插值,x′i=(xi-xmin,yi-ymin)为xi的平移不变坐标,在坐标中xmin=min{xi},ymin=min{yi},i=1~N。在实验中,如果将轮廓上的特征点的特征向量作为周期信号,循环卷积的计算式可表示为

(1)

其中,k为循环卷积核,卷积核大小设为9;*为卷积操作。

1.2.2 损失函数

Deep Snake模型在Snake模型的基础上引入了循环卷积对轮廓进行高效的特征学习。对于Deep Snake的训练,本文使用平滑损失来学习两个变形过程。极值点的损失函数表示为

(2)

(3)

2 实验准备

2.1 运行环境和数据准备

本文的方法模型均在台式计算机上进行,其中硬件为Intel(R) Core(TM) i7-9700F CPU @ 3.00GHz处理器,GPU为NVIDIA GeForce RTX 2070 SUPER,运行内存16 GB。软件为Windows 10 64位系统,深度学习框架为Pytorch1.4.0,配置CUDA10.1版本和Cudnn7.6.5神经网络加速库。

为了提高算法的泛化性能,本文利用工业相机在多种场景下进行公路路面、墙体、砖块等结构体表面的图像采集,并将不同分辨率的裂纹图像进行旋转、裁剪、翻转等数据增强,最终自制了一种包含1 250幅图像的裂纹图像数据集。其中,横向与纵向裂纹为840幅,网状裂纹为410幅。在网络模型参数微调训练前,本文统一将裂纹图像数据集中的输入图像分辨率变换为512×512,随机抽取1 000幅图像作为训练数据集、250幅作为验证数据集。使用Labelme标注工具对1 250幅裂纹图像进行标注,将其转换为COCO格式后进行训练,同时采用迁移学习的思想改善网结构的有效性。训练使用迭代的训练策略,本次实验设置初始学习率为0.000 1,权重衰减为0.000 5,Batchsize设置为4,epoch=2 000。为了让损失函数更好地收敛,实验运用指数衰减方式促使学习率随着学习进度降低。

2.2 模型评估指标

目前,实例分割算法中最标准的评估方式包括平均精度、平均召回率、AP50以及AP75的COCO评估标准。因此,本文使用COCO评价指标作为评价标准。平均精度使用掩码掩码交并比(Intersection Over Union,IOU)进行评估。其中,平均精度是指在[0,1]区间范围内以0.1为间隔记性阈值判别后再分别计算AP后完成均值处理。当预测目标掩码与真实值掩码的IOU>0.50时,AP50即判别预测为正样本;当预测目标掩码与真实值掩码的IOU>0.75时,AP75认为预测为正样本。相关计算式可表示为

(4)

(5)

(6)

式中,N是本次训练的次数;TP表示预测正确的正样本;FP表示负样本预测为正样本;FN表示正样本预测为负样本;R表示一个正例对应的召回率值;P为最大精确值;AP代表一个类别的平均精度;AP50交并占比为50下的平均精度。

3 实验结果分析

3.1 识别效果分析

裂纹检测模型的损失函数随迭代次数的变化趋势如图5所示。训练与验证的结果都能够表达出Deep Snake算法模型具有有效的泛化性能,在本次实验训练过程中都未发生过拟合情况。由图5(a)和图5(b)可知,在2 000个epoch内,训练和验证损失函数随着步数的升高而逐步减小。从图5(a)中能够看出,Deep Snake、Mask R-CNN以及PANet(Path Aggregation Network)这3种网络模型训练损失都在变化,在迭代次数达到100 000步之前,其损失值下降较为显著,随后趋于平缓,也都能较好收敛。Deep Snake的损失值相较于另外两种方法变化更为平滑。将测试集中的数据作为本文实验检测的对象,本文实验模型与Mask R-CNN以及PANet模型的性能指标对比如表1所示。

(a)

(b)图5 训练和验证损失变化(a)三种方法的训练损失变化 (b)Deep Snake验证损失变化Figure 5. Training and validation loss change(a)Variation plot of training loss for three methods (b)Deep Snake validation loss change

表1 各识别模型性能指标Table 1. Performance indicators of each recognition model

从表1可以看出,Deep Snake在AP、AP50和AP75上都优于Mask R-CNN、PANet两种网络模型;Deep Snake在速度方面也优于基于像素级掩码的Mask R-CNN、PANet,其在单张图片测试上时间为0.12 s。

3.2 识别效果比较

针对本文实验模型,本文同时将Canny边缘检测算法[18]、Mask R-CNN和PANet与本文算法进行可视化比较。从图6中的部分定性比较结果可以看出,本文所采用的识别模型能较好识别裂纹,既能识别单条裂纹,还能对多条裂纹进行实例分割。对于稍微复杂的网状裂纹,Deep Snake也具有一定的识别能力。Canny边缘检测虽然将高斯平滑图像每个像素的梯度作为边缘强度的指标,但裂纹识别效果较差,部分裂纹无法识别。PANet产生明显的误分类现象,Mask R-CNN识别效果分割效果最差。因此,Deep Snake算法是一种有效的裂纹检测算法。

4 结束语

针对结构体常见的裂纹病害问题,本文提出了基于Deep Snake算法框架进行实例分割,并实现了对结构体裂纹的识别以及分割。通过与其他传统以及深度学习识别算法结果进行比较后发现,Deep Snake对结构体裂纹识别效果更加明显,对结构体裂纹的实例分割有一定作用。由于结构体裂纹本身在图像中占比较小,结构体裂纹轮廓特征复杂、细小,目前所运用的模型分割识别仍有待提高。未来可以对模型方法的改进,进一步提高模型的检测精度和识别效果,在一定程度上增强鲁棒性和泛化性。

猜你喜欢

掩码轮廓实例
OPENCV轮廓识别研究与实践
基于实时轮廓误差估算的数控系统轮廓控制
低面积复杂度AES低熵掩码方案的研究
基于布尔异或掩码转算术加法掩码的安全设计*
在线学习机制下的Snake轮廓跟踪
基于掩码的区域增长相位解缠方法
基于掩码的AES算法抗二阶DPA攻击方法研究
完形填空Ⅱ
完形填空Ⅰ
创造早秋新轮廓