synapse-sr

synapse-sr: Sentinel-2 at 2 m, with every pixel accounted for

Weights for synapse-sr, an open-source package that super-resolves Sentinel-2 L2A imagery from 10 m to a 2 m output grid (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); package defaults.

Model Improvement ↑ Omission ↓ Hallucination ↓ Detail corr. ↑ RMSE ↓ Spectral error ↓ Reflectance error ↓
SYNAPSE Flash 0.148 0.756 0.096 0.298 0.0237 0.427 0.0019
SYNAPSE Pro 0.152 0.750 0.098 0.297 0.0237 0.428 0.0019
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

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.
  • 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.

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