Spaces:
Runtime error
Runtime error
| # Test Server Evaluation on Cityscapes dataset | |
| This page walks through the steps required to convert DeepLab2 predictions for | |
| test server evaluation on [Cityscapes](https://www.cityscapes-dataset.com/). | |
| A high-level overview of the whole process: | |
| 1. Save raw panoptic prediction in the two-channel format. | |
| 2. Create images json file. | |
| 3. Convert predictions in the two-channel format to the panoptic COCO format. | |
| 4. Run local validation set evaluation or prepare test set evaluation. | |
| We also define some environmental variables for simplicity and convenience: | |
| `BASE_MODEL_DIRECTORY`: variables set in textproto file, which defines where all | |
| checkpoints and results are saved. | |
| `DATA_ROOT`: where the original Cityscapes dataset is located. | |
| `PATH_TO_SAVE`: where the converted results should be saved. | |
| `IMAGES_SPLIT`: *val* or *test* depending on the target split. | |
| ## Save Raw Panoptic Prediction | |
| Save the raw panoptic predictions in the | |
| [two-channel panoptic format](https://arxiv.org/pdf/1801.00868.pdf) by ensuring | |
| the following fields are set properly in the textproto config file. | |
| ``` | |
| eval_dataset_options.decode_groundtruth_label = false | |
| evaluator_options.save_predictions = true | |
| evaluator_options.save_raw_predictions = true | |
| evaluator_options.convert_raw_to_eval_ids = true | |
| ``` | |
| Then run the model in evaluation modes (with `--mode=eval`), the results will be | |
| saved at | |
| *semantic segmentation*: ${BASE_MODEL_DIRECTORY}/vis/raw_semantic/\*.png | |
| *panoptic segmentation*: ${BASE_MODEL_DIRECTORY}/vis/raw_panoptic/\*.png | |
| ## Create Images JSON | |
| Create images json file by running the following commands. | |
| ```bash | |
| python deeplab2/utils/create_images_json_for_cityscapes.py \ | |
| --image_dir=${DATA_ROOT}/leftImg8bit/${IMAGES_SPLIT} \ | |
| --output_json_path=${PATH_TO_SAVE}/${IMAGES_SPLIT}_images.json \ | |
| --only_basename \ | |
| --include_image_type_suffix=false | |
| ``` | |
| ## Convert the Prediction Format | |
| Convert prediction results saved in the | |
| [two-channel panoptic format](https://arxiv.org/pdf/1801.00868.pdf) to the | |
| panoptic COCO format. | |
| ```bash | |
| python panopticapi/converters/2channels2panoptic_coco_format.py \ | |
| --source_folder=${BASE_MODEL_DIRECTORY}/vis/raw_panoptic \ | |
| --images_json_file=${PATH_TO_SAVE}/${IMAGES_SPLIT}_images.json\ | |
| --categories_json_file=deeplab2/utils/panoptic_cityscapes_categories.json \ | |
| --segmentations_folder=${PATH_TO_SAVE}/panoptic_cocoformat \ | |
| --predictions_json_file=${PATH_TO_SAVE}/panoptic_cocoformat.json | |
| ``` | |
| ## Run Local Evaluation Scripts (for *validation* set) | |
| Run the [official scripts](https://github.com/mcordts/cityscapesScripts) to | |
| evaluate validation set results. | |
| For *semantic segmentation*: | |
| ```bash | |
| CITYSCAPES_RESULTS=${BASE_MODEL_DIRECTORY}/vis/raw_semantic/ \ | |
| CITYSCAPES_DATASET=${DATA_ROOT} \ | |
| CITYSCAPES_EXPORT_DIR=${PATH_TO_SAVE} \ | |
| python cityscapesscripts/evaluation/evalPixelLevelSemanticLabeling.py | |
| ``` | |
| For *panoptic segmentation*: | |
| ```bash | |
| python cityscapesscripts/evaluation/evalPanopticSemanticLabeling.py \ | |
| --prediction-json-file=${PATH_TO_SAVE}/panoptic_cocoformat.json \ | |
| --prediction-folder=${PATH_TO_SAVE}/panoptic_cocoformat \ | |
| --gt-json-file=${DATA_ROOT}/gtFine/cityscapes_panoptic_val.json \ | |
| --gt-folder=${DATA_ROOT}/gtFine/cityscapes_panoptic_val | |
| ``` | |
| Please note that our prediction fortmat does not support instance segmentation | |
| prediction format yet. | |
| ## Prepare Submission Files (for *test* set) | |
| Run the following command to prepare a submission file for test server | |
| evaluation. | |
| ```bash | |
| zip -r cityscapes_test_submission_semantic.zip ${BASE_MODEL_DIRECTORY}/vis/raw_semantic | |
| zip -r cityscapes_test_submission_panoptic.zip ${PATH_TO_SAVE}/panoptic_cocoformat ${PATH_TO_SAVE}/panoptic_cocoformat.json | |
| ``` | |