基于YOLOv5s 的电梯钢丝绳表面损伤检测算法研究
2023-06-21蔡林峰杨泞珲徐艺菲雷斯越贺渝龙张金富龙邹荣
蔡林峰, 汤 斌, 杨泞珲, 徐艺菲, 雷斯越, 贺渝龙, 张金富, 龙邹荣
(重庆理工大学重庆市光纤传感与光电检测重点实验室, 重庆 400054)
0 引 言
钢丝绳作为电梯承重的核心装置,在电梯工作期间,钢丝绳主要承受拉、接触、弯曲3 种应力,如长期不保养则可能会出现断丝、断股等情况。 一旦例行安检时未发现上述问题,将增加安全事故的风险,甚至会危及乘客的生命安全。 因此,钢丝绳损伤的表面在线检测有重要意义。
目前,电梯钢丝绳检测中最常用的方法是目测法和电磁检测法。 目测法通过肉眼观看运行中的钢丝绳状态,这种方法直接有效,但最大的缺点是耗时比较长,且检测人员在电梯井昏暗环境下,工作效率较低再加上可能出现的疲劳情况,极难对钢丝绳质量进行全面的检测。 此外,由于是人工检测,连续检测的间隔时间较长,在间隔时间内出现故障的概率较高。
电磁法是一种非接触式的检测测量法,通过检测钢丝绳的漏电磁,判断是否有损伤,其缺点在于抗干扰能力太弱。 例如,检测人员在进行电磁检测时,其输出信号极其容易被环境因素影响,进而会严重损失检测结果的精确性。 如果检测人员忽略了外界的环境因素,信息就易出现失真,不准确的信息会导致误判,非常不利于电梯的安全,且利用电磁检测技术检测时,需要较多大质量的设备,不易携带。 此外,电磁检测技术无法对电梯钢丝绳微小的损伤作出检测,这些微小损伤会给电梯安全带来潜在的隐患。
随着人工智能算法的出现和快速发展,为钢丝绳表面损伤检测提供了高效、精准的解决方案。 通过摄像头采集钢丝绳运行中的图片,再结合人工智能算法同步检测,可以实现钢丝绳表面损伤的在线实时检测。 目前,深度学习算法广泛运用于工业检测中,但在钢丝绳表面损伤检测领域还鲜有人研究。张永军等[1]基于卷积神经网络对工业产品进行表面缺陷检测;魏若峰[2]对铝型材表面损伤识别技术进行研究;陈亮[3]等利用深度学习算法对尿素泵的表面损伤进行检测;沈涛[4]基于深度学习对小目标表面瑕疵检测系统进行研究。
基于此,本文提出使用目标检测人工智能算法——YOLO 进行钢丝绳表面损伤在线检测研究。YOLO 算法于2016 年由Redmon[5]等人提出,该算法使用一个模型同时实现了目标检测的分类和定位,已被广泛应用于各种目标检测领域。 经过多年来Redmon 等人的不断研究,提升了算法效率和精度,相继得到v1、v2、v3、v4 总共4 个版本。 YOLOv5是由Ultralytics 公司于2020 年5 月在YOLOv4 框架的基础上提出的。 YOLOv5 借鉴了CutMix[6]方法,采用Mosaic 数据增强的方式,有效解决了小对象检测问题。 YOLOv5 图像推理速度快,最快可达到0.007 s,即每一秒可以处理140 帧,同时其体积与YOLOv4 相比更为小巧,YOLOv5s 模型的权重数据文件大小为27 MB,仅为YOLOv4 的1/9[7-8]。 本文实验选择YOLOv5s 作为钢丝绳表面损伤检测的网络模型,使用该网络对线下收集钢丝绳表面损伤训练集进行训练,最后利用训练好的网络模型对钢丝绳表面损伤测试集进行检测。
1 YOLOv5s 网络模型
由图1 可知,YOLOv5s 模型主要分为输入端(Input)、骨干网络(Backbone)、颈部(Neck)、输出端(Output)4 个部分。 其中:
图1 YOLOv5s 网络模型Fig. 1 YOLOv5s network model
(1)输入端包括图片尺寸处理、Mosaic 数据增强、自适应锚框计算3 个部分。 Mosaic 数据增强方式对小对象的检测尤为理想,符合本文对钢丝绳表面损伤的检测需求。
(2)骨干网络包含Focus 结构和CSP 结构。YOLOv3[9-12]和v4 的版本没有Focus 结构,其中的关键步骤是切片操作,包含基本的4 次切片操作和进一步的1 次32 个卷积核的卷积操作。 例如:把416×416×3 的原始图像放入到Focus 结构中。 首先通过切片操作,变成416×416×12 的特征图,再进行卷积核的操作,最后变成416 ×416 ×32 的特征图。与YOLOv4 不同的是,YOLOv5 在主干网络中采用了CSP1_X 和CSP2_X 这2 种CSP 结构。 其中CSP1_X 应用于骨干网络,CSP2_X 应用于颈部。
(3) 颈部采用了PANet +SPP 模块的结构。PANet(PathAggregation,路径聚合网络)[13]是自顶向下的,首先获得位于高层的特征信息,然后将其与处在不同层的CSP 模块的输出特征进行聚合,再通过自底向上的特征金字塔结构,从下到上聚合浅层特征,可以达到将处于不同层的图像特征进行充分融合的效果。 空间金字塔池化(Space Pyramid Pooling,SPP)模块首先采用4 种不同大小的核进行最大池化操作,然后进行张量拼接。
(4)输出端:YOLOv5 使用GIOU_Loss[14]作为损失函数,改进了YOLOv3 中IOU_Loss 边界框不重合的情况。
2 实验结果与分析
2.1 系统整体设计方案
如图2 所示,实验设计了一种基于YOLOv5s 网络模型的钢丝绳表面损伤在线检测系统。 首先在实验室工作机位上利用YOLOv5s 训练钢丝绳表面损伤检测模型,然后将训练好的模型部署到PC 端,接收摄像头实时采集的钢丝绳图片,利用无线传输的方式将图片输入到PC 端。 PC 端利用训练好的表面损伤检测模型,检测图片中的钢丝绳表面是否存在损伤。
图2 系统整体框架Fig. 2 System Framework
2.2 实验数据集及实验环境
实验在线下收集了600 张钢丝绳表面损伤的图像,制作了500 张训练集和100 张测试集,使用LabelImg 软件对训练集中的钢丝绳表面损伤进行了标注,图3 所示为手动标注结果。 标注时需要注意:
图3 标注结果图Fig. 3 Annotation result graph
1)标注区域不能过大,如果标注时包括了一些非缺陷区域,会大大降低训练结果的准确性;
2)训练样本的数量不能过少,训练样本越多,最后训练得到的网络模型精度会越高,最后测试的结果也会越准确,反之,如果训练的样本数量太少,导致过拟合,会直接影响训练效果。
实验运行环境:操作系统为Windows10,GPU 为NVIDIA GeForce RTX 3070,具体运行环境配置见表1。
表1 实验运行环境配置Tab. 1 Experimental operating environment configuration
在模型训练阶段,迭代批量设置为8,总的迭代次数为300 次,初始学习率为0.01,衰减系数设置为0.005。
2.3 测试结果分析
模型训练完成之后,在模型中输入测试数据集,实验结果如图4~图6 所示。 图中数值表示置信度。
图4 单个损伤测试样本Fig. 4 Individual defect test sample
图5 多个损伤测试样本Fig. 5 Multiple defect test samples
图6 现场测试样本Fig. 6 Field test samples
本文采用GIOU损失和Average Precision(AP)作为评估模型的评价指标。 YOLOv5 使用GIOULoss作为Bounding Box 的损失,Box 为GIOU 损失函数均值,方框越小说明检测效果越好。 具体计算如式(1):
其中,C为两个框的最小外接矩形, 为Groundtruth;B为边界框;B∪Bgt表示两个边界框的并集。 图7 是YOLOv5 训练中GIOU随训练次数的损失结果。
图7 GIOU 损失结果图Fig. 7 Loss curve of GIOU
本文采取IOU阈值为0.5 作为绘制precisionrecall(PR) curves 的基准,P - R曲线如图8 所示。PR曲线与坐标围成的面积表示AP值大小,AP值越大表示模型精度越高,性能越好,计算公式如式(2):
图8 P-R 曲线Fig. 8 P-R curves
其中,TP表示将正确类预测为正确类别数,FP表示将负类别预测为正确类别数。 本文选取0.5 作为特定的IOU阈值,当预测边框的IOU≥0.5,则认为可以正确检测到损伤。 在该标准下可以获得Precision、Recall的值。 其中,Precision表示在识别出来的图片中,正样本所占的比率,Recall表示正样本被预测为正类图片占所有测试集图片的比率。 总体而言,本文采用Precision(P)、Recall(R) 来评估所提出的方法。 各项评价指标的计算公式如式(3)、式(4):
从图8 的PR曲线可以看出,所用YOLOv5s 网络模型结果比较理想。 训练完成之后,对训练好的模型进行测试,平均检测速度达到了6.7 FPS,其测试精度达到了95.3%。
3 结束语
综上所述,为了实现钢丝绳表面损伤检测的准确性、实时性,并且在复杂的检测工作中把人工解放出来,提出了一种基于YOLOv5s 网络的钢丝绳表面损伤检测算法。 实验结果表明,利用YOLOv5s 网络对钢丝绳表面损伤进行检测的方法准确率高、计算速度快,能为电梯事故的预警和报警提供有效的参考依据,有较强的实际意义。 但是受到时间以及环境的限制,该算法仍然存在一定的局限性,目前仅仅只是在实验的环节通过了验证,后期会将完善后的算法部署到云服务器端,并且在检测钢丝绳表面损伤的区域安装摄像头,对钢丝绳表面损伤的信息进行实时采集,然后将信息传至云端进行损伤分类,损伤程度评估处理,把处理结果返回到检测中心进行实时查看,不断验证完善,最后推广使用。