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 l'entraînement 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èle Taille
(pixels)
mAPpose
50-95
mAPpose
50
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(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

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, le rendant approprié pour comparer les performances des modèles.

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 du jeu de données COCO, annotées pour l’entraînement des 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 comprend des images utilisées pour tester et évaluer les modèles entraînés. Les annotations de référence 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 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 la pose, telles que OpenPose. Le grand nombre d'images annotées de l'ensemble de données et les métriques d'évaluation standardisées en font une ressource essentielle pour les chercheurs et les praticiens en computer vision 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 de l'ensemble de données. Il contient des informations sur les chemins d'accès, les classes et d'autres informations pertinentes de l'ensemble de données. Dans le cas de l'ensemble de données 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

# Download script/URL (optional)
download: |
  from pathlib import Path

  from ultralytics.utils.downloads import download

  # Download labels
  dir = Path(yaml["path"])  # dataset root dir
  url = "https://github.com/ultralytics/assets/releases/download/v0.0.0/"
  urls = [f"{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 le jeu 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 Formation 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.

Cet exemple illustre la variété et la complexité des images dans l'ensemble de données COCO-Pose, ainsi que 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 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 l'ensemble de données COCO-Pose et ses créateurs, consultez le site Web de l'ensemble de données COCO.

FAQ

Qu'est-ce que l'ensemble 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çu pour les tâches d'estimation de pose. Il s'appuie sur les images et les annotations COCO Keypoints 2017, permettant l'entraînement de modèles tels que Ultralytics YOLO pour une estimation de pose détaillée. Par exemple, vous pouvez utiliser l'ensemble de données COCO-Pose pour entraîner 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 d'entraînement, consultez la documentation Entraînement.

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 l'ensemble de données COCO-Pose peut être réalisé en utilisant des 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 ?

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 keypoints prédits par rapport aux annotations de référence. Ces métriques 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 d'autres, ont des métriques de performance spécifiques listé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 l’entraînement des 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 référence 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 métriques 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'utilisation 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 1 an ✏️ Mis à jour il y a 8 mois

Commentaires