Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Trasformazioni SpazialiDispense del corso di Elaborazione di Immagini e Audio Digitali
http://imagelab.ing.unimo.it
Prof. Roberto Vezzani
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Trasformazioni Spaziali
• A differenza di un filtro convolutivo, una trasformazionespaziale comporta una variazione della dislocazionespaziale dei punti
Filtri convolutivi Trasformazione
spaziale
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Mapping
• Il primo problema da affrontare in una trasformazione spaziale è il mapping delle coordinate
• Una trasformazione spaziale può essere vista come una funzione:(x,y) = f(u,v)
dove (u,v) sono coordinate nell’immagine di partenza e (x,y) sono quelle trasformate
v
u
y
x
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Funzione di mapping
• Mediante la funzione di mapping è possibile calcolare le coordinate (x,y) in cui deve portarsi ogni punto (u,v) dell’immagine da trasformare
• Le trasformazioni possono essere o non essere:– Invertibili
– Lineari
– Esprimibili in forma analitica
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Ridimensionamento
• Può essere visto come una variazione di scala
• I due assi sono indipendenti
• La trasformazione è invertibile (attenzione, l’invertibilità è riferita alla funzione di mapping, non all’eventuale perdita di informazione)
• E’ lineare ed esprimibile in modo analitico
• Con s<1 ho una riduzione dell’immagine, con s>1 un ingrandimento (zoom)
x
y
x s uy s v=
=
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Esempi
v
u
y
x
y
x
y
xsx=sy=0.5
sx=sy=1.2
sx=1.2 sy=0.5
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Rotazioni
• A differenza della scala, nella rotazione le due coordinate non sono indipendenti
cos sinsin cos
x u vy u v
ϑ ϑϑ ϑ
= ⋅ − ⋅ = ⋅ + ⋅
v
u
y
x
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Shear (in X e in Y)
x u vy v
α= + ⋅ =
y
x
x uy v uα=
= + ⋅
y
x
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Rappresentazione matriciale
• Come già visto nella trattazione del modello pinhole e della geometria di una telecamera, molte trasformazioni possono essere rappresentate mediate matrici di trasformazione
• Usando le coordinate omogenee è possibile rappresentare anche trasformazioni che contengono traslazioni
''
1 ' 1
x x uy y M v
z
∝ =
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Trasformazione Euclidea• Trasformazioni euclidee: vengono algebricamente rappresentate
mediante una matrice sparsa non singolare 3x3 avente tre gradi di libertà (una rotazione e due traslazioni). Preservano le lunghezze e le aree, gli angoli.
1,1 1,2
2,1 2,2
0 0 1
x
y
r r tE r r t
=
cos sinsin cos
Rα αα α
− =
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Trasformazione di Similitudine• Trasformazioni di similitudine: vengono algebricamente
rappresentate mediante una matrice sparsa non singolare 3x3 avente 4 gradi di libertà (una rotazione, una scala e due traslazioni). Preservano i rapporti tra le lunghezze e le aree, gli angoli.
1,1 1,2
2,1 2,2
0 0 1
x
y
sr sr tS sr sr t
=
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Trasformazione Affine• Trasformazioni affini: vengono algebricamente
rappresentate mediante una matrice sparsa non singolare 3x3 avente 6 gradi di libertà. Preservano ilparallelismo, i rapporti tra lunghezze di linee parallele, le combinazioni lineari di vettori e le linee all’infinito.
1,1 1,2
2,1 2,2
0 0 1
x
y
a a tA a a t
=
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Trasformazione Proiettiva• Trasformazioni proiettive o omografiche: vengono
algebricamente rappresentate mediante una matricesparsa non singolare 3x3 avente 8 gradi di libertà. Preservano la collinearità e la cross-ratio.
1,1 1,2 1,3
2,1 2,2 2,3
3,1 3,2 1
h h hH h h h
h h
=
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Matrice di trasformazione omografica
• L’omografia (o collineazione) è formalmente definita come una“trasformazione lineare non singolare del piano proiettivo in se stesso”
• Praticamente: preso un piano e due differenti proiezionibidimensionali dello stesso, la trasformazione omografica lega le coordinate dei punti nei due sistemi di riferimento.
• La matrice di omografia è definita a meno di un fattore di scala (8 gradi di libertà)
• Può essere determinata dalla corrispondenza di 4 punti
1 1 1 2 33 3 3 3
2 2 4 5 6
7 8
''
1 1 1
x x
x x h h hx H x H h h h
h hλ = =
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Resampling
• Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra
• Problema: le immagini sono discretizzate e quantizzate
• E’ necessario ricampionare l’immagine trasformata!
• Esempio: se prendo una immagine e ne riduco la dimensione di un fattore 0.5, la trasformazione vista mi porterebbe ad avere alcuni punti di destinazione con coordinate intere, altri con coordinate reali.
• Il problema si aggrava con le rotazioni
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Forward mapping – reverse mapping
• Forward mapping: per ogni punto dell’immagine iniziale calcolo il punto di destinazione.
• Problemi:– “buchi” nell’immagine di destinazione
– difficoltà a gestire le collisioni
• Reverse mapping: per ogni punto dell’immagine finale, calcolo il punto di origine
• Data una trasformazione, siamo quindi interessati a conoscere la trasformazione inversa
• Problemi:– Se la trasformazione non è invertibile
– Se non è invertibile analiticamente
– Aliasing
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Forward mapping
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Forward mapping
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Reverse mapping
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Reverse mapping
• Devo ricampionare la sorgente
• Posso avere problemi di oversampling, niente di grave
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Sampling nearest-neighbor
• Date le coordinate (u,v) continue ottenute dalla trasformazione inversa, posso direttamente utilizzare gli interi (u,v) più vicini (arrotondamento)
• Difetti: aliasing
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Sampling nearest-neighbor
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Sampling nearest-neighbor
• Artifatti quali “blocchi” in caso di zoom
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Interpolazione bilineare
• L’interpolazione bilineare (lineare lungo x e lungo y) prende in considerazione i quattro punti più “vicini” al punto a coordinate reali. – Esempio: (u,v) =f-1(x,y) = (3.5 , 6.8)
– Considero i punti (u,v) seguenti: (3,6) (3,7) (4,6) (4, 7)
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Interpolazione bilineare
• Calcolo a e b come interpolazioni lineari tra i vertici superiori e inferiori rispettivamente.
• Il valore finale sarà l’interpolazione lineare tra a e b
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
NN vs bilineare
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Altri metodi di Interpolazione
• Interpolazione con filtro gaussiano– Somma pesata dei punti nell’intorno di (u,v) utilizzando pesi
estratti da una distribuzione gaussiana centrata in (u,v) e con varianza parametrica
– Difetti: aumenta la sfocatura dell’immagine ed è lento da applicare
• Interpolazione bicubica
• Spline
• (http://en.wikipedia.org/wiki/Bicubic_interpolation)
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Trasformazioni generiche
• Le trasformazioni spaziali possono essere di qualunque tipo, l’importante è sia descritta la modalità di mapping da un sistema di riferimento all’altro
• Possono essere ottenute anche mediante look-up table
• Possono nascere problemi di invertibilità
• Possono richiedere modalità di ricampionamento diversi e dipendenti dal valore della trasformazione stessa. Esempio della omografia: la “finestra” di interpolazione dovrebbe essere differente da pixel a pixel
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Una applicazione pratica: image morphing
• Date due immagini I1 e I2, si vuole effettuare una trasformazione graduale ad una all’altra generando immagini intermedie
• Esempio:
α
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Esempio
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Esempio morphing (2)
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Image Morphing
• Basato su corrispondenza di punti
• Displacement di ogni punto calcolato come media pesata tra i displacement dei punti di controllo
• Peso di ciascun termine: proporzionale alla “vicinanza” dai punti di controllo e normalizzato in modo che la somma dei pesi sia pari ad 1
• Difetti: – trasformazione non invertibile
– Impossibile “bloccare” delle linee, ad esempio i contorni
– Richiede una selezione manuale delle corrispondenze
– Non tiene conto del colore dei punti e della semantica
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Estrazione automatica di corrispondenze
• Template matching– E’ possibile valutare la similarità di due immagini o di due
porzioni di esse
– Metriche puntuali:
• SAD /MAD(Sum/mean of absolute differences)
• CC (Cross correlation)
• Il template matching “funziona” se i particolari di interesse hanno la stessa scala e la stessa orientazione
• Il template matching è inaffidabile in zone a basso contrasto (problema dell’apertura), mentre richiede punti salienti (feature points)
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
SIFT – scale invariant feature transform
• Si basa sull’estrazione di punti salienti (keypoints) e sul calcolo di un descrittore per ciascuno di essi
• Caratteristiche del descrittore (128-dimensionale):– Invariant to image scaling, translation and 2D
– rotation (identity).
– Partially invariant to change in illumination and 3D camera viewpoint.
– Many keypoints can be extracted from typical images (~2000 for500x500 pixels).
– Highly distinctive (for consistent matching).
– SIMILARITA’ CALCOLABILE COME DISTANZA EUCLIDEA TRA DESCRITTORI
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Step 1: Find Feature Correspondence
Images with feature correspondence
Images without feature correspondence
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
SIFT - Bibliografia
• Lowe, D.G. Distinctive Image Features from Scale-InvariantKeypoints. IJCV 2004.
• Lowe, D.G. Object Recognition from Local Scale- InvariantFeatures. ICCV 1999.
• Beis, J. and Lowe, D.G. Shape Indexing using Approximate Nearest-Neighbor Search in High- Dimensional Spaces. CCVPR 1997.
• http://www.cs.ubc.ca/~lowe/keypoints/ - Demo program.