Ir al contenido

Conjunto de datos COCO-Pose

El conjunto de datos COCO-Pose es una versión especializada del conjunto de datos COCO (Objetos Comunes en Contexto), diseñado para tareas de estimación de pose. Aprovecha las imágenes y etiquetas de COCO Keypoints 2017 para permitir el entrenamiento de modelos como YOLO para tareas de estimación de pose.

Imagen de muestra de pose

Modelos preentrenados COCO-Pose

Modelo tamaño
(píxeles)
mAPpose
50-95
mAPpose
50
Velocidad
CPU ONNX
(ms)
Velocidad
T4 TensorRT10
(ms)
parámetros
(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

Características clave

  • COCO-Pose se basa en el conjunto de datos COCO Keypoints 2017, que contiene 200.000 imágenes etiquetadas con puntos clave para tareas de estimación de poses.
  • El conjunto de datos admite 17 puntos clave para figuras humanas, lo que facilita la estimación detallada de la pose.
  • Al igual que COCO, proporciona métricas de evaluación estandarizadas, incluyendo la Similitud de Puntos Clave de Objeto (OKS, por sus siglas en inglés) para tareas de estimación de pose, lo que lo hace adecuado para comparar el rendimiento del modelo.

Estructura del conjunto de datos

El conjunto de datos COCO-Pose se divide en tres subconjuntos:

  1. Train2017: Este subconjunto contiene 56599 imágenes del conjunto de datos COCO, anotadas para entrenar modelos de estimación de pose.
  2. Val2017: Este subconjunto tiene 2346 imágenes utilizadas para fines de validación durante el entrenamiento del modelo.
  3. Test2017: Este subconjunto consta de imágenes utilizadas para probar y evaluar los modelos entrenados. Las anotaciones ground truth para este subconjunto no están disponibles públicamente, y los resultados se envían al servidor de evaluación COCO para la evaluación del rendimiento.

Aplicaciones

El conjunto de datos COCO-Pose se utiliza específicamente para entrenar y evaluar modelos de aprendizaje profundo en tareas de detección de puntos clave y estimación de la pose, como OpenPose. El gran número de imágenes anotadas del conjunto de datos y las métricas de evaluación estandarizadas lo convierten en un recurso esencial para los investigadores y profesionales de la visión artificial centrados en la estimación de la pose.

YAML del conjunto de datos

Se utiliza un archivo YAML (Yet Another Markup Language) para definir la configuración del conjunto de datos. Contiene información sobre las rutas, las clases y otra información relevante del conjunto de datos. En el caso del conjunto de datos COCO-Pose, el coco-pose.yaml archivo se mantiene en 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)

Uso

Para entrenar un modelo YOLO11n-pose en el conjunto de datos COCO-Pose durante 100 épocas con un tamaño de imagen de 640, puede utilizar los siguientes fragmentos de código. Para obtener una lista completa de los argumentos disponibles, consulte la página de Entrenamiento del modelo.

Ejemplo de entrenamiento

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

sample_images y anotaciones

El conjunto de datos COCO-Pose contiene un conjunto diverso de imágenes con figuras humanas anotadas con puntos clave. Aquí hay algunos ejemplos de imágenes del conjunto de datos, junto con sus correspondientes anotaciones:

Imagen de muestra del conjunto de datos

  • Imagen en mosaico: Esta imagen muestra un lote de entrenamiento compuesto por imágenes en mosaico del conjunto de datos. El mosaico es una técnica utilizada durante el entrenamiento que combina varias imágenes en una sola imagen para aumentar la variedad de objetos y escenas dentro de cada lote de entrenamiento. Esto ayuda a mejorar la capacidad del modelo para generalizar a diferentes tamaños de objetos, relaciones de aspecto y contextos.

El ejemplo muestra la variedad y complejidad de las imágenes en el conjunto de datos COCO-Pose y los beneficios de usar mosaicos durante el proceso de entrenamiento.

Citas y agradecimientos

Si utiliza el conjunto de datos COCO-Pose en su trabajo de investigación o desarrollo, cite el siguiente artículo:

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

Nos gustaría agradecer al Consorcio COCO por crear y mantener este valioso recurso para la comunidad de visión artificial. Para obtener más información sobre el conjunto de datos COCO-Pose y sus creadores, visite el sitio web del conjunto de datos COCO.

Preguntas frecuentes

¿Qué es el conjunto de datos COCO-Pose y cómo se utiliza con Ultralytics YOLO para la estimación de poses?

El conjunto de datos COCO-Pose es una versión especializada del conjunto de datos COCO (Objetos Comunes en Contexto) diseñado para tareas de estimación de pose. Se basa en las imágenes y anotaciones de COCO Keypoints 2017, lo que permite el entrenamiento de modelos como Ultralytics YOLO para la estimación detallada de la pose. Por ejemplo, puedes usar el conjunto de datos COCO-Pose para entrenar un modelo YOLO11n-pose cargando un modelo preentrenado y entrenándolo con una configuración YAML. Para ejemplos de entrenamiento, consulta la documentación de Entrenamiento.

¿Cómo puedo entrenar un modelo YOLO11 en el conjunto de datos COCO-Pose?

Entrenar un modelo YOLO11 en el dataset COCO-Pose se puede lograr usando comandos de Python o de la CLI. Por ejemplo, para entrenar un modelo YOLO11n-pose durante 100 épocas con un tamaño de imagen de 640, puedes seguir los siguientes pasos:

Ejemplo de entrenamiento

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

Para obtener más detalles sobre el proceso de entrenamiento y los argumentos disponibles, consulta la página de entrenamiento.

¿Cuáles son las diferentes métricas proporcionadas por el conjunto de datos COCO-Pose para evaluar el rendimiento del modelo?

El conjunto de datos COCO-Pose proporciona varias métricas de evaluación estandarizadas para tareas de estimación de la pose, similares al conjunto de datos COCO original. Las métricas clave incluyen la Similitud de Puntos Clave de Objeto (OKS), que evalúa la precisión de los puntos clave predichos con respecto a las anotaciones de verdad fundamental. Estas métricas permiten realizar comparaciones exhaustivas del rendimiento entre diferentes modelos. Por ejemplo, los modelos preentrenados COCO-Pose como YOLO11n-pose, YOLO11s-pose y otros tienen métricas de rendimiento específicas que se enumeran en la documentación, como mAPpose50-95 y mAPpose50.

¿Cómo está estructurado y dividido el conjunto de datos para el conjunto de datos COCO-Pose?

El conjunto de datos COCO-Pose se divide en tres subconjuntos:

  1. Train2017: Contiene 56599 imágenes COCO, anotadas para entrenar modelos de estimación de pose.
  2. Val2017: 2346 imágenes para fines de validación durante el entrenamiento del modelo.
  3. Test2017: Imágenes utilizadas para probar y evaluar modelos entrenados. Las anotaciones ground truth para este subconjunto no están disponibles públicamente; los resultados se envían al servidor de evaluación COCO para la evaluación del rendimiento.

Estos subconjuntos ayudan a organizar eficazmente las fases de entrenamiento, validación y prueba. Para obtener detalles de configuración, explore el coco-pose.yaml archivo disponible en GitHub.

¿Cuáles son las principales características y aplicaciones del conjunto de datos COCO-Pose?

El conjunto de datos COCO-Pose amplía las anotaciones COCO Keypoints 2017 para incluir 17 puntos clave para figuras humanas, lo que permite una estimación detallada de la pose. Las métricas de evaluación estandarizadas (por ejemplo, OKS) facilitan las comparaciones entre diferentes modelos. Las aplicaciones del conjunto de datos COCO-Pose abarcan varios dominios, como el análisis deportivo, la atención médica y la interacción persona-ordenador, siempre que se requiera una estimación detallada de la pose de figuras humanas. Para un uso práctico, el aprovechamiento de modelos preentrenados como los que se proporcionan en la documentación (por ejemplo, YOLO11n-pose) puede agilizar significativamente el proceso (Características Clave).

Si utiliza el conjunto de datos COCO-Pose en su trabajo de investigación o desarrollo, cite el artículo con la siguiente entrada BibTeX.



📅 Creado hace 1 año ✏️ Actualizado hace 8 meses

Comentarios