All Projects → stefanopini → simple-HigherHRNet

stefanopini / simple-HigherHRNet

Licence: GPL-3.0, MIT licenses found Licenses found GPL-3.0 LICENSE MIT LICENSE.MIT
Multi-person Human Pose Estimation with HigherHRNet in Pytorch

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to simple-HigherHRNet

Deep High Resolution Net.pytorch
The project is an official implementation of our CVPR2019 paper "Deep High-Resolution Representation Learning for Human Pose Estimation"
Stars: ✭ 3,521 (+2786.07%)
Mutual labels:  human-pose-estimation, mscoco-keypoint
Openpose
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation
Stars: ✭ 22,892 (+18663.93%)
Mutual labels:  human-pose-estimation, keypoint-detection
Human Pose Estimation.pytorch
The project is an official implement of our ECCV2018 paper "Simple Baselines for Human Pose Estimation and Tracking(https://arxiv.org/abs/1804.06208)"
Stars: ✭ 2,485 (+1936.89%)
Mutual labels:  human-pose-estimation, mscoco-keypoint
Cu Net
Code for "Quantized Densely Connected U-Nets for Efficient Landmark Localization" (ECCV 2018) and "CU-Net: Coupled U-Nets" (BMVC 2018 oral)
Stars: ✭ 218 (+78.69%)
Mutual labels:  human-pose-estimation
H36m Fetch
Human 3.6M 3D human pose dataset fetcher
Stars: ✭ 220 (+80.33%)
Mutual labels:  human-pose-estimation
pushup-counter-app
Count pushups from video/webcam. Tech stack: Keypoint detection, BlazePose, action recognition.
Stars: ✭ 48 (-60.66%)
Mutual labels:  keypoint-detection
metro-pose3d
Metric-Scale Truncation-Robust Heatmaps for 3D Human Pose Estimation
Stars: ✭ 51 (-58.2%)
Mutual labels:  human-pose-estimation
Pytorch realtime multi Person pose estimation
Pytorch version of Realtime Multi-Person Pose Estimation project
Stars: ✭ 205 (+68.03%)
Mutual labels:  human-pose-estimation
MultiPerson-pose-estimation
This is the proposal network for MultiPerson Pose Estimation.
Stars: ✭ 15 (-87.7%)
Mutual labels:  human-pose-estimation
GaitGraph
Official repository for "GaitGraph: Graph Convolutional Network for Skeleton-Based Gait Recognition" (ICIP'21)
Stars: ✭ 68 (-44.26%)
Mutual labels:  hrnet
Lite-HRNet
This is an official pytorch implementation of Lite-HRNet: A Lightweight High-Resolution Network.
Stars: ✭ 677 (+454.92%)
Mutual labels:  human-pose-estimation
Monoloco
[ICCV 2019] Official implementation of "MonoLoco: Monocular 3D Pedestrian Localization and Uncertainty Estimation" in PyTorch + Social Distancing
Stars: ✭ 242 (+98.36%)
Mutual labels:  human-pose-estimation
OpenPoseDotNet
OpenPose wrapper written in C++ and C# for Windows
Stars: ✭ 55 (-54.92%)
Mutual labels:  human-pose-estimation
Pyranet
Code for "Learning Feature Pyramids for Human Pose Estimation" (ICCV 2017)
Stars: ✭ 222 (+81.97%)
Mutual labels:  human-pose-estimation
Keypoint Communities
[ICCV '21] In this repository you find the code to our paper "Keypoint Communities".
Stars: ✭ 255 (+109.02%)
Mutual labels:  human-pose-estimation
Binary Human Pose Estimation
This code implements a demo of the Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment with Limited Resources paper by Adrian Bulat and Georgios Tzimiropoulos.
Stars: ✭ 210 (+72.13%)
Mutual labels:  human-pose-estimation
kapao
KAPAO is an efficient single-stage human pose estimation model that detects keypoints and poses as objects and fuses the detections to predict human poses.
Stars: ✭ 604 (+395.08%)
Mutual labels:  human-pose-estimation
generative pose
Code for our ICCV 19 paper : Monocular 3D Human Pose Estimation by Generation and Ordinal Ranking
Stars: ✭ 63 (-48.36%)
Mutual labels:  human-pose-estimation
BlazePoseBarracuda
BlazePoseBarracuda is a human 2D/3D pose estimation neural network that runs the Mediapipe Pose (BlazePose) pipeline on the Unity Barracuda with GPU.
Stars: ✭ 131 (+7.38%)
Mutual labels:  human-pose-estimation
posture recognition
Posture recognition based on common camera
Stars: ✭ 91 (-25.41%)
Mutual labels:  human-pose-estimation

Multi-person Human Pose Estimation with HigherHRNet in PyTorch

This is an unofficial implementation of the paper HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation.
The code is a simplified version of the official code with the ease-of-use in mind.

The code is fully compatible with the official pre-trained weights. It supports both Windows and Linux.

This repository currently provides:

  • A slightly simpler implementation of HigherHRNet in PyTorch (>=1.0) - compatible with official weights (pose_higher_hrnet_*).
  • A simple class (SimpleHigherHRNet) that loads the HigherHRNet network for the bottom-up human pose estimation, loads the pre-trained weights, and make human predictions on a single image or a batch of images.
  • Support for multi-GPU inference.
  • Multi-person support by design (HigherHRNet is a bottom-up approach).
  • A reference code that runs a live demo reading frames from a webcam or a video file.

This repository is built along the lines of the repository simple-HRNet.
Unfortunately, compared to HRNet, results and performance of HigherHRNet are somewhat disappointing: the network and the required post-processing are slower and the predictions does not look more precise. Moreover, multiple skeletons are often predicted for the same person, requiring additional steps to filter out the redundant poses.
On the other hand, being a bottom-up approach, HigherHRNet does not rely on any person detection algorithm like Yolo-v3 and can be used for person detection too.

Examples

Class usage

import cv2
from SimpleHigherHRNet import SimpleHigherHRNet

model = SimpleHigherHRNet(32, 17, "./weights/pose_higher_hrnet_w32_512.pth")
image = cv2.imread("image.png", cv2.IMREAD_COLOR)

joints = model.predict(image)

The most useful parameters of the __init__ function are:

cnumber of channels (HRNet: 32, 48)
nof_jointsnumber of joints (COCO: 17, CrowdPose: 14)
checkpoint_pathpath of the (official) weights to be loaded
resolutionimage resolution (min side), it depends on the loaded weights
return_heatmapsthe `predict` method returns also the heatmaps
return_bounding_boxesthe `predict` method returns also the bounding boxes
filter_redundant_posesredundant poses (poses being almost identical) are filtered out
max_nof_peoplemaximum number of people in the scene
max_batch_sizemaximum batch size used in hrnet inference
devicedevice (cpu or cuda)

Running the live demo

From a connected camera:

python scripts/live-demo.py --camera_id 0

From a saved video:

python scripts/live-demo.py --filename video.mp4

For help:

python scripts/live-demo.py --help

Extracting keypoints:

From a saved video:

python scripts/extract-keypoints.py --format csv --filename video.mp4

For help:

python scripts/extract-keypoints.py --help

Installation instructions

ToDos

  • Add keypoint extraction script (thanks to @wuyenlin)
  • Optimize the post-processing steps
  • Add COCO dataset and evaluation
  • Add Train/Test scripts
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].