Salta para o conteúdo

Conjunto de dados COCO-Pose

O conjunto de dados COCO-Pose é uma versão especializada do conjunto de dados COCO (Common Objects in Context), concebido para tarefas de estimativa de pose. Aproveita as imagens e etiquetas do COCO Keypoints 2017 para permitir o treino de modelos como YOLO para tarefas de estimativa de pose.

Pose imagem de amostra

Modelos pré-treinados COCO-Pose

Modelo tamanho
(pixéis)
mAPpose
50-95
mAPpose
50
Velocidade
CPU ONNX
(ms)
Velocidade
A100 TensorRT
(ms)
params
(M)
FLOPs
(B)
YOLOv8n-pose 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-pose 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-pose 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-pose 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-pose 640 69.2 90.2 1607.1 3.73 69.4 263.2
YOLOv8x-pose-p6 1280 71.6 91.2 4088.7 10.04 99.1 1066.4

Características principais

  • O COCO-Pose baseia-se no conjunto de dados COCO Keypoints 2017, que contém 200 mil imagens rotuladas com pontos-chave para tarefas de estimativa de pose.
  • O conjunto de dados suporta 17 pontos-chave para figuras humanas, facilitando a estimativa detalhada da pose.
  • Tal como o COCO, fornece métricas de avaliação padronizadas, incluindo Object Keypoint Similarity (OKS) para tarefas de estimativa de pose, tornando-o adequado para comparar o desempenho do modelo.

Estrutura do conjunto de dados

O conjunto de dados COCO-Pose está dividido em três subconjuntos:

  1. Train2017: Este subconjunto contém uma parte das 118K imagens do conjunto de dados COCO, anotadas para treinar modelos de estimativa de pose.
  2. Val2017: Este subconjunto contém uma seleção de imagens utilizadas para efeitos de validação durante a formação do modelo.
  3. Teste2017: Este subconjunto é constituído por imagens utilizadas para testar e aferir os modelos treinados. As anotações da verdade terrestre para este subconjunto não estão disponíveis publicamente e os resultados são enviados para o servidor de avaliação COCO para avaliação do desempenho.

Aplicações

O conjunto de dados COCO-Pose é usado especificamente para treinar e avaliar modelos de aprendizagem profunda em tarefas de deteção de pontos-chave e estimativa de pose, como o OpenPose. O grande número de imagens anotadas e as métricas de avaliação padronizadas do conjunto de dados fazem dele um recurso essencial para pesquisadores e profissionais de visão computacional focados na estimativa de pose.

Conjunto de dados YAML

Um ficheiro YAML (Yet Another Markup Language) é utilizado para definir a configuração do conjunto de dados. Contém informações sobre os caminhos do conjunto de dados, classes e outras informações relevantes. No caso do conjunto de dados COCO-Pose, o ficheiro coco-pose.yaml é mantido em https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml.

ultralytics/cfg/datasets/coco-pose.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 license
# COCO 2017 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: ../datasets/coco-pose # dataset root dir
train: train2017.txt # train images (relative to 'path') 118287 images
val: val2017.txt # val images (relative to 'path') 5000 images
test: test-dev2017.txt # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794

# 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 ultralytics.utils.downloads import download
  from pathlib import Path

  # Download labels
  dir = Path(yaml['path'])  # dataset root dir
  url = 'https://github.com/ultralytics/assets/releases/download/v0.0.0/'
  urls = [url + 'coco2017labels-pose.zip']  # labels
  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)

Utilização

Para treinar um modelo YOLOv8n-pose no conjunto de dados COCO-Pose para 100 épocas com um tamanho de imagem de 640, podes utilizar os seguintes snippets de código. Para obter uma lista abrangente dos argumentos disponíveis, consulta a página de treino do modelo.

Exemplo de comboio

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-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 detect train data=coco-pose.yaml model=yolov8n-pose.pt epochs=100 imgsz=640

Exemplos de imagens e anotações

O conjunto de dados COCO-Pose contém um conjunto diversificado de imagens com figuras humanas anotadas com pontos-chave. Aqui estão alguns exemplos de imagens do conjunto de dados, juntamente com as anotações correspondentes:

Imagem de amostra do conjunto de dados

  • Imagem em mosaico: Esta imagem demonstra um lote de treino composto por imagens do conjunto de dados em mosaico. O mosaico é uma técnica utilizada durante o treino que combina várias imagens numa única imagem para aumentar a variedade de objectos e cenas em cada lote de treino. Isto ajuda a melhorar a capacidade do modelo de generalizar para diferentes tamanhos de objectos, proporções e contextos.

O exemplo mostra a variedade e complexidade das imagens no conjunto de dados COCO-Pose e os benefícios da utilização de mosaicos durante o processo de formação.

Citações e agradecimentos

Se utilizares o conjunto de dados COCO-Pose no teu trabalho de investigação ou desenvolvimento, cita o seguinte documento:

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

Gostaríamos de agradecer ao COCO Consortium pela criação e manutenção deste valioso recurso para a comunidade de visão computacional. Para mais informações sobre o conjunto de dados COCO-Pose e os seus criadores, visita o sítio Web do conjunto de dados COCO.

FAQ

O que é o conjunto de dados COCO-Pose e como é utilizado com Ultralytics YOLO para a estimativa da pose?

O conjunto de dados COCO-Pose é uma versão especializada do conjunto de dados COCO (Common Objects in Context) concebido para tarefas de estimativa de pose. Baseia-se nas imagens e anotações do COCO Keypoints 2017, permitindo o treino de modelos como Ultralytics YOLO para uma estimativa detalhada da pose. Por exemplo, podes utilizar o conjunto de dados COCO-Pose para treinar um modelo YOLOv8n-pose carregando um modelo pré-treinado e treinando-o com uma configuração YAML. Para exemplos de treinamento, consulta a documentação Treinamento.

Como posso treinar um modelo YOLOv8 no conjunto de dados COCO-Pose?

O treinamento de um modelo YOLOv8 no conjunto de dados COCO-Pose pode ser realizado usando os comandos Python ou CLI . Por exemplo, para treinar um modelo YOLOv8n-pose para 100 épocas com um tamanho de imagem de 640, podes seguir os passos abaixo:

Exemplo de comboio

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-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 detect train data=coco-pose.yaml model=yolov8n.pt epochs=100 imgsz=640

Para mais informações sobre o processo de formação e os argumentos disponíveis, consulta a página de formação.

Quais são as diferentes métricas fornecidas pelo conjunto de dados COCO-Pose para avaliar o desempenho do modelo?

O conjunto de dados COCO-Pose fornece várias métricas de avaliação padronizadas para tarefas de estimativa de pose, semelhantes ao conjunto de dados COCO original. As principais métricas incluem a Object Keypoint Similarity (OKS), que avalia a precisão dos pontos-chave previstos em relação às anotações da verdade terrestre. Estas métricas permitem comparações de desempenho exaustivas entre diferentes modelos. Por exemplo, os modelos pré-treinados COCO-Pose, como YOLOv8n-pose, YOLOv8s-pose e outros, têm métricas de desempenho específicas listadas na documentação, como mAPpose50-95e mAPpose50.

Como é que o conjunto de dados está estruturado e dividido para o conjunto de dados COCO-Pose?

O conjunto de dados COCO-Pose está dividido em três subconjuntos:

  1. Train2017: Contém uma parte das 118K imagens COCO, anotadas para treinar modelos de estimativa de pose.
  2. Val2017: Imagens seleccionadas para efeitos de validação durante o treino do modelo.
  3. Test2017: Imagens utilizadas para testar e aferir modelos treinados. As anotações da verdade terrestre para este subconjunto não estão disponíveis publicamente; os resultados são enviados para o servidor de avaliação COCO para avaliação do desempenho.

Esses subconjuntos ajudam a organizar as fases de treinamento, validação e teste de forma eficaz. Para obter detalhes de configuração, explora a coco-pose.yaml ficheiro disponível em GitHub.

Quais são as principais características e aplicações do conjunto de dados COCO-Pose?

O conjunto de dados COCO-Pose alarga as anotações COCO Keypoints 2017 para incluir 17 pontos-chave para figuras humanas, permitindo uma estimativa detalhada da pose. As métricas de avaliação normalizadas (por exemplo, OKS) facilitam as comparações entre diferentes modelos. As aplicações do conjunto de dados COCO-Pose abrangem vários domínios, como a análise desportiva, os cuidados de saúde e a interação humano-computador, sempre que é necessária uma estimativa detalhada da pose de figuras humanas. Para uma utilização prática, a utilização de modelos pré-treinados como os fornecidos na documentação (por exemplo, YOLOv8n-pose) pode simplificar significativamente o processo(características principais).

Se utilizares o conjunto de dados COCO-Pose no teu trabalho de investigação ou desenvolvimento, cita o artigo com a seguinte entrada BibTeX.



Criado em 2023-11-12, Atualizado em 2024-07-17
Autores: hnliu_2@stu.xidian.edu.cn (1), glenn-jocher (7), RizwanMunawar (1), Laughing-q (1)

Comentários