This is the official PyTorch implementation of our IJCNN 2025 paper:
CW-BASS: Confidence-Weighted Boundary Aware Learning for Semi-Supervised Semantic Segmentation
Project Page: https://psychofict.github.io/CW-BASS/
ResNet-50 | DeepLabv2-ResNet-101
Pascal JPEGImages | Pascal SegmentationClass | Cityscapes leftImg8bit | Cityscapes gtFine
├── ./pretrained
├── resnet50.pth
└── deeplabv2_resnet101_coco_pretrained.pth
├── [Your Pascal Path]
├── JPEGImages
└── SegmentationClass
├── [Your Cityscapes Path]
├── leftImg8bit
└── gtFine
export semi_setting='pascal/1_8/split_0'
CUDA_VISIBLE_DEVICES=0,1 python -W ignore main.py \
--dataset pascal --data-root [Your Pascal Path] \
--batch-size 16 --backbone resnet50 --model deeplabv3plus \
--labeled-id-path dataset/splits/$semi_setting/labeled.txt \
--unlabeled-id-path dataset/splits/$semi_setting/unlabeled.txt \
--pseudo-mask-path outdir/pseudo_masks/$semi_setting \
--save-path outdir/models/$semi_setting
The image partitions are borrowed from Context-Aware-Consistency and PseudoSeg. Part of the training hyper-parameters and network structures are adapted from ST++ and PyTorch-Encoding.
- ST++: https://github.com/LiheYoung/ST-PlusPlus.
- Context-Aware-Consistency: https://github.com/dvlab-research/Context-Aware-Consistency.
- PyTorch-Encoding: https://github.com/zhanghang1989/PyTorch-Encoding.
- OpenSelfSup: https://github.com/open-mmlab/OpenSelfSup.
If you find this project useful, please consider citing:
@article{tarubinga2025cw,
title={CW-BASS: Confidence-Weighted Boundary-Aware Learning for Semi-Supervised Semantic Segmentation},
author={Tarubinga, Ebenezer and Kalafatovich, Jenifer and Lee, Seong-Whan},
journal={arXiv preprint arXiv:2502.15152},
year={2025}
}