Saltar 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 a formação de modelos como YOLO para tarefas de estimativa de pose.

Imagem de amostra de pose

Modelos pré-treinados COCO-Pose

Modelo tamanho
(pixéis)
mAPpose
50-95
mAPpose
50
Velocidade
CPU ONNX
(ms)
Velocidade
T4TensorRT10
(ms)
params
(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

Caraterí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. Test2017: 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. Ele contém informações sobre os caminhos, classes e outras informações relevantes do conjunto de dados. 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 YOLO11n-pose no conjunto de dados COCO-Pose para 100 épocas com um tamanho de imagem de 640, pode utilizar os seguintes fragmentos de código. Para obter uma lista completa dos argumentos disponíveis, consulte a página Treinamento do modelo.

Exemplo de comboio

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

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 de conjuntos de dados em mosaico. O mosaico é uma técnica utilizada durante a formação que combina várias imagens numa única imagem para aumentar a variedade de objectos e cenas em cada lote de formação. Isto ajuda a melhorar a capacidade de generalização do modelo 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 utilizar o conjunto de dados COCO-Pose no seu trabalho de investigação ou desenvolvimento, cite 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 Consórcio COCO 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, visite 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 a formação de modelos como Ultralytics YOLO para uma estimativa detalhada da pose. Por exemplo, pode utilizar o conjunto de dados COCO-Pose para treinar um modelo YOLO11n-pose carregando um modelo pré-treinado e treinando-o com uma configuração YAML. Para exemplos de treinamento, consulte a documentação de treinamento.

Como é que posso treinar um modelo YOLO11 no conjunto de dados COCO-Pose?

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

Exemplo de comboio

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 mais informações sobre o processo de formação e os argumentos disponíveis, consulte 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 exatidã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 YOLO11n-pose, YOLO11s-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 selecionadas para efeitos de validação durante a formação 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, explore a coco-pose.yaml ficheiro disponível em GitHub.

Quais são as principais caraterí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 padronizadas (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 homem-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, YOLO11n-pose), pode simplificar significativamente o processo(caraterísticas principais).

Se utilizar o conjunto de dados COCO-Pose no seu trabalho de investigação ou desenvolvimento, cite o artigo com a seguinte entrada BibTeX.

📅C riado há 1 ano ✏️ Atualizado há 2 meses

Comentários