15 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
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 .
17 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
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(n
2
m
2
).
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.
19 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:
[
]
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:
21 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.