Dataset COCO-Pose#
Il dataset COCO-Pose adatta COCO (Common Objects in Context) per la pose estimation: 58.945 immagini da COCO Keypoints 2017, annotate con 156.165 persone usando uno schema a 17 keypoint. È il set standard per l'addestramento e il benchmarking di modelli di keypoint come Ultralytics YOLO26, e il sottoinsieme di 8 immagini COCO8-Pose ne rispecchia il formato per rapidi controlli di integrità.

Modelli preaddestrati COCO-Pose#
| Modello | dimensione (pixel) | mAPpose 50-95(e2e) | mAPpose 50(e2e) | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-pose | 640 | 57.2 | 83.3 | 40.3 ± 0.5 | 1.8 ± 0.0 | 2.9 | 7.5 |
| YOLO26s-pose | 640 | 63.0 | 86.6 | 85.3 ± 0.9 | 2.7 ± 0.0 | 10.4 | 23.9 |
| YOLO26m-pose | 640 | 68.8 | 89.6 | 218.0 ± 1.5 | 5.0 ± 0.1 | 21.5 | 73.1 |
| YOLO26l-pose | 640 | 70.4 | 90.5 | 275.4 ± 2.4 | 6.5 ± 0.1 | 25.9 | 91.3 |
| YOLO26x-pose | 640 | 71.6 | 91.6 | 565.4 ± 3.0 | 12.2 ± 0.2 | 57.6 | 201.7 |
Caratteristiche principali#
- COCO-Pose si basa sulla sfida COCO Keypoints 2017, che etichetta 1.710.498 keypoint individuali su 156.165 persone annotate.
- Ogni annotazione di persona utilizza 17 tipi di keypoint — naso, occhi, orecchie, spalle, gomiti, polsi, anche, ginocchia e caviglie — memorizzati come triple
(x, y, visibility). - Come COCO, fornisce metriche di valutazione standardizzate, tra cui l'Object Keypoint Similarity (OKS) per le attività di stima della posa, rendendolo adatto a confrontare le prestazioni dei modelli.
- Dimensione del download: ~20,2 GB al primo utilizzo (
train2017.zip+val2017.zip+ etichette). Il filetest2017.zipda 7 GB non viene recuperato automaticamente, poiché tali immagini hanno la ground truth nascosta e sono necessarie solo per un'invio a test-dev2017.
Struttura del dataset#
Per l'addestramento e la validazione, COCO-Pose include solo immagini COCO 2017 con persone annotate con keypoint, quindi i suoi split etichettati sono più piccoli del COCO completo. Il suo YAML definisce tre subset:
- Train2017: questo subset contiene 56.599 immagini dal dataset COCO, annotate per l'addestramento di modelli di pose estimation.
- Val2017: questo subset ha 2.346 immagini utilizzate per scopi di validazione durante l'addestramento del modello.
- Test-dev2017: Un sottoinsieme di 20.288 immagini tratto dal set test2017 completo di 40.670 immagini con ground truth nascosta. Il file YAML del dataset collega questo split al server di valutazione dei keypoint COCO test-dev.
L'addestramento a questa scala è il momento in cui Ultralytics Platform offre il massimo aiuto: gestisce il calcolo in modo da poter avviare e monitorare le esecuzioni senza dover configurare le proprie GPU.
Applicazioni#
Il dataset COCO-Pose viene utilizzato specificamente per l'addestramento e la valutazione di modelli di deep learning sul rilevamento dei keypoint e sulla pose estimation. Il grande numero di immagini annotate del dataset e le metriche di valutazione standardizzate lo rendono una risorsa essenziale per i ricercatori e i professionisti di computer vision che lavorano sulla posa umana.
Dataset YAML#
Un file YAML 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 file coco-pose.yaml è mantenuto su https://github.com/ultralytics/ultralytics/blob/main/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.2 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
# 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: |
from pathlib import Path
from ultralytics.utils import ASSETS_URL
from ultralytics.utils.downloads import download
# Download labels
dir = Path(yaml["path"]) # dataset root dir
urls = [f"{ASSETS_URL}/coco2017labels-pose.zip"]
download(urls, dir=dir.parent)
# Download data (test2017.zip excluded: ground truth is withheld, only used for the CodaLab test-dev split)
urls = [
"http://images.cocodataset.org/zips/train2017.zip", # 19G, 118k images
"http://images.cocodataset.org/zips/val2017.zip", # 1G, 5k images
]
download(urls, dir=dir / "images", threads=3)Utilizzo#
Per addestrare un modello YOLO26n-pose sul dataset COCO-Pose per 100 epoch con una dimensione dell'immagine di 640, puoi usare i seguenti frammenti di codice. Per un elenco completo degli argomenti disponibili, fai riferimento alla pagina di Training del modello.
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="coco-pose.yaml", epochs=100, imgsz=640)Esempi di immagini e annotazioni#
Il dataset COCO-Pose contiene un set diversificato di immagini con figure umane annotate con keypoint. Ecco alcuni esempi di immagini dal dataset, insieme alle relative annotazioni:

- Immagine Mosaico: Questa immagine mostra un batch di addestramento composto da immagini del dataset a mosaico. Il mosaico è 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ò aiuta a migliorare la capacità del modello di generalizzare a diverse dimensioni, proporzioni e contesti degli oggetti.
L'esempio mostra la varietà e la complessità delle immagini nel dataset COCO-Pose e i vantaggi dell'utilizzo del mosaico durante il processo di addestramento.
Citazioni e riconoscimenti#
Se utilizzi il dataset COCO-Pose nel tuo lavoro di ricerca o sviluppo, cita il seguente documento:
@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à di computer vision. Per ulteriori informazioni sul dataset COCO-Pose e sui suoi creatori, visita il sito web del dataset COCO.
FAQ#
COCO-Pose fornisce le immagini e le annotazioni di COCO Keypoints 2017 convertite nel formato di keypoint YOLO, utilizzando uno schema a 17 keypoint su 58.945 immagini. Punta qualsiasi modello di pose YOLO di Ultralytics su di esso con
data=coco-pose.yaml, e la pagina di Training documenta ogni argomento che puoi ottimizzare da lì.Carica
yolo26n-pose.pte chiamamodel.train(data="coco-pose.yaml", epochs=100, imgsz=640)— vedi l'esempio di addestramento sopra per i frammenti completi in Python e CLI, e la pagina di addestramento per un elenco completo degli argomenti.Il dataset COCO-Pose fornisce diverse metriche di valutazione standardizzate per le attività di pose estimation, simili al dataset COCO originale. Le metriche chiave includono l'Object Keypoint Similarity (OKS), che valuta l'accuratezza dei keypoint predetti rispetto alle annotazioni di ground truth. Queste metriche consentono confronti approfonditi delle prestazioni tra diversi modelli. Ad esempio, i modelli pre-addestrati di COCO-Pose come YOLO26n-pose, YOLO26s-pose e altri hanno metriche di prestazione specifiche elencate nella documentazione, come mAPpose50-95 e mAPpose50.
COCO-Pose include due split etichettati: 56.599 immagini train2017 e 2.346 immagini val2017. Un terzo split, test-dev2017 (20.288 delle 40.670 immagini test2017 totali), mantiene privata la sua ground truth; il file YAML del dataset lo collega al server di valutazione dei keypoint COCO test-dev. Vedi la sezione Dataset Structure, o il file
coco-pose.yamlsu GitHub per i percorsi esatti degli split.COCO-Pose utilizza 17 tipi di keypoint umani e eredita le metriche standardizzate di COCO, tra cui l'Object Keypoint Similarity (OKS), per confrontare i modelli. Questa combinazione si adatta ad applicazioni di posa umana come l'analisi sportiva, la sanità e l'interazione uomo-computer. I pesi pre-addestrati di YOLO26-pose sono elencati in COCO-Pose Pretrained Models.
Per ulteriori informazioni sui modelli di keypoint, consulta la documentazione sull'attività di Pose Estimation.



