Ir para o conteúdo

Estimativa de Pose

Exemplos de estimativa de pose

A estimativa de pose é uma tarefa que envolve a identificação da localização de pontos específicos em uma imagem, geralmente referidos como keypoints. Os keypoints podem representar várias partes do objeto, como articulações, pontos de referência ou outros recursos distintos. As localizações dos keypoints são geralmente representadas como um conjunto de 2D [x, y] ou 3D [x, y, visible] coordenadas.

O resultado de um modelo de estimativa de pose é um conjunto de pontos que representam os pontos-chave em um objeto na imagem, geralmente juntamente com os scores de confiança para cada ponto. A estimativa de pose é uma boa escolha quando você precisa identificar partes específicas de um objeto em uma cena e sua localização em relação umas às outras.



Assista: Tutorial de Estimativa de Pose do Ultralytics YOLO11 | Rastreamento de Objetos em Tempo Real e Detecção de Pose Humana

Dica

YOLO11 pose modelos usam o -pose sufixo, ou seja, yolo11n-pose.pt. Esses modelos são treinados no COCO keypoints dataset e são adequados para uma variedade de tarefas de estimativa de pose.

No modelo de pose YOLO11 padrão, existem 17 keypoints, cada um representando uma parte diferente do corpo humano. Aqui está o mapeamento de cada índice para sua respectiva articulação do corpo:

  1. Nariz
  2. Olho Esquerdo
  3. Olho Direito
  4. Orelha Esquerda
  5. Orelha Direita
  6. Ombro Esquerdo
  7. Ombro Direito
  8. Cotovelo Esquerdo
  9. Cotovelo Direito
  10. Punho Esquerdo
  11. Punho Direito
  12. Quadril Esquerdo
  13. Quadril Direito
  14. Joelho Esquerdo
  15. Joelho Direito
  16. Tornozelo Esquerdo
  17. Tornozelo Direito

Modelos

Os modelos de Pose pré-treinados Ultralytics YOLO11 são mostrados aqui. Os modelos Detect, Segment e Pose são pré-treinados no conjunto de dados COCO, enquanto os modelos Classify são pré-treinados no conjunto de dados ImageNet.

Os Modelos são baixados automaticamente da versão mais recente do Ultralytics no primeiro uso.

Modelo tamanho
(pixels)
mAPpose
50-95
mAPpose
50
Velocidade
CPU ONNX
(ms)
Velocidade
T4 TensorRT10
(ms)
parâmetros
(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
  • mAPval Os valores são para modelo único, em escala única, em COCO Keypoints val2017 dataset.
    Reproduzir por yolo val pose data=coco-pose.yaml device=0
  • Velocidade com média sobre imagens COCO val usando uma Amazon EC2 P4d instância.
    Reproduzir por yolo val pose data=coco-pose.yaml batch=1 device=0|cpu

Treinar

Treine um modelo YOLO11-pose no conjunto de dados COCO8-pose. O conjunto de dados COCO8-pose é um pequeno conjunto de dados de amostra perfeito para testar e depurar seus modelos de estimativa de pose.

Exemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.yaml")  # build a new model from YAML
model = YOLO("yolo11n-pose.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n-pose.yaml").load("yolo11n-pose.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.yaml pretrained=yolo11n-pose.pt epochs=100 imgsz=640

Formato do conjunto de dados

O formato do conjunto de dados de pose YOLO pode ser encontrado em detalhes no Guia do Conjunto de Dados. Para converter seu conjunto de dados existente de outros formatos (como COCO etc.) para o formato YOLO, use a ferramenta JSON2YOLO da Ultralytics.

Para tarefas personalizadas de estimativa de pose, você também pode explorar conjuntos de dados especializados como Tiger-Pose para estimativa de pose de animais, Hand Keypoints para rastreamento de mãos ou Dog-Pose para análise de pose canina.

Validar

Validar o modelo YOLO11n-pose treinado precisão no dataset COCO8-pose. Nenhum argumento é necessário, pois o model mantém seu treinamento data e argumentos como atributos do modelo.

Exemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list contains map50-95 of each category
metrics.pose.map  # map50-95(P)
metrics.pose.map50  # map50(P)
metrics.pose.map75  # map75(P)
metrics.pse.maps  # a list contains map50-95(P) of each category
yolo pose val model=yolo11n-pose.pt # val official model
yolo pose val model=path/to/best.pt # val custom model

Prever

Use um modelo YOLO11n-pose treinado para executar previsões em imagens. O modo de previsão permite que você realize inferência em imagens, vídeos ou transmissões em tempo real.

Exemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    xy = result.keypoints.xy  # x and y coordinates
    xyn = result.keypoints.xyn  # normalized
    kpts = result.keypoints.data  # x, y, visibility (if available)
yolo pose predict model=yolo11n-pose.pt source='https://ultralytics.com/images/bus.jpg' # predict with official model
yolo pose predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model

Veja todos os detalhes do modo predict na Prever página.

Exportar

Exporte um modelo YOLO11n Pose para um formato diferente, como ONNX, CoreML, etc. Isso permite que você implemente seu modelo em várias plataformas e dispositivos para inferência em tempo real.

Exemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n-pose.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

Os formatos de exportação YOLO11-pose disponíveis estão na tabela abaixo. Você pode exportar para qualquer formato usando o format argumento, ou seja, format='onnx' ou format='engine'. Você pode prever ou validar diretamente em modelos exportados, ou seja, yolo predict model=yolo11n-pose.onnxExemplos de uso são mostrados para seu modelo após a conclusão da exportação.

Formato format Argumento Modelo Metadados Argumentos
PyTorch - yolo11n-pose.pt -
TorchScript torchscript yolo11n-pose.torchscript imgsz, half, optimize, nms, batch, device
ONNX onnx yolo11n-pose.onnx imgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINO openvino yolo11n-pose_openvino_model/ imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRT engine yolo11n-pose.engine imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreML coreml yolo11n-pose.mlpackage imgsz, half, int8, nms, batch, device
TF SavedModel saved_model yolo11n-pose_saved_model/ imgsz, keras, int8, nms, batch, device
TF GraphDef pb yolo11n-pose.pb imgsz, batch, device
TF Lite tflite yolo11n-pose.tflite imgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPU edgetpu yolo11n-pose_edgetpu.tflite imgsz, device
TF.js tfjs yolo11n-pose_web_model/ imgsz, half, int8, nms, batch, device
PaddlePaddle paddle yolo11n-pose_paddle_model/ imgsz, batch, device
MNN mnn yolo11n-pose.mnn imgsz, batch, int8, half, device
NCNN ncnn yolo11n-pose_ncnn_model/ imgsz, half, batch, device
IMX500 imx yolo11n-pose_imx_model/ imgsz, int8, data, fraction, device
RKNN rknn yolo11n-pose_rknn_model/ imgsz, batch, name, device

Veja todos os detalhes do modo export detalhes em Exportar página.

FAQ

O que é Estimativa de Pose com Ultralytics YOLO11 e como funciona?

A estimativa de pose com Ultralytics YOLO11 envolve a identificação de pontos específicos, conhecidos como keypoints, em uma imagem. Esses keypoints normalmente representam articulações ou outros recursos importantes do objeto. A saída inclui as [x, y] coordenadas e os scores de confiança para cada ponto. Os modelos YOLO11-pose são projetados especificamente para esta tarefa e usam o -pose sufixo, como yolo11n-pose.pt. Esses modelos são pré-treinados em datasets como COCO keypoints e podem ser usados para várias tarefas de estimativa de pose. Para mais informações, visite a Página de Estimativa de Pose.

Como posso treinar um modelo YOLO11-pose em um conjunto de dados personalizado?

Treinar um modelo YOLO11-pose em um dataset personalizado envolve carregar um modelo, seja um novo modelo definido por um arquivo YAML ou um modelo pré-treinado. Você pode então iniciar o processo de treinamento usando seu dataset e parâmetros especificados.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.yaml")  # build a new model from YAML
model = YOLO("yolo11n-pose.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

Para detalhes abrangentes sobre o treino, consulte a Seção de Treino. Também pode usar o Ultralytics HUB para uma abordagem sem código para treinar modelos de estimativa de pose personalizados.

Como valido um modelo YOLO11-pose treinado?

A validação de um modelo YOLO11-pose envolve a avaliação de sua precisão usando os mesmos parâmetros do conjunto de dados mantidos durante o treinamento. Aqui está um exemplo:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered

Para obter mais informações, visite a Seção Val.

Posso exportar um modelo YOLO11-pose para outros formatos e como?

Sim, você pode exportar um modelo YOLO11-pose para vários formatos, como ONNX, CoreML, TensorRT e outros. Isso pode ser feito usando Python ou a Interface de Linha de Comando (CLI).

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")

Consulte a Seção de Exportação para obter mais detalhes. Os modelos exportados podem ser implementados em dispositivos de borda para aplicações em tempo real, como rastreamento de condicionamento físico, análise esportiva ou robótica.

Quais são os modelos Ultralytics YOLO11-pose disponíveis e suas métricas de desempenho?

Ultralytics YOLO11 oferece vários modelos de pose pré-treinados, como YOLO11n-pose, YOLO11s-pose, YOLO11m-pose, entre outros. Esses modelos diferem em tamanho, precisão (mAP) e velocidade. Por exemplo, o modelo YOLO11n-pose atinge um mAPpose50-95 de 50,0 e um mAPpose50 de 81,0. Para obter uma lista completa e detalhes de desempenho, visite a Seção de Modelos.



📅 Criado há 1 ano ✏️ Atualizado há 2 meses

Comentários