原文: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/
路径.)