一种基于深度学习的地铁车体螺栓松动检测方法
2021-11-19杨培盛王华军高春良
杨培盛 王华军 张 用 杨 凯 高春良
(1.济南轨道交通集团建设投资有限公司 山东 济南 250000;2.北京主导时代科技有限公司 四川 成都 610000)
0 引言
螺栓紧固件具有能拆卸且能重复使用的优势,在地铁领域得到了大量应用。然而,由于地铁车体螺栓长期受到交变力作用的影响,易造成不同程度的松动或丢失故障,若不及时发现并处理,将直接影响行车安全。而传统的通过人工排查螺栓故障的方式不仅效率低下,且极易产生视觉疲劳,发生误检、漏检等情况。
为解决上述问题,本文根据部署在轨旁的面阵相机采集到的地铁车体的图像,引入YOLOv3网络对车体各关键部位螺栓区域进行粗定位和精定位;引入U-net[1]语义分割模型并改进训练方式,对定位到的螺栓防松标记线进行分割,在此基础上利用RANSAC[2]算法对标记线进行直线拟合并根据直线倾斜角度来判定螺栓是否存在松动故障;最后,对所提出方法的各部分分别进行试验,结果证明了方法的有效性。
1 螺栓区域定位
部署在轨旁的多只面阵相机能够对地铁车体进行360°拍摄,图1展示了部署在轨旁的相机分布,以此采集到的图像均为高清图像。从原始高清车体图像中对螺栓区域准确定位是螺栓松动检测的前提,若直接对螺栓定位不仅对硬件要求极高,定位准确度也难以保障。因此,提出对螺栓区域的定位分为两个步骤:(1)首先对车体图像中螺栓所在的关键区域进行定位;(2)在关键区域的基础上对螺栓区域进行精确定位。
图1 部署在轨旁的面阵相机分布
1.1 关键区域定位
将车体左右侧面、车体底部图像的相关待检测关键区域按照所在区域特征进行划分,不同关键区域包含螺栓的数量、类型不等(见图2)。在对车体关键区域进行划分的基础上,利用轨旁面阵相机采集到不同时段、不同光照条件下的地铁车体高清图像200张。利用labelImg图像标注工具对缩放后的车体图像关键区域进行标注,以此作为输入训练YOLOv3网络对车体待检测的关键区域进行定位。
图2 地铁车体关键区域示例图
1.2 构建螺栓区域定位数据集
在此基础上,利用输出定位框的相对坐标信息从原始高清图像中截取定位到的所有关键区域,再次利用labelImg图像标注工具对关键区域中的螺栓区域进行标注,以构建螺栓区域定位数据集。利用该数据集训练YOLOv3螺栓区域定位网络对关键区域内的所有螺栓进行定位[3-4]。表1为数据集中包含需要进行螺栓检测的关键区域的分布及螺栓分布。
表1 地铁车厢关键区域的分布及螺栓数量 /个
2 螺栓松动检测
在对车厢各关键区域螺栓进行准确定位的基础上,判定每一个螺栓是否存在松动的故障是地铁车体螺栓松动检测的关键。
2.1 标记线分割
(1)分割模型
为便于检修中对螺栓松动情况进行判断,地铁维修人员在车辆螺栓紧固完成后会对车体每个关键区域内的螺栓表面涂画防松标记线。若后期检修中发现螺栓标记线倾斜,则认定该螺栓存在松动故障。车体螺栓区域图像具有目标小、背景复杂、边缘模糊等特点,此外,标记线的粗细、长度、色度等任一特征的变化都可能导致标记提取的误差,从而影响螺栓松动的判定。为准确地从螺栓区域图像中提取标记线,引入了图像分割网络U-net。
(2)训练优化
利用labelImg图像标注工具对螺栓标记线区域进行标注并组成螺栓标记线分割数据集,并以此对U-net标记线分割网络进行训练和测试。为提升标记线分割模型的泛化能力,避免模型过拟合,采用随机旋转、平移、亮度调整、灰度变换等方式对螺栓数据进行扩展;同时,对输入图像进行mixup混类增强,即将不同图像按照一定的比例进行混合,以此对训练数据进一步增强。该过程可以表示为式(1)和式(2)。
λ=Beta(α,β)
(1)
g(x)=λ×f0(x)+(1-λ)×f1(x)
(2)
式中:α,β表示两个0~1的小数;Beta表示贝塔分布;f0(x)和f1(x)分别表示待混合的图像样本;g(x)为混合后的图像样本。
2.2 标记线直线拟合及松动判定
螺栓标记线分割的结果并非标准的直线,无法直接用于松动的判定。RANSAC算法首先在二值图像的点集{(x1,y1),(x2,y2)},…,(xn,yn)中随机选择两个点,求解它们构成的直线对应的参数a、b和d,由式(3)和式(4)表示。然后计算点集中剩余点到该直线的距离E,当E小于距离阈值,则设置该点为内点,统计当前内点的个数并重复上述过程直到点集中的所有点均参与该过程。其次,选择内点个数最多的点集为最大一致集。最后,将该最大一致集里面的点利用最小二乘法求出直线参数,从而得到直线方程。
ax+by=d
(3)
E=|axi+byi-d|
(4)
式(4)中:k=-a/b可以用来表示该直线的斜率,当斜率k=0时,直线水平,即提取到的螺栓标记线处于水平状态,此时螺栓处于非松动状态。
在实际应用中,为了避免标记线提取过程中微小的误差导致的松动误判,一般取k<λ时(λ表示一个接近0的正数,则判定当前标记线所在螺栓无松动故障,否则存在松动故障)。
3 试验与分析
3.1 评价标准
采用一致的量化评价标准有助于对同类算法的性能进行分析和比较。本文螺栓松动判定算法采用召回率(Recall)和精确率(Precision)两个评价指标,分别由式(5)和式(6)表示。
(5)
(6)
目标检测算法采用mAP评价指标[5],可以由式(7)和式(8)表示。
(7)
(8)
图像分割算法一般采用平均交并比(mIoU)评价指标[6],可以由式(9)定义。
(9)
式中:TP(True Positive)表示被正确分类到正样本的个体数量,TN(True Negative)表示被正确分类到负样本的个体数量,FP(False Positive)表示被错误分类到正样本的个体数量,FN(False Negative)表示被错误分类到负样本的个体数量。
3.2 螺栓区域定位方法分析
将前述采集得到的地铁车体图像数据集划分为训练集和测试集。其中80%作为训练集,20%作为测试集,对所提出的螺栓区域定位方法进行验证。
首先利用训练集中完成关键区域标注的图像数据训练YOLOv3区域定位模型,随着训练迭代次数的增加,模型逐渐达到最优。将训练完成的关键区域定位模型在测试集上进行测试,表2展示了训练完成的模型在测试集上的定位效果。结果表明,利用本文方法训练完成的YOLOv3模型能够准确地对车体图像中的关键区域进行定位。
表2 关键区域定位模型的测试效果
利用上述训练完成的模型对训练集中的所有车体图像进行关键区域定位,并根据定位信息从原始高清图像中截取该区域图像。对定位到的关键区域进行螺栓区域标注及数据集划分,表3展示了螺栓区域定位数据集的分布。利用螺栓区域定位数据集中的训练集对YOLOv3螺栓区域定位模型进行训练,直到模型达到最优。
将训练完成的螺栓区域定位模型在螺栓区域数据集中的测试集上进行测试,表4展示了训练完成的模型在螺栓区域定位数据集上的效果。结果表明,利用当前螺栓区域定位方法能够准确完成螺栓区域的定位。
表3 螺栓区域数据集分布 /个
表4 螺栓区域定位模型的测试效果
3.3 螺栓松动判定方法分析
(1)螺栓标记线分割
利用训练完成的螺栓区域定位模型对螺栓区域定位数据集中所有螺栓区域进行定位并截取螺栓图像的ROI区域。在此基础上利用labelme图像标注工具标注每个螺栓区域图像对应的标记线区域,如图3所示。将标注完成的螺栓标记线图像进行再次划分,其中80%作为标记线分割模型的训练集,其余作为测试集。
图3 螺栓标记线分割标注图例
利用上述标注完成的训练集对基于U-net的螺栓标记线分割模型采用传统训练方法和本文提出的训练方法在条件下分别进行训练。随着迭代次数的增加,训练损失逐渐趋于稳定,模型逐渐达到最优。利用上述测试集对两种训练方法得到的训练模型进行测试。表5展示了两种不同的训练方法训练得到的模型在测试集上的效果。结果证明,本文提出的训练方法能够提升标记线分割模型的分割性能。
(2)螺栓松动判定
将本文提出的螺栓松动判定方法在测试集上进行验证,首先利用训练完成的关键区域定位模型对测试数据中的关键区域进行粗定位,并利用训练完成的螺栓区域定位模型对关键区域中的螺栓区域进行精定位。最后在螺栓区域定位的基础上对螺栓标记线进行分割试验。在利用两种不同的训练方式对螺栓标记线分割的基础上,利用RANSAC算法对分割得到的标记线分别进行直线拟合(见图4),当直线斜率大于λ(λ取0.1)时,认为当前螺栓标记线处于非水平状态,存在松动故障,否则无松动。
表5 不同训练方法得到的模型在测试集上的性能比较
图4 RANSAC算法直线拟合结果
表6展示了所提出的方法在测试集上的螺栓松动检测效果。结果表明,文中提出的基于标记线的螺栓松动检测方法能够较为准确地对地铁车体关键区域的螺栓松动进行检测。
表6 螺栓松动检测在测试集上的测试结果
4 结论
针对现有螺栓松动检测算法准确性低、 难以适应复杂场景变化的问题, 文中利用部署在轨旁的面阵相机采集并分阶段标注了大量不同环境条件下的车侧和车底原始高清图像,并组成螺栓松动训练数据集; 训练YOLOv3目标检测网络对螺栓所在的关键区域和螺栓区域进行粗定位和精定位; 为了能够准确地从螺栓区域图像中分割出螺栓标记线, 引入经典的U-net图像分割网络并优化其训练方式; 在此基础上利用RANSAC直线拟合算法, 对标记线分割结果进行直线拟合并根据直线斜率判断螺栓是否存在松动故障; 最后,将所提出的方法在不同测试数据集上进行分别验证, 结果表明, 所提出的方法能够准确地对地铁车体螺栓松动故障进行检测。