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 Labels, um das Training von Modellen wie YOLO fĂŒr PosenschĂ€tzungsaufgaben zu ermöglichen.

Pose Beispielbild

COCO-Pose vortrainierte Modelle

Modell GrĂ¶ĂŸe
(Pixel)
mAPpose
50-95
mAPpose
50
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n-pose 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-pose 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-pose 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-pose 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-pose 640 69.2 90.2 1607.1 3.73 69.4 263.2
YOLOv8x-pose-p6 1280 71.6 91.2 4088.7 10.04 99.1 1066.4

Hauptmerkmale

  • COCO-Pose baut auf dem COCO Keypoints 2017 Datensatz auf, 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, darunter Object Keypoint Similarity (OKS) fĂŒr PosenschĂ€tzungsaufgaben, und eignet sich daher fĂŒr den Vergleich der Modellleistung.

Struktur des Datensatzes

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

  1. Train2017: Diese Untergruppe enthĂ€lt einen Teil der 118.000 Bilder aus dem COCO-Datensatz, die fĂŒr das Training von Modellen zur PosenschĂ€tzung beschriftet wurden.
  2. Val2017: Diese Untergruppe enthÀlt eine Auswahl von Bildern, die wÀhrend der Modellschulung zur Validierung verwendet wurden.
  3. Test2017: Diese Untergruppe besteht aus Bildern, die zum Testen und Benchmarking der trainierten Modelle verwendet werden. 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 PosenschĂ€tzungsaufgaben wie OpenPose verwendet. Die große Anzahl an kommentierten Bildern und die standardisierten Bewertungsmetriken machen den Datensatz zu einer unverzichtbaren Ressource fĂŒr Bildverarbeitungsforscher und -praktiker, die sich mit PosenschĂ€tzungen beschĂ€ftigen.

Datensatz YAML

Eine YAML-Datei (Yet Another Markup Language) wird verwendet, um die Konfiguration des Datensatzes zu definieren. Sie enthĂ€lt Informationen ĂŒber die Pfade des Datensatzes, die Klassen und andere relevante Informationen. Im Fall des COCO-Pose-Datensatzes ist 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/yolov5/releases/download/v1.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 YOLOv8n-pose-Modell auf dem COCO-Pose-Datensatz fĂŒr 100 Epochen mit einer BildgrĂ¶ĂŸe von 640 zu trainieren, kannst du die folgenden Codeschnipsel verwenden. Eine umfassende Liste der verfĂŒgbaren Argumente findest du auf der Seite Modelltraining.

Beispiel fĂŒr einen Zug

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n-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 detect train data=coco-pose.yaml model=yolov8n.pt epochs=100 imgsz=640

Beispielbilder und Anmerkungen

Der COCO-Pose-Datensatz enthĂ€lt eine Vielzahl von Bildern mit menschlichen Figuren, die mit Keypoints versehen sind. Hier sind einige Beispiele fĂŒr Bilder aus dem Datensatz, zusammen mit den entsprechenden Anmerkungen:

Datensatz Beispielbild

  • Mosaikbild: Dieses Bild zeigt einen Trainingsstapel, der aus Mosaikbildern des Datensatzes besteht. Beim Mosaikieren werden mehrere Bilder zu einem einzigen Bild zusammengefĂŒgt, um die Vielfalt der Objekte und Szenen in jedem Trainingsstapel zu erhöhen. Dadurch wird die FĂ€higkeit des Modells verbessert, sich auf verschiedene ObjektgrĂ¶ĂŸen, SeitenverhĂ€ltnisse und Kontexte einzustellen.

Das Beispiel zeigt die Vielfalt und KomplexitÀt der Bilder im COCO-Pose-Datensatz und die Vorteile der Mosaikbildung im Trainingsprozess.

Zitate und Danksagungen

Wenn du den COCO-Pose-Datensatz in deiner Forschungs- oder Entwicklungsarbeit verwendest, zitiere 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 Schöpfer findest du auf der Website des COCO-Datensatzes.



Erstellt am 12.11.2023, aktualisiert am 17.04.2024
Autoren: glenn-jocher (4), RizwanMunawar (1), Laughing-q (1)

Kommentare