Upload
fedele-tedesco
View
215
Download
0
Embed Size (px)
Citation preview
1
Structure from motion
Corso Visione e percezione a.a.2008/2009Prof.ssa Maria Fiora Pirri ArdizzoneStudenti: - Brunetti Mario - Mancarella Alessandro - Pavone Giuseppe
2
Contenuti
Presentazione del problema Sift & Correlazione Matrice fondamentale Calibrazione Triangolazione Bundle adjustment Metric upgrade Approcci alla ricostruzione densa
3
Presentazione problema
Structure from motion Ricavare la struttura
di una scena a partire da una sequenza di immagini
4
Fasi di progettazione
Decomposizione in sottoproblemi Trattazione teorica Implementazione in Matlab
Implementazione di differenti metodi Scelta del metodo con il miglior risultato
Testing su 4 differenti set: Morpheus Soggetto semplice (parallelepipedo) Composizione di soggetti semplici Soggetto complesso
5
SIFT vs Harris
Harris: computazionalmente facili da trovare
Poca robustezza Numero di falsi match
elevato
SIFT: maggiore robustezza a rotazione,traslazione, scalatura e variazioni di luminosità
Con l’implemetazione di Lowe in C (interfacciata in Matlab) migliora la complessità di calcolo
Necessità di trovare dei punti da correlare nelle varie immagini
6
Estrazione features
Costruzione scale-space Costruzione DoG Localizzazione elementi
estremali Localizzazione feature points Filtraggio punti a basso
contrasto Scelta della risposta lungo gli
edge Orientazione Costruzione descrittori
7
Esempi di SIFT
8
Correlazione
Effettuata su coppie di immagini Per ogni punto si ricerca il suo omologo nell’altra
immagine Si ricerca l’omologo solo entro un certo raggio
dalle coordinate del primo Si minimizza l’SSD su una finestra di date
dimensioni (15) Vengono accettate solo le coppie di punti che
sono vicendevolmente correlati
9
Esempi di correlazione
10
Stima della matrice fondamentale
Permette di correlare ogni punto di un immagine con la retta epipolare dell’altra
Utilizzo di RANSAC per migliorare la qualità delle correlazioni
Algoritmo 8-punti normalizzato per la stima della matrice F La normalizzazione permette che le rette epipolari si
incontrino in un unico punto Migliore stima rispetto all’algoritmo 7 punti, minore
complessità rispetto al gold standard
11
RANSAC+Alg. 8 punti norm.
1. Scelta di 8 coppie di punti correlati (x-x’)2. Normalizzazione3. Calcolo della F tramite stima ai minimi quadrati a
soddisfare x*F*x’=04. Denormalizzazione5. Ricerca degli inliers riferiti agli 8 punti selezionati,
valutando la distanza di Sampson6. Valutazione della percentuale di inliers trovati, se
insufficiente ritorna al punto 17. Trovati gli inliers, ri-esecuzione dell’algoritmo 8-punti
per stimare F su un maggior numero di punti
12
Esempi di inliers
13
Calibrazione
Si è fatto ricorso al Calibration Toolbox Uso del pattern scacchiera Set di foto da diverse angolazioni Estrazione dei parametri intrinseci ad
eccezione delle dimensioni del pixel della camera mx my
Costruzione della matrice di calibrazione K
14
Esempi di calibrazione
15
Matrici proiettive
Si è scelto di decomporre la matrice fondamentale (tramite svd) per ricavare gli epipoli necessari al calcolo della coppia di matrici proiettive canoniche
16
Triangolazione
Metodo di triangolazione lineare applicato ad ogni coppia di punti correlati, si risolve un sistema di equazioni (se sovradeterminato si ricorre alla stima ai minimi quadrati) estratto dalle relazioni x=PX
Ai fini di una migliore ricostruzione si è deciso di utilizzare l’Optimal Triangulation Method, come descritto da H&Z, correggendo i match trovati sulle viste forzandoli sui vincoli epipolari x*F*x’=0
17
Esempi di triangolazione
18
Unificazione delle triangolazioni da coppie di viste Sono state provate diverse tecniche, basate sulla
decomposizione delle P=K[R T]=KR[I| -C]: Rototraslare le successive matrici di proiezione prima di
calcolare i punti mondo, per ottenere i punti riferiti alle coordinate della prima camera
Per ogni coppia, creare una matrice [R T; 0 0 0 1] dalla P corrente e premoltiplicarla per i punti mondo trovati in modo da riferirli tutti alle coordinate della camera corrente, alla fine del ciclo, tutti i punti sono riferiti alle coordinate dell’ultima camera
Nessuno dei metodi restituisce risultati ottimi, ad ogni modo quelli migliori sono stati con il secondo metodo
Unificazione delle Triangolazioni da coppie di viste
19
20
Bundle adjustment
Dall’equazione x=PX, riproiettiamo i punti mondo sui rispettivi piani immagine
Minimizziamo la distanza tra i punti immagine originali e quelli riproiettati, modificando i valori dei punti mondo e delle matrici, basandoci anche sulla matrice di calibrazione
Le nuove P e i nuovi X vengono ricavati tramite lsqnonlin, funzione di matlab che esegue la stima ai minimi quadrati non lineare a minimizzare una data funzione di costo
Il metodo è iterativo, alla fine di ogni iterazione si aggiornano prima le P e poi le X, effettuando 2 stime, considerandole singolarmente come variabili, e si riproiettano le x, per 5 volte
21
Bundle adjustment
P3i --- i-esimo punto 3d
Pj --- matrice di proiezione della j-esima coppia
P2j,i --- punto 2d riferito a P3i nell’immagine j
j i
ijijPP
PPPij
2,
3,)23*(min
3D point P3i
2D image point P2j,i
Reprojected point Pj* P3i
22
Esempi di bundle adjustment
23
Upgrade metrica
Anche in questo caso sono stati considerati diversi metodi:StratificatoDiretto
24
Stratificato
Si ricava il piano all’infinito calcolando (manualmente) 3 vanishing points da 3 coppie di linee che sappiamo essere nel mondo parallele tramite la funzione houghlines chiamata sull’immagine. Con il piano all’infinito che passa per i punti trovati è possibile costruire una trasformazione che porta da una ricostruzione prospettica ad una affine Haff=[I 0; Pinf]
Successivamente, sotto ipotesi di pixel camera quadrati e skew nullo,si ricava la conica ω all’infinito trovando 3 punti che soddisfano vincoli: v1’*ω*v2=0 l= ω*v
Con la conica si ricava la matrice Hm=[A^-1 0; 0 1] dove A soddisfa AAt=(Mt* ω*M)^-1
Hm*Haff*Xp=Xm è la trasformazione da prospettiva a metrica
25
Diretto
Il metodo stratificato restituisce risultati poco accettabili
È stata tentata un’altra strada, che esula dal programma del corso: dual quadric.
La quadrica è una struttura che contiene l’informazione sul piano all’infinito e sulla conica all’infinito
Da essa è possibile ricavare una trasformazione omografica che porta i punti da una ricostruzione proiettiva a metrica
26
Esempi di upgrade metrico
27
Ricostruzione densa
Sono state create alcune funzioni che permettono di effettuare una ricostruzione densa
Rettificazione delle immagini Mappa di disparità per trovare correlazioni per ogni
punto Triangolazione densa Le altre funzioni sono identiche alla ricostruzione sparsa A causa dei cattivi risultati della rettificazione non è stato
possibile effettuare il testing
28
Bibliografia
H&Z – Multiple View Geometry Script matlab disponibili dal sito di H&Z Script disponibili dal sito di Peter Kovesi Funzione di upgrade metrico quadric linear
definito da Kosecka Funzioni di supporto al bundle adjustment
definite da Fusiello
29
Grazie per l’attenzione …