Panoramica dei dataset di classificazione delle immagini#
Struttura del dataset per le attività di classificazione YOLO#
Per le attività di classificazione YOLO di Ultralytics, il dataset deve essere organizzato secondo una struttura specifica di directory suddivise, all'interno della directory root. Questa struttura include una directory train e una directory val (sono accettate anche valid e validation), con una directory test facoltativa. Se non esiste una directory di convalida, viene usata la directory test al suo posto. Se nella directory principale non è presente alcuna directory train, ma è contenuta una cartella per ogni classe, Ultralytics suddivide automaticamente le immagini in proporzione 80/20 in una nuova directory <root>_split, con le sottodirectory train e val.
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 salvato in un formato comune, come JPEG o PNG.
Esempio di struttura delle cartelle#
Prendi come esempio il dataset CIFAR-10. La struttura delle cartelle dovrebbe essere simile alla seguente:
cifar10/
|
|-- 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 consente al modello di apprendere efficacemente da classi ben organizzate durante l'addestramento e di valutare accuratamente le prestazioni durante i test e la convalida.
Utilizzo#
from ultralytics import YOLO
# Carica un modello
model = YOLO("yolo26n-cls.pt") # carica un modello preaddestrato (consigliato per l'addestramento)
# Addestra il modello
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) scarica e memorizza automaticamente i dati nella cache al primo utilizzo. Imposta data su un percorso di cartella solo se hai preparato un dataset personalizzato.
Dataset supportati#
Ultralytics supporta il download automatico dei seguenti dataset. La maggior parte di questi dataset è disponibile anche su Ultralytics Platform, dove puoi sfogliare immagini e annotazioni, visualizzare le statistiche dei dataset e clonarli per l'addestramento nel cloud.
- Caltech 101: dataset contenente immagini di 101 categorie di oggetti per le attività di classificazione delle immagini.
- Caltech 256: Una versione ampliata di Caltech 101, con 256 categorie di oggetti e immagini più impegnative.
- CIFAR-10: Un dataset di 60.000 immagini a colori da 32x32 pixel, suddivise in 10 classi con 6.000 immagini per classe.
- CIFAR-100: Una versione ampliata 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: benchmark di classificazione delle immagini ImageNet-1k (ILSVRC-2012), con 1.000 classi, 1,28 milioni di immagini di addestramento e 50.000 immagini di convalida.
- ImageNet-10: Un sottoinsieme ridotto di ImageNet con 10 categorie, per sperimentare e testare più rapidamente.
- Imagenette: Un sottoinsieme ridotto di ImageNet con 10 classi facilmente distinguibili, per accelerare l'addestramento e i test.
- Imagewoof: Un sottoinsieme più impegnativo di ImageNet con 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) delle suddivisioni di addestramento e test di MNIST. Il dataset contiene in totale 160 immagini.
Aggiungere il tuo dataset#
Se hai un tuo dataset e vuoi usarlo per addestrare modelli di classificazione con Ultralytics YOLO, assicurati che rispetti il formato indicato sopra nella sezione «Struttura del dataset», quindi imposta l'argomento data sulla directory del dataset quando inizializzi lo script di addestramento.
Domande frequenti#
Per strutturare il dataset per le attività di classificazione Ultralytics YOLO, segui un formato specifico di directory suddivise. Organizza il dataset in directory separate per
trainevale, facoltativamente, pertest. Ognuna di queste directory deve contenere sottodirectory denominate in base a ciascuna classe, con le immagini corrispondenti al loro interno. Questo facilita i processi di addestramento e valutazione. Per un esempio, considera il formato del dataset CIFAR-10:cifar10/ |-- train/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- val/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- test/ (optional) | |-- airplane/ | |-- automobile/ | |-- bird/ | ...Per maggiori dettagli, visita 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 usati facilmente con YOLO. La pagina di ciascun dataset fornisce ulteriori dettagli sulla struttura e sulle applicazioni.
Per usare un tuo dataset con Ultralytics YOLO, assicurati che rispetti il formato di directory richiesto per l'attività di classificazione, con directory separate
traineval(ed eventualmentetest) e sottodirectory per ciascuna classe contenenti le immagini corrispondenti. Dopo aver strutturato correttamente il dataset, imposta l'argomentodatasulla directory principale del dataset quando inizializzi lo script di addestramento. Ecco un esempio in Python:from ultralytics import YOLO # Carica un modello model = YOLO("yolo26n-cls.pt") # carica un modello preaddestrato (consigliato per l'addestramento) # Addestra il modello results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)Puoi trovare maggiori dettagli nella sezione Aggiungere un tuo dataset.
Ultralytics YOLO offre diversi vantaggi per la classificazione delle immagini, tra cui:
- Modelli preaddestrati: carica modelli preaddestrati come
yolo26n-cls.ptper avviare rapidamente il processo di addestramento. - Facilità d'uso: comandi API e CLI semplici 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 immediata con diversi dataset molto diffusi, come CIFAR-10, ImageNet e altri.
- Community e supporto: accesso a una documentazione approfondita 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.
- Modelli preaddestrati: carica modelli preaddestrati come
Puoi addestrare facilmente un modello con Ultralytics YOLO sia in Python sia tramite CLI. Ecco un esempio:
Esempiofrom ultralytics import YOLO # Carica un modello model = YOLO("yolo26n-cls.pt") # carica un modello preaddestrato # Addestra il modello results = model.train(data="path/to/dataset", epochs=100, imgsz=640)Questi esempi mostrano quanto sia semplice addestrare un modello YOLO con entrambi gli approcci. Per maggiori informazioni, visita la sezione Utilizzo e la pagina Addestramento dedicata alle attività di classificazione.