Teoria computazionale della visione Marcello Demi CNR, Institute of Clinical Physiology, Pisa, Italy
Sistema di visione secondo David Marr Per Marr visione significa produrre una rappresentazione 3D della scena motore di decisioni e azioni Modulo di basso livello: Raw Primal Sketch Moduli intermedi: Full Primal Sketch, 2D½ Sketch Moduli di alto livello: 3D representation Algoritmi: numerici, simbolici e subsimbolici Hardware dedicato
Alcuni operatori matematici per il raw primal sketch Riconoscimento, localizzazione e orientamento di edge gradiente di gaussiana GoG laplaciano di gaussiana LoG differenza di gaussiane DoG Riconoscimento e localizzazione di feature (configurazione o aspetto tipico) riconoscimento di spigoli e giunzioni Texture (trama, tessitura) matrice di co-occorrenza
Data una immagine f(x,y) e una funzione Gaussiana g(x,y) Caratteristiche di ogni gray level discontinuity: tipo, posizione, orientamento, contrasto
Importanza degli spigoli e delle giunzioni Identificano oggetti della scena Matching stereoscopico Landmark per la stima di spostamenti Due approcci al riconoscimento di spigoli Localizzare gli edge, dopo cercare gli spigoli Analisi dei livelli di grigio dell’immagine Riconoscimento di spigoli e giunzioni mediante misure sui livelli di grigio Metodi basati su template (sagoma, modello) Metodi basati su operatori differenziali quali variazioni della direzione del gradiente, Hessiano e derivate direzionali
Esempi di Texture
Definizione di Texture Image texture is defined as a function of the spatial variation in pixel intensities –Local statistics or local properties are constant, slowly varying, or approximately periodic
Texture stocastica –Non identificabili con regole semplici –La statistica (proprieta’) locale varia lentamente o e’ approssimativamente periodica Texture deterministica –Definita attraverso regole semplici (pavimento o altre strutture regolari)
Julesz conjecture –Two textures that have identical second- order statistics are not pre-attentively discriminable Statistica del secondo ordine –L’istogramma di una immagine rappresenta la statistica del primo ordine –La statistica del secondo ordine rappresenta la probabilita’ di avere due livelli di grigio alle estremita’ di un segmento orientato Matrice di co-occorrenza –Uno strumento molto usato –Se i livelli di grigio di una immagine I sono pari a N –Per un dato vettore (dx, dy), il valore associato all’elemento P d (i,j) della matrice e’
Proprieta’ –NxN matrice di co-occorrenza –La matrice in generale non e’ simmetrica E’ simmetrica se e’ calcolata come –La matrice evidenzia caratteristiche della distribuzione spaziale dei livelli di grigio dell’immagine Misure utili di texture –La matrice di co-occorrenza fornisce differenti misure di texture che possono essere globali o locali Energy Entropy Contrast
Alcuni processi per il livello intermedio ( Full Primal Sketch) Contour approach edge linking as graph searching edge linking as dynamic programming Region approach region growing texture segmentation
Contour approach ( edge linking as graph searching) Un contorno e’ un sentiero che si ottiene collegando punti di edge un grafico e’ composto di nodi x i e segmenti dato il nodo iniziale A e il valore di edgeness e in ogni punto dell’immagine partendo da A si sceglie il segmento con valore e medio piu’ alto in una direzione compatibile con quella dell’edge cercato e per trovare il nodo successivo con questo algoritmo non si trova il percorso ottimale (massimo globale di h(x 1,x 2,…x N ))
Contour approach ( edge linking as dynamic programming) Dynamic programming e’ un metodo per trovare il massimo globale in processi multistadio quando non tutte le variabili sono coinvolte contemporaneamente Si basa sul principio di Bellman the optimum path between two given points is also optimum between any two points lying on the path
Con il primo step si cerca per ogni valore di x 2 il valore di x 1 che massimizza h 1 (x 1,x 2 ) ottenendo f 1 (x 2 ) Con il secondo step si cerca per ogni valore di x 3 il valore di x 2 che massimizza f 1 (x 2 ) +h 2 (x 2,x 3 ) ottenendo f 2 (x 3 ) …… Con l’ultimo step si trova il valore di x 4 che massimizza h(x 1,x 2,x 3,x 4 ) Andando a ritroso al valore di x 4 troviamo associato un valore x 3 e cosi’ via un valore di x 2 e di x 1
Se N sono le variabili x i e L sono i possibili valori che queste possono assumere un approccio esaustivo richiederebbe L N valutazioni della funzione h questo approccio riduce il numero di valutazioni a (N-1)L 2 +L
Region approach (region growing) L’immagine e’ suddivisa (split) in atomic regions di livello di grigio costante (quad-tree method) Regioni adiacenti di simile livello sono unite (merging) sequenzialmente fino a quando le regioni adiacenti sono sufficientemente differenti Split and merge technique
Altro esempio di algoritmi di region growing. Un seme (seed) individua il pixel di partenza interno ad una regione e lo spartiacque (watershed) ottenuto con un gradiente di Gaussiana alle gray level discontinuity delimita la regione stessa
Region approach (texture segmentation) Le tecniche di split and merge possono essere applicate anche alle misure locali di texture ottenute con matrici di co-occorrenza (co-occurrence matrix)
Alcuni processi per il livello intermedio ( 2D½ Sketch) shape from binocular vision shape from motion shape from shading
Shape from shading Il vincolo e’ la smoothness della superfice. L’incognita e’ la distribuzione del vettore normale n alla superficie. L’ipotesi e’ di Lambertian surface (riflessione diffusa). Sotto illuminazione uniforme queste superfici hanno la proprieta’ di sembrare ugualmente luminose qualunque sia la posizione dell’osservatore rispetto alla normale. z=f(x,y) e’ la superficie, n e’ la normale alla superficie, n s e’ la direzione della sorgente luminosa, e’ l’angolo tra n ed n s, R(p,q) e’ l’equazione di riflettanza, e(x,y) e’ l’errore, I(x,y) e’ la luce riflessa o raccolta dal rivelatore, e’ un fattore di trading tra smoothness e passaggio per i dati (riflettanza). Il problema si risolve minimizzando l’errore e(x,y) con un metodo iterativo.
L N L N L N
Alcuni processi per il modulo di livello alto knowledge representation semantic nets graph-theoretic algorithms decision trees inference predicate calculus symbolic planning neural network