Upload
hanhan
View
224
Download
0
Embed Size (px)
Citation preview
A.a. 2007/2008Elaborazione dell’immagine LS
Elementi di registrazione delle immagini
Ing. Pietro Azzari
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Sommario
• Introduzione • Individuazione delle corrispondenze• Determinazione della relazione spaziale
– Individuazione del modello geometrico– Stima robusta dei parametri
• Rimappatura delle immagini (warping)• Progetto
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Cosa significa registrareDefinizione: allineamento/normalizzazione di caratteristiche comuni di entità
omogenee osservate in condizioni differenti.Scopo: confronto di entità, composizione di informazioni di diverse entità.
Misura del peso di una popolazioneCaratteristiche: pesoCondizioni: accelerazione di gravità diverse
Graduatoria, peso medio della popolazione
Registrazione di un insieme di immaginiCaratteristiche: soggetto inquadratoCondizioni: inquadratura, esposizione, istante degli scatti, …Rilevamento del moto, riconoscimento di oggetti, ricostruzione 3D
gtpt
glpl
tt l
l
gp pg
′ = Registrazione dei pesi
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Stesso soggetto, diversa apparenza
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Diversificazione dell’apparenzaParametri intrinseci (zoom, risoluzione)
Livello di esposizione (otturatore, apertura)
Parametri estrinseci (posizione, orientamento)
Orario (ora del giorno, un minuto prima/dopo)
Taj Mahal, Agra, India.
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Applicazioni IRilevamento del movimento con videocamera non stazionaria [6]
Costruzione del modello di sfondo, registrazione spaziale di tutti i fotogrammiin un sistema di riferimento unitario (mosaico delle immagini [5][6])
Rilevamento del movimento, registrazione spaziale/tonale del fotogrammaattuale con la corrispondente regione del modello di sfondo
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Applicazioni II
Riconoscimento di patternIndividuazione della presenza e della posa dello sportello vano motore, registrazione spaziale/tonale del fotogramma attuale rispetto ad un modello di sportello appreso a priori [7].
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Applicazioni III• Mosaicing [6]
• Super Resolution [8]
• Ricostruzione tridimensionale [9]
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Applicazioni IV
Controllo del territorio Medical Imaging
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Registrazione rigida
Si può effettuare una registrazione rigida (stesso modello e stessi parametri per tutti i punti dell’immagine) solo in caso di sequenze di immagini prive di effetti di parallasse (moto apparente dipendente dalla struttura della scena).
Scena planare Rotazione intorno al centro ottico
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Pseudocodice per la registrazione
Problema:Individuare la trasformazione geometrica (di che tipo?) che registra in maniera ottimale (secondo quale criterio?) regioni corrispondenti delle immagini (quali?).
Procedura intuitiva: • Determinazione delle corrispondenze, individuazione di
coppie di regioni corrispondenti (aventi aspetto simile) Immagini Regioni corrispondenti
• Determinazione della trasformazione spaziale, stima del movimento (trasformazione) che regioni corrispondenti manifestano nel passaggio da un’immagine all’altra.Regioni corrispondenti Trasformazione
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Procedura intuitiva
TR
O O’
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Si definiscono features parti di immagini quali punti, linee, strutture, regioni, …Si definisce feature detector un algoritmo che individua features FS da un’immagine
S. Si definisce feature matcher un algoritmo che identifica features FD in un’immagine D corrispondenti alle features FS.
Si definisce Detector+Matcher=Tracker
Determinazione delle corrispondenze
• Harris Corner Detector [1] (1987)• KLT, Kanade Lucas Tomasi [2,3] (80’s - 90’s) • SIFT (Scale Invariant Features Transform), Lowe [4] (2004)
Detector
Detector
Matcher
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Harris Corner Detector ILocalizzazione [individuazione]: punti dell’immagine caratterizzati da un
elevato valore di un apposito funzionale Cornerness che misura la variazionedell’intensità per unità di spostamento in un intorno del punto.
Descrittore [corrispondenza]: posizione della feature, regione dell’immagine di dimensione predefinita intorno alla posizione.
Metrica di confronto [corrispondenza]: SSD di una coppia di descrittori (oppure SAD, NCC, etc)
( )20 0( , ) det traceR x y M k M= −
0 0
2
0 0 2, ( , )
( , ) ( , ) x x y
x y W x y x y y
I I IM x y w x y
I I I∈
⎡ ⎤= ⎢ ⎥
⎢ ⎥⎣ ⎦∑
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Perché Harris corner detector?
Regioni uniformi Discontinuità (edge) Angoli (corner)
Pregi:
Difetti:
• Bassa distintività
• Bassa tolleranza al rumore
Pregi:
• Alta distintività ortogonale
Difetti:
• Bassa distintività parallela
Pregi:
• Alta distintività
• Alta tolleranza al rumore
Difetti:
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
LKT Lukas Kanade Tomasi
|)||,(| 21 λλMinR =
Localizzazione: punti dell’immagine caratterizzati da un elevato valore di un funzionale specifico definito come:
dove λ1,λ2 sono gli autovalori della matrice M definita per Harris.
Caratterizzazione [descrittore]: posizione della feature, regione dell’immaginedi dimensione predefinita intorno alla posizione.
Metrica di confronto: SSD di una coppia di descrittori (oppure SAD, NCC, etc)
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Harris/LKT e OpenCV
Estrazione delle features da un’immagine
GoodFeaturesToTrack in OpenCVDir\docs\ref\opencvref_cv.htm
Determines strong corners on imagevoid cvGoodFeaturesToTrack( const CvArr* image, CvArr* eig_image, CvArr* temp_image,
CvPoint2D32f* corners, int* corner_count, double quality_level, double min_distance, const CvArr* mask=NULL, int block_size=3, int use_harris=0, double k=0.04 );
Individuazione delle corrispondenze tra coppie di immagini
CalcOpticalFlowPyrLK in OpenCVDir\docs\ref\opencvref_cv.htm
Calculates optical flow for a sparse feature set using iterative Lucas-Kanade method in pyramids
void cvCalcOpticalFlowPyrLK( const CvArr* prev, const CvArr* curr, CvArr* prev_pyr, CvArr* curr_pyr, const CvPoint2D32f* prev_features, CvPoint2D32f* curr_features, int count, CvSize win_size, int level, char* status, float* track_error, CvTermCriteria criteria, intflags );
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
SIFT (Scale Invariant Feature Transform)
Proprietà di invarianza rispetto a: • Rumore di formazione• Rotazioni 2D • Cambiamenti di illuminazione (fotometrici)• Cambiamenti di scala• Posizione relativa osservatore/scena
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Insieme delle corrispondenze
Immagine 1 Immagine 2Feature
1
2
…
N
X1 Y1 X1‘ Y1
’
X Y X‘ Y’
X2 Y2 X2‘ Y2
’
XN YN XN‘ YN
’
… …… …
fs ft
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Determinazione della trasformazione spaziale II
Dati due vettori fs, fd di lunghezza N di coordinate corrispondenti, determinare la trasformazione spaziale f che mette in relazione tali coordinate (e con esse le due immagini).
Una trasformazione è determinata dalla forma analitica f e dai parametri p.
Modello: polinomiale di I grado (retta). Parametri: coefficiente angolare e intercettaModello: polinomiale di II grado (parabola) Parametri: vertice e discriminante
• Model Selection, individuazione della forma f del modello (traslazione, rotazione, proiettività)Due immagini sono due proiezioni della stessa scena acquisite da punti di vista differenti. Punti dell’immagine sono proiezioni di punti tridimensionali1. Analisi del processo di formazione delle proiezioni della scena.2. Analisi della relazione geometrica fra due proiezioni della medesima scena
• Model Fitting, determinazione dei parametri p1. Stima dei parametri del modello a partire dai dati
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Processo di formazione dell’immagine I
Telecamera pin-holeProiezione centrale:
C centro di proiezione, p punto principale, f lunghezza focale
Y
C
X
Z
M
x
ym
( ) ( ), , , ,X Y Z x y= =M m
Y
CZ
M
fpp
( ) ( ), , / , /X Y Z fX Z fY Z→
( ) ( )/f , ,
/x fX Z
fy fY Z=⎧
= =⎨ =⎩M p p
fY/Z
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Processo di formazione dell’immagine II
Parametri intrinseci:
Parametri estrinseci
f richiede una notazione molto complessa:
funzione razionale NO ALGEBRA LINEARE
( )
( )
/f ,
/
, , , ,
x x
y y
x y x y
x k fX Z py k fY Z p
f p p k k
= +⎧= ⎨ = +⎩
=
M p
p
( ) ( ), , / , /x x y yX Y Z k fX Z p k fY Z p→ + +
Ycam
C
Xcam
Zcam
Z
O YX
R,t
py p xcam
ycam
y
x px
( ) ( )( )
11 12 13 1
31 32 33 3
, , ,...x x
XR YR ZR tX Y Z k f p
XR YR ZR t⎛ ⎞+ + +
→ +⎜ ⎟⎜ ⎟+ + +⎝ ⎠
( ), , , , , ( , , ),x y x yf p p k k α β γ=p R t
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Coordinate omogeneeRappresentano coordinate bidimensionali con vettori tridimensionali
5 10 205
3 6 123
1 2 4
⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥→ = =⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦
xxxwy
y yw
w
⎡ ⎤⎡ ⎤ ⎢ ⎥ ⎡ ⎤⎢ ⎥ → =⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎣ ⎦⎢ ⎥⎢ ⎥⎣ ⎦ ⎢ ⎥⎣ ⎦
wx xx
wy yy
w w
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎢ ⎥ ⎢ ⎥→ =⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
( ) ( ) ( ) ( ), , , , ,1 , , , ,X Y Z X Y Z x y x y w= → = = → =M M m m
( )f ,x fXy fYw Z
=⎧⎪= =⎨⎪ =⎩
M p
Proiezione centrale
00
1 01 1
X XfX f
Y YfY f
Z ZZ
⎛ ⎞ ⎛ ⎞⎛ ⎞ ⎡ ⎤⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎢ ⎥⎜ ⎟ ⎜ ⎟→ =⎜ ⎟ ⎢ ⎥⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎢ ⎥⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎣ ⎦
⎝ ⎠ ⎝ ⎠( ), ,1 0s diag f f ⎡ ⎤= = ⎣ ⎦m PM I M
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Processo di formazione dell’immagine in coordinate omogenee
Parametri intrinseci:
Parametri estrinseci
( ) ( ), , / , /x x y yX Y Z k fX Z p k fY Z p→ + +
( ) ( )( )
11 12 13 1
31 32 33 3
, , ,...x x
XR YR ZR tX Y Z k f p
XR YR ZR t⎛ ⎞+ + +
→ +⎜ ⎟⎜ ⎟+ + +⎝ ⎠
00
1 01 1
x x x x
y y y y
X Xk fX p Z k f p
Y Yk fY p Z k f p
Z ZZ
⎛ ⎞ ⎛ ⎞+⎛ ⎞ ⎡ ⎤⎜ ⎟ ⎜ ⎟
⎜ ⎟ ⎢ ⎥⎜ ⎟ ⎜ ⎟→ + =⎜ ⎟ ⎢ ⎥⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎢ ⎥⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎣ ⎦⎝ ⎠ ⎝ ⎠
1
x x
y y
k f pk f p
⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦
K
0s ⎡ ⎤= = ⎣ ⎦m PM K I M
0 11 1
cam
cam
cam
X XY YZ Z
⎛ ⎞ ⎛ ⎞⎜ ⎟ ⎜ ⎟⎡ ⎤⎜ ⎟ ⎜ ⎟= ⎢ ⎥⎜ ⎟ ⎜ ⎟⎣ ⎦⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠
R t 0 cams ⎡ ⎤ ⎡ ⎤= =⎣ ⎦ ⎣ ⎦m K I M K R t M
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Modello proiettivo/omografico
Analisi della relazione geometrica fra due proiezioni m, m’ dello stesso punto M.
Scena planare
In appendice è svolto il caso generale per immagini prive di effetti di parallasse
[ ] [ ]2 3 1 201 1
1
XX X
Ys Y YΠ
⎛ ⎞⎛ ⎞ ⎛ ⎞⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟= = = =⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎝ ⎠ ⎝ ⎠
⎝ ⎠
1m PM K r r r t r r t H
{ }3 : 0ZΠ ∈Π = ∈ℜ =M M
[ ] [ ]0
1 11
XX X
Ys Y YΠ
⎛ ⎞⎛ ⎞ ⎛ ⎞⎜ ⎟⎜ ⎟ ⎜ ⎟⎜ ⎟′ ′ ′ ′ ′ ′ ′ ′ ′ ′= = = =⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎝ ⎠ ⎝ ⎠
⎝ ⎠
1 2 3 1 2m PM K r r r t r r t H
1
1
Xs Y −
Π
⎛ ⎞⎜ ⎟′ ′ ′ ′= = =⎜ ⎟⎜ ⎟⎝ ⎠
m P M H H H m
H è una matrice 3x3 di rango 3 nota come OMOGRAFIA
1−Π ′=H H H
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Trasformazioni proiettive 2D II
• Proprietà delle trasformazioni proiettive:– L’origine non mappa necessariamente nell’origine– Rette rimangono rette– Rette parallele non rimangono necessariamente parallele– Rapporti di lunghezza non sono preservati– composizione di trasformazioni proiettive è una trasformazione proiettiva
⎥⎥⎦
⎤
⎢⎢⎣
⎡
⎥⎥⎦
⎤
⎢⎢⎣
⎡=
⎥⎥⎦
⎤
⎢⎢⎣
⎡
wyx
ihgfedcba
wyx
'''
⎥⎥⎦
⎤
⎢⎢⎣
⎡
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎥⎥⎦
⎤
⎢⎢⎣
⎡
⎥⎥⎦
⎤
⎢⎢⎣
⎡ΘΘΘ−Θ
⎥⎥⎦
⎤
⎢⎢⎣
⎡=
⎥⎥⎦
⎤
⎢⎢⎣
⎡
wyx
sysx
tytx
wyx
1000000
1000cossin0sincos
1001001
'''
x’ = T(tx,ty) R(Θ) S(sx,sy) x
( ), , , , , , , ,a b c d e f g h i=p
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Trasformazioni parametriche 2D
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Determinazione della trasformazione
Problema: dati due vettori fs, fd di N corrispondenze ed un modello di trasformazione f di tipo proiettivo, determinare i parametri p in maniera ottimale.
'''
x a b c xs y d e f y
w g h i w
⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ ⎢ ⎥=⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦
( , , )x ax by cw
f y dx ey fww gx hy iw
′ = + +⎧⎪′ ′= = + +⎨⎪ ′ = + +⎩
x x p
( 1)1( , , )
( 1)1
ax by cxx gx hy ax by cgx hy
fdx ey f y gx hy dx ey fygx hy
+ +⎧ ′ =⎪ ′ + + = + ++ + ⎧⎪′ = =⎨ ⎨ ′+ + + + = + +⎩⎪ ′ =⎪ + +⎩
x x p
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Vincoli introdotti dalle corrispondenze
0 0 00 0 0
i i i i i i i
i i i i i i i
x ax by c d e f gx x hx yy a b c dx ey f gy x hy y′ ′ ′= + + + + + − −′ ′ ′= + + + + + − −
Ogni corrispondenza {(xi,yi),(xi’,yi’)} introduce la seguente coppia di vincoli:
Dato che i parametri da stimare sono 8, per ottenere un sistema determinato abbiamo bisogno di 4 corrispondenze:
1 1 1 1 1 1
1 1 1 1 1 1
2 2 2 2 2 2
2 2 2 2 2 2
3 3 3 3 3 3
3 3 3 3 3 3
4 4 4 4 4 4
4 4 4 4 4 4
1 0 0 00 0 0 1
1 0 0 00 0 0 1
1 0 0 00 0 0 1
1 0 0 00 0 0 1
x y x x x y ax y y x y y b
x y x x x y cx y y x y y d
x y x x x y ex y y x y y f
x y x x x y gx y y x y y h
′ ′− −⎡ ⎤ ⎡⎢ ⎥ ⎢′ ′− −⎢ ⎥ ⎢
′ ′⎢ ⎥ ⎢− −⎢ ⎥ ⎢′ ′− −⎢ ⎥⎢ ⎥′ ′− −⎢ ⎥
′ ′− −⎢ ⎥⎢ ⎥′ ′− −⎢ ⎥
′ ′− −⎢ ⎥ ⎣⎣ ⎦
1
1
2
2
3
3
4
4
xyxyxyxy
′⎡ ⎤⎤⎢ ⎥⎥ ′⎢ ⎥⎥′⎢ ⎥⎥
⎢ ⎥⎥ ′⎢ ⎥⎢ ⎥ = ⎢ ⎥⎢ ⎥ ′⎢ ⎥⎢ ⎥′⎢ ⎥⎢ ⎥
⎢ ⎥⎢ ⎥ ′⎢ ⎥⎢ ⎥′⎢ ⎥ ⎢ ⎥⎦ ⎣ ⎦
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Regressione lineare
• Dato un sistema lineare determinato (2N=P) e di rango massimo (P) della forma:
• Il vettore dei parametri p soluzione del sistema è dato da
dove A-1 è la matrice inversa di A che esiste sempre grazie alle ipotesi. Questa procedura di inferenza dei parametri di un modello a partire da osservazioni e nota come regressione lineare.
Se il rango non è massimo il sistema ammette infiniteP-rango soluzioni.
[ ]i
b
, i=1,..,2N; j=1,..,P
, j=1,..,P
b , i=1,..,2N
ij
j
a
p
=
⎡ ⎤= ⎣ ⎦⎡ ⎤= ⎣ ⎦
=
Ap
A
p
b
−= 1p A b
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Tolleranza al rumore
Le immagini sono affette da rumore le coordinate delle features sono affetteda rumore
Utilizzare più informazioni significa ridurre l’incidenza del rumore sulla stimafinale, tuttavia il sistema di equazioni non ammetterà alcuna soluzione, avendopiù vincoli che gradi di libertà (2N>P).
In questi casi, si perviene ad una soluzione denominata ai minimi quadrati cheequivale ad individuare il vettore p che minimizza :
cioè la distanza euclidea fra i punti sperimentali ed i corrispondenti punti predettidal modello e dai parametri determinati.
Questo vettore dei parametri viene calcolato come
dove A+-1 è detta matrice pseudoinversa di A che esiste per ogni matrice.
( ) 1− −= =T T 1+p A A A b A b
2'
1
N
i ii
ε=
= −∑ m Hm
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Esempi di regressioneRegressione lineare di una retta nel piano
Vettore di corrispondenze è dato da:
Ogni corrispondenza fornisce un vincolo:
Quindi per la stima sono necessarie e sufficienti due corrispondenze qualsiasi(figura sopra).
Regressione lineare ai minimi quadratiusando tutte le corrispondenze (figurasotto)
y
x
y
x
( , ) : Pf ℜ×ℜ →ℜx p( , )f x y ax b= = +p[ ] 2,a b= ∈ℜp
( , ), i=1,..,Ni ix y
, i=1,..,Ni iy ax b= +
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Tolleranza a dati erratiDati errati, o outliers, sono misure non spiegabili attraverso la distribuzione del
rumore che si suppone affligga i dati. Tipicamente si tratta di misuregrossolanamente errate, nel nostro caso errate corrispondenze.
Gli outliers possono alterare in maniera consistente il risultato di unaregressione, per questa ragione è buona norma eliminarli prima di usarli nellaregressione. Una regressione con rimozione degli outlier è denominataregressione robusta.
Random Sample Consensus (RANSAC), Fischler and Bolles 1981Do1. Individuazione di un set minimo di dati, Sm contenuto in S2. Determinazione dei parametri del modello a partire dal set minimo Sm3. Calcolo del consenso del modello da parte del resto dei dati S-SmWhile (consenso<soglia && iterazione<maxIterazioni)Determinazione dei parametri del modello usando tutti i dati compatibili con il
modello di consenso massimo
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Esempi di regressione robusta
y
x
y
xConsensus=4
y
xConsensus=8
y
x
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Codice regressione robusta
Risoluzione di sistemi lineari e/o problemi ai minimi quadrati
Solve in OpenCVDir\docs\ref\opencvref_cxcore.htm
Solves linear system or least-squares problemint cvSolve( const CvArr* A, const CvArr* B, CvArr* X, int method=CV_LU );
Risoluzione di sistemi lineari e/o problemi ai minimi quadraticon controllo di congruenza statistica dei dati, segmentazione dei dati in inliers/outliers
RansacEstimator Class in RansacEstimator.cpp
Solves linear system or least-squares problem using robust statistics
RansacEstimator::m_fnRansacModelEstimation(CvPoint2D32f* pSrcPoints, CvPoint2D32f* pDstPoints, float *fNoiseStd);
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
y’
Rimappatura: metodo diretto
Problema: noto un modello di trasformazione f ed i rispettivi parametri p, data unaimmagine sorgente S(x,y), calcolare l’immagine trasformata D(x’,y’) = S(f(x,y)).
x x’
f(x,y)
S (x,y)D (x’,y’)
yx’
Algoritmo
Per ogni pixel (x,y) di S ricopiare il valore di intensità S(x,y) nella sua posizione corrispondente (x’,y’)=f(x,y) di D
Problema: pixel di D non corrispondenti ad alcun pixel di SProblema: (x’,y’) non intere
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
xy
S(x,y) D(x’,y’)
Metodo diretto I
f(x,y)
y’
Soluzione: espansione di S(x,y) in un opportuno intorno di (x’,y’) color splatting
Problema: pixel di D non corrispondenti ad alcun pixel di S
x’
x
y
S(x,y) D(x’,y’)
f(x,y)
y’x’
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Metodo diretto II
Problema: (x’,y’) non intere
D(x’,y’)f(x,y)S(x,y)
D(x’,y’)f(x,y)S(x,y)
Soluzione: approssimare le coordinate (x’,y’) all’intero più vicino Nearest neighbor
E’ possibile fare meglio? DifficileDopo la rimappatura completa si potrebbe attivare un post processing per miscelare intensità di pixel vicini associati a coordinate non intere.
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
S(x,y) D(x’,y’)xy
Rimappatura: metodo inverso
x x’y’
f -1(x,y)
Algoritmo
Ad ogni pixel (x’,y’) di D assegnare il valore di intensità S(x,y) del suo omologo calcolato come (x,y)=f -1(x’,y’)
Problema: esistenza della funzione inversa f -1
Problema: (x,y) non intere
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
S(x,y) D(x’,y’)
xy
Metodo inverso
x x’
f -1(x,y) y’
Problema: (x,y) non intere
Soluzione: approssimare le coordinate (x,y) all’intero più vicino Nearest neighbor
S(x,y) D(x’,y’)
xy
x x’
f -1(x,y) y’
Soluzioni avanzate: tecniche di interpolazione (vedere appendice).
Variante del medesimo problema: pixels di D distinti potrebbero avere il medesimo pixel di S come nearest neighbor (ingrandimenti) immagine D sgranata, blocking.
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Rimappatura con OpenCV
Rimappatura dell’immagine con modello proiettivo• Matrice di trasformazione map_matrix• Metodo di interpolazione: CV_INTER_LINEAR, CV_INTER_CUBIC
WarpPerspective in OpenCVDir\docs\ref\opencvref_cv.htm
Applies perspective transformation to the imagevoid cvWarpPerspective( const CvArr* src, CvArr* dst, const CvMat* map_matrix, int
flags=CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS, CvScalar fillval=cvScalarAll(0));
Rimappatura non parametrica dell’immagine• Matrici di traslazione mapx e mapy
RemapApplies generic geometrical transformation to the imagevoid cvRemap( const CvArr* src, CvArr* dst, const CvArr* mapx, const CvArr* mapy, int
flags=CV_INTER_LINEAR+CV_WARP_FILL_OUTLIERS, CvScalarfillval=cvScalarAll(0));
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Listato di esempio I
Registrazione di una coppia di immagini
1. Estrazione set di features dalla prima immagine
2. Individuazione delle corrispondenze nella seconda immagine
3. Stima robusta dell’omografia attraverso Ransac (attenzione al formato della matrice risultato)
4. Rimappatura della seconda immagine utilizzando l’omografia stimata
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Listato di esempio II
Mosaicatura di una sequenza di immagini
1. Per ogni coppia di immagini• Estrazione set di features dalla
prima immagine• Individuazione delle
corrispondenze nella seconda immagine
• Stima robusta dell’omografia attraverso Ransac
2. Calcolo della matrice omograficaincrementale
3. Rimappatura della seconda immagine utilizzando l’omografia incrementale
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Note sull’utilizzo del codiceUtilizzo della classe Ransac EstimatorIstanziazione:
RansacEstimator *pEstimator=new RansacEstimator(FULLPROJECTIVE);Stima robusta della trasformazione
pEstimator->m_fRansacModelEstimation(vSrcCorners,vDstCorners,iCorners,2);Reshaping del vettore di parametri stimato
CvMat *pHomography=cvCreateMat(3,3,CV_32FC1);cvmSet(pHomography,0,0,cvmGet(pEstimator->m_pFinalTransformationMat,0,0));cvmSet(pHomography,0,1,cvmGet(pEstimator->m_pFinalTransformationMat,1,0));cvmSet(pHomography,0,2,cvmGet(pEstimator->m_pFinalTransformationMat,2,0));cvmSet(pHomography,1,0,cvmGet(pEstimator->m_pFinalTransformationMat,3,0));cvmSet(pHomography,1,1,cvmGet(pEstimator->m_pFinalTransformationMat,4,0));cvmSet(pHomography,1,2,cvmGet(pEstimator->m_pFinalTransformationMat,5,0));cvmSet(pHomography,2,0,cvmGet(pEstimator->m_pFinalTransformationMat,6,0));cvmSet(pHomography,2,1,cvmGet(pEstimator->m_pFinalTransformationMat,7,0));cvmSet(pHomography,2,2,cvmGet(pEstimator->m_pFinalTransformationMat,8,0));
Calcolo della matrice incrementalecvMat *pIncHomography=cvCreateMat(3,3,CV_32FC1);cvSetIdentity(pIncHomography);…cvGEMM(pIncHomography,pHomography,1.0,NULL,0,pIncHomography);
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Progetto Realtà Aumentata
Specifiche funzionali del sistema• Sovraimporre un layer di realtà aumentata sulla copertina
del libro in maniera “percettivamente credibile”• Eliminare gli artefatti di colore in corrispondenza delle
zone di sovrapposizione del layer di realtà aumentata.Input:• Sequenza filmata: Multiple View.avi• Fotogramma di riferimento (primo della sequenza)
ReferenceFrame.png• Maschera binaria del libro nel fotogramma di riferimento
ObjectMask.png• Immagine costituente un layer di realtà aumentata e relativa
maschera binariaAugmentedLayer.png (immagine)AugmentedLayerMask.png (maschera binaria)
Output:Sequenza filmata Augmented Multiple View.avi con sovraimpressione realistica del layer di realtà aumentata.
Si sviluppi un algoritmo per la generazione di una sequenza video di realtà aumentata.
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Progetto registrazione di immagini
Algoritmo di registrazione
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Tesi disponibili• Rilevazione del movimento
– Photo Free People (P3P), individuazione e rimozione di persone ed oggetti in movimento da sequenze di fotografie di luoghi turistici o archeologici.
– Rilevazione e tracking in real time di persone ed oggetti in movimento per sistemi di videosorveglianza per telecamere in movimento.
• Mosaicatura di immagini– Composizione statisticamente ottima di molteplici viste della stessa scena con
stima e correzione automatica di disallineamenti spaziali, fotometrici e ottici.– Ampliamento progetto Virtual camera, generatore di immagini sintetiche per scopi
sperimentali. Sviluppo del processo di formazione dell’immagine ad alto rangedinamico (HDR).
• Realtà aumentata– Progetto ARIS, riconoscimento di oggetti e stima di posizione ed orientamento
degli stessi per la sovrapposizione di strati informativi coerenti con la scena.• Strumenti avanzati per la visione artificiale
– Implementazione Scale Invariant Feature Transform (SIFT).
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Bibliografia[1] C. Harris, M. Stephens, “A Combined Corner and Edge Detector”, 4th Alvey Vision Conference,
1987, 147-151.[2] B. Lucas, T. Kanade, “An Iterative Image Registration Technique with an Application to Stereo
Vision”, Proc. of 7th of IJCAI, pp. 674-679. [3] J. Shi and C. Tomasi, “Good Features to Track”, Proc. of 9th Conf. on CVPR, 1994. [4] D. Lowe, “Distinctive Image Features from Scale-Invariant Keypoints”, IJCV, 2004.[5] M. Brown, D. Lowe, “Automatic Panoramic Image Stitching Using Invariant Features”, IJCV, pages
59-73.[6] P. Azzari, L. Di Stefano, S. Mattoccia, “An Evaluation Methodology for Image Mosaicing
Algorithms”, submitted to ICVS 2008.[7] P. Azzari, L. Di Stefano, F. Tombari, S. Mattoccia “Markerless Augmented Reality for Aerial
Maintenance Assistance”, AVI 2008 (in preparation).[8] D. Capel and A. Zisserman, “Computer vision applied to super resolution”, IEEE Signal Processing
Mag., vol. 20, no. 3, pp. 75--86, 2003.[9] M. Pollefeys, L. Van Gool, M. Vergauwen, F. Verbiest, K. Cornelis, J. Tops, R. Koch, “Visual
modeling with a hand-held camera”, IJCV 59(3), 207-232, 2004.
[10] R. Hartley, A. Zisserman, “Multiple View Geometry in Computer Vision”, Cambridge University Press, 2003.
[11] E. Trucco, A. Verri, “Introductory Techniques for 3-D Computer Vision”, Prentice Hall, Inc., 1998.
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Grazie per l’attenzione
Domande?!
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Problema: Nota la distribuzione delle intensità dell’immagine in posizioni corrispondenti a coordinate intere, determinare le intensità in posizioni arbitrarie.
Processo di formazione dell’immagineLa funzione spazio-continua f(x) della luminosità della scena viene campionatadalla matrice dei pixel dando luogo alla funzione spazio-discreta F[x].
Approccio:
Determinare un’approssimazione (ricostruzione) spazio-continua f(x)’ del segnalef(x) a partire dai campioni F[x]Calcolare il valore del segnale f(x)’ nelle posizioni di interesse
Appendice: Tecniche di interpolazione
1 2 3 4 5x
f(x)
F[x]
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Ricostruzione del segnaleRicostruire un segnale continuo da campioni discreti richiede di formulare ipotesi
sul segnale f(x) per generare informazione dove i dati sono mancanti. Ipotesi: Il segnale f(x)’ è lineare a tratti interpolazione lineare
1 2 3 4 52.5
f(x)’
Ricostruzione del segnale f(x)’– Convertire F[x] in una funzione continua f(x)’
– Ricostruire f(x)’ a coordinate non intere attraverso correlazione
x
[ ],( ) '
0 altrimentiF x x
f x∈⎧
= ⎨⎩
( ) ' [ ]f x h F x= ⊗
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Interpolazione lineare
Interpolazione lineare di un segnale unidimensionale discreto F[x]
1 2 3 4=i 5x*
f(x)’
x
Definiamo i parte intera inferiore di x*
Proprietà di triangoli simili* 4i x= =
(f(x*)-F[i])/(F[i+1]-F[i]) =(x*-i)/(i+1-i)f[x*] - F[i]=(x*-i)(F[i+1]-F[i])/(i+1-i) = (x*-i)F[i+1] - (x*-i)F[i]
f(x*)’
F[i]
f(x*)= (1-a) F[i] + a F[i+1], a=x*-if(x*)= F[x] H, F[x]=(F[i],F[i+1]) e H=(a,1-a) ⊗
a
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Interpolazione bilineare
Interpolazione bilineare di un segnale bidimensionale discreto: immagine I=F[i,j]
( , )i j
( , 1)i j +
( 1, )i j+
( 1, 1)i j+ +
( , )x y
( , ) (1 ) ( , ) ( , 1)
(1 )(1 ) [ , ] (1 ) [ 1, ] [ 1, 1] (1 ) [ , 1]
f x y b f x y b f x y
a b F i j a b F i jab F i j a b F i j
= − + + =
= − − + − + ++ + + − +
( , ) (1 ) [ , ] [ 1, ]f x y a F i j a F i j= − + +
ab
( , 1) (1 ) [ , 1] [ 1, 1]f x y a F i j a F i j+ = − + + + +
( , )x y
( , 1)x y +
1. Interp lin fra (i,j) e (i,j+1)
2. Interp lin fra (i,j) e (i,j+1)
3. Interp lin fra .1 e .2
4. Interp bilin fra (i,j),(i,j+1),(i+1,j),(i+1,j+1)
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Tecniche di interpolazione a confronto
Nearest neighbor Bilinear
Ideal Butterworth
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Appendice: Geometria delle omografie
( ), , ,1X Y Z=MScena
Immagine 1
Immagine 2
In che relazione stanno le due proiezioni?
⎡ ⎤= ⎣ ⎦m K R t M′ ′ ′ ′⎡ ⎤= ⎣ ⎦m K R t M
( ), ,x y w=m( ), ,x y w′ ′ ′ ′=m
1 1− −′ ′ ′ ′ ′ ′ ′⎡ ⎤ ⎡ ⎤ ⎡ ⎤= =⎣ ⎦ ⎣ ⎦ ⎣ ⎦m K R t M K R t R t K m
1
0
, dd
−
⎡ ⎤= →⎣ ⎦⎛ ⎞
= ∈ℜ⎜ ⎟⎝ ⎠
m K I M
K mM
M
C C’
m m’
Elaborazione dell’immagine LS Pietro Azzari, Luigi Di Stefano
Geometria delle omografie1
1 dd
−−⎛ ⎞
′ ′ ′ ′ ′ ′ ′ ′⎡ ⎤= = +⎜ ⎟⎣ ⎦⎝ ⎠
K mm K R t K R K m K t
Traiettoria arbitraria R,t qualsiasi e scena planare d costante
1 1
00q
− −
⎛ ⎞⎜ ⎟′ ′ ′ ′ ′= + =⎜ ⎟⎜ ⎟⎝ ⎠
m K R K m K R K m
Pura rotazione attorno al centro di proiezione t’=01−′ ′ ′=m K R K m
1−′ ′=H K R K H è una matrice 3x3 semidefinita positiva di rango 3 nota come OMOGRAFIA