使用YOLO5—V7.0训练模型并将训练结果模型.pt转成.onnx测试

目录

前言

YOLO5—V7.0的快速部署(简化版)

1.数据集准备

2. 下载预训练模型

 3.搭配YOLO5环境

安装CUDA和pytorch(网上教程很多此处不赘述,注意pytorch不要安装成CPU版本的)

在终端里cd 到 yolov5-v5.0目录下 安装requirements.txt文件里的包

4.配置YOLO5—V7.0文件

5.报错 :

6.使用export文生成.onnx文件

​7.使用主目录下的detect文件测试onnx文件

8.成果:

9.使用 Netron (开源的模型可视化工具)来可视化 ONNX 模型

大佬文章:

结语:


 

前言

使用YOLO5 --v5.0 的 export将训练好的.pt模型文件转成.onnx文件出现各种错误虽然转出了onnx文件,但是并不能检测出目标物体。

经过不断的精神折磨后发现是v5.0版本问题 ,所以在这里对v7.0版本的使用做个笔记(重点是使用export文件转出onnx文件 并且在detect文件里使用onnx文件检测onnx文件) 。

YOLO5—V7.0的快速部署(简化版)

v7.0与 V5.0部署方法几乎一样,此处不做过多介绍,具体细节可以参考我写的V5.0版本的部署小白使用YOLO5训练猫狗数据的全过程及所遇到的坑-CSDN博客

1.数据集准备

images 里存放的是猫和狗的图片 

labels里存放的是标签 (此处图片和标签需要一一对应)

可以参考大佬文章:

目标检测---利用labelimg制作自己的深度学习目标检测数据集-CSDN博客目标检测---数据集格式转化及训练集和验证集划分_训练集和验证集的划分代码-CSDN博客

b27a9c893ca147e681e27198bc4dc88a.png

v7.0的源码地址:(点击直接访问,加速访问进的是Gitcode下载不了预训练模型)ultralytics/yolov5 at v7.0 (github.com)icon-default.png?t=N7T8https://github.com/ultralytics/yolov5/tree/v7.0

6d4def5df7db4e78b3cc2e5ee5d8ea70.png

2. 下载预训练模型

在上述v7.0的源码地址找到如下界面(建议鼠标右击选择新标签页打开链接)(我这里选择yolo5s.pt轻量级的,文件一般越大精度越高但所需的时间,要求的配置也相应增加

0b501759e5e64750b6e154fe51619289.png

 3.搭配YOLO5环境

安装CUDA和pytorch(网上教程很多此处不赘述,注意pytorch不要安装成CPU版本的)

安装完成后可以用以下代码测试

import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.cuda.is_available())  #输出为True,则安装无误

结果:

这里cu121代表安装的是GPU版本 

b8630337166d4042a6f072bea4a38fe5.png

在终端里cd 到 yolov5-v5.0目录下 安装requirements.txt文件里的包

bd4f9816e2624f4d90938d485bfaec2b.png

cd yolov5-v5.0
pip install -r requirements.txt

4.配置YOLO5—V7.0文件

  修改{ data目录下的voc.yaml,models目录下的yolov5s.yaml  }

(建议复制粘贴一份并重命名,在新建的里面改动)

dd469fbd16694091bea79da665c72962.png

 (这里的voc.yaml 比v5.0版本多了个下载数据集的功能,并且将目录结构做了改动)

(想使用download的可以在顶部的注释中找到用法)

698fab92bdaa405bbb9ac4c28f0a0a67.png

此处我是自建数据集文件夹所以不做考虑,直接改用自己的目录(也可以直接套用v5.0版本的)。

3eb4d3629e7649e88e2832a56476deb3.png

修改models目录下的yolov5s.yaml 

nc  : 标签的类别个数

de73aaff1285449782926d60a468dde7.png

修改主目录下的train.py 文件

weights    填写预训练模型地址,我这里使用的是yolo5s.pt(default填相对路径,help(最好)填绝对路径)(Windows电脑路径需要手动改成 “/ ” )

cfg        填写models目录下yolov5s.yaml路径

data      填写data目录下的voc.yaml 路径

hyp       超参数,对模型进行一些微调(此处我没做调整,看个人)

epoch    训练的轮数,一般200—300轮即可

batch -size    批次,按自己电脑配置来调

device       选择GPU还是CPU(此处的default不填默认为0调用的是GPU)

7e3a81ed904e4e509e70cce4ed103551.png

完成以上配置后运行train.py文件后运行:

5.报错 :

(此处CPU调用的可以选择调小batch -size 里的default参数)e2ce764069a340d3b9f75b0268c859a0.png

7efa497d99b14802bd733a1c810aad6b.png

解决:

 参考文章:

RuntimeError: DataLoader worker (pid(s) 9528, 8320) exited unexpectedly_dataloader worker (pid(s) 23188, 9620) exited unex-CSDN博客

在utils路径下找到dataloaders.py这个文件

修改num_worker=0

84de26c3341143d5b077c7af1695dd9f.png

再次运行train.py 成功

a858b12a42b742c7906bba4ceb4a8ea1.png

完成后在runs\train\exp\weights可以找到best.pt ,last.pt两个训练结果模型

6.使用export文生成.onnx文件

官网给出的export支持转换的文件种类

在主目录下找到export.py文件找到parse_opt函数,修改 

data ,weight,里的数据(default填相对路径,help(最好)填绝对路径)(Windows电脑路径需要手动改成 “/ ” )

weight   填刚刚生成的best.pt文件路径

853d8f6bb2c8444dbefe2423b8f46729.png

修改 include 里的default为 onnx(可以选择help里有的任意类型)

d2f6c2fb3a5a4628935d0729ee002426.png

运行export文件(可以看到onnx已经保存起来)

f729fcb8824e44aca3d071d47d7a5540.png7.使用主目录下的detect文件测试onnx文件

修改  weights为onnx文件的路径, source 为测试的图片路径,data为修改后的voc.yaml路径

6f8c1f009c994d309918d8720ab31881.png

运行结果在runs\detect\exp下查看

5bba81b71d3d4b0097ecb654e2267949.png

8.成果:

d0dfd201c81742c8bace2f9d5919a93d.jpegcfbdcfc35c674e24b8c7bd0be857297c.jpeg

9.使用 Netron (开源的模型可视化工具)来可视化 ONNX 模型

地址

Netronicon-default.png?t=N7T8https://netron.app/88cddb751a8b4e7f9f48aa7fa234e441.png

大佬文章:

各种参数详解:    手把手带你调参YOLOv5 (v5.0-v7.0)(推理)_yolov5调参-CSDN博客

详细介绍 Yolov5 转 ONNX模型 + 使用ONNX Runtime 的 Python 部署(包含官方文档的介绍)_yolov5转onnx-CSDN博客

【Yolov5】1.认真总结6000字Yolov5保姆级教程(2022.06.28全新版本v6.1)_yolov5教程-CSDN博客

模型部署入门教程(一):模型部署简介 - 知乎 (zhihu.com)

Yolov5-v5.0 导出onnx推理结果完全错误_tracerwarning: converting a tensor to a python boo-CSDN博客

官方文档地址文件介绍:    Export - Ultralytics YOLOv8 Docs

结语:

本笔记仅仅适合了解怎么用,如果想深入了解还是得看官方文档的。

吧啦吧啦又说了一堆 ​​​,(心里自我安慰都是为了完成任务。3bb8c6e086144a22b25b82d821de87f8.png

后面应该会研究一下onnx的部署吧。

吐槽:大一的自己如此忙碌。

  • 23
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值