Home

Awesome

AugSeg

"Augmentation Matters: A Simple-yet-Effective Approach to Semi-supervised Semantic Segmentation".

Introduction

Diagram

Without any complicated designs, AugSeg readily obtains new SOTA performance on popular SSS benchmarks under different partition protocols. We hope our AugSeg can inspir future studies, and serve as a strong baseline for SSS.

Performance

Labeled images are sampled from the original high-quality training set. Results are obtained by DeepLabv3+ based on ResNet-101 with training size 512.

Method1/115 (92)1/57 (183)1/28 (366)1/14 (732)1/7 (1464)
SupOnly43.9259.1065.8870.8774.97
ST++65.271.074.677.379.1
PS-MT65.8069.5876.5778.4280.01
U<sup>2</sup>PL67.9869.1573.6676.1679.49
AugSeg71.0975.4578.8080.3381.36

Results are obtained by DeepLabv3+ based on ResNet-50/101. We reproduce U<sup>2</sup>PL results on ResNet-50.

R501/161/81/41/2R1011/161/81/41/2
SupOnly63.3468.7374.1476.62SupOnly64.7771.6475.2478.03
U<sup>2</sup>PL69.0373.0276.3178.64U<sup>2</sup>PL70.3074.3776.4779.05
PS-MT-75.7676.9277.64PS-MT-76.8977.6079.09
AugSeg73.7376.4978.7679.33AugSeg75.2277.8279.5680.43

All the training logs of AugSeg and our reproduced SupOnly baselines are included under the directory of training-logs

Running AugSeg

Prepare datasets

Please download the Pascal and Cityscapes, and set up the path to them properly in the configuration files.

Here is our adopted way,

├── ./data
    ├── splitsall
    	├── cityscapes
    	├── pascal
    	└── pascal_u2pl 
    ├── VOC2012
    	├── JPEGImages
    	├── SegmentationClass
    	└── SegmentationClassAug
    └── cityscapes
        ├── gtFine
    	└── leftImg8bit

Prepare pre-trained encoder

Please download the pretrained models, and set up the path to these models properly in the file of config_xxx.yaml .

ResNet-50 | ResNet-101

ResNet-50 | ResNet-101

Here is our adopted way,

├── ./pretrained
    ├── resnet50.pth
    └── resnet101.pth

Prepare running Envs

Nothing special

Ready to Run

Basically, you are recommanded to config the experimental runnings in a ".yaml" file firstly. We include various configuration files under the directory of "exps".

# 1) configure your yaml file in a running script
vim ./scripts/run_abls_citys.sh

# 2) run directly
sh ./scripts/run_abls_citys.sh

Citation

If you find these projects useful, please consider citing:

@inproceedings{zhao2023augmentation,
  title={Augmentation Matters: A Simple-yet-Effective Approach to Semi-supervised Semantic Segmentation},
  author={Zhao, Zhen and Yang, Lihe and Long, Sifan and Pi, Jimin and Zhou, Luping and Wang, Jingdong},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={11350--11359},
  year={2023}
}

We have other relevant semi-supervised semantic segmentation projects:

Acknowledgement

We thank ST++, CPS, and U<sup>2</sup>PL, for part of their codes, processed datasets, data partitions, and pretrained models.