[ICCV 2025] Can Generative Geospatial Diffusion Models Excel as Discriminative Geospatial Foundation Models?
Python
31
2 commits
updated Sep 16, 2025
ICCV 2025 [ArXiv]
By Yuru Jia, Valerio Marsocci, Ziyang Gong, Xue Yang, Maarten Vergauwen, Andrea Nascetti
SatDiFuser explores self-supervised learning (SSL) with diffusion models as geospatial foundation models (GFMs) for remote sensing. While most GFMs use contrastive learning or masked image modeling, SatDiFuser shows that diffusion-based generative models can also learn powerful discriminative representations. By analyzing multi-stage, noise-dependent features and introducing three fusion strategies, SatDiFuser achieves state-of-the-art results on remote sensing benchmarks, highlighting the untapped potential of diffusion models for SSL in RS.
Please follow the instructions below to set up the experiments.
git clone https://github.com/yurujaja/SatDiFuser.git
cd SatDiFuser
pip install -r requirements.txt
pip install --no-deps geobench
export GEO_BENCH_DIR=/path/to/geobenchConfigs are composed from multiple YAML files. An experiment file (e.g., configs/eurosat_exp.yaml) lists a base: array that includes:
configs/_base_/diffusionsat.yaml — DiffusionSat backbone settingsconfigs/_base_/satdifuser.yaml — SatDiFuser extraction/fusion settingsconfigs/_base_/upernet.yaml for segmentation)configs/tasks/ (e.g., configs/tasks/meurosat.yaml)configs/_base_/diffusionsat.yaml
configs/_base_/satdifuser.yaml
fuser to gw, lw, or moe in configs/_base_/satdifuser.yaml.gw (Global-Weighted), lw (Localized-Weighted), moe (Mixture-of-Experts)configs/_base_/upernet.yaml (segmentation only)
configs/tasks/*.yaml)Classification example configs/tasks/meurosat.yaml:
classificationSegmentation example configs/tasks/mnz_cattle.yaml:
segmentationconfigs/*_exp.yaml)Update your experiment file to include the right dataset task file in its base: list.
Example: Eurosat classification, with experiment file: configs/eurosat_exp.yaml with configs/tasks/meurosat.yaml in base:
python run.py --config configs/eurosat_exp.yaml
Experiment file: configs/nzcattle_exp.yaml with configs/tasks/mnz_cattle.yaml in base:
python run.py --config configs/nzcattle_exp.yaml
We thank prior work and codebases: Diffusion Hyperfeatures, SLiMe, DiffSeg, DiffCut, PANGAEA, GEO-Bench. We also acknowledge the National Academic Infrastructure for Supercomputing in Sweden (NAISS, Grant No. 2022-06725) for supporting the computations and data handling.
@inproceedings{jia2025satdifuser,
title={Can Generative Geospatial Diffusion Models Excel as Discriminative Geospatial Foundation Models?},
author={Jia, Yuru and Marsocci, Valerio and Gong, Ziyang and Yang, Xue and Vergauwen, Maarten and Nascetti, Andrea},
booktitle={International Conference on Computer Vision (ICCV)},
year={2025}
}
696 followers · starred Sep 2025
Python
100.0%
[ICCV 2025] Can Generative Geospatial Diffusion Models Excel as Discriminative Geospatial Foundation Models?
Python
31
2 commits
updated Sep 16, 2025
ICCV 2025 [ArXiv]
By Yuru Jia, Valerio Marsocci, Ziyang Gong, Xue Yang, Maarten Vergauwen, Andrea Nascetti
SatDiFuser explores self-supervised learning (SSL) with diffusion models as geospatial foundation models (GFMs) for remote sensing. While most GFMs use contrastive learning or masked image modeling, SatDiFuser shows that diffusion-based generative models can also learn powerful discriminative representations. By analyzing multi-stage, noise-dependent features and introducing three fusion strategies, SatDiFuser achieves state-of-the-art results on remote sensing benchmarks, highlighting the untapped potential of diffusion models for SSL in RS.
Please follow the instructions below to set up the experiments.
git clone https://github.com/yurujaja/SatDiFuser.git
cd SatDiFuser
pip install -r requirements.txt
pip install --no-deps geobench
export GEO_BENCH_DIR=/path/to/geobenchConfigs are composed from multiple YAML files. An experiment file (e.g., configs/eurosat_exp.yaml) lists a base: array that includes:
configs/_base_/diffusionsat.yaml — DiffusionSat backbone settingsconfigs/_base_/satdifuser.yaml — SatDiFuser extraction/fusion settingsconfigs/_base_/upernet.yaml for segmentation)configs/tasks/ (e.g., configs/tasks/meurosat.yaml)configs/_base_/diffusionsat.yaml
configs/_base_/satdifuser.yaml
fuser to gw, lw, or moe in configs/_base_/satdifuser.yaml.gw (Global-Weighted), lw (Localized-Weighted), moe (Mixture-of-Experts)configs/_base_/upernet.yaml (segmentation only)
configs/tasks/*.yaml)Classification example configs/tasks/meurosat.yaml:
classificationSegmentation example configs/tasks/mnz_cattle.yaml:
segmentationconfigs/*_exp.yaml)Update your experiment file to include the right dataset task file in its base: list.
Example: Eurosat classification, with experiment file: configs/eurosat_exp.yaml with configs/tasks/meurosat.yaml in base:
python run.py --config configs/eurosat_exp.yaml
Experiment file: configs/nzcattle_exp.yaml with configs/tasks/mnz_cattle.yaml in base:
python run.py --config configs/nzcattle_exp.yaml
We thank prior work and codebases: Diffusion Hyperfeatures, SLiMe, DiffSeg, DiffCut, PANGAEA, GEO-Bench. We also acknowledge the National Academic Infrastructure for Supercomputing in Sweden (NAISS, Grant No. 2022-06725) for supporting the computations and data handling.
@inproceedings{jia2025satdifuser,
title={Can Generative Geospatial Diffusion Models Excel as Discriminative Geospatial Foundation Models?},
author={Jia, Yuru and Marsocci, Valerio and Gong, Ziyang and Yang, Xue and Vergauwen, Maarten and Nascetti, Andrea},
booktitle={International Conference on Computer Vision (ICCV)},
year={2025}
}
696 followers · starred Sep 2025
Python
100.0%