COCO
Der COCO ist eine spezielle Version des COCO (Common Objects in Context), der für Aufgaben der Posenschätzung entwickelt wurde. Er nutzt die COCO Keypoints 2017 Bilder und Labels, um das Training von Modellen wie YOLO für Posenschätzungsaufgaben zu ermöglichen.

COCO vortrainierte Modelle
| Modell | Größe (Pixel) | mAPPose 50-95 | mAPPose 50 | Geschwindigkeit CPU ONNX (ms) | Geschwindigkeit T4 TensorRT10 (ms) | Parameter (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO11n-Pose | 640 | 50.0 | 81.0 | 52.4 ± 0.5 | 1.7 ± 0.0 | 2.9 | 7.4 |
| YOLO11s-Pose | 640 | 58.9 | 86.3 | 90.5 ± 0.6 | 2.6 ± 0.0 | 9.9 | 23.1 |
| YOLO11m-Pose | 640 | 64.9 | 89.4 | 187.3 ± 0.8 | 4.9 ± 0.1 | 20.9 | 71.4 |
| YOLO11l-Pose | 640 | 66.1 | 89.9 | 247.7 ± 1.1 | 6.4 ± 0.1 | 26.1 | 90.3 |
| YOLO11x-Pose | 640 | 69.5 | 91.1 | 488.0 ± 13.9 | 12.1 ± 0.2 | 58.8 | 202.8 |
Hauptmerkmale
- COCO basiert auf dem COCO Keypoints 2017-Datensatz, der 200.000 Bilder enthält, die mit Keypoints für Posenschätzungsaufgaben beschriftet sind.
- Der Datensatz unterstützt 17 Keypoints für menschliche Figuren und ermöglicht so eine detaillierte Pose-Schätzung.
- Wie COCO bietet es standardisierte Bewertungsmetriken, einschließlich Object Keypoint Similarity (OKS) für Posenschätzungsaufgaben, und eignet sich daher für den Vergleich von Modellleistungen.
Dataset-Struktur
Der COCO ist in drei Teilmengen aufgeteilt:
- Train2017: Diese Teilmenge enthält 56599 Bilder aus dem COCO , die für das Training von Modellen zur Posenschätzung kommentiert wurden.
- Val2017: Diese Teilmenge enthält 2346 Bilder, die für Validierungszwecke während des Modelltrainings verwendet werden.
- Test2017: Diese Teilmenge besteht aus Bildern, die zum Testen und Benchmarking der trainierten Modelle verwendet werden. Die Ground-Truth-Kommentare für diese Teilmenge sind nicht öffentlich zugänglich, und die Ergebnisse werden zur Leistungsbewertung an den COCO übermittelt.
Anwendungen
Der COCO wird speziell für das Training und die Evaluierung von Deep-Learning-Modellen für die Erkennung von Keypoints und Aufgaben zur Posenschätzung, wie z. B. OpenPose, verwendet. Die große Anzahl an kommentierten Bildern und die standardisierten Bewertungsmetriken machen den Datensatz zu einer unverzichtbaren Ressource für Computer-Vision-Forscher und -Praktiker, die sich mit Posenschätzung beschäftigen.
Datensatz-YAML
Eine YAML-Datei (Yet Another Markup Language) wird zur Definition der Datensatzkonfiguration verwendet. Sie enthält Informationen über die Pfade des Datensatzes, Klassen und andere relevante Informationen. Im Fall des COCO wird die coco-pose.yaml Datei wird verwaltet unter https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml.
ultralyticsyaml
# 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
# 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
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)
Nutzung
Um ein YOLO11n-Positionsmodell auf dem COCO für 100 Epochen mit einer Bildgröße von 640 zu trainieren, können Sie die folgenden Codeschnipsel verwenden. Eine umfassende Liste der verfügbaren Argumente finden Sie auf der Seite Modelltraining.
Trainingsbeispiel
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
sample_images und Anmerkungen
Der COCO enthält eine Vielzahl von Bildern mit menschlichen Figuren, die mit Keypoints annotiert sind. Hier sind einige Beispiele von Bildern aus dem Datensatz, zusammen mit ihren entsprechenden Annotationen:

- Mosaikbild: Dieses Bild zeigt einen Trainings-Batch, der aus Mosaik-Datensatzbildern besteht. Mosaicing ist eine Technik, die während des Trainings verwendet wird und mehrere Bilder zu einem einzigen Bild kombiniert, um die Vielfalt der Objekte und Szenen innerhalb jedes Trainings-Batch 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 und die Vorteile der Mosaikbildung während des Trainingsprozesses.
Zitate und Danksagungen
Wenn Sie den COCO in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie bitte das folgende Papier:
@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 für die Erstellung und Pflege dieser wertvollen Ressource für die Computer Vision Community danken. Weitere Informationen über den COCO und seine Ersteller finden Sie auf der COCO .
FAQ
Was ist der COCO und wie wird er mit Ultralytics YOLO zur Posenschätzung verwendet?
Der COCO ist eine spezielle Version des COCO (Common Objects in Context), der für Aufgaben der Posenschätzung entwickelt wurde. Er baut auf den COCO 2017-Bildern und -Anmerkungen auf und ermöglicht das Training von Modellen wie Ultralytics YOLO für detaillierte Posenschätzungen. Sie können beispielsweise den COCO verwenden, um ein YOLO11n-Positionsmodell zu trainieren, indem Sie ein vorab trainiertes Modell laden und es mit einer YAML-Konfiguration trainieren. Beispiele für das Training finden Sie in der Dokumentation Training.
Wie kann ich ein YOLO11 mit dem COCO trainieren?
Das Training eines YOLO11 auf dem COCO kann entweder mit Python oder mit CLI durchgeführt werden. Um zum Beispiel ein YOLO11n-Positionsmodell für 100 Epochen mit einer Bildgröße von 640 zu trainieren, können Sie die folgenden Schritte ausführen:
Trainingsbeispiel
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
Weitere Informationen zum Trainingsprozess und zu den verfügbaren Argumenten finden Sie auf der Trainingsseite.
Welche verschiedenen Metriken bietet der COCO zur Bewertung der Modellleistung?
Der COCO bietet, ähnlich wie der ursprüngliche COCO , mehrere standardisierte Bewertungsmetriken für Posenschätzungsaufgaben. Zu den wichtigsten Metriken gehört die Objektpunktähnlichkeit (Object Keypoint Similarity, OKS), mit der die Genauigkeit der vorhergesagten Keypoints im Vergleich zu den Grundannotationen bewertet wird. Diese Metriken ermöglichen einen gründlichen Leistungsvergleich zwischen verschiedenen Modellen. Für die vortrainierten COCO wie YOLO11n-pose, YOLO11s-pose und andere sind in der Dokumentation spezifische Leistungskennzahlen aufgeführt, z. B. mAPpose50-95und mAPpose50.
Wie ist der Datensatz strukturiert und aufgeteilt für den COCO?
Der COCO ist in drei Teilmengen aufgeteilt:
- Zug2017: Enthält 56599 COCO , die für das Training von Modellen zur Posenschätzung kommentiert wurden.
- Val2017: 2346 Bilder für Validierungszwecke während des Modelltrainings.
- Test2017: Bilder, die zum Testen und Benchmarking der trainierten Modelle verwendet werden. Ground-Truth-Annotationen für diese Untergruppe sind nicht öffentlich verfügbar; die Ergebnisse werden zur Leistungsbewertung an den COCO übermittelt.
Diese Teilmengen helfen, die Trainings-, Validierungs- und Testphasen effektiv zu organisieren. Konfigurationsdetails finden Sie unter coco-pose.yaml Datei verfügbar auf GitHub.
Was sind die wichtigsten Merkmale und Anwendungen des COCO?
Der COCO erweitert die COCO Keypoints 2017 Annotationen um 17 Keypoints für menschliche Figuren und ermöglicht eine detaillierte Posenschätzung. Standardisierte Bewertungsmetriken (z. B. OKS) erleichtern den Vergleich zwischen verschiedenen Modellen. Die Anwendungen des COCO erstrecken sich über verschiedene Bereiche wie Sportanalyse, Gesundheitswesen und Mensch-Computer-Interaktion, wo immer eine detaillierte Posenschätzung von menschlichen Figuren erforderlich ist. In der Praxis kann der Einsatz von vortrainierten Modellen, wie sie in der Dokumentation zur Verfügung gestellt werden (z. B. YOLO11n-pose), den Prozess erheblich vereinfachen(Key Features).
Wenn Sie den COCO in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie das Papier bitte mit dem folgenden BibTeX-Eintrag.