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

井盖状态检测数据集

井盖状态检测数据集 yolo格式 五种类别:broke(井盖破损),good(完好),circle(边圈破损),lose(井盖丢失),uncovered(井盖位移/未覆盖全)
训练数据已划分,配置文件稍做路径改动即可训练。 训练集:1217 验证集:108 另外:提供yolov5训练200轮的结果(内含模型 识别精度:80%)

井盖状态检测数据集(Manhole Cover State Detection Dataset)

数据集概述

该数据集专为井盖状态检测设计,包含五种类别:破损(broke)、完好(good)、边圈破损(circle)、丢失(lose)、位移/未完全覆盖(uncovered)。数据集已经按照训练集和验证集进行了划分,总共有1217张训练图像和108张验证图像。数据集采用YOLO格式标注,适用于基于YOLO系列(如YOLOv5、YOLOv6、YOLOv7、YOLOv8等)的模型训练。

数据集特点
  • 多类别标注:涵盖了井盖的多种状态,包括破损、完好、边圈破损、丢失、位移/未完全覆盖。
  • 清晰的标签:每张图像都有对应的YOLO TXT格式标签文件,标注了井盖的状态信息。
  • 标准化格式:标签文件采用YOLO TXT格式,方便直接用于模型训练。
  • 明确的数据划分:数据集已经按照训练集和验证集进行了划分,便于直接使用。
数据集构成

  • 图像数量
    • 训练集:1217张图像
    • 验证集:108张图像
  • 类别
    • broke(破损)
    • good(完好)
    • circle(边圈破损)
    • lose(丢失)
    • uncovered(位移/未完全覆盖)
  • 分辨率:图像的分辨率未特别指明,但通常应保持一致以便于模型训练。
  • 位深度:图像的位深度未特别指明,但通常为8位。
  • 数据划分
    • 训练集:用于模型训练
    • 验证集:用于调整模型超参数和防止过拟合
数据集用途

  • 井盖状态检测:可用于训练模型识别井盖的各种状态,提高检测精度。
  • 质量控制:帮助市政管理部门及时发现和处理井盖的问题,提高城市基础设施的安全性和可靠性。
  • 自动化检测:结合自动化设备,实现井盖状态的实时检测,提高检测效率。
  • 研究与开发:作为基准数据集,支持学术研究和技术开发,推动目标检测技术在市政设施管理中的应用。
  • 教育与培训:作为教学资源,帮助学生和从业人员理解并掌握井盖状态检测的相关技术和方法。
示例代码

以下是一个简单的Python脚本示例,用于加载数据集中的图像及其对应的标签,并展示如何进行初步的处理和可视化:

1import os
2import cv2
3import numpy as np
4import matplotlib.pyplot as plt
5
6# 数据集目录路径
7data_dir = 'path/to/manhole_cover_state_detection_dataset'
8train_image_dir = os.path.join(data_dir, 'images/train')
9train_label_dir = os.path.join(data_dir, 'labels/train')
10validation_image_dir = os.path.join(data_dir, 'images/validation')
11validation_label_dir = os.path.join(data_dir, 'labels/validation')
12
13# 选取一张训练图像及其标签文件
14train_image_files = os.listdir(train_image_dir)
15train_image_file = train_image_files[0]  # 假设取第一张图
16train_image_path = os.path.join(train_image_dir, train_image_file)
17
18train_label_file = os.path.splitext(train_image_file)[0] + '.txt'
19train_label_path = os.path.join(train_label_dir, train_label_file)
20
21# 加载图像
22train_image = cv2.imread(train_image_path)
23
24# 从YOLO TXT文件加载标签
25def parse_yolo(txt_file, width, height):
26    with open(txt_file, 'r') as f:
27        lines = f.readlines()
28    objects = []
29    for line in lines:
30        class_id, x_center, y_center, box_width, box_height = map(float, line.strip().split())
31        x_min = int((x_center - box_width / 2) * width)
32        y_min = int((y_center - box_height / 2) * height)
33        x_max = int((x_center + box_width / 2) * width)
34        y_max = int((y_center + box_height / 2) * height)
35        objects.append((int(class_id), (x_min, y_min, x_max, y_max)))
36    return objects
37
38# 解析YOLO TXT标签
39train_objects = parse_yolo(train_label_path, train_image.shape[1], train_image.shape[0])
40
41# 绘制图像和边界框
42plt.figure(figsize=(10, 10))
43plt.imshow(cv2.cvtColor(train_image, cv2.COLOR_BGR2RGB))
44plt.axis('off')
45
46colors = {0: 'red', 1: 'blue', 2: 'green', 3: 'yellow', 4: 'orange'}
47names = ['broke', 'good', 'circle', 'lose', 'uncovered']
48
49for class_id, (xmin, ymin, xmax, ymax) in train_objects:
50    plt.gca().add_patch(plt.Rectangle((xmin, ymin), xmax - xmin, ymax - ymin, edgecolor=colors[class_id], facecolor='none'))
51    plt.text(xmin, ymin, names[class_id], color=colors[class_id], fontsize=8)
52
53plt.show()
数据集使用指南
  1. 数据准备:确认数据集路径是否正确,并且图像和标签文件均存在指定的目录下。
  2. 数据划分:数据集已经按照训练集和验证集进行了划分,可以直接使用。
  3. 配置文件:确保YOLOv5/v6/v7/v8等模型配置文件中的数据集路径和类别名称与数据集中的标签一致。
  4. 模型训练:使用YOLO框架或其他支持YOLO格式的框架加载数据集,并开始训练模型。确保模型配置文件中数据集路径正确。
  5. 模型测试:使用已经训练好的模型进行测试,评估模型在测试集上的性能。
数据集结构示例
 
1├── manhole_cover_state_detection_dataset
2│   ├── images
3│   │   ├── train
4│   │   │   ├── 00000.jpg
5│   │   │   ├── 00001.jpg
6│   │   │   └── ...
7│   │   ├── validation
8│   │   │   ├── 00000.jpg
9│   │   │   ├── 00001.jpg
10│   │   │   └── ...
11│   ├── labels
12│   │   ├── train
13│   │   │   ├── 00000.txt
14│   │   │   ├── 00001.txt
15│   │   │   └── ...
16│   │   ├── validation
17│   │   │   ├── 00000.txt
18│   │   │   ├── 00001.txt
19│   │   │   └── ...
20│   ├── data.yaml  # 包含类别定义和数据路径
已训练模型结果
  • 模型训练:使用YOLOv5训练了200轮。
  • 识别精度:模型在验证集上的识别精度达到了80%。
论文出处

为了确保正确引用该数据集,请查看原始数据集发布者的具体要求。如果该数据集来自某个特定的研究项目或竞赛,引用格式可能类似于以下示例:

1@misc{dataset_paper,
2  title={Title of the Data Set},
3  author={Author Names},
4  year={Publication Year},
5  publisher={Publishing Institution},
6  url={URL of the data set}
7}
总结

井盖状态检测数据集为井盖状态检测提供了专业的数据支持。通过涵盖井盖多种状态的高分辨率图像及其详细的YOLO TXT格式标注信息,该数据集能够帮助训练和评估模型在识别井盖状态方面的能力。无论是对于学术研究还是市政应用,该数据集都是一个极具价值的研究资源。

 


http://www.kler.cn/news/310371.html

相关文章:

  • TCP socket
  • Android 进程间通信
  • 使用llama.cpp 在推理MiniCPM-1.2B模型
  • 24年蓝桥杯及攻防世界赛题-MISC-3
  • 【Redis】Redis 典型应用 - 分布式锁原理与实现
  • 计算机毕业设计 基于SpringBoot框架的网上蛋糕销售系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • Python编程 - 协程
  • [PICO VR眼镜]眼动追踪串流Unity开发与使用方法,眼动追踪打包报错问题解决(Eye Tracking/手势跟踪)
  • FFmpeg源码:skip_bits、skip_bits1、show_bits函数分析
  • centos远程桌面连接windows
  • iPhone 16系列:熟悉的味道,全新的体验
  • 浅谈Tair缓存的三种存储引擎MDB、LDB、RDB
  • 使用Addressables+SpriteAtlas打包产生冗余
  • Python知识点:详细讲解Python字节码与反编译
  • Elasticsearch 开放推理 API 新增阿里云 AI 搜索支持
  • react 高阶组件
  • 优化数据的抓取规则:减少无效请求
  • 【数学建模】典型相关分析
  • 【RabbitMQ 项目】服务端:数据管理模块之消息管理
  • 大语言模型超参数调优:开启 AI 潜能的钥匙
  • Linux下rpm方式部署mysql(国产化生产环境无联网服务器部署实操)
  • Android开发高频面试题之——Android篇
  • 为什么 ECB 模式不安全
  • ETL架构类型有哪些?怎么选择?
  • 力扣之1075.项目员工I
  • Java 垃圾收集器详解:CMS, G1, ZGC
  • 国产服务器CPU发展分析
  • 「数据科学」转换数据,数据存储空间和类型转换
  • spark学习笔记
  • 基于JAVA的居家办公OA系统