13 KiB
comments | description | keywords |
---|---|---|
true | Aprenda a usar o Ultralytics YOLOv8 para tarefas de estimativa de pose. Encontre modelos pré-treinados, aprenda a treinar, validar, prever e exportar seu próprio modelo. | Ultralytics, YOLO, YOLOv8, estimativa de pose, detecção de pontos-chave, detecção de objetos, modelos pré-treinados, aprendizado de máquina, inteligência artificial |
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.
!!! tip "Dica"
Modelos YOLOv8 _pose_ usam o sufixo `-pose`, isto é `yolov8n-pose.pt`. Esses modelos são treinados no conjunto de dados [COCO keypoints](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml) 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.
!!! example ""
=== "Python"
```python
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)
```
=== "CLI"
```bash
# 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.
!!! example ""
=== "Python"
```python
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
```
=== "CLI"
```bash
yolo pose val model=yolov8n-pose.pt # validar modelo oficial
yolo pose val model=caminho/para/melhor.pt # validar modelo personalizado
```
Prever
Use um modelo YOLOv8n-pose treinado para executar previsões em imagens.
!!! example ""
=== "Python"
```python
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
# Prever com o modelo
results = model('https://ultralytics.com/images/bus.jpg') # prever em uma imagem
```
=== "CLI"
```bash
yolo pose predict model=yolov8n-pose.pt source='https://ultralytics.com/images/bus.jpg' # prever com modelo oficial
yolo pose predict model=caminho/para/melhor.pt source='https://ultralytics.com/images/bus.jpg' # prever com modelo personalizado
```
Veja detalhes completos do modo predict
na página Prever.
Exportar
Exporte um modelo YOLOv8n Pose para um formato diferente como ONNX, CoreML, etc.
!!! example ""
=== "Python"
```python
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 treinado personalizado
# Exportar o modelo
model.export(format='onnx')
```
=== "CLI"
```bash
yolo export model=yolov8n-pose.pt format=onnx # exportar modelo oficial
yolo export model=caminho/para/melhor.pt format=onnx # exportar modelo treinado personalizado
```
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.