Per conoscere la matrice di proiezione prospettica PPM è necessario valutare i parametri intrin- seci che costituiscono la matrice KK e quelli estrinseci relativi alle matrici R e t. I parametri intrinseci rappresentano la geometria interna della telecamera e le caratteristiche ottiche, men- tre quelli estrinseci fanno riferimento alla posizione e all’orientazione del sistema di riferimento telecamera rispetto al sistema di riferimento mondo. Il processo di misurazione di tali parametri è detto calibrazione e si basa sul presupposto che si conoscano le proiezioni di alcuni punti 3D, detti punti di calibrazione, le cui coordinate sono note. La necessità di calcolare queste due categorie di parametri, interni ed esterni, porta ad una naturale suddivisione del processo di calibrazione in:
• CALIBRAZIONE INTERNA; • CALIBRAZIONE ESTERNA.
La fase di calibrazione interna è richiesta una sola volta, mentre la fase di calibrazione esterna deve essere ripetuta ogni qualvolta le telecamere vengono spostate e/o ruotate. Infatti, per quanto detto in precedenza, i parametri interni ottenuti dalla fase di calibrazione omonima sono legati all’hardware della telecamera. Quindi, fintanto che la telecamera resta la stessa anche tali parametri rimangono invariati. Nel caso della calibrazione esterna, invece, poiché i parametri che la interessano R e t dipendono dall’orientazione e dalla posizione della telecamera, è sufficiente che questa venga mossa, anche accidentalmente, affinché si renda necessaria una nuova fase di calibrazione esterna. 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. Idea alla base di ogni algoritmo di calibrazione è che 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 . . . ).
I metodi per stimare la PPM possono essere classificati in due categorie:
• quelli che usano un’immagine di più piani, almeno 2, contenenti un pattern noto; • quelli che ne 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.
Nel pattern planare sono noti:
• il numero di corner interni della scacchiera piana, diversi lungo le due dimensioni; • la lunghezza del lato dei quadrati che la compongono.
CAPITOLO 3. CALIBRAZIONE DELLA VIDEOCAMERA 26
(a)
(b) (c) (d)
Figura 3.4: Pattern utilizzati per acquisizione
Gli angoli interni della scacchiera possono essere facilmente rintracciati nell’immagine con algoritmi standard es. Harris corner detector, con 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 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. Notare che in ogni frame avremo una diversa stima dei parametri estrinseci e se non interessa un S.d.R. 3D particolare, si può prendere i valori di un frame a caso.
Capitolo 4
Geometria Proiettiva
La ricostruzione di una scena 3D ripresa può essere schematizzata in due compiti diversi: • poiezione in avanti, Forward Projection (FP), cioè dal punto 3D (X) alla posizione del
piano immagine 2D (x);
• proiezione all’indietro, Backward Projection (BP), cioè dalle coordinate del pixel 2D al punto 3D corrispondente sulla scena.
Risolvere questi due tasks significa ottenere il modello matematico per correggere la di- storsione dovuta al fenomeno della rifrazione del biprisma. Nell’analisi di geometria proiettiva viene presa in esame l’interazione tra i raggi ottici ed il biprisma posto di fronte ad un’unica videocamera. Biprisma di materiale Plexiglass con geometria completamente nota.
Le dimensioni caratteristiche del biprisma sono (figura4.1): • altezza H pari a 20 mm;
• larghezza B pari a 20 mm; • spessore s = 1 mm;
• angolo compreso tra i due piani frontali α = 160◦.
4.1
Forward Projection
4.1.1 Schema semplificativo
Per capire i concetti alla base dello studio viene mostrato uno schema semplificato, figura 4.2, per mostrare il metodo di risoluzione, in cui si è considerato un problema piano in 2D e dove il raggio ottico che colpisce il punto X non attraversa il biprisma, ma si ferma al suo interno. Il problema reale richiede una seconda interazione con il Biprisma ma la teoria che si adotta è esattamente la stessa. Definite:
• l’origine O impostata per essere coincidente con il punto focale della videocamera;
CAPITOLO 4. GEOMETRIA PROIETTIVA 28
Figura 4.1: Immagine Biprisma elaborata con Matlab
CAPITOLO 4. GEOMETRIA PROIETTIVA 29
• ~p il versore che rappresenta il pixel da proiettare del piano immagine, inclinato di un angolo θ rispetto all’asse z;
• il versore normale alla superficie ~n e la posizione della superficie stessa.
il problema da risolvere per la proiezione in avanti consiste nel calcolare il punto di arrivo X. In questo caso semplicemente
kgk ~p k~pk = g
con due equazioni, rispetto all’asse x e z, in due incognite è possibile conoscere le coordinate del punto g. Sfruttando la legge di Snell, descritta in appendice:
n1 sin θ = n2 sin θ0
è possibile calcolare l’angolo del versore rifratto θ0. Quindi conoscendo il nuovo versore rifratto ~p0 ed il punto di intersezione g è facile dimostrare:
g + kXk ~p0 = X
si è quindi calcolata la posizione del punto X a meno di una costante; viene così definita la direzione del raggio luminoso rifratto.
4.1.2 Identificazione piano
Prima di procedere al calcolo dei versori che ci permettono di conoscere il punto di arrivo è bene identificare quale piano frontale del Biprisma verrà intersecato. Se pensiamo di posizionarci dietro la fotocamera l’immagine che ci viene rappresentata è quella di figura 4.3. Nel piano immagine della fotocamera vengono proiettati i punti che delimitano i due piani frontali del Biprisma grazie alla funzione project_points2 ed alla conoscenza dei parametri intrinseci della videocamera. (i punti non allineati stanno a significare che il biprisma ha subito una rotazione rispetto a tutti e tre gli assi cartesiani).
Identificati arbitrariamente il piano sinistro ed il piano destro, deve essere realizzata una procedura di calcolo che permette di conoscere la posizione di tutti i pixels del piano immagine, quindi:
• se si trovano all’interno del piano sinistro; • se si trovano all’interno del piano destro; • se sono all’esterno dei due piani.
Con la conoscenza della posizione del singolo pixel, tramite la funzione normalize otteniamo così il versore che parte dal centro ottico della fotocamera e passa esattamente attraverso quel pixel per poi interfacciarsi con il Biprisma.
Per sapere quindi ad esempio se un pixel (nell’immagine identificato con simbolo "+") ∈ piano sinistro si è utilizzato il prodotto vettoriale. Come procedura:
CAPITOLO 4. GEOMETRIA PROIETTIVA 30
Figura 4.3: Piano immagine fotocamera
1. si sono calcolati i versori ~x, ~y, ~z, ~t che partono rispettivamente dai punti p7p, p2p, p3p, p8p con direzione verso il punto notevole successivo percorrendo il senso orario;
2. si è passato a calcolare il prodotto vettoriale tra il versore di origine p7p e diretto verso il pixel (freccia rossa) ed il versore x;
3. il prodotto vettoriale tra il versore di origine p2p e diretto verso il pixel (freccia verde) ed y;
4. il prodotto vettoriale tra il versore di origine p3p e diretto verso il pixel (freccia blu) e z; 5. infine il prodotto vettoriale tra il versore di origine p8p e diretto verso il pixel (freccia
gialla) e t.
Se i risultati dei quattro prodotti vettoriali hanno tutti lo stesso segno → significa che il pixel ∈ appartiene al piano sinistro. Per il piano destro viene svolto esattamente lo stesso procedimento, cambiando naturalmente i punti notevoli. Se il pixel si trova all’esterno dei due piani significa che non ci sarà interazione tra raggio ottico ed il biprisma.
4.1.3 Risoluzione problema
Una volta constatato che il pixel si trova all’interno del piano frontale sinistro del biprisma, viene calcolato il versorepi_n tramite il codice Matlab precedentemente descritto normalize.~ Ottenuti poi i versori che definiscono il piano ~u ~v, direzioni parallele al piano ma non parallele tra loro, ed il punto appartenente al piano p3 è possibile risolvere il problema di intersezione tra una retta ed un piano. Retta identificata dal versore pi_n ed il punto O.~
CAPITOLO 4. GEOMETRIA PROIETTIVA 31
Figura 4.4: Forward Projection
O + tpi_n = p3 + ~~ u d1 + ~v d2
Si tratta quindi di risolvere il sistema espresso in forma vettoriale, ottenendo così gli scalari t d1 d2. Sostituendo il valore di t alla retta, si ottiene il punto di intersezione, chiamato a.
Si passa a calcolare l’angolo compreso tra il versore normale del piano frontale ~n ed il versore ~
pi_n con prodotto scalare.
ε = acos(pi_n · ~~ n) Dalla legge di Snell si ricava facilmente l’angolo rifratto ε0
ε0 = asin
sin ε cn
Per ottenere il versore rifratto pi_n1 è sufficiente ruotare il versore di partenza~ pi_n di un~ angolo pari a ε0 − ε con la matrice di rotazione asse-angolo, dove:
• θ = ε0 − ε; • cθ = cos(θ); • sθ= sin(θ); • vθ= (1 − cθ);
• e1 è il versore, normale al piano identificato da pi_n ed ~~ n, ottenuto mediante prodotto vettoriale.
~
e1 = pi_n × ~~ n sin(ε)
CAPITOLO 4. GEOMETRIA PROIETTIVA 32
(a) Versori piano frontale
(b) Punto intersezione
Figura 4.5
Re1(θ) =
e121vθ+ cθ e11e12vθ− e13 sθ e11e13vθe12 sθ e11e12vθ+ e13 e122vθ+ cθ e12e13vθ− e11 e11e13vθe12 sθ e12e13vθ+ e11 e123vθ+ cθ ~ pi_n1 = Re1(θ0) ·pi_n~
CAPITOLO 4. GEOMETRIA PROIETTIVA 33
(a) Angoli prodotti con versore normale del piano
(b) Differenza angoli
Figura 4.6
Dalla teoria e successivamente dai calcoli si nota la complanarità tra il versore incidente, la normale al piano ed il versore rifratto. Bisogna fare attenzione a non semplificare il problema ad una geometria 2D perché sebbene i tre versori siano complanari tra loro, non giacciono sullo stesso piano della seconda terna che identifica il fenomeno di rifrazione nella superficie posteriore del Biprisma.
Ottenuto il versore rifratto pi_n1 all’interno del biprisma viene eseguito lo stesso procedi-~ mento utilizzato fino adesso, per determinare: il nuovo punto di intersezione tra versore e piano posteriore, la direzione del versore finale con cui esce dal biprisma. Il procedimento consiste nel:
1. calcolare i versori ~u1, ~v1, ~n1 del piano;
2. calcolare il punto di intersezione b, tra la retta definita dal versore pi_n1 ed il punto di~ partenza a;
a + t0pi_n1 = p5 + ~~ u1 d3 + ~v1 d4
3. calcolare l’angolo compreso tra il versore normale ~n1 ed il versore pi_n1 con prodotto~ scalare;
ε00 = acos(pi_n1 · ~~ n1) 4. calcolare con la legge di Snell l’angolo ε000
ε000 = asin sin ε 00 cn1
Da notare che il coefficiente cn1 = cn−1, in quanto avviene il passaggio attraverso la superficie dal plexiglass al mezzo trasmissivo aria.
CAPITOLO 4. GEOMETRIA PROIETTIVA 34
5. calcolare il nuovo versore rifrattopi_n2 ruotando il precedente versore~ pi_n1 di un angolo~ pari a ε000 − ε00 con la matrice di rotazione:
Re2(θ0) =
e221v1θ0 + cθ0 e21e22vθ0 − e23 sθ0 e21e13vθ0e22 sθ0
e21e22vθ0+ e23 e222vθ0 + cθ0 e22e13vθ0− e21 e21e23vθ0e22 sθ0 e22e23vθ0 + e21 e22 3vθ0+ cθ0 • θ0 = ε000 − ε00; • cθ0 = cos(θ0); • sθ0 = sin(θ0); • vθ0 = (1 − cθ0);
• e2 è il versore, normale al piano identificato da pi_n1 ed ~~ n1, ottenuto mediante prodotto vettoriale. ~ e2 = pi_n1 × ~~ n1 sin(ε) ~ pi_n2 = Re2(θ0) · pi_n1~
(a) Versori piano posteriore (b) Differenza angoli
CAPITOLO 4. GEOMETRIA PROIETTIVA 35
Figura 4.8: Punti intersezione
CAPITOLO 4. GEOMETRIA PROIETTIVA 36
Per il versore che interseca il piano frontale destro del Biprisma si utilizza esattamente lo stesso procedimento e le stesse formule.
Figura 4.10: Risultato finale Forward Projection
4.2
Backward Projection
4.2.1 Schema semplificativo
Anche se il procedimento è simile, il problema consiste nel determinare il versore ~p, quindi l’angolo θ conoscendo:
• il punto nel 2D dell’oggeto X;
• il versore normale alla superficie ~n e la posizione della superficie stessa;
• l’origine O impostata per essere coincidente con il punto focale della fotocamera.
Anche in questo caso ci si è ricondotti ad un problema in 2D sul piano x − z, ordinata y è identicamente nulla. Ponendo il versore ~p0 = [x; 0;√1 − x2]
kX − gk ~p0+ X = g
con le due equazioni è possibile conoscere le coordinate del punto g in funzione della unica variabile x. Sfruttando la legge di Snell, descritta in appendice:
n2 sin θ = n1 sin θ0
è possibile calcolare angolo del versore rifratto θ, quindi conoscere il nuovo versore rifratto ~
CAPITOLO 4. GEOMETRIA PROIETTIVA 37
Figura 4.11: Schema proiezione all’indietro
g + kgk ~p = O viene così risolto il problema calcolando la variabile x.
4.2.2 Risoluzione problema
A differenza del problema di Forward Projection, si conosce il punto di arrivo del raggio ottico pxs e si devono poter ottenere i due versori che escono dal Biprisma, uno dal piano sinistro e l’altro dal piano destro che raggiungono il punto focale della videocamera stessa.
Piano sinistro
Si parte con il porre il versorepi_nr uscente dal punto pxs e diretto verso la superficie posteriore~ del Biprisma come la nostra incognita:
~ pi_nr = ˜X = X1 X2 X3
Ottenuti i versori che definiscono il piano posteriore ~u ~v, direzioni parallele al piano ma non parallele tra loro, ed il punto appartenente al piano p1 è possibile risolvere il problema di intersezione tra una retta ed un piano. Retta identificata dal versorepi_nr ed il punto pxs.~
CAPITOLO 4. GEOMETRIA PROIETTIVA 38
Figura 4.12: Backward Projection
pxs + tpi_nr = p1 + ~~ u d1 + ~v d2
Si tratta quindi di risolvere il sistema espresso in forma vettoriale, ottenendo così gli scalari t d1 d2. Sostituendo il valore di t alla retta, si ottiene il punto di intersezione, chiamato f .
Si passa a calcolare l’angolo compreso tra il versore normale del piano posteriore ~n ed il versorepi_nr con prodotto scalare.~
ε = acos(pi_nr · ~~ n) Dalla legge di Snell si ricava facilmente l’angolo rifratto ε0
ε0 = asin
sin ε cn
Per ottenere il versore rifratto pi_nr1 è sufficiente ruotare il versore di arrivo~ pi_nr di un~ angolo pari a ε0 − ε con la matrice di rotazione asse-angolo, dove:
• θ = ε0 − ε; • cθ = cos(θ); • sθ= sin(θ); • vθ= (1 − cθ);
• e1 è il versore, normale al piano identificato dapi_nr ed ~~ n, ottenuto mediante prodotto vettoriale.
CAPITOLO 4. GEOMETRIA PROIETTIVA 39
Figura 4.13: Versori piano posteriore e punti di intersezione
~ e1 = pi_nr × ~~ n sin(ε) Re1(θ) = e121vθ+ cθ e11e12vθ− e13 sθ e11e13vθe12 sθ e11e12vθ+ e13 e122vθ+ cθ e12e13vθ− e11 e11e13vθe12 sθ e12e13vθ+ e11 e123vθ+ cθ
~
pi_nr1 = Re1(θ0) ·pi_nr~
Ottenuto il versore rifratto pi_n1 all’interno del biprisma viene eseguito lo stesso procedi-~ mento utilizzato finora per determinare il nuovo punto di intersezione tra versore ed il piano frontale e la direzione del versore finale con cui esce dal Biprisma. Procedimento consiste nel:
1. calcolare i versori ~u1, ~v1, ~n1 del piano frontale sinistro, rispetto al punto p2;
2. calcolare il punto di intersezione g, tra la retta definita dal versore pi_nr1 ed il punto di~ partenza f , con il piano frontale sinistro;
g + t0pi_nr1 = p2 + ~~ u1 d3 + ~v1 d4
3. calcolare l’angolo compreso tra il versore normale del piano frontale sinistro ~n1 ed il versore ~
pi_nr1 con prodotto scalare;
CAPITOLO 4. GEOMETRIA PROIETTIVA 40
Figura 4.14: Versori piano frontale sinistro e punti di intersezione
4. calcolare con la legge di Snell l’angolo ε000
ε000 = asin sin ε 00 cn1
5. calcolare il nuovo versore rifratto pi_nr2 ruotando il precedente versore~ pi_nr1 di un~ angolo pari a ε000 − ε00 con la matrice di rotazione asse-angolo:
Re2(θ0) = e221v1θ0 + cθ0 e21e22vθ0 − e23 sθ0 e21e13vθ0e22 sθ0 e21e22vθ0+ e23 e22 2vθ0 + cθ0 e22e13vθ0− e21
e21e23vθ0e22 sθ0 e22e23vθ0 + e21 e223vθ0+ cθ0
• θ0 = ε000 − ε00; • cθ0 = cos(θ0); • sθ0 = sin(θ0); • vθ0 = (1 − cθ0);
• e2 è il versore, normale al piano identificato da pi_nr1 ed ~~ n1, ottenuto mediante prodotto vettoriale.
~
e2 = pi_nr1 × ~~ n1 sin(ε)
~
CAPITOLO 4. GEOMETRIA PROIETTIVA 41
Figura 4.15: Risultato finale Backward Projection
Ricordiamo sempre che il versore finale ottenuto èpi_nr2 = f (~ pi_nr) = f ( ˜~ X). Conoscen- do i parametri intrinseci della fotocamera si proietta il punto g nel piano immagine attraverso la funzione Matlab project_points2 in modo tale da conoscere il pixel (pgs) associato al punto. Ottenuta così la funzione finale:
F = pi_nr2 t + g − pg1~ dove:
• t = k(g − pg1)k;
• g è il punto di intersezione tra il versore ed il piano frontale; • pg1 è il punto g proiettato nel piano immagine.
Per risolvere il problema di proiezione all’indietro si tratta solo di trovare gli zeri della funzione F . In questa tesi è stata utilizzata una risoluzione dei minimi quadrati non lineari:
min x kf (x)k 2 2 = minx f1(x)2+ f2(x)2 . . . fn(x)2
avendo l’unica accortezza di dare un valore iniziale plausibile a ˜X. In questo modo il problema si riduce a determinare i parametri che minimizzano la Funzione.
Piano destro
Ottenuta la soluzione del piano sinistro si utilizza lo stesso punto 3D pxs per calcolare questa volta il versore che interseca il piano frontale destro del biprisma. Viene utilizzato esattamente lo stesso procedimento e le stesse formule.
CAPITOLO 4. GEOMETRIA PROIETTIVA 42
Capitolo 5
Calibrazione Modello con Biprisma
La calibrazione è l’operazione in cui uno strumento di misura viene regolato in modo da miglio- rarne l’accuratezza. L’operazione richiede il confronto con delle misure di riferimento prodotte utilizzando uno strumento campione. La calibrazione ha come obiettivo quello di rendere lo strumento più accurato e migliorarne la precisione, in questo caso si tratta di correggere le distorsioni dovute al fenomeno della rifrazione del biprisma. Chiaramente il modello classico di stereovisione non è più corretto perchè con l’utilizzo del biprisma all’immagine acquisita si aggiunge una distorsione che naturalmente deve essere corretta. L’aberrazione è dovuta ad un indice di rifrazione differente del plexiglass rispetto all’aria e dall’utilizzo di una videocamera non perfetta.