HyperPose is a library for building human pose estimation systems that can efficiently operate in the wild.
Note: We are in the process of migrating our APIs from 1.0 to 2.0. The migration is expected to finish by July 2020.
HyperPose has two key features, which are not available in existing libraries:
You can install HyperPose and learn its APIs through Documentation.
We provide an example to show human pose estimation achieved by HyperPose. You need to install CUDA Toolkit 10+, TensorRT 7+, OpenCV 3.2+ and gFlags (cmake version), and enable C++ 17 support. Once the prerequisite are ready, run the following script:
sudo apt -y install subversion curl sh scripts/download-test-data.sh # Install data for examples. sh scripts/download-tinyvgg-model.sh # Install tiny-vgg model. mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=RELEASE && make -j$(nproc) # Build library && examples. ./example.operator_api_batched_images_paf # The ouput images will be in the build folder.
We compare the prediction performance of HyperPose with OpenPose 1.6 and TF-Pose. We implement the OpenPose algorithms with different configurations in HyperPose. The test-bed has Ubuntu18.04, 1070Ti GPU, Intel i7 CPU (12 logic cores). The test video is Crazy Updown Funk (YouTube). The HyperPose models (in the ONNX or Uff formats) are available here.
|HyperPose Configuration||DNN Size||DNN Input Shape||HyerPose||Baseline|
|OpenPose (VGG)||209.3MB||656 x 368||27.32 FPS||8 FPS (OpenPose)|
|OpenPose (TinyVGG)||34.7 MB||384 x 256||124.925 FPS||N/A|
|OpenPose (MobileNet)||17.9 MB||432 x 368||84.32 FPS||8.5 FPS (TF-Pose)|
|OpenPose (ResNet18)||45.0 MB||432 x 368||62.52 FPS||N/A|
As we can see, HyperPose is the only library that can achieve real-time human pose estimation.
HyperPose is open-sourced under the Apache 2.0 license.