minar09 / PGN_tf

Part Grouping Network (PGN) implementation in TensorFlow, for custom parsing dataset
https://github.com/Engineering-Course/CIHP_PGN
MIT License
11 stars 6 forks source link
cihp custom-dataset human-parsing human-segmentation inference parsing pgn segmentation tensorflow tensorflow-gpu testing tf

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 _Instanceids 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