前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Github 项目 - OpenPose 在 Ubuntu 的安装

Github 项目 - OpenPose 在 Ubuntu 的安装

作者头像
AIHGF
发布2019-02-18 14:41:13
3K0
发布2019-02-18 14:41:13
举报
文章被收录于专栏:AIUAIAIUAI

原文:Github 项目 - OpenPose 在 Ubuntu 的安装 - AIUAI

Github 项目 - openpose 团队: CMU-Perceptual-Computing-Lab

OpenPose,强大的姿态估计开源项目,包括 Body, Face, Hands,3D Reconstruction等.

OpenPose 是对单张图像的人体肢体Body, 手部Hand, 面部Facial 等关键点的实时多人检测系统(共135 个关键点).

1. 最新更新

更多更新细节,参考: all released featuresrelease notes.

1.1 Features

1.功能

[1] - 2D 实时多人关键点检测

  • 15 或 18 或 25 个关键点的肢体估计. 运行时间不受图片中检测到的人体数量的影响.
  • 2x21 手部关键点估计. 现阶段,运行时间取决于检测到的人体数量.
  • 70 个关键点的面部估计. 现阶段,运行时间取决于检测到的人体数量.

[2] - 3D 实时单人关键点检测

  • 从多个单视角的 3D 三角测量(triangulation)
  • FLIR摄像机的同步处理
  • 与 Flir/Point Grey 摄像机兼容,但提供了 C++ Demos,以添加自定义输入.

[3] - 标定工具箱(Calibration toolbox)

  • Easy estimation of distortion, intrinsic, and extrinsic camera parameters.

[4] - 单人追踪(Single-person tracking)

  • 进一步提升速度,视觉平滑.

2. 输入(Input)

  • 图像Image,视频Video,相机Webcam,Flir/Point Grey 和 IP 摄像机.
  • C++ Demos,添加自定义输入.

3. 输出(Output)

  • 图像images + 关键点Keypoints 显示和保存(PNG, JPG, AVI, …)
  • 关键点Keypoints 保存(JSON, XML, YML, …)
  • 关键点Keypoints 作为数组类(array class)

4.支持系统(OS)

  • Ubuntu (14, 16)
  • Windows (8, 10)
  • Mac OSX
  • Nvidia TX2

5. 其它

  • 命令行 Demo,C++ 封装接口,C++ API
  • CUDA (Nvidia GPU), OpenCL (AMD GPU), 和 CPU 版本.

1.2 Results

1. 肢体-脚部关键点估计(Body-Foot Estimation)

2. Body, Face, Hands 估计

3. 3D Reconstruction 模块

4. Body 和 Hands 估计

5. Body 估计

2. Ubuntu 安装

OpenPose 支持平台比较丰富,但提供的安装说明也相对比较多,这里仅结合个人安装过程的说明.

2.1. 依赖项

  • 不要安装 Anaconda - Anaconda 的 Protobuf 版本与 OpenPose 内的 Caffe 不兼容(这个貌似通过采用自定义版本的 Caffe 来解决).
  • 安装 CMake GUI. sudo apt-get install cmake-qt-gui
  • Nvidia GPU - OpenPose 在 CUDA8.0 和 cuDNN5.1 测试. 个人安装环境:CUDA9.0 和 cuDNN7.1.4.
  • Caffe

2.2. OpenPose 配置

[1] - 打开 CMake GUI,并选择 OpenPose 路径作为项目源码路径,以及对应的 build 编译路径,如果 build 路径不存在,则会出现 YES 以自动创建.

[2] - 点击 Configure 选项,然后 Unix Makefile(Ubuntu),最后 Finish.

[3] - 点击 Generate 选项,即可关闭 CMake.

**注:**如果需要用 Python API,则需要在 [2] Configure 后,选择BUILD_PYTHON,如:

2.3. OpenPose 编译

代码语言:javascript
复制
cd OPENPOSE_ROOT/build/
make -j`nproc`

编译无误即可.

2.4. 其它相关

[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 路径.

2.5. CMake 命令行配置

如果已经采用 CMake GUI 配置编译,此部分则不必要.

[1] - 创建 OPENPOSE_ROOT/build 路径:

代码语言:javascript
复制
cd OPENPOSE_ROOT/build
mkdir build
cd build

[2] - 生成 Makefiles 文件. 此时有几种场景: Caffe 可以是用户自定义安装的版本;或者是在 OpenPose 中集成的 Caffe 版本.

场景1 - Caffe 未安装,OpenCV 采用 apt-get安装

代码语言:javascript
复制
cd build
cmake ..

场景2 - Caffe 已安装,OpenCV 采用源码安装

假设 Caffe 和 OpenCV 已经存在.

则,需要给 CMake 提供 libraries路径和 include路径.

对于 OpenCV,采用 OpenCV_INCLUDE_DIRSOpenCV_LIBS_DIR 指定 OpenCV 安装的 libraries路径和 include路径. 或者,也可以通过设置 OpenCV_CONFIG_FILE 来指定 OpenCVConfig.cmake 的路径.

对于 Caffe,采用 Caffe_INCLUDE_DIRSCaffe_LIBS 指定 Caffe 安装的 libraries路径和 include路径.

如:

代码语言:javascript
复制
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 ..
代码语言:javascript
复制
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 已安装:

代码语言:javascript
复制
cmake -DOpenCV_INCLUDE_DIRS=/home/"${USER}"/softwares/opencv/build/install/include \
  -DOpenCV_LIBS_DIR=/home/"${USER}"/softwares/opencv/build/install/lib ..
代码语言:javascript
复制
cmake -DOpenCV_CONFIG_FILE=/home/"${USER}"/softwares/opencv/build/install/share/OpenCV/OpenCVConfig.cmake ..

2.6. Python API

OpenPose的 Python API,需要在 CMake GUI 中设置 BUILD_PYTHON.

如:./build/examples/tutorial_developer/python_1_pose_from_heatmaps.py.

2.7. CPU 版本

为了可以手工选择 CPU 版本,则在 CMake GUI 中设置 GPU_MODECPU_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 张图像.

2.8. OpenPose 重新安装与删除

[1] - 如果运行了 sudo make install,则,首先在 build/ 中运行 sudo make uninstall.

[2] - 删除 build/ 路径.

[3] - CMake GUI 中,点击 File - Delete Cache.

[4] - 重新安装.(或删除 OPENPOSE_ROOT/ 路径.)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年11月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 最新更新
    • 1.1 Features
      • 1.2 Results
      • 2. Ubuntu 安装
        • 2.1. 依赖项
          • 2.2. OpenPose 配置
            • 2.3. OpenPose 编译
              • 2.4. 其它相关
                • 2.5. CMake 命令行配置
                  • 2.6. Python API
                    • 2.7. CPU 版本
                      • 2.8. OpenPose 重新安装与删除
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档