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