Ultralytics YOLO27:
Get Started

Dataset Roboflow 100#

Roboflow 100, sponsorizzato da Intel, è un benchmark innovativo per il rilevamento degli oggetti. Include 100 dataset eterogenei. Questo benchmark è progettato specificamente per verificare l'adattabilità dei modelli di visione artificiale, come i modelli Ultralytics YOLO, a diversi ambiti, tra cui la sanità, le immagini aeree e i videogiochi.

Roboflow 100 diverse object detection benchmark

Funzionalità principali#

  • Ambiti diversi: include 100 dataset distribuiti in sette ambiti distinti: aereo, videogiochi, microscopico, subacqueo, documenti, elettromagnetico e mondo reale.
  • Dimensioni: il benchmark comprende 224.714 immagini appartenenti a 805 classi e rappresenta oltre 11.170 ore di attività di etichettatura dei dati.
  • Standardizzazione: tutte le immagini vengono preelaborate e ridimensionate a 640x640 pixel per garantire una valutazione coerente.
  • Valutazione pulita: si concentra sull'eliminazione dell'ambiguità tra le classi ed esclude quelle sottorappresentate per garantire una valutazione del modello più chiara.
  • Annotazioni: include riquadri per gli oggetti, adatti all'addestramento e alla valutazione dei modelli di rilevamento degli oggetti con metriche come mAP.

Struttura del dataset#

Il dataset Roboflow 100 è organizzato in sette categorie, ognuna delle quali contiene una raccolta esclusiva 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 prova ampio e diversificato per i modelli di rilevamento degli oggetti e rispecchia un'ampia gamma di scenari applicativi reali presenti nelle varie soluzioni Ultralytics.

Benchmark#

Il benchmarking di un dataset consiste nel valutare le prestazioni dei modelli di apprendimento automatico su dataset specifici utilizzando metriche standardizzate. Tra le metriche più comuni figurano accuratezza, media della precisione media (mAP) e punteggio F1. Puoi approfondire questi argomenti nella nostra guida alle metriche di prestazione di YOLO.

Risultati del benchmark

Tutti i risultati vengono raggruppati in un'unica directory runs/<task>/multitrain/: ogni dataset viene sottoposto a fine-tuning nella propria sottodirectory (con il proprio results.png), mentre le metriche per dataset e quelle medie vengono salvate in multitrain_results.json, insieme a un grafico a barre multitrain_results.png. Anche la chiamata model.train() restituisce un dizionario {dataset: metrics} per l'accesso programmatico.

Esempio di benchmark

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 ciascun dataset in sequenza e i risultati tra i 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 è una risorsa preziosa per diverse applicazioni legate alla visione artificiale e al deep learning. Ricercatori e ingegneri possono sfruttare questo benchmark per:

Per trovare altre idee e ispirazione sulle applicazioni reali, esplora le nostre guide ai progetti pratici oppure scopri Ultralytics Platform per semplificare l'addestramento dei modelli e la distribuzione.

Utilizzo#

Il dataset Roboflow 100, compresi i metadati e i link per il download, è disponibile nel repository GitHub ufficiale di Roboflow 100. Puoi accedere al dataset direttamente da lì e utilizzarlo per le tue esigenze di benchmarking. Una volta scaricati e preparati i dataset come illustrato 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 di esempio e annotazioni#

Roboflow 100 comprende dataset con immagini eterogenee, acquisite da diverse angolazioni e in vari ambiti. Di seguito sono riportati alcuni esempi di immagini annotate incluse nel benchmark RF100, che illustrano la varietà di oggetti e scene. Tecniche come l'aumento dei dati possono ampliare ulteriormente la varietà durante l'addestramento.

Roboflow 100 sample images with annotations

La diversità del benchmark Roboflow 100 rappresenta un significativo progresso rispetto ai benchmark tradizionali, spesso incentrati sull'ottimizzazione di una singola metrica in un ambito limitato. Questo approccio completo aiuta a sviluppare modelli di visione artificiale più robusti e versatili, capaci di ottenere buoni risultati in un'ampia varietà di scenari.

Citazioni e ringraziamenti#

Se utilizzi il dataset Roboflow 100 nelle tue attività di ricerca o sviluppo, cita 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}
}

Ringraziamo il team Roboflow e tutti i collaboratori per l'impegno profuso nella creazione e nella manutenzione del dataset Roboflow 100, una risorsa preziosa per la comunità della visione artificiale.

Se vuoi esplorare altri dataset per arricchire i tuoi progetti di rilevamento degli oggetti e apprendimento automatico, visita la nostra raccolta completa di dataset, che include diversi altri dataset di rilevamento.

Domande frequenti#

  • Il dataset Roboflow 100 è un benchmark per i modelli di rilevamento degli oggetti. Comprende 100 dataset eterogenei che coprono ambiti come la sanità, le immagini aeree e i videogiochi. La sua importanza deriva dal fatto che offre un metodo standardizzato per verificare adattabilità e robustezza dei modelli in un'ampia gamma di scenari reali, superando i benchmark tradizionali, spesso limitati a un singolo ambito.

  • Il dataset Roboflow 100 copre sette ambiti diversi, ognuno dei quali pone sfide specifiche ai modelli di rilevamento degli oggetti:

    1. Aereo: 7 dataset (ad esempio, immagini satellitari e viste da droni).
    2. Videogiochi: 7 dataset (ad esempio, oggetti provenienti da diversi ambienti di gioco).
    3. Microscopico: 11 dataset (ad esempio, cellule e particelle).
    4. Subacqueo: 5 dataset (ad esempio, fauna marina e oggetti sommersi).
    5. Documenti: 8 dataset (ad esempio, aree di testo ed elementi di moduli).
    6. Elettromagnetico: 12 dataset (ad esempio, segnali radar e visualizzazioni di dati spettrali).
    7. Mondo reale: 50 dataset (una categoria ampia che comprende oggetti di uso quotidiano, scene, commercio al dettaglio e altro).

    Questa varietà rende RF100 un'ottima risorsa per valutare la generalizzabilità dei modelli di visione artificiale.

  • Quando utilizzi il dataset Roboflow 100, cita l'articolo originale per riconoscere il merito dei 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 approfondire, visita la nostra raccolta completa di dataset oppure consulta altri dataset di rilevamento compatibili con i modelli Ultralytics.

Commenti