OpenPose 安装完全指南:从 Windows 便携版到 Ubuntu/Mac/Windows 源码编译

OpenPose 安装完全指南:从 Windows 便携版到 Ubuntu/Mac/Windows 源码编译

【免费下载链接】openpose OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation 【免费下载链接】openpose 项目地址: https://gitcode.com/gh_mirrors/op/openpose

导读

本文是 OpenPose(实时多人关键点检测库,覆盖身体、脸部、手部与脚部估计)的权威安装手册,完整梳理官方支持的三种交付形态:Windows 便携 Demo(免编译即用)、从源码编译安装(适合二次开发与库集成),以及 ROS / Docker / Google Colab 等社区方案。读完本文,你将掌握各平台的软硬件前置条件、CMake 配置与 GPU_MODE 选型逻辑、Ubuntu/Mac/Windows 三端的编译与运行流程,并能据此定位与排查安装过程中绝大多数常见错误。

本文主体依据 doc/installation/0_index.md 整理,同时结合 CMakeLists.txt、scripts/ubuntu/install_deps.sh、models/getModels.sh 等源码与脚本,补充底层实现依据。


一、支持的操作系统、硬件需求与依赖

1.1 操作系统支持矩阵

官方明确支持以下系统:

  • Windows 10
  • Ubuntu 20
  • Mac OSX Mavericks 及以上版本

以下系统已不再官方维护,但大概率仍可运行(可能需要少量修改):

  • Ubuntu 14、16、18
  • Windows 7、8

嵌入式平台方面:

1.2 默认配置的硬件需求

版本形态最低硬件要求
CUDA(Nvidia GPU)至少 1.6 GB 可用显存 的 Nvidia 显卡(Ubuntu 下可用 nvidia-smi 查看显存占用);至少 2.5 GB 空闲 RAM(BODY_25 模型)或 2 GB(COCO 模型,假设已装 cuDNN);强烈建议安装 cuDNN
OpenCL(AMD GPU)Vega 系列显卡;至少 2 GB 空闲 RAM
CPU-only(无 GPU)约 8 GB 空闲 RAM
通用建议CPU 至少 8 核

进阶提示:--net_resolution 越大、scale_number 越多,所需资源越多;反之,降低网络分辨率或改用 MPI / MPI_4 模型可以减少资源占用。

1.3 依赖清单

  • OpenCV:所有 2.X 与 3.X 版本均兼容(当前仓库 Windows 预编译依赖实际采用 OpenCV 4.x,详见下文源码分析)。
  • Caffe 及其全部依赖:OpenPose 默认以 Caffe 为深度学习推理框架。官方欢迎用户将 OpenPose 移植到 Tensorflow、Caffe2、Pytorch 等框架,并欢迎提交 pull request。
  • GFlags:demo 与教程代码额外依赖 GFlags 用于命令行参数解析。

上述依赖与版本要求在 doc/installation/1_prerequisites.md 中有更细化的逐平台安装步骤,本文后续章节会展开。


二、Windows 便携 Demo:不想编译就直接用

如果你只是想使用 OpenPose,而不打算编译或写任何代码,直接使用最新版 Windows 便携包即可,全程无需构建。

  1. 准备 Nvidia 驱动(可选但推荐):为追求最高速度,建议在带 Nvidia GPU 的机器上使用。若如此,请先将 Nvidia 驱动升级到最新版本(可通过 Nvidia "GeForce Experience" 软件或官网下载页操作)。
  2. 下载最新版 OpenPose 便携包:从官方 Releases 页面获取最新 Windows 版本。
  3. 下载模型:解压 zip 后,按包内 Instructions.txt 的说明下载 OpenPose 所需模型(约 500 MB)。
  4. 运行:按 doc/01_demo.md 的指引,在 PowerShell 命令行中运行 OpenPose。

关于模型:仓库中 models/getModels.sh 展示了模型清单及下载源——BODY_25(pose_iter_584000.caffemodel)、COCO(pose_iter_440000.caffemodel)、MPI(pose_iter_160000.caffemodel)、人脸(pose_iter_116000.caffemodel)、手部(pose_iter_102000.caffemodel),Windows 便携包内的 Instructions.txt 与之对应。

已知问题的修复:如果使用 GPU 加速版时出现 Cuda check failed (3 vs. 0): initialization error,可通过以下任一方式解决:

  • 升级 Nvidia 驱动;若错误仍存在,请确保机器上没有安装任何 CUDA 版本(或所装 CUDA 与便携包内置 CUDA 版本一致),否则卸载该 CUDA。如果必须保留该 CUDA 版本,请改按本文第三部分的源码编译流程,针对该 CUDA 版本自行构建。
  • 下载更旧的 OpenPose 版本(v1.6.0 不会出现此错误)。

三、从源码编译并运行 OpenPose

以下小节描述基于 CMake-GUI 的构建流程。这些步骤仅在你打算修改 OpenPose 源码、或将其作为库集成进其他项目时才推荐执行;如果只是想在 Windows 上运行 OpenPose 而不编译不写代码,可以跳过本章。

3.1 安装问题排查入口

按本指南安装遇到任何问题时:

  • 先查阅 doc/05_faq.md 与现有 GitHub issues;
  • 若未找到对应问题,再新建 issue 提问;
  • 官方不会回复重复 issue,也不会回复关于 Caffe、OpenCV 或 CUDA 安装错误的 issue,以及未按模板填全信息的 issue。

3.2 前置条件

务必先安装适合你操作系统的全部前置依赖,详细清单见 doc/installation/1_prerequisites.md。核心要点如下:

通用技巧(非常重要,可避免大量 bug):

  • 安装最新 CUDA,或确保你的 GPU 与系统里的 CUDA 版本兼容。例如 Nvidia 30XX 系列 GPU 至少需要 CUDA 11;GTX 20XX、V100、Volta、Turing 等至少需要 CUDA 10。

  • CMake 会自动下载所有 OpenPose 模型;但部分防火墙或公司网络会拦截这些下载。此时需要手动下载模型并放入对应目录:

    • BODY_25 模型 → models/pose/body_25/
    • COCO 模型 → models/pose/coco/
    • MPI 模型 → models/pose/mpi/
    • 人脸模型 → models/face/
    • 手部模型 → models/hand/

    仓库 models/getModels.sh 即对应这一下载流程(各模型默认源为 http://vcl.snu.ac.kr/OpenPose/models/)。

Ubuntu 前置条件(对应 doc/installation/1_prerequisites.md):

  1. 不要安装 Anaconda,或务必停用它。Anaconda 自带的 Protobuf 与 Caffe 不兼容:要么卸载 Anaconda 改用 apt-get 安装 protobuf,要么用 conda deactivate 停用 Conda(若不在 base 环境则需执行两次)。
  2. 安装 CMake GUI:
    • Ubuntu 20:sudo apt-get install cmake-qt-gui
    • Ubuntu 18:必须从源码编译 CMake-gui(apt 自带的 3.10 版本会引发编译错误,要求 CMake >= 3.12):先 sudo apt purge cmake-qt-gui 卸载旧版,再 sudo apt install libssl-dev 与 sudo apt-get install qtbase5-dev,下载 CMake 源码包后执行 ./configure --qt-gui 与 ./bootstrap && make -jnproc&& sudo make install -jnproc``;此后文档中所有 cmake-gui 命令都需替换为 {CMAKE_FOLDER_PATH}/bin/cmake-gui。
    • Ubuntu 14/16:直接 sudo apt-get install cmake-qt-gui。
  3. Nvidia GPU 版本前置:
    • 推荐组合(经大量测试):Ubuntu 20 使用 CUDA 11.7.1 + cuDNN 8.5.0;更早的 v1.6.X / v1.5.X 版本对应 Ubuntu 18 + CUDA 10.1 + cuDNN 7.5.1 与 Ubuntu 14/16 + CUDA 8.0 + cuDNN 5.1。其他组合也可能可用,但官方不对 CUDA/cuDNN 相关的安装编译问题提供支持。若启用了 Secure Boot(默认关闭),MOK 密钥安装步骤可能必需:记录公钥输出路径并手动执行 sudo mokutil --import PATH_TO_PUBLIC_KEY。
    • 升级 Nvidia 驱动到最新版本。
    • CUDA 安装:不熟悉 CUDA 时可直接运行 sudo bash ./scripts/ubuntu/install_cuda.sh;或从 CUDA 官方下载页安装(x86_64 架构、建议 runfile(local) 安装类型),安装时务必启用 /usr/local/cuda 符号链接以规避后续错误;若手动装过驱动,请取消勾选“install driver”。
    • cuDNN 安装:下载对应版本的 cuDNN Library for Linux (x86_64),解压后将其内容复制(合并)到 CUDA 目录(通常为 /usr/local/cuda-{version}/)。
  4. OpenCL / AMD GPU 版本前置(仅当无 Nvidia GPU 且想在 AMD 显卡上运行时):Ubuntu 20/18 未测试且不官方支持,风险自负;Ubuntu 14/16 需安装第三方 ROCM 驱动与 libviennacl-dev。
  5. 安装 Caffe、OpenCV 及其依赖:
    • OpenCV:sudo apt-get install libopencv-dev(也可用自己编译的 OpenCV)。
    • Caffe 依赖:安装 CUDA/cuDNN 后运行 sudo bash ./scripts/ubuntu/install_deps.sh(该脚本会安装 build-essential、libatlas-base-dev、libprotobuf-dev、libleveldb-dev、libsnappy-dev、libhdf5-serial-dev、protobuf-compiler、libboost-all-dev、libgflags-dev、libgoogle-glog-dev、liblmdb-dev 以及 Python2/Python3 依赖,参见 scripts/ubuntu/install_deps.sh)。
    • CMake 配置生成依赖:sudo apt install protobuf-compiler libgoogle-glog-dev。
    • make 构建依赖:sudo apt install libboost-all-dev libhdf5-dev libatlas-base-dev。
  6. Python 前置(可选,仅在使用 Python API 时):
    # Python 3(默认与推荐)
    sudo apt-get install python3-dev
    sudo pip3 install numpy opencv-python
    # Python 2
    sudo apt-get install python-dev
    sudo pip install numpy opencv-python
    

Mac OS 前置条件:

  1. 未装 brew 时,运行 bash scripts/osx/install_brew.sh。
  2. 安装 CMake GUI:brew install --cask cmake。
  3. 安装 Caffe、OpenCV 及其依赖:运行 bash scripts/osx/install_deps.sh。

Windows 前置条件(仅源码编译时需要;直接用便携包可跳过):

  1. 安装 CMake GUI:下载 cmake-X.X.X-win64-x64.msi 安装包。
  2. 安装 Visual Studio 2019 / 2017 Enterprise 或 VS 2015 Enterprise Update 3(Community 版官方不正式支持但应可运行):务必勾选全部 C++ 相关组件。
  3. Nvidia GPU 版本:
    • 推荐组合:VS2019 + CUDA 11.1.1 + cuDNN 8.1.0;v1.6.X/v1.5.X 对应 VS2017 + CUDA 10.1 + cuDNN 7.5.1、VS2015 + CUDA 8.0 + cuDNN 5.1。
    • 先装 VS 再装 CUDA,确保 CUDA 能为 VS 生成必要文件;若顺序反了需重装 CUDA。
    • 若 CMake 报 CUDA_TOOLKIT_ROOT_DIR not found or specified 等错误,按此顺序处理:1) 重装 Visual Studio;2) 重启电脑;3) 重装 CUDA。
    • cuDNN 手动安装:解压后把内容复制(合并)到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v{version}。
  4. AMD GPU 版本:安装 AMD 官方 Windows 驱动;libviennacl 已随 OpenPose Windows 包附带,无需额外操作。
  5. Caffe、OpenCV 及其依赖:CMake 会自动下载全部 Windows DLL;也可手动下载,将 zip 保留在 3rdparty/windows/ 目录以免 CMake 重复下载:
    • Caffe(不确定就选默认 CUDA 版):CUDA Caffe(默认)、CPU Caffe、OpenCL Caffe,分别解压为 3rdparty/windows/caffe/、3rdparty/windows/caffe_cpu/、3rdparty/windows/caffe_opencl/;
    • Caffe 依赖:解压为 3rdparty/windows/caffe3rdparty/;
    • OpenCV:解压为 3rdparty/windows/opencv/。
  6. Python 前置(可选):安装 Windows 版 Python 3.X 后执行 sudo pip install numpy opencv-python。

3.3 克隆 OpenPose

第一步是克隆 OpenPose 仓库:

  1. Windows:可用 GitHub Desktop,或在 Powershell 中克隆。
  2. Ubuntu、Mac 或 Windows Powershell:
    git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose
    cd openpose/
    git submodule update --init --recursive --remote
    

说明:git submodule update 用于拉取 3rdparty/ 下的子模块(如 Caffe 分支、pybind11 等,见仓库 3rdparty/ 目录)。

3.4 CMake 配置(CMake-GUI)

  1. 进入 OpenPose 目录并打开 CMake-GUI:

    cd {OpenPose_folder}
    mkdir build/
    cd build/
    cmake-gui ..
    
  2. 源码目录选择 OpenPose 根目录,生成目录指定一个不存在或为空的子目录(如 build),Makefile(Ubuntu)或 Visual Studio 解决方案(Windows)将生成于此;若 build 不存在,CMake 会询问是否创建,选 Yes。

  3. 点击 Configure:Ubuntu 保持生成器为 Unix Makefiles;Windows 选择 64 位 Visual Studio 版本并点击 Finish。注意 CMake-GUI 在 14 版本之后改了设计:旧版一般选 Visual Studio XX 20XX Win64 且 Optional toolset to use 留空;新版只需选 VS 版本(如 Visual Studio 16 2019),再在 Optional platform for generator 中手动选 x64。

  4. (可选)启用 Python API:勾选 BUILD_PYTHON,再次点击 Configure。从 CMakeLists.txt 源码看,BUILD_PYTHON 默认 OFF(第 316 行 option(BUILD_PYTHON "Build OpenPose python." OFF))。

  5. 设置 GPU_MODE 标志并再次 Configure:

    • Nvidia GPU 用户:通常无需修改,直接跳过本步。需要修改的情况:
      • Nvidia GPU 显存 ≤ 2GB:参考 doc/06_maximizing_openpose_speed.md 的调优技巧,或把 GPU_MODE 改回 CPU_ONLY;
      • 无法安装 CUDA:也可把 GPU_MODE 设为 CPU_ONLY。
    • Mac OSX 与非 Nvidia GPU(Intel/AMD):设为 CPU_ONLY(易安装但运行慢)或 OPENCL(GPU 加速,安装更难但运行更快)。细节见 doc/installation/1_prerequisites.md 与下文“OpenCL 版本”小节。
    • 无任何 GPU:设为 CPU_ONLY。

    从 CMakeLists.txt 第 194-209 行可以看到,GPU_MODE 的可选值为 CUDA、OPENCL、CPU_ONLY 三选一:非 Mac 平台默认 CUDA,Mac 平台默认 CPU_ONLY。选择 CUDA 时 CMake 会 find_package(CUDA) 并定义 USE_CUDA;选择 CPU_ONLY 时定义 USE_CPU_ONLY 与 CPU_ONLY;选择 OPENCL 时定义 USE_OPENCL 与 USE_GREENTEA(CMakeLists.txt 第 211-246 行)。

  6. 若配置成功,底部输出框最后一行会出现 Configuring done;否则底部会出现红色报错文本。

  7. 点击 Generate 生成构建文件,然后进入编译章节;此时可关闭 CMake。

其他可选/自定义选项(例如使用自定义 Caffe 或 OpenCV 版本),参见 doc/installation/2_additional_settings.md。

3.5 编译

Ubuntu
cd build/
make -j`nproc`
Mac
cd build/
make -j`sysctl -n hw.logicalcpu`

进阶提示:Mac 同时提供 logicalcpu 与 physicalcpu,为追求最大速度应取逻辑核数。

Mac 常见问题处理:

  • 若默认编译在 Caffe 环节报错,可单独安装 Caffe 并关闭 BUILD_CAFFE:
    • 重建 build 目录:rm -rf build; mkdir build; cd build
    • brew uninstall caffe 移除此前由 cmake 安装的 Caffe,再 brew install caffe 单独安装;
    • 在 cmake-gui 中调整:BUILD_CAFFE 设为 false;Caffe_INCLUDE_DIRS 设为 /usr/local/include/caffe;Caffe_LIBS 设为 /usr/local/lib/libcaffe.dylib;重新 Configure 与 Generate。
  • 若编译时遇到 OpenCV 报错 fatal error: 'opencv2/highgui/highgui.hpp' file not found(在较新的 OSX 10.14 上被报告过),应用补丁:
    cd 3rdparty/caffe; git apply ../../scripts/osx/mac_opencl_patch.txt
    
Windows

在以下 2 种方式中选择其一执行。

方式一:CMake-GUI(推荐)

  1. 在 CMake 中点击 Open Project 打开 Visual Studio 解决方案(即 build/OpenPose.sln),将配置从 Debug 切换为 Release。
  2. 按 F7(或 Build 菜单 → Build Solution)执行构建。
  3. Python 版本特别注意:不能只按 F5(Run),必须执行 Build Solution 才会生成 Python 绑定。
  4. 编译完成后,若有摄像头,可按绿色三角图标(或 F5)以默认参数在摄像头上运行 OpenPose demo。

方式二:命令行构建(不推荐,官方不正式支持)

openpose\mkdir  build
cd build
cmake .. -G "Visual Studio 16 2019" -A x64 -T v142
cmake --build . --config Release
copy x64\Release\*  bin\

若需 clean build:

cmake --clean-first .
cmake --build . --config Release
copy x64\Release\*  bin\

要点提示:

  • 命令行构建时若想设 GPU_MODE 为 CPU_ONLY,需在 cmake 命令后追加 -D GPU_MODE:STRINGS=CPU_ONLY。
  • 非常关键:要在 Visual Studio 之外使用 OpenPose,且未在 CMake 中取消勾选 BUILD_BIN_FOLDER 时,需将 {build_directory}/bin 下所有 DLL 复制到生成的 openpose.dll 与 *.exe demo 所在目录(64 位 Release 版本为 {build_directory}/x64/Release)。这一点与 CMakeLists.txt 第 318 行 BUILD_BIN_FOLDER(Windows 下默认 ON)的机制一致:它会将 3rd-party DLL 统一收集到 {build_directory}/bin。

3.6 运行 OpenPose

编译完成后,按 doc/01_demo.md 运行任意 demo 示例即可验证安装是否成功,例如:

# Ubuntu 和 Mac
./build/examples/openpose/openpose.bin --video examples/media/video.avi
:: Windows - Portable Demo
bin\OpenPoseDemo.exe --video examples/media/video.avi

更多输入输出组合(--image_dir 图片目录、--video 视频、默认摄像头、--face/--hand、--write_json 等)详见 doc/01_demo.md。

3.7 自定义用户代码(Custom User Code)

如果你想在不新建整个项目的情况下快速验证原型,可以把自定义代码放入 examples/user_code/ 目录(仓库中已存在该目录及 examples/user_code/README.md 说明),从而让自定义代码随 OpenPose 一起编译,无需从头搭建独立工程。


四、ROS、Docker 与 Google Colab:社区方案

如果既不想用 Windows 便携二进制、也不想从源码编译,官方提供了若干社区维护方案的链接。注意:这些方案官方均不提供支持;官方会移除针对它们的新的 GitHub issue,并在其中提问的用户会被禁言。如有问题,只能在对应 issue 线程或向方案作者提问。

  • ROS 示例:社区提供基于 OpenPose 的 ROS 节点实现(其中第二个基于非常旧的 OpenPose 版本),相关提问只在对应 issue 线程进行。
  • Docker 镜像:社区提供多套 Dockerfile,其中包含支持 CUDA 10 的镜像(可通过 docker pull 拉取),以及仅支持 CUDA 8 的多个版本镜像(如 OpenPose v1.4.0 + OpenCV + CUDA 8 + CuDNN 5/6 + Python 2.7、OpenPose v1.2.1 等)。在 Ubuntu 上先安装 Docker(如 sudo apt-get install docker-ce)再拉取镜像即可。
  • Google Colab 辅助脚本:当本地没有足够强的计算机运行 OpenPose 时,可以在启用 GPU 的 Colab 运行时上构建并运行 OpenPose。社区提供了多个 Colab Notebook(如基于 OpenPose 1.7.0 的运动轨迹提取 Notebook),相关问题只在对应 issue 线程讨论。

五、Tiyaro 在线 Live Demo(社区方案)

官方还提供了由 Tiyaro 联合创始人贡献的 OpenPose API 在线 Live Demo(位于 Tiyaro.ai 平台)。该方案不属于官方支持范围,相关问题请在对应帖子上向作者提问。


六、卸载、重装或更新 OpenPose

卸载非常简单:

  1. (Ubuntu 和 Mac)如果你执行过 sudo make install(官方不推荐此操作),则需在 build/ 目录下运行 sudo make uninstall。
  2. 直接删除整个 OpenPose 文件夹。

更新或重装:

  1. 先按上述步骤卸载。
  2. 再按本文第三部分“从源码编译并运行 OpenPose”的步骤重新执行。

七、附加设置(可选)

按需查阅 doc/installation/2_additional_settings.md,其中覆盖了 14 项高级配置,本节逐一概述其核心要点:

  1. 部署/导出 OpenPose 到其他项目:参见 doc/advanced/deployment.md。

  2. 最大速度:速度基准与提速/降内存技巧见 doc/06_maximizing_openpose_speed.md。

  3. 更快 CPU 版本(仅 Ubuntu):仅支持 Ubuntu 16/14 的 Intel CPU(Ubuntu 20 无法编译,Ubuntu 18 未测试)。将 GPU_MODE 设为 CPU_ONLY 后,把 USE_MKL 设为 true,即可链接 Intel MKL 版 Caffe,CPU 速度约提升 2-3 倍。默认 CPU 版在 Ubuntu 上约为 0.2 images/s(比 GPU 慢约 50 倍),MKL 版约 0.4 images/s。MKL 版不支持不固定分辨率,处理不同分辨率图片目录时必须指定固定网络分辨率(如 --net_resolution 656x368)。可通过环境变量调线程数:

    # 最优值 = CPU 线程数(默认使用)
    export MKL_NUM_THREADS="8"
    export OMP_NUM_THREADS="8"
    

    线程数增加会提高 RAM 占用。CMakeLists.txt 第 248-259 行确认了 USE_MKL 仅在 Linux 的 CPU_ONLY 模式下提供(默认 OFF),启用后定义 USE_MKL 宏。

  4. OpenCL 版本:AMD 显卡用户可将 GPU_MODE 设为 OPENCL(命令行 CMake 为 GPU_MODE=OPENCL)。重要:如果在同一目录编译过 CPU-only 或 CUDA 版本,必须手动删除 build 目录后从头安装,否则会出现大量诡异错误。OpenCL 版在 Ubuntu、Windows、OSX 上测试过,但仅测试过 AMD Vega 系列与 Nvidia 10 系列显卡。OpenCL 版同样不支持不固定 --net_resolution,不同分辨率图片目录需指定如 --net_resolution 656x368。Mac + AMD 显卡运行 OpenCL 有特殊说明(见原文档)。另外,CPU/OpenCL 版的精度比 CUDA 版略低,但实际差异几乎不可察觉。

  5. COCO 与 MPI 模型:默认不下载 COCO 与 MPI 模型(比 BODY_25 更慢且精度更低,多数场景没必要)。需要时勾选 DOWNLOAD_BODY_COCO_MODEL 或 DOWNLOAD_BODY_MPI_MODEL。从 CMakeLists.txt 第 304-308 行可见:DOWNLOAD_BODY_25_MODEL 与 DOWNLOAD_FACE_MODEL、DOWNLOAD_HAND_MODEL 默认 ON,而 COCO/MPI 默认 OFF。模型差异对比见 doc/05_faq.md。

  6. 3D 重建模块:

    • 安装 FLIR 相机软件 Spinnaker SDK(专有软件,官方不提供直接下载链接;若使用其他品牌相机可跳过此步):Ubuntu 装到默认路径后 OpenPose 会自动发现;Windows 需手动将 Spinnaker 的 bin64\vs2015、include、lib64\vs2015(Spinnaker_v140.lib / Spinnakerd_v140.lib)分别复制到 3rdparty\windows\spinnaker\bin、include、lib。
    • 安装 3D 可视化库 FreeGLUT:Ubuntu 执行 sudo apt-get update && sudo apt-get install build-essential freeglut3 freeglut3-dev libxmu-dev libxi-dev 并重启;Windows 由 CMake 自动下载,或双击 3rdparty/windows/getFreeglut.bat(该脚本存在于仓库中)。
    • 在 CMake 中开启 WITH_FLIR_CAMERA(仅安装了 Spinnaker 时)与 WITH_3D_RENDERER。
    • Ceres solver(仅 Ubuntu,提升 3D 重建精度):sudo apt-get install libeigen3-dev 并安装 Ceres solver,再在 CMake 中开启 WITH_CERES。CMakeLists.txt 第 278-283 行确认了这三个开关均为默认 OFF 的 option。
    • 安装后按 doc/advanced/3d_reconstruction_module.md 使用。
  7. 标定模块(Calibration Module):相机内参标定工具箱默认包含;启用外参标定工具箱需开启 WITH_EIGEN(三选一):

    • 推荐:WITH_EIGEN 设为 AUTOBUILD,CMake 自动下载 Eigen 并配置(若防火墙拦截,可手动下载 Eigen 3.3.8 并解压为 3rdparty/eigen/);
    • 进阶(不推荐):设为 FIND,需系统已装 Eigen——注意 Eigen <= 3.3.6 不兼容 CUDA >= 9.1,可 sudo apt-get install libeigen3-dev;
    • 进阶(不推荐):也可先 AUTOBUILD 让 CMake 下载,再以自己版本的 Eigen 替换 3rdparty/eigen/。

    从 CMakeLists.txt 第 291-296 行可见 WITH_EIGEN 可选 NONE、AUTOBUILD、FIND 三值,默认 NONE;第 391-420 行实现了 AUTOBUILD 下载(含 MD5 校验)与 FIND 查找逻辑。安装后按 doc/advanced/calibration_module.md 使用。

  8. Unity 兼容版本:见官方 Unity 插件仓库。注意:Unity 版在非 Unity 环境下遇到错误会崩溃,因此不要在 Unity 之外使用。

  9. 不编译 cuDNN:cuDNN 并非强制依赖,但它是完整关键点检测精度所需。若显卡不兼容 cuDNN,可在 CMake 中取消勾选 USE_CUDNN(CMakeLists.txt 第 273-275 行确认 USE_CUDNN 仅在 CUDA 模式下存在且默认 ON)。此时需调低 --net_resolution 以适配显存,可尝试 640x320、320x240、320x160、160x80 等值;找到极限分辨率后按输入画面的宽高比调整(见 doc/advanced/demo_advanced.md 的 --net_resolution 说明),或直接用 -1(如 --net_resolution -1x320)。

  10. 自定义 Caffe:OpenPose 使用官方 Caffe 的定制 fork(仅在其可用时更新)。默认 GPU 版即 master 分支,兼容 CUDA 10 无需改动。想用自定义 Caffe(Ubuntu/Mac):1) 关闭 BUILD_CAFFE;2) 设 Caffe_INCLUDE_DIRS 为 {CAFFE_PATH}/include/caffe;3) 设 Caffe_LIBS 为 {CAFFE_PATH}/build/lib/libcaffe.so。注意需要 cuDNN 兼容的 Caffe 版本才能获得最大精度。Windows 上则直接替换自定义 OpenCV 的 DLL 与 include 目录。从 CMakeLists.txt 第 171-191 行可见 DL_FRAMEWORK 支持 CAFFE / NV_CAFFE,且 BUILD_CAFFE 默认 ON。

  11. 自定义 NVIDIA NVCaffe:社区贡献的功能,官方不正式支持。已测试过 Nvidia 官方 Docker 镜像(nvcr.io/nvidia/caffe:18.12-py2)。使用方法:将 DL_FRAMEWORK 设为 NV_CAFFE、BUILD_CAFFE 设为 OFF,并按“自定义 Caffe”一节设置 Caffe_INCLUDE_DIRS 与 Caffe_LIBS。Windows 未支持(需修改 CMakeLists.txt 中 DL_FRAMEWORK 的 STRINGS 属性)。

  12. 自定义 OpenCV:若自编译 OpenCV 而 OpenPose 无法自动发现,可设 OPENCV_DIR 指向 OpenCV 构建目录(Ubuntu/Mac)。CMakeLists.txt 第 431-441 行还支持 OpenCV_CONFIG_FILE、OpenCV_INCLUDE_DIRS + OpenCV_LIBS(或 OpenCV_LIBS_DIR)等三种显式指定方式。

  13. Doxygen 文档自动生成(仅 Ubuntu):设置 BUILD_DOCS 标志,文档生成于 doc/doxygen/html/index.html,双击即可在浏览器查看。

  14. CMake 命令行配置(仅 Ubuntu):不使用 CMake GUI 时的替代方案。在 OpenPose 根目录创建 build 目录:

    cd openpose
    mkdir build
    cd build
    

    根据已有环境分四种场景:

    • 场景 1 - 未装 Caffe 且 OpenCV 由 apt-get 安装:直接 cmake ..
    • 场景 2 - 已装 Caffe 且 OpenCV 由源码构建(示例):
      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 ..
      

      或指定 OpenCVConfig.cmake 文件:

      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 - 仅已装 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 ..
      
    • 其他场景:查阅 CMake 在线文档,找到与 CMake-GUI 各选项对应的命令行写法。

八、安装常见问题速查

现象原因/解决方向
Cuda check failed (3 vs. 0): initialization error便携版 CUDA 与系统 CUDA 冲突或驱动过旧:升级驱动、卸载冲突 CUDA,或改源码编译(见第二章)
模型下载失败(防火墙/公司网络)按 models/getModels.sh 的清单手动下载到 models/ 对应子目录(见 3.2 节)
Anaconda 环境编译/运行异常Anaconda 自带 Protobuf 与 Caffe 冲突:卸载或 conda deactivate(见 3.2 节)
CUDA_TOOLKIT_ROOT_DIR not foundWindows 下按“重装 VS → 重启 → 重装 CUDA”顺序处理(见 3.2 节)
Ubuntu 18 编译报错系统自带 CMake-gui 3.10 过旧,需从源码编译 CMake >= 3.12(见 3.2 节)
Mac 上 opencv2/highgui/highgui.hpp 找不到应用 scripts/osx/mac_opencl_patch.txt 补丁(见 3.5 节)
切换 GPU_MODE 后大量诡异错误删除 build 目录后从头配置(见第七章 OpenCL 版本小节)
显存不足(out of memory)调低 --net_resolution 或关闭 cuDNN(见 1.2 节与第七章第 9 条)

其余问题请先查阅 doc/05_faq.md 与官方 issue 库,并遵循 3.1 节的提问规范。


附:安装相关文档索引

【免费下载链接】openpose OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation 【免费下载链接】openpose 项目地址: https://gitcode.com/gh_mirrors/op/openpose

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值