Università di Verona Facoltà di Scienze MM.FF.NN. Corso di Laurea Specialistica in Sistemi Intelligenti e Multimediali Sistemi avanzati per il riconoscimento Lezione 5 – Gesture Recognition Dr. Marco Cristani e-mail: [email protected] ufficio: Stanza 47, Ca Vignal 2 1 Obiettivi • Creare applicazioni che riconoscano in modo automatico espressioni di movimento significative presentate da un essere umano, coinvolgenti in maniera separata o congiunta: – – – – – – dita mani braccia volto testa corpo 2 Campi applicativi • Perceptual user interfaces • interfacce per sordomuti- riconoscere il linguaggio dei gesti; • a scopi didattici, per favorire la comunicazione HC dei più piccoli; • emotion detection • domotica • macchine della verità • navigare-manipolare ambienti virtuali • comunicare in video conferenza; • tele-insegnamento; • detecting di stati attentivi del guidatore 3 Modelli di sviluppo • • • • • • Hidden Markov model Particle filtering e Condensation, Macchine a stati finiti Optical flow Skin detector Modelli connettivisti 4 Dalla parte dell’utente… • I gesti servono 1. 2. • a comunicare a interagire con l’ambiente I gesti rappresentano un sottospazio dei possibili movimenti umani Esistono mapping molti-a-uno a partire dai gesti ai concetti, e viceversa Per questo, i gesti sono tipicamente • • – – ambigui non completamente specificati 5 Dall’utente alla macchina… • Gli strumenti hardware per la comunicazione NON sono i device tradizionali (tastiera,mouse) Al loro posto, sensori di vario genere I gesti sono • • – – staticipose recognition dinamici • comprensivi di 3 fasi ordinate 1. 2. 3. • 1 2 3 pre-stroke (preparazione) stroke (fase prettamente dinamica) post stroke (retrazione) Alcuni gesti sono sia statici che dinamici (vedasi il linguaggio dei gesti, in cui conta anche l’espressione del volto-statica) 6 …arrivando alla macchina. • I gesti sono dei segnali continui nel tempo – è necessaria una segmentazione temporale per suddividere un gesto nei suoi “mattoni semantici” – spesso, nelle interfacce meno potenti, è necessario codificare esplicitamente l’inizio ed il termine di un gesto 7 Il gesto per la macchina • Il significato di un gesto dipende da: – informazione spaziale: dove occorre – informazione di cammino: • • la traiettoria disegnata, la velocità/accelerazione impressa – informazione simbolica: il segno composto – informazione contestuale 8 Il gesto per la macchina • • L’acquisizione di un gesto dipende dal sensore utilizzato Ogni sensore è caratterizzato da – – – – – – accuratezza risoluzione latenza range di moto comfort costo 9 Il gesto per la macchina (2) • • Quanto più un sensore è invisibile, tanto migliore sarà l’interazione CV-based HCI: mira ad eliminare qualsiasi “wearable” sensor, sostituendoli con dei sensori in grado di captare a distanza i gesti – telecamere mono/stereo 10 CV-based HCI per il riconoscimento di gesti • Le tecniche esistenti si dividono per: 1. 2. 3. 4. 5. Numero di camere usate La loro velocità e latenza L’ambiente di acquisizione il grado di assenza di sensori Le feature video utilizzate (edge,regioni,silhouette,istogrammi) 6. La rappresentazione del soggetto acquisito (2D/3D) 7. Dinamicità o staticità dei gesti acquisiti 11 Everywhere Display (IBM) Figure 1: Interactive store application 12 Example Gestures Pictographic gestures Deictics rectangular shape triangle shape round shape Kinetographic gestures Metaphoric gestures rotate move-up down move-right move-left move-far come-closer fixation delete or cancel 13 Template temporali • Rappresentazioni del movimento – sono immagini 2D che rappresentano moto (nel 3D) – dipendenti dalla posa del soggetto – i template possono essere pensati come punti in uno spazio ad alta dimensionalità • Si può eseguire clustering (kmeans), classificazione (k-nn), utilizzando un dataset di training opportunamente costruito – Piu’ veloci da calcolarsi dell’optical flow (template ricorsivi), meno precisi • Assunzioni – La scena è statica, oppure facilmente sottraibile – I movimenti delle telecamera possono essere rimossi 14 Template temporali (2) • Due tipologie di template temporali, descriventi – dove – è occorso moto nella scena • MEI – Motion Energy Image – come – il moto si è sviluppato nella scena • MHI – Motion History Image 15 Motion Energy Image dove il movimento è occorso… 16 Motion Energy Image (2) • Nota che: – Se τ è molto grande, tutte le differenze si accumulano, ed il template diventa meno informativo – τ deve essere scelto sapendo a priori la durata media delle azioni. 17 Motion Energy Image (3) • Lievi cambiamenti nell’orientazione del soggetto mutano anche il rispettivo template. • Per una data azione è quindi consigliabile costruire un set di template di training acquisiti sotto varie orientazioni (un’acquisizione ogni 30 ) 18 Motion History Image • L’intensità di un pixel rappresenta la storia temporale in quel pixel • I movimenti più recenti sono più chiari 19 Motion History Image (2) • Si utilizza ancora una finestra temporale di grandezza τ - movimenti più vecchi di τ vengono ignorati. • Si utilizza un operatore di decadimento lineare: Nota che MEI può essere calcolata a partire da MHI valutando tutti i pixel il cui valore è >0 20 Template temporali - Training • • 7 7 Un’istanza di azione = MEI , MHI Per creare un classificatore di una azione si raccolgono più istanze di training di un unica azione, e si determina θ μ, Σ con 2 MEI ,1 Σ 0 0 0 0 2 MEI , 2 0 0 0 0 0 0 0 0 2 MHI , 7 21 Template temporali - Training • Dopodichè: MEI , MHI 7 7 – Classificazione Maximum Likelihood • In alternativa: – KNN sui punti con etichette – PCA sulla singola classe + KNN 22 Momenti • Descrivono il contenuto (meglio, la distribuzione) di un’immagine rispetto agli assi cartesiani p M p ,q q i( x, y ) x y dxdy dominio continuo D p M p ,q i ( x, y ) x y x M 0, 0 M 0,1 , M1,0 q dominio discreto y area dell’oggetto (nel caso di immagine binaria) centroide 23 Momenti • I momenti non sono invarianti alle trasformazioni geometriche – Invarianza alla traslazione – momenti centrali ~c M p ,q i ( x, y )( x x) p ( y y ) q dxdy dominio continuo D M pc ,q i ( x, y )( x x) p ( y x x M 1, 0 M 0,0 ,y y)q dominio discreto y M 0,1 coordinate del centroide M 0,0 24 Momenti • I momenti centrali fino al terzo ordine sono: • Si può dimostrare che 25 Momenti – Il significato dei momenti non è intuitivo, ma combinando opportunamente i momenti si riescono ad ottenere quantità intuitive. Per esempio: Matrice di covarianza associata all’immagine 26 Riconoscimento di gesti della mano • Permette di realizzare interfacce – – • Per la manipolazione tridimensionale di modelli CAD Per l’entertainment Analizziamo una tecnica per l’analisi di gesti statici 27 Freeman, W.T., Beardsley, P.A., Kage, H., Tanaka, K., Kyuman, C. and Weissman, C., "Computer Vision for Computer Interaction", ACM SIGGRAPH, August 1999 (TR1999-036) Istogrammi d’orientazione – Una volta riconosciuta una forma, risulta sicuramente utile capirne l’orientazione • – Hand recognition Istogrammi d’orientazione • Robusti a – – – (leggere) variazioni di scala traslazione luminosità • In pratica, si valutano le orientazioni degli edge locali, in locazioni puntuali, tramite • Le orientazioni vengono quantizzate in N valori, in un vettore 28 Istogrammi d’orientazione – – L’i-esimo elemento di mostra gli elementi di rotazione (x,y) con angolo [ , ] La costruzione di è – – Di solito, N = 36 Distanza Euclidea + KNN per la classificazione 29 Istogrammi d’orientazione - esempio 30 Istogrammi d’orientazione problemi Stesso gesto – differente orientazione Risposta differente Differente gesto – stessa orientazione Risposta simile Predominio dell’oggetto di cui si misura l’orientazione Bassa sensibilità 31 Sulla qualità dei classificatori – – Come scegliere un classificatore tra una gamma di disponibili? Nel caso di • • – – Soluzione: la curva ROC (Receiver Operator Characteristics) Nel momento in cui le soglie sono più di una, si possono valutare configurazioni di soglie • – un’unica soglia T da settare un problema di classificazione binaria, come scegliere la soglia “migliore”? dispendioso Si basa sul concetto di falsi(veri) positivi e negativi 32 Piano ROC – In letteratura • • T sensibilità = veri positivi stimati/tutti i positivi specificità = veri negativi stimati/tutti i negativi T T T T T T T T T T 33 Curva ROC (2) • T T 34 Scegli il classificatore • • Concavità sempre rivolta verso il basso 35 Scegli la soglia • Il valore di soglia migliore è quello – – che sta sulla curva ROC più in alto a sinistra 36 Michael J Jones & James R Rehg, “Statistical Color Models with Application to Skin Detection” Skin detection • Ossia creare un classificatore in grado di individuare nell’immagine la pelle umana • Il colore è un ottimo indizio usato nella classificazione di gesti (principalmente della mano), detection di volti – Statica: semplice alternativa o complementare all’analisi di forme – Dinamica: contribuisce a scremare falsi positivi della sottrazione del background • Esistono ricerche esaurienti sulla statistica del colore della pelle 37 Metodologie di skin detection • Metodi pixel-based – Classifica ogni pixel come pelle/ non pelle indipendentemente dai vicini. – I metodi basati sul colore ricadono in questa categoria • Metodi region-based – Si cerca di studiare la statistica di forma,tessitura che permette di individuare la pelle – Spesso vengono usati in associazione ai pixel-based 38 Metodi pixel-based • • • • • • Veloci Robusti a variazioni geomtriche delle porzioni di pelle Robusti alle occlusioni parziali Robusti ai cambi di risoluzione Eliminano la necessità di effettuare pesanti operazioni di tracking Studi statistici mostrano che l’uomo hanno delle colorazioni tipiche, è facilmente riconoscibili dall’uomo 39 Condizioni da valutare – – – – – – – – Possono essere separati i colori della pelle da quelli della nonpelle? L’illuminazione cambia nel tempo I toni della pelle cambiano fortemente da individuo a individuo Dispositivi di acquisizione differenti mostrano lo stesso individuo con colorazioni differenti Il movimento della telecamera-dell’oggetto posso causare blurring sporcatura dei colori. Le ombre influiscono sul colore Che spazio colore utilizzare? Come modellare il colore della pelle? 40 Scelta dello spazio colore – • • • • • • • – • Sono stati valutati vari spazi colore RGB RGB normalizzato HIS, HSV, HSL TSL YcrCb colori percettivamente uniformi – CIELAB, CIELUV – YES, YUV, YIQ, CIE-xyz altri ed i risultati ottenuti non sono differenti in maniera rilevante ([3] Albiol et al, “optimum color spaces for skin detection”) Per ogni spazio colore è possibile costruire un classificatore specializzato ([2]D.Zarit, “Comparison of five color models in skin pixel classification”) Meglio, la separabilità tra lo spazio dei colori della pelle e quello dei colori non-pelle è indipendente dallo spazio colore utilizzato 41 Metodo di modellazione dello spazio colore • Non parametrico – Stima la distribuzione del colore della pelle da un set di dati di training senza estrarre un modello esplicito (niente parametri) – – • Modello ad istogramma Classificatore di Bayes Parametrico – Studia dei parametri da un dataset di training – Modello gaussiano 42 Analisi dello spazio colore non parametrica • Rehg e Jones hanno usato 18,696 immagini per creare un modello statistico del colore • La probabilità di un colore è • La densità dei colori è addensata attorno la linea del grigio e piccata maggiormente sul bianco che sul nero 43 Distribuzioni marginali - considerazioni •Esiste una deviazione nella distribuzione verso il vertice rosso del cubo •Il 77% dei possibili colori RGB a 24 bit non sono mai stati incontrati (cioè l’istogramma è sparso). •Il 52 % di pagine web ha immagini (non pornografiche) di persone Deviazione 44 Modello della pelle •Usando solo i pixel (80.3 milioni!) etichettati come pelle, si è creato un modello della pelle. Deviazione! 45 Modello della non-pelle La deviazione rispetto al modello globale è diminuita 46 Classificazione • Si utilizza un semplice classificatore bayesiano dove • Il classificatore funziona via soglia, ossia • La soglia è stata decisa dopo l’analisi della curva ROC. • Il numero di bin dell’istogramma è 32. 47 Risultati • Accuratezza: 88% (con soglia selezionata laddove i falsi positivi sono uguali ai falsi negativi sulla curva ROC) • Gli errori si riscontrano in zone altamente sature o affette da ombra • Il classificatore in questo caso fallisce perchè colori saturi o in ombra sono sovrapposti ai colori che appartengono al modello del colore – non pelle, quindi non sono discriminanti 48 Analisi ROC per il numero di bin dell’istogramma 49 Analisi ROC per il numero di bin dell’istogramma • Classificatori basati su istogrammi funzionano meglio di rappresentazioni parametriche (gaussiane), perché in tal caso le sovrapposizioni tra spazi colore sono maggiori 50