Estimativa de pose
A estimativa da pose é uma tarefa que envolve a identificação da localização de pontos específicos numa imagem, normalmente designados por pontos-chave. Os pontos-chave podem representar várias partes do objeto, como articulações, pontos de referência ou outras caraterísticas distintivas. As localizações dos pontos-chave são normalmente representadas como um conjunto de imagens 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 de um objeto na imagem, normalmente juntamente com as pontuações de confiança para cada ponto. A estimativa de pose é uma boa escolha quando é necessário identificar partes específicas de um objeto numa cena e a sua localização em relação umas às outras.
Ver: Ultralytics YOLO11 Tutorial de estimativa de pose | Rastreamento de objetos em tempo real e deteção de pose humana
Dica
YOLO11 pose modelos utilizam o -pose
sufixo, ou seja yolo11n-pose.pt
. Estes modelos são treinados no Pontos-chave do COCO e são adequados para uma variedade de tarefas de estimativa de pose.
No modelo de pose predefinido YOLO11 , existem 17 pontos-chave, cada um representando uma parte diferente do corpo humano. Aqui está o mapeamento de cada índice para a respectiva articulação do corpo:
- Nariz
- Olho esquerdo
- Olho direito
- Orelha esquerda
- Orelha direita
- Ombro esquerdo
- Ombro direito
- Cotovelo esquerdo
- Cotovelo direito
- Pulso esquerdo
- Pulso direito
- Anca esquerda
- Anca direita
- Joelho esquerdo
- Joelho direito
- Tornozelo esquerdo
- Tornozelo direito
Modelos
Os modelos Pose pré-treinados Ultralytics YOLO11 são mostrados aqui. Os modelos Detetar, Segmentar e Pose são pré-treinados no conjunto de dados COCO, enquanto os modelos Classificar são pré-treinados no conjunto de dados ImageNet.
Os modelos são transferidos automaticamente a partir daversão mais recentede Ultralytics na primeira utilização.
Modelo | tamanho (pixéis) |
mAPpose 50-95 |
mAPpose 50 |
Velocidade CPU ONNX (ms) |
Velocidade T4TensorRT10 (ms) |
params (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 são valores para modelo único e escala única em Pontos-chave da COCO val2017 conjunto de dados.
Reproduzir poryolo val pose data=coco-pose.yaml device=0
- Velocidade média das imagens COCO val utilizando um Amazon EC2 P4d instância.
Reproduzir poryolo val pose data=coco-pose.yaml batch=1 device=0|cpu
Comboio
Treine um modelo YOLO11 no conjunto de dados COCO8-pose. O conjunto de dados COCO8-pose é um pequeno conjunto de dados de amostra que é 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 consultado em pormenor no Guia do conjunto de dados. Para converter o seu conjunto de dados existente de outros formatos (como COCO, etc.) para o formato YOLO , utilize a ferramenta JSON2YOLO da Ultralytics.
Para tarefas de estimativa de pose personalizadas, também pode explorar conjuntos de dados especializados, como Tiger-Pose para estimativa de pose de animais, Hand Keypoints para seguimento de mãos ou Dog-Pose para análise de pose canina.
Val
Validar o modelo YOLO11n-pose treinado exatidão no conjunto de dados COCO8-pose. Não são necessários argumentos, uma vez que o model
mantém a sua formação 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
Prever
Utilize um modelo YOLO11n-pose treinado para efetuar previsões em imagens. O modo de previsão permite-lhe efetuar inferência em imagens, vídeos ou fluxos 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)
Ver completo predict
detalhes do modo no Prever página.
Exportação
Exportar um modelo YOLO11n Pose para um formato diferente, como ONNX, CoreML, etc. Isto permite-lhe implementar o seu modelo em várias plataformas e dispositivos para inferência em tempo real.
Exemplo
Os formatos de exportação disponíveis em YOLO11-pose encontram-se na tabela abaixo. É possível exportar para qualquer formato utilizando a função format
argumento, ou seja format='onnx'
ou format='engine'
. É possível prever ou validar diretamente nos modelos exportados, ou seja yolo predict model=yolo11n-pose.onnx
. São apresentados exemplos de utilização para o 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 , optimize , nms , batch |
ONNX | onnx |
yolo11n-pose.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch |
OpenVINO | openvino |
yolo11n-pose_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data |
TensorRT | engine |
yolo11n-pose.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data |
CoreML | coreml |
yolo11n-pose.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolo11n-pose_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch |
TF GraphDef | pb |
yolo11n-pose.pb |
❌ | imgsz , batch |
TF Leve | tflite |
yolo11n-pose.tflite |
✅ | imgsz , half , int8 , nms , batch , data |
TF Borda TPU | edgetpu |
yolo11n-pose_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolo11n-pose_web_model/ |
✅ | imgsz , half , int8 , nms , batch |
PaddlePaddle | paddle |
yolo11n-pose_paddle_model/ |
✅ | imgsz , batch |
MNN | mnn |
yolo11n-pose.mnn |
✅ | imgsz , batch , int8 , half |
NCNN | ncnn |
yolo11n-pose_ncnn_model/ |
✅ | imgsz , half , batch |
IMX500 | imx |
yolo11n-pose_imx_model/ |
✅ | imgsz , int8 , data |
RKNN | rknn |
yolo11n-pose_rknn_model/ |
✅ | imgsz , batch , name |
Ver completo export
pormenores no Exportação página.
FAQ
O que é a 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 pontos-chave, numa imagem. Estes pontos-chave representam normalmente articulações ou outras caraterísticas importantes do objeto. O resultado inclui o [x, y]
coordenadas e índices de confiança para cada ponto. YOLO11 Os modelos -pose são especificamente concebidos para esta tarefa e utilizam o -pose
sufixo, como yolo11n-pose.pt
. Estes modelos são pré-treinados em conjuntos de dados como Pontos-chave do COCO e pode ser utilizado para várias tarefas de estimativa de pose. Para mais informações, visite a página Página de estimativa de pose.
Como posso treinar um modelo YOLO11-pose num conjunto de dados personalizado?
O treinamento de um modelo YOLO11-pose em um conjunto de dados personalizado envolve o carregamento de um modelo, seja um novo modelo definido por um arquivo YAML ou um modelo pré-treinado. Em seguida, é possível iniciar o processo de treinamento usando o conjunto de dados e os 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 obter detalhes abrangentes sobre o treino, consulte a secção Treinar. Também é possível usar oUltralytics HUB para uma abordagem sem código para treinar modelos de estimativa de pose personalizados.
Como é que valido um modelo treinado YOLO11-pose?
A validação de um modelo YOLO11-pose consiste em avaliar a sua exatidão utilizando os mesmos parâmetros do conjunto de dados retidos durante a formação. Eis 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 mais informações, visite a secção Val.
Posso exportar um modelo YOLO11-pose para outros formatos, e como?
Sim, é possível exportar um modelo YOLO11 para vários formatos, como ONNX, CoreML, TensorRT, entre 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 secção Exportar para obter mais informações. Os modelos exportados podem ser implementados em dispositivos periféricos para aplicações em tempo real, como o acompanhamento da condição física, a análise desportiva ou a robótica.
Quais são os modelos disponíveis em Ultralytics YOLO11 -pose e os seus indicadores de desempenho?
YOLO11 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-95de 50,0 e um mAPpose50de 81,0. Para obter uma lista completa e detalhes de desempenho, visite a secção Modelos.