Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署

目录

  • 一. Openvino下载
  • 二. 准备模型
    • 2.1 导出Paddle Inference模型
    • 2.2 转换为ONNX模型
  • 三. 编译生成Openvino推理文件
      • 3.1 获取部署代码
      • 3.2 环境准备
      • 3.3 编译

一. Openvino下载

根据Paddle官方的描述,当前检测模型转换为openvino格式是有问题的,暂时只支持分割和分类模型,且openvino版本最好为2021.3(已经过测试,兼容性较好)。
Openvino 2021.3 下载地址
安装过程可以参照OpenVino官方安装步骤来一步步 安装 :
安装完毕后目录如下:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第1张图片
运行install.exe安装推理组件后的目录:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第2张图片

二. 准备模型

2.1 导出Paddle Inference模型

由于目前Openvino只支持比较老的模型,这里以PaddleX训练的mobilenetv3_large模型为例,导出为推理格式模型paddle inference:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第3张图片
安装PaddleX后,执行以下命令进行模型导出:

paddlex --export_inference --model_dir=./output/deeplabv3p_r50vd/best_model/ --save_dir=./inference_model

2.2 转换为ONNX模型

将paddle inference模型转为onnx模型:

# model_dir需要ResNet50解压后的路径
paddle2onnx --model_dir  E:/Fileresipority/cloth_check/mobilenetv3_large/inference_model/inference_model  --model_filename model.pdmodel     --params_filename model.pdiparams      --save_file model.onnx   --enable_dev_version True

Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第4张图片
转换后的目录:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第5张图片

三. 编译生成Openvino推理文件

3.1 获取部署代码

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

Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第6张图片

3.2 环境准备

1.在OpenCV官网下载适用于Windows平台的3.4.6版本下载链接
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第7张图片
2.运行下载的可执行文件,将OpenCV解压至指定目录,例如D:\projects\opencv。
3.配置环境变量,如下流程所示:
我的电脑->属性->高级系统设置->环境变量
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第8张图片

在系统变量中找到Path(如没有,自行创建),并双击编辑
新建,将opencv路径填入并保存,如E:\Fileresipority\cloth_check\OpenCV\opencv\build\x64\vc15\bin
在进行cmake构建时,会有相关提示,请注意vs2019的输出。
4.点击下载gflags依赖包,解压至deps目录

3.3 编译

1.打开Visual Studio 2019 Community,点击继续但无需代码
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第9张图片
2. 点击: 文件->打开->CMake
选择C++预测代码所在路径(例如E:\Fileresipority\cloth_check\PaddleX-develop\deploy\cpp),并打开CMakeList.txt:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第10张图片

  1. 打开项目时,可能会自动构建。由于没有进行下面的依赖路径设置会报错,这个报错可以先忽略:
    Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第11张图片

Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第12张图片

  1. 点击浏览,分别设置编译选项指定gflag、OpenCV、OpenVINO的路径(也可以点击右上角的“编辑 JSON”,直接修改json文件,然后保存点 项目->生成缓存)。需要用GPU的勾选GPU和CUDA选项(需要事先安装,可查看笔者其他专栏的文章):

1.保险起见,把所有的值都设为"/"分隔的路径:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第13张图片

2.这里注意,我在其他文章看到说如果有下面这种报错:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第14张图片
就需要把OPENCV_DIR中的值改为"E:/Fileresipority/cloth_check/OpenCV/opencv/build/x64/vc15/bin"

而我是按照下面这样设置的,下面这样就能编译成功:

Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第15张图片
3. 需要GPU的勾选GPU:

Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第16张图片
4. 勾选OPENVINO:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第17张图片

  1. 保存并生成CMake缓存
    Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第18张图片
    设置完成后, 点击上图中保存并生成CMake缓存以加载变量。然后我们可以看到vs的输出会打印CMake生成的过程,出现CMake 生成完毕且无报错代表生成完毕。
    发现报错:
    在这里插入图片描述
    通过查看报错信息:
严重性	代码	说明	项目	文件	行	禁止显示状态 
错误		CMake Error at E:\Fileresipority\cloth_check\PaddleX-develop\deploy\cpp\CMakeLists.txt:73 (find_package): 
Found package configuration file: 
 
E:/Fileresipority/cloth_check/OpenCV/opencv/build/OpenCVConfig.cmake 
 
but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be 
NOT FOUND.	 PaddleDeploy	E:\Fileresipority\cloth_check\PaddleX-develop\deploy\cpp\CMakeLists.txt	73

可以发现是由于OpenCVConfig.cmake文件中的

Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第19张图片

修改后重新生成,得到cmake生成完成表明生成成功:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第20张图片
生成成功后在E:\Fileresipority\cloth_check\PaddleX-develop\deploy\cpp\out\build\x64-Release生成的目录如下:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第21张图片

  1. 点击生成->全部生成,生成demo里的可执行文件。

发现如下报错:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第22张图片
定位到报错的model_infer.cpp文件中,发现是头文件路径错误,对照相关头文件的名称,在文件管理器中依次定位到文件所在位置:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第23张图片
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第24张图片
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第25张图片
然后对路径进行替换:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第26张图片
transform.h中的相关文件路径也要进行替换:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第27张图片
visualize.h中相关路径也需要更改:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第28张图片
接下来哪里出错,就修改哪个文件中这三行的路径就可以了:

#include 
#include 
#include 

其中core.hpp文件需要改为这里的.hpp文件:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第29张图片
core.h这里面的有问题的路径也要修改:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第30张图片

修改完毕后点击全部重新生成,仍然遇到报错:
Windows使用Paddle训练好的模型进行OpenVino推理引擎下的部署_第31张图片
相关问题正在与百度工程师交流,未完待续…

你可能感兴趣的:(机器视觉算法与部署,windows,paddle,openvino)