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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for hyperpose-2.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73aae04313005519e728a1b8394832b29a46f9ca2a12bdbe445634261472a5a2 |
|
MD5 | 5b2e016ef2930b83f5a62f262dbc4340 |
|
BLAKE2b-256 | 06012b16c7616b41a83cd5e95f1e43665a2b7d25d0dc94620979d580dfa25238 |