如何在windows系统下将yolov5的pt模型导出为onnx模型

这篇具有很好参考价值的文章主要介绍了如何在windows系统下将yolov5的pt模型导出为onnx模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

最近在做本科毕业设计,要求是在树莓派上部署yolo算法来实现火灾检测,在网上查了很多资料,最后选择用yolov5s模型先试着在树莓派上部署,看下效果如何,由于从大佬那里拿到了yolov5火灾检测模型,但想要将它移植到树莓派上第一步要把pt模型转换成onnx模型,原因我想大概是因为树莓派算力不如pc,因此要转换成合适的模型进行部署。一开始我觉得转换模型应该是很简单的一个事情,但是在进行的过程中踩了很多坑,走了很多弯路,因此在这里总结一下,也希望有相同需求的朋友能从这里获得帮助,ps:因为本人水平有限所以能帮到大家很高兴。

第一个问题

在进行模型转化时从网上找的代码是这样:

python export.py --weights ‘weights/last.pt’ --batch-size 1 --img_size 320

大概内容是调用export.py这个文件来进行模型的转化,但是将代码复制到项目命令行里运行后产生如下报错:
如何在windows系统下将yolov5的pt模型导出为onnx模型
我看了下报错的原因大概是语法错误,后来在网上查找后发现其实这个命令可以不带后面的–batch-size和–img-size,如果要带的话这里的–img_size应该改为–img-size。

第二个问题

将后面的参数删掉以后发现还是不能正常运行,后来经过分析后发现是因为这里的’weights/last.pt’应该是你项目里这个.pt模型的相对地址,因此将代买修改为以下形式:

python export.py --weights ‘runs/train/exp_yolov5s/weights/best.pt’

运行后发现还是不行,报错如下:
如何在windows系统下将yolov5的pt模型导出为onnx模型
在网上查找详细步骤后发现是由于之前并没有安装好onnx的包导致,于是又输入了这样一行代码安装缺少的onnx包:

pip install onnx

很快就安装好了:
如何在windows系统下将yolov5的pt模型导出为onnx模型
安装好了以后运行还是和上面一样的报错,于是在网上查找资料发现是因为pytorch的版本太高导致包不兼容,所以又重新安装了1.9.0版本的pytorch,因为之前安装了conda虚拟环境,所以安装过程很顺利,不过因为我家网速原因下载速度有些慢…

conda install pytorch1.9.0 torchvision0.10.0 torchaudio==0.9.0 cudatoolkit=10.2 -c pytorch

第三个问题

安装好之后又运行了一编export的文件,结果还是报错,不过所幸这次报错的原因不一样了,这也说明之前那个问题已经解决了,虽然不清楚里面的原理不过对于我这个小白来说能用就已经是一件令人激动的事情了,如果有大佬的话希望可以帮忙分析一下。这次的报错是这样的:
如何在windows系统下将yolov5的pt模型导出为onnx模型
这个问题我在网上搜了很多,大部分都是说是conda的环境变量配的有问题,然而我的conda早就安装好了而且可以正常运行,之前也配置过环境变量所以应该不是这个原因,后来偶然间看到有人说可能是因为pillow版本的问题,于是我卸载然后重新装了pillow:

pip uninstall pillow

如何在windows系统下将yolov5的pt模型导出为onnx模型

pip install pillow==8.4

如何在windows系统下将yolov5的pt模型导出为onnx模型

第四个问题

经过上面踩过许多次坑之后,这次,终于!它提示成功运行了:
如何在windows系统下将yolov5的pt模型导出为onnx模型
但是,我还没来得及高兴又来了当头一棒:我发现在我存放.pt模型的文件夹里面并没有成功出现导出的onnx文件,后来我发现在上面:
如何在windows系统下将yolov5的pt模型导出为onnx模型
运行了很多次都是相同的结果,然后当时我心态就快崩溃了,后来又重振旗鼓去网上找解决方法,然后找到了一个看起来很靠谱的博客,按照大佬的办法修改了export.py的代码:
如何在windows系统下将yolov5的pt模型导出为onnx模型
在这里修改data和weight的默认路径为你数据源data.yaml的路径和模型的权重文件里的best.pt的路径,在修改之后,在命令行输入这行代码:

python export.py --include torchscript onnx

终于,程序正常运行,我在模型best.pt所在文件夹内看到了导出的.onnx文件和.torchscript文件,如果只想导出onnx文件可以把前面的去掉,直接输入:

python export.py --include onnx

到此,将模型部署到树莓派上的第一步总算完成了。

总结

这是本人第一次在csdn上尝试写这种总结类的博客,目的也很简单,想把这个过程中自己遇到的坑和尝试的经历记录下来,方便后面开发过程中有需要的时候回来翻看,同时发布到csdn上也希望能够得到大佬们的批评指正,如果某些内容能够帮到大家那再好不过了。
作为一个机械专业的大四学生,第一次做毕设就拿到这么有挑战性的题目其实对我来说是很恐惧的,因为自己之前并没有识别算法这方面的基础知识储备,研究生想做的方向是嵌入式,不过因为做毕设需要用到深度学习图像识别所以尝试将它部署到树莓派上,现在工作才刚刚开始就遇到这么多的困难其实是超出我的预期的,不过经历了这些之后我对于开发应用这类工作有了新的认识,其实有时候这个东西真的没有你想象中的那么难,只是你要做到心平气和,不要浮躁,多学多问多尝试,总会有新的收获,加油!文章来源地址https://www.toymoban.com/news/detail-410965.html

到了这里,关于如何在windows系统下将yolov5的pt模型导出为onnx模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • yolov5训练pt模型并转换为rknn模型,部署在RK3588开发板上——从训练到部署全过程

    目录 一、任务介绍 二、实验过程 2.1 使用正确版本的yolov5进行训练(平台:x86机器windows系统) 2.2 best.pt转换为best.onnx(平台:x86机器window系统) 2.3 best.onnx转换为best.rknn(平台:x86机器Linux系统) 2.3.1 环境准备和工具包安装 2.3.2 onnx转换为rknn 2.4 RK3588部署rknn实现NPU加速(平台:

    2024年02月03日
    浏览(37)
  • yolov5s.pt下载

    提示:: 参考博客:https://blog.csdn.net/m0_60900621/article/details/127119398 GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch ONNX CoreML TFLite

    2024年02月11日
    浏览(40)
  • c++windows+yolov5-6.2+openvino模型部署超详细

    自我记录:代码是根据自己的项目需求,进行了修改,主要是需要检测的图片非常大,目标小,所以对图片进行了分割再检测。下载完配置好环境之后可以直接跑。 我的环境是:windows+vs2019+openvino2022.2+opencv4.5.5+cmake3.14.0 步骤: 1、下载openvino,我用的版本是2022.2 官网网址:

    2024年02月11日
    浏览(30)
  • yolov5训练自己的pt文件,转onnx,再转成rknn,到RK3588开发板运行测试

    yolov5训练好自己的模型,例如训练完后,名称为best.pt,路径为runs/exp/weights/best.pt。 采用detect.py文件验证best.pt可以正常检测目标,再进行下一步工作。 修改utils/yolo.py文件的后处理部分,将class Detect(nn.Module) 类的子函数forward由 修改为: 注意:训练和检测的时候,yolo.py文件应

    2024年02月01日
    浏览(46)
  • Windows系统之Yolov5的安装教程笔记

      可以在官网下载:Anaconda | The World\\\'s Most Popular Data Science Platform下载。 下载完成后会在开始菜单中多出一个快捷方式,和一些Anaconda的子程序。比如常用的“Anaconda Prompt(anaconda)”。     Yolov5源码的 Github地址:https://github.com/ultralytics/yolov5    解压到自定义目录中。  下载

    2023年04月23日
    浏览(32)
  • 基于YOLOv5的WiderFace人脸检测检测系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于YOLOv5的WiderFace人脸检测系统可用于日常生活中检测与定位人脸目标,利用深度学习算法可实现图片、视频、摄像头等方式的人脸目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用Pysdie6库来搭建页面展

    2024年02月15日
    浏览(35)
  • 吸烟行为检测系统(Python+YOLOv5深度学习模型+清新界面)

    摘要:吸烟行为检测软件用于日常场景下吸烟行为监测,快速准确识别和定位吸烟位置、记录并显示检测结果,辅助公共场所吸烟安全报警等。本文详细介绍吸烟行为检测系统,在介绍算法原理的同时,给出 P y t h o n 的实现代码、训练数据集以及 P y Q t 的UI界面。在界面中可

    2023年04月12日
    浏览(33)
  • 【pytorch】目标检测:一文搞懂如何利用kaggle训练yolov5模型

    笔者的运行环境:python3.8+pytorch2.0.1+pycharm+kaggle。 yolov5对python和pytorch版本是有要求的,python=3.8,pytorch=1.6。yolov5共有5种类型nslmx,参数量依次递增,对训练设备的要求也是递增。本文以yolov5_6s为切入点,探究yolov5如何在实战种运用。 roboflow是一个公开数据集网站,里面有很

    2024年02月12日
    浏览(35)
  • 行人车辆检测与计数系统(Python+YOLOv5深度学习模型+清新界面)

    摘要:行人车辆检测与计数系统用于交通路口行人及车辆检测计数,道路人流量、车流量智能监测,方便记录、显示、查看和保存检测结果。本文详细介绍行人车辆检测,在介绍算法原理的同时,给出 P y t h o n 的实现代码、 P y Q t 的UI界面以及训练数据集。在界面中可以选择

    2024年02月01日
    浏览(39)
  • 目标检测 YOLOv5 - 如何提高模型的指标,提高精确率,召回率,mAP等

    flyfish 文中包括了YOLOv5作者分享的提高模型指标小技巧和吴恩达(Andrew Ng)在做缺陷检测项目( steel sheets for defects)时遇到的需要提高模型指标的问题是如何解决的。 大多数情况下,只要数据集足够大且良好标注(provided your dataset is sufficiently large and well labelled),就可以在不更

    2024年02月05日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包