rs-vlm-zero-shot-eval
RSTeller: Scaling Up Visual Language Modeling in Remote Sensing with Rich Linguistic Semantics from Openly Available Data and Large Language Models — Junyao Ge et al. (arXiv:2408.14744, 2024)
What this evaluates
Evaluates the zero-shot image classification and text-to-image retrieval capabilities of Vision-Language Models (VLMs) fine-tuned on remote sensing data. It probes the model's ability to generalize to unseen RS scenes and text queries without task-specific fine-tuning, while also measuring resistance to catastrophic forgetting on general-domain benchmarks.
Datasets
- AID — total 2000; splits: test (2000)
- EuroSAT — total 2700; splits: test (2700)
- fMoW — total 106081; splits: val (106081)
- Million-AID — total 10000; splits: train (10000)
- PatternNet — total 30400; splits: train (30400)
- RESISC — total 31500; splits: train (31500)
- RSI-CB — total 24747; splits: train (24747)
- ImageNet-1K — total 50000; splits: val (50000)
- UCM Captions — total 210; splits: test (210)
- RSICD — total 1093; splits: test (1093)
- RSITMD — total 452; splits: test (452)
Metrics
zero-shot top-1 accuracy (primary) — range: percent
- Percentage of images correctly classified into their ground-truth category using the model's zero-shot classifier (typically via cosine similarity between image and text embeddings).
zero-shot retrieval recall@K — range: percent
- Recall at K (K=1, 5, 10), measuring the percentage of queries where the correct matching image or text appears within the top K results of the ranked list.
Input / output format
Input: Image patch (or full image) and corresponding text caption/query.
Output: Predicted class label (classification) or ranked list of images/texts (retrieval).
Scoring recipe
def compute_metrics(predictions, gold_labels, queries, gold_images, K=10):
# Classification
correct = sum(1 for pred, gold in zip(predictions, gold_labels) if pred == gold)
accuracy = (correct / len(gold_labels)) * 100
# Retrieval
recalls = []
for query, gold_img in zip(queries, gold_images):
scores = model.encode(query) @ model.encode(images).T
top_k_indices = np.argsort(scores)[-K:][::-1]
recalls.append(1 if gold_img in top_k_indices else 0)
recall_at_k = (sum(recalls) / len(queries)) * 100
return accuracy, recall_at_k
Common pitfalls
- The paper uses non-standard splits for some benchmarks (e.g., fMoW on 'val', Million-AID/PatternNet/RESISC/RSI-CB on 'train') which differs from typical zero-shot evaluation protocols.
- Performance heavily depends on the initial CLIP checkpoint used for continual pre-training; results are not directly comparable across different base checkpoints without accounting for their distinct zero-shot baselines.
- Catastrophic forgetting is evaluated on ImageNet-1K separately from RS benchmarks, requiring careful tracking of general-domain performance degradation.
Evidence (verbatim from paper)
For evaluative purposes, we employ a series of zero-shot classification and image retrieval tasks. For zero-shot classification, we use eight widely recognized and comparatively extensive benchmark datasets, including AID, EuroSAT, fMoW, Million-AID, PatternNet, NWPU-RESISC45 (RESISC), RSI-CB256 (RSI-CB), and ImageNet-1K. ... The evaluation results are presented in Tables [9] and [10]. These tables report the top-1 accuracy for zero-shot classification tasks, as well as the average recall rates at top-1 (R@1), top-5 (R@5), and top-10 (R@10) for zero-shot text-to-image retrieval tasks.
Citation
@misc{ge2024rsteller,
title={RSTeller: Scaling Up Visual Language Modeling in Remote Sensing with Rich Linguistic Semantics from Openly Available Data and Large Language Models},
author={Junyao Ge et al.},
year={2024},
note={arXiv:2408.14744}
}
1---2name: rs-vlm-zero-shot-eval3description: Evaluates the zero-shot image classification and text-to-image retrieval capabilities of Vision-Language Models (VLMs) fine-tuned on remote sensing data. It probes the model's ability to generalize to unseen RS scenes and text queries without task-specific fine-tuning, while also measuring resistance to catastrophic forgetting on general-domain benchmarks. Use when the user wants to benchmark on AID, EuroSAT, fMoW, Million-AID, PatternNet, RESISC, RSI-CB, ImageNet-1K, UCM Captions, RSICD, RSITMD, or asks about evaluating this task. Reports zero-shot top-1 accuracy.4---56# rs-vlm-zero-shot-eval78> RSTeller: Scaling Up Visual Language Modeling in Remote Sensing with Rich Linguistic Semantics from Openly Available Data and Large Language Models — Junyao Ge et al. (arXiv:2408.14744, 2024)910## What this evaluates1112Evaluates the zero-shot image classification and text-to-image retrieval capabilities of Vision-Language Models (VLMs) fine-tuned on remote sensing data. It probes the model's ability to generalize to unseen RS scenes and text queries without task-specific fine-tuning, while also measuring resistance to catastrophic forgetting on general-domain benchmarks.1314## Datasets1516- **AID** — total 2000; splits: test (2000)17- **EuroSAT** — total 2700; splits: test (2700)18- **fMoW** — total 106081; splits: val (106081)19- **Million-AID** — total 10000; splits: train (10000)20- **PatternNet** — total 30400; splits: train (30400)21- **RESISC** — total 31500; splits: train (31500)22- **RSI-CB** — total 24747; splits: train (24747)23- **ImageNet-1K** — total 50000; splits: val (50000)24- **UCM Captions** — total 210; splits: test (210)25- **RSICD** — total 1093; splits: test (1093)26- **RSITMD** — total 452; splits: test (452)2728## Metrics2930- `zero-shot top-1 accuracy` **(primary)** — range: percent31 - Percentage of images correctly classified into their ground-truth category using the model's zero-shot classifier (typically via cosine similarity between image and text embeddings).32- `zero-shot retrieval recall@K` — range: percent33 - Recall at K (K=1, 5, 10), measuring the percentage of queries where the correct matching image or text appears within the top K results of the ranked list.3435## Input / output format3637**Input**: Image patch (or full image) and corresponding text caption/query.3839**Output**: Predicted class label (classification) or ranked list of images/texts (retrieval).4041## Scoring recipe4243```python44def compute_metrics(predictions, gold_labels, queries, gold_images, K=10):45 # Classification46 correct = sum(1 for pred, gold in zip(predictions, gold_labels) if pred == gold)47 accuracy = (correct / len(gold_labels)) * 10048 49 # Retrieval50 recalls = []51 for query, gold_img in zip(queries, gold_images):52 scores = model.encode(query) @ model.encode(images).T53 top_k_indices = np.argsort(scores)[-K:][::-1]54 recalls.append(1 if gold_img in top_k_indices else 0)55 recall_at_k = (sum(recalls) / len(queries)) * 10056 return accuracy, recall_at_k57```5859## Common pitfalls6061- The paper uses non-standard splits for some benchmarks (e.g., fMoW on 'val', Million-AID/PatternNet/RESISC/RSI-CB on 'train') which differs from typical zero-shot evaluation protocols.62- Performance heavily depends on the initial CLIP checkpoint used for continual pre-training; results are not directly comparable across different base checkpoints without accounting for their distinct zero-shot baselines.63- Catastrophic forgetting is evaluated on ImageNet-1K separately from RS benchmarks, requiring careful tracking of general-domain performance degradation.6465## Evidence (verbatim from paper)6667> For evaluative purposes, we employ a series of zero-shot classification and image retrieval tasks. For zero-shot classification, we use eight widely recognized and comparatively extensive benchmark datasets, including AID, EuroSAT, fMoW, Million-AID, PatternNet, NWPU-RESISC45 (RESISC), RSI-CB256 (RSI-CB), and ImageNet-1K. ... The evaluation results are presented in Tables [9] and [10]. These tables report the top-1 accuracy for zero-shot classification tasks, as well as the average recall rates at top-1 (R@1), top-5 (R@5), and top-10 (R@10) for zero-shot text-to-image retrieval tasks.6869## Citation7071```bibtex72@misc{ge2024rsteller,73 title={RSTeller: Scaling Up Visual Language Modeling in Remote Sensing with Rich Linguistic Semantics from Openly Available Data and Large Language Models},74 author={Junyao Ge et al.},75 year={2024},76 note={arXiv:2408.14744}77}78```7980- arXiv: 2408.14744