Conjunto de datos COCO-Pose

El conjunto de datos COCO-Pose es una versión especializada del conjunto de datos COCO (Common Objects in Context), diseñado para tareas de estimación de poses. Aprovecha las imágenes y etiquetas de COCO Keypoints 2017 para permitir el entrenamiento de modelos como YOLO para tareas de estimación de poses.

Estimación de pose COCO con puntos clave humanos

Modelos preentrenados COCO-Pose

Modelotamaño
(píxeles)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
Velocidad
CPU ONNX
(ms)
Velocidad
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

Características clave

  • COCO-Pose se basa en el conjunto de datos COCO Keypoints 2017 que contiene 200 mil 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 una estimación de pose detallada.
  • Al igual que COCO, proporciona métricas de evaluación estandarizadas, incluyendo la Similitud de Puntos Clave de Objetos (OKS) para tareas de estimación de poses, lo que lo hace adecuado para comparar el rendimiento de los modelos.

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 poses.
  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 comparar los modelos entrenados. Las anotaciones de verdad fundamental para este subconjunto no están disponibles públicamente, y los resultados se envían al servidor de evaluación de COCO para la evaluación del rendimiento.

Aplicaciones

El conjunto de datos COCO-Pose se utiliza específicamente para entrenar y evaluar modelos de deep learning en tareas de detección de puntos clave y estimación de poses, como OpenPose. La gran cantidad de imágenes anotadas del conjunto de datos y sus métricas de evaluación estandarizadas lo convierten en un recurso esencial para investigadores y profesionales de computer vision centrados en la estimación de poses.

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, clases y otra información relevante del conjunto de datos. En el caso del conjunto de datos COCO-Pose, el archivo coco-pose.yaml 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

# 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)

Uso

Para entrenar un modelo YOLO26n-pose en el conjunto de datos COCO-Pose durante 100 epochs con un tamaño de imagen de 640, puedes usar los siguientes fragmentos de código. Para obtener una lista completa de los argumentos disponibles, consulta la página de entrenamiento del modelo.

Ejemplo de entrenamiento
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)

Imágenes y anotaciones de muestra

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

Lote de entrenamiento en mosaico del conjunto de datos de estimación de pose COCO

  • 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 múltiples imágenes en una sola 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 objeto, 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 reconocimientos

Si utilizas el conjunto de datos COCO-Pose en tu trabajo de investigación o desarrollo, por favor cita el siguiente artículo:

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

Queremos 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, visita 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 (Common Objects in Context) diseñado para tareas de estimación de poses. Se basa en las imágenes y anotaciones de COCO Keypoints 2017, lo que permite el entrenamiento de modelos como Ultralytics YOLO para una estimación de poses detallada. Por ejemplo, puedes usar el conjunto de datos COCO-Pose para entrenar un modelo YOLO26n-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 YOLO26 en el conjunto de datos COCO-Pose?

El entrenamiento de un modelo YOLO26 en el conjunto de datos COCO-Pose se puede lograr usando Python o comandos de CLI. Por ejemplo, para entrenar un modelo YOLO26n-pose durante 100 épocas con un tamaño de imagen de 640, puedes seguir los pasos a continuación:

Ejemplo de entrenamiento
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)

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 poses, similares al conjunto de datos COCO original. Las métricas clave incluyen la Similitud de Puntos Clave de Objetos (OKS), que evalúa la precisión de los puntos clave predichos frente a las anotaciones de verdad fundamental. Estas métricas permiten comparaciones de rendimiento exhaustivas entre diferentes modelos. Por ejemplo, los modelos preentrenados de COCO-Pose, como YOLO26n-pose, YOLO26s-pose y otros, tienen métricas de rendimiento específicas enumeradas en la documentación, como mAPpose50-95 y mAPpose50.

¿Cómo se estructura y divide el conjunto de datos COCO-Pose?

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

  1. Train2017: Contiene 56599 imágenes de COCO, anotadas para entrenar modelos de estimación de poses.
  2. Val2017: 2346 imágenes para fines de validación durante el entrenamiento del modelo.
  3. Test2017: Imágenes utilizadas para probar y comparar modelos entrenados. Las anotaciones de verdad fundamental para este subconjunto no están disponibles públicamente; los resultados se envían al servidor de evaluación de 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, explora el archivo coco-pose.yaml disponible en GitHub.

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

El conjunto de datos COCO-Pose amplía las anotaciones de COCO Keypoints 2017 para incluir 17 puntos clave para figuras humanas, permitiendo una estimación de pose detallada. 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 ámbitos, como el análisis deportivo, la atención sanitaria y la interacción humano-computadora, dondequiera que se requiera una estimación detallada de la pose de figuras humanas. Para un uso práctico, aprovechar modelos preentrenados como los proporcionados en la documentación (por ejemplo, YOLO26n-pose) puede agilizar significativamente el proceso (Características clave).

Si utilizas el conjunto de datos COCO-Pose en tu trabajo de investigación o desarrollo, por favor cita el artículo con la siguiente entrada BibTeX.

Comentarios