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:
- Nariz
- Olho Esquerdo
- Olho Direito
- Orelha Esquerda
- Orelha Direita
- Ombro Esquerdo
- Ombro Direito
- Cotovelo Esquerdo
- Cotovelo Direito
- Punho Esquerdo
- Punho Direito
- Quadril Esquerdo
- Quadril Direito
- Joelho Esquerdo
- Joelho Direito
- Tornozelo Esquerdo
- 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 poryolo val pose data=coco-pose.yaml device=0
- Velocidade com média sobre imagens COCO val usando uma Amazon EC2 P4d instância.
Reproduzir poryolo 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.onnx
Exemplos 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.