This repository contains code and tools for reading, processing, and visualizing Cityscapes-Panoptic-Parts and PASCAL-Panoptic-Parts datasets. We created these datasets by extending two established datasets for image scene understanding, namely Cityscapes and PASCAL datasets.
Detailed description of the datasets and various statistics are presented in our technical report in arxiv. Please cite us if you find our work useful and you use it for your research:
@article{meletisetal2020panopticparts,
title = {Cityscapes-Panoptic-Parts and PASCAL-Panoptic-Parts datasets for Scene Understanding},
author = {Meletis Panagiotis and Xiaoxiao Wen and Chenyang Lu and Daan de Geus and Gijs Dubbelman},
type = {Technical report},
institution = {Eindhoven University of Technology},
date = {16/04/2020},
url = {https://github.com/tue-mps/panoptic_parts},
eprint={2004.07944},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
![]() |
![]() |
---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
We provide a public, backwards compatible API, which allows easier bug fixes and functionality updates. We suggest that the users update their local clone of this repository frequently by pulling the master branch. The list can be found here: Public API.
All functions and arguments named with the preffix 'experimental_' or with an '_' do not belong to the stable API and may change.
We encode three levels of labels: semantic, instance, and parts in a single image-like file. The hierarchical panoptic encoding of the labels is explained here: Label format. Labels for both datasets follow this format.
We provide for each image a single (image-like) ground truth file encoding semantic-, instance-, and parts- levels annotations. The compactness of our encoding (see Label format) together with the decode_uids function (see decode_uids) enables easy use of the labels for various image understanding tasks including:
# Semantic Segmentation
semantic_ids, _, _ = decode_uids(labels)
# Instance Segmentation
semantic_ids, instance_ids, _ = decode_uids(labels)
# Panoptic Segmentation
_, _, _, semantic_instance_ids = decode_uids(labels, return_sids_iids=True)
# Parts Segmentation / Parts Parsing
_, _, _, semantic_parts_ids = decode_uids(labels, return_sids_pids=True)
# Instance-level Parts Parsing
semantic_ids, instance_ids, parts_ids = decode_uids(labels)
# Parts-level Panoptic Segmentation
_, _, _, semantic_instance_ids, semantic_parts_ids = decode_uids(labels, return_sids_iids=True, return_sids_pids=True)
Tested with the following configuration:
- Linux system
- Python >= 3.6
- Tensorflow >= 2.0
- Numpy
- Pillow
- SciPy
- Matplotlib (only for visualization scripts)
- panopticapi (only for PASCAL visualization script)
Please feel free to contact us for any suggestions or questions:
- Panagiotis Meletis: p[DOT]c[DOT]meletis[AT]tue.nl
- Vincent Wen: xiaoxiao[DOT]wen[AT]student.uva.nl