Studio della Trasformata di Gabor
Transcript
Studio della Trasformata di Gabor
Studio della Trasformata di Gabor Tommaso Teofili 16 settembre 2005 Sommario Per analizzare e descrivere fenomeni complicati i matematici, gli ingegneri e i fisici usano delle particolari rappresentazioni che rendono semplice e comprensibile la loro trattazione. La ricerca ha sempre di più puntato all’individuazione di tali rappresentazioni. Queste hanno poi trovato applicazione nei campi più disparati: geofisica, medicina, informatica. Un’aspetto importante delle rappresentazioni in questione sta nel fatto che talvolta esse servono ad estrarre informazioni di interesse che nella forma complessa non sarebbe possibile individuare. Per molti anni lo strumento di maggiore rilievo a tale scopo è stato quello della Trasformata di Fourier, ma in alcuni campi si richiedono delle caratteristiche che quest’ultima non possiede e per cui risulta essere inadatta. Di seguito daremo una panoramica dell’evoluzione che ha portato da Fourier allo strumento che lo ha sostituito, la Trasformata di Gabor, evidenziando anche le principali applicazioni di quest’ultima. Tratteremo principalmente l’uso di queste trasformate nella computer vision e nella rappresentazione di immagini. 1 Da Fourier a Gabor Allo scopo di semplificare la rappresentazione di segnali/immagini, fino a pochi anni fa (anni ’80), lo strumento maggiormente utilizzato per l’analisi di tali oggetti è stato quello della Trasformata di Fourier. Essa infatti dà una rappresentazione ”veloce” dell’informazione e consente di effettuare l’analisi nel dominio della frequenza, anzichè del tempo. Questo permette di individuare le caratteristiche dell’immagine derivanti dall’intensità delle frequenze 1 (analisi delle frequenze) ed effettuare su di esse le modifiche necessarie. Vediamo ora le basi principali di tale analisi. 1.1 Analisi di Fourier Il lavoro svolto da Fourier nel suo torrido studio a Parigi riguarda principalmente la Teoria analitica del Calore [18], ma ha trovato applicazione in un’infinità di tematiche: matematica, teoria dei segnali, geofisica ed, appunto, informatica e computer vision. L’idea principale su cui si basa il suo studio è quella che una funzione periodica può essere espressa come una somma di funzioni più semplici (seni e coseni) a differenti frequenze. Questa definizione corrispone allo sviluppo in Serie di Fourier: +∞ X x(t) = n=−∞ Xn · ej2πfn t dove fn = (1) n T T è il periodo della funzione e 1 Xn = T Z T 2 − T2 x(t) · e−j2πfn t dt è il coefficiente complesso degli andamenti sinusoidali. Infatti, per la regola di Eulero ejφ = cos φ + j sin φ x(t) viene rappresentato come somma degli infiniti segnali elementari: Xn ej2πfn t = Xn (cos(2πfn t) + j sin(2πfn t)) ognuno dei quali viene chiamato componente armonica del segnale a frequenza fn proprio perchè rappresenta una coppia di sinusoidi alla data frequenza. Questo sviluppo, come è chiaro, vale solamente per le funzioni periodiche. Nell’analisi delle immagini avremo a che fare spesso, di contro, con funzioni non periodiche. Dunque diamo la definizione di Trasformata di Fourier: X(f ) = Z +∞ −∞ x(t) · e−j2πf t dt 2 (2) che vale anche per funzioni non periodiche purchè Z +∞ −∞ |x(t)|dt < ∞ (3) l’area sottostante la curva definita dalla funzione sia finita. Affinchè la Trasformata di Fourier sia utilizzabile è necessario poter ricostruire l’immagine/segnale di partenza. Questa operazione viene eseguita attraverso l’Antitrasformata di Fourier cosı̀ definita: x(t) = Z +∞ −∞ X(f ) · ej2πf t dt Bisogna però tener presente che le immagini che andreamo a trasformare sono funzioni discrete in due variabili w ed h (larghezza e altezza) che possono assumere valori compresi tra 0 e M e tra 0 e N (dove M e N sono le dimensioni dell’immagine) e quindi diamo la formula per la Trasformata di Fourier Discreta (o DFT) in due dimensioni: X(u, v) = −1 N −1 X 1 MX x(w, h) · e−j2π(uw/M +vh/N ) MN w=0 h=0 (4) Come è ovvio, anche nel caso discreto è necessario che sia definita una funzione inversa che permetta di ricavare la rappresentazione iniziale a partire da quella trasformata. Indichiamo quindi l’Antitrasformata di Fourier Discreta per il caso bidimensionale: −1 N −1 X 1 MX X(u, v) · ej2π(uw/M +vh/N ) x(w, h) = MN u=0 v=0 (5) Di estrema importantza inoltre sono le espressioni che ci danno, rispettivamente, lo Spettro, la Fase e la Potenza del segnale: h |X(u, v)| = ℜ(u, v)2 + ℑ(u.v)2 −1 φ(u, v) = tan " ℑ(u, v) ℜ(u, v) i1 2 # P (u, v) = |X(u, v)|2 = ℜ(u, v)2 + ℑ(u.v)2 3 (6) (7) (8) 1.2 Proprietà A livello strettamente matematico la Trasformata di Fourier gode di alcune proprietà che ne rendono particolarmente vantaggioso l’uso. Elenchiamo qui le principali: Se il segnale è reale la X(f ) gode della proprietà della simmetria coniugata: X(f ) = X ∗ (−f ) Traslare un segnale nel tempo significa moltiplicare la sua trasformata per un’esponenziale: F [x(t − T )] = X(f ) · e−j2πf Viceversa (traslazione in frequenza): F [x(t) · ej2πf ] = X(f − f0 ) Le traslazioni sono particolarmente utili quando si va a calcolare lo spettro di Fourier di una immagine. Infatti si ha in quel caso la necessità che il punto a frequenza 0 sia quello al centro dell’immagine. Allora basterà moltiplicare l’immagine per (−1)w+h poichè h i F x(w, h) · (−1)w+h = X(u − M N ,v − ) 2 2 La proprietà della Linearità indica che l’operatore di trasformazione F è lineare: F [ax1 (w, h) + bx2 (w, h)] = aF [x1 (w, h)] + bF [x2 (w, h)] Per quanto riguarda invece le principali operazioni si ha che il prodotto nel tempo z(t) = x(t) · y(t) equivale ad una correlazione nel dominio di Fourier: Z(f ) = X(f ) ∗ Y (f ) Una derivazione nel tempo y(t) = 4 dx(t) dt corrisponde ad una moltiplicazione nel dominio di Fourier per il fattore j2πf Y (f ) = (j2πf ) · X(f ) Inoltre un’integrazione nel tempo z(t) = t Z −∞ x(τ )dτ 1 (più la somma di una si traduce in una moltiplicazione per un fattore j2πf costante che è la metà dell’ampiezza della trasformata nell’origine): Z(f ) = 1 1 · X(f ) + X(0)uo(f ) j2πf 2 Un’altra importante proprietà è quella espressa dal Teorema della Convoluzione, secondo cui la Trasformata di Fourier della convoluzione tra due segnali è pari al prodotto delle trasformate dei singoli segnali. Y (f ) = X(f ) · H(f ) (9) Quest’ultimo teorema, come si vedrà più avanti, rende particolarmente facile la progettazione dei filtri. La proprietà della Separabilità, invece, riguarda il fatto che potendo esprimere la funzione-immagine come prodotto lungo le due direzioni x(w, h) = x1 (w) · x2 (h) è possibile separare la Trasformata di Fourier lungo le due direzioni: X(u, v) = M −1 X w=0 e −j2πuw M · N −1 X h=0 x(w, h) · e −j2πvh N (10) Questa proprietà riduce la complessità di un algoritmo per realizzare una DFT bidimensionale. Un’altra interessante proprietà, che vale solo per la DFT, è quella della Periodicità: F (u, v) = F (u + M, v) = F (u, v + N) = F (u + M, v + N) Nel caso 1-D, il campione F(N) = F(0) è ovviamente contiguo a F(N-1). I campioni possono quindi essere pensati calcolati per valori disposti non su una linea retta ma su un cerchio, il cosiddetto anello di Fourier. Nel caso 2-D, la matrice rappresentativa dell’immagine è proiettata sul cosiddetto toro di Fourier. Quindi un solo periodo (campione) della trasformata è necessario per specificare completamente F (u, v) nel dominio delle frequenze. 5 Figura 1: Periodicità della DFT 1.3 In pratica Vediamo ora l’applicazione pratica della Trasformata di Fourier ad un’immagine analizzando l’originale a confronto con il suo Spettro di Fourier. Esso viene compresso logaritmicamente per visualizzarne tutte le intensità; infatti un normale display potrebbe permettere di vedere solo poche parti molto luminose. Tale compressione è del tipo D(u, v) = c log[1 + |F (u, v)|], dove c è un coefficiente che viene sistemato a seconda dei valori di luminosità che bisogna ”catturare”. Originale Spettro della DFT 6 Come si vede, lo spettro non ci fornisce informazioni che possiamo collegare ”ad occhio” all’immagine di partenza. Infatti non c’è una corrispondenza evidente tra punti nel tempo e punti in frequenza. In realtà questi spettri ci permettono di individuare e dividere le zone a bassa frequenza, che corrispondono a tonalità costanti del grigio (cioè a zone a colore costante), da quelle ad alta frequenza, che corrispondono a bordi e rumore nell’immagine. Nella computer vision è di elevato interesse, ad esempio, estrarre i contorni di un immagine per poter identificare un oggetto da seguire con una telecamera. L’analisi dello spettro di queste immagini è stata effettuata attraverso lo script Matlab riportato di seguito: imread(’imgXX.jpg’); %legge l’immagine imgXX.jpg BW = RGB2Gray(I); %converte l’immagine in bianco e nero F = fft2(BW); &effettua la DFT dell’immagine %calcola lo spettro di fourier, %sposta le basse frequenze al centro dell’immagine, %comprime logaritmicamente il risultato spettro = imagesc(log(fftshift(abs(F)))); Va infine citato che uno dei motivi per cui si usa la Trasformata di Fourier è l’esistenza di un metodo veloce per la sua individuazione: la FFT (Fast Fourier Transform), che riduce drasticamente il numero di operazioni necessarie per il calcolo della trasformazione. 1.3.1 I Filtri Un filtro, come suggerito dal nome, può essere pensato come una maschera che viene applicata a tutta l’immagine. Esso è in realtà composto da una funzione che viene applicata ad ogni singolo punto dell’immagine, che viene cosı̀ filtrato. Lo studio nel dominio della frequenza consente di applicare alle immagini tali filtri, allo scopo di migliorarle. Di solito la fase di filtraggio di un’immagine viene effettuata in 3 momenti: 1. si calcola la Trasformata di Fourier dell’immagine 2. si moltiplica il risultato per il filtro scelto 3. si effettua l’antitrasformata per tornare nel dominio spaziale e visualizzare il risultato 7 Il punto chiave di questo processo è il secondo; infatti è qui che grazie al Teorema della Convoluzione (equazione 9) possiamo effettuare una semplice moltiplicazione, anzichè una laboriosa convoluzione, tra l’immagine e il filtro. Nell’ambito della progettazione di un filtro è molto comodo lavorare in frequenza ma, spesso, lavorare a livello spaziale permette di usare maschere generalmente più piccole. Possiamo, ad esempio, progettare un filtro spaziale di dimensioni 3x3 pixel e poi applicarlo a tutti i pixel dell’immagine; non possiamo fare questo in frequenza. Di solito si usa dunque progettare il filtro in frequenza, calcolare la sua inversa e poi da lı̀ estrarne uno di dimensioni più ridotte. Vediamo qualche esempio di filtri passa-basso; usati per lo smoothing, cioè uniformare le tonalità presenti attenuando le alte e lasciando inalterate le basse frequenze. Figura 2: Filtro passa basso Ideale Figura 3: Filtro passa basso Butterworth Figura 4: Filtro passa basso Gaussiano I filtri passa-alto corrispondenti sono esattamente i reciproci dei passa-basso 8 appena visti. Essi vengono utilizzati per lo sharpening, cioè l’enfatizzazione dei bordi attraverso l’attenuazione delle basse frequenze. 1.4 Limiti Si possono individuare però alcune caratteristiche che la Trasformata di Fourier non soddisfa e risultano invece di primaria importanza per il nostro studio. 1. la Trasformata di Fourier non si adatta molto bene a problemi in cui la funzione oscilli molto poco 2. un aspetto locale della funzione influenza tutti i coefficienti della trasformata: ciò significa che se sono presenti errori locali di x(t), essi si distribuiscono su tutta la X(f ) 3. usando la Trasformata di Fourier la funzione x(t), come si può notare dall’analisi della sezione 1.3, si può vedere solo nel dominio delle frequenze f . Spesso è utile invece descrivere x(t) sia nelle f che nelle t. Ciò permette, ad esempio, di vedere in quali punti la funzione è composta da determinate frequenze che si vogliono analizzare; oppure di sapere se essa presenta frequenze di fondo comuni a tutti i punti. Ad esempio fenomeni come voce o musica sono processi non stazionari, che evolvono nel tempo, per cui interessa capire, ad esempio, quali note (frequenze) vengono emesse in un dato istante 4. la Trasformata di Fourier non si adatta adeguatamente allo studio di problemi non lineari poichè piccole variazioni nell’input possono causare grandi cambiamenti nell’output 5. per l’analisi di Fourier ogni istante di un segnale è identico ad ogni altro. Infatti, non fornendo informazioni temporali riguardo alle frequenze di ciascun segnale, non rivela quando queste frequenze vengono emesse 2 La Trasformata di Gabor Come detto, per analizzare segnali non-stazionari, ma soprattutto per ottenere una localizzazione temporale delle frequenze, la Trasformata di Fourier non risulta adatta. Infatti, per poter calcolare il valore nel tempo ad una 9 determinata frequenza f , bisogna conoscere l’intero segnale x(t). Se in un certo istante t il segnale viene alterato, questo si riduce su tutto lo spettro. Bisogna quindi individuare un metodo per analizzare contemporaneamente l’evoluzione temporale del segnale parallelemente alle sue frequenze (analisi tempo-frequenze). Potremmo pensare di ”tagliare” il segnale con diverse funzioni rettangolari e poi applicare ad ognuna di queste parti la Trasformata di Fourier. Purtroppo, però, una segmentazione di questo tipo non produrrebbe funzioni periodiche poichè la Trasformata di Fourier interpreta i salti agli estremi come delle discontinuità o come brusche variazioni del segnale. Da qui l’idea di windowing (finestratura) attraverso funzioni smussate che assumano valore 1 vicino all’origine e valori nulli in prossimità degli estremi. Questa procedura viene denominata Short Time Fourier Transform (STFT) o Windowed Fourier Transform (WFT) o Trasformata di Gabor. Data una funzione arbitraria x(s) ∈ L2 (ℜ) rispetto ad una data ψ la STFT è definita come: G[x(s)](t, f ) = Z +∞ −∞ x(s)ψ(s − t)e−jf s ds (11) dove ψ(s) = 1 s2 1 (σ 2 π) 4 · e− 2σ2 (12) è chiamata funzione finestra o atomo di Gabor. La G[x(s)](t, f ) è vista Figura 5: La STFT è formata da diverse FT dunque come la sovrapposizione traslata nel tempo e nella frequenza (cioè 10 modulata) di tutti i pezzi di funzione x(s) individuati dalla finestra ψ(s), che applica a ciascuno di essi una Trasformata di Fourier locale; alternativamente possiamo vedere la Trasformata di Gabor come una funzione gaussiana modulata da sinusoidi complesse. Indicando con Tt e Mf gli operatori rispettivamente di traslazione e modulazione possiamo definire l’equazione 11 come: G[x(s)](t, f ) = hx, Tt Mf ψi = hx, ψf,t i (13) Abbiamo poi la Trasformata di Gabor nel caso discreto come: Gm,n [x(s)](t, f ) = Z x(s)ψ(s − nt0 )e−jmf0 s ds = hx, Tnt0 Mmf0 ψi = hx, ψm,n i (14) Diamo anche la definizione della funzione inversa per ottenere nuovamente il segnale originale in continuo: 1 x(s) = ||ψ||2 2.1 Z Z t,f G[x(s)](t, f )ψ(t − s)e2πjf t dtdf (15) Proprietà Vediamo ora alcune proprietà della Trasformata di Gabor. La scelta delle dimensioni della finestra, che dipende dalla deviazione σ di ψ(s), è di fondamentale importanza, come vedremo, al fine di ottenere il miglior compromesso tra risoluzione temporale e risoluzione di frequenza. E’ ψ(s), infatti, che determina gli intervalli ∆t e ∆f (che sono le sue dimensioni) per cui due eventi distanti ∆t o ∆f non sono più discriminati dalla STFT nel rispettivo dominio. Inoltre se un segnale ha la maggior parte del suo contenuto energetico nell’intorno dell’intervallo [−T, T ] nel tempo e [−Ω, Ω] in frequenza, allora esso sarà ben localizzato nella finestra [−T, T ] × [−Ω, Ω], mentre sarà vicino a zero negli intervalli tempo-frequenza dove il segnale ha poca energia. Se definiamo con G l’operatore di trasformazione secondo Gabor valgono le proprietà commutative rispetto alla traslazione e alla modulazione cioè: GTt = Tt G, GMf = Mf G 11 (16) Valgono per la Trasformata di Gabor le stesse proprietà, ereditate dalla Trasformata di Fourier, per quanto riguarda la Traslazione (in tempo ed in frequenza): G[x(t − t0 )](t, f ) = e−jf t0 G[x(t)](t − t0 , f ) G[ejf0 t · x(t)](t, f ) = G[x(t)](t, f − f0 ) to ∈ ℜ f0 ∈ ℜ (17) (18) Nel caso continuo abbiamo invece un vantaggio rispetto alla Trasformata di Fourier: infatti non esistono per Gabor condizioni di ammissibilità, mentre dovevamo avere un segnale a somma finita nel caso della FT (equazione 3). Nel caso discreto dobbiamo di contro, al fine di poter ricostruire esattamente il segnale (ricostruzione numericamete stabile), controllare che ψm,n sia un frame di Gabor, il che è verificato se, prese due costanti A > 0 e B < ∞, vale la seguente: A||x||2 ≤ X m,n∈Z | hx, ψm,n i |2 ≤ B||x||2 ∀x ∈ L2 (ℜ) (19) Per caratterizzare un frame di Gabor è di fondamentale importanza il prodotto f0 t0 , infatti: Teorema 2.1 Sia {Mmf0 Tnt0 ψ}m,n∈Z un frame di Gabor con f0 t0 > 0 1. Se f0 t0 > 2π allora {Mmf0 Tnt0 ψ}m,n∈Z non è completo in L2 (ℜ) e quindi non è un frame per L2 (ℜ) 2. Se {Mmf0 Tnt0 ψ}m,n∈Z è un frame, allora f0 t0 = 2π se e solo se {Mmf0 Tnt0 ψ}m,n∈Z è una Base di Riesz. Definiamo allora una Base di Riesz come una successione {fi }i∈N in uno spazio di Hilbert H se esistono una base ortonormale {ei }i∈N per H e una funzione invertibile e limitata T : H −→ H tali che T ei = fi per ogni i ∈ N. Dunque per il teorema 2.1 {Mmf0 Tnt0 ψ}m,n∈Z è una frame soltanto se f0 t0 ≤ 2π e il frame è sovracompleto se f0 t0 < 2π. Vediamo a questo punto i due teoremi che definiscono condizioni sufficiente e necessaria per avere un frame di Gabor. Teorema 2.2 Condizione sufficiente per avere un frame di Gabor. Siano ψ ∈ L2 (ℜ) e f0 , t0 > 0. Si suppone che: A := inf s∈[0,t0 ] X n∈Z |ψ(s − nt0 )|2 X X − ψ(s − nt0 )ψ m6=0 n∈Z 12 m s − nt0 − f0 ! >0 B := X X sup ψ(s − nt0 )ψ s∈[0,t0 ] m6=0 n∈Z m s − nt0 − f0 ! <∞ allora {Mmf0 Tnt0 ψ}m,n∈Z è un frame per L2 (ℜ) con frame bound A B , f0 f0 Teorema 2.3 Condizione necessaria per avere un frame di Gabor: densità tempo-frequenza sufficientemente alta Se le {ψm,n }m,n∈Z costituiscono una frame per L2 (ℜ) con frame bound A, B, allora 2π A≤ ||ψ||2 ≤ B f0 t0 Dunque per avere una buona localizzazione temporale e frequenziale dobbiamo scegliere f0 t0 < 2π. Infatti i frame nel caso limite f0 t0 = 2π hanno necessariamente cattive proprietà di localizzazione o nel dominio del tempo, o nel dominio della frequenza o, persino, in entrambi. Infatti: Teorema 2.4 Balian-Low Se le ψm,n (s) = ejmf0 s ψ(s − nt0 ) costituiscono una frame per L2 (ℜ) con f0 t0 = 2π, cioè se le ψm,n costituiscono una base di Riesz, allora o Z s2 |ψ(s)|2ds = ∞ oppure Z ξ 2|F [ψ(ξ)]|2dξ = ∞ ovvero o ψ ∈ / L2 (ℜ) o F [ψ] ∈ / L2 (ℜ) Riassumendo, se: 1. f0 t0 > 2π allora non esistono frame 2. f0 t0 = 2π allora esistono frame, ma non hanno una buona localizzazione tempo-frequenziale 3. f0 t0 < 2π allora esistono frame con un’eccellente localizzazione tempofrequenziale Teorema 2.5 Se {ψm,n }m,n∈Z costituisce un frame di Gabor per L2 (ℜ), qualsiasi funzione f ∈ L2 (ℜ) può essere scritta come f= X m,n hf, ψm,n i γm,n = X m,n hf, γm,n i ψm,n (20) dove γm,n sono gli elementi del frame duale di Gabor γm,n = G−1 ψm,n 13 2.2 Applicazioni Vediamo un esempio dell’applicazione della Trasformata di Gabor ad un segnale (unidimensionale) e notiamo come il risultato sia dipendente dalle dimensioni della finestra. (a) Il segnale e la sua FT (b) STFT con finestra larga (c) STFT con finestra lunga (d) STFT con finestra media (a) Il segnale è una forma d’onda sinusoidale (a 35Hz), un chirp quadratico (che inizia a tempo 0 con 25Hz e finisce dopo un secondo a 140 Hz) e un breve impulso (che appare dopo 0.3 secondi). (b) Usando una finestra larga si ottiene una buona risoluzione in frequenza. Possiamo vedere chiaramente il termine a frequenza costante. (c) Una finestra stretta conduce ad una buona risoluzione temporale (possiamo vedere chiaramente l’impulso a 0.3 secondi), ma l’informazione sull’armonica costante diventa molto spalmata. (d) Un buon compromesso delle dimensioni della finestra porta una risoluzione accettabile sia nel tempo che in frequenza. L’utilizzo maggiore di tale trasformata è quello, però, legato alla realizzazione di filtri; essi, come detto, sono definiti come maschere, tipicamente di piccole dimensioni, nello spazio. Dunque un filtro di Gabor è cosı̀ definito (caso discreto bidimensionale, ovviamente): −π 1 G(x, y) = ·e 2πσβ h (y−y0 )2 (x−x0 )2 + σ2 β2 14 i ej[ξ0 x+ν0 y] (21) dove (x0 , y0 ) è il centro del campo ricettivo nel dominio spaziale, (ξ0 , ν0 ) è la frequenza spaziale ”ottima” del filtro in frequenza, σ e β sono le deviazioni standard della gaussiana bidimensionale lungo x e y. Proviamo a realizzare un tale filtro con matlab e applichiamolo ad una immagine. Lo script che implementa un filtro di Gabor è il seguente: function [G,gabout]=mygaborfilter(Im,x0,y0,xi0,nu0,sigma,beta); if isa(Im,’double’)~=1 Im = double(Im); end for x = -fix(sigma):fix(sigma) for y = -fix(beta):fix(beta) G(fix(sigma)+x+1,fix(beta)+y+1)= (1/(2*pi*sigma*beta))* exp(-pi*((x-x0)^2/sigma^2+(y-y0)^2/beta^2))* exp(i*(xi0*x+nu0*y)); end end Imgabout = conv2(Im,double(imag(G)),’same’); Regabout = conv2(Im,double(real(G)),’same’); gabout = uint8(sqrt(Imgabout.*Imgabout + Regabout.*Regabout)); BW = imread(imgXXX.jpg); [G,gabout] = mygaborfilter(BW,0.03,0.05,0.05,0.003,0.2,0.2); figure,imshow(uint8(gabout)); Ecco un esempio dell’applicazione del filtro descritto all’immagine precedente. Originale Trasformata di Gabor 15 Vediamo più in dettaglio le maggiori applicazioni pratiche della Trasformata di Gabor, quelle riguardanti computer vision e biomedicina. 2.2.1 Computer Vision La STFT viene usata nella computer vision a vari livelli e per scopi diversi. Vediamo qui il suo utilizzo nell’estrazione degli spigoli in un’immagine (edge detection), nell’analisi e riconoscimento di impronte digitali. Molte tecniche di pattern recognition sono basate sul riconoscimento e la discriminazione dei lati delle texture 1 contenute nell’immagine. I texture edge sono definiti come quelle zone dell’immagine in cui c’è un brusco cambiamento nelle proprietà superficiali, mentre i contorni delle texture (texture boundaries) sono identificati dalle proprietà globali delle texture. A livello percettivo differenze significative nelle texture sono dovute a differenze nelle relative caratteristiche multirisoluzione e multicanale. L’edge detection può essere effettuata in diversi modi: tramite l’uso di filtri bidimensionali e tramite l’uso di un unico particolare filtro unidimensionale. La prima tecnica consiste nell’analisi della fase risultante dall’applicazione di un filtro bidimensionale all’immagine [21, 22]. Discontinuità che appaiono nella fase della stessa risultano in discontinuità nella superfice, esse possono essere localizzate nel dominio di Gabor come grandi ”salti” nella fase. Edge detection con filtri di Gabor 1-D Un filtro bidimensionale approssima l’informazione al bordo di due regioni di texture differenti. L’uso di un filtro unidimensionale [19, 20] risulta invece più efficace poichè la perdita di informazione è limitata alla direzione in cui il filtro viene applicato. Definiamo allora un filtro unidimensionale: g(x) = √ x2 1 · e− 2σ2 +jf x 2πσ (22) Convolvendo g(x) con un segnale s(x) abbiamo un segnale in ampiezza M(x) e fase φ(x); quest’ultima può venir estratta attraverso la funzione arctan (che però estrae solo il valore principale della fase e provoca discontinuità dovute a compressione della fase) oppure applicando a φ(x) la derivata (in 1 superfice di un oggetto, specificata dalle sue caratteristiche di riflessione della luce 16 cui il problema del phase wrapping non si verifica). Se o(x) è il segnale convoluzione del filtro con il segnale originale abbiamo: d d (loge (o(x))) = (loge (M(x) + jφ(x)) dx dx ′ ′ M (x) o (x) ′ = + jφ (x) o(x) M(x) d ′ o (x) = s(x) ∗ g(x) dx (23) (24) (25) ed infine: ( ′ o (x) ϕ(x) = ℑ o(x) ) ′ = φ (x) (26) dove ℑ {·} rappresenta l’operando per l’estrazione della parte immaginaria. La risposta di un filtro di Gabor 1-D applicato lungo la direzione verticale si calcola nel modo seguente: sia B1 = i(xc , y)∗g(y) = R1 +jI1 e B2 = i(xc , y)∗ d g(y) = R2 + jI2 , dove g(y) rappresenta il filtro di Gabor unidimensionale dx e i(xc , y) rappresenta la c − esima colonna dell’immagine i(x, y). Dall’equazione 26 otteniamo: B2 ϕ1 (xc , y) = ℑ B1 B2 B1∗ =ℑ B1 B1∗ ( ) = R1 I2 − R2 I1 R12 + I22 (27) dove B ∗ è il complesso coniugato di B e ϕ1 (xc , y) è la derivata prima di φ(x). Il processo viene poi iterato per tutte le colonne di i(x, y) per ottenere ϕ(x, y); essa dipende dai parametri del filtro di Gabor ma anche dalle caratteristiche di texture dell’immagine. La derivata ϕ1 (x, y) viene poi applicata alla direzione ortogonale attraverso l’impiego di un operatore 1-D di Canny per ottenere edge orientati lungo la direzione verticale. L’operatore 1-D di Canny è dato dalla derivata prima della funzione Gaussiana come segue: −x2 −x2 2σ 2 c(x) = √ · e 2πσ 3 (28) La convoluzione di c(x) con un’immagine porta alla visualizzazione di un picco dove si trovano edge, i più significativi dei quali possono essere estratti attraverso un’opportuna soglia adattativa [23]. 17 La risposta ϕ1 (x, y) viene applicata quindi lungo tutte le righe yr , attraverso c(x). f1 (x, yr ) = ϕ1 (x, yr ) ∗ c(x) (29) L’immagine di output f1 (x, y) viene ottenuta applicando l’equazione 29 su tutte le righe. Dualmente gli edge lungo le linee orizzontali si possono ottenere applicando un filtro 1-D di Gabor lungo le linee orizzontali e un operatore di Canny 1-D lungo le linee verticali. Alla fine le due immagini processate vengono combinate opportunamente per ottenere un output che evidenzi tutti gli edge (vedi figura 6). Utilizzando Figura 6: Un filtro Gabor 1-D applicato ad un’immagine (a) nelle diverse direzioni: (b) orizzontale, (c) verticale, (d) entrambe questa tecnica per l’individuazione degli edge si è visto che si riduce l’effetto di smearing degli stessi, l’uso dell’informazione relativa alla fase consente di ottenere un output più spigoloso e netto (sharp) agli edge, computazionalmente risulta meno costoso realizzare un filtro 1-D rispetto ai più comuni 18 filtri 2-D. Vediamo queste caratteristiche attraverso due esempi: uno che confronta l’analisi in fase con quella in ampiezza (figura 7), ed una che confronta l’utilizzo di un filtro 2-D con quello 1-D appena definito (figura 8). Nel primo caso abbiamo un’immagine contenente cinque regioni circolari, ognuna con uno shift diverso della texture di sfondo (quello al centro è a mala pena visibile dall’occhio umano). Vogliamo individuare i bordi di tutte e cinque le circonferenze. Figura 7: Un’immagine contenente cinque cerchi (a), l’output in fase con un filtro Gabor 1-D, (c) l’output in ampiezza con un filtro di Gabor 1-D Come si vede la figura 7.c, cioè quella che mostra l’ampiezza, non riesce a catturare il cerchio al centro e presenta alcune bande orizzontali; l’uso della fase, invece, riesce ad estrarre anche il quinto cerchio, quello con shift quasi nullo, e a disegnarne il bordo. Nel prossimo esempio vediamo invece quale evidente vantaggio visivo, ma, come detto, anche computazionale, si riesca ad ottenere utilizzando un filtro unidimensionale come quello definito poc’anzi rispetto ad un filtro bidimensionale. Anche in questa immagine vediamo prestazioni nettamente migliori 19 Figura 8: (a) Immagine contenente quattro texture; (b) l’output con filtro di Gabor 2-D; (c) l’output in ampiezza con filtro di Gabor 1-D; (d) l’output in fase con filtro di Gabor 1-D derivanti dall’uso di un filtro in fase 1-D di Gabor. Con un filtro 2-D (figura 8.b) si evidenziano gli edge, ma anche alcune parti dell’immagine non meglio identificate che non fanno parte dei contorni delle superfici. Con il filtro 1-D in ampiezza abbiamo risultati evidentemente migliori, che però vengono superati dalla minore presenza di rumore dell’immagine trattata con un filtro in fase 1-D. Riconoscimento di Impronte Digitali Grazie alla loro unicità, longevità e facilità di analisi le impronte digitali sono da anni utilizzate in numerosi campi quali il controllo di accesso, investigazioni criminali, autenticazione internet, etc. Le forme delle impronte digitali sono caratterizzate da spigoli ed avvallamenti, utilizzati per confronto, riconoscimento e classificazione delle stesse. Un approccio molto diffuso per il riconoscimento delle impronte digitali è quello basato sull’individuazione e confronto delle minutiae (terminazioni, 20 incavi, biforcazioni, ghiandole sudorifere) presenti in un’impronta. Sfortunatamente questo metodo richiede un considerevole numero di step intermedi che risultano molto laboriosi; inoltre esso dipende fortemente dalla qualità dell’immagine e dall’accuratezza di ogni passo (proporzionale alla complessità degli stessi). Un’estrazione delle features basata su filtri di Gabor è capace di superare gli svantaggi dell’approccio basato sulle minutiae. In un primo approccio (vedi [15, 25]) si possono usare filtri di Gabor reali come feature per la classificazione ed il riconoscimento delle impronte digitali, ma questo porta un costo elevato poichè è necessario convolvere ogni pixel dell’immagine con la componente reale dei filtri. In [26], al fine di evitare tale inconveniente, si introduce la feature in ampiezza di Gabor, al fine di ridurre il tempo computazionale necessario. In entrambi gli approcci è necessaria, e particolarmente dispendiosa, una dettagliata fase di tuning dei filtri di Gabor. Si vede ora un metodo basato su un tuning locale, meno dispendioso e più efficace dei sopra citati. In un’impronta digitale, come è ovvio, gli spigoli della stessa hanno diversi orientamenti e diverse distanze tra loro; l’idea è quella di localizzare le parti dell’immagine omogenee (rispetto a orientamento e distanza degli spigoli) e costruire i filtri di Gabor necessari in base alle informazioni locali. Per fare questo si trasforma ogni sottoimmagine locale nella sua rappresentazione di Gabor per individuare il filtro corrispondente più adatto. Successivamente si pratica una riduzione delle feature mappando il filtro scelto nello spazio delle funzioni base di Gabor complete (GBF, Gabor Basis Function). Infine si effettua un confronto nel dominio dello spazio per individuare similitudini nelle strutture degli spigoli. Vediamo in dettaglio. Nelle immagini locali si nota che gli spigoli hanno orientamento e distanze tra loro costanti (9). Figura 9: Immagini ”locali” di impronte digitali Trasformando le immagini tramite Fourier e analizzando lo spettro di 21 potenza si vede che ci sono due picchi uguali e simmetrici rispetto all’origine (detti anche twin peaks, vedi figura 10). Figura 10: Spettri di potenza delle immagini di figura 9 E’ possibile vedere che con l’aumentare delle distanze tra spigoli diminuisce la distanza dall’origine dei twin peaks. L’insieme completo delle GBF 2D può essere espresso come: 2 +(y−q)2 ]/σ 2 Gpqrs (x, y) = e−[(x−p) · e2πj(xr+js)/Nf (30) con p, q = 0, 1, ..., Ns − 1, dove Ns è il numero di campioni spaziali, (p, q) è il centro della finestra nel dominio dello spazio, Nf è il numero di campioni in frequenza, (r, s) è il centro della finestra in frequenza e σ regola l’estensione della finestra spaziale. Figura 11: Componenti reali delle GBF 22 Un’immagine I(x, y) può essere espressa come combinazione delle basi complete di Gabor 2D come segue: I(x, y) = XXXX p q r cpqrs Gpqrs (x, y) (31) s Sfortunatamente la complessità computazionale dei coefficienti di Gabor p, q, r, s deriva dalla non ortogonalità delle GBF . La risposta di Gabor g per ogni (r, s) è definita come segue: g(r, s) = N N s X s X I(x, y)Gpqrs(x, y) p q (32) dove I(x, y) è un’immagine di grandezza Ns × Ns . Si può vedere che le risposte locali continuano a mostrare i twin peaks che si vedevano grazie alla trasformata di Fourier ed essi sono localizzati similmente allo spettro di Fourier e ai coefficienti di Gabor. Figura 12: Spettri di potenza di filtri di Gabor per inclinazioni di 45◦ Ciò significa che le due GBF corrispondenti (che sono la stessa per la simmetricità) hanno le risposte più accurate all’immagine locale dell’impronta digitale. Dunque un’immagine locale di impronta digitale può essere facilmente catturata con tutte le sue caratteristiche grazie ad una sola GBF; essa viene definita come la funzione base principale di Gabor per tale regione locale. Grazie a questa importante proprietà possiamo pensare come input del nostro problema non più ai pixel dell’immagine ma all’unica GBF necessaria a ben rappresentare l’immagine locale. Tale GBF, determinata da (r, s), può anche essere data da un indice sull’insieme completo delle GBF. Se una regione locale ha 16 ∗ 16 pixel allora ci sono 256 GBF e l’indice della GBF principale necessita di un solo byte. I vettori di input sono ridotti di un fattore di 256! (si può facilmente ritornare all’approccio basato sui centri (r, s) 23 tramite una divisione). Si evidenzia il fatto, inoltre, che due regioni locali simili per direzione e interdistanza degli spigoli e appartenenti alla stessa impronta digitale possono essere rappresentati dallo stessa GBF, a cui viene applicata una rotazione. La procedura principale per il trattamento delle impronte digitali è focalizzata su tre processi: individuazione del core point, individuazione della GBF principale, riconoscimento. Figura 13: Diagramma a blocchi della procedura 1. Il confronto di due modelli di impronte digitali deve essere basato sullo stesso punto di riferimento (core point). Esso viene definito (ed individuato) prendendo il punto più alto dello spigolo ricurvo più interno orientato verso l’alto. Questa procedura è essa stessa soggetta ad errori di individuazione e spesso si preferisce effettuare manualmente questo passo. 2. Si ritaglia l’immagine in una sottoimmagine di 96 ∗ 112 pixel e si divide quest’ultima in regioni locali non sovrapposte di 16 ∗ 16 pixel. In base alle risposte di Gabor massime per trovare la GBF principale per tutte le regioni, si ottengono 6×7 valori (r, s) per ogni immagine di impronta digitale. 3. Per il riconoscimento si utilizza un classificatore nearest neighbor [25, 28] che permette di effettuare una classificazione senza introdurre benefici, per meglio verificare la bontà del metodo. Questo approccio porta risultati migliori dell’approccio basato su un ricoscimento effettuato sull’intera immagine (vedi figura 14). 24 Figura 14: Confonto dei risultati ottenuti con approccio locale e globale MSCDA L’algoritmo MSCD (Multi Spectral Contour Detection, o algoritmo Multi Spettrale per la ricerca dei Contorni) è uno dei pochi che, nel campo dell’edge detection, sia in grado di trattare immagini multi spettrali (ovvero a colori); oltre ad esso esistono, infatti, solo pochi concorrenti : gli algoritmi Sobel, Prewitt e LoG (Laplacian of Gaussian). L’MSCDA utilizza una matrice bidimensionale di moduli di processo, ognuno dei quali consiste in un banco di filtri orientati che sono chiamati MSPE (Multi Spectral Processing Element, o Elementi Base di Computazione Multi Spettrale). Ogni MSPE calcola un valore di contrasto massimo da un campo recettivo caratterizzato da un orientamento, una forma ed una dimensione. Esistono due tipi di MSPE: a simmetria pari e a simmetria dispari, legati tra loro dalla Trasformata di Hilbert. Una coppia di filtri (pari + dispari) coopera per estrarre da un punto dell’immagine un valore di contrasto combinato2 . L’immagine è convoluta separatemente con i due filtri ed i risultati sono convoluti successivamente tramite somma pitagorica non lineare. Ogni MSPE estrae un valore massimo di contrasto, dunque otterremo alla fine del passaggio per i filtri, un’immagine di contrasto, che viene elaborata ulteriormente per individuare i pixel candidati a far parte del contorno. L’operatore MSCDA ha una dimensione di 3 × 3 o 5 × 5 pixel, dove le dimensioni ridotte consentono di ottenere un rapporto segnale rumore elevato. La trasformata di Gabor è utilizzata in questo algoritmo per realizzare i campi recettivi di 5 × 5 pixel pari e dispari. Per realizzare un filtro dispari data una maschera di dimensioni 3 × 3 o 5 × 5 pixel si considerano due campi recettivi chiamati rispettivamente Area1 e Area2 (che corrispondono, nel caso dispari, alla seconda e quarta riga della tabella del filtro), essi forniscono due valori medi X1 e X2 che andranno 2 Ogni punto di un’immagine a colori è caratterizzato da un contrasto cromatico, relativo al colore del singolo pixel, ed un contrasto acromatico, che riguarda il cambiamento dell’intensità di due pixel adiacenti dell’immagine 25 combinati con quelli forniti dal filtro pari corrispondente per ottenere valori di contrasto da utilizzare nell’algoritmo. Si vede in tabella 1 la descrizione matriciale del filtro di Gabor MSPE dispari. GaborMask -2 -1 0 1 2 -2 0 0 0 0 0 -1 0 1 2 0 0.0001 0 0 -0.0043 -0.0317 -0.0043 0 0 0 0 0 0.0043 0.0317 0.0043 0 0 -0.0001 0 0 Tabella 1: MSPE dispari tramite campi recettivi di Gabor (5 × 5 pixel) MPEG-7 Il nome MPEG sta per Moving Pictures Expert Group e si può affermare che esso rappresenta uno degli standard maggiormente diffusi in tutto il mondo per la (de)codifica di filmati digitali. L’MPEG-7 si propone più in generale di introdurre un formalismo standard per la descrizione di informazione multimediale (immagini, video e audio); la prima release è datata 2001 ed è un protocollo basato fortemente su XML. La trasformata di Gabor è utilizzata al suo interno nel contesto dei descrittori di struttura. In MPEG-7 ne esistono tre: il texture browsing, cioè quello riguardante la navigazione delle strutture visive in base a caratteristiche percettive delle superfici quali regolarità, direzionalità e granularità, l’homogeneous texture e l’edge component histogram. La trasformata di Gabor appare nel primo e nel secondo di questi descrittori. Per quanto riguarda il texture browsing, il calcolo procede nel modo seguente: 1. L’immagine è filtrata da un banco di filtri, modellati dalle funzioni di Gabor, regolati secondo scala e orientazione 2. Dall’uscita sono identificate due orientazioni dominanti della texture, ciascuna rappresentata con 3 bit 3. Sono analizzate le proiezioni dell’immagine filtrata lungo le due orientazioni dominanti per determinare la regolarità (quantificata da 2 bit) e la granularità (2 bit ×2) Si vede ora l’applicazione della STFT per il descrittore homogeneous texture. Esso caratterizza la texture delle varie regioni usando l’energia e la deviazione 26 dell’energia in un insieme di canali di frequenza. Può essere usato per ricerche di similarità e applicazioni per recupero di immagini. La rappresentazione utilizza 62 coefficienti estratti nel modo seguente: 1. L’immagine è prima filtrata con un banco di filtri di Gabor. I filtri sono 5 × 6 = 30, dove 5 è il numero di livelli di scala e 6 il numero di direzioni della raprresentazione multirisoluzione. 2. I momenti di primo e secondo ordine dell’energia nel dominio della frequenza nelle corrispondenti sotto-bande sono utilizzati come componenti del descrittore di texture Iris feature coding Sistemi di riconoscimento e di autenticazione attraverso un’analisi dell’iride non compaiono sono in film di fantascienza (vedi, ad esempio, Minority Report, di ...), ma sono studiati perchè possono portare un reale vantaggio rispetto ad altri metodi. Infatti, il meccanismo di riconoscimento attraverso impronte digitali lavora su 90 feature (o caratteristiche), mentre un’immagine di un’iride presenta circa 266 feature. Un possibile procedimento per realizzare un tale sistema è composto dai seguenti processi: 1. Acquisizione dell’immagine. In questa fase un dispositivo, dipendente dalla tecnologia, si occupa di prelevare un’immagine il più possibile ristretta intorno all’iride del soggetto. 2. Segmentazione. Questo passo taglia via le parti residue dell’immagine che non sono rilevanti per il processo di riconoscimento. Senza particolari costrizioni all’utente, non ci si può aspettare di ottenere un’acquisizione dell’immagine che contenga solo l’iride; ci sarà anche una parte dell’immagine che cattura la regione circostante dell’occhio stesso. Quindi prima di passare alla codifica è necessario localizzare la sola porzione che corrisponde all’iride e in particolare quello che è compreso tra il bordo esterno (detto limbo), cioè quello tra l’iride e la sclera (parte bianca dell’occhio), e il bordo interno, cioè quello che delimita la pupilla. Inoltre, se la palpebre nascondono parte dell’iride allora deve essere inclusa la sola porzione sotto le palpebre superiori e quella sopra le palpebre inferiori. 3. Normalizzazione. Localizzata l’iride occorre normalizzarla cioè fare in modo che le regione dell’iride abbiano dimensioni costanti. In questo 27 modo due immagini della stessa iride sotto differenti condizioni avranno le caratteristiche distintive (features) alla stessa locazione spaziale. 4. Codifica delle caratteristiche. Allo scopo di fornire un accurato riconoscimento degli individui occorre estrarre dalla normalizzazione delle iridi il più gran numero di informazioni discriminanti. Solo le caratteristiche significative devono essere estratte e codificate in modo tale da poter effettuare la comparazione tra due template. Un template, nella maggior parte dei sistemi di riconoscimento dell’iride, viene creato utilizzando filtri da applicare alle immagini. 5. Matching. Il template generato nel processo di codifica evidentemente avrà bisogno di una corrispondente metrica di matching che fornisce una misura di similarità tra due modelli di iride. Il risultato della misura verrà successivamente confrontato con delle soglie, interclass o intraclass, per decidere se le due rappresentazione sono della stessa iride o sono di due occhi differenti. In questi sistemi la codifica delle caratteristiche (passo 4) può essere effettuata attraverso una coppia di filtri di Gabor in quadratura, cioè attraverso la trasformata di Gabor 2D accennata in precedenza (vedi equazione 21). La parte reale di questa funzione è un coseno modulato da una Gaussiana mentre la parte immaginaria è un seno modulato da una Gaussiana. Il filtro reale e quello immaginario sono anche conosciuti rispettivamente come componente simmetrica pari e componente simmetrica dispari. L’output del filtraggio di una regione dell’immagine viene a sua volta demodulato per avere un rappresentazione più compatta. In altre parole l’informazione di fase o meglio il fasore generato dalla proiezione di una data sezione dell’immagine sulla trasformata di Gabor 2D viene quantizzata su quattro livelli, a seconda del quadrante in cui si trova il fasore stesso nel piano complesso. Questi quattro diversi livelli sono rappresentati utilizzando soli due bit di dati (h), in questo modo ogni pixel dell’immagine dell’iride corrisponde a due bit del template dell’iride. In totale il pattern dell’iride consta di 2048 bit cioè un template compatto di 256 byte che prende il nome di IrisCode. Per ricavare il valore di questi bit per prima cosa dobbiamo considerare la funzione di Gabor 2D in forma polare dato che l’immagine da proiettare è quella 28 Figura 15: Quantizzazione di fase normalizzata in coordinate polari derivante dal processo di normalizzazione: H(r, θ) = e−jω(θ−θ0 ) e −(r−r0 )2 α2 e −j(θ−θ0 )2 β2 (33) dove (α, β) rappresentano larghezza e lunghezza della funzione di Gabor e (r0 , θ0 ) specificano la frequenza centrale del filtro. Di qui il processo di quantizzazione è descritto dai seguenti integrali doppi: dove I(ρ, Θ) rappresenta l’immagine originaria nelle coordinate polari. In pratica la coppia dei due bit h che deve quantizzare l’informazione di fase è composta dal bit hRe e dal bit hIm , i quali possono assumere il valore 0 o 1 a seconda del segno dell’integrale. Ad esempio se il fasore capita nel secondo quadrante hRe = 0 e hIm = 1, cioe h = 01. La scelta di quantizzare e quindi utilizzare le informazioni di fase rispetto a quelle di ampiezza è dovuta al fatto che quelle di fase sono più significative e 29 discriminanti mentre quelle di ampiezza sono per lo più ridondanti (ad esempio l’informazione di illuminazione o di contrasto). Anche se l’immagine è visibilmente sfocata (vedi figura 16), informazione di ampiezza, la codifica di fase non causa perdita di informazione. Il rettangolo in alto a sinistra della figura rappresenta la stringa di bit derivante dalla codifica dell’immagine segmentata (individuazione dell’iride) e normalizzata (rappresentazione in coordinate polari). Figura 16: Immagine di un’iride e relativo IrisCode 2.2.2 Biomedicina Un’importante utilizzo per i filtri di Gabor è quello riguardante applicazioni nel campo biomedico. Particolarmente delicato ed oneroso è il compito che si affida ai filtri di Gabor nell’analisi di mammografie al fine di estrarre, se purtroppo ce ne fossero, le microcalcificazioni che, come si sa, rappresentano i primi segnali di pericolo nella maggior parte dei tumori al seno. L’interpretazione delle mammografie ai raggi infrarossi è spesso molto difficile a causa delle piccole differenze nelle densità dei tessuti; nonostante questo, la maggior parte delle volte, l’individuazione di anormalità è lasciata alla capacità visiva (unita all’esperienza) del radiologo. Uno strumento automatico per il supporto alla decisione è sicuramente utile al fine di minimizzare errori 30 nelle diagnosi e nel relativo trattamento dei casi. Le microcalcificazioni (vedi figura 17) sono piccoli depositi di calcio del diametro medio di circa 0.3mm e massimo di 0.7mm. Al fine di individuarli è stato visto grazie a numerosi studi che è di fondamentale importanza la scelta del livello di grigi da usare nell’immagine e la capacità di individuare le texture. Figura 17: Esempi di microcalcificazioni In questo ambito si definiscono i filtri GEF (Gabor Energy Filters); essi estraggono le caratteristiche di texture che servono a definire le regioni di interesse o ROI (Region Of Interest) che sono poi classificate grazie ad una rete neurale in regioni positive, contenenti microcalcificazioni, e regioni negative, che contengono normali tessuti. Definiamo i GEF (vedi figura 18) come segue: G(x, y|λ, θ, φ, x0, y0) = e− [(x−x0 )2 +(y−y0 )2 ] 2σ 2 31 · sin 2π (x cos θ − y sin θ) + φ (34) λ dopodichè applichiamo questo filtro ad ogni pixel dell’immagine I(x, y) dell’immagine per ogni combinazione di lunghezza d’onda λ e orientamento θ, dove l’energia è definita come la somma sulle fasi dei valori del filtro al quadrato, cioè: 2 S (x0 , y0 ) = " X x,y + " X x,y G(x, y|λ, θ, 0, x0, y0 ) ∗ I(x, y) π G(x, y|λ, θ, , x0 , y0 ) ∗ I(x, y) 2 #2 #2 + (35) L’energia calcolata utilizzando l’equazione 35 per ogni combinazione di λ e θ viene adoperata per estrarre le proprietà di interesse (feature) di ogni texture, cioè per individuare (e classificare) le regioni contenenti microcalcificazioni e le regioni sane. Figura 18: Filtri GEF per λ = 4, θ = 0, π3 , 23 π 2.3 Limiti 1. L’efficacia della Trasformata di Gabor è compromessa, in alcuni casi, da quello che viene detto problema di risoluzione. Il principio d’indeterminazione di Heisenberg afferma l’impossibilità di sapere esattamente quali componenti spettrali esistono in un preciso istante di tempo, ossia di avere un’esatta rappresentazione in tempo-frequenza. E’ dato sapere solamente gli intervalli di tempo in cui è presente una certa banda di frequenze. Nella Trasformata di Gabor questo problema è legato all’ampiezza temporale della funzione finestra, ossia al supporto della finestra. Nella Trasformata di Fourier il problema della risoluzione in frequenza non si pone poichè sono esattamente note tutte le frequenze esistenti. La 32 perfetta risoluzione in frequenza della Trasformata di Fourier è data dal fatto che la finestra utilizzata è il suo kernel, la funzione eiωt , che si estende da −∞ a ∞. Se, d’altro canto, utilizziamo come funzione finestra l’impulso di Dirac, otteniamo risoluzione in frequenza nulla e massima frequenza temporale. Nella STFT l’ampiezza della finestra è invece finita, quindi copre solo una porzione del segnale, peggiorando di conseguenza la risoluzione in frequenza nel senso sopra indicato: ovvero non sono note le esatte componenti che esistono nel segnale ma solamente una banda delle stesse. Perchè sia verificata l’ipotesi di stazionarietà entro la finestra è d’altronde necessario che sia sufficientemente stretta. Si hanno quindi le due situazioni antitetiche in cui per le finestre strette si ha buona risoluzione temporale ma povera risoluzione in frequenza, viceversa con finestre ampie abbiamo una buona risoluzione in frequenza ma povera risoluzione temporale. Da questa considerazione nascerà l’introduzione delle Trasformate Wavelet. 2. La Trasformata di Gabor è soggetta, soprattutto per quanto riguarda il caso discreto, a fenomeni di ridondanza. 3. Non è possibile per la Trasformata di Gabor individuare una trasformata veloce, come invece accade per Fourier (la FFT ). Riferimenti bibliografici [1] S. Mallat. A Wavelet Tour of Signal Processing. Academic Press, 1999. [2] M.V. Wickerhauser. Adapted Wavelet Analysis from Theory to Software. IEEE Press, 1994. [3] R. Cusani. Teoria dei segnali. Ingegneria 2000, 1999. [4] D. Zhang, A. Wong, M. Indrawan, G. Lu. Content-based Image Retrieval Using Gabor Texture Features. Gippsand School of Computing and Information Technology. 33 [5] B. Cabral, L. Leedom. Imaging Vector Fields Using Linear Integral Convolution. Lawrence Livermore National Laboratory. [6] C.-J. Lee, S.-D. Wang, K.-P. Wu. Fingerprinting Recognition Using Principal Gabor Basis Function. Dept. of Electrical Engineering, National Taiwan University. [7] L. Ottaviani. Trasformata Wavelet e Traformata di Gabor a confronto. Dipartimento di Informatica, Università di Verona, 2003. [8] A. Graps. An Introduction to Wavelets. [9] P. Getreuer. Filter Coefficients to Popular Wavelets. 2004. [10] G.F. Margrave, P.C. Gibson, J.P. Grossman, D.C. Henley, M.P. Lamoureux. Gabor deconvolution. Department of Geology and Geophysics, University of Calgari, 2002. [11] S. Qiu. The Undersampled Discrete Gabor Transform. IEEE Transactions on Signal Processing, 1998. [12] G.F. Margrave, V. Iliescu, J.P. Grossman, D.C. Henley, M.P. Lamoureux. Gabor deconvolution revisited. Department of Geology and Geophysics, University of Calgari, 2003. [13] I. D’Antone. Wavelets: un nuovo strumento per l’analisi di segnali e immagini. INFN, 2000. [14] H.G. Feichtinger, T. Strohmer. A brief introduction to Gabor analysis. [15] M.R. Iarusso. Introduzione alle wavelets. Università degli Studi Roma Tre, 2005. [16] E. Wilczok. New Uncertainty Principles for the Continuous Gabor Transform and the Continuous Wavelet Transform. Documenta Mathematica, 2000. 34 [17] M.J. Bastiaans, M.C.W. Geilen. On the discrete Gabor transform and the discrete Zak transform. Technische Univ. Eindhoven. [18] J.B. Joseph Fourier Teoria analitica del calore. 1822. [19] B. Yegnanarayana, G. Pavan Kumar, Sukhendu Das. One-dimensional Gabor filtering for texture edge detection. Proceedings of the Indian Conference on Computer Vision, Graphics and Image Processing. 1998. [20] B. Yegnanarayana, P. Kiran Kumar, Sukhendu Das. Texture edge extraction using 1-D Gabor filters and Constraint Satisfaction Neural network model. IEEE Transactions on Image Processing. [21] J.M.H.D. Buf. Gabor phase in texture discrimination. Signal Processing, vol. 21. 1990. [22] J.M.H.D. Buf, B. Heitkaper. Texture feature based on Gabor phase. Signal Processing, vol. 23. 1991. [23] J. Canny. A computational approach to edge detection. IEEE Transaction on Pattern Analysis and Machine Intelligence, vol. 8. 1986. [24] Jain A.K, Prabhakar S., Hong L. A multichannell approach to fingerprinting classification. IEEE Transaction on Pattern Analysis and Machine Intelligence, vol. 21. 1999. [25] Jain A.K, Prabhakar S., Hong L. Filterbank-based fingerprint matching. IEEE Transaction on Image Processing, vol. 9. 2000. [26] Lee C.J., Wang S.D. Fingerprint feature extraction using Gabor filters. Electronics Letters, vol. 35. 1999. [27] Lee C.J., Wang S.D., Wu K.P. Fingerprint Recognition using Principal Gabor Basis Function. Proceedings of 2001 International Simposium on Intelligent Multimedia, Video and Speech Processing. 2001. 35 [28] Cover T.M., Hart P.E. Nearest Neighbor Pattern Classification. IEEE Transaction on Information Theory. [29] Berretti S. MPEG-7. Visual Information Processing Laboratory. Università of Firenze. 2005. [30] Andreoli T. Implementazione dell’algoritmo MSCD sull’edge-detection. Università degli Studi di Brescia. [31] Selvaggio V. Stato dell’arte dei sistemi biometrici basati sul riconoscimento dell’iride. Università degli Studi di Napoli ”Federico II”. 2004. 36