一种基于YOLOv5的高铁底部胶条故障检测方法及系统
文献发布时间:2023-06-19 10:44:55
技术领域
本发明涉及一种基于YOLOv5的高铁底部胶条故障检测方法及系统,属于高铁底部胶条故障检测领域。
背景技术
现有技术包括:传统图像处理高铁底部胶条检测、深度学习中的基于Faster-RCNN的高铁底部胶条检测和深度学习中基于对抗神经网络的高铁底部胶条检测差异检测。
现有技术存在问题:其主要存在以下问题:
传统图像处理高铁底部胶条检测对于输入图像的清晰度、背景复杂度和故障形态具有很高的要求;
深度学习中的基于Faster-RCNN的高铁底部故障胶条检测,虽然具有一定的泛化能力,但高铁底部胶条故障类别较多,且部分故障所占像素值较小,在不发生过拟合的情况下该模型对微小故障易发生漏报现象,对环境噪声发生误报现象;在过拟合的情况下,该模型对形态发生变化的故障易发生漏报现象。
基于对抗神经网络的差异检测,生成图像的清晰度不高,随着背景的变化,极易发生漏报和误报现象。
发明内容
本发明的目的是提出一种基于YOLOv5的高铁底部胶条故障检测方法及系统,以解决现有技术中存在的问题。
一种基于YOLOv5的高铁底部胶条故障检测方法,高铁底部胶条故障检测方法包括以下步骤:
步骤一、获取高铁中不同车厢的图像信息;
步骤二、对图像信息中的高铁底部可能发生胶条故障的区域进行截取,得到子图像;
步骤三、利用得到的子图像,构建训练样本集和测试样本集;
步骤四、利用所构建的训练样本集和测试样本集,对YOLOv5模型进行训练以及测试,获得训练好的YOLOv5模型;
步骤五、使用训练好的YOLOv5模型对待检测的高铁底部图像进行检测,输出检测结果。
进一步的,在步骤一中,具体包括以下步骤:
步骤一一、在铁轨两侧以及底部配备高清线阵相机;
步骤一二、当高铁车头通过触发传感器,启动成像设备后对运动的高铁进行逐行扫描,获取高清线阵图像;
步骤一三、按照轴距信息将高清线阵图像按照车厢进行分割,得到高铁中不同车厢的图像信息。
进一步的,在步骤二中,具体的,根据高铁底部添加胶条的位置信息和先验知识对高铁底部可能发生胶条故障的模块或者零部件进行截取,得到两种分辨率大小的子图图像。
进一步的,在步骤三中,具体包括以下步骤:
步骤三一、对获取的不同子图进行线性亮度变换和模糊滤波处理;
步骤三二、对步骤三一处理后的图像随机添加噪声干扰和进行高斯滤波;
步骤三三、将步骤三二得到图像根据分辨率调整为600x600和600x350大小;
步骤三四、将600x350大小的图像进行填0处理,使其大小为600x600。
进一步的,在步骤四中,对YOLOv5模型进行训练,具体包括以下内容:
采取官方给出的精度最高和耗时最多的YOLOv5x模型与测试数据增强对数据进行训练,根据高铁底部胶条故障形态进行分析,本模型采用的测试数据增强方式有:图像小角度旋转、图像翻转、图像随机融合、网格掩膜、凸面叠加、多图随机比例组合和马赛克数据增强,训练完成后得到权重文件YOLOv5x.pt;
修改完整训练次数、初始学习率、初始图像大小的训练参数后采用YOLOv5m模型与测试数据增强对数据进行训练,本模型采用的测试数据增强方式包括:网格掩膜、凸面叠加、多图随机比例组合和马赛克数据增强,训练完成后得到权重文件YOLOv5m.pt;
修改训练参数后采用YOLOv5l模型与测试数据增强对数据进行训练,本模型采用的测试数据增强方式有:图像小角度旋转、图像翻转和图像随机融合,训练完成后得到权重文件YOLOv5l.pt,其中,YOLOv5模型包括YOLOv5x模型、YOLOv5m模型和YOLOv5l模型。
进一步的,在步骤四中,对YOLOv5模型进行测试,具体包括以下步骤:
步骤四一、设测试图像为I,检测到图像I某一类故障候选框为
步骤四二、根据步骤四一提出的方法,分别求出YOLOv5m模型检测出该类故障候选框数量为n
步骤四三、最终将候选框数量设置为3,利用YOLOv5模型检测该类故障候选框所包含位置为故障的概率P为:
步骤四四、得到该处为故障的概率P后,通过保留的三个候选框
一种基于YOLOv5的高铁底部胶条故障检测系统,应用于上述的一种基于YOLOv5的高铁底部胶条故障检测方法,系统包括:图像采集模块、图像截取模块、数据集构建模块、YOLOv5模型训练测试模块和检测模块,图像采集模块、图像截取模块、数据集构建模块、YOLOv5模型训练测试模块和检测模块依次连接,其中:
图像采集模块,用于获取高铁中不同车厢的图像信息;
图像截取模块,用于对图像信息中的高铁底部可能发生胶条故障的区域进行截取,得到子图像;
数据集构建模块,用于利用得到的子图像,构建训练样本集和测试样本集;
YOLOv5模型训练测试模块,用于利用所构建的训练样本集和测试样本集,对YOLOv5模型进行训练以及测试,获得训练好的YOLOv5模型;
检测模块,用于使用训练好的YOLOv5模型对待检测的高铁底部图像进行检测,输出检测结果。
进一步的,图像采集模块包括扫描单元和图像分割单元,扫描单元和图像分割单元连接,其中:
扫描单元,用于当高铁车头通过触发传感器,启动成像设备后对运动的高铁进行逐行扫描,获取高清线阵图像;
图像分割单元,用于按照轴距信息将高清线阵图像按照车厢进行分割,得到高铁中不同车厢的图像信息。
进一步的,数据集构建模块包括子图处理模块、噪声干扰添加及高斯滤波模块、分辨率调整模块和分辨率统一模块,子图处理模块、噪声干扰添加及高斯滤波模块、分辨率调整模块和分辨率统一模块依次连接,其中:
子图处理模块,用于对获取的不同子图进行线性亮度变换和模糊滤波处理;
噪声干扰添加及高斯滤波模块,用于对子图处理模块处理后的图像随机添加噪声干扰和进行高斯滤波;
分辨率调整模块,用于将噪声干扰添加及高斯滤波模块处理得到的图像根据分辨率调整为600x600和600x350大小;
分辨率统一模块,用于将600x350大小的图像进行填0处理,使其大小为600x600。
本发明的有以下优点:
1.与传统图像处理相比,本发明的方法在高铁底部胶条故障检测方面具有更高的准确率和泛化能力;
2.与基于Faster-RCNN的高铁底部故障胶条检测相比,本发明的方法具有更高的准确性;
3.本发明具有更高的准确率和泛化能力。
附图说明
图1为本发明的一种基于YOLOv5的高铁底部胶条故障检测方法的方法流程图;
图2为YOLOv5不同模型测试部分结果;
图3为本发明模型检测部分的检测结果。
具体实施方式
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要特别说明的是,在不冲突的条件下,本申请公开的各个实施例之间或实施例包括的特征之间,可以相互组合。
参照图1所示,一种基于YOLOv5的高铁底部胶条故障检测方法,高铁底部胶条故障检测方法包括以下步骤:
步骤一、获取高铁中不同车厢的图像信息;
步骤二、对图像信息中的高铁底部可能发生胶条故障的区域进行截取,得到子图像;
步骤三、利用得到的子图像,构建训练样本集和测试样本集;
步骤四、利用所构建的训练样本集和测试样本集,对YOLOv5模型进行训练以及测试,获得训练好的YOLOv5模型;
步骤五、使用训练好的YOLOv5模型对待检测的高铁底部图像进行检测,输出检测结果。
进一步的,在步骤一中,具体包括以下步骤:
步骤一一、在铁轨两侧以及底部配备高清线阵相机;
步骤一二、当高铁车头通过触发传感器,启动成像设备后对运动的高铁进行逐行扫描,获取高清线阵图像;
步骤一三、按照轴距信息将高清线阵图像按照车厢进行分割,得到高铁中不同车厢的图像信息。
进一步的,在步骤二中,具体的,根据高铁底部添加胶条的位置信息和先验知识对高铁底部可能发生胶条故障的模块或者零部件进行截取,得到两种分辨率大小的子图图像。
具体的,子图图像的获取可有效减少故障识别所需时间、区分不同的故障并提升识别准确率。
线阵相机采集到的图像为单通道的灰度图,不具有颜色信息特征,仅可以通过灰度值的变化来区分故障与非故障区域。并且下面三种情况会直接影响后续故障检测的准确性。
a.当光线分布不均的情况下,采集到的线阵图像具有明暗不一的特性;
b.当背景区域含有污渍、油渍时,会使得到的子图很难分辨车体本身的零部件信息特征;
c.当天气环境恶劣(比如雨雪天气),采集到的线阵图像会出现条纹或者雪花噪声。
上述三种情况,本发明统称为噪声干扰,对于在非密闭条件下工作的高铁车底,噪声对真实故障的检测具有很强的干扰性。并且高铁车底是由许多零部件组合拼接而成,其真实故障的位置和形态具有未知性、多样性和稀有性,使得目前较为主流的故障检测方法很难做到无漏报、误报。
本发明高铁底部胶条故障检测的方法是在YOLOv5网络训练过程中添加不同的测试图像增强方法对图像进行训练,并使用多个模型进行并行检测,可以很好的解决高铁底部胶条故障检测困难的问题。其基本思想是:首先将切取的高铁底部子图进行数据增强和预处理;然后送入不同的YOLOv5网络模型中进行训练,并为不同的网络模型添加不同的测试数据增强方式;最后在数据测试过程中,使用不同模型对图像进行测试,计算得到故障概率与候选框坐标。
具体步骤如下:
获取的子图由于部件存在的位置和形态不同,导致各个子图之间相关性较弱,且真实故障与虚拟故障数据数量较少,为保证训练结果的准确性,需要对数据进行扩增和预处理操作,本发明数据扩增和预处理主要包括以下步骤:
步骤三一、对获取的不同子图进行线性亮度变换和模糊滤波处理;
步骤三二、对处理后的图像随机添加噪声干扰和进行高斯滤波;
步骤三三、将得到图像根据分辨率调整为600x600和600x350大小;
步骤三四、将600x350大小的图像进行填0处理,使其大小为600x600。
官方YOLOv5模型提供了四个训练模型,分别是YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,这四个模型的参数也是依次增多,且模型越大精度越高,速度也就相应越慢。相较于正常的将处理完成的数据送入YOLOv5网络模型进行训练的方式,本发明的方法针对高铁底部胶条特性,在模型训练方式和检测方式进行改进,改进具体过程如下:
采取官方给出的精度最高和耗时最多的YOLOv5x模型与测试数据增强对数据进行训练,根据高铁底部胶条故障形态进行分析,本模型采用的测试数据增强方式有:图像小角度旋转、图像翻转、图像随机融合、网格掩膜、凸面叠加、多图随机比例组合和马赛克数据增强,训练完成后得到权重文件YOLOv5x.pt;
修改完整训练次数、初始学习率、初始图像大小的训练参数后采用YOLOv5m模型与测试数据增强对数据进行训练,本模型采用的测试数据增强方式包括:网格掩膜、凸面叠加、多图随机比例组合和马赛克数据增强,训练完成后得到权重文件YOLOv5m.pt;
修改训练参数后采用YOLOv5l模型与测试数据增强对数据进行训练,本模型采用的测试数据增强方式有:图像小角度旋转、图像翻转和图像随机融合,训练完成后得到权重文件YOLOv5l.pt,其中,YOLOv5模型包括YOLOv5x模型、YOLOv5m模型和YOLOv5l模型。
将产生的不同训练模型使用708张真实故障图像进行测试,漏报、误报和总耗时的结果如表1所示:
表1
从表1可知,即使是最复杂的模型,平均检测每张图像的时间也不足30ms,为实现精度最大化,本文将YOLOv5x.pt、YOLOv5m.pt、YOLOv5l.pt模型放入子集中,每幅图像都会在子集中的模型上测试,然后对每个模型的预测结果进行计算,最后应用非极大抑制去除多余的候选框,具体操作如下:
步骤四一、设测试图像为I,检测到图像I某一类故障候选框为
步骤四二、根据步骤四一提出的方法,分别求出YOLOv5m模型检测出该类故障候选框数量为n
步骤四三、最终将候选框数量设置为3,利用YOLOv5模型检测该类故障候选框所包含位置为故障的概率P为:
步骤四四、得到该处为故障的概率P后,通过保留的三个候选框
使用上述方式从新预测708张真实故障图像,得到结果如表2所示:
表2
从表2中可以看出,虽每张图像的平均检测时间变为80.1ms,但满足实际项目的检测需求,并且无漏报、误报的情况发生。同时,从表2中可以看出,YOLOv5中不同的模型对于不同的故障鲁棒性不同。测试部分结果如图2所示,
为验证本文方法的有效性,将测试的708张图像数据进行扩增处理,每张图像扩增方式在图像模糊滤波、图像缩放、图像亮度变换、图像小角度旋转、图像翻转、图像随机融合、网格掩膜、凸面叠加、多图随机比例组合和马赛克数据增强中随机选取5中方式进行增强,得到3540张测试图像。使用本文方法进行测试,得到结果如表3所示,本文方法最终检测结果如图3所示。
表3
从表3中可以看出,检测3540张增强后的图像无漏报现象,虽含有三个误报,但在满足模块的检测要求。
本发明根据模型参数,在模型训练过程中使用不同的测试数据增强方式;使用多个单阶段模型并行检测后,通过对每个模型的故障概率计算得出最终的模型故障概率,可有效的提高检测精度;使用多个单阶段模型并行检测后再进行非极大值抑制处理,可以有效解决多个检测模型重复画框的问题。
一种基于YOLOv5的高铁底部胶条故障检测系统,应用于上述的一种基于YOLOv5的高铁底部胶条故障检测方法,系统包括:图像采集模块、图像截取模块、数据集构建模块、YOLOv5模型训练测试模块和检测模块,图像采集模块、图像截取模块、数据集构建模块、YOLOv5模型训练测试模块和检测模块依次连接,其中:
图像采集模块,用于获取高铁中不同车厢的图像信息;
图像截取模块,用于对图像信息中的高铁底部可能发生胶条故障的区域进行截取,得到子图像;
数据集构建模块,用于利用得到的子图像,构建训练样本集和测试样本集;
YOLOv5模型训练测试模块,用于利用所构建的训练样本集和测试样本集,对YOLOv5模型进行训练以及测试,获得训练好的YOLOv5模型;
检测模块,用于使用训练好的YOLOv5模型对待检测的高铁底部图像进行检测,输出检测结果。
进一步的,图像采集模块包括扫描单元和图像分割单元,扫描单元和图像分割单元连接,其中:
扫描单元,用于当高铁车头通过触发传感器,启动成像设备后对运动的高铁进行逐行扫描,获取高清线阵图像;
图像分割单元,用于按照轴距信息将高清线阵图像按照车厢进行分割,得到高铁中不同车厢的图像信息。
进一步的,数据集构建模块包括子图处理模块、噪声干扰添加及高斯滤波模块、分辨率调整模块和分辨率统一模块,子图处理模块、噪声干扰添加及高斯滤波模块、分辨率调整模块和分辨率统一模块依次连接,其中:
子图处理模块,用于对获取的不同子图进行线性亮度变换和模糊滤波处理;
噪声干扰添加及高斯滤波模块,用于对子图处理模块处理后的图像随机添加噪声干扰和进行高斯滤波;
分辨率调整模块,用于将噪声干扰添加及高斯滤波模块处理得到的图像根据分辨率调整为600x600和600x350大小;
分辨率统一模块,用于将600x350大小的图像进行填0处理,使其大小为600x600。
- 一种基于YOLOv5的高铁底部胶条故障检测方法及系统
- 一种基于YOLOv5的高铁底部胶条故障检测方法及系统