塔吊识别数据集 yolo格式 共5076张图片 已划分好训练验证 txt格式 yolo可直接使用

news2024/10/12 6:17:55

 

塔吊识别数据集 yolo格式 共5076张图片 已划分好训练验证 txt格式 yolo可直接使用。 类别:塔吊(Tower-crane) 一种 训练数据已划分,配置文件稍做路径改动即可训练。 训练集: 4724 (正面3224 + 负面1500) 验证集: 1352 (正面902 + 负面450) 另外:提供yolov5和yolov8训练结果(内含模型 识别精度:90%+)

塔吊识别数据集 (Tower Crane Detection Dataset)

描述: 本数据集旨在支持对塔吊的自动检测,特别适用于建筑工地监控、安全管理和智能工地应用等领域。通过使用该数据集训练的模型可以帮助及时发现并管理施工现场的塔吊设备,提高施工安全性和效率。

类别:

  • Tower-crane: 代表塔吊设备。

数据量:

  • 总图片数: 5,076张
  • 训练集: 4,724张
    • 正面样本: 3,224张
    • 负面样本: 1,500张
  • 验证集: 1,352张
    • 正面样本: 902张
    • 负面样本: 450张

文件格式:

  • 图像采用常见的格式(如JPEG, PNG等)。
  • 标注文件采用YOLO格式,即每个图像对应一个文本文件,其中包含边界框坐标及类别标签。例如,对于Tower-crane类别的标注,文本文件中的每一行将按照以下格式表示:<class_id> <x_center> <y_center> <width> <height>,其中<class_id>为0(代表Tower-crane),其余参数均为归一化后的浮点数值。

数据集结构

确保您的数据集目录结构如下所示(这只是一个示例结构,您可以根据实际情况调整):

tower_crane_dataset/
├── images/
│   ├── train/
│   │   ├── img1.jpg
│   │   ├── img2.jpg
│   │   └── ...
│   ├── val/
│   │   ├── img4725.jpg
│   │   ├── img4726.jpg
│   │   └── ...
├── labels/
│   ├── train/
│   │   ├── img1.txt
│   │   ├── img2.txt
│   │   └── ...
│   ├── val/
│   │   ├── img4725.txt
│   │   ├── img4726.txt
│   │   └── ...
└── data.yaml

data.yaml 配置文件

创建一个名为 data.yaml 的配置文件,内容如下:

train: ./tower_crane_dataset/images/train
val: ./tower_crane_dataset/images/val

nc: 1  # 类别数量
names: ['Tower-crane']  # 类别名称

使用方法

1. 准备环境

确保安装了必要的Python库,如ultralytics(用于YOLOv8)和其他相关依赖:

pip install ultralytics
2. 修改配置文件

根据实际路径修改 data.yaml 文件中的路径。

3. 训练脚本

以下是一个使用YOLOv8进行训练的Python脚本示例:

 
from ultralytics import YOLO

# 加载预训练模型或从头开始训练
model = YOLO('yolov8n.pt')  # 使用预训练的YOLOv8n模型
# model = YOLO()  # 从头开始训练

# 开始训练
results = model.train(
    data='path/to/data.yaml',  # 指定数据集配置文件路径
    epochs=100,  # 训练轮次
    batch=16,  # 批处理大小
    imgsz=640,  # 输入图像尺寸
    workers=8,  # 数据加载线程数
    device=0,  # 使用GPU设备编号,默认为0
    project='tower_crane_detection',  # 保存结果的项目名称
    name='exp',  # 实验名称
    exist_ok=True  # 如果存在相同实验名,覆盖旧的结果
)

# 可视化训练结果
results.plot()

# 保存模型
model.save('tower_crane_detection_model.pt')

训练结果

模型: YOLOv5 和 YOLOv8

性能指标:

  • 准确率 (Accuracy): [根据实际结果填写]
  • 精确度 (Precision): [根据实际结果填写]
  • 召回率 (Recall): [根据实际结果填写]
  • F1分数 (F1 Score): [根据实际结果填写]
  • 平均精度均值 (mAP@0.5:0.95): 90%+

模型文件:

  • 提供了YOLOv5和YOLOv8的预训练模型文件,可以直接用于推理或进一步微调。

总结

这个塔吊识别数据集提供了丰富的标注图像,适合用于训练和评估基于深度学习的塔吊检测模型。通过使用YOLOv5或YOLOv8框架,可以有效地识别和定位施工现场的塔吊设备。提供的预训练模型已经达到了90%以上的识别精度,可以在实际应用中提供可靠的检测结果。

如果您需要更详细的信息或特定的帮助,欢迎继续询问。

以下是一个使用YOLOv5进行训练的关键代码示例。假设您已经安装了yolov5库,并且您的数据集已经按照YOLO格式准备好。如果您还没有安装yolov5,可以使用以下命令进行安装:

pip install -r https://raw.githubusercontent.com/ultralytics/yolov5/master/requirements.txt

数据集结构

确保您的数据集目录结构如下所示(这只是一个示例结构,您可以根据实际情况调整):

tower_crane_dataset/
├── images/
│   ├── train/
│   │   ├── img1.jpg
│   │   ├── img2.jpg
│   │   └── ...
│   ├── val/
│   │   ├── img4725.jpg
│   │   ├── img4726.jpg
│   │   └── ...
├── labels/
│   ├── train/
│   │   ├── img1.txt
│   │   ├── img2.txt
│   │   └── ...
│   ├── val/
│   │   ├── img4725.txt
│   │   ├── img4726.txt
│   │   └── ...
└── data.yaml

data.yaml 配置文件

创建一个名为 data.yaml 的配置文件,内容如下:

train: ./tower_crane_dataset/images/train
val: ./tower_crane_dataset/images/val

nc: 1  # 类别数量
names: ['Tower-crane']  # 类别名称

训练脚本

下面是一个使用YOLOv5进行训练的Python脚本示例:

import torch
from yolov5 import train

# 设置设备
device = 'cuda' if torch.cuda.is_available() else 'cpu'

# 训练参数
hyp = './yolov5/data/hyps/hyp.scratch.yaml'  # 超参数配置文件
weights = 'yolov5s.pt'  # 预训练模型权重
data = 'path/to/data.yaml'  # 数据集配置文件路径
epochs = 100  # 训练轮次
batch_size = 16  # 批处理大小
img_size = 640  # 输入图像尺寸
workers = 8  # 数据加载线程数
project = 'tower_crane_detection'  # 保存结果的项目名称
name = 'exp'  # 实验名称
exist_ok = True  # 如果存在相同实验名,覆盖旧的结果

# 开始训练
train.run(
    data=data,
    weights=weights,
    hyp=hyp,
    epochs=epochs,
    batch_size=batch_size,
    imgsz=img_size,
    workers=workers,
    device=device,
    project=project,
    name=name,
    exist_ok=exist_ok
)

关键点解释

  • 设置设备:

    • device = 'cuda' if torch.cuda.is_available() else 'cpu': 根据系统是否支持CUDA来选择使用GPU或CPU。
  • 训练参数:

    • hyp: 指定超参数配置文件,这里使用的是默认的hyp.scratch.yaml
    • weights: 指定预训练模型权重,这里使用的是yolov5s.pt
    • data: 指向包含数据集信息的data.yaml文件。
    • epochs: 设置训练轮次。
    • batch_size: 设置批处理大小。
    • img_size: 设置输入图像的尺寸。
    • workers: 设置数据加载线程数。
    • project 和 name: 指定保存训练结果的目录和实验名称。
    • exist_ok: 如果设置为True,允许覆盖已有实验结果。
  • 开始训练:

    • train.run(...): 使用指定的参数启动训练过程。

运行脚本

将上述代码保存为一个Python文件(例如 train_yolov5.py),然后在终端中运行:

python train_yolov5.py

这样,您就可以开始训练您的塔吊识别模型了。如果需要进一步调整超参数或优化模型性能,可以根据实际需求修改训练脚本中的参数。

可视化与评估

YOLOv5提供了丰富的工具来进行训练过程的可视化和评估。训练完成后,可以在输出目录中找到训练日志、图表以及最佳模型权重文件。

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

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

相关文章

【父子线程传值TransmittableThreadLocal使用踩坑-及相关知识拓展】

文章目录 一.业务背景二.TransmittableThreadLocal是什么&#xff1f;三.问题复现1.定义注解DigitalAngel2.定义切面3.TransmittableThreadLocal相关4.线程池配置信息5.Controller6.Service7.测试结果8.问题分析9 解决办法及代码改造10.最终测试&#xff1a; 四.与 ThreadLocal…

【大模型实战篇】创建有效的大模型提示词Prompt(提示词工程)

1. 背景介绍 随着chatgpt、llama、chatglm、claude AI等一系列生成式 AI 工具的普及&#xff0c;很明显能感受到&#xff0c;个人的生产力得到了大幅地提升。这些生成式算法模型能够帮助我们开发新想法、轻松获取信息&#xff0c;并简化各种个人和职业任务。个人在日常生活、工…

问卷调查毕设计算机毕业设计投票系统SpringBootSSM框架

目录 一、引言‌ ‌二、需求分析‌ 用户角色‌&#xff1a; ‌功能需求‌&#xff1a; ‌非功能需求‌&#xff1a; ‌三、系统设计‌ ‌技术选型‌&#xff1a; ‌数据库设计‌&#xff1a; ‌界面设计‌&#xff1a; ‌四、实现步骤‌ ‌后端实现‌&#xff1a; …

Python快速编程小案例——猜数字

提示&#xff1a;&#xff08;个人学习&#xff09;&#xff0c;案例来自工业和信息化“十三五”人才培养规划教材&#xff0c;《Python快速编程入门》第2版&#xff0c;黑马程序员◎编著 猜数游戏是一种经典的密码破译类益智游戏&#xff0c;通常由两个人参与。一个人在心中设…

【C++网络编程】(三)多线程TCP服务端程序

文章目录 &#xff08;三&#xff09;多线程TCP服务端程序多线程服务端客户端 &#xff08;三&#xff09;多线程TCP服务端程序 图片来源&#xff1a;https://subingwen.cn/linux/concurrence 主线程负责监听和连接多个客户端&#xff0c;子线程负责和对应的客户端进行通信&am…

vue后台管理系统从0到1搭建(4)各组件的搭建

文章目录 vue后台管理系统从0到1搭建&#xff08;4&#xff09;各组件的搭建Main.vue 组件的初构 vue后台管理系统从0到1搭建&#xff08;4&#xff09;各组件的搭建 Main.vue 组件的初构 根据我们的效果来看&#xff0c;分析一下&#xff0c;我们把左边的区域分为一个组件&am…

如何将本地磁盘镜像包部署到docker中(以mysql5_7.tar.gz为例)

1.复制文件到宿主机 2.找到对应目录&#xff0c;docker load docker images就可以看到该镜像啦

PE结构之导入表

流程图: 文件中\样式 加载到进程中时 加载到进程中时的过程,一张图不够放 续图 整个流程 考虑到 PE32 可执行文件&#xff08;64 位&#xff09;&#xff0c;每个 ILT (导入名称表) 条目总结为&#xff1a; 如果设置了高位&#xff08;位 63&#xff0c;也称为“序号标志”&…

【Spring详解】Maven从安装到应用(Maven Help插件的安装)-国内源的配置(中央仓库及私服的概念)

&#x1f308;个人主页&#xff1a;努力学编程’ ⛅个人推荐&#xff1a; c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构&#xff0c;刷题刻不容缓&#xff1a;点击一起刷题 &#x1f319;心灵鸡汤&#xff1a;总有人要赢&#xff0c;为什么不能是我呢 &#x1f42f…

48 C 语言实战项目——客户信息管理系统

目录 1 需求说明 1.1 主菜单 1.2 添加客户 1.3 显示客户列表 1.4 修改客户 1.5 删除客户 1.6 退出 2 流程分析 2.1 总流程图 2.2 添加客户流程图 2.3 显示客户列表流程图 2.4 改客户流程图 2.4.1 修改客户总体流程图 2.4.2 具体执行修改部分的流程图 2.5 删除客…

MySQL-约束Constraint详解

文章目录 约束简介非空约束检查约束唯一约束列级约束与表级约束给约束起名字主键约束 约束简介 约束是我们在创建表的时候, 我们可以给表中的字段添加约束确保我们的数据的完整性和有效性, 比如大家平时上网时注册用户常见的 : 用户名不能为空, 对不起, 用户名已经存在等提示信…

【C++】用红黑树模拟实现set与map

目录 一、红黑树的完善&#xff1a; 1、红黑树节点模版的修改&#xff1a; 2、仿函数在模拟实现中的应用&#xff1a; 3、新增迭代器&#xff1a; 4、红黑树中的迭代器实现&#xff1a; 二、set与map的模拟实现&#xff1a; 1、insert&#xff1a; 2、map的[ ]: 三、测…

无刷直流电机工作原理:【图文讲解】

电动机 (俗称马达) 是机械能与电能之间转换装置的通称。可以分为电动机和发电机.一般称电机时就是指电动机。这个在日常应用中&#xff0c;比较多见&#xff0c;比如机器人&#xff0c;手机&#xff0c;电动车等。 直流电机&#xff1a;分为有刷直流电机&#xff08;BDC&#…

本地ubuntu主机搭建我的世界服务器并免费开启公网映射 结合MESM面板 chmlfrp 保姆级教学

本地ubuntu主机搭建我的世界forge服务器并免费开启公网映射 结合MESM面板 chmlfrp 这是一篇很完成的从ssh命令->配置java环境->安装MCS->部署服务器->开启公网映射的我的世界保姆级开服教程,可以慢慢食用ଘ(੭ˊ꒳ˋ)੭ 。 为什么选择forge服务器进行开服&#x…

【前车之鉴】坑啊~ RestHighLevelClient 超时时间偶尔失效问题解决方案

文章目录 show me code缘起原因分析 几点建议 结论&#xff1a;实际你的配置是生效的&#xff0c;只不过效果不明显而已&#xff0c;通过下面的配置放大直观效果。 show me code 核心代码 public static void main(String[] args) {RestClientBuilder builder RestClient.bu…

【M2TR】M2TR: Multi-modal Multi-scale Transformers for Deepfake Detection

文章目录 M2TR: Multi-modal Multi-scale Transformers for Deepfake Detectionkey points研究贡献方法多尺度变压器频率过滤器跨模态融合损失函数SR-DF数据集实验总结M2TR: Multi-modal Multi-scale Transformers for Deepfake Detection 会议/期刊:ICMR ’22 作者: key …

深入理解栈(Stack)(纯小白进)

目录&#xff1a; 一、栈是什么&#xff1f;1. 栈的概念2.栈的结构选择 二、栈的实现1. 栈结构体的定义2. 栈的初始化3. 栈的销毁4. 入栈5.出栈6. 取栈顶元素7. 栈中元素的个数8. 判断栈是否为空 总结 一、栈是什么&#xff1f; 1. 栈的概念 栈&#xff08;Stack&#xff09;…

游戏开发指南:使用 UOS C# 云函数快速构建与部署服务端逻辑实战教学

零基础的服务端小白&#xff0c;现在也可以使用 Unity 结合 C# 来轻松搞定游戏服务端啦&#xff01; 在本篇文章中&#xff0c;我们将以游戏中的“抽卡”功能为例&#xff0c;展示如何使用 Unity Online Services&#xff08;UOS&#xff09;提供的强大 C# 云函数服务&#xf…

Elasticsearch(二)集成Spring Boot 基本的API操作

目录 一、集成Spring Boot 1、创建项目 2、pom文件 查看springboot集成的依赖 3、增加es的config类 二、索引相关API 1、创建索引 2、获取索引&#xff0c;判断其是否存在 3、删除索引 三、文档相关API 1、添加文档 2、获取文档&#xff0c;判断是否存在 3、获取文档…

Java后端面试----某团一面

美团一面 1.介绍一下你的第一个项目 这个就不多说了&#xff0c;主要是根据自己的简历上面的项目进行一个简短的概括使用的技术栈和什么背景解决了什么问题等等。 2.线程安全的类有哪些&#xff0c;平时有使用过哪些&#xff0c;主要解决什么问题 在Java中线程安全的类比如…