This repository provides the official PyTorch implementation of the paper: "A Class-Aware Semi-Supervised Framework for Semantic Segmentation of High-Resolution Remote Sensing Imagery", published in IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2025. 🔗Paper Link
└── CASSF/
├── data
│ ├── Vaihingen
│ ├── __init__.py
│ └── build_data.py
├── model
│ ├── DeepLabv3p.py
│ ├── Unet.py
│ └── __init__.py
├── myutils
│ ├── __init__.py
│ └── utils.py
└── train_CASSF.pyWe provide cropped and pre-split semi-supervised training datasets for the following benchmarks:
- ISPRS Vaihingen Dataset (IR-R-G + DSM & labels)
- ISPRS Potsdam Dataset(R-G-B-IR + DSM & labels)
- LoveDA Urban Dataset(R-G-B & labels)
- LoveDA Rural Dataset(R-G-B & labels)
Each dataset includes multiple labeled/unlabeled splits for semi-supervised learning: 1/2, 1/4, 1/8, 1/16, 1/32, 1/64 (e.g., 1/8 means 12.5% labeled and 87.5% unlabeled).
For quick start, the Vaihingen dataset is already included in this repo under data/Vaihingen/. For full experiments with all datasets, please download from: 🔗 CASSF_data - Baidu Netdisk.
Note: Test datasets are not provided and must be downloaded separately from the official sources:
- 🌐 ISPRS: Vaihingen & Potsdam
- 🌐 LoveDA: Urban & Rural
-
Install dependencies
It is recommended to use Python 3.8. Before training, please install the required dependencies (e.g., PyTorch, TorchVision, GDAL, Visdom, Scikit-learn, etc.) suitable for your environment.
-
Run training
Once dependencies are installed, start training with:
python train_CASSF.py
If you use this code or data, please cite our paper:
@article{CASSF,
author={Wang, Shirou and Su, Cheng and Zhang, Xiaocan},
journal={IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing},
title={A Class-Aware Semi-Supervised Framework for Semantic Segmentation of High-Resolution Remote Sensing Imagery},
year={2025},
volume={18},
pages={22372-22391},
doi={10.1109/JSTARS.2025.3601148}}