eo-data-embedding

Status: Released Stack: Python 3.11 · PyTorch · Clay v1.5 · FAISS · Gradio Lifecycle: ECSS-E-ST-40C tailored

Similarity search demo

Overview

eo-data-embedding embeds Sentinel-1/2 imagery once with a frozen Clay v1.5 Vision Transformer, then serves every downstream task cheaply over the stored vectors — similarity search, few-shot classification, and bitemporal change detection — with no per-task fine-tuning and no GPU at query time.

The design goal is label-efficient, honest EO ML: embed-once architecture, CPU-only query path, and negative results reported rather than hidden.

Architecture

flowchart LR
    Tiles[EO tiles S1/S2] --> Extract[Clay v1.5 extract]
    Extract --> Store[(Embedding store)]
    Store --> Search[Similarity search]
    Store --> Probe[Few-shot probe]
    Store --> Change[Change detection]

Key properties:

Key technical work

Results

Task Metric Result
Similarity search mAP@10 0.774
Similarity search precision@10 0.822
Few-shot probe macro-F1 (50 labels/class) 0.895 ± 0.011
Few-shot probe macro-F1 (full train pool) 0.92
Change detection supervised Δembedding F1 0.510 (honest, validation threshold)
Change detection ROC-AUC 0.640
Similarity search demo Few-shot label efficiency

Documentation (GitHub Pages)

User documentation

Project documentation

← All projects