Dataset COCO-Pose
Il dataset COCO-Pose è una versione specializzata del dataset COCO (Common Objects in Context), progettata per compiti di stima della posa. Sfrutta le immagini e le etichette COCO Keypoints 2017 per consentire l'addestramento di modelli come YOLO per compiti di stima della posa.
Modelli Pre-addestrati COCO-Pose
Modello | dimensione (pixel) |
mAPpose 50-95 |
mAPpose 50 |
Velocità CPU ONNX (ms) |
Velocità T4 TensorRT10 (ms) |
parametri (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLO11n-pose | 640 | 50.0 | 81.0 | 52.4 ± 0.5 | 1.7 ± 0.0 | 2.9 | 7.6 |
YOLO11s-pose | 640 | 58.9 | 86.3 | 90.5 ± 0.6 | 2.6 ± 0.0 | 9.9 | 23.2 |
YOLO11m-pose | 640 | 64.9 | 89.4 | 187.3 ± 0.8 | 4.9 ± 0.1 | 20.9 | 71.7 |
YOLO11l-pose | 640 | 66.1 | 89.9 | 247.7 ± 1.1 | 6.4 ± 0.1 | 26.2 | 90.7 |
YOLO11x-pose | 640 | 69.5 | 91.1 | 488.0 ± 13.9 | 12.1 ± 0.2 | 58.8 | 203.3 |
Caratteristiche principali
- COCO-Pose si basa sul dataset COCO Keypoints 2017 che contiene 200.000 immagini etichettate con keypoint per attività di stima della posa.
- Il dataset supporta 17 keypoint per figure umane, facilitando la stima dettagliata della posa.
- Come COCO, fornisce metriche di valutazione standardizzate, tra cui l'Object Keypoint Similarity (OKS) per attività di stima della posa, rendendolo adatto per confrontare le prestazioni del modello.
Struttura del set di dati
Il dataset COCO-Pose è suddiviso in tre sottoinsiemi:
- Train2017: Questo sottoinsieme contiene 56599 immagini del set di dati COCO, annotate per l'addestramento di modelli di stima della posa.
- Val2017: Questo sottoinsieme ha 2346 immagini utilizzate per scopi di convalida durante l'addestramento del modello.
- Test2017: Questo sottoinsieme è costituito da immagini utilizzate per testare e valutare i modelli addestrati. Le annotazioni ground truth per questo sottoinsieme non sono pubblicamente disponibili e i risultati vengono inviati al server di valutazione COCO per la valutazione delle prestazioni.
Applicazioni
Il dataset COCO-Pose è specificamente utilizzato per l'addestramento e la valutazione di modelli di deep learning in attività di rilevamento di keypoint e stima della posa, come OpenPose. L'elevato numero di immagini annotate del dataset e le metriche di valutazione standardizzate lo rendono una risorsa essenziale per i ricercatori e i professionisti della computer vision focalizzati sulla stima della posa.
YAML del set di dati
Un file YAML (Yet Another Markup Language) viene utilizzato per definire la configurazione del dataset. Contiene informazioni sui percorsi, le classi e altre informazioni rilevanti del dataset. Nel caso del dataset COCO-Pose, il coco-pose.yaml
file è mantenuto in https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml.
ultralytics/cfg/datasets/coco-pose.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# COCO 2017 Keypoints dataset https://cocodataset.org by Microsoft
# Documentation: https://docs.ultralytics.com/datasets/pose/coco/
# Example usage: yolo train data=coco-pose.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco-pose ← downloads here (20.1 GB)
# 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: coco-pose # dataset root dir
train: train2017.txt # train images (relative to 'path') 56599 images
val: val2017.txt # val images (relative to 'path') 2346 images
test: test-dev2017.txt # 20288 of 40670 images, submit to https://codalab.lisn.upsaclay.fr/competitions/7403
# 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
# Download script/URL (optional)
download: |
from pathlib import Path
from ultralytics.utils.downloads import download
# Download labels
dir = Path(yaml["path"]) # dataset root dir
url = "https://github.com/ultralytics/assets/releases/download/v0.0.0/"
urls = [f"{url}coco2017labels-pose.zip"]
download(urls, dir=dir.parent)
# Download data
urls = [
"http://images.cocodataset.org/zips/train2017.zip", # 19G, 118k images
"http://images.cocodataset.org/zips/val2017.zip", # 1G, 5k images
"http://images.cocodataset.org/zips/test2017.zip", # 7G, 41k images (optional)
]
download(urls, dir=dir / "images", threads=3)
Utilizzo
Per addestrare un modello YOLO11n-pose sul dataset COCO-Pose per 100 epoche con una dimensione dell'immagine di 640, puoi utilizzare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, consulta la pagina di addestramento del modello.
Esempio di addestramento
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="coco-pose.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo pose train data=coco-pose.yaml model=yolo11n-pose.pt epochs=100 imgsz=640
Immagini di esempio e annotazioni
Il dataset COCO-Pose contiene un insieme diversificato di immagini con figure umane annotate con keypoint. Ecco alcuni esempi di immagini del dataset, insieme alle relative annotazioni:
- Immagine mosaicata: questa immagine mostra un batch di addestramento composto da immagini del dataset mosaicato. Il mosaicing è una tecnica utilizzata durante l'addestramento che combina più immagini in un'unica immagine per aumentare la varietà di oggetti e scene all'interno di ogni batch di addestramento. Ciò contribuisce a migliorare la capacità del modello di generalizzare a diverse dimensioni degli oggetti, proporzioni e contesti.
L'esempio mostra la varietà e la complessità delle immagini nel dataset COCO-Pose e i vantaggi dell'utilizzo del mosaicing durante il processo di training.
Citazioni e ringraziamenti
Se utilizzi il dataset COCO-Pose nel tuo lavoro di ricerca o sviluppo, cita il seguente articolo:
@misc{lin2015microsoft,
title={Microsoft COCO: Common Objects in Context},
author={Tsung-Yi Lin and Michael Maire and Serge Belongie and Lubomir Bourdev and Ross Girshick and James Hays and Pietro Perona and Deva Ramanan and C. Lawrence Zitnick and Piotr Dollár},
year={2015},
eprint={1405.0312},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
Desideriamo ringraziare il COCO Consortium per aver creato e mantenuto questa preziosa risorsa per la comunità della computer vision. Per maggiori informazioni sul dataset COCO-Pose e sui suoi creatori, visitare il sito web del dataset COCO.
FAQ
Cos'è il dataset COCO-Pose e come viene utilizzato con Ultralytics YOLO per la stima della posa?
Il dataset COCO-Pose è una versione specializzata del dataset COCO (Common Objects in Context) progettata per compiti di stima della posa. Si basa sulle immagini e sulle annotazioni COCO Keypoints 2017, consentendo l'addestramento di modelli come Ultralytics YOLO per la stima dettagliata della posa. Ad esempio, puoi utilizzare il dataset COCO-Pose per addestrare un modello YOLO11n-pose caricando un modello pre-addestrato e addestrandolo con una configurazione YAML. Per esempi di addestramento, fare riferimento alla documentazione sull'addestramento.
Come posso addestrare un modello YOLO11 sul set di dati COCO-Pose?
L'addestramento di un modello YOLO11 sul dataset COCO-Pose può essere realizzato utilizzando comandi Python o CLI. Ad esempio, per addestrare un modello YOLO11n-pose per 100 epoche con una dimensione dell'immagine di 640, puoi seguire i passaggi seguenti:
Esempio di addestramento
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="coco-pose.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo pose train data=coco-pose.yaml model=yolo11n-pose.pt epochs=100 imgsz=640
Per maggiori dettagli sul processo di training e sugli argomenti disponibili, consulta la pagina relativa al training.
Quali sono le diverse metriche fornite dal dataset COCO-Pose per valutare le prestazioni del modello?
Il dataset COCO-Pose fornisce diverse metriche di valutazione standardizzate per attività di stima della posa, simili al dataset COCO originale. Le metriche chiave includono l'Object Keypoint Similarity (OKS), che valuta l'accuratezza dei keypoint previsti rispetto alle annotazioni ground truth. Queste metriche consentono confronti approfonditi delle prestazioni tra diversi modelli. Ad esempio, i modelli preaddestrati COCO-Pose come YOLO11n-pose, YOLO11s-pose e altri hanno metriche di prestazioni specifiche elencate nella documentazione, come mAPpose50-95 e mAPpose50.
Come è strutturato e suddiviso il dataset per il dataset COCO-Pose?
Il dataset COCO-Pose è suddiviso in tre sottoinsiemi:
- Train2017: Contiene 56599 immagini COCO, annotate per l'addestramento di modelli di stima della posa.
- Val2017: 2346 immagini per scopi di convalida durante l'addestramento del modello.
- Test2017: Immagini utilizzate per testare e valutare i modelli addestrati. Le annotazioni ground truth per questo sottoinsieme non sono pubblicamente disponibili; i risultati vengono inviati al server di valutazione COCO per la valutazione delle prestazioni.
Questi sottoinsiemi aiutano a organizzare efficacemente le fasi di training, convalida e test. Per i dettagli di configurazione, esplora il coco-pose.yaml
file disponibile su GitHub.
Quali sono le caratteristiche principali e le applicazioni del dataset COCO-Pose?
Il dataset COCO-Pose estende le annotazioni COCO Keypoints 2017 per includere 17 keypoint per figure umane, consentendo una stima dettagliata della posa. Metriche di valutazione standardizzate (ad es. OKS) facilitano i confronti tra diversi modelli. Le applicazioni del dataset COCO-Pose spaziano in vari domini, come l'analisi sportiva, l'assistenza sanitaria e l'interazione uomo-computer, ovunque sia richiesta una stima dettagliata della posa di figure umane. Per un uso pratico, sfruttare modelli preaddestrati come quelli forniti nella documentazione (ad es. YOLO11n-pose) può semplificare notevolmente il processo (Caratteristiche principali).
Se utilizzi il dataset COCO-Pose nel tuo lavoro di ricerca o sviluppo, cita l'articolo con la seguente voce BibTeX.