Git Product home page Git Product logo

keras-openpose-reproduce's Introduction

keras-openpose-reproduce

This is a keras implementation of Realtime Multi-Person Pose Estimation.

Prerequisites

  1. Keras and Tensorflow (tested on Linux machine)
  2. Python3
  3. GPU with at least 11GB memory
  4. More than 250GB of disk space for training data

Please also install the following packages:

$ sudo apt-get install libboost-all-dev libhdf5-serial-dev libzmq3-dev libopencv-dev python-opencv python3-tk python-imaging
$ sudo pip3 install Cython scikit-image pandas zmq h5py opencv-python IPython configobj

Download COCO 2014 Dataset

Please download the COCO dataset and the official COCO evaluation API. Go to folder dataset and simply run the following commands:

$ cd dataset
$ ./step1_download_coco2014.sh
$ ./step2_setup_coco_api.sh

Prepare Training Data

Before model training, we convert the images to the specific data format for efficient training. We generate the heatmaps, part affinity maps, and then convert them to HDF5 files. Go to the folder training, and run the scripts. The process takes around 2 hours.

$ cd training
$ python3 generate_masks_coco2014.py
$ python3 generate_hdf5_coco2014.py

After this, you will generate train_dataset_2014.h5 and val_dataset_2014.h5. The files are about 182GB and 3.8GB, respectively.

Training

Simply go to folder training and run the training script:

$ cd training
$ python3 train_pose.py

Evaluation on COCO Keypoint Datasets

Please go to folder eval and run the evaluation script. eval_model=0: single-scale evaluation. eval_model=1: multi-scale evaluation (as described in Openpose's paper).

$ cd eval
$ python3 eval_coco2014_multi_modes.py --eval_method 0
$ python3 eval_coco2014_multi_modes.py --eval_method 1

Evaluation Summary

We empirically trained the model for 100 epochs (2 weeks) and achieved comparable performance to the results reported in the original paper. We also compared with the original implementation which is online avialable. Note that the validation list COCO2014-Val-1K is provided by the official Openpose.

Method Validation AP
Openpose paper COCO2014-Val-1k 58.4
Openpose model COCO2014-Val-1k 56.3
This repo COCO2014-Val-1k 58.2

We also evaluated the performance on the full COCO2014 validation set.

Method Validation AP
Openpose model COCO2014-Val 58.9
This repo COCO2014-Val 59.0

You may find our trained model at: Dropbox

You may also find our prediction results on COCO2014 validation (json format w/o images): Dropbox

Acknowledgment

This repo is based upon @anatolix's repo keras_Realtime_Multi-Person_Pose_Estimation, and @michalfaber's repo keras_Realtime_Multi-Person_Pose_Estimation

Citation

Please cite the paper in your publications if it helps your research:

@inproceedings{cao2017realtime,
  author = {Zhe Cao and Tomas Simon and Shih-En Wei and Yaser Sheikh},
  booktitle = {CVPR},
  title = {Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields},
  year = {2017}
  }

@inproceedings{wei2016cpm,
  author = {Shih-En Wei and Varun Ramakrishna and Takeo Kanade and Yaser Sheikh},
  booktitle = {CVPR},
  title = {Convolutional pose machines},
  year = {2016}
  }

keras-openpose-reproduce's People

Contributors

kevinlin311tw avatar

Watchers

James Cloos avatar  avatar paper2code - bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.