《博主简介》
小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。
✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~
👍感谢小伙伴们点赞、关注!
《------往期经典推荐------》
二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】,持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~
引言
本文主要介绍如何使用YOLOv10训练自己的目标检测数据集并且进行模型的推理使用。本文所有代码及数据集都已打包好,供小伙伴们学习。需要的小伙伴可通过文末直接获取。
YOLOv10简介
YOLOv10 是清华大学研究人员在 UltralyticsPython 清华大学的研究人员在 YOLOv10软件包的基础上,引入了一种新的实时目标检测方法,解决了YOLO 以前版本在后处理和模型架构方面的不足。通过消除非最大抑制(NMS)和优化各种模型组件,YOLOv10 在显著降低计算开销的同时实现了最先进的性能。并用大量实验证明,YOLOv10 在多个模型尺度上实现了卓越的精度-延迟权衡。YOLOv10与其他SOTA模型的性能对比如下:
亮点
- 无 NMS 设计:利用一致的双重分配来消除对 NMS 的需求,从而减少推理延迟。
- 整体模型设计:从效率和准确性的角度全面优化各种组件,包括轻量级分类头、空间通道去耦向下采样和等级引导块设计。
- 增强的模型功能:纳入大核卷积和部分自注意模块,在不增加大量计算成本的情况下提高性能。
模型介绍
YOLOv10 有多种型号,可满足不同的应用需求:
YOLOv10-N:用于资源极其有限环境的纳米版本。
YOLOv10-S:兼顾速度和精度的小型版本。
YOLOv10-M:通用中型版本。
YOLOv10-B:平衡型,宽度增加,精度更高。
YOLOv10-L:大型版本,精度更高,但计算资源增加。
YOLOv10-X:超大型版本可实现最高精度和性能。
YOLOv10与v8结构对比
从结构上看添加了PSA
和在C2f结构中添加了CBI结构
。结构设计如下:
而且去掉了NMS:
下载源码
源码地址:https://github.com/THU-MIG/yolov10
下载源码后解压,目录如下:
环境配置
使用conda 创建虚拟环境配置【输入命令前,需进入到项目目下】。命令如下:
conda create -n yolov10 python=3.9
conda activate yolov10
pip install -r requirements.txt
pip install -e .
准备数据集
将需要训练的数据集,放入项目目录下,格式如下:
训练模型:
注意这个地方需要导入YOLOv10
模块,不是YOLO
模块。
训练代码如下:
#coding:utf-8
from ultralytics import YOLOv10
# 模型配置文件
model_yaml_path = "ultralytics/cfg/models/v10/yolov10n.yaml"
#数据集配置文件
data_yaml_path = 'datasets/Data/data.yaml'
#预训练模型
pre_model_name = 'yolov10n.pt'
if __name__ == '__main__':
#加载预训练模型
model = YOLOv10(model_yaml_path).load(pre_model_name)
#训练模型
results = model.train(data=data_yaml_path,
epochs=150,
batch=4,
name='train_v10')
点击运行后开始训练,打印的网路结构如下:
模型推理
模型推理代码如下:
from ultralytics import YOLOv10
# Load a pretrained YOLOv10n model
model = YOLOv10("yolov10n.pt")
# Perform object detection on an image
# results = model("test1.jpg")
results = model.predict("test1.jpg")
# Display the results
results[0].show()
运行后显示结果,会直接显示推理结果:
资料获取
关于本文的相关代码及数据集资料都已打包好,供需要的小伙伴们学习,获取方式如下: