Skip to main content

HyperPose is a library for building human pose estimation systems that can efficiently operate in the wild.

Project description

.. raw:: html

.. raw:: html

.. raw:: html


.. raw:: html

Features • Documentation • Quick-Start with Docker • Performance • License

.. raw:: html

HyperPose is a library for building human pose estimation systems that can efficiently operate in the wild.

Features

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

  • Flexible training platform: HyperPose provides flexible Python APIs to provide a customise pipeline for developing various pose estimation models. HyperPose users can:
  • make use of uniform pipelines for train,evaluation,visualization,pre-processing and post-processing across various models (e.g., OpenPose,Pifpaf,PoseProposal Network)
  • customise model and dataset for their own use(e.g. user-defined model,user-defined dataset,mitiple dataset combination)
  • parallel training using multiple GPUs(using Kungfu adaptive distribute training library) 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.

Documentation

You can install HyperPose(Python Training Library, C++ inference Library) and learn its APIs through HyperPose Documentation <https://hyperpose.readthedocs.io/en/latest/>__.

Quick-Start with Docker

The official docker image is on DockerHub <https://hub.docker.com/r/tensorlayer/hyperpose>__.

Make sure you have docker <https://docs.docker.com/get-docker/>__ with nvidia-docker <https://github.com/NVIDIA/nvidia-docker>__ functionality installed.

Also note that your nvidia driver should be
`compatible <https://docs.nvidia.com/deploy/cuda-compatibility/index.html#support-title>`__
with CUDA10.2.

.. code:: bash

# [Example 1]: Doing inference on given video, copy the output.avi to the local path. 
docker run --name quick-start --gpus all tensorlayer/hyperpose --runtime=stream
docker cp quick-start:/hyperpose/build/output.avi .
docker rm quick-start


# [Example 2](X11 server required to see the imshow window): Real-time inference.
# You may need to install X11 server locally:
# sudo apt install xorg openbox xauth
xhost +; docker run --rm --gpus all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix tensorlayer/hyperpose --imshow


# [Example 3]: Camera + imshow window
xhost +; docker run --name pose-camera --rm --gpus all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --device=/dev/video0:/dev/video0 tensorlayer/hyperpose --source=camera --imshow
# To quit this image, please type `docker kill pose-camera` in another terminal.


# [Dive into the image]
xhost +; docker run --rm --gpus all -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix --device=/dev/video0:/dev/video0 --entrypoint /bin/bash tensorlayer/hyperpose
# For users that cannot access a camera or X11 server. You may also use:
# docker run --rm --gpus all -it --entrypoint /bin/bash tensorlayer/hyperpose

For more details, please check
`here <https://hyperpose.readthedocs.io/en/latest/markdown/quick_start/prediction.html#table-of-flags-for-hyperpose-cli>`__.

Performance

We compare the prediction performance of HyperPose with OpenPose 1.6 <https://github.com/CMU-Perceptual-Computing-Lab/openpose>__ and TF-Pose <https://github.com/ildoonet/tf-pose-estimation>__. We implement the OpenPose algorithms with different configurations in HyperPose. The test-bed has Ubuntu18.04, 1070Ti GPU, Intel i7 CPU (12 logic cores).

+---------------------------+------------+--------------+-------------------+---------------------+ | HyperPose Configuration | DNN Size | Input Size | HyperPose | 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 | +---------------------------+------------+--------------+-------------------+---------------------+

Accuracy

We evaluate accuracy of pose estimation models developed by hyperpose (mainly over Mscoco2017 dataset). the development environment is Ubuntu16.04, with 4 V100-DGXs and 24 Intel Xeon CPU. The training procedure takes 1~2 weeks using 1 V100-DGX for each model. (If you want to train from strach, loading the pretrained backbone weight is recommended.)

+--------------------------------------------+------------+--------------+----------------------------------+--------------------------------------+-------------------------------------+ | HyperPose Configuration | DNN Size | Input Size | Evaluate Dataset | Accuracy-hyperpose (Iou=0.50:0.95) | Accuracy-original (Iou=0.50:0.95) | +============================================+============+==============+==================================+======================================+=====================================+ | Openpose (vgg19) | 199 MB | 432 x 368 | Mscoco2014(random 1160 images) | 57.0 map | 58.4 map | +--------------------------------------------+------------+--------------+----------------------------------+--------------------------------------+-------------------------------------+ | LightweightOpenpose (dailated mobilenet) | 17.7 MB | 432 x 368 | Mscoco2017(all 5000 images) | 46.1 map | 42.8 map | +--------------------------------------------+------------+--------------+----------------------------------+--------------------------------------+-------------------------------------+ | LightweightOpenpose (mobilenet-thin) | 17.4 MB | 432 x 368 | Mscoco2017(all 5000 images) | 44.2 map | 28.06 map (Mscoco2014) | +--------------------------------------------+------------+--------------+----------------------------------+--------------------------------------+-------------------------------------+ | LightweightOpenpose (tinyvgg) | 23.6 MB | 432 x 368 | Mscoco2017(all 5000 images) | 47.3 map | - | +--------------------------------------------+------------+--------------+----------------------------------+--------------------------------------+-------------------------------------+ | LightweightOpenpose (resnet50) | 42.7 MB | 432 x 368 | Mscoco2017(all 5000 images) | 48.2 map | - | +--------------------------------------------+------------+--------------+----------------------------------+--------------------------------------+-------------------------------------+ | PoseProposal (resnet18) | 45.2 MB | 384 x 384 | MPII(all 2729 images) | 54.9 map (Pckh) | 72.8 map (Pckh) | +--------------------------------------------+------------+--------------+----------------------------------+--------------------------------------+-------------------------------------+

.. raw:: html

.. raw:: html

新宝岛 with HyperPose(Lightweight OpenPose model)

.. raw:: html

License

HyperPose is open-sourced under the Apache 2.0 license <https://github.com/tensorlayer/tensorlayer/blob/master/LICENSE.rst>__.

.. raw:: html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

hyperpose-2.1.1-py3-none-any.whl (126.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page