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.gitcd 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.mzph.cn/diannao/45307.shtml

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

相关文章

每日一道算法题 204. 计数质数

题目 204. 计数质数 - 力扣(LeetCode) Python class Solution:def countPrimes(self, n: int) -> int:"""质数又称为素数,是一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数…

【C++题解】1156 - 排除异形基因

问题:1156 - 排除异形基因 类型:数组基础 题目描述: 神舟号飞船在完成宇宙探险任务回到地球后,宇航员张三感觉身体不太舒服,去了医院检查,医生诊断结果:张三体内基因已被改变,原有…

Vscode连接存在私钥的远程服务器

编辑配置文件 # Read more about SSH config files: https://linux.die.net/man/5/ssh_configHost 172.17.x.xxxHostName 172.17.x.xxxUser xxxIdentityFile C:\Users\xxx\.ssh\xxx.pem会出现报错: Permissions 0644 for xxxx are too open. It is required that …

XML Schema 指示器

XML Schema 指示器 1. 引言 XML Schema 是一种用于定义 XML 文档结构和内容的语言。它提供了一种强大的方式来描述 XML 文档中允许的元素、属性和数据类型。XML Schema 指示器是在 XML Schema 定义中使用的一些特殊元素和属性,它们用于指示 XML 处理器如何解析和验证 XML 文…

vue-router路由路径

在配置 vue-router 路由时,path: ‘search’ 和 path: ‘/search’ 有不同的行为: 1.path: ‘search’: 这是一个相对路径。相对路径意味着这个路径是相对于父路径的。如果父路径是 /emergency,那么这个路由的完整路径是 /emergency/search…

QT 报错C2872: “byte“: 不明确的符号

这个错误提示是因为 byte 这个符号不明确,这种情况是由于代码中同时包含了多个同名符号的定义,编译器无法区分,从而导致错误。在这个问题中,可能是由于使用了 Winsock2.h 头文件中定义的 byte 宏与其他地方定义的 byte 符号重名&a…

Android Bitmap

在Android开发中,位图(Bitmap)是一个非常重要的图形处理对象,它用于在内存中存储图像数据。以下是关于Android中位图使用的一些关键点和方法: 一、获取位图 从资源文件中获取: 使用BitmapFactory类&#…

头歌资源库(24)插入加号

一、 问题描述 二、算法思想 可以使用动态规划来解决这个问题。 首先将数字串拆分为多个数字,用一个数组nums来存储每个数字。例如,数字串79846会被拆分为数组[7, 9, 8, 4, 6]。 然后定义一个二维数组dp,其中dp[i][j]表示在前i个数字中插入…

Java异常体系、UncaughtExceptionHandler、Spring MVC统一异常处理、Spring Boot统一异常处理

概述 所有异常都是继承自java.lang.Throwable类,Throwable有两个直接子类,Error和Exception。 Error用来表示程序底层或硬件有关的错误,这种错误和程序本身无关,如常见的NoClassDefFoundError。这种异常和程序本身无关&#xff0…

Java网络模型全扫盲

概述 讲述ava层面NIO基础知识,用作基础回顾所用 1. NIO概述 ​ 在Java中,NIO(Non-blocking I/O 或 New I/O)是Java SE 1.4及后续版本中引入的一套新的输入/输出操作API。 ​ 它与传统的IO模型相比,提供了更高的效率和…

【算法】二叉树-迭代法实现前后中序遍历

递归的实现就是:每一次递归调用都会把函数的局部变量,参数值和返回地址等压入调用栈中,然后递归返回的时候,从栈顶弹出上一次递归的各项参数,这就是递归为什么可以返回上一层位置的原因 可以用栈实现二叉树的前中后序遍历 1. 前序…

FastAPI 学习之路(四十四)WebSockets

我们之前的分析都是基于http的请求,那么如果是websockets可以支持吗,答案是可以的,我们来看下是如何实现的。 from fastapi import WebSocket, FastAPI from fastapi.responses import HTMLResponseapp FastAPI()html """&…

k8s NetworkPolicy

Namespace 隔离 默认情况下,所有 Pod 之间是全通的。每个 Namespace 可以配置独立的网络策略,来 隔离 Pod 之间的流量。 v1.7 版本通过创建匹配所有 Pod 的 Network Policy 来作为默认的网络策略 默认拒绝所有 Pod 之间 Ingress 通信 apiVersion: …

【趣味数学】求阴影部分面积

题 解法1: 中位线法 既然是中点,就可以用起来,横着不行,竖着来,扩展做辅助线 E是中点S(AED) 1/4 S(ABCD) 6 做图中辅助延长线,因为E中点,所以S(MEB)S(AED) 6 同理E也是…

nfs共享存储配置

目录 一.存储和NFS共享 1.存储的类型分为三种 2.三种存储架构的应用场景 二.NFS共享存储服务 1.NFS简介 2.NFS存储 3.NFS原理 4.软件介绍 三.搭建NFS服务器 1.搭建 2.使用权限: 读写权限 属主,属组权限 客户端创建文件指向同一属主和属组 …

Android使用AndServer在安卓设备上搭建服务端(Java)(Kotlin)两种写法

一直都是通过OkHttp远程服务端进行数据交互,突发奇想能不能也通过OkHttp在局域网的情况下对两个安卓设备或者手机进行数据交互呢? 这样一方安卓设备要当做服务端与另一个安卓设备通过OkHttp进行数据交互即可 当然还可以通过 socket 和 ServerSocket 通…

大数据面试题之Hudi(1)

目录 Hudi的发展历史 描述Hudi的容错和恢复机制 Hudi的核心优势是? Hudi如何处理数据的变更? Hudi如何保证数据的一致性和可靠性? Hudi如何支持数据的多版本并发控制(MVCC)? Hudi的数据摄取&#xff…

uniapp中使用uni-ui组件库

src目录下新建components目录从uni-ui引入对应的组件目录&#xff0c;如下图 直接使用组件&#xff0c;demo <template><view id"my" data-name"王五" data-age"18">my页面</view><uni-data-select :localdata"local…

为什么要求轨迹平滑?

移动机器人要求轨迹平滑主要是为了确保移动过程的安全、稳定和效率。具体原因如下&#xff1a; 安全性&#xff1a;平滑的轨迹可以减少机器人在移动过程中的震动和冲击&#xff0c;避免对机器人自身结构和周围环境造成损害。稳定性&#xff1a;平滑的轨迹有助于保持机器人的平…

IC后端设计中的shrink系数设置方法

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 在一些成熟的工艺节点通过shrink的方式(光照过程中缩小特征尺寸比例)得到了半节点,比如40nm从45nm shrink得到,28nm从32nm shrink得到,由于半节点的性能更优异,成本又低,漏电等不利因素也可以…