+ All Categories
Home > Science > Sift - Scale Invariant Feature Transform

Sift - Scale Invariant Feature Transform

Date post: 18-Dec-2014
Category:
Upload: alain-bindele
View: 232 times
Download: 2 times
Share this document with a friend
Description:
A slide about SIFT: an algorithm used in computer graphics to detect features in digital images Una slide sulle SIFT: un algoritmo usato in computer graphics per trovare dei rappresentanti significativi all'interno delle immagini digitali
32
Sommario Introduzione L’algoritmo Matching Esperimenti Conclusioni Le SIFT Scale Invariant Feature Transform (David Lowe 1999) Alain Bindele, Claudia Rapuano Corso di Visione Artificiale 5 febbraio 2012 Alain Bindele, Claudia Rapuano Le SIFT
Transcript
Page 1: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Le SIFTScale Invariant Feature Transform

(David Lowe 1999)

Alain Bindele, Claudia Rapuano

Corso di Visione Artificiale

5 febbraio 2012

Alain Bindele, Claudia Rapuano Le SIFT

Page 2: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Introduzione

L’algoritmoLo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

Matching

Esperimenti

Conclusioni

Alain Bindele, Claudia Rapuano Le SIFT

Page 3: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

IntroduzioneCosa sono le features

Le features (in italiano: Caratteristiche) sono delle particolaritadelle immagini. Possono essere scelte in varie maniere:

I Gruppi di Spigoli

I Linee

I Segmenti

I ...

Alain Bindele, Claudia Rapuano Le SIFT

Page 4: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

IntroduzioneL’obbiettivo

Caratteristiche desiderabili

I Invarianza di scala

I Invarianza rotazionale

I Invarianza rispetto all’ illuminazione

I Invarianza rispetto all’angolo di visuale

Alain Bindele, Claudia Rapuano Le SIFT

Page 5: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoCostruire lo spazio di scala

Dall’immagine originale si generano progressivamente immaginisempre piu sfocate e scalate della meta (ottave). Il creatoredell’algoritmo consiglia 4 ottave e 5 livelli di blurring.

Alain Bindele, Claudia Rapuano Le SIFT

Page 6: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoCostruire lo spazio di scala

Matematicamente, la sfocatura e la convoluzione dell’operatore diGauss e dell’immagine.

L(x , y , σ) = G (x , y , σ) ∗ I (x , y)

G (x , y , σ) =1

2πσ2· e

−(x2+y2)

2σ2

I L e l’immagine sfocata

I G e l’operatore di Gauss

I * e l’operatore di convoluzione in x e y

I σ e il parametro di scala

Alain Bindele, Claudia Rapuano Le SIFT

Page 7: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoLaplaciano di Gauss

Il calcolo della derivata seconda e molto sensibile al rumore edifficile da calcolare quindi calcoliamo le differenze di Gauss.

Alain Bindele, Claudia Rapuano Le SIFT

Page 8: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

Alain Bindele, Claudia Rapuano Le SIFT

Page 9: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoTrovare i punti chiave

Trovare i punti chiave e un processo che si svolge in due parti:

I Trovare i massimi e i minimi delle Differenze di Gauss (DoG)

I Trovare i massimi e i minimi dei sottopixel

Alain Bindele, Claudia Rapuano Le SIFT

Page 10: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoTrovare i punti chiave

Per trovare i massimi e i minimi delle DoG si itera per ogni pixel diqueste ultime e si controllano i vicini. Se il pixel che consideriamoe maggiore di tutti i suoi vicini viene selezionato.

Alain Bindele, Claudia Rapuano Le SIFT

Page 11: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoTrovare i punti chiave

I punti di massimo e minimo non si trovano esattamente nei pixelma da qualche parte in mezzo. quindi dobbiamo matematicamentecalcolare la posizione dei cosiddetti sottopixel.

Alain Bindele, Claudia Rapuano Le SIFT

Page 12: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoTrovare i punti chiave (keypoint)

I valori dei sottopixel sono generati a partire dai valori dei pixel cheabbiamo applicando la serie di Taylor dell’immagine intorno aipunti di approssimazione.

D(x) = D +∂DT

∂xx +

1

2xT

∂2x

∂x2x

Differenziando ed eguagliando a zero possiamo facilmente trovare imassimi e i minimi di questa funzione. Risolvendo avremo laposizione dei sottopixel.

x = −∂2D−1

∂x2· ∂D∂x

Alain Bindele, Claudia Rapuano Le SIFT

Page 13: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoFiltraggio dei punti chiave

Il passaggio precedente produce moltissimi keypoints.Effettuiamo dunque un filtraggio per eliminare i punti che nelpassaggio precedente hanno un contrasto inferiore ad una certasoglia.Calcoliamo dunque.

D(x) = D +1

2

∂DT

∂xx

Per esempio nel paper vengono scartati tutti i pixel con valore|Dx | < 0.03

Alain Bindele, Claudia Rapuano Le SIFT

Page 14: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoFiltraggio dei punti chiave

Per ottenere la stabilita non e sufficiente scartare i punti a minorcontrasto. La DoG ha una forte risposta lungo i bordi. L’idea e dicalcolare due gradienti per keypoint, perpendicolari tra lorodifferenziando cosı:

I Regioni circa piatte

I Bordi

I Spigoli

Gli spigoli sono ottimi punti chiave.

Alain Bindele, Claudia Rapuano Le SIFT

Page 15: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoInvarianza rotazionale

Calcoliamo per ogni pixel intorno al keypoint due misure:

I Intensita

I Direzione

Secondo le formule

m(x , y) =√

(L(x + 1, y)− L(x − 1, y))2 + (L(x , y + 1)− L(x , y − 1))2

θ(x , y) = tan−1((L(x , y+1)−L(x , y−1))/(L(x+1, y)−L(x−1, y)))

Alain Bindele, Claudia Rapuano Le SIFT

Page 16: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoInvarianza rotazionale

Ecco cio che otteniamo.

Alain Bindele, Claudia Rapuano Le SIFT

Page 17: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoInvarianza rotazionale

I vicini dei keypoint vengono catalogati in un istogramma.Le intensita sono rappresentate in modo proporzionale.L’orientamento puo fornire piu keypoint.

Alain Bindele, Claudia Rapuano Le SIFT

Page 18: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoDescrittori locali dell’immagine

I Intensita e orientamento sono campionati intorno al keypointI Una funzione gaussiana pesata con σ uguale alla meta della

grandezza della finestra del descrittore e usata per assegnareun peso alle intensita per ogni punto campionato.

Alain Bindele, Claudia Rapuano Le SIFT

Page 19: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Lo spazio di scalaDifferenze di gaussDifferenze di gaussTrovare i punti chiaveFiltering dei keypointCalcolo dei descrittori

L’algoritmoIndicizzazione

I Match tra feature ottenute e feature relative a immaginicampione memorizzate in db.

I Processo alta complessita

I Algoritmo: best-bin-first search (nearest-neighbor altaprobabilita in un numero limitato di passi)

Alain Bindele, Claudia Rapuano Le SIFT

Page 20: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

L’algoritmoClusterizzazione

I Utilizziamo la trasformata di Hough per raggruppare le chiavisecondo dei parametri di riferimento (scala, rotazione,traslazione)

I Memorizziamo in un hashtable

I Per ogni modello corrispondono le chiavi con parametri incomune

Alain Bindele, Claudia Rapuano Le SIFT

Page 21: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

L’algoritmoSoluzione minimi quadrati

I Ulteriore verificaI Consideriamo solo i gruppi con almeno 3 entries

Siano:I[tx ty

]Ti parametri di traslazione

I mi i parametri di rotazione, stratch, scala

I[u v

]Tun punto dell’immagine

I[x y

]Tun punto del modello

Eseguiamo il seguente controllo:[uv

]=

[m1 m2

m3 m4

]·[xy

]+

[txty

]Alain Bindele, Claudia Rapuano Le SIFT

Page 22: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

L’algoritmoSoluzione minimi quadrati

L’equazione puo essere riscritta come:

x y 0 0 1 00 0 x y 0 1· · ·· · ·

·

m1

m2

m3

m4

txty

=

uv...

Che ha una forma Ax = be che quindi puo essere risolta risolvendo col metodo dei minimiquadrati la corrispondente equazione in forma normale:

x = [ATA]−1ATb

Alain Bindele, Claudia Rapuano Le SIFT

Page 23: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Esperimenti

I 3 immagini campione 2D

I Immagine con oggetti messi in manieradisordinata

I Immagine con modelli riconosciuti

I Riconoscimento oggetti 2D fino a60°di rotazione

Alain Bindele, Claudia Rapuano Le SIFT

Page 24: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Esperimenti

I 3 modelli oggetti 3D

I Immagine disordinata

I SIFT riconosciute eoggetti riconosciuti

Alain Bindele, Claudia Rapuano Le SIFT

Page 25: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Esperimenti

I Immagini 3D riconosciute

I Occlusione

I Riconoscimento rotazione 3Dfino a 20°

Alain Bindele, Claudia Rapuano Le SIFT

Page 26: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Tempistiche

I Immagine 384 x 512 px

I Tempi di riconoscimento oggetti 1.9”

I Processore Sun Sparc 10

I 0.9” scale space e identificazione SIFT

I 0.6” indicizzazione + least-square verification

Alain Bindele, Claudia Rapuano Le SIFT

Page 27: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Invarianzailluminazione

I Stessa scena

I Stesso punto di vista

I Prima immagine: modello

I Seconda immagine corrispondecompletamente alla prima

Alain Bindele, Claudia Rapuano Le SIFT

Page 28: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Connessione con visione biologica

I Visione umana largamente superiore a compurer vision system

I Visione umana e animale studiata da tanti anni

Alain Bindele, Claudia Rapuano Le SIFT

Page 29: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Visione nei primati

I I neuroni della corteccia temporale inferiore si occupano delriconoscimento

I Alcuni neuroni rispondono alla forma

I Altri alla stuttura e al colore

Alain Bindele, Claudia Rapuano Le SIFT

Page 30: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Processo di riconoscimento

I Per ogni immagine vengono calcolate dal cervello tantefeatures (processo parallelo e complesso, leggermentedifferente dall’approccio descritto da Lowe)

I Stessi risultatiImmagine ⇒ Features ⇒ matching immagini campione

Alain Bindele, Claudia Rapuano Le SIFT

Page 31: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Conclusioni

I L’approccio delle SIFT migliore dei precedenti (scale,illumination e distortion invariant)

I Largo numero di feature ottenute per ogni immagine⇒ robusto sistema di riconoscimento (occlusione, clutteredimages)

I Least-squared verification: ulteriore verifica molto piuaccurata di una semplice indicizzazione

Alain Bindele, Claudia Rapuano Le SIFT

Page 32: Sift - Scale Invariant Feature Transform

SommarioIntroduzione

L’algoritmoMatching

EsperimentiConclusioni

Ricerche future

I Modelli per differenti punti di vista di oggetti 3D

I Nuove SIFT che memorizzano anche colore e texture

Alain Bindele, Claudia Rapuano Le SIFT


Recommended