Descrição geral dos conjuntos de dados de estimativa de pose
Formatos de conjuntos de dados suportados
Ultralytics YOLO formato
O formato da etiqueta do conjunto de dados utilizado para treinar os modelos de pose do YOLO é o seguinte:
- Um ficheiro de texto por imagem: Cada imagem do conjunto de dados tem um ficheiro de texto correspondente com o mesmo nome que o ficheiro de imagem e a extensão ".txt".
- Uma linha por objeto: Cada linha no ficheiro de texto corresponde a uma instância de objeto na imagem.
- Informações sobre o objeto por linha: Cada linha contém as seguintes informações sobre a instância do objeto:
- Índice da classe do objeto: Um número inteiro que representa a classe do objeto (por exemplo, 0 para pessoa, 1 para carro, etc.).
- Coordenadas do centro do objeto: As coordenadas x e y do centro do objeto, normalizadas para estarem entre 0 e 1.
- Largura e altura do objeto: A largura e a altura do objeto, normalizadas para estarem entre 0 e 1.
- Coordenadas do ponto-chave do objeto: Os pontos-chave do objeto, normalizados para estarem entre 0 e 1.
Aqui está um exemplo do formato da etiqueta para a tarefa de estimativa de pose:
Formato com Dim = 2
Formato com Dim = 3
<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <p2-visibility>
Neste formato, <class-index>
é o índice da classe do objeto,<x> <y> <width> <height>
são coordenadas de caixa delimitadorae <px1> <py1> <px2> <py2> ... <pxn> <pyn>
são as coordenadas de píxeis dos pontos-chave. As coordenadas são separadas por espaços.
Formato YAML do conjunto de dados
A estrutura Ultralytics utiliza um formato de ficheiro YAML para definir o conjunto de dados e a configuração do modelo para treinar Modelos de deteção. Aqui está um exemplo do formato YAML utilizado para definir um conjunto de dados de deteção:
# 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/coco8-pose # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)
# 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 dictionary
names:
0: person
O train
e val
especificam os caminhos para os diretórios que contêm as imagens de treino e de validação, respetivamente.
names
é um dicionário de nomes de classes. A ordem dos nomes deve corresponder à ordem dos índices das classes de objectos nos ficheiros do conjunto de dados YOLO .
(Opcional) Se os pontos forem simétricos, é necessário flip_idx, como o lado esquerdo-direito de uma pessoa ou de um rosto. Por exemplo, se assumirmos cinco pontos-chave da marca facial: [olho esquerdo, olho direito, nariz, boca esquerda, boca direita], e o índice original é [0, 1, 2, 3, 4], então flip_idx é [1, 0, 2, 4, 3] (basta trocar o índice esquerdo-direito, ou seja, 0-1 e 3-4, e não modificar outros como o nariz neste exemplo).
Utilização
Exemplo
Conjuntos de dados suportados
Esta secção descreve os conjuntos de dados que são compatíveis com o formato Ultralytics YOLO e que podem ser utilizados para treinar modelos de estimativa de pose:
COCO-Pose
- Descrição: COCO-Pose é um conjunto de dados de deteção de objectos, segmentação e estimativa de pose em grande escala. É um subconjunto do popular conjunto de dados COCO e centra-se na estimativa da pose humana. COCO-Pose inclui múltiplos pontos-chave para cada instância humana.
- Formato da etiqueta: Igual ao formato Ultralytics YOLO descrito acima, com pontos-chave para poses humanas.
- Número de classes: 1 (Humano).
- Pontos-chave: 17 pontos-chave, incluindo nariz, olhos, orelhas, ombros, cotovelos, pulsos, ancas, joelhos e tornozelos.
- Utilização: Adequado para treinar modelos de estimativa de pose humana.
- Notas adicionais: O conjunto de dados é rico e diversificado, contendo mais de 200 mil imagens etiquetadas.
- Ler mais sobre COCO-Pose
COCO8-Pose
- Descrição: Ultralytics COCO8-Pose é um pequeno, mas versátil conjunto de dados de deteção de pose composto pelas primeiras 8 imagens do conjunto COCO train 2017, 4 para treino e 4 para validação.
- Formato da etiqueta: Igual ao formato Ultralytics YOLO descrito acima, com pontos-chave para poses humanas.
- Número de classes: 1 (Humano).
- Pontos-chave: 17 pontos-chave, incluindo nariz, olhos, orelhas, ombros, cotovelos, pulsos, ancas, joelhos e tornozelos.
- Utilização: Adequado para testar e depurar modelos de deteção de objectos ou para experimentar novas abordagens de deteção.
- Notas adicionais: O COCO8-Pose é ideal para verificações de sanidade e verificações de IC.
- Ler mais sobre COCO8-Pose
Pose de tigre
- Descrição: Ultralytics Este conjunto de dados de pose de animais inclui 263 imagens provenientes de um vídeo do YouTube, com 210 imagens atribuídas para treino e 53 para validação.
- Formato da etiqueta: Igual ao formato Ultralytics YOLO descrito acima, com 12 pontos-chave para a pose do animal e sem dimensão visível.
- Número de classes: 1 (Tigre).
- Pontos-chave: 12 pontos-chave.
- Utilização: Ótimo para a pose de animais ou qualquer outra pose que não seja baseada no ser humano.
- Ler mais sobre a pose do tigre
Pontos-chave da mão
- Descrição: O conjunto de dados de pose de pontos-chave da mão inclui cerca de 26K imagens, com 18776 imagens atribuídas para treino e 7992 para validação.
- Formato da etiqueta: Igual ao formato Ultralytics YOLO acima descrito, mas com 21 pontos-chave para a mão humana e dimensão visível.
- Número de classes: 1 (Mão).
- Pontos-chave: 21 pontos-chave.
- Utilização: Ótimo para estimar a pose da mão humana.
- Ler mais sobre os pontos-chave da mão
Pose de cão
- Descrição: O conjunto de dados Dog Pose contém aproximadamente 6.000 imagens, fornecendo um recurso diversificado e extenso para treinamento e validação de modelos de estimativa de pose de cães.
- Formato da etiqueta: Segue o formato Ultralytics YOLO , com anotações para vários pontos-chave específicos da anatomia canina.
- Número de classes: 1 (Cão).
- Pontos-chave: Inclui 24 pontos-chave adaptados às poses do cão, tais como membros, articulações e posições da cabeça.
- Utilização: Ideal para modelos de treino para estimar poses de cães em vários cenários, desde investigação a aplicações no mundo real.
- Ler mais sobre a pose do cão
Adicionar o seu próprio conjunto de dados
Se tiver o seu próprio conjunto de dados e pretender utilizá-lo para treinar modelos de estimativa de pose com o formato Ultralytics YOLO , certifique-se de que segue o formato especificado acima em "Ultralytics YOLO format". Converta suas anotações para o formato necessário e especifique os caminhos, o número de classes e os nomes das classes no arquivo de configuração YAML.
Ferramenta de conversão
Ultralytics fornece uma ferramenta de conversão conveniente para converter etiquetas do popular formato de conjunto de dados COCO para o formato YOLO :
Exemplo
Esta ferramenta de conversão pode ser utilizada para converter o conjunto de dados COCO ou qualquer conjunto de dados no formato COCO para o formato Ultralytics YOLO . O use_keypoints
especifica se os pontos-chave (para estimativa da pose) devem ser incluídos nas etiquetas convertidas.
FAQ
Qual é o formato Ultralytics YOLO para a estimativa da pose?
O formato Ultralytics YOLO para conjuntos de dados de estimativa de pose envolve a rotulagem de cada imagem com um ficheiro de texto correspondente. Cada linha do ficheiro de texto armazena informações sobre uma instância de objeto:
- Índice da classe de objeto
- Coordenadas do centro do objeto (x e y normalizados)
- Largura e altura do objeto (normalizadas)
- Coordenadas do ponto-chave do objeto (pxn e pyn normalizados)
Para poses 2D, os pontos-chave incluem coordenadas de píxeis. Para 3D, cada ponto-chave também tem um sinalizador de visibilidade. Para mais pormenores, consulte Ultralytics YOLO format.
Como é que utilizo o conjunto de dados COCO-Pose com Ultralytics YOLO ?
Para utilizar o conjunto de dados COCO-Pose com Ultralytics YOLO :
- Descarregue o conjunto de dados e prepare os seus ficheiros de etiquetas no formato YOLO .
- Crie um ficheiro de configuração YAML que especifique os caminhos para as imagens de treino e validação, a forma dos pontos-chave e os nomes das classes.
-
Utilizar o ficheiro de configuração para formação:
from ultralytics import YOLO model = YOLO("yolo11n-pose.pt") # load pretrained model results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
Para mais informações, consultar as secções COCO-Pose e Treino.
Como é que posso adicionar o meu próprio conjunto de dados para a estimativa da pose em Ultralytics YOLO ?
Para adicionar o seu conjunto de dados:
- Converta as suas anotações para o formato Ultralytics YOLO .
- Crie um ficheiro de configuração YAML que especifique os caminhos do conjunto de dados, o número de classes e os nomes das classes.
-
Utilize o ficheiro de configuração para treinar o seu modelo:
from ultralytics import YOLO model = YOLO("yolo11n-pose.pt") results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
Para obter os passos completos, consulte a secção Adicionar o seu próprio conjunto de dados.
Qual é o objetivo do ficheiro YAML do conjunto de dados em Ultralytics YOLO ?
O arquivo YAML do conjunto de dados em Ultralytics YOLO define o conjunto de dados e a configuração do modelo para treinamento. Especifica caminhos para imagens de treino, validação e teste, formas de pontos-chave, nomes de classes e outras opções de configuração. Esse formato estruturado ajuda a simplificar o gerenciamento do conjunto de dados e o treinamento do modelo. Aqui está um exemplo de formato YAML:
Leia mais sobre a criação de ficheiros de configuração YAML no formato Dataset YAML.
Como é que posso converter as etiquetas do conjunto de dados COCO para o formato Ultralytics YOLO para estimativa da pose?
Ultralytics fornece uma ferramenta de conversão para converter etiquetas de conjuntos de dados COCO para o formato YOLO , incluindo informações sobre pontos-chave:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)
Esta ferramenta ajuda a integrar sem problemas os conjuntos de dados COCO nos projectos YOLO . Para mais informações, consulte a secção Ferramenta de conversão.