Subsections

Calcolo MLE dell'omografia

Per quanto riguarda il punto di vista computazionale, l'equazione (8.51) è mal condizionata in quanto ogni colonna rappresenta una quantità con un ordine di grandezza differente. Per ottenere dal punto di vista lineare una soluzione corretta è richiesta una fase precedente di normalizzazione. Hartley e Zisserman (HZ04) ricordano che la normalizzazione nella DLT è un passo essenziale e non si può ritenere puramente opzionale.

Il calcolo dell'omografia in equazione (8.52) tuttavia ha il difetto di non tenere conto dell'errore di misura sui punti. Di fatto la decomposizione SVD minimizza qualcosa che per puro caso assomiglia l'errore sul termine noto (cosa che invece proprio non viene fatta nel caso (8.51)) e in ogni caso non si riesce a valutare l'errore sulla matrice dei parametri. In questo caso specifico, dove si minimizza ai minimi quadrati un errore puramente matematico senza corrispondente geometrico, si parla di algebraic least squares (ALS).

Siccome la DLT minimizza un errore algebrico e non geometrico, anche se dal punto di vista computazionale la DLT normalizzata è migliore, potrebbe restituire risultati peggiori dal punto di fitting geometrico dei dati. La versione del sistema (8.51) normalizzato ai minimi quadrati viene indicato con normalized algebraic least squares (NALS).

Per superare il limite del calcolo sull'errore algebrico, è necessario tornare al problema originale e non cercare di trasformarlo in un problema lineare ma risolverlo, per esempio in maniera iterativa, attraverso un minimizzatore non lineare.

Se il rumore è presente solo su una delle due immagini, una funzione costo appropriata, con significato geometrico, è la distanza euclidea tra i punti misurati e i punti trasformati. Questo è chiamato normalmente errore di trasferimento (transfer error) e minimizza una funzione costo non lineare della forma

\begin{displaymath}
\argmin_\mathbf{H} \sum \Vert \mathbf{m}'_i - \mathbf{H} \mathbf{m}_i \Vert^2
\end{displaymath} (8.57)

dove $\mathbf{m}'_i$ è il punto immagine affetto da rumore gaussiano bianco, mentre il punto $\mathbf{m}_i$ è un punto perfettamente conosciuto. In tal caso la funzione che minimizza l'errore geometrico è anche quella che rappresenta la miglior stima del risultato dal punto di vista bayesiano (Maximum Likelihood Estimator o MLE).

Tuttavia quando entrambi i dati sono affetti da rumore la funzione costo (8.57) non è ottimale. Il modo più semplice per estendere la soluzione precedente consiste nel cercare di minimizzare l'errore di trasferimento diretto e l'errore di trasferimento inverso (symmetric transfer error):

\begin{displaymath}
\argmin_\mathbf{H} \sum \Vert \mathbf{m}'_i - \mathbf{H} \m...
... + \Vert \mathbf{m}_i - \mathbf{H}^{-1} \mathbf{m}'_i \Vert^2
\end{displaymath} (8.58)

In questo modo si tengono conto di entrambi i contributi nella soluzione del problema.

Questa tuttavia, non è ancora la soluzione ottima, almeno dal punto di vista statistico. Uno stimatore a massima verosomiglianza deve infatti considerare correttamente il rumore su entrambi i dati quando presente (quello che Hartley e Zisserman chiamano Gold Standard). La soluzione alternativa, di fatto quella più corretta, consiste nel minimizzare l'errore di Riproiezione.

Questa soluzione incrementa di molto la dimensione del problema in quanto si pone come obiettivo (o comunque richiede tra le incognite) anche quello di individuare i punti ottimi non affetti da rumore $\hat{\mathbf{m}}_i$ e $\hat{\mathbf{m}}'_i$:

\begin{displaymath}
\argmin_\mathbf{H} \sum \Vert \mathbf{m}'_i - \hat{\mathbf{m}}'_i \Vert^2 + \Vert \mathbf{m}_i - \hat{\mathbf{m}}_i \Vert^2
\end{displaymath} (8.59)

sotto il vincolo $\hat{\mathbf{m}'}_i = \mathbf{H} \hat{\mathbf{m}}_i$.

Nel caso ancora più generale con rumore di covarianza misurato per ogni singolo punto la metrica corretta è la distanza di mahalanobis (vedi sezione 2.4):

\begin{displaymath}
\Vert \mathbf{m} - \hat{\mathbf{m}} \Vert^{2}_{\Gamma} = (\...
...athbf{m}})^{\top} \Gamma^{-1} (\mathbf{m} - \hat{\mathbf{m}})
\end{displaymath} (8.60)

Nel caso in cui il rumore per punto sia costante la precedente espressione si riduce alla più intuitiva distanza euclidea.

Essendo una minimizzazione non lineare è richiesta tuttavia una soluzione iniziale da cui partire per trovare il minimo che soddisfa l'equazione costo: la soluzione lineare è ancora utile ed è usata come spunto iniziale per individuare un minimo sotto una metrica differente.

Lo stimatore MLE richiede l'uso di una variabile sussidiaria $\hat{\mathbf{m}}_i$ in più per ogni punto e tecniche iterative per risolvere il problema. È possibile usare come approssimazione della distanza geometrica, l'errore di Sampson, sezione 3.3.7. Il vincolo omografico (1.75) che lega i punti delle due immagini può essere scritto sotto forma di varietà $\mathcal{V}_H$ bidimensionale

\begin{displaymath}
\begin{array}{l}
h_0 u_1 + h_1 v_1 + h_2 - h_6 u_1 u_2 - h_...
...+ h_5 - h_6 u_1 v_2 - h_7 v_1 v_2 - h_8 v_2 = 0 \\
\end{array}\end{displaymath} (8.61)

da cui lo Jacobiano
\begin{displaymath}
\mathbf{J}_\mathcal{V} = \begin{bmatrix}
h_0 - h_6 u_2 & h_...
...& h_4 - h_7 v_2 & 0 & -h_6 u_1 -h_7 v_1 - h_8 \\
\end{bmatrix}\end{displaymath} (8.62)

da usare nel calcolo della distanza di Sampson (CPS05).

Propagazione dell'errore nel calcolo dell'omografia

Nel caso di errore su una singola immagine per calcolare come l'errore si propaga sulla matrice $\mathbf{H}$ è necessario calcolare lo Jacobiano della funzione costo (8.57). Esplicitando la trasformazione omografica si ottiene (HZ04)

\begin{displaymath}
\mathbf{J}_i = \frac{\partial r}{\partial \mathbf{h}} = \fra...
...& - \hat{v}'_i \mathbf{m}_i^{\top} / \hat{w}' \\
\end{bmatrix}\end{displaymath} (8.63)

con $\mathbf{m}_i = (u_i, v_i, 1)^{\top}$ e $\hat{\mathbf{m}}'_i = (\hat{u}'_i, \hat{v}'_i, \hat{w}'_i)^{\top} = \mathbf{H} \mathbf{m}_i$. Attraverso la teoria mostrata in sezione 3.5 è possibile calcolare la matrice di covarianza dei parametri dell'omografia data la covarianza sui punti $\mathbf{m}'_i$. Siccome la matrice di covarianza totale $\boldsymbol\Sigma$ del rumore sui singoli punti sarà molto sparsa, in quando punti diversi si suppone che abbiano rumore indipendente, la covarianza $\boldsymbol\Sigma_h$ sui parametri ottenuti vale (HZ04)
\begin{displaymath}
\boldsymbol\Sigma_h = \left( \sum \mathbf{J}_i^{\top} \boldsymbol\Sigma^{-1}_i \mathbf{J}_i \right)^{+}
\end{displaymath} (8.64)

con $\boldsymbol\Sigma_i$ matrice di covarianza del rumore sul singolo punto.

Paolo medici
2025-03-12