...

Modello della Telecamera, Calibrazione e Rettificazione

by user

on
Category: Documents
32

views

Report

Comments

Transcript

Modello della Telecamera, Calibrazione e Rettificazione
A.A. 2010/2011
Elaborazione dell'immagine M
Modello della Telecamera, Calibrazione e
Rettificazione
Samuele Salti, Luigi Di Stefano
Proiezione prospettica
•
Consideriamo
M=[x,y,z]T
– un punto dello spazio 3D, M=[x,y,z]T, le
cui coordinate sono espresse nel sistema
di riferimento (sdr) solidale con la
telecamera (sdr “standard”).
C
– La sua proiezione sul piano immagine I,
indicata con m=[u,v]T
•
Le equazioni, non lineari, che
esprimono le coordinate immagine in
funzione delle coordinate 3D sono date
da:
⎧
⎪⎪u =
⎨
⎪v =
⎪⎩
x
m=[u,v]T
u
c
f
z
v
I
y
f
x
z
f
y
z
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Spazio Proiettivo
•
Lo spazio fisico è uno spazio euclideo 3D (R3) in cui i punti, una volta fissato un
sistema di riferimento, si possono rappresentare con vettori tridimensionali.
– In questo spazio si dice che le rette parallele non si intersecano, o si intersecano “all’infinito”
– La rappresentazione di questi punti all’infinito non è possibile in questo spazio vettoriale.
•
•
Immaginiamo di aggiungere una coordinata alle nostre terne, per es.
( x y z ) diventa ( x y z 1)
e consideriamo entrambe le ennuple rappresentazioni valide dello stesso punto.
In aggiunta, non vincoliamo la quarta coordinata ad essere 1, ma definiamo
(x
•
•
•
y
z 1) ≡ ( 2 x 2 y 2 z 2 ) ≡ ( kx ky kz k ) ∀k ≠ 0
In questa rappresentazione, un punto dello spazio è quindi identificato da una classe
di equivalenza di quadruple, dove quadruple equivalenti differiscono solo per un
fattore moltiplicativo.
Questa è la cosiddetta rappresentazione in coordinate omogenee del punto (x, y, z).
Lo spazio ottenuto rappresentando i punti in coordinate omogenee è detto spazio
proiettivo, P3.
È immediata l’estensione a spazi euclidei di qualunque dimensione (Rn Pn)
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Punti all’infinito
• Gli unici punti che non hanno un corrispondente nello spazio euclideo, sono i
punti per cui la nuova coordinata vale 0, es (x, y, z, 0).
• L’ipotetico corrispondente (inesistente nello spazio euclideo) sarebbe
rappresentato dalle coordinate (x/0, y/0, z/0), ovvero “coordinate infinite”.
• Usando le coordinate omogenee è quindi possibile rappresentare
analiticamente i punti all’infinito come
tutti i punti la cui ultima coordinata vale 0.
• Il punto di coordinate (0, 0, 0, 0) non è definito.
– Questo punto NON è l’origine del sistema di riferimento scelto per lo spazio
euclideo (0, 0, 0), il quale ha coordinate omogenee (0, 0, 0, k), k≠0.
3
• Si può dimostrare che tutti i punti all’infinito di P giacciono su un piano, che
prende il nome di piano all’infinito.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Un esempio in R2
• Considerando il sistema che definisce l’intersezione di due rette
⎧ ax + by + c = 0
⎨
⎩a′x + b′y + c′ = 0
questo ha soluzioni (Teorema di Cramer)
−c b
− c ′ b′
x=−
a b
a ′ b′
a −c
a ′ − c′
y=−
a b
a′ b′
• Se le rette sono parallele, il denominatore si annulla, e quindi non c’è
soluzione (o impropriamente, la soluzione è un punto “all’infinito”).
• Se le rette sono distinte, almeno uno dei tre valori presenti nella formula è
comunque non nullo.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Un esempio in R2
⎛
⎜
⎜x =
⎜
⎜
⎝
−c b
−c′ b′
,
a b
a′ b′
a −c ⎞
⎟
a ′ − c′ ⎟
y=
a b ⎟
⎟
a′ b′ ⎠
≡
⎛ −c b
,
⎜
′
′
−
c
b
⎝
a −c
,
a ′ − c′
P2
a b⎞
⎟
a′ b′ ⎠
R2
• Mantenendo le tre coordinate separate, e usando la rappresentazione in
coordinate omogenee, si passa nello spazio proiettivo P2.
• In questo spazio proiettivo il sistema precedente ha sempre una soluzione,
quella indicata dalla formula in alto.
• Si può facilmente verificare che il punto all’infinito di un fascio di rette si
rappresenta in coordinate omogenee aggiungendo uno zero ad un qualsiasi
vettore euclideo diretto come il fascio:
⎡bc '− b ' c ⎤ ⎡ −b ⎤ ⎡b ⎤ ⎡ −b '⎤ ⎡b ' ⎤
⎢ a ' c − ac '⎥ ≈ ⎢ a ⎥ ≈ ⎢ − a ⎥ ≈ ⎢ a ' ⎥ ≈ ⎢ − a '⎥
⎢
⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢⎣ 0
⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦ ⎢⎣ 0 ⎥⎦
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Riassumendo
n
• Ogni spazio euclideo R può essere esteso in una nuova struttura geometrica,
n
il cosiddetto spazio proiettivo P , rappresentandone i punti in coordinate
omogenee.
• La rappresentazione in coordinate omogenee prevede l’aggiunta di una nuova
coordinata k allo spazio vettoriale
– k ≠ 0 rappresenta punti effettivi di Rn le cui coordinate sono xi/k, i = 1…n
– k = 0 rappresenta punti ideali di Rn , i cosiddetti punti all’infinito.
• Questa nuova struttura permette quindi di rappresentare e trattare
analiticamente in maniera omogenea (senza introdurre eccezioni o casi speciali)
anche i punti all’infinito.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Proiezione prospettica in coord. omogenee (1)
• Abbiamo visto che sussiste una relazione non lineare tra le coordinate della
scena e quelle del punto immagine:
u=
f
f
x v= y
z
z
• Torniamo al nostro punto M e alla sua proiezione prospettica m, le cui
coordinate euclidee nel S.d.R. Standard e in quello immagine avevamo
definito rispettivamente come M = [x,y,z ]T e m = [u,v ]T .
• Espresse in coordinate omogenee (che indicheremo sempre con una tilde
sovrastante il vettore) le loro rappresentazioni diventano:
⎡u ⎤
= ⎢v ⎥
m
⎢ ⎥
⎢⎣ 1 ⎥⎦
Elaborazione dell'immagine M
⎡ x⎤
⎢ y⎥
=⎢ ⎥
M
⎢z⎥
⎢ ⎥
⎣1 ⎦
Samuele Salti, Luigi Di Stefano
Proiezione prospettica in coord. omogene (2)
• In coordinate omogenee (e quindi considerando la trasformazione come tra
spazi proiettivi), la proiezione prospettica diviene una trasformazione lineare.
⎡ x⎤
⎢f z⎥
⎡u ⎤ ⎢
⎥ ⎡ fx ⎤ ⎡ f
⎢ v ⎥ = ⎢ f y ⎥ = ⎢ fy ⎥ = ⎢ 0
⎢ ⎥ ⎢ z⎥ ⎢ ⎥ ⎢
⎢⎣ 1 ⎥⎦ ⎢
⎥ ⎢⎣ z ⎥⎦ ⎢⎣ 0
1
⎢
⎥
⎢⎣
⎥⎦
• Usando la notazione matriciale
= PM
km
0
f
0
⎡ x⎤
0 0⎤ ⎢ ⎥
y⎥
⎥
⎢
0 0⎥
⎢z⎥
1 0 ⎥⎦ ⎢ ⎥
⎣1 ⎦
Esempi
-VP fascio generico
- VP fascio // asse z
- VP fascio // piano immagine
o anche, dove ≈ indica “uguale a meno di un fattore di scala arbitrario”
≈ PM
m
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
La matrice di proiezione prospettica
rappresenta il modello geometrico della telecamera, e viene
• La matrice P
detta matrice di proiezione prospettica (PPM).
• Nel caso in cui le distanze sono misurate in unità di distanze focali ( f = 1) la
PPM diviene
⎡1 0 0 0⎤
P = ⎢0 1 0 0⎥ = [I | 0]
⎢
⎥
⎢⎣0 0 1 0⎥⎦
• Questa forma “estrema” della PPM rappresenta l’essenza della proiezione
prospettica. Ad essa si fa sovente riferimento come matrice di proiezione
prospettica “standard” o “canonica”.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Un modello più realistico
• Per rendere più realistico il nostro modello in un sistema di acquisizione reale
è necessario tenere conto:
– della digitalizzazione dell’immagine;
– della trasformazione rigida tra la telecamera e la scena (roto-traslazione).
Z
X
x
Y
O
u
C
v
R, T
f
c=[uo, vo]T
z
I
y
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Digitalizzazione
Δu
Δv
c (u0,,v0)
Δu=dimensione orizzontale del pixel
Δv=dimensione verticale del pixel
f
x
z
f
v= y
z
u=
1
Δu
1
→v=
Δv
→u =
f
x = ku
z
f
y = kv
z
f
x + u0
z
f
y + v0
z
La digitalizzazione viene considerata inserendo nelle formule di proiezione lo
scaling lungo i due assi dovuto alla quantizzazione del piano immagine
nonché la traslazione del piercing point (punto principale) dovuta alla scelta
del sistema di riferimento dell’immagine (angolo in alto a sinistra).
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
La matrice degli intrinseci
• Tenendo conto delle nuove relazioni, la PPM può essere riscritta come:
⎡ fku
⎢
P = ⎢ 0
⎢ 0
⎣
0
fkv
u0
v0
0
1
0 ⎤ ⎡ fku
⎥ ⎢
0⎥ = ⎢ 0
0 ⎥⎦ ⎢⎣ 0
0
fkv
0
u0 ⎤ ⎡ 1 0
⎥⎢
v0 ⎥ ⎢0 1
1 ⎥⎦ ⎢⎣0 0
0 0⎤
⎥
0 0 ⎥ = A [ I | 0]
1 0 ⎥⎦
• La matrice A, che modella le caratteristiche del sensore, è detta matrice dei
parametri intrinseci.
• I parametri intrinseci possono essere ridotti al minimo necessario ponendo
αu=fku , αv=fkv : si tratta della lunghezza focale espressa in pixel orizzontali e
verticali. I parametri intrinseci minimi sono quindi 4.
• Il modello più generale prevede un quinto parametro nella matrice degli
intrinseci, detto skew, che rappresenta l’angolo tra gli assi del sistema di
riferimento del sensore. La sua cotangente occuperebbe la posizione A[1,2],
ma in pratica è sempre 0 ( = ctg(π/2) ).
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Trasformazione rigida fra i S.d.R. (1)
• Quanto visto finora si basava sull’assunzione di un S.d.R. per la scena molto
particolare, coincidente con quello standard della telecamera.
• Più in generale il S.d.R. della scena sarà legato a quello standard da
– una rotazione intorno al centro ottico (modellabile da una matrice ortogonale R)
– uno spostamento (modellabile da un vettore di traslazione t)
• La relazione tra le coordinate di uno stesso punto nei due S.d.R. è dunque
⎡X ⎤
⎡x⎤
W = ⎢⎢Y ⎥⎥ , M = ⎢⎢ y ⎥⎥ ⇒ M = RW + T
⎢⎣ Z ⎥⎦
⎢⎣ z ⎥⎦
che, passando in coordinate omogenee, può essere riscritta come:
⎡X ⎤
⎡x ⎤
⎢Y ⎥
⎢ y⎥
= ⎢ ⎥,M
=⎢ ⎥⇒M
= ⎡R T⎤ W
= GW
W
⎢
⎥
⎢Z ⎥
⎢z ⎥
⎣ 0 1⎦
⎢ ⎥
⎢ ⎥
1
⎣ ⎦
⎣1 ⎦
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Trasformazione rigida fra i S.d.R. (2)
Fino ad adesso abbiamo visto che
= A [ I | 0] M
km
• Considerando anche la trasformazione fra i S.d.R. :
= GW
M
= A [ I | 0] GW
km
⎡R T⎤ = A [ I | 0] ⎢
km
W
⎥
⎣ 0 1⎦
• La forma generale di una PPM è quindi
P = A [ I | 0] G ovvero P = A [ R | T]
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Parametri estrinseci
• La matrice G, che modella la posizione della telecamera rispetto alla scena, è
detta matrice dei parametri estrinseci.
• Una generica matrice di rotazione (che ha 9 elementi) è definita da 3
parametri indipendenti, che corrispondono ai valori degli angoli di rotazione
rispetto agli assi del S.d.R. I parametri estrinseci sono quindi 3+3 = 6.
• La PPM più generale tiene quindi conto degli effetti del sensore, tramite A,
della posizione del S.d.R. mondo grazie a G e della proiezione prospettica
incarnata da [ I|0 ].
• Esistono anche effetti dovuti alle distorsioni introdotta dalle lenti che
possono essere modellati tramite un vettore di parametri, detti di distorsione
radiale e tangenziale. Questo vettore comunque non modifica la forma della
PPM, che si basa solo sul modello pin-hole puro.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Influenza della lenti
• La forma così ottenuta della PPM si basa sul modello pin-hole puro.
• In sistemi di acquisizione reali esistono anche effetti dovuti alle distorsioni
introdotte dalle lenti, specialmente per lenti a focale corta e basso costo. La
deviazione più importante è dovuta a fenomeni di distorsione radiale
(“curvatura” delle lenti). Effetti secondari sono introdotti da distorsioni
tangenziali(“decentramento” dei componenti di un sistema di lenti e difetti
di produzione).
• Questi fenomeni sono modellati tramite una relazione non lineare tra i punti
effettivamente “osservati” sul piano immagine e i punti ideali (non distorti)
⎛ x'⎞
⎛ x ⎞ ⎛ dx ⎞
L
r
=
( )⎜ ⎟ + ⎜ ⎟
⎜ ⎟
⎝ y '⎠
⎝ y ⎠ ⎝ dy ⎠
Barrel
dipendente dalla distanza r dal centro
Pincushion
di distorsione ( xc , y c )
r=
( x − xc ) + ( y − yc )
2
Elaborazione dell'immagine M
2
Samuele Salti, Luigi Di Stefano
Coefficienti di distorsione
• La funzione di distorsione radiale L(r) è definita solo per r positivi e L(0) = 1.
Questa funzione non lineare viene tipicamente approssimata tramite il suo
sviluppo di Taylor ( fino all’n-simo ordine, a seconda della precisione voluta )
L ( r ) = 1 + k1r 2 + k2 r 4 + k3 r 6 + ...
• Il vettore di distorsione tangenziale viene invece approssimato con
+ p2 ( r 2 + 2 x 2 ) ⎞
⎛ dx ⎞ ⎛⎜ 2 p1 xy
⎟
⎜ ⎟=
2
2
⎟
⎝ dy ⎠ ⎜⎝ p1 ( r + 2 y ) + 2 p2 xy
⎠
• I coefficienti per la correzione della distorsione radiale k1, k2,…, kn insieme al
centro di distorsione radiale ( xc , y c ) e i due coefficienti di distorsione
tangenziale p1e p2 ampliano e completano l’insieme dei parametri intrinseci del
modello standard di una telecamera. Tipicamente si assume, per semplicità,
che il centro di distorsione radiale coincida con il centro dell’immagine.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
La distorsione ottica nel processo di
formazione dell’immagine
• La distorsione ottica è di solito modellata come una trasformazione che
avviene dopo la proiezione delle coordinate 3D sul piano immagine. Dopo di
che, la matrice degli intrinseci applica una trasformazione affine all’immagine,
traslando coordinate fisiche sul piano immagine in coordinate pixel.
• Il modello di formazione dell’immagine prevede quindi i seguenti passi:
1.
Passare dal sistema di riferimento 3D mondo a quello 3D standard della
telecamera, come indicato dagli estrinseci:
M = Rw + T
2.
Proiettare prospetticamente, ovvero dividere per la terza coordinata:
3.
Applicare le deformazioni dovute al modello delle lenti:
⎛ x'⎞
⎛ x ⎞ ⎛ dx ⎞
L
r
=
(
)
⎜ ⎟
⎜ ⎟+⎜ ⎟
⎝ y '⎠
⎝ y ⎠ ⎝ dy ⎠
4.
Passare dal sistema di riferimento 2D standard a quello in coordinate pixel,
secondo la matrice dagli intrinseci:
T
x = x / z ,
y = y / z
m = A(x'
Elaborazione dell'immagine M
y ')
Samuele Salti, Luigi Di Stefano
Calibrazione (1)
• Abbiamo definito un modello analitico del processo di formazione
dell’immagine.
• Questo modello è rappresentato dalla PPM, che a sua volta può essere
decomposta in tre elementi indipendenti, i parametri intrinseci (la matrice A),
la rotazione R e la traslazione T.
• La calibrazione di un sistema di visione consiste nella stima il più possibile
accurata dei parametri che definiscono questo modello per ogni telecamera
che compone il sistema. A seconda della applicazione è sufficiente stimare
solo la PPM oppure è necessario stimare separatamente le matrici A, R e T.
• Idea alla base di ogni algoritmo di calibrazione: conoscendo la corrispondenza
tra proiezioni 2D e punti 3D di coordinate note, è possibile riscrivere
l’equazione della proiezione prospettica come un sistema lineare con i
parametri come incognite e quindi risolverlo.
• Per ottenere queste corrispondenze, si usano oggetti di forma nota
(scacchiere, pattern ripetitivi, …)
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Calibrazione (2)
• I metodi per la calibrazione possono
essere classificati in due categorie:
– Quelli che usano un’immagine di molti
(almeno 2) piani contenenti un pattern
noto.
– Quelli che usano molte (almeno 3)
immagini diverse di uno stesso
pattern piano.
• Nella pratica è molto più difficile
procurarsi oggetti 3D adatti, con piani
perfettamente ortogonali piuttosto che
un pattern planare che può invece essere
costruito con buona precisione.
• Sono disponibili tools standard per la
calibrazione (OpenCV, Matlab Camera
Calibration Toolbox..)
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Metodo di Zhang (1)
Acquisire n immagini di un
pattern con m corner interni
Per ogni immagine:
stima di una guess iniziale di
omografia Hi
Stima di una guess iniziale per
A a partire dalle Hi
Dato A e Hi stima di una
guess iniziale per Ri e Ti
Stima di una guess iniziale per
i parametri di distorsione k
Raffinamento di ogni
omografia Hi minimizzando
l’errore di riproiezione
Elaborazione dell'immagine M
Raffinamento di A, Ri, Ti, k
minimizzando l’errore di
riproiezione
Samuele Salti, Luigi Di Stefano
Metodo di Zhang (2)
• Sono noti
– il numero di corner interni della scacchiera piana, diversi lungo le due dimensioni.
– la lunghezza del lato dei quadrati che la compongono
• Gli angoli interni della scacchiera possono essere facilmente rintracciati
nell’immagine con algoritmi standard (es. Harris corner detector, eventuale
raffinamento sub-pixel per maggior precisione).
• In ogni frame si fissa il sistema di riferimento 3D nell’angolo in alto a sinistra
della scacchiera con il piano z=0 coincidente con il pattern e gli altri due assi
orientati come la scacchiera, in modo che sia mantenuta sempre la stessa
associazione tra assi e dimensioni della scacchiera (es x = righe, y = colonne).
– La terza coordinata sarà sempre 0.
– La x e la y si ricavano grazie alla lunghezza del lato dei quadrati, che è noto.
• Due passi per derivare i parametri:
– Guess iniziale ottenuta con ottimizzazione lineare (minimizza errore algebrico)
– Raffinamento ottenuto con ottimizzazione non lineare (min errore geometrico)
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Estrinseci ottenuti
• Notare che in ogni frame avremo una diversa stima dei parametri estrinseci.
– Se non interessa un S.d.R. 3D particolare, si può prendere quello associato ad un
frame a caso, p. es. il primo.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
P come omografia
• Con il S.d.R. scelto, in ogni frame si considerano solo punti 3D per cui z=0.
L’equazione di proiezione prospettica diventa quindi:
⎡ p1,1
=⎢ p
= Pw
km
⎢ 2,1
⎢⎣ p3,1
p1,2
p1,3
p2,2
p3,2
p2,3
p3,3
⎡ x⎤
p1,4 ⎤ ⎢ ⎥ ⎡ p1,1
⎥ y
⎢
p2,4 ⎥ ⎢ ⎥ = ⎢ p2,1
⎢0⎥
⎥
p3,4 ⎦ ⎢ ⎥ ⎢⎣ p3,1
⎣1⎦
p1,2
p2,2
p3,2
p1,4 ⎤ ⎡ x ⎤
⎥
′
p2,4 ⎥ ⎢ y ⎥ = Hw
⎢ ⎥
p3,4 ⎥⎦ ⎢⎣ 1 ⎥⎦
• H è nota come omografia, e rappresenta la forma più generale di
trasformazione lineare tra piani. Con w’ si è indicato il vettore (x; y; 1). Si può
pensare H come una semplificazione di P nel caso di oggetti planari.
• Se abbiamo una scacchiera con m corner, possiamo impostare m sistemi di 3
equazioni lineari come quello appena illustrato, in cui le coordinate 3D e 2D
dei punti sono note grazie alle corrispondenze individuate nell’immagine
i-sima e le 9 incognite sono gli elementi di Hi. In realtà, Hi, così come Pi, è
nota a meno di un fattore di scala, e quindi i parametro indipendenti sono
soltanto 8.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Stima di Hi (1)
• A partire dall’equazione dell’omografia, si ottiene
⎡hh1T1 ⎤
′ − h T2 w
′⎤
⎡ vh3T w
⎢ ⎥
⎢
⎥
= Hw
× Hw
′ ⇒ m
′ = 0 ⇒ ⎢ h1T w
′ − uh3T w
′ ⎥ = 0, H = ⎢hhT22 ⎥
km
T
⎢hh3T3 ⎥⎦
⎢uh T2 w
⎥
′
′
ovvero
h
w
v
−
1
⎣
⎣
⎦
⎡ 0T
⎢
T
′
w
⎢
⎢ ′T
⎣ −vw
′T
−w
0T
′T
uw
′T ⎤ ⎡ h1 ⎤
vw
⎥⎢ ⎥
′T ⎥ ⎢h 2 ⎥ = Ah = 0
−uw
0T ⎦⎥ ⎢⎣ h3 ⎥⎦
• Di queste tre equazioni in 9 incognite solo due sono linearmente indipendenti
e tipicamente si mantengono le prime due. Sfruttando tutte le corrispondenze
trovate, si costruisce per ogni immagine un sistema di 2m equazioni in 9
incognite e si ottiene una prima stima di Hi minimizzando un “errore
algebrico” dato dalla norma del vettore Ah ed imponendo l’ulteriore vincolo
che
h = 1 (Algoritmo DLT)
• La soluzione standard del problema precedente si ottiene mediante la
decomposizione ai valori singolari (SVD) della matrice A.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Stima di Hi (2)
• Usando questa stima iniziale, si raffina poi Hi risolvendo ai minimi quadrati
mediante l’algoritmo di Levenberg-Marquardt il problema non-lineare
j − Hi w
′j ,
min ∑ j m
2
Hi
j = 1.....m
• Questo passo di ottimizzazione corrisponde alla minimizzazione dell’errore
ottenuto confrontando, per ogni vertice della scacchiera, le coordinate pixel
effettivamente misurate sull’immagine con la proiezione mediante l’omografia
stimata delle coordinate 3D (con z=0) note. Questo tipo di errore è detto
“errore geometrico”.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Stima dei parametri intrinseci (1)
• Hi è nota a meno di un fattore di scala. La sua relazione con i parametri della
PPM è dunque
H = [ h1 h 2
h 3 ] = [ p1 p 2
p 4 ] = λ A [r1 r2
T]
• R è una matrice ortogonale, i suoi vettori sono ortonormali. Questo vincola i
parametri intrinseci ad obbedire alle seguenti relazioni:
r1Tr2 = 0
⇒ h1T A − T A −1h 2 = 0
r1Tr1 = r2Tr2
⇒ h1T A − T A −1h1 = h 2T A − T A −1h 2
in cui le incognite sono i parametri di B=A-TA-1 . Poiché A è triangolare
superiore, B è simmetrica e le incognite sono solo 6.
• Impilando queste due equazioni calcolate per ogni immagine, si ottiene un
sistema lineare 2n x 6, risolvibile se sono disponibile almeno 3 immagini (vedi
slide successiva per maggiori dettagli)
Elaborazione dell’immagine M
Samuele Salti, Luigi Di Stefano
Stima dei parametri intrinseci (2)
• Fatte le seguenti posizioni
⎛ B11
⎜
B = A − T A −1 = ⎜ B12
⎜B
⎝ 13
B12
B22
B23
hi = [ hi1 , hi 2 , hi 3 ] ,
B13 ⎞
T
⎟
B23 ⎟ , b = [ B11 , B12 , B22 , B13 , B23 , B33 ]
B33 ⎟⎠
v ij T = ⎡⎣ hi1h j1 , hi1h j 2 + hi 2 h j1 , hi 2 h j 2 , hi 3 h j1 + hi1h j 3 , hi 3h j 2 + hi 2 h j 3 , hi 3h j 3 ⎤⎦
si può osservare che
hiT B h j = v ij Tb
h1T Bh 2 = 0
⇒ v12Tb = 0
h1T Bh1 = h T2 Bh 2 ⇒ v11Tb = v 22 Tb ⇒ ( v11 − v 22 ) b = 0
T
• Quindi ogni immagine fornisce 2 equazioni nei 6 parametri indipendenti di B,
e con n immagini di calibrazione si ottiene un sistema lineare omogeneo
risolvibile ai minimi quadrati: Vb = 0
• Dai valori di b è possibile poi ricavare in forma chiusa gli intrinseci, cioè A.
Elaborazione dell’immagine M
Samuele Salti, Luigi Di Stefano
Stima dei parametri estrinseci
• Nota A, e avendo stimato Hi in ogni frame, è possibile derivare prima Ri e poi
Ti per ogni frame.
H i = ⎡⎣h1,i
h 2,i
h k ,i = λ Ark ,i
h3,i ⎤⎦ = λ A ⎡⎣r1,i
r2,i
Ti ⎤⎦
⇒ λrk ,i = A −1h k ,i , k = 1, 2
• Poiché rk,i ha norma unitaria (è un versore), risulta
λ = λrk ,i
• r3 si può ricavare dal vincolo di ortonormalità con r1 ed r2 come
• Infine Ti
r3,i = r1,i × r2,i
Ti =
Elaborazione dell’immagine M
1
λ
A −1h3,i
Samuele Salti, Luigi Di Stefano
Stima dei coefficienti di distorsione (1)
• Data la stima delle omografie, abbiamo sia le coordinate reali (distorte)
provenienti dall’immagine dei punti del pattern sia le coordinate ideali (nondistorte) date dalla proiezione dei punti 3D attraverso le omografie. Il metodo
di Zhang prevede di sfruttare queste informazioni per stimare i coefficienti
k1,k2 della distorsione radiale.
• Data la matrice degli intrinseci (già stimata), A, ed il modello della distorsione
ottica:
⎛ x'⎞
⎛ x ⎞
2
4 ⎛ x⎞
⎜ ⎟ = L ( r ) ⎜ ⎟ = (1 + k1r + k2 r ) ⎜ ⎟
⎝ y '⎠
⎝ y⎠
⎝ y⎠
va innanzitutto determinato il legame fra le coordinate pixel distorte (u’,v’) e
quelle ideali (u, v ) :
⎡ u '⎤
⎡ x ' ⎤ ⎛ αu
⎢ v ' ⎥ = A ⎢ y '⎥ = ⎜ 0
⎢ ⎥
⎢ ⎥ ⎜
⎢⎣1 ⎥⎦
⎢⎣1 ⎥⎦ ⎝⎜ 0
0
αv
0
Elaborazione dell'immagine M
u '− u0
⎧
u0 ⎞ ⎡ x ' ⎤ ⎪ x ' =
αu
⎟⎢ ⎥ ⎪
v0 ⎟ ⎢ y '⎥ → ⎨
v '− v0
⎪
⎟
=
y
'
⎢
⎥
1 ⎠ ⎣1 ⎦
⎪⎩
αv
u − u0
⎧
⎡u ⎤
⎡ x ⎤ ⎪ x =
αu
⎢v ⎥ = A ⎢ y ⎥ → ⎪
⎢ ⎥
⎢ ⎥ ⎨
v − v0
⎢⎣1 ⎥⎦
⎢⎣1 ⎥⎦ ⎪ y =
⎪⎩
αv
Samuele Salti, Luigi Di Stefano
Stima dei coefficienti di distorsione (2)
⎧ u '− u0
− u0 ⎞
2
4 ⎛u
=
1
+
k
r
+
k
r
( 1 2 )⎜ α ⎟
⎪
α
x
'
x
⎡ ⎤
⎪ u
⎝ u ⎠
2
4 ⎡ ⎤
=
1
k
r
k
r
+
+
→
(
)
1
2
⎢ y '⎥
⎢ y ⎥ ⎨
− v0 ⎞
⎣ ⎦
⎣ ⎦ ⎪ v '− v0
2
4 ⎛v
1
k
r
k
r
=
+
+
( 1 2 )⎜ α ⎟
⎪ α
⎝ v ⎠
⎩ v
•
⎧u ' = u + ( k1r 2 + k2 r 4 ) ( u − u0 )
⎪
E’ possibile quindi impostare un sistema in cui
⎨
2
4
v
'
=
v
+
k
r
+
k
r
(
) ( v − v0 )
⎪
1
2
le incognite sono i coefficienti di distorsione radiale: ⎩
⎡( u − u0 ) r 2
⎢
2
−
v
v
r
(
)
0
⎣
( u − u0 ) r 4 ⎤ ⎡ k1 ⎤ ⎡u '− u ⎤
=⎢
⎥
4⎥⎢
( v − v0 ) r ⎦ ⎣ k2 ⎦ ⎣ v '− v ⎥⎦
2
⎛ u − u0 ⎞ ⎛ v − v0 ⎞
r2 = ⎜
⎟ +⎜
⎟
α
α
⎝ u ⎠ ⎝ v ⎠
2
• Disponendo di m punti in n immagini, si può impostare un sistema lineare di
2mn equazioni in 2 incognite, risolvibile ai minimi quadrati.
Dk = d → k = D+ d = ( DT D ) DTd
-1
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Ottimizzazione non-lineare
• La procedura seguita fino a qui minimizza un errore algebrico, senza alcun
significato fisico.
• In presenza di rumore, risulta più robusto raffinare il risultato tramite una
Maximum Likelihood Estimate (MLE) basata su un errore geometrico.
• Facendo l’ipotesi di rumore indipendente e identicamente distribuito, la MLE
per il nostro modello risulta
n
m
∑∑ m
i =1 j =1
ij
ˆ ( A, k , R i , Ti , w j )
−m
2
• Questo problema è risolvibile ai minimi quadrati in modo non lineare grazie
all’algoritmo di Levenberg-Marquardt.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Calibrazione camera stereo
• Fino a qui abbiamo visto come si possono calibrare 2 telecamere
singolarmente, ovvero come ottenere
– Parametri intrinseci e coefficienti di distorsione
– Parametri estrinseci, ovvero la trasformazione rigida dal S.d.R. standard della
camera ad un S.d.R. mondo arbitrario (p.es. relativo al pattern di calibrazione)
• Calibrare un sistema di 2 telecamere contemporaneamente, implica conoscere
in aggiunta a queste informazioni la trasformazione rigida tra una
telecamera e l’altra, R e T.
• In teoria, la conoscenza degli estrinseci rispetto ad uno stesso sistema di
riferimento per tutte le telecamere (p.es. quelli relativi al primo frame per ogni
camera), consentirebbe di ottenere questa informazione, componendo le
trasformazioni Gi(Gj)-1
– N.B. Questo implica camere sincronizzate in HW o pattern fermo!
• Questo metodo è però poco robusto nei confronti del rumore e può portare a
risultati molto lontani dalla struttura reale del sistema di acquisizione.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Calibrazione camera stereo
• Come prima si effettua la stima di una guess iniziale per R e T e poi si
minimizza l’errore di riproiezione.
• Guess iniziale: mediana dei valori di Ri e Ti per ogni coppia di immagini,
ricavati da Gi(Gj)-1.
– Ri convertito in un vettori di 3 elementi con la trasformata di Rodriguez.
• Quindi ottimizzazione non lineare con l’algoritmo di Levenberg-Marquardt
minimizzando l’errore di riproiezione in entrambe le immagini
n
m
∑ ∑∑ m
k = L , R i =1 j =1
Elaborazione dell'immagine M
k
ij
ˆ ( A, k , R, T, w j )
−m
2
Samuele Salti, Luigi Di Stefano
SdR di un sistema stereo
• Ottenuta la calibrazione di un sistema stereo, si opera tipicamente una scelta
standard per la definizione del sistema di riferimento mondo della coppia di
camere.
• In particolare si sceglie il sistema di riferimento standard di una delle due
camere, per esempio la sinistra. Gli estrinseci della camera destra sono così
rappresentati dalle matrici di rotazione e traslazione appena calcolate. Le PPM
corrispondenti sono quindi
P L = A L ⎡⎣I 0 ⎤⎦ P R = A R ⎡⎣ R T ⎤⎦
z = zL
fL
cL
zR
R, T
x = xL
fR
xR
cR
Samuele Salti, Luigi Di Stefano
Rettificazione
•
•
•
•
•
•
Quando si lavora con sistemi stereo, è
normale fare l’assunzione di lavorare
con un sistema stereo laterale.
È impossibile ottenere questa configurazione tramite allineamento meccanico.
Se si è calibrata la coppia stereo è però
possibile rettificare via software le
immagini acquisite.
L’idea che sta dietro la rettificazione `e quella di definire due nuove PPM, P1e P2,
ottenute ruotando le matrici originali attorno ai loro centri ottici finché i piani
focali non diventano co-planari (e quindi anche i piani immagine).
Inoltre, per garantire che i punti coniugati abbiano le stesse coordinate verticali, si
impone che le nuove PPM abbiano gli stessi parametri intrinseci.
Tutto il processo si basa sul modello pin-hole puro: le trasformazioni calcolate
devono essere applicate su immagini da cui siano state rimosse le
distorsioni.
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Nuove PPM
• Noti Ai ,Ri e il centro ottico ci per entrambe le camere si procede come segue:
– Si assume una nuova matrice degli intrinseci Anew arbitraria: p. es. la media
delle Ai
– Si ricava la nuova matrice Rnew, che determina l’orientazione della telecamera,
anch’essa identica per entrambe le PPM. Tenendo presente che i vettori riga di
Rnew rappresentano gli assi X, Y, e Z, del sistema di riferimento della telecamera,
espressi in coordinate mondo, si può ottenere un sistema laterale imponendo
• nuovo asse X parallelo alla linea di base
• nuovo asse Y perpendicolare a nuovo X e
versore arbitrario k
• nuovo asse Z perpendicolare a X e Y
r1 = ( c 2 − c1 ) / c 2 − c1
r2 = k ∧ r1
r3 = r1 ∧ r2
k è un versore arbitrario, tipicamente il vecchio asse Z di una delle due telecamere.
• Le nuove PPM sono dunque A [ R
new
new
Elaborazione dell'immagine M
− R new c1 ] , A new [ R new
− R new c 2 ]
Samuele Salti, Luigi Di Stefano
Il centro ottico
• Si può dimostrare che ogni PPM è definita da una matrice di rango massimo,
pari a 3, e viceversa ogni matrice 3x4 di rango massimo definisce una
proiezione prospettica.
– Intuitivamente : il rango massimo è necessario, altrimenti la proiezione di un
punto non sarebbe un punto ma un sottospazio di dimensione maggiore (retta,
piano, …)
• Ricordando che (0,0,0) non rappresenta alcun punto in coordinate omogenee,
segue che un punto che appartiene al kernel (soluzioni del sistema omogeneo
associato) della matrice è un punto per cui la proiezione non è definita.
• Dal rango massimo segue che il kernel di questa matrice ha dimensione uno
nello spazio omogeneo, ovvero contiene un unico punto effettivo. Il centro
ottico è infatti l’unico punto dello spazio per cui la proiezione non è definita,
ed ha quindi equazione:
P ⎡c ⎤ = 0 ovvero c = − P −1p
4
⎢ ⎥
⎣1⎦
Elaborazione dell'immagine M
con P = ⎡⎣ P p 4 ⎤⎦
Samuele Salti, Luigi Di Stefano
Scomposizione della PPM
• I metodi di calibrazione visti forniscono già A, R e T separatamente.
• È comunque sempre possibile ricavare gli elementi che compongono la PPM.
Questo è possibile perché ogni matrice quadrata non singolare si può
decomporre nel prodotto tra una matrice ortogonale e una triangolare
superiore tramite la fattorizzazione QR.
−1
• Sia dunque P = UL la fattorizzazione QR dell’inversa di P, con U
ortogonale e L triangolare superiore.
• Poiché
P = ⎡⎣ P p 4 ⎤⎦ = ⎡⎣ AR AT ⎤⎦ ⇒ P −1 = R −1A −1 ⇒
R = U −1 , A = L−1
• Infine, per ricavare T
T = A −1p 4 = Lp 4
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Trasformazioni di rettificazione
• Per rettificare un’immagine
dobbiamo calcolare la
trasformazione che mappa il piano
immagine della telecamera reale in
quello della telecamera rettificata.
• Poiché la trasformazione che
abbiamo imposto attraverso il
calcolo delle nuove PPM
rappresenta una rotazione intorno
al centro ottico, possiamo scrivere
le equazioni dei raggi ottici come
o1 λo ∈ R, P o1 = [ Po1 p o1 ]
⎧⎪ w = c1 + λo Po−11m
⎨
−1
n1 λn ∈ R, P n1 = [ Pn1 p n1 ]
⎪⎩w = c1 + λn Pn1 m
da cui si ricava poi l’omografia di
rettificazione
n1 = λ Pn1Po−11m
o1 λ ∈ R
m
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Esempio
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Principali Riferimenti Bibliografici
1) R. Hartley and A. Zisserman, “Multiple View Geometry in Computer
Vision”, 2° Edition, Cambridge University Press, 2003.
2) Z. Zhang, “A flexible new technique for camera calibration”, IEEE Trans.
On Pattern Analysis and Machine Intelligence, 22(11):1330-1334, November
2000.
3) A. Fusiello, “Visione Computazionale – Appunti delle lezioni”,
http://profs.sci.univr.it/~fusiello
Elaborazione dell'immagine M
Samuele Salti, Luigi Di Stefano
Fly UP