|
Download README.md from Harp404/sentinel-sharp: direct link, hf CLI and curl.
- Browser
- Download file 5.2 kB
-
https://huggingface.co/Harp404/sentinel-sharp/resolve/main/README.md
- Command line
-
hf download hf://Harp404/sentinel-sharp/README.md
-
curl -L -o README.md https://huggingface.co/Harp404/sentinel-sharp/resolve/main/README.md
5.2 kB
| license: cc-by-nc-4.0 | |
| tags: | |
| - super-resolution | |
| - remote-sensing | |
| - sentinel-2 | |
| - satellite-imagery | |
| - pytorch | |
| datasets: | |
| - worldstrat | |
| pipeline_tag: image-to-image | |
| # 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** | |
|  | |
| *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](https://huggingface.co/camenduru/SUPIR) | non-commercial ([declaration](third_party/supir/LICENSE.md)) | | |
| | SDXL base (0.9 VAE) | `third_party/sdxl/sd_xl_base_1.0_0.9vae.safetensors` | [stabilityai](https://huggingface.co/stabilityai/stable-diffusion-xl-base-1.0) | CreativeML OpenRAIL++-M ([licence](third_party/sdxl/LICENSE.md)) | | |
| | CLIP ViT-L/14 | `third_party/clip-vit-large-patch14/` | [openai](https://huggingface.co/openai/clip-vit-large-patch14) | MIT | | |
| | OpenCLIP ViT-bigG/14 | `third_party/clip-vit-bigG-14/open_clip_model.safetensors` | [laion](https://huggingface.co/laion/CLIP-ViT-bigG-14-laion2B-39B-b160k) | MIT | | |
| | DINOv3-SAT ViT-L/16 | `third_party/dinov3-vitl16-pretrain-sat493m/` | [facebook/dinov3-vitl16-pretrain-sat493m](https://huggingface.co/facebook/dinov3-vitl16-pretrain-sat493m) | DINOv3 License ([copy](third_party/dinov3-vitl16-pretrain-sat493m/LICENSE.md)); redistributed under its terms | | |
| `sentinelsharp_head.pt` keys: `head` (state dict), `step` (9000, selected on the validation split), `psnr`, `args`. | |
| ```bash | |
| 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. | |
|  | |
|  | |
|  | |
|  | |
| Live run on Dharavi (Mumbai): SUPIR alone invents a car park; the verification head restores the informal housing. | |
|  | |
| *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 | |
| ```python | |
| 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](https://creativecommons.org/licenses/by-nc/4.0/). | |
| Free for research, education and other non-commercial use, with credit to SentinelSharp. | |
| - **Code** ([GitHub](https://github.com/Harp404/sentinel-superres)): 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. | |