Università degli Studi di Trieste
Corso di Laurea Magistrale in Ingegneria Informatica
Tesi di Laurea
Segmentazione automatica di immagini di mosaici tramite tecniche di calcolo evoluzionistico
Timeus Nicola
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
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