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

以在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.
win10环境下基于OpenVINO部署yolov5模型_第1张图片

遇到的问题:
win10环境下基于OpenVINO部署yolov5模型_第2张图片
缺少cv2库,安装速度太慢,换清华源下载。

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

win10环境下基于OpenVINO部署yolov5模型_第3张图片
yolov5 demo检测

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

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

win10环境下基于OpenVINO部署yolov5模型_第4张图片
检测结果:
win10环境下基于OpenVINO部署yolov5模型_第5张图片

3.模型转换/优化

将YOLOV5的.pt权重文件转换成OpenVINO™工具套件调用的文件,主要的流程:.pt权重文件-》onnx权重文件->IR文件(.bin和.xml)。其中利用ONNX(Open Neural Network Exchange,开放神经网络交换)进行文件格式转换。
win10环境下基于OpenVINO部署yolov5模型_第6张图片

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文件所在路径下:
win10环境下基于OpenVINO部署yolov5模型_第7张图片

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运行环境
win10环境下基于OpenVINO部署yolov5模型_第8张图片
1)设置环境变量:

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

win10环境下基于OpenVINO部署yolov5模型_第9张图片
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

win10环境下基于OpenVINO部署yolov5模型_第10张图片
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 

win10环境下基于OpenVINO部署yolov5模型_第11张图片
运行成功后会获得.xml和.bin文件,xml和bin是OpenVINO中的模型存储方式。

4. 使用OpenVINO进行推理部署

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

首先windows10配置make命令

在这里插入图片描述

你可能感兴趣的:(深度学习,openvino,计算机视觉,深度学习)