YOLOv10训练自己的数据集(交通标志检测)

YOLOv10训练自己的数据集(交通标志检测)

  • 前言
  • 相关介绍
  • 前提条件
  • 实验环境
  • 安装环境
  • 项目地址
    • Linux
    • Windows
  • 使用YOLOv10训练自己的数据集进行交通标志检测
    • 准备数据
    • 进行训练
    • 进行预测
    • 进行验证
  • 参考文献

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

前言

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入Python日常小操作专栏、OpenCV-Python小应用专栏、YOLO系列专栏、自然语言处理专栏或我的个人主页查看
  • 基于DETR的人脸伪装检测
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)
  • YOLOv5:TensorRT加速YOLOv5模型推理
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • 玩转Jetson Nano(五):TensorRT加速YOLOv5目标检测
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集
  • YOLOv5:使用7.0版本训练自己的实例分割模型(车辆、行人、路标、车道线等实例分割)
  • 使用Kaggle GPU资源免费体验Stable Diffusion开源项目

相关介绍

  • YOLOv10是由清华大学的研究人员基于Ultralytics Python包构建的,引入了一种实时目标检测的新方法,解决了之前YOLO版本中后处理和模型架构的缺陷。通过消除非最大抑制(NMS)和优化各种模型组件,YOLOv10在显著降低计算开销的同时实现了最先进的性能。大量的实验证明了它在多个模型尺度上的优越的准确性和延迟性权衡。
  • [1] YOLOv10 源代码地址:https://github.com/THU-MIG/yolov10.git
  • [2] YOLOv10 论文地址:https://arxiv.org/abs/2405.14458
    在这里插入图片描述
  • 概述
    实时目标检测的目的是在低延迟的情况下准确预测图像中目标的类别和位置。YOLO系列由于其在性能和效率之间的平衡,一直处于这项研究的前沿。然而,对NMS的依赖和体系结构的低效率阻碍了最佳性能。YOLOv10通过为无nms的训练和整体效率-精度驱动的模型设计策略引入一致的双重任务来解决这些问题。
  • 体系结构
    YOLOv10的架构建立在以前的YOLO模型的优势之上,同时引入了几个关键的创新。模型体系结构由以下组件组成:
    • Backbone:YOLOv10中的主干负责特征提取,使用增强版的CSPNet (Cross Stage Partial Network)来改善梯度流,减少计算冗余。
    • Neck :颈部的设计目的是将不同尺度的特征聚合在一起,并将它们传递到头部。它包括PAN (Path Aggregation Network)层,用于有效的多尺度特征融合。
    • One-to-Many Head:在训练过程中对每个对象生成多个预测,提供丰富的监督信号,提高学习精度。
    • One-to-One Head: 在推理期间为每个对象生成一个最佳预测,以消除对NMS的需求,从而减少延迟并提高效率。
  • 关键特性
    • NMS-Free Training:利用一致的双重分配来消除对NMS的需求,减少推理延迟。
    • Holistic Model Design:从效率和准确性的角度对各个组件进行全面优化,包括轻量级分类头、空间通道解耦下采样和秩导块设计。
    • Enhanced Model Capabilities:结合了大核卷积和部分自关注模块,在没有显著计算成本的情况下提高了性能。
  • Model Variants(模型变量):YOLOv10有多种型号,以满足不同的应用需求:
    • YOLOv10-N: 用于资源极度受限环境的Nano版本.
    • YOLOv10-S: Small version 平衡速度和精度.
    • YOLOv10-M: Medium version for general-purpose use(适用于多种不同的目的或用途).
    • YOLOv10-B: Balanced version with increased width for higher accuracy.
    • YOLOv10-L: Large version for higher accuracy at the cost of increased computational resources.
    • YOLOv10-X: Extra-large version for maximum accuracy and performance.
      在这里插入图片描述

前提条件

  • 熟悉Python

实验环境

torch==2.0.1
torchvision==0.15.2
onnx==1.14.0
onnxruntime==1.15.1
pycocotools==2.0.7
PyYAML==6.0.1
scipy==1.13.0
onnxsim==0.4.36
onnxruntime-gpu==1.18.0
gradio==4.31.5
opencv-python==4.9.0.80
psutil==5.9.8
py-cpuinfo==9.0.0
huggingface-hub==0.23.2
safetensors==0.4.3

安装环境

pip install ultralytics
# 或者
pip install ultralytics -i https://pypi.tuna.tsinghua.edu.cn/simple # 国内清华源,下载速度更快

在这里插入图片描述

在这里插入图片描述

项目地址

  • YOLOv10 源代码地址:https://github.com/THU-MIG/yolov10.git

Linux

git clone https://github.com/THU-MIG/yolov10.git

cd yolov10
# conda create -n yolov10 python=3.9
# conda activate yolov10
pip install -r requirements.txt
pip install -e .
Cloning into 'yolov10'...
remote: Enumerating objects: 4583, done.
remote: Counting objects: 100% (4583/4583), done.
remote: Compressing objects: 100% (1270/1270), done.
remote: Total 4583 (delta 2981), reused 4576 (delta 2979), pack-reused 0
Receiving objects: 100% (4583/4583), 23.95 MiB | 1.55 MiB/s, done.
Resolving deltas: 100% (2981/2981), done.

Windows

请到https://github.com/THU-MIG/yolov10.git网站下载源代码zip压缩包。

cd yolov10
# conda create -n yolov10 python=3.9
# conda activate yolov10
pip install -r requirements.txt
pip install -e .

使用YOLOv10训练自己的数据集进行交通标志检测

准备数据

本文所使用数据集免费下载地址:https://download.csdn.net/download/FriendshipTang/88045378

在这里插入图片描述

进行训练

yolo detect train data=../datasets/Road_Sign_VOC_and_YOLO_datasets/road_sign.yaml model=yolov10n.yaml epochs=100 batch=4 imgsz=640 device=0

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

进行预测

yolo predict model=runs\detect\train4\weights\best.pt source=E:/mytest/datasets/Road_Sign_VOC_and_YOLO_datasets/testset/images

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

进行验证

yolo detect val data=../datasets/Road_Sign_VOC_and_YOLO_datasets/road_sign.yaml model=runs\detect\train4\weights\best.pt batch=4 imgsz=640 device=0

在这里插入图片描述

参考文献

[1] YOLOv10 源代码地址:https://github.com/THU-MIG/yolov10.git
[2] YOLOv10 论文地址:https://arxiv.org/abs/2405.14458

  • 由于本人水平有限,难免出现错漏,敬请批评改正。
  • 更多精彩内容,可点击进入Python日常小操作专栏、OpenCV-Python小应用专栏、YOLO系列专栏、自然语言处理专栏或我的个人主页查看
  • 基于DETR的人脸伪装检测
  • YOLOv7训练自己的数据集(口罩检测)
  • YOLOv8训练自己的数据集(足球检测)
  • YOLOv5:TensorRT加速YOLOv5模型推理
  • YOLOv5:IoU、GIoU、DIoU、CIoU、EIoU
  • 玩转Jetson Nano(五):TensorRT加速YOLOv5目标检测
  • YOLOv5:添加SE、CBAM、CoordAtt、ECA注意力机制
  • YOLOv5:yolov5s.yaml配置文件解读、增加小目标检测层
  • Python将COCO格式实例分割数据集转换为YOLO格式实例分割数据集
  • YOLOv5:使用7.0版本训练自己的实例分割模型(车辆、行人、路标、车道线等实例分割)
  • 使用Kaggle GPU资源免费体验Stable Diffusion开源项目

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】日志

日志是记录软件运行过程中发生的事件的一种手段,通常包含以下内容: 时间戳:记录日志条目创建的确切时间。这对于追踪事件发生的时间顺序至关重要。日志级别:表示日志信息的严重性或重要性,常见的级别包括 DEBUG、INFO…

RisingWave 用例:流式 ETL、实时分析、事件驱动应用

RisingWave 非常适合以下类别的用例。 流式 ETL实时分析事件驱动应用 流式 ETL 是实时分析和事件驱动应用的基础。实时分析通过引入数据看板,扩展了流式 ETL,而事件驱动应用则在实时分析的基础上增加了逻辑,以评估条件是否触发后续行动。 …

【测开能力提升-fastapi框架】fastapi模版引擎简单使用

1.6 通过模版引擎返回HTM页面 import uvicorn from fastapi import FastAPI, Request from fastapi.templating import Jinja2Templatesapp FastAPI()# 初始化模版引擎存放位置 templates Jinja2Templates(directory"templates")app.get("/") async def…

2024年西安铁一中集训DAY1---- 杂题选讲

文章目录 牛客练习赛125 E 联谊活动(枚举,分讨)牛客练习赛125 F 玻璃弹珠(类莫队,离线询问,数据结构)2024ccpc长春邀请赛 D Parallel Lines(随机化)2024ccpc长春邀请赛 E…

分布式应用系统设计:即时消息系统

即时消息(IM)系统,涉及:站内消息系统 组件如下; 客户端: WEB页面,IM桌面客户端。通过WebSocket 跟ChatService后端服务连接 Chat Service: 提供WebSocket接口,并保持跟“客户端”状态的维护。…

彻底解决找不到d3dcompiler_43.dll问题,总结几种有效的方法

运行软件时提示找不到d3dcompiler_43.dll无法继续执行代码,如何解决?解决这个问题的方法有很多,但具体问题需要具体分析,有些方法可能并不适用于解决d3dcompiler_43.dll的问题。因此,需要根据实际情况来选择合适的方法…

8627 数独

为了判断数独解是否合法,我们需要遵循以下步骤: 1. **检查每一行**:确保1到9每个数字在每一行中只出现一次。 2. **检查每一列**:确保1到9每个数字在每一列中只出现一次。 3. **检查每个3x3的宫**:确保1到9每个数字在…

模式物种葡萄基因组(T2T)--文献精读29

The complete reference genome for grapevine (Vitis vinifera L.) genetics and breeding 葡萄(Vitis vinifera L.)遗传学和育种的完整参考基因组 摘要 葡萄是全球最具经济重要性的作物之一。然而,以往版本的葡萄参考基因组通常由成千上万…

星辰考古:TiDB v4.0 进化前夜

前情回顾TiDB v4 时间线TiDB v4 新特性 TiDBTiKVPDTiFlashTiCDCTiDB v4 兼容性变化 TiDBTiKVPD其他TiDB 社区互助升级活动TiDB 3.0.20 升级到 4.0.16 注意事项升级速览直观变化总结素材来源🌻 往期精彩 ▼ 前情回顾 在前面的章节中,我们共同梳理了 TiDB …

【刷题汇总 -- 最长回文子串、买卖股票的最好时机(一)、[NOIP2002 普及组] 过河卒】

C日常刷题积累 今日刷题汇总 - day0101、最长回文子串1.1、题目1.2、思路1.3、程序实现 2、买卖股票的最好时机(一)2.1、题目2.2、思路2.3、程序实现2.4、程序实现 -- 优化 3、[NOIP2002 普及组] 过河卒3.1、题目3.2、思路3.3、程序实现 -- dp 4、题目链接 今日刷题汇总 - day0…

一个便捷的web截图库~【送源码】

随着时间的发展,前端开发的范围越来越广,能够实现的功能也越来越多,要实现的功能也五花八门,今天就给大家介绍一个web截图库,让前端也能实现截图功能—— js-web-screen-shot js-web-screen-shot js-web-screen-shot 是一个基于 …

Linux服务器CPU占用率达到100%排查思路

1、找到最耗CPU的进程pid,执行命令 top 2、找到最耗CPU的线程tid // 执行 top -Hp [pid] 定位应用进程对应的线程 tid // 按shift p 组合键,按照CPU占用率排序 > top -Hp 14246 3、将线程pid转化为16进制 // printf "%x\n" [tid] 将tid…

Redis+Caffeine 实现两级缓存实战

RedisCaffeine 实现两级缓存 背景 ​ 事情的开始是这样的,前段时间接了个需求,给公司的商城官网提供一个查询预计送达时间的接口。接口很简单,根据请求传的城市仓库发货时间查询快递的预计送达时间。因为商城下单就会调用这个接口&#xff…

camunda最终章-springboot

1.实现并行流子流程 1.画图 2.创建实体 package com.jmj.camunda7test.subProcess.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable; import java.util.ArrayList; import java.util.List;Data …

ComfyUI+MuseV+MuseTalk图片数字人

电脑配置 GPU12G,如果自己电脑配置不够,选择云gpu,我就是用的这个,自己电脑太老配置跟不上 环境: Python 3.11.8 torch 2.2.1 cuda_12.1 资源提供: 链接:https://pan.baidu.com/s/1_idZbF…

开始Linux之路(暑假提升)

人生得一知己足矣,斯世当以同怀视之。——鲁迅 Linux操作系统简单操作指令 1、ls指令2、pwd命令3、cd指令4、mkdir指令(重要)5、whoami命令6、创建一个普通用户7、重新认识指令8、which指令9、alias命令10、touch指令11、rmdir指令 及 rm指令(重要)12、man指令(重要…

【视频】R语言广义加性模型GAMs非线性效应、比较分析草种耐寒性实验数据可视化

全文链接:https://tecdat.cn/?p36979 原文出处:拓端数据部落公众号 广义加法模型(Generalized Additive Models, GAMs)作为一种高度灵活的统计工具,显著扩展了广义线性模型(Generalized Linear Models, …

C基础day9

一、思维导图 二、课后练习 1> 使用递归实现 求 n 的 k 次方 #include<myhead.h>int Pow(int n,int k) {if(k 0 ) //递归出口{return 1;}else{return n*Pow(n,k-1); //递归主体} }int main(int argc, const char *argv[]) {int n0,k0;printf("请输入n和k:&…

Python统计实战:时间序列分析之绘制观测值图和按年折叠图

为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能&#xff0c;从而更快地掌握解决问题所需的能力。 &#xff08;以下练习题来源于《统计学—基于Python》。请在Q群455547227下载原始数据。&#xff09; 练习题 下表是某地区2…

复杂度(上卷)

前言 在正式进入今天的主题之前&#xff0c;我们不妨先来回顾一下初步学习数据结构后必须知道的概念。&#x1f3b6; 数据结构 数据结构是计算机存储、组织数据的方式&#xff0c;指相互间存在一种或多种特定关系的数据元素的集合。 &#xff08;没有一种单一的数据结构能够…