一、前言
本文内含YOLOv10网络结构图 + 训练教程 + 推理教程 + 数据集获取等有关YOLOv10的内容!
论文地址:https://arxiv.org/pdf/2405.14458
代码地址:https://github.com/THU-MIG/yolov10
摘要:在过去的几年里,YOLO 因其在计算成本和检测性能之间的有效平衡而成为实时目标检测领域的主要范例。 研究人员对 YOLO 的架构设计、优化目标、数据增强策略等进行了探索,取得了显着进展。 然而,后处理对非极大值抑制(NMS)的依赖阻碍了 YOLO 的端到端部署,并对推理延迟产生不利影响。 此外,YOLO中各个组件的设计缺乏全面彻底的检查,导致明显的计算冗余并限制了模型的能力。 它提供了次优的效率,以及相当大的性能改进潜力。 在这项工作中,我们的目标是从后处理和模型架构方面进一步提升 YOLO 的性能效率边界。 为此,我们首先提出了 YOLO 的无 NMS 训练的一致双重任务,它同时带来了有竞争力的性能和低推理延迟。 此外,我们还介绍了 YOLO 的整体效率-准确性驱动模型设计策略。 我们从效率和准确性两个角度全面优化YOLO的各个组件,大大降低了计算开销并增强了能力。 我们努力的成果是用于实时端到端目标检测的新一代 YOLO 系列,称为 YOLOv10。 大量实验表明,YOLOv10 在各种模型规模上都实现了最先进的性能和效率。 例如,我们的 YOLOv10-S 在 COCO 上的类似 AP 下比 RT-DETR-R18 快 1.8 倍,同时参数数量和 FLOP 减少 2.8 倍。 与 YOLOv9-C 相比,在相同性能下,YOLOv10-B 的延迟减少了 46%,参数减少了 25%。
二、整体网络结构图
YOLOv10n结构图:
三、环境搭建
项目环境如下:
解释器:Python:3.9.19
框 架:Pytorch:2.0.1
系 统:Win10
IDEA : Pycharm
非常详细的YOLOv10的GPU环境搭建:
四、数据集获取
免费数据集网站Roboflow一键导出Voc、COCO、Yolo、Csv等格式
随便下载了一个 数据集用它导出YOLO的数据集,自动给转换成txt的格式,yaml文件也已经配置好了,直接用就可以。
五、模型获取
我们下载完YOLOv10压缩包利用我们自己的Pycharm打开即可!
在我们配置好环境之后,模型获取完成之后,我们可以进行配置的安装我们可以在命令行下输入如下命令进行环境的配置。
pip install -r requirements.txt
输入如上命令之后就可以看到命令行在安装模型所需的库了。
六、模型训练
下载好的模型代码用Pycharm打开后,我们需要添加自己的数据集:
我在这里没有添加测试集(test)的数据,大家可以根据自己的需求添加测试集的数据,按照我训练集和验证集的方法添加就可以。
data.yaml文件:
根据自己数据集的位置,替换为自己的数据集路径。
train.py文件的代码我直接给出:
import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLOv10
model_yaml_path = r'D:\project\yolov10-main\datasets\yolov10n.yaml'
data_yaml_path = r'D:\project\yolov10-main\datasets\data.yaml'
if __name__ == '__main__':
model = YOLOv10(model_yaml_path)
results = model.train(data=data_yaml_path,
epochs=100,
batch=32,
workers=0,
device='0',
project='runs/train',
name='exp',
)
根据自己data.yaml和yolov10n.yaml文件的位置替换成自己的路径。
打印模型结构:
成功运行。
七、模型测试
测试代码:
from ultralytics import YOLOv10
yolo = YOLOv10("runs/detect/exp/weights/best.pt",task="detect")
result = yolo(source=r"E:\yolov10-main\datasets\1\test",save=True,save_conf=True,save_txt=True,name='output')
该测试代码可以测试文件下的所有图片,路径地址到文件夹名。根据自己的测试数据所在位置替换成你们自己的路径。
八、全文总结
到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv10改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~