Ir para o conteúdo

Conjunto de Dados COCO-Pose

O dataset COCO-Pose é uma versão especializada do dataset COCO (Common Objects in Context), projetada para tarefas de estimativa de pose. Ele aproveita as imagens e rótulos do COCO Keypoints 2017 para permitir o treinamento de modelos como o YOLO para tarefas de estimativa de pose.

Estimativa COCO com pontos-chave humanos

Modelos Pré-Treinados COCO-Pose

Modelotamanho
(pixels)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
Velocidade
CPU ONNX
(ms)
Velocidade
T4 TensorRT10
(ms)
parâmetros
(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

Principais Características

  • COCO-Pose é construído sobre o conjunto de dados COCO Keypoints 2017, que contém 200 mil imagens rotuladas com keypoints para tarefas de estimativa de pose.
  • O conjunto de dados suporta 17 keypoints para figuras humanas, facilitando a estimativa detalhada de pose.
  • Assim como o COCO, ele fornece métricas de avaliação padronizadas, incluindo a Similaridade de Pontos-Chave de Objeto (OKS) para tarefas de estimativa de pose, tornando-o adequado para comparar o desempenho do modelo.

Estrutura do Conjunto de Dados

O dataset COCO-Pose é dividido em três subconjuntos:

  1. Train2017: Este subconjunto contém 56599 imagens do conjunto de dados COCO, anotadas para treinar modelos de estimativa de pose.
  2. Val2017: Este subconjunto possui 2346 imagens usadas para fins de validação durante o treinamento do modelo.
  3. Test2017: Este subconjunto consiste em imagens usadas para teste e benchmarking dos modelos treinados. As anotações de ground truth para este subconjunto não estão disponíveis publicamente, e os resultados são submetidos ao servidor de avaliação COCO para avaliação de desempenho.

Aplicações

O dataset COCO-Pose é usado especificamente para treinar e avaliar modelos de deep learning em tarefas de detecção de keypoints e estimativa de pose, como o OpenPose. O grande número de imagens anotadas e as métricas de avaliação padronizadas do dataset tornam-no um recurso essencial para pesquisadores e profissionais de visão computacional focados na estimativa de pose.

YAML do Conjunto de Dados

Um arquivo YAML (Yet Another Markup Language) é usado 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 coco-pose.yaml arquivo é mantido em 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)

Utilização

Para treinar um modelo YOLO26n-pose no conjunto de dados COCO-Pose por 100 épocas com um tamanho de imagem de 640, pode utilizar os seguintes snippets de código. Para uma lista abrangente de argumentos disponíveis, consulte a página de Treinamento do modelo.

Exemplo de Treinamento

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)
# Start training from a pretrained *.pt model
yolo pose train data=coco-pose.yaml model=yolo26n-pose.pt epochs=100 imgsz=640

Amostras de Imagens e Anotações

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

Lote de treino em mosaico do conjunto de dados de estimativa COCO

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

O exemplo mostra a variedade e complexidade das imagens no dataset COCO-Pose e os benefícios de usar mosaicos durante o processo de treinamento.

Citações e Agradecimentos

Se você usar o dataset COCO-Pose em seu trabalho de pesquisa ou desenvolvimento, cite o seguinte artigo:

@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 por criar e manter este recurso valioso para a comunidade de visão computacional. Para mais informações sobre o conjunto de dados COCO-Pose e os seus criadores, visite o site do conjunto de dados COCO.

FAQ

O que é o conjunto de dados COCO-Pose e como ele é usado com o Ultralytics YOLO para estimativa de pose?

O conjunto de dados COCO-Pose é uma versão especializada do conjunto de dados COCO (Common Objects in Context) projetada para tarefas de estimativa de pose. Ele se baseia nas imagens e anotações do COCO Keypoints 2017, permitindo o treinamento de modelos como Ultralytics YOLO para estimativa de pose detalhada. Por exemplo, você pode usar o conjunto de dados COCO-Pose para treinar um modelo YOLO26n-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 posso treinar um modelo YOLO26 no conjunto de dados COCO-Pose?

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

Exemplo de Treinamento

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)
# Start training from a pretrained *.pt model
yolo pose train data=coco-pose.yaml model=yolo26n-pose.pt epochs=100 imgsz=640

Para mais detalhes sobre o processo de treinamento e os argumentos disponíveis, consulte a página de treinamento.

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, semelhante ao conjunto de dados COCO original. As métricas chave incluem a Similaridade de Pontos Chave de Objeto (OKS), que avalia a precisão dos pontos chave previstos em relação às anotações de ground truth. Essas métricas permitem comparações de desempenho detalhadas entre diferentes modelos. Por exemplo, os modelos pré-treinados COCO-Pose, como YOLO26n-pose, YOLO26s-pose e outros, têm métricas de desempenho específicas listadas na documentação, como mAPpose50-95 e mAPpose50.

Como o dataset é estruturado e dividido para o dataset COCO-Pose?

O dataset COCO-Pose é dividido em três subconjuntos:

  1. Train2017: Contém 56599 imagens COCO, anotadas para treinar modelos de estimativa de pose.
  2. Val2017: 2346 imagens para fins de validação durante o treinamento do modelo.
  3. Test2017: Imagens usadas para teste e benchmarking de modelos treinados. As anotações de ground truth para este subconjunto não estão disponíveis publicamente; os resultados são submetidos ao servidor de avaliação COCO para avaliação de desempenho.

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

Quais são os principais recursos e aplicações do conjunto de dados COCO-Pose?

O conjunto de dados COCO-Pose estende as anotações COCO Keypoints 2017 para incluir 17 pontos chave para figuras humanas, possibilitando uma estimativa de pose detalhada. Métricas de avaliação padronizadas (por exemplo, OKS) facilitam comparações entre diferentes modelos. As aplicações do conjunto de dados COCO-Pose abrangem vários domínios, como análise esportiva, saúde e interação humano-computador, onde quer que seja necessária uma estimativa de pose detalhada de figuras humanas. Para uso prático, aproveitar modelos pré-treinados como os fornecidos na documentação (por exemplo, YOLO26n-pose) pode simplificar significativamente o processo (Principais Recursos).

Se você usar o dataset COCO-Pose em seu trabalho de pesquisa ou desenvolvimento, cite o artigo com a seguinte entrada BibTeX.



📅 Criado há 2 anos ✏️ Atualizado há 2 dias
glenn-jocherRizwanMunawarjk4eY-T-Gambitious-octopusUltralyticsAssistantMatthewNoycehnliu_2@stu.xidian.edu.cnRizwanMunawar

Comentários