Stima della posa
La stima della posa è un'attività che prevede l'identificazione della posizione di punti specifici in un'immagine, solitamente indicati come keypoint. I keypoint possono rappresentare varie parti dell'oggetto, come giunture, punti di riferimento o altre caratteristiche distintive. Le posizioni dei keypoint sono generalmente rappresentate come un insieme di coordinate 2D [x, y]
o 3D [x, y, visible]
coordinate.
L'output di un modello di stima della posa è un insieme di punti che rappresentano i keypoint su un oggetto nell'immagine, solitamente insieme ai punteggi di confidenza per ciascun punto. La stima della posa è una buona scelta quando è necessario identificare parti specifiche di un oggetto in una scena e la loro posizione in relazione tra loro.
Guarda: Tutorial di stima della posa di Ultralytics YOLO11 | Tracciamento di oggetti in tempo reale e rilevamento della posa umana
Suggerimento
YOLO11 pose i modelli utilizzano il -pose
suffisso, cioè yolo11n-pose.pt
. Questi modelli sono addestrati sul set di dati COCO keypoints e sono adatti per una varietà di attività di stima della posa.
Nel modello di posa YOLO11 predefinito, ci sono 17 keypoint, ognuno dei quali rappresenta una parte diversa del corpo umano. Ecco la mappatura di ogni indice alla rispettiva articolazione del corpo:
- Naso
- Occhio sinistro
- Occhio destro
- Orecchio sinistro
- Orecchio destro
- Spalla sinistra
- Spalla destra
- Gomito sinistro
- Gomito destro
- Polso sinistro
- Polso destro
- Anca sinistra
- Anca destra
- Ginocchio sinistro
- Ginocchio destro
- Caviglia sinistra
- Caviglia destra
Modelli
Qui sono mostrati i modelli di posa pre-addestrati Ultralytics YOLO11. I modelli Detect, Segment e Pose sono pre-addestrati sul set di dati COCO, mentre i modelli Classify sono pre-addestrati sul set di dati ImageNet.
I modelli vengono scaricati automaticamente dall'ultima release di Ultralytics al primo utilizzo.
Modello | dimensione (pixel) |
mAPpose 50-95 |
mAPpose 50 |
Velocità CPU ONNX (ms) |
Velocità T4 TensorRT10 (ms) |
parametri (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 i valori si riferiscono a un singolo modello single-scale su COCO Keypoints val2017 dataset.
Riproduci tramiteyolo val pose data=coco-pose.yaml device=0
- Velocità calcolata come media sulle immagini COCO val utilizzando un'istanza Amazon EC2 P4d instance.
Riproduci tramiteyolo val pose data=coco-pose.yaml batch=1 device=0|cpu
Addestramento
Addestra un modello YOLO11-pose sul dataset COCO8-pose. Il dataset COCO8-pose è un piccolo dataset di esempio perfetto per testare ed eseguire il debug dei tuoi modelli di stima della posa.
Esempio
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 del set di dati
Il formato del dataset di posa YOLO è descritto in dettaglio nella Guida al Dataset. Per convertire il tuo dataset esistente da altri formati (come COCO ecc.) al formato YOLO, utilizza lo strumento JSON2YOLO di Ultralytics.
Per attività personalizzate di stima della posa, puoi anche esplorare set di dati specializzati come Tiger-Pose per la stima della posa degli animali, Hand Keypoints per il tracciamento della mano o Dog-Pose per l'analisi della posa canina.
Valutazione
Valida il modello YOLO11n-pose addestrato accuratezza sul dataset COCO8-pose. Non sono necessari argomenti poiché i model
mantiene il suo training data
e gli argomenti come attributi del modello.
Esempio
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
Predizione
Usa un modello YOLO11n-pose addestrato per eseguire previsioni sulle immagini. La modalità predict ti consente di eseguire l'inferenza su immagini, video o stream in tempo reale.
Esempio
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
Vedi tutti i predict
dettagli della modalità nella Predizione pagina.
Esportazione
Esporta un modello YOLO11n Pose in un formato diverso come ONNX, CoreML, ecc. Ciò consente di distribuire il modello su varie piattaforme e dispositivi per l'inferenza in tempo reale.
Esempio
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
I formati di esportazione YOLO11-pose disponibili sono nella tabella sottostante. Puoi esportare in qualsiasi formato usando il format
argomento, ad esempio format='onnx'
oppure format='engine'
. Puoi prevedere o convalidare direttamente sui modelli esportati, ad esempio yolo predict model=yolo11n-pose.onnx
. Esempi di utilizzo vengono mostrati per il tuo modello dopo che l'esportazione è stata completata.
Formato | format Argomento |
Modello | Metadati | Argomenti |
---|---|---|---|---|
PyTorch | - | yolo11n-pose.pt |
✅ | - |
TorchScript | torchscript |
yolo11n-pose.torchscript |
✅ | imgsz , half , dynamic , 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 |
Vedi tutti i export
dettagli nella Esportazione pagina.
FAQ
Cos'è la stima della posa con Ultralytics YOLO11 e come funziona?
La stima della posa con Ultralytics YOLO11 comporta l'identificazione di punti specifici, noti come keypoint, in un'immagine. Questi keypoint rappresentano tipicamente le articolazioni o altre caratteristiche importanti dell'oggetto. L'output include le [x, y]
coordinate e i punteggi di confidenza per ciascun punto. I modelli YOLO11-pose sono specificamente progettati per questo compito e utilizzano il -pose
suffisso, come yolo11n-pose.pt
. Questi modelli sono pre-addestrati su dataset come set di dati COCO keypoints e possono essere utilizzati per varie attività di stima della posa. Per maggiori informazioni, visita la Pagina sulla Stima della Posa.
Come posso addestrare un modello YOLO11-pose su un dataset personalizzato?
L'addestramento di un modello YOLO11-pose su un dataset personalizzato comporta il caricamento di un modello, sia un nuovo modello definito da un file YAML, sia un modello pre-addestrato. È quindi possibile avviare il processo di addestramento utilizzando il dataset e i parametri specificati.
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)
Per informazioni dettagliate sull'addestramento, consulta la Sezione Addestramento. Puoi anche utilizzare Ultralytics HUB per un approccio no-code all'addestramento di modelli personalizzati di stima della posa.
Come posso convalidare un modello YOLO11-pose addestrato?
La convalida di un modello YOLO11-pose comporta la valutazione della sua accuratezza utilizzando gli stessi parametri del dataset mantenuti durante l'addestramento. Ecco un esempio:
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
Per maggiori informazioni, visita la Sezione Val.
Posso esportare un modello YOLO11-pose in altri formati e come?
Sì, puoi esportare un modello YOLO11-pose in vari formati come ONNX, CoreML, TensorRT e altri. Questo può essere fatto usando python o l'interfaccia a riga di 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")
Per maggiori dettagli, fare riferimento alla Sezione Esportazione. I modelli esportati possono essere implementati su dispositivi edge per applicazioni in tempo reale come il monitoraggio della forma fisica, l'analisi sportiva o la robotica.
Quali sono i modelli Ultralytics YOLO11-pose disponibili e le loro metriche di performance?
Ultralytics YOLO11 offre vari modelli di posa pre-addestrati come YOLO11n-pose, YOLO11s-pose, YOLO11m-pose, tra gli altri. Questi modelli differiscono per dimensioni, accuratezza (mAP) e velocità. Ad esempio, il modello YOLO11n-pose raggiunge un mAPpose50-95 di 50.0 e un mAPpose50 di 81.0. Per un elenco completo e i dettagli sulle prestazioni, visita la sezione Modelli.