Vai al contenuto

Panoramica dei set di dati per la classificazione delle immagini

Struttura del dataset per i compiti di classificazione di YOLO

Per Ultralytics YOLO per le attività di classificazione, il set di dati deve essere organizzato in una specifica struttura di directory suddivise sotto il nome di root per facilitare i processi di formazione, test e convalida facoltativa. Questa struttura comprende directory separate per la formazione (train) e di test (test), con una directory opzionale per la convalida (val).

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

Esempio di struttura delle cartelle

Consideriamo il set di dati 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/
|   |-- airplane/
|   |   |-- 10_airplane.png
|   |   |-- 11_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 100_automobile.png
|   |   |-- 101_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1000_bird.png
|   |   |-- 1001_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- val/ (optional)
|   |-- 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 validazione.

Utilizzo

Esempio

from ultralytics import YOLO

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

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=path/to/data model=yolov8n-cls.pt epochs=100 imgsz=640

Set di dati supportati

Ultralytics supporta i seguenti set di dati con download automatico:

  • Caltech 101: un set di dati contenente immagini di 101 categorie di oggetti per compiti 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 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 set di dati composto da 70.000 immagini in scala di grigi di 10 categorie di moda per compiti di classificazione delle immagini.
  • ImageNet: Un dataset su larga scala per il rilevamento di oggetti e la classificazione di immagini con oltre 14 milioni di immagini e 20.000 categorie.
  • ImageNet-10: un sottoinsieme più piccolo di ImageNet con 10 categorie per una sperimentazione e un test più rapidi.
  • Imagenette: Un sottoinsieme più piccolo di ImageNet che contiene 10 classi facilmente distinguibili per una formazione e un test più rapidi.
  • Imagewoof: Un sottoinsieme più impegnativo di ImageNet contenente 10 categorie di razze canine per compiti di classificazione delle immagini.
  • MNIST: Un dataset di 70.000 immagini in scala di grigi di cifre scritte a mano per compiti di classificazione delle immagini.

Aggiungi il tuo set di dati

Se hai un tuo set di dati e vuoi utilizzarlo per addestrare i modelli di classificazione con Ultralytics, assicurati che segua il formato specificato sopra in "Formato del set di dati" e quindi punta il tuo data alla directory dei dati.

DOMANDE FREQUENTI

Come posso strutturare il mio set di dati per le attività di classificazione di YOLO ?

Per strutturare il tuo set di dati per le attività di classificazione di Ultralytics YOLO , devi seguire uno specifico formato di directory separate. Organizza il tuo set di dati in directory separate per train, teste, facoltativamente val. Ognuna di queste directory deve contenere delle sottodirectory con il nome di ogni classe e le immagini corrispondenti. Questo facilita i processi di formazione e valutazione. A titolo di esempio, consideriamo il formato del dataset CIFAR-10:

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

Per maggiori dettagli, visita Struttura del set di dati per i compiti di classificazione di YOLO .

Quali sono i set di dati supportati da Ultralytics YOLO per la classificazione delle immagini?

Ultralytics YOLO supporta il download automatico di diversi set di dati per la classificazione delle immagini, tra cui:

Questi set di dati sono strutturati in modo da essere facilmente utilizzabili con YOLO. La pagina di ogni set di dati fornisce ulteriori dettagli sulla sua struttura e sulle sue applicazioni.

Come posso aggiungere il mio set di dati per la classificazione delle immagini di YOLO ?

Per utilizzare il tuo set di dati con Ultralytics YOLO , assicurati che segua il formato di directory specificato richiesto per l'attività di classificazione, con una directory separata per il tuo lavoro. train, teste, facoltativamente val e sottodirectory per ogni classe contenente le rispettive immagini. Una volta che il tuo set di dati è strutturato correttamente, punta il pulsante data alla directory principale del tuo dataset quando inizializzi lo script di addestramento. Ecco un esempio in Python:

from ultralytics import YOLO

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

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

Maggiori dettagli sono disponibili nella sezione Aggiungere il proprio set di dati.

Perché utilizzare Ultralytics YOLO per la classificazione delle immagini?

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

  • Modelli pre-addestrati: Carica i modelli preaddestrati come yolov8n-cls.pt per dare il via al tuo processo di formazione.
  • Facilità d'uso: semplici comandi API e CLI per la formazione e la valutazione.
  • Prestazioni elevate: Precisione e velocità all'avanguardia, ideali per le applicazioni in tempo reale.
  • Supporto per più set di dati: Integrazione perfetta con diversi dataset popolari come CIFAR-10, ImageNet e altri.
  • Comunità e supporto: Accesso a un'ampia documentazione e a una comunità attiva per la risoluzione dei problemi e i miglioramenti.

Per ulteriori approfondimenti e applicazioni reali, puoi esplorare Ultralytics YOLO.

Come posso addestrare un modello utilizzando Ultralytics YOLO ?

L'addestramento di un modello utilizzando Ultralytics YOLO può essere fatto facilmente sia in Python che in CLI. Ecco un esempio:

Esempio

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-cls.pt")  # load a pretrained model

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=path/to/data model=yolov8n-cls.pt epochs=100 imgsz=640

Questi esempi dimostrano il semplice processo di formazione di un modello YOLO utilizzando uno dei due approcci. Per maggiori informazioni, visita la sezione Utilizzo.



Creato 2023-11-12, Aggiornato 2024-07-04
Autori: glenn-jocher (7), stormsson (1), GreatV (1)

Commenti