diff --git a/deploy/cpp/docs/Jetson_build.md b/deploy/cpp/docs/Jetson_build.md index 79a1be9255db97efbd6b3a460c4db8b980a01e8b..4f54738dedd4b2675eab054f19ee6e86fd359233 100644 --- a/deploy/cpp/docs/Jetson_build.md +++ b/deploy/cpp/docs/Jetson_build.md @@ -34,13 +34,13 @@ cat /etc/nv_tegra_release **说明**:其中`C++`预测代码在`/root/projects/PaddleDetection/deploy/cpp` 目录,该目录不依赖任何`PaddleDetection`下其他目录。 -### Step2: 下载PaddlePaddle C++ 预测库 fluid_inference +### Step2: 下载PaddlePaddle C++ 预测库 paddle_inference 解压下载的[nv_jetson_cuda10_cudnn7.6_trt6(jetpack4.3)](https://paddle-inference-lib.bj.bcebos.com/2.0.1-nv-jetson-jetpack4.3-all/paddle_inference.tgz) 。 -下载并解压后`/root/projects/fluid_inference`目录包含内容为: +下载并解压后`/root/projects/paddle_inference`目录包含内容为: ``` -fluid_inference +paddle_inference ├── paddle # paddle核心库和头文件 | ├── third_party # 第三方依赖库和头文件 @@ -74,7 +74,7 @@ TENSORRT_INC_DIR=/usr/include/aarch64-linux-gnu TENSORRT_LIB_DIR=/usr/lib/aarch64-linux-gnu # Paddle 预测库路径 -PADDLE_DIR=/path/to/fluid_inference/ +PADDLE_DIR=/path/to/paddle_inference/ # Paddle 预测库名称 PADDLE_LIB_NAME=paddle_inference @@ -89,6 +89,9 @@ CUDA_LIB=/usr/local/cuda-10.0/lib64 # CUDNN 的 lib 路径 CUDNN_LIB=/usr/lib/aarch64-linux-gnu +# 是否开启关键点模型预测功能 +WITH_KEYPOINT=ON + # OPENCV_DIR 的路径 # linux平台请下载:https://bj.bcebos.com/paddleseg/deploy/opencv3.4.6gcc4.8ffmpeg.tar.gz2,并解压到deps文件夹下 # TX2平台请下载:https://paddlemodels.bj.bcebos.com/TX2_JetPack4.3_opencv_3.4.10_gcc7.5.0.zip,并解压到deps文件夹下 @@ -107,7 +110,8 @@ cmake .. \ -DCUDA_LIB=${CUDA_LIB} \ -DCUDNN_LIB=${CUDNN_LIB} \ -DOPENCV_DIR=${OPENCV_DIR} \ - -DPADDLE_LIB_NAME={PADDLE_LIB_NAME} + -DPADDLE_LIB_NAME={PADDLE_LIB_NAME} \ + -DWITH_KEYPOINT=${WITH_KEYPOINT} make ``` @@ -129,7 +133,7 @@ TENSORRT_INC_DIR=/usr/include/aarch64-linux-gnu TENSORRT_LIB_DIR=/usr/lib/aarch64-linux-gnu # Paddle 预测库路径 -PADDLE_DIR=/home/nvidia/PaddleDetection_infer/fluid_inference/ +PADDLE_DIR=/home/nvidia/PaddleDetection_infer/paddle_inference/ # Paddle 预测库名称 PADDLE_LIB_NAME=paddle_inference @@ -143,6 +147,9 @@ CUDA_LIB=/usr/local/cuda-10.0/lib64 # CUDNN 的 lib 路径 CUDNN_LIB=/usr/lib/aarch64-linux-gnu/ + +# 是否开启关键点模型预测功能 +WITH_KEYPOINT=ON ``` 修改脚本设置好主要参数后,执行`build`脚本: @@ -154,7 +161,8 @@ CUDNN_LIB=/usr/lib/aarch64-linux-gnu/ 编译成功后,预测入口程序为`build/main`其主要命令参数说明如下: | 参数 | 说明 | | ---- | ---- | -| --model_dir | 导出的预测模型所在路径 | +| --model_dir | 导出的检测预测模型所在路径 | +| --model_dir_keypoint | Option | 导出的关键点预测模型所在路径 | | --image_file | 要预测的图片文件路径 | | --image_dir | 要预测的图片文件夹路径 | | --video_file | 要预测的视频文件路径 | @@ -162,11 +170,13 @@ CUDNN_LIB=/usr/lib/aarch64-linux-gnu/ | --device | 运行时的设备,可选择`CPU/GPU/XPU`,默认为`CPU`| | --gpu_id | 指定进行推理的GPU device id(默认值为0)| | --run_mode | 使用GPU时,默认为fluid, 可选(fluid/trt_fp32/trt_fp16/trt_int8)| -| --batch_size |预测时的batch size,在指定`image_dir`时有效 | +| --batch_size | 检测模型预测时的batch size,在指定`image_dir`时有效 | +| --batch_size_keypoint | 关键点模型预测时的batch size,默认为8 | | --run_benchmark | 是否重复预测来进行benchmark测速 | | --output_dir | 输出图片所在的文件夹, 默认为output | | --use_mkldnn | CPU预测中是否开启MKLDNN加速 | | --cpu_threads | 设置cpu线程数,默认为1 | +| --use_dark | 关键点模型输出预测是否使用DarkPose后处理,默认为true | **注意**: - 优先级顺序:`camera_id` > `video_file` > `image_dir` > `image_file`。 @@ -189,6 +199,12 @@ CUDNN_LIB=/usr/lib/aarch64-linux-gnu/ ``` 视频文件目前支持`.mp4`格式的预测,`可视化预测结果`会保存在当前目录下`output.mp4`文件中。 +`样例三`: +```shell +#使用关键点模型与检测模型联合预测,使用 `GPU`预测 +#检测模型检测到的人送入关键点模型进行关键点预测 +./main --model_dir=/root/projects/models/yolov3_darknet --model_dir_keypoint=/root/projects/models/hrnet_w32_256x192 --image_file=/root/projects/images/test.jpeg --device=GPU +``` ## 性能测试 benchmark请查看[BENCHMARK_INFER](../../BENCHMARK_INFER.md) diff --git a/deploy/cpp/docs/linux_build.md b/deploy/cpp/docs/linux_build.md index c03c05433641e3e58e725370757fc7d88fd8d50e..97311b48e16b7b903a2b1ca99a482179927c65fa 100755 --- a/deploy/cpp/docs/linux_build.md +++ b/deploy/cpp/docs/linux_build.md @@ -17,14 +17,14 @@ **说明**:其中`C++`预测代码在`/root/projects/PaddleDetection/deploy/cpp` 目录,该目录不依赖任何`PaddleDetection`下其他目录。 -### Step2: 下载PaddlePaddle C++ 预测库 fluid_inference +### Step2: 下载PaddlePaddle C++ 预测库 paddle_inference PaddlePaddle C++ 预测库针对不同的`CPU`和`CUDA`版本提供了不同的预编译版本,请根据实际情况下载: [C++预测库下载列表](https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html) -下载并解压后`/root/projects/fluid_inference`目录包含内容为: +下载并解压后`/root/projects/paddle_inference`目录包含内容为: ``` -fluid_inference +paddle_inference ├── paddle # paddle核心库和头文件 | ├── third_party # 第三方依赖库和头文件 @@ -56,7 +56,7 @@ TENSORRT_LIB_DIR=/path/to/TensorRT/include TENSORRT_LIB_DIR=/path/to/TensorRT/lib # Paddle 预测库路径 -PADDLE_DIR=/path/to/fluid_inference +PADDLE_DIR=/path/to/paddle_inference # Paddle 预测库名称 PADDLE_LIB_NAME=paddle_inference @@ -67,6 +67,9 @@ CUDA_LIB=/path/to/cuda/lib # CUDNN 的 lib 路径 CUDNN_LIB=/path/to/cudnn/lib +# 是否开启关键点模型预测功能 +WITH_KEYPOINT=ON + # 请检查以上各个路径是否正确 # 以下无需改动 @@ -80,7 +83,8 @@ cmake .. \ -DCUDA_LIB=${CUDA_LIB} \ -DCUDNN_LIB=${CUDNN_LIB} \ -DOPENCV_DIR=${OPENCV_DIR} \ - -DPADDLE_LIB_NAME={PADDLE_LIB_NAME} + -DPADDLE_LIB_NAME=${PADDLE_LIB_NAME} \ + -DWITH_KEYPOINT=${WITH_KEYPOINT} make ``` @@ -96,7 +100,8 @@ make 编译成功后,预测入口程序为`build/main`其主要命令参数说明如下: | 参数 | 说明 | | ---- | ---- | -| --model_dir | 导出的预测模型所在路径 | +| --model_dir | 导出的检测预测模型所在路径 | +| --model_dir_keypoint | Option | 导出的关键点预测模型所在路径 | | --image_file | 要预测的图片文件路径 | | --image_dir | 要预测的图片文件夹路径 | | --video_file | 要预测的视频文件路径 | @@ -104,11 +109,13 @@ make | --device | 运行时的设备,可选择`CPU/GPU/XPU`,默认为`CPU`| | --gpu_id | 指定进行推理的GPU device id(默认值为0)| | --run_mode | 使用GPU时,默认为fluid, 可选(fluid/trt_fp32/trt_fp16/trt_int8)| -| --batch_size | 预测时的batch size,在指定`image_dir`时有效 | +| --batch_size | 检测模型预测时的batch size,在指定`image_dir`时有效 | +| --batch_size_keypoint | 关键点模型预测时的batch size,默认为8 | | --run_benchmark | 是否重复预测来进行benchmark测速 | | --output_dir | 输出图片所在的文件夹, 默认为output | | --use_mkldnn | CPU预测中是否开启MKLDNN加速 | | --cpu_threads | 设置cpu线程数,默认为1 | +| --use_dark | 关键点模型输出预测是否使用DarkPose后处理,默认为true | **注意**: - 优先级顺序:`camera_id` > `video_file` > `image_dir` > `image_file`。 @@ -130,5 +137,13 @@ make ``` 视频文件目前支持`.mp4`格式的预测,`可视化预测结果`会保存在当前目录下`output.mp4`文件中。 + +`样例三`: +```shell +#使用关键点模型与检测模型联合预测,使用 `GPU`预测 +#检测模型检测到的人送入关键点模型进行关键点预测 +./build/main --model_dir=/root/projects/models/yolov3_darknet --model_dir_keypoint=/root/projects/models/hrnet_w32_256x192 --image_file=/root/projects/images/test.jpeg --device=GPU +``` + ## 性能测试 benchmark请查看[BENCHMARK_INFER](../../BENCHMARK_INFER.md) diff --git a/deploy/cpp/docs/windows_vs2019_build.md b/deploy/cpp/docs/windows_vs2019_build.md index 79743d0486b7a7d599344e4ab8f8d572f461ee38..9c5a2d33deeb70e7c482dc9278910372676f6ec7 100755 --- a/deploy/cpp/docs/windows_vs2019_build.md +++ b/deploy/cpp/docs/windows_vs2019_build.md @@ -30,13 +30,13 @@ git clone https://github.com/PaddlePaddle/PaddleDetection.git **说明**:其中`C++`预测代码在`PaddleDetection/deploy/cpp` 目录,该目录不依赖任何`PaddleDetection`下其他目录。 -### Step2: 下载PaddlePaddle C++ 预测库 fluid_inference +### Step2: 下载PaddlePaddle C++ 预测库 paddle_inference PaddlePaddle C++ 预测库针对不同的`CPU`和`CUDA`版本提供了不同的预编译版本,请根据实际情况下载: [C++预测库下载列表](https://paddleinference.paddlepaddle.org.cn/user_guides/download_lib.html#windows) -解压后`D:\projects\fluid_inference`目录包含内容为: +解压后`D:\projects\paddle_inference`目录包含内容为: ``` -fluid_inference +paddle_inference ├── paddle # paddle核心库和头文件 | ├── third_party # 第三方依赖库和头文件 @@ -72,16 +72,16 @@ cd D:\projects\PaddleDetection\deploy\cpp | PADDLE_DIR | Paddle预测库的路径 | | PADDLE_LIB_NAME | Paddle 预测库名称 | -**注意:** 1. 使用`CPU`版预测库,请把`WITH_GPU`的勾去掉 2. 如果使用的是`openblas`版本,请把`WITH_MKL`勾去掉 +**注意:** 1. 使用`CPU`版预测库,请把`WITH_GPU`的勾去掉 2. 如果使用的是`openblas`版本,请把`WITH_MKL`勾去掉 3.如无需使用关键点模型可以把`WITH_KEYPOINT`勾去掉 执行如下命令项目文件: ``` -cmake . -G "Visual Studio 16 2019" -A x64 -T host=x64 -DWITH_GPU=ON -DWITH_MKL=ON -DCMAKE_BUILD_TYPE=Release -DCUDA_LIB=path_to_cuda_lib -DCUDNN_LIB=path_to_cudnn_lib -DPADDLE_DIR=path_to_paddle_lib -DPADDLE_LIB_NAME=paddle_inference -DOPENCV_DIR=path_to_opencv +cmake . -G "Visual Studio 16 2019" -A x64 -T host=x64 -DWITH_GPU=ON -DWITH_MKL=ON -DCMAKE_BUILD_TYPE=Release -DCUDA_LIB=path_to_cuda_lib -DCUDNN_LIB=path_to_cudnn_lib -DPADDLE_DIR=path_to_paddle_lib -DPADDLE_LIB_NAME=paddle_inference -DOPENCV_DIR=path_to_opencv -DWITH_KEYPOINT=ON ``` 例如: ``` -cmake . -G "Visual Studio 16 2019" -A x64 -T host=x64 -DWITH_GPU=ON -DWITH_MKL=ON -DCMAKE_BUILD_TYPE=Release -DCUDA_LIB=D:\projects\packages\cuda10_0\lib\x64 -DCUDNN_LIB=D:\projects\packages\cuda10_0\lib\x64 -DPADDLE_DIR=D:\projects\packages\fluid_inference -DPADDLE_LIB_NAME=paddle_inference -DOPENCV_DIR=D:\projects\packages\opencv3_4_6 +cmake . -G "Visual Studio 16 2019" -A x64 -T host=x64 -DWITH_GPU=ON -DWITH_MKL=ON -DCMAKE_BUILD_TYPE=Release -DCUDA_LIB=D:\projects\packages\cuda10_0\lib\x64 -DCUDNN_LIB=D:\projects\packages\cuda10_0\lib\x64 -DPADDLE_DIR=D:\projects\packages\paddle_inference -DPADDLE_LIB_NAME=paddle_inference -DOPENCV_DIR=D:\projects\packages\opencv3_4_6 -DWITH_KEYPOINT=ON ``` 3. 编译 @@ -99,7 +99,8 @@ cd D:\projects\PaddleDetection\deploy\cpp\out\build\x64-Release | 参数 | 说明 | | ---- | ---- | -| --model_dir | 导出的预测模型所在路径 | +| --model_dir | 导出的检测预测模型所在路径 | +| --model_dir_keypoint | Option | 导出的关键点预测模型所在路径 | | --image_file | 要预测的图片文件路径 | | --image_dir | 要预测的图片文件夹路径 | | --video_file | 要预测的视频文件路径 | @@ -107,11 +108,13 @@ cd D:\projects\PaddleDetection\deploy\cpp\out\build\x64-Release | --device | 运行时的设备,可选择`CPU/GPU/XPU`,默认为`CPU`| | --gpu_id | 指定进行推理的GPU device id(默认值为0)| | --run_mode | 使用GPU时,默认为fluid, 可选(fluid/trt_fp32/trt_fp16/trt_int8)| -| --batch_size | 预测时的batch size,在指定`image_dir`时有效 | -| --run_benchmark | 是否重复预测来进行benchmark测速 | -| --output_dir | 输出图片所在的文件夹, 默认为output | +| --batch_size | 检测模型预测时的batch size,在指定`image_dir`时有效 | +| --batch_size_keypoint | 关键点模型预测时的batch size,默认为8 | +| --run_benchmark | 是否重复预测来进行benchmark测速 | +| --output_dir | 输出图片所在的文件夹, 默认为output | | --use_mkldnn | CPU预测中是否开启MKLDNN加速 | | --cpu_threads | 设置cpu线程数,默认为1 | +| --use_dark | 关键点模型输出预测是否使用DarkPose后处理,默认为true | **注意**: (1)优先级顺序:`camera_id` > `video_file` > `image_dir` > `image_file`。 @@ -137,5 +140,13 @@ cd D:\projects\PaddleDetection\deploy\cpp\out\build\x64-Release 视频文件目前支持`.mp4`格式的预测,`可视化预测结果`会保存在当前目录下`output.mp4`文件中。 +`样例三`: +```shell +#使用关键点模型与检测模型联合预测,使用 `GPU`预测 +#检测模型检测到的人送入关键点模型进行关键点预测 +.\main --model_dir=D:\\models\\yolov3_darknet --model_dir_keypoint=D:\\models\\hrnet_w32_256x192 --image_file=D:\\images\\test.jpeg --device=GPU +``` + + ## 性能测试 Benchmark请查看[BENCHMARK_INFER](../../BENCHMARK_INFER.md) diff --git a/deploy/cpp/scripts/build.sh b/deploy/cpp/scripts/build.sh index ed901d01462779ef1f2ad74c80d27f5d8067ad17..6c3bbbce674307ce52df9cce487b3153493bc093 100644 --- a/deploy/cpp/scripts/build.sh +++ b/deploy/cpp/scripts/build.sh @@ -25,6 +25,9 @@ CUDA_LIB=/path/to/cuda/lib # CUDNN 的 lib 路径 CUDNN_LIB=/path/to/cudnn/lib +# 是否开启关键点模型预测功能 +WITH_KEYPOINT=ON + MACHINE_TYPE=`uname -m` echo "MACHINE_TYPE: "${MACHINE_TYPE} @@ -73,7 +76,8 @@ cmake .. \ -DCUDA_LIB=${CUDA_LIB} \ -DCUDNN_LIB=${CUDNN_LIB} \ -DOPENCV_DIR=${OPENCV_DIR} \ - -DPADDLE_LIB_NAME=${PADDLE_LIB_NAME} + -DPADDLE_LIB_NAME=${PADDLE_LIB_NAME} \ + -DWITH_KEYPOINT=${WITH_KEYPOINT} make echo "make finished!"