Dataset Roboflow 100#
Roboflow 100, sponsorizzato da Intel, è un set di dati di benchmark innovativo per il rilevamento di oggetti. Include 100 set di dati diversi. Questo benchmark è progettato specificamente per testare l'adattabilità dei modelli di visione artificiale, come i modelli Ultralytics YOLO, a vari domini, tra cui la sanità, le immagini aeree e i videogiochi.
Ultralytics offre due opzioni di licenza per adattarsi a diversi casi d'uso:
- Licenza AGPL-3.0: Questa licenza open source approvata dall'OSI è ideale per studenti e appassionati, poiché promuove la collaborazione aperta e la condivisione delle conoscenze. Consulta il file LICENSE per maggiori dettagli e visita la nostra pagina della Licenza AGPL-3.0.
- Licenza Enterprise: Per uso di sviluppo e produzione, questa licenza consente l'integrazione trasparente del software Ultralytics e dei modelli di IA in prodotti e servizi aziendali, inclusi strumenti interni, flussi di lavoro automatizzati e distribuzioni di produzione, aggirando i requisiti open-source di AGPL-3.0. Per iniziare, contattaci tramite Licenze Ultralytics.
Caratteristiche principali#
- Domini Diversificati: Include 100 dataset in sette domini distinti: Aereo, Videogiochi, Microscopico, Subacqueo, Documenti, Elettromagnetico e Mondo Reale.
- Scala: Il benchmark comprende 224.714 immagini in 805 classi, che rappresentano oltre 11.170 ore di lavoro di etichettatura dei dati.
- Standardizzazione: Tutte le immagini sono preelaborate e ridimensionate a 640x640 pixel per una valutazione coerente.
- Valutazione pulita: Si concentra sull'eliminazione dell'ambiguità delle classi e filtra quelle sottorappresentate per garantire una valutazione del modello più pulita.
- Annotazioni: Include bounding box per gli oggetti, adatte per l'addestramento e la valutazione di modelli di rilevamento di oggetti utilizzando metriche come mAP.
Struttura del dataset#
Il dataset Roboflow 100 è organizzato in sette categorie, ciascuna contenente una collezione unica di dataset, immagini e classi:
- Aereo: 7 dataset, 9.683 immagini, 24 classi.
- Videogiochi: 7 dataset, 11.579 immagini, 88 classi.
- Microscopico: 11 dataset, 13.378 immagini, 28 classi.
- Subacqueo: 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 terreno di test vario ed esteso per i modelli di rilevamento di oggetti, riflettendo un'ampia gamma di scenari applicativi del mondo reale presenti in varie Soluzioni Ultralytics.
Benchmarking#
Il benchmarking dei set di dati comporta la valutazione delle prestazioni dei modelli di apprendimento automatico su set di dati specifici utilizzando metriche standardizzate. Le metriche comuni includono l'accuratezza, la precisione media (mAP) e l'F1-score. Puoi saperne di più nella nostra guida alle metriche delle prestazioni YOLO.
Ogni output è raggruppato in un'unica directory runs/<task>/multitrain/: ogni set di dati viene ottimizzato nella propria sottodirectory (con il proprio results.png), e le metriche per set di dati e 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 i set di dati Roboflow 100 elencati in datasets_links.txt da Roboflow, quindi ottimizza un singolo modello di base (ad es. YOLO26n) nell'intera raccolta in un'unica chiamata model.train(). Passando un elenco di set di dati, il modello di base viene ottimizzato su ciascuno di essi in serie e visualizza automaticamente i risultati tra i vari set di dati.
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 varie applicazioni relative alla visione artificiale e al deep learning. Ricercatori e ingegneri possono sfruttare questo benchmark per:
- Valutare le prestazioni dei modelli di rilevamento oggetti in un contesto multi-dominio.
- Testare l'adattabilità e la robustezza dei modelli a scenari del mondo reale oltre ai comuni set di dati di benchmark come COCO o PASCAL VOC.
- Valutare le capacità dei modelli di rilevamento oggetti su diversi dataset, incluse aree specializzate come assistenza sanitaria, immagini aeree e videogiochi.
- Confrontare le prestazioni dei modelli tra diverse architetture di reti neurali e tecniche di ottimizzazione.
- Identificare le sfide specifiche del dominio che potrebbero richiedere consigli sull'addestramento del modello specialistici o approcci di fine-tuning come il transfer learning.
Per ulteriori idee e ispirazione su applicazioni del mondo reale, esplora le nostre guide sui progetti pratici o dai un'occhiata alla Piattaforma Ultralytics per l'addestramento e il deployment semplificati dei modelli.
Utilizzo#
Il set di dati Roboflow 100, inclusi i metadati e i link per il download, è disponibile sul repository GitHub ufficiale di Roboflow 100. Puoi accedere e utilizzare il set di dati direttamente da lì per le tue esigenze di benchmarking. Una volta scaricati e preparati i set di dati come mostrato sopra, i modelli Ultralytics possono essere ottimizzati sull'intera raccolta in un'unica chiamata model.train() passando l'elenco dei file YAML dei set di dati.
Dati di esempio e annotazioni#
Roboflow 100 è costituito da set di dati con immagini diverse catturate da varie angolazioni e 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 ulteriormente migliorare la diversità durante l'addestramento.
La diversità osservata nel benchmark Roboflow 100 rappresenta un progresso significativo rispetto ai benchmark tradizionali, che spesso si concentrano sull'ottimizzazione di una singola metrica all'interno di un dominio limitato. Questo approccio globale aiuta a sviluppare modelli di visione artificiale più robusti e versatili, in grado di funzionare bene in una moltitudine di scenari diversi.
Citazioni e riconoscimenti#
Se utilizzi il dataset Roboflow 100 nel tuo lavoro di ricerca o sviluppo, ti preghiamo di citare il documento 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}
}Estendiamo la nostra gratitudine al team di Roboflow e a tutti i collaboratori per i loro significativi sforzi nella creazione e nel mantenimento del dataset Roboflow 100 come risorsa preziosa per la comunità di computer vision.
Se sei interessato a esplorare altri set di dati per migliorare i tuoi progetti di rilevamento di oggetti e apprendimento automatico, sentiti libero di visitare la nostra raccolta completa di set di dati, che include una varietà di altri set di dati di rilevamento.
FAQ#
Il set di dati Roboflow 100 è un benchmark per i modelli di rilevamento di oggetti. Comprende 100 set di dati diversi che coprono domini come la sanità, le immagini aeree e i videogiochi. La sua importanza risiede nel fornire un modo standardizzato per testare l'adattabilità e la robustezza del modello in una vasta gamma di scenari del mondo reale, andando oltre i benchmark tradizionali e spesso limitati al dominio.
Il set di dati Roboflow 100 si estende su sette diversi domini, offrendo sfide uniche per i modelli di rilevamento di oggetti:
- Aereo: 7 dataset (ad esempio, immagini satellitari, viste da drone).
- Videogiochi: 7 dataset (ad esempio, oggetti da vari ambienti di gioco).
- Microscopico: 11 dataset (ad esempio, cellule, particelle).
- Subacqueo: 5 dataset (ad esempio, vita marina, oggetti sommersi).
- Documenti: 8 dataset (ad esempio, aree di testo, elementi di modulo).
- Elettromagnetico: 12 dataset (ad esempio, firme radar, visualizzazioni di dati spettrali).
- Mondo Reale: 50 dataset (una categoria ampia che include oggetti quotidiani, scene, vendita al dettaglio, ecc.).
Questa varietà rende RF100 un'eccellente risorsa per valutare la capacità di generalizzazione dei modelli di visione artificiale.
Quando utilizzi il dataset Roboflow 100, ti preghiamo di citare il documento originale per dare credito ai 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 esplorazioni, prendi in considerazione di visitare la nostra raccolta completa di set di dati o di sfogliare altri set di dati di rilevamento compatibili con i modelli Ultralytics.