Cos è una wavelet? Applicazioni della trasformata wavelet Analisi multirisoluzione
Tre tecniche: Piramidi di immagine Trasformata di Haar Codifica per sottobande
Il numero totale di pixel nel caso di una piramide di (P + 1) livelli è: N 2 1 + 1 (4) 1 + 1 (4) 2 + + 1 (4) P Usate in coppia: - Piramide di approssimazione - Piramide residua di predilezione
L immagine viene decomposta in un insieme di componenti, di banda limitata (sottobande). La scomposizione viene attuata in modo tale che le sottobande possano poi essere riassemblate per ricostruire l immagine originale senza errori. La scomposizione e la ricostruzione vengono realizzate attraverso l uso di filtri digitali
f n = k f(n k) k= Tre componenti principali: ritardi unitari, moltiplicatori e sommatori Le K costanti moltiplicative sono dette coefficienti del filtro Ogni coefficiente definisce uno dei tap del filtro.
Impulso discreto unitario f n = k δ(n k) = (n) k= Risposta all impulso finito (FIR) Un filtro è completamente descritto fornendo il suo FIR
Due banchi di filtri Banda dettaglio (f hp (n)) e banda di approssimazione (f lp (n)) Filtri di ricostruzione perfetti
Per ottenere la perfetta ricostruzione, i filtri di analisi e sintesi devono essere legati in uno dei seguenti modi: g 0 n = 1 n 1 n g 1 n = 1 n+1 0 n oppure g 0 n = 1 n+1 1 n g 1 n = 1 n 0 n Quattro filtri di Daubechies correlati
Questi filtri godono della proprietà di biortogonalità. Di notevole importanza sono anche i banchi di filtri ortonormali. Filtri 1-D che godono di entrambe queste proprietà possono essere usati come filtri separabili 2-D per l elaborazione delle immagini.
Nella figura successiva viene mostrata quella che più avanti chiameremo Trasformata Discreta Wavelet (WDT) Ma prima un po di matematica!!
L analisi multirisoluzione (MRA, Multi Resolution Analysis) è una branca della matematica che prevede l uso di una funzione di scala per creare una serie di approssimazioni di una funzione/immagine (differenti per un fattore 2) e funzioni, dette wavelet, per codificare la differenza di informazione tra approssimazioni adiacenti. In genere: le funzioni di scaling sono indicate con il simbolo φ le funzioni wavelet sono indicate con il simbolo ψ
Sia φ x ε L 2 R Definiamo *φ j,k x + dove φ j,k x Definiamo V j = Span k *φ j,k (x)+ = 2 j/2 φ 2 j x k Se f x ε V j allora f 2x ε V j+1 Le funzioni di scaling devono obbedire a 4 requisiti principali: 1. La funzione di scaling deve essere ortogonale rispetto alle sue traslazioni intere. 2. I sottospazi descritti da funzioni di scaling a scale più basse vengono annidati all interno di quelli a scale più alte.
V V 1 V 0 V 1 V 3. La sola funzione comune a tutti i sottospazi è f x = 0: V = *0+ 4. Ogni funzione può essere rappresentata con precisione arbitraria: V = *L 2 R +
Le funzioni di espansione del sottospazio V j possono essere espresse come somma pesata delle funzioni di espansione del sottospazio V j+1 : Da cui: φ j,k x = α n φ j+1,n (x) n φ j,k x = φ (n) 2 j+1 2 φ(2 j+1 x n) n Le funzioni di espansione di ogni sottospazio possono essere Questa costruite equazione da è copie fondamentale di se stesse per a l analisi risoluzione doppia, cioè multirisoluzione! dalle funzioni di espansione del successivo spazio a risoluzione più alta.
Consideriamo: 1 0 x < 1 φ k x = 0 altrimenti Ricordiamo: φ j,k x = 2 j/2 φ 2 j x k φ 0 = φ 1 = 1 2 Infatti: φ x = 1 = 2. φ 1,0 x + 1 2. φ 1,1 x
Una funzione wavelet ψ(x) insieme alle sue traslazioni e riduzioni di scala binarie, ricopre la differenza fra due sottospazi di scaling adiacenti V j e V j+1. Definiamo ψ j,k x, dove ψ j,k x = 2 j/2 ψ 2 j x k Definiamo W j = Span k *ψ j,k (x)+ I sottospazi delle funzioni di scaling e wavelet sono legati da V j+1 = V j W j Tutti i membri di V j sono ortogonali rispetto a quelli di W j
Risulta immediato: L 2 R = V 0 W 0 W 1 oppure o anche L 2 R L 2 R = V 1 W 1 W 2 = W 1 W 0 W 1 Queste equazioni possono essere generalizzate in L 2 R = V j0 W j0 W j0 +1 dove j 0 prende il nome di scala iniziale.
Gli spazi wavelet risiedano all interno di spazi ricoperti dalle funzioni di scaling a più alta risoluzione, ciò significa che ogni funzione wavelet, così come avveniva per la sua controparte funzione di scaling, può essere espressa come somma di funzioni di scaling traslate a risoluzione doppia. ψ j,k x = ψ (n) 2 j+1 2 φ(2 j+1 x n) n Si può dimostrare che i coefficienti delle funzioni di scaling e wavelet sono legati dalla seguente relazione: ψ n = ( 1) n φ (1 n)
A partire dai coefficienti delle funzioni di scaling dell esempio precedente, possiamo calcolare i coefficienti delle funzioni wavelet: ψ 0 = 1 2 ψ 1 = 1 2 È facile ottenere la funzione wavelet corrispondente: 1 0 x < 0.5 ψ x = 1 0.5 x < 1 0 altrimenti
Esistono 3 trasformate wavelet 1D: Espansione in serie wavelet Trasformata wavelet discreta Trasformata wavelet continua
Ricordiamo che: e anche: L 2 R = V j0 W j0 W j0 +1 g x ε V j0 g x = α k φ j0,k(x) g x ε W j0 g x = α k ψ j0,k(x) Una funzione f x può essere rappresentata da un espansione della funzione di scaling φ x nel sottospazio V j0 e da un certo numero di espansioni della funzione wavelet ψ x nei sottospazi W j0, W j0 +1 dove j 0 indica una scala iniziale arbitraria: f x = c j0 k c j0 (coefficienti di approssimazione) d j (coefficienti di dettaglio) k k k φ j0,k x + d j k ψ j,k x j= j 0 c j0 k = f x, φ j0,k x = f x φ j0,k x dx d j k = f x, ψ j,k x = f x ψ j,k x dx k
Con l espansione in serie wavelet, una funzione continua viene associata ad una sequenza di coefficienti che ne rappresentano la trasformata. Se la funzione da espandere è discreta (ovvero una sequenza di numeri, come un immagine) i coefficienti che ne risultano sono detti trasformata wavelet discreta. W φ j 0, k = 1 W ψ j 0, k = M n 1 M n f(n)φ j0,k n f(n)ψ j,k n per j j 0 I valori di φ j0,k n e ψ j,k n usati in queste equazioni sono versioni campionate delle funzioni di base estraendo M campioni ugualmente spaziati all interno del supporto delle funzioni di base. f n = 1 M Varianti: k 1 W φ j 0, k φ j0,k n + M j=j 0 k W ψ j, k ψ j,k n trasformata wavelet veloce (FWT, Fast Wavelet Transform). trasformata wavelet continua (CWT, Continuous Wavelet Transform)
Nel caso bidimensionale è necessario usare una funzione di scaling bidimensionale φ x, y e tre wavelet bidimensionali ψ H x, y, ψ V x, y e ψ D x, y ottenute come prodotto di due funzioni unidimensionali: φ x, y = φ x φ y ψ H x, y = ψ(x)φ(y) ψ V x, y = φ x ψ y ψ D x, y = ψ(x)ψ(y) Definiamo le funzioni di base: φ j,m,n x, y = 2 j/2 φ 2 j x m, 2 j y n ψ i j,m,n x, y = 2j/2 ψ i 2 j x m, 2 j y n i *H, V, D+ Trasformata wavelet discreta dell immagine f(x, y) di dimensioni M N : W φ j 0, m, n = W ψ i 1 MN j, m, n = 1 MN M 1 N 1 x=0 y=0 M 1 N 1 f(x, y)φ j0,m,n i f(x, y)ψ j,m,n x, y x, y i *H, V, D+ Antitrasformata: f x, y = 1 MN m n x=0 y=0 W φ j 0, m, n φ j0,m,n x, y + 1 MN i=h,v,d j=j 0 m n W H H ψ j, m, n ψ j,m,n x, y
Usando funzioni wavelet e scaling bidimensionali, la FWT in due dimensioni può essere calcolata semplicemente prendendo la FWT 1-D delle righe di f(x, y) seguita dalla FWT 1-D delle colonne che ne risultano:
La trasformata wavelet discreta (DWT) trova impiego nella compressione JPEG2000 al posto della trasformata discreta del coseno (DCT) usata nel JPEG. L uso di questa trasformata permette di operare sull intera immagine piuttosto che su quadrettoni 8x8, evita quindi il tipico difetto della quadrettatura. La DWT può essere sia reversibile (codifica lossless) che irreversibile (codifica lossy). In JPEG2000 viene usata una trasformazione irreversibile basata sul filtro di Daubechies 9/7 a valori reali. JPEG2000 rappresenta lo stato dell arte per la compressione distruttiva e non distruttiva delle immagini, con un risparmio di spazio, a parità di qualità, rispetto allo standard JPEG, che parte da un +20-30%.
La trasformata wavelet può essere utilizzata come edge detector, al fine di evidenziare gli edge degli oggetti rappresentati in un immagine
Procedura: Passo 1 Si sceglie una wavelet e un numero di livelli per la scomposizione e si calcola la FWT dell immagine affetta da rumore. Passo 2 Si esegue un operazione di sogliatura (Hard o Soft) sui coefficienti di dettaglio delle scale inferiori (blocchi più grandi). Passo 3 Si calcola la trasformata wavelet inversa utilizzando i coefficienti di approssimazione inalterati di scala più bassa e quelli di dettaglio modificati di tutte le altre scale.