Top Banner
Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“ Distintive Image Features from Scale - Invariants Keypoints , International Journal of Computer Vision, 2004
34

Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

Aug 11, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

Keypoint detector:

Scale Invariant Feature

Transform (SIFT)

David G. Lowe,“Distintive Image Features from

Scale-Invariants Keypoints”, International Journal of

Computer Vision, 2004

Page 2: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

Outline

• Cosa è SIFT

• Overview dell’Algoritmo

• Applicazioni

Page 3: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

• 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:

Page 4: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

• 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

Page 5: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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.

Page 6: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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.

Page 7: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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)

Page 8: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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

Page 9: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

• 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).

Page 10: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

• 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

Page 11: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

k4σ

k3σ

k2σ

σ

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σ

Page 12: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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

Page 13: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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

Page 14: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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

Page 15: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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;

Page 16: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

Localizzazione accurata dei keypoints mediante

fitting di una funzione quadratica

Page 17: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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

Page 18: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

• 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

Page 19: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

• 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)

Page 20: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

Estremi della

rappresentazione

spazio-frequenze

Rimozione dei

punti a basso

contrasto

Rimozione dei

punti sui bordi

Eliminazione dei keypoint meno significativi

Page 21: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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

Page 22: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

• 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%

Page 23: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

KEYPOINT CON ORIENTAZIONE E SCALA

Se si ruota e si scala l’immagine i keypoint persistono e

l’orientazione è la stessa.

Page 24: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

• 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

Page 25: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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.

Page 26: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

Descrittore del keypoint

Page 27: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

• 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.

Page 28: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

• 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

Page 29: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

• 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

Page 30: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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

Page 31: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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

Page 32: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

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.

Page 33: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

Applicazioni di Riconoscimento di oggetti

Page 34: Scale Invariant Feature Transform (SIFT)visiowiki.di.unimi.it/lib/exe/fetch.php?media=sift...Keypoint detector: Scale Invariant Feature Transform (SIFT) David G. Lowe,“Distintive

Applicazioni per la localizzazione di oggetti