MCPcopy Index your code
hub / github.com/ElliotVincent/SitsSCD

github.com/ElliotVincent/SitsSCD @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
106 symbols 225 edges 17 files 20 documented · 19%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Satellite Image Time Series Semantic Change Detection: Novel Architecture and Analysis of Domain Shift Elliot VincentJean PonceMathieu Aubry

Official PyTorch implementation of Satellite Image Time Series Semantic Change Detection: Novel Architecture and Analysis of Domain Shift. Check out our webpage for other details!

We tackle the satellite image time series semantic change detection (SITS-SCD) task with our multi-temporal version of the UTAE [3]. Our model is able to leverage long range temporal information and provides significant performance boost for this task compared to single- or bi-temporal SCD methods. We evaluate on DynamicEarthNet [1] and MUDS [2] datasets that exhibit global and multi-year coverage using the SCD metrics defined in [1].

alt text

If you find this code useful, don't forget to star the repo :star:.

Installation :gear:

1. Clone the repository in recursive mode

git clone git@github.com:ElliotVincent/SitsSCD.git --recursive

2. Download the datasets

We use processed versions of the SITS-SCD datasets DynamicEarthNet [1] and MUDS [2]. Our pre-processing consists in image compression for memory efficiency. You can download the datasets using the code below or by following these links for DynamicEarthNet (7.09G) and MUDS (245M).

cd SitsSCD
mkdir datasets
cd datasets
gdown 1RySuzHgQDSgHSw2cbriceY5gMqTsCs8I
unzip Muds.zip
gdown 1cMP57SPQWYKMy8X60iK217C28RFBkd2z
unzip DynamicEarthNet.zip

3. Create and activate virtual environment

conda create -n sitsscd pytorch=2.0.1 torchvision=0.15.2 torchaudio pytorch-cuda=11.7 -c pytorch -c nvidia -y
conda activate sitsscd
pip install -r requirements.txt

This implementation uses PyTorch, PyTorch Lightning and Hydra.

How to use :rocket:

For both datasets, there are two validation and two test loaders, to account for the presence or not of spatial domain shift.

python train.py dataset=<dynamicearthnet or muds> mode=<train or eval>

Citing

@article{vincent2024satellite,
    title = {Satellite Image Time Series Semantic Change Detection: Novel Architecture and Analysis of Domain Shift},
    author = {Vincent, Elliot and Ponce, Jean and Aubry, Mathieu},
    journal = {arXiv},
    year = {2024},
  }

Bibliography

[1] Adam Van Etten et al. The multitemporal urban development spacenet dataset. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pages 6398–6407, 2021.

[2] Aysim Toker et al. Dynamicearthnet: Daily multi-spectral satellite dataset for semantic change segmentation. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), pages 21158–21167, 2022.

[3] Vivien Sainte Fare Garnot et al. Panoptic segmentation of satellite image time series with convolutional temporal attention networks. In Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), pages 4872–4881, 2021

Core symbols most depended-on inside this repo

update
called by 5
metrics/scd_metrics.py
forward
called by 5
models/networks/blocks.py
compute
called by 2
metrics/scd_metrics.py
compute_miou
called by 2
metrics/scd_metrics.py
load_ground_truth
called by 2
data/data.py
get_monthly_dates_dict
called by 2
data/data.py
smart_forward
called by 2
models/networks/blocks.py
wandb_init
called by 1
train.py

Shape

Method 68
Class 21
Function 17

Languages

Python100%

Modules by API surface

data/data.py19 symbols
models/networks/blocks.py15 symbols
utils/lr_scheduler.py12 symbols
models/module.py10 symbols
models/networks/multiltae.py9 symbols
train.py7 symbols
models/networks/multiutae.py7 symbols
models/losses.py7 symbols
data/datamodule.py7 symbols
metrics/scd_metrics.py5 symbols
data/transforms.py5 symbols
models/networks/positional_encoding.py3 symbols

For agents

$ claude mcp add SitsSCD \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact