Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleSeg
提交
c8d2af61
P
PaddleSeg
项目概览
PaddlePaddle
/
PaddleSeg
通知
285
Star
8
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
53
列表
看板
标记
里程碑
合并请求
3
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleSeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
53
Issue
53
列表
看板
标记
里程碑
合并请求
3
合并请求
3
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c8d2af61
编写于
10月 29, 2019
作者:
J
joey12300
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1. provide the specific link of v1.6 inference library based on both cpu and gpu
2. add the description of deployment based on cpu
上级
d607577b
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
75 addition
and
35 deletion
+75
-35
inference/README.md
inference/README.md
+20
-9
inference/docs/linux_build.md
inference/docs/linux_build.md
+22
-8
inference/docs/windows_vs2015_build.md
inference/docs/windows_vs2015_build.md
+22
-8
inference/docs/windows_vs2019_build.md
inference/docs/windows_vs2019_build.md
+11
-10
未找到文件。
inference/README.md
浏览文件 @
c8d2af61
# PaddleSeg C++预测部署方案
## 说明
[
1.说明
](
#1说明
)
[
2.主要目录和文件
](
#2主要目录和文件
)
[
3.编译
](
#3编译
)
[
4.预测并可视化结果
](
#4预测并可视化结果
)
## 1.说明
本目录提供一个跨平台的图像分割模型的C++预测部署方案,用户通过一定的配置,加上少量的代码,即可把模型集成到自己的服务中,完成图像分割的任务。
...
...
@@ -11,7 +20,7 @@
-
高性能,除了
`PaddlePaddle`
自身带来的性能优势,我们还针对图像分割的特点对关键步骤进行了性能优化
## 主要目录和文件
##
2.
主要目录和文件
```
inference
...
...
@@ -40,7 +49,7 @@ inference
```
## 编译
##
3.
编译
支持在
`Windows`
和
`Linux`
平台编译和使用:
-
[
Linux 编译指南
](
./docs/linux_build.md
)
-
[
Windows 使用 Visual Studio 2019 Community 编译指南
](
./docs/windows_vs2019_build.md
)
...
...
@@ -48,11 +57,11 @@ inference
`Windows`
上推荐使用最新的
`Visual Studio 2019 Community`
直接编译
`CMake`
项目。
## 预测并可视化结果
##
4.
预测并可视化结果
完成编译后,便生成了需要的可执行文件和链接库,然后执行以下步骤:
### 1. 下载模型文件
###
4.
1. 下载模型文件
我们提供了一个人像分割模型示例用于测试,点击右侧地址下载:
[
示例模型下载地址
](
https://paddleseg.bj.bcebos.com/inference_model/deeplabv3p_xception65_humanseg.tgz
)
下载并解压,解压后目录结构如下:
...
...
@@ -69,7 +78,7 @@ deeplabv3p_xception65_humanseg
**假设**
`Linux`
上对应的路径则为
`/root/projects/models/deeplabv3p_xception65_humanseg`
。
### 2. 修改配置
###
4.
2. 修改配置
基于
`PaddleSeg`
训练的模型导出时,会自动生成对应的预测模型配置文件,请参考文档:
[
模型导出
](
../docs/model_export.md
)
。
...
...
@@ -90,7 +99,7 @@ DEPLOY:
# 均值
MEAN
:
[
0.40787450980392154
,
0.4575254901960784
,
0.481078431372549
]
# 方差
STD
:
[
1.0
,
1.0
,
1.0
]
STD
:
[
0.00392156862745098
,
0.00392156862745098
,
0.00392156862745098
]
# 图片类型, rgb 或者 rgba
IMAGE_TYPE
:
"
rgb"
# 分类类型数
...
...
@@ -106,7 +115,9 @@ DEPLOY:
```
修改字段
`MODEL_PATH`
的值为你在
**上一步**
下载并解压的模型文件所放置的目录即可。
### 3. 执行预测
**注意**
在使用CPU版本预测库时,
`USE_GPU`
的值必须设为0,否则无法正常预测。
### 4.3. 执行预测
在终端中切换到生成的可执行文件所在目录为当前目录(Windows系统为
`cmd`
)。
...
...
@@ -128,7 +139,7 @@ D:\projects\PaddleSeg\inference\build\Release>demo.exe --conf=D:\\projects\\Padd
| input_dir | 需要预测的图片目录 |
配置文件说明请参考上一步,样例程序会扫描input_dir目录下的所有
图片,并生成对应的预测结果
。图像分割会对
`demo.jpg`
的每个像素进行分类,其预测的结果保存在
`demo_jpg.png`
中。分割预测结果的图不能直接看到效果,必须经过可视化处理。对于二分类的图像分割模型,样例程序自动将预测结果转换成可视化结果,保存在
`demo_jpg_scoremap.png`
中, 原始尺寸的预测结果在
`demo_jpg_recover.png`
中,如下图。对于
**多分类**
的图像分割模型,请参考
[
可视化脚本使用方法
](
./docs/vis.md
)
。
配置文件说明请参考上一步,样例程序会扫描input_dir目录下的所有
以
**jpg或jpeg**
为后缀的图片,并生成对应的预测结果(若input_dir目录下没有以
**jpg或jpeg**
为后缀的图片,程序会报错)
。图像分割会对
`demo.jpg`
的每个像素进行分类,其预测的结果保存在
`demo_jpg.png`
中。分割预测结果的图不能直接看到效果,必须经过可视化处理。对于二分类的图像分割模型,样例程序自动将预测结果转换成可视化结果,保存在
`demo_jpg_scoremap.png`
中, 原始尺寸的预测结果在
`demo_jpg_recover.png`
中,如下图。对于
**多分类**
的图像分割模型,请参考
[
可视化脚本使用方法
](
./docs/vis.md
)
。
输入原图
![
avatar
](
images/humanseg/demo2.jpeg
)
...
...
inference/docs/linux_build.md
浏览文件 @
c8d2af61
# Linux平台 编译指南
## 说明
本文档在
`Linux`
平台使用
`GCC 4.8.5`
和
`GCC 4.9.4`
测试过,如果需要使用更高
G++版本编译使用,则需要重新编译
Paddle预测库,请参考:
[
从源码编译Paddle预测库
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/advanced_usage/deploy/inference/build_and_install_lib_cn.html#id15
)
。
本文档在
`Linux`
平台使用
`GCC 4.8.5`
和
`GCC 4.9.4`
测试过,如果需要使用更高
版本的GCC编译使用,则需要重新编译Paddle
Paddle预测库,请参考:
[
从源码编译Paddle预测库
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/advanced_usage/deploy/inference/build_and_install_lib_cn.html#id15
)
。
## 前置条件
*
G++ 4.8.2 ~ 4.9.4
*
CUDA 8.0 / CUDA 9.0 / CUDA 10.0
*
CMake 3.0+
*
CUDA 8.0 / CUDA 9.0 / CUDA 10.0, cudnn 7+ (仅在使用GPU版本的预测库时需要)
请确保系统已经安装好上述基本软件,
**下面所有示例以工作目录为 `/root/projects/`演示**
。
...
...
@@ -20,9 +20,16 @@
### Step2: 下载PaddlePaddle C++ 预测库 fluid_inference
目前支持
`CUDA 8`
,
`CUDA 9`
和
`CUDA10`
,建议使用
`CUDA 9`
, 请
[
点击下载CUDA 9预测库
](
https://paddle-inference-lib.bj.bcebos.com/latest-gpu-cuda9-cudnn7-avx-mkl/fluid_inference.tgz
)
PaddlePaddle C++ 预测库主要分为CPU版本和GPU版本。其中,针对不同的CUDA版本,GPU版本预测库又分为三个版本预测库:CUDA 8、CUDA 9和CUDA 10版本预测库。以下为各版本C++预测库的下载链接:
| 版本 | 链接 |
| ---- | ---- |
| CPU版本 |
[
fluid_inference.tgz
](
https://paddle-inference-lib.bj.bcebos.com/latest-cpu-avx-mkl/fluid_inference.tgz
)
|
| CUDA 8版本 |
[
fluid_inference.tgz
](
https://paddle-inference-lib.bj.bcebos.com/latest-gpu-cuda8-cudnn7-avx-mkl/fluid_inference.tgz
)
|
| CUDA 9版本 |
[
fluid_inference.tgz
](
https://paddle-inference-lib.bj.bcebos.com/latest-gpu-cuda9-cudnn7-avx-mkl/fluid_inference.tgz
)
|
| CUDA 10版本 |
[
fluid_inference.tgz
](
https://paddle-inference-lib.bj.bcebos.com/latest-gpu-cuda10-cudnn7-avx-mkl/fluid_inference.tgz
)
|
更多可用版本,请参考:
[
C++预测库
列表
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/advanced_usage/deploy/inference/build_and_install_lib_cn.html
)
针对不同的CPU类型、不同的指令集,官方提供更多可用的预测库版本,目前已经推出1.6版本的预测库,具体请参考以下链接:
[
C++预测库下载
列表
](
https://www.paddlepaddle.org.cn/documentation/docs/zh/develop/advanced_usage/deploy/inference/build_and_install_lib_cn.html
)
下载并解压后
`/root/projects/fluid_inference`
目录包含内容为:
...
...
@@ -55,16 +62,16 @@ make install
### Step4: 编译
`CMake`
编译时,涉及到四个编译参数用于指定核心依赖库的路径, 他们的定义如下:
`CMake`
编译时,涉及到四个编译参数用于指定核心依赖库的路径, 他们的定义如下:
(带
*表示仅在使用**GPU版本*
*
预测库时指定)
| 参数名 | 含义 |
| ---- | ---- |
|
CUDA_LIB | cuda
的库路径 |
|
CUDNN_LIB | cuD
nn的库路径|
|
*
CUDA_LIB | CUDA
的库路径 |
|
*
CUDNN_LIB | cud
nn的库路径|
| OPENCV_DIR | OpenCV的安装路径 |
| PADDLE_DIR | Paddle预测库的路径 |
执行下列操作时,
**注意**
把对应的参数改为你的上述依赖库实际路径:
在使用
**GPU版本**
预测库进行编译时,可执行下列操作。
**注意**
把对应的参数改为你的上述依赖库实际路径:
```
shell
cd
/root/projects/PaddleSeg/inference
...
...
@@ -73,6 +80,13 @@ cmake .. -DWITH_GPU=ON -DPADDLE_DIR=/root/projects/fluid_inference -DCUDA_LIB=/
make
```
在使用
**CPU版本**
预测库进行编译时,可执行下列操作。
```
shell
cd
/root/projects/PaddleSeg/inference
mkdir
build
&&
cd
build
cmake ..
-DWITH_GPU
=
OFF
-DPADDLE_DIR
=
/root/projects/fluid_inference
-DOPENCV_DIR
=
/root/projects/opencv3/
-DWITH_STATIC_LIB
=
OFF
make
```
### Step5: 预测及可视化
...
...
inference/docs/windows_vs2015_build.md
浏览文件 @
c8d2af61
...
...
@@ -5,7 +5,7 @@
## 前置条件
*
Visual Studio 2015
*
CUDA 8.0/ CUDA 9.0
*
CUDA 8.0/ CUDA 9.0
/ CUDA 10.0,cudnn 7+ (仅在使用GPU版本的预测库时需要)
*
CMake 3.0+
请确保系统已经安装好上述基本软件,
**下面所有示例以工作目录为 `D:\projects`演示**
。
...
...
@@ -20,12 +20,14 @@
### Step2: 下载PaddlePaddle C++ 预测库 fluid_inference
根据Windows环境,下载相应版本的PaddlePaddle预测库,并解压到
`D:\projects\`目录
PaddlePaddle C++ 预测库主要分为两大版本:CPU版本和GPU版本。其中,针对不同的CUDA版本,GPU版本预测库又分为三个版本预测库:CUDA 8、CUDA 9和CUDA 10版本预测库。根据Windows环境,下载相应版本的PaddlePaddle预测库,并解压到
`D:\projects\`目录。以下为各版本C++预测库(CUDA 8版本基于1.5版本的预测库,其余均基于1.6版本的预测库)的下载链接:
| CUDA | GPU | 下载地址 |
|------|------|--------|
| 8.0 | Yes | [fluid_inference.zip](https://bj.bcebos.com/v1/paddleseg/fluid_inference_win.zip) |
| 9.0 | Yes | [fluid_inference_cuda90.zip](https://paddleseg.bj.bcebos.com/fluid_inference_cuda9_cudnn7.zip) |
| 版本 | 链接 |
| ---- | ---- |
| CPU版本 | [fluid_inference_install_dir.zip](https://paddle-wheel.bj.bcebos.com/1.6.0/win-infer/mkl/cpu/fluid_inference_install_dir.zip) |
| CUDA 8版本 | [fluid_inference_install_dir.zip](https://paddle-inference-lib.bj.bcebos.com/1.5.1-win/gpu_mkl_avx_8.0/fluid_inference_install_dir.zip) |
| CUDA 9版本 | [fluid_inference_install_dir.zip](https://paddle-wheel.bj.bcebos.com/1.6.0/win-infer/mkl/post97/fluid_inference_install_dir.zip) |
| CUDA 10版本 | [fluid_inference_install_dir.zip](https://paddle-wheel.bj.bcebos.com/1.6.0/win-infer/mkl/post107/fluid_inference_install_dir.zip) |
解压后`
D:
\p
rojects
\f
luid_inference
`目录包含内容为:
```
...
...
@@ -57,11 +59,12 @@ fluid_inference
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
```
* CMAKE编译工程
* CMAKE编译工程
(带*表示仅在使用**GPU版本**预测库时指定)
* PADDLE_DIR: fluid_inference预测库路径
* CUDA_LIB: CUDA动态库目录, 请根据实际安装情况调整
*
*
CUDA_LIB: CUDA动态库目录, 请根据实际安装情况调整
* OPENCV_DIR: OpenCV解压目录
在使用**GPU版本**预测库进行编译时,可执行下列操作。
```
# 切换到预测库所在目录
cd /d D:\projects\PaddleSeg\inference\
...
...
@@ -72,6 +75,17 @@ cd build
D:\projects\PaddleSeg\inference\build> cmake .. -G "Visual Studio 14 2015 Win64" -DWITH_GPU=ON -DPADDLE_DIR=D:\projects\fluid_inference -DCUDA_LIB=D:\projects\cudalib\v8.0\lib\x64 -DOPENCV_DIR=D:\projects\opencv -T host=x64
```
在使用**CPU版本**预测库进行编译时,可执行下列操作。
```
# 切换到预测库所在目录
cd /d D:\projects\PaddleSeg\inference\
# 创建构建目录, 重新构建只需要删除该目录即可
mkdir build
cd build
# cmake构建VS项目
D:\projects\PaddleSeg\inference\build> cmake .. -G "Visual Studio 14 2015 Win64" -DWITH_GPU=ON -DPADDLE_DIR=D:\projects\fluid_inference -DOPENCV_DIR=D:\projects\opencv -T host=x64
```
这里的`
cmake
`参数`
-G
`, 表示生成对应的VS版本的工程,可以根据自己的`
VS
`版本调整,具体请参考[cmake文档](https://cmake.org/cmake/help/v3.15/manual/cmake-generators.7.html)
* 生成可执行文件
...
...
inference/docs/windows_vs2019_build.md
浏览文件 @
c8d2af61
...
...
@@ -5,8 +5,8 @@ Windows 平台下,我们使用`Visual Studio 2015` 和 `Visual Studio 2019 Com
你也可以使用和
`VS2015`
一样,通过把
`CMake`
项目转化成
`VS`
项目来编译,其中
**有差别的部分**
在文档中我们有说明,请参考:
[
使用Visual Studio 2015 编译指南
](
./windows_vs2015_build.md
)
## 前置条件
*
Visual Studio 2019
*
CUDA 8.0/ CUDA 9.0
*
Visual Studio 2019
*
CUDA 8.0/ CUDA 9.0
/ CUDA 10.0,cudnn 7+ (仅在使用GPU版本的预测库时需要)
*
CMake 3.0+
请确保系统已经安装好上述基本软件,我们使用的是
`VS2019`
的社区版。
...
...
@@ -23,12 +23,14 @@ Windows 平台下,我们使用`Visual Studio 2015` 和 `Visual Studio 2019 Com
### Step2: 下载PaddlePaddle C++ 预测库 fluid_inference
根据Windows环境,下载相应版本的PaddlePaddle预测库,并解压到
`D:\projects\`目录
PaddlePaddle C++ 预测库主要分为两大版本:CPU版本和GPU版本。其中,针对不同的CUDA版本,GPU版本预测库又分为三个版本预测库:CUDA 8、CUDA 9和CUDA 10版本预测库。根据Windows环境,下载相应版本的PaddlePaddle预测库,并解压到
`D:\projects\`目录。以下为各版本C++预测库(CUDA 8版本基于1.5版本的预测库,其余均基于1.6版本的预测库)的下载链接:
| CUDA | GPU | 下载地址 |
|------|------|--------|
| 8.0 | Yes | [fluid_inference.zip](https://bj.bcebos.com/v1/paddleseg/fluid_inference_win.zip) |
| 9.0 | Yes | [fluid_inference_cuda90.zip](https://paddleseg.bj.bcebos.com/fluid_inference_cuda9_cudnn7.zip) |
| 版本 | 链接 |
| ---- | ---- |
| CPU版本 | [fluid_inference_install_dir.zip](https://paddle-wheel.bj.bcebos.com/1.6.0/win-infer/mkl/cpu/fluid_inference_install_dir.zip) |
| CUDA 8版本 | [fluid_inference_install_dir.zip](https://paddle-inference-lib.bj.bcebos.com/1.5.1-win/gpu_mkl_avx_8.0/fluid_inference_install_dir.zip) |
| CUDA 9版本 | [fluid_inference_install_dir.zip](https://paddle-wheel.bj.bcebos.com/1.6.0/win-infer/mkl/post97/fluid_inference_install_dir.zip) |
| CUDA 10版本 | [fluid_inference_install_dir.zip](https://paddle-wheel.bj.bcebos.com/1.6.0/win-infer/mkl/post107/fluid_inference_install_dir.zip) |
解压后`
D:
\p
rojects
\f
luid_inference
`目录包含内容为:
```
...
...
@@ -39,7 +41,6 @@ fluid_inference
|
└── version.txt # 版本和编译信息
```
**注意:** `
CUDA90
`版本解压后目录名称为`
fluid_inference_cuda90
`。
### Step3: 安装配置OpenCV
...
...
@@ -67,8 +68,6 @@ fluid_inference
4. 点击`
浏览
`,分别设置编译选项指定`
CUDA
`、`
OpenCV
`、`
Paddle预测库
`的路径
![step4](https://paddleseg.bj.bcebos.com/inference/vs2019_step5.png)
三个编译参数的含义说明如下:
| 参数名 | 含义 |
...
...
@@ -76,6 +75,8 @@ fluid_inference
| CUDA_LIB | cuda的库路径 |
| OPENCV_DIR | OpenCV的安装路径, |
| PADDLE_DIR | Paddle预测库的路径 |
**注意**在使用CPU版本预测库时,需要把CUDA_LIB的勾去掉。
![step4](https://paddleseg.bj.bcebos.com/inference/vs2019_step5.png)
**设置完成后**, 点击上图中`
保存并生成CMake缓存以加载变量
`。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录