把PaddleX YOLOv3模型转换为OpenVINO模型

把PaddleX YOLOv3模型转换为OpenVINO模型全流程如下:
第一步:安装PaddleX,然后完成YOLOv3的模型训练,可以得到训练模型:

在配置中选择YOLOv3
完成训练
获得训练模型

第二步:安装

  • Paddle2ONNX 0.4
  • ONNX 1.9.0
  • PaddleX 1.3.7
  • OpenVINO 2021.3

第三步,将paddle模型导出为inference格式模型,导出的模型将包括modelparams和model.yml三个文件名,导出命令如下:

paddlex --export_inference --model_dir=/path/to/paddle_model --save_dir=./inference_model --fixed_input_shape=[w,h]

导出为inference格式模型

第四步,克隆 paddlex代码仓到本地,命令如下:

git clone https://github.com/PaddlePaddle/PaddleX.git

克隆 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模型成功

第六步,加载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

你可能感兴趣的:(把PaddleX YOLOv3模型转换为OpenVINO模型)