文章目录
- 概要
- 环境
- fastdeploy源码编译
- PP-Tracking源码编译
- 使用
- 参考
概要
PP-Tracking是基于飞桨深度学习框架的业界首个开源实时跟踪系统。针对实际业务的难点痛点,PP-Tracking内置行人车辆跟踪、跨镜头跟踪、多类别跟踪、小目标跟踪及流量计数等能力与产业应用,同时提供可视化开发界面。模型集成多目标跟踪,目标检测,ReID轻量级算法,进一步提升PP-Tracking在服务器端部署性能。同时支持python,C++部署,适配Linux,Nvidia Jetson多平台环境。
环境
- ubuntu18.04
- gcc/g++ >= 5.4 (8.2 is recommended)
- cmake >= 3.18.0
- cuda >= 11.2
- cudnn >= 8.2
- opencv4.6
- fastdeploy
fastdeploy源码编译
由于预编译库不支持opencv视频类操作,需要从源码编译。
opencv安装,参考这篇博文。我的安装路径为/usr/local/opencv-4.6.0
fastdeploy编译
git clone https://github.com/PaddlePaddle/FastDeploy.git
cd FastDeploy
mkdir build && cd build
cmake .. -DENABLE_ORT_BACKEND=ON \
-DWITH_GPU=ON \
-DCUDA_DIRECTORY=/usr/local/cuda \
-DCMAKE_INSTALL_PREFIX=${PWD}/compiled_fastdeploy_sdk \
-DENABLE_VISION=ON \
-DOPENCV_DIRECTORY=/usr/local/opencv-4.6.0
make -j12
make install
在~/.bashrc中进行声明
echo "source ${PWD}/compiled_fastdeploy_sdk/fastdeploy_init.sh" >> ~/.bashrc
PP-Tracking源码编译
修改CmakeLists.txt
手动指定安装路径
PROJECT(infer_demo C CXX)
CMAKE_MINIMUM_REQUIRED (VERSION 3.10)
# 指定下载解压后的fastdeploy库路径
#option(FASTDEPLOY_INSTALL_DIR "Path of downloaded fastdeploy sdk.")
set(FASTDEPLOY_INSTALL_DIR xxxx/compiled_fastdeploy_sdk)
include(${FASTDEPLOY_INSTALL_DIR}/FastDeploy.cmake)
# 添加FastDeploy依赖头文件
include_directories(${FASTDEPLOY_INCS})
add_executable(infer_demo ${PROJECT_SOURCE_DIR}/infer.cc)
# 添加FastDeploy库依赖
target_link_libraries(infer_demo ${FASTDEPLOY_LIBS})
编译
mkdir build
cd build
# Download the FastDeploy precompiled library. Users can choose your appropriate version in the`FastDeploy Precompiled Library` mentioned above
wget https://bj.bcebos.com/fastdeploy/release/cpp/fastdeploy-linux-x64-x.x.x.tgz
tar xvf fastdeploy-linux-x64-x.x.x.tgz
cmake .. -DFASTDEPLOY_INSTALL_DIR=${PWD}/fastdeploy-linux-x64-x.x.x
make -j24
使用
# Download PP-Tracking model files and test videos
wget https://bj.bcebos.com/paddlehub/fastdeploy/fairmot_hrnetv2_w18_dlafpn_30e_576x320.tgz
tar -xvf fairmot_hrnetv2_w18_dlafpn_30e_576x320.tgz
wget https://bj.bcebos.com/paddlehub/fastdeploy/person.mp4
# CPU inference
./infer_demo fairmot_hrnetv2_w18_dlafpn_30e_576x320 person.mp4 0
# GPU inference
./infer_demo fairmot_hrnetv2_w18_dlafpn_30e_576x320 person.mp4 1
# TensorRT Inference on GPU
./infer_demo fairmot_hrnetv2_w18_dlafpn_30e_576x320 person.mp4 2
参考
https://github.com/PaddlePaddle/FastDeploy/tree/develop/examples/vision/tracking/pptracking/cpp
https://aistudio.baidu.com/projectdetail/3022582