Panoramica dei Dataset di Classificazione delle Immagini
Struttura del Dataset per attività di classificazione YOLO
Per Ultralytics attività di classificazione YOLO, il dataset deve essere organizzato in una specifica struttura di directory suddivisa sotto il root
directory per facilitare i processi di training, test e, opzionalmente, validazione. Questa struttura include directory separate per il training (train
) e di testing (test
) fasi, con una directory opzionale per la convalida (val
).
Ciascuna di queste directory deve contenere una sottodirectory per ogni classe nel dataset. Le sottodirectory prendono il nome dalla classe corrispondente e contengono tutte le immagini per quella classe. Assicurati che ogni file immagine sia denominato in modo univoco e 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 simile alla 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 convalida.
Utilizzo
Esempio
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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 classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640
Dataset supportati
Ultralytics supporta i seguenti dataset con download automatico:
- Caltech 101: Un dataset contenente immagini di 101 categorie di oggetti per attività di classificazione delle immagini.
- Caltech 256: Una versione estesa di Caltech 101 con 256 categorie di oggetti e immagini più complesse.
- CIFAR-10: Un dataset di 60.000 immagini a colori 32x32 in 10 classi, con 6.000 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 moda per attività di classificazione delle immagini.
- ImageNet: Un set di dati su larga scala per il rilevamento di 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 una sperimentazione e test più rapidi.
- Imagenette: Un sottoinsieme più piccolo di ImageNet che contiene 10 classi facilmente distinguibili per un 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 categoria MNIST dal dataset MNIST. Il dataset contiene un totale di 160 immagini.
Aggiunta del tuo dataset
Se hai un tuo dataset e desideri utilizzarlo per addestrare modelli di classificazione con Ultralytics YOLO, assicurati che segua il formato specificato sopra in "Struttura del dataset" e quindi indica il tuo data
argomento alla directory del dataset durante l'inizializzazione dello script di addestramento.
FAQ
Come devo strutturare il mio dataset per attività di classificazione YOLO?
Per strutturare il dataset per le attività di classificazione Ultralytics YOLO, è necessario seguire un formato specifico di directory suddivise. Organizza il dataset in directory separate per train
, test
, e opzionalmente val
. Ciascuna di queste directory deve contenere sottodirectory denominate come ogni classe, con le immagini corrispondenti all'interno. Ciò facilita i processi di training e valutazione. Ad esempio, si consideri il CIFAR-10 formato del dataset:
cifar-10-/
|-- train/
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
|-- test/
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
|-- val/ (optional)
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
Per maggiori dettagli, visitare la sezione Struttura del dataset per attività di classificazione YOLO.
Quali set di dati sono 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 Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, Imagewoof e MNIST. Questi set di dati sono strutturati in modo da renderli facili da usare con YOLO. La pagina di ogni set di dati fornisce ulteriori dettagli sulla sua struttura e sulle sue applicazioni.
Come posso aggiungere il mio dataset per la classificazione delle immagini YOLO?
Per utilizzare il tuo dataset con Ultralytics YOLO, assicurati che segua il formato di directory specificato richiesto per l'attività di classificazione, con directory separate train
, test
, e opzionalmente val
directory e sottodirectory per ogni classe contenente le rispettive immagini. Una volta che il dataset è strutturato correttamente, indirizza la data
argomento alla directory principale del set di dati durante l'inizializzazione dello script di addestramento. Ecco un esempio in Python:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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 Aggiunta del proprio dataset.
Perché dovrei usare Ultralytics YOLO per la classificazione delle immagini?
Ultralytics YOLO offre diversi vantaggi per la classificazione delle immagini, tra cui:
- Modelli Pre-addestrati: Carica modelli pre-addestrati come
yolo11n-cls.pt
per avviare rapidamente il processo di training. - Facilità d'uso: Semplici comandi API e CLI per il training e la valutazione.
- Alte prestazioni: Precisione e velocità all'avanguardia, ideali per applicazioni in tempo reale.
- Supporto per dataset multipli: Integrazione perfetta con vari dataset popolari come CIFAR-10, ImageNet e altri.
- Community e Supporto: Accesso a una vasta documentazione e a una community attiva per la risoluzione dei problemi e i miglioramenti.
Per ulteriori approfondimenti e applicazioni nel mondo reale, è possibile esplorare Ultralytics YOLO.
Come posso addestrare un modello utilizzando Ultralytics YOLO?
L'addestramento di un modello utilizzando Ultralytics YOLO può essere eseguito facilmente sia in Python che tramite CLI. Ecco un esempio:
Esempio
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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 classify train data=path/to/data model=yolo11n-cls.pt epochs=100 imgsz=640
Questi esempi dimostrano la semplicità del processo di addestramento di un modello YOLO utilizzando entrambi gli approcci. Per maggiori informazioni, visitare la sezione Utilizzo e la pagina Addestramento per le attività di classificazione.