以在Intel的OpenVINO上部署Yolov5模型为例,加深对模型部署的理解。
获取yolov5模型及数据集
git clone git://github.com/ultralytics/yolov5
pt模型
coco数据集
python train.py --batch 16 --epochs 10 --data data/coco128.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt
训练完成后,权重文件会自动保存在runs文件夹中,自动生成last.pt和best.pt.
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
对测试集中的图像进行检测:
python detect.py --weight runs/exp6/weights/best.pt --source .\inference\images\bus.jpg
将YOLOV5的.pt权重文件转换成OpenVINO™工具套件调用的文件,主要的流程:.pt权重文件-》onnx权重文件->IR文件(.bin和.xml)。其中利用ONNX(Open Neural Network Exchange,开放神经网络交换)进行文件格式转换。
安装依赖库
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
安装配置OpenVINX工具套件
参考B站安装步骤
安装vs
vs2019
安装cmake
cmake 3.22.1
python版本切换到3.6
conda create -n python36 python=3.6
conda activate python36
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
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中的模型存储方式。
OpenVINO除了模型优化工具外,还提供了一套运行时推理引擎.
利用OpenVINO的模型进行推理部署的方法有两种:
1)使用OpenVINO原生的SDK;
2) 使用OpenVINO自带的opencv进行部署。
这里使用原生SDK的部署方式。
首先windows10配置make命令