maestro-eval
MAESTRO: Masked AutoEncoders for Multimodal, Multitemporal, and Multispectral Earth Observation Data — Labatie et al. (2025) (arXiv:2508.10894, 2025)
What this evaluates
This evaluation protocol assesses the transfer learning capability of self-supervised and supervised vision models on multimodal, multitemporal, and multispectral Earth observation data. It probes downstream performance on tree species classification and agricultural/land cover segmentation tasks across varying dataset scales and fusion strategies.
Datasets
- TreeSatAI-TS — total 50381; splits: train (-1), val (-1), test (-1)
- PASTIS-HD — total 433; splits: fold I (-1)
- FLAIR#2 — total 77762; splits: split 1 (-1)
- FLAIR-HUB — total 241100; splits: split 1 (-1)
Metrics
weighted F1 score (primary) — range: [0, 100] percent
- F1 score computed per class and averaged, weighted by the number of true instances per class. Calculated as 2 * (precision * recall) / (precision + recall + epsilon).
mIoU (primary) — range: [0, 100] percent
- Mean Intersection over Union across all semantic classes. Computed as the average of TP / (TP + FP + FN) for each class, where TP, FP, and FN are true positives, false positives, and false negatives.
Input / output format
Input: Multimodal image tiles containing aerial imagery (RGB+NIR), Sentinel-1/2 time series, and elevation data (DSM/DEM), processed into fixed-size patches for token-based model input.
Output: Per-pixel or per-tile class predictions: 15 multi-label tree species classes for TreeSatAI-TS, or 12/15 semantic segmentation masks for PASTIS-HD, FLAIR#2, and FLAIR-HUB.
Scoring recipe
def compute_miou(preds, gold, num_classes):
ious = []
for c in range(num_classes):
tp = np.sum((preds == c) & (gold == c))
fp = np.sum((preds == c) & (gold != c))
fn = np.sum((preds != c) & (gold == c))
iou = tp / (tp + fp + fn + 1e-6)
ious.append(iou)
return np.mean(ious) * 100
def compute_weighted_f1(preds, gold, num_classes):
f1s, weights = [], []
for c in range(num_classes):
tp = np.sum((preds == c) & (gold == c))
fp = np.sum((preds == c) & (gold != c))
fn = np.sum((preds != c) & (gold == c))
prec = tp / (tp + fp + 1e-6)
rec = tp / (tp + fn + 1e-6)
f1 = 2 * prec * rec / (prec + rec + 1e-6)
f1s.append(f1)
weights.append(np.sum(gold == c))
return np.average(f1s, weights=weights) * 100
Common pitfalls
- Pre-training must strictly exclude test data; using the union of training and validation sets for self-supervised learning is required to prevent data leakage.
- Models must be evaluated on the exact dataset splits/folds specified (e.g., PASTIS-HD fold I, FLAIR split 1) to ensure comparability with reported baselines.
- Baseline foundation models require extensive hyperparameter tuning for fair comparison, as default settings may not reflect operational performance.
Evidence (verbatim from paper)
We report the weighted F1 score (%) on TreeSatAI-TS and the mIoU (%) on PASTIS-HD, FLAIR#2, and FLAIR-HUB.
Citation
@misc{labatie2025maestro,
title={MAESTRO: Masked AutoEncoders for Multimodal, Multitemporal, and Multispectral Earth Observation Data},
author={Labatie et al. (2025)},
year={2025},
note={arXiv:2508.10894}
}
1---2name: maestro-eval3description: This evaluation protocol assesses the transfer learning capability of self-supervised and supervised vision models on multimodal, multitemporal, and multispectral Earth observation data. It probes downstream performance on tree species classification and agricultural/land cover segmentation tasks across varying dataset scales and fusion strategies. Use when the user wants to benchmark on TreeSatAI-TS, PASTIS-HD, FLAIR#2, FLAIR-HUB, or asks about evaluating this task. Reports weighted F1 score, mIoU.4---56# maestro-eval78> MAESTRO: Masked AutoEncoders for Multimodal, Multitemporal, and Multispectral Earth Observation Data — Labatie et al. (2025) (arXiv:2508.10894, 2025)910## What this evaluates1112This evaluation protocol assesses the transfer learning capability of self-supervised and supervised vision models on multimodal, multitemporal, and multispectral Earth observation data. It probes downstream performance on tree species classification and agricultural/land cover segmentation tasks across varying dataset scales and fusion strategies.1314## Datasets1516- **TreeSatAI-TS** — total 50381; splits: train (-1), val (-1), test (-1)17- **PASTIS-HD** — total 433; splits: fold I (-1)18- **FLAIR#2** — total 77762; splits: split 1 (-1)19- **FLAIR-HUB** — total 241100; splits: split 1 (-1)2021## Metrics2223- `weighted F1 score` **(primary)** — range: [0, 100] percent24 - F1 score computed per class and averaged, weighted by the number of true instances per class. Calculated as 2 * (precision * recall) / (precision + recall + epsilon).25- `mIoU` **(primary)** — range: [0, 100] percent26 - Mean Intersection over Union across all semantic classes. Computed as the average of TP / (TP + FP + FN) for each class, where TP, FP, and FN are true positives, false positives, and false negatives.2728## Input / output format2930**Input**: Multimodal image tiles containing aerial imagery (RGB+NIR), Sentinel-1/2 time series, and elevation data (DSM/DEM), processed into fixed-size patches for token-based model input.3132**Output**: Per-pixel or per-tile class predictions: 15 multi-label tree species classes for TreeSatAI-TS, or 12/15 semantic segmentation masks for PASTIS-HD, FLAIR#2, and FLAIR-HUB.3334## Scoring recipe3536```python37def compute_miou(preds, gold, num_classes):38 ious = []39 for c in range(num_classes):40 tp = np.sum((preds == c) & (gold == c))41 fp = np.sum((preds == c) & (gold != c))42 fn = np.sum((preds != c) & (gold == c))43 iou = tp / (tp + fp + fn + 1e-6)44 ious.append(iou)45 return np.mean(ious) * 1004647def compute_weighted_f1(preds, gold, num_classes):48 f1s, weights = [], []49 for c in range(num_classes):50 tp = np.sum((preds == c) & (gold == c))51 fp = np.sum((preds == c) & (gold != c))52 fn = np.sum((preds != c) & (gold == c))53 prec = tp / (tp + fp + 1e-6)54 rec = tp / (tp + fn + 1e-6)55 f1 = 2 * prec * rec / (prec + rec + 1e-6)56 f1s.append(f1)57 weights.append(np.sum(gold == c))58 return np.average(f1s, weights=weights) * 10059```6061## Common pitfalls6263- Pre-training must strictly exclude test data; using the union of training and validation sets for self-supervised learning is required to prevent data leakage.64- Models must be evaluated on the exact dataset splits/folds specified (e.g., PASTIS-HD fold I, FLAIR split 1) to ensure comparability with reported baselines.65- Baseline foundation models require extensive hyperparameter tuning for fair comparison, as default settings may not reflect operational performance.6667## Evidence (verbatim from paper)6869> We report the weighted F1 score (%) on TreeSatAI-TS and the mIoU (%) on PASTIS-HD, FLAIR#2, and FLAIR-HUB.7071## Citation7273```bibtex74@misc{labatie2025maestro,75 title={MAESTRO: Masked AutoEncoders for Multimodal, Multitemporal, and Multispectral Earth Observation Data},76 author={Labatie et al. (2025)},77 year={2025},78 note={arXiv:2508.10894}79}80```8182- arXiv: 2508.10894