Zum Inhalt springen

COCO-Pose Datensatz

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

COCO mit menschlichen Schlüsselpunkten

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.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 basiert auf dem COCO Keypoints 2017 Datensatz, der 200.000 Bilder enthält, die mit Keypoints für Aufgaben der Posenschätzung annotiert sind.
  • Der Datensatz unterstützt 17 Keypoints für menschliche Figuren und ermöglicht so eine detaillierte Pose-Schätzung.
  • Ähnlich wie COCO bietet es standardisierte Bewertungsmetriken, einschließlich Object Keypoint Similarity (OKS) für Aufgaben der Posenschätzung, wodurch es sich zum Vergleich der Modellleistung eignet.

Dataset-Struktur

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

  1. Train2017: Dieser Teilsatz enthält 56599 Bilder aus dem COCO-Datensatz, die für das Training von Pose-Estimation-Modellen annotiert wurden.
  2. Val2017: Diese Teilmenge enthält 2346 Bilder, die für Validierungszwecke während des Modelltrainings verwendet werden.
  3. Test2017: Dieser Teilsatz besteht aus Bildern, die zum Testen und Benchmarking der trainierten Modelle verwendet werden. Ground-Truth-Annotationen für diesen Teilsatz sind nicht öffentlich verfügbar, 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 in Schlüsselpunkterkennungs- und Posenschätzungsaufgaben, wie OpenPose, verwendet. Die große Anzahl annotierter Bilder und die standardisierten Bewertungsmetriken des Datensatzes machen ihn zu einer unverzichtbaren Ressource für Computer-Vision-Forschende und -Praktiker, die sich auf Posenschätzung konzentrieren.

Datensatz-YAML

Eine YAML (Yet Another Markup Language)-Datei wird verwendet, um die Dataset-Konfiguration zu definieren. Sie enthält Informationen über die Pfade, Klassen und andere relevante Informationen des Datasets. Im Falle des COCO-Pose-Datasets, 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 🚀 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 YOLO26n-pose-Modell auf dem COCO-Pose-Datensatz für 100 Epochen mit einer Bildgröße von 640 zu trainieren, können Sie die folgenden Code-Snippets verwenden. Eine umfassende Liste der verfügbaren Argumente finden Sie auf der Trainings-Seite des Modells.

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)
# Start training from a pretrained *.pt model
yolo pose train data=coco-pose.yaml model=yolo26n-pose.pt epochs=100 imgsz=640

sample_images und Anmerkungen

Der COCO-Pose-Datensatz enthält einen vielfältigen Satz von Bildern mit menschlichen Figuren, die mit Schlüsselpunkten annotiert sind. Hier sind einige Beispiele von Bildern aus dem Datensatz, zusammen mit ihren entsprechenden Annotationen:

COCO -Datensatz zur Posenschätzung Mosaik-Trainingsbatch

  • 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 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 Sie den COCO-Pose-Datensatz in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie bitte das folgende Paper:

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

FAQ

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

Der COCO-Pose-Datensatz ist eine spezialisierte Version des COCO-Datensatzes (Common Objects in Context), die für Aufgaben der Posenschätzung entwickelt wurde. Er baut auf den COCO Keypoints 2017 Bildern und Annotationen auf und ermöglicht das Training von Modellen wie Ultralytics YOLO für eine detaillierte Posenschätzung. Sie können beispielsweise den COCO-Pose-Datensatz verwenden, um ein YOLO26n-pose-Modell zu trainieren, indem Sie ein vortrainiertes Modell laden und es mit einer YAML-Konfiguration trainieren. Trainingsbeispiele finden Sie in der Trainings-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 CLI-Befehlen durchgeführt werden. Um beispielsweise ein YOLO26n-pose-Modell 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("yolo26n-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=yolo26n-pose.pt epochs=100 imgsz=640

Weitere Informationen zum Trainingsprozess und zu den verfügbaren Argumenten finden Sie auf der Trainingsseite.

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

Der COCO-Pose-Datensatz bietet, ähnlich dem ursprünglichen COCO-Datensatz, mehrere standardisierte Bewertungsmetriken für Pose-Estimation-Aufgaben. Zu den Schlüsselmetriken gehört die Object Keypoint Similarity (OKS), die die Genauigkeit der vorhergesagten Keypoints im Vergleich zu den Ground-Truth-Annotationen bewertet. Diese Metriken ermöglichen umfassende Leistungsvergleiche zwischen verschiedenen Modellen. Beispielsweise weisen die vortrainierten COCO-Pose-Modelle wie YOLO26n-pose, YOLO26s-pose und andere spezifische Leistungsmetriken auf, die in der Dokumentation aufgeführt sind, wie mAPpose50-95 und mAPpose50.

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

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

  1. Train2017: Enthält 56599 COCO-Bilder, die für das Training von Pose-Estimation-Modellen annotiert wurden.
  2. Val2017: 2346 Bilder für Validierungszwecke während des Modelltrainings.
  3. Test2017: Bilder, die zum Testen und Benchmarking trainierter Modelle verwendet werden. Ground-Truth-Annotationen für diesen Teilsatz sind nicht öffentlich verfügbar; die Ergebnisse werden zur Leistungsbewertung an den COCO-Evaluierungsserver übermittelt.

Diese Teilmengen helfen, die Trainings-, Validierungs- und Testphasen effektiv zu organisieren. Konfigurationsdetails finden Sie unter coco-pose.yaml Datei verfügbar auf GitHub.

Welche Hauptmerkmale und Anwendungen hat der COCO-Pose-Datensatz?

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 Vergleiche zwischen verschiedenen Modellen. Anwendungen des COCO-Pose-Datensatzes erstrecken sich über verschiedene Bereiche wie Sportanalysen, Gesundheitswesen und Mensch-Computer-Interaktion, überall dort, wo eine detaillierte Pose-Estimation menschlicher Figuren erforderlich ist. Für den praktischen Einsatz kann die Nutzung vortrainierter Modelle, wie sie in der Dokumentation (z. B. YOLO26n-pose) bereitgestellt werden, den Prozess erheblich optimieren (Hauptmerkmale).

Wenn Sie den COCO-Pose-Datensatz in Ihrer Forschungs- oder Entwicklungsarbeit verwenden, zitieren Sie das Paper mit dem folgenden BibTeX-Eintrag.



📅 Erstellt vor 2 Jahren ✏️ Aktualisiert vor 2 Tagen
glenn-jocherRizwanMunawarjk4eY-T-Gambitious-octopusUltralyticsAssistantMatthewNoycehnliu_2@stu.xidian.edu.cnRizwanMunawar

Kommentare