Passer au contenu

Ensemble de données COCO-Pose

L'ensemble de données COCO-Pose est une version spécialisée de l'ensemble de données COCO (Common Objects in Context), conçue pour les tâches d'estimation de pose. Il exploite les images et les étiquettes COCO Keypoints 2017 pour permettre la formation de modèles tels que YOLO pour les tâches d'estimation de pose.

Exemple d'image de pose

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

ModèleTaille
(pixels)
mAPpose
50-95
mAPpose
50
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
YOLO11n-pose64050.081.052,4 ± 0,51,7 ± 0,02.97.4
YOLO11s-pose64058.986.390,5 ± 0,62,6 ± 0,09.923.1
YOLO11m-pose64064.989.4187,3 ± 0,84,9 ± 0,120.971.4
YOLO11l-pose64066.189.9247,7 ± 1,16,4 ± 0,126.190.3
YOLO11x-pose64069.591.1488,0 ± 13,912,1 ± 0,258.8202.8

Principales caractéristiques

  • COCO-Pose s'appuie sur l'ensemble 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.
  • L'ensemble de données prend en charge 17 points clés pour les figures humaines, facilitant ainsi l'estimation détaillée de la pose.
  • Comme COCO, il fournit des métriques d'évaluation standardisées, y compris l'Object Keypoint Similarity (OKS) pour les tâches d'estimation de pose, ce qui le rend approprié pour comparer les performances du modèle.

Structure du jeu de données

L'ensemble de données COCO-Pose est divisé en trois sous-ensembles :

  1. Train2017 : Ce sous-ensemble contient 56 599 images de l’ensemble de données COCO, annotées pour la formation de modèles d’estimation de pose.
  2. Val2017 : Ce sous-ensemble contient 2 346 images utilisées à des fins de validation pendant l’entraînement du modèle.
  3. Test2017 : Ce sous-ensemble est constitué d’images utilisées pour les tests et l’évaluation comparative des modèles entraînés. Les annotations de vérité terrain pour ce sous-ensemble ne sont pas accessibles au public, et les résultats sont soumis au serveur d’évaluation COCO pour l’évaluation des performances.

Applications

L'ensemble de données COCO-Pose est spécifiquement utilisé pour la formation et l'évaluation de modèles de deep learning dans les tâches de détection de points clés et d'estimation de la pose, telles que OpenPose. Le grand nombre d'images annotées et les mesures d'évaluation standardisées de l'ensemble de données en font une ressource essentielle pour les chercheurs et les praticiens en vision par ordinateur axés sur l'estimation de la pose.

YAML du jeu de données

Un fichier YAML (Yet Another Markup Language) est utilisé pour définir la configuration du dataset. Il contient des informations sur les chemins, les classes et d'autres informations pertinentes du dataset. Dans le cas du dataset COCO-Pose, le coco-pose.yaml fichier est maintenu à l'adresse 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 YOLO11n-pose sur l'ensemble de données COCO-Pose pendant 100 epochs avec une taille d'image de 640, vous pouvez utiliser les extraits de code suivants. Pour une liste complète des arguments disponibles, consultez la page Entraînement du modèle.

Exemple d'entraînement

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

Images et annotations d'exemple

L'ensemble de données COCO-Pose contient un ensemble diversifié d'images avec des figures humaines annotées avec des points clés. Voici quelques exemples d'images de l'ensemble de données, ainsi que leurs annotations correspondantes :

Exemple d'image de l'ensemble de données

  • Image mosaïque : Cette image montre un lot d'entraînement composé d'images d'ensemble 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 dans chaque lot d'entraînement. Cela permet d'améliorer la capacité du modèle à se généraliser à différentes tailles d'objets, rapports hauteur/largeur et contextes.

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

Citations et remerciements

Si vous utilisez l'ensemble de données COCO-Pose dans vos travaux de recherche ou de développement, veuillez citer l'article suivant :

@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 COCO Consortium d'avoir créé et maintenu cette ressource précieuse pour la communauté de la vision par ordinateur. Pour plus d'informations sur l'ensemble de données COCO-Pose et ses créateurs, visitez le site web de l'ensemble 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 ?

L'ensemble de données COCO-Pose est une version spécialisée de l'ensemble 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 les annotations COCO Keypoints 2017, ce qui permet la formation de modèles tels que Ultralytics YOLO pour l'estimation de pose détaillée. Par exemple, vous pouvez utiliser l'ensemble de données COCO-Pose pour former un modèle YOLO11n-pose en chargeant un modèle pré-entraîné et en l'entraînant avec une configuration YAML. Pour des exemples de formation, consultez la documentation Formation.

Comment puis-je entraîner un modèle YOLO11 sur l'ensemble de données COCO-Pose ?

L'entraînement d'un modèle YOLO11 sur le jeu de données COCO-Pose peut être réalisé à l'aide de commandes Python ou CLI. Par exemple, pour entraîner un modèle YOLO11n-pose pendant 100 epochs avec une taille d'image de 640, vous pouvez suivre les étapes ci-dessous :

Exemple d'entraînement

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

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

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

L'ensemble de données COCO-Pose fournit plusieurs mesures d'évaluation standardisées pour les tâches d'estimation de la pose, similaires à l'ensemble de données COCO original. Les mesures clés incluent la similarité des points clés d'objet (OKS), qui évalue la précision des points clés prédits par rapport aux annotations de vérité terrain. Ces mesures permettent des comparaisons approfondies des performances entre différents modèles. Par exemple, les modèles pré-entraînés COCO-Pose tels que YOLO11n-pose, YOLO11s-pose et autres ont des mesures de performance spécifiques répertoriées dans la documentation, comme mAPpose50-95 et mAPpose50.

Comment l'ensemble de données est-il structuré et divisé pour l'ensemble de données COCO-Pose ?

L'ensemble de données COCO-Pose est divisé en trois sous-ensembles :

  1. Train2017 : Contient 56 599 images COCO, annotées pour la formation 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 les tests et l’évaluation comparative des modèles entraînés. Les annotations de vérité terrain pour ce sous-ensemble ne sont pas accessibles au public ; 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, explorez le coco-pose.yaml fichier disponible sur GitHub.

Quelles sont les principales caractéristiques et applications du jeu de données COCO-Pose ?

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

Si vous utilisez l'ensemble de données COCO-Pose dans vos travaux de recherche ou de développement, veuillez citer l'article avec l'entrée BibTeX suivante.



📅 Créé il y a 2 ans ✏️ Mis à jour il y a 11 mois
glenn-jocherjk4eY-T-Gambitious-octopusRizwanMunawarUltralyticsAssistantMatthewNoycehnliu_2@stu.xidian.edu.cn

Commentaires