Vai al contenuto

Stima della posa

Esempi di 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:

  1. Naso
  2. Occhio sinistro
  3. Occhio destro
  4. Orecchio sinistro
  5. Orecchio destro
  6. Spalla sinistra
  7. Spalla destra
  8. Gomito sinistro
  9. Gomito destro
  10. Polso sinistro
  11. Polso destro
  12. Anca sinistra
  13. Anca destra
  14. Ginocchio sinistro
  15. Ginocchio destro
  16. Caviglia sinistra
  17. 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 tramite yolo val pose data=coco-pose.yaml device=0
  • Velocità calcolata come media sulle immagini COCO val utilizzando un'istanza Amazon EC2 P4d instance.
    Riproduci tramite yolo 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.



📅 Creato 1 anno fa ✏️ Aggiornato 3 mesi fa

Commenti