【表面缺陷检测】钢轨表面缺陷检测数据集介绍(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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/122709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[架构之路-243]:目标系统 - 纵向分层 - 架构是表面轮廓、内部骨架、未来蓝图,企业组织架构、信息系统架构、软件架构、应用程序就架构

目录 一、什么是架构 1.1 架构是表面轮廓 1.2 架构是内部骨架 1.3 架构是蓝图,是愿景 1.4 架构是数据流、控制流、管理流、同步流 1.5 数据、控制、同步、管理的比较 二、架构的层级 2.1 企业组织架构 2.2 企业系统架构 2.2 信息系统架构 2.3 软件架构 …

SpringMVC系列-6 异常处理器

背景 本文作为 SpringMVC系列 的第六篇,介绍SpringMVC的异常处理器。内容包括异常处理器的使用方式、实现原理和内置异常处理器的装配过程。 1.使用方式 自定义异常类,用于异常处理器: public class ClientException extends RuntimeExce…

CTF-php特性绕过

注意&#xff1a;null0 正确 nullflase 错误 Extract变量覆盖 <?php$flagxxx; extract($_GET);if(isset($shiyan)){ $contenttrim(file_get_contents($flag));//trim移除引号if($shiyan$content){ echoctf{xxx}; }else{ echoOh.no;} }?> extract() 函数从数组中将…

react中的函数柯里化

函数柯里化是一种将接受多个参数的函数转化为一系列接受单一参数的函数的技术。在React开发中&#xff0c;函数柯里化可以帮助我们更好地组织组件的代码&#xff0c;使其具有更好的可读性和可复用性。 一个简单的函数柯里化示例&#xff1a; function add(a) {return functio…

主流大语言模型的技术细节

主流大语言模型的技术原理细节从预训练到微调https://mp.weixin.qq.com/s/P1enjLqH-UWNy7uaIviWRA 比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节&#xff1a;tokenizer、位置编码、Layer Normalization、激活函数等。2. 大语言模型的分布式训练技术&#xff1a;数据并行、…

SQL LIKE 运算符

SQL LIKE 运算符 在WHERE子句中使用LIKE运算符来搜索列中的指定模式。 有两个通配符与LIKE运算符一起使用&#xff1a; &#xff05; - 百分号表示零个&#xff0c;一个或多个字符_ - 下划线表示单个字符 注意&#xff1a; MS Access使用问号&#xff08;?&#xff09;而不是…

如何配置微信小程序id

使用uni-app开发微信小程序项目&#xff0c;配置好微信小程序id是必不可少的。 一、如何找微信小程序id 二、如何配置微信小程序id

基于spring-boot框架,监听nacos配置变化(比如运行中改变日志级别)

背景 如果想在运行过程中想基于nacos数据变更做一些业务&#xff0c;比如想在运行过程中变更日志的级别&#xff0c;那么我们可以扩展nacos的监听。 步骤 定义一个配置类&#xff0c;用NacosConfigListener标记需要触发的方法&#xff0c;并用dataId标记需要监听的文件。如下…

编写两位数合并为一个数的程序,用C++及C语言分别实现。

编写一个程序,将两个两位数的正整数a和b合并成一个整数放在c中。合并方式是:将a数的十位和个位依次放在c数的个位和百位上&#xff0c;将b数的十位和个位放在c数的十位和千位上。例如:假如 a12&#xff0c;b34&#xff0c;则c4231。 C实现&#xff1a; #include <iostream…

Jupyter Notebook还有魔术命令?太好使了

在Jupyter Notebooks中&#xff0c;Magic commands&#xff08;以下简称魔术命令&#xff09;是一组便捷的功能&#xff0c;旨在解决数据分析中的一些常见问题&#xff0c;可以使用%lsmagic 命令查看所有可用的魔术命令 插播&#xff0c;更多文字总结指南实用工具科技前沿动态…

前端 JS 经典:宏任务、微任务、事件循环(EventLoop)

1. 前言概览 js 是一门单线程的非阻塞的脚本语言 单线程&#xff1a;只有一个主线程处理所有任务 非阻塞&#xff1a;有异步任务&#xff0c;主线程挂起这个任务&#xff0c;等异步返回结果再根据一定规则执行 2. 宏任务与微任务 都是异步任务宏任务&#xff1a;script 标签&a…

每日一题 274. H 指数(中等)

先讲一下自己的复杂的写法 第一眼最大最小值问题&#xff0c;直接在0和最大被引次数之间二分找答案先排序&#xff0c;再二分&#xff0c;&#xff0c;&#xff0c; 正解&#xff1a; 排序得到 citations 的递减序列&#xff0c;通过递增下标 i 遍历该序列显然只要排序后的 …

102.linux5.15.198 编译 firefly-rk3399(1)

1. 平台&#xff1a; rk3399 firefly 2g16g 2. 内核&#xff1a;linux5.15.136 &#xff08;从内核镜像网站下载&#xff09; 3. 交叉编译工具 gcc version 7.5.0 (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 4. 宿主机&#xff1a;ubuntu18.04 5. 需要的素材和资料&#xff…

人工智能(AI)在医疗领域的应用

人工智能&#xff08;AI&#xff09;在医疗领域的应用 人工智能&#xff08;AI&#xff09;在医疗领域的应用近年来得到了广泛的关注。其中&#xff0c;AI辅助治疗疾病的技术成为了研究热点。本文将介绍AI辅助治疗疾病的技术&#xff0c;包括其定义、应用场景、案例分析和发展…

Kafka集群

Kafka集群 1、Kafka 概述1.1消息队列背景1.2类型1.3Kafka 定义1.4Kafka 简介 2、消息队列好处3、消息队列的模式4、Kafka 的特性5、Kafka 系统架构4、部署 kafka 集群4.1下载安装包4.2 安装 Kafka4.2.1 修改配置文件4.2.2 修改环境变量4.2.3 配置 zookeeper启动脚本4.2.4 设置…

垃圾收费站

使用form-data传递数组和x-www-form-urlencoded传递的区别 项目场景&#xff1a; 我将后端接口的一个接收参数设计成了数组&#xff0c;然后前端使用form-data去传递 问题描述 访问的时候出现了问题&#xff0c;后端接收到的数组多出了一层中括号&#xff0c;也就是被两层中括号…

黑猪肉经营配送商城小程序商城效果怎样

对产品商家来说&#xff0c;如今线下流量匮乏难以增长&#xff0c;线上已经成为商家们重要的经营渠道&#xff0c;但入驻第三方平台也存在诸多痛点&#xff0c;因此更多企业品牌商家选择自建私域卖货平台完善更多生意。 微信作为私域主阵地&#xff0c;自然是企业们不可错过的…

论文-分布式-并发控制-并发控制问题的解决方案

目录 参考文献 问题 解法与证明 易读版本 参考文献 Dijkstra于1965年发表文章Solution of a Problem in Concurrent Programming Control&#xff0c;引出并发系统下的互斥(mutual exclusion)问题&#xff0c;自此开辟了分布式计算领域Dijkstra在文中给出了基于共享存储原子…

Linux——文件权限属性和权限管理

文件权限属性和权限管理 本章思维导图&#xff1a; 注&#xff1a;本章思维导图对应的Xmid文件和.png文件都以传到“资源” 文章目录 文件权限属性和权限管理1. sudo提权和sudoers文件1.1 sudo提权和成为root的区别 2. 权限2.1 Linux群体2.1.1 为什么要有所属组2.1.2 修改文件…

深入理解Linux网络笔记(五):深度理解本机网络IO

本文为《深入理解Linux网络》学习笔记&#xff0c;使用的Linux源码版本是3.10&#xff0c;网卡驱动默认采用的都是Intel的igb网卡驱动 Linux源码在线阅读&#xff1a;https://elixir.bootlin.com/linux/v3.10/source 4、深度理解本机网络IO 1&#xff09;、跨机网络通信过程 …