/DeepLabv3plus

Primary LanguageJupyter NotebookMIT LicenseMIT

DeepLabv3Plus-Pytorch

Baseline model DeepLabv3, DeepLabv3+ for Carla-EPE-23, modified from VainF's repository.

Quick Start

1. Available Architectures

Specify the model architecture with '--model ARCH_NAME' and set the output stride using '--output_stride OUTPUT_STRIDE'.

DeepLabV3 DeepLabV3+
deeplabv3_resnet50 deeplabv3plus_resnet50
deeplabv3_resnet101 deeplabv3plus_resnet101
deeplabv3_mobilenet deeplabv3plus_mobilenet
deeplabv3_hrnetv2_48 deeplabv3plus_hrnetv2_48
deeplabv3_hrnetv2_32 deeplabv3plus_hrnetv2_32
deeplabv3_xception deeplabv3plus_xception

Results

1. Performance on Datasets (19 classes, 1024 x 2048)

Model: DeepLabV3Plus-ResNet101

Dataset Train Crop Val Crop Batch Size train/val OS mIoU Train History
CityScapes 768x768 1024x2048 16 16/16 0.7711 W&B
NightCity 512x512 512x1024 16 16/16 0.5300 W&B

Segmentation Results on CityScapes (DeepLabv3Plus-ResNet101)

Segmentation Results on NightCity (DeepLabv3Plus-ResNet101)

Dataset Path format

CityScapes

/datasets
    /cityscapes
        /gtFine
        /leftImg8bit

NightCity

/datasets
    /NightLab
        /train
            /image
            /label
        /val
            /image
            /label

Model training

CityScapes

python main.py --model deeplabv3plus_resnet101 --dataset cityscapes --lr 0.1 --crop_size 768 --batch_size 16 --output_stride 16 --data_root /your_dataset_path/CityScapes --gpu_id 0,1 --run_name set_custom_runname --save_val_results 5

NightCity

main.py --model deeplabv3plus_resnet101 --dataset nightlab --gpu_id 0,1 --lr 0.1 --crop_size 512 --batch_size 16 --output_stride 16 --data_root /your_dataset_path/NightLab/ --run_name set_custom_runname --save_val_results 5

Boosting dataset with synthetic data
to be added

Additional options

  • --run_name: Determine a custom run name, default is "unnamed"
  • --wandb: Use Weights & Bias monitoring while training
  • *--boost_dataset: Name of synthetic data, only support "carla" atm
  • *--boost_data_root: Root of synthetic data
  • *--boost_strength: The proportion of synthetic data in one batch. $boost _ batch _ size = \textrm{round}(batch_ size \times boost_ strength)$, $real_ batch_ size = batch_ size - boost_ batch_ size$

* : Not finalized due to recent changes in Carla source code

Reference

[1] Rethinking Atrous Convolution for Semantic Image Segmentation

[2] Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation