Evaluates self-supervised remote sensing representations across classification and segmentation tasks using optical and radar-optical inputs. Probes representation quality via finetuning, linear/nonlinear probing, kNN, and clustering. Use when the user wants to benchmark on BigEarthNet, fMoW-Sentinel, EuroSAT, Canadian Cropland, DFC2020, DW-Expert, MARIDA, or asks about evaluating this task. Reports mAP, Top 1 Acc., mIoU.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add qhjqhj00/research-skills-pool --skill croma-eval --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Croma Eval?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-croma-eval)More formats (shields.io, HTML) on the badges page.
---
name: croma-eval
description: Evaluates self-supervised remote sensing representations across classification and segmentation tasks using optical and radar-optical inputs. Probes representation quality via finetuning, linear/nonlinear probing, kNN, and clustering. Use when the user wants to benchmark on BigEarthNet, fMoW-Sentinel, EuroSAT, Canadian Cropland, DFC2020, DW-Expert, MARIDA, or asks about evaluating this task. Reports mAP, Top 1 Acc., mIoU.
metadata:
skill_kind: dataset_eval
source_arxiv: 2311.00566
bibtex_key: fuller2023croma
confidence: high
---
# croma-eval
> CROMA: Remote Sensing Representations with Contrastive Radar-Optical Masked Autoencoders — Fuller et al. (2023) (arXiv:2311.00566, 2023)
## What this evaluates
Evaluates self-supervised remote sensing representations across classification and segmentation tasks using optical and radar-optical inputs. Probes representation quality via finetuning, linear/nonlinear probing, kNN, and clustering.
## Datasets
- **BigEarthNet** — total 153485; splits: train (35420), val (118065)
- **fMoW-Sentinel** — total 156226; splits: train (71287), val (84939)
- **EuroSAT** — total 21600; splits: train (16200), val (5400)
- **Canadian Cropland** — total 76972; splits: train (53884), val (23088)
- **DFC2020** — total 55026; splits: train (46152), val (8874)
- **DW-Expert** — total 71444; splits: train (20422), val (51022)
- **MARIDA** — total 3297; splits: train (1682), val (1615)
## Metrics
- `mAP` **(primary)** — range: [0, 1]
- Mean Average Precision across all classes. Computes the average precision for each class and averages them, suitable for multi-label classification.
- `Top 1 Acc.` **(primary)** — range: [0, 1]
- Top-1 Accuracy. The fraction of samples where the predicted class matches the ground truth label.
- `mIoU` **(primary)** — range: [0, 1]
- Mean Intersection over Union. Computes the IoU for each class between predicted and ground truth masks, then averages across all classes.
- `kNN Accuracy` — range: [0, 1]
- Accuracy of a non-parametric k-Nearest Neighbors classifier (k=20) using frozen representations.
- `K-means Accuracy` — range: [0, 1]
- Clustering accuracy obtained by applying K-means to frozen representations and matching cluster labels to ground truth.
- `F1 score` — range: [0, 1]
- Harmonic mean of precision and recall for binary classification tasks in sparse probing experiments.
## Input / output format
**Input**: Sentinel-2 multispectral images (12 bands) and/or Sentinel-1 radar images (VV, VH backscatter), typically resized to 264×264 for classification or cropped to 96×96 for segmentation.
**Output**: Class labels (multi-label for BigEarthNet, single-label for others), segmentation masks, or frozen feature vectors for probing.
## Scoring recipe
```python
def compute_metrics(predictions, gold, task):
if task == 'classification':
if gold.ndim > 1: # multi-label
return mean_average_precision(gold, predictions)
else:
return accuracy(gold, predictions.argmax(axis=1))
elif task == 'segmentation':
return mean_intersection_over_union(gold, predictions)
elif task == 'knn':
return knn_accuracy(gold, predictions, k=20)
elif task == 'clustering':
return clustering_accuracy(gold, predictions)
elif task == 'sparse_probing':
return f1_score(gold, predictions)
```
## Common pitfalls
- Using the full training set instead of the 10% split for BigEarthNet and fMoW-Sentinel, which inflates performance and breaks fair comparison.
- Comparing models trained under different data splits or hyperparameter budgets, as originally reported results vary significantly.
- Ignoring distribution shift when finetuning on datasets like fMoW-Sentinel where the model was pre-trained on the same data, giving baselines an unfair advantage.
## Evidence (verbatim from paper)
> Table 1: Classification results on four benchmarks, under finetuning (FT), and frozen linear (LP) and nonlinear (MLP) probing. BigEarthNet (10%) mAP, fMoW-Sentinel (10%) Top 1 Acc., EuroSAT Top 1 Acc., Canadian Cropland Top 1 Acc.
## Citation
```bibtex
@misc{fuller2023croma,
title={CROMA: Remote Sensing Representations with Contrastive Radar-Optical Masked Autoencoders},
author={Fuller et al. (2023)},
year={2023},
note={arXiv:2311.00566}
}
```
- arXiv: 2311.00566
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!