Skip to content

psychofict/FARCLUSS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FARCLUSS

Fuzzy Adaptive Rebalancing and Contrastive Uncertainty Learning for Semi-Supervised Semantic Segmentation

Ebenezer Tarubinga, Jenifer Kalafatovich, Seong-Whan Lee Department of Artificial Intelligence, Korea University, Seoul, Korea

FARCLUSS Framework

Published in Neural Networks, 2026.

Overview

FARCLUSS is a unified framework for semi-supervised semantic segmentation that transforms prediction uncertainty into a learning asset through four components:

  1. Fuzzy Pseudo-Labeling — Preserves soft class distributions from top-K teacher predictions instead of discarding uncertain pixels
  2. Uncertainty-Aware Dynamic Weighting — Modulates pixel-wise loss contributions via normalized entropy
  3. Adaptive Class Rebalancing — Dynamically adjusts loss weights based on per-batch pseudo-label frequencies
  4. Lightweight Contrastive Regularization — Prototype-based contrastive loss using class centroids

Built on DeepLabV3+ with ResNet-50/101 backbones and a mean-teacher EMA architecture.

Installation

pip install -r requirements.txt

Requires PyTorch >= 1.12 and torchvision >= 0.13.

Dataset Preparation

Pascal VOC 2012

data/VOCdevkit/VOC2012/
├── JPEGImages/
├── SegmentationClass/
├── SegmentationClassAug/    # for Blended/SBD setup
└── ImageSets/Segmentation/
    ├── train.txt
    ├── val.txt
    └── trainaug.txt         # for Blended/SBD setup

Cityscapes

data/cityscapes/
├── leftImg8bit/
│   ├── train/
│   └── val/
└── gtFine/
    ├── train/
    └── val/

Training

# Pascal VOC Classic, 1/8 labeled, ResNet-101
python train.py --dataset pascal_voc --split classic --labeled_ratio 0.125 \
    --backbone resnet101 --data_root ./data/VOCdevkit/VOC2012

# Pascal VOC Blended (SBD-augmented), 1/4 labeled
python train.py --dataset pascal_voc --split blended --labeled_ratio 0.25 \
    --backbone resnet101 --data_root ./data/VOCdevkit/VOC2012

# Cityscapes, 1/8 labeled
python train.py --dataset cityscapes --labeled_ratio 0.125 \
    --backbone resnet101 --data_root ./data/cityscapes

# Resume from checkpoint
python train.py --dataset pascal_voc --resume checkpoints/farcluss_best.pth

Labeled Ratios

Ratio Flag
1/16 --labeled_ratio 0.0625
1/8 --labeled_ratio 0.125
1/4 --labeled_ratio 0.25
1/2 --labeled_ratio 0.5

Evaluation

python evaluate.py --checkpoint checkpoints/farcluss_best.pth \
    --dataset pascal_voc --data_root ./data/VOCdevkit/VOC2012

Results

Pascal VOC Classic (mIoU %)

Backbone 1/16 1/8 1/4 1/2
ResNet-50 72.90 76.18 76.50 77.69
ResNet-101 76.4 78.2 79.0 80.3

Cityscapes (mIoU %)

Backbone 1/16 1/8 1/4 1/2
ResNet-50 75.20 77.50 78.00 79.60
ResNet-101 77.2 78.8 80.0 81.0

Project Structure

├── train.py                    # Training entry point
├── evaluate.py                 # Evaluation script
├── requirements.txt
└── farcluss/
    ├── config.py               # Experiment configurations
    ├── trainer.py              # Training loop (Algorithm 1)
    ├── model/
    │   ├── encoder.py          # ResNet-50/101 with dilated convolutions
    │   ├── aspp.py             # Atrous Spatial Pyramid Pooling
    │   ├── deeplabv3plus.py    # DeepLabV3+ architecture
    │   └── projection_head.py  # 128-D projection for contrastive loss
    ├── losses/
    │   └── farcluss_losses.py  # All loss components (Eq. 2-12)
    ├── dataset/
    │   ├── augmentation.py     # Weak & strong augmentations
    │   ├── pascal_voc.py       # Pascal VOC 2012 (Classic & Blended)
    │   └── cityscapes.py       # Cityscapes dataset
    └── utils/
        ├── ema.py              # EMA teacher update
        ├── lr_scheduler.py     # Polynomial LR decay
        └── metrics.py          # mIoU evaluation

Hyperparameters

Parameter Value
EMA momentum (α) 0.99
Top-K for fuzzy labels 2
λ_u (unsupervised weight) 0.5
λ_c (contrastive weight) 0.1
Contrastive confidence threshold 0.5
Projection dimension 128
Optimizer SGD (momentum=0.9, weight_decay=1e-4)
LR schedule Polynomial decay (power=0.9)
Initial LR 0.001
Pascal VOC epochs 80
Cityscapes epochs 240

Citation

@article{tarubinga2026farcluss,
  title={FARCLUSS: Fuzzy Adaptive Rebalancing and Contrastive Uncertainty Learning for Semi-Supervised Semantic Segmentation},
  author={Tarubinga, Ebenezer and Kalafatovich, Jenifer and Lee, Seong-Whan},
  journal={Neural Networks},
  year={2026}
}

Acknowledgement

This research was supported by the Institute of Information & Communications Technology Planning & Evaluation (IITP) grant, funded by the Korea government (MSIT).

About

[Neural Networks 2026] Fuzzy Adaptive Rebalancing and Contrastive Uncertainty Learning for Semi-Supervised Semantic Segmentation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages