以在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.6conda 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.0pip 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命令

win10环境下基于OpenVINO部署yolov5模型相关推荐

  1. win10系统下使用openvino部署yolov5模型

    文章目录 前言 一.环境 1.硬件 2.软件 二.YOLO模型 三.新建Qt项目 1.pro文件 2.main.cpp 四.效果 五.后记 前言   上一篇介绍过使用onnxruntime实现模型推理 ...

  2. win10系统下使用opencv-dnn部署yolov5模型

    文章目录 前言 一.环境 1.硬件 2.软件 二.YOLO模型 三.新建Qt项目 1.pro文件 2.main函数 四.YOLO 类封装 1.yolo.h 2.yolo.cpp 3.classes.t ...

  3. win10系统下使用onnxruntime部署yolov5模型

    文章目录 前言 一.环境 1.硬件 2.软件 二.YOLO模型 三.新建Qt项目 1.pro文件 2.mainwindow.h 3.mainwindow.cpp 四.YOLO 类封装 1.yolov5 ...

  4. win10环境下基于face_recognition搭建自己的人脸识别软件

    在win10环境下安装face_recognition,了解face_recognition中api的使用,如人脸截取.人脸矫正.人脸特征提取.人脸关键点提取.人脸mask获取.人脸特征比对等功能.最 ...

  5. Win10环境下基于Hexo的静态博客环境搭建,及其阿里云部署

    引言 1.为什么要搭建自己的个人博客 工作和学习过程中,我们经常遇到一些这样或那样的问题,此时我们可能会在网上找到相应的解决方法.但是过了一段时间之后,当我们再次碰到类似的问题时,早已忘记以前是怎么解 ...

  6. 基于OpenVINO部署PaddlePadle-YOLOE模型—2.模型下载与转换

    1. 模型下载  首先下载PP-YOLOE官方训练模型,该模型由PaddleDetection提供,基于COCO数据集训练,可以识别80种常见物体.此处采用的是PaddleDetection rele ...

  7. 【信息学】【2018.02】噪声环境下基于时频域信号模型的语音去混响

    本文为德国埃尔朗根-纽伦堡大学(作者:Sebastian Braun)的博士论文,共164页. 混响是由所有反射声波的总和叠加而成,存在于任何传统的房间中.诸如免提模式的移动电话.平板电脑.智能电视. ...

  8. windows下基于libtorch的yolov5 6.0的c++部署

    windows下基于libtorch的yolov5 6.0的c++部署 1.概述 libtorch是pytorch的C++版本,在需要多进程.提高推理速度等需求下会比python语言更具有优势.本文根 ...

  9. 基于Caffe格式部署YOLOV5模型

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 [导语]本文为大家介绍了一个caffe部署yolov5 模型的教程,并开源了全部代码.主要是教你如何搭 ...

最新文章

  1. Gradle的安装和在idea的配置
  2. 基于SSM实现健康食品零售网站
  3. CodeForces - 1418G Three Occurrences(线段树-标记永久化)
  4. linux把硬盘当内存,把内存当硬盘使,让你的linux程序运转如飞(在linux下用firefox在线写csdn的blog再也不卡了)...
  5. 异步重试_异步重试模式
  6. 二阶矩阵乘法C语言,c语言矩阵相乘
  7. mysql把某一列的数据更新到另一列中(涉及到多张表的数据)
  8. 【整理总结】代码沉淀 - Caliburn.Micro - MV*模式短小精悍的框架
  9. 从html富文本中提取纯文本
  10. [论文笔记]ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS
  11. idea 正则表达式替换
  12. Keil v5安装和使用
  13. 微分几何的20-23节笔记
  14. 【寒假每日一题2022】acw1934. 贝茜放慢脚步【二路归并】
  15. 光伏发电到底能带我们走多远?
  16. Windows7双屏扩展及双屏桌面背景独立显示
  17. php网页怎么设置背景图片大全唯美,html文档中怎么把图片作为背景?
  18. 带固态硬盘的电脑Ubuntu和Windows双系统安装
  19. 通过system verilog unpacked array转换为packed array解决readmemh无法读取packed array
  20. 【思想】《人生效率手册》

热门文章

  1. 开发者选项在哪?4.2及以上系统呼出教程
  2. Java的Scanner对象
  3. 博弈论与信息经济学-重复博弈
  4. 基于语音的情绪识别系统(Python)
  5. java调用打印机没反应_java调用打印机问题
  6. 华为nova8和小米10青春版哪个好
  7. [世界杯] 韩国 vs 多哥 2:1
  8. iptables结合ipset禁止国外IP进行访问
  9. office 所有后缀对应的 content-type
  10. scratch连接wedo2.0超详细教程(附资源)