提交 553a46a6 编写于 作者: S syyxsxx

fix doc

上级 27b25183
......@@ -3,16 +3,16 @@
## 环境依赖
* ONNX 1.5.0
* ONNX 1.5.0+
* PaddleX 1.0+
* OpenVINO 2020.4
**说明**:PaddleX安装请参考[PaddleX](https://paddlex.readthedocs.io/zh_CN/latest/install.html) , OpenVINO安装请参考[OpenVINO](https://docs.openvinotoolkit.org/latest/index.html),ONNX请安装1.5.0版本否则会出现转模型错误。
**说明**:PaddleX安装请参考[PaddleX](https://paddlex.readthedocs.io/zh_CN/develop/install.html) , OpenVINO安装请参考[OpenVINO](https://docs.openvinotoolkit.org/latest/index.html),ONNX请安装1.5.0以上版本否则会出现转模型错误。
请确保系统已经安装好上述基本软件,**下面所有示例以工作目录 `/root/projects/`演示**
## 导出inference模型
paddle模型转openvino之前需要先把paddle模型导出为inference格式模型,导出的模型将包括__model__、__params__和model.yml三个文件名导出命令如下
paddle模型转openvino之前需要先把paddle模型导出为inference格式模型,导出的模型将包括__model__、__params__和model.yml三个文件名导出命令如下
```
paddlex --export_inference --model_dir=/path/to/paddle_model --save_dir=./inference_model --fixed_input_shape=[w,h]
```
......@@ -30,7 +30,7 @@ python convertor.py --model_dir /path/to/inference_model --save_dir /path/to/ope
| 参数 | 说明 |
| ---- | ---- |
| --model_dir | Paddle模型路径,请确保__model__, \_\_params__model.yml在同一个目录|
| --save_dir | openvino模型保存路径 |
| --save_dir | OpenVINO模型保存路径 |
| --fixed_input_shape | 模型输入的[W,H] |
| --data type(option) | FP32、FP16,默认为FP32,VPU下的IR需要为FP16 |
......
# OpenVINO部署简介
PaddleX支持将训练好的paddle模型通过openvino实现模型的预测加速,OpenVINO详细资料与安装流程请参考[OpenVINO](https://docs.openvinotoolkit.org/latest/index.html)
PaddleX支持将训练好的Paddle模型通过OpenVINO实现模型的预测加速,OpenVINO详细资料与安装流程请参考[OpenVINO](https://docs.openvinotoolkit.org/latest/index.html)
## 部署支持情况
下表提供了PaddleX在不同环境下对使用OpenVINO加速支持情况
下表提供了PaddleX在不同环境下对使用OpenVINO加速支持情况
|硬件平台|Linux|Windows|Raspbian OS|c++|python |分类|检测|分割|
| ----| ---- | ---- | ----| ---- | ---- |---- | ---- |---- |
......@@ -15,12 +15,12 @@ PaddleX支持将训练好的paddle模型通过openvino实现模型的预测加
## 部署流程
**PaddleX到OpenVINO的部署流程可以分为如下两步**
* **模型转换**:将paddle的模型转换为openvino的Inference Engine
* **模型转换**:将Paddle的模型转换为OpenVINO的Inference Engine
* **预测部署**:使用Inference Engine进行预测
## 模型转换
**模型转换请参考文档[模型转换](./export_openvino_model.md)**
**说明**:由于不同软硬件平台下OpenVINO模型转换方法一致,模型转换的方法,后续文档中不再赘述。
**说明**:由于不同软硬件平台下OpenVINO模型转换方法一致,故如何转换模型后续文档中不再赘述。
## 预测部署
由于不同软硬下部署OpenVINO实现预测的方式不完全一致,具体请参考:
......
......@@ -10,7 +10,7 @@
* OpenVINO 2020.4
* 硬件平台:CPU、VPU
**说明**:PaddleX安装请参考[PaddleX](https://paddlex.readthedocs.io/zh_CN/latest/install.html) , OpenVINO安装请参考[OpenVINO-Linux](https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux.html)或者[OpenVINO-Raspbian](https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_raspbian.html)
**说明**:PaddleX安装请参考[PaddleX](https://paddlex.readthedocs.io/zh_CN/develop/install.html) , OpenVINO安装请根据相应的系统参考[OpenVINO-Linux](https://docs.openvinotoolkit.org/latest/_docs_install_guides_installing_openvino_linux.html)或者[OpenVINO-Raspbian](https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_raspbian.html)
请确保系统已经安装好上述基本软件,并配置好相应环境,**下面所有示例以工作目录 `/root/projects/`演示**
......@@ -26,7 +26,7 @@ mkdir -p /root/projects
cd /root/projects
git clone https://github.com/PaddlePaddle/PaddleX.git
```
**说明**:其中C++预测代码在PaddleX\deploy\openvino 目录,该目录不依赖任何PaddleX下其他目录。
**说明**:其中C++预测代码在PaddleX/deploy/openvino 目录,该目录不依赖任何PaddleX下其他目录。
### Step2 软件依赖
提供了依赖软件预编包或者一键编译,用户不需要单独下载或编译第三方依赖软件。若需要自行编译第三方依赖软件请参考:
......@@ -41,7 +41,7 @@ git clone https://github.com/PaddlePaddle/PaddleX.git
### Step3: 编译
编译`cmake`的命令在`scripts/build.sh`中,若在树莓派(Raspbian OS)上编译请修改ARCH参数x86为armv7,若自行编译第三方依赖软件请根据Step1中编译软件的实际情况修改主要参数,其主要内容说明如下:
编译`cmake`的命令在`scripts/build.sh`中,若在树莓派(Raspbian OS)上编译请修改ARCH参数x86为armv7,若自行编译第三方依赖软件请根据Step1中编译软件的实际情况修改主要参数其主要内容说明如下:
```
# openvino预编译库的路径
OPENVINO_DIR=$INTEL_OPENVINO_DIR/inference_engine
......@@ -63,7 +63,7 @@ ARCH=x86
### Step4: 预测
编译成功后,分类任务的预测可执行程序为`classifier`,分割任务的预测可执行程序为`segmenter`,检测任务的预测可执行程序为`detector`,其主要命令参数说明如下:
编译成功后,分类任务的预测可执行程序为`classifier`分割任务的预测可执行程序为`segmenter`,检测任务的预测可执行程序为`detector`,其主要命令参数说明如下:
| 参数 | 说明 |
| ---- | ---- |
......@@ -86,7 +86,7 @@ linux系统在CPU下做单张图片的分类任务预测
`样例二`:
linux系统在CPU下做多张图片的分割任务预测,并保存预测可视化结果
预测多个图片`/path/to/image_list.txt`,image_list.txt内容的格式如下:
预测多个图片`/path/to/image_list.txt`,image_list.txt内容的格式如下:
```
/path/to/images/test_img1.jpeg
/path/to/images/test_img2.jpeg
......@@ -109,12 +109,12 @@ linux系统在CPU下做多张图片的分割任务预测,并保存预测可视
## 性能测试
`测试一`
在服务器CPU下测试了OpenVINO对PaddleX部署的加速性能:
- cpu:Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
- openvino: 2020.4
- paddleX:采用paddle预测库(1.8),打开mkldnn加速,打开多线程。
- 模型来自paddleX tutorials,Batch Size均为1,耗时单位为ms/image,只计算模型运行时间,不包括数据的预处理和后处理,20张图片warmup,100张图片测试性能。
- CPU:Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
- OpenVINO: 2020.4
- PaddleX:采用Paddle预测库(1.8),打开mkldnn加速,打开多线程。
- 模型来自PaddleX tutorials,Batch Size均为1,耗时单位为ms/image,只计算模型运行时间,不包括数据的预处理和后处理,20张图片warmup,100张图片测试性能。
|模型| paddleX| openvino | 图片输入大小|
|模型| PaddleX| OpenVINO | 图片输入大小|
|---|---|---|---|
|resnet-50 | 20.56 | 16.12 | 224*224 |
|mobilenet-V2 | 5.16 | 2.31 |224*224|
......@@ -125,24 +125,24 @@ linux系统在CPU下做多张图片的分割任务预测,并保存预测可视
`测试二`:
在PC机上插入VPU架构的神经计算棒(NCS2),通过Openvino加速。
- cpu:Intel(R) Core(TM) i5-4300U 1.90GHz
- vpu:Movidius Neural Compute Stick2
- openvino: 2020.4
- 模型来自paddleX tutorials,Batch Size均为1,耗时单位为ms/image,只计算模型运行时间,不包括数据的预处理和后处理,20张图片warmup,100张图片测试性能。
- CPU:Intel(R) Core(TM) i5-4300U 1.90GHz
- VPU:Movidius Neural Compute Stick2
- OpenVINO: 2020.4
- 模型来自PaddleX tutorials,Batch Size均为1,耗时单位为ms/image,只计算模型运行时间,不包括数据的预处理和后处理,20张图片warmup,100张图片测试性能。
|模型|openvino|输入图片|
|模型|OpenVINO|输入图片|
|---|---|---|
|mobilenetV2|24.00|224*224|
|resnet50_vd_ssld|58.53|224*224|
`测试三`:
在树莓派3B上插入VPU架构的神经计算棒(NCS2),通过Openvino加速。
- cpu :ARM Cortex-A72 1.2GHz 64bit
- vpu:Movidius Neural Compute Stick2
- openvino: 2020.4
- CPU :ARM Cortex-A72 1.2GHz 64bit
- VPU:Movidius Neural Compute Stick2
- OpenVINO 2020.4
- 模型来自paddleX tutorials,Batch Size均为1,耗时单位为ms/image,只计算模型运行时间,不包括数据的预处理和后处理,20张图片warmup,100张图片测试性能。
|模型|openvino|输入图片大小|
|模型|OpenVINO|输入图片大小|
|---|---|---|
|mobilenetV2|43.15|224*224|
|resnet50|82.66|224*224|
......@@ -8,9 +8,9 @@ Windows 平台下,我们使用`Visual Studio 2019 Community` 进行了测试
* OpenVINO 2020.4
* CMake 3.0+
**说明**:PaddleX安装请参考[PaddleX](https://paddlex.readthedocs.io/zh_CN/latest/install.html) , OpenVINO安装请参考[OpenVINO-Windows](https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_windows.html)
**说明**:PaddleX安装请参考[PaddleX](https://paddlex.readthedocs.io/zh_CN/develop/install.html) , OpenVINO安装请参考[OpenVINO-Windows](https://docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_windows.html)
**注意**:安装完OpenVINO后需要手动添加OpenVINO目录到系统环境变量,否则在运行程序时会出现找不到dll的情况。以OpenVINO不改变OpenVINO安装目录情况下为示例,流程如下
**注意**:安装完OpenVINO后需要手动添加OpenVINO目录到系统环境变量,否则在运行程序时会出现找不到dll的情况。以安装OpenVINO时不改变OpenVINO安装目录情况下为示例,流程如下
- 我的电脑->属性->高级系统设置->环境变量
- 在系统变量中找到Path(如没有,自行创建),并双击编辑
- 新建,分别将OpenVINO以下路径填入并保存:
......@@ -36,7 +36,10 @@ git clone https://github.com/PaddlePaddle/PaddleX.git
**说明**:其中`C++`预测代码在`PaddleX\deploy\openvino` 目录,该目录不依赖任何`PaddleX`下其他目录。
### Step2 软件依赖
提供了依赖软件预编译库,[gflas-glog](https://bj.bcebos.com/paddlex/deploy/windows/third-parts.zip)[opencv](https://bj.bcebos.com/paddleseg/deploy/opencv-3.4.6-vc14_vc15.exe),请下载上面两个连接的预编译库。若需要自行下载请参考:
提供了依赖软件预编译库:
- [gflas-glog](https://bj.bcebos.com/paddlex/deploy/windows/third-parts.zip)
- [opencv](https://bj.bcebos.com/paddleseg/deploy/opencv-3.4.6-vc14_vc15.exe)
请下载上面两个连接的预编译库。若需要自行下载请参考:
- gflags:[下载地址](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/gflags)
- glog:[编译文档](https://github.com/google/glog)
- opencv:[下载地址](https://opencv.org/releases/)
......
......@@ -4,13 +4,13 @@ PaddleX支持通过Paddle-Lite和基于OpenVINO的神经计算棒(NCS2)这两种
## 硬件环境配置
对于尚未安装系统的树莓派首先需要进行系统安装、环境配置等步来初始化硬件环境,过程中需要的软硬件如下:
对于尚未安装系统的树莓派首先需要进行系统安装、环境配置等步来初始化硬件环境,过程中需要的软硬件如下:
- 硬件:micro SD,显示器,键盘,鼠标
- 软件:Raspbian OS
### Step1:系统安装
- 格式化micro SD卡为FAT格式,Windows和Mac下建议使用[SD Memory Card Formatter](https://www.sdcard.org/downloads/formatter/)工具,Linux下请参考[NOOBS For Raspberry Pi](http://qdosmsq.dunbar-it.co.uk/blog/2013/06/noobs-for-raspberry-pi/)
- 下载NOOBS版本的Raspbian OS [下载地址](https://www.raspberrypi.org/downloads/)并将解压后的文件复制到SD中,插入SD到树莓派上通电,然后将自动安装系统
- 下载NOOBS版本的Raspbian OS [下载地址](https://www.raspberrypi.org/downloads/)并将解压后的文件复制到SD中,插入SD后给树莓派通电,然后将自动安装系统
### Step2:环境配置
- 启用VNC和SSH服务:打开LX终端输入,输入如下命令,选择Interfacing Option然后选择P2 SSH 和 P3 VNC分别打开SSH与VNC。打开后就可以通过SSH或者VNC的方式连接树莓派
```
......@@ -23,9 +23,10 @@ sudo apt-get upgrade
```
## Paddle-Lite部署
基于Paddle-Lite的部署目前可以支持PaddleX的分类、分割与检测模型。部署的流程包括:PaddleX模型转换与转换后的模型部署
基于Paddle-Lite的部署目前可以支持PaddleX的分类、分割与检测模型。
部署的流程包括:PaddleX模型转换与转换后的模型部署
**说明**:PaddleX安装请参考[PaddleX](https://paddlex.readthedocs.io/zh_CN/latest/install.html),Paddle-Lite详细资料请参考[Paddle-Lite](https://paddle-lite.readthedocs.io/zh/latest/index.html)
**说明**:PaddleX安装请参考[PaddleX](https://paddlex.readthedocs.io/zh_CN/develop/install.html),Paddle-Lite详细资料请参考[Paddle-Lite](https://paddle-lite.readthedocs.io/zh/latest/index.html)
请确保系统已经安装好上述基本软件,并配置好相应环境,**下面所有示例以工作目录 `/root/projects/`演示**
......@@ -39,10 +40,11 @@ mkdir -p /root/projects
cd /root/projects
git clone https://github.com/PaddlePaddle/PaddleX.git
```
**说明**:其中C++预测代码在PaddleX/deploy/raspberry 目录,该目录不依赖任何PaddleX下其他目录,如果需要在python下预测部署请参考[python预测部署](./python.md)
**说明**:其中C++预测代码在PaddleX/deploy/raspberry 目录,该目录不依赖任何PaddleX下其他目录,如果需要在python下预测部署请参考[Python预测部署](./python.md)
### Step2:Paddle-Lite预编译库下载
提供了下载的opt工具对应的Paddle-Lite在ArmLinux下面的预编译库:[Paddle-Lite(ArmLinux)预编译库](https://bj.bcebos.com/paddlex/deploy/lite/inference_lite_2.6.1_armlinux.tar.bz2)。建议用户使用预编译库,若需要自行编译,在树莓派上LX终端输入
提供了下载的opt工具对应的Paddle-Lite在ArmLinux下面的预编译库:[Paddle-Lite(ArmLinux)预编译库](https://bj.bcebos.com/paddlex/deploy/lite/inference_lite_2.6.1_armlinux.tar.bz2)
建议用户使用预编译库,若需要自行编译,在树莓派上LX终端输入
```
git clone https://github.com/PaddlePaddle/Paddle-Lite.git
cd Paddle-Lite
......
# Paddle-Lite模型转换
将Paddle模型转换为Paddle-Lite的nb模型,模型转换主要包括PaddleX转inference model和inference model转Paddle-Lite nb模型
将PaddleX模型转换为Paddle-Lite的nb模型,模型转换主要包括PaddleX转inference model和inference model转Paddle-Lite nb模型
### Step1:导出inference模型
PaddleX模型转Paddle-Lite模型之前需要先把PaddleX模型导出为inference格式模型,导出的模型将包括__model__、__params__和model.yml三个文件名。具体方法请参考[Inference模型导出](../export_model.md)
### Step2:导出Paddle-Lite模型
......@@ -28,6 +28,6 @@ Paddle-Lite模型需要通过Paddle-Lite的opt工具转出模型,下载并解
--optimize_out=model_output_name
```
详细的使用方法和参数含义请参考: [使用opt转化模型](https://paddle-lite.readthedocs.io/zh/latest/user_guides/opt/opt_bin.html),更多opt预编译版本请参考[Paddle-Lite Release Note](https://github.com/PaddlePaddle/Paddle-Lite/releases)
更多详细的使用方法和参数含义请参考: [使用opt转化模型](https://paddle-lite.readthedocs.io/zh/latest/user_guides/opt/opt_bin.html),更多opt预编译版本请参考[Paddle-Lite Release Note](https://github.com/PaddlePaddle/Paddle-Lite/releases)
**注意**:opt版本需要跟预测库版本保持一致,如使2.6.0的python版预测库,请从上面Release Note中下载2.6.0版本的opt转换模型
\ No newline at end of file
**注意**:opt版本需要跟预测库版本保持一致,如使2.6.0版本预测库,请从上面Release Note中下载2.6.0版本的opt转换模型
\ No newline at end of file
# Python预测部署
文档说明了在树莓派上使用python版本的Paddle-Lite进行PaddleX模型好的预测部署,Paddle-Lite python版本的预测库下载,用户也可以下载whl文件进行安装[Paddle-Lite_2.6.0_python](https://github.com/PaddlePaddle/Paddle-Lite/releases/download/v2.6.0/armlinux_python_installer.zip),更多版本请参考[Paddle-Lite Release Note](https://github.com/PaddlePaddle/Paddle-Lite/releases)
文档说明了在树莓派上使用Python版本的Paddle-Lite进行PaddleX模型好的预测部署,根据下面的命令安装Python版本的Paddle-Lite预测库,若安装不成功用户也可以下载whl文件进行安装[Paddle-Lite_2.6.0_python](https://github.com/PaddlePaddle/Paddle-Lite/releases/download/v2.6.0/armlinux_python_installer.zip),更多版本请参考[Paddle-Lite Release Note](https://github.com/PaddlePaddle/Paddle-Lite/releases)
```
python -m pip install paddlelite
```
部署前需要先将PaddleX模型转换为Paddle-Lite的nb模型,具体请参考[Paddle-Lite模型转换](./export_nb_model.md)
**注意**:若用户使用2.6.0的Python预测库,请下载2.6.0版本的opt转换工具转换模型
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册