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.

Licenze

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.

Roboflow 100 diverse object detection benchmark

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.

Risultati del benchmarking

I risultati del benchmarking ottenuti utilizzando lo script fornito verranno archiviati nella directory ultralytics-benchmarks/, specificamente nel file evaluation.txt.

Esempio di benchmarking

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:

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.

Roboflow 100 sample images with annotations

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:

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}
}

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:

  1. Aereo: 7 dataset (ad es. immagini satellitari, viste da droni).
  2. Videogiochi: 7 dataset (ad es. oggetti da vari ambienti di gioco).
  3. Microscopico: 11 dataset (ad es. cellule, particelle).
  4. Sottomarino: 5 dataset (ad es. vita marina, oggetti sommersi).
  5. Documenti: 8 dataset (ad es. aree di testo, elementi di moduli).
  6. Elettromagnetico: 12 dataset (ad es. firme radar, visualizzazioni di dati spettrali).
  7. 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:

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, prendi in considerazione la visita alla nostra vasta collezione di dataset o la consultazione di altri dataset di rilevamento compatibili con i modelli Ultralytics.

Commenti