Facoltà di Scienze MM. FF. NN.
Università di Verona
A.A. 2011-12
Teoria e Tecniche del Riconoscimento
Principal Component Analysis,
Metodo di Fisher
Marco Cristani
Teoria e Tecniche del Riconoscimento
1
PCA
• Il dato = un vettore
N-dimensionale di
valori di pixel
• Supponiamo N=2
dati = punti 2D
Come posso
descrivere in modo
compatto questi M
punti?
• SOL 1: Con un punto (vettore) solo, che
minimizzi la distanza media quadratica con tutti
i pti
M
argmin J 0 (x ) x
(0)
x
(0)
(0)
x
(k ) 2
k 1
• Soluzione: il vettore media
1
m
M
M
(k )
x
k 1
2
PCA
• SOL2: Con una retta di proiezione, che minimizzi la distanza media
quadratica con tutti i pti
• In questo caso useremmo una dimensione per descrivere i dati (la
posizione sulla retta)!
Alcune vanno bene
...
altre no.
• Supp. una retta di
intuitivamente
proiezione nello
spazio
3
PCA
• Per convenienza, imponiamo passaggio dalla media, e specifichiamo
quindi i punti della retta come
x
(k )
x (k )
ma e
(k )
a (k )
x1 m1
e1
x m a e
2 2
2
x2
e
m
x1
• Troviamo quindi i coefficienti a ( k ) k 1... M che minimizzano la distanza
quadratica
argmin J1 a
a
(k )
k 1...M
(k )
k 1... M
M
,e m a e x
... a ( k ) e' x ( k ) m
(k )
(k ) 2
k 1
4
PCA
• Sostituendo a ( k ) e' x ( k ) m in J1 a ( k )
J1 e , ossia
k 1... M
, e otteniamo
Scatter matrix ≈ mat. di covarianza
M
J1 e e'Se x
(k )
m
2
S x ( k ) m x ( k ) m '
M
k 1
k 1
• Minimizzare J1 e significa massimizzare e'Se tenuto conto che
e 1 , via moltiplicatori di Lagrange; ossia
u e'Se e'e 1
A conti fatti:
1. e deve essere autovettore;
2. Poiché
• Minimizzo;
u
2Se 2e 0
e
Se e
e'Se e'e
deve essere massimo
5
Esempio
• La matrice di covarianza è
0.617 0.615
S
0
.
615
0
.
717
• Ottengo 2 autovettori (e autovalori): quale prendo?
0.678
0.735
x2
e( 2)
e (1)
0.735
0.678
( 2) 1.284
0.049
(1)
x1
6
Esempio - osservazioni
0.617 0.615
• La matrice di covarianza S
è simmetrica, reale
0.615 0.717
gli autovettori {e} sono ortogonali, formanti una base per lo spazio N
dimensionale
0.735
e1
0
.
678
1 0.049
0.678
e2
0
.
735
2 1.284
gli autovalori più grandi si
hanno nelle direzioni di
massima dispersione dei dati
x2
x1
7
Esempio - osservazioni
• I coefficienti
ai( k ,) per i =1,...,N, sono le componenti del punto
x (k )per la base trovata
(k )
1
a
x (k )
a2( k )
m
D
• Quindi un punto può essere scritto come
x ( k ) m ai( k )ei
i 1
8
Da PCA ad eigenfaces
• Dato un gruppo di punti, ho trovato la base che descrive lo scattering
dei punti
• Ogni punto puo’ essere mappato tramite i componenti della base
(numero componenti = numero dimensioni N)
• Usare meno componenti (le componenti principali) permette di
proiettare i punti in un sottospazio altamente informativo riduzione
della dimensionalità dei punti
• Ora passiamo alle facce (...punti!)dataset di M facce, N dimensioni
x
(1)
x1(1)
(1)
x
2
(1)
xN
x
( 2)
x1( 2 )
( 2)
x
2
( 2)
x N
…
x
(M )
x1( M )
(M )
x
2
(M )
xN
N.B.:
di solito,
M<<N
9
Da PCA ad eigenfaces (2)
• Preprocessing – Le immagini devono contenere esclusivamente facce (no outliers)
– Le immagini devono essere ragionevolmente prive di rumore
– Le facce devono avere la stessa dimensione riscalamento
– Stesse condizioni di illuminazione, o compensazione
– Non ci deve essere sfondoritaglia le facce, catturale su sfondo neutro
(alternativa: background subtraction)
– In maniera automatica, utilizzo di un metodo di face detection
x (1)
x1(1)
(1)
x
2
(1)
xN
x ( 2)
x1( 2 )
( 2)
x
2
( 2)
x N
…
x( M )
x1( M )
(M )
x
2
(M )
xN
10
Eigenfaces - proiezioni
• Dopo aver ricavato gli autovettori {e} (eigenfaces) dalla matrice di
covarianza S, calcolo le componenti {a} (o proiezione) per la faccia x
e'1 x m, e'2 x m,..., e' N x m ed ho
a1
x m a1e1 a2e 2 ,...,aN e N
aN
a2
• Le ricostruzioni, g, possono avvenire anche nei sottospazi descritti dalle
eigenfaces con eigenvalues più grandi – riduzione dimensionalità
x
m + a1e1 a2e 2 a3e3 a4e 4 a5e5 a6e6 a7e7 a8e8
n.
coeff. 10
20
30
50
70
gx
… aN e N
82
11
x
Eigenfaces
• Autovettori {e} (eigenfaces): in pratica?
e1
e2
e3
...
12
Eigenfaces - problema
x1(1)
(1)
x
• Sia A 2
NxM
(1)
xN
x1( 2)
x2( 2)
xN( 2)
... x1( M )
(M )
... x2
pertanto S = AA’
NxN
(M )
... xN
• Con un’img 256 x 256 ho
S
: problemi di overflow!
65536 65536
• Trick: calcolo gli autovettori di
A' A , ossia ~
e , tenuto conto
M M
che di solito si usano 20-30 eigenfaces e che
A' A~
e ~
e AA ' A ~
e A ~
e
SA ~
e A ~
e
quindi
e A~
e
13
Eigenfaces - note
•
Gli M autovalori di A’A corrispondono agli M autovalori più grandi di S
(così come i corrispondenti autovettori)
14
Eigenfaces - algoritmo
1.
2.
3.
1
Sottraggo ad ogni immagine x(k) ,k=1...M, la media m
M
(k )
~
A
ottenendo i vettori x
da cui costruisco la matrice
Calcolo M autovettori ~
ei i 1,..., M di A' A
M M
4.
x
(k )
k 1
NM
formando la matrice
Ricavo gli M autovettori più grandi di S = AA’, ossia e i
o in forma matriciale
M
A~
ei
V
M M
U A V
N M
N M M M
Ricavo i corrispondenti componenti (o coeff. di proiezione)
o in forma matriciale
ai( k ) e'i ~
x (k )
ω
(k )
M 1
(k )
U' ~
x
M N
N 1
15
Proprietà chiave della rappresentazione ad
eigenfaces
Date
x1 , x 2 usate per costruire l’eigenspace
x1
ω1è la proiezione nell’eigenspace dell’img
ω 2è la proiezione nell’eigenspace dell’img
x2
• 2 immagini
•
•
allora,
|| ω2 ω1 || || x2 x1 ||
ossia, la distanza nell’eigenspace è approssimativamente
uguale alla distanza tra due immagini.
16
Riconoscimento con le eigenfaces
1.
Analizza il database d’immagini etichettato (<volti,identità>)
TRAINING
a)
b)
c)
d)
Esegui PCA — calcola le eigenfaces, formo U
Calcola i K coefficienti per ogni immagine x(k) k=1,...,M
Calcola le M proiezioni nello spazio delle eigenfaces ω(k) k=1,...,M
Calcolo la soglia
per j, k 1,..., M
RICONOSCIMENTO
max ω ( j ) ω ( k )
2.
Data una nuova img (da riconoscere) x,
a)
b)
c)
Ne sottraggo la media del dataset di training m, ottengo
Proietto, ossia calcolo le K componenti
~
x ω a1 , a2 ,..., aK '
ossia
~
x
ω U' ~
x
Calcolo il set di distanze
(k ) 2
ω ω( k )
2
per k 1,..., M
17
RICONOSCIMENTO
Riconoscimento con le eigenfaces
3.
Ricostruisco la faccia usando eigenfaces e componenti
K
~
g ai ei oppure ~
g Uω
i 1
4.
Calcolo la distanza tra la faccia di partenza incognita e la ricostruzione
~
g~
x
2
5.
Se
•
2
non è una faccia
•
e (k ) , k 1,..., M è una nuova faccia
•
e min ( k )
è una faccia conosciuta, la kbest-esima, dove
k best argmin ( k )
k
18
Dettagli pratici
• Quanti eigenvector usare?
• Controlla il decadimento degli
eigenvalues i
• Dati “buoni” ossia trattabili hanno
poche dimensioni ad alta varianza
• Nel caso in cui tutti gli N autovalori
sono stati calcolati per un dataset
N-dimensionale vale
i=
K
M
K
covered
i 1
i
N
j 1
j
19
Problemi eigenfaces
•
Illuminazione: stessi soggetti con
differente illuminazione risultano lontani
nello spazio delle eigenfaces
Pose differenti :le componenti di un
volto frontale non servono per un
riconoscimento con profili
Allineamento differente
Espressione facciale differente
Outlier
•
•
•
•
–
–
Sample outliers = non facce
Intra-sample outliers = facce affette da
rumore
20
Problemi eigenfaces (2)
•
•
Funzionale solo per la rappresentazione di dati appartenenti ad
un’unica classe
Non separano classi differenti
21