YOLOV5(二):将pt转为onnx模型并用opencv部署

这篇具有很好参考价值的文章主要介绍了YOLOV5(二):将pt转为onnx模型并用opencv部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

将模型转为onnx、RT等用于部署

yolov5s 6.0自带export.py程序可将.pt转为.onnx等,只需配置需要的环境即可。

1. 安装环境

activate pytorch
pip install -r requirements.txt coremltools onnx onnx-simplifier onnxruntime openvino-dev tensorflow-cpu  # CPU
pip install -r requirements.txt coremltools onnx onnx-simplifier onnxruntime-gpu openvino-dev tensorflow  # GPU

报错:NVIDIA-tensorrt安装失败!
解决:从源码安装TensorRt:
①安装CUDNN和CudaToolKit等GPU配置
②从官网下载需要的rt版本:https://developer.nvidia.com/nvidia-tensorrt-8x-download
yolov5转onnx,YOLO,opencv,人工智能yolov5转onnx,YOLO,opencv,人工智能
③解压后,将lib文件夹添加到环境变量path中
yolov5转onnx,YOLO,opencv,人工智能
④将lib中全部文件复制到CUDA的lib\x64文件夹下,并将该x64文件夹路径添加到环境变量path中
yolov5转onnx,YOLO,opencv,人工智能
⑤安装RT依赖:

activate pytorch
pip install E:\Anaconda3.5\TensorRT-8.6.1.6.Windows10.x86_64.cuda-11.8\TensorRT-8.6.1.6\python\tensorrt-8.6.1-cp39-none-win_amd64.whl

安装完成后会出现successfully的字样,到这里tensorrt已经安装结束。

2. pt转onnx

yolov5自带的export.py可进行转换。yolov5 v6.0版本以后的支持opencv,不需要更改网络层。
命令行启动:

python export.py --weights yolov5s.pt --include onnx --opset 12

程序启动修改处:
yolov5转onnx,YOLO,opencv,人工智能
*** opset参数与protobuf有关,当前使用的opencv470,需要设定opset参数为12时才能识别对应的onnx文件。按F5启动程序后,会在原pt文件夹下生成同名的onnx文件。***
测试①:
用yolov5自带的detect.py检测生成的onnx文件,若报错:“onnxruntime::Model::Model Unknown model file format version“
解决:降低onnxruntime版本:

pip install onnxruntime-gpu==1.14 -i  https://pypi.tuna.tsinghua.edu.cn/simple

测试②:
重新配置C++、opencv4.7环境,用opencv的dnn接口读取onnx并检测目标。
:1.用断点调试,测试net读取模型(net = readNet(netPath))能否成功,也有readNetFromONNX等。
2.注意绘图时的边界问题。
3.修改类别、图像路径、权重路径。

//main:文章来源地址https://www.toymoban.com/news/detail-691054.html

#include <opencv2/opencv.hpp>
#include <opencv2/dnn.hpp>
#include <highgui/highgui_c.h>
#include <iostream>
#include "yolov5.h"
using namespace cv;
using namespace cv::dnn;
using namespace std;
int main()
{
    string img_path = "F:/vscode/006.jpg";
    string model_path = "F:/Object Detec

到了这里,关于YOLOV5(二):将pt转为onnx模型并用opencv部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • yolov5模型(.pt)在RK3588(S)上的部署(实时摄像头检测)

    github仓库 所需: 安装了Ubuntu20系统的RK3588 安装了Ubuntu18的电脑或者虚拟机 一、yolov5 PT模型获取 Anaconda教程 YOLOv5教程 经过上面两个教程之后,你应该获取了自己的 best.pt 文件 二、PT模型转onnx模型 将 models/yolo.py 文件中的 class 类下的 forward 函数由: 改为: 将 export.py 文件中的

    2024年02月06日
    浏览(49)
  • 详细介绍 Yolov5 转 ONNX模型 + 使用ONNX Runtime 的 Python 部署(包含官方文档的介绍)

    对ONNX的介绍强烈建议看,本文做了很多参考:模型部署入门教程(一):模型部署简介 模型部署入门教程(三):PyTorch 转 ONNX 详解 以及Pytorch的官方介绍:(OPTIONAL) EXPORTING A MODEL FROM PYTORCH TO ONNX AND RUNNING IT USING ONNX RUNTIME C++的部署:详细介绍 Yolov5 转 ONNX模型 + 使用 ONNX Runti

    2024年02月01日
    浏览(50)
  • 使用OpenCV DNN推理YOLOv5-CLS转换后的ONNX分类模型

    YOLOv5是一种先进的目标检测算法,而YOLOv5-CLS则是YOLOv5的一个变种,专门用于图像分类任务。为了在实际应用中使用YOLOv5-CLS模型,我们需要将其转换为Open Neural Network Exchange (ONNX) 格式,并使用OpenCV DNN库来进行推理。 步骤1: 安装OpenCV和ONNX 首先,你需要确保已经安装了OpenCV和

    2024年02月16日
    浏览(65)
  • 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日
    浏览(48)
  • 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日
    浏览(57)
  • yolov5 opencv dnn部署自己的模型

    github开源代码地址 yolov5官网还提供的dnn、tensorrt推理链接 本人使用的opencv c++ github代码,代码作者非本人,也是上面作者推荐的链接之一 如果想要尝试直接运行源码中的yolo.cpp文件和yolov5s.pt推理sample.mp4,请参考这个链接的介绍 使用github源码结合自己导出的onnx模型推理自己的

    2024年01月23日
    浏览(47)
  • Yolov5 ONNX Runtime 的 Python 部署

    这里使用的yolov5 6.2,使用export.py很方便地得到onnx格式的模型。然后用onnxruntime推理框架在Python上进行部署。主要是为了测试模型的准确,模型部署的最终是用 C++ 部署,从而部署在嵌入式设备等。 整个代码分为四个部分:1、对输入进行预处理; 2、onnxruntime推理得到输出;

    2024年02月13日
    浏览(42)
  • C++模型部署:qt+yolov5/6+onnxruntime+opencv

    作者平时主要是写 c++ 库的,界面方面了解不多,也没有发现“美”的眼镜,界面有点丑,大家多包涵。 本次介绍的项目主要是通过 cmake 构建一个 基于 c++ 语言的,以 qt 为框架的,包含 opencv 第三方库在内的,跨平台的,使用 ONNX RUNTIME 进行前向推理的 yolov5/6 演示平台。文章

    2024年02月05日
    浏览(51)
  • C++调用yolov5 onnx模型的初步探索

    yolov5-dnn-cpp-python https://github.com/hpc203/yolov5-dnn-cpp-python 转onnx: 用opencv的dnn模块做yolov5目标检测的程序,包含两个步骤:(1).把pytorch的训练模型.pth文件转换到.onnx文件。(2).opencv的dnn模块读取.onnx文件做前向计算。 SiLU其实就是swish激活函数,而在onnx模型里是不直接支持swish算子的

    2024年02月12日
    浏览(37)
  • 模型实战(11)之win10下Opencv+CUDA部署yolov5、yolov8算法

    测试环境:AMDRH7000+RTX3050+win10+vs2-10+opencv455+cuda11.7 关于opencv470+contrib+cuda的编译,可以详见:Win10下Opencv+CUDA联合编译详细教程 本文代码同时支持 yolov5 、 yolov8 两个模型,详细过程将在文中给出, 完整代码仓库最后给出 其中,yolov8在opencv-DNN + CUDA下的效果如下: 新建VS项目,名

    2024年02月16日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包