SYNAPSE-SR

SYNAPSE-SR: Sentinel-2 super-resolution to 2 m resolution

Weights for synapse-sr, an open-source package that super-resolves Sentinel-2 L2A imagery from 10 m to 2 m resolution (B04 B03 B02 B08). A physics model of the Sentinel-2 sensor keeps every output consistent with the measurement; every pixel carries a support label (measured vs inferred) and a calibrated uncertainty. Docs: https://sharadhnaidu.github.io/synapse-sr/

Model Folder Size Speed (1.28 km scene) Use
SYNAPSE Flash v1 (default) Flash/ 12 MB, 0.6 M parameters at inference ~1 s on a laptop CPU anywhere: CPU, laptops, Colab, Kaggle, ARM
SYNAPSE Pro v2 Pro/ 58 MB, 14.4 M parameters ~5 s on a GPU most detail, GPU

RV University, Bengaluru
RV University, Bengaluru: Sentinel-2 L2A 10 m (left) and synapse-sr 2 m (right).

Use

pip install synapse-sr
import synapse_sr

r = synapse_sr.super_resolve("sentinel2_l2a.tif")                  # Flash; model="pro" for Pro
r.save("sentinel2_2m.tif")                                         # georeferenced GeoTIFF
r.uncertainty()                                                    # calibrated expected error per pixel
synapse-sr --fetch 12.92,77.50 --dates 2025-01-01:2025-03-15 out.tif --preview preview.png

Weights download once and are SHA-256 verified. Offline: Flash.from_pretrained(weights="Flash/synapse-flash-v1.safetensors").

Benchmark

Official opensr-test protocol, mean over NAIP, SPOT, Spain urban, Spain crops and VENuS (178 scenes); synapse-sr 0.4.1 defaults.

Official Sentinel-2 super-resolution benchmark: SYNAPSE leads on 5 of 7 measures

Model Improvement ↑ Omission ↓ Hallucination ↓ Detail corr. ↑ RMSE ↓ Spectral error ↓ Reflectance error ↓
SYNAPSE Flash 0.155 0.748 0.097 0.300 0.0234 0.401 0.0018
SYNAPSE Pro 0.199 0.631 0.171 0.289 0.0254 0.223 0.0011
SEN2SR 0.150 0.759 0.091 0.284 0.0235 0.665 0.0025
SEN2SR-Lite 0.152 0.749 0.099 0.290 0.0234 0.463 0.0019
LDSR-S2 0.197 0.599 0.204 0.206 0.0240 1.015 0.0036
Satlas ESRGAN 0.129 0.181 0.690 0.089 0.0443 7.787 0.0242
Bicubic 0.102 0.830 0.068 0.279 0.0234 0.601 0.0028

SYNAPSE is best on five of the seven columns: Pro on improvement, spectral and reflectance error, Flash on detail correlation and (tied) RMSE.

How it works

x_hat = x_base + P_N(delta): x_base is a regularised inversion of the exact Sentinel-2 sensor model (per-band point-spread function); delta is predicted by the network; P_N projects it onto the part of the image the sensor cannot see, so the network cannot change what the satellite measured.

  • Pro: Mamba state-space backbone (6 x 8 visual state-space blocks), 20 m spectral-context stem, frequency mixer, direct x5 PixelShuffle head. Default physics fit: tight (0.5 noise units), for the most recovered detail.
  • Flash: re-parameterised convolutional network on all ten bands (trains as three-branch convolutions, folds to one 3x3 convolution per layer), trained by knowledge distillation from Pro. After the projection, each 10 m pixel's measured mean reflectance is restored exactly with a smooth correction.

Training data

  • Sentinel-2 L2A paired with 0.6 m NAIP aerial imagery (951 real training pairs, United States).
  • A streamed corpus of 3,044 native 1 m NAIP patches across 15 land-cover classes, observed through the exact Sentinel-2 sensor model, with composed structures (roads, buildings, field and water edges).
  • ISRO Cartosat-2E and Cartosat-3 imagery (sample data from NRSC's Bhoonidhi portal): 1,001 Indian training tiles from three scenes, plus a separate held-out Cartosat-3 scene, observed through the Sentinel-2 sensor model.

Calibrated uncertainty

Measured coverage on held-out development pixels at the 80 / 90 / 95 % levels: Flash 82 / 91 / 95 %, Pro 82 / 91 / 96 %.

Files

File Content
Flash/synapse-flash-v1.safetensors Flash weights (model.*) and the Sentinel-2 operator kernels (operator.weight)
Pro/synapse-pro-v2.safetensors Pro v2 weights and operator kernels
Pro/synapse-pro-v1.safetensors Pro v1, kept for reproducibility
assets/ before / after examples produced with the package

Examples

RV University, Bengaluru Bengaluru city centre
Ludhiana, Punjab: fields Wayanad, Kerala: landslide-affected hills

Licence and acknowledgements

CC0-1.0. Third-party components and their licences are listed in THIRD_PARTY_NOTICES in the package. Sentinel-2 data: Copernicus programme, European Space Agency. Cartosat data: ISRO / NRSC (Bhoonidhi).

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support