Skip to content

Latest commit

 

History

History
105 lines (78 loc) · 3.6 KB

linux_build.md

File metadata and controls

105 lines (78 loc) · 3.6 KB

Linux平台口罩人脸检测及分类模型C++预测部署

1. 系统和软件依赖

1.1 操作系统及硬件要求

  • Ubuntu 14.04 或者 16.04 (其它平台未测试)
  • GCC版本4.8.5 ~ 4.9.2
  • 支持Intel MKL-DNN的CPU
  • NOTE: 如需在Nvidia GPU运行,请自行安装CUDA 9.0 / 10.0 + CUDNN 7.3+ (不支持9.1/10.1版本的CUDA)

1.2 下载PaddlePaddle C++预测库

PaddlePaddle C++ 预测库主要分为CPU版本和GPU版本。

其中,GPU 版本支持CUDA 10.0CUDA 9.0:

以下为各版本C++预测库的下载链接:

版本 链接
CPU+MKL版 fluid_inference.tgz
CUDA9.0+MKL 版 fluid_inference.tgz
CUDA10.0+MKL 版 fluid_inference.tgz

更多可用预测库版本,请点击以下链接下载:C++预测库下载列表

下载并解压, 解压后的 fluid_inference目录包含的内容:

fluid_inference
├── paddle # paddle核心库和头文件
|
├── third_party # 第三方依赖库和头文件
|
└── version.txt # 版本和编译信息

注意: 请把解压后的目录放到合适的路径,该目录路径后续会作为编译依赖使用。

1.2 编译安装 OpenCV

# 1. 下载OpenCV3.4.6版本源代码
wget -c https://paddleseg.bj.bcebos.com/inference/opencv-3.4.6.zip
# 2. 解压
unzip opencv-3.4.6.zip && cd opencv-3.4.6
# 3. 创建build目录并编译, 这里安装到/root/projects/opencv3目录
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/opencv3 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DWITH_IPP=OFF -DBUILD_IPP_IW=OFF -DWITH_LAPACK=OFF -DWITH_EIGEN=OFF -DCMAKE_INSTALL_LIBDIR=lib64 -DWITH_ZLIB=ON -DBUILD_ZLIB=ON -DWITH_JPEG=ON -DBUILD_JPEG=ON -DWITH_PNG=ON -DBUILD_PNG=ON -DWITH_TIFF=ON -DBUILD_TIFF=ON
make -j4
make install

其中参数 CMAKE_INSTALL_PREFIX 参数指定了安装路径, 上述操作完成后,opencv 被安装在 $HOME/opencv3 目录(用户也可选择其他路径),该目录后续作为编译依赖

2. 编译与运行

2.1 配置编译脚本

cd PaddleHub/deploy/demo/mask_detector/

打开文件linux_build.sh, 看到以下内容:

# Paddle 预测库路径
PADDLE_DIR=/PATH/TO/fluid_inference/
# OpenCV 库路径
OPENCV_DIR=/PATH/TO/opencv3gcc4.8/
# 是否使用GPU
WITH_GPU=ON
# CUDA库路径, 仅 WITH_GPU=ON 时设置
CUDA_LIB=/PATH/TO/CUDA_LIB64/
# CUDNN库路径,仅 WITH_GPU=ON 且 CUDA_LIB有效时设置
CUDNN_LIB=/PATH/TO/CUDNN_LIB64/

cd build
cmake .. \
    -DWITH_GPU=${WITH_GPU} \
    -DPADDLE_DIR=${PADDLE_DIR} \
    -DCUDA_LIB=${CUDA_LIB} \
    -DCUDNN_LIB=${CUDNN_LIB} \
    -DOPENCV_DIR=${OPENCV_DIR} \
    -DWITH_STATIC_LIB=OFF
make -j4

把上述参数根据实际情况做修改后,运行脚本编译程序:

sh linux_build.sh

2.2. 运行和可视化

可执行文件有 2 个参数,第一个是前面导出的inference_model路径,第二个是需要预测的图片路径。

示例:

./build/main /PATH/TO/pyramidbox_lite_server_mask/ /PATH/TO/TEST_IMAGE

执行程序时会打印检测框的位置与口罩是否佩戴的结果,另外result.jpg文件为检测的可视化结果。

预测结果示例:

output_image