Score
0
Watch 20 Star 50 Fork 12

TensorLayer / hyperposePython

Create your Gitee Account
Explore and code with more than 5 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Without author's permission, this code is only for learning and cannot be used for other purposes.
商用级 实时 人体姿态估计 框架 spread retract

  • Python 70.9%
  • C++ 25.7%
  • CMake 1.8%
  • Shell 1.5%
  • Makefile 0.1%
Clone or download
Loading...
README.md

HyperPose

Documentation Status

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.

Features

HyperPose has two key features, which are not available in existing libraries:

  • Flexible training platform: HyperPose provides flexible Python APIs to build many useful pose estimation models (e.g., OpenPose and PoseProposalNetwork). HyperPose users can, for example, customize data augmentation, use parallel GPUs for training, and replace deep neural networks (e.g., changing from ResNet to MobileNet), thus building models specific to their real-world scenarios.
  • High-performance pose estimation: HyperPose achieves real-time pose estimation though a high-performance pose estimation engine. This engine implements numerous system optimizations: pipeline parallelism, model inference with TensorRT, CPU/GPU hybrid scheduling, and many others. This allows HyperPose to run 4x faster than OpenPose and 10x faster than TF-Pose.

Get Started

You can install HyperPose and learn its APIs through Documentation.

Example

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.

Performance

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.

License

HyperPose is open-sourced under the Apache 2.0 license.

Comments ( 6 )

Sign in for post a comment

Python
1
https://gitee.com/TensorLayer/hyperpose.git
git@gitee.com:TensorLayer/hyperpose.git
TensorLayer
hyperpose
hyperpose
master

Search