目录
1--前言
起初博主一直在 linux 环境下配置,但 caffe 和 protobuf 之间的不兼容导致很多坑(都是泪),后面打算采用 docker 进行配置,这里提供一个 win11 的成功安装过程;
本机配置:
Cuda 11.1
CudaNN 8.0.4
RTX 3060 GPU
Python 3.9
2--下载
① 下载 Openpose 源码
git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git
默认不会下载 caffe 和 pybind11,这里提供两个可用的版本,下载后放置在 3rdparty 文件夹内,当然也可以 git clone 下载其它版本:
② 执行 3rdparty/windows 的 5 个文件
③ 执行 models/getModels.sh 手动下载所有模型,避免编译过慢:
3--编译安装
这里博主选用 Visual Studio 14 2015 Win64进行编译,需自主下载配置或使用其它版本;
mkdir build
cd build
cmake -G"Visual Studio 14 2015 Win64" -DBUILD_PYTHON=ON ..
cmake --build .
① 可能出现的问题1:找不到相应的 python 版本和依赖库
解决方法:在 CMakeLists.txt 指定 python 的路径,可能需要修改 windows 的环境变量,确保 python 能够找到;这里博主选用了 conda 环境的 python3.9;
一般全程编译没报错,在 build/python/openpose/Debug 路径下会出现对应 python 版本的pyd 文件,这里博主为 pyopenpose.cp39-win_amd64.pyd;同时 /build/x64/Debug 文件夹会出现 openposed.dll 文件;
4--测试
测试代码(需修改相应的路径),也可以使用 openpose 提供的 01_body_from_image.py 进行测试;
import sys
import cv2
import os
from sys import platform
import argparse
# 修改你的 pyopenpose.cp39-win_amd64.pyd 路径
sys.path.append("C:/Users/Liujinfu/Desktop/openpose-master/build/python/openpose/Debug")
# 修改你的 openposed.dll 路径
os.environ['PATH'] = os.environ['PATH'] + ';'+ "C:/Users/Liujinfu/Desktop/openpose-master/build/x64/Debug;" \
+ "C:/Users/Liujinfu/Desktop/openpose-master/build/bin;"
import pyopenpose as op
if __name__ == "__main__":
params = dict()
params["model_folder"] = "C:/Users/Liujinfu/Desktop/openpose-master/models" # 修改你的 model 路径
# Starting OpenPose
opWrapper = op.WrapperPython()
opWrapper.configure(params)
opWrapper.start()
# Process Image
Image_path = "C:/Users/Liujinfu/Desktop/openpose-master/examples/media/COCO_val2014_000000000192.jpg"
datum = op.Datum()
imageToProcess = cv2.imread(Image_path)
datum.cvInputData = imageToProcess
opWrapper.emplaceAndPop(op.VectorDatum([datum]))
# Display Image
print("Body keypoints: \n" + str(datum.poseKeypoints))
cv2.imshow("Test Demo", datum.cvOutputData)
cv2.waitKey(0)