Home

Awesome

PyCDA

Code for Constructing Self-motivated Pyramid Curriculums for Cross-Domain Semantic Segmentation: A Non-Adversarial Approach.

Paper

Constructing Self-motivated Pyramid Curriculums for Cross-Domain Semantic Segmentation: A Non-Adversarial Approach <br /> Qing Lian, Fengmao Lv, Lixin Duan, Boqing Gong<br /> The IEEE International Conference on Computer Vision (ICCV) 2019.

Please cite our paper if you find it useful for your research.

@InProceedings{Lian_2019_ICCV,
author = {Lian, Qing and Lv, Fengmao and Duan, Lixin and Gong, Boqing},
title = {Constructing Self-Motivated Pyramid Curriculums for Cross-Domain Semantic Segmentation: A Non-Adversarial Approach},
booktitle = {The IEEE International Conference on Computer Vision (ICCV)},
month = {October},
year = {2019}
}

Framework

Enviorment

The code is developed under the following configuration.

Hardware:

4-8 GPUs(With at least 11G GPU memories), which is set for the correspoinding batch size.

Software:

Python(3.6) and Pytorch(0.4.1) is necessary before running the scripts. To install the required pythonn packages(expect Pytorch), run

pip install -r requirements.txt

Datasets

To train and validate the network, this repo use the GTAV or SYNTHIA as the source domain dataset and user Cityscapes as the target domain dataset.

To monitor the convergence of the network, we split 500 images out of Cityscapes training dataset as our validation set and test on Cityscapes valdiation set. You can check it in the ./dataset/cityscapes_list/directory.

To train on your own enviorment, please download the dataset and modify the dataset path in the corresponding cfgs docunment. Downloaded pretrained model

Training

Source only

sh run.sh train_source_only.py cfgs/source_only_exp001.yaml

Adabn

sh run.sh train_adabn.py cfgs/adabn_exp001.yaml

PyCDA

sh run.sh train_pycda.py cfgs/pycda_exp001.yaml

PyCDA + Spatial ratio

sh run.sh train_pycda_spatial.py cfgs/pycda_spatial_ratio_exp001.yaml

We convert the batchnorm statistics from source domain to target domain after optimization.

Convert batchnorm statistics

sh run.sh test_adabn.py $your_script

After adding the spatial ratio from source domain, one could get around 47.7 - 48.2 mIoU on Cityscapes validations set with the same iterations.

Performance (GTAV-> Cityscapes)

Quantitative Results

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgement

This code is heavily borrowed from Semantic-segmentation-pytorch, AdaptSeg, and CBST