OpenPose - Frequently Asked Question (FAQ)

1. 显存不足 Out of Memory

错误如,Check failed: error == cudaSuccess (2 vs. 0) out of memory.

有可能是没有使用 cuDNN,默认 Caffe 模型消耗 GPU 显存大于(>) 12GB,cuDNN 能够减少 BODY_25 模型 GPU 显存占用到约 2 GB,COCO 模型 GPU 显存占用减少到约 1.5 GB.

2. 运行速度优化问题

参考:

3. BODY_25 & COCO & MPI 模型的差异

COCO 模型未来会被移除.

BODY_25 模型更快,更准,且新包括了脚部关键点(foot keypoints).

但,COCO 模型消耗 GPU 显存更少(默认参数设置时,可以送入 2GB 的 GPUs 显卡),而且在 CPU 模型运行更快.

MPI 模型只用于对 MPI-keypoints 结构的人体Pose,其比 BODY_25 更慢,精度更低.

BODY_25 - pose_deploy.prototxt

COCO - pose_deploy_linevec.prototxt

MPI - pose_deploy_linevec.prototxt

MPI - pose_deploy_linevec_faster_4_stages.prototxt

4. 其它项目应用 OpenPose API

场景:不只是使用 OpenPose Demo,计划将 OpenPose API 用于其它项目.

安装 OpenPose 头文件headers 和库文件 libraries 到系统环境路径(如:/usr/local//usr/):

cd build/
sudo make install

安装完成后,即可采用 find_package cmake 命令,在其它项目中应用 OpenPose.

如:CMakeLists.txt中的小例子. 为了使用该脚本,需要复制 FindGFlags.cmakeFindGlog.cmake 到项目路径 <project_root_directory>/cmake/Modules/(如果项目中没有该路径,则新创建该路径).

cmake_minimum_required(VERSION 2.8.7)

add_definitions(-std=c++11)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")

find_package(GFlags)
find_package(Glog)
find_package(OpenCV)
find_package(OpenPose REQUIRED)

include_directories(${OpenPose_INCLUDE_DIRS} ${GFLAGS_INCLUDE_DIR} ${GLOG_INCLUDE_DIR} ${OpenCV_INCLUDE_DIRS})

add_executable(example.bin example.cpp)

target_link_libraries(example.bin ${OpenPose_LIBS} ${GFLAGS_LIBRARY} ${GLOG_LIBRARY} ${OpenCV_LIBS})

如果 Caffe 是与 OpenPose 一起编译的,会自动寻找到 Caffe. 否则,需要指定 Caffe 路径. (否则,可能出现错误:/usr/bin/ld: cannot find -lcaffe):

link_directories(<path_to_caffe_installation>/caffe/build/install/lib)
Last modification:December 1st, 2018 at 03:36 pm