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

一. Openvino下载

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

二. 准备模型

2.1 导出Paddle Inference模型

由于目前Openvino只支持比较老的模型,这里以PaddleX训练的mobilenetv3_large模型为例,导出为推理格式模型paddle inference:
在这里插入图片描述
安装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

在这里插入图片描述
转换后的目录:
在这里插入图片描述

三. 编译生成Openvino推理文件

3.1 获取部署代码

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

在这里插入图片描述

3.2 环境准备

1.在OpenCV官网下载适用于Windows平台的3.4.6版本下载链接
在这里插入图片描述
2.运行下载的可执行文件,将OpenCV解压至指定目录,例如D:\projects\opencv。
3.配置环境变量,如下流程所示:
我的电脑->属性->高级系统设置->环境变量
在这里插入图片描述

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

3.3 编译

1.打开Visual Studio 2019 Community,点击继续但无需代码
在这里插入图片描述
2. 点击: 文件->打开->CMake
选择C++预测代码所在路径(例如E:\Fileresipority\cloth_check\PaddleX-develop\deploy\cpp),并打开CMakeList.txt:
在这里插入图片描述

  1. 打开项目时,可能会自动构建。由于没有进行下面的依赖路径设置会报错,这个报错可以先忽略:
    在这里插入图片描述

在这里插入图片描述

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

1.保险起见,把所有的值都设为"/"分隔的路径:
在这里插入图片描述

2.这里注意,我在其他文章看到说如果有下面这种报错
在这里插入图片描述
就需要把OPENCV_DIR中的值改为"E:/Fileresipority/cloth_check/OpenCV/opencv/build/x64/vc15/bin"

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

在这里插入图片描述
3. 需要GPU的勾选GPU:

在这里插入图片描述
4. 勾选OPENVINO:
在这里插入图片描述

  1. 保存并生成CMake缓存
    在这里插入图片描述
    设置完成后, 点击上图中保存并生成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文件中的

在这里插入图片描述

修改后重新生成,得到cmake生成完成表明生成成功:
在这里插入图片描述
生成成功后在E:\Fileresipority\cloth_check\PaddleX-develop\deploy\cpp\out\build\x64-Release生成的目录如下:
在这里插入图片描述

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

发现如下报错:
在这里插入图片描述
定位到报错的model_infer.cpp文件中,发现是头文件路径错误,对照相关头文件的名称,在文件管理器中依次定位到文件所在位置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后对路径进行替换:
在这里插入图片描述
transform.h中的相关文件路径也要进行替换:
在这里插入图片描述
visualize.h中相关路径也需要更改:
在这里插入图片描述
接下来哪里出错,就修改哪个文件中这三行的路径就可以了:

#include <E:/Fileresipority/cloth_check/OpenCV/opencv/sources/modules/core/include/opencv2/core/core.hpp>
#include <E:/Fileresipority/cloth_check/OpenCV/opencv/sources/modules/highgui/include/opencv2/highgui/highgui.hpp>
#include <E:/Fileresipority/cloth_check/OpenCV/opencv/sources/modules/imgproc/include/opencv2/imgproc/imgproc.hpp>

其中core.hpp文件需要改为这里的.hpp文件:
在这里插入图片描述
core.h这里面的有问题的路径也要修改:
在这里插入图片描述

修改完毕后点击全部重新生成,仍然遇到报错:
在这里插入图片描述
相关问题正在与百度工程师交流,未完待续…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值