Vai al contenuto

Stima della posa

Stima YOLO con rilevamento dei punti chiave del corpo umano

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 sulla stima della posa con Ultralytics YOLO26 | Tracciamento di oggetti in tempo reale e Rilevamento della posa umana

Suggerimento

YOLO26 pose i modelli utilizzano il -pose suffisso, ad esempio, yolo26n-pose.pt. Questi modelli sono addestrati sul Keypoints COCO e sono adatti per una varietà di attività di stima della posa.

Nel modello di posa YOLO26 predefinito, ci sono 17 keypoints, ciascuno rappresentante una diversa parte del corpo umano. Ecco la mappatura di ogni indice al rispettivo giunto corporeo:

  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

I modelli di posa pre-addestrati Ultralytics YOLO26 sono mostrati qui. I modelli Detect, Segment e Pose sono pre-addestrati sul dataset COCO, mentre i modelli Classify sono pre-addestrati sul dataset ImageNet.

I modelli vengono scaricati automaticamente dall'ultima release di Ultralytics al primo utilizzo.

Modellodimensione
(pixel)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLO26n-pose64057.283.340.3 ± 0.51.8 ± 0.02.97.5
YOLO26s-pose64063.086.685.3 ± 0.92.7 ± 0.010.423.9
YOLO26m-pose64068.889.6218.0 ± 1.55.0 ± 0.121.573.1
YOLO26l-pose64070.490.5275.4 ± 2.46.5 ± 0.125.991.3
YOLO26x-pose64071.691.6565.4 ± 3.012.2 ± 0.257.6201.7
  • mAPval i valori si riferiscono a un singolo modello single-scale su Keypoints COCO val2017 dataset.
    Riproduci tramite yolo val pose data=coco-pose.yaml device=0
  • Velocità calcolata in media sulle immagini COCO val utilizzando un Amazon EC2 P4d instance.
    Riproduci tramite yolo val pose data=coco-pose.yaml batch=1 device=0|cpu

Addestramento

Addestra un modello YOLO26-pose sul dataset COCO8-pose. Il dataset COCO8-pose è un piccolo dataset di esempio perfetto per testare e debuggare i tuoi modelli di stima della posa.

Esempio

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)
# Build a new model from YAML and start training from scratch
yolo pose train data=coco8-pose.yaml model=yolo26n-pose.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo pose train data=coco8-pose.yaml model=yolo26n-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=yolo26n-pose.yaml pretrained=yolo26n-pose.pt epochs=100 imgsz=640

Formato del set di dati

Il formato del dataset per il pose 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

Convalida il modello YOLO26n-pose addestrato accuratezza sul dataset COCO8-pose. Non sono necessari argomenti poiché il model mantiene il suo training data e gli argomenti come attributi del modello.

Esempio

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.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
yolo pose val model=yolo26n-pose.pt # val official model
yolo pose val model=path/to/best.pt # val custom model

Predizione

Utilizza un modello YOLO26n-pose addestrato per eseguire predizioni su immagini. La modalità predict ti consente di eseguire inferenze su immagini, video o stream in tempo reale.

Esempio

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)
yolo pose predict model=yolo26n-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 YOLO26n Pose in un formato diverso come ONNX, CoreML, ecc. Questo ti consente di distribuire il tuo modello su varie piattaforme e dispositivi per l'inferenza in tempo reale.

Esempio

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")
yolo export model=yolo26n-pose.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom-trained model

I formati di esportazione YOLO26-pose disponibili sono nella tabella sottostante. Puoi esportare in qualsiasi formato utilizzando il format argomento, cioè, format='onnx' oppure format='engine'. È possibile effettuare previsioni o validazioni direttamente sui modelli esportati, cioè, yolo predict model=yolo26n-pose.onnx. Esempi di utilizzo vengono mostrati per il tuo modello dopo che l'esportazione è stata completata.

Formatoformat ArgomentoModelloMetadatiArgomenti
PyTorch-yolo26n-pose.pt-
TorchScripttorchscriptyolo26n-pose.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-pose.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n-pose_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-pose.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-pose.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-pose_saved_model/imgsz, keras, int8, nms, batch, device
TF GraphDefpbyolo26n-pose.pbimgsz, batch, device
TF Litetfliteyolo26n-pose.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-pose_edgetpu.tfliteimgsz, device
TF.jstfjsyolo26n-pose_web_model/imgsz, half, int8, nms, batch, device
PaddlePaddlepaddleyolo26n-pose_paddle_model/imgsz, batch, device
MNNmnnyolo26n-pose.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-pose_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-pose_imx_model/imgsz, int8, data, fraction, device
RKNNrknnyolo26n-pose_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n-pose_executorch_model/imgsz, device
Axeleraaxelerayolo26n-pose_axelera_model/imgsz, int8, data, fraction, device

Vedi tutti i export dettagli nella Esportazione pagina.

FAQ

Cos'è la stima della posa con Ultralytics YOLO26 e come funziona?

La stima della posa con Ultralytics YOLO26 implica l'identificazione di punti specifici, noti come keypoints, in un'immagine. Questi keypoints rappresentano tipicamente articolazioni o altre caratteristiche importanti dell'oggetto. L'output include le [x, y] coordinate e punteggi di confidenza per ogni punto. I modelli YOLO26-pose sono specificamente progettati per questo compito e utilizzano il -pose suffisso, come yolo26n-pose.pt. Questi modelli sono pre-addestrati su dataset come Keypoints COCO 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 YOLO26-pose su un dataset personalizzato?

L'addestramento di un modello YOLO26-pose su un dataset personalizzato implica il caricamento di un modello, che può essere un nuovo modello definito da un file yaml o 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("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)

Per dettagli completi sull'addestramento, fare riferimento alla Sezione Addestramento. È inoltre possibile utilizzare la Piattaforma Ultralytics per un approccio senza codice all'addestramento di modelli personalizzati di stima della posa.

Come si valida un modello YOLO26-pose addestrato?

La validazione di un modello YOLO26-pose implica 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("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

Per maggiori informazioni, visita la Sezione Val.

Posso esportare un modello YOLO26-pose in altri formati e come?

Sì, è possibile esportare un modello YOLO26-pose in vari formati come ONNX, CoreML, TensorRT e altri. Questo può essere fatto utilizzando python o l'interfaccia a riga di comando (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")

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 YOLO26-pose disponibili e le loro metriche di performance?

Ultralytics YOLO26 offre vari modelli pose pre-addestrati come YOLO26n-pose, YOLO26s-pose, YOLO26m-pose, tra gli altri. Questi modelli differiscono per dimensioni, accuratezza (mAP) e velocità. Ad esempio, il modello YOLO26n-pose raggiunge un mAPpose50-95 di 50.0 e un mAPpose50 di 81.0. Per un elenco completo e dettagli sulle prestazioni, visitare la Sezione Modelli.



📅 Creato 2 anni fa ✏️ Aggiornato 2 giorni fa
glenn-jocherRizwanMunawarBurhan-Qambitious-octopusUltralyticsAssistantpderrengerY-T-Gjk4eMatthewNoycek-2feng@hotmail.com

Commenti