Top Banner
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
32

Sift - Scale Invariant Feature Transform

Dec 18, 2014

Download

Science

Alain Bindele

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