SentinelSharp: verification head for Sentinel-2 ×4 super-resolution

Sentinel-2 imagery (10 m) rebuilt at 2.5 m. A generative restorer (SUPIR) drafts the detail; this 12M-parameter verification head checks the draft against up to 16 real Sentinel-2 passes (via DINOv3-SAT features), rewrites what the evidence contradicts, and outputs a per-pixel expected error (Laplace scale).

Code, training and inference: https://github.com/Harp404/sentinel-superres

Five methods on the same Sentinel-2 input

Same Sentinel-2 input, five methods, five held-out places. Satlas and SUPIR look sharp but invent buildings; ESA's SEN2SR stays blurry; SentinelSharp is sharp and matches the real 2.5 m SPOT photo.

Files (everything the pipeline needs, in one place)

Component File Original Licence
Verification head (ours) sentinelsharp_head.pt, head.py this project CC BY-NC 4.0
SUPIR v0Q third_party/supir/SUPIR-v0Q.ckpt camenduru/SUPIR non-commercial (declaration)
SDXL base (0.9 VAE) third_party/sdxl/sd_xl_base_1.0_0.9vae.safetensors stabilityai CreativeML OpenRAIL++-M (licence)
CLIP ViT-L/14 third_party/clip-vit-large-patch14/ openai MIT
OpenCLIP ViT-bigG/14 third_party/clip-vit-bigG-14/open_clip_model.safetensors laion MIT
DINOv3-SAT ViT-L/16 third_party/dinov3-vitl16-pretrain-sat493m/ facebook/dinov3-vitl16-pretrain-sat493m DINOv3 License (copy); redistributed under its terms

sentinelsharp_head.pt keys: head (state dict), step (9000, selected on the validation split), psnr, args.

hf download Harp404/sentinel-sharp --local-dir weights

Each third-party model is redistributed under its own licence, included next to its files. The DINOv3 License forbids use for military, warfare or espionage purposes and requires acknowledging DINOv3 in publications.

Results

350 held-out WorldStrat test sites, never used for training or checkpoint selection, RGB, scored against SPOT 6/7 at 2.5 m:

Method Error per pixel Pixels within 10% of ground truth
Bilinear upscaling 13.97% 51.3%
SUPIR alone 15.56% 47.9%
SentinelSharp 12.07% 54.5%

Left: Sentinel-2 input (10 m). Middle: SentinelSharp (2.5 m). Right: SPOT 6/7 ground truth (2.5 m), photographed within days of the Sentinel-2 passes.

City Informal housing and industry Stadium district Village

Live run on Dharavi (Mumbai): SUPIR alone invents a car park; the verification head restores the informal housing.

Dharavi

Images: contains modified Copernicus Sentinel data (2019–2026). SPOT 6/7 imagery © Airbus DS, via WorldStrat (CC BY-NC 4.0). Dharavi reference photo: Esri World Imagery (Esri, Maxar, Earthstar Geographics).

Load

import torch
from head import VerificationHead
ckpt = torch.load("sentinelsharp_head.pt", map_location="cpu")
head = VerificationHead()
head.load_state_dict(ckpt["head"])
head.eval()

Full inference (Sentinel-2 fetch, SUPIR draft, DINOv3 features, tiling) is in the GitHub repository.

Training data and attribution

WorldStrat (Cornebise, Oršolić, Kalaitzis, NeurIPS 2022): Sentinel-2 multi-date stacks (CC BY 4.0) paired with SPOT 6/7 imagery © Airbus DS (CC BY-NC 4.0). Contains modified Copernicus Sentinel data. The weights are CC BY-NC 4.0 because the training data is non-commercial. The high-resolution imagery is only the training target; the model never sees it at inference.

Licence and commercial use

  • Our weights (sentinelsharp_head.pt, head.py): CC BY-NC 4.0. Free for research, education and other non-commercial use, with credit to SentinelSharp.
  • Code (GitHub): PolyForm Noncommercial 1.0.0.
  • Commercial use needs a separate licence: email harpreetsinghjhiwant80@gmail.com. It can only cover our work: SUPIR, the WorldStrat training data and DINOv3 each need their own permission.
  • Mirrored third-party models keep their own licences (copies next to their files): SUPIR is non-commercial, SDXL is CreativeML OpenRAIL++-M, CLIP-L and OpenCLIP bigG are MIT, and the DINOv3 License forbids military, warfare and espionage use and requires acknowledging DINOv3 in publications.

Built for Smart India Hackathon. If you use SentinelSharp in research, please cite the GitHub repository.

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