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}}