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
•
•
–
–
staticipose 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