Il problema P3P e PnP

Data una camera calibrata e un insieme di corrispondenze tra punti tridimensionali del mondo $\mathbf{X}_i$ e rispettive osservazioni immagine $\mathbf{x}_i$, il problema consiste nel determinare la posa della camera, ovvero la rotazione $\mathbf{R}$ e la traslazione $\mathbf{t}$, che spiegano al meglio le osservazioni disponibili.

Questo problema è noto in letteratura come Perspective-n-Point (PnP), dove $n$ rappresenta il numero di corrispondenze tridimensionali utilizzate. Nel caso minimo teorico di tre punti il problema prende il nome di Perspective-3-Point (P3P). Nel caso ideale di una camera calibrata, tre corrispondenze 3D–2D indipendenti forniscono infatti il numero minimo di vincoli necessari per determinare la posa del sensore.

Una possibile soluzione consiste nel formulare il problema come un sistema lineare e risolverlo mediante tecniche DLT (Direct Linear Transform). Sebbene concettualmente semplice, questo approccio risulta generalmente poco accurato e numericamente instabile in presenza di rumore nelle osservazioni.

Un approccio più naturale consiste nell'osservare che una posa candidata $(\mathbf{R}, \mathbf{t})$ permette di proiettare ogni punto tridimensionale sul piano immagine. La qualità della soluzione può quindi essere misurata attraverso l'errore di riproiezione, definito come


\begin{displaymath}
E(\mathbf{R},\mathbf{t})
=
\sum_i
\left\Vert
\mathbf{x}_i -
\hat{\mathbf{x}}_i
\right\Vert^2
\end{displaymath} (9.76)

dove $\hat{\mathbf{x}}_i$ rappresenta la proiezione del punto tridimensionale $\mathbf{X}_i$ ottenuta utilizzando la posa corrente.

Il problema PnP può pertanto essere espresso come


\begin{displaymath}
(\hat{\mathbf{R}},\hat{\mathbf{t}})
=
\argmin_{\mathbf{R},\mathbf{t}}
E(\mathbf{R},\mathbf{t}),
\end{displaymath} (9.77)

ovvero come la ricerca della posa che minimizza l'errore complessivo di riproiezione.

I metodi iterativi che minimizzano direttamente tale funzione di costo forniscono normalmente risultati molto accurati ma richiedono una stima iniziale sufficientemente vicina alla soluzione corretta per evitare convergenze verso minimi locali indesiderati.

Per questo motivo sono stati sviluppati numerosi algoritmi specifici per il problema PnP, capaci di fornire una stima iniziale della posa in maniera robusta ed efficiente. Tra i più noti si possono citare EPnP (LFNP09), che introduce una formulazione lineare particolarmente efficiente del problema, e DLS (Direct Least Squares) (HR11), che affronta la stima della posa come una minimizzazione diretta ai minimi quadrati.

Nelle applicazioni pratiche la stima della posa viene normalmente ottenuta combinando un algoritmo PnP con tecniche robuste per la rimozione degli outlier, quali RANSAC, e con una successiva fase di raffinamento non lineare basata sulla minimizzazione dell'errore di riproiezione.

Il problema PnP riveste un ruolo centrale in numerose applicazioni della visione artificiale, tra cui localizzazione visuale, realtà aumentata, visual odometry, Structure from Motion e SLAM. Le principali tecniche di risoluzione verranno approfondite nei capitoli successivi dedicati alla visione multicamera e alla stima della posa.

Paolo medici
2026-10-06