SlideShare a Scribd company logo
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
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Introduzione
L’algoritmo
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
Matching
Esperimenti
Conclusioni
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Introduzione
Cosa sono le features
Le features (in italiano: Caratteristiche) sono delle particolarit`a
delle immagini. Possono essere scelte in varie maniere:
Gruppi di Spigoli
Linee
Segmenti
...
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Introduzione
L’obbiettivo
Caratteristiche desiderabili
Invarianza di scala
Invarianza rotazionale
Invarianza rispetto all’ illuminazione
Invarianza rispetto all’angolo di visuale
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Costruire lo spazio di scala
Dall’immagine originale si generano progressivamente immagini
sempre pi`u sfocate e scalate della met`a (ottave). Il creatore
dell’algoritmo consiglia 4 ottave e 5 livelli di blurring.
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Costruire lo spazio di scala
Matematicamente, la sfocatura `e la convoluzione dell’operatore di
Gauss e dell’immagine.
L(x, y, σ) = G(x, y, σ) ∗ I(x, y)
G(x, y, σ) =
1
2πσ2
· e
−(x2+y2)
2σ2
L `e l’immagine sfocata
G `e l’operatore di Gauss
* `e l’operatore di convoluzione in x e y
σ `e il parametro di scala
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Laplaciano di Gauss
Il calcolo della derivata seconda `e molto sensibile al rumore e
difficile da calcolare quindi calcoliamo le differenze di Gauss.
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Trovare i punti chiave
Trovare i punti chiave `e un processo che si svolge in due parti:
Trovare i massimi e i minimi delle Differenze di Gauss (DoG)
Trovare i massimi e i minimi dei sottopixel
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Trovare i punti chiave
Per trovare i massimi e i minimi delle DoG si itera per ogni pixel di
queste ultime e si controllano i vicini. Se il pixel che consideriamo
`e maggiore di tutti i suoi vicini viene selezionato.
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Trovare i punti chiave
I punti di massimo e minimo non si trovano esattamente nei pixel
ma da qualche parte in mezzo. quindi dobbiamo matematicamente
calcolare la posizione dei cosiddetti sottopixel.
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Trovare i punti chiave (keypoint)
I valori dei sottopixel sono generati a partire dai valori dei pixel che
abbiamo applicando la serie di Taylor dell’immagine intorno ai
punti di approssimazione.
D(x) = D +
∂DT
∂x
x +
1
2
xT ∂2x
∂x2
x
Differenziando ed eguagliando a zero possiamo facilmente trovare i
massimi e i minimi di questa funzione. Risolvendo avremo la
posizione dei sottopixel.
ˆx = −
∂2D−1
∂x2
·
∂D
∂x
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Filtraggio dei punti chiave
Il passaggio precedente produce moltissimi keypoints.
Effettuiamo dunque un filtraggio per eliminare i punti che nel
passaggio precedente hanno un contrasto inferiore ad una certa
soglia.
Calcoliamo dunque.
D(ˆx) = D +
1
2
∂DT
∂x
ˆx
Per esempio nel paper vengono scartati tutti i pixel con valore
|Dˆx| < 0.03
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Filtraggio dei punti chiave
Per ottenere la stabilit`a non `e sufficiente scartare i punti a minor
contrasto. La DoG ha una forte risposta lungo i bordi. L’idea `e di
calcolare due gradienti per keypoint, perpendicolari tra loro
differenziando cos`ı:
Regioni circa piatte
Bordi
Spigoli
Gli spigoli sono ottimi punti chiave.
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Invarianza rotazionale
Calcoliamo per ogni pixel intorno al keypoint due misure:
Intensit`a
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
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Invarianza rotazionale
Ecco ci`o che otteniamo.
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Invarianza rotazionale
I vicini dei keypoint vengono catalogati in un istogramma.
Le intensit`a sono rappresentate in modo proporzionale.
L’orientamento pu`o fornire pi`u keypoint.
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Descrittori locali dell’immagine
Intensit`a e orientamento sono campionati intorno al keypoint
Una funzione gaussiana pesata con σ uguale alla met`a della
grandezza della finestra del descrittore `e usata per assegnare
un peso alle intensit`a per ogni punto campionato.
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Lo spazio di scala
Differenze di gauss
Differenze di gauss
Trovare i punti chiave
Filtering dei keypoint
Calcolo dei descrittori
L’algoritmo
Indicizzazione
Match tra feature ottenute e feature relative a immagini
campione memorizzate in db.
Processo alta complessit`a
Algoritmo: best-bin-first search (nearest-neighbor alta
probabilit`a in un numero limitato di passi)
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
L’algoritmo
Clusterizzazione
Utilizziamo la trasformata di Hough per raggruppare le chiavi
secondo dei parametri di riferimento (scala, rotazione,
traslazione)
Memorizziamo in un hashtable
Per ogni modello corrispondono le chiavi con parametri in
comune
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
L’algoritmo
Soluzione minimi quadrati
Ulteriore verifica
Consideriamo solo i gruppi con almeno 3 entries
Siano:
tx ty
T
i parametri di traslazione
mi i parametri di rotazione, stratch, scala
u v
T
un punto dell’immagine
x y
T
un punto del modello
Eseguiamo il seguente controllo:
u
v
=
m1 m2
m3 m4
·
x
y
+
tx
ty
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
L’algoritmo
Soluzione minimi quadrati
L’equazione pu`o essere riscritta come:




x y 0 0 1 0
0 0 x y 0 1
· · ·
· · ·



 ·








m1
m2
m3
m4
tx
ty








=






u
v
.
.
.






Che ha una forma Ax = b
e che quindi pu`o essere risolta risolvendo col metodo dei minimi
quadrati la corrispondente equazione in forma normale:
x = [AT
A]−1
AT
b
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Esperimenti
3 immagini campione 2D
Immagine con oggetti messi in maniera
disordinata
Immagine con modelli riconosciuti
Riconoscimento oggetti 2D fino a
60°di rotazione
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Esperimenti
3 modelli oggetti 3D
Immagine disordinata
SIFT riconosciute e
oggetti riconosciuti
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Esperimenti
Immagini 3D riconosciute
Occlusione
Riconoscimento rotazione 3D
fino a 20°
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Tempistiche
Immagine 384 x 512 px
Tempi di riconoscimento oggetti 1.9”
Processore Sun Sparc 10
0.9” scale space e identificazione SIFT
0.6” indicizzazione + least-square verification
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Invarianza
illuminazione
Stessa scena
Stesso punto di vista
Prima immagine: modello
Seconda immagine corrisponde
completamente alla prima
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Connessione con visione biologica
Visione umana largamente superiore a compurer vision system
Visione umana e animale studiata da tanti anni
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Visione nei primati
I neuroni della corteccia temporale inferiore si occupano del
riconoscimento
Alcuni neuroni rispondono alla forma
Altri alla stuttura e al colore
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Processo di riconoscimento
Per ogni immagine vengono calcolate dal cervello tante
features (processo parallelo e complesso, leggermente
differente dall’approccio descritto da Lowe)
Stessi risultati
Immagine ⇒ Features ⇒ matching immagini campione
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Conclusioni
L’approccio delle SIFT migliore dei precedenti (scale,
illumination e distortion invariant)
Largo numero di feature ottenute per ogni immagine
⇒ robusto sistema di riconoscimento (occlusione, cluttered
images)
Least-squared verification: ulteriore verifica molto pi`u
accurata di una semplice indicizzazione
Alain Bindele, Claudia Rapuano Le SIFT
Sommario
Introduzione
L’algoritmo
Matching
Esperimenti
Conclusioni
Ricerche future
Modelli per differenti punti di vista di oggetti 3D
Nuove SIFT che memorizzano anche colore e texture
Alain Bindele, Claudia Rapuano Le SIFT

More Related Content

PPTX
Evoluzione rendering
PPT
Liga De Quito
PPS
J2 fotosdeperiodistas
PPTX
Aula 3 redes sociais twitter
PPS
Excursión Cordón del Plata & Valle de Uco
PPT
Josue M
PPS
No Te Quiero Sino Porque Te Quiero
PDF
Apresentação institucional 2012
Evoluzione rendering
Liga De Quito
J2 fotosdeperiodistas
Aula 3 redes sociais twitter
Excursión Cordón del Plata & Valle de Uco
Josue M
No Te Quiero Sino Porque Te Quiero
Apresentação institucional 2012

Similar to Sift - Scale Invariant Feature Transform (12)

PPTX
Computer vision
PDF
Hog processing
PDF
Content-based Image Retrieval con Relevance Feedback
PPTX
Presentazione tesicompagnonesimone
PDF
Content based image-retrieval
PPT
Phd Thesis Dissertation (Italian)
PPTX
Algoritmi ed architetture per la risoluzione di problemi di visual search
PPSX
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
PDF
Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D
PDF
Palleschi - Tecniche di blind source separation
PDF
Tecniche e Architetture per il Riconoscimento, il Confronto e la Ricerca di C...
PDF
domenicoCaputiTriennale
Computer vision
Hog processing
Content-based Image Retrieval con Relevance Feedback
Presentazione tesicompagnonesimone
Content based image-retrieval
Phd Thesis Dissertation (Italian)
Algoritmi ed architetture per la risoluzione di problemi di visual search
Presentazione Sviluppo e confronto di tecniche di stima della traiettoria di ...
Sviluppo e confronto di tecniche di stima della traiettoria di sensori 3D
Palleschi - Tecniche di blind source separation
Tecniche e Architetture per il Riconoscimento, il Confronto e la Ricerca di C...
domenicoCaputiTriennale
Ad

More from Alain Bindele (6)

PDF
Mystic waters
PDF
Create rails project
PDF
Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j) [ENG ...
PDF
Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)
PDF
About Network coding
PDF
about botnets
Mystic waters
Create rails project
Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j) [ENG ...
Rate-it! A general purpose Polling Platform (based on graph dbms Neo4j)
About Network coding
about botnets
Ad

Sift - Scale Invariant Feature Transform