以在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.
![在这里插入图片描述](https://img-blog.csdnimg.cn/f4376b0bbd3f47bd8f8dfc5a442a9857.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56m_552A5biG5biD6Z6L5Lmf6IO96LWw54yr5q2l,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
遇到的问题:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2a00535e674945d2bcbe17d828ed0139.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56m_552A5biG5biD6Z6L5Lmf6IO96LWw54yr5q2l,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
缺少cv2库,安装速度太慢,换清华源下载。
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
![在这里插入图片描述](https://img-blog.csdnimg.cn/8618fed9845d43fb89765597ec625aaa.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56m_552A5biG5biD6Z6L5Lmf6IO96LWw54yr5q2l,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
yolov5 demo检测
对测试集中的图像进行检测:
python detect.py --weight runs/exp6/weights/best.pt --source .\inference\images\bus.jpg
![在这里插入图片描述](https://img-blog.csdnimg.cn/6c9d6dc742b84a9cb49934626c96671c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56m_552A5biG5biD6Z6L5Lmf6IO96LWw54yr5q2l,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
检测结果:
![在这里插入图片描述](https://img-blog.csdnimg.cn/c738d4cb28cc4d69bbaffacd65d5d518.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56m_552A5biG5biD6Z6L5Lmf6IO96LWw54yr5q2l,size_15,color_FFFFFF,t_70,g_se,x_16#pic_center)
3.模型转换/优化
将YOLOV5的.pt权重文件转换成OpenVINO™工具套件调用的文件,主要的流程:.pt权重文件-》onnx权重文件->IR文件(.bin和.xml)。其中利用ONNX(Open Neural Network Exchange,开放神经网络交换)进行文件格式转换。
![在这里插入图片描述](https://img-blog.csdnimg.cn/6422fb7b1f3f4b2992182652b3648656.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56m_552A5biG5biD6Z6L5Lmf6IO96LWw54yr5q2l,size_20,color_FFFFFF,t_70,g_se,x_16)
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文件所在路径下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/c03241b51d204f3093e2533af3d612c8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56m_552A5biG5biD6Z6L5Lmf6IO96LWw54yr5q2l,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
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运行环境
![在这里插入图片描述](https://img-blog.csdnimg.cn/8c4cf0ca26894a138cb385e421c763b3.png#pic_center)
1)设置环境变量:
cd C:\Intel> CD .\openvino_2021\bin\
.\setupvars.bat
![在这里插入图片描述](https://img-blog.csdnimg.cn/e3c4474caab74607ba9f0e053d415555.png#pic_center)
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
- 验证环境
cd C:\Intel\openvino_2021\deployment_tools\demo
.\demo_security_barrier_camera.bat
![在这里插入图片描述](https://img-blog.csdnimg.cn/770f34ba3dc446248727990d212d20ae.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56m_552A5biG5biD6Z6L5Lmf6IO96LWw54yr5q2l,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
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
![在这里插入图片描述](https://img-blog.csdnimg.cn/ed7688ff9a334a27b3c99e3e9b14123d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56m_552A5biG5biD6Z6L5Lmf6IO96LWw54yr5q2l,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
运行成功后会获得.xml和.bin文件,xml和bin是OpenVINO中的模型存储方式。
4. 使用OpenVINO进行推理部署
OpenVINO除了模型优化工具外,还提供了一套运行时推理引擎.
利用OpenVINO的模型进行推理部署的方法有两种:
1)使用OpenVINO原生的SDK;
2) 使用OpenVINO自带的opencv进行部署。
这里使用原生SDK的部署方式。
首先windows10配置make命令
![在这里插入图片描述](https://img-blog.csdnimg.cn/646bbdef1ef44b7db5ffb0fe20bcb45e.png#pic_center)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)