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

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

前言

相关介绍

  • 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.
      在这里插入图片描述

前提条件

实验环境

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 # 国内清华源,下载速度更快

在这里插入图片描述

在这里插入图片描述

项目地址

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

相关推荐

  1. Yolov10训练自己数据

    2024-07-12 13:28:03       23 阅读
  2. Yolov10环境配置+训练自己数据(Windows10

    2024-07-12 13:28:03       20 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 13:28:03       51 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 13:28:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 13:28:03       44 阅读
  4. Python语言-面向对象

    2024-07-12 13:28:03       55 阅读

热门阅读

  1. Android C++系列:Linux守护进程

    2024-07-12 13:28:03       16 阅读
  2. hive中reverse函数

    2024-07-12 13:28:03       18 阅读
  3. 03-NoSQL之Redis配置与优化

    2024-07-12 13:28:03       13 阅读
  4. 编程是学什么:探索编程世界的四大核心领域

    2024-07-12 13:28:03       16 阅读
  5. npm error code 1

    2024-07-12 13:28:03       14 阅读
  6. npm link,npm unlink调试本地开发npm包

    2024-07-12 13:28:03       15 阅读
  7. Dubbo之SPI、Adaptive机制详解

    2024-07-12 13:28:03       16 阅读
  8. linux上mmm和mm指令的区别

    2024-07-12 13:28:03       18 阅读
  9. docker 常用命令

    2024-07-12 13:28:03       20 阅读
  10. Redis的五种数据类型 #系统架构设计师#

    2024-07-12 13:28:03       22 阅读
  11. netstat 和ss命令

    2024-07-12 13:28:03       17 阅读
  12. 标准盒模型和怪异盒子模型的区别

    2024-07-12 13:28:03       19 阅读