Dataset Roboflow 100#
Roboflow 100, sponsorizzato da Intel, è un rivoluzionario dataset di riferimento per la rilevazione degli oggetti. Include 100 dataset diversificati. Questo benchmark è progettato specificamente per testare l'adattabilità dei modelli di computer vision, come i modelli Ultralytics YOLO, a diversi domini, tra cui sanità, immagini aeree e videogiochi.
Funzionalità principali#
- Domini diversificati: include 100 dataset distribuiti in sette domini distinti: Aereo, Videogiochi, Microscopia, Sottomarino, Documenti, Elettromagnetico e Mondo reale.
- Scala: il benchmark comprende 224.714 immagini distribuite su 805 classi, per un totale di oltre 11.170 ore di lavoro di etichettatura dei dati.
- Standardizzazione: tutte le immagini sono preelaborate e ridimensionate a 640x640 pixel per garantire una valutazione coerente.
- Valutazione accurata: si concentra sull'eliminazione dell'ambiguità tra le classi e filtra le classi sottorappresentate per garantire una valutazione dei modelli più accurata.
- Annotazioni: include bounding box per gli oggetti, adatti per addestrare e valutare i modelli di rilevazione degli oggetti utilizzando metriche come mAP.
Struttura del dataset#
Il dataset Roboflow 100 è organizzato in sette categorie, ognuna contenente una raccolta unica di dataset, immagini e classi:
- Aereo: 7 dataset, 9.683 immagini, 24 classi.
- Videogiochi: 7 dataset, 11.579 immagini, 88 classi.
- Microscopia: 11 dataset, 13.378 immagini, 28 classi.
- Sottomarino: 5 dataset, 18.003 immagini, 39 classi.
- Documenti: 8 dataset, 24.813 immagini, 90 classi.
- Elettromagnetico: 12 dataset, 36.381 immagini, 41 classi.
- Mondo reale: 50 dataset, 110.615 immagini, 495 classi.
Questa struttura offre un ambiente di test diversificato ed esteso per i modelli di rilevazione degli oggetti, rappresentando un'ampia gamma di scenari applicativi del mondo reale presenti in varie soluzioni Ultralytics.
Benchmark#
Il benchmark di un dataset consiste nel valutare le prestazioni dei modelli di machine learning su dataset specifici utilizzando metriche standardizzate. Tra le metriche comuni figurano l'accuratezza, la precisione media media (mAP) e il punteggio F1. Per saperne di più, consulta la nostra guida alle metriche delle prestazioni di YOLO.
Ogni output viene raggruppato in un'unica directory runs/<task>/multitrain/: ogni dataset viene sottoposto a fine-tuning nella propria sottodirectory (con il proprio results.png) e le metriche per dataset e quelle medie vengono scritte in multitrain_results.json, insieme a un grafico a barre multitrain_results.png. La chiamata model.train() restituisce anche un dizionario {dataset: metrics} per l'accesso programmatico.
Lo script seguente scarica da Roboflow i dataset Roboflow 100 elencati in datasets_links.txt, quindi esegue il fine-tuning di un singolo modello di base (ad esempio, YOLO26n) sull'intera raccolta con un'unica chiamata model.train(). Passando un elenco di dataset, il modello di base viene sottoposto a fine-tuning su ciascuno di essi in sequenza e i risultati tra i diversi dataset vengono visualizzati automaticamente.
import re
from pathlib import Path
from roboflow import Roboflow
from ultralytics import YOLO
from ultralytics.utils import ASSETS_URL, LOGGER, YAML
from ultralytics.utils.downloads import safe_download
# Download the RF100 datasets (requires a Roboflow API key)
rf = Roboflow(api_key="YOUR_ROBOFLOW_API_KEY")
safe_download(f"{ASSETS_URL}/datasets_links.txt") # list of RF100 dataset links
datasets = []
for line in Path("datasets_links.txt").read_text().splitlines():
try:
_, _url, workspace, project, version = re.split("/+", line.strip())
location = f"rf-100/{project}-{version}"
rf.workspace(workspace).project(project).version(version).download("yolov8", location=location)
yaml = Path(location) / "data.yaml"
cfg = YAML.load(yaml) # point train/val at the downloaded image folders
cfg["train"], cfg["val"] = "train/images", "valid/images"
YAML.save(yaml, cfg)
datasets.append(str(yaml))
except Exception as e:
LOGGER.warning(f"Failed to prepare dataset from {line!r}: {e}")
# Fine-tune one base model across all RF100 datasets and visualize the cross-dataset results
model = YOLO("yolo26n.pt")
results = model.train(data=datasets, epochs=100, imgsz=640) # {dataset: metrics}
# Per-dataset runs, multitrain_results.json (per-dataset + mean), and multitrain_results.png are saved
# together under runs/detect/multitrain. Read results in-memory or from the JSON for custom post-processing.
for dataset, metrics in results.items():
if metrics: # None if that dataset failed to train
print(f"{dataset}: mAP50-95 = {metrics['metrics/mAP50-95(B)']:.4f}")Applicazioni#
Roboflow 100 è prezioso per diverse applicazioni legate alla computer vision e al deep learning. Ricercatori e ingegneri possono sfruttare questo benchmark per:
- Valutare le prestazioni dei modelli di rilevazione degli oggetti in un contesto multidominio.
- Testare l'adattabilità e la robustezza dei modelli in scenari del mondo reale, oltre i comuni dataset di benchmark come COCO o PASCAL VOC.
- Valutare tramite benchmark le capacità dei modelli di rilevazione degli oggetti su dataset diversificati, inclusi ambiti specializzati come sanità, immagini aeree e videogiochi.
- Confrontare le prestazioni dei modelli tra diverse architetture di reti neurali e tecniche di ottimizzazione.
- Individuare le sfide specifiche del dominio che possono richiedere consigli specializzati per l'addestramento dei modelli o approcci di fine-tuning come il transfer learning.
Per ulteriori idee e ispirazione sulle applicazioni del mondo reale, esplora le nostre guide sui progetti pratici oppure scopri Ultralytics Platform per un addestramento dei modelli e un deployment semplificati.
Utilizzo#
Il dataset Roboflow 100, inclusi i metadati e i link per il download, è disponibile nel repository GitHub ufficiale di Roboflow 100. Puoi accedere direttamente al dataset e utilizzarlo per le tue esigenze di benchmark. Una volta scaricati e preparati i dataset come mostrato sopra, puoi eseguire il fine-tuning dei modelli Ultralytics sull'intera raccolta con un'unica chiamata model.train(), passando l'elenco dei file YAML dei dataset.
Dati ed esempi di annotazioni#
Roboflow 100 è composto da dataset con immagini diversificate, acquisite da varie angolazioni e in diversi domini. Di seguito sono riportati esempi di immagini annotate incluse nel benchmark RF100, che mostrano la varietà di oggetti e scene. Tecniche come l'aumento dei dati possono aumentare ulteriormente la diversità durante l'addestramento.
La diversità presente nel benchmark Roboflow 100 rappresenta un progresso significativo rispetto ai benchmark tradizionali, che spesso si concentrano sull'ottimizzazione di una singola metrica in un dominio limitato. Questo approccio completo contribuisce allo sviluppo di modelli di computer vision più robusti e versatili, capaci di funzionare bene in una moltitudine di scenari diversi.
Citazioni e ringraziamenti#
Se utilizzi il dataset Roboflow 100 nelle tue attività di ricerca o sviluppo, cita il paper originale:
@misc{rf100benchmark,
Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
Year = {2022},
Eprint = {arXiv:2211.13523},
url = {https://arxiv.org/abs/2211.13523}
}Esprimiamo la nostra gratitudine al team di Roboflow e a tutti i collaboratori per il loro notevole impegno nella creazione e nella manutenzione del dataset Roboflow 100 come risorsa preziosa per la comunità della computer vision.
Se ti interessa esplorare altri dataset per potenziare i tuoi progetti di rilevazione degli oggetti e machine learning, visita la nostra raccolta completa di dataset, che include diversi altri dataset di rilevazione.
FAQ#
Il dataset Roboflow 100 è un benchmark per i modelli di rilevazione degli oggetti. Comprende 100 dataset diversificati che coprono domini come sanità, immagini aeree e videogiochi. La sua importanza consiste nel fornire un metodo standardizzato per testare l'adattabilità e la robustezza dei modelli in un'ampia gamma di scenari del mondo reale, andando oltre i benchmark tradizionali, spesso limitati a un singolo dominio.
Il dataset Roboflow 100 copre sette domini diversificati, offrendo sfide uniche per i modelli di rilevazione degli oggetti:
- Aereo: 7 dataset (ad esempio, immagini satellitari e riprese da droni).
- Videogiochi: 7 dataset (ad esempio, oggetti provenienti da diversi ambienti di gioco).
- Microscopia: 11 dataset (ad esempio, cellule e particelle).
- Sottomarino: 5 dataset (ad esempio, fauna marina e oggetti sommersi).
- Documenti: 8 dataset (ad esempio, aree di testo ed elementi di moduli).
- Elettromagnetico: 12 dataset (ad esempio, firme radar e visualizzazioni di dati spettrali).
- Mondo reale: 50 dataset (un'ampia categoria che include oggetti di uso quotidiano, scene, vendita al dettaglio e altro).
Questa varietà rende RF100 una risorsa eccellente per valutare la generalizzabilità dei modelli di computer vision.
Quando utilizzi il dataset Roboflow 100, cita il paper originale per riconoscere il merito ai suoi creatori. Ecco la citazione BibTeX consigliata:
Citazione@misc{rf100benchmark, Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz}, Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark}, Year = {2022}, Eprint = {arXiv:2211.13523}, url = {https://arxiv.org/abs/2211.13523} }Per ulteriori approfondimenti, valuta la possibilità di visitare la nostra raccolta completa di dataset o di esplorare altri dataset di rilevazione compatibili con i modelli Ultralytics.