Conjunto de Dados de Pontos-Chave da Mão
Introdução
O conjunto de dados de pontos-chave da mão contém 26.768 imagens de mãos anotadas com pontos-chave, tornando-o adequado para treinar modelos como o Ultralytics YOLO para tarefas de estimativa de pose. As anotações foram geradas usando a biblioteca Google MediaPipe, garantindo alta precisão e consistência, e o conjunto de dados é compatível com os formatos Ultralytics YOLO11.
Assista: Estimativa de Pontos-Chave da Mão com Ultralytics YOLO11 | Tutorial de Estimativa de Pose da Mão Humana
Pontos de Referência da Mão
KeyPoints
O conjunto de dados inclui keypoints para detecção de mãos. Os keypoints são anotados da seguinte forma:
- Pulso
- Polegar (4 pontos)
- Dedo indicador (4 pontos)
- Dedo médio (4 pontos)
- Dedo anelar (4 pontos)
- Dedo mínimo (4 pontos)
Cada mão tem um total de 21 pontos-chave.
Principais Características
- Conjunto de Dados Grande: 26.768 imagens com anotações de pontos-chave da mão.
- Compatibilidade com YOLO11: Pronto para uso com modelos YOLO11.
- 21 Pontos-Chave: Representação detalhada da pose da mão.
Estrutura do Conjunto de Dados
O conjunto de dados de pontos-chave da mão é dividido em dois subconjuntos:
- Train: Este subconjunto contém 18.776 imagens do conjunto de dados de pontos-chave da mão, anotadas para treinar modelos de estimativa de pose.
- Val: Este subconjunto contém 7.992 imagens que podem ser usadas para fins de validação durante o treinamento do modelo.
Aplicações
Os pontos-chave da mão podem ser usados para reconhecimento de gestos, controles de AR/VR, manipulação robótica e análise do movimento da mão na área da saúde. Eles também podem ser aplicados em animação para captura de movimento e sistemas de autenticação biométrica para segurança. O rastreamento detalhado das posições dos dedos permite uma interação precisa com objetos virtuais e interfaces de controle sem toque.
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 Hand Keypoints, o hand-keypoints.yaml
arquivo é mantido em https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/hand-keypoints.yaml.
ultralytics/cfg/datasets/hand-keypoints.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# Hand Keypoints dataset by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/hand-keypoints/
# Example usage: yolo train data=hand-keypoints.yaml
# parent
# ├── ultralytics
# └── datasets
# └── hand-keypoints ← downloads here (369 MB)
# 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: hand-keypoints # dataset root dir
train: images/train # train images (relative to 'path') 18776 images
val: images/val # val images (relative to 'path') 7992 images
# Keypoints
kpt_shape: [21, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx:
[0, 1, 2, 4, 3, 10, 11, 12, 13, 14, 5, 6, 7, 8, 9, 15, 16, 17, 18, 19, 20]
# Classes
names:
0: hand
# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/hand-keypoints.zip
Utilização
Para treinar um modelo YOLO11n-pose no conjunto de dados Hand Keypoints por 100 épocas com um tamanho de imagem de 640, você pode usar os seguintes trechos de código. Para uma lista completa de argumentos disponíveis, consulte a página de Treinamento do modelo.
Exemplo de Treinamento
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="hand-keypoints.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo pose train data=hand-keypoints.yaml model=yolo11n-pose.pt epochs=100 imgsz=640
Amostras de Imagens e Anotações
O conjunto de dados Hand keypoints contém um conjunto diversificado de imagens com mãos humanas anotadas com keypoints. Aqui estão alguns exemplos de imagens do conjunto de dados, juntamente com suas anotações correspondentes:
- 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 a complexidade das imagens no conjunto de dados Hand Keypoints e os benefícios de usar mosaicos durante o processo de treinamento.
Citações e Agradecimentos
Se você usar o conjunto de dados hand-keypoints em seu trabalho de pesquisa ou desenvolvimento, por favor, reconheça as seguintes fontes:
Gostaríamos de agradecer às seguintes fontes por fornecerem as imagens utilizadas neste conjunto de dados:
As imagens foram coletadas e usadas sob as respectivas licenças fornecidas por cada plataforma e são distribuídas sob a Licença Internacional Creative Commons Atribuição-NãoComercial-CompartilhaIgual 4.0.
Gostaríamos também de reconhecer o criador deste conjunto de dados, Rion Dsilva, por sua grande contribuição para a pesquisa em Visão de IA.
FAQ
Como faço para treinar um modelo YOLO11 no dataset Hand Keypoints?
Para treinar um modelo YOLO11 no conjunto de dados Hand Keypoints, você pode usar python ou a interface de linha de comando (CLI). Aqui está um exemplo para treinar um modelo YOLO11n-pose por 100 epochs com um tamanho de imagem de 640:
Exemplo
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="hand-keypoints.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo pose train data=hand-keypoints.yaml model=yolo11n-pose.pt epochs=100 imgsz=640
Para uma lista completa dos argumentos disponíveis, consulte a página de Treinamento do modelo.
Quais são as principais características do conjunto de dados Hand Keypoints?
O conjunto de dados de Pontos-Chave da Mão foi projetado para tarefas avançadas de estimativa de pose e inclui vários recursos principais:
- Conjunto de Dados Grande: Contém 26.768 imagens com anotações de pontos-chave da mão.
- Compatibilidade com YOLO11: Pronto para uso com modelos YOLO11.
- 21 Pontos-Chave: Representação detalhada da pose da mão, incluindo as articulações do pulso e dos dedos.
Para mais detalhes, você pode explorar a seção Conjunto de Dados de Pontos-Chave da Mão.
Quais aplicações podem se beneficiar do uso do conjunto de dados de Pontos-Chave da Mão?
O conjunto de dados de Pontos-Chave da Mão pode ser aplicado em vários campos, incluindo:
- Reconhecimento de Gestos: Aprimorando a interação homem-computador.
- Controles de AR/VR: Melhorando a experiência do usuário em realidade aumentada e virtual.
- Manipulação Robótica: Permitindo o controle preciso de mãos robóticas.
- Assistência Médica: Análise dos movimentos das mãos para diagnósticos médicos.
- Animação: Captura de movimento para animações realistas.
- Autenticação Biométrica: Melhorando os sistemas de segurança.
Para obter mais informações, consulte a seção Aplicações.
Como o conjunto de dados de Pontos-Chave da Mão é estruturado?
O conjunto de dados Hand Keypoints é dividido em dois subconjuntos:
- Train: Contém 18.776 imagens para treinar modelos de estimativa de pose.
- Val: Contém 7.992 imagens para fins de validação durante o treinamento do modelo.
Esta estrutura garante um processo abrangente de treinamento e validação. Para mais detalhes, consulte a seção Estrutura do Conjunto de Dados.
Como usar o arquivo YAML do dataset para treinamento?
A configuração do conjunto de dados é definida em um arquivo YAML, que inclui caminhos, classes e outras informações relevantes. O hand-keypoints.yaml
arquivo pode ser encontrado em hand-keypoints.yaml.
Para usar este ficheiro YAML para treinamento, especifique-o no seu script de treinamento ou comando CLI, como mostrado no exemplo de treinamento acima. Para mais detalhes, consulte a seção Dataset YAML.