首页 > 其他分享 >YOLOv10(1):初探,训练自己的数据

YOLOv10(1):初探,训练自己的数据

时间:2024-05-30 17:32:36浏览次数:19  
标签:py 训练 YOLO YOLOv9 YOLOv10 初探 Model

目录

1. 写在前面

2. 值得关注的点

3. 训练自己的数据集

4. 阅读代码的小建议


1. 写在前面

        很多人YOLOv9还没有完全研究透,YOLOv10出来了。

        惊不惊喜,意不意外!

        据论文里提到,YOLOv10就是为了加速推理,在保证精度的同时,降低参数量,减小计算量。就冲这,还没有研究YOLOv9的同学们,直接跳过吧。

        先说一句,如果大家不想动手,请不要客气,直接找我拿改动过的代码。

2. 值得关注的点

        论文提到,YOLOv10的研究团队为 YOLO 提出了整体效率 - 准确率驱动的模型设计策略,从效率和准确率两个角度全面优化 YOLO 的各个组件,大大降低了计算开销并增强了模型能力。研究过ELAN的同学有没有似曾相识的感觉,通过预设某种策略来设计网络,听上去和理解上去都很玄学,但是,对于我们这种本着用好就可以的同学,有用就是硬道理。

        此外,通过大量实验表明,YOLOv10 在各种模型规模上都实现了 SOTA 性能和效率。例如,YOLOv10-S 在 COCO 上的类似 AP 下比 RT-DETR-R18 快 1.8 倍,同时参数数量和 FLOP 大幅减少。与 YOLOv9-C 相比,在性能相同的情况下,YOLOv10-B 的延迟减少了 46%,参数减少了 25%。再一次划重点,可以先跨过YOLOv9,直接开搞YOLOv10。

        通过消除NMS的依赖性,通过利用空间通道解耦下采样排序指导的模块设计优化模型架构设计,YOLOv10在实时端到端目标检测领域具有重要意义。

3. 训练自己的数据集

(1)构造训练集

        YOLOv10所需要的训练数据集制式和YOLOv8、YOLOv9都是一样的,因此只要构建过YOLOv8、YOLOv9训练数据集的同学应该不会感觉到难。

        如果有对数据集制作有疑问的同学,可以私信我。

(2)做一些微小的改动

        YOLOv10的训练工作在开头的时候有些难,尤其是如果大家在README.md文件中看到如下内容的时候。

        不要担心,你只需要改动几个文件的几行代码,就可以以更轻松、更优雅的姿势开启训练。

第一步,修改配置文件

        修改ultralytics\cfg\default.yaml文件,设置好model和data,如下所示。

第二步,添加训练入口

        在ultralytics\models\yolov10\train.py文件中添加训练入口,具体的就是构建一个YOLOv10DetectionTrainer,然后开始训练。具体代码参考如下。

        请注意,以下图中有两点需要注意。

        M0:添加路径;

        M1:添加训练入口;

第三步,开始训练吧

        进入./yolov10-main/ultralytics/models/yolov10路径。

        执行python3 train.py开始训练吧。

4. 阅读代码的小建议

        YOLOv10和YOLOv8的代码结构略有相似。

        我们将整个代码结构划分为三条线,分别是Trainer、Model和YOLO。其实Model线和YOLO线是一样的,都是构建模型相关的东西。Trainer则是构建训练相关的内容。

Trainer的继承关系

        BaseTrainer - > DetectionTrainer -> YOLOv10DetectionTrainer

        通过实例化YOLOv10DetectionTrainer,来构建整体的训练脉络。

Model的继承关系

        task.py: BaseModel(nn.Module)

        task.py: DetectionModel(BaseModel)

        task.py: YOLOv10DetectionModel(DetectionModel)

YOLO的继承关系

        engine/model.py: class Model(nn.Module)

        yolo/model.py: class YOLO(Model)

        yolov10/model.py: class YOLOv10(YOLO)

   在YOLOv10DetectionTrainer中重载了get_model接口,用来实例化一个YOLOv10DetectionModel对象,开启训练。

标签:py,训练,YOLO,YOLOv9,YOLOv10,初探,Model
From: https://blog.csdn.net/tecsai/article/details/139308065

相关文章

  • Llama模型家族训练奖励模型Reward Model技术及代码实战(二)从用户反馈构建比较数据集
    LlaMA3系列博客基于LlaMA3+LangGraph在windows本地部署大模型(一)基于LlaMA3+LangGraph在windows本地部署大模型(二)基于LlaMA3+LangGraph在windows本地部署大模型(三)基于LlaMA3+LangGraph在windows本地部署大模型(四)基于LlaMA3+LangGraph在w......
  • 【网络通信】初探Google的reCAPTCHA安全认证技术
        在数字化日益普及的今天,如何有效保护网站免受恶意攻击和滥用成为了每个网站管理员和开发者必须面对的重要问题。而reCAPTCHA正是Google提供的一种强大且智能的解决方案,旨在通过人机验证来增强网站的安全性。一、reCAPTCHA简介        reCAPTCHA是Google推......
  • 线性规划-内点法初探
    参考:最优化理论与算法(第2版)(陈宝林)书中首先介绍了将一般线性规划问题转化为Karmarkar标准问题求解,为简化计算,Karmarkar等人又给出了内点法以求解线性规划问题,此部分在书中为*号引申内容,介绍较为简略,此处也是对书中内容做简要的补充。考虑如下线性规划问题......
  • 深度学习之AlexNet、VGG-19、VGG-16、LeNet-5、ResNet模型的训练
    一.AlexNet1.1.导入资源包importcv2importmatplotlib.pyplotaspltimportnumpyasnpimportosimportrandom注:cv2:这是OpenCV模块,用于处理图像和视频,包括摄像头捕捉、图像处理、特征检测等。matplotlib.pyplotasplt:这是Matplotlib模块的一部分,用于创建和......
  • YOLOv10全网最新创新点改进系列:融合空间信息关注机制(SimAM)于YOLOv10网络,在通道之间和
    YOLOv10全网最新创新点改进系列:融合空间信息关注机制(SimAM)于YOLOv10网络,在通道之间和空间位置之间建立更加准确的关联,助力YOLOv10有效涨点!!!所有改进代码均经过实验测试跑通!此项目不低于30种改进!自己排列组合2-4种后,考虑位置不同后可排列组合上千万种!改进不重样!!专注AI学术,......
  • YOLOv10最新创新点改进系列:融合最新顶会提出的HCANet网络中卷积和注意力融合模块(CAFM
    YOLOv10全网最新创新点改进系列:融合最新顶会提出的HCANet网络中卷积和注意力融合模块(CAFM),有效提升小目标检测性能,大幅度拉升目标检测效果!遥遥领先!YOLOv10全网最新创新点改进系列:融合最新顶会提出的HCANet网络中卷积和注意力融合模块(CAFM-2024年4月开源),有效提升小目标检......
  • 代码随想录算法训练营第第22天 | 235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中
    二叉搜索树的最近公共祖先相对于二叉树的最近公共祖先本题就简单一些了,因为可以利用二叉搜索树的特性。题目链接/文章讲解:https://programmercarl.com/0235.二叉搜索树的最近公共祖先.html视频讲解:https://www.bilibili.com/video/BV1Zt4y1F7ww/***@param{TreeNode}......
  • 初探后缀自动机
    本篇旨在讲解部分常见的SAM技巧,以及经典的SAM题目。几点暴论:如果题目中求的是什么子串的出现次数,那直接无脑上SAM。因为SAM的parent树是反串的后缀树,求出现次数时,二者并无区别。如果题目中涉及了「前缀」「后缀」等字样,请仔细品味在使用SAM时是否应该对反串建pare......
  • AI助力科研:自动化科学构思生成系统初探
    科学研究作为推动创新和知识进步的关键活动,在解决复杂问题和提升人类生活水平方面发挥着至关重要的作用。然而,科学研究的固有复杂性、缓慢的进展速度以及对专业专家的需求,限制了其生产力的提升。为了增强科研效率,本文提出了一个名为ResearchAgent的系统,这是一个由大型语言模型(L......
  • 代码随想录算法训练营第二十二天 | 235. 二叉搜索树的最近公共祖先、701.二叉搜索树中
    235.二叉搜索树的最近公共祖先题目链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-search-tree/文档讲解:https://programmercarl.com/0235.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E8%BF%91%E5%85%AC%E5%85%B1%E7%A5%......