Ultralytics YOLO27:

COCO-Pose-Datensatz#

Der COCO-Pose-Datensatz passt COCO (Gemeinsame Objekte im Kontext) für die Posenschätzung an: 58.945 Bilder aus COCO Keypoints 2017, annotiert mit 156.165 Personen anhand eines Schemas mit 17 Schlüsselpunkten. Er ist der Standarddatensatz zum Trainieren und Bewerten von Schlüsselpunktemodellen wie Ultralytics YOLO26, und die 8 Bilder umfassende Teilmenge COCO8-Pose übernimmt sein Format für schnelle Plausibilitätsprüfungen.

COCO-Posenschätzung mit menschlichen Schlüsselpunkten

Mit COCO-Pose vortrainierte Modelle#

ModellGröße
(Pixel)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
T4 TensorRT10
(ms)
Parameter
(M)
FLOPs
(B)
YOLO26n-pose64057.283.340.3 ± 0.51.8 ± 0.02.97.6
YOLO26s-pose64063.086.685.3 ± 0.92.7 ± 0.010.424.1
YOLO26m-pose64068.889.6218.0 ± 1.55.0 ± 0.121.573.3
YOLO26l-pose64070.490.5275.4 ± 2.46.5 ± 0.125.991.7
YOLO26x-pose64071.691.6565.4 ± 3.012.2 ± 0.257.6202.3

Wichtige Funktionen#

  • COCO-Pose baut auf dem Wettbewerb COCO Keypoints 2017 auf, bei dem 1.710.498 einzelne Schlüsselpunkte von 156.165 annotierten Personen gekennzeichnet werden.
  • Jede Personenannotation verwendet 17 Schlüsselpunkttypen – Nase, Augen, Ohren, Schultern, Ellbogen, Handgelenke, Hüften, Knie und Knöchel –, die als (x, y, visibility)-Tripel gespeichert werden.
  • Wie COCO stellt der Datensatz standardisierte Bewertungsmetriken bereit, darunter die Ähnlichkeit von Objekt-Schlüsselpunkten (OKS) für Posenschätzungsaufgaben, und eignet sich dadurch zum Vergleich der Modellleistung.
  • Downloadgröße: ~20,2 GB bei der ersten Verwendung (train2017.zip + val2017.zip + Labels). Die 7 GB große Datei test2017.zip wird nicht automatisch abgerufen, da für diese Bilder die Ground Truth zurückgehalten wird und sie 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 Personen, die mit Schlüsselpunkten annotiert sind. Daher sind die beschrifteten Teilmengen kleiner als bei COCO insgesamt. Die YAML-Datei definiert drei Teilmengen:

  1. Train2017: Diese Teilmenge enthält 56.599 Bilder aus dem COCO-Datensatz, die für das Training von Posenschätzungsmodellen annotiert wurden.
  2. Val2017: Diese Teilmenge umfasst 2.346 Bilder, die während des Modelltrainings zur Validierung verwendet werden.
  3. Test-dev2017: Eine Teilmenge mit 20.288 Bildern aus dem vollständigen test2017-Satz mit 40.670 Bildern, für die die Ground Truth zurückgehalten wird. Die Dataset-YAML-Datei verknüpft diese Teilmenge mit dem COCO-Test-dev-Schlüsselpunkte-Bewertungsserver.

Bei dieser Größenordnung hilft die Ultralytics Platform am meisten – sie verwaltet die Rechenressourcen, sodass du Trainingsläufe starten und überwachen kannst, ohne eigene GPUs bereitzustellen.

Anwendungen#

Der COCO-Pose-Datensatz wird speziell zum Trainieren und Bewerten von Deep-Learning-Modellen für die Schlüsselpunkterkennung und Posenschätzung verwendet. Die große Zahl annotierter Bilder und die standardisierten Bewertungsmetriken machen ihn zu einer wichtigen Ressource für Forschende und Praktiker im Bereich Computer Vision, die an menschlicher Pose arbeiten.

Dataset-YAML#

Eine YAML-Datei definiert die Konfiguration des Datensatzes. Sie enthält Informationen zu den Pfaden, Klassen und weiteren relevanten Einstellungen des Datensatzes. Beim COCO-Pose-Datensatz wird die Datei coco-pose.yaml unter https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml gepflegt.

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)

Verwendung#

Um ein YOLO26n-pose-Modell 100 Epochen lang mit einer Bildgröße von 640 auf dem COCO-Pose-Datensatz zu trainieren, kannst du die folgenden Codebeispiele verwenden. Eine vollständige Liste der verfügbaren Argumente findest du auf der Seite Training für Modelle.

Trainingsbeispiel
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 Auswahl an Bildern mit menschlichen Figuren, die mit Schlüsselpunkten annotiert sind. Hier siehst du einige Beispiele aus dem Datensatz zusammen mit den zugehörigen Annotationen:

Mosaik eines Trainings-Batches zur COCO-Posenschätzung

  • Mosaikbild: Dieses Bild zeigt einen Trainings-Batch, der aus zu einem Mosaik zusammengesetzten Datensatzbildern besteht. Das Mosaikverfahren wird während des Trainings eingesetzt und kombiniert mehrere Bilder zu einem einzigen Bild, um die Vielfalt der Objekte und Szenen innerhalb jedes Trainings-Batches zu erhöhen. Dadurch kann das Modell besser auf unterschiedliche Objektgrößen, Seitenverhältnisse und Kontexte generalisieren.

Das Beispiel zeigt die Vielfalt und Komplexität der Bilder im COCO-Pose-Datensatz sowie die Vorteile der Verwendung von Mosaik-Augmentierung während des Trainings.

Zitate und Danksagungen#

Wenn du den COCO-Pose-Datensatz für deine Forschungs- oder Entwicklungsarbeit verwendest, zitiere bitte die folgende Veröffentlichung:

Zitat
@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 danken dem COCO-Konsortium für die Erstellung und Pflege dieser wertvollen Ressource für die Computer-Vision-Community. Weitere Informationen zum COCO-Pose-Datensatz und seinen Erstellern findest du auf der COCO-Datensatz-Website.

FAQ#

  • COCO-Pose stellt die Bilder und Annotationen von COCO Keypoints 2017 bereit, die in das YOLO-Schlüsselpunkteformat konvertiert wurden und über 58.945 Bilder ein Schema mit 17 Schlüsselpunkten verwenden. Verweise mit data=coco-pose.yaml ein beliebiges Ultralytics-YOLO-Posenmodell darauf. Auf der Seite Training werden anschließend alle anpassbaren Argumente dokumentiert.

  • Lade yolo26n-pose.pt und rufe model.train(data="coco-pose.yaml", epochs=100, imgsz=640) auf. Im Trainingsbeispiel oben findest du die vollständigen Python- und CLI-Codebeispiele, auf der Trainingsseite eine vollständige Liste der Argumente.

  • Der COCO-Pose-Datensatz stellt für Posenschätzungsaufgaben mehrere standardisierte Bewertungsmetriken bereit, ähnlich wie der ursprüngliche COCO-Datensatz. Zu den wichtigsten Metriken gehört die Ähnlichkeit von Objekt-Schlüsselpunkten (OKS), die die Genauigkeit vorhergesagter Schlüsselpunkte im Vergleich zu den Ground-Truth-Annotationen bewertet. Diese Metriken ermöglichen gründliche Leistungsvergleiche zwischen verschiedenen Modellen. Beispielsweise weisen die mit COCO-Pose vortrainierten Modelle wie YOLO26n-pose, YOLO26s-pose und weitere spezifische Leistungsmetriken auf, die in der Dokumentation aufgeführt sind, etwa mAPpose50-95 und mAPpose50.

  • COCO-Pose enthält zwei beschriftete Teilmengen: 56.599 train2017-Bilder und 2.346 val2017-Bilder. Eine dritte Teilmenge, test-dev2017 (20.288 der insgesamt 40.670 test2017-Bilder), hält die Ground Truth privat. Die Dataset-YAML-Datei verknüpft sie mit dem COCO-Test-dev-Schlüsselpunkte-Bewertungsserver. Im Abschnitt Struktur des Datensatzes oder in der Datei coco-pose.yaml auf GitHub findest du die genauen Pfade der Teilmengen.

  • COCO-Pose verwendet 17 menschliche Schlüsselpunkttypen und übernimmt die standardisierten Metriken von COCO, einschließlich der Ähnlichkeit von Objekt-Schlüsselpunkten (OKS), zum Vergleich von Modellen. Diese Kombination eignet sich für Anwendungen zur menschlichen Pose, etwa Sportanalysen, Gesundheitswesen und Mensch-Computer-Interaktion. Vortrainierte YOLO26-pose-Gewichte sind unter Mit COCO-Pose vortrainierte Modelle aufgeführt.

    Weitere Informationen zu Schlüsselpunktemodellen findest du in der Dokumentation zur Aufgabe Posenschätzung.

Kommentare