Skip to content
/ PGN_tf Public

Part Grouping Network (PGN) implementation in TensorFlow, for custom parsing dataset

License

Notifications You must be signed in to change notification settings

minar09/PGN_tf

Repository files navigation

Disclaimer

This is a slightly modified version of original CIHP-PGN github repository, for testing with custom parsing datasets with visualization. Please refer to the original repository for details.

Part Grouping Network (PGN)

Ke Gong, Xiaodan Liang, Yicheng Li, Yimin Chen, Ming Yang and Liang Lin, "Instance-level Human Parsing via Part Grouping Network", ECCV 2018 (Oral).

Introduction

PGN is a state-of-art deep learning methord for semantic part segmentation, instance-aware edge detection and instance-level human parsing built on top of Tensorflow.

This distribution provides a publicly available implementation for the key model ingredients reported in our latest paper which is accepted by ECCV 2018.

Crowd Instance-level Human Parsing (CIHP) Dataset

The PGN is trained and evaluated on our CIHP dataset for isntance-level human parsing. Please check it for more model details. The dataset is also available at google drive and baidu drive.

Pre-trained models

We have released our trained models of PGN on CIHP dataset at google drive.

Installation

Run pip install -r requirements.txt with python 3.6 and pip installed.

Inference

  1. Download the pre-trained model and store in $HOME/checkpoint.
  2. Prepare the images and store in $HOME/datasets.
  3. Run test_pgn.py.
  4. The results are saved in $HOME/output
  5. Evaluation scripts are in $HOME/evaluation. Copy the groundtruth files (in Instance_ids folder) into $HOME/evaluation/Instance_part_val before you run the script.

Training

  1. Download the pre-trained model and store in $HOME/checkpoint.
  2. Download CIHP dataset or prepare your own data and store in $HOME/datasets.
  3. For CIHP dataset, you need to generate the edge labels and left-right flipping labels (optional). We have provided a script for reference.
  4. Run train_pgn.py to train PGN.
  5. Use test_pgn.py to generate the results with the trained models.
  6. The instance tool is used for instance partition process from semantic part segmentation maps and instance-aware edge maps, which is written in MATLAB.

Related work

  • Self-supervised Structure-sensitive Learning SSL, CVPR2017
  • Joint Body Parsing & Pose Estimation Network JPPNet, T-PAMI2018
  • Graphonomy: Universal Human Parsing via Graph Transfer Learning Graphonomy, CVPR2019