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
5. 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
6. 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
7. 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
9. 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
10. 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
11. 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
12. 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
13. 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
14. 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
15. 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
17. 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
18. 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
19. 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
22. 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
31. 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