ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI (Visione 3D

ESTRAZIONE DI
DI DATI
DATI 3D
3D
ESTRAZIONE
DA IMMAGINI
IMMAGINI DIGITALI
DIGITALI
DA
(Visione 3D)
3D)
(Visione
Visione 3D
On AIR 2007
Calcolo delle corrispondenze
Visione 3D
On AIR 2007
Affrontiamo il problema centrale della visione stereo, cioè
la ricerca automatica di punti corrispondenti tra immagini
Chiamiamo disparità il vettore che definisce il moto
apparente di un punto 3D visto su due immagini
La ricerca delle corrispondenze equivale al calcolo di un
campo vettoriale di disparità (campo di moto) su un
insieme opportuno di punti (denso o sparso)
Visione 3D
On AIR 2007
Problemi
Un punto di una immagine può avere molti punti corrispondenti
plausibili (ambiguità = rischio di falsa corrispondenza)
Alcuni punti possono non avere corrispondenti (occlusioni)
Uno stesso punto 3D può essere diversamente illuminato su
due immagini (distorsione fotometrica)
A causa del moto, un punto 3D può apparire diverso su due
immagini (distorsione prospettica)
Visione 3D
On AIR 2007
Vincoli
Epipolare: se il moto è rigido, le corrispondenze giacciono
su rette che possono essere stimate (matrice fondamentale)
Continuità: il campo di disparità può essere ipotizzato
continuo (almeno lontano dai bordi degli oggetti)
Simmetria: se Q è il miglior corrispondente di P, P deve
essere il miglior corrispondente di Q
Restrizioni sul tipo di moto (es. traslazione)
Visione 3D
On AIR 2007
Estrazione di punti caratteristici
Esistono molte tecniche per estrarre automaticamente da
una immagine punti salienti (cioè dotati di una “ricca”
informazione pittorica). Il metodo più usato è quello dei
corner (angoli)
Classificazione di punti in base alla variazione direzionale
Piano = nessuna variazione
Edge (contorno) = variazione lungo una direzione
Corner = variazione lungo tutte le direzioni
Visione 3D
On AIR 2007
Per calcolare la variazione si usa un intorno W centrato
sul punto x=(u,v) dell’immagine
Sviluppando in serie di Taylor per h piccoli si ha
dove
Visione 3D
On AIR 2007
Introducendo anche una funzione peso w() sui punti di W si ha
Quindi la variazione nel punto x per uno spostamento h è
dove C è una matrice simmetrica 2x2 detta pseudohessiano
Visione 3D
On AIR 2007
Gli autovalori di C forniscono i valori massimo e minimo di
E per spostamenti h unitari, quindi possono essere usati
per classificare il punto x
Indicando con λ1 l’autovalore massimo e λ2 il minimo, la
condizione per ottenere un corner è
λ1 >> 0
Visione 3D
;
λ2/ λ1 —>1
On AIR 2007
Di norma si usa un indicatore numerico di cornericity, per il
quale si cercano i massimi locali (es. λ2/ λ1)
Visione 3D
On AIR 2007
La definizione di corner non è univoca, ed esistono diversi
modelli di cornericity applicabili
Es. punti di massima variazione della direzione del gradiente
La scelta di quale definizione usare dipende da:
•tipologia di immagini (+/- rumorose)
•requisiti computazionali (compromesso tempi/CPU)
•obiettivi dell’applicazione (impatto dei corner falsi/mancanti)
Il calcolo dei gradienti si effettua con operatori di convoluzione
Es. Filtri di Sobel
Visione 3D
 −1

hx =  − 2
 −1

0
0
0
1

2
1 
;
 1

hy =  0
−1

2
0
−2
1 

0 
− 1 
On AIR 2007
Esempio di elaborazione di immagine
Nell’ordine:
Immagine originale
Gradiente orizzontale
Gradiente verticale
Mappa di edge
Mappa di corner
Visione 3D
On AIR 2007
Definiti i corner su una immagine (o su entrambe) la ricerca
di corrispondenze deve accoppiare due corner “simili”
Esistono numerose funzioni di somiglianza ma la più usata è
la cross-correlazione normalizzata
Dove I1 e I2 sono le due immagini, mentre µ1 µ2 sono i valori
medi degli intorni considerati
Cuv(x,y) assume valori nell’intervallo [-1,1]
Visione 3D
On AIR 2007
La normalizzazione è importante perché consente di gestire
le variazioni di illuminazione
Visione 3D
On AIR 2007
Esempio
Visione 3D
On AIR 2007
La definizione della funzione di corrispondenza è del tutto
indeterminata, e sono possibili numerose alternative.
Es. misure statistiche basate sulla distribuzione delle differenze
(media, mediana, max)
La scelta dipende di norma solo dai requisiti computazionali.
Il problema è spesso l’estensione del dominio di ricerca.
Strategie di ricerca
• forza bruta
• coarse-to-fine
• random sampling
Visione 3D
On AIR 2007
Definita una funzione di somiglianza C, la ricerca della migliore
corrispondenza (block matching) si imposta come segue:
dato (x,y) su I1 trovare (u,v) tali che il punto (x+u,y+v) su I2
massimizzi C, compatibilmente con i vincoli (es. epipolare)
La ricerca del massimo di C produce in generale un valore di
disparità indipendente per ogni punto. Il campo di moto così
ottenuto può quindi essere ancora regolarizzato per eliminare
eventuali errori.
Visione 3D
On AIR 2007
Esempio – match con mappa densa
Visione 3D
On AIR 2007
Esempio – match con mappa di corners
Visione 3D
On AIR 2007
La ricerca di corrispondenze con il block matching è molto
sensibile alla dimensione dell’intorno scelto per la valutazione
della funzione C.
Intorni piccoli non forniscono una base statistica sufficiente
per la stima, mentre intorni grandi possono contenere
disparità molto diverse.
In generale si preferiscono:
approcci gerarchici, in cui vengono prima trovate alcune
corrispondenze di elevata affidabilità, che vincolano
ulteriormente la ricerca di altre corrispondenze
approcci guidati, in cui vengono trovati punti salienti anche
sulla seconda immgine, e stabilita la corrispondenza tra i due
insiemi in modo ottimale
Visione 3D
On AIR 2007
Flusso ottico
Un approccio diverso alla stima del campo di moto ipotizza
che le due immagini siano campioni di un unico processo
I(x,y,t)
Consideriamo la ricerca di corrispondenza come l’analisi
del moto di un punto (x,y) in funzione di t, ipotizzando che
l’intorno di (x,y) conservi i valori di I (livelli di grigio).
Visione 3D
On AIR 2007
Scriviamo la derivata totale di I rispetto a t
Tale derivata si annulla per l’ipotesi di conservazione dei grigi.
Introducendo i vettori
si arriva a
che è l’equazione del flusso ottico
Visione 3D
On AIR 2007
L’equazione del flusso ottico, nella sua approssimazione alle
differenze, è valida solo per piccoli intervalli di tempo (o
piccoli moti) tali per cui |µ|~1
Essa consente solo il calcolo della componente del vettore
di moto nella direzione del gradiente dell’immagine
(problema dell’apertura)
Visione 3D
On AIR 2007
Per superare il problema dell’apertura si ipotizza che il flusso
ottico sia costante su un intorno del punto considerato.
Considerando allora la funzione differenza, si ha
Troviamo (u,v) minimizzando E
Visione 3D
On AIR 2007
Si ottiene facilmente un sistema di equazioni lineari del tipo
dove la nuova matrice H coincide con lo pseudohessiano
Rango(H) = 0
Rango(H) = 1
Rango(H) = 2
nessuna soluzione valida
soluzione solo in una direzione
soluzione completa
La condizione Rango(H)=2 lega quindi il flusso ottico ai corner
Visione 3D
On AIR 2007
Per superare i limiti di validità dell’equazione si usa a volte un
approccio piramidale
Il valore del flusso ottico µ
viene sempre compensato ai
livelli inferiori della piramide, in
modo tale che il moto residuo
da stimare sia sempre piccolo
Visione 3D
On AIR 2007
La tecnica del flusso ottico, descritta finora per pure traslazioni,
può essere generalizzata per gestire trasformazioni lineari più
generali dell’intorno di I(x,y)
1. Traslazione
2. Rotazione
3. Scala
4. Affine generica
Il risultato è il tracker di Lucas-Kanade con cui si ottiene una
stima ai minimi quadrati della trasformazione lineare ottimale
Visione 3D
On AIR 2007
Esempio
In generale il concetto di tracking fa riferimento alla
localizzazione di uno stesso punto 3D in una sequenza di
immagini (video)
Visione 3D
On AIR 2007
Esercizio n.5
Implementare un corner detector componendo le operazioni
1. Calcolo delle derivate parziali di una immagine I(x,y) con un
operatore lineare
2. Calcolo della matrice pseudohessiana nei punti dove
|grad(I)|>S usando un intorno (es. 5x5)
3. Classificazione dei punti in corner/edge in base al rapporto tra
autovalore minimo e massimo
4. Selezione dei soli massimi locali di questo rapporto
Sugg.
per la ricerca dei massimi locali usare una matrice immagine per
la funzione Lmin/Lmax (dove esiste)
Visione 3D
On AIR 2007
Esercizio n.6
Implementare un algoritmo di ricerca di corrispondenze tra
immagini utilizzando
•
•
la somma delle differenze assolute
la cross-covarianza normalizzata
Utilizzare i punti già disponibili come punti di partenza, e
verificare che i punti di arrivo siano “vicini” a quelli previsti.
Sugg. : utilizzare un intorno per la ricerca centrato sul
corrispondente atteso, e di dimensioni non eccessive
Visione 3D
On AIR 2007
Campi di moto e omografie
Visione 3D
On AIR 2007
Esistono situazioni in cui il campo di moto apparente indotto da
una rototraslazione rigida assume una forma particolarmente
semplice
Consideriamo due immagini e le loro matrici di proiezione
dove A e A’ sono le matrici dei parametri intrinseci
Sia w un punto 3D e m,m’ le sue proiezioni sulle immagini
Visione 3D
On AIR 2007
Cerchiamo di esprimere m’ in funzione di m
Osserviamo che
E quindi
Visione 3D
On AIR 2007
La relazione di corrispondenza tra m’ ed m assume una
forma semplice in due casi
1. Pura rotazione e zoom
2. Struttura planare
Il caso 1) è ovvio, se T=0 allora
La relazione è una omografia e NON dipende dalla struttura
della scena. La trasformazione
viene detta omografia all’infinito
Visione 3D
On AIR 2007
Se la scena è piana, allora
Introducendo questo termine nella relazione tra m’ e mi si ha
Questa è la relazione generale che lega l’omografia H tra
due immagini di una scena piana con la rototraslazione R,t.
Nel limite
Visione 3D
la omografia si riduce a
On AIR 2007
L’interpretazione del moto tramite omografia ha molte
applicazioni, legate all’uso di telecamere PTZ (Pan, Tilt, Zoom).
Con queste TC, la relazione tra due immagini è SEMPRE una
omografia, per cui è possibile la mosaicatura
Visione 3D
On AIR 2007
Altri esempi di mosaicatura
Visione 3D
On AIR 2007
Ancora …
Visione 3D
On AIR 2007
Algoritmo di mosaicatura automatica
1.Selezione di punti salienti
2.Ricerca di corrispondenze
3.Stima robusta dell’omografia
4.Fusione delle immagini
L’ultimo passo prevede
•
•
Visione 3D
il ricampionamento di tutte le immagini in un unico
sistema di coordinate (interpolazione)
la decisione di quale è il valore pittorico più adatto per
ogni punto (fusione dati)
On AIR 2007
Stima parametrica robusta
Visione 3D
On AIR 2007
Tutti i problemi visti finora prevedono la stima di un vettore di
parametri a partire da un insieme di corrispondenze.
Tali corrispondenze sono inevitabilmente affette da errori non
modellabili con semplici distribuzioni (es. gaussiana). Gli
errori sono spesso tali da generare dati assurdi (outliers).
Occorrono tecniche di stima robusta in grado di ottenere
soluzioni valide per i parametri anche in presenza di una alta
percentuale di dati errati.
Visione 3D
On AIR 2007
Un esempio classico: la regressione lineare con un dato errato
Gli stimatori robusti consentono di ottenere la soluzione corretta
(blu), mentre i tradizionali minimi quadrati danno una soluzione
errata (rossa).
Visione 3D
On AIR 2007
M-stimatori e R-stimatori
Gli M-stimatori sotituiscono i quadrati dei residui con altre funzioni
dove l’unico vincolo è che ρ() abbia un unico minimo in zero.
Gli R-stimatori sono basati sull’ordinamento dell’insieme dei
residui. I residui vengono ordinati per valori crescenti e si
minimizza una media pesata in funzione dell’ordine.
dove R è il rango (ordine) del residuo e a() una funzione peso
Visione 3D
On AIR 2007
Tra gli R-stimatori, il più diffuso è LMedS (Least Media of Squares),
che generalizza in modo semplice i minimi quadrati
Viene minimizzata la mediana dei quadrati dei residui.
Purtroppo non esiste una soluzione chiusa del problema LMedS,
per cui si può solo procedere per tentativi (casuali).
I tentativi casuali vengono fatti di norma considerando un
sottoinsieme dei dati disponibili sufficiente per ottenere una
stima ai m.q.
Visione 3D
On AIR 2007
Problema
Sia n il numero di dati disponibili e p la dimensione del vettore
di parametri da stimare. Quanti tentativi casuali m è ragionevole
fare?
Data una percentuale ε di outliers, la probabilità P di avere
almeno un sottoinsieme su m senza outliers è
Richiedendo che P sia prossimo a 1 (es. 0.99), si ha
Visione 3D
On AIR 2007
Esempio
Calcolo del numero di tentativi m in funzione di p ed ε, per P=0.95
Visione 3D
On AIR 2007
RANSAC
L’idea del campionamento casuale viene formalizzata nel
paradigma del RANSAC (Random Sampling and Consensus)
1. Dato un modello con p parametri, siano disponibili n
dati con n>>p. Si seleziona a caso un sottoinsieme S1
con il minimo numero di dati e si calcolo il modello M1.
2. Si stima il consenso di M1, cioè il numero di dati C1 con
residuo inferiore ad un valore prefissato.
3. Se C1 è abbastanza grande, si calcola M ai minimi
quadrati sull’insieme di consenso e si ha finito.
4. Altrimenti si genera un nuovo sottoinsieme S2, si
calcola il modello M2 e si itera.
5. Raggiunto un numero massimo fissato di tentativi, si
prende il modello a massimo consenso, ristimato ai
minimi quadrati
Visione 3D
On AIR 2007
La stima di parametri tramite RANSAC consente vantaggi
enormi nelle applicazioni pratiche della visione 3D
•Facile gestione di dati errati
•Classificazione esplicita della utilità di un dato ai fini della stima
•Modelli multipli con gli stessi dati
•Applicabilità generale a qualunque problema di fitting
e quindi viene applicata molto spesso.
Esempi:
Visione 3D
stima del campo di moto tramite omografia
stima della matrice fondamentale
On AIR 2007
Esercizio n.7
Utilizzare quanto sviluppato per la stima dell’omografia per
mosaicare due immagini.
Sugg. : utilizzare come immagine di arrivo una immagine di
dimensioni superiori a quelle delle immagini di partenza ed
utilizzare più di 4 punti per assicurare stabilità
Visione 3D
On AIR 2007
Esercizio n.8
Aggiungere ai punti corrispondenti utilizzati per il calcolo
della omografia un certo numero di coppie errate (in rapporto
anche 1:1) e stimare la nuova omografia tramite RANSAC
Sugg. : se le coppie di punti corrispondenti sono poche, si
può sostituire la generazione casuale di n-uple con una
generazione esaustiva
Visione 3D
On AIR 2007