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

目录

[1. 写在前面](#1. 写在前面)

[2. 值得关注的点](#2. 值得关注的点)

[3. 训练自己的数据集](#3. 训练自己的数据集)

[4. 阅读代码的小建议](#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对象,开启训练。

相关推荐
123_不打狼16 小时前
零基础到就业:完整计算机视觉系统化学习路线指南
人工智能·学习·计算机视觉
Clipp_Huang20 小时前
光学跟踪系统标定
人工智能·计算机视觉·重构·机器视觉
weixin_4684668520 小时前
目标检测精度上限与影响因素分析
图像处理·人工智能·目标检测·计算机视觉·图像分类·coco·检测精度
sali-tec21 小时前
C# 基于OpenCv的视觉工作流-章102-车牌识别
图像处理·人工智能·opencv·计算机视觉
陈嘿萌1 天前
ECCV 2026 | 南开&OPPO开源 ExpoMotion:首个大规模动态多曝光融合数据集
人工智能·计算机视觉·图像融合·南开大学·新数据集·expomotion·多曝光融合
硅谷秋水2 天前
人工智能医疗健康机器人研究综述与分析
人工智能·深度学习·计算机视觉·语言模型·机器人
xingyuzhisuan2 天前
星宇智算 AI 视频工作台・图生视频(首尾帧)・Vidu:双模型可控动态过渡生成应用
人工智能·计算机视觉·音视频
深圳市快瞳科技有限公司2 天前
个体识别、行为解读、健康管理:多模态宠物AI大模型的场景化落地
人工智能·算法·计算机视觉·大模型·多模态·宠物·宠物ai识别
硅谷秋水2 天前
WAM-Nav:用于统一视觉导航的非对称潜世界动作建模
深度学习·机器学习·计算机视觉·语言模型·机器人
新新学长搞科研2 天前
【IEEE出版】2026年计算机视觉与具身智能国际学术会议(CVEI 2026)
计算机视觉·具身智能