Vai al contenuto

Panoramica dei set di dati per la stima della posa

Formati di dati supportati

Ultralytics YOLO formato

Il formato delle etichette del dataset utilizzato per l'addestramento dei modelli di posa di YOLO è il seguente:

  1. Un file di testo per ogni immagine: Ogni immagine del set di dati ha un file di testo corrispondente con lo stesso nome del file immagine e l'estensione ".txt".
  2. Una riga per ogni oggetto: Ogni riga del file di testo corrisponde a un'istanza di oggetto nell'immagine.
  3. Informazioni sull'oggetto per riga: Ogni riga contiene le seguenti informazioni sull'istanza dell'oggetto:
    • Indice della classe dell'oggetto: Un numero intero che rappresenta la classe dell'oggetto (ad es. 0 per la persona, 1 per l'auto, ecc.).
    • Coordinate del centro dell'oggetto: Le coordinate x e y del centro dell'oggetto, normalizzate in modo da essere comprese tra 0 e 1.
    • Larghezza e altezza dell'oggetto: La larghezza e l'altezza dell'oggetto, normalizzate in modo che siano comprese tra 0 e 1.
    • Coordinate dei punti chiave dell'oggetto: I punti chiave dell'oggetto, normalizzati per essere compresi tra 0 e 1.

Ecco un esempio del formato dell'etichetta per l'attività di stima della posa:

Formato con Dim = 2

<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>

Formato con Dim = 3

<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <p2-visibility>

In questo formato, <class-index> è l'indice della classe dell'oggetto,<x> <y> <width> <height> sono le coordinate del rettangolo di selezione e <px1> <py1> <px2> <py2> ... <pxn> <pyn> sono le coordinate dei pixel dei punti chiave. Le coordinate sono separate da spazi.

Formato YAML del set di dati

Il framework Ultralytics utilizza un formato di file YAML per definire il dataset e la configurazione del modello per l'addestramento dei modelli di rilevamento. Ecco un esempio del formato YAML utilizzato per definire un set di dati di rilevamento:

# 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-pose  # 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)

# Keypoints
kpt_shape: [17, 3]  # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]

# Classes dictionary
names:
  0: person

Il train e val specificano i percorsi delle directory contenenti rispettivamente le immagini di addestramento e di convalida.

names è un dizionario di nomi di classi. L'ordine dei nomi deve corrispondere all'ordine degli indici delle classi degli oggetti nei file del dataset YOLO .

(Opzionale) se i punti sono simmetrici, allora è necessario un flip_idx, come nel caso del lato sinistro-destro di un essere umano o di un volto. Ad esempio, se ipotizziamo cinque punti chiave del punto di riferimento del viso: [occhio sinistro, occhio destro, naso, bocca sinistra, bocca destra] e l'indice originale è [0, 1, 2, 3, 4], allora il flip_idx è [1, 0, 2, 4, 3] (scambia solo l'indice sinistro-destro, cioè 0-1 e 3-4, e non modifica gli altri come il naso in questo esempio).

Utilizzo

Esempio

from ultralytics import YOLO

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

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

Set di dati supportati

Questa sezione illustra i set di dati compatibili con il formato Ultralytics YOLO che possono essere utilizzati per l'addestramento dei modelli di stima della posa:

COCO-Pose

  • Descrizione: COCO-Pose è un set di dati su larga scala per il rilevamento, la segmentazione e la stima della posa degli oggetti. È un sottoinsieme del famoso set di dati COCO e si concentra sulla stima della posa umana. COCO-Pose include più punti chiave per ogni istanza umana.
  • Formato dell'etichetta: Lo stesso formato di Ultralytics YOLO descritto sopra, con punti chiave per le pose umane.
  • Numero di classi: 1 (Umano).
  • Punti chiave: 17 punti chiave tra cui naso, occhi, orecchie, spalle, gomiti, polsi, fianchi, ginocchia e caviglie.
  • Utilizzo: Adatto all'addestramento di modelli di stima della posa umana.
  • Note aggiuntive: Il set di dati è ricco e diversificato e contiene oltre 200.000 immagini etichettate.
  • Per saperne di più su COCO-Pose

COCO8-Pose

  • Descrizione: Ultralytics COCO8-Pose è un piccolo ma versatile set di dati per il rilevamento della posa composto dalle prime 8 immagini del set COCO train 2017, 4 per la formazione e 4 per la convalida.
  • Formato dell'etichetta: Lo stesso formato di Ultralytics YOLO descritto sopra, con punti chiave per le pose umane.
  • Numero di classi: 1 (Umano).
  • Punti chiave: 17 punti chiave tra cui naso, occhi, orecchie, spalle, gomiti, polsi, fianchi, ginocchia e caviglie.
  • Utilizzo: Adatto per testare e debuggare i modelli di rilevamento degli oggetti o per sperimentare nuovi approcci di rilevamento.
  • Note aggiuntive: COCO8-Pose è ideale per i controlli di sanità mentale e i controlli CI.
  • Per saperne di più su COCO8-Pose

La posa della tigre

  • Descrizione: Ultralytics Questo set di dati sulla posa degli animali comprende 263 immagini provenienti da un video di YouTube, con 210 immagini assegnate per la formazione e 53 per la convalida.
  • Formato dell'etichetta: Lo stesso formato di Ultralytics YOLO descritto sopra, con 12 punti chiave per la posa dell'animale e nessuna dimensione visibile.
  • Numero di classi: 1 (Tigre).
  • Punti chiave: 12 punti chiave.
  • Utilizzo: Ottimo per le pose degli animali o per qualsiasi altra posa che non sia quella umana.
  • Leggi di più sulla posizione della tigre

Aggiungi il tuo set di dati

Se hai un tuo set di dati e vuoi utilizzarlo per addestrare i modelli di stima della posa 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.

Strumento di conversione

Ultralytics fornisce un pratico strumento di conversione per convertire le etichette dal popolare formato COCO al formato YOLO :

Esempio

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir='path/to/coco/annotations/', use_keypoints=True)

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 . Il use_keypoints specifica se includere i punti chiave (per la stima della posa) nelle etichette convertite.



Creato 2023-11-12, Aggiornato 2024-04-18
Autori: glenn-jocher (6)

Commenti