Estimativa de Pose
A estimativa de pose é uma tarefa que envolve identificar a localização de pontos específicos em uma imagem, geralmente chamados de keypoints. Os keypoints podem representar várias partes do objeto, como articulações, marcos ou outras características distintas. As localizações dos keypoints são geralmente representadas como um conjunto de 2D [x, y] ou 3D [x, y, visible].
O resultado de um modelo de estimativa de pose é um conjunto de pontos que representam os keypoints em um objeto na imagem, geralmente junto com pontuações 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.
Watch: How to Run Real-Time Pose Estimation with Ultralytics YOLO26 | Tracking & Keypoints Extraction 🕺
Modelos YOLO26 pose usam o sufixo -pose, isto é, yolo26n-pose.pt. Estes modelos são treinados no conjunto de dados COCO keypoints e são adequados para uma variedade de tarefas de estimativa de pose.
No modelo de pose YOLO26 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 corporal:
- Nariz
- Olho Esquerdo
- Olho Direito
- Orelha Esquerda
- Orelha Direita
- Ombro Esquerdo
- Ombro Direito
- Cotovelo Esquerdo
- Cotovelo Direito
- Pulso Esquerdo
- Pulso Direito
- Quadril Esquerdo
- Quadril Direito
- Joelho Esquerdo
- Joelho Direito
- Tornozelo Esquerdo
- Tornozelo Direito
Modelos
Modelos de Pose pré-treinados YOLO26 da Ultralytics são mostrados aqui. Modelos de Detecção, Segmentação e Pose são pré-treinados no conjunto de dados COCO , enquanto modelos de Classificação são pré-treinados no conjunto de dados ImageNet.
Modelos baixam automaticamente do mais recente release da Ultralytics no primeiro uso.
| Modelo | tamanho (pixels) | mAPpose 50-95(e2e) | mAPpose 50(e2e) | Velocidade CPU ONNX (ms) | Velocidade T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-pose | 640 | 57.2 | 83.3 | 40.3 ± 0.5 | 1.8 ± 0.0 | 2.9 | 7.5 |
| YOLO26s-pose | 640 | 63.0 | 86.6 | 85.3 ± 0.9 | 2.7 ± 0.0 | 10.4 | 23.9 |
| YOLO26m-pose | 640 | 68.8 | 89.6 | 218.0 ± 1.5 | 5.0 ± 0.1 | 21.5 | 73.1 |
| YOLO26l-pose | 640 | 70.4 | 90.5 | 275.4 ± 2.4 | 6.5 ± 0.1 | 25.9 | 91.3 |
| YOLO26x-pose | 640 | 71.6 | 91.6 | 565.4 ± 3.0 | 12.2 ± 0.2 | 57.6 | 201.7 |
- mAPval os valores são para modelo único em escala única no conjunto de dados COCO Keypoints val2017 .
Reproduza poryolo val pose data=coco-pose.yaml device=0 - Velocidade com média das imagens de validação do COCO usando uma instância Amazon EC2 P4d .
Reproduza poryolo val pose data=coco-pose.yaml batch=1 device=0|cpu - Params e FLOPs valores são para o modelo fundido após
model.fuse(), que mescla camadas Conv e BatchNorm e, para modelos end2end, remove o head de detecção auxiliar um-para-muitos. Checkpoints pré-treinados retêm a arquitetura de treinamento completa e podem mostrar contagens mais altas.
Treinar
Treine um modelo YOLO26-pose no conjunto de dados COCO8-pose. O COCO8-pose dataset é um pequeno conjunto de dados de exemplo que é perfeito para testar e depurar seus modelos de estimativa de pose.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.yaml") # build a new model from YAML
model = YOLO("yolo26n-pose.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n-pose.yaml").load("yolo26n-pose.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)Veja detalhes completos de train detalhes do modo na página Treinar . Modelos de Pose também podem ser treinados em GPUs na nuvem através do Plataforma Ultralytics.
Formato do conjunto de dados
O formato do conjunto de dados de pose YOLO pode ser encontrado em detalhes no Dataset Guide. Para converter seu conjunto de dados existente de outros formatos (como COCO etc.) para o formato YOLO, por favor use a ferramenta JSON2YOLO da Ultralytics. Plataforma Ultralytics também suporta anotação de pose com modelos de esqueleto integrados para pessoas, mãos, rostos e layouts de keypoints personalizados.
Para tarefas de estimativa de pose personalizadas, você também pode explorar conjuntos de dados especializados como Tiger-Pose para estimativa de pose animal, Hand Keypoints para rastreamento de mãos, ou Dog-Pose para análise de pose canina.
Val
Valida o modelo YOLO26n-pose treinado precisão no dataset COCO8-pose. Nenhum argumento é necessário já que o model retém seus data de treinamento e argumentos como atributos do modelo.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-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 containing mAP50-95 for each category
metrics.box.image_metrics # per-image metrics dictionary for box with precision, recall, F1, TP, FP, and FN
metrics.pose.map # map50-95(P)
metrics.pose.map50 # map50(P)
metrics.pose.map75 # map75(P)
metrics.pose.maps # a list containing mAP50-95(P) for each category
metrics.pose.image_metrics # per-image metrics dictionary for pose with precision, recall, F1, TP, FP, and FNPrevisão
Usa um modelo YOLO26n-pose treinado para realizar predições em imagens. O predict mode permite que realizes inferência em imagens, vídeos ou transmissões em tempo real.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-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)Veja detalhes completos de predict detalhes do modo na página Previsão.
Exportação
Exporta um modelo YOLO26 Pose para um formato diferente como ONNX, CoreML, etc. Isto permite que implementes o teu modelo em várias plataformas e dispositivos para inferência em tempo real.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")Os formatos de exportação disponíveis para YOLO26-pose estão na tabela abaixo. Podes exportar para qualquer formato usando o format, ex: format='onnx' ou format='engine'. Você pode prever ou validar diretamente em modelos exportados, ex: yolo predict model=yolo26n-pose.onnx. Exemplos de uso são apresentados para o teu modelo após a conclusão da exportação.
| Formato | format Argumento | Modelo | Metadados | Argumentos |
|---|---|---|---|---|
| PyTorch | - | yolo26n-pose.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-pose.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-pose.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n-pose_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-pose.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-pose.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-pose_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-pose.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-pose.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-pose_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n-pose_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-pose_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-pose.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-pose_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-pose_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n-pose_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-pose_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-pose_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
Veja detalhes completos de export na página de Exportação.
FAQ
O que é a Estimativa de Pose com Ultralytics YOLO26 e como funciona?
A estimativa de pose com Ultralytics YOLO26 envolve a identificação de pontos específicos, conhecidos como keypoints, numa imagem. Estes keypoints representam tipicamente articulações ou outras características importantes do objeto. O output inclui as [x, y] coordenadas e pontuações de confiança para cada ponto. Os modelos YOLO26-pose são especificamente concebidos para esta tarefa e usam o -pose sufixo, tal como yolo26n-pose.pt. Estes 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, visita a Página de Estimativa de Pose.
Como posso treinar um modelo YOLO26-pose num dataset personalizado?
O treino de um modelo YOLO26-pose num dataset personalizado envolve carregar um modelo, seja um novo modelo definido por um ficheiro YAML ou um modelo pré-treinado. Podes então iniciar o processo de treino usando o teu dataset e parâmetros especificados.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.yaml") # build a new model from YAML
model = YOLO("yolo26n-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, consulta a Secção de Treino. Também podes usar Plataforma Ultralytics para uma abordagem sem código para treinar modelos personalizados de estimativa de pose.
Como valido um modelo YOLO26-pose treinado?
A validação de um modelo YOLO26-pose envolve avaliar a sua precisão usando os mesmos parâmetros de dataset retidos durante o treino. Aqui tens um exemplo:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-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 rememberedPara mais informações, visite a Secção de Val.
Posso exportar um modelo YOLO26-pose para outros formatos, e como?
Sim, podes exportar um modelo YOLO26-pose para vários formatos como ONNX, CoreML, TensorRT, e mais. Isto pode ser feito usando Python ou a Interface de Linha de Comandos (CLI).
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")Consulta o Secção de Exportação para mais detalhes. Modelos exportados podem ser implementados em dispositivos edge para aplicações em tempo real como rastreio de fitness, análise desportiva, ou robótica.
Quais são os modelos Ultralytics YOLO26-pose disponíveis e as suas métricas de desempenho?
O Ultralytics YOLO26 oferece vários modelos de pose pré-treinados como YOLO26n-pose, YOLO26s-pose, YOLO26m-pose, entre outros. Estes modelos diferem em tamanho, precisão (mAP), e velocidade. Por exemplo, o modelo YOLO26n-pose alcança um mAPpose50-95 de 50.0 e um mAPpose50 de 81.0. Para uma lista completa e detalhes de desempenho, visita a Secção de Modelos.