当前位置: 首页 > news >正文

【表面缺陷检测】钢轨表面缺陷检测数据集介绍(2类,含xml标签文件)

一、介绍

钢轨表面缺陷检测是指通过使用各种技术手段和设备,对钢轨表面进行检查和测量,以确定是否存在裂纹、掉块、剥离、锈蚀等缺陷的过程。这些缺陷可能会对铁路运输的安全和稳定性产生影响,因此及时进行检测和修复非常重要。钢轨表面缺陷检测通常采用无损检测技术,如超声检测、涡流检测等,以确保在不损害钢轨的前提下进行准确的检测。

二、数据

钢轨表面缺陷数据通常包括缺陷的类型、位置、尺寸以及严重程度等信息。这些数据可以通过各种检测设备和技术获取,如激光扫描仪、高清相机等。这些数据对于评估钢轨的状态、制定维护计划以及确保铁路运输的安全具有重要意义。通过对这些数据的分析和处理,可以实现对钢轨表面缺陷的准确检测和分类,有助于提高钢轨维护的效率和安全性。

三、获取

本数据集原始是一个4类的图像分类数据集,总共有4个类别(通过标注处理,成为目标检测数据集,含xml标签文件,联系小编获取):

在这里插入图片描述

根据缺陷类别,进行标注:

在这里插入图片描述

得到2个类别的缺陷数据集,可用于目标检测任务,适用于yolov3、yolov4、yolov5、yolov6、yolov7、yolov8等算法模型训练任务。

目前钢轨表面缺陷检测存在的问题有:智能化程度低、钢轨缺陷检测研究较少、钢轨表面材质特殊,处理难度大。我们通过实地参观考察发现,现有的大型钢铁轨梁厂如攀钢、包钢等仍采用人工目测法对钢轨表面质量进行监控,生产效率低,对后续的工艺改进参考价值不大。通过调研国内外文献可知,目前比较成熟的钢类产品缺陷检测技术主要集中于钢板,对冷态钢轨的研究甚少。钢轨是一种高反光性材质,其表面灰度变化不大,因此钢轨缺陷检测对成像质量以及缺陷分割算法有更高的要求。

通过读取xml标签文件,可以获得类别名称和标签数量:

import os
import xml.etree.ElementTree as ET
import globdef count_type_num(indir):# 提取xml文件列表os.chdir(indir)annotations = os.listdir('.')annotations = glob.glob(str(annotations) + '*.xml')dict = {}  # 新建字典,用于存放各类标签名及其对应的数目for i, file in enumerate(annotations):  # 遍历xml文件# actual parsingin_file = open(file, encoding='utf-8')tree = ET.parse(in_file)root = tree.getroot()# 遍历文件的所有标签for obj in root.iter('object'):name = obj.find('name').textif (name in dict.keys()):dict[name] += 1  # 如果标签不是第一次出现,则+1else:dict[name] = 1  # 如果标签是第一次出现,则将该标签名对应的value初始化为1# 打印结果print("各类标签的数量分别为:")for key in dict.keys():print(key + ': ' + str(dict[key]))

四、最后

钢轨是铁路轨道的主要部件,起引导列车运行和直接承受车辆载荷的重要作用。随着我国既有线路改造以及高速铁路的快速发展,列车对钢轨的运行压力以及冲击载荷越来越强,钢轨表面产生的缺陷概率也越来越大。因此,采集钢轨表面缺陷数据,并基于先进的算法进行检测,是保障铁路安全和稳定运行的重要手段,具有极其重要的意义。

早期钢轨缺陷检测的主要手段是人工物探,该方法不仅效率低下,且无法形成客观统一的检测标准,正逐渐被其他方法所取代.随后,超声波、射线、渗透、涡流等钢轨无损探伤技术的应用推动了检测精度和检测速度的相对提高,这些检测方法虽然穿透能力强、操作安全,但容易受到外部干扰影响,检测结果抽象且难以处理。基于机器视觉的钢轨缺陷检测方法通过先进的视觉设备采集钢轨表面图像,根据算法对图像进行处理,具有实时性、非接触式等特点,能够很好地运用于钢轨缺陷检测领域。闵永智等提出了将平滑滤波器与阈值分割相结合的钢轨表面缺陷检测方法,减轻了光照变化、轨面不平对检测结果的影响,但该方法对背景图像的自适应平滑过程运算量过大,实时性不强。Shi等针对光照及环境变化造成钢轨图像降质的问题,提出了一种基于边缘检测算子改进的钢轨缺陷检测算法,改进后的算法可获得具有完整边缘信息的缺陷轮廓定位,但对复杂钢轨图像的检测准确率较低。Tastimur等提出了一种基于形态学特征提取的铁路缺陷检测算法,利用霍夫变换和图像处理技术对实时摄像机获取的钢轨图像进行检测,并通过形态学操作提取采集到的钢轨图像特征,实现对缺陷的识别,但复杂的图像预处理过程容易受到光照不均等外部因素的影响,造成一定程度的漏检.上述研究将传统图像处理技术与机器学习的方法相结合,设计了适用于特定场景下的钢轨缺陷检测方法,该类方法的检测性能易受外部环境的影响,检测速度难以满足实时检测要求。

Steel rails are the main components of railway tracks, playing an important role in guiding train operation and directly bearing vehicle loads. With the renovation of existing railway lines and the rapid development of high-speed railways in China, the operating pressure and impact load of trains on steel rails are becoming stronger, and the probability of defects on the surface of steel rails is also increasing. Therefore, collecting data on rail surface defects and detecting them based on advanced algorithms is an important means to ensure the safety and stable operation of railways, and has extremely important significance.The main method of early rail defect detection was manual geophysical exploration, which was not only inefficient but also unable to form objective and unified detection standards. It was gradually replaced by other methods. Subsequently, the application of non-destructive testing technologies such as ultrasound, radiation, penetration, and eddy current for steel rails has promoted the relative improvement of detection accuracy and speed. Although these detection methods have strong penetration ability and safe operation, they are easily affected by external interference, The detection results are abstract and difficult to process. The machine vision based rail defect detection method collects rail surface images through advanced visual equipment and processes the images based on algorithms. It has real-time and non-contact characteristics and can be well applied in the field of rail defect detection. Min Yongzhi et al. proposed a rail surface defect detection method that combines smooth filters with threshold segmentation, reducing the impact of lighting changes and uneven rail surface on the detection results. However, this method requires too much computation for the adaptive smoothing process of background images and lacks real-time performance. Shi et al. proposed an improved rail defect detection algorithm based on edge detection operator to address the issue of degraded rail images caused by lighting and environmental changes. The improved algorithm can obtain defect contour localization with complete edge information, but the detection accuracy for complex rail images is low. Tastimur et al. proposed a railway defect detection algorithm based on morphological feature extraction, which utilizes Hough transform and image processing technology to detect real-time camera captured rail images, and extracts collected rail image features through morphological operations to achieve defect recognition. However, complex image preprocessing processes are easily affected by external factors such as uneven lighting, Causing a certain degree of missed detection. The above research combines traditional image processing techniques with machine learning methods to design rail defect detection methods suitable for specific scenarios. The detection performance of these methods is easily affected by external environments, and the detection speed is difficult to meet real-time detection requirements.

相关文章:

【表面缺陷检测】钢轨表面缺陷检测数据集介绍(2类,含xml标签文件)

一、介绍 钢轨表面缺陷检测是指通过使用各种技术手段和设备,对钢轨表面进行检查和测量,以确定是否存在裂纹、掉块、剥离、锈蚀等缺陷的过程。这些缺陷可能会对铁路运输的安全和稳定性产生影响,因此及时进行检测和修复非常重要。钢轨表面缺陷…...

SHCTF 2023 新生赛 Web 题解

Web [WEEK1]babyRCE 源码过滤了cat 空格 我们使用${IFS}替换空格 和转义获得flag [WEEK1]飞机大战 源码js发现unicode编码 \u005a\u006d\u0078\u0068\u005a\u0033\u0074\u006a\u0059\u006a\u0045\u007a\u004d\u007a\u0067\u0030\u005a\u0069\u0030\u0031\u0059\u006d\u0045…...

二叉树题目合集(C++)

二叉树题目合集 1.二叉树创建字符串(简单)2.二叉树的分层遍历(中等)3.二叉树的最近公共祖先(中等)4.二叉树搜索树转换成排序双向链表(中等)5.根据树的前序遍历与中序遍历构造二叉树&…...

dbeaver配置es连接org.elasticsearch.xpack.sql.jdbc.EsDriver

查看目标es服务版本,下载对应驱动...

有监督学习线性回归

1、目标分析(回归问题还是分类问题?) 2、获取、处理数据 3、创建线性回归模型 4、训练模型 5、模型测试 x_data [[6000, 58], [9000, 77], [11000, 89], [15000, 54]] # 样本特征数据 y_data [30000, 55010, 73542, 63201] # 样本目标数…...

如何在vscode中添加less插件

Less (Leaner Style Sheets 的缩写) 是一门向后兼容的 CSS 扩展语言。它对CSS 语言增加了少许方便的扩展,通过less可以编写更少的代码实现更强大的样式。但less不是css,浏览器不能直接识别,即浏览器无法执行less代码&a…...

mediapipe 训练自有图像数据分类

参考: https://developers.google.com/mediapipe/solutions/customization/image_classifier https://colab.research.google.com/github/googlesamples/mediapipe/blob/main/examples/customization/image_classifier.ipynb#scrollToplvO-YmcQn5g 安装&#xff1a…...

【pytorch】torch.gather()函数

dim0时 index[ [x1,x2,x2],[y1,y2,y2],[z1,z2,z3] ]如果dim0 填入方式为: index[ [(x1,0),(x2,1),(x3,2)][(y1,0),(y2,1),(y3,2)][(z1,0),(z2,1),(z3,2)] ]input [[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12] ] # shape(3,4) input torch.…...

Mac 安装psycopg2,报错Error: pg_config executable not found.

在mac 上安装psycopg2的方法:执行:pip3 install psycopg2-binary。 如果执行pip3 install psycopg2,无法安装psycopg2 报错信息如下: Collecting psycopg2Using cached psycopg2-2.9.9.tar.gz (384 kB)Preparing metadata (set…...

域名系统 DNS

DNS 概述 域名系统 DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为 IP 地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域(domain)”&#x…...

Vue $nextTick 模板解析后在执行的函数

this.$nextTick(()>{ 模板解析后在执行的函数 })...

VBA技术资料MF76:将自定义颜色添加到调色板

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…...

zilong-20231030

1)k个反转 2)n!转12进制 求末尾多少0 一共有几位 (考虑了溢出问题) 3)大量数据获取前10个 4)reemap地城结构 5)红黑树规则特性 6)热更 7)压测 8)业务 跨服实现 9)有哪些线程以及怎么分配...

目标检测算法发展史

前言 比起图像识别,现在图片生成技术要更加具有吸引力,但是要步入AIGC技术领域,首先不推荐一上来就接触那些已经成熟闭源的包装好了再提供给你的接口网站,会使用别人的模型生成一些图片就能叫自己会AIGC了吗?那样真正…...

React 生成传递给无障碍属性的唯一 ID

useId() 在组件的顶层调用 useId 生成唯一 ID: import { useId } from react; function PasswordField() { const passwordHintId useId(); // ...参数 useId 不带任何参数。 返回值 useId 返回一个唯一的字符串 ID,与此特定组件中的 useI…...

十种排序算法(1) - 准备测试函数和工具

1.准备工作 我们先写一堆工具&#xff0c;后续要用&#xff0c;不然这些写在代码里可读性巨差 #pragma once #include<stdio.h>//为C语言定义bool类型 typedef int bool; #define false 0 #define true 1//用于交互a和b inline void swap(int* a, int* b) {/*int c *a…...

IRF联动 BFD-MAD

文章目录 IRF堆叠一、主设备配置二、备设备配置三、验证 MAD检测一、MAD检测二、MAD验证 本实验以2台设备进行堆叠示例&#xff0c;按照配置顺序&#xff0c;先配置主设备&#xff0c;再配置备设备。在IRF配置前暂时先不接堆叠线&#xff0c;按步骤提示接线。 IRF堆叠 一、主设…...

双向链表的初步练习

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇: Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”…...

IDE的组成

集成开发环境&#xff08;IDE&#xff0c;Integrated Development Environment &#xff09;是用于提供程序开发环境的应用程序&#xff0c;一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务…...

项目解读_v2

1. 项目介绍 如果使用task2-1作为示例时&#xff0c; 运行process.py的过程中需要确认 process调用的是函数 preprocess_ast_wav2vec(wav, fr) 1.1 任务简介 首个开源的儿科呼吸音数据集&#xff0c; 通过邀请11位医师标注&#xff1b; 数字听诊器的采样频率和量化分辨率分…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP&#xff08;Interior Gateway Protocol&#xff0c;内部网关协议&#xff09; 是一种用于在一个自治系统&#xff08;AS&#xff09;内部传递路由信息的路由协议&#xff0c;主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案

目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后&#xff0c;迭代器会失效&#xff0c;因为顺序迭代器在内存中是连续存储的&#xff0c;元素删除后&#xff0c;后续元素会前移。 但一些场景中&#xff0c;我们又需要在执行删除操作…...

日常一水C

多态 言简意赅&#xff1a;就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过&#xff0c;当子类和父类的函数名相同时&#xff0c;会隐藏父类的同名函数转而调用子类的同名函数&#xff0c;如果要调用父类的同名函数&#xff0c;那么就需要对父类进行引用&#…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)

目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 ​编辑​编辑 UDP的特征 socke函数 bind函数 recvfrom函数&#xff08;接收函数&#xff09; sendto函数&#xff08;发送函数&#xff09; 五、网络编程之 UDP 用…...

【WebSocket】SpringBoot项目中使用WebSocket

1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖&#xff0c;添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...

【Java多线程从青铜到王者】单例设计模式(八)

wait和sleep的区别 我们的wait也是提供了一个还有超时时间的版本&#xff0c;sleep也是可以指定时间的&#xff0c;也就是说时间一到就会解除阻塞&#xff0c;继续执行 wait和sleep都能被提前唤醒(虽然时间还没有到也可以提前唤醒)&#xff0c;wait能被notify提前唤醒&#xf…...