Jeu de données COCO-Pose

Le jeu de données COCO-Pose est une version spécialisée du jeu de données COCO (Common Objects in Context), conçue pour les tâches d'estimation de pose. Il exploite les images et annotations COCO Keypoints 2017 pour permettre l'entraînement de modèles comme YOLO pour des tâches d'estimation de pose.

Estimation de pose COCO avec des points clés humains

Modèles pré-entraînés COCO-Pose

Modèletaille
(pixels)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
Vitesse
CPU ONNX
(ms)
Vitesse
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

Fonctionnalités clés

  • COCO-Pose s'appuie sur le jeu de données COCO Keypoints 2017 qui contient 200 000 images étiquetées avec des points clés pour les tâches d'estimation de pose.
  • Le jeu de données prend en charge 17 points clés pour les silhouettes humaines, facilitant une estimation de pose détaillée.
  • Comme COCO, il fournit des métriques d'évaluation standardisées, incluant l'Object Keypoint Similarity (OKS) pour les tâches d'estimation de pose, ce qui le rend adapté pour comparer les performances des modèles.

Structure du jeu de données

Le jeu de données COCO-Pose est divisé en trois sous-ensembles :

  1. Train2017 : Ce sous-ensemble contient 56 599 images issues du jeu de données COCO, annotées pour l'entraînement de modèles d'estimation de pose.
  2. Val2017 : Ce sous-ensemble dispose de 2 346 images utilisées à des fins de validation pendant l'entraînement du modèle.
  3. Test2017 : Ce sous-ensemble se compose d'images utilisées pour tester et évaluer les modèles entraînés. Les annotations de vérité terrain pour ce sous-ensemble ne sont pas disponibles publiquement, et les résultats sont soumis au serveur d'évaluation COCO pour l'évaluation des performances.

Applications

Le jeu de données COCO-Pose est spécifiquement utilisé pour l'entraînement et l'évaluation de modèles de deep learning dans les tâches de détection de points clés et d'estimation de pose, comme OpenPose. Le grand nombre d'images annotées du jeu de données et ses métriques d'évaluation standardisées en font une ressource essentielle pour les chercheurs et praticiens en vision par ordinateur axés sur l'estimation de pose.

YAML du jeu de données

Un fichier YAML (Yet Another Markup Language) est utilisé pour définir la configuration du jeu de données. Il contient des informations sur les chemins du jeu de données, les classes et d'autres informations pertinentes. Dans le cas du jeu de données COCO-Pose, le fichier coco-pose.yaml est maintenu à 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)

Utilisation

Pour entraîner un modèle YOLO26n-pose sur le jeu de données COCO-Pose pendant 100 époques avec une taille d'image de 640, tu peux utiliser les extraits de code suivants. Pour une liste complète des arguments disponibles, consulte la page Entraînement du modèle.

Exemple d'entraînement
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)

Exemples d'images et d'annotations

Le jeu de données COCO-Pose contient un ensemble varié d'images avec des silhouettes humaines annotées avec des points clés. Voici quelques exemples d'images provenant du jeu de données, accompagnées de leurs annotations correspondantes :

Lot d'entraînement en mosaïque du jeu de données d'estimation de pose COCO

  • Image en mosaïque : Cette image démontre un lot d'entraînement composé d'images du jeu de données en mosaïque. La mosaïque est une technique utilisée pendant l'entraînement qui combine plusieurs images en une seule image pour augmenter la variété des objets et des scènes au sein de chaque lot d'entraînement. Cela aide à améliorer la capacité du modèle à généraliser à différentes tailles d'objets, ratios d'aspect et contextes.

L'exemple illustre la variété et la complexité des images du jeu de données COCO-Pose ainsi que les avantages de l'utilisation du mosaïquage lors du processus d'entraînement.

Citations et remerciements

Si tu utilises le jeu de données COCO-Pose dans tes travaux de recherche ou de développement, merci de citer l'article suivant :

Citation
@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}
}

Nous tenons à remercier le consortium COCO pour la création et la maintenance de cette ressource précieuse pour la communauté de la vision par ordinateur. Pour plus d'informations sur le jeu de données COCO-Pose et ses créateurs, visite le site web du jeu de données COCO.

FAQ

Qu'est-ce que le jeu de données COCO-Pose et comment est-il utilisé avec Ultralytics YOLO pour l'estimation de pose ?

Le jeu de données COCO-Pose est une version spécialisée du jeu de données COCO (Common Objects in Context) conçue pour les tâches d'estimation de pose. Il s'appuie sur les images et annotations COCO Keypoints 2017, permettant l'entraînement de modèles comme Ultralytics YOLO pour une estimation de pose détaillée. Par exemple, tu peux utiliser le jeu de données COCO-Pose pour entraîner un modèle YOLO26n-pose en chargeant un modèle pré-entraîné et en l'entraînant avec une configuration YAML. Pour des exemples d'entraînement, consulte la documentation sur l'Entraînement.

Comment puis-je entraîner un modèle YOLO26 sur le jeu de données COCO-Pose ?

L'entraînement d'un modèle YOLO26 sur le jeu de données COCO-Pose peut être réalisé en utilisant soit Python, soit des commandes CLI. Par exemple, pour entraîner un modèle YOLO26n-pose pendant 100 époques avec une taille d'image de 640, tu peux suivre les étapes ci-dessous :

Exemple d'entraînement
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)

Pour plus de détails sur le processus d'entraînement et les arguments disponibles, consulte la page d'entraînement.

Quelles sont les différentes métriques fournies par le jeu de données COCO-Pose pour évaluer la performance du modèle ?

Le jeu de données COCO-Pose fournit plusieurs métriques d'évaluation standardisées pour les tâches d'estimation de pose, similaires au jeu de données COCO original. Les métriques clés incluent l'Object Keypoint Similarity (OKS), qui évalue la précision des points clés prédits par rapport aux annotations de vérité terrain. Ces métriques permettent des comparaisons de performance approfondies entre différents modèles. Par exemple, les modèles pré-entraînés COCO-Pose tels que YOLO26n-pose, YOLO26s-pose, et d'autres ont des métriques de performance spécifiques listées dans la documentation, comme mAPpose50-95 et mAPpose50.

Comment le jeu de données est-il structuré et divisé pour le jeu de données COCO-Pose ?

Le jeu de données COCO-Pose est divisé en trois sous-ensembles :

  1. Train2017 : Contient 56 599 images COCO, annotées pour l'entraînement de modèles d'estimation de pose.
  2. Val2017 : 2 346 images à des fins de validation pendant l'entraînement du modèle.
  3. Test2017 : Images utilisées pour tester et évaluer les modèles entraînés. Les annotations de vérité terrain pour ce sous-ensemble ne sont pas disponibles publiquement ; les résultats sont soumis au serveur d'évaluation COCO pour l'évaluation des performances.

Ces sous-ensembles aident à organiser efficacement les phases d'entraînement, de validation et de test. Pour les détails de configuration, explore le fichier coco-pose.yaml disponible sur GitHub.

Quelles sont les fonctionnalités et applications clés du jeu de données COCO-Pose ?

Le jeu de données COCO-Pose étend les annotations COCO Keypoints 2017 pour inclure 17 points clés pour les silhouettes humaines, permettant une estimation de pose détaillée. Des métriques d'évaluation standardisées (par ex. OKS) facilitent les comparaisons entre différents modèles. Les applications du jeu de données COCO-Pose couvrent divers domaines, tels que l'analyse sportive, la santé et l'interaction homme-machine, partout où une estimation de pose détaillée des silhouettes humaines est requise. Pour une utilisation pratique, exploiter des modèles pré-entraînés comme ceux fournis dans la documentation (par ex. YOLO26n-pose) peut considérablement rationaliser le processus (Fonctionnalités Clés).

Si tu utilises le jeu de données COCO-Pose dans tes travaux de recherche ou de développement, merci de citer l'article avec l'entrée BibTeX suivante.

Commentaires