Vai al contenuto

Panoramica dei set di dati per la stima della posa

Formati di set 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 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 esempio, 0 per persona, 1 per 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 per essere comprese tra 0 e 1.
    • Coordinate dei punti chiave dell'oggetto: I punti chiave dell'oggetto, normalizzati in modo da 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 di riquadro di delimitazione, e <px1> <py1> <px2> <py2> ... <pxn> <pyn> sono le coordinate in 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 usato 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 validazione.

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 .

(Facoltativo) se i punti sono simmetrici, è necessario utilizzare il flip_idx, come nel caso del lato sinistro-destro di un essere umano o di un volto. Ad esempio, se si ipotizzano 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 flip_idx è [1, 0, 2, 4, 3] (si scambiano solo gli indici sinistra-destra, cioè 0-1 e 3-4, e non si modificano gli altri come il naso in questo esempio).

Utilizzo

Esempio

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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 pose train data=coco8-pose.yaml model=yolo11n-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 popolare 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: 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-Posizione

  • 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 l'addestramento e 4 per la validazione.
  • Formato dell'etichetta: 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 il test e il debug dei modelli di rilevamento degli oggetti o per la sperimentazione di nuovi approcci al 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 l'addestramento e 53 per la validazione.
  • Formato dell'etichetta: 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 pose di animali o qualsiasi altra posa che non sia basata sull'uomo.
  • Per saperne di più sulla posizione della tigre

Punti chiave della mano

  • Descrizione: Il set di dati sulla posa dei punti chiave della mano comprende quasi 26.000 immagini, con 18776 immagini assegnate per l'addestramento e 7992 per la validazione.
  • Formato dell'etichetta: Stesso formato di Ultralytics YOLO descritto sopra, ma con 21 punti chiave per la mano umana e la dimensione visibile.
  • Numero di classi: 1 (Mano).
  • Punti chiave: 21 punti chiave.
  • Utilizzo: Ottimo per la stima della posa della mano umana.
  • Per saperne di più sui Punti chiave della mano

Posizione del cane

  • Descrizione: Il dataset Dog Pose contiene circa 6.000 immagini, fornendo una risorsa ampia e diversificata per l'addestramento e la validazione dei modelli di stima della posa dei cani.
  • Formato dell'etichetta: Segue il formato Ultralytics YOLO , con annotazioni per più punti chiave specifici dell'anatomia del cane.
  • Numero di classi: 1 (Cane).
  • Punti chiave: Include 24 punti chiave per le pose dei cani, come le posizioni degli arti, delle articolazioni e della testa.
  • Utilizzo: Ideale per l'addestramento di modelli per la stima delle pose dei cani in vari scenari, dalla ricerca alle applicazioni reali.
  • Per saperne di più sulla posizione del cane

Aggiungere il proprio set di dati

Se si dispone di un proprio set di dati e si desidera utilizzarlo per l'addestramento dei modelli di stima della posa con il formato Ultralytics YOLO , assicurarsi che segua il formato specificato sopra in "FormatoUltralytics YOLO ". Convertire le annotazioni nel formato richiesto e specificare i percorsi, il numero di classi e i nomi delle classi nel file di configurazione YAML.

Strumento di conversione

Ultralytics fornisce un comodo strumento di conversione per convertire le etichette dal popolare formato di set di dati 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.

FAQ

Qual è il formato Ultralytics YOLO per la stima della posa?

Il formato Ultralytics YOLO per i dataset di stima della posa prevede l'etichettatura di ogni immagine con un file di testo corrispondente. Ogni riga del file di testo contiene informazioni su un'istanza di oggetto:

  • Indice della classe di oggetti
  • Coordinate del centro dell'oggetto (normalizzate x e y)
  • Larghezza e altezza dell'oggetto (normalizzate)
  • Coordinate del punto chiave dell'oggetto (pxn e pyn normalizzati)

Per le pose 2D, i punti chiave includono le coordinate dei pixel. Per il 3D, ogni punto chiave ha anche un flag di visibilità. Per maggiori dettagli, vedere il formatoUltralytics YOLO .

Come si utilizza il dataset COCO-Pose con Ultralytics YOLO ?

Per utilizzare il dataset COCO-Pose con Ultralytics YOLO :

  1. Scaricare il set di dati e preparare i file delle etichette nel formato YOLO .
  2. Creare un file di configurazione YAML che specifichi i percorsi delle immagini di addestramento e di validazione, la forma dei punti chiave e i nomi delle classi.
  3. Utilizzare il file di configurazione per l'addestramento:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n-pose.pt")  # load pretrained model
    results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
    

    Per ulteriori informazioni, visitate le sezioni COCO-Pose e treno.

Come posso aggiungere il mio set di dati per la stima della posa in Ultralytics YOLO ?

Per aggiungere il set di dati:

  1. Convertire le annotazioni nel formato Ultralytics YOLO .
  2. Creare un file di configurazione YAML che specifichi i percorsi dei dataset, il numero di classi e i nomi delle classi.
  3. Utilizzare il file di configurazione per addestrare il modello:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n-pose.pt")
    results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
    

    Per i passaggi completi, consultare la sezione Aggiungere il proprio set di dati.

Qual è lo scopo del file YAML del dataset in Ultralytics YOLO ?

Il file YAML del dataset in Ultralytics YOLO definisce la configurazione del dataset e del modello per l'addestramento. Specifica i percorsi delle immagini di addestramento, convalida e test, le forme dei punti chiave, i nomi delle classi e altre opzioni di configurazione. Questo formato strutturato aiuta a semplificare la gestione del set di dati e la formazione del modello. Ecco un esempio di formato YAML:

path: ../datasets/coco8-pose
train: images/train
val: images/val
names:
    0: person

Per saperne di più sulla creazione di file di configurazione YAML in formato Dataset YAML.

Come posso convertire le etichette dei dataset COCO nel formato Ultralytics YOLO per la stima della posa?

Ultralytics fornisce uno strumento di conversione per convertire le etichette dei set di dati COCO nel formato YOLO , comprese le informazioni sui punti chiave:

from ultralytics.data.converter import convert_coco

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

Questo strumento consente di integrare perfettamente i set di dati COCO nei progetti YOLO . Per i dettagli, consultare la sezione Strumento di conversione.

📅C reato 1 anno fa ✏️ Aggiornato 5 giorni fa

Commenti