参考:mmpose/projects/rtmpose at main · open-mmlab/mmpose · GitHub
一、安装构建和编译工具链
- cmake
保证 cmake的版本 >= 3.14.0。如果不是,可以参考以下命令安装 3.20.0 版本。
wget https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0-linux-x86_64.tar.gz
tar -xzvf cmake-3.20.0-linux-x86_64.tar.gz
sudo ln -sf $(pwd)/cmake-3.20.0-linux-x86_64/bin/* /usr/bin/
- GCC 7+
MMDeploy SDK 使用了 C++17 特性,因此需要安装gcc 7+以上的版本。
# 如果 Ubuntu 版本 < 18.04,需要加入仓库
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-7
sudo apt-get install g++-7
二、安装 MMDeploy SDK 依赖
- opencv
在 Ubuntu 18.04 及以上版本。OpenCV(>=3.0)。
sudo apt-get install libopencv-dev
在 Ubuntu 16.04 中,需要源码安装 OpenCV。 可以参考我之前的博客。顺便把ncnn装了。
三、安装推理引擎(ncnn)
MMDeploy 的 Model Converter 和 SDK 共享推理引擎。可以选择自己感兴趣的推理引擎安装。我选择ncnn平台。pwd如我的是/home/hhzdh-linux/ncnn。具体如何安装ncnn也可参考我之前的博客。
cd ncnn
export NCNN_DIR=$(pwd)
四、编译MMDeploy
需要科学上网,不然会很慢。
git clone https://github.com/open-mmlab/mmdeploy.git
cd mmdeploy
git submodule update --init --recursive
编译 Model Converter,如我选择了ncnn 推理后端,需要编译对应的自定义算子库。编译可能会碰到报错 undefined reference to __atomic_fetch_add_8
,需要添加 cmake 选项
# 记得sudo
cd ${MMDEPLOY_DIR}
mkdir -p build && cd build
cmake -DCMAKE_CXX_COMPILER=g++-7 -DMMDEPLOY_TARGET_BACKENDS=ncnn -Dncnn_DIR=${NCNN_DIR}/build/install/lib/cmake/ncnn
make -j$(nproc) && make install
cmake -DCMAKE_CXX_COMPILER=g++-7 -DMMDEPLOY_TARGET_BACKENDS=ncnn -Dncnn_DIR=${NCNN_DIR}/build/install/lib/cmake/ncnn -DCMAKE_CXX_FLAGS=-latomic
至此mmdeploy sdk(ncnn)安装完成。
五、sdk使用
在cmakelist需要添加如下:
set(CMAKE_PREFIX_PATH ../Downloads/ncnn/build/install ../Downloads/mmdeploy/build/install)
find_package(MMDeploy REQUIRED)
target_link_libraries(${name} PRIVATE mmdeploy ${OpenCV_LIBS})