Contents — find the section you need
I punti corrispondenti sullo "stesso piano" — un tavolo, un poster, la superficie di una strada — catturati in due immagini sono correlati da una relazione molto più semplice rispetto a una scena 3D generica. Indipendentemente dalla posizione della telecamera, i punti su quel piano possono essere trasformati l'uno nell'altro utilizzando semplicemente una singola matrice 3\times3. Questa matrice è l'omografia (una trasformazione proiettiva). Mentre l'introduzione alla geometria epipolare si occupa di vincoli di corrispondenza che presuppongono la profondità della scena, l'omografia rappresenta un caso opposto in quanto gestisce corrispondenze che non dipendono affatto dalla profondità — e solo sapendo utilizzare entrambe in modo appropriato si ottiene un quadro completo della geometria a due viste.
0. Riepilogo di 30 secondi
-
Una matrice di omografia H è una matrice 3\times3 che rappresenta una corrispondenza di immagine \tilde{\mathbf{x}}'\sim H\tilde{\mathbf{x}}, sia per punti sullo stesso piano che per una telecamera in rotazione pura. Ha 8 gradi di libertà, a meno di ambiguità di scala.
-
Il metodo DLT (Direct Linear Transform) costruisce due equazioni lineari per ogni corrispondenza di punto e risolve H linearmente tramite SVD a partire da 4 o più corrispondenze. La normalizzazione di Hartley è efficace per la stabilizzazione numerica.
-
Poiché le corrispondenze reali includono discrepanze, i valori anomali vengono rimossi con RANSAC prima della stima finale. La dimensione minima del campione è di 4 punti, il che mantiene il numero di iterazioni di stima robusta inferiore rispetto alla stima della matrice essenziale/fondamentale.
-
Data una telecamera calibrata, la decomposizione nella forma H=K(R+\mathbf{t}\mathbf{n}^\mathsf{T}/d)K^{-1} si articola in rotazione R, direzione di traslazione e normale al piano \mathbf{n} — sebbene in generale rimangano diverse soluzioni candidate fisicamente plausibili, e siano necessarie ulteriori informazioni per restringere il campo.
-
Per scene planari o pura rotazione, l'omografia è un modello più appropriato rispetto alla Matrice Essenziale o Fondamentale. Non rilevare questa degenerazione significa tentare forzatamente una ricostruzione 3D in una situazione in cui il recupero della profondità è fondamentalmente impossibile.
1. Cos'è l'omografia: Trasformazione proiettiva planare
Quando le coordinate omogenee \tilde{\mathbf{x}}=(x,y,1)^\mathsf{T} e \tilde{\mathbf{x}}'=(x',y',1)^\mathsf{T} su due immagini soddisfano la relazione
tramite una matrice 3\times3 H, chiamiamo H un'omografia. \sim significa uguale a meno di una scala: moltiplicare H per una qualsiasi costante diversa da zero rappresenta la stessa trasformazione, quindi i gradi di libertà di H sono 9-1=8.
2. Stima tramite il metodo DLT
Da una singola corrispondenza (x,y)\to(x',y'), possiamo derivare un vincolo lineare su ciascun elemento h_1,\dots,h_9 di H (scrivendo \mathbf{h}=\operatorname{vec}(H)). Espandendo la condizione che il prodotto vettoriale \tilde{\mathbf{x}}'\times H\tilde{\mathbf{x}}=\mathbf{0} si annulla, otteniamo le seguenti due equazioni indipendenti per corrispondenza.
Con 4 corrispondenze, si ottengono 8 equazioni che (in posizione generale) determinano univocamente l'equazione H a 8 gradi di libertà. Nel caso realistico in cui siano disponibili 5 o più corrispondenze, si trova la soluzione ai minimi quadrati per A\mathbf{h}=\mathbf{0} per la matrice A che concatena tutte le corrispondenze, ovvero il vettore singolare destro corrispondente al valore singolare più piccolo di A, tramite SVD. Questo è il metodo DLT (Trasformazione Lineare Diretta).
Proprio come con l'algoritmo a 8 punti nella geometria epipolare, l'utilizzo diretto delle coordinate dei pixel grezzi tende ad essere numericamente mal condizionato. L'implementazione standard è la DLT normalizzata di Hartley: si applica una trasformazione di similarità T,T' all'insieme di punti di ciascuna immagine in modo che abbia centroide zero e distanza media \sqrt{2}, si risolve in quel sistema di riferimento normalizzato, quindi si ritrasformano le coordinate con H=T'^{-1}H_{\text{norm}}T.
3. Stima robusta tramite RANSAC
Poiché le corrispondenze reali includono discrepanze, applicare la DLT direttamente a ogni corrispondenza permette ai valori anomali di distorcere gravemente la soluzione. RANSAC ripete i seguenti passaggi:
-
Selezionare casualmente 4 corrispondenze e formulare un'ipotesi per H tramite DLT.
-
Per ogni corrispondenza, calcolare l'errore di riproiezione tra la posizione prevista da H e il punto corrispondente effettivo.
-
Adottare l'ipotesi con il maggior numero di corrispondenze (inlier) entro la soglia.
-
Risolvere nuovamente la DLT utilizzando tutti gli inlier finali e, se necessario, terminare con l'ottimizzazione non lineare (minimizzazione diretta dell'errore di riproiezione).
Il numero di iterazioni necessarie può essere stimato, dati un rapporto inlier w, una dimensione minima del campione s=4 e una probabilità di successo target p, come segue:
A parità di rapporto inlier, il metodo s=4 dell'omografia richiede un numero di iterazioni inferiore rispetto alla stima della Matrice Essenziale/Fondamentale, che ne richiede da s=5 a 8. Questo è uno dei motivi per cui è prassi comune, subito dopo la corrispondenza SIFT o ORB, eseguire prima una verifica geometrica approssimativa con l'omografia prima di passare alla stima 3D completa.
4. Decomposizione di H: Estrazione di rotazione, traslazione e normale al piano
Se la telecamera è calibrata e i parametri intrinseci K_1,K_2 sono noti, l'omografia normalizzata \tilde H = K_2^{-1}HK_1 può essere scritta, utilizzando la normale unitaria al piano \mathbf{n} (nel sistema di coordinate della telecamera 1), la distanza dal piano d e la posa relativa R,\mathbf{t}, come
Se la telecamera subisce una rotazione pura senza traslazione, \mathbf{t}=\mathbf{0}, quindi \tilde H=R è la matrice di rotazione stessa.
Il processo di recupero di R,\mathbf{t}/d,\mathbf{n} da \tilde H è chiamato decomposizione dell'omografia. Sono noti diversi algoritmi, tra cui il classico metodo di Faugeras-Lustman e il metodo analitico di Malis-Vargas, che ottengono una soluzione in forma chiusa utilizzando la decomposizione agli autovalori di \tilde H^\mathsf{T}\tilde H. Tuttavia, puramente dal punto di vista matematico, possono rimanere fino a 4 soluzioni fisicamente possibili (incluse quelle corrispondenti a inversioni di segno o riflessioni). In pratica, queste vengono ridotte utilizzando:
-
Profondità positiva (chiiralità): i punti triangolati devono trovarsi di fronte a entrambe le telecamere.
-
Plausibilità della normale al piano: coerenza con una direzione normale approssimativa già nota dall'applicazione, come il terreno o una parete.
-
Coerenza tra più fotogrammi: anche se ambigua in un singolo fotogramma, il tracciamento nel tempo rivela soluzioni innaturali come prive di continuità.
La funzione decomposeHomographyMat di OpenCV esegue questa decomposizione e fornisce funzioni di filtro (come filterHomographyDecompByVisibleRefpoints, che seleziona la soluzione più vicina a una normale nota del piano) che aiutano a valutare i diversi candidati.
5. Relazione con la geometria epipolare: quando H è la risposta corretta
Come abbiamo visto in l'introduzione alla geometria epipolare, la corrispondenza tra due viste in una scena 3D generica è descritta dalla matrice fondamentale/essenziale. L'omografia è un caso particolare di questa, e la scelta tra le due è la seguente:
| Situazione | Modello appropriato | Motivazione |
|---|---|---|
| Struttura 3D generica, con traslazione | F (non calibrata) / E (calibrata) | La parallasse dipende dalla profondità e non può essere compressa in un singolo piano |
L'intera scena, o la regione di interesse, è un singolo piano | H | I punti su un piano sono descritti esattamente da un'omografia |
La telecamera subisce una rotazione pura (solo panoramica/inclinazione) | H | Senza traslazione, non c'è parallasse, quindi F/E degenera |
Si osserva una scena distante, quindi la parallasse è minima | H (approssimazione pratica) | La parallasse dovuta alle differenze di profondità viene mascherata dal rumore dei pixel |
Il problema è che "molti punti di riferimento per H" e "la scena è veramente planare o la telecamera è veramente in rotazione pura" possono a volte essere difficili da distinguere dalle sole osservazioni. Anche in una scena 3D generica, una parete o un tavolo che dominano il campo visivo possono adattarsi perfettamente a un'omografia. Il processo di inizializzazione di ORB-SLAM gestisce questa ambiguità stimando in parallelo sia H che F tramite RANSAC, valutando la bontà dell'adattamento di ciascuno e selezionando automaticamente il modello più adatto alla struttura della scena e al movimento della telecamera. Il punto chiave a livello di implementazione è l'utilizzo di un punteggio che tenga conto della differenza nei gradi di libertà di ciascun modello (un'idea correlata a GRIC), piuttosto che confrontare semplicemente il numero di inlier.
6. Applicazioni: Unione di immagini, tracciamento del piano AR e stima del piano di terra
L'unione di immagini (composizione panoramica) — la combinazione di più immagini scattate ruotando la telecamera sul posto in un'unica immagine — è un'applicazione rappresentativa dell'omografia. Viene stimata l'omografia tra immagini adiacenti, ciascuna viene deformata in un sistema di riferimento comune e fusa. Quando l'ipotesi che la telecamera ruoti quasi esclusivamente non è più valida (ad esempio, durante una ripresa in movimento o in presenza di un soggetto vicino), la parallasse produce immagini fantasma e sdoppiate.
Il tracciamento con ancoraggio al piano in AR rileva un piano, come una scrivania o un poster, nel primo fotogramma e, tracciando l'omografia con ogni fotogramma successivo, può determinare in modo stabile la posizione relativa rispetto a quel piano, fotogramma per fotogramma. Utilizzando la decomposizione R,\mathbf{t}/d, è possibile sovrapporre un oggetto virtuale ancorato al sistema di coordinate del piano senza incongruenze visive.
La stima del piano di appoggio sfrutta la solida conoscenza a priori che una strada o una superficie del pavimento sono "quasi piane". Il rilevamento del piano di appoggio nelle telecamere dei veicoli o nei robot utilizza metodi che tracciano l'omografia tra fotogrammi consecutivi e rilevano le regioni che se ne discostano (ostacoli, oggetti non appartenenti al terreno). Questo approccio rileva una violazione della coerenza geometrica, piuttosto che riconoscere l'oggetto stesso.
7. Esempio di implementazione in OpenCV
import cv2 as cv
import numpy as np
orb = cv.ORB_create(nfeatures=3000)
kp1, des1 = orb.detectAndCompute(img1, None)
kp2, des2 = orb.detectAndCompute(img2, None)
matches = cv.BFMatcher(cv.NORM_HAMMING).knnMatch(des1, des2, k=2)
good = [m for m, n in matches if m.distance < 0.75 * n.distance]
p1 = np.float32([kp1[m.queryIdx].pt for m in good]).reshape(-1, 1, 2)
p2 = np.float32([kp2[m.trainIdx].pt for m in good]).reshape(-1, 1, 2)
# threshold is the allowed reprojection error, in pixels. USAC_MAGSAC is also selectable in place of RANSAC.
H, mask = cv.findHomography(p1, p2, method=cv.RANSAC, ransacReprojThreshold=3.0)
inliers = mask.ravel().astype(bool)
# if K is known, decompose into candidate solutions
num_solutions, Rs, ts, ns = cv.decomposeHomographyMat(H, K)
Si noti che la H restituita da findHomography è ambigua in termini di scala. Come per la Matrice Essenziale nel Manuale di Geometria Epipolare, anche il vettore di traslazione ottenuto dalla decomposizione determina solo una direzione: la sua scala assoluta deve essere fornita in qualche altro modo (una distanza nota dal piano, una linea di base stereo, un sensore inerziale e così via).
8. Condizioni difficili
-
Planarità non corretta: anche una scena che appare planare può includere oggetti con spessore reale (libri, bordi di cartelli, piante) e i punti su di essi diventano outlier sistematici. Allentando la soglia di RANSAC in modo indiscriminato, si rischia di includere punti non planari, distorcendo la H stessa.
-
- L'ipotesi di rotazione pura non è più valida: se la composizione a mano libera include anche una leggera traslazione, i soggetti più vicini si spostano maggiormente, producendo immagini fantasma. È preferibile utilizzare un treppiede o ruotare la fotocamera vicino al centro ottico dell'obiettivo.
-
Configurazioni degenerate: se i punti di corrispondenza si concentrano lungo un'unica linea nell'immagine o all'interno di una regione ristretta, la matrice DLT diventa mal condizionata e l'errore aumenta bruscamente nelle regioni estrapolate di H, ovvero nelle aree lontane dai punti di corrispondenza.
-
Motivi ripetitivi o piani a bassa texture: con un motivo ripetitivo come un pavimento piastrellato o una finestra a grata, i soli descrittori locali non sono in grado di distinguere una corrispondenza corretta da una discrepanza spostata di un periodo.
-
Ambiguità nella decomposizione: se K è imprecisa o il rumore è elevato, può essere impossibile individuare univocamente la soluzione fisicamente corretta tra le molteplici candidate derivanti dalla decomposizione. È sempre opportuno combinare questo approccio con ulteriori informazioni a priori (direzione normale, profondità positiva).
9. Riepilogo
L'omografia è un framework che rappresenta con precisione due situazioni limitate ma frequenti nella pratica: la corrispondenza su un piano o una telecamera in rotazione pura, utilizzando una singola matrice 3\times3. Il metodo DLT è il punto di partenza per il metodo dei minimi quadrati, RANSAC è la contromisura per i valori anomali e la decomposizione è la fase finale che estrae la rotazione, la traslazione e la normale fisiche. Soprattutto, ciò che conta è valutare quando l'omografia è il modello corretto e quando è opportuno passare alla Matrice Fondamentale/Essenziale: sbagliare questo confine significa cercare di ricostruire una profondità inesistente in una scena che non è altro che un piano.
È possibile allineare oggetti a diverse profondità tramite omografia?
Una traslazione generale lascia la parallasse per gli oggetti fuori dal piano. Prima di utilizzare una singola omografia, verificare le ipotesi di scena planare o di rotazione pura.
## Riferimenti - [Hartley & Zisserman, Multiple View Geometry in Computer Vision (pagina ufficiale degli autori)](https://www.robots.ox.ac.uk/~vgg/hzbook/) - [Fischler & Bolles, Random Sample Consensus (Communications of the ACM, 1981)](https://doi.org/10.1145/358669.358692) - [Malis & Vargas, Deeper Understanding of the Homography Decomposition for Vision-based Control (INRIA Research Report RR-6303, 2007)](https://inria.hal.science/inria-00174036) - [Mur-Artal, Montiel & Tardós, ORB-SLAM: A Versatile and Accurate Monocular SLAM System (IEEE TRO, 2015)]( https://doi.org/10.1109/TRO.2015.2463671 - [OpenCV — Concetti base dell'omografia spiegati con codice](https://docs.opencv.org/4.x/d9/dab/tutorial_homography.html) - [OpenCV — Riferimento a findHomography / decomposeHomographyMat](https://docs.opencv.org/4.x/d9/d0c/group__calib3d.html) - [OpenCV — Modulo di unione immagini](https://docs.opencv.org/4.x/d1/d46/group__stitching.html)
Commenti
Accedi per continuare.
Nessun dato disponibile.