Skip to content

ternaus/people_segmentation

Repository files navigation

Binary segmentation of people

Installation

pip install -U people_segmentation

Example inference

Jupyter notebook with the example: Open In Colab

Data

Train set:

  • Mapillary Vistas Commercial 1.2 (train)
  • COCO (train)
  • Pascal VOC (train)
  • Human Matting

Validation set:

  • Mapillary Vistas Commercial 1.2 (val)
  • COCO (val)
  • Pascal VOC (val)
  • Supervisely

To convert datasets to the format:

training
    coco
    matting_humans
    pascal_voc
    vistas

validation
    coco
    pascal_voc
    supervisely
    vistas

use this set of scipts.

Training

Define the config.

Example at people_segmentation/configs

You can enable / disable datasets that are used for training and validation.

Define the environmental variable TRAIN_PATH that points to the folder with train dataset.

Example:

export TRAIN_PATH=<path to the tranining folder>

Define the environmental variable VAL_PATH that points to the folder with validation dataset.

Example:

export VAL_PATH=<path to the validation folder>

Training

python -m people_segmentation.train -c <path to config>

You can check the loss and validation curves for the configs from people_segmentation/configs at W&B dashboard

Inference

python -m torch.distributed.launch --nproc_per_node=<num_gpu> people_segmentation/inference.py \
                                   -i <path to images> \
                                   -c <path to config> \
                                   -w <path to weights> \
                                   -o <output-path> \
                                   --fp16

Web App

https://peoplesegmentation.herokuapp.com/

Code for the web app: https://github.com/ternaus/people_segmentation_demo