La matrice Essenziale si può ricavare in forma chiusa conoscendo le pose relative tra i sensori e, con la conoscenza dei parametri intrinseci delle camere coinvolte, è possibile ottenere la matrice Fondamentale.
L'applicazione però più diffusa della matrice Essenziale (o Fondamentale) è quella di ricavare la posa relativa tra le camere, data la conoscenza di un elenco di punti omologhi: conoscendo i parametri intrinseci si può ricavare la matrice Essenziale (e da questa ricavare la matrice Fondamentale) o senza nessuna conoscenza dei paramtri delle camere poter ricavare la matrice Fondamentale.
Il criterio per ottenere la matrice si può formalizzare come una minimizzazione di una funzione costo
Si può notare che il vincolo epipolare (9.43) può essere riscritto anche come
(9.48) |
Raccolti tutti i vincoli , si ottiene un sistema omogeneo del tipo
(9.51) |
Per ricavare la matrice Essenziale il discorso è analogo ed è soluzione di un sistema
nella forma
Ai vincoli espressi in questi sistemi omogenei, ne va sempre aggiunto uno ulteriore, per esempio , normalmente già soddisfatto dai risolutori lineari di sistemi omogenei. Questo algoritmo è pertanto chiamato eight-point algorithm in quanto la soluzione del problema richiede almeno 8 punti per essere determinata. Ulteriori vincoli, per raggiungere gli effettivi gradi di libertà delle matrici, non sono invece esprimibili sotto forma lineare.
A causa del rumore, normalmente le matrici ottenute dal sistema lineare non soddisfano il requisito che siano di rango 2 (e nel caso di matrice Essenziale, perciò con un ampio numero di gradi di libertà, che non appartengano proprio al sottospazio delle matrici Essenziali).
Una possibile soluzione a questo problema è quella di cercare la matrice più vicina a quella restituita dal sistema lineare che soddisfa però il vincolo sul rango.
Tale risultato si ottiene per esempio usando una decomposizione SVD seguita da una composizione, come suggerito da Tsai, Huang e Hartley:
(9.54) |
(9.56) |
Le matrici ottenute attraverso questo procedimento di rafforzamento soddisfano tutti i requisiti per essere matrici Fondamentali o Essenziali, ma non rappresentano una minimizzazione algebrica, ne tantomento geometrica, dei vincoli originali.
Gli algoritmi che sfruttano meno di 8 punti per estrarre una matrice Essenziale o Fondamentale si basano più o meno tutti sullo stesso principio: viene estratto il kernel multidimensionale di o , visto che la matrice Fondamentale o Essenziale deve appartenere a un elemento di questo spazio, e vengono forzati alcuni vincoli tipici del problema in questione.
In maniera non lineare è relativamente facile poter ottenere una matrice Fondamentale con soli 7 punti, considerando il fatto che la matrice , formata dagli elementi di equazione (9.50), deve essere di rango 7, in quanto 7 sono in effetti i gradi di libertà della matrice Fondamentale. Risolvendo il sistema (9.50) formato da (almeno) 7 punti si ottiene un sottospazio di dimensione 2, formato da due basi e , a cui sono associate due matrici e : nello spazio delle possibili soluzioni è necessario trovare una matrice tale che abbia rango 2 ovvero imponendo , equazione non lineare di terzo grado in . In questo caso le soluzioni reali di possono essere 1 o 3: nel caso di 3 soluzioni reali, vanno tutte e 3 valutate sui dati per individuare quella più plausibile.
Sfruttando solo 5 corrispondenze, la matrice del sistema (9.53) ha un difetto 4 di rango.
La matrice Essenziale deve essere pertanto formata come combinazione lineare delle ultime 4 colonne della matrice ottenuta dalla SVD, ovvero:
(9.58) |
La richiesta comunque di risolvere un sistema non-lineare fa diminiure i vantaggi rispetto alle soluzioni proposte in sezione 9.4.2.
La matrice (9.50) è mal condizionata: questo accade quando si cerca di risolvere un sistema lineare i cui termini noti sono formati da numeri con ordini di grandezza differenti. Il metodo proposto da Hartley (Har95) propone di migliorare la soluzione normalizzando le coordinate dei punti.
Le coordinate e vengono traslate separatamente in modo da avere centroide nullo e riscalate in modo da avere come valor medio (o valor medio del modulo) nel nuovo sistema di coordinate
e
rispettivamente.
Definiamo pertanto due matrici di trasformazione e tali che
(9.59) |
(9.60) |
Paolo medici