SlideShare a Scribd company logo
1 of 57
Download to read offline
UNIVERSITÀ DEGLI STUDI DI TRIESTE
Dipartimento di Ingegneria e Architettura
Corso di Laurea in Ingegneria Informatica
Tesi di Laurea Magistrale
in
PROGRAMMAZIONE WEB
Segmentazione automatica di
immagini di mosaici tramite
tecniche di calcolo evoluzionistico
LAUREANDO RELATORE
Nicola TIMEUS prof. Eric MEDVET
CORRELATORI
prof. Gianfranco FENU
prof. Felice Andrea PELLEGRINO
Anno Accademico 2014/2015
Alla mia famiglia, a Eleonora e a tutti coloro i quali mi hanno sostenuto
durante la mia carriera universitaria e nello svolgimento di questo
lavoro
Indice
1 Introduzione 1
1.1 Descrizione del problema . . . . . . . . . . . . . . . . . . . 1
1.2 Motivazioni . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Algoritmi genetici 3
2.1 Genotipo . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Operatori genetici . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Funzione di fitness . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Struttura di un algoritmo genetico . . . . . . . . . . . . . 5
3 Descrizione del metodo 7
3.1 Descrizione del genotipo . . . . . . . . . . . . . . . . . . . 7
3.1.1 Formato basato su rettangoli . . . . . . . . . . . . 8
3.1.2 Formato basato su quadrilateri convessi . . . . . . 9
3.2 Funzione di fitness . . . . . . . . . . . . . . . . . . . . . . 10
3.3 Inizializzazione della griglia . . . . . . . . . . . . . . . . . 11
3.3.1 Inizializzazione uniforme . . . . . . . . . . . . . . . 11
3.3.2 Inizializzazione basata su preprocessing . . . . . . 12
3.3.3 Differenze di gaussiane . . . . . . . . . . . . . . . . 13
3.3.4 Scelta dei blobs . . . . . . . . . . . . . . . . . . . . 16
3.4 Descrizione dell’algoritmo genetico . . . . . . . . . . . . . 17
3.4.1 Operatore di crossover uniforme . . . . . . . . . . . 19
3.4.2 Operatore di mutazione uniforme . . . . . . . . . . 19
3.4.3 Operatore di mutazione gaussiano . . . . . . . . . 19
3.5 Scelta delle segmentazioni risultanti . . . . . . . . . . . . . 20
3.6 Gestione delle intersezioni . . . . . . . . . . . . . . . . . . 20
3.6.1 Variabili decisionali . . . . . . . . . . . . . . . . . . 21
3.6.2 Funzione obiettivo . . . . . . . . . . . . . . . . . . 21
3.6.3 Vincoli . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.7 Implementazione ed ottimizzazioni . . . . . . . . . . . . . 23
3.7.1 Strumenti utilizzati . . . . . . . . . . . . . . . . . . 23
3.7.2 Working sets . . . . . . . . . . . . . . . . . . . . . 23
v
INDICE vi
3.7.3 Manipolazione dei poligoni . . . . . . . . . . . . . 23
3.7.4 Manipolazione dei pixel . . . . . . . . . . . . . . . 24
3.7.5 Caching . . . . . . . . . . . . . . . . . . . . . . . . 25
4 Procedura sperimentale 27
4.1 Metriche di valutazione . . . . . . . . . . . . . . . . . . . . 27
4.1.1 Errore sul conteggio . . . . . . . . . . . . . . . . . 27
4.1.2 Precision . . . . . . . . . . . . . . . . . . . . . . . 28
4.1.3 Recall . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.1.4 F-Measure . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Obiettivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3 Organizzazione . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3.1 Random seed . . . . . . . . . . . . . . . . . . . . . 32
5 Risultati 33
5.1 Efficacia dell’algoritmo . . . . . . . . . . . . . . . . . . . . 33
5.1.1 Andamento della funzione di fitness . . . . . . . . 33
5.1.2 Correlazione tra funzione di fitness e metriche di
valutazione . . . . . . . . . . . . . . . . . . . . . . 35
5.2 Modalità di evoluzione . . . . . . . . . . . . . . . . . . . . 38
5.3 Gestione delle intersezioni . . . . . . . . . . . . . . . . . . 39
5.4 Dimensione della popolazione . . . . . . . . . . . . . . . . 40
5.5 Fronte di Pareto . . . . . . . . . . . . . . . . . . . . . . . 41
5.6 Formato del genotipo . . . . . . . . . . . . . . . . . . . . . 43
5.7 Inizializzazione della griglia . . . . . . . . . . . . . . . . . 44
5.8 Confronto con TOS . . . . . . . . . . . . . . . . . . . . . . 45
5.8.1 Confronto attraverso le metriche di valutazione . . 45
5.8.2 Confronto empirico . . . . . . . . . . . . . . . . . . 46
6 Conclusioni e sviluppi futuri 49
Capitolo 1
Introduzione
1.1 Descrizione del problema
Questa tesi affronta il problema della segmentazione di un mosaico, il che
consiste nel ricavare delle informazioni strutturate ed esplicite riguardo al
numero, la posizione e la forma dei tasselli che lo compongono a partire
da un’immagine digitale dello stesso.
Questo problema viene tradizionalmente risolto in maniera manuale
tracciando il contorno di ogni tassello su un foglio di carta semitrasparente
applicato sopra il mosaico, operazione che necessita di molto tempo per
essere svolta.
Avere a disposizione una rappresentazione digitale ottenuta in modo
automatico permette di risparmiare il tempo necessario ad effettuare la
segmentazione manuale e presenta diversi vantaggi. Ad esempio può es-
sere utile agli archeologi, accademici e restauratori interessati allo studio,
confronto e preservazione dei mosaici consentendo loro di avvalersi delle
nuove tecnologie per svolgere al meglio il propro lavoro.
1.2 Motivazioni
In un lavoro precedente [3] sono stati confrontati attraverso delle metri-
che non soggettive vari algoritmi presenti in letteratura utili a risolvere
questo problema, tra cui diversi algoritmi general-purpose recenti per la
segmentazione di immagini e TOS [1] che per quanto a noi noto risulta
l’unico orientato esplicitamente alla segmentazione di un mosaico.
Dal lavoro sopra citato è emerso che quest’ultimo risulta migliore degli
altri anche se in maniera non significativa, lasciando il problema solo
parzialmente risolto. Attraverso questa tesi si è sperimentato un nuovo
approccio alla segmentazione automatica dei mosaici basato su tecniche
di calcolo evoluzionistico.
1
Capitolo 2
Algoritmi genetici
Si descrivono ora brevemente i principali aspetti che caratterizzano il
calcolo evoluzionistico e gli algoritmi genetici.
Gli algoritmi genetici sono degli algoritmi di ottimizzazione che pren-
dono spunto dal mondo della biologia, in particolare dalle teorie sull’evo-
luzione e dal principio della selezione naturale.
Secondo tali teorie in natura l’evoluzione di una specie avviene gra-
zie al fatto che sono gli individui migliori appartenenti ad essa ad avere
maggiore probabilità di riprodursi e trasmettere quindi il loro patrimo-
nio genetico alle generazioni successive. Per individui migliori si intende
quelli che hanno sviluppato delle caratteristiche che garantiscono loro un
buon grado di adattamento all’ambiente circostante. Lo sviluppo di nuo-
ve caratteristiche negli individui di una specie avviene tramite mutazioni
casuali del patrimonio genetico, tali caratteristiche possono essere sia fa-
vorevoli che sfavorevoli. Il meccanismo della selezione naturale fa si che
le prime vengano trasmesse alla generazione successiva con probabilità
maggiore rispetto alle seconde.
Gli algoritmi genetici applicano i principi sopra descritti ai problemi
di ottimizzazione, il loro funzionamento si basa infatti sulla generazione
casuale di un insieme di soluzioni e la successiva evoluzione dello stesso
fino all’ottenimento di soluzioni soddisfacenti per il problema considera-
to. L’insieme sopra citato viene detto popolazione e le soluzioni ad esso
appartenenti individui.
Ciascun individuo è contraddistinto dal relativo fenotipo e genotipo.
Il primo è l’insieme delle caratteristiche e proprietà esternamente visibili
che costituiscono l’individuo, il secondo è invece un insieme di parame-
tri che identifica univocamente un particolare fenotipo ed è soggetto a
manipolazione da parte degli operatori tipici del calcolo evoluzionistico
quali la mutazione e il crossover. Questi operatori sono ispirati dalle ri-
spettive controparti presenti nel mondo della genetica. Un altro aspetto
3
2. Algoritmi genetici 4
fondamentale è quello di poter definire una funzione di confronto tra due
individui che consenta di individuare quello che rappresenta una soluzio-
ne migliore per il problema in questione, tale funzione si dice funzione di
fitness.
Vengono ora descritti formalmente i concetti precedentemente intro-
dotti.
2.1 Genotipo
Il genotipo di un individuo è identificato dal suo cromosoma C = {g1, . . . , gn}
che rappresenta una sequenza ordinata di geni, ogni gene è un vettore di
paramenti gi = (pi1, . . . , piki
) con pij ∈ Aij, dove Aij è un generico insie-
me. Ogni gene codifica un insieme di caratteristiche correlate del fenotipo
di un individuo. La definizione del numero di geni presenti nel cromoso-
ma, del numero di parametri pij e del significato degli stessi dipende dal
particolare problema ed è a discrezione dello sviluppatore dell’algoritmo.
2.2 Operatori genetici
La generazione di una nuova popolazione a partire da quella preesistente
viene effettuata mediante i seguenti operatori finalizzati alla manipola-
zione del cromosoma degli individui.
Mutazione L’operatore di mutazione effettua la generazione di un nuovo
individuo figlio a partire da un genitore mediante la sostituzione di
uno o più parametri pij presenti nel cromosoma del primo con un
valore casuale appartenente ad Aij.
Crossover L’operatore di crossover effettua la generazione di uno o più
individui figli a partire da due o più genitori effettuando una ri-
combinazione dei parametri corrispondenti presenti nel genotipo.
I cromosomi dei figli sono caratterizzati dalla seguente proprietà:
∀fij∃k : pk
ij = fij, dove fij rappresenta un generico parametro di
uno dei figli e pk
ij rappresenta il valore del corrispondente parametro
del genitore k-esimo.
2.3 Funzione di fitness
La funzione di fitness ha il compito di esprimere quantitativamente la bon-
tà di un determinato individuo come soluzione del problema in questione,
tale funzione riceve in ingresso il fenotipo dell’individuo considerato ed
5 Struttura di un algoritmo genetico
ha valori in Rn. Se n = 1 tale funzione rende possibile ordinare la popo-
lazione secondo il grado di ottimalità degli individui identificando anche
quello migliore. Se n > 1 si è in presenza di un problema di ottimizza-
zione multi obiettivo e l’ordinamento precedentemente descritto presenta
delle complicazioni in più rispetto al caso unidimensionale. In questo caso
il problema può essere affrontato ad esempio tramite l’ordinamento non
dominato per fronti di Pareto descritto nel seguito.
2.4 Struttura di un algoritmo genetico
Una volta ottenuto un modello delle soluzioni di un problema in termini
di genotipo, implementati in modo opportuno gli operatori di mutazio-
ne e crossover ed individuata una funzione di fitness l’evoluzione della
popolazione avviene nel modo seguente:
1. Inizializzazione della popolazione.
2. Applicazione della funzione di fitness alla popolazione.
3. Ordinamento degli individui rispetto al loro grado di ottimalità.
4. Se gli individui ottenuti sono soddisfacenti l’algoritmo termina.
5. Generazione di una nuova popolazione a partire da quella pre-
cedente applicando crossover e mutazione agli individui migliori
individuati al punto precedente.
6. Passaggio al punto 2.
Capitolo 3
Descrizione del metodo
Il problema della segmentazione di un mosaico è stato affrontato mediante
un algoritmo di ottimizzazione genetica multi obiettivo, si fornisce ora una
definizione formale di segmentazione e si descrivono i vari aspetti specifici
che caratterizzano tale algoritmo.
Definizione 1 Per segmentazione si intende un insieme S di insiemi di
pixel appartenenti all’immagine originale. S è ottima se e solo se per
ogni tassello contenuto nell’immagine di input è presente uno ed uno solo
inseme I ∈ S che contiene tutti e soli i pixel appartenenti al tassello
stesso.
3.1 Descrizione del genotipo
Ogni individuo appartenente alla popolazione presenta un genotipo atto
a codificare il relativo fenotipo, ossia una segmentazione S.
Invece di ottenere una rappresentazione di S direttamente dalla de-
finizione 1 si è scelto di imporre ulteriori restrizioni tenendo conto del-
le caratteristiche specifiche del problema al fine di ridurre lo spazio di
ricerca.
In particolare si impone che ogni I ∈ S venga identificato da un po-
ligono convesso, un pixel appartiene ad I se questo è contenuto nella
regione dell’immagine originale identificata da tale poligono. Tale ap-
prossimazione è ragionevole se si considera la forma tipica dei tasselli di
un mosaico. Il requisito della convessità semplifica inoltre le operazioni
di manipolazione dei tasselli e consente di introdurre delle ottimizzazioni
finalizzate a ridurre il tempo di esecuzione.
Il cromosoma di ogni individuo è composto da un insieme di geni
codificanti un poligono, il generico gene i-esimo gi è un vettore avente la
seguente forma:
gi = (pi1, . . . , pik), pij ∈ Pij (3.1)
7
3. Descrizione del metodo 8
dove pij è un numero reale rappresentato mediante la codifica floating
point caratterizzante uno specifico parametro del poligono. Ciascun pij
appartiene inoltre ad un intervallo Pij = [pmin
ij , pmax
ij ] ⊂ R, definito in fase
di inizializzazione come illustrato in seguito. Gli operatori di mutazione
e crossover devono garantire che la condizione pij ∈ Pij rimanga sempre
valida nel corso dell’evoluzione.
Scopo degli intervalli di validità è quello di imporre che ciascun po-
ligono possa essere collocato in una porzione circoscritta dell’immagine
contenente la posizione iniziale e che le sue dimensioni non discostino
eccessivamente da un valore iniziale.
Nel corso del lavoro sono stati sperimentati diversi formati per il geno-
tipo, ciascuno dei quali identifica il numero e il significato dei parametri
pij e possiede un diverso grado di espressività. Ognuno di questi formati
definisce una famiglia alla quale i poligoni devono appartenere e forni-
sce alcune specifiche utilizzate dagli operatori di crossover e mutazione
attraverso gli intervalli di validità Pij.
A livello di codice i diversi formati sono stati implementati median-
te specifiche classi ciascuna delle quali implementa una stessa interfac-
cia. Tra le operazioni più importanti che queste classi devono svolgere
troviamo le seguenti:
• Generare la configurazione iniziale del gene i-esimo nel modo più
appropriato a partire dai parametri cxi, cyi e di forniti dal codice
responsabile dell’inizializzazione della griglia. I primi due sono le
coordinate del baricentro del poligono ed il terzo va inteso come
metà lato del tassello ipotizzando che questo abbia forma quadrata.
• Definire gli intervalli di validità Pij.
• Tradurre i geni codificanti i poligoni in una rappresentazione indi-
pendente dal particolare formato in uso che viene utilizzata dalle
altre parti del codice, ossia una lista ordinata delle coordinate (x, y)
dei vertici del poligono.
Vengono ora illustrati i due formati impiegati nella fase sperimentale
di raccolta dei risultati.
3.1.1 Formato basato su rettangoli
Questo formato prevede che i poligoni siano dei quadrati disposti ini-
zialmente con i lati paralleli agli assi del sistema di riferimento ai quali
si consente di variare tramite crossover e mutazione posizione, rotazione
e lunghezza di ciascuna coppia di lati paralleli. In particolare il gene
i-esimo ha la seguente forma:
gi = (xi, yi, φi, l1i, l2i) (3.2)
9 Descrizione del genotipo
dove xi e yi sono le coordinate del baricentro del rettangolo, φi rappre-
senta l’angolo di rotazione rispetto alla configurazione iniziale ed l1i ed
l2i rappresentano la lunghezza di ciascuna coppia di lati paralleli.
Per quanto riguarda gli intervalli di validità dei parametri si impone
che:
xi ∈ [cxi − di, cyi + di] (3.3)
yi ∈ [cxi − di, cyi + di] (3.4)
φi ∈ [−π/2, π/2] (3.5)
l1i, l21 ∈ [di, 4di] (3.6)
Dove cxi, cyi e di sono i parametri definiti in fase di inizializzazione.
3.1.2 Formato basato su quadrilateri convessi
Questo formato prevede che a partire da un quadrato con i lati paralleli
al sistema di riferimento possa essere modificata la posizione del vertice
j-esimo mediante la somma di un offset (dxj, dyj) rispetto alla posizione
di partenza, con max(dxj, dyj) ≤ k = l/4, dove l è la lunghezza del lato.
Si può dimostrare che così facendo si ottengono sempre poligoni convessi
e che l/4 è il massimo valore di k che conserva tale proprietà. Al termine
delle operazioni di perturbazione sopra descritte il poligono può essere
ruotato e/o traslato.
La struttura dei geni gi è la seguente:
gi = (xi, yi, φi, dx1i, dy1i, . . . , dx4i, dy4i) (3.7)
con
xi ∈ [cxi − di, cxi + di] (3.8)
yi ∈ [cyi − di, cxi + di] (3.9)
φi ∈ [−π, π] (3.10)
dx1i, dy1i, . . . , dx4i, dy4i ∈ [−1, 1] (3.11)
La generazione di un poligono a partire da un gene gi avviene nel modo
seguente:
1. Si inizializzano i vertici del quadrato nel modo seguente:
v1i = (−di, −di)
v2i = (di, −di)
v3i = (di, di)
v4i = (−di, di)
3. Descrizione del metodo 10
2. Si somma al vertice k-esimo il vettore (dxki, dyki) · di/2.
3. Si ruota la configurazione risultante di φi radianti rispetto all’ori-
gine in senso orario.
4. Si somma a ciascun vertice il vettore (xi + cxi, yi + cyi).
3.2 Funzione di fitness
Per effettuare l’ottimizzazione genetica si è impiegata una funzione di
fitness multi obiettivo composta da due valori che sono la media effettuata
sull’intera segmentazione dei seguenti parametri calcolabili per ciascun
tassello:
In-Tile Color Dissimilarity Questo parametro rappresenta la somma
delle deviazioni standard registrata sui diversi canali del colore cal-
colate sui pixel appartenenti al poligono, ad esempio se si utilizza
il colorspace RGB questo parametro assume la seguente forma
IT = σr + σg + σb (3.12)
ed è indice della variabilità del colore all’interno di un tassello.
Out-tile Color Dissimilarity Per calcolare questo parametro occorre
considerare due diverse regioni, la prima è il poligono T appartenen-
te alla segmentazione e la seconda è il poligono ¯T avente lo stesso
baricentro di T ottenuto scalando quest’ultimo di un fattore β > 1.
Il parametro out-tile color dissimilarity è definito come la norma
euclidea del vettore differenza tra il colore medio presente nella
regione T e quello presente nella regione ¯T  T:
OT = (µr, µg, µb)T − (µr, µg, µb)T ¯T (3.13)
Questo parametro quantifica la misura in cui il colore medio della
regione interna ad un tassello si discosta da quello presente in una
regione esterna allo stesso situata a ridosso del bordo. Per quanto
riguarda il valore del parametro β si è utilizzato β = 1.2.
Attraverso l’algoritmo genetico si è cercato di massimizzare il valore
della out-tile color dissimilarity media e di minimizzare il valore della
in-tile color dissimilarity media.
Questa strategia si basa sulle ipotesi che un tassello di un mosaico pre-
senta solitamente una bassa variabilità del colore al suo interno mentre
presenta differenze significative tra il colore della regione interna allo stes-
so e quella esterna a ridosso del bordo. Dal paper [3] è inoltre emersa una
11 Inizializzazione della griglia
correlazione tra il valore di questi indici e la qualità delle segmentazioni
ottenute dai vari algoritmi in termini della metrica oggettiva f-measure.
Tali indicatori forniscono quindi informazione sulla difficoltà intrinseca
che caratterizza la segmentazione di un particolare mosaico.
3.3 Inizializzazione della griglia
Come precedentemente anticipato, al fine di garantire una buona modu-
larità e riutilizzo del codice, la procedura di inizializzazione della popo-
lazione è stata suddivisa in due fasi:
1. La prima fase, che verrà descritta in dettaglio in questa sezione, è in-
dipendente dal particolare formato del genotipo utilizzato e riguar-
da l’impostazione del numero, posizione e dimensione dei tasselli
che compongono le segmentazioni.
Come già accennato in questa fase si definiscono per ogni tassello
le coordinate (cxi, cyi) del baricentro e il parametro di che equivale
alla metà della lunghezza del lato dello stesso ipotizzando che abbia
forma quadrata.
2. La seconda fase, già descritta in precedenza nella sezione 3.1, ri-
guarda invece l’inizializzazione dei parametri dei geni nel modo
più appropriato in riferimento al particolare formato del genotipo
basandosi sui cxi, cyi e di ottenuti dalla prima fase.
Per quanto riguarda la prima fase sono stati considerati due approcci
che verranno descritti nel seguito: l’inizializzazione uniforme della griglia
e l’inizializzazione basata su un semplice algoritmo di blob detection.
Entrambe queste modalità richiedono in ingresso dei parametri facil-
mente ottenibili dall’immagine del mosaico originale finalizzati a descri-
vere grossolanamente le dimensioni medie dei tasselli.
3.3.1 Inizializzazione uniforme
Questa modalità di inizializzazione richiede in ingresso un singolo para-
metro davg, denominato “dimensione media dei tasselli”. Tale parametro
può essere interpretato come il diametro medio delle tessere ed è ricava-
bile mediante una rapida analisi dell’immagine originale, non è necessaria
un’elevata accuratezza ma è sufficiente individuare l’ordine di grandezza.
Questo operatore fornisce alla procedura che implementa il genotipo i
dati utili a generare una griglia di quadrati avente dimensione w/davg ×
h/davg , dove w e h sono rispettivamente la larghezza e l’altezza in pixel
dell’immagine da elaborare. Il valore dei parametri di viene fissato a
davg/2 ∀i e i vari cxi e cyi vengono forniti in modo tale da generare una
3. Descrizione del metodo 12
Figura 3.1: Risultato dell’applicazione dell’inizializzazione uniforme, nella re-
gione in basso a destra si può notare che il numero di tasselli nella griglia non
è sufficiente ad identificare tutti i tasselli presenti nel mosaico
griglia di quadrati aventi lo stesso lato ripartendo uniformemente lo spazio
esterno ai poligoni lungo gli assi x ed y.
Questo tipo di inizializzazione è molto semplice da implementare ma
presenta degli svantaggi nel caso in cui nel mosaico si riscontri un’ele-
vata variabilità nelle dimensioni delle tessere. In particolare è frequente
il caso in cui nell’immagine sono presenti delle regioni caratterizzate da
una dimensione dei tasselli significativamente superiore oppure inferiore
rispetto alla media. In questi casi se la griglia è inizializzata uniforme-
mente si avrà a disposizione un numero rispettivamente troppo elevato o
troppo basso di poligoni nella stessa regione e la configurazione iniziale sa-
rà piuttosto lontana da quella ottima rendendo più difficile la convergenza
dell’algoritmo.
3.3.2 Inizializzazione basata su preprocessing
Al fine di alleviare i problemi precedentemente esposti è stato implemen-
tato un algoritmo di preprocessing finalizzato ad identificare in modo
grossolano il numero, la posizione e la dimensione dei tasselli, consen-
13 Inizializzazione della griglia
tendo di stimare i valori di cxi, cyi e di effettivi del mosaico fornito in
ingresso. In questo modo si ottiene una griglia iniziale che approssima la
configurazione ottima in modo migliore rispetto al caso precedente con-
sentendo all’algoritmo genetico di concentrarsi sulla sola identificazione
della forma dei tasselli, riducendo lo spazio di ricerca.
L’algoritmo di inizializzazione basato sul preprocessing fornisce in
uscita una lista di circonferenze aventi centri in (cxi, cyi) e raggi ri e riceve
in ingresso tre parametri: rmax, rmin ed rstep con il seguente significato:
• rmax è il massimo raggio delle circonferenze in uscita.
• rmin è il minimo raggio delle circonferenze in uscita.
• rstep identifica la risoluzione che si desidera ottenere rispetto al rag-
gio dei tasselli, in particolare il valore del raggio delle circonferenze
ottenute apparterrà all’insieme
R = {rmin, rmin + rstep, rmin + 2rstep, . . . , rmin +
rmax − rmin
rstep
rstep}
(3.14)
La fase di preprocessing è basata su un semplice algoritmo di blob
detection che utilizza la tecnica delle differenze di gaussiane, di seguito
brevemente descritta.
3.3.3 Differenze di gaussiane
Un metodo basato su forti fondamenti teorici per effettuare blob detection
prevede l’utilizzo di un filtro a convoluzione basato sul seguente kernel,
detto laplaciano della gaussiana normalizzato (LoG):
LoG(x, y, t) t 2
L(x, y, t) (3.15)
in cui L(x, y, t) è una funzione gaussiana avente la seguente forma:
L(x, y, t) =
1
√
2πt
e−x2+y2
2t (3.16)
dove t = σ2 è detto parametro di scala.
Data una funzione f(x, y) : R2 → R rappresentante un’immagine in
scala di grigi, il metodo prevede di identificare come blobs i punti (x, y, t)
corrispondenti ai massimi e minimi locali del risultato del prodotto di
convoluzione
LoG(x, y, t) ∗ f(x, y) (3.17)
3. Descrizione del metodo 14
Il kernel LoG(x, y, t) può essere approssimato dalla differenza di due
funzioni gaussiane aventi deviazioni standard leggermente diverse:
LoG(x, y, t) DoG(x, y, t) L(x, y, t) − L(x, y, t − ∆t) (3.18)
con ∆t > 0.
Dalla 3.18 si può notare che la convoluzione tra il kernel DoG(x, y, t)
e un’immagine può essere effettuata tramite la differenza del risultato
di due applicazioni di un filtro gaussiano, che gode della proprietà di
separabilità. Tale proprietà consente di ridurre il tempo necessario per
effettuare la convoluzione rispetto al caso in cui si utilizzi LoG(x, y, t),
per questo motivo si è preferito utilizzare il primo kernel.
Si fornisce ora una breve dimostrazione del fatto che il kernel DoG(x, y, t)
approssima LoG(x, y, t).
Poiché la gaussiana è soluzione dell’equazione di diffusione
1
2
2
L =
∂L
∂t
(3.19)
si ha che
1
2
2
L(x, y, t) =
∂
∂t
L(x, y, t)
L(x, y, t) − L(x, y, t = t − ∆t)
∆t
=
DoG(x, y, t)
∆t
e quindi
DoG(x, y, t)
1
2
∆t 2
L(x, y, t) (3.20)
In particolare se t = αt con 0 < α < 1 e quindi ∆t = (1 − α)t si ha
che
DoG(x, y, t)
1
2
(1 − α)t 2
L(x, y, t) =
1
2
(1 − α)LoG(x, y, t) (3.21)
e dunque DoG(x, y, t) risulta con un certo grado di approssimazione
proporzionale a LoG(x, y, t).
Effettuare la convoluzione tra un kernel gaussiano L(x, y, t) ed un’al-
tra funzione f(x, y) : R2 → R rappresentante ad esempio un’immagine
in scala di grigi corrisponde intuitivamente ad effettuare un filtraggio
passabasso nelle frequenze spaziali che attenua le features aventi raggio
inferiore a
√
t.
Effettuando la differenza tra due funzioni L(x, y, t1) ed L(x, y, t2 =
t1 − ∆t) con ∆t > 0 si ottiene un kernel che effettua un filtraggio passa-
banda, in particolare fornisce risposte forti in presenza di blobs di colore
scuro di raggio compreso tra
√
t1 e
√
t2.
15 Inizializzazione della griglia
(a) Immagine originale (b) Risultato dell’applicazione del
comando edge
Figura 3.2: Particolare del mosaico university prima e dopo l’applicazione del
comando edge
Come precedentemente detto per localizzare dei blobs di colore scuro
con bordo chiaro nell’immagine originale è possibile andare a ricercare i
massimi locali rispetto ad x, y e alla scala t del risultato della convoluzione
DoG(x, y, t) ∗ f(x, y), ossia
argmaxlocalx,y,tDoG(x, y, t) ∗ f(x, y) (3.22)
Un problema da affrontare per poter utilizzare questo filtro è il fatto di
dover passare da un immagine a colori rappresentabile come una funzione
f : R2 → Rc, dove c rappresenta il numero di dimensioni dello spazio di
colori utilizzato, ad una f : R2 → R avente un singolo valore per pixel.
Questo problema è stato affrontato mediante il comando edge della
libreria ImageMagick, che fornisce in uscita un’immagine in scala di grigi
dove sono evidenziate con colore chiaro le zone in cui è presente un bordo.
Tale approccio appare sensato in quanto in un mosaico tipicamente i bor-
di dei tasselli sono ben definiti. L’effetto passa banda del filtro differenze
di gaussiane permette inoltre di ridurre l’influenza di eventuali bordi spu-
ri dovuti ad imperfezioni sui tasselli aventi dimensione sufficientemente
lontana dell’intervallo di scala di interesse.
Per mettere in relazione la scala t di un massimo locale al parametro di
da fornire in fase di inizializzazione si è assunto che i blob cercati siano di
colore scuro, di forma circolare e aventi un bordo chiaro di spessore molto
minore al raggio. Tali ipotesi derivano dal fatto che si sta elaborando
l’immagine in scala di grigi ottenuta mediante il comando edge.
In queste condizioni il filtro fornisce la risposta massima in posizione
(cx, cy) corrispondente al centro del cerchio e alla scala tale che il contorno
del blob si trova in corrispondenza della curva di forma circolare sulla
quale il kernel presenta valore massimo.
Per individuare il raggio r di questa curva, vista la simmetria radiale
del kernel si può considerare una restrizione dello stesso su una retta
passante per l’origine. In queste condizioni posto σ =
√
t e con α definito
3. Descrizione del metodo 16
precedentemente si ricava che
r = σ
6α2 log( 1
α)
1 − α2
(3.23)
A questo punto per fissare di si è considerata la lunghezza del lato del
quadrato circoscritto ad una circonferenza di raggio r ossia 2r e quella
del lato del quadrato inscritto alla stessa, ossia 2r√
2
e si è scelto
di =
r
2
1 +
1
√
2
(3.24)
ossia pari alla media tra le metà dei lati dei due quadrati precedentemente
descritti. Questa scelta ha dato buoni risultati in seguito a verifiche
sperimentali.
3.3.4 Scelta dei blobs
Da valutazioni sperimentali è emerso che inizializzare la griglia utilizzando
tutti i massimi locali di DoG(x, y, t) ∗ f(x, y) porta ad un numero troppo
elevato di poligoni nella segmentazione. Questo è dovuto al fatto che
l’algoritmo di blob detection fornisce dei falsi positivi in alcune regioni in
corrispondenza del filler ed in corrispondenza di alcune impurità presenti
sui tasselli di dimensioni che rientrano nell’intervallo di scale di interesse.
Per alleviare questo problema è stato implementato il seguente algo-
ritmo:
Si costruisce la lista Lout dei blobs da utilizzare per inizializzare l’al-
goritmo genetico, inizialmente vuota. Un generico elemento di Lout sarà
della forma (x, y, r, g) dove:
• x ed y sono le coordinate del centro del blob.
• r rappresenta il raggio del blob.
• g = g(x, y, t(r)) = DoG(x, y, t(r)) ∗ f(x, y) è la risposta del kernel
in corrispondenza di x,y e r.
Per ogni raggio ri ∈ R si effettua la seguente procedura partendo da
rmin e procedendo in ordine crescente:
1. Si ricava ti da ri utilizzando la 3.23.
2. Si calcola g(x, y, ti) = DoG(x, y, ti) ∗ f(x, y).
3. Si calcola l’insieme Bri delle quadruple (x, y, ri, g) dei massimi locali
rispetto ad x ed y di g(x, y, t(ri)).
17 Descrizione dell’algoritmo genetico
4. Per ogni b = (x, y, ri, g) ∈ Bri e per ogni
b = (x , y , r , g ) ∈ Lout : (x, y) − (x , y ) < β · ri
si effettua la seguente procedura:
(a) se r ≥ r e g > g allora b sostituisce b nella lista Lout.
(b) altrimenti se r > r e g > γ · g allora b sostituisce b nella lista
Lout.
(c) altrimenti se g < g b viene scartato.
se al termine di questi passi b non è stato già inserito in Lout e se
non è stato scartato questo viene inserito in Lout.
Il parametro 0 < β < 1 è finalizzato alla gestione delle intersezioni e
definisce la distanza minima tollerabile tra i centri di due blob in funzione
dei loro raggi.
Il parametro 0 < γ < 1 è finalizzato a dare la preferenza ai blob di
raggio maggiore rispetto a quelli di dimensione minore posti a distanza
non tollerabile dai primi, anche se i secondi presentano un valore legger-
mente superiore di g. Questo per tentare di eliminare eventuali blob spuri
di dimensioni ridotte dovuti ad esempio ad imperfezioni del materiale dei
tasselli. In seguito a verifiche sperimentali si è impostato α = β = 0.9.
3.4 Descrizione dell’algoritmo genetico
La variante di algoritmo genetico utilizzata è NSGA2 [2], che realizza l’ot-
timizzazione multi obiettivo tramite l’ordinamento non-dominato o per
fronti di Pareto. Tale tipo di ordinamento è adatto ad affrontare proble-
mi in cui il numero di componenti della funzione di fitness è maggiore di
uno. In questo caso, poiché Rn con n > 1 risulta privo di una nozione
di ordinamento naturale risulta non immediato ordinare una popolazione
rispetto al grado di ottimalità di ogni individuo.
Al fine di risolvere questo problema si ripartisce la popolazione in una
sequenza di sottoinsiemi Fi detti fronti di Pareto. Se un individuo appar-
tiene a Fi non esistono individui appartenenti a Fj con j ≥ i che domi-
nano il primo, ossia che risultano migliori di questo contemporaneamente
rispetto a tutte le componenti della funzione di fitness.
Esistono diverse varianti di algoritmo genetico che adottano questa
strategia, quella utilizzata in questo lavoro, ossia NSGA2, presenta le
seguenti caratteristiche distintive:
3. Descrizione del metodo 18
• Implementa un algoritmo di ordinamento non dominato efficiente
con complessità computazionale O(MN2) dove M è il numero di
obiettivi ed N è la dimensione della popolazione, complessità in-
feriore rispetto a quella presentata dall’algoritmo di ordinamento
tradizionale di NSGA, ossia O(MN3).
• Mantiene una buona diversità della popolazione durante l’evoluzio-
ne: un algoritmo di ottimizzazione multi obiettivo basato sull’or-
dinamento per fronti di Pareto fornisce in uscita un insieme di so-
luzioni non dominate, è importante che queste presentino un buon
grado di diversità e che siano distribuite uniformemente lungo il
fronte ottimo che caratterizza il problema.
NSGA2 affronta questo aspetto introducendo la cosiddetta crow-
ding distance, che rappresenta per ogni individuo una stima del
perimetro del cuboide avente come vertici il valore della funzione di
fitness vettoriale presentata dei due individui adiacenti allo stesso
rispetto a ciascuno degli obiettivi. Un valore elevato di tale metri-
ca indica che l’individuo considerato si trova in una regione poco
affollata dello spazio della funzione di fitness.
NSGA2 per selezionare gli individui da utilizzare per ottenere la
generazione successiva adotta questi criteri:
1. Se due individui si trovano in diversi fronti di pareto viene
privilegiato quello appartenente al fronte di indice minore (in
questo caso quest’ultimo domina l’altro).
2. Se due individui appartengono allo stesso fronte viene privi-
legiato quello avente crowding distance più elevata, in modo
tale da garantire la diversità all’interno della popolazione.
Questo approccio presenta il vantaggio di non richiedere parametri
all’utente come invece avviene nel caso di NSGA e presenta una
complessità computazionale inferiore rispetto alla strategia utiliz-
zata da quest’ultimo algoritmo.
• Introduzione dell’elitarismo: L’applicazione degli operatori di mu-
tazione e crossover agli individui di una popolazione possono in-
trodurre dei cambiamenti sfavorevoli negli individui migliori di una
popolazione. Al fine di impedire questo fenomeno si introduce il
concetto di elitarismo, che consiste nel trasferire dalla generazione
precedente a quella successiva gli individui migliori senza appor-
tare loro alcuna modifica. Nel caso di una funzione di fitness ad
obiettivo singolo questo processo assicura che l’andamento nel tem-
po del miglior valore della stessa all’interno della popolazione sia
monotono.
19 Descrizione dell’algoritmo genetico
NSGA2 introduce l’elitarismo procedendo nel modo seguente: par-
tendo dall’insieme Pt di dimensione N degli individui della gene-
razione precedente si genera un altro insieme Qt di dimensione N
anch’esso tramite gli operatori di mutazione e crossover. A questo
punto si applica l’algoritmo di ordinamento non dominato all’insie-
me Pt ∪ Qt e si genera la nuova generazione Pt+1 selezionando gli
N individui migliori da Pt ∪ Qt secondo i criteri precedentemente
descritti.
Verranno ora illustrati gli operatori di mutazione e crossover utilizzati
e i loro paramerti.
3.4.1 Operatore di crossover uniforme
Per quanto riguarda il crossover si è utilizzato un operatore di tipo uni-
forme. Data una coppia di individui appartenenti alla generazione pre-
cedente si ottiene un individuo figlio da inserire nella nuova popolazione
operando con questa procedura:
Il gene i-esimo dell’individuo figlio gf
i = (fi1, . . . , fik) si ottiene dai
corrispondenti geni dei genitori g1
i = (p1
i1, . . . , p1
ik) e g2
i = (p2
i1, . . . , p2
ik)
come segue:
fij ←
p1
ij : x ≤ 1
2
p2
ij : x > 1
2
con x ∼ U(0, 1) variabile aleatoria distribuita uniformemente nell’inter-
vallo [0, 1].
3.4.2 Operatore di mutazione uniforme
L’operatore di mutazione uniforme sostituisce il valore del parametro j-
esimo pij del gene i esimo di un individuo come segue:
pij ← u (3.25)
con u ∼ U(pmin
ij , pmax
ij ) variabile aleatoria distribuita uniformemente nel-
l’intervallo di validità Pij = pmin
ij , pmax
ij del parametro pij.
Si utilizza questo operatore per garantire una buona esplorazione dello
spazio di ricerca riducendo la possibilità che un parametro converga ad
un minimo locale non ottimo.
3.4.3 Operatore di mutazione gaussiano
L’operatore di mutazione gaussiano sostituisce il valore del parametro
j-esimo pij del gene i esimo di un individuo come segue:
pij ← pij + g (3.26)
3. Descrizione del metodo 20
con g ∼ N(0, σij) variabile aleatoria di distribuzione normale a media
nulla e con deviazione standard σij definita in fase di inizializzazione.
Al termine di questa operazione si assicura che pij appartenga all’in-
tervallo di validità Pij = pmin
ij , pmax
ij aggiornandolo come segue:
pij ←



pmin
ij : pij < pmin
ij
pmax
ij : pij > pmax
ij
pij altrimenti
Si utilizza questo operatore per apportare aggiustamenti fini ai para-
metri.
La nuova popolazione viene originata ottenendo nuovi individui par-
tendo dalla popolazione precedente utilizzando i tre operatori preceden-
temente descritti con probabilità diverse. In particolare un nuovo indi-
viduo viene ottenuto attraverso l’operatore di crossover con probabilità
pcr = 0.8, attraverso l’operatore di mutazione uniforme con probabilità
pu = 0.1 ed attraverso l’operatore di mutazione gaussiana con probabi-
lità pg = 0.1. La probabilità che un parametro p appartenente al gene
i-esimo subisca una mutazione vale 2
|S|·|g| , dove |S| rappresenta il numero
di poligoni presenti nella segmentazione e |g| è il numero di parametri
contenuti in un gene. I valori di tali probabilità sono stati impostati in
seguito ad analisi sperimentale.
La selezione degli individui ai quali applicare gli operatori per ottenere
la nuova popolazione avviene secondo quanto specificato dall’algoritmo
NSGA2.
3.5 Scelta delle segmentazioni risultanti
L’algoritmo NSGA2 fornisce in uscita un insieme di soluzioni che corri-
spondono al primo fronte di Pareto F1 ottenuto dopo l’ultima generazione
calcolata.
Risulta dunque necessario selezionare quali soluzioni fornire in uscita
dall’algoritmo di segmentazione all’interno di tale fronte. Si è risolto
questo problema decidendo di fornire come risultato le segmentazioni SI
ed SO caratterizzate rispettivamente dalla migliore in ed out-tile color
dissimilarity presenti all’interno di F1.
3.6 Gestione delle intersezioni
L’algoritmo precedentemente descritto non esclude la possibilità che due
poligoni appartenenti alla segmentazione abbiano intersezione non vuo-
ta. Tale fenomeno ovviamente non si verifica nell’immagine originale in
21 Gestione delle intersezioni
quanto ogni pixel appartiene al più ad un singolo tassello e quindi va
evitato.
Allo stato attuale le intersezioni non sono state gestite nel corso dell’e-
voluzione ma bensì a posteriori mediante un algoritmo di postprocessing
basato su tecniche di programmazione lineare.
Tale algoritmo riceve in ingresso una segmentazione e fornisce come
risultato una seconda segmentazione ottenuta dalla prima rimuovendo dei
poligoni in modo tale da risolvere il problema delle intersezioni, ottimiz-
zando contemporaneamente una funzione obbiettivo lineare descritta nel
seguito.
3.6.1 Variabili decisionali
Si associa una variabile decisionale binaria xi al poligono i-esimo apparte-
nente alla segmentazione: se xi vale uno il poligono viene conservato nella
segmentazione fornita in output, in caso contrario questo viene scartato.
3.6.2 Funzione obiettivo
Per gestire le intersezioni sono state sperimentate due diverse funzioni
obiettivo:
• Massimizzazione della out-tile color dissimilarity: Viene mas-
simizzata la somma degli indicatori out-tile color dissimilarity Oi
dei tasselli non scartati:
f1 : max
i
Oixi (3.27)
• Massimizzazione dell’area totale ricoperta: Viene massimiz-
zata la somma delle aree Ai dei tasselli non scartati:
f2 : max
i
Aixi (3.28)
3.6.3 Vincoli
Oltre al vincolo di interezza delle variabili decisionali si introduce un’altra
famiglia di vincoli finalizzata alla gestione delle intersezioni.
In seguito a verifiche sperimentali è emerso che proibire completamen-
te le intersezioni tra i poligoni delle segmentazioni ottenute dall’algoritmo
genetico comporta la perdita di un numero troppo elevato di tasselli. Si
è deciso dunque di consentire che due tasselli abbiano intersezione non
vuota purché il massimo rapporto tra l’area dell’intersezione e quella dei
3. Descrizione del metodo 22
due tasselli sia inferiore ad un certo parametro α. In seguito ad ana-
lisi sperimentali si è concluso che utilizzare α = 0.1 porta a risultati
soddisfacenti.
La condizione sopra descritta può essere formalizzata dalla seguente
funzione:
c(i, j) =
1 : max(
Ai∩j
Ai
,
Ai∩j
Aj
) > α
0 altrimenti
dove Ai rappresenta l’area del poligono i-esimo, Aj l’area del poligono
j-esimo, ed Ai∩j l’area dell’intersezione dei due poligoni sopra citati.
Utilizzando tale funzione è possibile associare al poligono i-esimo pi
l’insieme Si degli indici dei poligoni che che presentano un’area dell’in-
tersezione con pi non soddisfacente secondo il criterio precedentemente
descritto:
Si = {j : c(i, j) = 1, i = j} (3.29)
Si impone ora la seguente famiglia di vincoli:
∀i xi = 1 =⇒
j∈Si
xj = 0 (3.30)
che impone la condizione che se il poligono pi non viene scartato tutti
i poligoni che presentano un’area dell’intersezione non soddisfacente con
pi devono essere scartati.
Tale condizione può essere rappresentata mediante vicoli lineari nel
modo seguente:
Si associa ad ogni xi un’altra variabile decisionale binaria yi che
rappresenta la negazione binaria di xi:
yi =
1 : xi = 0
0 : xi = 1
il che è esprimibile dalla famiglia di vincoli
∀i xi + yi = 1 (3.31)
I vincoli 3.30 possono essere ora rappresentati nel modo seguente:
∀i
j∈Si
xj − |Si| yi ≤ 0 (3.32)
dove |Si| rappresenta la cardinalità dell’insieme Si.
23 Implementazione ed ottimizzazioni
3.7 Implementazione ed ottimizzazioni
3.7.1 Strumenti utilizzati
Durante questo lavoro sono state utilizzate le seguenti librerie open-
source:
• OpenBeagle1: Libreria general-purpose per l’ottimizzazione gene-
tica.
• ImageMagik2: Libreria per la manipolazione delle immagini.
• lp_solve3: Solver per problemi di programmazione lineare.
3.7.2 Working sets
Un’ottimizzazione introdotta è quella di consentire che l’algoritmo ge-
netico apporti modifiche ad ogni generazione tramite mutazione e cros-
sover solamente ad un sottoinsieme ristretto dei poligoni della segmen-
tazione. Tale sottoinsieme, denominato working set, viene cambiato
periodicamente dopo un numero prefissato di generazioni.
Più formalmente dato il cromosoma di un individuo C = (g1, . . . , gn),
dove gi è un generico gene appartenente ad esso, il working set corrente
è un sottoinsieme Wk = (gk, . . . , gk∗ ) ⊆ C, k∗ = min(n, k + lws − 1) dove
lws è la dimensione del working set, parametro configurabile dall’utente.
Il fatto che il working set sia costituito da un sottoinsieme di geni
aventi indici consecutivi non implica necessariamente che i poligoni otte-
nuti esprimendo gli stessi siano vicini nella segmentazione. Questo fatto
si verifica ad esempio se la segmentazione è stata inizializzata in modo
uniforme e i poligoni appartengono tutti ad una stessa riga, ma non si
verifica se la griglia è stata inizializzata tramite preprocessing.
Il working set corrente viene aggiornato ogni nws generazioni dove
nws è un parametro configurabile dall’utente, l’aggiornamento avviene
nel modo seguente:
k ← ((k − 1 + lws/2 ) mod n) + 1 (3.33)
3.7.3 Manipolazione dei poligoni
L’operazione che ha il maggior impatto sul tempo di esecuzione dell’algo-
ritmo è il calcolo degli indicatori in ed out-tile dissimilarity dei tasselli. Si
1
https://github.com/chgagne/beagle
2
http://www.imagemagick.org/
3
http://lpsolve.sourceforge.net/
3. Descrizione del metodo 24
è quindi cercato di ottimizzare il più possibile la parte di codice finalizzata
ad effettuare un ciclo sui pixel interni ad un poligono.
Dato un poligono p = {v1, . . . , vk} rappresentato come una lista di
vertici vi = (xi, yi) ordinata in senso orario si procede nel modo seguente:
1. Si individuano due vertici vt, vb ∈ p tali che yt >= yi ∀i e yb <=
yi ∀i ed aventi le coordinate xt e xb rispettivamente minima e
massima possibile.
2. Si suddivide il contorno del poligono in due due spezzate sl ed sr
aventi come estremi i vertici vt e vb tali che per ogni punto p ∈ sl
e q ∈ sr sia verificata la condizione xp ≤ xq. A questo punto
si rimuovono eventuali segmenti orizzontali da sl ed sr in modo
tale che ciascuna contenga uno ed un solo punto r con xr = y
∀y ∈ [yb, yt]. Le operazioni precedenti sono possibili se e solo se il
poligono considerato contiene tutti i segmenti orizzontali che hanno
come estremi punti appartenenti ad esso, condizione che è valida in
particolare per i poligoni convessi.
3. ∀¯y ∈ [yb, yt] ∩ N si individuano i punti l ∈ sl e r ∈ sr aventi coor-
dinate yr = yl = ¯y e si effettua un ciclo sui punti aventi coordinate
(x, ¯y) con x ∈ [xl, xr] ∩ N.
Procedendo in questo modo si visitano i punti interni al poligono per
righe, ossia allo stesso modo in cui l’immagine è memorizzata, questo
porta ad una riduzione dei tempi di accesso alla memoria dovuti ad un
migliore sfruttamento delle cache. Per individuare i punti l ed r si può
considerare il fatto che ∀y questi apparterranno a due segmenti distinti,
il primo appartenente alla spezzata sl ed il secondo a sr. Le coordinate l
ed r sono calcolabili in modo efficiente a partire dal coefficiente angolare
e dall’ordinata all’origine delle rette che contengono tali segmenti.
3.7.4 Manipolazione dei pixel
Per manipolare i pixel sono state utilizzate le estensioni SSE presenti sulla
maggior parte delle CPU moderne con architettura x86 oppure x86_64.
Tali estensioni prevedono la presenza di una serie di registri general pur-
pose di grandi dimensioni (128 bit e oltre) che consentono l’esecuzione di
istruzioni di tipo SIMD (Single Instruction Multiple Data).
Questi registri possono essere utilizzati per svolgere una stessa ope-
razione in maniera parallela tra più dati contenuti all’interno degli stessi.
Ad esempio su un registro a 128 bit è possibile caricare 4 numeri floating-
point a 32 bit ed eseguire in parallelo una stessa operazione aritmetica
per ognuno di essi utilizzando un numero di cicli di clock inferiore rispetto
al caso sequenziale.
25 Implementazione ed ottimizzazioni
Tali estensioni sono state utilizzate in questo lavoro per calcolare in
modo efficiente la media del colore dei pixel appartenenti ad una deter-
minata regione, operazione realizzabile mediante una somma parallela su
ciascuno dei canali di colore.
3.7.5 Caching
Come precedentemente detto l’operazione che ha il maggior impatto sul
tempo di esecuzione dell’algoritmo è il calcolo degli indicatori in ed out-
tile dissimilarity dei tasselli. Al fine di migliorare la performance è stata
introdotta una strategia di caching di tali indicatori che agisce nel modo
seguente:
• Ogni qual volta si apportano delle modifiche ad un tassello tramite
mutazione e crossover questo fatto viene memorizzato mediante un
apposito flag.
• Ogni qual volta si calcolano gli indicatori per un tassello questi
vengono salvati e il flag di modifica viene resettato.
• L’aggiornamento degli indicatori viene effettuato solamente se il
tassello è stato modificato dopo l’ultima volta che questi sono sta-
ti calcolati (fatto segnalato dal flag sopra citato), altrimenti si
riutilizzano i valori salvati precedentemente.
Capitolo 4
Procedura sperimentale
L’algoritmo ottenuto è stato confrontato sperimentalmente con gli stessi
algoritmi ed utilizzando le stesse metriche considerate in [3] su una se-
rie di mosaici per i quali è disponibile una segmentazione ground truth
ricavata manualmente. Vengono ora descritte brevemente le metriche di
valutazione.
4.1 Metriche di valutazione
La valutazione di una segmentazione RI rispetto ad una segmentazione
ground truth TI viene effettuata mediante quattro indicatori che quanti-
ficano in che misura vengono soddisfatti i seguenti requisiti:
• Il numero di tasselli presenti in RI deve essere più vicino possibile
al valore che caratterizza TI.
• I tasselli di RI devono contenere tutti e soli i pixel presenti contenuti
nei tasselli di TI.
4.1.1 Errore sul conteggio
L’errore sul conteggio è definito come segue:
Count(RI, TI) =
abs(|TI| − |RI|)
|TI|
(4.1)
e rappresenta il rapporto tra il valore assoluto della differenza del numero
di tasselli presenti nella segmentazione RI e il numero di tasselli presenti
nella ground truth TI rispetto a quest’ultimo valore.
27
4. Procedura sperimentale 28
4.1.2 Precision
L’indicatore precision è definito come segue:
Prec(RI, TI) =
1
|TI|
T∈Ti
maxR∈RI
|R ∩ T|
|R|
(4.2)
Questo indicatore esprime quantitativamente il requisito che i tasselli
della segmentazione devono contenere solo pixel appartenenti alle tessere
di TI.
R3
T
R2
R1
Figura 4.1: Illustrazione grafica dei poligoni coinvolti nel calcolo dell’indicatore
precision per un tassello della ground truth
In figura 4.1 si illustra graficamente la selezione dei tasselli che contri-
buiscono all’indicatore precision per un tassello T della ground truth: è
stato evidenziato in blu il tassello la cui area si trova al denominatore nel
rapporto dell’equazione 4.2. Tra i tasselli Ri appartenenti alla segmenta-
zione da valutare quello che presenta intersezione massima con T e che
è l’unico che contribuisce all’indice è stato rappresentato con il contorno
continuo.
4.1.3 Recall
Rec(RI, TI) =
1
|TI|
T∈Ti
maxR∈RI
|R ∩ T|
|T|
(4.3)
Questo indicatore esprime quantitativamente il requisito che i tasselli
della segmentazione devono contenere tutti i pixel appartenenti ai tasselli
di TI.
29 Metriche di valutazione
R3
T
R2
R1
Figura 4.2: Illustrazione grafica dei poligoni coinvolti nel calcolo dell’indicatore
recall per un tassello della ground truth
In figura 4.2 si illustra graficamente la selezione dei tasselli che con-
tribuiscono all’indicatore recall per un tassello T della ground truth, con
significato dei simboli analogo al caso della figura 4.1.
4.1.4 F-Measure
Fm(RI, TI) = 2
Prec(RI, TI)Rec(RI, TI)
Prec(RI, TI) + Rec(RI, TI)
(4.4)
La f-measure è la media armonica degli indicatori precision e recall.
Questo parametro riassume in un unico valore i primi due ed esprime
qualitativamente il requisito che una buona segmentazione deve conte-
nere tutti e soli i pixel che appartengono ai tasselli della ground truth.
La f-measure è influenzata maggiormente dal peggiore tra i valori degli
indicatori precision e recall.
Al fine di giudicare la bontà di una segmentazione è necessario con-
siderare contemporaneamente almeno i valori dell’errore sul conteggio e
della f-measure: tali valori se considerati singolarmente non forniscono
infatti informazioni significative sulla qualità della stessa. Per convincer-
si di questo fatto si può considerare ad esempio il caso in cui si confronti
la ground truth di un mosaico con se stessa: in questo caso la f-measure
vale 1, che è il massimo valore consentito. A questo punto se si aggiun-
gono arbitrariamente tasselli ad una delle due segmentazioni il valore di
tale parametro non cambia ma la qualità della segmentazione decresce, è
tuttavia possibile accorgersi di questo fatto se si considera anche l’errore
sul conteggio.
4. Procedura sperimentale 30
4.2 Obiettivi
La procedura sperimentale è finalizzata a valutare l’influenza dei diversi
parametri sulla qualità delle segmentazioni risultanti espressa in termini
delle metriche sopra descritte e sul tempo di esecuzione, oltre che a con-
frontare l’algoritmo ottenuto tramite questo lavoro con quelli valutati nel
paper [3].
Nello specifico gli obiettivi di questa analisi sono i seguenti:
• Verificare se l’algoritmo genetico è efficace nell’ottimizzare la fun-
zione obiettivo.
• Valutare se esiste correlazione tra l’andamento rispetto al numero
di generazione della funzione di fitness e le metriche oggettive per
la valutazione delle segmentazioni precedentemente descritte.
• Valutare l’influenza della dimensione della popolazione sulla qualità
delle segmentazioni e sul tempo di esecuzione.
• Confrontare in termini di qualità delle segmentazioni e tempo di
esecuzione il caso in cui si utilizzi la modalità di esecuzione basata
sui working sets e quello in cui si consente di modificare l’intera
griglia ad ogni generazione.
• Valutare la variabilità delle soluzioni all’interno del fronte di Pareto
al termine dell’evoluzione e verificare se la scelta delle segmentazioni
da fornire come output è opportuna.
• Valutare come la procedura di gestione delle intersezioni impatta
sulle metriche di valutazione e sulla qualità empirica delle segmen-
tazioni.
• Valutare l’influenza del formato del genotipo sulle metriche di va-
lutazione e sulla qualità empirica delle segmentazioni.
• Confrontare la modalità di inizializzazione della griglia uniforme
rispetto a quella basata sull’algoritmo di preprocessing.
• Confrontare i risultati ottenuti utilizzando i migliori parametri con
quelli degli altri algoritmi considerati nel paper [3].
4.3 Organizzazione
La procedura è stata organizzata nel modo seguente: sono state identifi-
cate delle varianti dell’algoritmo da valutare, dove per varianti si intende
un insieme di parametri di configurazione.
31 Organizzazione
Per ogni mosaico tra quelli considerati dal paper [3] e per ogni variante
sono state effettuate tre esecuzioni dell’algoritmo ciascuna con random
seed diverso.
Ognuna delle esecuzioni produce come risultato tre gruppi di segmen-
tazioni di seguito descritti:
1. Segmentazioni caratterizzate rispettivamente dalla migliore out ed
in-tile color dissimilarity all’interno del fronte di Pareto (in totale
due segmentazioni).
2. Segmentazioni caratterizzate rispettivamente dai migliori e peggiori
valori degli indicatori precision, recall, f-measure riscontrati all’in-
terno del fronte di Pareto (in totale sei segmentazioni). Questo
gruppo di segmentazioni è ottenibile solo avendo a disposizione la
ground truth associata al mosaico.
3. Per ognuna delle due segmentazioni appartenenti al gruppo 1 sono
state ottenute altre due segmentazioni applicando l’algoritmo di ge-
stione delle intersezioni utilizzando ciascuna delle funzioni obiettivo
descritte nella sezione 3.6.2 (in totale quattro segmentazioni).
Ciascuna delle segmentazioni ottenute è stata poi valutata rispetto alla
ground truth relativa al mosaico considerato.
La tabella seguente elenca le varianti testate e per ognuna di esse i
parametri che la contraddistingue:
Tabella 4.1: Varianti e relativi parametri
Variante Modalità
Dimensione
pop.
Preprocessing
Formato
poligoni
1 griglia intera 20 si rettangoli
2 griglia intera 20 si q. convessi
3 griglia intera 20 no q. convessi
4 griglia intera 100 si q. convessi
5 griglia intera 20 no rettangoli
6 griglia intera 50 si q. convessi
7 working sets 20 no rettangoli
dove la colonna Modalità indica se nella variante è stata utilizzata
l’ottimizzazione dei working sets oppure è stata consentita l’evoluzione
dell’intera griglia ad ogni generazione.
4. Procedura sperimentale 32
4.3.1 Random seed
Per ogni esecuzione è stato utilizzato un random seed differente: in am-
biente Linux la libreria di ottimizzazione genetica utilizzata inizializza il
proprio generatore di numeri pseudo-casuali con un seme ottenuto dal
file di dispositivo /dev/random. Tale file viene impiegato dal kernel
come interfaccia per fornire alle applicazioni sequenze casuali ad alta en-
tropia ottenute in vari modi, ad esempio utilizzando rumore proveniente
dai dispositivi di input, da connessioni di rete ed altro.
Capitolo 5
Risultati
Vengono ora esposti i dati ottenuti dalle analisi relative a ciascun obiettivo
della procedura sperimentale.
5.1 Efficacia dell’algoritmo
Si illustrano ora dei risultati utili a chiarire se l’algoritmo genetico è effica-
ce nell’ottimizzare la funzione di fitness e se esiste correlazione tra l’anda-
mento della stessa e le metriche di valutazione oggettive precedentemente
esposte.
5.1.1 Andamento della funzione di fitness
Per valutare se l’algoritmo è efficace nello svolgere il processo di ottimizza-
zione degli obiettivi della funzione di fitness sono stati ricavati dei grafici
che mostrano l’andamento rispetto al numero delle generazioni delle due
componenti della stessa. Per motivi legati alla semplicità di implemen-
tazione si è impostato il problema come un problema di minimo rispetto
ad entrambi gli obiettivi e si quindi cambiato di segno il valore dell’indice
out-tile color dissimilarity, che va massimizzato.
Si riportano ora gli andamenti tipici del valor medio sulla popolazione
dei due indicatori riguardanti un’esecuzione sul mosaico university nella
quale la griglia è stata inizializzata tramite preprocessing.
33
5. Risultati 34
0 2000 4000 6000 8000
-0.25
-0.24
-0.23
-0.22
-0.21
-0.2
-0.19
-0.18
Generation
Out-TileDissimilarity
Out-Tile Dissimilarity
Ground truth Out-Tile Dissimilarity
Figura 5.1: Esempio di andamento della out-tile color dissimilarity (cambiata
di segno) per un esecuzione riguardante il mosaico university
0 2000 4000 6000 8000
0.14
0.16
0.18
0.2
0.22
0.24
0.26
Generation
In-TileDissimilarity
In-Tile Dissimilarity
Ground truth In-Tile Dissimilarity
Figura 5.2: Esempio di andamento della in-tile color dissimilarity per un
esecuzione riguardante il mosaico university
Le serie di dati denominate “Ground truth Out-Tile Dissimilarity”
e “Ground truth In-Tile Dissimilarity” rappresentano il valore di tali
parametri riscontrato sulla ground truth.
Dai grafici si può notare che l’andamento dei due obiettivi rispetto al
numero di generazioni è in buona approssimazione monotono decrescente
e che converge ad un valore limite, questo fatto è stato riscontrato per
tutte le esecuzioni.
Si può notare inoltre che i valori della funzione di fitness caratteriz-
zanti la ground truth vengono raggiunti e superati dai parametri medi
corrispondenti presenti all’interno della popolazione. Questo fatto si ve-
rifica in modo particolare nei casi in cui si è utilizzato l’algoritmo di
35 Efficacia dell’algoritmo
0 10000 20000 30000 40000 50000 60000
-0.35
-0.3
-0.25
-0.2
-0.15
-0.1
-0.05
Generation
Out-TileDissimilarity
Out-Tile Dissimilarity
Ground truth Out-Tile Dissimilarity
0 10000 20000 30000 40000 50000 60000
0.25
0.3
0.35
0.4
0.45
0.5
0.55
Generation
In-TileDissimilarity
In-Tile Dissimilarity
Ground truth In-Tile Dissimilarity
Figura 5.3: Andamento tipico dei valori della funzione di fitness nel caso in
cui la griglia venga inizializzata in modo uniforme
preprocessing per inizializzare la griglia. Nel caso in cui si utilizzi l’algo-
ritmo di inizializzazione uniforme l’algoritmo converge invece a dei valori
peggiori di tali parametri, come si vede in figura 5.3, ma l’andamento
risulta comunque monotono.
Da tali considerazioni si può concludere che l’algoritmo genetico ri-
sulta efficace nello svolgere il processo di ottimizzazione.
5.1.2 Correlazione tra funzione di fitness e metriche di
valutazione
Per valutare se esiste correlazione tra l’andamento della funzione di fitness
e quello delle metriche di valutazione sono stati ottenuti dei grafici che
mostrano l’andamento rispetto al numero della generazione delle stesse
riguardanti la soluzione che presenta la migliore out-tile dissimilarity al-
l’interno del fronte di Pareto, tali grafici sono stati confrontati con quelli
che mostrano l’andamento della funzione di fitness.
Si illustra ora l’andamento tipico riscontrato nel caso in cui la griglia
dei tasselli venga inizializzata in maniera uniforme, in figura 5.3 e 5.4 si
mostrano rispettivamente gli andamenti della funzione di fitness e delle
metriche di valutazione per un’esecuzione rappresentativa riguardante il
mosaico bird.
Dai grafici si nota che esiste una buona correlazione tra l’andamen-
to della funzione di fitness e tutte le metriche di valutazione oggettiva
(l’indicatore count è stato trascurato in quanto rimane costante duran-
te l’evoluzione), in quanto queste ultime presentano tutte un andamento
monotono crescente al trascorrere delle generazioni. Questa correlazione
si riscontra in quasi tutti i casi in cui si utilizza l’inizializzazione uniforme.
Consideriamo ora il caso in cui la griglia dei tasselli venga inizializzata
mediante l’algoritmo di preprocessing.
Oltre agli andamenti aventi la tipologia descritta nel caso precedente,
ossia crescita pressoché monotona di tutte le metriche di valutazione,
5. Risultati 36
0 10000 20000 30000 40000 50000 60000
0.46
0.47
0.48
0.49
0.5
0.51
0.52
Generation
Precision
0 10000 20000 30000 40000 50000 60000
0.6
0.605
0.61
0.615
0.62
0.625
Generation
Recall
0 10000 20000 30000 40000 50000 60000
0.52
0.53
0.54
0.55
0.56
0.57
0.58
Generation
F-Measure
Figura 5.4: Andamento tipico delle metriche di valutazione nel caso in cui la
griglia venga inizializzata in modo uniforme
0 10000 20000 30000 40000 50000
-0.3
-0.28
-0.26
-0.24
-0.22
-0.2
-0.18
-0.16
Generation
Out-TileDissimilarity
Out-Tile Dissimilarity
Ground truth Out-Tile Dissimilarity
0 10000 20000 30000 40000 50000
0.24
0.26
0.28
0.3
0.32
0.34
0.36
Generation
In-TileDissimilarity
In-Tile Dissimilarity
Ground truth In-Tile Dissimilarity
Figura 5.5: Andamento dei valori della funzione di fitness nel caso in cui la
griglia venga inizializzata tramite preprocessing
37 Efficacia dell’algoritmo
0 10000 20000 30000 40000 50000
0.66
0.665
0.67
0.675
0.68
Generation
Precision
0 10000 20000 30000 40000 50000
0.635
0.64
0.645
0.65
0.655
0.66
Generation
Recall
0 10000 20000 30000 40000 50000
0.655
0.656
0.657
0.658
0.659
0.66
Generation
F-Measure
Figura 5.6: Andamento delle metriche di valutazione nel caso in cui la griglia
venga inizializzata tramite preprocessing
in questo caso si verificano anche gli andamenti riportati in figura 5.5
e 5.6, da cui si nota un incremento dell’indicatore precision a discapito
dell’indicatore recall, il che fa si che la f-measure risultante non vari di
molto durante al trascorrere delle generazioni. Il valore di tale parametro
risulta comunque significativamente superiore al caso precedente, fatto
confermato anche dalle analisi riportate in seguito.
Il fenomeno dell’incremento della metrica precision a discapito di re-
call è dovuto probabilmente al fatto che solitamente i tasselli presenti
nelle segmentazioni ottenute dall’algoritmo sono interamente contenuti
all’interno delle corrispondenti tessere della ground truth. Questo fatto
implica che i primi catturano nella maggior parte dei casi solo pixel ap-
partenenti alle tessere del mosaico ma non tutti i pixel appartenenti alle
stesse.
L’intervallo di variazione di tali metriche risulta più ristretto rispetto
al caso precedente in quanto utilizzando il preprocessing la configurazione
iniziale è più vicina a quella ottima.
Complessivamente si può concludere che la correlazione tra l’anda-
mento della funzione di fitness e quella delle metriche di valutazione è
soddisfacente e che gli indicatori in ed out-tile color dissimilarity rappre-
sentano dei buoni obiettivi da ottimizzare per effettuare la segmentazione
di un mosaico.
5. Risultati 38
5.2 Modalità di evoluzione
In questa sezione si espongono i risultati del confronto tra la modalità di
evoluzione basata sui working sets e quella che prevede che possano essere
apportate modifiche all’intera griglia di tasselli ad ogni generazione.
Per effettuare questo confronto sono stati considerati i dati riguardanti
le seguenti varianti:
Tabella 5.1: Varianti utilizzate per il confronto tra le due modalità di
evoluzione
Variante Modalità
Dimensione
pop.
Preprocessing
Formato
poligoni
5 griglia intera 20 no rettangoli
7 working sets 20 no rettangoli
Si espongono ora i risultati ottenuti:
Tabella 5.2: Confronto tra le due modalità di evoluzione
Mosaico Mod. Evoluzione Prec Rec Fm T (s)
bird full 49.5 64.5 56.0 9608
ws 48.4 63.8 55.0 8905
church full 42.6 64.2 51.2 8908
ws 41.2 64.4 50.2 8685
flower full 60.3 62.5 61.4 10253
ws 57.8 59.5 58.6 10335
museum full 48.4 72.5 58.1 197
ws 48.0 69.9 56.9 188
university full 36.2 63.6 46.2 95
ws 36.4 64.6 46.5 100
I valori presenti in tabella sono ottenuti effettuando delle medie sulle
diverse esecuzioni e sulle segmentazioni appartenenti al gruppo 1.
La colonna “Mod. Evoluzione” identifica la modalità di evoluzione
utilizzata ed i suoi valori hanno il seguente significato:
full Si consente di apportare modifiche all’intera griglia di tasselli ad ogni
generazione.
39 Gestione delle intersezioni
ws Si utilizza il metodo basato sui working sets.
Dai dati si osserva che usando il metodo basato su working sets si
riscontra una leggera riduzione del tempo di esecuzione a scapito di una
diminuzione degli indicatori utilizzati nella valutazione, per questo motivo
si è preferito utilizzare la modalità di esecuzione full per le altre varianti
considerate.
5.3 Gestione delle intersezioni
Per valutare l’influenza della gestione delle intersezioni sulla qualità delle
segmentazioni sono stati considerati contemporaneamente i dati prove-
nienti da tutte le varianti testate. I risultati in tabella riguardano i valori
ottenuti dalla valutazione delle segmentazioni appartenenti ai gruppi 1 e
3, ossia le segmentazioni aventi migliore in ed out-tile color dissimilarity
presenti all’interno del fronte di Pareto e le segmentazioni ottenute da
queste mediante gestione delle intersezioni.
Tabella 5.3: Confronto tra le varie modalità di gestione delle intersezioni
Mosaico Gestione Int. Count Prec Rec Fm
bird max Area 0.20 49.4 50.2 49.7
max OTD 0.18 49.7 48.8 49.1
nessuna 0.29 59.9 63.5 61.3
church max Area 0.33 40.3 47.9 43.7
max OTD 0.31 40.2 46.3 42.8
nessuna 0.09 49.0 61.3 54.1
flower max Area 0.21 59.4 48.2 53.1
max OTD 0.20 59.1 47.2 52.4
nessuna 0.19 67.2 57.1 61.5
museum max Area 0.25 56.2 57.4 56.2
max OTD 0.25 55.7 55.8 55.3
nessuna 0.04 63.0 67.8 64.5
university max Area 0.27 50.4 55.3 52.1
max OTD 0.28 49.5 52.9 50.3
nessuna 0.19 55.9 65.9 59.3
I parametri in tabella costituiscono le medie rispetto alle esecuzioni e
alle varianti.
5. Risultati 40
Dai dati si riscontra in generale una diminuzione degli indicatori pre-
cision, recall e di conseguenza f-measure in seguito all’applicazione dell’al-
goritmo di gestione delle intersezioni. Questo è dovuto al fatto che i primi
due indici sono ottenuti mediante degli operatori di massimo sui tasselli:
per ogni tassello della ground truth è solamente il poligono appartenente
alla segmentazione da valutare che presenta il massimo valore dell’area
dell’intersezione con il primo che da un contributo non nullo all’indice,
chiamiamo M l’insieme dei poligoni aventi questa propietà. Rimuovendo
un poligono possono verificarsi due casi: se questo appartiene a M si veri-
ficherà una diminuzione degli indici, in caso contrario questi rimarranno
invariati. In ogni caso il loro valore dopo l’applicazione dell’algoritmo
sarà minore o uguale a quello di partenza.
Le considerazioni sopra citate non valgono invece per l’errore di con-
teggio: il valore di tale indice può infatti migliorare se nella segmentazione
considerata sono presenti più tasselli rispetto alla ground truth, cosa che
si verifica nel caso del mosaico bird.
5.4 Dimensione della popolazione
Per valutare l’influenza della dimensione della popolazione sono stati
confrontati i dati relativi alle seguenti varianti:
Tabella 5.4: Varianti utilizzate per stimare l’influenza della dimensione della
popolazione
Variante Modalità
Dimensione
pop.
Preprocessing
Formato
poligoni
2 griglia intera 20 si q. convessi
6 griglia intera 50 si q. convessi
4 griglia intera 100 si q. convessi
Dalla tabella si osserva che tutti i parametri sono stati mantenuti
costanti eccetto la dimensione della popolazione.
Si riportano di seguito i risultati ottenuti in termini di metriche di
valutazione e tempo di esecuzione per i vari mosaici.
41 Fronte di Pareto
Tabella 5.5: Influenza della dimensione della popolazione sulle metriche di
valutazione
Mosaico Dim. Pop. Prec Rec Fm T (s)
bird 20 67.6 63.5 65.4 6982
50 67.7 63.3 65.5 18936
100 68.3 63.0 65.5 37051
church 20 53.8 59.7 56.6 7179
50 54.4 58.3 56.3 17910
100 54.8 57.8 56.3 37258
flower 20 73.4 56.8 64.1 5732
50 73.4 54.5 62.5 14000
100 73.9 52.6 61.5 28662
museum 20 74.0 66.0 69.8 216
50 74.3 67.5 70.7 607
100 74.2 66.6 70.2 1222
university 20 70.2 66.6 68.3 223
50 71.0 67.2 69.1 635
100 71.6 67.1 69.3 1184
I valori riportati in tabella si riferiscono alla media degli indicatori
effettuata sulle varie esecuzioni e sulle segmentazioni appartenenti al pri-
mo gruppo (migliore in ed out-tile dissimilarity senza l’applicazione della
gestione delle intersezioni).
Dai risultati si evince che il valore dell’indicatore precision tende ad
aumentare a discapito dell’indicatore recall al crescere della dimensione
della popolazione. Questo fatto fa si che l’andamento del parametro f-
measure risultante rimanga pressoché costante in media. Si riscontra
inoltre che il tempo di esecuzione aumenta in modo lineare rispetto alla
dimensione della popolazione.
5.5 Fronte di Pareto
Per valutare come le soluzioni ottenute sono distribuite all’interno del
fronte di Pareto sono stati considerati i dati ottenuti da tutte le varianti
testate. Si riportano i risultati nella seguente tabella
5. Risultati 42
Tabella 5.6: Distribuzione delle soluzioni all’interno del fronte di Pareto
Mosaico Soluzione Count Prec Rec Fm
bird Max Fm 0.29 59.9 63.7 61.4
Min ITD 0.29 60.0 63.2 61.2
Max OTD 0.29 59.7 63.8 61.3
Min Fm 0.29 59.8 63.4 61.2
church Max Fm 0.09 49.0 61.5 54.2
Min ITD 0.09 49.1 61.0 54.1
Max OTD 0.09 48.9 61.6 54.1
Min Fm 0.09 48.9 61.2 54.0
flower Max Fm 0.19 67.2 57.5 61.7
Min ITD 0.19 67.4 56.8 61.4
Max OTD 0.19 67.1 57.4 61.5
Min Fm 0.19 67.3 56.9 61.3
museum Max Fm 0.04 63.2 68.4 64.8
Min ITD 0.04 63.4 67.2 64.4
Max OTD 0.04 62.7 68.4 64.5
Min Fm 0.04 63.0 67.4 64.2
university Max Fm 0.19 56.1 66.5 59.6
Min ITD 0.19 56.1 65.4 59.1
Max OTD 0.19 55.8 66.5 59.4
Min Fm 0.19 55.8 65.5 59.0
I valori in tabella si riferiscono alle medie rispetto alle esecuzioni, ed
effettuate sulle segmentazioni identificate dalla colonna “Soluzione”, i cui
valori hanno il seguente significato:
Max Fm Segmentazione avente la migliore f-measure presente all’inter-
no del fronte di Pareto.
Min Fm Segmentazione avente la peggiore f-measure presente all’inter-
no del fronte di Pareto.
Min ITD Segmentazione avente il miglior valore del parametro in-tile
color dissimilarity presente all’interno del fronte di Pareto.
Max OTD Segmentazione avente il miglior valore del parametro out-tile
color dissimilarity presente all’interno del fronte di Pareto.
43 Formato del genotipo
Dai risultati si evince che la variabilità all’interno del fronte di Pareto
non è elevata e che la soluzione avente la massima out-tile color dissi-
milarity risulta quasi sempre migliore rispetto a quella avente la minore
in-tile color dissimilarity. In conclusione si può dire che la prima risulta
una buona candidata ad essere la segmentazione da fornire come output
al termine dell’algoritmo genetico.
5.6 Formato del genotipo
Per valutare l’influenza del formato del genotipo sugli indicatori si sono
considerati i dati ottenuti dalle seguenti varianti:
Tabella 5.7: Varianti utilizzate per confrontare i due formati del genotipo
Variante Modalità
Dimensione
pop.
Preprocessing
Formato
poligoni
1 griglia intera 20 si rettangoli
2 griglia intera 20 si q. convessi
Si espongono ora i risultati ottenuti
Tabella 5.8: Confronto tra i due formati del genotipo impiegati
Mosaico Formato Poligoni Prec Rec Fm T (s)
bird Quad. Convessi 67.6 63.5 65.4 6982
Rettangoli 66.3 64.4 65.3 6747
church Quad. Convessi 53.8 59.7 56.6 7179
Rettangoli 52.8 61.4 56.8 6901
flower Quad. Convessi 73.4 56.8 64.1 5732
Rettangoli 72.0 57.9 64.2 5033
museum Quad. Convessi 74.0 66.0 69.8 216
Rettangoli 73.8 66.2 69.8 196
university Quad. Convessi 70.2 66.6 68.3 223
Rettangoli 69.3 68.4 68.9 180
I valori in tabella sono ottenuti effettuando delle medie sulle esecuzioni
e sulle segmentazioni appartenenti al gruppo 1.
Dall’analisi dei risultati si evince che utilizzando il formato basato sui
quadrilateri convessi si ottengono dei valori degli indicatori precision e
5. Risultati 44
recall rispettivamente superiori ed inferiori rispetto al formato rimanente.
Non ci sono differenze significative per quanto riguarda il valore della
f-measure risultante.
Per quanto riguarda il tempo di esecuzione si è riscontrato un valore
inferiore utilizzando il formato basato sui rettangoli, il che è probabil-
mente dovuto al fatto che questo richiede un minor numero di parametri
e specifica una più semplice procedura di espressione del genotipo.
5.7 Inizializzazione della griglia
Per confrontare le due modalità di inizializzazione della griglia, ossia quel-
la uniforme e quella basata su preprocessing sono state considerate le
seguenti varianti:
Tabella 5.9: Varianti utilizzate per confrontare le modalità di inizializzazione
della griglia
Variante Modalità
Dimensione
pop.
Preprocessing
Formato
poligoni
2 griglia intera 20 si q. convessi
3 griglia intera 20 no q. convessi
Si espongono ora i risultati ottenuti:
Tabella 5.10: Confronto tra le due modalità di inizializzazione della griglia
dei tasselli implementate
Mosaico Inizializzazione Count Prec Rec Fm T (s)
bird Uniforme 0.44 49.5 64.5 56.0 9608
Preprocessing 0.17 66.3 64.4 65.3 6747
church Uniforme 0.18 42.6 64.2 51.2 8908
Preprocessing 0.03 52.8 61.4 56.8 6901
flower Uniforme 0.42 60.3 62.5 61.4 10253
Preprocessing 0.01 72.0 57.9 64.2 5033
museum Uniforme 0.07 48.4 72.5 58.1 197
Preprocessing 0.02 73.8 66.2 69.8 196
university Uniforme 0.19 36.2 63.6 46.2 95
Preprocessing 0.19 69.3 68.4 68.9 180
45 Confronto con TOS
I valori in tabella sono ricavati effettuando delle medie sulle esecuzioni
e sulle segmentazioni del gruppo 1.
Dai risultati si riscontra un significativo miglioramento della f-measure
e dell’errore sul conteggio su tutti i mosaici. Questo è dovuto al fatto
che utilizzando il preprocessing si ottiene una configurazione iniziale più
vicina a quella ottima agevolando quindi la convergenza dell’algoritmo.
5.8 Confronto con TOS
5.8.1 Confronto attraverso le metriche di valutazione
Si effettua ora il confronto tra l’algoritmo sviluppato e TOS [1], che risulta
il migliore tra gli agoritmi valutati nel lavoro [3] utilizzando i risultati
contenuti nello stesso paper.
Tabella 5.11: Confronto tra l’algotitmo TOS e quello svluppato in questo
lavoro (GA), i risultati riguardanti TOS sono ottenuti utilizzando il valore del
parametro principale che massimizza l’indice f-measure
Mosaico Metodo Count Prec Rec Fm
bird TOS 0.03 52.8 81.7 64.2
GA 0.17 68.3 63.1 65.5
church TOS 0.54 56.4 71.9 63.2
GA 0.03 54.8 58.0 56.3
flower TOS 0.06 49.4 67.8 57.2
GA 0.01 73.8 52.9 61.6
museum TOS 0.14 64.4 87.3 74.1
GA 0.02 74.2 67.3 70.6
university TOS 0.90 63.2 78.5 70.1
GA 0.19 71.7 67.6 69.5
I risultati ottenuti dal paper riguardanti l’algoritmo TOS sono sta-
ti ricavati impostando come valore del parametro principale quello che
massimizza l’indice f-measure. Un’analisi per individuare quali sono i pa-
rametri che portano alla migliore f-measure per l’algoritmo genetico non è
stata effettuata per motivi di tempo, quindi il confronto che ci si accinge
ad effettuare non è completamente equo. I parametri utilizzati sono stati
quelli che consentono di ottenere un ragionevole errore sul conteggio.
I risultati presenti in tabella 5.11 riguardanti l’algoritmo sviluppato in
questo lavoro sono ottenuti considerando i dati provenienti dalla seguente
variante:
5. Risultati 46
(a) TOS (b) GA
Figura 5.7: Confronto tra la segmentazione migliore ottenuta tramite TOS
e la segmentazione proveniente dall’algoritmo genetico avente la migliore out-
tile dissimilarity presente all’interno del fronte di Pareto, alla quale è stato poi
applicata la gestione delle intersezioni
Tabella 5.12: Variante utilizzata per il confronto con TOS
Variante Modalità
Dimensione
pop.
Preprocessing
Formato
poligoni
4 griglia intera 100 si q. convessi
I valori in tabella sono ottenuti effettuando una media tra i valori
provenienti dalle varie esecuzioni e sulla segmentazione avente la migliore
f-measure riscontrata nel fronte di Pareto senza applicare la gestione delle
intersezioni.
Dai risultati ottenuti si evince che i valori della f-measure registrati
nei due casi sono simili, per quanto riguarda l’errore sul conteggio invece
l’algoritmo genetico fornisce risultati generalmente migliori, in ogni ca-
so dal confronto effettuato utilizzando le metriche oggettive non emerge
chiaramente un vincitore.
5.8.2 Confronto empirico
In figura 5.7 vengono mostrati i risultati provenienti dai due algoritmi
ottenuti in termini di segmentazioni del mosaico university.
Dalle figure si può notare che TOS, come tutti gli algoritmi conside-
rati nel paper [3], fornisce come risultato una partizione dell’immagine.
Una segmentazione di questo tipo non è completamente appropriata per
rappresentare un mosaico in quanto un pixel dell’immagine può anche
non appartenere ad alcun tassello ma bensì ad una regione in corrispon-
denza del filler. L’algoritmo genetico sviluppato in questo lavoro tiene
47 Confronto con TOS
invece conto di questo aspetto e quindi fornisce informazioni in più, con-
sentendo di stabilire anche quali sono i pixel che non appartengono ad
alcun tassello.
Il fatto di fornire come risultato una partizione dell’immagine è inol-
tre vantaggioso per quanto riguarda i risultati ottenuti in termini delle
metriche di valutazione. In questo caso infatti ogni tassello della ground
truth presenta intersezione non vuota con almeno un tassello della seg-
mentazione. Nel caso dell’algoritmo genetico può accadere invece che
alcuni tasselli della ground truth rimangano scoperti portando un con-
tributo nullo alle metriche, fatto che è inoltre più probabile se si applica
l’algoritmo a posteriori di gestione delle intersezioni.
Capitolo 6
Conclusioni e sviluppi futuri
In conclusione si può dire che attraverso questa tesi si è esplorata l’ap-
plicazione di tecniche basate sul calcolo evoluzionistico alla risoluzione
del problema della segmentazione di un mosaico, ottenuto un algoritmo
che fornisce buoni risultati in termini di qualità empirica e paragonabi-
le al miglior algoritmo considerato nel paper [3] per quanto riguarda le
metriche di valutazione oggettive.
In futuro si può considerare il raffinamento di diversi aspetti dell’al-
goritmo e l’introduzione di ulteriori migliorie, tra le quali:
• Passaggio a formati del genotipo più espressivi rinunciando even-
tualmente al vincolo della convessità dei poligoni.
• Introduzione della gestione delle intersezioni durante l’evoluzione.
• Implementazione di operazioni di accorpamento/differenza tra po-
ligoni per gestire le intersezioni al posto della rimozione degli stessi.
• Raffinamento dell’algoritmo di preprocessing per l’inizializzazione
della griglia.
49
6. Conclusioni e sviluppi futuri 50
(a) Immagine originale
(b) Segmentazione
Figura 6.1: Esempio di segmentazione ottenuta dall’algoritmo genetico. I
tasselli sono stati riempiti del colore medio presente dell’immagine originale in
corrispondenza degli stessi
Bibliografia
[1] Lamia Benyoussef and Stéphane Derrode. Tessella-oriented segmen-
tation and guidelines estimation of ancient mosaic images. Journal of
Electronic Imaging, 17(4):043014–043014, 2008.
[2] Kalyanmoy Deb, Samir Agrawal, Amrit Pratap, and Tanaka Meyari-
van. A fast elitist non-dominated sorting genetic algorithm for multi-
objective optimization: Nsga-ii. In Parallel problem solving from
nature PPSN VI, pages 849–858. Springer, 2000.
[3] Gianfranco Fenu, Nikita Jain, Eric Medvet, Felice Andrea Pellegri-
no, and Myriam Pilutti Namer. On the assessment of segmenta-
tion methods for images of mosaics. In Computer Vision, Imaging
and Computer Graphics Theory and Applications (VISAPP), 10th
International Joint Conference on, pages 130–137, 2015.
51

More Related Content

Similar to Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo evoluzionistico

Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Francesco Komauli
 
CaputiDomenicoMagistrale
CaputiDomenicoMagistraleCaputiDomenicoMagistrale
CaputiDomenicoMagistrale
Domenico Caputi
 
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Simone Cumar
 
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
maik_o
 
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
danieledegan
 
Reti di partecipazione fra società di capitale in Italia: presenza di topolog...
Reti di partecipazione fra società di capitale in Italia: presenza di topolog...Reti di partecipazione fra società di capitale in Italia: presenza di topolog...
Reti di partecipazione fra società di capitale in Italia: presenza di topolog...
Andrea Cavicchini
 

Similar to Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo evoluzionistico (20)

Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...
Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...
Analisi sperimentale comparativa dell’evolvibilità nei sistemi di evoluzione ...
 
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
Sintesi automatica di una metrica di similarità tra stringhe tramite tecniche...
 
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
Progettazione e Sviluppo di un Sistema per Migliorare il Codice Generato da u...
 
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
 
[Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System [Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System
 
CaputiDomenicoMagistrale
CaputiDomenicoMagistraleCaputiDomenicoMagistrale
CaputiDomenicoMagistrale
 
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...Compressione di insiemi di espressioni regolari tramite programmazione geneti...
Compressione di insiemi di espressioni regolari tramite programmazione geneti...
 
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
 
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - TesiAnalisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
Analisi di prestazione dell'interprete tuProlog su piattaforma Java - Tesi
 
Applicazioni intelligenzaartificiale
Applicazioni intelligenzaartificialeApplicazioni intelligenzaartificiale
Applicazioni intelligenzaartificiale
 
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
Progetto e sviluppo di un'applicazionemobile multipiattaforma per il supporto...
 
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
Analisi e sviluppo di un sistema collaborativo simultaneo per la modifica di ...
 
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
 
Openfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsOpenfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistems
 
Reti di partecipazione fra società di capitale in Italia: presenza di topolog...
Reti di partecipazione fra società di capitale in Italia: presenza di topolog...Reti di partecipazione fra società di capitale in Italia: presenza di topolog...
Reti di partecipazione fra società di capitale in Italia: presenza di topolog...
 
Tesi: Progetto e realizzazione di un sistema robusto di gestione dei dati per...
Tesi: Progetto e realizzazione di un sistema robusto di gestione dei dati per...Tesi: Progetto e realizzazione di un sistema robusto di gestione dei dati per...
Tesi: Progetto e realizzazione di un sistema robusto di gestione dei dati per...
 
Pattern Recognition Lecture Notes
Pattern Recognition Lecture NotesPattern Recognition Lecture Notes
Pattern Recognition Lecture Notes
 
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEMTesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
 
Tesi
TesiTesi
Tesi
 
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
Migrazione dei meccanismi di workflow di un sistema informativo assicurativo ...
 

Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo evoluzionistico

  • 1. UNIVERSITÀ DEGLI STUDI DI TRIESTE Dipartimento di Ingegneria e Architettura Corso di Laurea in Ingegneria Informatica Tesi di Laurea Magistrale in PROGRAMMAZIONE WEB Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo evoluzionistico LAUREANDO RELATORE Nicola TIMEUS prof. Eric MEDVET CORRELATORI prof. Gianfranco FENU prof. Felice Andrea PELLEGRINO Anno Accademico 2014/2015
  • 2.
  • 3. Alla mia famiglia, a Eleonora e a tutti coloro i quali mi hanno sostenuto durante la mia carriera universitaria e nello svolgimento di questo lavoro
  • 4.
  • 5. Indice 1 Introduzione 1 1.1 Descrizione del problema . . . . . . . . . . . . . . . . . . . 1 1.2 Motivazioni . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Algoritmi genetici 3 2.1 Genotipo . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Operatori genetici . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Funzione di fitness . . . . . . . . . . . . . . . . . . . . . . 4 2.4 Struttura di un algoritmo genetico . . . . . . . . . . . . . 5 3 Descrizione del metodo 7 3.1 Descrizione del genotipo . . . . . . . . . . . . . . . . . . . 7 3.1.1 Formato basato su rettangoli . . . . . . . . . . . . 8 3.1.2 Formato basato su quadrilateri convessi . . . . . . 9 3.2 Funzione di fitness . . . . . . . . . . . . . . . . . . . . . . 10 3.3 Inizializzazione della griglia . . . . . . . . . . . . . . . . . 11 3.3.1 Inizializzazione uniforme . . . . . . . . . . . . . . . 11 3.3.2 Inizializzazione basata su preprocessing . . . . . . 12 3.3.3 Differenze di gaussiane . . . . . . . . . . . . . . . . 13 3.3.4 Scelta dei blobs . . . . . . . . . . . . . . . . . . . . 16 3.4 Descrizione dell’algoritmo genetico . . . . . . . . . . . . . 17 3.4.1 Operatore di crossover uniforme . . . . . . . . . . . 19 3.4.2 Operatore di mutazione uniforme . . . . . . . . . . 19 3.4.3 Operatore di mutazione gaussiano . . . . . . . . . 19 3.5 Scelta delle segmentazioni risultanti . . . . . . . . . . . . . 20 3.6 Gestione delle intersezioni . . . . . . . . . . . . . . . . . . 20 3.6.1 Variabili decisionali . . . . . . . . . . . . . . . . . . 21 3.6.2 Funzione obiettivo . . . . . . . . . . . . . . . . . . 21 3.6.3 Vincoli . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.7 Implementazione ed ottimizzazioni . . . . . . . . . . . . . 23 3.7.1 Strumenti utilizzati . . . . . . . . . . . . . . . . . . 23 3.7.2 Working sets . . . . . . . . . . . . . . . . . . . . . 23 v
  • 6. INDICE vi 3.7.3 Manipolazione dei poligoni . . . . . . . . . . . . . 23 3.7.4 Manipolazione dei pixel . . . . . . . . . . . . . . . 24 3.7.5 Caching . . . . . . . . . . . . . . . . . . . . . . . . 25 4 Procedura sperimentale 27 4.1 Metriche di valutazione . . . . . . . . . . . . . . . . . . . . 27 4.1.1 Errore sul conteggio . . . . . . . . . . . . . . . . . 27 4.1.2 Precision . . . . . . . . . . . . . . . . . . . . . . . 28 4.1.3 Recall . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.1.4 F-Measure . . . . . . . . . . . . . . . . . . . . . . . 29 4.2 Obiettivi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3 Organizzazione . . . . . . . . . . . . . . . . . . . . . . . . 30 4.3.1 Random seed . . . . . . . . . . . . . . . . . . . . . 32 5 Risultati 33 5.1 Efficacia dell’algoritmo . . . . . . . . . . . . . . . . . . . . 33 5.1.1 Andamento della funzione di fitness . . . . . . . . 33 5.1.2 Correlazione tra funzione di fitness e metriche di valutazione . . . . . . . . . . . . . . . . . . . . . . 35 5.2 Modalità di evoluzione . . . . . . . . . . . . . . . . . . . . 38 5.3 Gestione delle intersezioni . . . . . . . . . . . . . . . . . . 39 5.4 Dimensione della popolazione . . . . . . . . . . . . . . . . 40 5.5 Fronte di Pareto . . . . . . . . . . . . . . . . . . . . . . . 41 5.6 Formato del genotipo . . . . . . . . . . . . . . . . . . . . . 43 5.7 Inizializzazione della griglia . . . . . . . . . . . . . . . . . 44 5.8 Confronto con TOS . . . . . . . . . . . . . . . . . . . . . . 45 5.8.1 Confronto attraverso le metriche di valutazione . . 45 5.8.2 Confronto empirico . . . . . . . . . . . . . . . . . . 46 6 Conclusioni e sviluppi futuri 49
  • 7. Capitolo 1 Introduzione 1.1 Descrizione del problema Questa tesi affronta il problema della segmentazione di un mosaico, il che consiste nel ricavare delle informazioni strutturate ed esplicite riguardo al numero, la posizione e la forma dei tasselli che lo compongono a partire da un’immagine digitale dello stesso. Questo problema viene tradizionalmente risolto in maniera manuale tracciando il contorno di ogni tassello su un foglio di carta semitrasparente applicato sopra il mosaico, operazione che necessita di molto tempo per essere svolta. Avere a disposizione una rappresentazione digitale ottenuta in modo automatico permette di risparmiare il tempo necessario ad effettuare la segmentazione manuale e presenta diversi vantaggi. Ad esempio può es- sere utile agli archeologi, accademici e restauratori interessati allo studio, confronto e preservazione dei mosaici consentendo loro di avvalersi delle nuove tecnologie per svolgere al meglio il propro lavoro. 1.2 Motivazioni In un lavoro precedente [3] sono stati confrontati attraverso delle metri- che non soggettive vari algoritmi presenti in letteratura utili a risolvere questo problema, tra cui diversi algoritmi general-purpose recenti per la segmentazione di immagini e TOS [1] che per quanto a noi noto risulta l’unico orientato esplicitamente alla segmentazione di un mosaico. Dal lavoro sopra citato è emerso che quest’ultimo risulta migliore degli altri anche se in maniera non significativa, lasciando il problema solo parzialmente risolto. Attraverso questa tesi si è sperimentato un nuovo approccio alla segmentazione automatica dei mosaici basato su tecniche di calcolo evoluzionistico. 1
  • 8.
  • 9. Capitolo 2 Algoritmi genetici Si descrivono ora brevemente i principali aspetti che caratterizzano il calcolo evoluzionistico e gli algoritmi genetici. Gli algoritmi genetici sono degli algoritmi di ottimizzazione che pren- dono spunto dal mondo della biologia, in particolare dalle teorie sull’evo- luzione e dal principio della selezione naturale. Secondo tali teorie in natura l’evoluzione di una specie avviene gra- zie al fatto che sono gli individui migliori appartenenti ad essa ad avere maggiore probabilità di riprodursi e trasmettere quindi il loro patrimo- nio genetico alle generazioni successive. Per individui migliori si intende quelli che hanno sviluppato delle caratteristiche che garantiscono loro un buon grado di adattamento all’ambiente circostante. Lo sviluppo di nuo- ve caratteristiche negli individui di una specie avviene tramite mutazioni casuali del patrimonio genetico, tali caratteristiche possono essere sia fa- vorevoli che sfavorevoli. Il meccanismo della selezione naturale fa si che le prime vengano trasmesse alla generazione successiva con probabilità maggiore rispetto alle seconde. Gli algoritmi genetici applicano i principi sopra descritti ai problemi di ottimizzazione, il loro funzionamento si basa infatti sulla generazione casuale di un insieme di soluzioni e la successiva evoluzione dello stesso fino all’ottenimento di soluzioni soddisfacenti per il problema considera- to. L’insieme sopra citato viene detto popolazione e le soluzioni ad esso appartenenti individui. Ciascun individuo è contraddistinto dal relativo fenotipo e genotipo. Il primo è l’insieme delle caratteristiche e proprietà esternamente visibili che costituiscono l’individuo, il secondo è invece un insieme di parame- tri che identifica univocamente un particolare fenotipo ed è soggetto a manipolazione da parte degli operatori tipici del calcolo evoluzionistico quali la mutazione e il crossover. Questi operatori sono ispirati dalle ri- spettive controparti presenti nel mondo della genetica. Un altro aspetto 3
  • 10. 2. Algoritmi genetici 4 fondamentale è quello di poter definire una funzione di confronto tra due individui che consenta di individuare quello che rappresenta una soluzio- ne migliore per il problema in questione, tale funzione si dice funzione di fitness. Vengono ora descritti formalmente i concetti precedentemente intro- dotti. 2.1 Genotipo Il genotipo di un individuo è identificato dal suo cromosoma C = {g1, . . . , gn} che rappresenta una sequenza ordinata di geni, ogni gene è un vettore di paramenti gi = (pi1, . . . , piki ) con pij ∈ Aij, dove Aij è un generico insie- me. Ogni gene codifica un insieme di caratteristiche correlate del fenotipo di un individuo. La definizione del numero di geni presenti nel cromoso- ma, del numero di parametri pij e del significato degli stessi dipende dal particolare problema ed è a discrezione dello sviluppatore dell’algoritmo. 2.2 Operatori genetici La generazione di una nuova popolazione a partire da quella preesistente viene effettuata mediante i seguenti operatori finalizzati alla manipola- zione del cromosoma degli individui. Mutazione L’operatore di mutazione effettua la generazione di un nuovo individuo figlio a partire da un genitore mediante la sostituzione di uno o più parametri pij presenti nel cromosoma del primo con un valore casuale appartenente ad Aij. Crossover L’operatore di crossover effettua la generazione di uno o più individui figli a partire da due o più genitori effettuando una ri- combinazione dei parametri corrispondenti presenti nel genotipo. I cromosomi dei figli sono caratterizzati dalla seguente proprietà: ∀fij∃k : pk ij = fij, dove fij rappresenta un generico parametro di uno dei figli e pk ij rappresenta il valore del corrispondente parametro del genitore k-esimo. 2.3 Funzione di fitness La funzione di fitness ha il compito di esprimere quantitativamente la bon- tà di un determinato individuo come soluzione del problema in questione, tale funzione riceve in ingresso il fenotipo dell’individuo considerato ed
  • 11. 5 Struttura di un algoritmo genetico ha valori in Rn. Se n = 1 tale funzione rende possibile ordinare la popo- lazione secondo il grado di ottimalità degli individui identificando anche quello migliore. Se n > 1 si è in presenza di un problema di ottimizza- zione multi obiettivo e l’ordinamento precedentemente descritto presenta delle complicazioni in più rispetto al caso unidimensionale. In questo caso il problema può essere affrontato ad esempio tramite l’ordinamento non dominato per fronti di Pareto descritto nel seguito. 2.4 Struttura di un algoritmo genetico Una volta ottenuto un modello delle soluzioni di un problema in termini di genotipo, implementati in modo opportuno gli operatori di mutazio- ne e crossover ed individuata una funzione di fitness l’evoluzione della popolazione avviene nel modo seguente: 1. Inizializzazione della popolazione. 2. Applicazione della funzione di fitness alla popolazione. 3. Ordinamento degli individui rispetto al loro grado di ottimalità. 4. Se gli individui ottenuti sono soddisfacenti l’algoritmo termina. 5. Generazione di una nuova popolazione a partire da quella pre- cedente applicando crossover e mutazione agli individui migliori individuati al punto precedente. 6. Passaggio al punto 2.
  • 12.
  • 13. Capitolo 3 Descrizione del metodo Il problema della segmentazione di un mosaico è stato affrontato mediante un algoritmo di ottimizzazione genetica multi obiettivo, si fornisce ora una definizione formale di segmentazione e si descrivono i vari aspetti specifici che caratterizzano tale algoritmo. Definizione 1 Per segmentazione si intende un insieme S di insiemi di pixel appartenenti all’immagine originale. S è ottima se e solo se per ogni tassello contenuto nell’immagine di input è presente uno ed uno solo inseme I ∈ S che contiene tutti e soli i pixel appartenenti al tassello stesso. 3.1 Descrizione del genotipo Ogni individuo appartenente alla popolazione presenta un genotipo atto a codificare il relativo fenotipo, ossia una segmentazione S. Invece di ottenere una rappresentazione di S direttamente dalla de- finizione 1 si è scelto di imporre ulteriori restrizioni tenendo conto del- le caratteristiche specifiche del problema al fine di ridurre lo spazio di ricerca. In particolare si impone che ogni I ∈ S venga identificato da un po- ligono convesso, un pixel appartiene ad I se questo è contenuto nella regione dell’immagine originale identificata da tale poligono. Tale ap- prossimazione è ragionevole se si considera la forma tipica dei tasselli di un mosaico. Il requisito della convessità semplifica inoltre le operazioni di manipolazione dei tasselli e consente di introdurre delle ottimizzazioni finalizzate a ridurre il tempo di esecuzione. Il cromosoma di ogni individuo è composto da un insieme di geni codificanti un poligono, il generico gene i-esimo gi è un vettore avente la seguente forma: gi = (pi1, . . . , pik), pij ∈ Pij (3.1) 7
  • 14. 3. Descrizione del metodo 8 dove pij è un numero reale rappresentato mediante la codifica floating point caratterizzante uno specifico parametro del poligono. Ciascun pij appartiene inoltre ad un intervallo Pij = [pmin ij , pmax ij ] ⊂ R, definito in fase di inizializzazione come illustrato in seguito. Gli operatori di mutazione e crossover devono garantire che la condizione pij ∈ Pij rimanga sempre valida nel corso dell’evoluzione. Scopo degli intervalli di validità è quello di imporre che ciascun po- ligono possa essere collocato in una porzione circoscritta dell’immagine contenente la posizione iniziale e che le sue dimensioni non discostino eccessivamente da un valore iniziale. Nel corso del lavoro sono stati sperimentati diversi formati per il geno- tipo, ciascuno dei quali identifica il numero e il significato dei parametri pij e possiede un diverso grado di espressività. Ognuno di questi formati definisce una famiglia alla quale i poligoni devono appartenere e forni- sce alcune specifiche utilizzate dagli operatori di crossover e mutazione attraverso gli intervalli di validità Pij. A livello di codice i diversi formati sono stati implementati median- te specifiche classi ciascuna delle quali implementa una stessa interfac- cia. Tra le operazioni più importanti che queste classi devono svolgere troviamo le seguenti: • Generare la configurazione iniziale del gene i-esimo nel modo più appropriato a partire dai parametri cxi, cyi e di forniti dal codice responsabile dell’inizializzazione della griglia. I primi due sono le coordinate del baricentro del poligono ed il terzo va inteso come metà lato del tassello ipotizzando che questo abbia forma quadrata. • Definire gli intervalli di validità Pij. • Tradurre i geni codificanti i poligoni in una rappresentazione indi- pendente dal particolare formato in uso che viene utilizzata dalle altre parti del codice, ossia una lista ordinata delle coordinate (x, y) dei vertici del poligono. Vengono ora illustrati i due formati impiegati nella fase sperimentale di raccolta dei risultati. 3.1.1 Formato basato su rettangoli Questo formato prevede che i poligoni siano dei quadrati disposti ini- zialmente con i lati paralleli agli assi del sistema di riferimento ai quali si consente di variare tramite crossover e mutazione posizione, rotazione e lunghezza di ciascuna coppia di lati paralleli. In particolare il gene i-esimo ha la seguente forma: gi = (xi, yi, φi, l1i, l2i) (3.2)
  • 15. 9 Descrizione del genotipo dove xi e yi sono le coordinate del baricentro del rettangolo, φi rappre- senta l’angolo di rotazione rispetto alla configurazione iniziale ed l1i ed l2i rappresentano la lunghezza di ciascuna coppia di lati paralleli. Per quanto riguarda gli intervalli di validità dei parametri si impone che: xi ∈ [cxi − di, cyi + di] (3.3) yi ∈ [cxi − di, cyi + di] (3.4) φi ∈ [−π/2, π/2] (3.5) l1i, l21 ∈ [di, 4di] (3.6) Dove cxi, cyi e di sono i parametri definiti in fase di inizializzazione. 3.1.2 Formato basato su quadrilateri convessi Questo formato prevede che a partire da un quadrato con i lati paralleli al sistema di riferimento possa essere modificata la posizione del vertice j-esimo mediante la somma di un offset (dxj, dyj) rispetto alla posizione di partenza, con max(dxj, dyj) ≤ k = l/4, dove l è la lunghezza del lato. Si può dimostrare che così facendo si ottengono sempre poligoni convessi e che l/4 è il massimo valore di k che conserva tale proprietà. Al termine delle operazioni di perturbazione sopra descritte il poligono può essere ruotato e/o traslato. La struttura dei geni gi è la seguente: gi = (xi, yi, φi, dx1i, dy1i, . . . , dx4i, dy4i) (3.7) con xi ∈ [cxi − di, cxi + di] (3.8) yi ∈ [cyi − di, cxi + di] (3.9) φi ∈ [−π, π] (3.10) dx1i, dy1i, . . . , dx4i, dy4i ∈ [−1, 1] (3.11) La generazione di un poligono a partire da un gene gi avviene nel modo seguente: 1. Si inizializzano i vertici del quadrato nel modo seguente: v1i = (−di, −di) v2i = (di, −di) v3i = (di, di) v4i = (−di, di)
  • 16. 3. Descrizione del metodo 10 2. Si somma al vertice k-esimo il vettore (dxki, dyki) · di/2. 3. Si ruota la configurazione risultante di φi radianti rispetto all’ori- gine in senso orario. 4. Si somma a ciascun vertice il vettore (xi + cxi, yi + cyi). 3.2 Funzione di fitness Per effettuare l’ottimizzazione genetica si è impiegata una funzione di fitness multi obiettivo composta da due valori che sono la media effettuata sull’intera segmentazione dei seguenti parametri calcolabili per ciascun tassello: In-Tile Color Dissimilarity Questo parametro rappresenta la somma delle deviazioni standard registrata sui diversi canali del colore cal- colate sui pixel appartenenti al poligono, ad esempio se si utilizza il colorspace RGB questo parametro assume la seguente forma IT = σr + σg + σb (3.12) ed è indice della variabilità del colore all’interno di un tassello. Out-tile Color Dissimilarity Per calcolare questo parametro occorre considerare due diverse regioni, la prima è il poligono T appartenen- te alla segmentazione e la seconda è il poligono ¯T avente lo stesso baricentro di T ottenuto scalando quest’ultimo di un fattore β > 1. Il parametro out-tile color dissimilarity è definito come la norma euclidea del vettore differenza tra il colore medio presente nella regione T e quello presente nella regione ¯T T: OT = (µr, µg, µb)T − (µr, µg, µb)T ¯T (3.13) Questo parametro quantifica la misura in cui il colore medio della regione interna ad un tassello si discosta da quello presente in una regione esterna allo stesso situata a ridosso del bordo. Per quanto riguarda il valore del parametro β si è utilizzato β = 1.2. Attraverso l’algoritmo genetico si è cercato di massimizzare il valore della out-tile color dissimilarity media e di minimizzare il valore della in-tile color dissimilarity media. Questa strategia si basa sulle ipotesi che un tassello di un mosaico pre- senta solitamente una bassa variabilità del colore al suo interno mentre presenta differenze significative tra il colore della regione interna allo stes- so e quella esterna a ridosso del bordo. Dal paper [3] è inoltre emersa una
  • 17. 11 Inizializzazione della griglia correlazione tra il valore di questi indici e la qualità delle segmentazioni ottenute dai vari algoritmi in termini della metrica oggettiva f-measure. Tali indicatori forniscono quindi informazione sulla difficoltà intrinseca che caratterizza la segmentazione di un particolare mosaico. 3.3 Inizializzazione della griglia Come precedentemente anticipato, al fine di garantire una buona modu- larità e riutilizzo del codice, la procedura di inizializzazione della popo- lazione è stata suddivisa in due fasi: 1. La prima fase, che verrà descritta in dettaglio in questa sezione, è in- dipendente dal particolare formato del genotipo utilizzato e riguar- da l’impostazione del numero, posizione e dimensione dei tasselli che compongono le segmentazioni. Come già accennato in questa fase si definiscono per ogni tassello le coordinate (cxi, cyi) del baricentro e il parametro di che equivale alla metà della lunghezza del lato dello stesso ipotizzando che abbia forma quadrata. 2. La seconda fase, già descritta in precedenza nella sezione 3.1, ri- guarda invece l’inizializzazione dei parametri dei geni nel modo più appropriato in riferimento al particolare formato del genotipo basandosi sui cxi, cyi e di ottenuti dalla prima fase. Per quanto riguarda la prima fase sono stati considerati due approcci che verranno descritti nel seguito: l’inizializzazione uniforme della griglia e l’inizializzazione basata su un semplice algoritmo di blob detection. Entrambe queste modalità richiedono in ingresso dei parametri facil- mente ottenibili dall’immagine del mosaico originale finalizzati a descri- vere grossolanamente le dimensioni medie dei tasselli. 3.3.1 Inizializzazione uniforme Questa modalità di inizializzazione richiede in ingresso un singolo para- metro davg, denominato “dimensione media dei tasselli”. Tale parametro può essere interpretato come il diametro medio delle tessere ed è ricava- bile mediante una rapida analisi dell’immagine originale, non è necessaria un’elevata accuratezza ma è sufficiente individuare l’ordine di grandezza. Questo operatore fornisce alla procedura che implementa il genotipo i dati utili a generare una griglia di quadrati avente dimensione w/davg × h/davg , dove w e h sono rispettivamente la larghezza e l’altezza in pixel dell’immagine da elaborare. Il valore dei parametri di viene fissato a davg/2 ∀i e i vari cxi e cyi vengono forniti in modo tale da generare una
  • 18. 3. Descrizione del metodo 12 Figura 3.1: Risultato dell’applicazione dell’inizializzazione uniforme, nella re- gione in basso a destra si può notare che il numero di tasselli nella griglia non è sufficiente ad identificare tutti i tasselli presenti nel mosaico griglia di quadrati aventi lo stesso lato ripartendo uniformemente lo spazio esterno ai poligoni lungo gli assi x ed y. Questo tipo di inizializzazione è molto semplice da implementare ma presenta degli svantaggi nel caso in cui nel mosaico si riscontri un’ele- vata variabilità nelle dimensioni delle tessere. In particolare è frequente il caso in cui nell’immagine sono presenti delle regioni caratterizzate da una dimensione dei tasselli significativamente superiore oppure inferiore rispetto alla media. In questi casi se la griglia è inizializzata uniforme- mente si avrà a disposizione un numero rispettivamente troppo elevato o troppo basso di poligoni nella stessa regione e la configurazione iniziale sa- rà piuttosto lontana da quella ottima rendendo più difficile la convergenza dell’algoritmo. 3.3.2 Inizializzazione basata su preprocessing Al fine di alleviare i problemi precedentemente esposti è stato implemen- tato un algoritmo di preprocessing finalizzato ad identificare in modo grossolano il numero, la posizione e la dimensione dei tasselli, consen-
  • 19. 13 Inizializzazione della griglia tendo di stimare i valori di cxi, cyi e di effettivi del mosaico fornito in ingresso. In questo modo si ottiene una griglia iniziale che approssima la configurazione ottima in modo migliore rispetto al caso precedente con- sentendo all’algoritmo genetico di concentrarsi sulla sola identificazione della forma dei tasselli, riducendo lo spazio di ricerca. L’algoritmo di inizializzazione basato sul preprocessing fornisce in uscita una lista di circonferenze aventi centri in (cxi, cyi) e raggi ri e riceve in ingresso tre parametri: rmax, rmin ed rstep con il seguente significato: • rmax è il massimo raggio delle circonferenze in uscita. • rmin è il minimo raggio delle circonferenze in uscita. • rstep identifica la risoluzione che si desidera ottenere rispetto al rag- gio dei tasselli, in particolare il valore del raggio delle circonferenze ottenute apparterrà all’insieme R = {rmin, rmin + rstep, rmin + 2rstep, . . . , rmin + rmax − rmin rstep rstep} (3.14) La fase di preprocessing è basata su un semplice algoritmo di blob detection che utilizza la tecnica delle differenze di gaussiane, di seguito brevemente descritta. 3.3.3 Differenze di gaussiane Un metodo basato su forti fondamenti teorici per effettuare blob detection prevede l’utilizzo di un filtro a convoluzione basato sul seguente kernel, detto laplaciano della gaussiana normalizzato (LoG): LoG(x, y, t) t 2 L(x, y, t) (3.15) in cui L(x, y, t) è una funzione gaussiana avente la seguente forma: L(x, y, t) = 1 √ 2πt e−x2+y2 2t (3.16) dove t = σ2 è detto parametro di scala. Data una funzione f(x, y) : R2 → R rappresentante un’immagine in scala di grigi, il metodo prevede di identificare come blobs i punti (x, y, t) corrispondenti ai massimi e minimi locali del risultato del prodotto di convoluzione LoG(x, y, t) ∗ f(x, y) (3.17)
  • 20. 3. Descrizione del metodo 14 Il kernel LoG(x, y, t) può essere approssimato dalla differenza di due funzioni gaussiane aventi deviazioni standard leggermente diverse: LoG(x, y, t) DoG(x, y, t) L(x, y, t) − L(x, y, t − ∆t) (3.18) con ∆t > 0. Dalla 3.18 si può notare che la convoluzione tra il kernel DoG(x, y, t) e un’immagine può essere effettuata tramite la differenza del risultato di due applicazioni di un filtro gaussiano, che gode della proprietà di separabilità. Tale proprietà consente di ridurre il tempo necessario per effettuare la convoluzione rispetto al caso in cui si utilizzi LoG(x, y, t), per questo motivo si è preferito utilizzare il primo kernel. Si fornisce ora una breve dimostrazione del fatto che il kernel DoG(x, y, t) approssima LoG(x, y, t). Poiché la gaussiana è soluzione dell’equazione di diffusione 1 2 2 L = ∂L ∂t (3.19) si ha che 1 2 2 L(x, y, t) = ∂ ∂t L(x, y, t) L(x, y, t) − L(x, y, t = t − ∆t) ∆t = DoG(x, y, t) ∆t e quindi DoG(x, y, t) 1 2 ∆t 2 L(x, y, t) (3.20) In particolare se t = αt con 0 < α < 1 e quindi ∆t = (1 − α)t si ha che DoG(x, y, t) 1 2 (1 − α)t 2 L(x, y, t) = 1 2 (1 − α)LoG(x, y, t) (3.21) e dunque DoG(x, y, t) risulta con un certo grado di approssimazione proporzionale a LoG(x, y, t). Effettuare la convoluzione tra un kernel gaussiano L(x, y, t) ed un’al- tra funzione f(x, y) : R2 → R rappresentante ad esempio un’immagine in scala di grigi corrisponde intuitivamente ad effettuare un filtraggio passabasso nelle frequenze spaziali che attenua le features aventi raggio inferiore a √ t. Effettuando la differenza tra due funzioni L(x, y, t1) ed L(x, y, t2 = t1 − ∆t) con ∆t > 0 si ottiene un kernel che effettua un filtraggio passa- banda, in particolare fornisce risposte forti in presenza di blobs di colore scuro di raggio compreso tra √ t1 e √ t2.
  • 21. 15 Inizializzazione della griglia (a) Immagine originale (b) Risultato dell’applicazione del comando edge Figura 3.2: Particolare del mosaico university prima e dopo l’applicazione del comando edge Come precedentemente detto per localizzare dei blobs di colore scuro con bordo chiaro nell’immagine originale è possibile andare a ricercare i massimi locali rispetto ad x, y e alla scala t del risultato della convoluzione DoG(x, y, t) ∗ f(x, y), ossia argmaxlocalx,y,tDoG(x, y, t) ∗ f(x, y) (3.22) Un problema da affrontare per poter utilizzare questo filtro è il fatto di dover passare da un immagine a colori rappresentabile come una funzione f : R2 → Rc, dove c rappresenta il numero di dimensioni dello spazio di colori utilizzato, ad una f : R2 → R avente un singolo valore per pixel. Questo problema è stato affrontato mediante il comando edge della libreria ImageMagick, che fornisce in uscita un’immagine in scala di grigi dove sono evidenziate con colore chiaro le zone in cui è presente un bordo. Tale approccio appare sensato in quanto in un mosaico tipicamente i bor- di dei tasselli sono ben definiti. L’effetto passa banda del filtro differenze di gaussiane permette inoltre di ridurre l’influenza di eventuali bordi spu- ri dovuti ad imperfezioni sui tasselli aventi dimensione sufficientemente lontana dell’intervallo di scala di interesse. Per mettere in relazione la scala t di un massimo locale al parametro di da fornire in fase di inizializzazione si è assunto che i blob cercati siano di colore scuro, di forma circolare e aventi un bordo chiaro di spessore molto minore al raggio. Tali ipotesi derivano dal fatto che si sta elaborando l’immagine in scala di grigi ottenuta mediante il comando edge. In queste condizioni il filtro fornisce la risposta massima in posizione (cx, cy) corrispondente al centro del cerchio e alla scala tale che il contorno del blob si trova in corrispondenza della curva di forma circolare sulla quale il kernel presenta valore massimo. Per individuare il raggio r di questa curva, vista la simmetria radiale del kernel si può considerare una restrizione dello stesso su una retta passante per l’origine. In queste condizioni posto σ = √ t e con α definito
  • 22. 3. Descrizione del metodo 16 precedentemente si ricava che r = σ 6α2 log( 1 α) 1 − α2 (3.23) A questo punto per fissare di si è considerata la lunghezza del lato del quadrato circoscritto ad una circonferenza di raggio r ossia 2r e quella del lato del quadrato inscritto alla stessa, ossia 2r√ 2 e si è scelto di = r 2 1 + 1 √ 2 (3.24) ossia pari alla media tra le metà dei lati dei due quadrati precedentemente descritti. Questa scelta ha dato buoni risultati in seguito a verifiche sperimentali. 3.3.4 Scelta dei blobs Da valutazioni sperimentali è emerso che inizializzare la griglia utilizzando tutti i massimi locali di DoG(x, y, t) ∗ f(x, y) porta ad un numero troppo elevato di poligoni nella segmentazione. Questo è dovuto al fatto che l’algoritmo di blob detection fornisce dei falsi positivi in alcune regioni in corrispondenza del filler ed in corrispondenza di alcune impurità presenti sui tasselli di dimensioni che rientrano nell’intervallo di scale di interesse. Per alleviare questo problema è stato implementato il seguente algo- ritmo: Si costruisce la lista Lout dei blobs da utilizzare per inizializzare l’al- goritmo genetico, inizialmente vuota. Un generico elemento di Lout sarà della forma (x, y, r, g) dove: • x ed y sono le coordinate del centro del blob. • r rappresenta il raggio del blob. • g = g(x, y, t(r)) = DoG(x, y, t(r)) ∗ f(x, y) è la risposta del kernel in corrispondenza di x,y e r. Per ogni raggio ri ∈ R si effettua la seguente procedura partendo da rmin e procedendo in ordine crescente: 1. Si ricava ti da ri utilizzando la 3.23. 2. Si calcola g(x, y, ti) = DoG(x, y, ti) ∗ f(x, y). 3. Si calcola l’insieme Bri delle quadruple (x, y, ri, g) dei massimi locali rispetto ad x ed y di g(x, y, t(ri)).
  • 23. 17 Descrizione dell’algoritmo genetico 4. Per ogni b = (x, y, ri, g) ∈ Bri e per ogni b = (x , y , r , g ) ∈ Lout : (x, y) − (x , y ) < β · ri si effettua la seguente procedura: (a) se r ≥ r e g > g allora b sostituisce b nella lista Lout. (b) altrimenti se r > r e g > γ · g allora b sostituisce b nella lista Lout. (c) altrimenti se g < g b viene scartato. se al termine di questi passi b non è stato già inserito in Lout e se non è stato scartato questo viene inserito in Lout. Il parametro 0 < β < 1 è finalizzato alla gestione delle intersezioni e definisce la distanza minima tollerabile tra i centri di due blob in funzione dei loro raggi. Il parametro 0 < γ < 1 è finalizzato a dare la preferenza ai blob di raggio maggiore rispetto a quelli di dimensione minore posti a distanza non tollerabile dai primi, anche se i secondi presentano un valore legger- mente superiore di g. Questo per tentare di eliminare eventuali blob spuri di dimensioni ridotte dovuti ad esempio ad imperfezioni del materiale dei tasselli. In seguito a verifiche sperimentali si è impostato α = β = 0.9. 3.4 Descrizione dell’algoritmo genetico La variante di algoritmo genetico utilizzata è NSGA2 [2], che realizza l’ot- timizzazione multi obiettivo tramite l’ordinamento non-dominato o per fronti di Pareto. Tale tipo di ordinamento è adatto ad affrontare proble- mi in cui il numero di componenti della funzione di fitness è maggiore di uno. In questo caso, poiché Rn con n > 1 risulta privo di una nozione di ordinamento naturale risulta non immediato ordinare una popolazione rispetto al grado di ottimalità di ogni individuo. Al fine di risolvere questo problema si ripartisce la popolazione in una sequenza di sottoinsiemi Fi detti fronti di Pareto. Se un individuo appar- tiene a Fi non esistono individui appartenenti a Fj con j ≥ i che domi- nano il primo, ossia che risultano migliori di questo contemporaneamente rispetto a tutte le componenti della funzione di fitness. Esistono diverse varianti di algoritmo genetico che adottano questa strategia, quella utilizzata in questo lavoro, ossia NSGA2, presenta le seguenti caratteristiche distintive:
  • 24. 3. Descrizione del metodo 18 • Implementa un algoritmo di ordinamento non dominato efficiente con complessità computazionale O(MN2) dove M è il numero di obiettivi ed N è la dimensione della popolazione, complessità in- feriore rispetto a quella presentata dall’algoritmo di ordinamento tradizionale di NSGA, ossia O(MN3). • Mantiene una buona diversità della popolazione durante l’evoluzio- ne: un algoritmo di ottimizzazione multi obiettivo basato sull’or- dinamento per fronti di Pareto fornisce in uscita un insieme di so- luzioni non dominate, è importante che queste presentino un buon grado di diversità e che siano distribuite uniformemente lungo il fronte ottimo che caratterizza il problema. NSGA2 affronta questo aspetto introducendo la cosiddetta crow- ding distance, che rappresenta per ogni individuo una stima del perimetro del cuboide avente come vertici il valore della funzione di fitness vettoriale presentata dei due individui adiacenti allo stesso rispetto a ciascuno degli obiettivi. Un valore elevato di tale metri- ca indica che l’individuo considerato si trova in una regione poco affollata dello spazio della funzione di fitness. NSGA2 per selezionare gli individui da utilizzare per ottenere la generazione successiva adotta questi criteri: 1. Se due individui si trovano in diversi fronti di pareto viene privilegiato quello appartenente al fronte di indice minore (in questo caso quest’ultimo domina l’altro). 2. Se due individui appartengono allo stesso fronte viene privi- legiato quello avente crowding distance più elevata, in modo tale da garantire la diversità all’interno della popolazione. Questo approccio presenta il vantaggio di non richiedere parametri all’utente come invece avviene nel caso di NSGA e presenta una complessità computazionale inferiore rispetto alla strategia utiliz- zata da quest’ultimo algoritmo. • Introduzione dell’elitarismo: L’applicazione degli operatori di mu- tazione e crossover agli individui di una popolazione possono in- trodurre dei cambiamenti sfavorevoli negli individui migliori di una popolazione. Al fine di impedire questo fenomeno si introduce il concetto di elitarismo, che consiste nel trasferire dalla generazione precedente a quella successiva gli individui migliori senza appor- tare loro alcuna modifica. Nel caso di una funzione di fitness ad obiettivo singolo questo processo assicura che l’andamento nel tem- po del miglior valore della stessa all’interno della popolazione sia monotono.
  • 25. 19 Descrizione dell’algoritmo genetico NSGA2 introduce l’elitarismo procedendo nel modo seguente: par- tendo dall’insieme Pt di dimensione N degli individui della gene- razione precedente si genera un altro insieme Qt di dimensione N anch’esso tramite gli operatori di mutazione e crossover. A questo punto si applica l’algoritmo di ordinamento non dominato all’insie- me Pt ∪ Qt e si genera la nuova generazione Pt+1 selezionando gli N individui migliori da Pt ∪ Qt secondo i criteri precedentemente descritti. Verranno ora illustrati gli operatori di mutazione e crossover utilizzati e i loro paramerti. 3.4.1 Operatore di crossover uniforme Per quanto riguarda il crossover si è utilizzato un operatore di tipo uni- forme. Data una coppia di individui appartenenti alla generazione pre- cedente si ottiene un individuo figlio da inserire nella nuova popolazione operando con questa procedura: Il gene i-esimo dell’individuo figlio gf i = (fi1, . . . , fik) si ottiene dai corrispondenti geni dei genitori g1 i = (p1 i1, . . . , p1 ik) e g2 i = (p2 i1, . . . , p2 ik) come segue: fij ← p1 ij : x ≤ 1 2 p2 ij : x > 1 2 con x ∼ U(0, 1) variabile aleatoria distribuita uniformemente nell’inter- vallo [0, 1]. 3.4.2 Operatore di mutazione uniforme L’operatore di mutazione uniforme sostituisce il valore del parametro j- esimo pij del gene i esimo di un individuo come segue: pij ← u (3.25) con u ∼ U(pmin ij , pmax ij ) variabile aleatoria distribuita uniformemente nel- l’intervallo di validità Pij = pmin ij , pmax ij del parametro pij. Si utilizza questo operatore per garantire una buona esplorazione dello spazio di ricerca riducendo la possibilità che un parametro converga ad un minimo locale non ottimo. 3.4.3 Operatore di mutazione gaussiano L’operatore di mutazione gaussiano sostituisce il valore del parametro j-esimo pij del gene i esimo di un individuo come segue: pij ← pij + g (3.26)
  • 26. 3. Descrizione del metodo 20 con g ∼ N(0, σij) variabile aleatoria di distribuzione normale a media nulla e con deviazione standard σij definita in fase di inizializzazione. Al termine di questa operazione si assicura che pij appartenga all’in- tervallo di validità Pij = pmin ij , pmax ij aggiornandolo come segue: pij ←    pmin ij : pij < pmin ij pmax ij : pij > pmax ij pij altrimenti Si utilizza questo operatore per apportare aggiustamenti fini ai para- metri. La nuova popolazione viene originata ottenendo nuovi individui par- tendo dalla popolazione precedente utilizzando i tre operatori preceden- temente descritti con probabilità diverse. In particolare un nuovo indi- viduo viene ottenuto attraverso l’operatore di crossover con probabilità pcr = 0.8, attraverso l’operatore di mutazione uniforme con probabilità pu = 0.1 ed attraverso l’operatore di mutazione gaussiana con probabi- lità pg = 0.1. La probabilità che un parametro p appartenente al gene i-esimo subisca una mutazione vale 2 |S|·|g| , dove |S| rappresenta il numero di poligoni presenti nella segmentazione e |g| è il numero di parametri contenuti in un gene. I valori di tali probabilità sono stati impostati in seguito ad analisi sperimentale. La selezione degli individui ai quali applicare gli operatori per ottenere la nuova popolazione avviene secondo quanto specificato dall’algoritmo NSGA2. 3.5 Scelta delle segmentazioni risultanti L’algoritmo NSGA2 fornisce in uscita un insieme di soluzioni che corri- spondono al primo fronte di Pareto F1 ottenuto dopo l’ultima generazione calcolata. Risulta dunque necessario selezionare quali soluzioni fornire in uscita dall’algoritmo di segmentazione all’interno di tale fronte. Si è risolto questo problema decidendo di fornire come risultato le segmentazioni SI ed SO caratterizzate rispettivamente dalla migliore in ed out-tile color dissimilarity presenti all’interno di F1. 3.6 Gestione delle intersezioni L’algoritmo precedentemente descritto non esclude la possibilità che due poligoni appartenenti alla segmentazione abbiano intersezione non vuo- ta. Tale fenomeno ovviamente non si verifica nell’immagine originale in
  • 27. 21 Gestione delle intersezioni quanto ogni pixel appartiene al più ad un singolo tassello e quindi va evitato. Allo stato attuale le intersezioni non sono state gestite nel corso dell’e- voluzione ma bensì a posteriori mediante un algoritmo di postprocessing basato su tecniche di programmazione lineare. Tale algoritmo riceve in ingresso una segmentazione e fornisce come risultato una seconda segmentazione ottenuta dalla prima rimuovendo dei poligoni in modo tale da risolvere il problema delle intersezioni, ottimiz- zando contemporaneamente una funzione obbiettivo lineare descritta nel seguito. 3.6.1 Variabili decisionali Si associa una variabile decisionale binaria xi al poligono i-esimo apparte- nente alla segmentazione: se xi vale uno il poligono viene conservato nella segmentazione fornita in output, in caso contrario questo viene scartato. 3.6.2 Funzione obiettivo Per gestire le intersezioni sono state sperimentate due diverse funzioni obiettivo: • Massimizzazione della out-tile color dissimilarity: Viene mas- simizzata la somma degli indicatori out-tile color dissimilarity Oi dei tasselli non scartati: f1 : max i Oixi (3.27) • Massimizzazione dell’area totale ricoperta: Viene massimiz- zata la somma delle aree Ai dei tasselli non scartati: f2 : max i Aixi (3.28) 3.6.3 Vincoli Oltre al vincolo di interezza delle variabili decisionali si introduce un’altra famiglia di vincoli finalizzata alla gestione delle intersezioni. In seguito a verifiche sperimentali è emerso che proibire completamen- te le intersezioni tra i poligoni delle segmentazioni ottenute dall’algoritmo genetico comporta la perdita di un numero troppo elevato di tasselli. Si è deciso dunque di consentire che due tasselli abbiano intersezione non vuota purché il massimo rapporto tra l’area dell’intersezione e quella dei
  • 28. 3. Descrizione del metodo 22 due tasselli sia inferiore ad un certo parametro α. In seguito ad ana- lisi sperimentali si è concluso che utilizzare α = 0.1 porta a risultati soddisfacenti. La condizione sopra descritta può essere formalizzata dalla seguente funzione: c(i, j) = 1 : max( Ai∩j Ai , Ai∩j Aj ) > α 0 altrimenti dove Ai rappresenta l’area del poligono i-esimo, Aj l’area del poligono j-esimo, ed Ai∩j l’area dell’intersezione dei due poligoni sopra citati. Utilizzando tale funzione è possibile associare al poligono i-esimo pi l’insieme Si degli indici dei poligoni che che presentano un’area dell’in- tersezione con pi non soddisfacente secondo il criterio precedentemente descritto: Si = {j : c(i, j) = 1, i = j} (3.29) Si impone ora la seguente famiglia di vincoli: ∀i xi = 1 =⇒ j∈Si xj = 0 (3.30) che impone la condizione che se il poligono pi non viene scartato tutti i poligoni che presentano un’area dell’intersezione non soddisfacente con pi devono essere scartati. Tale condizione può essere rappresentata mediante vicoli lineari nel modo seguente: Si associa ad ogni xi un’altra variabile decisionale binaria yi che rappresenta la negazione binaria di xi: yi = 1 : xi = 0 0 : xi = 1 il che è esprimibile dalla famiglia di vincoli ∀i xi + yi = 1 (3.31) I vincoli 3.30 possono essere ora rappresentati nel modo seguente: ∀i j∈Si xj − |Si| yi ≤ 0 (3.32) dove |Si| rappresenta la cardinalità dell’insieme Si.
  • 29. 23 Implementazione ed ottimizzazioni 3.7 Implementazione ed ottimizzazioni 3.7.1 Strumenti utilizzati Durante questo lavoro sono state utilizzate le seguenti librerie open- source: • OpenBeagle1: Libreria general-purpose per l’ottimizzazione gene- tica. • ImageMagik2: Libreria per la manipolazione delle immagini. • lp_solve3: Solver per problemi di programmazione lineare. 3.7.2 Working sets Un’ottimizzazione introdotta è quella di consentire che l’algoritmo ge- netico apporti modifiche ad ogni generazione tramite mutazione e cros- sover solamente ad un sottoinsieme ristretto dei poligoni della segmen- tazione. Tale sottoinsieme, denominato working set, viene cambiato periodicamente dopo un numero prefissato di generazioni. Più formalmente dato il cromosoma di un individuo C = (g1, . . . , gn), dove gi è un generico gene appartenente ad esso, il working set corrente è un sottoinsieme Wk = (gk, . . . , gk∗ ) ⊆ C, k∗ = min(n, k + lws − 1) dove lws è la dimensione del working set, parametro configurabile dall’utente. Il fatto che il working set sia costituito da un sottoinsieme di geni aventi indici consecutivi non implica necessariamente che i poligoni otte- nuti esprimendo gli stessi siano vicini nella segmentazione. Questo fatto si verifica ad esempio se la segmentazione è stata inizializzata in modo uniforme e i poligoni appartengono tutti ad una stessa riga, ma non si verifica se la griglia è stata inizializzata tramite preprocessing. Il working set corrente viene aggiornato ogni nws generazioni dove nws è un parametro configurabile dall’utente, l’aggiornamento avviene nel modo seguente: k ← ((k − 1 + lws/2 ) mod n) + 1 (3.33) 3.7.3 Manipolazione dei poligoni L’operazione che ha il maggior impatto sul tempo di esecuzione dell’algo- ritmo è il calcolo degli indicatori in ed out-tile dissimilarity dei tasselli. Si 1 https://github.com/chgagne/beagle 2 http://www.imagemagick.org/ 3 http://lpsolve.sourceforge.net/
  • 30. 3. Descrizione del metodo 24 è quindi cercato di ottimizzare il più possibile la parte di codice finalizzata ad effettuare un ciclo sui pixel interni ad un poligono. Dato un poligono p = {v1, . . . , vk} rappresentato come una lista di vertici vi = (xi, yi) ordinata in senso orario si procede nel modo seguente: 1. Si individuano due vertici vt, vb ∈ p tali che yt >= yi ∀i e yb <= yi ∀i ed aventi le coordinate xt e xb rispettivamente minima e massima possibile. 2. Si suddivide il contorno del poligono in due due spezzate sl ed sr aventi come estremi i vertici vt e vb tali che per ogni punto p ∈ sl e q ∈ sr sia verificata la condizione xp ≤ xq. A questo punto si rimuovono eventuali segmenti orizzontali da sl ed sr in modo tale che ciascuna contenga uno ed un solo punto r con xr = y ∀y ∈ [yb, yt]. Le operazioni precedenti sono possibili se e solo se il poligono considerato contiene tutti i segmenti orizzontali che hanno come estremi punti appartenenti ad esso, condizione che è valida in particolare per i poligoni convessi. 3. ∀¯y ∈ [yb, yt] ∩ N si individuano i punti l ∈ sl e r ∈ sr aventi coor- dinate yr = yl = ¯y e si effettua un ciclo sui punti aventi coordinate (x, ¯y) con x ∈ [xl, xr] ∩ N. Procedendo in questo modo si visitano i punti interni al poligono per righe, ossia allo stesso modo in cui l’immagine è memorizzata, questo porta ad una riduzione dei tempi di accesso alla memoria dovuti ad un migliore sfruttamento delle cache. Per individuare i punti l ed r si può considerare il fatto che ∀y questi apparterranno a due segmenti distinti, il primo appartenente alla spezzata sl ed il secondo a sr. Le coordinate l ed r sono calcolabili in modo efficiente a partire dal coefficiente angolare e dall’ordinata all’origine delle rette che contengono tali segmenti. 3.7.4 Manipolazione dei pixel Per manipolare i pixel sono state utilizzate le estensioni SSE presenti sulla maggior parte delle CPU moderne con architettura x86 oppure x86_64. Tali estensioni prevedono la presenza di una serie di registri general pur- pose di grandi dimensioni (128 bit e oltre) che consentono l’esecuzione di istruzioni di tipo SIMD (Single Instruction Multiple Data). Questi registri possono essere utilizzati per svolgere una stessa ope- razione in maniera parallela tra più dati contenuti all’interno degli stessi. Ad esempio su un registro a 128 bit è possibile caricare 4 numeri floating- point a 32 bit ed eseguire in parallelo una stessa operazione aritmetica per ognuno di essi utilizzando un numero di cicli di clock inferiore rispetto al caso sequenziale.
  • 31. 25 Implementazione ed ottimizzazioni Tali estensioni sono state utilizzate in questo lavoro per calcolare in modo efficiente la media del colore dei pixel appartenenti ad una deter- minata regione, operazione realizzabile mediante una somma parallela su ciascuno dei canali di colore. 3.7.5 Caching Come precedentemente detto l’operazione che ha il maggior impatto sul tempo di esecuzione dell’algoritmo è il calcolo degli indicatori in ed out- tile dissimilarity dei tasselli. Al fine di migliorare la performance è stata introdotta una strategia di caching di tali indicatori che agisce nel modo seguente: • Ogni qual volta si apportano delle modifiche ad un tassello tramite mutazione e crossover questo fatto viene memorizzato mediante un apposito flag. • Ogni qual volta si calcolano gli indicatori per un tassello questi vengono salvati e il flag di modifica viene resettato. • L’aggiornamento degli indicatori viene effettuato solamente se il tassello è stato modificato dopo l’ultima volta che questi sono sta- ti calcolati (fatto segnalato dal flag sopra citato), altrimenti si riutilizzano i valori salvati precedentemente.
  • 32.
  • 33. Capitolo 4 Procedura sperimentale L’algoritmo ottenuto è stato confrontato sperimentalmente con gli stessi algoritmi ed utilizzando le stesse metriche considerate in [3] su una se- rie di mosaici per i quali è disponibile una segmentazione ground truth ricavata manualmente. Vengono ora descritte brevemente le metriche di valutazione. 4.1 Metriche di valutazione La valutazione di una segmentazione RI rispetto ad una segmentazione ground truth TI viene effettuata mediante quattro indicatori che quanti- ficano in che misura vengono soddisfatti i seguenti requisiti: • Il numero di tasselli presenti in RI deve essere più vicino possibile al valore che caratterizza TI. • I tasselli di RI devono contenere tutti e soli i pixel presenti contenuti nei tasselli di TI. 4.1.1 Errore sul conteggio L’errore sul conteggio è definito come segue: Count(RI, TI) = abs(|TI| − |RI|) |TI| (4.1) e rappresenta il rapporto tra il valore assoluto della differenza del numero di tasselli presenti nella segmentazione RI e il numero di tasselli presenti nella ground truth TI rispetto a quest’ultimo valore. 27
  • 34. 4. Procedura sperimentale 28 4.1.2 Precision L’indicatore precision è definito come segue: Prec(RI, TI) = 1 |TI| T∈Ti maxR∈RI |R ∩ T| |R| (4.2) Questo indicatore esprime quantitativamente il requisito che i tasselli della segmentazione devono contenere solo pixel appartenenti alle tessere di TI. R3 T R2 R1 Figura 4.1: Illustrazione grafica dei poligoni coinvolti nel calcolo dell’indicatore precision per un tassello della ground truth In figura 4.1 si illustra graficamente la selezione dei tasselli che contri- buiscono all’indicatore precision per un tassello T della ground truth: è stato evidenziato in blu il tassello la cui area si trova al denominatore nel rapporto dell’equazione 4.2. Tra i tasselli Ri appartenenti alla segmenta- zione da valutare quello che presenta intersezione massima con T e che è l’unico che contribuisce all’indice è stato rappresentato con il contorno continuo. 4.1.3 Recall Rec(RI, TI) = 1 |TI| T∈Ti maxR∈RI |R ∩ T| |T| (4.3) Questo indicatore esprime quantitativamente il requisito che i tasselli della segmentazione devono contenere tutti i pixel appartenenti ai tasselli di TI.
  • 35. 29 Metriche di valutazione R3 T R2 R1 Figura 4.2: Illustrazione grafica dei poligoni coinvolti nel calcolo dell’indicatore recall per un tassello della ground truth In figura 4.2 si illustra graficamente la selezione dei tasselli che con- tribuiscono all’indicatore recall per un tassello T della ground truth, con significato dei simboli analogo al caso della figura 4.1. 4.1.4 F-Measure Fm(RI, TI) = 2 Prec(RI, TI)Rec(RI, TI) Prec(RI, TI) + Rec(RI, TI) (4.4) La f-measure è la media armonica degli indicatori precision e recall. Questo parametro riassume in un unico valore i primi due ed esprime qualitativamente il requisito che una buona segmentazione deve conte- nere tutti e soli i pixel che appartengono ai tasselli della ground truth. La f-measure è influenzata maggiormente dal peggiore tra i valori degli indicatori precision e recall. Al fine di giudicare la bontà di una segmentazione è necessario con- siderare contemporaneamente almeno i valori dell’errore sul conteggio e della f-measure: tali valori se considerati singolarmente non forniscono infatti informazioni significative sulla qualità della stessa. Per convincer- si di questo fatto si può considerare ad esempio il caso in cui si confronti la ground truth di un mosaico con se stessa: in questo caso la f-measure vale 1, che è il massimo valore consentito. A questo punto se si aggiun- gono arbitrariamente tasselli ad una delle due segmentazioni il valore di tale parametro non cambia ma la qualità della segmentazione decresce, è tuttavia possibile accorgersi di questo fatto se si considera anche l’errore sul conteggio.
  • 36. 4. Procedura sperimentale 30 4.2 Obiettivi La procedura sperimentale è finalizzata a valutare l’influenza dei diversi parametri sulla qualità delle segmentazioni risultanti espressa in termini delle metriche sopra descritte e sul tempo di esecuzione, oltre che a con- frontare l’algoritmo ottenuto tramite questo lavoro con quelli valutati nel paper [3]. Nello specifico gli obiettivi di questa analisi sono i seguenti: • Verificare se l’algoritmo genetico è efficace nell’ottimizzare la fun- zione obiettivo. • Valutare se esiste correlazione tra l’andamento rispetto al numero di generazione della funzione di fitness e le metriche oggettive per la valutazione delle segmentazioni precedentemente descritte. • Valutare l’influenza della dimensione della popolazione sulla qualità delle segmentazioni e sul tempo di esecuzione. • Confrontare in termini di qualità delle segmentazioni e tempo di esecuzione il caso in cui si utilizzi la modalità di esecuzione basata sui working sets e quello in cui si consente di modificare l’intera griglia ad ogni generazione. • Valutare la variabilità delle soluzioni all’interno del fronte di Pareto al termine dell’evoluzione e verificare se la scelta delle segmentazioni da fornire come output è opportuna. • Valutare come la procedura di gestione delle intersezioni impatta sulle metriche di valutazione e sulla qualità empirica delle segmen- tazioni. • Valutare l’influenza del formato del genotipo sulle metriche di va- lutazione e sulla qualità empirica delle segmentazioni. • Confrontare la modalità di inizializzazione della griglia uniforme rispetto a quella basata sull’algoritmo di preprocessing. • Confrontare i risultati ottenuti utilizzando i migliori parametri con quelli degli altri algoritmi considerati nel paper [3]. 4.3 Organizzazione La procedura è stata organizzata nel modo seguente: sono state identifi- cate delle varianti dell’algoritmo da valutare, dove per varianti si intende un insieme di parametri di configurazione.
  • 37. 31 Organizzazione Per ogni mosaico tra quelli considerati dal paper [3] e per ogni variante sono state effettuate tre esecuzioni dell’algoritmo ciascuna con random seed diverso. Ognuna delle esecuzioni produce come risultato tre gruppi di segmen- tazioni di seguito descritti: 1. Segmentazioni caratterizzate rispettivamente dalla migliore out ed in-tile color dissimilarity all’interno del fronte di Pareto (in totale due segmentazioni). 2. Segmentazioni caratterizzate rispettivamente dai migliori e peggiori valori degli indicatori precision, recall, f-measure riscontrati all’in- terno del fronte di Pareto (in totale sei segmentazioni). Questo gruppo di segmentazioni è ottenibile solo avendo a disposizione la ground truth associata al mosaico. 3. Per ognuna delle due segmentazioni appartenenti al gruppo 1 sono state ottenute altre due segmentazioni applicando l’algoritmo di ge- stione delle intersezioni utilizzando ciascuna delle funzioni obiettivo descritte nella sezione 3.6.2 (in totale quattro segmentazioni). Ciascuna delle segmentazioni ottenute è stata poi valutata rispetto alla ground truth relativa al mosaico considerato. La tabella seguente elenca le varianti testate e per ognuna di esse i parametri che la contraddistingue: Tabella 4.1: Varianti e relativi parametri Variante Modalità Dimensione pop. Preprocessing Formato poligoni 1 griglia intera 20 si rettangoli 2 griglia intera 20 si q. convessi 3 griglia intera 20 no q. convessi 4 griglia intera 100 si q. convessi 5 griglia intera 20 no rettangoli 6 griglia intera 50 si q. convessi 7 working sets 20 no rettangoli dove la colonna Modalità indica se nella variante è stata utilizzata l’ottimizzazione dei working sets oppure è stata consentita l’evoluzione dell’intera griglia ad ogni generazione.
  • 38. 4. Procedura sperimentale 32 4.3.1 Random seed Per ogni esecuzione è stato utilizzato un random seed differente: in am- biente Linux la libreria di ottimizzazione genetica utilizzata inizializza il proprio generatore di numeri pseudo-casuali con un seme ottenuto dal file di dispositivo /dev/random. Tale file viene impiegato dal kernel come interfaccia per fornire alle applicazioni sequenze casuali ad alta en- tropia ottenute in vari modi, ad esempio utilizzando rumore proveniente dai dispositivi di input, da connessioni di rete ed altro.
  • 39. Capitolo 5 Risultati Vengono ora esposti i dati ottenuti dalle analisi relative a ciascun obiettivo della procedura sperimentale. 5.1 Efficacia dell’algoritmo Si illustrano ora dei risultati utili a chiarire se l’algoritmo genetico è effica- ce nell’ottimizzare la funzione di fitness e se esiste correlazione tra l’anda- mento della stessa e le metriche di valutazione oggettive precedentemente esposte. 5.1.1 Andamento della funzione di fitness Per valutare se l’algoritmo è efficace nello svolgere il processo di ottimizza- zione degli obiettivi della funzione di fitness sono stati ricavati dei grafici che mostrano l’andamento rispetto al numero delle generazioni delle due componenti della stessa. Per motivi legati alla semplicità di implemen- tazione si è impostato il problema come un problema di minimo rispetto ad entrambi gli obiettivi e si quindi cambiato di segno il valore dell’indice out-tile color dissimilarity, che va massimizzato. Si riportano ora gli andamenti tipici del valor medio sulla popolazione dei due indicatori riguardanti un’esecuzione sul mosaico university nella quale la griglia è stata inizializzata tramite preprocessing. 33
  • 40. 5. Risultati 34 0 2000 4000 6000 8000 -0.25 -0.24 -0.23 -0.22 -0.21 -0.2 -0.19 -0.18 Generation Out-TileDissimilarity Out-Tile Dissimilarity Ground truth Out-Tile Dissimilarity Figura 5.1: Esempio di andamento della out-tile color dissimilarity (cambiata di segno) per un esecuzione riguardante il mosaico university 0 2000 4000 6000 8000 0.14 0.16 0.18 0.2 0.22 0.24 0.26 Generation In-TileDissimilarity In-Tile Dissimilarity Ground truth In-Tile Dissimilarity Figura 5.2: Esempio di andamento della in-tile color dissimilarity per un esecuzione riguardante il mosaico university Le serie di dati denominate “Ground truth Out-Tile Dissimilarity” e “Ground truth In-Tile Dissimilarity” rappresentano il valore di tali parametri riscontrato sulla ground truth. Dai grafici si può notare che l’andamento dei due obiettivi rispetto al numero di generazioni è in buona approssimazione monotono decrescente e che converge ad un valore limite, questo fatto è stato riscontrato per tutte le esecuzioni. Si può notare inoltre che i valori della funzione di fitness caratteriz- zanti la ground truth vengono raggiunti e superati dai parametri medi corrispondenti presenti all’interno della popolazione. Questo fatto si ve- rifica in modo particolare nei casi in cui si è utilizzato l’algoritmo di
  • 41. 35 Efficacia dell’algoritmo 0 10000 20000 30000 40000 50000 60000 -0.35 -0.3 -0.25 -0.2 -0.15 -0.1 -0.05 Generation Out-TileDissimilarity Out-Tile Dissimilarity Ground truth Out-Tile Dissimilarity 0 10000 20000 30000 40000 50000 60000 0.25 0.3 0.35 0.4 0.45 0.5 0.55 Generation In-TileDissimilarity In-Tile Dissimilarity Ground truth In-Tile Dissimilarity Figura 5.3: Andamento tipico dei valori della funzione di fitness nel caso in cui la griglia venga inizializzata in modo uniforme preprocessing per inizializzare la griglia. Nel caso in cui si utilizzi l’algo- ritmo di inizializzazione uniforme l’algoritmo converge invece a dei valori peggiori di tali parametri, come si vede in figura 5.3, ma l’andamento risulta comunque monotono. Da tali considerazioni si può concludere che l’algoritmo genetico ri- sulta efficace nello svolgere il processo di ottimizzazione. 5.1.2 Correlazione tra funzione di fitness e metriche di valutazione Per valutare se esiste correlazione tra l’andamento della funzione di fitness e quello delle metriche di valutazione sono stati ottenuti dei grafici che mostrano l’andamento rispetto al numero della generazione delle stesse riguardanti la soluzione che presenta la migliore out-tile dissimilarity al- l’interno del fronte di Pareto, tali grafici sono stati confrontati con quelli che mostrano l’andamento della funzione di fitness. Si illustra ora l’andamento tipico riscontrato nel caso in cui la griglia dei tasselli venga inizializzata in maniera uniforme, in figura 5.3 e 5.4 si mostrano rispettivamente gli andamenti della funzione di fitness e delle metriche di valutazione per un’esecuzione rappresentativa riguardante il mosaico bird. Dai grafici si nota che esiste una buona correlazione tra l’andamen- to della funzione di fitness e tutte le metriche di valutazione oggettiva (l’indicatore count è stato trascurato in quanto rimane costante duran- te l’evoluzione), in quanto queste ultime presentano tutte un andamento monotono crescente al trascorrere delle generazioni. Questa correlazione si riscontra in quasi tutti i casi in cui si utilizza l’inizializzazione uniforme. Consideriamo ora il caso in cui la griglia dei tasselli venga inizializzata mediante l’algoritmo di preprocessing. Oltre agli andamenti aventi la tipologia descritta nel caso precedente, ossia crescita pressoché monotona di tutte le metriche di valutazione,
  • 42. 5. Risultati 36 0 10000 20000 30000 40000 50000 60000 0.46 0.47 0.48 0.49 0.5 0.51 0.52 Generation Precision 0 10000 20000 30000 40000 50000 60000 0.6 0.605 0.61 0.615 0.62 0.625 Generation Recall 0 10000 20000 30000 40000 50000 60000 0.52 0.53 0.54 0.55 0.56 0.57 0.58 Generation F-Measure Figura 5.4: Andamento tipico delle metriche di valutazione nel caso in cui la griglia venga inizializzata in modo uniforme 0 10000 20000 30000 40000 50000 -0.3 -0.28 -0.26 -0.24 -0.22 -0.2 -0.18 -0.16 Generation Out-TileDissimilarity Out-Tile Dissimilarity Ground truth Out-Tile Dissimilarity 0 10000 20000 30000 40000 50000 0.24 0.26 0.28 0.3 0.32 0.34 0.36 Generation In-TileDissimilarity In-Tile Dissimilarity Ground truth In-Tile Dissimilarity Figura 5.5: Andamento dei valori della funzione di fitness nel caso in cui la griglia venga inizializzata tramite preprocessing
  • 43. 37 Efficacia dell’algoritmo 0 10000 20000 30000 40000 50000 0.66 0.665 0.67 0.675 0.68 Generation Precision 0 10000 20000 30000 40000 50000 0.635 0.64 0.645 0.65 0.655 0.66 Generation Recall 0 10000 20000 30000 40000 50000 0.655 0.656 0.657 0.658 0.659 0.66 Generation F-Measure Figura 5.6: Andamento delle metriche di valutazione nel caso in cui la griglia venga inizializzata tramite preprocessing in questo caso si verificano anche gli andamenti riportati in figura 5.5 e 5.6, da cui si nota un incremento dell’indicatore precision a discapito dell’indicatore recall, il che fa si che la f-measure risultante non vari di molto durante al trascorrere delle generazioni. Il valore di tale parametro risulta comunque significativamente superiore al caso precedente, fatto confermato anche dalle analisi riportate in seguito. Il fenomeno dell’incremento della metrica precision a discapito di re- call è dovuto probabilmente al fatto che solitamente i tasselli presenti nelle segmentazioni ottenute dall’algoritmo sono interamente contenuti all’interno delle corrispondenti tessere della ground truth. Questo fatto implica che i primi catturano nella maggior parte dei casi solo pixel ap- partenenti alle tessere del mosaico ma non tutti i pixel appartenenti alle stesse. L’intervallo di variazione di tali metriche risulta più ristretto rispetto al caso precedente in quanto utilizzando il preprocessing la configurazione iniziale è più vicina a quella ottima. Complessivamente si può concludere che la correlazione tra l’anda- mento della funzione di fitness e quella delle metriche di valutazione è soddisfacente e che gli indicatori in ed out-tile color dissimilarity rappre- sentano dei buoni obiettivi da ottimizzare per effettuare la segmentazione di un mosaico.
  • 44. 5. Risultati 38 5.2 Modalità di evoluzione In questa sezione si espongono i risultati del confronto tra la modalità di evoluzione basata sui working sets e quella che prevede che possano essere apportate modifiche all’intera griglia di tasselli ad ogni generazione. Per effettuare questo confronto sono stati considerati i dati riguardanti le seguenti varianti: Tabella 5.1: Varianti utilizzate per il confronto tra le due modalità di evoluzione Variante Modalità Dimensione pop. Preprocessing Formato poligoni 5 griglia intera 20 no rettangoli 7 working sets 20 no rettangoli Si espongono ora i risultati ottenuti: Tabella 5.2: Confronto tra le due modalità di evoluzione Mosaico Mod. Evoluzione Prec Rec Fm T (s) bird full 49.5 64.5 56.0 9608 ws 48.4 63.8 55.0 8905 church full 42.6 64.2 51.2 8908 ws 41.2 64.4 50.2 8685 flower full 60.3 62.5 61.4 10253 ws 57.8 59.5 58.6 10335 museum full 48.4 72.5 58.1 197 ws 48.0 69.9 56.9 188 university full 36.2 63.6 46.2 95 ws 36.4 64.6 46.5 100 I valori presenti in tabella sono ottenuti effettuando delle medie sulle diverse esecuzioni e sulle segmentazioni appartenenti al gruppo 1. La colonna “Mod. Evoluzione” identifica la modalità di evoluzione utilizzata ed i suoi valori hanno il seguente significato: full Si consente di apportare modifiche all’intera griglia di tasselli ad ogni generazione.
  • 45. 39 Gestione delle intersezioni ws Si utilizza il metodo basato sui working sets. Dai dati si osserva che usando il metodo basato su working sets si riscontra una leggera riduzione del tempo di esecuzione a scapito di una diminuzione degli indicatori utilizzati nella valutazione, per questo motivo si è preferito utilizzare la modalità di esecuzione full per le altre varianti considerate. 5.3 Gestione delle intersezioni Per valutare l’influenza della gestione delle intersezioni sulla qualità delle segmentazioni sono stati considerati contemporaneamente i dati prove- nienti da tutte le varianti testate. I risultati in tabella riguardano i valori ottenuti dalla valutazione delle segmentazioni appartenenti ai gruppi 1 e 3, ossia le segmentazioni aventi migliore in ed out-tile color dissimilarity presenti all’interno del fronte di Pareto e le segmentazioni ottenute da queste mediante gestione delle intersezioni. Tabella 5.3: Confronto tra le varie modalità di gestione delle intersezioni Mosaico Gestione Int. Count Prec Rec Fm bird max Area 0.20 49.4 50.2 49.7 max OTD 0.18 49.7 48.8 49.1 nessuna 0.29 59.9 63.5 61.3 church max Area 0.33 40.3 47.9 43.7 max OTD 0.31 40.2 46.3 42.8 nessuna 0.09 49.0 61.3 54.1 flower max Area 0.21 59.4 48.2 53.1 max OTD 0.20 59.1 47.2 52.4 nessuna 0.19 67.2 57.1 61.5 museum max Area 0.25 56.2 57.4 56.2 max OTD 0.25 55.7 55.8 55.3 nessuna 0.04 63.0 67.8 64.5 university max Area 0.27 50.4 55.3 52.1 max OTD 0.28 49.5 52.9 50.3 nessuna 0.19 55.9 65.9 59.3 I parametri in tabella costituiscono le medie rispetto alle esecuzioni e alle varianti.
  • 46. 5. Risultati 40 Dai dati si riscontra in generale una diminuzione degli indicatori pre- cision, recall e di conseguenza f-measure in seguito all’applicazione dell’al- goritmo di gestione delle intersezioni. Questo è dovuto al fatto che i primi due indici sono ottenuti mediante degli operatori di massimo sui tasselli: per ogni tassello della ground truth è solamente il poligono appartenente alla segmentazione da valutare che presenta il massimo valore dell’area dell’intersezione con il primo che da un contributo non nullo all’indice, chiamiamo M l’insieme dei poligoni aventi questa propietà. Rimuovendo un poligono possono verificarsi due casi: se questo appartiene a M si veri- ficherà una diminuzione degli indici, in caso contrario questi rimarranno invariati. In ogni caso il loro valore dopo l’applicazione dell’algoritmo sarà minore o uguale a quello di partenza. Le considerazioni sopra citate non valgono invece per l’errore di con- teggio: il valore di tale indice può infatti migliorare se nella segmentazione considerata sono presenti più tasselli rispetto alla ground truth, cosa che si verifica nel caso del mosaico bird. 5.4 Dimensione della popolazione Per valutare l’influenza della dimensione della popolazione sono stati confrontati i dati relativi alle seguenti varianti: Tabella 5.4: Varianti utilizzate per stimare l’influenza della dimensione della popolazione Variante Modalità Dimensione pop. Preprocessing Formato poligoni 2 griglia intera 20 si q. convessi 6 griglia intera 50 si q. convessi 4 griglia intera 100 si q. convessi Dalla tabella si osserva che tutti i parametri sono stati mantenuti costanti eccetto la dimensione della popolazione. Si riportano di seguito i risultati ottenuti in termini di metriche di valutazione e tempo di esecuzione per i vari mosaici.
  • 47. 41 Fronte di Pareto Tabella 5.5: Influenza della dimensione della popolazione sulle metriche di valutazione Mosaico Dim. Pop. Prec Rec Fm T (s) bird 20 67.6 63.5 65.4 6982 50 67.7 63.3 65.5 18936 100 68.3 63.0 65.5 37051 church 20 53.8 59.7 56.6 7179 50 54.4 58.3 56.3 17910 100 54.8 57.8 56.3 37258 flower 20 73.4 56.8 64.1 5732 50 73.4 54.5 62.5 14000 100 73.9 52.6 61.5 28662 museum 20 74.0 66.0 69.8 216 50 74.3 67.5 70.7 607 100 74.2 66.6 70.2 1222 university 20 70.2 66.6 68.3 223 50 71.0 67.2 69.1 635 100 71.6 67.1 69.3 1184 I valori riportati in tabella si riferiscono alla media degli indicatori effettuata sulle varie esecuzioni e sulle segmentazioni appartenenti al pri- mo gruppo (migliore in ed out-tile dissimilarity senza l’applicazione della gestione delle intersezioni). Dai risultati si evince che il valore dell’indicatore precision tende ad aumentare a discapito dell’indicatore recall al crescere della dimensione della popolazione. Questo fatto fa si che l’andamento del parametro f- measure risultante rimanga pressoché costante in media. Si riscontra inoltre che il tempo di esecuzione aumenta in modo lineare rispetto alla dimensione della popolazione. 5.5 Fronte di Pareto Per valutare come le soluzioni ottenute sono distribuite all’interno del fronte di Pareto sono stati considerati i dati ottenuti da tutte le varianti testate. Si riportano i risultati nella seguente tabella
  • 48. 5. Risultati 42 Tabella 5.6: Distribuzione delle soluzioni all’interno del fronte di Pareto Mosaico Soluzione Count Prec Rec Fm bird Max Fm 0.29 59.9 63.7 61.4 Min ITD 0.29 60.0 63.2 61.2 Max OTD 0.29 59.7 63.8 61.3 Min Fm 0.29 59.8 63.4 61.2 church Max Fm 0.09 49.0 61.5 54.2 Min ITD 0.09 49.1 61.0 54.1 Max OTD 0.09 48.9 61.6 54.1 Min Fm 0.09 48.9 61.2 54.0 flower Max Fm 0.19 67.2 57.5 61.7 Min ITD 0.19 67.4 56.8 61.4 Max OTD 0.19 67.1 57.4 61.5 Min Fm 0.19 67.3 56.9 61.3 museum Max Fm 0.04 63.2 68.4 64.8 Min ITD 0.04 63.4 67.2 64.4 Max OTD 0.04 62.7 68.4 64.5 Min Fm 0.04 63.0 67.4 64.2 university Max Fm 0.19 56.1 66.5 59.6 Min ITD 0.19 56.1 65.4 59.1 Max OTD 0.19 55.8 66.5 59.4 Min Fm 0.19 55.8 65.5 59.0 I valori in tabella si riferiscono alle medie rispetto alle esecuzioni, ed effettuate sulle segmentazioni identificate dalla colonna “Soluzione”, i cui valori hanno il seguente significato: Max Fm Segmentazione avente la migliore f-measure presente all’inter- no del fronte di Pareto. Min Fm Segmentazione avente la peggiore f-measure presente all’inter- no del fronte di Pareto. Min ITD Segmentazione avente il miglior valore del parametro in-tile color dissimilarity presente all’interno del fronte di Pareto. Max OTD Segmentazione avente il miglior valore del parametro out-tile color dissimilarity presente all’interno del fronte di Pareto.
  • 49. 43 Formato del genotipo Dai risultati si evince che la variabilità all’interno del fronte di Pareto non è elevata e che la soluzione avente la massima out-tile color dissi- milarity risulta quasi sempre migliore rispetto a quella avente la minore in-tile color dissimilarity. In conclusione si può dire che la prima risulta una buona candidata ad essere la segmentazione da fornire come output al termine dell’algoritmo genetico. 5.6 Formato del genotipo Per valutare l’influenza del formato del genotipo sugli indicatori si sono considerati i dati ottenuti dalle seguenti varianti: Tabella 5.7: Varianti utilizzate per confrontare i due formati del genotipo Variante Modalità Dimensione pop. Preprocessing Formato poligoni 1 griglia intera 20 si rettangoli 2 griglia intera 20 si q. convessi Si espongono ora i risultati ottenuti Tabella 5.8: Confronto tra i due formati del genotipo impiegati Mosaico Formato Poligoni Prec Rec Fm T (s) bird Quad. Convessi 67.6 63.5 65.4 6982 Rettangoli 66.3 64.4 65.3 6747 church Quad. Convessi 53.8 59.7 56.6 7179 Rettangoli 52.8 61.4 56.8 6901 flower Quad. Convessi 73.4 56.8 64.1 5732 Rettangoli 72.0 57.9 64.2 5033 museum Quad. Convessi 74.0 66.0 69.8 216 Rettangoli 73.8 66.2 69.8 196 university Quad. Convessi 70.2 66.6 68.3 223 Rettangoli 69.3 68.4 68.9 180 I valori in tabella sono ottenuti effettuando delle medie sulle esecuzioni e sulle segmentazioni appartenenti al gruppo 1. Dall’analisi dei risultati si evince che utilizzando il formato basato sui quadrilateri convessi si ottengono dei valori degli indicatori precision e
  • 50. 5. Risultati 44 recall rispettivamente superiori ed inferiori rispetto al formato rimanente. Non ci sono differenze significative per quanto riguarda il valore della f-measure risultante. Per quanto riguarda il tempo di esecuzione si è riscontrato un valore inferiore utilizzando il formato basato sui rettangoli, il che è probabil- mente dovuto al fatto che questo richiede un minor numero di parametri e specifica una più semplice procedura di espressione del genotipo. 5.7 Inizializzazione della griglia Per confrontare le due modalità di inizializzazione della griglia, ossia quel- la uniforme e quella basata su preprocessing sono state considerate le seguenti varianti: Tabella 5.9: Varianti utilizzate per confrontare le modalità di inizializzazione della griglia Variante Modalità Dimensione pop. Preprocessing Formato poligoni 2 griglia intera 20 si q. convessi 3 griglia intera 20 no q. convessi Si espongono ora i risultati ottenuti: Tabella 5.10: Confronto tra le due modalità di inizializzazione della griglia dei tasselli implementate Mosaico Inizializzazione Count Prec Rec Fm T (s) bird Uniforme 0.44 49.5 64.5 56.0 9608 Preprocessing 0.17 66.3 64.4 65.3 6747 church Uniforme 0.18 42.6 64.2 51.2 8908 Preprocessing 0.03 52.8 61.4 56.8 6901 flower Uniforme 0.42 60.3 62.5 61.4 10253 Preprocessing 0.01 72.0 57.9 64.2 5033 museum Uniforme 0.07 48.4 72.5 58.1 197 Preprocessing 0.02 73.8 66.2 69.8 196 university Uniforme 0.19 36.2 63.6 46.2 95 Preprocessing 0.19 69.3 68.4 68.9 180
  • 51. 45 Confronto con TOS I valori in tabella sono ricavati effettuando delle medie sulle esecuzioni e sulle segmentazioni del gruppo 1. Dai risultati si riscontra un significativo miglioramento della f-measure e dell’errore sul conteggio su tutti i mosaici. Questo è dovuto al fatto che utilizzando il preprocessing si ottiene una configurazione iniziale più vicina a quella ottima agevolando quindi la convergenza dell’algoritmo. 5.8 Confronto con TOS 5.8.1 Confronto attraverso le metriche di valutazione Si effettua ora il confronto tra l’algoritmo sviluppato e TOS [1], che risulta il migliore tra gli agoritmi valutati nel lavoro [3] utilizzando i risultati contenuti nello stesso paper. Tabella 5.11: Confronto tra l’algotitmo TOS e quello svluppato in questo lavoro (GA), i risultati riguardanti TOS sono ottenuti utilizzando il valore del parametro principale che massimizza l’indice f-measure Mosaico Metodo Count Prec Rec Fm bird TOS 0.03 52.8 81.7 64.2 GA 0.17 68.3 63.1 65.5 church TOS 0.54 56.4 71.9 63.2 GA 0.03 54.8 58.0 56.3 flower TOS 0.06 49.4 67.8 57.2 GA 0.01 73.8 52.9 61.6 museum TOS 0.14 64.4 87.3 74.1 GA 0.02 74.2 67.3 70.6 university TOS 0.90 63.2 78.5 70.1 GA 0.19 71.7 67.6 69.5 I risultati ottenuti dal paper riguardanti l’algoritmo TOS sono sta- ti ricavati impostando come valore del parametro principale quello che massimizza l’indice f-measure. Un’analisi per individuare quali sono i pa- rametri che portano alla migliore f-measure per l’algoritmo genetico non è stata effettuata per motivi di tempo, quindi il confronto che ci si accinge ad effettuare non è completamente equo. I parametri utilizzati sono stati quelli che consentono di ottenere un ragionevole errore sul conteggio. I risultati presenti in tabella 5.11 riguardanti l’algoritmo sviluppato in questo lavoro sono ottenuti considerando i dati provenienti dalla seguente variante:
  • 52. 5. Risultati 46 (a) TOS (b) GA Figura 5.7: Confronto tra la segmentazione migliore ottenuta tramite TOS e la segmentazione proveniente dall’algoritmo genetico avente la migliore out- tile dissimilarity presente all’interno del fronte di Pareto, alla quale è stato poi applicata la gestione delle intersezioni Tabella 5.12: Variante utilizzata per il confronto con TOS Variante Modalità Dimensione pop. Preprocessing Formato poligoni 4 griglia intera 100 si q. convessi I valori in tabella sono ottenuti effettuando una media tra i valori provenienti dalle varie esecuzioni e sulla segmentazione avente la migliore f-measure riscontrata nel fronte di Pareto senza applicare la gestione delle intersezioni. Dai risultati ottenuti si evince che i valori della f-measure registrati nei due casi sono simili, per quanto riguarda l’errore sul conteggio invece l’algoritmo genetico fornisce risultati generalmente migliori, in ogni ca- so dal confronto effettuato utilizzando le metriche oggettive non emerge chiaramente un vincitore. 5.8.2 Confronto empirico In figura 5.7 vengono mostrati i risultati provenienti dai due algoritmi ottenuti in termini di segmentazioni del mosaico university. Dalle figure si può notare che TOS, come tutti gli algoritmi conside- rati nel paper [3], fornisce come risultato una partizione dell’immagine. Una segmentazione di questo tipo non è completamente appropriata per rappresentare un mosaico in quanto un pixel dell’immagine può anche non appartenere ad alcun tassello ma bensì ad una regione in corrispon- denza del filler. L’algoritmo genetico sviluppato in questo lavoro tiene
  • 53. 47 Confronto con TOS invece conto di questo aspetto e quindi fornisce informazioni in più, con- sentendo di stabilire anche quali sono i pixel che non appartengono ad alcun tassello. Il fatto di fornire come risultato una partizione dell’immagine è inol- tre vantaggioso per quanto riguarda i risultati ottenuti in termini delle metriche di valutazione. In questo caso infatti ogni tassello della ground truth presenta intersezione non vuota con almeno un tassello della seg- mentazione. Nel caso dell’algoritmo genetico può accadere invece che alcuni tasselli della ground truth rimangano scoperti portando un con- tributo nullo alle metriche, fatto che è inoltre più probabile se si applica l’algoritmo a posteriori di gestione delle intersezioni.
  • 54.
  • 55. Capitolo 6 Conclusioni e sviluppi futuri In conclusione si può dire che attraverso questa tesi si è esplorata l’ap- plicazione di tecniche basate sul calcolo evoluzionistico alla risoluzione del problema della segmentazione di un mosaico, ottenuto un algoritmo che fornisce buoni risultati in termini di qualità empirica e paragonabi- le al miglior algoritmo considerato nel paper [3] per quanto riguarda le metriche di valutazione oggettive. In futuro si può considerare il raffinamento di diversi aspetti dell’al- goritmo e l’introduzione di ulteriori migliorie, tra le quali: • Passaggio a formati del genotipo più espressivi rinunciando even- tualmente al vincolo della convessità dei poligoni. • Introduzione della gestione delle intersezioni durante l’evoluzione. • Implementazione di operazioni di accorpamento/differenza tra po- ligoni per gestire le intersezioni al posto della rimozione degli stessi. • Raffinamento dell’algoritmo di preprocessing per l’inizializzazione della griglia. 49
  • 56. 6. Conclusioni e sviluppi futuri 50 (a) Immagine originale (b) Segmentazione Figura 6.1: Esempio di segmentazione ottenuta dall’algoritmo genetico. I tasselli sono stati riempiti del colore medio presente dell’immagine originale in corrispondenza degli stessi
  • 57. Bibliografia [1] Lamia Benyoussef and Stéphane Derrode. Tessella-oriented segmen- tation and guidelines estimation of ancient mosaic images. Journal of Electronic Imaging, 17(4):043014–043014, 2008. [2] Kalyanmoy Deb, Samir Agrawal, Amrit Pratap, and Tanaka Meyari- van. A fast elitist non-dominated sorting genetic algorithm for multi- objective optimization: Nsga-ii. In Parallel problem solving from nature PPSN VI, pages 849–858. Springer, 2000. [3] Gianfranco Fenu, Nikita Jain, Eric Medvet, Felice Andrea Pellegri- no, and Myriam Pilutti Namer. On the assessment of segmenta- tion methods for images of mosaics. In Computer Vision, Imaging and Computer Graphics Theory and Applications (VISAPP), 10th International Joint Conference on, pages 130–137, 2015. 51