Estimativa de Pose
A estimativa de pose é uma tarefa que envolve identificar a localização de pontos específicos em uma imagem, geralmente referidos como pontos-chave. Os pontos-chave podem representar várias partes do objeto como articulações, pontos de referência ou outras características distintas. As localizações dos pontos-chave são geralmente representadas como um conjunto de coordenadas 2D [x, y]
ou 3D [x, y, visível]
.
A saída de um modelo de estimativa de pose é um conjunto de pontos que representam os pontos-chave em um objeto na imagem, geralmente junto com os escores 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 relativa entre si.
Assista: Estimativa de Pose com Ultralytics YOLOv8.
Dica
Modelos YOLOv8 pose usam o sufixo -pose
, isto é yolov8n-pose.pt
. Esses modelos são treinados no conjunto de dados COCO keypoints e são adequados para uma variedade de tarefas de estimativa de pose.
Modelos
Os modelos YOLOv8 Pose pré-treinados 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.
Modelos são baixados automaticamente do último lançamento da Ultralytics release no primeiro uso.
Modelo | tamanho (pixels) |
mAPpose 50-95 |
mAPpose 50 |
Velocidade CPU ONNX (ms) |
Velocidade A100 TensorRT (ms) |
parâmetros (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-pose | 640 | 50.4 | 80.1 | 131.8 | 1.18 | 3.3 | 9.2 |
YOLOv8s-pose | 640 | 60.0 | 86.2 | 233.2 | 1.42 | 11.6 | 30.2 |
YOLOv8m-pose | 640 | 65.0 | 88.8 | 456.3 | 2.00 | 26.4 | 81.0 |
YOLOv8l-pose | 640 | 67.6 | 90.0 | 784.5 | 2.59 | 44.4 | 168.6 |
YOLOv8x-pose | 640 | 69.2 | 90.2 | 1607.1 | 3.73 | 69.4 | 263.2 |
YOLOv8x-pose-p6 | 1280 | 71.6 | 91.2 | 4088.7 | 10.04 | 99.1 | 1066.4 |
- mAPval valores são para um único modelo em escala única no conjunto de dados COCO Keypoints val2017
.
Reproduzayolo val pose data=coco-pose.yaml device=0
- Velocidade média em imagens COCO val usando uma instância Amazon EC2 P4d
.
Reproduzayolo val pose data=coco8-pose.yaml batch=1 device=0|cpu
Treinar
Treine um modelo YOLOv8-pose no conjunto de dados COCO128-pose.
Exemplo
from ultralytics import YOLO
# Carregar um modelo
model = YOLO('yolov8n-pose.yaml') # construir um novo modelo a partir do YAML
model = YOLO('yolov8n-pose.pt') # carregar um modelo pré-treinado (recomendado para treinamento)
model = YOLO('yolov8n-pose.yaml').load('yolov8n-pose.pt') # construir a partir do YAML e transferir pesos
# Treinar o modelo
results = model.train(data='coco8-pose.yaml', epochs=100, imgsz=640)
# Construir um novo modelo a partir do YAML e começar o treinamento do zero
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.yaml epochs=100 imgsz=640
# Começar treinamento de um modelo *.pt pré-treinado
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.pt epochs=100 imgsz=640
# Construir um novo modelo a partir do YAML, transferir pesos pré-treinados para ele e começar o treinamento
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.yaml pretrained=yolov8n-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 de Conjuntos de Dados. 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.
Validar
Valide a acurácia do modelo YOLOv8n-pose treinado no conjunto de dados COCO128-pose. Não é necessário passar nenhum argumento, pois o model
retém seus data
de treinamento e argumentos como atributos do modelo.
Exemplo
from ultralytics import YOLO
# Carregar um modelo
model = YOLO('yolov8n-pose.pt') # carregar um modelo oficial
model = YOLO('caminho/para/melhor.pt') # carregar um modelo personalizado
# Validar o modelo
metrics = model.val() # nenhum argumento necessário, conjunto de dados e configurações lembradas
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # uma lista contém map50-95 de cada categoria
Prever
Use um modelo YOLOv8n-pose treinado para executar previsões em imagens.
Exemplo
Veja detalhes completos do modo predict
na página Prever.
Exportar
Exporte um modelo YOLOv8n Pose para um formato diferente como ONNX, CoreML, etc.
Exemplo
Os formatos de exportação YOLOv8-pose disponíveis estão na tabela abaixo. Você pode prever ou validar diretamente em modelos exportados, ou seja, yolo predict model=yolov8n-pose.onnx
. Exemplos de uso são mostrados para o seu modelo após a conclusão da exportação.
Formato | Argumento format |
Modelo | Metadados | Argumentos |
---|---|---|---|---|
PyTorch | - | yolov8n-pose.pt |
✅ | - |
TorchScript | torchscript |
yolov8n-pose.torchscript |
✅ | imgsz , optimize |
ONNX | onnx |
yolov8n-pose.onnx |
✅ | imgsz , half , dynamic , simplify , opset |
OpenVINO | openvino |
yolov8n-pose_openvino_model/ |
✅ | imgsz , half |
TensorRT | engine |
yolov8n-pose.engine |
✅ | imgsz , half , dynamic , simplify , workspace |
CoreML | coreml |
yolov8n-pose.mlpackage |
✅ | imgsz , half , int8 , nms |
TF SavedModel | saved_model |
yolov8n-pose_saved_model/ |
✅ | imgsz , keras |
TF GraphDef | pb |
yolov8n-pose.pb |
❌ | imgsz |
TF Lite | tflite |
yolov8n-pose.tflite |
✅ | imgsz , half , int8 |
TF Edge TPU | edgetpu |
yolov8n-pose_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolov8n-pose_web_model/ |
✅ | imgsz |
PaddlePaddle | paddle |
yolov8n-pose_paddle_model/ |
✅ | imgsz |
ncnn | ncnn |
yolov8n-pose_ncnn_model/ |
✅ | imgsz , half |
Veja detalhes completos da exportação
na página Exportar.