COCO-Pose-Datensatz

Der COCO-Pose-Datensatz ist eine spezialisierte Version des COCO-Datensatzes (Common Objects in Context), die für Pose-Estimation-Aufgaben entwickelt wurde. Er nutzt die Bilder und Labels der COCO Keypoints 2017, um das Training von Modellen wie YOLO für Pose-Estimation-Aufgaben zu ermöglichen.

COCO Pose Estimation mit menschlichen Keypoints

COCO-Pose vortrainierte Modelle

ModellGröße
(Pixel)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
T4 TensorRT10
(ms)
Params
(M)
FLOPs
(B)
YOLO26n-pose64057.283.340.3 ± 0.51.8 ± 0.02.97.5
YOLO26s-pose64063.086.685.3 ± 0.92.7 ± 0.010.423.9
YOLO26m-pose64068.889.6218.0 ± 1.55.0 ± 0.121.573.1
YOLO26l-pose64070.490.5275.4 ± 2.46.5 ± 0.125.991.3
YOLO26x-pose64071.691.6565.4 ± 3.012.2 ± 0.257.6201.7

Hauptmerkmale

  • COCO-Pose baut auf dem COCO Keypoints 2017-Datensatz auf, der 200.000 Bilder enthält, die mit Keypoints für Pose-Estimation-Aufgaben annotiert sind.
  • Der Datensatz unterstützt 17 Keypoints für menschliche Figuren und ermöglicht so eine detaillierte Pose Estimation.
  • Wie COCO bietet er standardisierte Bewertungsmetriken, einschließlich der Object Keypoint Similarity (OKS) für Pose-Estimation-Aufgaben, was ihn für den Vergleich der Modellleistung geeignet macht.

Datensatzstruktur

Der COCO-Pose-Datensatz ist in drei Teilmengen unterteilt:

  1. Train2017: Diese Teilmenge enthält 56.599 Bilder aus dem COCO-Datensatz, die für das Training von Pose-Estimation-Modellen annotiert sind.
  2. Val2017: Diese Teilmenge enthält 2.346 Bilder, die zu Validierungszwecken während des Modelltrainings verwendet werden.
  3. Test2017: Diese Teilmenge besteht aus Bildern, die zum Testen und Benchmarking der trainierten Modelle verwendet werden. Ground-Truth-Annotationen für diese Teilmenge sind nicht öffentlich zugänglich, und die Ergebnisse werden zur Leistungsbewertung an den COCO-Evaluierungsserver übermittelt.

Anwendungen

Der COCO-Pose-Datensatz wird spezifisch für das Training und die Evaluierung von Deep Learning-Modellen bei Aufgaben zur Keypoint-Detektion und Pose Estimation, wie z. B. OpenPose, verwendet. Die große Anzahl annotierter Bilder und die standardisierten Bewertungsmetriken des Datensatzes machen ihn zu einer unverzichtbaren Ressource für Computer Vision-Forscher und Anwender, die sich auf Pose Estimation konzentrieren.

Datensatz-YAML

Eine YAML-Datei (Yet Another Markup Language) wird verwendet, um die Datensatzkonfiguration zu definieren. Sie enthält Informationen über die Pfade des Datensatzes, Klassen und andere relevante Informationen. Im Fall des COCO-Pose-Datensatzes wird die coco-pose.yaml-Datei 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.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)

Verwendung

Um ein YOLO26n-pose-Modell auf dem COCO-Pose-Datensatz 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 Seite für das Modell-Training.

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 Keypoints annotiert sind. Hier sind einige Beispiele für Bilder aus dem Datensatz, zusammen mit ihren entsprechenden Annotationen:

COCO Pose Estimation Datensatz Mosaik-Trainingsbatch

  • Mosaik-Bild: Dieses Bild zeigt einen Trainings-Batch, der aus mosaikierten Datensatzbildern besteht. Mosaiking 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 veranschaulicht 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:

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 möchten dem COCO Consortium dafür danken, dass es diese wertvolle Ressource für die Computer-Vision-Community erstellt und pflegt. Weitere Informationen über den COCO-Pose-Datensatz und seine Ersteller findest du auf der COCO-Datensatz-Website.

FAQ

Was ist der COCO-Pose-Datensatz und wie wird er mit Ultralytics YOLO für die Pose Estimation verwendet?

Der COCO-Pose-Datensatz ist eine spezialisierte Version des COCO-Datensatzes (Common Objects in Context), die für Pose-Estimation-Aufgaben entwickelt wurde. Er baut auf den Bildern und Annotationen der COCO Keypoints 2017 auf und ermöglicht das Training von Modellen wie Ultralytics YOLO für eine detaillierte Pose Estimation. Du kannst den COCO-Pose-Datensatz beispielsweise nutzen, um ein YOLO26n-pose-Modell zu trainieren, indem du ein vortrainiertes Modell lädst und es mit einer YAML-Konfiguration trainierst. Beispiele für das Training findest du in der Training-Dokumentation.

Wie kann ich ein YOLO26-Modell auf dem COCO-Pose-Datensatz trainieren?

Das Training eines YOLO26-Modells auf dem COCO-Pose-Datensatz kann entweder mit Python oder über CLI-Befehle durchgeführt werden. Um beispielsweise ein YOLO26n-pose-Modell für 100 Epochen mit einer Bildgröße von 640 zu trainieren, kannst du die folgenden Schritte befolgen:

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)

Weitere Details zum Trainingsprozess und zu den verfügbaren Argumenten findest du auf der Training-Seite.

Welche verschiedenen Metriken bietet der COCO-Pose-Datensatz zur Bewertung der Modellleistung?

Der COCO-Pose-Datensatz bietet verschiedene standardisierte Bewertungsmetriken für Pose-Estimation-Aufgaben, ähnlich wie der ursprüngliche COCO-Datensatz. Zu den wichtigsten Metriken gehört die Object Keypoint Similarity (OKS), die die Genauigkeit der vorhergesagten Keypoints gegenüber den Ground-Truth-Annotationen bewertet. Diese Metriken ermöglichen gründliche Leistungsvergleiche zwischen verschiedenen Modellen. Beispielsweise haben die vortrainierten COCO-Pose-Modelle wie YOLO26n-pose, YOLO26s-pose und andere spezifische Leistungsmetriken, die in der Dokumentation aufgeführt sind, wie etwa mAPpose50-95 und mAPpose50.

Wie ist der Datensatz für den COCO-Pose-Datensatz strukturiert und unterteilt?

Der COCO-Pose-Datensatz ist in drei Teilmengen unterteilt:

  1. Train2017: Enthält 56.599 COCO-Bilder, die für das Training von Pose-Estimation-Modellen annotiert sind.
  2. Val2017: 2346 Bilder zu Validierungszwecken während des Modelltrainings.
  3. Test2017: Bilder, die zum Testen und Benchmarking trainierter Modelle verwendet werden. Ground-Truth-Annotationen für diese Teilmenge sind nicht öffentlich zugänglich; Ergebnisse werden zur Leistungsbewertung an den COCO-Evaluierungsserver übermittelt.

Diese Teilmengen helfen dabei, die Trainings-, Validierungs- und Testphasen effektiv zu organisieren. Für Konfigurationsdetails erkunde die coco-pose.yaml-Datei, die auf GitHub verfügbar ist.

Was sind die wichtigsten Funktionen und Anwendungen des COCO-Pose-Datensatzes?

Der COCO-Pose-Datensatz erweitert die COCO Keypoints 2017-Annotationen um 17 Keypoints für menschliche Figuren, was eine detaillierte Pose Estimation ermöglicht. Standardisierte Bewertungsmetriken (z. B. OKS) erleichtern den Vergleich über verschiedene Modelle hinweg. Anwendungen des COCO-Pose-Datensatzes erstrecken sich über verschiedene Bereiche wie Sportanalyse, Gesundheitswesen und Mensch-Computer-Interaktion, wo auch immer eine detaillierte Pose Estimation menschlicher Figuren erforderlich ist. Für den praktischen Einsatz kann die Nutzung vortrainierter Modelle, wie sie in der Dokumentation bereitgestellt werden (z. B. YOLO26n-pose), den Prozess erheblich rationalisieren (Key Features).

Wenn du den COCO-Pose-Datensatz in deiner Forschung oder Entwicklungsarbeit verwendest, zitiere bitte das Paper mit dem folgenden BibTeX-Eintrag.

Kommentare