原文:Github 项目 - OpenPose 在 Ubuntu 的安装 - AIUAI
Github 项目 - openpose 团队: CMU-Perceptual-Computing-Lab
OpenPose,强大的姿态估计开源项目,包括 Body, Face, Hands,3D Reconstruction等.
OpenPose 是对单张图像的人体肢体Body, 手部Hand, 面部Facial 等关键点的实时多人检测系统(共135 个关键点).
更多更新细节,参考: all released features 和 release notes.
1.功能
[1] - 2D 实时多人关键点检测
[2] - 3D 实时单人关键点检测
[3] - 标定工具箱(Calibration toolbox)
[4] - 单人追踪(Single-person tracking)
2. 输入(Input)
3. 输出(Output)
4.支持系统(OS)
5. 其它
1. 肢体-脚部关键点估计(Body-Foot Estimation)
2. Body, Face, Hands 估计
3. 3D Reconstruction 模块
4. Body 和 Hands 估计
5. Body 估计
OpenPose 支持平台比较丰富,但提供的安装说明也相对比较多,这里仅结合个人安装过程的说明.
[1] - 打开 CMake GUI,并选择 OpenPose 路径作为项目源码路径,以及对应的 build 编译路径,如果 build 路径不存在,则会出现 YES 以自动创建.
[2] - 点击 Configure 选项,然后 Unix Makefile(Ubuntu),最后 Finish.
[3] - 点击 Generate 选项,即可关闭 CMake.
**注:**如果需要用 Python API,则需要在 [2] Configure 后,选择BUILD_PYTHON,如:
cd OPENPOSE_ROOT/build/
make -j`nproc`编译无误即可.
[1] - 编译时不采用 cuDNN:
在OpenPose 配置中,去除 CMake 的 USE_CUDNN 勾选.
如果不采用 cuDNN,则需要减少 --net_resolution 设定的尺寸,以避免 GPU 显存不足.
--net_resolution 可尝试:640x320, 320x240, 320x160, 160x80。
如:--net_resolution -1x320.
[2] - 自定义 Caffe 版本:
在OpenPose 配置中,去除 CMake 的 BUILD_CAFEE 勾选,手工定义 Caffe include路径和 library路径.
[3] - 自定义 OpenCV 版本:
在OpenPose 配置中,如果是从源码编译安装的 OpenCV,导致 OpenPose 不能找到 OpenCV路径,则可以手工指定 OPENCV_DIR 路径.
如果已经采用 CMake GUI 配置编译,此部分则不必要.
[1] - 创建 OPENPOSE_ROOT/build 路径:
cd OPENPOSE_ROOT/build
mkdir build
cd build[2] - 生成 Makefiles 文件. 此时有几种场景: Caffe 可以是用户自定义安装的版本;或者是在 OpenPose 中集成的 Caffe 版本.
场景1 - Caffe 未安装,OpenCV 采用 apt-get安装
cd build
cmake ..场景2 - Caffe 已安装,OpenCV 采用源码安装
假设 Caffe 和 OpenCV 已经存在.
则,需要给 CMake 提供 libraries路径和 include路径.
对于 OpenCV,采用 OpenCV_INCLUDE_DIRS 和 OpenCV_LIBS_DIR 指定 OpenCV 安装的 libraries路径和 include路径. 或者,也可以通过设置 OpenCV_CONFIG_FILE 来指定 OpenCVConfig.cmake 的路径.
对于 Caffe,采用 Caffe_INCLUDE_DIRS 和 Caffe_LIBS 指定 Caffe 安装的 libraries路径和 include路径.
如:
cmake -DOpenCV_INCLUDE_DIRS=/home/"${USER}"/softwares/opencv/build/install/include \
-DOpenCV_LIBS_DIR=/home/"${USER}"/softwares/opencv/build/install/lib \
-DCaffe_INCLUDE_DIRS=/home/"${USER}"/softwares/caffe/build/install/include \
-DCaffe_LIBS=/home/"${USER}"/softwares/caffe/build/install/lib/libcaffe.so -DBUILD_CAFFE=OFF ..cmake -DOpenCV_CONFIG_FILE=/home/"${USER}"/softwares/opencv/build/install/share/OpenCV/OpenCVConfig.cmake \
-DCaffe_INCLUDE_DIRS=/home/"${USER}"/softwares/caffe/build/install/include \
-DCaffe_LIBS=/home/"${USER}"/softwares/caffe/build/install/lib/libcaffe.so -DBUILD_CAFFE=OFF ..场景3 - OpenvCV 已安装
如果 Caffe 未安装,但 OpenCV 已安装:
cmake -DOpenCV_INCLUDE_DIRS=/home/"${USER}"/softwares/opencv/build/install/include \
-DOpenCV_LIBS_DIR=/home/"${USER}"/softwares/opencv/build/install/lib ..cmake -DOpenCV_CONFIG_FILE=/home/"${USER}"/softwares/opencv/build/install/share/OpenCV/OpenCVConfig.cmake ..OpenPose的 Python API,需要在 CMake GUI 中设置 BUILD_PYTHON.
如:./build/examples/tutorial_developer/python_1_pose_from_heatmaps.py.
为了可以手工选择 CPU 版本,则在 CMake GUI 中设置 GPU_MODE 为 CPU_ONLY.
注:CPU 版本的精度比 CUDA 版本的精度高大约 1%. 故结果可能有不同.
Ubuntu 中的 OpenPose 利用了 Caffe 的 Intel MKL(Math Kernel Library) 版本. 也可以通过取消选择USE_MKL,利用自定义的 Caffe 版本.
默认 CPU 版本在 Ubuntu 上大概每秒 0.2 张图像(比 GPU 版本慢 ~50X ). MKL 版本能够提升 2X 的速度,每秒 ~0.4 张图像.
[1] - 如果运行了 sudo make install,则,首先在 build/ 中运行 sudo make uninstall.
[2] - 删除 build/ 路径.
[3] - CMake GUI 中,点击 File - Delete Cache.
[4] - 重新安装.(或删除 OPENPOSE_ROOT/ 路径.)