把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