基于YOLO v3的钢轨螺栓组件故障检测方法

2021-05-25 09:11邓三鹏祁宇明周裔扬
机器人技术与应用 2021年1期
关键词:钢轨螺栓组件

王 振 邓三鹏 祁宇明 周裔扬

(天津职业技术师范大学机器人及智能装备研究院,天津,300222)

0 引言

钢轨螺栓组件指的是钢轨接头处用于固定轨道夹板的螺栓、螺母、垫圈的组合体,它是保证两段钢轨安全连接的关键,因为重载火车高速碾压和各种不确定因素的作用,造成组件出现各种故障,典型的有扭紧力下降、螺栓断裂、螺母裂纹或缺失、垫圈断裂或缺失、组件整体缺失。许多火车事故都是由于钢轨连接处的问题引起的[1],因此对影响钢轨接头处安全的钢轨螺栓组件故障进行目标检测算法研究具有重要价值。

轨道螺栓组件位于钢轨的侧面,如图1所示。在铁路轨道中,每隔12.5m或25m有一段钢轨接头,需要轨道螺栓组件连接固定,这导致螺栓组件的检测和维修的工作是间断不连续的。传统的轨道螺栓组件识别与检测依赖于人工,需要工人每每俯身弯腰察看,这要求工人需要大量的先验知识、技巧以及体力、耐力要求。虽然要求高,但是这种检测效果不是很好,效率十分低下。

图1 螺栓组件位置图

基于卷积神经网络(CNN)的目标检测算法,通过将目标检测与深度学习相结合,采用相关数据进行目标特征自动学习的方式,可以进行多样化背景与迁移场景的目标检测。基于CNN的目标检测算法可以分为两类:一类是以R-CNN系列为代表的基于候选区域的目标检测算法,这类算法的特点是检测精度高、速度慢;另一类是以YOLO(You Only Look Once)系列、SSD[2]系列为代表的基于回归的目标检测算法,这类算法的优点是实时性好,缺点是检测精度相对偏低。

YOLO v3是YOLO系列目标检测算法的第三版,相比于上述第一种检测方法速度慢的特点,YOLO v3[3]既可以保证检测精度,也可以保证检测速度。这类针对小目标物体的检测,国内外诸多研究者提出了不同的方案。鞠默然等[4]在YOLO v3的基础上对模型的网络结构进行了改进,有效提高了对卫星拍摄图像中小目标物体的检测能力。岳晓新等[5]使用聚类算法对训练数据集进行聚类分析,并引入新的损失函数运行道路小目标检测算法,能够大大提高小目标检测精度和速度,并有效降低小目标漏检率。本文综合考虑YOLO v3在小目标检测领域的各种应用,采用一种基于YOL0v3的钢轨螺栓组件故障目标检测算法。

1 YOLO v3 目标检测算法

YOLO v3的网络结构如图2所示,主要包括Darknet-53网络与YOLO层。Darknet-53作为骨干网络主要用于提取图像特征,它是全卷积网络,包含53个卷积层,并引入了残差结构。当输入图像尺寸为416×416时,Darknet-53特征提取网络输出三个尺度的特征图,大小分别为13×13、26×26、52×52。将三个不同尺度的特征图通过FPN(Feature Pyramid Network)进行融合,利用多尺度策略帮助网络模型同时学习不同层次的特征信息,最后将融合后的特征输入YOLO层进行类别预测和边界框回归。YOLO v3采用先验框(anchor box)机制来预测目标边界框,3个尺度的特征图、每个位置使用3个先验框,所以使用K-means得到9个先验框,对标注边界框尺寸进行K-means聚类,得到一组尺寸固定的初始候选框。

图2 YOLO v3的网络结构

YOLO v3核心的运行过程为:

1)输入一张任意大小图片,在保持长宽比不变的情况下,缩放宽和高达到416,生成416×416的新图,作为网络的输入。

2)运行网络。YOLO v3的卷积神经网络输出把图片分成S×S个网格,输出有3层特征图(featue maps),每层特征图有S×S个网格,分别为13×13、26×26和52×52),奇数的网格导致每个网格都会有个中心位置,然后这些网格负责去检测那些中心点落在该格子内的目标。

3)通过非极大值抑制(NMS),筛选出框(boxes)、输出框(class_boxes)和置信度(class_box_scores),再生成类别信息(classes),生成最终的检测数据框。

4)调用画图函数绘制目标检测的结果输出。

整个YOLO v3的运行逻辑如图3所示。

图3 YOLO v3运行逻辑

2 实验及分析

2.1 实验数据准备

对于训练样本标注问题,因为做的是钢轨螺栓组件的检测,目前并没有相应的开放数据集可以供直接使用。所以,笔者选择自己制作钢轨螺栓的专业检测数据集,一共收集了1505张图片,分为几大类:有扭紧力下降(标签为:loose)155张,螺栓断裂(标签为:Boltbreak)200张,螺母裂纹(标签为:Nutcrack)200张,螺母缺失(标签为:Missingnut)119张,垫圈断裂(标签为:Washerfracture)400张,或垫圈缺失(标签为:Missinggasket)231张,组件整体缺失(标签为:Overallmissing)100张,螺母和垫圈都消失(标签为:NWdisappear)100张,如图5所示。

图4 待训练图片部分类别

利用labelimg软件进行人工标注,80%数据用于训练,20%用于测试。标注之后产生的xml文件,分开存放用以下一步使用。人工标注过程和xml文件包含信息见图5。

图5 标注过程及标注信息

笔者通过标注得到1505个xml文件标注数据,分为1204个训练用数据和301个测试用数据。

2.2 模型训练与实验环境

模型训练参数主要如表1所示。使用YOLO默认的输入大小,在训练开始阶段,衰减系数设置为0.0005,学习率设置为0.0001;在训练迭代次数达到8000和14000次时,将学习率降低至初始学习率的10%。模型迭代参数(epochs)为80,批处理参数(Batch_size)为4,其他参数采用YOLO v3模型中的参数。

表1 模型参数

本实验环境使用的电脑配置为:运行环境为64位win10操作系统、PyCharm 、TensorFlow、CUDA10.0、cuDNN7.1、NVIDIA GeForce RTX 2060(6G)。

2.3 结果分析

实验检测效果如图6所示,组件的各种状态可以较好地检测出来。

图6 部分检测识别效果

性能分析见表2。在实验验证的时候,使用同样的数据集采用不同的目标检测算法进行对比实验,横向对比其他的目标检测方法可以看出,使用YOLO v3是相对速度最快的方法了。表2中的mAP和FPS,分别为目标检测领域衡量检测精度的均值平均精度和反应检测速度。

表2 误检、漏检和mAP数据对比

表3 实验AP 对比 单位/(%)

分析数据可以看出,YOLO v3相对于Faster R-CNN和SSD有较好的识别精度和速度。各种故障可以较好地检测出来,但是对于扭紧力下降的故障的识别效果不好。这主要有几方面的原因:

1)所拍摄图片中螺纹分辨率太小。对于CNN来说,将这么小的图像进行卷积压缩之后,可能就无法提取有效的画面特征信息。

2)摄像头拍摄角度限制。若此,CNN检测提取出来的特征就和之前学习的特征有所区别。

3 结语

本文将YOLO v3应用到钢轨螺栓检测领域,提出了一种基于YOLO v3的轨道螺栓组件的实时检测方法,从实验数据对比来看,基于YOLO v3的轨道螺栓组件检测方法可以实现对钢轨螺栓的实时有效检测。但是也存在一定的问题,比如螺栓上细小的螺纹缺陷没有被检测出来,应用的YOLO v3算法目标检测的均值平均精度为86.106%,FPS为38.21帧/s。横向对比Faster R-CNN和SSD均有良好的评价指标。在接下来的工作中,笔者将继续采集更多的钢轨螺栓组件图像来扩充现有数据集,以便更好地进行工程应用。

猜你喜欢
钢轨螺栓组件
M16吊耳螺栓断裂失效分析
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
预紧力衰减对摩擦型高强螺栓群承载力的影响
U盾外壳组件注塑模具设计
螺栓紧固杂谈
钢轨焊后双中频感应加热工艺研究
高速铁路钢轨疲劳过程的超声非线性系数表征
国内外高速铁路钢轨性能对比研究
风起新一代光伏组件膜层:SSG纳米自清洁膜层