"Poca osservazione e molto ragionamento conducono all’errore.

Molta osservazione e poco ragionamento conducono alla verità’’

(A. Carrel)

 

UN ‘‘CASO’’ PER MATLAB :

IMPRONTE DIGITALI,

CLASSIFICAZIONE, IDENTIKIT

 

 

 G. Naldi, T. Scapolla

Dipartimento di Matematica ‘‘F. Casorati’’, Università di Pavia

 

G. Chierico

Polizia Scientifica, Questura di Pavia

 

Sunto. In questo lavoro si vogliono descrivere alcuni aspetti relativi all’utilizzo di recenti tecniche per la compressione e l’analisi di immagini nell’ambito della procedura investigativa che utilizzi le

impronte digitali. I procedimenti considerati per la trasformazione e/o compressione di una immagine si basano sulla trasformata wavelet e sulla compressione frattale. Si considererà inoltre l’accoppiamento tra sistema visivo umano e compressione wavelet e si descriveranno possibili sviluppi futuri per procedimenti automatizzati di identificazione di impronte digitali .

 

Keywords : impronte digitali, wavelets, compressione, analisi immagini, frattali autosimili, identificazionei.

 

1. Introduzione

Le creste cutanee sono rilievi determinati in alcune regioni del corpo (palma delle mani, pianta dei piedi, polpastrelli delle dita) dalla sporgenza delle papille dermiche allineate (scoperte da M. Malpighi nel 1664). Le creste cutanee hanno la larghezza di 0.2-0.7 mm. e sono visibili a occhio nudo. Il complesso delle varie creste cutanee forma dei caratteristici disegni studiati fin dal 1823 dal fisiologo J.H. Purkinje e in seguito da F. Galton (Finger prints , Londra 1892). Essendo tali disegni in rilievo, possono lasciare impronte sulle superfici liscie. Dato che i disegni digitali e palmari sono strettamente individuali, le relative impronte possono essere utilizzate nel processo di identificazione nei servizi di polizia. La dattiloscopia è lo studio scientifico e pratico di questi disegni digitali e delle relative impronte. Le impronte digitali (cioè del polpastrello delle dita delle mani) presentano differenze generali (utili per una loro classificazione) e differenze particolari (utili per l’identificazione individuale). Queste caratteristiche stanno alla base delle due principali applicazioni pratiche che sono state fatte : l’identificazione dei recidivi, l’individuazione delle impronte lasciate sul luogo del reato.

Per l’identificazione si raccolgono le impronte delle dieci dita sulla scheda segnaletica di ogni individuo e poi si ripartiscono le schede in appositi casellari. La distribuzione si fa in base alla formula dattiloscopica che varia da sistema a sistema. Il sistema italiano, dovuto al Gasti con succesive integrazioni del Sorrentino, prevede più categorie. L’identità si dimostra col constatare che due impronte appartengonom allo stesso tipo, con lo stesso numero di linee, col rilievo di un certo numero di punti caratteristici (12-15 punti caratteristici) egualmente situati (biforcazioni, interruzioni, anelli, ecc.) e con l’assenza di punti caratteristici in contrasto.

Per velocizzare ed agevolare le operazioni di identificazione e di classificazione delle impronte digitali, diventa necessario prevedere la memorizzazione delle impronte stesse su supporto elettronico tramite un opportuno formato ‘‘digitalizzato’’ . Per esempio, come fatto in America dall’FBI, ogni impronta su scheda, potrebbe essere digitalizzata in una immagine i bianco e nero con scala di grigio a 8 -bit e con una risoluzione di 500 dpi (dots per inch). In questo modo ogni scheda richiederebbe circa 10 megabytes per una opportuna memorizzazione. Data la quantità di impronte (schede) da memorizzare ed il numero di nuove acquisizioni giornaliere ( sempre con riferimento all’FBI, si hanno circa trentamila nuove acquisizioni per giorno, ovverosia 300 gigabytes) diventa essenziale un processo di compressione di queste immagini.

Figura 1 : esempio di impronta

 

In Figura 1 si mostra un esempio di impronta digitale ‘‘digitalizzata’’ per la memorizzazione su un opportuno supporto elettronico. Questo esempio è stato tratto dalla biblioteca di immagini disponibili con il Toolbox Wavelet di Matlab.

Una metodologia generale per la compressione delle immagini consiste nel considerare una opportuna rappresentazione del segnale (preferibilmente tramite una ‘‘trasformata rapida’’) che permetta di utilizzare un numero minore di bit per la memorizzazione mantenendo una accuratezza accettabile (eliminando le informazioni ‘‘rindondanti’’). Uno degli approcci più utilizzati impiega l’analisi di Fourier e le relative trasformate rapide per lo sviluppo del segnale in basi trigonometriche (funzioni seno e coseno a frequenze differenti). In particolare, un diffuso metodo di codifica è lo standard JPEG (Joint Photographic Expert Group).

Il processo di trasformazione di JPEG prevede diversi passi. Inizialmente l’immagine viene suddivisa in blocchi contigui di 8´ 8 pixels. Ogni blocco è quindi rappresentato da una matrice di 8 righe e 8 colonne di numeri interi variabili nell’intervallo [0, 255]. Quindi si normalizzano tali valori in modo tale che varino tra -128 e 127. Nel secondo passo si applica la trasformata coseno discreta ad ogni blocco ottenendo una nuova matrice trasformata, sempre di dimensioni 8´ 8. La matrice trasformata, che contiene le componenti per differenti frequenze, viene ‘‘quantizzata’’ suddividendo le componenti, opportunamente normalizzate, in sottointervalli e stabilendo un valore intero rappresentativo per ogni sottointervallo. Questo passo è essenziale per stabilire il livello di compressione e la qualità dell’immagine compressa. La matrice quantizzata viene memorizzata in un vettore tramite una lettura a ‘‘zig-zag’’ della matrice stessa. Infine il vettore viene codificato tramite una codifica run-length e, successivamente, tramite un metodo entropico quale il metodo di Huffman. Il procedimento di decompressione è facilmente ottenibile ‘‘invertendo’’ i singoli passi utilizzati nella fase di compressione.

Generalmente il rapporto di compressione CR è definito da

 

numero di bit richiesti per memorizzare l’immagine originale

CR = __________________________________________

numero di bit richiesti per memorizzare l’immagine compressa

 

Utilizzando JPEG, anche per moderati valori del livello di compressione, ci si accorge che si formano degli artefatti nell’immagine decompressa dovuti all’interfacciamento dei singoli blocchi di 8 pixels per lato. Nel caso delle impronte digitali questo fenomeno non è accettabile dato che può influenzare il processo di identificazione. Una discussione di questo aspetto si può trovare in C.M. Brislawn , mentre ulteriori informazioni si possono ricavare su un link World Wide Web appositamente creato : http ://www.c3.lanl.gov/~ brislawn/main.html. In figura 2 si mostra un tipico risultato (qui preso da C.M. Brislawn) ottenibile con lo standard JPEG ed una memorizzazione che utilizzi 0.6 bits/pixel.

Figura 2 : immagine compressa con JPEG (da C.M. Brislawn)

 

Recentemente le basi wavelets hanno fornito una importante alternativa sia per la compressione delle immagini che nei più svariati ambiti applicativi : dall’edge detection agli operatori integrali, dall’analisi di strutture frattali agli algoritmi adattativi nella discretizzazione di equazioni differenziali, dall’analisi di segnali biomedici alla simulazione di strutture molecolari.

In particolare tali basi permettono di effettuare una analisi di Fourier localizzata permettendo l’individuazione delle componenti ‘‘importanti’’ di un segnale (funzione, immagine) sia nello spazio che in frequenza.

Il termine wavelet (originalmente chiamata ‘‘wavelet of constant shape’’) è stato introdotto da J. Morlet ed in generale denota una funzione y(x) definita sulla retta reale R che, soggetta alle operazioni di traslazione di un intero k e dilatazione di un fattore 2j ( j intero), fornisce una base ortonormale per lo spazio L2(R) delle funzioni a quadrato integrabile. In altre parole l’insieme di funzioni :

 { yjk (x) = 2j/2 y (2j x -k), j,k Î Z } (1)

forma un sistema ortonormale completo per L2(R ).

 

Figura 3 : alcuni esempi di funzione wavelet
.

 

In figura 3 si mostrano i grafici di alcune funzioni wavelet, la wavelet di Haar (introdotta da A. Haar nel 1910 in altro ambito) può essere storicamente considerata la prima wavelet.

La base (1) permette di ottenere una decomposizione gerarchica di un dato segnale, questa proprietà è stata formalizzata nel concetto di Multiresolution Analysis da S. Mallat e Y. Meyer. La decomposizione in una base di wavelets di un segnale può essere efficientemente fatta tramite una trasformata rapida (con una complessità linearmente proporzionale alla lunghezza del segnale discreto). Inoltre la decomposizione che si ottiene permette di individuare solo le componenti essenziali del segnale in esame grazie alle proprietà di localizzazione spazio/frequenza delle funzioni wavelets.

Un altra tecnica introdotta recentemente per la compressione delle immagini utilizza idee provenienti da una teoria matematica nota come iterated function systems (IFS). Tale tecnica sfrutta l’autosimilità di parti dell’immagine e la potenzialità dei frattali per la modellizazione dei fenomeni naturali. La teoria è stata inizialmente sviluppata da J. Hutchinson nel 1981, in seguito M. Barnsley ed il suo gruppo di ricerca presso il Georgia Institute of Technology, hanno incominciato a sfruttare l’approccio IFS per modellizare strutture naturali quali nuvole, alberi, foglie. Nel 1989 A. Jacquin, un allievo di Barnsley, realizzò il primo sistema automatico di codifica frattale di una immagine.

Il codice forniva buoni indici di compressione ma risultava ‘‘lento’’ ; miglioramenti e varianti sono state proposte in seguito. In particolare è risultato fondamentale il lavoro di Y. Fisher che ha utilizzato uno schema di codifica frattale adattivo con una struttura dati tipo quadtree per i blocchi che compongono l’immagine da comprimere.

In questo ultimo approccio infatti si partiziona l’immagine in vari blocchi (che si possono anche sovrapporre) e per ogni blocco si cerca un opportuno IFS che lo possa rappresentare con una adeguata accuratezza. In altri termini si stabilisce una porzione di figura (range block R) ed una parte più grande (domain block D) ed una trasformazione affine T tale che T(D), o una sua iterata Tn, sia una buona approssimazione del blocco R. Solo la trasformazione sarà codificata contenendo tutte le informazioni necessarie per ricostruire la porzione di immagine selezionata. Naturalmente l’applicazione T deve soddisfare opportune proprietà, in particolare deve essere una applicazione contrattiva (in caso contrario la decodifica non potrà essere fatta).

I risultati ottenuti con la tecnica di compressione frattale sembrano promettenti anche se il processo di codifica risulta essere computazionalmente più oneroso mentre quello di decodifica più semplice.

 

2. Wavelets ed Analisi Multirisoluzione Ortogonale

Consideriamo ora la nozione fondamentale di Analisi Multirisoluzione (nel seguito abbreviata con MRA). Rimandiamo naturalmente ai riferimenti bibliografici indicati alla fine del presente lavoro per una trattazione più approfondita della teoria delle wavelets.

Consideriamo il problema della costruzione di un sistema ortonormale completo per lo spazio L2(R ) partendo dalla funzione caratteristica per l’intervallo unitario [0,1) :

 c [0,1) (x) = f (x) (2)

E’ chiaro che l’insieme { f (x - k ), k Î Z } è un sistema ortogonale in L2(R ) ma non è completo dato che genera il solo sottospazio chiuso V 0 delle funzioni costanti a tratti con ‘‘salti’’ possibili solo per valori interi, per esempio la funzione c [0,1/2) (x) non appartiene a tale sottospazio.

Per includere più funzioni consideriamo allora le versioni dilatate, con fattore di dilatazione 2j e j intero, traslate di un valore k intero e normalizzate, della funzione caratteristica f (x) e:

 f jk (x) = 2j/2 f (2j x - k) (3)

 

Per un valore fissato del parametro intero j l’insieme delle funzioni (3) genera il sottospazio lineare chiuso denotato con Vj . Dato che ogni funzione di fÎ L2(R ) può essere ‘‘arbitrariamente’’ approssimata da una funzione costante a tratti fj con salti nei razionali diadici del tipo xjk=k/2j , ne segue che l’unione È j Vj è densa in L2(R ). Da quanto detto si deduce che il sistema delle funzioni (3) al variare degli indici interi j,kÎ Z è un sistema completo ma si è persa l’ortogonalità (per esempio le funzioni caratteristiche rappresentate da f (x) e f (2x) non sono ortogonali). Per ovviare a ciò si può introdurre una nuova funzione y (x) appartenente a V1 ed ortogonale alla funzione f (x). Un semplice calcolo mostra che la funzione y (x)= f (2x)- f (2x-1) soddisfa ad entrambe le richieste. Si deduce quindi che l’insieme delle funzioni y jk (x) = 2j/2 y (2j x - k) al variare di j e k negli interi formano un sistema ortonormale completo : il sistema di Haar. La funzione f è nota come funzione scaling di Haar mentre la funzione y mother wavelet di Haar (si veda la figura 3). Nel sistema di Haar sono validi i seguenti sviluppi in serie, sempre nell’ambito dello spazio L2(R ) (qui < × ,× > indica il prodotto scalare in tale spazio, <f,g >=ò R f(x) g(x)dx) :

 f(x) = S jS k djk y jk (x) , djk =<f, y jk > (4.a)

f(x) = S k cmk f mk + S j³ m S k djk y jk (x) , djk =<f, y jk > , cmk =<f, f mk > (4.b)

a cui corrispondono diverse decomposizioni in sottospazi. Formalizziamo tale costruzione ad un caso più generale.

Definiamo MRA ortogonale di L2(R ) una successione { Vj} di sottospazi chiusi a cui sia associata una funzione f Î V0 (detta funzione scaling) e tali che

(i) l’insieme delle funzioni { f (x-k), kÎ Z } è una base ortonormale per V;

(ii) i sottospazi formano una successione crescente : .... Ì V-1 Ì V0 Ì V1 Ì ... ;

(iii) cambiamento di scala f(× ) Î Vj Û f(2× ) Î Vj+1 ; invarianza per traslazioni f(× )Î V0 Û f(× -k)Î V0

Chiaramente l’insieme delle funzioni (3) per j fissato e k variabile negli interi formano una base ortonormale per lo spazio Vj . Usualmente si fanno richieste di regolarità e di decadimento (comportamento all’infinito della funzione e di alcune derivate successive) della funzione f .

Dalla funzione scaling f si costruisce poi la funzione wavelet y (solitamente tale costruzione utilizza la trasformata di Fourier ) cioè una funzione y tale che l’insieme { y (x-k)} formi una base ortonormale del sotospazio W0 complemento ortogonale di V0 in V1, V1=V0Å W0. Dalla definizione della MRA si deduce che dal sottospazio W0 possiamo costruire valgono le seguenti decomposizioni dello spazio delle funzioni a quadrato integrabile:

L2(R )=Å j Wj , L2(R )=Vm Å j³ m Wj

Si osserva che esistono delle relazioni funzionali ricorsive sia per la funzione f che per la funzione y , infatti, dato che f , y Î V1 devono esistere dei coefficienti { Ck} e { Dk} tali che :

f (x)= S k Ö 2 Ck f (2x-k), (5.a)

y (x)= S k Ö 2 Ck f (2x-k) (5.b)

Inoltre se, almeno localmente, i polinomi fino ad un certo grado appartengono al sottospazio V0 (questo proprietà influenza la qualità dell’approssimazione che si ottiene sostituendo ad una data funzione f la proiezione fj su un opportuno sottospazio Vj), la funzione y avrà un certo numero di momenti nulli :

ò R y (x) xk =0 , k=0,1,...,r. (6)

Consideriamo una funzione fÎ V1 possiamo rappresentarla come :

 

f(x)=S k a1k f 1k = S k a1k Ö 2 f (2x-k) (7)

 

ma dalla decomposizione di V1 nei sottospazi V0 e W0 si ottiene anche

 

f(x)= S k a0k f (x-k) + S k b0k y (x-k) (8)

 

Sostituendo le (5.a) e (5.b) nella (8) ed eguagliando i coefficienti corrispondenti alla stessa funzione f 1k (abbiamo basi ortonormali) si ottiene :

 

a1m=S k Cm-2k a0k + S k Dm-2k b0k (9)

 

 che rappresenta il passo di ricostruzione da V0, W0 a V1. Per la parte di decomposizione basta osservare che, tenendo conto sempre di (5.a) e (5.b) :

b0m=ò R y (x-k) f(x) dx = S k Dk-2m a1k (10.a)

 

a0m=ò R f (x-k) f(x) dx = S k Ck-2m a1k (10.a)

 

Nelle sommatorie in (9), (10.a), (10.b) si riconosce la struttura algebrica dei prodotti di convoluzione ed in effetti corrispondono alla applicazione di opportuni filtri discreti alle successione dei coefficienti { ajk } e { bjk } (immaginando che i procedimenti di decomposizione/ricostruzione siano iterati).

Queste osservazioni hanno portato ad un collegamento naturale (dal punto di vista dell’implementazione) tra decomposizione gerarchica in una MRA ed i banchi di filtri utilizzati in ingegneria, inoltre pongono le basi per lo sviluppo di algoritmi rapidi.

In figura 4 si mostra una decomposizione su più scale di una data funzione, grafico con etichetta ‘originale’, cioè delle componenti nei sottospazi Vj e Wj. In questo esempio si è utilizzata la MRA di Haar, quindi i coefficienti C e D sono rispettivamente { 1/Ö 2, 1/Ö 2} , { 1/Ö 2, -1/Ö 2} .

Figura 4 : un esempio di decomposizione multirisoluzione (con la base di Haar)

 

Si può notare comunque euristicamente che le componenti negli spazi Wj sono piccole dove la funzione è regolare ed è quindi approssimata con sufficiente accuratezza dalla proiezione su Vj. Nel caso considerato questa ultima proiezione è facilmente ottenibile tramite medie integrali locali della funzione per suddivisioni con ampiezza decrescente. In effetti le componenti nei Wj sono dette dettagli e codificano l’informazione necessaria per passare dalla descrizione ad una certa scala della funzione (segnale, immagine,...) alla descrizione alla scala successiva. In tali dettagli si codificano quindi eventuali irregolarità locali della funzione che si sta analizzando.

Esistono diverse famiglie di wavelets (a supporto compatto, interpolanti, biortogonali,...) e, per ogni famiglia, si hanno differenti membri con caratteristiche analoghe ma differenti parametri nei coefficienti C e D. La trasformata discreta, relazioni (9), (10.a), (10.b), ha in ogni caso la medesima struttura. La scelta di una particolare famiglia per un determinato problema non sempre è semplice, in ogni caso nell’ambito della compressione delle immagini la sperimentazione effettuata indica nelle wavelet biortogonali una scelta ottimale.

Come sono modellate matematicamente le immagini ? Solitamente un immagine formata da una griglia di pixels, ognuno con un livello di grigio, è vista come una funzione z=f(x,y) in due variabili reali (x,y)Î I´ J, dove I=[a,b] e J=[c,d] sono due intervalli limitati. Quando ci si riferisce ad una immagine ci si riferisce quindi ad una funzione che per ogni punto (x,y) fornisce il corrispondente livello di grigio. Nel caso si voglia considerare la ‘‘differenza’’ tra due immagini (per esempio tra immagine originale ed immagine compressa) occorre definire anche una metrica e quindi una funzione che permetta di stabilire la ‘‘distanza’’ tra due immagini. Due esempi di funzioni distanza tra l’immagine f e l’immagine g sono dati dalle seguenti definizioni :

d8 (f,g)=sup(x,y)Î I´ J | f(x,y) -g(x,y) | , d2(f,g)=( ò I´ J (f (x,y) - g(x,y) )2 dx dy )½

Negli esperimenti del seguito utilizzeremo la versione discreta della distanza d2 anche se il problema della metrica ‘‘giusta’’ nella teoria matematica delle immagini resta un problema aperto. In ogni caso la scelta può essere influenzata dalla particolare applicazione che si sta considerando. Per esempio nell’ambito della segmentazione delle immagini e dell’edge detection una buona scelta sembra essere la variazione totale dell’immagine, ò |Ñ f(x,y)|.

Per effettuare la trasformata wavelet di una immagine discreta I (quindi partendo da una matrice di valori) si possono considerare le trasformate unidimensionali delle righe ottenendo la versione Ir , quindi si effettuano le trasformate unidimensionali delle colonne di Ir ottenendo l’immagine trasformata IW. I dettagli saranno quindi organizzati in sottomatrici di IW .

Per utilizzare questa struttura gerarchica ai fini della compressione delle immagini (per altre applicazioni si veda la bibliografia al termine di questo articolo) si selezionano proprio i dettagli.

Naturalmente si perderanno alcune informazioni relative al segnale ma, nelle applicazioni, si sfrutta la naturale correlazione tra i valori dei pixels dell’immagine stessa.

Per costruire una MRA in L2(R 2) e le relative funzioni base si effettua il prodotto tensoriale delle basi unidimensionali in x ed y. Abbiamo quindi una funzione scaling, che chiameremo ancora f (x,y)= f (x) f (y) e tre funzioni wavelets y 1= f (x) y (y), y 2= f (y) y (x), y 3 = y (x) y (y), in un certo senso corrispondenti ai dettagli orizzontali, verticali e ,rispettivamente, obliqui. Dal punto di vista discreto ogni sottomatrice corrispondente ad un sottospazio Vj bidimensionale verrà suddivisa, nella decomposizione, in quattro sottomatrici corrispondenti alle quattro funzioni f , y 1, y 2, y 3 .

Indichiamo con fI la funzione corrispondente all’immagine I, per funzioni in due valgono le decomposizioni analoghe alle (4.a) e (4.b), anche se ora abbiamo in un certo senso più funzioni wavelets :

f(x,y)= S k a0k f (x,y) +S p S j S k bpjk y pjk(x,y), (11)

 

dove p=1,2,3. Solitamente i coefficienti a0k vengono mantenuti (nella terminologia dei filtri rappresenta la banda base a cui aggiungeremo i dettagli succesivi) mentre possiamo selezionare i coefficienti bpjk . Un aspetto importante deve essere considerato per l’effettiva implementazione della trasformata wavelet : il trattamento del bordo dell’immagine. Infatti fino ad ora abbiamo trattato il caso di funzioni definite su tutta la retta reale o su tutto il piano R 2. Se la funzione, come accade nelle applicazioni, è definita solo su un particolare sottoinsieme, per esempio, del piano occorre utilizzare una opportuna estensione dell’immagine stessa vicino ai bordi.

Una strategia adatta alla nostra applicazione consiste nell’estensione simmetrica del segnale in modo tale da non introdurre discontinuità artificiali al bordo, discontinuità che influenzerebbero i coefficienti relativi alle funzioni wavelets in (11).

Indichiamo con S l’insieme delle triple (p,j,k) degli indici selezionati secondo una determinata strategia. Sono possibili varie richieste, per esempio :

-- fissare la cardinalità N dell’insieme S (massima memoria utilizzabile) ;

-- stabilita una norma × cercare S che permetta di minimizzare l’errore f-g , dove g=S k a0k f (x,y) +S p S j S k bpjk y pjk(x,y), (j,k,p)Î S, oppure fissato il valore dell’errore determinare un possibile insieme ;

-- fissare il valore minimo di | bpjk| con (j,k,p)Î S.

Nell’applicazione che stiamo analizzando si effettua una selezione dei coefficienti bpjk tramite opportuni valori di soglia l (j,e , × ) che possono dipendere, a priori, dal livello di decomposizione j, da una prefissata tolleranza e dalla norma utilizzata per la valutazione dell’errore. La scelta più semplice consiste nell’ hard thresholding : l è costante e se | bpjk | ³ l il coefficiente verrà mantenuto altrimenti sarà posto uguale a zero (quindi eliminato).

Prima di tale selezione si effettua una normalizzazione dei coefficienti bpjk in funzione della scala j e del valore maxk |bpjk| per ogni valore dell’indice p.

Riportiamo nella tabella 1 che segue la percentuale di elementi ’eliminati’ con tale processo di selezione utilizzando l’impronta digitale di figura 1 ed wavelet biortogonali uniti alla normalizzazione dei coefficienti prima del confronto con la soglia l .

 

Soglia thresholding l

Elementi annullati

percentuale coefficienti annullati

0.0001

93

0.1%

0.001

836

0.9%

0.01

7113

7.8%

0.1

16341

18.3%

 

Tabella 1 : risultati hard thresholding con filtri biortogonali.

 

In figura 5 invece mostriamo l’impronta digitale ottenuta tramite lo sviluppo approssimato dopo la selezione dei coefficienti con l ==0.1.

Figura 5 : impronta decompressa dopo thresholding.

Osserviamo che nel caso delle wavelet biortogonali si usano differenti funzioni per la fase di decomposizione e per la fase di ricostruzione. In questo modo si possono richiedere più proprietà alla funzione wavelet y che invece risulterebbero incompatibili nel caso semplicemente ortogonale : supporto compatto (filtri di lunghezza finita), simmetria (fase lineare dei filtri), filtri discreti a valori nei razionali (rapidità di calcolo).

Nel caso di hard thresholding si introduce una discontinuità nella funzione di selezione per i valori ± l , per ovviare a ciò si può utilizzare il soft thresholding in cui, se indichiamo con bSpjk il valore dei coefficienti dettaglio dopo il processo di selezione, abbiamo bSpjk=0 se | bSpjk|£ l e bSpjk=sign(bSpjk)(| bSpjk|-l ) altrimenti. I metodi di thresholding possono anche essere utilizzati per problemi di denoising dell’immagine fornendo quindi contemporaneamente un modo per decorrelare le informazioni e per togliere eventuale rumore dall’immagine stessa.

Un passo importante consiste ora nella quantizzazione dei coefficienti ottenuti dopo l’operazione di thresholding, chiamiamo tali coefficienti bTpjk. In generale tali coefficienti sono reali (floating point) e si vuole sostituirli con un numero intero : in un certo senso il passo di quantizzazione equivale a fare una ‘‘sofisticata’’ operazione di troncamento. In figura 6 si mostra un esempio di funzione di quantizzazione in cui ad ogni intervallo [a m,b m) dei valori dei coefficienti bTpjk già selezionati si fa corrispondere un valore intero.

Figura 6 : esempio di funzione di quantizzazione.

 

Per ora nell’applicazione qui considerata si è utilizzata per ogni scala una suddivisione uniforme dell’intervallo [maxkbTpjk , mink bTpjk].

Sottolineiamo che il passo di quantizzazione è sicuramente il passo più ‘‘delicato’’ ed importante ai fini della compressione dell’immagine. Nello sviluppo futuro di considererà invece una quantizzazione che prenda in considerazione la particolare statistica per ogni scala e tipo di dettaglio.

Notiamo anche che mentre dal punto di vista logico è utile tenere separate le fasi di selezione con thresholding e di quantizzazione, dal punto di vista dell’implementazione del metodo di compressione i due processi possono essere fatti contemporaneamente tramite una opportuna variante del metodo di hard thresholding. Osserviamo anche che i coefficienti relativi alla funzione scaling f non vengono sottoposti ai procedimenti di thresholding/quantizzazione in quanto si pensa che il contenuto informativo di tali coefficienti è essenziale e non può essere ‘‘trattato’’ come dettaglio.

Il passo finale dell’algoritmo di compressione consiste in una ulteriore codifica dei coefficienti quantizzati bQpjk che sono ora rappresentati tramite un vettore di interi. Tale codifica finale utilizzerà un metodo di compressione lossless, cioè senza perdita di informazioni, basato sull’algoritmo di Huffman. Globalmente il metodo di compressione fornisce fattori di compressione di 0.6-0.9 bit per pixel con una buona qualità per quanto riguarda l’immagine ricostruita. Per ottenere quest’ultima immagine si invertono i singoli passi visti sopra.

 

3. ERRORI E SISTEMA DI VISIONE UMANO

Abbiamo accennato al problema della scelta di una metrica opportuna per valutare la distanza tra due immagini (e quindi valutare anche la qualità dell’immagine compressa). Dal punto di vista discreto dobbiamo stabilire una funzione distanza tra due matrici di valori (che rappresenteranno il livello di grigio dei singoli pixel). Supponiamo che le immagini siano rappresentate da matrici di n righe ed m colonne, gli indicatori di errore più frequentemente utilizzati sono i seguenti  (f e g sono le due matrici):

-- errore quadratico medio MSE : S i S j ( fij - gij )2 / (m´ n)

-- errore quadratico normalizzato NRMSE : 100 ´ (MSE)1/2 / 255

-- rapporto segnale/rumore  PSNR : 10 log10 ( 2552/MSE)

-- errore massimo PE : maxij | fij - gij |

-- errore massimo normalizzato NPE : 100´ PE/255

 

Le stime PE ed NPE considerano differenze locali mentre l’errore quadratico medio è una stima globale ma non risulta adatto per problemi in cui eventuali caratteristiche dell’immagine quali gli edges. Nell’ambito della compressione delle immagini differenti approcci possono invece essere introdotti per valutare l’errore di ricostruzione considerando le proprietà fisiologiche dell’occhio umano. In particolare, sotto opportune condizioni sperimentali di isotropia, linearità del sistema visivo, luminosità, si è constato che l’occhioumano ‘‘pesa’’ in modo differente frequenze spaziali differenti. La forma di trasferimento h(r) è stata determinata sperimentalmente ed il grafico qualitativo è mostrato in figura 7.

Sembra quindi ragionevole, utilizzando la trasformata di Fourier, introdurre tale caratteristica nella valutazione dell’errore. Indichiamo con I(x,y) ed IR(x,y) , rispettivamente l’immagine originale e l’immagine ricostruita, e con i(h ,V ), iR(h ,V ) le loro trasformate di Fourier. L’errore, pesato tramite la funzione h è definito da

 

|| I - IR ||2h = ò ò R ´ R h( (h 2 + V 2)1/2) | i(h ,V ) - iR (h ,V )|2 dh dV (12)

 

Partendo da una MRA ortogonale o biortogonale è possibile introdurre una nuova MRA che consideri come prodotto scalare non il classico prodotto in L2(R ) ma il prodotto (12). In questa costruzione però risulta esserci una dipendenza dei filtri dal livello j di decomposizione, non essendoci più invarianza nell’ambito delle frequenze (si veda M.G. Albanesi, S. Bertoluzza 1994).

In figura 8 si mostra un confronto per la figura Lena (uno standard per i metodi di compressione) utilizzano la base di Haar con e senza la metrica adattata al sistema visivo umano data dalla (12).

 

Figura 8 : raffronto tra compressione usuale e con sistema visivo

 

Attualmente è allo studio un metodo che fornisca l’accoppiamento tra questo approccio ed il metodo di compressione descritto sopra per la memorizzazione delle impronte digitali : risulterà essenziale avere una migliore comprensione delle caratteristiche specifiche di questa classe particolare di immagini.

 

4. COMPRESSIONE FRATTALE

Gli schemi di compressione delle immagini si basano usualmente, come abbiamo già detto, sulla presenza di informazioni rindondanti nei dati che rappreentano l’immagine stessa. Nel caso degli algoritmi di compressione frattale si ipotizza, ipotesi empirica, che ci siano regioni dell’immagine in qualche senso ‘‘simili’’ ad altre parti dell’immagine ma su scala differente.

Inizialmente le tecniche frattali sono state introdotte in computer graphics per modellizzare fenomeni naturali (montagne, alberi, foglie, conchiglie, ...). In seguito, partendo dalla teoria IFS (Iterated Function Systems) proposta da J. Hutchinson, M. Barnsley ed il suo gruppo di lavoro del Georgia Institute of Technology, hanno approfondito la possibilità della codifica di intere immagini sfruttandone l’eventuale auto-similarità (propria delle figure frattali). Dal punto di vista computazionale sono stati poi determinanti i contributi di A. Jacquin e Y. Fisher. Introduciamo le idee fondamentali. In generale sia dato uno spazio metrico completo M con distanza d(x,y), x,y Î M (il lettore disorientato pensi al piano con la distanza euclidea). Un IFS è un insieme finito di applicazioni { wi} , wi : S à S i=1,...,n, contrattive cioè tali che d(wi(x),wi(y))£ si d(x,y) per ogni x,yÎ S con 0 £ si £ 1. Consideriamo l’insieme B sottoinsiemi chiusi e limitati BÌ S dello spazio metrico considerato e la trasformazione W : B à B , W(B)= È i wi(B). La trasformazione W risulta essere contrattiva per B e rispetto ad una opportuna distanza definita per elementi di B . Dal Teorema delle contrazioni si deduce allora che esiste un elemento AÎ B tale che

W(A)=A=È i wi(A).

Tale elemento A si chiama anche insieme attrattore e può essere equivalentemente caratterizzato dal limite A=lim n® 8 W(n) (B), dove l’insieme B è un qualsiasi elemento di partenza scelto in B e dove con W(n) abbiamo indicato la composizione n-esima della trasformazione W con se stessa : W(0) =W, W(n) =W(W(n-1)). Vediamo un semplice esempio in cui si utilizzino tre funzioni wi che risultanmo essere tre trasformazioni affini del piano e come spazio metrico il piano euclideo.

Indichiamo con (x1,x2) e (y1,y2) due punti del piano e (x’1,x’2), (y’1,y’2) i punti trasformati, abbiamo

w data da x’1=0.5 x1, y’1=0.5 y; w data da x’1=0.5 x1+0.5, y’1=0.5 y; w data da x’1=0.5 x1+0.25, y’1=0.5 y1+0.5 . L’insieme B di partenza è un quadrato e si mostrano in figura 9 alcune iterazioni successive dell’operatore W : R 2 à R 2, l’insieme attratore A è noto come triangolo di Sierpinski.

Figura 9 : costruzione di un insieme attrattore per un IFS

Barnsley ha suggerito di memorizzare al posto dell’immagine (nel caso di figura 9 il triangolo di Sierpinski) la collezione di trasformazioni utilizzate. Per riottenere l’immagine originale basta applicare la trasformazione memorizzata in modo iterativo partendo da un qualsiasi insieme per riottenere l’attrattore (o una sua approssimazione). In pratica bastano 10-12 iterazioni per avere una buona ricostruzione dell’immagine originale. Dal punto di vista matematico occorre risolvere un problema inverso : dato un certo sottoinsieme determinare l’insieme di applicazioni il cui attrattore lo approssima bene. Tale problema risulta, in generale, di ‘‘difficile’’ soluzione e rientra nell’ambito dei problemi mal posti. Mentre un IFS produce un unico attrattore, un dato attrattore può essere generato da più IFS differenti.

Le immagini naturali non sono generalmente un attrattore per un IFS, mentre singole porzioni dell’immagine sono spesso simili a parti differenti e tale relazione può essere codificata tramite un opportuno IFS. Un algoritmo di compressione frattale deve essere in grado di trovare questa similarità locale e codificarlo opportunamente. Si partiziona quindi l’immagine in blocchi Ri , i=1,..,N e blocchi più grandi D ij, j=1,...,M (per esempio Ri siano blocchi di 4´ 4 o 8´ 8 pixels mentre D j siano i blocchi di 8´ 8 o 16´ 16 pixels). Per ogni Ri si ricerca il dominio D tra i candidati D j e le trasformazioni wk (solitamente affini) che formino la trasformazione W, in modo tale da minimizzare la distanza tra Ri ´ [a,b] e wk(D). Qui l’intervallo [a,b] è stato aggiunto per poter utilizzare anche il contrasto e la luminosità del blocco (per esempio un Ri potrebbe essere la versione ruotata, traslata e con minore luminosità di un blocco D). Il punto fondamentale, dopo aver deciso la metrica utilizzata per valutare la distanza tra immagini, consiste proprio nella ricerca dei blocchi R, D e nel trovare le trasformazioni. Date le trasformazioni ed i blocchi si codificano queste informazioni ottenendo buoni livelli di compressione.

In figura 10 si mostra un esempio di immagine ottenuta tramite questo procedimento con blocchi R e D di dimensioni citate sopra con compressione 1 :6 e SNR=27.7 (l’immagine originale è l’impronta digitale di figura 1 compresa nella galleria di immagini Matlab).

 

Figura 10 : immagine compressa con metodo frattale.

 

Da un confronto con l’immagine originale, figura 1, si nota la buona qualità dell’immagine ricostruita. Per la ricostruzione si utilizza il metodo iterativo con ora, però, più sistemi D,wk. Si osservi che questa trasformata è molto assimetrica, infatti il costo computazionale è molto più elevato in fase di compressione, problemi inversi da risolvere, che in fase di decompressione, semplici iterazioni di trasformazioni affini. Contrariamente alla trasformata wavelet risulta difficile trovare indicatori di regolarità locale, come veniva fornito dai dettagli in una trasformazione multiscala, o che caratterizzino pattern differenti. In ogni caso dagli esperimenti fatti risulta che è possibile ottenere alti fattori di compressione con una buona qualità dell’immagine compressa tramite la metodologia frattale.

 

5. CONCLUSIONI

In questo lavoro abbiamo trattato la possibilità di utilizzare le wavelets o la metodologia frattale per la compressione di immagini raffiguranti impronte digitali.

Da una parte abbiamo la versatilità e la rapidità della trasformata wavelet discreta, mentre invece per la compressione frattale si è sperimentata la capacità di avere alti fattori di compressione mantenendo l’errore ‘‘piccolo’’. Vediamo alcuni possibili sviluppi :

Per quanto riguarda l’implementazione dei metodi notiamo che per la parte riguardante la trasformata wavelet si è utilizzato l’apposito Wavelet-Toolbox con una notevole semplificazione. Per la compressione frattale invece non abbiamo ancora una implementazione totalmente integrata nell’ambiente Matlab a causa di una maggiore ‘‘sofisticazione’’ nelle strutture dati. Pensiamo comunque di poter produrre nel prossimo futuro un opportuno Toolbox .

 

BIBLIOGRAFIA

Diversi siti WWW dedicati alle wavelets sono sorti in questi ultimi anni. Per avere informazioni di carattere generale per le applicazioni e la teoria è, per esempio, possibile consultare i seguenti :

http://www.mat.sbg.ac.at/~uhl/wav.html

http://www.wavelet.org/wavelet/index.html

esistono anche dei bollettini elettronici periodici a cui è possibile abbonarsi. Storicamente il primo, e più completo, e’ il wavelet digest edito da Wim Sweldens dei Bell Laboratories. Esistono anche siti più specialistici, per esempio per l’analisi delle tessiture (utile anche per la classificazione futura delle impronte digitali) si può ‘navigare’ fino a :

http ://www.ruca.ua.ac.be/ ~ VisionLab/WTA.html

Per quanto riguarda la parte teorica sicuramente i testi di Meyer sono i più completi, ma non di facile lettura

Ondelettes et Opérateurs, I: Ondelettes, II: Opérateurs de Calderòn-Zygmund, III: (with R. Coifman), Opèrateurs multilinèaires Hermann, Paris (1990).

Traduzione inglese primo volume: Y. Meyer, Wavelets and Operators, Cambridge stud. in Adv. math., CAMBRIDGE University Press (1992).

Testi introduttivi. Y.Meyer, Wavelets and Applications, Springer Verlag, Research notes in Applied Mathematics vol. 20, (1991).

Y.Meyer, Wavelets: Algorithms and Applications, SIAM, Philadelphia, ( tradotto e rivisto da R. D. Ryan), (1993).

I. Daubechies, Ten Lectures on Wavelets, CBMS-NSF Series in Applied Mathematics, n. 61, SIAM, Philadelphia, (1992).

C.K. Chui, An Introduction to Wavelets, Academic Press, San Diego, (1992).

G.G. Walter, Wavelets and other orthogonal Systems with Applications, CRC Press Inc. (1994).

I. Daubechies (ed.), Different Perspectives on Wavelets, American Math. Soc., Providence, RI, Proceedings of Symposia in Applied Mathematics, Vol. 47, (1993).

C. K. Chui (ed.), Wavelets: A Tutorial in Theory and Applications, Academic Press, San Diego (1992).

Articoli Introduttivi :

  1. Strang, Wavelets and Dilation Equations: A Brief Introduction, SIAM Review 31, n.4 (1989).
  2. G. Strang, Wavelet transforms versus fourier transforms, Bull. AMS, vol. 28, n.2 (1993).

R.S. Strichartz, How to make wavelets, Amer. Math. Month., vol. 100, n. 6, (1993).

C. E. Heil and D. F. Walnut, Continuous and Discrete Wavelet Transforms, Siam Review, vol. 31, n. 4, (1989).

  1. Jawerth and W. Sweldens, An overview of wavelet based multiresolution analyses, Siam Review vol. 6,n.3(1994).
  2. S. Mallat, Multiresolution Approximations and Wavelet Orthonormal Bases of L2, Trans. Amer. Math. Soc. vol. 315 n.1 , (1989).

I. Daubechies, The Wavelet Transform, Time-Frequency Localization and Signal Analysis, IEEE Trans. on Inf. Theory, 36 n.5 (1990).

Periodicamente si svolge una Conferenza i cui Proceedings sono pubblicati da differenti editori.

J.M. Combes, A. Grossmann, Ph. Tchamitchian (eds), Wavelets, Springer-Verlag Berlino (1989).

Y. Meyer (ed.), Wavelets and Applications, Masson (1992).

M. B. Ruskai and G. Beylkin and R. Coifman and I. Daubechies and S. Mallat and Y. Meyer and L. Raphael (eds.),

Wavelets and their Applications, Jones and Bartlett, (1992).

C. K. Chui and L. Montefusco and L. Puccio (eds.), Wavelets: Theory, Algorithms and Applications, Academic Press,

San Diego (1994).

Y. Meyer and S. Roques (eds.), Wavelets and Applications, Editions Frontieres (1993).

Per l’accoppiamento wavelets/sistema visivo si può richiedere il rapporto tecnico : M.G. Albanesi, S. Bertoluzza, On the coupling of Human Visual System Model and Wavelet Transform for Image Compression, Pubblicazione IAN CNR Pvia n.925 (1994).

Sull’automazione della memorizzazione delle impronte digitali si può fare riferimento alla rivista Polizia Moderna n.3 e n.9 (1995) .

Anche Per la compressione frattale esistono vari siti WWW, per esempio da Y. Fisher è mantenuto il sito, abbastanza completo :

http://inls.ucsd.edu/y/Fractals/

Mentre due testi fondamentali sono :

M.F. Barnsley, L.P. Hurd, Fractal Image Compression, A.K. Peters, Boston 1992.

Y. Fisher, Fractal Image Compression, Springer-Verlag, New-York, 1995.

Un numero della rivista Computer Programming , Edizioni Infomedia, ha dedicato gran parte del n. 32 gennaio 1995 alla compressione frattale, mentre il n.51 ottobre 1996 alla compressione di immagini piùin generale.