基于深度学习的钢桥病害分割与量化
2022-06-19朱劲松
朱劲松 李 欢
(1天津大学建筑工程学院, 天津 300072)(2天津大学滨海土木工程结构与安全教育部重点实验室, 天津 300072)
钢桥在桥梁中的占比日益增长,对其检测维护也提出了更高的要求.随着传感器采集、信息存储与分析技术的发展,桥梁巡检中图像获取更加便利,图像中包含桥梁病害的位置和面积等信息,使得基于深度学习的图像分割网络[1]得到广泛关注.该方法具有非接触传感、成本低、操作简单、不受环境影响等优点,推动了桥梁检测向智能化方向发展.
在土木工程中,深度学习网络常用于混凝土结构病害的检测,Wei等[2]将Mask R-CNN网络应用于混凝土气泡的目标检测和语义分割,通过分析预测分割掩码对缺陷进行量化后,得到68%的气泡面积误差率小于10%,74%的气泡最大直径误差率小于10%;Deng等[3]基于空洞空间金字塔模型,对混凝土分层、钢筋外露进行了检测和分割,得到两者的平均交并比分别为43.63%和54.54%;Kim等[4]通过优化Mask R-CNN的网络结构,对混凝土裂缝、风化、钢筋外露和剥落进行了分割,得到准确率和召回率分别为87.24%和87.58%;金耀等[5]通过构建由一系列功能层组成的深度卷积神经网络,实现了混凝土裂缝、锈蚀、涂层脱落、掉块的像素级识别,得到94.96%的识别精度,但未进行量化.在钢结构应用中,Liu等[6]对Faster R-CNN和VGG19网络进行微调,实现了涂层破损和腐蚀的分割,其识别率为81.4%;王达磊等[7]采用编码器-解码器架构设计深度神经网络,实现锈蚀区域的分割,得到阈值为0.5时的分割正确率为90.56%,并基于像素值进行了量化分析.基于深度学习的像素级分割虽已在病害检测领域应用,但无专门针对钢结构桥梁病害的分割与量化,且在已有的钢结构病害检测中分割评价指标单一,分割后未进行量化评估或仅用像素值量化.
鉴于此,本文针对涂层劣化、腐蚀、焊缝开裂3种钢桥局部病害形式,提出了一种基于深度学习的钢桥病害分割与量化方法.该方法以SOLOv2[8]实例分割网络为基础,将其原ResNet骨干网络[9]替换为VoVNet57网络[10],用改进后的SOLOv2网络对病害进行检测与分割,依据分割的病害掩码,增添检测框,计算病害像素值,并转化为实际面积,完成量化.该方法实现了钢桥多病害快速、精确的分割与量化,为钢桥智能检测评估提供了技术支撑.
1 网络架构
1.1 SOLOv2网络
实例分割[11]既具备语义分割的特点(对图像中的每一个像素进行分类),也具备目标检测的一部分特点(定位出图像中同一类的不同实例).SOLO网络[12]是典型的实例分割网络,网络结构如图1所示,其利用全卷积网络(FCN)来输出具有N个通道的密集预测,并将图片划分成S×S的网格,每个网格都会预测C维输出以预测语义类别概率,其中C为类别数,H和W分别为特征图的高和宽.
图1 SOLO网络结构
SOLOv2实例分割网络是对SOLO网络的继承和发展,对其进行了2个改进:① 将原来的掩膜分支解耦为掩膜核分支和掩膜特征分支,分别预测卷积核和卷积特征;② 用矩阵非极大抑制代替SOLO网络中的非极大抑制,通过矩阵运算所有的操作都可以单阶段实现,不需要递归,比传统的非极大抑制快9倍.其核心思想是将分割问题转化为位置分类问题,根据实例的位置和大小,对每个实例的像素点赋予一个类别,从而达到对实例目标进行分割的效果.通过掩膜标签,对实例分割进行端到端的优化,无需进行传统的局部边框检测和像素点聚合,直接进行像素级别的实例分割,同时兼顾了分割的速度和精度.
1.2 改进的SOLOv2网络
所检测的3类病害中存在细长形状的焊缝,其在整个图像中占比很小,而背景部分相对较大,训练数据集中的类别不能被平均表示,学习过程中模型大多学习到的是背景特征,因此可能出现掩膜检测质量不高的问题.SOLOv2网络虽然可以对目标进行掩膜分割,但对小目标检测时也容易造成掩膜预测丢失的现象.
针对以上问题,对SOLOv2网络进行了改进,将其原ResNet骨干网络替换为VoVNet57网络,以提高对小目标的检测精度,改进后网络结构如图2所示.VoVNet网络继承了DenseNet网络[13]提取特征能力更强、参数少、计算量小的优势,并包含了一次性聚合(OSA)模块,即只在最后一次性聚合前面所有的层,解决了检测速度慢的问题,比ResNet性能更好.因此,将SOLOv2网络的骨干网络替换为VoVNet57,在提升目标检测精度的同时,也提升了检测速度,进一步提高了病害掩膜分割的质量.
图2 改进的SOLOv2网络结构
2 钢桥病害数据集的构建
2.1 图像数据的采集
病害数据主要通过自行拍摄获取,拍摄地点为天津市海河上多座钢桥,采用佳能EOS 7D数码相机进行拍摄,另有少量病害图像由桥梁检测单位提供.因实例分割对图像质量要求较高,故对收集的病害图像进行了筛选,保留涂层劣化图像104幅,腐蚀图像108幅,焊缝开裂图像102幅,共计314幅,图像数据示例如图3所示.
(a) 涂层劣化
2.2 图像增强
为提高网络的鲁棒性,对原始数据进行图像增强.这样处理一方面增加了图像的数量,缓解了病害样本少的情况;另一方面丰富了数据的多样性,抵消了图像采集中不同亮度和方向的影响,提高了对未知样本的预测能力.为避免对钢桥病害颜色特征产生影响,本实验采用旋转(90°、180°)、翻转、调整亮度3种方法,对数据进行增强.以腐蚀病害为例,其增强处理后的图像如图4所示.
(a) 原图
数据增强后图像数量扩充到1 570幅.此时,图像的像素值较大,占用内存较多,故将每幅大图像裁剪成多幅小图像,小图像分辨率为512×512像素.对裁剪后的小图像进行筛选,剔除不包含病害的图像及病害特征不明显的图像,保留3 241幅符合要求的图像创建数据集,其中涂层劣化图像1 091幅,腐蚀图像1 100幅,焊缝开裂图像1 050幅,按照4∶1的比例随机划分,得到训练集和测试集.
2.3 数据标注
采用Labelme[14]对钢桥病害图像进行人工标记,利用绘制多边形功能,对图像中所包含的病害逐一进行标注.每一个病害按轮廓绘制完成后,在弹出的标签窗口中,输入病害对应的标签名称,完成标注.每幅图像标注后,会生成相应的JSON文件,需将其与图片放在同一文件下,以便模型读取.将训练集病害图像全部进行标注后,数据集即制作完成.
3 网络训练及结果分析
3.1 实验环境
实验在Intel core i5-10300H和NVIDIA GeForce RTX 2060(6G)的电脑上进行,并基于Pycharm 2020.2编辑器及PyTorch 1.7.1深度学习框架,采用AdelaiDet实例级识别任务开源工具箱运行网络.
3.2 网络训练
网络训练前,需要在Detectron2平台中注册数据集,增添自定义数据集名称,设置环境变量,并加入数据类别,完成注册,然后修改相关的数据集配置文件和网络训练文件.网络的训练方式采用批量训练,考虑电脑性能,每一批包含4张图像数据,依据网络的收敛情况,将训练迭代次数设定为20 000次.在对比学习率0.01、0.001、0.000 1后,选取0.001作为最终训练的学习率.使用焦点损失函数,该损失函数是在标准交叉熵损失基础上修改得到的,可以通过减少易分类样本的权重,使得网络在训练时更专注于难分类的样本,缓解单阶段目标检测中正负样本比例严重失衡的问题.计算公式如下:
FL(pt)=-α(1-pt)γlog(pt)
(1)
式中,FL(pt)为焦点损失值;pt为样本预测正确的概率;pt越大,则1-pt越小,损失的权重越小,网络便可聚焦于难训练的样本;α为平衡因子,控制正负样本对总损失的共享权重;γ为焦点参数,调节简单样本权重降低的速率.本实验将α设定为0.25,γ设定为2.
3.3 网络训练结果
为了验证网络的性能,利用COCO标准指标中的平均精度(mAP)和交并比(IoU)对其进行评价,mAP值是通过先计算每个类别的AP值,再对所有类别的AP值求平均得到的;IoU为网络检测区域和真实标注区域的交集与并集之比,IoU的阈值从0.50到0.95依次递增,每隔0.05计算一次AP的值,取所有结果的平均值作为最终的结果.表1为本次实验网络所得的分割评价指标.
表1 改进的SOLOv2网络分割评价指标 %
由表1可知,网络对腐蚀的分割精度最高,涂层劣化次之,焊缝开裂最低.这是由于3种病害的不同特征导致的,涂层劣化和腐蚀通常呈片状出现,在图像中占比相对较高,而焊缝呈细条状,长宽比较大,图像中占比较小,图像占比影响网络的学习能力,故焊缝开裂分割精度较低,但其AP值也已达到49.19%.3种病害的mAP值为63.45%,且AP50和AP75分别达到了83.78%、67.04%,整体分割精度较高.为更直观地评价模型,引入精度-召回率曲线,计算公式如下:
(2)
(3)
式中,P为精度;R为召回率;TP为真正例数量,真正例指真实类别为正例,预测类别为正例的数量;FP为假正例数量,即真实类别为负例,预测类别为正例的数量;Fn为假负例数量,即真实类别为正例,预测类别为负例的数量.
在IoU为0.50时,3种病害各自的精度-召回率曲线,及在交并比为0.50、0.60和0.75时,网络对3种病害平均掩膜的精度-召回率曲线,如图5所示.由图5(a)可见,3种病害的精度较高,最终的召回率在80%以上,效果较好;由图5(b)可见,阈值由0.50依次增加到0.60和0.75,曲线逐渐内移,说明随着阈值的增大,检测效果逐渐降低.
(a) 各病害
因SOLOv2网络直接将分割问题转化为位置分类问题,故只预测出掩码和类别得分,无法生成检测框.为更好地对病害进行定位,依据网络分割的病害掩膜,找到掩膜的左上角和右下角坐标,为其增添检测框,同时,考虑一幅图像中可能有多个病害存在,为病害增加了编号,以便定位不同的病害,并对掩膜像素数进行了提取,网络输入图像和输出图像如图6所示.图6(b)标签上的数字由左到右分别表示病害编号、病害类别、识别准确率和掩膜像素数.由图可见,当一幅图像中出现多个病害时,模型均可检测出,且对于不完整的病害也具有较好的识别能力,分割效果较好.
(a) 输入图像
3.4 网络对比分析
为了验证所提出方法的有效性,将其与具有代表性的实例分割网络进行比较,包括SOLOv2网络、TensorMask网络[15]和BlendMask网络[16].对比网络同样在Detectron2平台上运行,所得到的AP值如表2所示.
表2 不同网络分割评价指标 %
由表2可看出,改进网络对3种病害的分割结果中,仅涂层劣化的AP值低于TensorMask和BlendMask网络,腐蚀和焊缝开裂均高于两者,尤其是焊缝开裂,高出20%以上,对于焊缝这种占比较小的目标,分割效果较好.同时,改进网络的mAP高于TensorMask网络7.56%,高于BlendMask网络6.78%,高于未改进的SOLOv2网络5.20%,AP50分别高于三者1.22%、4.06%、2.98%,AP75分别高于三者10.75%、11.12%、5.75%.较未改进的SOLOv2网络,各项AP值也均有提高,且未改进的SOLOv2网络训练迭代一次的时间为0.72 s,而改进网络训练迭代一次的时间为0.59 s.因此,本文提出的改进网络在钢桥病害分割问题上表现出良好的性能,并提高了检测速度.
4种网络的病害分割结果示例如图7所示,在第1幅图像的检测中,TensorMask将涂层劣化识别为裂缝,BlendMask对涂层劣化的分割不完整;第2幅图像中,前2个模型均出现了误检的情况,将非腐蚀区域检测为腐蚀;第3幅图像中,前2个网络将一条焊缝识别为多条进行分割,分割效果不佳.而本文网络均未出现上述情况,分割效果明显优于前两者,抗噪能力强,具有较好的鲁棒性.相较于未改进的SOLOv2网络,本文改进网络识别准确率有较大提升,且分割边缘更精细化.
(a) 输入图像
4 量化分析
4.1 病害量化
由图6可知,改进的SOLOv2网络可自动计算并输出图像中病害的掩膜像素数,考虑到像素数往往不可直接用于实际工程中,可通过计算预测分割掩膜的像素数,并利用图像像素数和实际区域间的关系,来量化病害的实际物理尺寸,以便于直接应用.根据像素数与实际尺寸之间的关系,建立如下关系式:
(4)
式中,Pb为病害的像素数;P1为图像的像素数;Sb为病害的实际物理面积;S1为图像的实际物理面积.由此可推出病害的实际物理面积公式:
(5)
以10 cm×10 cm的正方形框尺为基准,拍摄了80幅钢桥病害图像,然后将图像沿着框尺的边界线进行裁剪,获取真实面积为100 cm2的图像,作为最终的测试数据集.80幅图像中共包含83个病害,其中涂层劣化28个,腐蚀38个,焊缝开裂17个.依据《城市桥梁检测与评定技术规范》(CJJ/T 233—2015),腐蚀和涂层劣化用面积进行评价,而焊缝开裂用开裂长度进行评价,故在网络量化时,若检测结果为腐蚀或涂层劣化,则量化其面积值,若为焊缝开裂,则量化其长度.通常焊缝开裂长度可用其外接矩形长度代替,但考虑拍摄角度等因素,本文用焊缝的外接矩形对角线长度作为焊缝开裂长度,即检测框的对角线长度,以减小误差.由式(5)可推导出焊缝开裂实际长度与像素数间的关系式:
(6)
式中,Lb为焊缝开裂的实际物理长度;L为图像的实际边长.
根据式(5)、(6),对网络的可视化结果进行改进,以量化病害的实际物理尺寸.改进网络可以有效地检测病害,并为每个病害生成高质量的分割掩码,进而可以通过分析预测的分割掩码来得到每个病害的量化信息.典型病害的量化检测结果如图8所示,以腐蚀图像为例,NO.1表示图像中仅有1个病害,编号为1,rust表示病害类型为腐蚀,92%为预测概率,20.661 cm2为腐蚀的真实面积.
(a) 输入图像
4.2 病害量化性能评估
为了评估改进的SOLOv2网络对病害的量化性能,将模型输出的量化值与病害真实值进行比较,以验证病害量化结果的准确性.采用图像处理技术测得病害尺寸计算值作为病害的实际尺寸,即在Labelme软件中对上述80幅图像进行病害标注,提取病害的相关尺寸.利用式(5)、(6),分别获取腐蚀、涂层劣化病害的面积计算值和焊缝开裂的长度计算值,通过比较计算值和网络的量化值间的相对误差,来评估模型的量化性能.相对误差Er计算公式如下:
(7)
式中,Vq为病害的计算值;Vm为病害的量化值.依据式(7)计算出83个病害的相对误差,并绘制相对误差分布图,如图9所示.图9(a)展示了66个涂层劣化和腐蚀的病害面积相对误差分布,图9(b)展示了17个焊缝开裂长度的相对误差分布.
(a) 病害面积相对误差分布
由图9(a)可见,病害面积的最大相对误差为19.03%,最小相对误差为0.11%,相对误差集中在10%以内,其中有51个病害面积相对误差低于5%,仅有5个病害的面积相对误差超过10%,3个病害的面积相对误差超过15%.由图9(b)可知,焊缝开裂长度的最大相对误差为11.63%,最小相对误差为0.32%,且长度相对误差集中在8%以内,仅有3个焊缝开裂的长度相对误差高于8%,但仍低于12%,整体相对误差较低.综上,改进的SOLOv2网络在钢桥病害的检测和量化方面表现出了较好的性能.
5 结论
1) 本文改进网络得到的mAP值高于TensorMask网络7.56%,高于BlendMask网络6.78%,高于未改进的SOLOv2网络5.20%,提高了网络对焊缝开裂的检测能力,分割效果较好,也进一步提升了检测速度.
2) 提出的网络具有较好的检测和量化性能.将采用图像处理技术测得的病害尺寸实际值与模型输出的病害尺寸量化值进行对比发现,病害面积相对误差集中在10%以内,有77.27%的病害面积相对误差低于5%,仅有7.58%的病害面积相对误差超过10%,且焊缝长度相对误差集中在8%以内.
3) 提出的网络虽实现了钢桥病害的分割和量化,但本文的钢桥病害数据库尚不足,且样本中多病害同时存在的图像数量较少,故对多病害同时存在的情况,尚存在分割不佳的现象.同时,在量化时仅考虑了垂直拍摄的情况,未来将对数据库进行扩充,特别是多病害同时存在的图像数据,并考虑不同倾斜角度的影响,以进一步提高网络性能.