Pose Estimation
La stima della posa individua punti chiave, come le articolazioni, per descrivere la posizione di un corpo o di un oggetto. Metodi top-down, bottom-up e a stadio singolo, e OKS.
La stima della posa è il compito di visione artificiale che consiste nell'individuare un insieme predefinito di keypoint su un corpo o un oggetto, come spalle, gomiti e ginocchia di una persona, e nel collegarli in uno scheletro che ne descrive la postura. Un modello restituisce le coordinate di ogni keypoint nell'immagine, oppure la sua posizione in 3D, insieme a un punteggio di confidenza, così le applicazioni possono misurare gli angoli articolari, contare le ripetizioni o riconoscere le azioni. La stima della posa descrive come ogni persona è in piedi o si muove, informazione che non è rappresentata né da un riquadro di delimitazione del rilevamento degli oggetti né da una maschera della segmentazione delle istanze.
Come funziona la stima della posa#
Gli stimatori della posa 2D per più persone seguono una di tre strategie; la terza rispecchia i rilevatori di oggetti a singolo stadio:
- Dall'alto verso il basso: Un rilevatore di persone individua tutte le persone nell'immagine e un modello per singola persona predice i keypoint all'interno di ogni ritaglio, come in HRNet (2019) e ViTPose (2022). L'accuratezza è elevata per le persone grandi e chiaramente visibili, e il costo aumenta con il numero di persone.
- Dal basso verso l'alto: La rete individua tutti i keypoint nell'immagine contemporaneamente, poi li raggruppa per persona. OpenPose (2017) collega le articolazioni con campi di affinità delle parti, vettori 2D che indicano la direzione di ciascun arto, così il costo rimane quasi costante anche in mezzo alla folla.
- A singolo stadio: La rete predice in un unico passaggio un riquadro della persona e tutti i suoi keypoint dalla stessa posizione della griglia, senza bisogno di ritagli o di una fase di raggruppamento. YOLO-Pose (2022) ha introdotto questa progettazione in YOLO.
Le posizioni dei keypoint si ricavano da mappe di calore, una mappa di probabilità per keypoint il cui picco ne indica la posizione, oppure regredendo direttamente le coordinate. Per anni le mappe di calore hanno dominato i benchmark, ma richiedono memoria e sono limitate dalla risoluzione della mappa. La stima del log-verosimiglianza residuo (RLE) ha ridotto il divario per la regressione nel 2021, apprendendo la distribuzione dell'errore di predizione con un flusso normalizzante. I modelli di posa YOLO26 sono regressori a singolo stadio addestrati con RLE: durante l'addestramento, un ramo aggiuntivo predice l'incertezza di ogni keypoint e un flusso RealNVP valuta l'errore; entrambi vengono rimossi quando il modello viene fuso per l'inferenza, quindi non comportano costi di inferenza.
from ultralytics import YOLO
# Carica un modello di posa YOLO26 nano addestrato sui 17 keypoint corporei di COCO
model = YOLO("yolo26n-pose.pt")
# Individua tutte le persone e i relativi keypoint in un unico passaggio
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]
# La forma è (persone, keypoint, xy); salva l'immagine con gli scheletri disegnati
print(result.keypoints.xy.shape)
result.save(filename="pose_result.jpg")La forma stampata conta le persone individuate, i 17 keypoint e le 2 coordinate pixel; l'immagine salvata mostra ogni scheletro sovrapposto alla persona corrispondente.
Stima della posa 2D e 3D#
Gli stimatori 2D restituiscono coordinate in pixel. La stima della posa umana 3D ricostruisce le posizioni delle articolazioni nello spazio sollevando una sequenza di keypoint 2D con una seconda rete, come in VideoPose3D, triangolando i keypoint osservati da diverse telecamere calibrate oppure adattando all'immagine una mesh parametrica del corpo come SMPL. La stima della posa degli oggetti è un compito distinto: ricostruisce la rotazione e la traslazione 3D di un oggetto rigido, spesso a partire dai keypoint sulla sua superficie, per la presa robotica e la realtà aumentata.
Valutare la stima della posa#
Il benchmark COCO Keypoints, con circa 250.000 persone etichettate con 17 punti chiave, valuta le previsioni con la similarità dei punti chiave degli oggetti (OKS), l'equivalente per i punti chiave dell'intersezione sull'unione (IoU). Per ogni punto chiave etichettato, la distanza d tra previsione ed etichetta diventa una similarità exp(-d²/(2s²k²)), dove s² è l'area segmentata della persona e k è una costante specifica per punto chiave misurata in base alla coerenza con cui gli annotatori hanno posizionato quel punto. OKS calcola la media di questi termini sui punti chiave etichettati, mentre la precisione media (mAP) è calcolata come media sulle soglie OKS da 0.50 a 0.95.
import numpy as np
# COCO falloff constants: annotators place eyes far more consistently than hips
sigmas = {"eye": 0.025, "hip": 0.107}
area = 20_000 # person's segmented area in pixels (s squared)
error = 5.0 # predicted keypoint lies 5 pixels from its label
# Per-keypoint OKS term: exp(-d^2 / (2 s^2 k^2)) with k = 2 * sigma
for name, sigma in sigmas.items():
similarity = np.exp(-(error**2) / (2 * area * (2 * sigma) ** 2))
print(f"{name}: {similarity:.2f}")Lo stesso errore di 5 pixel ottiene un punteggio di 0,78 per un occhio e di 0,99 per un'anca. Altri benchmark usano altre misure: MPII riporta PCKh, la quota di keypoint entro metà della dimensione della testa dalla rispettiva etichetta, mentre i benchmark 3D come Human3.6M riportano l'errore medio di posizione per articolazione in millimetri.
Applicazioni nel mondo reale#
- Analisi sportiva: Gli allenatori misurano angoli articolari, lunghezza del passo e meccanica dello swing da normali video, senza i marcatori riflettenti usati per l'acquisizione del movimento in laboratorio.
- Riabilitazione: Le app di fisioterapia monitorano a casa l'ampiezza dei movimenti e la corretta esecuzione degli esercizi, mentre i sistemi di rilevamento delle cadute controllano se i keypoint del corpo scendono al livello del pavimento.
- Riconoscimento delle azioni: Le sequenze di scheletri sono input compatti per classificare azioni come salutare, cadere o sollevare, e ignorano abbigliamento e sfondo.
- Ricerca sugli animali: Insiemi di keypoint personalizzati tracciano la postura degli animali, per esempio i 24 keypoint per cane del dataset Dog-Pose, per studiarne l'andatura e il comportamento.










