Ultralytics YOLO27:

Panoramica dei dataset per la classificazione delle immagini#

Struttura del dataset per le attività di classificazione YOLO#

Per le attività di classificazione YOLO di Ultralytics, il set di dati deve essere organizzato in una specifica struttura di directory suddivisa sotto la directory root. Questa struttura include una directory train e una directory val (sono accettate anche valid e validation), con una directory test opzionale. Se non esiste alcuna directory di validazione, per la validazione viene utilizzata invece la directory test.

Ognuna di queste directory deve contenere una sottodirectory per ogni classe del dataset. Le sottodirectory prendono il nome dalla classe corrispondente e contengono tutte le immagini di quella classe. Assicurati che ogni file immagine abbia un nome univoco e sia memorizzato in un formato comune come JPEG o PNG.

Esempio di struttura delle cartelle#

Considera il dataset CIFAR-10 come esempio. La struttura delle cartelle dovrebbe essere la seguente:

cifar-10-/
|
|-- train/
|   |-- airplane/
|   |   |-- 10008_airplane.png
|   |   |-- 10009_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 1000_automobile.png
|   |   |-- 1001_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 10014_bird.png
|   |   |-- 10015_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- test/ (optional)
|   |-- airplane/
|   |   |-- 10_airplane.png
|   |   |-- 11_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 100_automobile.png
|   |   |-- 101_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1000_bird.png
|   |   |-- 1001_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- val/
|   |-- airplane/
|   |   |-- 105_airplane.png
|   |   |-- 106_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 102_automobile.png
|   |   |-- 103_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1045_bird.png
|   |   |-- 1046_bird.png
|   |   |-- ...
|   |
|   |-- ...

Questo approccio strutturato garantisce che il modello possa apprendere efficacemente da classi ben organizzate durante la fase di addestramento e valutare accuratamente le prestazioni durante le fasi di test e convalida.

Utilizzo#

Esempio
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-cls.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
Suggerimento

La maggior parte dei nomi dei dataset integrati (ad esempio cifar10, imagenette o mnist160) scarica e memorizza automaticamente i dati nella cache la prima volta che li utilizzi. Imposta data sul percorso di una cartella solo quando hai preparato un dataset personalizzato.

Dataset supportati#

Ultralytics supporta i seguenti set di dati con il download automatico. La maggior parte di questi set di dati è ospitata anche su Ultralytics Platform, dove puoi esplorare le immagini e le annotazioni, visualizzare le statistiche del set di dati e clonarle per l'addestramento nel cloud.

  • Caltech 101: un dataset contenente immagini di 101 categorie di oggetti per le attività di classificazione delle immagini.
  • Caltech 256: una versione estesa di Caltech 101 con 256 categorie di oggetti e immagini più impegnative.
  • CIFAR-10: un dataset di 60K immagini a colori 32x32 suddivise in 10 classi, con 6K immagini per classe.
  • CIFAR-100: una versione estesa di CIFAR-10 con 100 categorie di oggetti e 600 immagini per classe.
  • Fashion-MNIST: un dataset composto da 70.000 immagini in scala di grigi di 10 categorie di abbigliamento per attività di classificazione delle immagini.
  • ImageNet: un dataset su larga scala per il rilevamento degli oggetti e la classificazione delle immagini, con oltre 14 milioni di immagini e 20.000 categorie.
  • ImageNet-10: un sottoinsieme più piccolo di ImageNet con 10 categorie per sperimentazioni e test più rapidi.
  • Imagenette: un sottoinsieme più piccolo di ImageNet contenente 10 classi facilmente distinguibili per addestramento e test più rapidi.
  • Imagewoof: un sottoinsieme più impegnativo di ImageNet contenente 10 categorie di razze canine per attività di classificazione delle immagini.
  • MNIST: un dataset di 70.000 immagini in scala di grigi di cifre scritte a mano per attività di classificazione delle immagini.
  • MNIST160: le prime 8 immagini di ogni cifra (0-9) sia dalla suddivisione di addestramento sia da quella di test di MNIST. Il dataset contiene 160 immagini in totale.

Aggiungere il tuo dataset#

Se hai un tuo dataset e vuoi utilizzarlo per addestrare modelli di classificazione con Ultralytics YOLO, assicurati che segua il formato specificato sopra nella sezione "Struttura del dataset", quindi imposta l'argomento data sulla directory del dataset quando inizializzi lo script di addestramento.

FAQ#

  • Per strutturare il tuo set di dati per le attività di classificazione YOLO di Ultralytics, devi seguire uno specifico formato di directory suddivise. Organizza il tuo set di dati in directory separate per train e val, e facoltativamente test. Ciascuna di queste directory deve contenere sottodirectory denominate in base a ciascuna classe, con le relative immagini all'interno. Ciò facilita processi di addestramento e valutazione fluidi. Per un esempio, considera il formato del set di dati CIFAR-10:

    cifar-10-/
    |-- train/
    |   |-- airplane/
    |   |-- automobile/
    |   |-- bird/
    |   ...
    |-- val/
    |   |-- airplane/
    |   |-- automobile/
    |   |-- bird/
    |   ...
    |-- test/ (optional)
    |   |-- airplane/
    |   |-- automobile/
    |   |-- bird/
    |   ...

    Per ulteriori dettagli, consulta la sezione Struttura del dataset per le attività di classificazione YOLO.

  • Ultralytics YOLO supporta il download automatico di diversi dataset per la classificazione delle immagini, tra cui Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, Imagewoof e MNIST. Questi dataset sono strutturati in modo da poter essere utilizzati facilmente con YOLO. La pagina di ogni dataset fornisce ulteriori dettagli sulla sua struttura e sulle sue applicazioni.

  • Per usare il tuo set di dati con YOLO di Ultralytics, assicurati che segua il formato di directory specificato richiesto per l'attività di classificazione, con directory train e val separate (e facoltativamente test), e sottodirectory per ciascuna classe contenenti le rispettive immagini. Una volta che il tuo set di dati è strutturato correttamente, punta l'argomento data alla directory radice del tuo set di dati durante l'inizializzazione dello script di addestramento. Ecco un esempio in Python:

    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n-cls.pt")  # load a pretrained model (recommended for training)
    
    # Train the model
    results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)

    Ulteriori dettagli sono disponibili nella sezione Aggiunta del tuo dataset.

  • Ultralytics YOLO offre diversi vantaggi per la classificazione delle immagini, tra cui:

    • Modelli preaddestrati: carica modelli preaddestrati come yolo26n-cls.pt per avviare rapidamente il processo di addestramento.
    • Facilità d'uso: comandi semplici di API e CLI per l'addestramento e la valutazione.
    • Prestazioni elevate: accuratezza e velocità all'avanguardia, ideali per le applicazioni in tempo reale.
    • Supporto per più dataset: integrazione perfetta con diversi dataset diffusi come CIFAR-10, ImageNet e altri.
    • Community e supporto: accesso a una documentazione completa e a una community attiva per la risoluzione dei problemi e i miglioramenti.

    Per ulteriori informazioni e applicazioni nel mondo reale, puoi esplorare Ultralytics YOLO.

  • L'addestramento di un modello con Ultralytics YOLO può essere eseguito facilmente sia in Python sia tramite CLI. Ecco un esempio:

    Esempio
    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n-cls.pt")  # load a pretrained model
    
    # Train the model
    results = model.train(data="path/to/dataset", epochs=100, imgsz=640)

    Questi esempi mostrano la semplicità del processo di addestramento di un modello YOLO utilizzando uno dei due approcci. Per ulteriori informazioni, consulta la sezione Utilizzo e la pagina Addestramento per le attività di classificazione.

Commenti