View
14
Download
0
Category
Preview:
Citation preview
Keypoint detector:
Scale Invariant Feature
Transform (SIFT)
David G. Lowe,“Distintive Image Features from
Scale-Invariants Keypoints”, International Journal of
Computer Vision, 2004
Outline
• Cosa è SIFT
• Overview dell’Algoritmo
• Applicazioni
• Per descrivere oggetti in immagini è utile determinare la
forma di ogni oggetto
• data l’immagine di un oggetto si possono determinare i
punti di interesse (KEYPOINTS), ovvero punti con un alto
contenuto di informazione.
• la forma di un oggetto può essere rappresentata/
caratterizzata da un insieme di keypoints.
• Invarianza a scala.
• Invarianza a rotazione.
• Invarianza a traslazione.
• Invarianza a illuminazione.
Un keyoint detector deve essere
stabile: forme uguali in immagini
diverse devono avere gli stessi
keypoint. Requisiti sono quindi:
• Determina i keypoints in una immagine e le caratteristiche
locali associate ad essi.
• I keypoints (e le caratteristiche associate) sono:
• Invarianti a traslazione rotazione e scala.
• Invarianti a cambiamenti di illuminazione e punti di vista.
Scale Invariant Feature Transform (SIFT)
Regioni in cui vengono calcolate le caratteristiche mediante SIFT
VANTAGGI DI SIFT
• STRUTTURA: le caratteristiche estratte da SIFT associano ai
keypoints le informazioni relative alla struttura locale di
intorni dei keypoints stessi. I keypoints da soli non fornirebbero
sufficiente informazione riguardo alla forma.
• LOCALITA’: le caratteristiche sono locali e quindi robuste a
rumore e occlusioni.
• ALTAMENTE DISCRIMINANTI: forme diverse hanno
keypoints e caratteristiche associate molto diverse.
• QUANTITA’: anche per oggetti piccoli vengono generate
molte caratteristiche. La forma viene esaustivamente
descritta.
• EFFICIENZA: la computazione delle caratteristiche è veloce.
Overview dell’algoritmo
• Costruire una rappresentazione in spazio-frequenza
• Tramite la funzione DoG (Difference of Gaussian).
• Localizzazione dei massimi e minimi (keypoints) nella
rappresentazione in spazio-frequenza.
• Eliminazione dei punti non stabili o non significativi.
• Determinazione dell’orientazione dei keypoints
• Una o più orientazioni per ogni keypoints.
Descrizione del keypoint e del suo intorno
• Si utilizzano gradienti locali dell’immagine.
Costruzione dello spazio multi scala
• La rappresentazione multi-scala di una immagine I(x,y) è definita
tramite la funzione
• Si ottiene applicando all’immagine I(x,y) il kernel di convoluzione
gaussiano a diverse scale
),(),,(),,( yxIyxGyxL
222 2/)(
22
1),,(
yxeyxG
Definizione di rappresentazione “multi scala” data da
Koenderink e Lindeberg (1984 e 1994)
Diversi livelli della rappresentazione multi-scala di una immagine
per diversi valori di scala = 0,2,8,32,64,128; a fianco sono
indicati i minimi locali
• L’individuazione di strutture in una rappresentazione multi
scala avviene tramite la convoluzione con gaussiane seguita
da filtri derivativi specifici adatti alla struttura da localizzare (ad es.: laplaciani per localizzare gli angoli e le regioni circolari)
• In SIFT i keypoints sono localizzati cercando gli estremi nella
funzione D ottenuta come Differenza di Gaussiane (DoG).
),()),,(),,((),,( yxIyxGkyxGyxD ),,(),,( yxLkyxL
SCELTA PERCHE’:
• Approssima bene 22G, il laplaciano della gaussiana
normalizzata con la scala 2 proposto da Koenderink, Lindeberg
• La normalizzazione del laplaciano con fattore 2 è richiesta per avere
invarianza rispetto alla scala (Lindeberg, 1994).
• I massimi e minimi di 22G producono le caratteristiche più efficienti
e stabili se comparati ad altre funzioni quali gradiente, hessiana, Harris
corner function (Mikolajczyk, 2002).
• Approssimando ∂G/∂σ con le differenze finite si ha che:
• Quando D si ottiene con scale che differiscono di un fattore
COSTANTE k, incorpora direttamente la normalizzazione di
scala con fattore σ2 che garantisce l’invarianza di scala.
GkyxGkyxG 22)1(),,(),,(
k
yxGkyxGG ),,(),,(G
k
yxGkyxG 2),,(),,(
Approssimazione con DoG del Laplaciano
della gaussiana normalizzata con la scala
k4σ
k3σ
k2σ
kσ
σ
Sotto campionamento + filtro G(x,y, 2σ)
Rappresentazione spazio-frequenza
Per passare alla ottava successiva si sottocampiona
l’immagine filtrata con gaussiana a scala 2σ
Immagini nella
rappresentazione spazio-
frequenza
…
first octave
…
…
second octave
…
third octave
…
fourth octave
…
VA
RIA
ZIO
NE
DI S
CA
LA
(fre
qu
en
za
)
VARIAZIONE DI
SPAZIO (sotto
campionamento)
Differenza di Gaussiane
UTILIZZO DI FILTRI GAUSSIANI
DIFFERENZA DI FILTRI GAUSSIANI
Mette in
evidenza le
alte
frequenze,
i dettagli
dell’immagine
Mette in
evidenza le
basse
frequenze,
sfoca
l’immagine
Localizzazione degli estremi o keypoint
• Ogni pixel dell’immagine (indicato con X) viene selezionato
solo se è un minimo o un massimo rispetto a un intorno 3x3
nella stessa immagine e nelle scale precedente e successiva.
DoG scale spaceMassimi e Minimi
Scelta del valore iniziale di σ
• Aumentando σ aumenta la robustezza, ma aumenta il
costo computazionale.
• σ = 1.6 è un buon tradeoff.
• Le dimensioni dell’immagine originale sono raddoppiate
mediante interpolazione lineare per ottenere la base della
piramide
• Esperimenti sulla stabilità dei keypoint (al variare di scala,
orientazione);
• Esperimenti sul numero numero di keypoint per immagine;
Localizzazione accurata dei keypoints mediante
fitting di una funzione quadratica
Localizzazione accurata dei keypoint
• Fitting di una funzione quadratica nell’intorno locale dei
keypoint 3D X=(x,y,) per ottenere la loro precisa
localizzazione.
• Si usa l’espansione di Taylor (traslata in modo che il keypoint
sia nell’origine, X è lo spostamento da valutare).
• Per trovare gli estremi pongo a 0 la derivata rispetto a X
ottenendo:
Ciò si ottiene risolvendo un sistema 3x3
DD2
12
ˆ
2
2
2
1)(
DDDD T
T
• Per risolvere approssimo le derivate con le differenze finite
• La soluzione è lo scostamento dal keypoints (origine della
espansione): se una delle sue dimensioni è > 0.5, il keypoint trovato
non è un estremo => si sposta il keypoint e si ripete il processo.
x
D
y
D
D
x
y
x
D
yx
D
x
D
yx
D
y
D
y
D
x
D
y
DD
2
222
2
2
22
22
2
2
4
)()(
1
2
2
,1
1
,1
1
,1
1
,1
1
2
,
1
,,
1
2
2
,
1
,
1
ji
k
ji
k
ji
k
ji
k
ji
k
ji
k
ji
k
ji
k
ji
k
DDDD
y
D
DDDD
DDD
• Si eliminano keypoint che corrispondono a regioni a basso
contrasto: non contengono informazione discriminante;
• usando equazione di prima:
• Se | D(X) | < 0.03, elimina il keypoint.
Si eliminano keypoint su picchi poco definiti o keypoint sui bordi:
curvature principali date dalla matrice hessiana:
• Calcola il rapporto delle curvature principali R=
• Se il R > (r+1)2/(r), elimina il keypoint (SIFT usa R=10).
Eliminazione dei keypoint meno significativi
XD
DDT
ˆ2
1)ˆ(
yyxy
xyxx
DD
DDH
2)()(
)(
xyyyxx
yyxx
DDDHDet
DDHTr
Trace(H)2
Determinante(H)
Estremi della
rappresentazione
spazio-frequenze
Rimozione dei
punti a basso
contrasto
Rimozione dei
punti sui bordi
Eliminazione dei keypoint meno significativi
Orientazione del keypoint (K) sulla base delle proprietà locali
• La scala K del keypoint è usata per selezionare l’immagine
gaussiana L(x,y,) con la scala più vicina
• Per ogni pixel (x,y) nell’intorno di K si calcola il modulo e
l’orientazione del gradiente:
))),1(),1(/())1,()1,(((2tan),(
))1,()1,(()),1(),1((),( 22
yxLyxLyxLyxLayx
yxLyxLyxLyxLyxm
Al keypoint K viene associata una orientazione al fine di
ottenere invarianza a rotazione.
• Ogni (x,y) viene pesata per m(x,y)
e da una finestra gaussiana
circolare con =1.5 K
• Istogramma diviso in 36 bins (per coprire i 360).
• Il picco dell’istogramma è l’orientazione del keypoint K
(orientazione dominante nell’intorno locale).
• Le altre orientazioni dominanti sono quelle che sono pari
a 80% della principale: per ognuna di esse viene creato
un keypoint con la propria orientazione e modulo.
• Se ho due picchi della stessa altezza ho due keypoint
uguali che differiscono solo per l’orientazione.
Istogramma delle orientazioni
80%
KEYPOINT CON ORIENTAZIONE E SCALA
Se si ruota e si scala l’immagine i keypoint persistono e
l’orientazione è la stessa.
• Ogni keypoint ha associate 3 informazioni: (x,y,θK, K)
• Posizione nell’immagine: serve a definire l’intorno
locale che contiene l’informazione rilevante;
• Scala dell’immagine in cui è stato determinato:
• serve a scegliere l’immagine Gaussiana L(x,y, K) da cui
estrarre le informazioni;
• Orientazione:
• serve ad ottenere un descrittore invariante a rotazioni;
DESCRITTORE DEL KEYPOINT
Contiene le informazioni locali di una
regione di interesse nell’immagine
Descrittore del keypoint K
• Per ogni pixel nell’intorno di K in L(x,y, K) computa
l’orientazione (x,y) e il modulo m(x,y) del gradiente.
• Ruota i gradienti e le coordinate degli elementi dell’intorno
in modo che l’orientazione del keypoint coincida con l’asse
x.
• Suddividi la regione in sotto-regioni e crea un istogramma
delle orientazioni per ogni sottoregione
• Si pesano le (x,y) con m(x,y) e con una finestra gaussiana
circolare con =1.5 K (TUTTO COME PRIMA!), cosìcche:
• si da meno importanza a quei gradienti che sono lontani
dal keypoint che è centro del descrittore;
• si evitano bruschi cambiamenti di orientazione dovuti a
un piccolo spostamento dell’intorno locale del keypoint.
Descrittore del keypoint
• L’intorno viene diviso in sottofinestre di NxN pixels e per
ognuna viene calcolato l’istogramma delle orientazioni (con P
orientazioni preferenziali).
• I risultati sperimentali migliori si hanno con finestre 4x4 e 8
orientazioni.
• Il descrittore è un vettore a 4x4x8 componenti.
• Normalizzazione del vettore a norma unitaria
• Per ridurre gli effetti di cambiamenti uniformi di
illuminazione
• Riduci a 0 tutti i valori sopra 0.2 e rinormalizza a norma
unitaria.
• Per ridurre gli effetti di cambiamenti non uniformi di
illuminazione
• 0.2 determinato sperimentalmente
• Riconoscimento di oggetti basato su IMMAGINI
• Si impara il modello dell’oggetto dall’immagine (o da un
insieme di immagini):
• si ottengono un insieme di caratteristiche dalle immagini;
• si crea una base dati di oggetti in cui ad ogni oggetto sono
associate le caratteristiche che lo descrivono.
Riconoscimento di Oggetti da immagini
Trovare i rasoi
IMMAGINE
Riconoscimento di oggetti
Un base dati di oggetti è composta
dai descrittori trovati da SIFT, per
ogni oggetto, in una (o più) sua
(sue) immagine.
Data una nuova immagine viene
applicato l’algoritmo SIFT per
trovare i keypoints e i loro
descrittori nell’immagine.
I descrittori più simili a quelli trovati
vengono cercati nella base dati
tramite l’algoritmo Nearest-
Neighbor.
Base dati Oggetti
Supponete che questi siano i
keypoints trovati e le corrispondenze
trovate con quelli nella base dati.
Supponiamo di volere riconoscere gli oggetti in una immagine di
test che contiene questi tre oggetti.
obj1
c’è un errore di matching tra i
keypoints sul pesce.
obj2obj3
Ogni keypoint in obj1, obj2,obj3 vota per un oggetto noto, a una
certa posizione, scala e orientazione.
obj1 3 voti
FISH
1 voto
GOLUB
0 voti
CREEP
obj2 0 voti
FISH
4 voti
GOLUB
0 voti
CREEP
Obj3 0 voti
FISH
0 voti
GOLUB
3 voti
CREEP
Si considerano solo i gruppi di almeno 3 voti che identificano lo
stesso oggetto, con la stessa scala e la stessa orientazione.
Le informazioni date da questi voti sono usate per effettuare un
fitting geometrico dell’immagine al modello nella base dati.
Se l’esito del fitting non è preciso, le informazioni vengono
scartate.
Applicazioni di Riconoscimento di oggetti
Applicazioni per la localizzazione di oggetti
Recommended