Applicazione della tsvd all elaborazione di immagini



Documenti analoghi
Università degli Studi di Cagliari Scuola di Dottorato in Progettazione Meccanica e Ingegneria Industriale

Corso di Matematica per la Chimica

Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B. Evento prodotto: Evento in cui si verifica sia A che B ; p(a&b) = p(a) x p(b/a)

Capitolo V : Il colore nelle immagini digitali

1. Distribuzioni campionarie

RICONOSCIMENTO DI TARGHE AUTOMOBILISTICHE

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Introduzione all analisi dei segnali digitali.

Statistica. Lezione 6

Esempio. Approssimazione con il criterio dei minimi quadrati. Esempio. Esempio. Risultati sperimentali. Interpolazione con spline cubica.

Condizionamento di sistemi lineari.

Studente: SANTORO MC. Matricola : 528

Il concetto di valore medio in generale

Analisi sensitività. Strumenti per il supporto alle decisioni nel processo di Valutazione d azienda

SPC e distribuzione normale con Access

Slide Cerbara parte1 5. Le distribuzioni teoriche

Logica Numerica Approfondimento 1. Minimo Comune Multiplo e Massimo Comun Divisore. Il concetto di multiplo e di divisore. Il Minimo Comune Multiplo

Un po di statistica. Christian Ferrari. Laboratorio di Matematica

9 Metodi diretti per la risoluzione di sistemi lineari: fattorizzazione P A = LU

Rapporto dal Questionari Insegnanti

Psicometria (8 CFU) Corso di Laurea triennale STANDARDIZZAZIONE

La distribuzione Normale. La distribuzione Normale

Indici di dispersione

Corso di Visione Artificiale. Filtri parte I. Samuel Rota Bulò

Documentazione esterna al software matematico sviluppato con MatLab

LE FINESTRE E L ISOLAMENTO ACUSTICO

Plate Locator Riconoscimento Automatico di Targhe

Il campionamento. La digitalizzazione. Teoria e pratica. La rappresentazione digitale delle immagini. La rappresentazione digitale delle immagini

La Visione Artificiale. La vis ione delle macchine La vis ione umana Acquis izione di immag ine

Indagine sismica. MASW - Multichannel Analysis of Surface Waves

Codifiche a lunghezza variabile

Soluzione di equazioni quadratiche

Test percettivi per la valutazione del contrasto di immagini digitali

2 - Modifica Annulla ANNULLA TOPOGRAFICO ANNULLA TOPOGRAFICO MULTIPLO FIGURA 2.1

ANALISI DEL CONDIZIONAMENTO DI UN SISTEMA LINEARE

CHIUSURE di MAGAZZINO di FINE ANNO

Il database management system Access

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Controlli Automatici T. Trasformata di Laplace e Funzione di trasferimento. Parte 3 Aggiornamento: Settembre Prof. L.

SISTEMI DI NUMERAZIONE E CODICI

2 - Modifica Annulla Selezione finestra. S.C.S. - survey CAD system FIGURA 2.1

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Analisi di dati di frequenza

Modello generale di trasduttore Come leggere la scheda tecnica di un trasduttore

Corso di. Dott.ssa Donatella Cocca

Corrispondenze e funzioni

Introduzione. Rappresentazione di numeri in macchina, condizion

Spazi lineari - PARTE II - Felice Iavernaro. Dipartimento di Matematica Università di Bari. 9 e 16 Marzo 2007

ELENCO CLIENTI FORNITORI Patch1

Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26

C M A P M IONAM A E M NT N O

Codifica binaria dei numeri relativi

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale.

LE FUNZIONI A DUE VARIABILI

MODULO 5 Appunti ACCESS - Basi di dati

Introduzione al MATLAB c Parte 2

Inferenza statistica. Statistica medica 1

Amplificatori Audio di Potenza

Strutturazione logica dei dati: i file

Corso integrato di informatica, statistica e analisi dei dati sperimentali Altri esercizi_esercitazione V

Esponenziali elogaritmi

Circuiti di condizionamento per sensori resistivi

Condizionamento del problema

ESTRAZIONE DI RADICE

Consideriamo due polinomi

Gestione dei risultati di stampa 1

Prova di autovalutazione Prof. Roberta Siciliano

Le immagini digitali. Le immagini digitali. Caterina Balletti. Caterina Balletti. Immagini grafiche. Trattamento di immagini digitali.

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

OCCUPATI SETTORE DI ATTIVITA' ECONOMICA

1) Si consideri un esperimento che consiste nel lancio di 5 dadi. Lo spazio campionario:


Elaborazione testi: immagini

Transitori del primo ordine

16 - Differenza tra l acquisizione di una mappa catastale lucidata sull impianto e una rilasciata in fotocopia

Introduzione alla teoria dei database relazionali. Come progettare un database

Informatica. Rappresentazione binaria Per esempio diventa /10/2007. Introduzione ai sistemi informatici 1

Esercizi su lineare indipendenza e generatori

PROGETTO ESCAVATORE VIRTUALE

IMMAGINE BITMAP E VETTORIALI

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I. 2004

Elaborazione nel dominio della frequenza Soluzioni

Calcolo del Valore Attuale Netto (VAN)

~ Copyright Ripetizionando - All rights reserved ~ STUDIO DI FUNZIONE

Dimensione di uno Spazio vettoriale

Immagini binarie. Binarizzazione di immagini a livelli di grigio

Esercizi svolti. 1. Si consideri la funzione f(x) = 4 x 2. a) Verificare che la funzione F(x) = x 2 4 x2 + 2 arcsin x è una primitiva di

Interpolazione ed approssimazione di funzioni

Titolo della lezione. Analisi dell associazione tra due caratteri: indipendenza e dipendenza

Comando STAMPA. Attiva la finestra di dialogo nella quale vengono impostati i parametri per ottenere tavole stampate:

Come visto precedentemente l equazione integro differenziale rappresentativa dell equilibrio elettrico di un circuito RLC è la seguente: 1 = (1)

VERIFICA DELLE IPOTESI

Sistemi Informativi Territoriali. Map Algebra

CAPACITÀ DI PROCESSO (PROCESS CAPABILITY)

Obiettivi dell Analisi Numerica. Avviso. Risoluzione numerica di un modello. Analisi Numerica e Calcolo Scientifico

Analisi dei segnali nel dominio della frequenza

Capitolo 5 RESTAURO E RICOSTRUZIONE DI IMMAGINI

FONDAMENTI DI SEGNALI E TRASMISSIONE 6 Laboratorio

Figura Evoluzione dei consumi totali di energia elettrica. Figura Ripartizione dei consumi totali di energia elettrica

Transcript:

Applicazione della tsvd all elaborazione di immagini A cura di: Mauro Franceschelli Simone Secchi Indice pag Introduzione. 1 Problema diretto.. 2 Problema Inverso. 3 Simulazioni.. Introduzione Scopo di questo lavoro è la sperimentazione dell uso della fattorizzazione SVD nella risoluzione di sistemi lineari fortemente malcondizionati utilizzando il criterio della curva-l. In particolare si è fatto riferimento alla risoluzione di problemi inversi nell elaborazione digitale delle immagini mostrando diversi risultati ottenuti con immagini campione di piccole dimensioni e il loro paragone con i risultati ottenibili utilizzando l algoritmo di Gauss. Le immagini campione scelte sono: il punto su sfondo nero e una scritta bianco su nero. 1

Problema diretto Per la risoluzione del problema inverso tramite la TSVD occorre prima disporre di un immagine contenente sfuocamento e rumore. Non avendo a disposizione una tale immagine ne è stata creata una ad hoc risolvendo il problema diretto. Come legge di sfuocamento è stata creata una maschera di convoluzione contenente una gaussiana con media nulla e varianza determinata in ingresso come parametro simulativo. Chiaramente per utilizzare il metodo della TSVD è stato necessario trasformare la relazione integrale in un sistema lineare mediante discretizzazione. Il sistema lineare risultante consiste in una matrice di toeplitz a blocchi di Toeplitz, è stato quindi creato il primo blocchetto utilizzando la funzione Matlab toeplitz.m ed ottenuta la matrice desiderata utilizzando il prodotto di Kronecker della matrice con se stessa e normalizzando all altezza della gaussiana. L immagine è stata trasformata in un vettore colonna seguendo l ordinamento lessicografico e si è dunque ottenuta l immagine sfuocata mostrata a fine paragrafo. A questo punto è possibile verificare come il sistema lineare sia estremamente mal condizionato al crescere della varianza della gaussiana, ad esempio con una varianza sigma di 3 si è misurato un condizionamento in norma 2 di ^19. Ad ogni modo l errore sui dati è molto piccolo essendo circa l epsilon di macchina pari a 2.24e-016. Si è dunque aggiunto un rumore gaussiano bianco con varianza pari a 1 e ampiezza massima N, in modo che il sistema restituisca un pessimo risultato se risolto con le normali tecniche, ad esempio con l algoritmo di Gauss (un esempio dell immagine risolta con Gauss è mostrato a fine testo). Sotto sono mostrate le immagini originali e quelle dopo lo sfuocamento: 2

Problema inverso E' stato introdotto in precedenza come il problema inverso di determinazione dell'immagine originale (riordinata in un vettore) a partire dall'immagine sfuocata e corrotta da rumore (di tipo gaussiano bianco con varianza assegnata) e dalla conoscenza del kernel di sfuocamento sia un problema fortemente malcondizionato. L'inversione non può quindi essere effettuata con un semplice algoritmo di risoluzione del sistema lineare A x = b (per esempio Gauss) per via del forte condizionamento della matrice A, che porterebbe ad una soluzione inaffidabile per la presenza del rumore: vale infatti x b = A A ; 1 x b si noti inoltre che nel nostro caso, per determinati valori della varianza della curva gaussiana di sfuocamento, il numero di condizionamento della matrice A raggiunge valori di ^19, motivo per cui la sola presenza del noise di memorizzazione sul calcolatore (che vale circa 2.2 ^-16) è sufficiente per rendere elevato l'errore relativo e di conseguenza del tutto inattendibile la soluzione. L'algoritmo di inversione basato sulla SVD (Singular Values Decomposition) che è stato implementato costituisce una possibile soluzione del problema: nello script che è stato realizzato si è scelto di operare prima una decomposizione SVD completa (considerando quindi tutti i valori singolari della matrice A) e si è calcolata la relativa soluzione (vettoriale) xx: [U,S,V]=svd(full(A)); C=U'*b; S=diag(S); y=c./s; xx=v*y; In seguito è stata calcolata la soluzione del sistema lineare con algoritmo di Gauss: y2=a\b; Si noti che, per come viene calcolata la matrice caratteristica del problema in esame (sfuocamento con Point Spread Function di tipo gaussiano) il sistema lineare è quadrato. Conoscendo la soluzione vera del problema x (l'immagine originale vettorializzata) sono stati confrontati gli errori delle due soluzioni così calcolate rispetto alla soluzione originale; la metrica scelta è la norma2 vettoriale, che quindi coincide con la norma di Frobenius per le matrici-immagine che di fatto compongono i vettori-soluzione. Sebbene si sia scelto di utilizzare la norma2, è bene osservare che questa non è la metrica "migliore" rispetto alla visualizzazione umana, infatti è possibile che una immagine soluzione con errore in norma2 maggiore di un'altra immagine soluzione sia "visivamente" più simile alla soluzione vera di quanto non sia la seconda immagine; a tal proposito esistono ricerche che cercano di individuare quale sia la metrica più adatta per la rappresentazione del funzionamento dell'hvs (Human Visual System). disp('norma2 errore svd completa= ') norm(xx-x) disp('epsilon di macchina = ') eps disp('norma2 errore guass= ') norm(y2-x) Nel seguito dello script viene poi calcolato e mostrato a schermo il condizionamento della matrice A, che (per proprietà della scomposizione SVD) concide con il rapporto tra il primo valore singolare della matrice (il più grande) e l'ultimo (il più piccolo): disp('condizionamento matrice A completa ') 3

S(1)/S(m^2) Per via della presenza inevitabile dell'errore sui termini noti (vettore C nel codice) il calcolo della soluzione del problema con la SVD risulta instabile se si considerano tutti i valori singolari della matrice: infatti dividendo (punto-punto) i valori del vettore C dei termini noti per i valori singolari si ottiene un errore molto più sensibile sugli ultimi elementi, che vengono divisi per i valori singolari più piccoli. Per cercare di ridurre questo contributo di errore si ricorre alla TSVD (Truncated SVD): questo algoritmo prevede di considerare non tutti i valori singolari, ma solo i primi k (cioè quelli più grandi), mentre i restanti verranno posti a zero. Per stimare il valore di k ottimale sono state utilizzate due diverse tecniche: La prima fa uso della "curva-l", che ottiene il valore ottimale di k calcolando tutte le possibili TSVD (al variare di k) e considerando, per ognuna, la norma2 del vettore soluzione e la norma2 del vettore residuo (b-ax); al variare di k si rappresenteranno in un grafico in scala logaritmica questi valori e si otterrà una curva con un andamento "ad L", il valore di k che individua l'angolo sarà quello ottimale, in quanto è quello per cui si ottiene residuo minimo e contemporaneamente soluzione non divergente. La seconda tecnica calcola tutte le possibili TSVD (al variare di k) e, per ognuna, calcola l'errore in norma2 della soluzione rispetto alla soluzione vera del problema (immagine originale): il valore ottimale di k sarà quello per cui si ottiene errore minimo. Si noti che la prima tecnica è più generale della seconda perchè non necessità della conoscenza della soluzione esatta del problema; è comunque utile, per fini di sperimentazione dell'algoritmo, applicare anche la seconda e verificare il discostamento dei valori ottimali di k trovati. Il codice è: X=tsvd(U,S,V,b,[1:m^2]); % tutte le possibili serie troncate in una matrice l=0; for i=1:1:m^2-1 l=l+1; err(i)=norm(x-x(:,i)); conda2(l)=s(1)/s(i); rho(i)=norm(a*x(:,i)-b); eta(i)=norm(x(:,i)); end [kcorner,info] = corner(rho, eta, 1); close all kcorner kopt=find(err==min(err)) In conclusione dello script si ha un plot con immagini: 1. immagine originale 2. immagine sfuocata 3. immagine ricostruita con Gauss 4. immagine ricostruita con TSVD ottimale (2 tecnica). immagine ricostruita con TSVD e curva ad L (1 tecnica) 4

Simulazioni Per verificare il funzionamento dell'algoritmo si è utilizzata come prima immagine un unico pixel bianco su sfondo completamente nero: questo problema può essere visto come il problema della determinazione della risposta impulsiva del sistema di sfuocamento in esame, infatti un'immagine come quella usata è paragonabile ad un segnale impulsivo in ingresso al sistema, l'immagine sfuocata è la risposta del sistema sotto esame e l'obiettivo è ricostruire l'immagine impulsiva a partire da quella sfuocata e corrotta dal noise. Le dimensioni delle immagini usate nei seguenti esempi sono ridotte (intorno ai 30*30 pixel) al fine di non dilatare troppo la durata della simulazione. I due parametri modificabili dello script sono la varianza sigma della curva gaussiana di sfuocamento e la ampiezza N del noise che si aggiunge ai dati misurati, ossia al vettore b dei termini noti. Si noti che il rumore scelto è gaussiano a media nulla ed è stato generato con la funzione Matlab randn( ). La varianza sigma è il parametro che principalmente influisce sul condizionamento del problema, ed è stato scelto un valore tale da portare il numero di condizionamento ad un valore di circa ^19, quindi in grado di rendere del tutto inaffidabile la soluzione a causa dell'errore di memorizzazione del vettore b dei termini noti sul calcolatore (epsilon di macchina = 2.2 *^-16). I risultati in questo caso sono, al variare dell'ampiezza N del noise: N=^-00 1 1 1 1 1 1 1 1 1 1

N=^-0 1 1 1 1 1 1 1 1 1 1 6

N=^-01 1 1 1 1 1 1 1 1 1 1 7

Come seconda immagine test si è scelta una immagine creata ad hoc con testo bianco su sfondo nero: le variazioni rapide da pixel neri a pixel bianchi su una scala di grigi corrispondono ad immagini con contenuti ad alta frequenza non trascurabili. I risultati in questo caso sono i seguenti, ancora al variare dell'ampiezza N del rumore: N=^-00 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 8

N=^-0 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 9

N=^-01 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 Conclusione I risultati simulativi con le due immagini campione hanno mostrato come il metodo della curva-l associato alla fattorizzazione TSVD sia un valido metodo per la risoluzione di sistemi lineari fortemente malcondizionati anche in presenza di elevato rumore sui termini noti. Purtroppo l eccessivo onere computazionale limita l utilizzo di questa tecnica nell image processing a causa dell elevatissimo ordine dei sistemi lineari generati per la soluzione. Questo metodo risulta molto utile anche nella risoluzione di sistemi lineari sovradeterminati e sottodeterminati (rettangolari) in svariate applicazioni.