This repository contains the IALA-10 dataset and benchmark code for fine-grained buoy classification aligned with the IALA Maritime Buoyage System.
Paper: IALA-10: A Benchmark for Fine-Grained Maritime Buoy Classification Aligned with the Maritime Buoyage System Jan Lukas Augustin, Oliver Niggemann — CVPR 2026 Workshop on Maritime Computer Vision (MaCVi)
1,234 labeled buoy image crops across 10 classes:
| MBS Group | Class | Count |
|---|---|---|
| Cardinal | cardinal_north | 37 |
| Cardinal | cardinal_east | 41 |
| Cardinal | cardinal_south | 25 |
| Cardinal | cardinal_west | 21 |
| Lateral (A) | lateral_red | 268 |
| Lateral (A) | lateral_green | 201 |
| Safe Water | safe_water | 96 |
| Special | special | 106 |
| Non-MBS | mooring | 84 |
| Non-MBS | other | 355 |
Images are organized in ImageFolder format under dataset/. Each image has a UUID filename. The file dataset/provenance.csv maps each UUID to its source category and source-image group identifier.
Sources: Wikimedia Commons, NOAA, Flickr, Geograph, Unsplash, the collision avoidance dataset (Gorczak et al., 2025), and additional manually collected images.
# Install dependencies
pip install torch torchvision scikit-learn transformers tqdm opencv-python pandas matplotlib
# Run full benchmark (extract features + evaluate)
python benchmark/run_all.py
# Extract features only
python benchmark/extract_features.py
# Evaluate only (requires extracted features)
python benchmark/evaluate.py- 5-fold CV:
results/splits/fold_{0-4}.json— stratified group k-fold with source-image grouping - Manifest:
results/splits/manifest.json— full dataset index with paths and labels
Source-image grouping ensures all crops from the same photograph stay in the same fold, preventing data leakage from shared backgrounds.
| Method | Accuracy | Macro-F1 | Safety Cost |
|---|---|---|---|
| DINOv3-B + Band + LogReg | 0.927 | 0.894 | 0.137 |
| DINOv3-B + LogReg | 0.925 | 0.891 | 0.164 |
| DINOv3-S + LogReg | 0.916 | 0.866 | 0.198 |
| ConvNeXt-Tiny (supervised) | 0.882 | 0.786 | 0.282 |
| CLIP-L/14 (linear probe) | 0.823 | 0.659 | 0.464 |
| CLIP (zero-shot, IALA) | 0.399 | 0.287 | 1.127 |
The 10-class taxonomy is defined in dataset/classes.yaml. See the paper for full details on the IALA Maritime Buoyage System alignment.
- Code: MIT License
- Dataset: CC BY 4.0
@inproceedings{augustin2026iala10,
title={{IALA-10}: A Benchmark for Fine-Grained Maritime Buoy Classification Aligned with the Maritime Buoyage System},
author={Augustin, Jan Lukas and Niggemann, Oliver},
booktitle={CVPR Workshops (MaCVi)},
year={2026}
}