win10环境下基于OpenVINO部署yolov5模型

2023-05-16

以在Intel的OpenVINO上部署Yolov5模型为例,加深对模型部署的理解。

1. 训练准备

获取yolov5模型及数据集

 git clone git://github.com/ultralytics/yolov5

pt模型
coco数据集

2. 训练Yolov5

python train.py --batch 16 --epochs 10 --data data/coco128.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt
  • –data:训练数据的说明文件,说明训练集、测试集、种类数目、种类名称
  • –cfg: 在训练准备阶段完成的模型结构描述文件
  • –weights: 预训练模型

训练完成后,权重文件会自动保存在runs文件夹中,自动生成last.pt和best.pt.
在这里插入图片描述

遇到的问题:
在这里插入图片描述
缺少cv2库,安装速度太慢,换清华源下载。

pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple

在这里插入图片描述
yolov5 demo检测

对测试集中的图像进行检测:

python detect.py --weight runs/exp6/weights/best.pt --source .\inference\images\bus.jpg

在这里插入图片描述
检测结果:
在这里插入图片描述

3.模型转换/优化

将YOLOV5的.pt权重文件转换成OpenVINO™工具套件调用的文件,主要的流程:.pt权重文件-》onnx权重文件->IR文件(.bin和.xml)。其中利用ONNX(Open Neural Network Exchange,开放神经网络交换)进行文件格式转换。
在这里插入图片描述

1)pt格式权重文件转onnx格式

安装依赖库

pip install onnx==1.9.0 coremltools onnx-simplifier -i https://pypi.tuna.tsinghua.edu.cn/simple

导出onnx

python export.py --weights runs/exp6/weights/best.pt --img 640 --batch 1

Netron查看网络结构

pip install netron -i https://pypi.tuna.tsinghua.edu.cn/simple

.onnx文件所在路径下:
在这里插入图片描述

2)onnx格式转换OpenVINO的xml和bin格式

安装配置OpenVINX工具套件
参考B站安装步骤
安装vs
vs2019
安装cmake
cmake 3.22.1
python版本切换到3.6

 conda create -n python36 python=3.6
 conda activate python36

配置OpenVINO运行环境
在这里插入图片描述
1)设置环境变量:

 cd C:\Intel> CD .\openvino_2021\bin\
 .\setupvars.bat

在这里插入图片描述
2)配置模型优化器
确保模型优化器可以对onnx模型进行转换

cd D:\Program Files\Anaconda\Scripts
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn onnx==1.10.0
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn tensorflow==1.15.5
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn mxnet==1.5.0
 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn network==2.5.1
cd .\deployment_tools\model_optimizer\install_prerequisites\
 .\install_prerequisites.bat
  1. 验证环境
cd C:\Intel\openvino_2021\deployment_tools\demo
.\demo_security_barrier_camera.bat

在这里插入图片描述
4) 在windows上设置永久的环境变量
win+R 输入sysdm.cpl可以打开环境变量窗口
5)onnx格式转换OpenVINO的xml和bin格式

C:\Intel\openvino_2021\deployment_tools\model_optimizer>
python mo_onnx.py --input_model D:/My_file_xxj/code/my_own_test/yolov5/runs/exp6/weights/best.onnx --output_dir D:/My_file_xxj/code/my_own_test/yolov5/runs/exp6/weights 

在这里插入图片描述
运行成功后会获得.xml和.bin文件,xml和bin是OpenVINO中的模型存储方式。

4. 使用OpenVINO进行推理部署

OpenVINO除了模型优化工具外,还提供了一套运行时推理引擎.
利用OpenVINO的模型进行推理部署的方法有两种:
1)使用OpenVINO原生的SDK;
2) 使用OpenVINO自带的opencv进行部署。
这里使用原生SDK的部署方式。

首先windows10配置make命令

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

win10环境下基于OpenVINO部署yolov5模型 的相关文章

  • C++学习笔记(二)

    1 C 43 43 简介 参考C 43 43 菜鸟教程 C 43 43 是一种静态的编译式的通用的大小写敏感的不规则的编程语言 xff0c 支持过程编程 对象编程和泛型编程 C 43 43 综合了高级语言和低级语言的特点 xff0c 是一种
  • Ubuntu 16.04 ifconfig输出ens33,不能联网问题的解决

    VM 12 0 ubuntu 16 04 问题 xff1a 在NAT模式下联网的设置见前一个博文 xff0c 又在同一台电脑下安装ubuntun16 04虚拟机 xff0c 不能联网 xff0c 用ifconfig时输出如下 xff1a 并
  • C++:internal compiler error解决

    编绎文件时 xff0c 出现这个问题原因一般就是内存不够 xff0c 若是在虚拟机上 xff0c 关掉虚拟机 xff0c 可直接调节虚拟机内存大小 xff0c 然后重新启动即可
  • Error: Could not find the following Boost libraries:boost_serialization

    Boost 1 59 0 CMake 3 7 2 使用CMake编译时出现以下错误 xff1a 无法找到以下库 xff0c 但是编译好的库中是有libboost serialization libboost system等这些文件的 xff
  • ubuntu下make时对XX未定义的引用

    Q1 库对XX未定义的引用 xff0c 如 xff1a Thirdparty vio g2o lib libvio g2o so xff1a 对 39 IMUErrorModel lt ceres Jet lt double 38 gt g
  • Birch算法介绍

    目录 前言 一 Birch算法基本思想 二 聚类特征CF和CF 树 1 聚类特征CF 2 CF tree 3 CF tree 的生成 三 Birch算法流程 1 birch算法的优化 2 算法优缺点 四 算法实验实例 1 研究不指定簇数的情
  • [转]伪代码的写法

    伪代码的写法 xff08 附 xff1a 12种排序算法详解 xff09 转自 xff1a http blog sina com cn s blog 134451adb0102wfgu html 伪代码 xff08 Pseudocode x
  • linux C++调用python3的程序

    环境 xff1a ubuntu1404 python3 4 3 首先安装对应python不同版本的调用库 sudo apt get install python3 4 dev xff0c python脚本基本不用变 xff0c 在C 43
  • Bug 记录

    Bug记录 CocosCreator打包出现 Error xff1a Program type already present android support v4 os ResultReceiver MyResultReceiver 解决
  • I2C通信

    I2 C 芯片间 总线接口连接微控制器和串行 I 2 C 总线 它提供多主机功能 xff0c 控制所有 I 2 C 总线特定的 时序 协议 仲裁和定时 1 xff0c 物理层 1 IIC是一种两线串行的通信方式 xff0c SCL xff0
  • 使用Mybatis-Plus代码生成器的报错解决

    使用Mybatis Plus的同学 xff0c 在使用代码生成器的时候不知道有没有遇到过这个问题 xff1a 21 36 23 829 main DEBUG com baomidou mybatisplus generator AutoGe
  • Debian之安装完成后找不到命令解决办法

    1 修改配置文件 bashrc vim root bashrc export PATH 61 PATH usr sbin 2 使配置文件生效 source root bashrc
  • 相机标定、双目相机标定(原理)、三维重建效果展示

    1 相机标定的目的 xff1a xff08 1 xff09 通过单目相机标定分别求出左右相机的内参数和外参数 xff08 2 xff09 矫正由于镜头畸变造成的图片的变形 xff0c 例如 xff0c 现实中的直线 xff0c 拍摄成图像后
  • mac系统做openstack qcow2/raw镜像

    1 vmware安装出来虚拟机 xff08 操作系统不拆分 xff09 2 zhangjinyudeMacBook Pro Asianux vmwarevm zhangjinyu ls lh total 2820216 rw 1 zhang
  • 使用 Chrome 获取 Cookie 的数据

    Chrome 浏览器自带的开发功能相当强大 xff0c 这里只使用它的抓包功能 一 在浏览器中打开目标网站并登录 xff0c 进入目标页面 二 在 Chrome 浏览器下方的开发工具中单击 Network 标签页 按 F5 键 xff0c
  • 后台开发SQL技术总结

    一 字符串截取 1 substring str pos 用法 从字符串的第 4 个字符位置开始取 xff0c 直到结束 mysql gt select substring 39 example com 39 4 43 43 substrin
  • 论文记录:图像描述技术综述

    文章目录 前言 一 什么是image caption xff1f 二 基于深度学习的图像描述方法 1 基于编码器 解码器的方法 2 基于注意力机制的方法 3 基于生成对抗网络的方法 4 基于强化学习的方法 5 基于密集描述的方法 总结 前言
  • 一个接口有多个实现类

    如果一个接口有多个实现类 xff0c 在Controller层注入后调用 xff0c 怎么知道调用的是接口的哪个方法呢 xff1f 经过一番测试 和查找资料 终于找到了结果 2 0一个接口对应多个实现类 一个接口对应对个实现类 xff0c
  • c/c++使用libcurl库做http客户端及封装(HTTP_GET和HTTP_POST)

    由于项目需求需要发送http post去请求数据 xff0c 所以上网去寻找了一些发送http请求的方法 xff0c 发现libcurl较为常用 xff0c 然后根据官网上的例子 xff0c 对libcurl做了一些简单的封装 xff0c
  • (医学三维重建)MATLAB体绘制算法:多层面重建(MPR)

    xff08 医学三维重建 xff09 MATLAB体绘制算法 xff1a 多层面重建 xff08 MPR xff09 算法原理代码实现测试结果其他 by HPC ZY 算法原理 体绘制中比较特殊的一种 xff0c 因为它的输出是各种切面 就

随机推荐