基于计算机视觉的钢结构表面锈蚀程度检测方法
逯鹏1,3 赵天淞2 王剑2 常好诵1,3 郑云1,3 刘小兰2
1.中冶检测认证有限公司
2.天津城建大学
3.中冶建筑研究总院有限公司
逯鹏,赵天淞,王剑,等.基于计算机视觉的钢结构表面锈蚀程度检测方法[J].工业建筑,2024,54(8):133-139.
摘 要
针对钢结构表面锈蚀损伤,传统的人工检测方法耗时、费力,且受检测人员技术水平限制。计算机视觉技术为钢结构表面锈蚀的检测和分类提供了一种快速准确的替代方法。目前常用的锈蚀程度检测技术多基于卷积神经网络结构,由于网络结构自身的缺陷,在进行锈蚀程度分类时存在忽略图像中部分锈蚀特征的问题,导致错误的检测结果。为此,提出了一种基于Vision Transformer网络结构的钢结构表面锈蚀程度识别方法,通过引入自注意力机制(SA)在进行特征提取的过程中保证数据的完整性,并在自建的锈蚀程度图像数据集上进行验证,该方法对锈蚀程度的分类准确率可达到90%。此外,还提出一种基于滑动窗口法的钢结构表面锈蚀程度检测方法,对待检测的钢结构图像进行切割,利用训练好的网络结构进行锈蚀程度检测,将检测后的图像重新拼接,实现钢结构表面锈蚀程度的可视化。
引 言
钢结构作为常见的结构类型,具有质量轻、塑性好、抗震性能良好等优点。近年来,越来越多钢结构建筑物出现在视野里[1]。锈蚀是钢结构常见的损伤形式,由锈蚀导致的工程事故时有发生。因此,在钢结构维护中需要重点检测钢结构锈蚀[2-3]。传统检测方法是人工目视检测,耗时、费力,时常伴随着一定的危险性,同时受工作人员技术水平限制,检测效率与结果不能得到很好的保证[4]。
随着计算机视觉技术的发展,通过对计算机进行训练的方式,可以达到模拟人类视觉,从图像中自动提取有用的信息[5-6]。其简便、快速、准确的特点,推动计算机视觉技术在多个领域中广泛应用,如人脸识别、无人驾驶等;也为土木工程结构的损伤检测提供了新的思路,如混凝土裂缝定性或定量的检测任务。
最初利用计算机视觉技术对钢结构锈蚀进行检测主要采用数字图像处理(DIP)的方式,通过对不同钢结构锈蚀图像的纹理及颜色属性进行分析,从而识别钢结构锈蚀损伤情况[7-10]。但是在拍摄过程中,图像背景往往存在大量噪声影响识别检测结果。Chen等[11]提出一种基于支持向量机(SVM)的钢桥锈蚀识别方法,将傅里叶变换与支持向量机结合,在识别处于照明不佳条件下的锈蚀图像上有良好的表现。Shen等[12]提出一种基于颜色和纹理特征的锈蚀识别方法,让锈蚀识别任务更好地适应各种各样的颜色背景,从而消除背景条件的影响。
近年来,卷积神经网络(CNN)逐渐被用来解决复杂的图像分类问题,且均有较好的表现[13],Atha等[14]提出对于钢结构是否锈蚀问题,使用两种卷积神经网络架构ZF Net和VGG16进行检测识别,结果表明,与传统的数字图像处理技术相比,CNN检测使用时间更短,且有更好的准确率。Wang等[15]设计名为VGG-Corrosion的改良CNN架构来评估耐候钢腐蚀等级,腐蚀等级评估的平均准确率为90.96%,Zhang等[16]将通道注意力机制模块嵌入神经网络结构中,使网络结构更注意锈蚀区域的表观特征,有效提升了识别准确率。Xu等[17]利用集成卷积神经网络(ECNN)对钢结构的锈蚀等级和锈蚀率进行识别,识别准确率与传统网络结构相比有了更好的提升。
在钢结构锈蚀的检测任务中,如何更准确地区分不同锈蚀程度的表观特征状况(即纹理、颜色和其他明显特征)一直是学者们致力于研究的内容。尽管已提出许多基于CNN的分类网络,在钢结构表面锈蚀程度检测任务上也表现得十分出色,但CNN网络结构中,局部感受野的限制常影响检测任务的准确性[18]。局部感受野指的是卷积层中每个神经元与输入数据相连接的区域大小,它决定了输入数据的感知范围和抽象程度,局部感受野在每个位置上提取的特征是基于局部区域的,在进行锈蚀程度检测的过程中,这可能会忽略图像中存在的部分锈蚀特征,导致对图像全局特征的检测错误。目前,已经提出的Vision Transformer架构通过引入自注意力机制(SA)检索全局上下文信息(GCI),很好解决了CNN中局部感受野的限制。为此,提出基于Vision Transformer的钢结构表面锈蚀程度分类网络,增强网络识别不同锈蚀表观程度的能力,提升检测的准确率。
本文提出的检测方法分4个步骤:首先,建立用于深度学习训练的钢结构表面锈蚀程度数据集;其次,在建立好的数据集训练集上,对基于Vison Transformer的钢结构表面锈蚀程度分类网络进行训练;然后,利用滑动窗口法对待检测的图像进行图像分割,以分割后的图像作为输入,利用训练好的分类网络对钢结构表面锈蚀程度进行检测,检测结果以不同颜色的透明框表示不同的锈蚀程度;最后,将检测后的图像进行重新拼接,实现对钢结构表面整体锈蚀程度检测的可视化,更直观地了解钢结构表面发生的不同程度的锈蚀情况。检测的流程如图1所示。
图1 钢结构表面锈蚀程度检测流程
基于Vision Transformer的钢结构表面锈蚀程度分类网络
1.1 建立钢结构表面锈蚀程度分类数据集
为了建立基于Vision Transformer的钢结构表面锈蚀损伤识别与程度分类技术,首先需建立一个包含足够数量钢结构表面不同程度锈蚀图像的数据集用于算法学习。数据集分为训练集和测试集,训练集用于算法模型训练,测试集用于测试训练后的算法模型对锈蚀程度分类的准确性。
本文利用相机对既有钢结构(如桥梁、建/构筑物、广告牌、楼梯、护栏等附属构件)中存在表面锈蚀损伤的区域拍照,如图2所示;并依据现行标准中锈蚀程度分类标准对收集的图像进行定性分类,建立分类的钢结构表面锈蚀程度数据集,制作流程如图3所示。
图2 部分锈蚀图像
图3 数据集制作流程
为避免图像分割时遗漏图像边缘信息,对图像分辨率进行统一缩小处理,调整后的图像分辨率为5888×3840;此外为了加快读取图像速度,采用opencv算法将每张图像切割成345张分辨率为256×256的图像,并通过人工方式,筛选出像素模糊或与锈蚀无关的部分。
我国GB/T 8923.1—2011《涂覆涂料前钢材表面处理表面清洁度的目视评定 第1部分:未涂覆过的钢材表面和全面清除原有涂层后的钢材》[19]对钢结构表面锈蚀程度进行了分类,本文参考该分类标准对钢结构表面锈蚀程度进行定性分类,分为轻微锈蚀、中度锈蚀、严重锈蚀三类,具体分类标准见表1。
表1 锈蚀程度分类标准
依据标准分出的三类锈蚀程度各包含图像1000张左右,合计2968张。以8:2的比例进行训练集、测试集的划分。
1.2 网络结构建立
深度学习中经典的网络结构有VGG16、ResNet50和MobileNetV2等。VGG16又称使用块的神经网络结构[20],它通过堆叠多个3×3卷积核来代替大尺度卷积核,以此达到减少所需参数的目的。虽然减少了参数但是具有相同的感受野;ResNet50又称残差神经网络[21],其特点是在保证了模型深度的同时,通过引入残差块的形式,避免了梯度消失问题;MobileNetV2网络是一种新型的轻量级网络结构[22],具有更小的模型和更快的学习速度。
Transformer网络结构的最初提出是针对自然语言处理(NLP)领域的,并且在NLP领域大获成功,Dosovitskiy等[18]提出了全新的Vision Transformer网络结构,首次将Transformer网络结构应用于计算机视觉领域。Vision Transformer将输入的图像划分为一系列的图像补丁(image patches),并将这些补丁转换为序列数据。然后,使用多层编码器来对这些序列数据进行处理。通过多层自注意力机制,模型能够在序列中捕捉全局上下文信息,同时保留了补丁之间的相对位置关系。最后,Vision Transformer通过全连接层将序列编码映射为不同的类别标签。
为了对比不同网络结构在处理钢结构表面锈蚀分类任务中的优越性,本文利用Vision Transformer搭建用于识别钢结构表面锈蚀程度问题的网络结构(图4),同时利用VGG16、ResNet50、MobileNetV2三种网络结构对钢结构表面锈蚀数据集进行学习,观察不同网络结构识别的准确性。
图4 表面锈蚀程度分类网络结构
本文应用上述自制数据集,基于pytorch开源数据库搭建深度学习算法框架。试验环境CPU为Intel(R) Core(TM) i5-12400F,GPU为GeForceRTX3070Ti。试验所使用的超参数如下:训练周期200,批量大小为16,学习率为0.001,分类函数为softmax函数,优化方法为随机梯度下降(SGD)算法。
1.3 算法评价
1.3.1 评价指标
利用不同算法识别出的结果分为TP、FP、FN、TN四种,分别表示识别结果为正例而实际结果也为正例(TP);识别结果为正例而实际结果却为负例(FP);识别结果为负例而实际结果为正例(NP);识别结果为负例而实际结果也为负例(TN)。
本文选用准确率(Accuracy)、召回率(Recall)、精确率(Precision)、F1值及混淆矩阵,作为检测不同锈蚀程度神经网络模型的评价指标,对模型进行分析,评价指标的指定如下。
1)准确率是指正例和负例中预测正确数量占总数量的比例,是所有预测样本中预测准确的占比,其计算方法为:
2)召回率为正例的样本中,被预测正确的正例占总实际正例样本的比例,是评估所有实际正例是否被预测出来的覆盖率占比,其计算方法为:
3)精确率为正例的样本中,其中真正的正例占预测为正例样本的比例,用此标准来评估预测正例的准确度,其计算方法为:
4)F1值。通常所搭建的算法均希望精确率越高越好,而召回率也越高越好,但事实上两者在某些情况下存在矛盾,为调和精确率和召回率,提出F1值作为综合指标,平衡准确率和召回率之间的相互影响,以较为全面地评价分类结果,其计算方法为:
1.3.2 结果及分析
测试集中的图像是未经过搭建模型训练的,但已具有锈蚀程度的标签。利用训练好的网络模型对测试集中的图像进行识别,并与前期标签结果进行比对,可以评价网络模型识别锈蚀特征的准确性,测试集准确率直观地反映了模型的识别能力。本文使用的4种神经网络的测试集准确率见图5。可以看出,VGG16、ResNet50、MobileNetV2三种神经网络结构在经历训练后准确率达到80%左右,使用Vision Transformer搭建的网络在经过30个周期的训练后准确率可达90%左右。
图5 测试集准确率
4个网络结构模型的召回率、精确率、F1值见表2。本文提出的模型在验证集上的三项评价指标分别为召回率95.15%,精确率93.42%,F1值94.28,与其他3种经典卷积神经网络结构相比,均有一定的提升,说明本文提出的网络结构在钢结构表面锈蚀程度分类任务上有更高的准确率。
表2 评价指标结果
混淆矩阵用来表示网络结构模型的分类精度,是将检测结果可视化的一种常用手段。4种网络结构模型的混淆矩阵图如图6所示。图中,横坐标代表预测标签,纵坐标代表真实标签,对角线上的数字表示预测正确的图片张数,不在对角线上的数字表示预测错误的图片张数及对应的真实标签。在4种网络模型中都针对轻微锈蚀及中度锈蚀存在一定数量的错误判断,这与两者的表观状态存在过多的相似性有关。如图6所示,在测试集上Vision Transformer网络结构有更少的预测错误数量,说明Vision Transformer网络结构在处理钢结构表面锈蚀程度分类任务上更优于其他神经网络结构,有更好的分类准确性。
图6 Vision Transformer、VGG16、ResNet50、MobileNetV2网络结构混淆矩阵图
基于滑动窗口法的钢结构表面锈蚀程度检测方法
2.1 滑动窗口法
滑动窗口法是计算机视觉中常用的检测方法,其过程是在原始图像上移动一个窗口进行切割,在整个原始图像被扫描之前,窗口以固定大小的像素在水平和垂直方向上移动。为了完成对钢结构表面锈蚀的程度检测任务,本文利用滑动窗口法,对钢结构表面图像进行切割,并利用已练好的锈蚀程度分类网络模型,对切割后的图像进行锈蚀程度识别。
表面锈蚀程度的检测结果以不同颜色的透明框的形式表现,对于未发生锈蚀或处于锈蚀边缘的图像,以原图表示;轻微锈蚀以绿色表示,中度锈蚀以蓝色表示;严重锈蚀以红色表示。滑动窗口法检测的流程如图7所示。最后,将全部窗口的检测结果重新进行拼接,完成对钢结构表面锈蚀程度检测的可视化输出。
图7 滑动窗口法检测流程
2.2 检测结果
选取现场拍摄的一张图像进行检测。图像分辨率为6000×4000,选用的滑动窗口大小为600×400,经过检测的结果如图8所示。
图8 检测结果
根据表面锈蚀程度分类网络的检测结果,在检测结果图中对错误标注的区域进行标记,如图9所示。可知:错误的标注部位多为滑动窗口法分割后,图像边缘存在过多影响锈蚀程度分类的信息,这些信息可能来源于背景像素值或存在更严重的锈蚀程度的像素值,从而导致检测错误。这样的检测错误可能与滑动窗口法分割图像时选择的滑动窗口大小有关。另外,在检测图像中存在部分未锈蚀的区域,分类网络均将其定义为轻微锈蚀的结果,这样的检测结果应被归类为错误的结论,需在后期算法调整中进行更正。
图9 错误检测部位标记
结 论
针对钢结构表面锈蚀智能识别问题,提出一种基于Vision Transformer网络结构的钢结构表面锈蚀程度分类识别方法,并利用滑动窗口法作为分割工具,完成对钢结构表面的锈蚀程度检测。研究结论如下:
1)提出的基于Vision Transformer网络结构可将识别准确率提升至90%以上,说明Vision Transformer网络结构在处理钢结构表面锈蚀程度分类问题上有更好的分类准确率;
2)通过混淆矩阵对测试集结果进行评价,在区分表观相似性较强的轻度锈蚀和中度锈蚀时有较好的表现,但仍存在错误判断的情况;
3)使用滑动窗口法作为工具,将待检测的钢结构图像进行分割,并使用训练好的Vision Transformer网络结构进行锈蚀程度检测,实现了钢结构表面锈蚀程度的可视化,为钢结构表面锈蚀程度评定提出了智能化方法;
4)由于实际检测过程中存在多种复杂背景,影响检测结果的准确性,因此,本文在制作数据集时选择忽略背景及未锈蚀部分的图像分类,并选择在滑动窗口法分割图像后进行人工的背景筛选,这种做法使整个检测过程并不能达到完全的自动化和智能化。今后可以针对这一问题开展更深入的研究。
注:受限于推文篇幅,文章参考文献未标注,详见原文。
常好诵,正高级工程师,一级注册结构工程师,一级注册建造师(房建)。中国钢结构协会特邀常务理事,焊接与连接分会常务副理事长、技术专家,中国工程建设标准化协会标准审查专家、建筑物鉴定与加固专业委员会副主任委员,中国金属学会冶金建筑分会主任委员,住建部建筑维护加固与房地产标准化技术委员会委员,中国建筑学会工程诊治与运维分会秘书长,《工业建筑》期刊编委,北京市房屋建筑应急评估专家,泉州欣佳酒店“3.7”坍塌事故国务院调查组技术组成员。
主要研究方向为既有建筑结构可靠性鉴定,钢结构疲劳,结构振动控制,结构抗震性能评价及提升。参与完成省部级课题5项、中国工程院战略咨询项目2项;主持完成“十三五”重点研发计划项目1项、课题1项;主持完成科技助力经济2020专项1项。目前主持国家自然科学基金面上项目1项,主持中冶集团181课题1项,作为科研助理在研中国工程院战略咨询项目1项。参编或主编全文强制规范2部、国标和行标5部、团体标准8部,在编各类标准10部。出版编译著作3部,发表论文30余篇。授权发明专利19项,授权实用新型专利18项。获国家科技进步二等奖2项,省部级奖项11项,标准科技创新奖1项。2023年获评中国钢结构协会“钢结构杰出人才奖”。
逯鹏,博士,高级工程师,毕业于天津大学,现任中冶检测认证有限公司工业建筑事业部结构鉴定三部主任工程师。兼任中国金属学会冶金建筑分会副秘书长,天津城建大学校外研究生导师,北京市科学技术委员会、中关村科技园区管理委员会科技项目评审专家。主要从事建构筑物性能诊治及智能化技术研发与推广工作,在钢结构耐久性评估、智能化检测与评价等领域取得多项成果,参与完成国家及省部级科研项目10余项、在研中国工程院战略咨询项目2项,主编或参编行业标准1部、团体标准6部,参编专著1部,发表论文10余篇,获中国钢结构协会科学技术进步奖一等奖1项、二等奖2项。
推荐阅读
- END-
融媒体中心
您可以通过微店购买我们的期刊:
你“在看”我吗?