All Projects → LiMeng95 → Multiposenet.pytorch

LiMeng95 / Multiposenet.pytorch

pytorch implementation of MultiPoseNet (ECCV 2018, Muhammed Kocabas et al.)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Multiposenet.pytorch

Pytorch Human Pose Estimation
Implementation of various human pose estimation models in pytorch on multiple datasets (MPII & COCO) along with pretrained models
Stars: ✭ 346 (+81.15%)
Mutual labels:  pose-estimation, human-pose-estimation
Openpifpaf
Official implementation of "OpenPifPaf: Composite Fields for Semantic Keypoint Detection and Spatio-Temporal Association" in PyTorch.
Stars: ✭ 662 (+246.6%)
Mutual labels:  pose-estimation, human-pose-estimation
Tf Pose Estimation
Deep Pose Estimation implemented using Tensorflow with Custom Architectures for fast inference.
Stars: ✭ 3,856 (+1918.85%)
Mutual labels:  pose-estimation, human-pose-estimation
openpifpaf
Official implementation of "OpenPifPaf: Composite Fields for Semantic Keypoint Detection and Spatio-Temporal Association" in PyTorch.
Stars: ✭ 900 (+371.2%)
Mutual labels:  human-pose-estimation, pose-estimation
Pytorch Pose
A PyTorch toolkit for 2D Human Pose Estimation.
Stars: ✭ 932 (+387.96%)
Mutual labels:  pose-estimation, human-pose-estimation
rmpe dataset server
Realtime Multi-Person Pose Estimation data server. Used as a training and validation data provider in training process.
Stars: ✭ 14 (-92.67%)
Mutual labels:  human-pose-estimation, pose-estimation
Alphapose
Real-Time and Accurate Full-Body Multi-Person Pose Estimation&Tracking System
Stars: ✭ 5,697 (+2882.72%)
Mutual labels:  pose-estimation, human-pose-estimation
FastPose
pytorch realtime multi person keypoint estimation
Stars: ✭ 36 (-81.15%)
Mutual labels:  human-pose-estimation, pose-estimation
Poseestimationformobile
💃 Real-time single person pose estimation for Android and iOS.
Stars: ✭ 783 (+309.95%)
Mutual labels:  pose-estimation, human-pose-estimation
Convolutional Pose Machines Tensorflow
Stars: ✭ 758 (+296.86%)
Mutual labels:  pose-estimation, human-pose-estimation
ICON
ICON: Implicit Clothed humans Obtained from Normals (CVPR 2022)
Stars: ✭ 641 (+235.6%)
Mutual labels:  human-pose-estimation, pose-estimation
Gccpm Look Into Person Cvpr19.pytorch
Fast and accurate single-person pose estimation, ranked 10th at CVPR'19 LIP challenge. Contains implementation of "Global Context for Convolutional Pose Machines" paper.
Stars: ✭ 137 (-28.27%)
Mutual labels:  pose-estimation, human-pose-estimation
Keypoint Communities
[ICCV '21] In this repository you find the code to our paper "Keypoint Communities".
Stars: ✭ 255 (+33.51%)
Mutual labels:  human-pose-estimation, pose-estimation
Pose Residual Network Pytorch
Code for the Pose Residual Network introduced in 'MultiPoseNet: Fast Multi-Person Pose Estimation using Pose Residual Network' paper https://arxiv.org/abs/1807.04067
Stars: ✭ 277 (+45.03%)
Mutual labels:  pose-estimation, 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 (+216.23%)
Mutual labels:  human-pose-estimation, pose-estimation
Openpose
OpenPose: Real-time multi-person keypoint detection library for body, face, hands, and foot estimation
Stars: ✭ 22,892 (+11885.34%)
Mutual labels:  pose-estimation, human-pose-estimation
Monoloco
[ICCV 2019] Official implementation of "MonoLoco: Monocular 3D Pedestrian Localization and Uncertainty Estimation" in PyTorch + Social Distancing
Stars: ✭ 242 (+26.7%)
Mutual labels:  pose-estimation, human-pose-estimation
posture recognition
Posture recognition based on common camera
Stars: ✭ 91 (-52.36%)
Mutual labels:  human-pose-estimation, pose-estimation
Keras realtime multi Person pose estimation
Keras version of Realtime Multi-Person Pose Estimation project
Stars: ✭ 728 (+281.15%)
Mutual labels:  pose-estimation, human-pose-estimation
Tensorflow realtime multi Person pose estimation
Multi-Person Pose Estimation project for Tensorflow 2.0 with a small and fast model based on MobilenetV3
Stars: ✭ 129 (-32.46%)
Mutual labels:  pose-estimation, human-pose-estimation

Introduction

This is a pytorch implementation of MultiPoseNet ( ECCV 2018, Muhammed Kocabas et al.)

baseline checkpoint result

License

Contents

  1. Update

  2. Requirements

  3. Training

  4. Validation

  5. Demo

  6. Result

  7. Acknowledgements

  8. Citation

Demo

Run inference on your own pictures.

  • Prepare checkpoint:

    • Download our baseline model (Google Drive, Tsinghua Cloud, backbone: resnet101) or use your own model.
    • Specify the checkpoints file path params.ckpt in file multipose_test.py.
    • Specify the pictures file path testdata_dir and results file path testresult_dir in file multipose_test.py.
  • Run:

python ./evaluate/multipose_test.py  # inference on your own pictures
python ./evaluate/multipose_coco_eval.py  # COCO evaluation

Result

  • mAP (baseline checkpoint, temporarily)
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets= 20 ] = 0.590
 Average Precision  (AP) @[ IoU=0.50      | area=   all | maxDets= 20 ] = 0.791
 Average Precision  (AP) @[ IoU=0.75      | area=   all | maxDets= 20 ] = 0.644
 Average Precision  (AP) @[ IoU=0.50:0.95 | area=medium | maxDets= 20 ] = 0.565
 Average Precision  (AP) @[ IoU=0.50:0.95 | area= large | maxDets= 20 ] = 0.636
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=   all | maxDets= 20 ] = 0.644
 Average Recall     (AR) @[ IoU=0.50      | area=   all | maxDets= 20 ] = 0.810
 Average Recall     (AR) @[ IoU=0.75      | area=   all | maxDets= 20 ] = 0.689
 Average Recall     (AR) @[ IoU=0.50:0.95 | area=medium | maxDets= 20 ] = 0.601
 Average Recall     (AR) @[ IoU=0.50:0.95 | area= large | maxDets= 20 ] = 0.709

Requirements

Prerequisites

# PYTORCH=/path/to/pytorch
# for pytorch v0.4.0
sed -i "1194s/torch\.backends\.cudnn\.enabled/False/g" ${PYTORCH}/torch/nn/functional.py
# for pytorch v0.4.1
sed -i "1254s/torch\.backends\.cudnn\.enabled/False/g" ${PYTORCH}/torch/nn/functional.py

# Note that instructions like # PYTORCH=/path/to/pytorch indicate that you should pick 
# a path where you'd like to have pytorch installed and then set an environment
# variable (PYTORCH in this case) accordingly.
  • If you are using Anaconda, we suggest you create a new conda environment :conda env create -f multipose_environment.yaml. Maybe you should change the channels: and prefix: setting in multipose_environment.yaml to fit your own Anaconda environment.

    • source activate Multipose
    • pip install pycocotools
  • You can also follow dependencies setting in multipose_environment.yaml to build your own Python environment.

    • Pytorch = 0.4.0, Python = 3.6
    • pycocotools=2.0.0, numpy=1.14.3, scikit-image=0.13.1, opencv=3.4.2
    • ......
  • Build the NMS extension

  cd ./lib
  bash build.sh
  cd ..

Data preparation

You can skip this step if you just want to run inference on your own pictures using our baseline checkpoint

  • For Training Keypoint Estimation Subnet, we followed ZheC/Realtime_Multi-Person_Pose_Estimation's first 4 Training Steps prepared our COCO2014 dataset (train2014, val2014 and mask2014).
  • We also use COCO2017 dataset to train Person Detection Subnet.

Make them look like this:

${COCO_ROOT}
   --annotations
      --instances_train2017.json
      --instances_val2017.json
      --person_keypoints_train2017.json
      --person_keypoints_val2017.json
   --images
      --train2014
      --val2014
      --train2017
      --val2017
   --mask2014
   --COCO.json

Training

  • Prepare
    • Change the hyper-parameter coco_root to your own COCO path.
    • You can change the parameter params.gpus to define which GPU device you want to use, such as params.gpus = [0,1,2,3].
    • The trained model will be saved in params.save_dir folder every epoch.
  • Run:
python ./training/multipose_keypoint_train.py  # train keypoint subnet
python ./training/multipose_detection_train.py  # train detection subnet
python ./training/multipose_prn_train.py  # train PRN subnet

Validation

  • Prepare checkpoint:

    • Download our baseline model (Google Drive, Tsinghua Cloud, backbone: resnet101) or use your own model.
    • Specify the checkpoints file path params.ckpt in file multipose_*_val.py.
  • Run:

python ./evaluate/multipose_keypoint_val.py  # validate keypoint subnet on first 2644 of val2014 marked by 'isValidation = 1', as our minval dataset.
python ./evaluate/multipose_detection_val.py  # validate detection subnet on val2017
python ./evaluate/multipose_prn_val.py  # validate PRN subnet on val2017

To Do

  • [x] Keypoint Estimation Subnet for 17 human keypoints annotated in COCO dataset
  • [x] Keypoint Estimation Subnet with intermediate supervision
  • [x] Combine Keypoint Estimation Subnet with Person Detection Subnet(RetinaNet)
  • [x] Combine Keypoint Estimation Subnet with Pose Residual Network
  • [ ] Keypoint Estimation Subnet with person segmentation mask

Update

  • 180925:

    • Add Person Detection Subnet (RetinaNet) in posenet.py.
    • Add NMS extension in ./lib.
  • 180930:

    • Add the training code multipose_detection_train.py for RetinaNet.
    • Add multipose_keypoint_*.py and multipose_detection_*.py for Keypoint Estimation Subnet and Person Detection Subnet respectively. Remove multipose_resnet_*.py.
  • 1801003:

    • Add the training code multipose_prn_train.py for PRN.
    • Add multipose_coco_eval.py for COCO evaluation.
  • 181115:

    • New dataloader for detection subnet, remove RetinaNet_data_pipeline.py
    • Add intermediate supervision in Keypoint Estimation Subnet
    • Enable batch_norm for Keypoint Estimation Subnet.
    • New prerequisites: Disable cudnn for batch_norm
    • New checkpoint (Google Drive, Tsinghua Cloud, backbone: resnet101)

Acknowledgements

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].