Upload
alain-bindele
View
231
Download
2
Embed Size (px)
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
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
SommarioIntroduzione
L’algoritmoMatching
EsperimentiConclusioni
Esperimenti
I 3 modelli oggetti 3D
I Immagine disordinata
I SIFT riconosciute eoggetti riconosciuti
Alain Bindele, Claudia Rapuano Le SIFT
SommarioIntroduzione
L’algoritmoMatching
EsperimentiConclusioni
Esperimenti
I Immagini 3D riconosciute
I Occlusione
I Riconoscimento rotazione 3Dfino a 20°
Alain Bindele, Claudia Rapuano Le SIFT
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
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
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
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
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
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
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