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 del set di dati COCO8.

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: Un set di dati che contiene dati di tracciamento 3D e di previsione del movimento da ambienti urbani, con numerose annotazioni.
  • 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.
  • LVIS: un set di dati su larga scala per il rilevamento, la segmentazione e la didascalia degli oggetti con 1203 categorie di oggetti.
  • COCO8: un sottoinsieme più piccolo delle prime 4 immagini di COCO train e COCO val, adatto a test rapidi.
  • Grano globale 2020: Un set di dati contenente immagini di teste di grano per la Global Wheat Challenge 2020.
  • Objects365: Un dataset di alta qualità e su larga scala per il rilevamento di oggetti con 365 categorie di oggetti e oltre 600K immagini annotate.
  • 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 per il rilevamento di oggetti densi in ambienti di vendita al dettaglio con oltre 11.000 immagini e 1,7 milioni di caselle di delimitazione.
  • VisDrone: Un set di dati che contiene dati sul rilevamento di oggetti e sul tracciamento di più oggetti da immagini catturate da droni con oltre 10.000 immagini e sequenze video.
  • VOC: il dataset Pascal Visual Object Classes (VOC) per il rilevamento e la segmentazione degli oggetti con 20 classi di oggetti e oltre 11K immagini.
  • xView: Un set di dati per il rilevamento di oggetti in immagini dall'alto con 60 categorie di oggetti e oltre 1 milione di oggetti annotati.
  • Roboflow 100: un benchmark di rilevamento di oggetti diversi con 100 set di dati che abbracciano sette domini di immagini per una valutazione completa dei modelli.
  • Tumore al cervello: Un set di dati per il rilevamento dei tumori cerebrali comprende immagini di risonanza magnetica o TAC con dettagli sulla presenza, la posizione e le caratteristiche del tumore.
  • African-wildlife: Un set di dati con immagini di animali selvatici africani, tra cui bufali, elefanti, rinoceronti e zebre.
  • Firma: Un set di dati che contiene immagini di vari documenti con firme annotate, a supporto delle ricerche sulla verifica dei documenti e sull'individuazione delle frodi.

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 in 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.

DOMANDE FREQUENTI

Qual è il formato del dataset di Ultralytics YOLO e come strutturarlo?

Il formato Ultralytics YOLO è una configurazione strutturata per definire i set di dati nei tuoi progetti di formazione. Si tratta di impostare i percorsi delle immagini di formazione, convalida e test e le etichette corrispondenti. Ad esempio:

path: ../datasets/coco8  # dataset root directory
train: images/train  # training images (relative to 'path')
val: images/val  # validation images (relative to 'path')
test:  # optional test images
names:
  0: person
  1: bicycle
  2: car
  # ...

Le etichette vengono salvate in *.txt file con un file per immagine, formattato come class x_center y_center width height con coordinate normalizzate. Per una guida dettagliata, consulta la sezione Esempio di set di dati COCO8.

Come posso convertire un set di dati COCO nel formato YOLO ?

Puoi convertire un set di dati COCO nel formato YOLO utilizzando gli strumenti di conversione di Ultralytics . Ecco un metodo rapido:

from ultralytics.data.converter import convert_coco

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

Questo codice convertirà le tue annotazioni COCO nel formato YOLO , consentendo una perfetta integrazione con i modelli Ultralytics YOLO . Per ulteriori dettagli, visita la sezione Porta o Converti i formati delle etichette.

Quali sono i set di dati supportati da Ultralytics YOLO per il rilevamento degli oggetti?

Ultralytics YOLO supporta un'ampia gamma di set di dati, tra cui:

La pagina di ogni set di dati fornisce informazioni dettagliate sulla struttura e sull'utilizzo per una formazione efficiente su YOLOv8 . Esplora l'elenco completo nella sezione Set di dati supportati.

Come posso iniziare ad addestrare un modello YOLOv8 utilizzando il mio set di dati?

Per iniziare l'addestramento di un modello YOLOv8 , assicurati che il tuo dataset sia formattato correttamente e che i percorsi siano definiti in un file YAML. Usa il seguente script per iniziare l'addestramento:

Esempio

from ultralytics import YOLO

model = YOLO("yolov8n.pt")  # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=path/to/your_dataset.yaml model=yolov8n.pt epochs=100 imgsz=640

Consulta la sezione Utilizzo per maggiori dettagli sull'utilizzo delle diverse modalità, inclusi i comandi di CLI .

Dove posso trovare esempi pratici di utilizzo di Ultralytics YOLO per il rilevamento di oggetti?

Ultralytics fornisce numerosi esempi e guide pratiche per l'utilizzo di YOLOv8 in diverse applicazioni. Per una panoramica completa, visita il Blog di Ultralytics dove puoi trovare casi di studio, tutorial dettagliati e storie della comunità che mostrano il rilevamento di oggetti, la segmentazione e molto altro con YOLOv8. Per esempi specifici, consulta la sezione Uso della documentazione.



Creato 2023-11-12, Aggiornato 2024-07-04
Autori: glenn-jocher (10), RizwanMunawar (2), IvorZhu331 (1), Laughing-q (1)

Commenti