把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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容