Zum Inhalt springen

COCO-Pose-Datensatz

Der COCO-Pose-Datensatz ist eine spezielle Version des COCO-Datensatzes (Common Objects in Context), der fĂŒr Aufgaben der PosenschĂ€tzung entwickelt wurde. Er nutzt die COCO-Keypoints 2017-Bilder und -Beschriftungen, um das Training von Modellen wie YOLO fĂŒr PosenschĂ€tzungsaufgaben zu ermöglichen.

Beispielbild posieren

COCO-Pose vortrainierte Modelle

Modell GrĂ¶ĂŸe
(Pixel)
mAPpose
50-95
mAPpose
50
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
T4TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLO11n-Pose 640 50.0 81.0 52.4 ± 0.5 1.7 ± 0.0 2.9 7.6
YOLO11s-Pose 640 58.9 86.3 90.5 ± 0.6 2.6 ± 0.0 9.9 23.2
YOLO11m-Pose 640 64.9 89.4 187.3 ± 0.8 4.9 ± 0.1 20.9 71.7
YOLO11l-Pose 640 66.1 89.9 247.7 ± 1.1 6.4 ± 0.1 26.2 90.7
YOLO11x-Pose 640 69.5 91.1 488.0 ± 13.9 12.1 ± 0.2 58.8 203.3

Wesentliche Merkmale

  • COCO-Pose 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, die eine detaillierte PosenschĂ€tzung ermöglichen.
  • 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.

Struktur des Datensatzes

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

  1. Train2017: Diese Teilmenge enthĂ€lt einen Teil der 118.000 Bilder aus dem COCO-Datensatz, die fĂŒr das Training von Modellen zur PosenschĂ€tzung kommentiert wurden.
  2. Val2017: Diese Teilmenge enthÀlt eine Auswahl von Bildern, die wÀhrend der Modellschulung zur Validierung verwendet wurden.
  3. Test2017: Diese Teilmenge besteht aus Bildern, die zum Testen und Benchmarking der trainierten Modelle verwendet werden. Die Ground-Truth-Kommentare fĂŒr diese Untergruppe sind nicht öffentlich zugĂ€nglich, und die Ergebnisse werden zur Leistungsbewertung an den COCO-Evaluierungsserver ĂŒbermittelt.

Anwendungen

Der COCO-Pose-Datensatz 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 Dataset-Konfiguration verwendet. Sie enthĂ€lt Informationen ĂŒber die Pfade des Datensatzes, Klassen und andere relevante Informationen. Im Falle des COCO-Pose-Datensatzes wird die coco-pose.yaml Datei wird verwaltet unter https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml.

ultralytics/cfg/datasets/coco-pose.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO 2017 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: ../datasets/coco-pose # dataset root dir
train: train2017.txt # train images (relative to 'path') 118287 images
val: val2017.txt # val images (relative to 'path') 5000 images
test: test-dev2017.txt # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794

# 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

# Download script/URL (optional)
download: |
  from ultralytics.utils.downloads import download
  from pathlib import Path

  # Download labels
  dir = Path(yaml['path'])  # dataset root dir
  url = 'https://github.com/ultralytics/assets/releases/download/v0.0.0/'
  urls = [url + 'coco2017labels-pose.zip']  # labels
  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 YOLO11n-Positionsmodell auf dem COCO-Positionsdatensatz 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.

Beispiel fĂŒr einen Zug

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

Beispielbilder und -kommentare

Der COCO-Pose-Datensatz 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:

Datensatz Beispielbild

  • Mosaikbild: Dieses Bild zeigt einen Trainingsstapel, der aus Mosaikbildern des Datensatzes besteht. Das Mosaikieren ist eine Technik, bei der wĂ€hrend des Trainings mehrere Bilder zu einem einzigen Bild kombiniert werden, um die Vielfalt der Objekte und Szenen in jedem Trainingsstapel zu erhöhen. Dies trĂ€gt dazu bei, die FĂ€higkeit des Modells zur Generalisierung auf verschiedene ObjektgrĂ¶ĂŸen, SeitenverhĂ€ltnisse und Kontexte zu verbessern.

Das Beispiel verdeutlicht die Vielfalt und KomplexitÀt der Bilder im COCO-Pose-Datensatz und die Vorteile der Mosaikbildung wÀhrend des Trainingsprozesses.

Zitate und Danksagungen

Wenn Sie den COCO-Pose-Datensatz 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-Konsortium fĂŒr die Erstellung und Pflege dieser wertvollen Ressource fĂŒr die Computer Vision Community danken. Weitere Informationen ĂŒber den COCO-Pose-Datensatz und seine Ersteller finden Sie auf der COCO-Datensatz-Website.

FAQ

Was ist der COCO-Pose-Datensatz und wie wird er mit Ultralytics YOLO zur Pose-SchÀtzung verwendet?

Der COCO-Pose-Datensatz ist eine spezielle Version des COCO-Datensatzes (Common Objects in Context), der fĂŒr Aufgaben der PosenschĂ€tzung entwickelt wurde. Er baut auf den COCO Keypoints 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-Pose-Datensatz 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 Modell auf dem COCO-Pose-Datensatz trainieren?

Das Trainieren eines YOLO11 Modells auf dem COCO-Pose-Datensatz kann entweder mit den Befehlen Python oder 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:

Beispiel fĂŒr einen Zug

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 Einzelheiten ĂŒber den Schulungsprozess und die verfĂŒgbaren Argumente finden Sie auf der Schulungsseite.

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

Der COCO-Pose-Datensatz bietet, Ă€hnlich wie der ursprĂŒngliche COCO-Datensatz, 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-Pose-Modelle 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-Pose-Datensatz?

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

  1. Zug2017: EnthĂ€lt einen Teil der 118K COCO-Bilder, die fĂŒr das Training von Modellen zur PosenschĂ€tzung kommentiert wurden.
  2. Val2017: AusgewĂ€hlte Bilder fĂŒr Validierungszwecke wĂ€hrend der Modellschulung.
  3. Test2017: Bilder, die zum Testen und Benchmarking der trainierten Modelle verwendet werden. Die Ground-Truth-Annotationen fĂŒr diese Untergruppe sind nicht öffentlich zugĂ€nglich; die Ergebnisse werden zur Leistungsbewertung an den COCO-Evaluierungsserver ĂŒbermittelt.

Diese Untergruppen helfen, die Trainings-, Validierungs- und Testphasen effektiv zu organisieren. Einzelheiten zur Konfiguration finden Sie in der coco-pose.yaml Datei verfĂŒgbar auf GitHub.

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

Der COCO-Pose-Datensatz 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-Pose-Datensatzes 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-Pose-Datensatz in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie das Papier bitte mit dem folgenden BibTeX-Eintrag.

📅 Erstellt vor 1 Jahr ✏ Aktualisiert vor 1 Monat

Kommentare