All Projects β†’ anibali β†’ Margipose

anibali / Margipose

Licence: apache-2.0

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Margipose

Ai Basketball Analysis
πŸ€πŸ€–πŸ€ AI web app and API to analyze basketball shots and shooting pose.
Stars: ✭ 582 (+809.38%)
Mutual labels:  pose-estimation
Poseestimationformobile
πŸ’ƒ Real-time single person pose estimation for Android and iOS.
Stars: ✭ 783 (+1123.44%)
Mutual labels:  pose-estimation
Pose Tensorflow
Human Pose estimation with TensorFlow framework
Stars: ✭ 1,042 (+1528.13%)
Mutual labels:  pose-estimation
Openpifpaf
Official implementation of "OpenPifPaf: Composite Fields for Semantic Keypoint Detection and Spatio-Temporal Association" in PyTorch.
Stars: ✭ 662 (+934.38%)
Mutual labels:  pose-estimation
Keras realtime multi Person pose estimation
Keras version of Realtime Multi-Person Pose Estimation project
Stars: ✭ 728 (+1037.5%)
Mutual labels:  pose-estimation
Hyperpose
HyperPose: A Collection of Real-time Human Pose Estimation
Stars: ✭ 961 (+1401.56%)
Mutual labels:  pose-estimation
Gluon Cv
Gluon CV Toolkit
Stars: ✭ 5,001 (+7714.06%)
Mutual labels:  pose-estimation
Wisppn
test example of paper, Can WiFi Estimate Person Pose?
Stars: ✭ 55 (-14.06%)
Mutual labels:  pose-estimation
Convolutional Pose Machines Tensorflow
Stars: ✭ 758 (+1084.38%)
Mutual labels:  pose-estimation
Oat
Real-time position tracker for behavioral research
Stars: ✭ 45 (-29.69%)
Mutual labels:  pose-estimation
Mmpose
OpenMMLab Pose Estimation Toolbox and Benchmark.
Stars: ✭ 674 (+953.13%)
Mutual labels:  pose-estimation
Pytorch Openpose
pytorch implementation of openpose including Hand and Body Pose Estimation.
Stars: ✭ 716 (+1018.75%)
Mutual labels:  pose-estimation
Hierarchical Localization
Visual localization made easy with hloc
Stars: ✭ 997 (+1457.81%)
Mutual labels:  pose-estimation
Lighttrack
LightTrack: A Generic Framework for Online Top-Down Human Pose Tracking
Stars: ✭ 590 (+821.88%)
Mutual labels:  pose-estimation
Carposedemo
Real-time Mobile Car Pose Estimation with CoreML
Stars: ✭ 49 (-23.44%)
Mutual labels:  pose-estimation
Alphapose
Real-Time and Accurate Full-Body Multi-Person Pose Estimation&Tracking System
Stars: ✭ 5,697 (+8801.56%)
Mutual labels:  pose-estimation
Pytorch Pose
A PyTorch toolkit for 2D Human Pose Estimation.
Stars: ✭ 932 (+1356.25%)
Mutual labels:  pose-estimation
Supergluepretrainednetwork
SuperGlue: Learning Feature Matching with Graph Neural Networks (CVPR 2020, Oral)
Stars: ✭ 1,122 (+1653.13%)
Mutual labels:  pose-estimation
Chinesetrafficpolicepose
Detects Chinese traffic police commanding poses ζ£€ζ΅‹δΈ­ε›½δΊ€θ­¦ζŒ‡ζŒ₯ζ‰‹εŠΏ
Stars: ✭ 49 (-23.44%)
Mutual labels:  pose-estimation
Poseosc
πŸ“ΉπŸ€Έβ€β™‚οΈπŸ€Ύβ€β™€οΈπŸ€Ί PoseNet + OSC: send realtime human pose estimation data to your apps
Stars: ✭ 40 (-37.5%)
Mutual labels:  pose-estimation

MargiPose

Accompanying PyTorch code for the paper "3D Human Pose Estimation with 2D Marginal Heatmaps".

Setup

Requirements:

  • Linux
  • Docker
  • Docker Compose
  • NVIDIA Container Toolkit (for GPU support)

Configure the project

  1. Copy docker-compose.yml.example to docker-compose.yml.

  2. At this stage docker-compose.yml will contain example volume mounts for the datasets. You will need to edit the entries for datasets that you have prepared, and remove the others.

    For example, if you wish to use the MPI-INF-3DHP dataset, you must replace /host/path/to/mpi3d with the actual path to the prepared MPI-INF-3DHP data on your computer.

Prepare datasets

You only need to prepare the datasets that you are interested in using.

Human3.6M

  1. Use the scripts available at https://github.com/anibali/h36m-fetch to download and preprocess Human3.6M data.
  2. Edit the volume mounts in docker-compose.yml so that the absolute location of the processed/ directory created by h36m-fetch is bound to /datasets/h36m inside the Docker container.

MPI-INF-3DHP

  1. Download the original MPI-INF-3DHP dataset.
  2. Use the src/margipose/bin/preprocess_mpi3d.py script to preprocess the data.
  3. Edit the volume mounts in docker-compose.yml so that the absolute location of the processed MPI-INF-3DHP data is bound to /datasets/mpi3d inside the Docker container.

MPII

  1. Edit the volume mounts in docker-compose.yml so that the desired installation directory for the MPII Human Pose dataset is bound to /datasets/mpii inside the Docker container.
  2. Run the following to download and install the MPII Human Pose dataset:
    $ ./run.sh bash
    $ chmod 777 -R /datasets/mpii
    $ python
    >>> from torchdata import mpii
    >>> mpii.install_mpii_dataset('/datasets/mpii')
    

[Optional] Configure and run Showoff

Showoff is a display server which allows you to visualise model training progression. The following steps guide you through starting a Showoff server and configuring MargiPose to use it.

  1. Change POSTGRES_PASSWORD in showoff/postgres.env. Using a randomly generated password is recommended.
  2. Change COOKIE_SECRET in showoff/showoff.env. Once again, using a randomly generated value is recommended.
  3. From a terminal in the showoff directory, run docker-compose up -d showoff. This will start the Showoff server.
  4. Open localhost:13000 in your web browser.
  5. Log in using the username "admin" and the password "password".
  6. Change the admin password.
  7. Open up showoff/showoff-client.env in a text editor.
  8. From the Showoff account page, add a new API key. Copy the API key ID and secret key into showoff-client.env (you will need to uncomment the appropriate lines).

Running scripts

A run.sh launcher script is provided, which will run any command within a Docker container containing all of MargiPose's dependencies. Here are a few examples.

Train a MargiPose model on the MPI-INF-3DHP dataset:

./run.sh margipose train with margipose_model mpi3d

Train without pixel-wise loss term:

./run.sh margipose train with margipose_model mpi3d "model_desc={'settings': {'pixelwise_loss': None}}"

Evaluate a model's test set performance using the second GPU:

./run.sh margipose --device=cuda:1 eval --model margipose-mpi3d.pth --dataset mpi3d-test

Explore qualitative results with a GUI:

./run.sh margipose gui --model margipose-mpi3d.pth --dataset mpi3d-test

Run the project unit tests:

./run.sh pytest

Pretrained models

Pretrained models are available for download:

You can try out the pretrained model like so:

./run.sh margipose infer --model margipose-mpi3d.pth --image resources/man_running.jpg

License and citation

(C) 2018 Aiden Nibali

This project is open source under the terms of the Apache License 2.0.

If you use any part of this work in a research project, please cite the following paper:

@article{nibali2018margipose,
  title={3D Human Pose Estimation with 2D Marginal Heatmaps},
  author={Nibali, Aiden and He, Zhen and Morgan, Stuart and Prendergast, Luke},
  journal={arXiv preprint arXiv:1806.01484},
  year={2018}
}
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].