OpenPose 安装完全指南:从 Windows 便携版到 Ubuntu/Mac/Windows 源码编译
导读
本文是 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
嵌入式平台方面:
- Nvidia Jetson TX1(JetPack 3.1):安装说明见 doc/installation/jetson_tx/installation_jetson_tx1.md
- Nvidia Jetson TX2(JetPack 3.1 或 3.3):分别见 doc/installation/jetson_tx/installation_jetson_tx2_jetpack3.1.md 与 doc/installation/jetson_tx/installation_jetson_tx2_jetpack3.3.md
- CentOS 以及其他 Nvidia Jetson(如 TK1)嵌入式系统上也被使用过,但当前不做官方支持
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 便携包即可,全程无需构建。
- 准备 Nvidia 驱动(可选但推荐):为追求最高速度,建议在带 Nvidia GPU 的机器上使用。若如此,请先将 Nvidia 驱动升级到最新版本(可通过 Nvidia "GeForce Experience" 软件或官网下载页操作)。
- 下载最新版 OpenPose 便携包:从官方 Releases 页面获取最新 Windows 版本。
- 下载模型:解压 zip 后,按包内
Instructions.txt的说明下载 OpenPose 所需模型(约 500 MB)。 - 运行:按 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/)。 - BODY_25 模型 →
Ubuntu 前置条件(对应 doc/installation/1_prerequisites.md):
- 不要安装 Anaconda,或务必停用它。Anaconda 自带的 Protobuf 与 Caffe 不兼容:要么卸载 Anaconda 改用 apt-get 安装 protobuf,要么用
conda deactivate停用 Conda(若不在 base 环境则需执行两次)。 - 安装 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。
- Ubuntu 20:
- 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}/)。
- 推荐组合(经大量测试):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 密钥安装步骤可能必需:记录公钥输出路径并手动执行
- OpenCL / AMD GPU 版本前置(仅当无 Nvidia GPU 且想在 AMD 显卡上运行时):Ubuntu 20/18 未测试且不官方支持,风险自负;Ubuntu 14/16 需安装第三方 ROCM 驱动与
libviennacl-dev。 - 安装 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。
- OpenCV:
- 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 前置条件:
- 未装
brew时,运行bash scripts/osx/install_brew.sh。 - 安装 CMake GUI:
brew install --cask cmake。 - 安装 Caffe、OpenCV 及其依赖:运行
bash scripts/osx/install_deps.sh。
Windows 前置条件(仅源码编译时需要;直接用便携包可跳过):
- 安装 CMake GUI:下载
cmake-X.X.X-win64-x64.msi安装包。 - 安装 Visual Studio 2019 / 2017 Enterprise 或 VS 2015 Enterprise Update 3(Community 版官方不正式支持但应可运行):务必勾选全部 C++ 相关组件。
- 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}。
- AMD GPU 版本:安装 AMD 官方 Windows 驱动;
libviennacl已随 OpenPose Windows 包附带,无需额外操作。 - 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/。
- Caffe(不确定就选默认 CUDA 版):CUDA Caffe(默认)、CPU Caffe、OpenCL Caffe,分别解压为
- Python 前置(可选):安装 Windows 版 Python 3.X 后执行
sudo pip install numpy opencv-python。
3.3 克隆 OpenPose
第一步是克隆 OpenPose 仓库:
- Windows:可用 GitHub Desktop,或在 Powershell 中克隆。
- 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)
-
进入 OpenPose 目录并打开 CMake-GUI:
cd {OpenPose_folder} mkdir build/ cd build/ cmake-gui .. -
源码目录选择 OpenPose 根目录,生成目录指定一个不存在或为空的子目录(如
build),Makefile(Ubuntu)或 Visual Studio 解决方案(Windows)将生成于此;若build不存在,CMake 会询问是否创建,选Yes。 -
点击
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。 -
(可选)启用 Python API:勾选
BUILD_PYTHON,再次点击Configure。从 CMakeLists.txt 源码看,BUILD_PYTHON默认 OFF(第 316 行option(BUILD_PYTHON "Build OpenPose python." OFF))。 -
设置
GPU_MODE标志并再次Configure:- Nvidia GPU 用户:通常无需修改,直接跳过本步。需要修改的情况:
- Nvidia GPU 显存 ≤ 2GB:参考 doc/06_maximizing_openpose_speed.md 的调优技巧,或把
GPU_MODE改回CPU_ONLY; - 无法安装 CUDA:也可把
GPU_MODE设为CPU_ONLY。
- Nvidia GPU 显存 ≤ 2GB:参考 doc/06_maximizing_openpose_speed.md 的调优技巧,或把
- 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 行)。 - Nvidia GPU 用户:通常无需修改,直接跳过本步。需要修改的情况:
-
若配置成功,底部输出框最后一行会出现
Configuring done;否则底部会出现红色报错文本。 -
点击
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。
- 重建 build 目录:
- 若编译时遇到 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(推荐)
- 在 CMake 中点击
Open Project打开 Visual Studio 解决方案(即build/OpenPose.sln),将配置从Debug切换为Release。 - 按 F7(或
Build菜单 →Build Solution)执行构建。 - Python 版本特别注意:不能只按 F5(Run),必须执行
Build Solution才会生成 Python 绑定。 - 编译完成后,若有摄像头,可按绿色三角图标(或 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与*.exedemo 所在目录(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
卸载非常简单:
- (Ubuntu 和 Mac)如果你执行过
sudo make install(官方不推荐此操作),则需在build/目录下运行sudo make uninstall。 - 直接删除整个 OpenPose 文件夹。
更新或重装:
- 先按上述步骤卸载。
- 再按本文第三部分“从源码编译并运行 OpenPose”的步骤重新执行。
七、附加设置(可选)
按需查阅 doc/installation/2_additional_settings.md,其中覆盖了 14 项高级配置,本节逐一概述其核心要点:
-
部署/导出 OpenPose 到其他项目:参见 doc/advanced/deployment.md。
-
最大速度:速度基准与提速/降内存技巧见 doc/06_maximizing_openpose_speed.md。
-
更快 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宏。 -
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 版略低,但实际差异几乎不可察觉。 -
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。 -
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 使用。
- 安装 FLIR 相机软件 Spinnaker SDK(专有软件,官方不提供直接下载链接;若使用其他品牌相机可跳过此步):Ubuntu 装到默认路径后 OpenPose 会自动发现;Windows 需手动将 Spinnaker 的
-
标定模块(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 使用。 - 推荐:
-
Unity 兼容版本:见官方 Unity 插件仓库。注意:Unity 版在非 Unity 环境下遇到错误会崩溃,因此不要在 Unity 之外使用。
-
不编译 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)。 -
自定义 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。 -
自定义 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 属性)。 -
自定义 OpenCV:若自编译 OpenCV 而 OpenPose 无法自动发现,可设
OPENCV_DIR指向 OpenCV 构建目录(Ubuntu/Mac)。CMakeLists.txt 第 431-441 行还支持OpenCV_CONFIG_FILE、OpenCV_INCLUDE_DIRS+OpenCV_LIBS(或OpenCV_LIBS_DIR)等三种显式指定方式。 -
Doxygen 文档自动生成(仅 Ubuntu):设置
BUILD_DOCS标志,文档生成于doc/doxygen/html/index.html,双击即可在浏览器查看。 -
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 各选项对应的命令行写法。
- 场景 1 - 未装 Caffe 且 OpenCV 由 apt-get 安装:直接
八、安装常见问题速查
| 现象 | 原因/解决方向 |
|---|---|
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 found | Windows 下按“重装 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 节的提问规范。
附:安装相关文档索引
- 前置条件明细:doc/installation/1_prerequisites.md
- 附加设置(可选):doc/installation/2_additional_settings.md
- Jetson TX1: doc/installation/jetson_tx/installation_jetson_tx1.md
- Jetson TX2(JetPack 3.1): doc/installation/jetson_tx/installation_jetson_tx2_jetpack3.1.md
- Jetson TX2(JetPack 3.3): doc/installation/jetson_tx/installation_jetson_tx2_jetpack3.3.md
- 运行 Demo 与命令行参数:doc/01_demo.md
- 输出格式说明:doc/02_output.md
- 常见问题:doc/05_faq.md
- 提速与内存优化:doc/06_maximizing_openpose_speed.md
- 部署到其他项目:doc/advanced/deployment.md
- 3D 重建模块:doc/advanced/3d_reconstruction_module.md
- 标定模块:doc/advanced/calibration_module.md
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



