把PaddleX YOLOv3模型转换为OpenVINO模型全流程如下:
第一步:安装PaddleX,然后完成YOLOv3的模型训练,可以得到训练模型:
第二步:安装
- Paddle2ONNX 0.4
- ONNX 1.9.0
- PaddleX 1.3.7
- OpenVINO 2021.3
第三步,将paddle模型导出为inference格式模型,导出的模型将包括model、params和model.yml三个文件名,导出命令如下:
paddlex --export_inference --model_dir=/path/to/paddle_model --save_dir=./inference_model --fixed_input_shape=[w,h]
第四步,克隆 paddlex代码仓到本地,命令如下:
第五步,初始化OpenVINO运行时环境,并转换代码
"c:\Program Files (x86)\Intel\openvino_2021.2.185\bin\setupvars.bat"
python converter.py --model_dir /path/to/inference_model --save_dir /path/to/openvino_model --fixed_input_shape [w,h]
第六步,加载OpenVINO模型,执行推理程序
python PaddleX\deploy\openvino\python\demo.py -m openvino_model\paddle2onnx_model.xml -i images\0001.jpg -c inference_model\model.yml
附加信息:
此前PaddleX的YOLOv3支持转成OpenVINO,是因为当时在PaddleX中有定制化的代码来做模型导出的事情,用户直接用Paddle2ONNX转PaddleDetection的模型是无法部署OpenVINO的。
为了解决这个问题,我现在给Paddle2ONNX里面实现了一个插件,用户按照这个文档即可完成paddle->onnx->openvino,并且也提供了一个python部署示例
参考:https://github.com/PaddlePaddle/Paddle2ONNX/blob/release/0.9/experimental/openvino_ppdet_cn.md