Dataset Roboflow 100
Roboflow 100, sponsorizzato da Intel, è un dataset di benchmark innovativo per il rilevamento di oggetti. Include 100 dataset eterogenei. Questo benchmark è progettato specificamente per testare l'adattabilità dei modelli di computer vision, come i modelli Ultralytics YOLO, a vari domini, tra cui sanità, immagini aeree e videogiochi.
Ultralytics offre due opzioni di licenza per soddisfare diverse esigenze di utilizzo:
- 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: Progettata per uso commerciale, questa licenza consente l'integrazione fluida del software e dei modelli AI di Ultralytics in prodotti e servizi commerciali. Se il tuo scenario prevede applicazioni commerciali, contattaci tramite Ultralytics Licensing.
Caratteristiche principali
- Domini eterogenei: Include 100 dataset suddivisi in sette domini distinti: Aereo, Videogiochi, Microscopico, Sottomarino, Documenti, Elettromagnetico e Mondo reale.
- Scala: Il benchmark comprende 224.714 immagini suddivise in 805 classi, che rappresentano oltre 11.170 ore di lavoro di etichettatura dei dati.
- Standardizzazione: Tutte le immagini sono pre-elaborate e ridimensionate a 640x640 pixel per una valutazione coerente.
- Valutazione pulita: Si concentra sull'eliminazione dell'ambiguità delle classi e filtra le classi sottorappresentate per garantire una valutazione del modello più accurata.
- Annotazioni: Include riquadri di delimitazione per gli oggetti, adatti per l'addestramento e la valutazione di modelli di rilevamento oggetti utilizzando metriche come mAP.
Struttura del dataset
Il dataset Roboflow 100 è organizzato in sette categorie, ognuna 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.
- 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 fornisce un banco di prova vasto ed eterogeneo per i modelli di rilevamento oggetti, rispecchiando un'ampia gamma di scenari applicativi reali presenti in varie Soluzioni Ultralytics.
Benchmarking
Il benchmarking dei dataset prevede la valutazione delle prestazioni dei modelli di machine learning su dataset specifici utilizzando metriche standardizzate. Le metriche comuni includono accuratezza, mean Average Precision (mAP) e F1-score. Puoi saperne di più nella nostra guida alle metriche di prestazione YOLO.
I risultati del benchmarking ottenuti utilizzando lo script fornito verranno archiviati nella directory ultralytics-benchmarks/, specificamente nel file evaluation.txt.
Lo script seguente dimostra come sottoporre a benchmarking programmatico un modello Ultralytics YOLO (ad es. YOLO26n) su tutti i 100 dataset del benchmark Roboflow 100 utilizzando la classe RF100Benchmark.
import os
import shutil
from pathlib import Path
from ultralytics.utils.benchmarks import RF100Benchmark
# Initialize RF100Benchmark and set API key
benchmark = RF100Benchmark()
benchmark.set_key(api_key="YOUR_ROBOFLOW_API_KEY")
# Parse dataset and define file paths
names, cfg_yamls = benchmark.parse_dataset()
val_log_file = Path("ultralytics-benchmarks") / "validation.txt"
eval_log_file = Path("ultralytics-benchmarks") / "evaluation.txt"
# Run benchmarks on each dataset in RF100
for ind, path in enumerate(cfg_yamls):
path = Path(path)
if path.exists():
# Fix YAML file and run training
benchmark.fix_yaml(str(path))
os.system(f"yolo detect train data={path} model=yolo26s.pt epochs=1 batch=16")
# Run validation and evaluate
os.system(f"yolo detect val data={path} model=runs/detect/train/weights/best.pt > {val_log_file} 2>&1")
benchmark.evaluate(str(path), str(val_log_file), str(eval_log_file), ind)
# Remove the 'runs' directory
runs_dir = Path.cwd() / "runs"
shutil.rmtree(runs_dir)
else:
print("YAML file path does not exist")
continue
print("RF100 Benchmarking completed!")Applicazioni
Roboflow 100 è prezioso per varie applicazioni relative alla computer vision 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 in scenari reali oltre ai comuni dataset di benchmark come COCO o PASCAL VOC.
- Mettere a confronto le capacità dei modelli di rilevamento oggetti su diversi dataset, incluse aree specializzate come la sanità, le immagini aeree e i 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 suggerimenti per l'addestramento del modello specializzati o approcci di fine-tuning come il transfer learning.
Per ulteriori idee e ispirazione su applicazioni reali, esplora le nostre guide sui progetti pratici o dai un'occhiata alla Piattaforma Ultralytics per un addestramento del modello e una distribuzione semplificati.
Utilizzo
Il dataset Roboflow 100, inclusi metadati e link per il download, è disponibile sul repository GitHub ufficiale di Roboflow 100. Puoi accedere e utilizzare il dataset direttamente da lì per le tue esigenze di benchmarking. L'utility Ultralytics RF100Benchmark semplifica il processo di download e preparazione di questi dataset per l'uso con i modelli Ultralytics.
Dati ed annotazioni di esempio
Roboflow 100 consiste in dataset con immagini eterogenee acquisite 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à riscontrata 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 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 nel tuo lavoro di ricerca o sviluppo, ti preghiamo di citare l'articolo 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 il loro impegno significativo nella creazione e nel mantenimento del dataset Roboflow 100 come risorsa preziosa per la comunità della computer vision.
Se ti interessa esplorare ulteriori dataset per migliorare i tuoi progetti di rilevamento oggetti e machine learning, sentiti libero di visitare la nostra vasta collezione di dataset, che include una varietà di altri dataset di rilevamento.
FAQ
Che cos'è il dataset Roboflow 100 e perché è significativo per il rilevamento oggetti?
Il dataset Roboflow 100 è un benchmark per modelli di rilevamento oggetti. Comprende 100 dataset eterogenei che coprono domini come la sanità, le immagini aeree e i videogiochi. Il suo significato risiede nel fornire un modo standardizzato per testare l'adattabilità e la robustezza del modello in un'ampia gamma di scenari reali, andando oltre i benchmark tradizionali, spesso limitati a un solo dominio.
Quali domini sono coperti dal dataset Roboflow 100?
Il dataset Roboflow 100 abbraccia sette diversi domini, offrendo sfide uniche per i modelli di rilevamento oggetti:
- Aereo: 7 dataset (ad es. immagini satellitari, viste da droni).
- Videogiochi: 7 dataset (ad es. oggetti da vari ambienti di gioco).
- Microscopico: 11 dataset (ad es. cellule, particelle).
- Sottomarino: 5 dataset (ad es. vita marina, oggetti sommersi).
- Documenti: 8 dataset (ad es. aree di testo, elementi di moduli).
- Elettromagnetico: 12 dataset (ad es. 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 generalizzabilità dei modelli di computer vision.
Cosa dovrei includere quando cito il dataset Roboflow 100 nella mia ricerca?
Quando utilizzi il dataset Roboflow 100, ti preghiamo di citare l'articolo originale per dare credito ai creatori. Ecco la citazione BibTeX consigliata:
@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, prendi in considerazione la visita alla nostra vasta collezione di dataset o la consultazione di altri dataset di rilevamento compatibili con i modelli Ultralytics.