井盖状态检测数据集

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

003818e9b9f34b879987d9c2d1b1e135.png

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

数据集概述

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

数据集特点

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

数据集构成

54314a4a194b4b159940147eb1ea94e1.png

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

数据集用途

0dccd81518f649c7911d2e8e6e3838a5.png

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

示例代码

以下是一个简单的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.xdnf.cn/news/1540700.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

k8s 中的 Ingress 简介

一、关于 Ingress Ingress 是 K8s 中的一个 API 对象,用于管理和配置外部对集群内服务的访问。它可定义 HTTP 和 HTTPS 路由规则,将请求从集群外部的负载均衡器引导到相应的服务。Ingress 的灵活性使得我们能够实现高级的应用程序路由、SSL 终端和负载均…

【代码随想录Day22】回溯算法Part01

理论基础 题目链接/文章讲解:代码随想录 视频讲解:带你学透回溯算法(理论篇)| 回溯法精讲!_哔哩哔哩_bilibili 回溯算法模板框架: void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择&…

深兰科技荣获“2024年度人工智能最具商业合作价值企业”奖

9月19日,以“释放AI应用价值,发展新质生产力”为主题的“AIAC2024人工智能应用大会”在北京隆重举行。大会揭晓了“AI卓智奖”年度人工智能创新评选的获奖榜单,深兰科技荣获“2024年度人工智能最具商业合作价值企业”称号,同时&am…

【老板必看!】电脑怎么看使用软件时间记录?一文读懂5种超实用的方法!

在企业管理中,电脑虽不善言语、不会说话,但会留下无数线索,就像一场未解之谜,等待着各位福尔摩斯得到来,去揭开它的秘密面纱。 你是否曾好奇过,当你不在的时候,员工都在用电脑都在忙些什么&…

超重磅!青否交互式数字人2.0正式发布,支持流式输入!

青否交互式数字人自今年1月10日发布后,好评不断!是行业内第一家支持交互式数字人源码独立部署的。 今天,交互式数字人2.0版本重磅发布! 0.5秒反应速度 数字人克隆和声音克隆算法深度优化,支持流式输入,交互…

全志A133 android10 适配EC20 4G模块

一,移植适配 1. 驱动移植 代码路径:longan/kernel/linux-4.9/drivers/usb/serial/option.c diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c index 9f96dd2..2f25466 100644 --- a/drivers/usb/serial/option.cb/drivers/us…

12.第二阶段x86游戏实战2-CE找基地址

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要…

规模化电动汽车接入配电网调度方法

规模日益增长的电动汽车和可再生能源带来的不确定性给配电网的安全运营带来了严峻挑战。为综合考虑多重不确定性、平衡运营成本与系统可靠性,首先,提出一种基于分布鲁棒联合机会约束的电动汽车-配电网充放电调度模型。该模型将节点电压、支路功率、备用需求等通过联合机会约束建…

常用函数式接口的使用

FunctionalInterface注解 函数式接口在java中是指:有且仅有一个抽象方法的接口。 虽然知道怎么使用,但是没有搞懂使用场景,暂且记录下使用方法吧,不至于看到源码的时候不知所云。 要我自己写代码,我是想不起来这样用的&#xff0…

轻松掌控资产:企业必备的智能管理解决方案

在信息化管理日益重要的今天,高效管理企业的固定资产成为亟待解决的问题。我们深知企业在资产管理方面面临的挑战,因此推出了一款全新的资产管理解决方案,旨在帮助企业轻松应对资产管理中的各种难题。 特色功能 1. 资产申购 员工可通过系统便…

计算机毕业设计之:教学平台微信小程序(

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

YOLOv5的训练技巧汇总

文章目录 前言训练技巧1.训练预热 Warmup1.1 什么是训练预热 Warmup?1.2 常见的训练预热类型1.3 yolov5里面的warmup 2.余弦退火调整学习率 CosineAnnealingLR2.1 解释2.2 yolov5中的余弦退火 3.自适应锚框 Autoanchor3.1 什么是anchor?3.1 yolov5中的默认锚框3.3 …

【网络编程】socket套接字|sockaddr|sockaddr_in|通信过程

目录 ​编辑 源IP地址和目的IP地址 Socket 网络字节序 socket编程接口 sockaddr结构 sockaddr sockaddr_in(IPv4) sockaddr_in(IPv6) 完整的套接字(socket)通信过程 创建socket套接字 bind绑定套接字 listen建立监听 accept接受连接 connect…

OpenCV系列教程二:基本图像增强(数值运算)、滤波器(去噪、边缘检测)

文章目录 一、基本图像增强(数值运算)1.1 加法 (cv2.add)1.1.1 图像与标量相加(调节亮度)1.1.2 图像与图像相加(两个图像shape要相同)1.1.3 图像的加权加法(渐变切换&…

身份证识别接口的应用场景和作用

引言 在信息化与数字化高速发展的今天,身份证作为个人身份的重要证明文件,在各行各业的应用越来越广泛。传统的身份证信息录入和审核过程通常需要人工操作,不仅效率低下,而且容易出现错误。为了解决这些问题,身份证识别…

C++入门基础知识八

1.介绍new与delete 1.malloc和free是函数,new和delete是操作符 2.malloc申请的空间不会初始化,new可以初始化 3.malloc申请空间失败时,返回的是NULL,因此必须判空,new不需要,但是new需要捕获异常 4.申请…

Kyutai 开源对话模型 Moshi;李飞飞空间智能公司已筹集超过 2.3 亿美元丨 RTE 开发者日报

开发者朋友们大家好: 这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。 我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、…

OpenAI GPT o1技术报告阅读(3)-英文阅读及理解

✨继续阅读报告:使用大模型来学习推理(Reason) 原文链接:https://openai.com/index/learning-to-reason-with-llms/ 这次我们继续看一个英文阅读理解的案例。 原问题: The following passage is the draft of an excerpt from a contempora…

Web开发:ABP框架3——入门级别的接口增删改查实现原理

一、上节回顾 运用了ABP框架&#xff0c;使用了EFcore进行增删改查 二、程序的入口 代码解说&#xff1a; public class Program // 定义程序主类 {public async static Task<int> Main(string[] args) // 主方法&#xff0c;返回状态码{// 配置Serilog日志Log.Logger…

手机换新,怎么把旧iPhone手机数据传输至新iPhone16手机

随着苹果公司推出了备受期待的iPhone 16。这款最新型号的iPhone不仅在设计上进行了革新&#xff0c;更在性能和功能上带来了前所未有的突破。对于那些准备从旧iPhone升级到iPhone 16的用户来说&#xff0c;最关心的问题之一就是如何把旧手机的资料转移到新手机中了。如果你不知…