Vai al contenuto

Panoramica dei set di dati per il rilevamento degli oggetti

L'addestramento di un modello di rilevamento degli oggetti robusto e preciso richiede un set di dati completo. Questa guida presenta i vari formati di set di dati compatibili con il modello Ultralytics YOLO e fornisce informazioni sulla loro struttura, sul loro utilizzo e su come convertire i diversi formati.

Formati di dati supportati

Ultralytics YOLO formato

Il formato Ultralytics YOLO è un formato di configurazione del dataset che ti permette di definire la directory principale del dataset, i percorsi relativi alle directory delle immagini di formazione/validazione/test oppure *.txt file contenenti i percorsi delle immagini e un dizionario di nomi di classi. Ecco un esempio:

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8  # dataset root dir
train: images/train  # train images (relative to 'path') 4 images
val: images/val  # val images (relative to 'path') 4 images
test:  # test images (optional)

# Classes (80 COCO classes)
names:
  0: person
  1: bicycle
  2: car
  # ...
  77: teddy bear
  78: hair drier
  79: toothbrush

Le etichette per questo formato devono essere esportate in formato YOLO con un solo *.txt file per immagine. Se non ci sono oggetti in un'immagine, non c'è alcun file *.txt è necessario. Il *.txt Il file deve essere formattato con una riga per ogni oggetto in class x_center y_center width height formato. Le coordinate della casella devono essere in xywh normalizzato (da 0 a 1). Se le tue caselle sono in pixel, devi dividere x_center e width per larghezza dell'immagine e y_center e height per altezza dell'immagine. I numeri delle classi devono essere indicizzati a zero (iniziano con 0).

Esempio di immagine etichettata

Il file di etichetta corrispondente all'immagine precedente contiene 2 persone (classe 0) e un pareggio (classe 27):

Esempio di file di etichetta

Quando utilizzi il formato Ultralytics YOLO , organizza le immagini di formazione e di convalida e le etichette come mostrato nell'esempio seguente.

Esempio di struttura della directory del dataset

Utilizzo

Ecco come puoi utilizzare questi formati per addestrare il tuo modello:

Esempio

from ultralytics import YOLO

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

# Train the model
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640

Set di dati supportati

Ecco un elenco dei set di dati supportati e una breve descrizione di ciascuno:

  • Argoverse: Una raccolta di dati di sensori raccolti da veicoli autonomi. Contiene annotazioni di tracciamento 3D per gli oggetti delle auto.
  • COCO: Common Objects in Context (COCO) è un set di dati su larga scala per il rilevamento, la segmentazione e la didascalia di oggetti con 80 categorie di oggetti.
  • COCO8: Sottoinsieme più piccolo del dataset COCO, COCO8 è più leggero e veloce da addestrare.
  • GlobalWheat2020: Un set di dati contenente immagini di teste di grano per la Global Wheat Challenge 2020.
  • Oggetti365: Un set di dati su larga scala per il rilevamento di oggetti, con 365 categorie di oggetti e 600k immagini, che ha lo scopo di far progredire la ricerca sul rilevamento di oggetti.
  • OpenImagesV7: Un set di dati completo di Google con 1,7 milioni di immagini di addestramento e 42.000 immagini di convalida.
  • SKU-110K: Un set di dati contenente immagini di prodotti al dettaglio densamente imballati, destinati al rilevamento di oggetti in ambienti di vendita al dettaglio.
  • VisDrone: Un set di dati incentrato sulle immagini scattate con i droni, contenente varie categorie di oggetti come automobili, pedoni e ciclisti.
  • VOC: PASCAL VOC è un popolare set di dati per il rilevamento di oggetti con 20 categorie di oggetti tra cui veicoli, animali e mobili.
  • xVedi: Un set di dati contenente immagini satellitari ad alta risoluzione, progettato per il rilevamento di varie classi di oggetti nelle viste dall'alto.

Aggiungi il tuo set di dati

Se hai un tuo set di dati e vuoi utilizzarlo per addestrare i modelli di rilevamento con il formato Ultralytics YOLO , assicurati che segua il formato specificato sopra in "FormatoUltralytics YOLO ". Converti le tue annotazioni nel formato richiesto e specifica i percorsi, il numero di classi e i nomi delle classi nel file di configurazione YAML.

Porta o converti i formati delle etichette

Formato del set di dati COCO in formato YOLO

Puoi convertire facilmente le etichette dal popolare formato COCO al formato YOLO utilizzando il seguente frammento di codice:

Esempio

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir='path/to/coco/annotations/')

Questo strumento di conversione può essere utilizzato per convertire il set di dati COCO o qualsiasi altro set di dati nel formato COCO nel formato Ultralytics YOLO .

Ricordati di controllare due volte che il set di dati che vuoi utilizzare sia compatibile con il tuo modello e che segua le convenzioni di formato necessarie. I dataset correttamente formattati sono fondamentali per addestrare modelli di rilevamento di oggetti di successo.



Creato 2023-11-12, Aggiornato 2024-01-14
Autori: glenn-jocher (6)

Commenti