Coordinate Mondo e Coordinate Camera

Figura 6.2: Coordinate Immagine (Image coordinates)
Image fig_imagecoord

Figura 6.3: Coordinate Camera (Camera coordinates)
Image fig_cameracoord

Figura 6.4: Coordinate Mondo ISO 8855 (World coordinates)
Image fig_worldcoord

Quando si analizzano immagini risulta necessario passare da un sistema di riferimento solidale con la camera, dove il punto $ (0,0,0)^{\top}$ coincide con il fuoco (pin-hole) del sistema, a un sistema di riferimento più generico, che meglio si adatta alle esigenze dell'utilizzatore, dove la camera è posizionata in un punto del mondo e orientata rispetto ad esso in modo arbitrario. Allo stesso modo risulta comodo usare un sistema cartesiano dove l'asse $ z$ rappresenta l'altezza del punto dal suolo piuttosto che la distanza dal pin-hole come in coordinante camera.

Per arrivare all'equazione definitiva della pin-hole camera si parte dall'equazione 6.4 da cui si considera che il pin-hole non sia nel punto $ (0,0,0)^{\top}$ ma in un generico punto $ \mathbf{t}_{0} = (x_{0}, y_{0}, z_{0})^{\top}$ espresso in coordinate mondo, che la camera possa essere ruotata in maniera arbitraria e non coincidere con gli assi del sistema e infine si siano cambiati di segno e di orientazione gli assi. Il cambiamento degli assi è dettata dalle esigenze delle coordinate omogenee per cui, in coordinate camera, la coordinata $ \tilde{z}$ deve rappresentare la distanza dal pin-hole (la quantità da dividere nella proiezione prospettica) mentre, in coordinate mondo ISO 8855, la coordinata $ z$ rappresenta invece l'altezza 6.1.

Sia $ (x_{i},y_{i},z_{i})^{\top}$ un punto in coordinate mondo, e $ (\tilde{x}_{i},\tilde{y}_{i},\tilde{z}_{i})^{\top}$ il medesimo punto nelle coordinate camera. La relazione che lega questi due punti si può scrivere come

$\displaystyle \begin{bmatrix}\tilde{x}_{i}  \tilde{y}_{i}  \tilde{z}_{i} \e...
...{R} \begin{bmatrix}x_{i}  y_{i}  z_{i} \end{bmatrix} + \tilde{\mathbf{t}}_0$ (6.13)

dove $ \mathbf{R}$ è una matrice $ 3 \times 3$ che converte da coordinate mondo a coordinate camera, tiene conto delle rotazioni e della variazione del segno degli assi tra coordinate mondo e coordinate camera (vedi sezione B), mentre il vettore

$\displaystyle \tilde{\mathbf{t}}_{0} = -\mathbf{R} \mathbf{t}_0$ (6.14)

rappresenta la posizione del pin-hole $ \mathbf{t}_0$ rispetto all'origine del sistema mondo, rappresentato però nel sistema di coordinate camera.

Va ricordato che le matrici di rotazione hanno determinante 1, conservano distanze e aree, e l'inversa di una matrice di rotazione è la sua trasposta.

La matrice $ \mathbf{R}$ e il vettore $ \mathbf{t}_{0}$ possono venire accorpati in forma di matrice $ 3\times4$ (sfruttando l'omogeneità delle coordinate). Grazie a questa rappresentazione, è possibile scrivere in maniera estremamente compatta la proiezione di un punto in coordinate mondo $ (x_{i},y_{i},z_{i})^{\top}$ in coordinate immagine $ (u_{i},v_{i})^{\top}$:

$\displaystyle \lambda \begin{bmatrix}u_{i}  v_{i}  1 \end{bmatrix} = \mathb...
...thbf{\tilde{t}}_{0} ] \begin{bmatrix}x_{i}  y_{i}  z_{i}  1 \end{bmatrix}$ (6.15)

Da questa equazione risulta abbastanza esplicito che a ogni punto dell'immagine $ (u_{i},v_{i})$ sono associati infiniti punti del mondo $ (x_{i},y_{i},z_{i})^{\top}$ che vivono su una retta al variare del parametro $ \lambda$.

Sottointendendo $ \lambda$ e raccogliendo le matrici si ottiene l'equazione finale della pin-hole camera (che non tiene ne deve tener conto della distorsione):

$\displaystyle \begin{bmatrix}u_{i}  v_{i}  1 \end{bmatrix} = \mathbf{K} [ \...
...bmatrix} = \mathbf{P} \begin{bmatrix}x_{i}  y_{i}  z_{i}  1 \end{bmatrix}$ (6.16)

avendo definito $ \mathbf{P} = \mathbf{K} [ \mathbf{R} \vert \mathbf{\tilde{t}}_0 ]$ matrice proiettiva (camera matrix) che verrà usata in seguito [34]. La matrice $ \mathbf{P}$ è anche essa una matrice $ 3\times4$ ed, essendo rettangolare, non è invertibile.

È da sottolineare che ponendo un vincolo aggiuntivo sui punti, per esempio $ z_{i}=0$, la matrice $ \mathbf{P}$ si riduce a una matrice $ 3 \times 3$, invertibile, che è esattamente la matrice omografica (vedi sezione 6.3) della trasformazione prospettica dei punti del suolo. La matrice $ \mathbf{P}_{z=0}$ è un esempio di trasformazione IPM (Inverse Perspective Mapping) per ottenere una vista dall'alto (Bird eye view) della scena inquadrata [30].

Per quanto riguarda l'inversione, se si considera il sistema di partenza (6.13), si possono mettere in evidenza i due contributi spaziali che determinano la proiezione:

$\displaystyle \lambda \begin{bmatrix}u_{i}  v_{i}  1 \end{bmatrix} = \mathb...
...atrix}x_{i}  y_{i}  z_{i} \end{bmatrix} - \mathbf{K}\mathbf{R} \mathbf{t}_0$ (6.17)

Da questa rappresentazione il sistema inverso (che trasforma punti immagine in coordinate mondo) si può scrivere come:

$\displaystyle \begin{bmatrix}x_{i}  y_{i}  z_{i} \end{bmatrix} = \lambda \m...
... \end{bmatrix} + \mathbf{t}_0 = \lambda \mathbf{v}(u_{i}, v_{i}) + \mathbf{t}_0$ (6.18)

dove risulta ben evidente che a ogni punto dell'immagine corrisponde una retta (al variare di $ \lambda$) nel mondo che passa per il pin-hole ( $ \mathbf{t}_0$) e diretta nella direzione

$\displaystyle \mathbf{v}(u_i,v_i) = \mathbf{R}^{-1} \mathbf{K}^{-1} \begin{bmatrix}u_{i}  v_{i}  1 \end{bmatrix}$ (6.19)



Subsections
Paolo Medici 2012-05-02