Panoramica dei dataset per la classificazione di immagini#
Struttura del dataset per i task di classificazione YOLO#
Per le attività di classificazione YOLO di Ultralytics, il dataset deve essere organizzato in una specifica struttura di directory suddivise all'interno della directory root per facilitare i processi di addestramento, test e validazione opzionale. Questa struttura include directory separate per le fasi di addestramento (train) e validazione (val), con una directory opzionale per i test (test).
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 archiviato 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 apparire così:
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 training e valutare accuratamente le prestazioni durante le fasi di testing e validazione.
Utilizzo#
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)La maggior parte dei nomi di dataset integrati (ad esempio cifar10, imagenette o mnist160) scaricherà e memorizzerà automaticamente i dati nella cache la prima volta che li riferisci. Punta data a un percorso di cartella solo quando hai curato un dataset personalizzato.
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 di 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 di 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 sperimentazioni e test più rapidi.
- Imagenette: Un sottoinsieme più piccolo di ImageNet che contiene 10 classi facilmente distinguibili per training e test più rapidi.
- Imagewoof: Un sottoinsieme più impegnativo di ImageNet contenente 10 categorie di razze canine per attività di classificazione di immagini.
- MNIST: Un dataset di 70.000 immagini in scala di grigi di cifre scritte a mano per attività di classificazione di immagini.
- MNIST160: Prime 8 immagini di ciascuna cifra (0-9) sia dagli split di training che di test di MNIST. Il dataset contiene in totale 160 immagini.
Aggiungere il tuo dataset#
Se hai il tuo dataset e desideri utilizzarlo per addestrare modelli di classificazione con Ultralytics YOLO, assicurati che segua il formato specificato sopra nella sezione "Dataset Structure" e poi punta il tuo argomento data alla directory del dataset quando inizializzi il tuo script di addestramento.
FAQ#
Per strutturare il tuo dataset per le attività di classificazione YOLO di Ultralytics, dovresti seguire uno specifico formato di directory suddivise. Organizza il tuo dataset in directory separate per
train,teste opzionalmenteval. Ognuna di queste directory dovrebbe contenere sottodirectory denominate in base a ciascuna classe, con le immagini corrispondenti all'interno. Questo facilita processi di addestramento e valutazione fluidi. Per un esempio, considera 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 la sezione Dataset Structure for YOLO Classification Tasks.
Ultralytics YOLO supporta il download automatico di diversi dataset per la classificazione di immagini, inclusi Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, Imagewoof e MNIST. Questi dataset sono strutturati in modo da renderli facili da usare con YOLO. La pagina di ciascun dataset fornisce ulteriori dettagli sulla sua struttura e sulle sue applicazioni.
Per usare il tuo dataset con Ultralytics YOLO, assicurati che segua il formato di directory specificato richiesto per l'attività di classificazione, con directory separate per
train,teste opzionalmenteval, e sottodirectory per ciascuna classe contenenti le rispettive immagini. Una volta che il tuo dataset è strutturato correttamente, punta l'argomentodataalla directory radice del tuo dataset quando inizializzi lo 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 possono essere trovati nella sezione Adding your own dataset.
Ultralytics YOLO offre diversi vantaggi per la classificazione di immagini, tra cui:
- Pretrained Models: Carica modelli pre-addestrati come
yolo26n-cls.ptper dare il via al tuo processo di addestramento. - Facilità d'uso: API semplice e comandi CLI per il training e la valutazione.
- High Performance: Accuratezza e velocità all'avanguardia, ideali per applicazioni in tempo reale.
- Support for Multiple Datasets: Integrazione senza soluzione di continuità con vari dataset popolari come CIFAR-10, ImageNet e altri.
- Community e supporto: accesso a documentazione estesa e a una community attiva per la risoluzione di problemi e miglioramenti.
Per ulteriori approfondimenti e applicazioni nel mondo reale, puoi esplorare Ultralytics YOLO.
- Pretrained Models: Carica modelli pre-addestrati come
L'addestramento di un modello utilizzando Ultralytics YOLO può essere eseguito facilmente sia in Python che tramite CLI. Ecco un esempio:
Esempiofrom 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 dimostrano il processo semplice di addestramento di un modello YOLO utilizzando entrambi gli approcci. Per ulteriori informazioni, visita la sezione Usage e la pagina Train per le attività di classificazione.