Sicurezza a livello enterprise: Conforme a ISO 27001 + SOC 2 Type I.

Link to this sectionPanoramica sui dataset di stima della posa#

Link to this sectionFormati di dataset supportati#

Link to this sectionFormato Ultralytics YOLO#

Il formato delle etichette del dataset utilizzato per addestrare i modelli di posa YOLO è il seguente:

  1. Un file di testo per immagine: ogni immagine nel dataset ha un file di testo corrispondente con lo stesso nome del file immagine e l'estensione ".txt".
  2. Una riga per oggetto: ogni riga nel 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 (es. 0 per persona, 1 per auto, ecc.).
    • Coordinate del centro dell'oggetto: le coordinate x e y del centro dell'oggetto, normalizzate per 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 per essere compresi tra 0 e 1.

Ecco un esempio del formato delle etichette per un'attività di stima della posa:

Formato con punti chiave 2D

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

Formato con visibilità dei punti chiave (include la visibilità per punto)

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

In questo formato, <class-index> è l'indice della classe dell'oggetto, <x> <y> <width> <height> sono le coordinate normalizzate del bounding box, e <px1> <py1> <px2> <py2> ... <pxn> <pyn> sono le coordinate normalizzate dei punti chiave. Il canale di visibilità è opzionale ma utile per i dataset che annotano l'occlusione.

Link to this sectionFormato YAML del dataset#

Il framework Ultralytics utilizza un formato di file YAML per definire la configurazione del dataset e del modello per l'addestramento dei modelli di stima della posa. Ecco un esempio del formato YAML utilizzato per definire un dataset di posa:

ultralytics/cfg/datasets/coco8-pose.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← downloads here (1 MB)

# 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: 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
names:
  0: person

# Keypoint names per class
kpt_names:
  0:
    - nose
    - left_eye
    - right_eye
    - left_ear
    - right_ear
    - left_shoulder
    - right_shoulder
    - left_elbow
    - right_elbow
    - left_wrist
    - right_wrist
    - left_hip
    - right_hip
    - left_knee
    - right_knee
    - left_ankle
    - right_ankle

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

I campi train, val e test puntano alle immagini di addestramento, validazione e test. Ognuno accetta una directory, un elenco di directory o un file *.txt che elenca un percorso immagine per riga (i percorsi che iniziano con ./ vengono risolti in modo relativo rispetto al file *.txt). Un file *.txt è utile per addestrare su un sottoinsieme di una directory, saltare immagini non etichettate o combinare immagini da più fonti in un'unica suddivisione.

Percorsi immagine come file `*.txt`
path: datasets/coco8-pose # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
  0: person

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

(Opzionale) flip_idx mappa ogni keypoint alla sua immagine speculare, così che l'aumento dei dati tramite ribaltamento orizzontale mantenga la coerenza tra destra e sinistra su scheletri simmetrici come un corpo umano o un volto. Per cinque punti di riferimento facciali indicizzati come [occhio sinistro, occhio destro, naso, bocca sinistra, bocca destra] = [0, 1, 2, 3, 4], flip_idx è [1, 0, 2, 4, 3]: le coppie sinistra-destra 0-1 e 3-4 si scambiano, e il naso mantiene il proprio indice.

(Opzionale) kpt_oks_sigmas imposta i sigma OKS personalizzati per ogni keypoint utilizzati durante la validazione, ad esempio [0.26, 0.25, 0.25, ...]. La lunghezza della lista deve essere uguale al numero di keypoint N di kpt_shape e ogni valore deve essere positivo. Se omesso, vengono utilizzati i sigma a 17 keypoint di COCO per kpt_shape: [17, 3] e un valore uniforme 1/N in caso contrario.

Link to this sectionUtilizzo#

Esempio
from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)

Link to this sectionDataset supportati#

Questa sezione delinea i dataset compatibili con il formato YOLO di Ultralytics che possono essere utilizzati per l'addestramento di modelli di pose estimation:

Link to this sectionCOCO-Pose#

  • Descrizione: COCO-Pose è un dataset di stima della posa umana su larga scala che copre le immagini COCO 2017 contenenti persone con keypoint annotati.
  • Formato etichette: Identico al formato Ultralytics YOLO come descritto sopra, con punti chiave per le pose umane.
  • Numero di classi: 1 (persona).
  • Keypoint: 17 tipi di keypoint inclusi naso, occhi, orecchie, spalle, gomiti, polsi, anche, ginocchia e caviglie, ognuno con una dimensione di visibilità.
  • Utilizzo: Adatto per l'addestramento di modelli di stima della posa umana.
  • Note aggiuntive: Il dataset si basa sulla sfida COCO Keypoints 2017: 58.945 immagini annotate con 156.165 persone.
  • Leggi di più su COCO-Pose

Link to this sectionCOCO8-Pose#

  • Descrizione: Il dataset Ultralytics COCO8-Pose è un dataset di stima della posa piccolo ma versatile, composto dalle prime 8 immagini del set COCO train 2017, 4 per l'addestramento e 4 per la validazione.
  • Formato etichette: Identico al formato Ultralytics YOLO come descritto sopra, con punti chiave per le pose umane.
  • Numero di classi: 1 (persona).
  • Keypoint: 17 tipi di keypoint inclusi naso, occhi, orecchie, spalle, gomiti, polsi, anche, ginocchia e caviglie, ognuno con una dimensione di visibilità.
  • Utilizzo: Adatto per testare e sottoporre a debug i modelli di stima della posa o per sperimentare con nuovi approcci di rilevamento dei keypoint.
  • Note aggiuntive: COCO8-Pose è ideale per controlli di integrità e CI checks.
  • Leggi di più su COCO8-Pose

Link to this sectionDog-Pose#

  • Descrizione: Il dataset Ultralytics Dog-Pose contiene 6.773 immagini di addestramento e 1.703 di validazione per la stima dei keypoint dei cani.
  • Formato etichette: Segue il formato Ultralytics YOLO, con annotazioni per molteplici punti chiave specifici dell'anatomia canina.
  • Numero di classi: 1 (cane).
  • Keypoint: 24 keypoint, ognuno con una dimensione di visibilità, su misura per le pose dei cani come arti, articolazioni e posizioni della testa.
  • Utilizzo: Ideale per l'addestramento di modelli per stimare le pose dei cani in vari scenari, dalla ricerca alle applicazioni nel mondo reale.
  • Note aggiuntive: Le immagini sorgente sono tratte dallo Stanford Dogs Dataset.
  • Leggi di più su Dog-Pose

Link to this sectionPunti chiave della mano#

  • Descrizione: Il dataset Ultralytics Hand Keypoints comprende 26.768 immagini, con 18.776 allocate per l'addestramento e 7.992 per la validazione.
  • Formato etichette: Identico al formato Ultralytics YOLO descritto sopra, ma con 21 punti chiave per una mano umana e una dimensione di visibilità.
  • Numero di classi: 1 (mano).
  • Punti chiave: 21 punti chiave.
  • Utilizzo: Ottimo per la stima della posa della mano umana e il riconoscimento dei gesti.
  • Note aggiuntive: Le annotazioni dei keypoint sono generate utilizzando Google MediaPipe per un'etichettatura coerente.
  • Leggi di più sui punti chiave della mano

Link to this sectionTiger-Pose#

  • Descrizione: Il dataset Tiger-Pose di Ultralytics comprende 263 immagini provenienti da un video di YouTube, con 210 immagini destinate all'addestramento e 53 alla validazione.
  • Formato dell'etichetta: Identico al formato Ultralytics YOLO come descritto sopra, con 12 keypoint per la posa animale e nessuna dimensione di visibilità.
  • Numero di classi: 1 (tigre).
  • Punti chiave: 12 punti chiave.
  • Utilizzo: Ottimo per la posa animale o qualsiasi altra posa non basata sull'uomo.
  • Note aggiuntive: Rilasciato sotto AGPL-3.0 License.
  • Leggi di più su Tiger-Pose

Link to this sectionAggiungere il tuo dataset#

Se hai il tuo dataset e vorresti usarlo per addestrare modelli di stima della posa con il formato Ultralytics YOLO, assicurati che segua il formato specificato sopra alla voce "Formato Ultralytics 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.

Per saltare completamente il passaggio di conversione, Ultralytics Platform ti permette di caricare immagini grezze, annotare i keypoint nel browser e addestrare direttamente sul dataset risultante.

Link to this sectionStrumento di conversione#

Ultralytics fornisce un comodo strumento di conversione per convertire le etichette dal popolare formato COCO dataset 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 dataset COCO o qualsiasi dataset nel formato COCO nel formato Ultralytics YOLO. Il parametro use_keypoints specifica se includere i punti chiave (per la stima della posa) nelle etichette convertite.

Link to this sectionFAQ#

Link to this sectionCos'è 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 archivia le informazioni su un'istanza di oggetto:

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

Per le pose 2D, i punti chiave includono coordinate x e y normalizzate. Con una dimensione di visibilità, ogni punto chiave ha anche un flag di visibilità. Per maggiori dettagli, vedi Formato Ultralytics YOLO.

Link to this sectionCome utilizzo il dataset COCO-Pose con Ultralytics YOLO?#

coco-pose.yaml viene fornito con il pacchetto e scarica le immagini e le etichette al primo utilizzo, quindi non è necessaria alcuna preparazione manuale:

from ultralytics import YOLO

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

Per i dettagli sul dataset vedi COCO-Pose, e la pagina Train per l'elenco completo degli argomenti.

Link to this sectionCome posso aggiungere il mio dataset per la stima della posa in Ultralytics YOLO?#

Per aggiungere il tuo dataset:

  1. Converti le tue annotazioni nel formato Ultralytics YOLO.

  2. Crea un file di configurazione YAML specificando i percorsi del dataset, il numero di classi e i nomi delle classi.

  3. Usa il file di configurazione per addestrare il tuo modello:

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

    Per i passaggi completi, controlla la sezione Aggiungere il proprio dataset.

Link to this sectionQual è 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 verso le immagini di addestramento, validazione 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 dataset e l'addestramento del modello. Ecco un esempio di formato YAML:

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← downloads here (1 MB)

# 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: 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
names:
  0: person

# Keypoint names per class
kpt_names:
  0:
    - nose
    - left_eye
    - right_eye
    - left_ear
    - right_ear
    - left_shoulder
    - right_shoulder
    - left_elbow
    - right_elbow
    - left_wrist
    - right_wrist
    - left_hip
    - right_hip
    - left_knee
    - right_knee
    - left_ankle
    - right_ankle

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

Leggi di più sulla creazione di file di configurazione YAML in Formato YAML del dataset.

Link to this sectionCome posso convertire le etichette del dataset COCO nel formato Ultralytics YOLO per la stima della posa?#

Ultralytics fornisce uno strumento di conversione per convertire le etichette del dataset COCO nel formato YOLO, incluse 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 aiuta a integrare perfettamente i dataset COCO nei progetti YOLO. Per i dettagli, consulta la sezione Conversion Tool e la data preprocessing guide.

Commenti