Windows平台

说明

Windows 平台下,我们使用Visual Studio 2019 Community 进行了测试。微软从Visual Studio 2017开始即支持直接管理CMake跨平台编译项目,但是直到2019才提供了稳定和完全的支持,所以如果你想使用CMake管理项目编译构建,我们推荐你使用Visual Studio 2019环境下构建。

前置条件

  • Visual Studio 2019
  • OpenVINO 2020.4或者2021.1+
  • CMake 3.0+

说明

  • PaddleX安装请参考PaddleX , OpenVINO安装请参考OpenVINO-Windows
  • CPU下请使用OpenVINO 2021.1+版本;VPU下请使用OpenVINO 2020.4版本

注意:安装完OpenVINO后需要手动添加OpenVINO目录到系统环境变量,否则在运行程序时会出现找不到dll的情况。以安装OpenVINO时不改变OpenVINO安装目录情况下为示例,流程如下

  • 我的电脑->属性->高级系统设置->环境变量

    • 在系统变量中找到Path(如没有,自行创建),并双击编辑

    • 新建,分别将OpenVINO以下路径填入并保存:

      C:\Program File (x86)\IntelSWTools\openvino\inference_engine\bin\intel64\Release

      C:\Program File (x86)\IntelSWTools\openvino\inference_engine\external\tbb\bin

      C:\Program File (x86)\IntelSWTools\openvino\deployment_tools\ngraph\lib

请确保系统已经安装好上述基本软件,并配置好相应环境,下面所有示例以工作目录为 D:\projects演示。

预测部署

文档提供了c++下预测部署的方法,如果需要在python下预测部署请参考python预测部署

Step1: 下载PaddleX预测代码

d:
mkdir projects
cd projects
git clone https://github.com/PaddlePaddle/PaddleX.git
cd PaddleX
git checkout release/1.3

说明:其中C++预测代码在PaddleX\deploy\openvino 目录,该目录不依赖任何PaddleX下其他目录。

Step2 软件依赖

提供了依赖软件预编译库:

请下载上面两个连接的预编译库。若需要自行下载请参考:

下载完opencv后需要配置环境变量,如下流程所示- 我的电脑->属性->高级系统设置->环境变量 - 在系统变量中找到Path(如没有,自行创建),并双击编辑 - 新建,将opencv路径填入并保存,如D:\projects\opencv\build\x64\vc14\bin

Step3: 使用Visual Studio 2019直接编译CMake

  1. 打开Visual Studio 2019 Community,点击继续但无需代码
  2. 点击: 文件->打开->CMake 选择C++预测代码所在路径(例如D:\projects\PaddleX\deploy\openvino),并打开CMakeList.txt
  3. 点击:项目->CMake设置
  4. 点击浏览,分别设置编译选项指定OpenVINOGflagsNGRAPHOPENCV的路径
参数名 含义
OPENCV_DIR OpenCV库路径
OPENVINO_DIR OpenVINO推理库路径,在OpenVINO安装目录下的deployment/inference_engine目录,若未修改OpenVINO默认安装目录可以不用修改
NGRAPH_LIB OpenVINO的ngraph库路径,在OpenVINO安装目录下的deployment/ngraph/lib目录,若未修改OpenVINO默认安装目录可以不用修改
GFLAGS_DIR gflags库路径
WITH_STATIC_LIB 是否静态编译,默认为True

设置完成后, 点击保存并生成CMake缓存以加载变量。 5. 点击生成->全部生成

Step5: 预测

上述Visual Studio 2019编译产出的可执行文件在out\build\x64-Release目录下,打开cmd,并切换到该目录:

D:
cd D:\projects\PaddleX\deploy\openvino\out\build\x64-Release
  • 编译成功后,图片预测demo的入口程序为detector.execlassifier.exesegmenter.exe,用户可根据自己的模型类型选择,其主要命令参数说明如下:
参数 说明
--model_dir 模型转换生成的.xml文件路径,请保证模型转换生成的三个文件在同一路径下
--image 要预测的图片文件路径
--image_list 按行存储图片路径的.txt文件
--device 运行的平台,可选项{"CPU","MYRIAD"},默认值为"CPU",如在VPU上请使用"MYRIAD"
--cfg_file PaddleX model 的.yml配置文件
--save_dir 可视化结果图片保存地址,仅适用于检测任务,默认值为" ",即不保存可视化结果

样例

样例一: 在CPU下做单张图片的分类任务预测测试图片 /path/to/test_img.jpeg

./classifier.exe --model_dir=/path/to/openvino_model --image=/path/to/test_img.jpeg --cfg_file=/path/to/PadlleX_model.yml

样例二: 在CPU下做多张图片的检测任务预测,并保存预测可视化结果 预测多个图片/path/to/image_list.txt,image_list.txt内容的格式如下:

/path/to/images/test_img1.jpeg
/path/to/images/test_img2.jpeg
...
/path/to/images/test_imgn.jpeg
./detector.exe --model_dir=/path/to/models/openvino_model --image_list=/root/projects/images_list.txt --cfg_file=/path/to/PadlleX_model.yml --save_dir ./output

样例三:在VPU下做单张图片分类任务预测 测试图片 /path/to/test_img.jpeg

.classifier.exe --model_dir=/path/to/openvino_model --image=/path/to/test_img.jpeg --cfg_file=/path/to/PadlleX_model.yml --device=MYRIAD