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