Panoramica sui dataset per la classificazione delle immagini
Struttura del dataset per le attività di classificazione con 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 test (test), con una directory opzionale per la validazione (val).
Ognuna di queste directory deve contenere una sottodirectory per ogni classe presente nel dataset. Le sottodirectory prendono il nome della classe corrispondente e contengono tutte le immagini per quella classe. Assicurati che ogni file immagine sia nominato in modo univoco e 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 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 addestramento e valutare accuratamente le prestazioni durante le fasi di test 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 dei dataset integrati (ad esempio cifar10, imagenette o mnist160) scaricherà e memorizzerà automaticamente i dati la prima volta che li richiami. 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 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 dataset composto da 70.000 immagini in scala di grigi di 10 categorie di moda per attività di classificazione delle immagini.
- ImageNet: Un dataset su larga scala per rilevamento oggetti e 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 un test più rapidi.
- Imagenette: Un sottoinsieme più piccolo di ImageNet che contiene 10 classi facilmente distinguibili per un addestramento e un 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 160 immagini in totale.
Aggiungi 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 in "Struttura del dataset" e quindi punta il tuo argomento data alla directory del dataset quando inizializzi lo script di addestramento.
FAQ
Come posso strutturare il mio dataset per le attività di classificazione YOLO?
Per strutturare il tuo dataset per le attività di classificazione di Ultralytics YOLO, dovresti seguire uno specifico formato di directory suddivise. Organizza il tuo dataset in directory separate per train, test e, opzionalmente, val. Ognuna di queste directory deve contenere sottodirectory nominate in base a ogni 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 Struttura del dataset per le attività di classificazione YOLO.
Quali dataset sono supportati da Ultralytics YOLO per la classificazione delle immagini?
Ultralytics YOLO supporta il download automatico di diversi dataset per la classificazione delle 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 tale da renderli facili da usare con YOLO. La pagina di ogni dataset fornisce ulteriori dettagli sulla sua struttura e sulle 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 per train, test e, opzionalmente, val, e sottodirectory per ogni classe contenenti le rispettive immagini. Una volta che il tuo dataset è strutturato correttamente, punta l'argomento data alla directory root 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)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 preaddestrati: Carica modelli preaddestrati come
yolo26n-cls.ptper avviare rapidamente il tuo processo di addestramento. - Facilità d'uso: API semplici e comandi CLI per l'addestramento e la valutazione.
- Alte prestazioni: Accuratezza e velocità allo stato dell'arte, ideali per applicazioni in tempo reale.
- Supporto per dataset multipli: Integrazione fluida 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 dei problemi e i miglioramenti.
Per ulteriori approfondimenti e applicazioni nel mondo reale, puoi 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:
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 dimostrano il processo diretto di addestramento di un modello YOLO utilizzando entrambi gli approcci. Per ulteriori informazioni, visita la sezione Utilizzo e la pagina Addestramento per le attività di classificazione.