1
Complementi di Interazione Uomo-Macchina
Dr. Marco Cristanie-mail: [email protected]: Stanza 47, Ca’ Vignal 2
Università di VeronaFacoltà di Scienze MM.FF.NN.
Corso di Laurea Specialistica in Sistemi Intelligenti e Multimediali
Lezione 4 – Expression recognition
2
Introduzione• Con espressione facciale si intende il cambiamento della
superficie del volto in risposta ad uno stato emotivointerno.
• L’analisi di espressioni facciali è stato un topic di ricercaattivo per gli studiosi dal lavoro di Darwin nel 1872.
• Suwa et al. presentò nel 1978 un sistema diriconoscimento delle espressioni facciali tracciando la traiettoria di 20 punti notevoli di una faccia in una video sequenza.
3
Introduzione (2)• L’analisi di espressioni facciali si riferisce a sistemi
automatici che analizzano e riconoscono in modoautonomo movimenti e configurazioni facciali particolari.
• Nella Computer Vision, spesso l’analisi di espressionifacciali viene confusa con l’analisi di emozioni (emotion analysis).
• L’emotion analysis è un compito molto più difficiledell’analisi di espressioni facciali, in quanto vienerichiesta una conoscenza di (più) alto livello. Per esempio, sebbene le espressioni facciali possanosignificare emozioni, esse non ne sono l’unicamanifestazione, vedasi riconoscimento di gesti.
4
Introduzione (3)• L’analisi di espressioni facciali è applicabile, tra
le altre, a molte aree quali: – comunicazione paralinguistica– psicologia clinica, – psichiatria, – neurologia, – identificazione del dolore, – Human-Robot interaction – ambienti intelligenti,– interfacce multimodali human-computer (HCI).
5
Schema di sistema –acquisizione
• Due tipi di input:– immagini statiche – sequenze
• più informative, mantengono informazione sull’evoluzione dell’espressione
• In genere, si utilizzano livelli di grigio, anche per questioni computazionali– trend verso l’elaborazione a colori
Pre-pro.
Feat.Extr. Class. Post-
ProcRawdata Label
Acq.
6
Schema di sistema –pre-processing
• Operazioni tipiche – Rimozione rumore– Allineamento
• Di solito, occhi e bocca come punti di riferimento
– Segmentazione• Per eliminare lo sfondo
Pre-pro.
Feat.Extr. Class. Post-
ProcRawdata Label
Acq.
7
Schema di sistema
• Rappresentazione– Feature based– Olistica
Pre-processing
Featureextraction Classification Post-
processingRaw data Label
Acquisizione
8
Schema di sistema –feat. Extraction|Classif.
• Si convertono feature in rappresentazioni a più alto livello
• Di vario genere, serve per ridurre la dimensionalità dei dati
• Differenti tipologie di classificazione– Per lo più statistiche
Pre-pro.
Feat.Extr. Class. Post-
ProcRawdata Label
Acq.
Pre-pro.
Feat.Extr. Class. Post-
ProcRawdata Label
Acq.
9
Schema di sistema –classificazione
• Metodi di classificazione– K-nearest neighbor, – multinomial logistic ridge regression (MLR), – hidden Markov models (HMM), – Support Vector Machines
• Criteri di classificazione– frame- based
• usa il frame corrente con o senza un immagine di riferimento(l’immagine neutra)
– sequence-based• usa informazione temporale per riconoscere le espressioni di uno o
più frame
10
Schema di sistema –Classificazione
• Quali sono le classi? Due tipologie
1. Facial Action Units (FAU)– Compongono il Facial Action
Coding System (FACS), Ekman and Friesen, 1978, tutt’oggi utilizzate nelle scienze comportamentali
– Sono 46 classi di derivazione anatomica e permettono la codifica di una qualunque azione facciale (quindi si parla di sequenze come input)
– In pratica si basano sui piùpiccoli visibili movimenti muscolari del volto.
– Ogni FAU è indirizzata con un indice numerico.
Pre-pro.
Feat.Extr. Class. Post-
ProcRawdata Label
Acq.
11
Schema di sistema –Classificazione (2)
– Trenta FAU sono anatomicamente relazionate alla contrazione di specificati muscoli facciali.
– Come riconoscere manualmente i FAU• Osservando i filmati di
facce in slow-motion, con utenti esperti che etichettano segmenti di sequenza.
Pre-pro.
Feat.Extr. Class. Post-
ProcRawdata Label
Acq.
12
Schema di sistema –Classificazione (2)
– Tramite metodi di deconvoluzione, èpossibile stimare il peso di varie AU• Independent Component
Analysis (ICA)
Pre-pro.
Feat.Extr. Class. Post-
ProcRawdata Label
Acq.
13
Schema di sistema –Classificazione (2)
2. Prototypical face expressions - 7 espressioni di base, proposte da Drawin– Il loro riconoscimento è il target principale dei sistemi di
expression recognition– Non rispecchiano l’ordinaria mimica facciale dell’uomo
• Si hanno misture di espressioni• Le espressioni non sono così accentuate
Pre-pro.
Feat.Extr. Class. Post-
ProcRawdata Label
Acq.
Protypical facial expression. 1. disgusto 2. paura 3. gioia 4. sorpresa 5. tristezza 6. rabbia
14
Schema di sistema –Post processing
• Mirato ad aumentare le performance di riconoscimento– Euristiche basate sul dominio dei dati– Fusione di classificatori
Pre-pro.
Feat.Extr. Class. Post-
ProcRawdata Label
Acq.
16
Sistemi di riconoscimento – Analisi di Optical Flow
– Motion flow: proiezione 2-D delle velocità dei punti immagine, indotta dal movimento relativo tra la camera e la scena
– Non direttamente osservabile da un’immagine
– Numerosi metodi per il calcolo del motion flow• Horn e Schunk• Kanade• Basato su correlazione
17
Sistemi di riconoscimento – Analisi di Optical Flow
– Motion flow: proiezione 2-D delle velocità dei punti immagine, indotta dal movimento relativo tra la camera e la scena
– Non direttamente osservabile da un’immagine– Optical flow: campo vettoriale nell’immagine che
trasforma un’immagine nella successiva, all’interno di una sequenza
+ =
frame #1 frame #2flow field
18
Motion Field
ZX
Y
or
ir'f
Proiezione prospettica:
• Stimiamo la velocità di un punto che si muove nella scena
Zrrr⋅
=o
oif '
1
( ) ( )( )
( )( )22 ''
ZrZvr
ZrrZvvZrrv
⋅××
=⋅
⋅−⋅==
o
oo
o
ooooii ff
dtd
Motion field
toδv
tiδv Velocità del punto della scena:
Velocità del punto proiettato:dtd o
orv =
dtd i
irv =
19
Optical Flow
• Più esattamente, moto di pattern colorati nell’immagine
• Idealmente Optical flow = Motion field
21
Optical Flow – definizione
• Come stimare il movimento del pixel dall’img H all’img I?– Mediante corrispondenze tra pixel
• Dato un pixel in H, controlla in pixel vicini dello stesso colore in I• Assunzioni chiave per un vincolo
– Invarianza cromatica: un punto p in H appare uguale in I• Per img a ldg, ciò si chiama brightness constancy• associato a questo c’è il vincolo di Movimento lieve i punti
non si spostano di molto
( )tyxE ,, ( )tttvytuxE δδδ +++ ,,
22
Vincolo dell’invarianza cromatica
( ) ( )tyxEtttvytuxE ,,,, =+++ δδδ
( ) ( )tyxEmgttEt
yEy
xExtyxE ,,...,, =+
∂∂
+∂∂
+∂∂
+ δδδ
0per limite il impongo e elimino , per divido →tE(x,y,t)t δδ
0=∂∂
+∂∂
+∂∂
tE
yE
dtdy
xE
dtdx
0=++ tyx EvEuE
Taylorcon espando
vincolodi equazionel' ottengo
yx EyEE
xEv
dtdyu
dtdx
=∂∂
=∂∂
== ; ; ;
23
Vincolo dell’invarianza cromatica
– possono essere calcolatityx EEE ,,
k
k+1
i i+1
j
j+1
time
x
)](
)[(41
1,1,,1,1,,,,
1,1,1,1,11,,1,,1
++++
++++++++
+++−
+++=
kjikjikjikji
kjikjikjikjix
EEEE
EEEEx
Eδ
y
24
Vincolo dell’invarianza cromatica
– Quand’è che sono uguali a 0?
– In prossimità di un edge verticale o orizzontale– In tal caso, perdo un componente di velocità (u e v
rispettivamente)
yx EE ,
– Il componente di flusso nella direzione del gradiente viene determinato correttamente
– Il componente di flusso parallelo al gradiente viene perso
25
Vincolo addizionale – metodo di Horn e Schunk 81
• Decido di formulare un errore di stima dell Optical Flow:
• Aggiungo un vincolo addizionale
• Vincolo di Smoothness :
Usualmente il motion field varia in maniera “smooth” nell’imgPenalizzo quindi variazioni di velocità brusche:
• devo quindi trovare (u,v) per ogni punto immagine che minimizzi:
dydxEvEuEe tyimage
xc2)( ++= ∫∫
dydxvvuue yxyximage
s )()( 2222 +++= ∫∫
cs eee λ+= peso
26
Vincolo addizionale in praticaConsidero il pixel
• Penalizzazione dovuta allo Smoothness Constraint:
•Penalizzazione dovuta all’invarianza cromatica:
• Si cerca in pratica il set di che minimizzi:
∑∑ +=i j
ijij cse )( λ
])()(
)()[(41
2,1,
2,,1
2,1,
2,,1
jijijiji
jijijijiij
vvvv
uuuus
−+−
+−+−=
++
++
2)( tij
ijyij
ijxij
ij EvEuEc ++=
}{&}{ ijij vu
),( ji
27
Discrete Optical Flow Algorithm• Differenzio w.r.t e setto tutto a 0:
• sono le medie di attorno (3*3) al pixel
e0)(2)(2 =+++−=
∂∂ kl
xkltkl
klykl
klxklkl
kl
EEvEuEuuue λ
0)(2)(2 =+++−=∂∂ kl
ykltkl
klykl
klxklkl
kl
EEvEuEvvve λ
klkl uv &
klkl uv & ),( lk),( vu
klxkl
yklx
klt
nkl
kly
nkl
klxn
klnkl E
EEEvEuE
uu])()[(1 22
1
++
++−=+
λ
klykl
yklx
klt
nkl
kly
nkl
klxn
klnkl E
EEEvEuE
vv])()[(1 22
1
++
++−=+
λ
Regola iterativa:
28
Introduzione (2)• In pratica, la velocità in un punto è un compromesso tra
la velocità calcolata puntualmente e nel vicinato
• Problemi: come fare quando la velocità è alta nell’img? abbassa la risoluzione
image Iimage H
u=10 pixels
u=5 pixels
u=2.5 pixels
u=1.25 pixels
30
Analisi di Optical Flow - Donato 99
– Metodo semplice, basato su correlazione
– Tre immagini almeno, ai tempi
– Per ogni pixel P(x,y) dell’img centrale It0• considero una finestra 3x3 Wp
centrata su P(x,y)• considero una finestra di ricerca
5x5 Ws centrata su P(x,y) sulle altre 2 img
•
t0
t0 +1
t0 -1
P(x,y)
Wp
Ws
Ws
31
Sistemi di riconoscimento - Donato 99
• calcolo la correlazione R-1 e R+1 tra Wp e le finestre corrispondenti centrate su ogni pixel di Ws localizzate su It0-1e It0+1, rispettivamente
• sommo i contributi delle due correlazioni su una finestra 5x5, centrata su P(x,y) nell img It0, ossiaR = R-1 + πR+1 , π stimata empiricamente
• Calcolo le componenti di optical flow
32
Sistemi di riconoscimento - Donato 99 • per ogni espressione ho un set di C
immagini per espressione (C dipende dal rate di acquisizione)
• trasformo ogni immagine in raster scan e concateno le immagini, formando un vettore f
• creo un set di training, popolo uno spazio (altamente dimensionale) con vettori di training ft per ogni espressione
• eseguo classificazione via K-N-N di un nuovo vettore fn valutando come distanza
33
Sistemi di riconoscimento – Estensioni su Donato 99
• in alternativa alla concatenazione, i vettori di flow possono essere modellati attraverso Modelli Markoviani a stati nascosti (Hidden Markov Models- HMM)
• in questo modo, si modella in modo più flessibile l’evoluzione tra immagini di flow
34
Essa-Pentland 95• Rappresenta l’evoluzione delle attivazioni dei
muscoli facciali durante l’espressione• Per il riconoscimento, eseguei match con
template costruiti da esempi di training• Per stimare l’attivazione dei muscoli:
– Registra un’immagine con una mesh canonica– Attraverso la mesh, localizza la posizione dei
muscoli del volto– Stima l’attivazione dei muscoli attraverso l’optical
flow– Correggi la stima ottenuta grazie alla mesh
35
Registrazione dell’immagine con una mesh
• Trova gli occhi, il naso e la bocca• fitta il modello 3D ai punti• Usa il modello 3D per estrarre ulteriori feature sulla faccia
36
Localizzazione dei muscoli facciali• Una volta che la faccia è registrata con la mesh, si possono
utilizzare atlanti medici per mappare le attaccature dei muscoli• 36 muscoli modellati; 80 regioni facciali
37
Correzione del flusso• Viene calcolata iterativamente• Usa il flusso per valutare l’attivazione di certi muscoli• Correggi le attivazioni con la mesh
38
Motion energy template• Il motion (optical) field
viene utilizzato sul modello, non sulla faccia direttamente
• Si costruisce un template che rappresenta quanto movimento è avvenuto sul volto – Il metodo crea un template
che modella, con opportune semplificazioni, anche il tempo Motion Energy template
per il sorriso
High
Low
39
Motion energy template• La classificazione avviene semplicemente con
esempi di training più classificazione K-N-N
Smile Surprise Anger Disgust Raise brow
High
Low
40
Eigen actions
• Si basano su δ-immagini, ossia differenze di immagini di una sequenza rispetto ad un’immagine neutra
• Dato un set di immagini rappresentanti una particolare action unit, si esegue PCA, analogamente a quanto accade con le eigenfaces
• Similmente, esistono le fisheractions• Approcci basati su PCA applicata a feature
locali danno adito alle eigenfeatures
Prime 4 componenti per una AU superiore
Prime 4 componenti per una AU inferiore
Eigenfeatures
41
Trend di ricerca recenti
• Le FACS non sono esaustive: è nex quindi trovarenuove feature facciali che codifichino nuoveespressioni da riconoscere
• Alternativamente, si va verso il riconoscimento diFACS combinate, piuttosto che riconoscere pochi (e improbabili) prototipi, almeno per quanto riguarda il2D
• Irrobustimento dei sistemi esistenti• Sistemi real-time• 3D expression recognition
42
3D expression recognition • Con le moderne tecnologie di acquisizione,
disporre di modelli 3D raffiguranti volti non è piùincredibile
• Si apre così il campo del riconosciento 3D di espressioni
• Per ora, esistono metodi locali• Lavoro in fieri: Classificazione di espressioni
mediante Modelli Markoviani a stati nascosti
43
HMM-based recognition, idea • A spiral geodesic
pathway s is built around a set of salient point vi
• the spiral radius r is chosen w.r.t. the mesh size
• On this pathway, local features are extracted, forming a multidimensional array s(vi)
44
HMM-based recognition, idea
• The array becomes the training data for a 1D Gaussian HMM• The number of HMM’s states are decided automatically w.r.t. a Minimum
Description Length-based principle customized for HMM...• ...anyway, almost each HMM has 6 number of states!• Such description is robust to occlusions and changes in the mesh
decimation level
50% vertices offOriginal
HMM Viterbi path
45
Problemi aperti
• Che feature-algoritmo usano gli esseri umani per riconoscere le espressioni?
• E’ corretto/ragionevole analizzare sempre più finemente le espressioni?
• Come fare ad ottenere un ground-truth corretto?
• Esistono metodi per utilizzare al meglio l’informazione temporale?
• Ha senso integrare più modalità per riconoscere espressioni (audio+video)?
46
Risultati di classificazione
SVM, support vector machines; MLR, multinomial logistic ridge regression; HMM, hidden Markov models; BN, Bayesian network; GMM, Gaussian mixture model.
47
Expression Recognition – Ricadute
• Automotive– Produrre tecnologie in grado di
valutare l’emozione durante la guida
– finora: studi retrospettivi2007 C220 CDI (W204) 1982 190E (W201)
non professionistiBosch Proofing Ground Boxberg
(near Heilbronn)
Autobahn
Country road
Handling course
48
Misurazione di emozioni nei veicoliEMOTION
Subjectivecomponent
Expressivecomponent
Behavioralcomponent
Verbal report Driving dynamics
Physiologicalcomponent
Cognitivecomponent
Video/Audio-recording Measurement Verbal report
Facial expressions
Gestures
Changes in voice
ECG, EMG, EDAQuestioning during driving
Driving style and operator control action
Cognitive appraisal of the vehicle and the situation
49
Setup tecnico
driving dynamics
meterEREC glove
video camera
microphone
cell phonehandsfree set EREC
recording unit
50
Dettagli
Physiological measurement system EREC (skin resistance, heart rate, temperature)
Interviews and questionnaires after
driving each car
Video and audio recorder on the
back seat
Drivers were asked to “think aloud”
51
Facial Expression RecognitionInstitut für Informatik
Mercedes-Benz 190EMean expression of happiness: 4,2% Peak value: 15,0%
Mercedes-Benz C-Class 220Mean expression of happiness: 5,5% Peak value: 19,8%
0% = neutral face100% = maximum expression
52
Automotive - conclusioni• Vantaggi dei metodi testati
– Pervasivi– Collezione di dati continua– Collegamenti con studi psicologici
• Facial expression recognition– Difficile fittare il modello della faccia– Difficoltà nella classificazione– Problemi: cambiamento di luce e background, durante
il parlato diventa difficile il riconoscimento (falsipositivi)(ha senso farlo?)