UNIVERSITÀ DEGLI STUDI DI UDINE corso di Laurea Magistrale in COMUNICAZIONE MULTIMEDIALE E TECNOLOGIE DELL’INFORMAZIONE Tesi di laurea magistrale ALGORITMI E TECNICHE DI SEGMENTAZIONE DELLE IMMAGINI Laureando: Gianluca Dario Relatore: prof. Christian Micheloni Anno Accademico 2012-2013 Questa tesi esplora le tecniche più conosciute per la segmentazione di immagini digitali analizzandole nei vari dettagli. Propone un’esposizione delle teorie del colore e di tutte le operazioni di filtraggio per la riduzione del rumore. Introduzione 6 INTRODUZIONE E’ giunto il momento - disse il Tricheco - di parlare di molte cose (1) L'uomo nella sua storia ha da sempre cercato di fissare le immagini della realtà o della fantasia. All’inizio con i graffiti, poi con la pittura e la scultura, infine con la fotografia. Nella realtà odierna le immagini hanno un’importanza sempre maggiore sia nel mondo della comunicazione, sia nei settori industrali come la robotica, sia per il telerilevamento e la biomedicina. C’è quindi un grande e chiaro interesse nei confronti delle tecniche e dei metodi che vengono utilizzati per rappresentare un’immagine, che permettono di migliorarne la visualizzazione e di estrarre delle informazioni. Negli ultimi decenni, i campi di applicazione continuano a moltiplicarsi tali da comprendere concretamente ogni ramo della scienza e della tecnologia. Si consolida quindi sempre di più la disciplina dell’image processing. Nel mondo della ricerca, l’image processing è una qualsiasi forma di elaborazione dei segnali per la quale l’input è un'immagine, come una fotografia o un frame video, e l’output può essere o un'immagine elaborata o un insieme di features o parametri relativi all'immagine. Molte delle tecniche di digital image processing sono state sviluppate nel 1960 presso il Jet Propulsion Laboratory, nel Massachusetts Institute of Technology, nell’University of Maryland, e in poche altre strutture di ricerca. Inizialmente riguardavano immagini satellitari, immagini mediche, il riconoscimento dei caratteri, e la valorizzazione della fotografia. Il costo era originariamente molto alto vista l'attrezzatura informatica dell’epoca. La situazione è cambiata nel 1970, con l’avvento di computer più economici e hardware dedicatie le immagini sono diventate elaborabili in tempo reale per alcuni problemi dedicati come la conversione di standard televisivi. La visione artificiale è l'insieme dei processi volti a creare un modello approssimato del mondo 3D ed avviene a partire da immagini digitali bidimensionali. Lo scopo è quello di riuscire a riprodurre l'occhio umano, non solo relativamente la visione, inteso come l'acquisizione di una fotografia, ma soprattutto inteso come l’esaminare e l’interpretare il contenuto di una scena. La computer vision è qunidi inserita in questo importante ambito e comprende metodi di acquisizione, di elaborazione e di analisi dei dati provenienti dal mondo reale con l'obiettivo di trasformare un’immagine in numeri e dati per raccogliere informazioni utili per la successiva rielaborazione. L’image segmentation si inserisce nel ramo di image processing come un processo fondamentale e problematico che consente al computer di partizionare un'immagine in regioni uniformi che corrispondono ad oggetti o a parti di oggetti rappresentati in essa. Viene utilizzata per ottenere una rappresentazione più compatta, per estrarre degli oggetti o come strumento che permette di suddividere l'immagine digitale in un insiemi di pixel omogeneo. Lo scopo della segmentazione è semplificare e/o modificare la rappresentazione delle immagini in qualcosa di più significativo e facile da analizzare. La segmentazione è quindi un primo passo verso l'estrazione di informazioni semantiche da una scena. Fino ai primi anni '80 la ricerca in questo settore si è concentrata sulle tecniche per estrarre il contorno degli oggetti, il cosiddetto edge detection, o a separate porzioni di oggetti, tramite tecniche di thresholding. Questi tecniche, definite come bottom-up, vanno a segmentare immagini a partire dalle caratteristiche di basso livello, a prescindere dal contenuto semantico dell’immagine stessa. D’altra parte, però, una segmentazione perfetta in oggetti significativi non può essere ottenuta senza una conoscenza di alto livello dell’immagine. La ricerca di determinati oggetti in una scena ha portato allo sviluppo di tecniche basate su modelli esclusivi, definiti come top-down, che consentono di ottenere buoni risultati se applicati a particolari problemi. Spesso, tuttavia, anche una conoscenza a priori della scena è insufficiente 15 16 Algoritmi e tecniche di segmentazione delle immagini o non è disponibile. Diventa quindi necessario avere a disposizione dei metodi per estrarre delle regioni primitive che forniscano un punto di partenza a cui applicare dei modelli top-down. Si parla quindi di hierarchical segmentation, una tecnica che inizia con un primo step di over-segmentazione (divisione in zone diverse di un singolo oggetto semantico) e utilizza questo livello come base per la costruzione dei livelli successivi. Una segmentazione iniziale parziale o imperfetta può risultare critica per tutte le successive applicazioni e in particolare deve evitare di sotto-segmentare (unione in una stessa area di oggetti semanticamente diversi). La segmentazione può essere definita come il processo attraverso il quale è possibile classificare i pixel dell'immagine che hanno caratteristiche simili comuni. Il raggruppamento di pixel in regioni si basa su un criterio di omogeneità che li distingue gli uni dagli altri. Pertanto, ogni pixel in una regione è simile agli altri pixel nella stessa regione secondo un qualche criterio come il colore, l’intensità, la texture mentre regioni adiacenti sono ovviamente differenti rispetto questi criteri di suddivisione. I principi di similarità e di prossimità sono motivati dalla considerazione che regioni omogenee derivano da pixel spazialmente vicini e con valori simili di intensità luminosa. Il risultato di un'immagine segmentata è quindi un insieme di aree che, globalmente, includono l'intera immagine. È bene precisare che la segmentazione non implica la classificazione delle regioni e quindi non fornisce alcuna informazione per il riconoscosiemento di oggetti. La segmentazione non è inoltre basata su una particolare teoria fisico-matematica. Quindi ci sono diversi algoritmi disponibili in letteratura, molti dei quali non esaustivi o comunque non ottimali. La partizione di un'immagine in regioni omogenee non garantisce la divisione in oggetti semantici (2): “the image segmentation problem is basically one of psychophysical perception, and therefore not susceptible to a purely analytical solution”. Il problema della segmentazione automatica delle immagini è mal definito, perché gli oggetti semantici spesso non corrispondono a zone omogenee rispetto a caratteristiche di basso livello come colore e tessitura. Tuttavia, utilizzando misure di similarità ed omogeneità simili a quelle percettive dell'occhio umano è possibile avvicinarsi al risultato desiderato. È stato dimostrato che la percezione del colore e della tessitura sono fondamentali nella visione umana. L'approccio migliore sembra quindi quello di imitare il più fedelmente possibile il sistema visivo umano, utilizzando le informazioni congiunte di colore e texture per ottenere misure di similarità e omogeneità corrette dal punto di vista percettivo . L’elaborazione delle immagini digitali 7 L’ELABORAZIONE DELLE IMMAGINI DIGITALI Un’immagine può essere definita come una funzione a due dimensioni f(x,y) dove x,y sono le coordinate di un punto P su un piano cartesiano e la funzione f viene chiamata intensità di P(o livello di grigio). I valori assunti da x, y, f(x,y) sono tutti valori positivi ed interi. Nel caso delle foto digitali ciò che si registra è la distribuzione su una superficie piana dell’intensità di luce che colpisce il piano immagine. Le immagini di questo tipo si chiamano anche immagini di intensità e sono molto comuni. Ma esistono anche immagini di altro tipo, cioè registrazioni della distribuzione spaziale di altre grandezze fisiche: acoustic images, velocity images, range images, etc. Quindi, l’immagine può essere vista come generica registrazione della distribuzione spaziale dell’informazione che colpisce un piano. Una classe distinta di immagini digitali statiche è quella delle immagini sintetiche. Lo scopo della computer graphics è quello di realizzare immagini sintetiche a partire da oggetti realizzati dal calcolatore. Le immagini digitali a colori invece possono essere viste come una matrice tridimensionale formata da tre matrici a due dimensioni sovrapposte. Nel caso dello spazio colore RGB (paragrafo 7.2.2.1) corrispondono a una terna di immagini a livelli di grigio così definibile: ( ( ) ( ) ( )) Un immagine digitale è dunque composta da un numero finito di elementi, ognuno con valore e posizione ben definiti. Questi elementi vengono detti picture element o pixel. In letteratura si tende a distinguere tre tipi di processi computerizzati, di alto, medio e basso livello. I processi di basso livello riguardano tutte le operazioni di base nel trattamento delle immagini come la riduzione del rumore (7.1), l’aumento del contrasto etc. Si hanno quindi immagini sia in input sia in output. I processi di medio livello comprendono tutti i compiti quali la segmentazione (oggetto di questa tesi, 8), la descrizione di questi oggetti per ricondurli ad una forma più consona e il riconoscimento (classificazione) di questi. Si hanno quindi in input delle immagini ed in output degli attributi come bordi, contorni, regioni, identità. I processi di alto livello invece tendono a dare un senso ad un insieme di oggetti riconosciuti, come nell’analisi di un’immagine, e a mettere in atto tutte le funzioni cognitive tipiche della visione umana. Nell’ambito dell’elaborazione delle immagini in questo capitolo vengono trattate solo le tecniche per la riduzione del rumore (7.1) e tutte le modalità per rappresentare digitalmente il colore tramite i diversi spazi colore (7.2). Figura 1 - Un immagine digitale dal punto di vista del computer 17 18 Algoritmi e tecniche di segmentazione delle immagini 7.1 LE TECNICHE DI FILTRAGGIO Per migliorare la comprensibilità di un’immagine digitale si fa uso del filtraggio con il quale si possono enfatizzare alcune caratteristiche e rimuoverne altre. Essenzialmente il filtraggio è una funzione che agisce su un certo intorno, nel quale il valore che assume un pixel nell’immagine di output è determinato dall’applicazione di un operatore locale che elabora i valori dei pixel a lui circostanti nell’immagine di input. Un filtro lo si può vedere come un sistema che, a partire da un certo segnale di input, tramite una funzione di trasferimento, genera un segnale filtrato. Un filtro digitale consente di eseguire alcune funzioni matematiche su dei campioni di segnali, per aumentare o ridurre alcuni aspetti del segnale analizzato. Ci sono due vantaggi principali nell’utilizzo dei filtri digitali rispetto a quelli analogici: Possibilità di ri-programmazione via software sullo stesso hardware Modifica in real time dei coefficienti dei filtri (filtri “adattativi”) I due principali tipi di filtri digitali sono i filtri IIR (Infinite Impulse Response) e i filtri FIR (Finite Impulse Response). Un filtro FIR è un sistema casuale con risposta finita all’impulso; la funzione di trasferimento è un polinomio in z−1. I filtri IIR invece sono dei sistemi casuali con risposta anche infinita all’impulso, dotati di una funzione di trasferimento razionale in z−1. Si preferisce l’utilizzo del filtro FIR, dove vi sia richiesta di una fase lineare; altrimenti, se la distorsione in fase è tollerabile, si preferisce l’uso di filtri IIR che utilizzano un minor numero di parametri, e implicano un utilizzo inferiore di memoria e una minor complessità computazionale. In questa tesi si trattano solamente i filtri FIR. 7.1.1 FILTRI LINEARI I filtri lineari hanno un comportamento identico per ogni tipo di segnale. Il filtraggio avviene tramite la convoluzione dell’immagine f(x,y) con il kernel, una funzione di filtro h(x,y), che si rappresenta tramite una matrice chiamata “maschera”. Il filtraggio va ad agire localmente sull’immagine e le dimensioni del kernel sono di molto inferiori alla grandezza dell’immagine. Fissato il kernel, si fa scorrere su tutta la matrice, partendo dall’angolo in alto a sinistra, tale da farlo rimanere sempre all’interno dell’immagine. Ad ogni singola posizione del kernel corrisponde un’unica risposta in output. Si fissi ad esempio una maschera quadrata t x t (con t dispari) e si centri su un generico punto (i,j) dell’immagine. La convoluzione restituisce il valore ( ) ∑ ∑ ( ) ( ) che va sostituito a f(i,j). Il costo computazionale dei filtri lineari di un’immagine n x n con filtro m x m è O(n2m2). 7.1.1.1 FILTRI FIR Un filtro FIR è sempre stabile ed ha una risposta all’impulso limitata nello spazio. Questa caratteristica è indispensabile per i filtri lineari nell’ambito delle immagini digitali perché permette di avere un filtro rappresentato come una maschera di convoluzione con un numero finito di componenti. L’elaborazione delle immagini digitali Nella Figura 2 si vede un confronto tra l’applicazione di vari filtri che sono descritti in questo paragrafo. Figura 2 - Confronto tra filtri FIR. 7.1.1.1.1 FILTRO PASSA-BASSO Il filtro passa-basso è un filtro che diminuisce le alte frequenze dell’immagine lasciando immutate le basse frequenze in modo tale da accrescere il rapporto tra segnale e rumore dell’immagine. I filtri passa-basso sono creati con una convoluzione discreta con delle maschere. Le maschere devono essere così fatte: Tutti i coefficienti del filtro devono essere positivi La somma di tutti i coefficienti deve dare 1 (altrimenti si avrebbe un’amplificazione) Per accentuare l’effetto utilizzare una maschera più larga Una possibile maschera è quindi la seguente: [ ] 19 20 Algoritmi e tecniche di segmentazione delle immagini Il filtro passa-basso dovrebbe avere un comportamento del genere: ( ) { ( ( ) ) L’effetto del filtro passa-basso è quello di sfocare l’immagine perché va a tagliare le alte frequenze e quindi tutti i contorni reali dell’immagine. Figura 3 - Applicazione del filtro passa-basso (con maschera H descritta in questo paragrafo) 7.1.1.1.1.1 FILTRO A MEDIA Il filtro a media è un filtro di tipo passa-basso che calcola la convoluzione con un kernel a valori uniformi, dove la somma dei coefficienti è sempre pari a 1. In pratica è calcolata la media dei pixel che fanno parte di un intorno del pixel centrale, ottenendo come output un’immagine smoothed dove sono state eliminate le alte frequenze. Questo filtro risulta particolarmente utile alla presenza di immagini rumorose di tipo salt & pepper o di tipo gaussiano. Il rumore viene sensibilmente ridotto a scapito della nitidezza dell’immagine. Il filtro viene utilizzato spesso per sfuocare l’immagine e ingrossare i contorni. Figura 4 - Applicazione del filtro a media (con maschera H descritta in questo paragrafo) Una possibile maschera di un kernel 3x3 può essere la seguente: L’elaborazione delle immagini digitali [ ] 7.1.1.1.2 FILTRO PASSA-ALTO Il filtro passa-alto ha le caratteristiche opposte al filtro bassa-basso. È un filtro che riduce le basse frequenze senza rovinare le alte frequenze, in modo da esaltare i contorni presenti nell’immagine stessa. Il filtro ideale è caratterizzato da questa funzione di trasferimento: ( ) { ( ( ) ) Le maschere devono essere così fatte: I coefficienti possono essere un qualsiasi numero razionale La somma dei coefficienti deve dare 0 Una maschera possibile è dunque la seguente: [ ] L’effetto del filtro passa-alto è quello di avere contorni maggiormente definiti e nitidi. Il filtro diventa ottimo se va ad eliminare tutte le componenti a bassa frequenza e non solo a diminuirle. Figura 5 - Applicazione del filtro passa-alto (con maschera H descritta in questo paragrafo) 7.1.1.1.3 FILTRO PASSA-BANDA Il filtro passa-banda è una combinazione in sequenza dei filtri passa-basso e passa-alto. L’immagine in output finale risulta quindi essere senza alte e senza basse frequenze. La sequenza inversa porta a risultati differenti. 21
© Copyright 2024 Paperzz