Matrice Essenziale e matrice Fondamentale

Nel 1981, Christopher Longuet-Higgins (Lon81) osserva per primo che un generico punto espresso in coordinate mondo, i rispettivi punti in coordinate camera e i pin-hole devono essere tra loro coplanari. La derivazione geometrica delle relazioni che intercorrono tra i punti viene tralasciata ma viene presentata direttamente quella analitica.

È stato più volte ripetuto che un punto su un'immagine sottende una retta nel mondo, e la retta nel mondo proiettata su un altra immagine, acquisita da una camera posta in un punto di vista differente, rappresenta la retta epipolare dove giace l'omologo del punto della prima immagine. Tale equazione, che lega punti di un'immagine con rette nell'altra, può essere espressa attraverso una forma matriciale.

Per seguire il ragionamento di Higgins, la matrice dei parametri intrinseci verrà sottintesa e le coordinate usate saranno quelle camera normalizzate.

Senza perdere generalità, si consideri pertanto un sistema costituito da due camere, la prima posizionata e orientata rispetto alla seconda con matrice di proiezione $\mathbf{P}_1=[\mathbf{R}\vert\mathbf{t}]$ mentre la seconda è posta nell'origine del sistema di riferimento allineata con gli assi ovvero con matrice di proiezione $\mathbf{P}_2=[\mathbf{I}\vert\mathbf{0}]$: si può giungere al medesimo risultato partendo da due generiche camere calibrate, arbitrariamente orientate e posizionate rispetto ad un sistema terzo, attraverso le relazioni $\mathbf{R} = \prescript{2}{}{\mathbf{R}}_{1} = \mathbf{R}^{-1}_{2} \mathbf{R}_{1}$ e $\mathbf{t}$, ovvero posizione della camera 1 rispetto al sistema 2.

Un generico punto $\mathbf{x} \in \mathbb{R}^3$ ha coordinata $\mathbf{x}_1$ e $\mathbf{x}_2$ nei due diversi sistemi di riferimento e viene proiettato sui sensori 1 e 2 nei punto in coordinate camera $\mathbf{m}_1$ e $\mathbf{m}_2$ rispettivamente.

Questi punti immagine sappiamo che sottendendo un sottospazio di $\mathbb{R}^3$ di equazione per esempio $\lambda \mathbf{m}_2$ passante per il pin-hole del secondo sensore (qui imposto ad essere in $\mathbf{0}$) ovvero

\begin{displaymath}
\mathbf{x}_2 = \lambda_2 \mathbf{m}_2 + \mathbf{0}
\end{displaymath} (9.36)

Un generico punto $\mathbf{x}_1 = \lambda_1 \mathbf{m}_1$ espresso in coordinate del sensore 1 e osservato da quel sensore può venire proiettato in coordinate del sensore 2 in accordo con l'equazione

\begin{displaymath}
\mathbf{x}_2 = \prescript{2}{}{ \mathbf{R}_1 } \mathbf{x}_1 + \mathbf{t}
\end{displaymath} (9.37)

L'equazione della retta epipolare, retta in coordinate camera nel secondo sensore e luogo dei punti dove deve giacere $\mathbf{m}_2$, associata al punto $\mathbf{m}_1$ (osservato e pertanto espresso in coordinate camera del primo sensore), risulta essere

\begin{displaymath}
\lambda_2 \mathbf{m}_2 = \lambda_1 \prescript{2}{}{ \mathbf{R}_1 } \mathbf{m}_1 + \mathbf{t}
\end{displaymath} (9.38)

Il luogo dei punti omogenei $\mathbf{m}_2$ si ottiene facendo variare il parametro $\lambda_1$ e questa retta in $\mathbb{R}^3$ risulta essere una retta anche in $\mathbb{R}^2$. Se due punti sono effettivamente omologhi, il sistema è risolvibile ed è possibile ricavare i parametri $\lambda_1$ e $\lambda_2$ (questo è un esempio di ricostruzione tridimensionale tramite triangolazione come si è visto in sezione 9.3.1).

Esiste tuttavia una relazione che mette in relazione i punti delle due camere cancellando i parametri $\lambda$ ma soprattutto permette di fare il ragionamento inverso ovvero quello di ricavare la posa relativa tra le due camere $\left( \mathbf{R}, \mathbf{t} \right)$ dato un elenco di punti omologhi.

Se si moltiplicano entrambi i lati dell'equazione (9.38), prima vettorialmente per $\mathbf{t}$, poi scalarmente per $\mathbf{m}^{\top}_{2}$, si ottiene infatti

\begin{displaymath}
\lambda_2 \mathbf{m}^{\top}_{2} \left( \mathbf{t} \times \ma...
...thbf{m}^{\top}_{2} \left( \mathbf{t} \times \mathbf{t} \right)
\end{displaymath} (9.39)

Su tale relazione è possibile applicare le proprietà del prodotto vettoriale $\mathbf{t} \times \mathbf{t}=\textbf{0}$ e scalare $\mathbf{m}_2 \cdot \left( \mathbf{t} \times \mathbf{m}_2 \right)=0$.

Questo passaggio ha un significato fisico: vengono per prima di tutto inseriri i vincoli di coplanarità (tutti espressi per esempio nel reference 2) tra i punti $\mathbf{0}$ (pinhole della camera 2), $\mathbf{m}_2$, $\prescript{2}{}{ \mathbf{R}_1 } \mathbf{m}_1 + \mathbf{t}$, $\mathbf{x}_2 = \prescript{2}{}{ \mathbf{R}_1 } \mathbf{x}_1 + \mathbf{t}$ e $\mathbf{t}$ (pinhole della camera 1 nel sistema 2), e uniti con il fatto che il corpo è rigido.

Attraverso questa formula, è possibile esprimere le relazioni che intercorrono tra i punti omologhi $\mathbf{m}_1$ e $\mathbf{m}_2$, rappresentati sotto forma di coordinate camera omogenee, in una forma molto compatta

\begin{displaymath}
\mathbf{m}^{\top}_{2} \left( \mathbf{t} \times \mathbf{ R } \mathbf{m}_1 \right) = 0
\end{displaymath} (9.40)

Indicando infine con $[\mathbf{t}]_{\times}$, matrice antisimmetrica, il prodotto vettoriale in forma matriciale (sezione 1.7), è possibile raccogliere i diversi contributi sotto forma di matrice
\begin{displaymath}
\mathbf{E} = [\mathbf{t}]_{\times} \mathbf{R} = \mathbf{R} \left[ \mathbf{R}^{\top} \mathbf{t} \right]_{\times}
\end{displaymath} (9.41)

dove va ricordato bene il significato delle matrici confrontando con l'equazione (9.37). Si può definire in questo modo una relazione lineare che lega i punti camera delle due viste
\begin{displaymath}
\mathbf{m}^{\top}_{2} \mathbf{ E } \mathbf{m}_1 = 0
\end{displaymath} (9.42)

La matrice $\mathbf{E}$ è definita Matrice Essenziale.

Bisogna infine stare molto attenti agli indici perché non c'è una convenzione unica per indicare i punti 1 e 2: supponendo la convenzione (9.41) soddisfatta quello che bisogna ricordarsi è che matrice $\mathbf{E}$ codifica la posa relativa della camera dei punti a destra (nel nostro caso $\mathbf{m}_1$) della matrice $\mathbf{E}$ rispetto alla camera dei punti a sinistra (nel nostro caso $\mathbf{m}_2$) della matrice.

La matrice $\mathbf{E}$, mettendo in relazioni punti omogenei, è anch'essa omogenea e pertanto definita a meno di un fattore moltiplicativo.

La matrice Essenziale ha le seguenti proprietà:

La matrice Essenziale crea delle relazioni in coordinate camera e pertanto, per poterla utilizzare da un punto di vista pratico, è necessario avere a disposizione punti espressi in questo particolare sistema di riferimento, ovvero è necessario conoscere i parametri intrinseci delle camere coinvolte.

L'equazione

\begin{displaymath}
\mathbf{m}^{\top}_{2} \left( \mathbf{ E } \mathbf{m}_1 \right) = 0
\end{displaymath} (9.43)

può essere interpretata come equazione anche di un piano nello spazio $2$ passante per $\mathbf{0}$, ovvero il piano epipolare formato dai due epipoli e dal punto mondo, piano dove il punto $\mathbf{m}_{2}$ deve appartenere.

È tuttavia possibile introdurre una ulteriore relazione tra i punti delle immagini, trascurando completamente i parametri intrinseci delle camere stesse.

Se si applica la definizione di coordinate camera omogenee $\mathbf{p} = \mathbf{K} \mathbf{m}$ nella relazione (9.42) si ottiene

\begin{displaymath}
\mathbf{m}^{\top}_2 \mathbf{E} \mathbf{m}_1 =
\mathbf{p}^{\t...
...1} \mathbf{p}_1 =
\mathbf{p}^{\top}_2 \mathbf{F} \mathbf{p}_1
\end{displaymath} (9.44)

La matrice Fondamentale (Fundamental matrix) è definita (Faugeras e Hartley, 1992) come:

\begin{displaymath}
\mathbf{p}^{\top}_{2} \mathbf{ F } \mathbf{p}_1 = 0
\end{displaymath} (9.45)

dove $\mathbf {p}_1$ e $\mathbf {p}_2$ sono coordinate, sempre omogenee, dei punti omologhi rispettivamente sulla prima e sulla seconda immagine.

Se due punti sulle due immagini della coppia stereoscopica rappresentano lo stesso punto nel mondo, l'equazione (9.45) deve essere soddisfatta.

La matrice fondamentale permette di restringere l'intervallo di ricerca di corrispondenze tra le due immagini in quanto, per il dualismo punto-retta, dalla relazione (9.45) si può esplicitare il luogo dei punti nella seconda immagine dove cercare i punti della prima. Infatti l'equazione di una linea dove i punti $\mathbf{m_2}$ ed $\mathbf{m_1}$ devono vivere è descritta da

\begin{displaymath}
\begin{array}{l}
\mathbf{l}_2 = \mathbf{F} \mathbf{m}_1 \\
\mathbf{l}_1 = \mathbf{F}^{\top} \mathbf{m}_2 \\
\end{array}\end{displaymath} (9.46)

dove $\mathbf{l}_1$ ed $\mathbf{l}_2$ sono i parametri della retta epipolare, appartenente alla prima e seconda immagine rispettivamente, scritta in forma implicita.

La relazione che intercorre tra la matrice Fondamentale e la matrice Essenziale risulta essere, equazione (9.44),

\begin{displaymath}
\mathbf{E} = \mathbf{K}^{\top}_{2} \mathbf{F} \mathbf{K}_{1}
\end{displaymath} (9.47)

o viceversa
\begin{displaymath}
\mathbf{F} = \mathbf{K}^{-\top}_{2} \mathbf{E} \mathbf{K}^{...
...\top}_{2} [\mathbf{t}]_{\times} \mathbf{R} \mathbf{K}^{-1}_{1}
\end{displaymath} (9.48)

La matrice Essenziale raccoglie in sxE9 le pose relativa tra le camere, mentre la matrice Fondamentale nasconde sia i parametri intrinseci che la posa relativa.

La matrice Essenziale introduce vincoli uguali a quelli della matrice Fondamentale ma, anche se introdotta storicamente prima della matrice Fondamentale, ne è un caso particolare perchxE9 esprime le relazioni rispetto a coordinate camera.

$\mathbf{F}$ è una matrice $3 \times 3$ di rango 2 e per essere determinata bastano 7 punti, in quanto i gradi di libertà risultano essere appunto solamente 7 (un fattore moltiplicativo e il determinante nullo riducono la dimensione del problema). La relazione che lega la matrice Fondamentale ai 7 gradi di libertà è una relazione non lineare (relazione non facilmente esprimibile attraverso una qualche rappresentazione algebrica). Con (almeno) 8 punti si riesce invece ad ottenere una stima lineare della matrice, come descritto nella sezione successiva.

La matrice Fondamentale ha le seguenti proprietà:

Figura 9.3: La matrice Fondamentale permette di individuare le rette epipolari, immagine destra, su cui vivono i punti omologhi dei punti dell'immagine sinistra.
Image fig_fundamental

Le matrici Fondamentale ed Essenziale possono essere usate per restringere il campo di ricerca dei punti omologhi tra due immagini e/o filtrare via eventuali outlier (ad esempio in RANSAC). La matrice Essenziale, se decomposta, permette di ricavare la posa relativa tra le due camere e in quanto tale dare una idea, approssimata, del movimento che ha subito una camera che si sposta nel mondo (motion stereo) o della posa relativa di due camere in una coppia stereoscopica (Auto-Calibrazione).

L'uso della matrice Essenziale permette di ricavare la posa relativa tra due viste. Non è però possibile conoscere la lunghezza della baseline che unisce i due pin-hole, ma solo la sua direzione. Tuttavia, avendo a disposizione la matrice Essenziale, è sempre possibile eseguire una ricostruzione tridimensionale della scena osservata a meno di un fattore moltiplicativo: i rapporti tra le distanze sono conosciuti, ma non il loro valore assoluto. Questo permette però, quando si osserva la medesima scena da più di due viste differenti, una ricostruzione tridimensionale coerente, dove per tutte le viste il fattore moltiplicativo sconosciuto rimane sempre lo stesso, permettendo perciò di fondere tutte le singole ricostruzioni in un'unica ricostruzione conosciuta a meno del medesimo fattore di scala.



Subsections
Paolo medici
2025-03-12