10.06.2013 Views

Miglioramento dell’analisi di immagine in GRASS tramite segmentazione

Miglioramento dell’analisi di immagine in GRASS tramite segmentazione

Miglioramento dell’analisi di immagine in GRASS tramite segmentazione

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Segmentazione <strong>in</strong> <strong>GRASS</strong><br />

<strong>Miglioramento</strong> <strong>dell’analisi</strong> <strong>di</strong> <strong>immag<strong>in</strong>e</strong> <strong>in</strong> <strong>GRASS</strong><br />

<strong>tramite</strong> <strong>segmentazione</strong><br />

Alfonso Vitti e Paolo Zatelli<br />

Dipartimento <strong>di</strong> Ingegneria Civile ed Ambientale<br />

Università <strong>di</strong> Trento<br />

Italy<br />

FOSS4G-it 2010<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 1 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong><br />

Outl<strong>in</strong>e<br />

1 Analisi del segnale<br />

2 Un accenno alla teoria<br />

3 Il software<br />

4 Applicazioni<br />

5 Conclusioni e sviluppi futuri<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 2 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Analisi del segnale<br />

Introduzione<br />

É spesso utile estrarre da una mappa o da un’<strong>immag<strong>in</strong>e</strong> una sua<br />

versione “semplificata”, <strong>in</strong> cui le regioni uniformi sono “lisciate” ed i loro<br />

contorni ben def<strong>in</strong>iti.<br />

Un possibile approccio a questo problema é dato dalla<br />

<strong>segmentazione</strong>.<br />

La <strong>segmentazione</strong> può essere <strong>in</strong>tuitivamente immag<strong>in</strong>ata come il<br />

processo per la partizione <strong>di</strong> un dom<strong>in</strong>io <strong>in</strong> regioni omogenee e<br />

<strong>di</strong>st<strong>in</strong>te, secondo criteri prefissati.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 3 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Analisi del segnale<br />

Introduzione<br />

Un esempio <strong>di</strong> <strong>segmentazione</strong> <strong>di</strong> immag<strong>in</strong>i<br />

Un’<strong>immag<strong>in</strong>e</strong> <strong>di</strong> ciottoli e la sua <strong>segmentazione</strong><br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 4 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Analisi del segnale<br />

Segmentazione<br />

L’output della <strong>segmentazione</strong> consiste <strong>in</strong>:<br />

un <strong>in</strong>sieme <strong>di</strong> regioni omogenee<br />

un <strong>in</strong>sieme <strong>di</strong> contorni<br />

A seconda dell’applicazione, uno o entrambi gli <strong>in</strong>siemi sono<br />

<strong>in</strong>teressanti.<br />

Il problema consiste nell’identificare le caratteristiche pr<strong>in</strong>cipali del<br />

segnale, lisciando i dati <strong>di</strong> <strong>in</strong>put, preservando al tempo stesso la<br />

struttura del segnale (e le sue <strong>di</strong>scont<strong>in</strong>uità).<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 5 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Un accenno alla teoria<br />

Segmentazione con approccio variazionale<br />

Uno dei possibili mo<strong>di</strong> per formulare il processo <strong>di</strong> <strong>segmentazione</strong> dal<br />

punto <strong>di</strong> vista matematico é l’approccio variazionale, che identifica un<br />

<strong>in</strong>sieme <strong>di</strong> quantità la m<strong>in</strong>imizzazione delle quali porta alla soluzione<br />

cercata, che <strong>di</strong>pende ovviamente dalle caratteristiche <strong>di</strong> queste<br />

quantità.<br />

Queste quantità sono term<strong>in</strong>i <strong>di</strong> penalizzazione legati alle<br />

caratteristiche che si richiedono alla soluzione.<br />

I coefficienti assegnati a questi term<strong>in</strong>i sono il mezzo per controllare il<br />

processo.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 6 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Un accenno alla teoria<br />

Modello variazionale <strong>di</strong> Mumford e Shah<br />

Il modello variazionale <strong>di</strong> Mumford e Shah segue questo approccio,<br />

richiedendo che:<br />

1 la soluzione sia più vic<strong>in</strong>a possibile ai dati <strong>di</strong> <strong>in</strong>put<br />

2 la soluzione sia più “liscia” possibile all’<strong>in</strong>terno <strong>di</strong> ogni regione<br />

omogenea<br />

3 la lunghezza dei contorni sia la m<strong>in</strong>ima possibile<br />

<br />

MS(u, K ) =<br />

Ω\K<br />

|u − g| 2 <br />

dx + λ |∇u|<br />

Ω\K<br />

2 dx + αH 1 (K )<br />

where Ω ⊂ R n é un <strong>in</strong>tervallo limitato aperto, g ∈ L <strong>in</strong>f (Ω) rappresenta i dati, λ e α sono<br />

parametri positivi, H 1 é la misura <strong>di</strong> Hausdorff e K l’<strong>in</strong>sieme dei contorni delle regioni.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 7 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Un accenno alla teoria<br />

Modello variazionale <strong>di</strong> Mumford e Shah<br />

Ωi rappresenta una regione uniforme, g rappresenta i dati, u la sua approssimazione<br />

e K é l’<strong>in</strong>sieme dei contorni delle regioni.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 8 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Un accenno alla teoria<br />

Modello variazionale <strong>di</strong> Mumford e Shah<br />

I pr<strong>in</strong>cipali problemi con questa formulazione sono:<br />

sono presenti contemporaneamente <strong>in</strong>tegrali <strong>di</strong> superficie (2D) <strong>di</strong><br />

l<strong>in</strong>ea (1D)<br />

il dom<strong>in</strong>io <strong>di</strong> <strong>in</strong>tegrazione é una delle <strong>in</strong>cognite del problema (free<br />

<strong>di</strong>scont<strong>in</strong>uity problem)<br />

<strong>in</strong> questa forma non é possibile trovare una soluzione.<br />

Qu<strong>in</strong><strong>di</strong> la formulazione é mo<strong>di</strong>ficata <strong>in</strong> modo che<br />

sono presenti solo <strong>in</strong>tegrali <strong>di</strong> superficie (2D) (formulazione<br />

debole)<br />

la “Γ convergence” é usata per riscrivere il term<strong>in</strong>e che controlla le<br />

<strong>di</strong>scont<strong>in</strong>uità<br />

si scrive il sistema <strong>di</strong> equazioni <strong>di</strong> Eulero associato alla nuova<br />

formulazione, la soluzione é iterativa<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 9 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Un accenno alla teoria<br />

Estensione del modello <strong>di</strong> Mumford e Shah<br />

Anche se la nuova formulazione rende l’implementazione del modello<br />

possibile, rimangono alcuni problemi per la sua applicazione a segnali<br />

reali:<br />

controllare la regolarità attraverso le derivate prime può portare a<br />

sovra<strong>segmentazione</strong> (”ramp effect”)<br />

le curve che rappresentano le <strong>di</strong>scont<strong>in</strong>uità possono solo<br />

term<strong>in</strong>are con una estremità libera o con una giunzione tripla<br />

le <strong>di</strong>scont<strong>in</strong>uità possono <strong>in</strong>contrare il conf<strong>in</strong>e del dom<strong>in</strong>io solo<br />

ortogonalmente<br />

gli angoli non possono essere descritti da questo modello<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 10 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Un accenno alla teoria<br />

Estensione del modello <strong>di</strong> Mumford e Shah<br />

É possibile rappresentare angoli mo<strong>di</strong>ficando il funzionale<br />

<br />

MSk(u) := |u − g|<br />

Ω<br />

2 <br />

dx + λ |∇u|<br />

Ω<br />

2 <br />

dx +<br />

<br />

α + βk<br />

Su<br />

2<br />

ds<br />

dove k é la curvatura del contorno. Ora i parametri α e β controllano rispettivamente<br />

l’elasticità e la rigi<strong>di</strong>tà delle curve:<br />

se α → 0 ogni pixel tende a <strong>di</strong>ventare una s<strong>in</strong>gola regione<br />

se α é troppo grande i cerchi “collassano”, gli “angoli retti” sono smussati e si<br />

ottiene una s<strong>in</strong>gola regione<br />

se λ → ∞ la soluzione tende ad essere costante a tratti<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 11 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Il software<br />

La libreria seglib<br />

É stata sviluppata <strong>in</strong> C una nuova libreria che implementa un set <strong>di</strong><br />

funzioni per la <strong>segmentazione</strong>.<br />

La libreria, chiamata seglib, implementa sia il modello orig<strong>in</strong>ale <strong>di</strong><br />

Mumford-Shah che il modello <strong>di</strong> Mumford-Shah con il term<strong>in</strong>e <strong>di</strong><br />

curvatura.<br />

Per entrambi i modelli la libreria implementa i meto<strong>di</strong> iterativi non<br />

l<strong>in</strong>eari <strong>di</strong> Jacobi Gauss-Seidel per risolvere il problema della<br />

valutazione del gra<strong>di</strong>ente <strong>di</strong>screto (“<strong>di</strong>screte gra<strong>di</strong>ent descent<br />

problem”) associato alla <strong>di</strong>scretizzazione alle <strong>di</strong>fferenze f<strong>in</strong>ite delle<br />

equazioni <strong>di</strong> Eulero.<br />

Il co<strong>di</strong>ce é rilasciato con licenza GNU3 General Public License.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 12 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Il software<br />

Il modulo r.seg per <strong>GRASS</strong><br />

Il modulo <strong>di</strong> <strong>GRASS</strong> r.seg fornisce l’accesso <strong>in</strong> ambiente <strong>GRASS</strong> alle<br />

funzioni per la <strong>segmentazione</strong> <strong>di</strong> immag<strong>in</strong>i contenute nella libreria<br />

seglib.<br />

La scelta <strong>di</strong> sviluppare un modulo <strong>di</strong> <strong>GRASS</strong> piuttosto che un<br />

programma separato <strong>di</strong>pende pr<strong>in</strong>cipalmente dai vantaggi che si<br />

hanno <strong>in</strong>tegrando questo tipo <strong>di</strong> analisi <strong>in</strong> un GIS.<br />

Il co<strong>di</strong>ce é rilasciato con licenza GNU3 General Public License.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 13 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Il software<br />

L’<strong>in</strong>terfaccia del modulo <strong>di</strong> <strong>GRASS</strong> r.seg<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 14 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Il software<br />

Parametri del modulo <strong>di</strong> <strong>GRASS</strong> r.seg I<br />

I parametri del modulo <strong>di</strong> <strong>GRASS</strong> r.seg sono:<br />

il nome della mappa raster <strong>di</strong> <strong>in</strong>put da segmentare<br />

i nomi delle mappe <strong>di</strong> output che contengono il raster segmentato<br />

e i contorni <strong>in</strong><strong>di</strong>viduati<br />

i nomi delle mappe contenenti i valori <strong>in</strong>iziali delle funzioni u e z<br />

il valore del parametro λ, che controlla la regolarità delle regioni<br />

nella mappa segmentata<br />

il valore del parametro α, che controlla la lunghezza dei contorni<br />

delle regioni<br />

il valore del parametro β, che controlla la “rigi<strong>di</strong>tà” dei contorni<br />

delle regioni (la flag Activate MSK flag deve essere selezionata)<br />

il valore della Convergence tolerance che def<strong>in</strong>isce la massima<br />

tolleranza, sull’<strong>in</strong>tero dom<strong>in</strong>io, tra i valori della soluzione (raster<br />

segmentato) a due passi successivi<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 15 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Il software<br />

Parametri del modulo <strong>di</strong> <strong>GRASS</strong> r.seg II<br />

il numero massimo <strong>di</strong> massimo <strong>di</strong> iterazioni (Max number of<br />

iterations) dopo le quali il processo si ferma (se non ha raggiunto<br />

la convergenza prima)<br />

la flag Do not use GS method <strong>di</strong>sattiva l’uso del metodo <strong>di</strong><br />

Gauss-Seidel e attiva qu<strong>in</strong><strong>di</strong> il metodo <strong>di</strong> Jacoby; questa opzione<br />

é utile solo per test<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 16 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Il software<br />

Mappe <strong>di</strong> <strong>in</strong>put per il modulo r.seg<br />

Due mappe <strong>in</strong>iziali sono necessarie per <strong>in</strong>nescare l’algoritmo iterativo:<br />

la mappa per i valori <strong>in</strong>iziali della funzione u può essere uguale<br />

alla mappa da segmentare (<strong>in</strong> <strong>in</strong>put)<br />

la mappa per i valori <strong>in</strong>iziali della funzione z deve contenere valori<br />

(anche uniformi constante) nell’<strong>in</strong>tervallo [0-1]<br />

La mappa per i valori <strong>in</strong>iziali della funzione z può essere creata con il<br />

modulo r.mapcal <strong>di</strong> <strong>GRASS</strong>.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 17 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Applicazioni<br />

Test<br />

Il modulo r.seg é stato usato per analizzare alcune immag<strong>in</strong>i <strong>di</strong> prova e<br />

alcune immag<strong>in</strong>i tipiche usate <strong>in</strong> ambiente GIS, per filtrare il rumore e<br />

per pre processare le immag<strong>in</strong>i prima della loro classificazione.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 18 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Applicazioni<br />

Pre-processamento <strong>di</strong> immag<strong>in</strong>i<br />

Ortofoto del colle <strong>di</strong> Tenna tra i laghi <strong>di</strong> Levico e Caldonazzo <strong>in</strong> Trent<strong>in</strong>o, bande RGB, ris. 1m<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 19 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Applicazioni<br />

Image pre-process<strong>in</strong>g<br />

Immag<strong>in</strong>e segmentata e <strong>di</strong>scont<strong>in</strong>uità.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 20 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Applicazioni<br />

Classificazione <strong>di</strong> immag<strong>in</strong>i<br />

Classificazione unsupervised: <strong>immag<strong>in</strong>e</strong> orig<strong>in</strong>ale e segmentata.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 21 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Applicazioni<br />

Classificazione <strong>di</strong> immag<strong>in</strong>i<br />

Segmentazione e classificazione dell’alveo <strong>di</strong> un “braided river”: <strong>immag<strong>in</strong>e</strong> orig<strong>in</strong>ale e segmentata, la parte bagnata é <strong>in</strong> ciano.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 22 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Applicazioni<br />

Estrazione <strong>di</strong> contorni<br />

Estrazione <strong>di</strong> contorni: i contorni dei canali sono <strong>in</strong> ciano.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 23 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Conclusioni e sviluppi futuri<br />

Conclusioni e sviluppi futuri<br />

L’applicazione dei modelli <strong>di</strong> Mumford-Shah per la <strong>segmentazione</strong><br />

fornisce buoni risultati con immag<strong>in</strong>i <strong>di</strong> tipo <strong>di</strong>verso. La nuova libreria<br />

seglib ed il modulo r.seg sono affidabili e veloci.<br />

L’uso <strong>di</strong> questo nuovo strumento come pre-processore <strong>di</strong> immag<strong>in</strong>i e la<br />

sua comb<strong>in</strong>azione con altre procedure per l’analisi <strong>di</strong> immag<strong>in</strong>i<br />

<strong>di</strong>sponibili <strong>in</strong> <strong>GRASS</strong> fornisce un evidente miglioramento rispetto alle<br />

procedure standard.<br />

Sono <strong>in</strong> corso <strong>di</strong> svolgimento test numerici per valutare<br />

quantitativamente i benefici <strong>di</strong> questo approccio e per dare <strong>in</strong><strong>di</strong>cazioni<br />

sulla scelta dei parametri λ, α e β.<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 24 / 25


Segmentazione <strong>in</strong> <strong>GRASS</strong> | Conclusioni e sviluppi futuri<br />

Conclusioni e sviluppi futuri<br />

Sviluppi futuri:<br />

<strong>segmentazione</strong> <strong>di</strong>retta <strong>di</strong> immag<strong>in</strong>i multibanda<br />

stu<strong>di</strong>o del funzionale <strong>di</strong> Blake e Zisserman (che controlla le<br />

derivate seconde, cioè la curvatura) <strong>in</strong> 2D per l’estrazione <strong>di</strong><br />

features dai Digital Surface Models (ad esempio tetti <strong>di</strong> e<strong>di</strong>fici)<br />

estensione del funzionale <strong>di</strong> Mumford e Shah con l’<strong>in</strong>troduzione <strong>di</strong><br />

un term<strong>in</strong>e che controlla l’esistenza ed il comportamento <strong>di</strong> punti<br />

<strong>di</strong> estremità delle l<strong>in</strong>ee che rappresentano i contorni delle regioni<br />

Il co<strong>di</strong>ce sorgente della versione attuale (<strong>di</strong> sviluppo, senza quasi<br />

documentazione!) della libreria e del modulo <strong>di</strong> <strong>GRASS</strong> é <strong>di</strong>sponibile<br />

qui http://www.<strong>in</strong>g.unitn.it/~grass<br />

c○2010 Alfonso Vitti e Paolo Zatelli, <strong>di</strong>sponibile come<br />

A. Vitti P. Zatelli | Università <strong>di</strong> Trento | FOSS4G-it 2010 25 / 25

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!