36
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia Trasformazioni Spaziali Dispense del corso di Elaborazione di Immagini e Audio Digitali http://imagelab.ing.unimo.it Prof. Roberto Vezzani

Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 2: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 3: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 4: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 5: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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=

=

Page 6: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 7: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 8: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 9: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

∝ =

Page 10: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

− =

Page 11: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

=

Page 12: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

=

Page 13: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

=

Page 14: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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λ = =

Page 15: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 16: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 17: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia

Forward mapping

Page 18: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia

Forward mapping

Page 19: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia

Reverse mapping

Page 20: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia

Reverse mapping

• Devo ricampionare la sorgente

• Posso avere problemi di oversampling, niente di grave

Page 21: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 22: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia

Sampling nearest-neighbor

Page 23: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia

Sampling nearest-neighbor

• Artifatti quali “blocchi” in caso di zoom

Page 24: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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)

Page 25: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 26: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia

NN vs bilineare

Page 27: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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)

Page 28: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 29: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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:

α

Page 30: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia

Esempio

Page 31: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia

Esempio morphing (2)

Page 32: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 33: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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)

Page 34: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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

Page 35: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia

Step 1: Find Feature Correspondence

Images with feature correspondence

Images without feature correspondence

Page 36: Dispense del corso di Elaborazione di Immagini e Audio ... · • Le trasformazioni viste permettono di mappare le coordinate da una immagine all’altra • Problema: le immagini

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.