Skip to main content

OpenPose

OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation

- https://github.com/CMU-Perceptual-Computing-Lab/openpose

OpenPose is available on M3 under the openpose modules.

warning

Remember that modules in /usr/local/ may no longer work. Only modules in /apps/ are guaranteed to work.

[lexg@m3-login3 openpose]$ module avail openpose/
---------------- /apps/modulefiles ----------------
openpose/1.7.0

--------- /usr/local/Modules/modulefiles ----------
openpose/1.6.0 openpose/1.7.0

Usage - openpose/1.7.0

Model folder

You must use the --model-folder to tell OpenPose where its model weights are:

openpose.bin --model-folder $OPENPOSE_MODELS ...

Otherwise, you will see an error like:

Error:
Prototxt file not found: models/face/pose_deploy.prototxt.
Possible causes:
1. Not downloading the OpenPose trained models.
2. Not running OpenPose from the root directory (i.e., where the `model` folder is located, but do not move the `model` folder!). E.g.,
Right example for the Windows portable binary: `cd {OpenPose_root_path}; bin/openpose.exe`
Wrong example for the Windows portable binary: `cd {OpenPose_root_path}/bin; openpose.exe`
3. Using paths with spaces.

Only use GPUs older than Ampere

openpose/1.7.0 was built with CUDA 10:

[lexg@m3-login3 ~]$ apptainer exec /apps/openpose/1.7.0/openpose-1.7.0.sif cat /usr/local/cuda/version.txt
CUDA Version 10.2.89

From the CUDA compatibility matrix on Wikipedia, CUDA 10.x is NOT compatible with Ampere or later GPUs. This means you cannot run this on:

  • A40
  • A100
  • A16
  • H100

But you can still run on:

  • T4
  • P4
  • V100