提交 3dd9f89c 编写于 作者: J jiangjiajun

Merge branch 'develop' of https://github.com/PaddlePaddle/PaddleX into develop

# 模型部署 # 多端安全部署
本目录为PaddleX模型部署代码, 编译和使用的教程参考: 本目录为PaddleX模型部署代码,编译和使用教程参考:
- [C++部署文档](../docs/tutorials/deploy/deploy.md#C部署) - [服务端部署(支持Python部署、C++部署、模型加密部署)](../docs/tutorials/deploy/deploy_server/)
- [OpenVINO部署文档](../docs/tutorials/deploy/deploy.md#openvino部署) - [OpenVINO部署](../docs/tutorials/deploy/deploy_openvino.md)
- [移动端部署](../docs/tutorials/deploy/deploy_lite.md)
# OpenVINO部署 # OpenVINO部署
## 方案简介 ## 方案简介
OpenVINO部署方案位于目录`deploy/openvino/`下,且独立于PaddleX其他模块,该方案目前支持在 **Linux** 完成编译和部署运行。 OpenVINO部署方案位于目录`PaddleX/deploy/openvino/`下,且独立于PaddleX其他模块,该方案目前支持在 **Linux** 完成编译和部署运行。
PaddleX到OpenVINO的部署流程如下: PaddleX到OpenVINO的部署流程如下:
>> PaddleX --> ONNX --> OpenVINO IR --> OpenVINO Inference Engine > PaddleX --> ONNX --> OpenVINO IR --> OpenVINO Inference Engine
|目前支持OpenVINO部署的PaddleX模型| |目前支持OpenVINO部署的PaddleX模型|
|-----| |-----|
...@@ -16,7 +16,7 @@ PaddleX到OpenVINO的部署流程如下: ...@@ -16,7 +16,7 @@ PaddleX到OpenVINO的部署流程如下:
|ResNet50_vd| |ResNet50_vd|
|ResNet101_vd| |ResNet101_vd|
|ResNet50_vd_ssld| |ResNet50_vd_ssld|
|ResNet101_vd_ssld |ResNet101_vd_ssld|
|DarkNet53| |DarkNet53|
|MobileNetV1| |MobileNetV1|
|MobileNetV2| |MobileNetV2|
...@@ -25,9 +25,11 @@ PaddleX到OpenVINO的部署流程如下: ...@@ -25,9 +25,11 @@ PaddleX到OpenVINO的部署流程如下:
|DenseNet201| |DenseNet201|
## 部署流程 ## 部署流程
### 说明 ### 说明
本文档在 `Ubuntu`使用`GCC 4.8.5` 进行了验证,如果需要使用更多G++版本和平台的OpenVino编译,请参考: [OpenVINO](https://github.com/openvinotoolkit/openvino/blob/2020/build-instruction.md) 本文档在 `Ubuntu`使用`GCC 4.8.5` 进行了验证,如果需要使用更多G++版本和平台的OpenVino编译,请参考: [OpenVINO](https://github.com/openvinotoolkit/openvino/blob/2020/build-instruction.md)
### 验证环境 ### 验证环境
* Ubuntu* 16.04 (64-bit) with GCC* 4.8.5 * Ubuntu* 16.04 (64-bit) with GCC* 4.8.5
* CMake 3.12 * CMake 3.12
...@@ -56,7 +58,7 @@ PaddleX到OpenVINO的部署流程如下: ...@@ -56,7 +58,7 @@ PaddleX到OpenVINO的部署流程如下:
- ngraph: - ngraph:
说明:openvino编译的过程中会生成ngraph的lib文件,位于{openvino根目录}/bin/intel64/Release/lib/下。 说明:openvino编译的过程中会生成ngraph的lib文件,位于{openvino根目录}/bin/intel64/Release/lib/下。
### Step2: 编译demo ### Step2: 编译
编译`cmake`的命令在`scripts/build.sh`中,请根据Step1中编译软件的实际情况修改主要参数,其主要内容说明如下: 编译`cmake`的命令在`scripts/build.sh`中,请根据Step1中编译软件的实际情况修改主要参数,其主要内容说明如下:
...@@ -89,16 +91,17 @@ make ...@@ -89,16 +91,17 @@ make
### Step3: 模型转换 ### Step3: 模型转换
将PaddleX模型转换成ONNX模型 将PaddleX模型转换成ONNX模型
``` ```
paddlex --export_onnx --model_dir=/path/to/xiaoduxiong_epoch_12 --save_dir=/path/to/onnx_model paddlex --export_onnx --model_dir=/path/to/xiaoduxiong_epoch_12 --save_dir=/path/to/onnx_model
``` ```
将生成的onnx模型转换为OpencVINO支持的格式,请参考:[Model Optimizer文档](https://docs.openvinotoolkit.org/latest/_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide.html) 将生成的onnx模型转换为OpenVINO支持的格式,请参考:[Model Optimizer文档](https://docs.openvinotoolkit.org/latest/_docs_MO_DG_Deep_Learning_Model_Optimizer_DevGuide.html)
### Step4: 预测 ### Step4: 预测
编译成功后,预测demo的可执行程序分别为`build/detector`,其主要命令参数说明如下:
编译成功后,分类任务的预测可执行程序为`classifier`,其主要命令参数说明如下:
| 参数 | 说明 | | 参数 | 说明 |
| ---- | ---- | | ---- | ---- |
...@@ -107,17 +110,14 @@ paddlex --export_onnx --model_dir=/path/to/xiaoduxiong_epoch_12 --save_dir=/path ...@@ -107,17 +110,14 @@ paddlex --export_onnx --model_dir=/path/to/xiaoduxiong_epoch_12 --save_dir=/path
| --image_list | 按行存储图片路径的.txt文件 | | --image_list | 按行存储图片路径的.txt文件 |
| --device | 运行的平台, 默认值为"CPU" | | --device | 运行的平台, 默认值为"CPU" |
#### 样例
### 样例
可使用[小度熊识别模型](deploy_server/deploy_python.html#inference)中导出的`inference_model`和测试图片进行预测。
`样例一` `样例一`
测试图片 `/path/to/xiaoduxiong.jpeg` 测试图片 `/path/to/xiaoduxiong.jpeg`
```shell ```shell
./build/classifier --model_dir=/path/to/inference_model --image=/path/to/xiaoduxiong.jpeg ./build/classifier --model_dir=/path/to/openvino_model --image=/path/to/xiaoduxiong.jpeg
``` ```
...@@ -130,6 +130,7 @@ paddlex --export_onnx --model_dir=/path/to/xiaoduxiong_epoch_12 --save_dir=/path ...@@ -130,6 +130,7 @@ paddlex --export_onnx --model_dir=/path/to/xiaoduxiong_epoch_12 --save_dir=/path
... ...
/path/to/images/xiaoduxiongn.jpeg /path/to/images/xiaoduxiongn.jpeg
``` ```
```shell ```shell
./build/classifier --model_dir=/path/to/models/inference_model --image_list=/root/projects/images_list.txt - ./build/classifier --model_dir=/path/to/models/openvino_model --image_list=/root/projects/images_list.txt
``` ```
...@@ -77,7 +77,7 @@ paddlex-encryption ...@@ -77,7 +77,7 @@ paddlex-encryption
| use_gpu | 是否使用 GPU 预测, 支持值为0或1(默认值为0) | | use_gpu | 是否使用 GPU 预测, 支持值为0或1(默认值为0) |
| use_trt | 是否使用 TensorTr 预测, 支持值为0或1(默认值为0) | | use_trt | 是否使用 TensorTr 预测, 支持值为0或1(默认值为0) |
| gpu_id | GPU 设备ID, 默认值为0 | | gpu_id | GPU 设备ID, 默认值为0 |
| save_dir | 保存可视化结果的路径, 默认值为"output",classfier无该参数 | | save_dir | 保存可视化结果的路径, 默认值为"output",classifier无该参数 |
| key | 加密过程中产生的密钥信息,默认值为""表示加载的是未加密的模型 | | key | 加密过程中产生的密钥信息,默认值为""表示加载的是未加密的模型 |
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册