COCO-Pose-Datensatz#
Das COCO-Pose-Dataset adaptiert COCO (Common Objects in Context) für die Pose Estimation: 58.945 Bilder aus COCO Keypoints 2017, annotiert mit 156.165 Personen unter Verwendung eines Schemas mit 17 Keypoints. Es ist der Standarddatensatz für das Training und Benchmarking von Keypoint-Modellen wie Ultralytics YOLO26, und die Subset-Variante COCO8-Pose mit 8 Bildern spiegelt dessen Format für schnelle Plausibilitätsprüfungen wider.

COCO-Pose vortrainierte Modelle#
| Modell | Größe (Pixel) | mAPpose 50-95(e2e) | mAPpose 50(e2e) | Geschwindigkeit CPU ONNX (ms) | Geschwindigkeit T4 TensorRT10 (ms) | Parameter (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 |
Hauptfunktionen#
- COCO-Pose baut auf der COCO Keypoints 2017-Challenge auf, die 1.710.498 einzelne Keypoints über 156.165 annotierte Personen hinweg kennzeichnet.
- Jede Personenannotation verwendet 17 Keypoint-Typen — Nase, Augen, Ohren, Schultern, Ellbogen, Handgelenke, Hüften, Knie und Fußknöchel —, die als
(x, y, visibility)-Tripel gespeichert sind. - Wie COCO bietet er standardisierte Bewertungsmetriken, einschließlich der Object Keypoint Similarity (OKS) für Pose-Estimation-Aufgaben, wodurch er sich gut für den Vergleich der Modellleistung eignet.
- Download-Größe: ~20,2 GB bei der ersten Verwendung (
train2017.zip+val2017.zip+ Labels). Die 7 GB großetest2017.zipwird nicht automatisch abgerufen, da diese Bilder zurückgehaltene Ground Truth enthalten und nur für eine test-dev2017-Einreichung benötigt werden.
Datensatzstruktur#
Für Training und Validierung enthält COCO-Pose nur COCO 2017 Bilder mit Keypoint-annotierten Personen, daher sind seine gelabelten Splits kleiner als die des vollständigen COCO. Sein YAML definiert drei Subsets:
- Train2017: Dieses Subset enthält 56.599 Bilder aus dem COCO Datensatz, annotiert für das Training von Pose Estimation Modellen.
- Val2017: Dieses Subset enthält 2.346 Bilder, die für Validierungszwecke während des Modelltrainings verwendet werden.
- Test-dev2017: Ein Subset von 20.288 Bildern aus dem vollständigen test2017-Set mit 40.670 Bildern und zurückgehaltener Ground Truth. Das Dataset-YAML verknüpft diesen Split mit dem COCO test-dev keypoints evaluation server.
Training in diesem Maßstab ist der Bereich, in dem die Ultralytics Platform am meisten hilft — sie verwaltet das Compute, sodass du Runs starten und überwachen kannst, ohne eigene GPUs bereitstellen zu müssen.
Anwendungen#
Das COCO-Pose-Dataset wird speziell für das Training und die Evaluierung von Deep-Learning-Modellen zur Keypoint-Erkennung und Pose Estimation verwendet. Die große Anzahl annotierter Bilder des Datensatzes und die standardisierten Evaluierungsmetriken machen es zu einer wesentlichen Ressource für Computer Vision-Forscher und -Praktiker, die an menschlichen Posen arbeiten.
Datensatz-YAML#
Eine YAML-Datei wird verwendet, um die Dataset-Konfiguration zu definieren. Sie enthält Informationen über die Pfade des Datensatzes, Klassen und andere relevante Informationen. Im Falle des COCO-Pose-Datasets wird die Datei coco-pose.yaml unter https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml gepflegt.
# 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)Verwendung#
Um ein YOLO26n-pose-Modell auf dem COCO-Pose-Dataset für 100 Epochen mit einer Bildgröße von 640 zu trainieren, kannst du die folgenden Code-Snippets verwenden. Eine umfassende Liste der verfügbaren Argumente findest du auf der Modellseite Training.
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)Beispielbilder und Annotationen#
Der COCO-Pose-Datensatz enthält eine vielfältige Sammlung von Bildern mit menschlichen Figuren, die mit Keypoints annotiert sind. Hier sind einige Beispiele von Bildern aus dem Datensatz, zusammen mit den entsprechenden Annotationen:

- Mosaik-Bild: Dieses Bild zeigt einen Trainings-Batch, der aus mosaikierten Datensatz-Bildern besteht. Mosaicing ist eine Technik, die während des Trainings verwendet wird, um mehrere Bilder zu einem einzigen Bild zu kombinieren, um die Vielfalt der Objekte und Szenen innerhalb jedes Trainings-Batches zu erhöhen. Dies trägt dazu bei, die Fähigkeit des Modells zu verbessern, auf verschiedene Objektgrößen, Seitenverhältnisse und Kontexte zu generalisieren.
Das Beispiel verdeutlicht die Vielfalt und Komplexität der Bilder im COCO-Pose-Datensatz sowie die Vorteile der Verwendung von Mosaicing während des Trainingsprozesses.
Zitate und Danksagungen#
Wenn du den COCO-Pose-Datensatz in deiner Forschung oder Entwicklungsarbeit verwendest, zitiere bitte das folgende Paper:
@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}
}Wir möchten dem COCO Consortium für die Erstellung und Pflege dieser wertvollen Ressource für die Computer-Vision-Community danken. Weitere Informationen über das COCO-Pose-Dataset und seine Ersteller findest du auf der COCO dataset website.
FAQ#
COCO-Pose liefert die COCO Keypoints 2017-Bilder und -Annotationen konvertiert in das YOLO-Keypoint-Format, wobei ein Schema mit 17 Keypoints über 58.945 Bilder hinweg verwendet wird. Richte ein beliebiges Ultralytics YOLO-Pose-Modell mit
data=coco-pose.yamldarauf aus, und die Training-Seite dokumentiert jedes Argument, das du von dort aus anpassen kannst.Lade
yolo26n-pose.ptund rufemodel.train(data="coco-pose.yaml", epochs=100, imgsz=640)auf — siehe das Train Example oben für die vollständigen Python- und CLI-Snippets und die training page für eine umfassende Liste von Argumenten.Das COCO-Pose-Dataset bietet mehrere standardisierte Evaluierungsmetriken für Aufgaben der Pose Estimation, ähnlich dem ursprünglichen COCO-Dataset. Zu den wichtigsten Metriken gehört die Object Keypoint Similarity (OKS), welche die Genauigkeit vorhergesagter Keypoints im Vergleich zu Ground-Truth-Annotationen bewertet. Diese Metriken ermöglichen gründliche Leistungsvergleiche zwischen verschiedenen Modellen. Beispielsweise haben vortrainierte COCO-Pose-Modelle wie YOLO26n-pose, YOLO26s-pose und andere spezifische Leistungsmetriken in der Dokumentation aufgeführt, wie mAPpose50-95 und mAPpose50.
COCO-Pose liefert zwei gelabelte Splits: 56.599 train2017-Bilder und 2.346 val2017-Bilder. Ein dritter Split, test-dev2017 (20.288 der insgesamt 40.670 test2017-Bilder), hält seine Ground Truth privat; das Dataset-YAML verknüpft ihn mit dem COCO test-dev keypoints evaluation server. Siehe den Abschnitt Dataset Structure oder die Datei
coco-pose.yamlauf GitHub für die exakten Split-Pfade.COCO-Pose verwendet 17 menschliche Keypoint-Typen und übernimmt COCOs standardisierte Metriken, einschließlich Object Keypoint Similarity (OKS), zum Vergleichen von Modellen. Diese Kombination eignet sich für Anwendungen zur menschlichen Pose wie Sportanalytik, Gesundheitswesen und Mensch-Computer-Interaktion. Vortrainierte YOLO26-pose-Gewichte sind unter COCO-Pose Pretrained Models aufgeführt.
Mehr zu Keypoint-Modellen findest du in der Dokumentation zur Aufgabe Pose Estimation.



