Tecniche semi-automatiche per l`annotazione semantica di

annuncio pubblicitario
Alma Mater Studiorum
Università degli Studi di Bologna
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
Tesi di Laurea in Sistemi Informativi LS
Tecniche semi-automatiche per
l’annotazione semantica di dati
multimediali
Candidato:
Elisa Rondini
Relatore:
Chiar.mo Prof. Paolo Ciaccia
Correlatori:
Dott.ssa Ilaria Bartolini
Ing. Marco Patella
Anno Accademico 2004/2005 - Sessione II
.
.
“What the caterpillar calls the end,
The world calls a butterfly.”
- Lao Tze -
Indice
Introduzione
1
9
Organizzazione della tesi . . . . . . . . . . . . . . . . . . . . . 11
1 Introduzione ai sistemi di ricerca di immagini
1
2
13
Sistemi di ricerca basati sul contenuto . . . . . . . . . . . . . . 15
1.1
Architettura di un sistema CBIR . . . . . . . . . . . . 16
1.2
Sistemi region-based . . . . . . . . . . . . . . . . . . . 18
1.3
Caratterizzazione del contenuto di immagini . . . . . . 18
Cos’è l’etichettamento? . . . . . . . . . . . . . . . . . . . . . . 19
2.1
Etichettamento di immagini mediante keyword . . . . . 19
Etichettamento a singola keyword . . . . . . . . . . . . 21
Etichettamento a multipla keyword . . . . . . . . . . . 23
2.2
3
Le ontologie di dominio . . . . . . . . . . . . . . . . . . 23
Obiettivi per lo scenario di riferimento . . . . . . . . . . . . . 27
2 Stato dell’arte
1
29
Etichettamento semi-automatico mediante
Mixed-Media Graph . . . . . . . . . . . . . . . . . . . . . . . . 30
1.1
2
Valutazioni . . . . . . . . . . . . . . . . . . . . . . . . 31
Etichettamento semi-automatico mediante
Multi-Modal Story-oriented video Summarization
2.1
3
. . . . . . . 32
Valutazioni . . . . . . . . . . . . . . . . . . . . . . . . 34
Organizzazione mediante
Database Multi-Strutturali . . . . . . . . . . . . . . . . . . . . 35
3.1
Definizione di Database Multi-Strutturali . . . . . . . . 39
3.2
Definizione di Pairwise Disjoint Collection . . . . . . . 39
6
Indice
3.3
4
Valutazioni . . . . . . . . . . . . . . . . . . . . . . . . 40
Etichettamento basato su apprendimento
mediante istanza multipla . . . . . . . . . . . . . . . . . . . . 42
4.1
5
Valutazioni . . . . . . . . . . . . . . . . . . . . . . . . 45
Etichettamento automatico basato
su selezione di feature . . . . . . . . . . . . . . . . . . . . . . . 46
5.1
6
Valutazioni . . . . . . . . . . . . . . . . . . . . . . . . 48
Fusione di contesto, contenuto
ed ontologia semantica . . . . . . . . . . . . . . . . . . . . . . 49
6.1
7
Valutazioni . . . . . . . . . . . . . . . . . . . . . . . . 51
Ricerca di similarità basata su connessioni di un grafo . . . . . 53
7.1
Valutazioni . . . . . . . . . . . . . . . . . . . . . . . . 56
3 Proposta per l’etichettamento
automatico di immagini
57
1
Scenario principale . . . . . . . . . . . . . . . . . . . . . . . . 58
2
Formalizzazione del modello . . . . . . . . . . . . . . . . . . . 59
3
Soluzione iniziale . . . . . . . . . . . . . . . . . . . . . . . . . 64
4
3.1
Definizione formale dell’approccio . . . . . . . . . . . . 65
3.2
Costruzione del Mixed-Media Graph . . . . . . . . . . 66
3.3
Correlazione mediante Random Walk with Restart . . 67
3.4
L’algoritmo Cross-modal Correlation Discovery . . . . 69
3.5
Vantaggi e svantaggi . . . . . . . . . . . . . . . . . . . 70
Presentazione dell’approccio proposto . . . . . . . . . . . . . . 74
4.1
Costruzione della matrice di similarità
SimilarityTable . . . . . . . . . . . . . . . . . . . . . . 74
4.2
Fase di generazione delle etichette . . . . . . . . . . . . 79
4.3
Successivo raffinamento . . . . . . . . . . . . . . . . . . 85
4.4
Vantaggi apportati dall’approccio proposto . . . . . . . 93
4 Imagination
95
1
Applicazione di Windsurf al progetto Imagination . . . . . . . 96
2
Interfacciamento con il database MySql . . . . . . . . . . . . . 98
3
Integrazione di una molteplicità di tassonomie . . . . . . . . . 102
4
Architettura software . . . . . . . . . . . . . . . . . . . . . . . 105
Indice
7
4.1
Considerazioni relative al linguaggio . . . . . . . . . . . 105
4.2
Struttura di Imagination . . . . . . . . . . . . . . . . . 105
4.3
Struttura di Jont . . . . . . . . . . . . . . . . . . . . . 115
5
Interfaccia grafica di Imagination . . . . . . . . . . . . . . . . 118
6
Interfaccia grafica di Jont . . . . . . . . . . . . . . . . . . . . 131
7
Valutazioni sui parametri di Imagination . . . . . . . . . . . . 131
Bibliografia
145
Introduzione
Lo sviluppo raggiunto negli ultimi anni nell’ambito informatico e nelle tecnologie ad esso connesse ha reso sempre più frequente l’uso dei computer e
di Internet al fine di conseguire i più svariati obiettivi, siano essi di studio, di
lavoro o di semplice divertimento. Ciò ha portato ad un notevole incremento
del materiale multimediale su cui ogni giorno facciamo affidamento sia esso
di tipo testuale, video o audio. Nasce, per questo motivo, la necessità di gestire questa sempre crescente quantità di informazione in modo strutturato
al fine di rendere più efficienti ed efficaci le ricerche che vengono compiute su
di essa.
Non è facile raggiungere questo scopo poiché, parallelamente alla crescita
della quantità di informazioni disponibili, è anche notevolmente aumentato il numero di utenti che a tali contenuti vuole accedere. Di conseguenza
l’utente medio che si serve delle risorse disponibili in formato digitale è spesso inesperto riguardo alle tecniche atte a recuperarle. I sistemi di recupero
di immagini (le immagini sono, senza dubbio, il tipo di dato multimediale al
giorno d’oggi più diffuso seconde solo ai dati puramente testuali) hanno avuto
per molto tempo come obiettivo quello di fornire un’interfaccia utente adatta
a guidarlo nel modo più opportuno verso gli obiettivi che lui ha in mente,
spesso poco chiari e definiti anche nella mente dell’utente stesso, aiutandolo a
formulare una query, o interrogazione, in modo corretto e nascondendo però,
all’utente stesso, un meccanismo di elaborazione veloce e efficace.
L’uso frequente di Internet ha sottolineato come sia necessario limitare al
massimo il numero dei false drop derivati da una ricerca: nessuno è, infatti, interessato alla ricezione di risultati scorretti, soprattutto se per poterli
visualizzare è necessario sprecare parte della banda disponibile. Una tecnica
di retrieval ovvero di reperimento deve essere, dunque, efficace, efficiente e
10
Introduzione
presentare un’interfaccia utente possibilmente amichevole e semplice pur nascondendo un sistema potente.
Tra tutte le risorse disponibili, la più significativa è probabilmente l’immagine: essa rappresenta dei contenuti a volte difficilmente esprimibili solo tramite
le parole e necessita di relativamente poco spazio rispetto a contenuti mutimediali quali video o audio.
Essendo, però, peculiarità dell’uomo quella di capire il significato delle cose,
sorge la necessità di trovare un sistema di ricerca di immagini basato sul loro
contenuto semantico, o concettuale. Esistono diverse soluzioni tradizionali
che permettono, in maniera efficace, di reperire immagini dotate di determinate caratteristiche di basso livello (low level feature) quali colore, tessitura e
forma, questo con la consapevolezza che non è sufficiente in quanto serve una
tecnica che consenta all’utente di cercare le immagini raffiguranti concetti o
oggetti dotati di una ben determinata semantica. Proprio in questo ambito
la ricerca diventa, però, meno accurata se si usano sistemi tradizionali in
quanto non risulta immediato dedurre il significato di un’immagine a partire
dalle sue caratteristiche elementari.
Questo problema è noto con il nome di “gap semantico” . Tra le varie definizioni attribuite a questo concetto vi è quella secondo cui esso denota la
differenza sussistente fra le caratteristiche di basso livello e la similarità fra
concetti di alto livello. In ogni caso esso denota la differenza che c’è fra ciò
che il computer è un grado di comprendere da solo e ciò che l’uomo è in grado di astrarre avendo a disposizione le caratteristiche di basso livello, ossia i
concetti.
Non è semplice ridurre questo gap semantico, ma negli ultimi anni la ricerca
si è preoccupata molto a riguardo. Da tali sforzi è emersa l’importanza di
generare dei metadati opportuni che facciano da ponte fra le caratteristiche
di basso livello (low level feature) e il livello semantico o concettuale, ossia un metodo per annotare le immagini sfruttando dati che ne descrivano
il contenuto semantico. Questo viene fatto affinché un sistema di recupero
di immagini possa risultare molto più familiare per l’utente che, in genere,
durante la propria attività di ricerca, è molto più abituato a pensare alle
immagini a livello di significati semantici ad esse associati piuttosto che a
caratteristiche tecniche associate alle stesse quali colore, tessitura, forma etc.
0.1 Organizzazione della tesi
11
Da queste considerazioni di base nasce e si sviluppa il presente lavoro di tesi
che si pone come obiettivo quello di esaminare quali sono le tecniche, per
gestire in modo semi-automatico e automatico l’annotazione di immagini,
introdotte negli ultimi anni.
L’idea è quella di partire dalla proposta che è stata studiata approfonditamente durante l’attività di tirocinio curriculare, i cui dettagli si possono
ritrovare in [30], al fine di valutare in maniera oggettiva i vantaggi e gli svantaggi connessi a quest’ultima. A partire da tale proposta, il presente lavoro
di tesi si ripromette di modellare un approccio innovativo di annotazione
semi-automatica di immagini composto da una molteplicità di algoritmi in
grado di fondere principalmente due tecniche di base con l’obiettivo di migliorare sia l’efficienza (intesa come velocità di generazione) sia l’efficacia
(intesa come qualità dei termini prodotti) nella generazione automatica delle
etichette.
1
Organizzazione della tesi
Il presente lavoro di tesi viene suddiviso nei seguenti capitoli:
• Capitolo 1
Viene fornita un’introduzione ai sistemi di image retrieval, presentando
il funzionamento generale dei sistemi di ricerca basati sul contenuto (sistemi CBIR), e viene valutata l’importanza di lavorare non solamente
con low level feature, ma anche con la semantica. Si presentano i macro approcci connessi all’etichettamento automatico di immagini e, al
termine, vengono descritti gli obiettivi che ci si prefigge di raggiungere
nel presente lavoro di tesi.
• Capitolo 2
In questo capitolo viene presentato lo stato dell’arte attuale relativo
ai processi di annotazione automatica e semi-automatica di immagini
mostrando i differenti approcci individuati mediante schede riassuntive
in grado di mappare i tratti salienti di ognuno di essi e facendo delle
valutazioni sul loro grado di bontà e/o applicabilità rispetto allo sce-
12
Introduzione
nario di riferimento e agli obiettivi che ci si è prefissati di raggiungere.
• Capitolo 3
Viene fornita la formalizzazione dello scenario di riferimento. Questo
capitolo si propone di parlare dell’approccio che si è scelto di seguire durante l’attività di tirocinio curriculare presentando i vantaggi ed
esponendo le problematiche ad esso connesse. Al termine viene descritto e formalizzato l’approccio di annotazione automatica di immagini
proposto, esponendone tutti i dettagli algoritmici e valutando i vantaggi da esso introdotti.
• Capitolo 4
Viene fornita una descrizione dettagliata del prototipo software Imagination (“IMage semAntics: ontoloGy mappiINg & Auto capTIONing”).
Si espone il modo in cui è stato possibile applicare il progetto Windsurf
al prototipo Imagination. Vengono forniti i dettagli relativi all’interazione con il DBMS MySql. Viene presentato lo scenario multitassonomico di riferimento, descrivendo cos’è un’ontologia e dove quest’ultima
è stata applicata in ambito progettuale. Vengono descritte sia l’architettura software del sistema sia l’interfaccia grafica di quest’ultimo,
in particolare vengono introdotti anche esempi esplicativi del funzionamento del prototipo stesso e valutazioni sulla scelta dei valori dei
parametri utilizzando i risultati sperimentali raccolti.
• Conclusioni
Vengono riportate alcune valutazioni conclusive sia riguardo ai problemi emersi durante lo sviluppo dell’applicazione, sia riguardo gli eventuali sviluppi futuri che si potrebbero apportare al sistema per migliorare il processo di generazione automatica delle etichette e la successiva
annotazione di nuove immagini non ancora etichettate.
Capitolo 1
Introduzione ai sistemi di
ricerca di immagini
L’obiettivo principale di questo capitolo è quello di presentare i sistemi di
reperimento di immagini e di capire come e perché è stato necessario introdurre tecniche di annotazione automatica di immagini al fine di migliorare il
processo di recupero delle stesse nei sistemi globali di image retrieval. Con la
diffusione di database di immagini di crescenti dimensioni è sorta l’esigenza
di rappresentarne sintatticamente il contenuto per poterle poi confrontare
in fase di ricerca. Sono nati cosı̀ i cosiddetti sistemi “Content Based Image
Retrieval ” (CBIR).
I primi sistemi CBIR sono nati negli anni ’90 per far fronte alla necessità di
gestire un numero di immagini sempre crescente.
L’approccio tradizionale, sviluppato a partire dagli anni ’70, prevedeva infatti
una descrizione delle immagini basata sull’annotazione manuale di stringhe
di attributi (ad esempio l’autore, l’anno e il titolo di una fotografia), ed in
questo modo ci si riportava al caso degli algoritmi di ricerca basati sul testo
noti da tempo.
Tale metodo è entrato in crisi negli anni ’90 essendo in pratica inutilizzabile
per la gestione di dataset costituiti da milioni di oggetti: oltre a richiedere
all’operatore un carico di lavoro inaccettabile nella fase di popolazione del
database, si fornisce una descrizione delle immagini troppo soggettiva (tipicamente individui diversi potrebbero ad esempio scegliere attributi diversi)
e troppo spesso imprecisa a causa delle difficoltà nel dare una descrizione
14
Introduzione ai sistemi di ricerca di immagini
verbale delle stesse.
Esistono diverse soluzioni tradizionali che permettono, in maniera efficace, di
reperire immagini dotate di determinate caratteristiche di basso livello (low
level feature) quali il colore e la tessitura, questo con la consapevolezza che
non è sufficiente in quanto serve una tecnica che consenta all’utente di cercare le immagini raffiguranti concetti o oggetti dotati di una ben determinata
semantica. Proprio in questo ambito la ricerca diventa, però, meno accurata
se si usano sistemi tradizionali in quanto non risulta immediato dedurre il
significato di un’immagine a partire dalle sue caratteristiche elementari.
Questo problema è noto con il nome di “gap semantico” . Tra le varie definizioni attribuite a questo concetto vi è quella secondo cui esso denota la
differenza sussistente fra le caratteristiche di basso livello e la similarità fra
concetti di alto livello. In ogni caso esso denota la differenza che c’è fra ciò
che il computer è un grado di comprendere da solo e ciò che l’uomo è in grado
di astrarre da caratteristiche di basso livello, ossia i concetti.
Non è semplice ridurre questo gap semantico, ma negli ultimi anni la ricerca
si è preoccupata molto a riguardo. Da tali sforzi è emersa l’importanza di
generare dei metadati opportuni che facciano da ponte fra le caratteristiche
di basso livello e il livello semantico o concettuale, ossia un metodo per annotare le immagini sfruttando dati che ne descrivano il contenuto semantico.
Questo viene fatto affinché un sistema di recupero di immagini possa risultare molto più familiare per l’utente che, in genere, durante la propria attività
di ricerca è molto più abituato a pensare alle immagini a livello di significati
semantici ad esse associati, piuttosto che a caratteristiche tecniche associate
alle stesse quali colore, tessitura, forma etc.
Queste ed altre considerazioni hanno portato all’introduzione di una seconda
generazione di sistemi di ricerca di immagini che fosse adatta al nuovo scenario presentato.
In questo capitolo si andranno a presentare le problematiche connesse al reperimento di contenuti multimediali all’interno di database di grosse dimensioni, andando a soffermare l’attenzione sulle principali tendenze che si sono
evolute negli ultimi anni. Si offrirà una descrizione per i sistemi di image retrieval ovvero per i sistemi di reperimento di immagini. Si parlerà dell’importanza connessa alla possibilità di gestire un etichettamento semi-automatico
1.1 Sistemi di ricerca basati sul contenuto
15
o automatico di immagini, al fine di essere applicato ai sistemi di image retrieval, presentando gli obiettivi che si pensa potranno essere raggiunti con
il presente lavoro di tesi.
1
Sistemi di ricerca basati sul contenuto
Esistono ad oggi pochissimi prodotti commerciali che includono moduli per la
ricerca basati sul contenuto, cosı̀ come pochi sono i pacchetti software utilizzabili: uno dei più sfruttati è senza dubbio QBIC (Query By Image Content),
sviluppato dall’ Almaden Research Center dell’IBM.
La maggior parte dei sistemi CBIR esistenti sono prototipi di ricerca sviluppati in laboratori ed università; tra i tanti i più noti sono Photobook, sviluppato al MIT Media Lab., VisualSEEk della Columbia University, NeTra della
UCSB, WALRUS sviluppato presso i Bell Laboratories, Blobworld dell’università della California, SIMPLIcity della Stanford University e WINDSURF
sviluppato presso l’Università di Bologna.
Il crescente interesse mostrato nei confronti dei sistemi per la gestione e il
reperimento di immagini è legato al sempre maggior numero di settori nei
quali vengono utilizzati, ad esempio in applicazioni Web ma anche nella medicina, nel campo militare e nella prevenzione del crimine.
Come si può notare, si tratta di settori applicativi molto diversi tra loro: le
immagini che devono essere gestite presentano, quindi, caratteristiche comuni all’interno dello stesso settore applicativo, ma in generale completamente
diverse tra un settore e l’altro. Questo suggerisce come un approccio specializzato possa essere più semplice da gestire rispetto ad un approccio generico:
infatti sfruttando la conoscenza del particolare dominio applicativo è possibile scegliere il metodo più opportuno in grado di caratterizzarne il contenuto
(cosı̀ ad esempio può risultare un inutile sforzo estrarre informazioni di forma
da fotografie rappresentanti paesaggi). Nella maggior parte dei casi tuttavia
si suppone di non conoscere a priori nessuna caratteristica comune alle immagini che il sistema dovrà processare per non perdere in generalità e sviluppare
sistemi di ricerca adatti a basi di dati eterogenee.
16
Introduzione ai sistemi di ricerca di immagini
1.1
Architettura di un sistema CBIR
Un sistema di ricerca di immagini basato sul contenuto deve riuscire ad estrarre da ogni immagine, e in modo automatico, una qualche rappresentazione
semantica a basso livello del contenuto che sia comprensibile dal calcolatore
e possa, quindi, permettere i confronti in fase di interrogazione.
Come si può notare in Figura 1.1 si possono distinguere due fasi distinte in
un sistema CBIR:
• La fase cosiddetta di popolazione del database (o di pre-processing), in
cui avviene l’estrazione automatica delle caratteristiche di basso livello
(low level feature) dell’immagine (ad esempio la distribuzione del colore, informazioni di tessitura, di forma etc.). Tali informazioni vengono
poi memorizzate ed eventualmente indicizzate. Questa fase è di norma
abbastanza costosa in termini di tempo.
• La fase di interrogazione vera e propria (o fase di query processing), in
cui l’utente ad alto livello, tipicamente attraverso un’interfaccia grafica,
formula un’interrogazione alla collezione creata in precedenza mediante
esempi visivi (selezionando un’immagine oppure disegnando lui stesso
una forma di esempio se il sistema lo consente). L’immagine query selezionata, in generale, deve essere a sua volta processata dal sistema per
estrarre feature analoghe a quelle memorizzate per il database. In questo modo le caratteristiche estratte da ciascuna immagine della collezione sono comparate con quelle dell’immagine query secondo il modello
di similarità implementato dal sistema: il problema del confronto fra
immagini si riconduce, quindi, alla sola determinazione di una misura
di distanza fra le feature estratte. Questa seconda fase deve avere una
durata molto breve perché i risultati devono essere presentati all’utente
in tempo reale. Nei sistemi CBIR più avanzati sono integrati meccanismi di interazione con l’utente detti di Relevance Feedback mediante i
quali l’utente può, sulla base dei risultati ottenuti, riformulare la query
fornendo al sistema informazioni aggiuntive; ad esempio selezionando
le immagini, tra quelle presentate come risultato, che ritiene rilevanti.
I vari CBIR differiscono fra loro perché adottano soluzioni diverse relativamente sia all’estrazione delle feature che alla valutazione della similarità,
1.1.1 Architettura di un sistema CBIR
17
Figura 1.1: Architettura di un Sistema Content-Based Image Retrieval.
18
Introduzione ai sistemi di ricerca di immagini
oltre che alle modalità di indicizzazione dei dati utilizzate per aumentare
l’efficienza.
1.2
Sistemi region-based
Qualora le immagini in esame abbiano una struttura complessa e non omogenea considerare l’immagine come un unico oggetto atomico non porta a
risultati soddisfacenti: ad esempio se due immagini raffigurano lo stesso oggetto, ma su sfondi diversi, le caratteristiche globali estratte probabilmente
saranno molto differenti, quando invece la semantica dell’immagine potrebbe
essere sostanzialmente la stessa.
Per superare questi limiti è stato introdotto l’approccio “region-based ”. I
sistemi che implementano tale approccio suddividono l’immagine in regioni
omogenee in base alle feature utilizzate e descrivono poi ciascuna regione mediante feature locali quali colore, tessitura e forma. Viene definita una misura
di distanza per valutare la similarità fra le regioni, si confrontano le regioni
e solo in un secondo tempo, sulla base dei risultati parziali, si confrontano le
immagini nella loro totalità.
1.3
Caratterizzazione del contenuto di immagini
Le proprietà usate per la caratterizzazione delle immagini (o delle regioni
presenti) sono per lo più percettive.
In particolare, quelle più utilizzate come feature dai sistemi di ricerca di
immagini basati sul contenuto sono il colore e la tessitura. La scelta delle
caratteristiche da estrarre da un’immagine è sempre il risultato di un compromesso tra efficacia del risultato ed efficienza in termini di spazio su disco
e di tempo necessario per l’elaborazione. Combinando, infatti, tra loro le
caratteristiche principali si possono sia definire proprietà più complesse, ad
esempio utilizzando le relazioni spaziali fra gli oggetti e attribuendo un significato semantico ad alcune loro particolari combinazioni, sia aumentare anche
le informazioni da recuperare e memorizzare in fase di analisi dell’immagine.
1.2 Cos’è l’etichettamento?
2
19
Cos’è l’etichettamento?
Per avere un sistema di image retrieval efficiente è bene che le immagini
stesse, che fanno parte di un database, siano caratterizzate da un contenuto
semantico ovvero da delle etichette di termini che ne possano denotare il loro
contenuto. Non ci si vuole più accontentare solamente di una caratterizzazione sintattica, basata su feature di basso livello, bensı̀ si necessita di avere
una caratterizzazione contenutistica. Per questo motivo si vuole cercare di
studiare un metodo che consenta di etichettare le immagini mediante contenuti semantici in un modo che sia il più possibile automatico. Prima di
presentare lo stato dell’arte su ciò che è stato fatto nel mondo nell’ambito
dell’etichettamento automatico, è opportuno chiarire tutti i dettagli che ci
consentono di capire cosa significa gestire una fase di etichettamento.
Supponiamo di lavorare in ambito locale e di avere a disposizione un database di immagini. Mediante il processo di etichettamento si vuole fornire
una caratterizzazione ad ogni immagine, attribuendole uno o più significati
semantici. Tali contenuti possono essere espressi mediante una molteplicità
di forme: concetti testuali, etichette semantiche, triple RDF (Resource Description Framework) come descritto in [1] etc. Le triple RDF, a differenza
dei semplici concetti testuali o delle etichette semantiche che si esprimono
mediante parole, consentono l’etichettamento grazie alla possibilità di articolare frasi più complesse in cui i semplici termini possono essere correlati
mediante delle relazioni. Una tripla potrebbe essere rappresentata, ad esempio, in questo modo: “pecora bruca erba” oppure “gattino beve latte” etc.
In questo scenario i termini “pecora”, “erba”, “gattino” e “latte” rappresentano i concetti semantici mentre “bruca” e “beve” le relazioni connesse alle
azioni svolte. Il processo di annotazione consiste, dunque, nell’attribuire dei
significati semantici ad un’immagine.
2.1
Etichettamento di immagini mediante keyword
L’etichettamento di immagini mediante keyword non è un’idea innovativa
nell’ambito dei sistemi di image retrieval in quanto, già da tempo, si usa
associare alle immagini delle parole chiave, o keyword, definite dall’utente al
fine di descrivere l’immagine stessa.
20
Introduzione ai sistemi di ricerca di immagini
Il metodo delle keyword, fino a poco tempo fa utilizzato in maniera manuale
(il lavoro di annotazione viene svolto da persone che idealmente sfogliano le
immagini una per una ed associano ad esse una descrizione appropriata) e
per questo motivo particolarmente time consuming, può diventare effettivamente molto potente se implementato nella giusta maniera, ma fino ad ora
è stata data molta libertà all’utente nella scelta della modalità del tipo di
annotazione da dare ad un’immagine, cosa che ha manifestato una serie di
problemi quali:
• la soggettività dell’annotazione e nella scelta delle keyword;
• la presenza di ambiguità nelle annotazioni dovuta all’uso di vocabolari
mal costruiti in dotazione a chi si occupa di annotare le immagini o
addirittura inesistenti.
Al fine di rendere il più possibile automatico tale processo di annotazione sono state studiate varie tecniche. Tutte queste tecniche prevedono, comunque,
un intervento utente anche se in maniera più limitata ad agevole. Globalmente i metodi adottati per inferire gli aspetti semantici di un’immagine sono il
relevance feedback e l’apprendimento. Il primo consiste nello sfruttare i giudizi dati di volta in volta dall’utente in merito ai risultati di una query al fine
di capire quali immagini siano effettivamente rilevanti e quali no, mentre il
secondo ha lo scopo di addestrare il sistema ad annotare da solo le immagini
partendo da un training set (relativamente ridotto rispetto all’intero database di immagini a disposizione) di immagini campione già annotate prima
dall’utente per via manuale.
In Figura 1.2 è rappresentato l’ambiente di lavoro di un sistema di recupero
di immagini dotato di un modulo di relevance feedback. L’interfaccia utente
è composta da tre moduli particolari: l’interfaccia per immettere la query
(query interface), l’image browser attraverso cui l’utente può prendere visione delle immagini che costituiscono il risultato e l’interfaccia di feedback. Da
notare la freccia circolare che indica come il processo di feedback può essere
eventualmente ripetuto più e più volte al fine di aggiornare, dopo ogni iterazione, il giudizio dato dall’utente alle immagini restituite dal sistema di volta
in volta. Ogni implementazione specifica di questa struttura può proporre i
propri algoritmi per rendere concreti i vari moduli, l’obiettivo in questa sede
1.2.1 Etichettamento di immagini mediante keyword
21
è quello di fare comprendere solo il funzionamento di base del feedback di
rilevanza.
Figura 1.2: Sistema che gestisce il recupero di immagini e che possiede un
modulo di Relevance Feedback.
Etichettamento a singola keyword
A questo punto è opportuno indicare che l’etichettamento può avvenire mediante singola etichetta o mediante etichettamento multiplo. I due approcci
sono molto differenti.
Nel caso dell’etichettamento singolo l’idea è che l’utente presenta al sistema
una nuova immagine query da etichettare, il sistema spesso può condurre
un’analisi basata su contenuto ragionando a livello di similarità di vettori di
22
Introduzione ai sistemi di ricerca di immagini
feature di basso livello (colore, tessitura, forma etc. dell’immagine) associati
alle immagini o alle singole regioni delle immagini e il sistema stesso genera
un set di immagini simili all’immagine query. Dopo aver fatto un ranking delle
migliori immagini restituite, (quelle più simili all’immagine query stessa) si
va a vedere quali di queste sono etichettate e si può andare ad etichettare la
nuova immagine magari con l’etichetta che compare più di frequente fra tutte
le immagini restituite come risultato della query. In ogni caso, all’immagine
è associata una sola etichetta legata al contenuto semantico dell’oggetto più
rilevante presente in essa.
Un esempio di quanto detto è presentato in Figura 1.3.
Figura 1.3: Esempio di etichettamento a singola keyword.
1.2.2 Le ontologie di dominio
23
Etichettamento a multipla keyword
Legame fra etichetta - regione di segmentazione
Nel caso dell’etichettamento multiplo abbiamo un maggior grado di precisione perché, ad ogni immagine, possiamo associare un numero variabile di
etichette, tante quante sono le regioni costitutive dell’immagine stessa. Il
processo di generazione delle etichette dipende molto dalla specifica implementazione che viene presentata nei vari approcci proposti in letteratura; in
ogni caso, in questo frangente diventa importantissimo avere un buon sistema che sia in grado di segmentare in maniera opportuna l’immagine nelle
sue regioni costitutive e avere a disposizione buoni algoritmi che valutino le
similarità dei vettori di feature associate alle varie regioni.
Un esempio di quanto detto è presentato in Figura 1.4.
Legame fra set di etichette - immagine
Sempre relativamente all’ etichettamento multiplo potremmo avere il caso in
cui, ad ogni immagine, possiamo associare un numero variabile di etichette
non dipendente dal numero di regioni in cui può globalmente essere segmentata l’immagine stessa, ma dipendente da tecniche di analisi di frequenza e
di probabilità con cui le stesse etichette vanno ad annotare immagini simili
all’immagine query.
Un’idea intuitiva di come dovrebbe operare un approccio di questo tipo è
illustrato in Figura 1.5.
2.2
Le ontologie di dominio
Prima di collocare le ontologie di dominio nel nostro scenario di riferimento è
opportuno chiarire cosa queste ultime rappresentano ed i motivi per cui sono
state introdotte.
Un’ontologia è una struttura che consente di memorizzare i concetti in modo gerarchico esprimendo le relazioni reciproche fra gli stessi, le regole, gli
assiomi, ed i vincoli specifici di dominio. L’ontologia lessicale per eccellenza
è WordNet.
24
Introduzione ai sistemi di ricerca di immagini
Figura 1.4: Esempio di etichettamento multiplo con una keyword associata
ad ogni regione.
1.2.2 Le ontologie di dominio
25
Figura 1.5: Esempio di etichettamento multiplo con keyword associate alle
immagini e non alle singole regioni delle immagini stesse.
26
Introduzione ai sistemi di ricerca di immagini
WordNet, di cui si parla in [2] e [3], è una rete semantica realizzata presso
l’università di Princeton da un gruppo di ricerca guidato da George Miller che si basa su teorie psicolinguistiche sull’organizzazione della memoria
lessicale. Nel sistema, consultabile online [4], nomi verbi aggettivi e avverbi
sono organizzati in un insieme di sinonimi ognuno dei quali rappresenta un
concetto lessicale di base. L’ontologia WordNet è suddivisa, infatti, in queste
quattro categorie sintattiche.
L’etichettamento di immagini attingendo a termini, che sono classificati gerarchicamente all’interno di una struttura ad albero, conduce a notevoli benefici se comparata alla fase descritta precedentemente di annotazione manuale.
L’uso di un’ontologia porta a diversi benefici sia in fase di annotazione sia in
fase di ricerca:
• la persona addetta all’annotazione non deve inventarsi dal nulla i concetti utilizzati per l’annotazione stessa (se l’ontologia è stata ben costruita è sufficiente scorrerla dalla cima dell’albero fino eventualmente
alle foglie navigando attraverso i concetti che più si addicono al contenuto espresso dall’immagine ed associando ad essa il significato più
opportuno);
• mediante un approccio ontologico si possono descrivere le relazioni
esistenti fra gli oggetti e quindi aumentare e migliorare la base di
conoscenza;
• ci si può basare su un uso dei termini standardizzato, evitando descrizioni soggettive e l’uso di omonimi (che diminuiscono la precision rate)
e di sinonimi (che diminuiscono la recall rate), evitando in generale le
ambiguità;
• spesso l’utente, all’atto di una ricerca, non sa esattamente cosa desidera e si trova a fare ricerche in un database di immagini senza sapere
esattamente quale sia il dominio applicativo e senza conoscere le keyword da usare per effettuare la ricerca. La ricerca basata su keyword
prese da un thesaurus non controllato non offre molti strumenti d’aiuto
all’utente al fine di guidarlo verso risultati significativi in quanto non
lo aiuta in nessuno dei tre seguenti aspetti:
- estrapolare le sue vere intenzioni e interessi;
- formulare adeguatamente la query;
1.3 Obiettivi per lo scenario di riferimento
27
- presentare nel modo migliore i risultati della ricerca accompagnandoli
con un insieme di altri risultati che, pur non soddisfacendo la query iniziale, possono essere interessanti per l’utente in quanto semanticamente
collegati al vero risultato della ricerca (reccomendation).
• l’uso di un’ontologia può, dunque, favorire una ricerca di tipo view based : con essa l’utente può scorrere le gerarchie dell’ontologia, come si
naviga attraverso le cartelle di un sistema operativo, esplorandole sempre più in profondità e scegliendo i concetti di interesse semplicemente
tramite un click del mouse limitando cosı̀ la possibilità di inserire query
con termini errati che possono portare a risultati vuoti.
• Semantic browsing: una volta focalizzato il campo di interesse e restituita, ad esempio, un’immagine come risultato, il modello ontologico
permette facilmente di trovare delle relazioni fra l’immagine selezionata
ed altre immagini. Tali immagini fra loro legate presentano, infatti, nella propria annotazione, dei concetti che puntano allo stesso nodo della
gerarchia ontologica che le mette in relazione, dunque, da un punto di
vista concettuale.
L’approccio di tipo ontologico presenta molteplici aspetti positivi, ma è bene
sottolineare che usarlo al meglio richiede tanto più lavoro nel definire l’ontologia e nella fase di annotazione delle immagini, quanto più dettagliata è
l’ontologia e il livello di dettaglio e di precisione voluti. La migliore soluzione
a livello attuale prevede, dunque, di potersi avvalere di un meccanismo di annotazione delle immagini semi-automatico o automatico sfruttando le idee di
base di un supporto ontologico a livello di tassonomia di concetti. La presenza di interventi umani, per quanto è necessario che sia limitata, è comunque
sempre rilevante anche in tali tecniche e può effettivamente manifestarsi in
diversi modi: è previsto l’intervento umano nel processo di annotazione durante la fase di apprendimento del sistema oppure durante l’intervento di
relevance feedback come descritto precedentemente.
3
Obiettivi per lo scenario di riferimento
Lo scenario di riferimento, su cui si vuole cercare di riflettere nella presente
attività di tesi è quello che prevede la possibilità di etichettare in maniera
28
Introduzione ai sistemi di ricerca di immagini
semi-automatica un’immagine mediante una molteplicità di termini che provengono da tassonomie multiple.
Assodato che l’utilizzo delle sole feature di basso livello non risultano sufficienti per consentire di fornire una buona e rilevante caratterizzazione dell’immagine dal punto di vista dei contenuti, abbiamo deciso di collocarci in uno
scenario che, pur essendo locale, prevede di operare mediante concetti semantici. Si suppone, inoltre, che i termini utilizzati per etichettare l’immagine in
esame non facciano parte di una sola, unica tassonomia bensı̀ possano essere
presi da differenti tassonomie gerarchiche di concetti. In questo scenario è
possibile prevedere dei legami, delle connessioni fra i termini che appartengono a diverse tassonomie anche se locali. L’idea è sempre quella di avere un
database di immagini ampiamente popolato e di sfruttare l’etichettamento di
un training set, set di immagini campione, al fine di gestire l’etichettamento
globale, in maniera semi-automatica, di una qualunque immagine non ancora
etichettata.
Ci si può domandare perché si desidera operare con uno scenario multitassonomico e la risposta riguarda la possibilità di lavorare, con esso, in
maniera molto più strutturata e di consentire, mediante l’utilizzo di molteplici tassonomie, di stabilire dei legami, delle connessioni semantiche fra
diverse ontologie che potrebbero essere fisicamente collocate su nodi (peer
semantici ) diversi. Si cerca di rendere modulare la struttura a livello locale
in modo da facilitare il mapping a livello distribuito.
Capitolo 2
Stato dell’arte
Prima di scegliere una precisa strada d’azione, risulta opportuno, in ogni
caso, valutare lo stato dell’arte attuale relativo ai processi di annotazione automatica e semi-automatica di immagini, soffermandosi sulle proposte più interessanti ed andando ad indagare quali aspetti rendono queste ultime adatte
per i fini che ci stiamo prefiggendo e quali altri aspetti vanno, invece, scartati
poiché non rilevanti in base agli obiettivi presentati nello scenario di riferimento. Si è deciso di concentrare la ricerca sugli studi più recenti che si sono
evoluti nel corso degli ultimi anni cercando, dapprima, di comprendere le
idee che stanno alla base degli approcci proposti e provvedendo, poi, a fare
una valutazione conservativa sui vantaggi e gli svantaggi connessi alla loro
applicazione in relazione al nostro scenario di riferimento. Tutto ciò con la
consapevolezza che le tecniche che verranno riassunte nei paragrafi successivi sono solamente alcune, quelle ritenute più significative, delle tante che
sono state esaminate e che fanno parte dello stato dell’arte. Fra quelle che, in
qualche modo, risultano rilevanti e che sono riportate dettagliatamente nello
stato dell’arte di [30], ritroviamo delle tecniche che in questa sede, per ragioni di completezza, abbiamo deciso semplicemente di citare suddividendole in
due grossi filoni.
Fra gli approcci che si concentrano principalmente sull’etichettamento automatico mediante multipla keyword possiamo elencare quelli proposti in [14],
[15], [16], [17], [18], [19] e [20].
Fra gli approcci che discutono di annotazione automatica e di recupero di
immagini basati su ontologie di dominio possiamo elencare quelli proposti in
30
Stato dell’arte
[21], [22], [23], [24], [25], [26], [27] e [28].
Questi sono gli obiettivi che si propone di raggiungere il presente capitolo.
1
Etichettamento semi-automatico mediante
Mixed-Media Graph
La tecnica proposta da [5] riguarda la presentazione di un approccio che
consente di andare ad annotare in maniera automatica qualunque tipo di
dato multimediale (immagini, contenuti audio, video etc.) sfruttando una
rappresentazione a grafo per gestire le correlazioni fra gli attributi presenti a seconda del differente contesto applicativo in esame. Il loro obiettivo è
quello di creare un metodo unificatore che sia indipendente dal dominio applicativo, che sia in grado di esprimere correlazioni fra vettori di feature e
che possibilmente possa essere applicato a corpose collezioni di oggetti sia
in relazione al training set delle immagini campione annotate sia per quanto
concerne i possibili tempi di risposta forniti dal sistema stesso. Gli autori si
concentrano sul processo di annotazione automatica delle immagini per mostrare l’efficienza e l’efficacia dell’approccio proposto. L’innovazione di questo
approccio riguarda la possibilità di gestire un etichettamento multiplo delle
immagini usando, a basso livello, i legami, le relazioni di similarità fra le
regioni costitutive delle immagini per definire a quali immagini già etichettate accedere al fine di recuperare i termini che, più di frequente, ricorrono
nell’annotazione con lo scopo di annotare una nuova immagine. Il numero di
etichette rimane, in ogni caso, svincolato dal numero di regioni in cui l’immagine può essere effettivamente segmentata.
Si va a lavorare sulle immagini andando a costruirsi staticamente dapprima
un grafo, “Mixed-Media Graph” (MMG), relativamente ad un training set
di immagini campione già etichettate. Il grafo ha tanti livelli quanti sono
gli attributi esaminati; ad esempio, nel caso delle immagini, il grafo sarebbe
costituito da tre livelli: il livello dell’oggetto-immagine (come primo attributo), il livello delle regioni che segmentano un’immagine, e conseguentemente
dei vettori di feature ad esse associate, (come secondo attributo) e il livello
dei termini (come terzo attributo). La gestione del processo di annotazio-
2.1.1 Valutazioni
31
ne automatica viene effettuata in questo modo: viene selezionata dall’utente
un’immagine query, vengono estratte runtime le feature da ogni regione che
viene estratta dall’immagine query stessa e si applica l’algoritmo “Random
Walk with Restart” (RWR) per andare a recuperare le k regioni più simili a
quella esaminata. RWR, il cui algoritmo viene dettagliato in [5], è una tecnica che viene utilizzata per calcolare l’affinità di un nodo “B” per un nodo
“A”. Esso opera in questo modo: avendo a disposizione un random walker
(camminatore casuale) si parte dal nodo “A” e si sceglie randomicamente uno
fra tutti i cammini disponibili di volta in volta per arrivare al nodo “B” ma,
prima di fare una scelta, con probabilità c, il random walker ritorna indietro
e riparte dal nodo “A”. Accedendo per similarità di regione si recuperano le
immagini a cui tali regioni appartengono e, a questo punto, si vanno a catturare tutti i termini utilizzati per etichettare tali immagini. Si fa un ranking
delle etichette utilizzate più di frequente e si decide di andare a prendere, fra
quelle, le prime k per etichettare la nuova immagine. L’algoritmo che consente di scoprire le correlazioni a modalità incrociata si chiama “Cross-modal
Correlation Discovery” (CCD) ed opera a livello matriciale.
Per una descrizione approfondita dei dettagli algoritmici, corredati anche di
esemplificazioni a riguardo, si rimanda al Capitolo 3.
1.1
Valutazioni
La tecnica presentata potrebbe rivelarsi utile per i nostri scopi, connessi all’etichettamento semi-automatico di immagini, poiché prevede di operare sia a
livello sintattico, utilizzando a basso livello i vettori di feature che caratterizzano ogni regione dell’immagine, sia a livello semantico ovvero consentendo
di associare all’immagine degli attributi legati al significato semantico e concettuale che emerge dall’immagine stessa.
Inoltre si va oltre il banale etichettamento mediante singola etichetta e si
procede ad associare ad un’immagine un set di etichette ovvero si opera
nel contesto di un multiplo etichettamento. Quest’ultimo consente, inoltre,
di connettere l’etichetta non ad una particolare regione dell’immagine bensı̀
all’immagine nella sua totalità in modo da poterla caratterizzare anche mediante contenuti “astratti” non ricavabili direttamente dalle specifiche regioni
in cui l’immagine stessa è segmentata.
32
Stato dell’arte
Risulta particolarmente significativa anche l’idea di effettuare una ricerca per
similarità su un sistema che è stato precedentemente organizzato fornendogli
una struttura a grafo (MMG) in cui tutto è modulare ed in cui i vari livelli
possono essere navigati mediante semplici ricerche fra attributi diversi.
Un’ulteriore pregio della tecnica proposta è connessa alla sua estrema eterogeneità: l’approccio può essere, infatti, utilizzato per l’annotazione automatica
di un qualunque tipo di dato multimediale, una volta che l’esperto del dominio ha deciso quale funzione di similarità utilizzare a seconda dello specifico
tipo di dato multimediale sia esso di tipo audio, video etc.
Il problema è che, se si pone l’accento su quelli che sono gli obiettivi del
presente lavoro di tesi ci si accorge che, in realtà, tale approccio non risolve il problema di come evitare la soggettività di quella che, anche durante
la fase di training set, potrebbe essere un’annotazione manuale poiché non
si contempla la possibilità di appartenenza dei termini semantici a nessuna
ontologia. I termini sono liberi, non ci sono legami fra di essi. Dal momento
che non si parla di tassonomia è ovvio che non viene preso in considerazione
neppure uno scenario multi-tassonomico in cui potrebbe essere prevista la
possibilità di organizzare i concetti in differenti tassonomie di concetti e che
rappresenta un po’ il cuore dei nostri studi.
Globalmente si potrebbe pensare di trarre spunto da tutto ciò che concerne
l’etichettamento gestito in modo semi-automatico mediante MMG, con la
consapevolezza di dover ragionare su come risolvere le probelmatiche a livello ontologico a causa della carenza che emerge in tale direzione da questo
approccio.
2
Etichettamento semi-automatico mediante
Multi-Modal Story-oriented video Summarization
La tecnica proposta da [6] è molto simile, dal punto di vista delle tecniche utilizzate, a quella proposta dagli stessi autori in [5]. Ancora una volta
questi ultimi tendono a proporre un framework che può essere utilizzato in
qualunque dominio applicativo e che sfrutta la costruzione di un grafo. Per la
2.2 Etichettamento semi-automatico mediante
Multi-Modal Story-oriented video Summarization
33
presentazione dell’approccio si concentrano in particolar modo sui contenuti
video.
La tecnica MMSS consente di lavorare con un framework molto generale che
si pone come obiettivo quello di scoprire le correlazioni fra le diverse modalità
di dato (e.g. frame/term/logo) che vengono estratte dai contenuti video. Le
correlazioni incrociate fra queste differenti modalità sono, poi, usate sia per
fornire dei sommari concettuali dei contenuti video proposti, sia per operare
a livello di reperimento dei contenuti video stessi. MMSS scopre, infatti, le
correlazioni incrociate fra i differenti modi di esprimere i contenuti ed è in
grado non solo di fornire buoni sommari dei video che vengono proposti, ma
anche di operare in ambito di un efficiente reperimento, o video retrieval,
degli stessi. Il data set utilizzato è un programma per news televisive. Ogni
programma per news viene spezzettato in un set di shot a ciascuno dei quali
è associato un frame ed un set di parole (in generale solo nomi o term) caratterizzanti. L’informazione riassuntiva viene espressa mediante i logo.
Ancora una volta l’idea è quella di costruire un grafo, chiamato GM M SS ,
utilizzando i termini, i frame ed i logo, come quello che viene proposto in Figura 2.1, e di navigarlo in vari modi mediante la tecnica Random Walk with
Restart (RWR), di cui si forniscono i dettagli algoritmici in [5] e [6], al fine
di catturare le informazioni rilevanti a seconda della modalità di ricerca che
deve essere compiuta. Il grafo è costituto da tre tipi di nodi (logo li , frame
fi e term ti ) e due tipi di archi (quelli tratteggiati ovvero i “same-logo edge”
e quelli continui ovvero i “term-occurence edge”).
Dal punto di vista del reperimento di sommari (story summarization) l’idea
è quella di presentare il logo e, partendo da ciò, il sistema sarà in grado di
catturare tutti i frame corrispondenti a quel nodo logo gestendo una navigazione del grafo che sfrutta i nodi termine. Al completamento della ricerca, il
sistema restituirà non solo i frame, ma anche i termini corretti connessi ad
una ricerca basata su logo (mediante un ranking dei valori restituiti dall’applicazione del RWR).
Durante il reperimento di video, all’interno di sistemi di video retrieval, data
una query costituita da un set di termini, l’obiettivo è quello di cercare di
recuperare tutti frame che sono più rilevanti in relazione a quella query. In
altre parole si vuole fornire un ordinamento di tutti gli shot in accordo alla
34
Stato dell’arte
vicinanza che questi ultimi hanno in relazione ai termini di query. In generale
MMSS pone al top della lista quelli che sono effettivamente gli shot rilevanti.
Figura 2.1: Grafo MMSS contenente tre tipi di nodi (logo li , frame fi e term
ti ) e due tipi di archi (quelli tratteggiati ovvero i “same-logo edge” e quelli
continui ovvero i “term-occurence edge”).
2.1
Valutazioni
La tecnica presentata è interessante poiché, come quella proposta in [5], consente di operare su diversi livelli cercando di gestire in modo automatico sia
l’etichettamento sia il recupero di contenuti (in questo caso video).
Il framework proposto risulta in tutto e per tutto ortogonale al tipo di dato
multimediale preso in esame. Si può valutare, infatti, che in [5] l’approccio
a grafo MMG era stato applicato efficientemente alle immagini, mentre in
questo caso, ovvero in [6], ci si concentra sui contenuti video anche se concretamente le cose non differiscono di molto.
L’idea è sempre quella di trovare le relazioni incrociate fra i vari livelli del
grafo che si costruisce, sia esso MMG, se si sta lavorando con delle immagini,
oppure MMSS, se si sta lavorando con dei video. L’efficienza si trova quando il grafo staticamente costruito viene navigato mediante il Random Walk
with Restart al fine di trovare i contenuti significativi dal cui ordinamento
vengono estratti i dati che il sistema è effettivamente in grado di restituire.
Diciamo che MMSS ci consente di rafforzare l’approccio basato su Mixed-
2.3 Organizzazione mediante
Database Multi-Strutturali
35
Media Graph che, in realtà, è probabilmente quello che più ci interessa in
quanto il tipo di dato multimediale su cui abbiamo deciso di concentrarci
sono proprio le immagini anche se, dal punto di vista della modalità di costruzione del framework stesso, i due approcci procedono in maniera del tutto
analoga.
3
Organizzazione mediante
Database Multi-Strutturali
La proposta presentata in [7] e [8] riguarda la costruzione di un modello concettuale che può essere applicato ad una molteplicità di contesti differenti.
Lo scopo è quello di arrivare a fare delle interrogazioni a livello semantico
che consentano di estrarre dei dati a partire da semplici concetti organizzati
gerarchicamente mediante l’uso di molteplici tassonomie. Intuitivamente, per
comprendere i fondamenti del modello, si può riportare un esempio.
Supponiamo di avere un’ampia collezione di articoli di giornale. Questi possono essere classificati in un certo numero di “dimensioni”:
• temporale: si collocano temporalmente i giornali in base a giorno-meseanno, se quotidiani, oppure mese-anno, se mensili, oppure settimanamese-anno, se settimanali etc.
• tipologica: articoli che potrebbero provenire da quotidiani o da giornali
settimanali o mensili ed, in questi casi, si va ad indagare la tipologia
di giornali: settimanali di economia, musica, sport etc. oppure mensili
con notizie di semplice intrattenimento.
• geografica: gli articoli possono riguardare fatti accaduti negli USA oppure in Europa e, se all’interno dell’Europa, potrebbero provenire dalla
Francia o dalla Germania o dall’Italia etc.
• contenutistica: ci possono essere articoli che parlano di guerra o di catastrofi naturali o di politica etc. Ciascuno di questi contenuti potrebbe
contenere delle sotto gerarchie.
Queste ovviamente sono solo alcune delle dimensioni che potrebbero essere
indagate ed, in ogni caso, ognuna di esse può essere valutata secondo differenti gradi di granularità. Ad esempio, la dimensione temporale che, da
36
Stato dell’arte
sola, potrebbe essere interpretata come una dimensione numerica e puntiforme, può essere, al contrario, organizzata gerarchicamente a seconda di quale
rappresentazione si decide di fornire ad essa stessa. Si potrebbe lavorare a
livello di intervalli temporali, oppure si potrebbe pensare ad una struttura
della data che preveda di descrivere il tempo inteso come insieme di secoli, i
secoli come insiemi di decenni, i decenni come insiemi di anni, gli anni come
insiemi di mesi, i mesi come insiemi di giorni e cosı̀ via. Si vede chiaramente
che le altre dimensioni elencate (tipologica, geografica e contenutistica) sono
già strutturate gerarchicamente.
Su database ampiamente popolati, in questo caso da documenti, e a fronte
di caratterizzazioni cosı̀ dettagliate è ovvio che si possono fare delle query
molto ampie come ad esempio queste di seguito proposte:
• Quali sono i dieci argomenti più comuni di tutta la collezione?
• Quali contenuti specifici sono diventati accesi argomenti di discussione relativamente alla guerra? Questi sottoargomenti sono presentati in
maniera diversa a seconda dei diversi tipi di giornale venduti in Europa?
Analizzando le query che vengono formulate, si può notare come queste operano in particolare in base alla logica fuzzy, ovvero l’idea è che non esiste
mai un’unica risposta sicuramente corretta o sicuramente errata, ma ci sono
molte risposte intermedie valide. Il risultato di una query viene ottenuto applicando una procedura di ottimizzazione.
La proposta presentata concerne la definizione di “Database Multi-Strutturali”
(MSDB). I MSDB comprendono sia i dati multimediali (nell’esempio precedente, articoli di giornale) sia le tassonomie di concetti intese come le varie
dimensioni in cui i termini sono organizzati in maniera gerarchica (nell’esempio precedente, si parla di dimensione temporale, tipologica, geografica e
contenutistica).
Le gerarchie di concetti vengono rappresentate mediante dei “reticoli” (rappresentazione di ordinamenti parziali attuata su un set di elementi) e, su
tali reticoli, vengono ammesse varie operazioni quali meet, ovvero intersezione, la cui rappresentazione è ∧, e join, ovvero unione, la cui rappresentazione è ∨, come operazioni binarie che godono delle proprietà commutativa e associativa. Per ogni elemento a e b vale la seguente proprietà
a ∧ (a ∨ b) = a ∨ (a ∧ b) = a. Il reticolo induce, inoltre, un ordine parziale
2.3 Organizzazione mediante
Database Multi-Strutturali
37
tale per cui a ≤ b se e solo se a ∧ b = a. Dato un reticolo L, si può scrivere
che a ∈ L se si vuole indicare che a è un elemento di L. Un reticolo si dice
dimensionato inferiormente e superiormente se dispone di due elementi bottom (⊥) e top (>) grazie ai quali, comunque scelto un qualunque elemento
a, se si applica l’operatore di meet fra l’elemento a e l’elemento bottom viene
restituito in uscita quest’ultimo (a ∧ ⊥ = ⊥), mentre se si applica l’operatore
di join fra l’elemento a e l’elemento top viene restituito in uscita quest’ultimo
(a ∨ > = >). In pratica, tutti i reticoli sono dimensionati ed è per questo
che si utilizza #(A) per indicare la cardinalità di A. Ad esempio, se stiamo operando nella dimensione geografica e facciamo il join di tutte le città
europee ovviamente otterremo il sovraconcetto più generale Europa. Se, al
contrario, stiamo operando nella dimensione temporale e facciamo il meet di
due intervalli temporali questo equivale a catturare l’intersezione fra i due
intervalli stessi.
Ogni dato multimediale può essere connesso a più termini di un reticolo;
globalmente, infatti, quando un oggetto è associato ad un concetto in un
reticolo, esso può dire di essere associato anche ad ogni altro concetto più
generale rispetto a quello in esame: ad esempio, un articolo che parla della
Francia è anche un articolo che parla dell’Europa poiché la Francia è una
nazione geograficamente contenuta in Europa.
Più si lavora a livello gerarchicamente basso all’interno di un reticolo e più si
pensa che i termini siano disgiunti fra loro. In realtà è vero che se ad esempio
andiamo ad indagare dal punto di vista contenutistico “sport” e “politica”
sono due aree completamente disgiunte, ma è anche vero che potrebbero esistere degli articoli connessi ad entrambi tali concetti: potremmo avere un
articolo di giornale che parla di un governatore che pratica, a livello agonistico, bodybuilding.
Si opera, inoltre, a livello di creazione successiva di reticoli andando a prendere il prodotto fra sottoinsiemi di reticoli, e quindi di gerarchie, differenti. Ad
esempio, “giornali francesi” deriva dal prodotto della dimensione tipologica
con la dimensione geografica. Questo esempio ci mostra come, lavorando a
livello di prodotto di dimensioni, spesso si vanno a caratterizzare in maniera
più specifica delle collezioni di dati piuttosto di fornirne una visione più globale.
38
Stato dell’arte
Un’ultima idea caratterizzante il modello è quella che prevede la definizione di “Pairwise Disjoint Collection” (PDC): un modo di suddividere un set
di documenti in parti concettualmente non sovrapponibili in modo tale che
ogni parte, singolarmente presa, può essere facilmente descritta utilizzando
gli elementi di una particolare multi-dimensione. Ad esempio, una PDC può
contenere sia “sport” sia “politica” entrambi appartenenti alla dimensione
tipologica dal momento che, se si tenta di attuare l’operatore di meet fra
questi concetti, ciò che viene restituito è l’elemento bottom, ovvero questi
concetti non condividono altri sottoconcetti più specifici.
Questo modello è utilizzato non solo per strutturare sia gli oggetti sia i concetti facenti parte del sistema, ma anche per consentire la formulazione di
query capaci di indagare e restituire ciò che è ritenuto rilevante. La query
viene formulata come un problema di ottimizzazione in grado di mappare i
set di oggetti in schemi di tipo PDC utilizzando varie tipologie di operazioni.
Le principali operazioni studiate sono:
• DIVIDE: questa operazione mostra come un insieme di oggetti si distribuiscono su un set di dimensioni. L’obiettivo di tale operazione è
quello di restituire una PDC in cui i documenti sono partizionati nella
maniera più equa possibile rispetto al set di dimensioni. Lavoriamo a
livello di partizione.
• DIFFERENTIATE: questa operazione consente all’utente di confrontare due insiemi differenti di documenti rispetto a un certo set di
dimensioni fissate. Lavoriamo a livello di confronto.
• DISCOVER: questa operazione consente di estrapolare dei pattern significativi dai dati. Da questo punto di vista si cerca, attraverso una
fase di mining di catturare dei comportamenti rilevanti che emergono
dai dati stessi. Lavoriamo a livello di scoperta di pattern.
Per utilizzare questi operatori sono stati proposti due tipologie di algoritmi:
la prima tipologia è in grado di operare in ambito mono-dimensionale proponendo degli algoritmi esatti, l’altra è in grado di agire in ambito multidimensionale ed, in questo contesto, di operare mediante degli algoritmi
approssimati.
2.3.1 Definizione di Database Multi-Strutturali
3.1
39
Definizione di Database Multi-Strutturali
Un database multi-strutturale (“Multi-Structural Database” o MSDB) è una
tripla di elementi (X, D, R) dove X = {x1 , x2 , ..., xn } rappresenta l’insieme
universo degli oggetti (o dei documenti per come vengono trattati dall’approccio proposto), D = {D1 , D2 , ..., Dm } indica il numero di dimensioni ed
R indica a quale documento appartengono gli elementi di ogni dimensione. Il
singolo elemento xi sarà utilizzato come un semplice identificatore con l’idea
che un identificatore può indifferentemente essere utilizzato per identificare
dati e metadati. Ogni dimensione Di è un reticolo dimensionato di concetti
e si assume che tutti i nodi del reticolo, utilizzati in tutti i reticoli, siano
distinti. Un vocabolario è V = ∪i Di include tutti i nodi del reticolo. La relazione di appartenenza R ⊆ XxV indica che un dato oggetto fa parte di un
elemento del reticolo.
In maniera del tutto analoga si possono definire dimensioni multiple per avere
la stessa struttura di dimensioni singole. Per un insieme non vuoto D0 ⊆ D la
multi-dimensione M D(D0 ) è definita come segue: se D0 è un singleton allora
la multi-dimensione è semplicemente la dimensione di un singolo elemento,
altrimenti se D0 = {D1 , D2 , ..., Dd } allora M D(D0 ) è ancora un reticolo i cui
elementi sono {l1 , ..., ld )|li ∈ Li } dove (l11 , ..., ld1 )∨(l12 , ..., ld2 ) = (l11 ∨l12 , ..., ld1 ∨ld2 )
e la stessa cosa vale per l’operatore di meet. La relazione di appartenenza R
è, di conseguenza, estesa al fine di contenere la coppia (x, (l1 , ..., ld )), con
x ∈ X, se e solo se essa contiene (x, li ) per tutti gli i.
3.2
Definizione di Pairwise Disjoint Collection
Le collezioni “Pairwise Disjoint Collection” (o PDC) rappresentano un modo di partizionamento di un set di documenti in parti concettualmente non
sovrapponibili in modo che ogni parte può essere facilmente descritta utilizzando gli elementi di una particolare multi-dimensione. Formalmente per
ogni multi-dimensione M D(D0 ) e per ogni set di elementi S = {l1 , ..., ld }
della multi-dimensione si può affermare che S è un P DC se li ∧ lj = ⊥ per
tutti gli i, j con i 6= j.
Un PDC, in contrasto a ciò che in generale rappresenta un set di cluster, può
essere comunicato facilmente ed in maniera concisa all’utente poiché di quel-
40
Stato dell’arte
lo esiste già uno schema. Ognuna delle operazioni analitiche, che sono state
descritte precedentemente, prende la multi-dimensione e altre informazioni e
restituisce un PDC su una ben definita multi-dimensione utilizzando le altre
informazioni per determinare quale PDC dovrebbe essere restituito.
Un PDC si dice completo per un sottoinsieme X 0 ⊆ X di oggetti se, per ogni
x ∈ X 0 , esiste qualche elemento l nel PDC tale che (x, l) ∈ R, il che significa che ogni documento concettualmente appartiene allo stesso elemento del
PDC. Quando si dice che un PDC è completo lo si intende completo su tutto
X.
3.3
Valutazioni
Ciò che viene presentato da questi autori è la possibilità di creare un modello
concettuale assolutamente generale che può essere applicato in ambiti diversi
e contesti specifici. Si suppone di avere a disposizione degli oggetti, dei dati
che, in uno degli innumerevoli esempi applicativi proposti, sono degli articoli
di giornale che in qualche modo vengono catalogati, classificati grazie alla
presenza di innumerevoli tassonomie di concetti. L’idea è che i singoli dati
sono qualificati utilizzando una molteplicità di strutture, i cosiddetti Database Multi-Strutturali e che, grazie a questa idea di strutturazione, si ha la
possibilità di introdurre un insieme di operatori che ci consentono di lavorare sui dati stessi utilizzando degli algoritmi esatti se operiamo su una sola
dimensione oppure degli algoritmi approssimati se stiamo operando su più
dimensioni contemporaneamente. L’obiettivo è quello di organizzare i dati,
di restituire in uscita quelli che risultano essere i più rilevanti, secondo una
logica piuttosto fuzzy, in base alle query che l’utente finale formula.
Gli autori propongono un set di operatori, ma se ne potrebbero costruire molti altri ad hoc in base a come si ritiene opportuno procedere nell’analisi dei
dati stessi. In questo caso si decide di creare un set di operatori che operano
o partizionando i dati rispetto alle dimensioni di interesse, o confrontando i
dati che sono stati classificati secondo certe dimensioni specifiche, o cercando
di estrarre dei pattern ricorrenti dai dati stessi.
Se noi cerchiamo di fare delle valutazioni qualitative in relazione all’approccio proposto, ci accorgiamo come tale modello può essere applicato al nostro
scenario di riferimento per quanto concerne la possibilità di mappare tutti
2.3.3 Valutazioni
41
i concetti in differenti tassonomie gerarchiche. Operando in questo modo, i
nostri dati sono le immagini, come tipo di dato multimediale in esame, e
tutti i termini che, da un punto di vista contenutistico servono per fornire
una caratterizzazione di alto livello per l’immagine stessa, sono organizzati
secondo delle tassonomie gerarchiche di concetti. È opportuno precisare che
stiamo lavorando a livello di tassonomie e non di “schemi”. Con gli schemi,
infatti, arriveremmo a stabilire delle relazioni gerarchiche fra concetti con
significati diversi e disconnessi; con le tassonomie organizziamo, al contrario,
in maniera gerarchica concetti che sono fra loro legati da delle relazioni di
contenimento di tipo “... is a... ” (... è un... ) o, a volte, ... part-of... (... è una
parte di... ) come si mostra in Figura 2.2.
L’approccio, di cui sono stati delineati i tratti essenziali, non presenta una
tecnica per l’etichettamento automatico di immagini, ma fornisce piuttosto
un modello di più alto livello che potrebbe essere preso in considerazione nella
fase in cui si deciderà di proporre una soluzione per lo scenario di riferimento iniziale. Tutto ciò con la consapevolezza che l’approccio presentato non
opera sulle feature di basso livello connesse all’immagine mentre, in realtà,
sarebbe bene proporre una soluzione globale per l’etichettamento che tenesse
in considerazione entrambi i fattori, sintattici e semantici.
Figura 2.2: Differenza organizzativa fra uno “Schema” ed una “Tassonomia”.
42
4
Stato dell’arte
Etichettamento basato su apprendimento
mediante istanza multipla
La proposta presentata in [9] riguarda l’applicazione di una tecnica che consente di annotare automaticamente un’immagine. Un’immagine può essere
segmentata in un set di regioni ed ogni regione può avere associati diversi
contenuti e rappresentare diversi significati semantici. Un primo passo consiste, dunque, nel segmentare l’immagine in regioni ed estrarre, da ogni regione,
un vettore di feature di basso livello connesse al colore, alla tessitura, alla
forma etc.
A questo punto viene applicato un modello statistico, a partire da un training
set di immagini campione già annotate, che consente di collegare le regioni
con le keyword per arrivare ad annotare una nuova immagine, facente parte
del testing set, non ancora etichettata. L’idea è ancora una volta che l’etichetta deve essere connessa all’immagine e non alla singola regione in cui
l’immagine stessa viene segmentata. Qui però si opera in modo differente
rispetto a ciò che viene proposto con l’approccio a grafi Mixed-Media Graph.
Per comprendere intuitivamente come l’approccio opera si pensi di avere una
situazione come quella proposta in Figura 2.3. La colonna di sinistra mostra
tre immagini rappresentanti una “tigre” mentre la colonna destra mostra
le regioni in cui le varie immagini sono state segmentate utilizzando “tagli
normalizzati”. Per trovare la corretta corrispondenza fra la regione di un’immagine e il termine “tigre” una macchina, che è in grado di apprendere, deve
essere capace di differenziare le regioni che effettivamente rappresentano una
“tigre” da tutte le altre regioni che presentano del rumore.
A questo punto si propone di apprendere la corrispondenza fra le regioni
dell’immagine e le keyword di annotazione attraverso la tecnica “MultipleInstance Learning” (MIL). La tecnica MIL, variazione di una forma di apprendimento supervisionato, ha il compito di apprendere un concetto dati
dei contenitori (bag) positivi o negativi di istanze. Ogni contenitore può contenere una molteplicità di istanze, ma un contenitore è etichettato come
“positivo” anche se una sola delle istanze in esso contenute riguarda quel
concetto. Un contenitore, al contrario, è etichettato come “negativo” solo se
tutte le istanze in esso contenute sono etichettate come negative in relazione
2.4 Etichettamento basato su apprendimento
mediante istanza multipla
43
Figura 2.3: Si mostrano tre immagini rappresentanti una “tigre” (colonna
sinistra) e le loro regioni (colonna destra). Un gran numero di regioni irrilevanti e rumorose, come “erba”, “acqua” e “cespuglio” fanno parte del
training set insieme alla keyword “tigre”.
al concetto in esame.
Concretizzando il tutto, si può dire che ogni regione rappresenta un’istanza e
che il set di regioni che segmentano l’immagine stessa costituiscono un bag.
Si attribuisce ad un’immagine un concetto se almeno una regione dell’immagine ha, ad essa associato, quel particolare significato semantico. Ad esempio,
sempre facendo riferimento alla Figura 2.3, la prima immagine è etichettata
con la keyword “tigre” ed è segmentata in 10 regioni. Queste 10 regioni rappresentano un “positive bag” per la keyword “tigre” ed, in questo “positive
bag”, ci sono solamente 2 istanze positive poiché solo 2 regioni sono rilevanti
per la parola “tigre”. Da questo punto di vista, se un’immagine è etichettata con un concetto ci si aspetta che almeno una regione di quell’immagine
riguardi quel particolare concetto anche se la segmentazione potrebbe non
essere perfetta. Un modo per risolvere il problema MIL è quello di esaminare
le distribuzioni delle istanze in modo da cercare un’istanza che sia vicina a
tutte le istanze contenute nei “positive bag” e che contemporaneamente sia
lontana da tutte le istanze contenute nei “negative bag”. Si deve identificare
un punto in cui c’è effettivamente la più alta “Diverse Density” di istanze
44
Stato dell’arte
positive.
Dopo che una certa “regione rappresentativa dell’immagine” è stata selezionata da MIL per essere associata ad una specifica keyword, il problema di
annotazione di un’immagine viene interpretato come un problema di classificazione che viene risolto attraverso l’utilizzo di un framework Bayesiano
che opera appoggiandosi al concetto di clustering. L’idea è questa: dati tutti i vettori di feature di tutte le regioni in cui l’immagine del “testing set”
non ancora etichettata può essere segmentata, ci si deve chiedere qual è la
probabilità che tale immagine appartenga alla classe del termine i-esimo specificato. Tutto ciò supponendo che le immagini che fanno parte del “training
set” siano state etichettate con un insieme di termini variabile e che siano
costituite, a loro volta, da regioni a cui sono associate delle feature di basso
livello. Il processo di Multiple-Instance Learning è stato riassunto in Figura
2.4.
Figura 2.4: MIL consente di predire la regione rappresentativa di un’immagine
più probabile, connessa ad uno specifico significato semantico, a partire dalle
immagini rilevanti e da quelle irrilevanti facenti parte del training set.
2.4.1 Valutazioni
4.1
45
Valutazioni
Cercando di collocare questo approccio all’interno del nostro scenario di riferimento, ci rendiamo conto che è possibile utilizzare questa tecnica per la
gestione di una fase di etichettamento semi-automatico di immagini poiché
l’approccio prevede di operare sia a livello sintattico (utilizzando a basso livello i vettori di feature che caratterizzano ogni regione dell’immagine) sia
a livello semantico, ovvero consentendo di associare all’immagine degli attributi legati al significato concettuale che emerge dall’immagine stessa.
Inoltre, si va oltre il banale etichettamento mediante singola etichetta e si
procede ad associare ad un’immagine un set di etichette, ovvero si opera nel
contesto di un etichettamento multiplo. Quest’ultimo consente di connettere
l’etichetta non ad una particolare regione dell’immagine bensı̀ all’immagine
nella sua totalità. Il problema è che, nella tecnica proposta, ciò che risulta cruciale è l’identificazione della regione rappresentativa dell’immagine. Se
quest’ultima non viene identificata in maniera corretta tutta l’intera fase di
annotazione non va a buon fine.
Un’ulteriore problematica è connessa alla possibilità di etichettare un’immagine mediante dei concetti “astratti”. Questo aspetto nasce dal fatto che la
tecnica proposta riesce a lavorare meglio là dove le feature sono molto caratterizzanti, ad esempio, se si deve riconosce l’immagine di una “tigre” nella
savana, mentre non riesce ad annotare correttamente ciò che è identificato da
feature più piatte come ad esempio quelle che possono rappresentare l’immagine che rappresenta una “folla di gente”. È vero anche che “folla di gente”
rappresenta un concetto abbastanza astratto.
Tutto si complica ulteriormente se si prende in considerazione il fatto che in
realtà, tale approccio non risolve il problema di come evitare la soggettività
nell’annotazione, poiché non si contempla la possibilità di appartenenza dei
termini semantici a nessuna ontologia. I termini sono liberi, non ci sono legami fra di essi. Dal momento che non si parla di tassonomia è ovvio che
non viene preso in considerazione neppure uno scenario multi-tassonomico in
cui potrebbe essere prevista la possibilità di organizzare i concetti in differenti tassonomie di concetti e che rappresenta un po’ il cuore dei nostri studi.
46
5
Stato dell’arte
Etichettamento automatico basato
su selezione di feature
La proposta presentata in [10] opera cercando di etichettare automaticamente un set di immagini andando a lavorare sulle feature di basso livello, ovvero
proponendo degli algoritmi di selezione di feature a cui sono stati attribuiti
dei pesi.
L’idea è che se un utente fa una query su un database con l’intezione di farsi
restituire dal sistema in uscita tutte le immagini contenenti delle tigri, è sufficiente che lui faccia una query con la keyword “tigre” al fine di ottenere come
risultato ciò che desidera. In realtà, ogni immagine può essere segmentata in
tante regioni a ciascuna delle quale idealmente può corrispondere uno o un
set di concetti. Per questo motivo si può pensare di rendere il sistema molto
più sofisticato se pensiamo, ad esempio, alla possibilità di farci restituire in
uscita da esso non tanto le immagini che contengono delle tigri quanto più
le immagini che contengono “tigre”, ma che non contengono delle regioni di
segmentazione che si riferiscono a “ruscello”. Per far ciò si deve operare sia
segmentando l’immagine nelle sue regioni significative, dette anche visual token, sia determinando le correlazioni fra le keyword e i visual token stessi.
Per gestire la segmentazione si utilizzano i “tagli normalizzati” che consentono di suddividere un’immagine in varie regioni a ciascuna delle quali viene
fatto corrispondere un vettore di feature ovvero di caratteristiche di basso
livello quali colore, tessitura, forma etc.
A questo punto si deve capire come connettere le keyword alle varie regioni di segmentazione. È possibile che una stessa regione sia condivisa da più
immagini, di conseguenza si opera mediante una fase di clustering al fine di
raggruppare le regioni simili per generare un set finito di blob-token. La premessa è che, se alcune regioni sono identiche, esse apparterranno allo stesso
cluster. Per questo motivo è necessario dapprima raggruppare, mediante una
fase di clustering, le regioni simili in modo da formare dei blob-token consistenti, poi si deve analizzare il legame fra le etichette e i blob-token. Per la
creazione dei blob-token, lo stato dell’arte attuale prevede di utilizzare degli
algoritmi di clustering quali k-means che operano su vettori di feature ad alta
dimensionalità e che assegnano uguale peso a tutte le dimensioni. Proprio a
2.5 Etichettamento automatico basato
su selezione di feature
47
causa della dimensionalità, le matrici che lavorano sui dati diventano troppo
sparse e le misure di distanza fra i vettori di feature stessi perdono sempre
più di significatività tanto che il risultato del clustering spesso viene falsificato. Gli autori propongono, dunque, un meccanismo di selezione delle feature
in modo da attribuire alle stesse un peso. Ad esempio, per la keyword “palla” la forma intesa come feature sarà sicuramente molto più rilevante della
feature colore o della feature tessitura, d’altro canto per la keyword “rosa”
risulterà invece dominante la feature colore. L’idea è quella di assegnare runtime ad ogni feature connessa ad ogni cluster di regioni un peso in accordo a
quanto quella feature risulta rilevante per quel particolare raggruppamento.
Per fare ciò loro propongono di utilizzare un metodo che stima tale rilevanza
mediante l’analisi di istogrammi. Per determinare il legame fra le keyword e
i blob-token si applicano dei modelli statistici che stimano la corrispondenza fra ogni coppia di keyword e cluster di regioni, poi si va a costruire una
matrice WxB di probabilità dove W indica il numero totale di keyword e B
indica il numero totale di blob-token. Tale matrice sarà riempita basandosi
su dei parametri di conteggio della frequenza con o senza l’attribuzione di
pesi, tecniche di Singular Value Decomposition e l’applicazione finale di un
algoritmo EM. A questo punto risulta banale determinare la corrispondenza
fra keyword e blob-token utilizzando la massimizzazione della probabilità o
dei pesi.
Un esempio di come si articola la corrispondenza fra gli oggetti di un’immagine e le keyword ad essi associate viene presentato in Figura 2.5.
Per accrescere l’accuratezza dell’annotazione si può cercare di trovare la corrispondenza fra oggetti vicini nelle immagini considerando il contesto. Ad
esempio, due oggetti potrebbero rivelarsi pressoché indistinguibili utilizzando come feature il colore (e.g., cielo e mare), ma un’indagine compiuta sugli
oggetti confinanti, oppure sul contesto, potrebbe aiutare a risolvere questa
ambiguità (e.g., se c’è un aereoplano molto probabilmente si starà parlando
di cielo). Globalmente, dunque, per gestire l’annotazione automatica si calcola la distanza fra l’oggetto rappresentato da una determinata immagine e
tutti i centroidi dei vari cluster blob-token e si va a rappresentare l’oggetto
stesso con la keyword relazionata al blob-token più vicino.
48
Stato dell’arte
Figura 2.5: Corrispondenza fra gli oggetti di un’immagine e le loro keyword.
5.1
Valutazioni
Cercando di collocare questo approccio all’interno dello scenario di riferimento, ci si rende conto che è possibile utilizzare questa tecnica per la gestione di
una fase di etichettamento semi-automatico di immagini poiché l’approccio
prevede di operare sia a livello sintattico (utilizzando a basso livello i vettori
di feature che caratterizzano ogni regione dell’immagine), sia a livello semantico (consentendo di associare all’immagine degli attributi legati al significato
concettuale che emerge dall’immagine stessa).
Si opera, anche in questo caso, in un contesto di etichettamento multiplo
associando ad un’immagine una molteplicità di termini caratterizzanti.
Neppure con tale approccio, però, si risolve il problema di come evitare la
soggettività nell’annotazione, poiché non si contempla la possibilità di far
derivare i termini semantici da nessuna ontologia. I termini sono liberi, non
ci sono legami fra di essi. Dal momento che non si parla di tassonomia è
ovvio che non viene preso in considerazione neppure uno scenario multitassonomico in cui potrebbe essere prevista la possibilità di organizzare i
concetti in differenti tassonomie di concetti e che rappresenta un po’ il cuore
dei nostri studi.
È vero che si opera a livello probabilistico, ma è anche vero che questa proposta si pone come obiettivo quello di connettere gli oggetti (o meglio le regioni)
che caratterizzano un’immagine e le feature di basso livello, caratterizzanti le
singole regioni in cui l’immagine stessa viene segmentata, utilizzando come
2.6 Fusione di contesto, contenuto
ed ontologia semantica
49
strumento intermedio le keyword. In ciò consiste la vera innovazione da cui
si potrebbe trarre spunto per automatizzare il processo di etichettamento.
6
Fusione di contesto, contenuto
ed ontologia semantica
Una proposta particolarmente interessante è quella presentata in [11].
Gli autori descrivono un framework probabilistico che utilizza i diagrammi di
influenza per fondere molteplici tipologie di metadati per gestire l’annotazione di fotografie. EXTENT fonde insieme informazioni connesse al contesto,
o context, (e.g., località, tempo, parametri della macchina fotografica), al
contenuto, o content, dell’immagine (e.g., le feature visuali che emergono
dall’immagine stessa) e all’ontologia semantica in modo molto stretto. Si utilizzano poi i vincoli causali per codificare sia i legami fra le variabili sia i
legami fra le variabili e le etichette semantiche.
Affinchè gli utenti possano sia organizzare in maniera più strutturata le immagini, sia ricercarle con più facilità è necessario andare a caratterizzare
ogni immagine con delle etichette semantiche indicanti informazioni di tempo (quando), di persone (chi), di località (dove), di punti di riferimento (cosa
si rappresenta) e di eventi (in generale, inferiti da tutte le informazioni precedenti). EXTENT fonde context, content e ontologia semantica insieme in
modo da generare delle etichette semantiche con cui le immagini possono
essere sia organizzate sia ricercate.
Identificare l’informazione connessa alla località ed al tempo è banale in quanto ogni macchina fotografica fornisce l’informazione relativa all’istante in cui
la fotografia è stata scattata mentre l’informazione sulla località può essere
inferita utilizzando i dati trasmessi da un GPS. Il problema si ha nel catturare le informazioni connesse a chi compare nella foto e a che cosa quest’ultima
rappresenta: è necessario, dunque, recuperare altre informazioni connesse al
context ed al content della foto. Le informazioni relative al contesto (context), fornite dalla macchina fotografica possono essere suddivise in tempo
(time), località (location), parametri della macchina (camera parameters) e
profilo utente (user profile). Le informazioni relative al contenuto (content)
50
Stato dell’arte
riguardano le caratteristiche di basso livello che sono estratte dall’immagine
stessa e possono essere suddivise in due categorie: holistic perceptual feature
(e.g., forma, colore, tessitura etc. di un’ immagine) e local perceptual feature
(e.g., bordi e punti salienti delle regioni o degli oggetti che fanno parte di una
foto). Un’altra importante sorgente di informazione riguarda la relazione fra
le label semantiche, indicata col nome di semantic ontology.
Per capire il funzionamento, ad alto livello, dell’approccio proposto si riporta
di seguito un esempio. Supponiamo di avere due etichette come “outdoor ” (indica una foto scattata all’esterno) e “sunset” (indica una foto rappresentante
un tramonto). L’etichetta “outdoor ” può essere dedotta da alcune informazioni di contesto quali, ad esempio, la lunghezza focale oppure le condizioni
di luce, mentre l’etichetta “sunset” può essere dedotta da informazioni sul
tempo e sulla località. Siamo in grado di dire che una foto rappresentante un
tramonto è di sicuro un esterno, ma non viceversa. Considerando, dunque,
le relazioni semantiche fra le etichette, EXTENT può utilizzare le informazioni di contesto in modo transitivo. A questo punto EXTENT mappa un
diagramma di influenza per attuare la fusione e l’inferenza semantica.
Le variabili che compaiono nel diagramma possono essere sia variabili decisionali (decision variable) ovvero cause, sia variabili di probabilità (chance
variable) ovvero gli effetti. Dal punto di vista dell’annotazione di immagini
le decision variable sono il tempo, la località, il profilo utente, i parametri
connessi alla macchina fotografica e le feature visuali, mentre le etichette
semantiche indotte sono le chance variable. Il diagramma di influenza ha il
compito di connettere i due tipi di variabili mediante degli archi pesati in base
alla forza esistente fra la causa e l’effetto stesso (“causal strength”). Riguardo
la costruzione del diagramma va ricordato che devono essere relazionati due
aspetti, ovvero la conoscenza del dominio ed i dati. In generale, però, cercare
di apprendere dai dati un modello grafico probabilistico di questo tipo è un
problema NP-hard. Per il contesto in esame sono già molte le relazioni esistenti a livello di conoscenza di dominio, per questo motivo la sola relazione
causale che effettivamente deve essere appresa è quella che connette il contesto/contenuto alle etichette semantiche. La Figura 2.6 mostra il diagramma
di influenza appreso per le due etichette semantiche di cui si è parlato sopra, ovvero “sunset” e “outdoor ” vengono generate a partire dalle variabili
2.6.1 Valutazioni
51
decisionali una volta definite le relazioni di causa ed effetto. Oltre agli archi
che mostrano le relazioni causali fra variabile-variabile ed etichetta-variabile,
il diagramma mette in evidenza come è possibile codificare la relazione fra
“sunset” e “outdoor ” ovvero fra le etichette semantiche stesse.
Figura 2.6: Esempio di diagramma di influenza.
6.1
Valutazioni
Senza esserci addentrati nei formalismi legati alla presentazione dell’approccio, ci siamo resi conto di quanto questa proposta possa essere vista come
innovativa poiché la sua idea di base parte dalla considerazione che non è
possibile né etichettare in maniera efficiente, né generare un buon sistema di
image retrieval, se non si fondono insieme varie “dimensioni” di indagine dei
dati, vale a dire quella del context, quella del content e quella del semantic
52
Stato dell’arte
ontology.
Nel modello le dimensioni sono interpretate dalle variabili decisionali, ovvero
dalle informazioni che caratterizzano l’immagine a livello di contenuto e di
contesto. In realtà queste dimensioni sono flat poiché sono viste come dati
che vengono in qualche modo recuperati dalla macchina fotografica o da informazioni catturate mediante GPS.
Si potrebbe però pensare, applicando questo approccio al nostro scenario
di riferimento, di utilizzare le dimensioni come strutture tassonomiche. Ad
esempio, l’informazione di contesto, connessa alla località, potrebbe essere
vista come una tassonomia di concetti geografici oppure, quella legata al
tempo, potrebbe essere vista come una gerarchia di concetti temporali in
grado di mappare la data di riferimento e cosı̀ via. Anche senza lavorare a
livello di diagramma di influenza, si potrebbe pensare di mappare delle “relazioni” fra le varie dimensioni tassonomiche in modo da dare dei criteri per
capire come andare ad etichettare correttamente un’immagine. Un dato di
fatto è che, in generale, ogni immagine ha un soggetto dominante. Se stiamo
parlando di animali è difficile che in una stessa immagine siano rappresentati
contemporaneamente una mucca, un cavallo ed una tigre, per cui concettualmente si potrebbe stabilire che dalla tassonomia degli animali sia possibile
estrarre un solo concetto alla volta per andare ad annotare un’immagine, se
questa contiene gli animali in essa rappresentati.
A basso livello si potrebbe lavorare con similarità di feature, mentre ad alto
livello si potrebbe pensare di stabilire delle relazioni ad hoc per lavorare sulle
tassonomie in modo da attuare più fasi di raffinamento successive in modo da
etichettare l’immagine in modo non ridondante o scorretto. Se un’immagine
dovesse essere etichettata con la keyword “tigre”, si dovrebbe essere in grado
di capire, inoltre, che non è possibile etichettare la stessa immagine con la
label “polo nord” poiché difficilmente una tigre potrebbe vivere al di fuori
della “savana”.
Queste ed altre considerazioni ci aiutano a capire che le idee proposte da
questo approccio non sono del tutto scorrette poiché ci potrebbero consentire, variandole ed applicandole al nostro scenario, di operare sia a livello di
etichettamento multiplo utilizzando uno scenario multi-tassonomico sia consentendo di integrare l’estrazione delle feature dalle immagini in modo da
2.7 Ricerca di similarità basata su connessioni di un grafo
53
avere linee guida nella fase di etichettamento successiva.
7
Ricerca di similarità basata su connessioni
di un grafo
La proposta presentata in [12] apparentemente sembra non fornirci degli
spunti utili per ciò che concerne l’ambito dell’etichettamento automatico di
immagini. In realtà essa presenta un insieme di algoritmi scalabili che possono essere applicati a grafi estesi, ovvero costituiti da una grossa molteplicità
di vertici in ambito distribuito, con l’obiettivo di catturare le informazioni di
similarità nascoste in una struttura a link ipertestuali come quella del web.
Le similarità fra i vertici sono computate utilizzando delle funzioni quali, ad
esempio, SimRank, di cui si parla diffusamente in [13], ad altre sicuramente
più innovative quali PSimRank, ovvero una variante della versione precedente. I metodi sono presentati in un framework più generale che raccoglie
algoritmi di similarità basandosi sul metodo “Monte Carlo”.
L’argomento che risulta sicuramente più rilevante discutere, dopo aver analizzato l’articolo nella sua totalità, riguarda la presentazione di come viene
calcolata la similarità fra due nodi in un grafo utilizzando l’algoritmo PSimRank come variante della versione Minimax SimRank.
L’algoritmo SimRank proposto da [13] in generale consente di calcolare la similarità fra i nodi che costituiscono un grafo basandosi globalmente sull’idea
intuitiva che “due oggetti sono simili se sono referenziati da oggetti a loro
volta simili ”. Il caso base prevede il confronto di un oggetto con se stesso
ed, in tal caso, il massimo punteggio (score) di similarità assegnato risulta
1. In generale lo score che viene computato è sempre un valore compreso fra
0 ed 1, dove 1 rappresenta il massimo grado di similarità e 0 rappresenta il
massimo grado di dissimilarità. Dati due oggetti a e b, la similarità fra i due
oggetti può essere indicata con s(a, b) ∈ [0, 1].
Supponiamo di avere un grafo G costituito da un insieme di vertici e di prendere in considerazione uno qualunque di tali vertici, ad esempio v. Si denota
con I(v) e con O(v), rispettivamente, il set di archi entranti (in-neighbors)
o uscenti (out-neighbors) dal nodo v. Individualmente gli archi entranti si
54
Stato dell’arte
indicano con Ii (v) con 1 ≤ i ≤ |I(v)| mentre gli archi uscenti si indicano con
Oi (v) con 1 ≤ i ≤ |O(v)|.
La versione originaria del SimRank, andando oltre i dettagli rappresentativi,
presenta alcuni problemi che possono essere evidenziati in maniera intuitiva
grazie ad un esempio. Supponiamo di avere a disposizione due portali web
molto popolari. Molti utenti si collegano a pagine simili contenute sui diversi
portali, ma queste pagine non sono indicate come simili utilizzando l’algoritmo SimRank. Un caso estremo può essere rappresentato in Figura 2.7 in cui
sono rappresentati due differenti portali, ad esempio u e v che sono rappresentati come nodi e che hanno lo stesso numero di archi entranti, supponiamo
k. Nonostante le k pagine possano avere una rappresentazione del tutto dissimile dal punto di vista dei link, l’idea è che si vorrebbe poter indicare u e
v come simili analizzando il numero di link entranti in tali nodi. Sfortunatamente da questo punto di vista SimRank opera in maniera assolutamente
controintuitiva visto che la funzione di similarità siml (u, v) = c.(1/k) converge a zero per valori crescenti di k che sono in realtà gli archi entranti in
entrambi i nodi u e v.
Figura 2.7: Caso di fallimento di SimRank: le pagine u e v hanno k link
entranti comuni in esse, ma la similarità computata utilizzando SimRank
risulta, erroneamente, molto bassa (pari a 1/k).
A fronte di ciò si definisce PSimRank come la funzione di distanza supposta (f-meeting distance) per far incontrare due camminatori casuali (random
walk ) che non sono indipendenti, come accadeva per il SimRank, ma che sono accoppiati e di conseguenza, in ogni coppia, l’uno può rintracciare l’altro
molto più facilmente. La problematica emersa per il SimRank viene risolta
consentendo ai random walk di incontrarsi con una probabilità che è tanto
più alta quanto più ciascuno di loro è vicino all’altro: i due random walk,
2.7 Ricerca di similarità basata su connessioni di un grafo
55
posti uno sul vertice u0 ed uno sul vertice v 0 , procederanno verso lo stesso
vertice con una rapidità (anche in un unico step) che è connessa al fattore
probabilistico rappresentato dal coefficiente di Jaccard
|I(u0 )∩I(v 0 )|
|I(u0 )∪I(v 0 )|
che opera
in funzione di quelli che sono gli archi effettivamente entranti nei nodi u0 e
v 0 , ovvero I(u0 ) e I(v 0 ).
Definizione di PSimRank
PSimRank è la funzione di distanza supposta (f-meeting distance) per far incontrare due camminatori casuali con f (t) = ct . Per ogni vertice u il random
walk Xu percorre l step uniformi ed indipendenti sul grafo partendo dal vertice
u. Per ogni coppia di vertici u, v e dato un istante temporale t si assume che i
random walk siano rispettivamente nella posizione iniziale Xu = u0 Xv = v 0 .
Da questo momento in poi si può supporre che:
• con probabilità pari a
|I(u0 )∩I(v 0 )|
|I(u0 )∪I(v 0 )|
entrambi raggiungano lo stesso vertice
scelto uniformemente fra quelli di I(u0 ) ∩ I(v 0 );
• con probabilità pari a
|I(u0 )\I(v 0 )|
|I(u0 )∪I(v 0 )|
0
0
il random walk Xu si fermi in uno dei
vertici compresi in I(u ) \ I(v ) mentre il random walk Xv si fermi in
un vertice scelto indipendentemente fra quelli di I(v 0 );
• con probabilità pari a
|I(v 0 )\I(u0 )|
|I(u0 )∪I(v 0 )|
0
0
il random walk Xv si fermi in uno dei
vertici compresi in I(v ) \ I(u ) mentre il random walk Xu si fermi in
un vertice scelto indipendentemente fra quelli di I(u0 ).
Mediante PSimRank gli score possono essere calcolati mediante delle iterazioni che propagano le similarità su tutte le coppie degli archi entranti in un
nodo esattamente come accadeva per SimRank. Le iterazioni fatte con PSimRank prevedono l’utilizzo di un algoritmo esatto quadratico organizzato in
vari passi.
Si denota con τu,v l’istante in cui i random walk Xu e Xv si incontrano per la
prima volta facendo iniziare il loro cammino dai vertici u e v. Ovviamente,
τu,v = ∞ se i camminatori non si incontrano mai. A questo punto gli score,
calcolati lungo un cammino di lunghezza l, possono essere espressi per definizione come psiml (u, v) = E(cτu,v ). Risulta banale valutare che, se u = v,
allora psim0 (u, v) = 1 altrimenti psim0 (u, v) = 0 all’istante iniziale. Applicando la legge della totale aspettativa a partire dal primo step di cammino
56
Stato dell’arte
seguito da Xu e Xv e tenendo conto dello scorrere del tempo possono essere
mappate le seguenti iterazioni per il SimRank:
psiml+1 (u, v) = 1, if u = v;
psiml+1 (u, v) = 0, if I(u) = 0orI(v) = 0;
psiml+1 (u, v) = C.[
+
|I(u) \ I(v)|
1
.
|I(u) ∪ I(v)| |I(u) \ I(v)|.|I(v)|
+
7.1
|I(u) ∩ I(v)|
.1+
|I(u) ∪ I(v)|
1
|I(v) \ I(u)|
.
|I(u) ∪ I(v)| |I(v) \ I(u)|.|I(u)|
X
psiml (u0 , v 0 )+
u0 ∈I(u)\I(v),v 0 ∈I(v)
X
psiml (u0 , v 0 )]
v 0 ∈I(v)\I(u),u0 ∈I(u)
Valutazioni
Andando oltre quelli che, per i nostri fini, risultano dettagli non troppo utili
o significativi, abbiamo deciso di presentare anche questo approccio poiché
ci potrebbe essere d’aiuto in fase di etichettamento automatico per cercare
di valutare la similarità fra i concetti in un grafo di termini. Al di là di un
modello risolutivo per l’etichettamento automatico, è sembrata buona l’idea
di mettere a confronto differenti algoritmi di ricerca di similarità (SimRank
e PSimRank) poiché questi ci potrebbero servire per valutare quanto ogni
coppia di termini può essere ritenuta simile sfruttando le indicazioni che
abbiamo a disposizione ovvero la presenza di un training set di immagini
campione già etichettate in un certo modo utilizzando un insieme definito di
termini appartenenti ad esempio ad una molteplicità di tassonomie differenti.
Capitolo 3
Proposta per l’etichettamento
automatico di immagini
Dopo avere valutato attentamente la maggior parte delle proposte ad oggi
presentate per risolvere la problematica di etichettamento automatico di immagini, connessa alla possibilità di utilizzare uno scenario multi-tassonomico
da cui attingere per identificare i concetti semantici, è opportuno cercare di
fornire una formalizzazione del modello che rappresenta lo scenario di riferimento per il presente lavoro di tesi.
Il presente lavoro di tesi si pone infatti, come obiettivo primario, quello di
valutare la strada scelta durante l’attività di tirocinio curriculare, di cui è
fornita una descrizione dettagliata in [30], in modo da migliorare la qualità
globale dell’annotazione. La strada scelta è stata, infatti, in grado di presentare una molteplicità di vantaggi, ma anche un insieme di problematiche che
potrebbero essere risolte applicando tecniche per un successivo raffinamento.
Nel presente capitolo si cercherà, dapprima, di fornire una formalizzazione
dello scenario di riferimento in cui si è deciso di operare, poi si descriverà
brevemente l’approccio che si è scelto di seguire durante l’attività di tirocinio curriculare, i cui dettagli sono proposti in [30], analizzando i vantaggi
e gli svantaggi da esso apportati. A questo punto verranno presentate le
caratteristiche relative alla proposta del nuovo approccio di etichettamento
automatico di immagini. Si fornirà, infine, la formalizzazione degli algoritmi
creati e verranno analizzati e valutati i vantaggi da esso introdotti.
Proposta per l’etichettamento
automatico di immagini
58
1
Scenario principale
Supponiamo di avere una situazione iniziale come quella presentata in Figura 3.1 e in Figura 3.2. Supponiamo di avere un database DB ampiamente
popolato contenente I1 , ..., In immagini. Supponiamo che una parte di queste
immagini (e.g. circa 1/3 dell’intero database DB ), quelle che costituiscono il
cosiddetto training set (TrS) di immagini campione, siano state etichettate
offline.
L’idea è che un utente esterno, che accede all’interfaccia di interrogazione,
può selezionare una qualunque delle immagini non ancora etichettate, ovvero
quelle che costituiscono il cosiddetto testing set (TeS), e chiedere al sistema
di gestire una fase di etichettamento automatico dell’immagine stessa. Si
vuole cercare di automatizzare il più possibile quello che un tempo era un
puro processo di annotazione manuale per cercare di far fronte al problema
della soggettività dell’annotazione cercando di avere un sistema in grado di
generare etichette il più possibile corrette in modo automatico.
Tutto ciò avendo la consapevolezza di poter lavorare su due dimensioni ben
precise: quella delle feature f1 , f2 , ..., fh (h indica la dimensione del vettore
di feature, in genere una trentina di entry), ovvero delle caratteristiche di
basso livello che sono associate ad ogni singola regione dell’immagine (e.g.,
colore, tessitura, forma etc.), e quella delle etichette o keyword semantiche
K1 , K2 , ..., Kk che devono essere utilizzate per etichettare l’immagine stessa.
Supponiamo, infatti, che ogni immagine I1 , ..., In possa essere segmentata
nelle sue regioni costitutive R1 , ..., Rr . Va tenuto in considerazione che r è un
numero variabile da immagine ad immagine: non si può definire, a priori, il
numero di regioni significative che possono essere estratte da ogni immagine
singolarmente considerata. Supponiamo, inoltre, di avere un certo numero
di tassonomie T1 , ..., Tm , ovvero una molteplicità di organizzazioni gerarchiche di concetti, che costituiscono le nostre “dimensioni” di etichettamento.
Stiamo, infatti, operando in uno scenario multi-tassonomico. Ci si può domandare perché si desidera operare con uno scenario multi-tassonomico e la
risposta riguarda la possibilità di lavorare, con esso, in maniera molto più
strutturata e di consentire, mediante l’utilizzo di molteplici tassonomie, di
stabilire dei legami, delle connessioni semantiche fra diverse ontologie che
3.2 Formalizzazione del modello
59
potrebbero essere fisicamente collocate su nodi (peer semantici) diversi. Si
cerca, conseguentemente, di rendere modulare la struttura a livello locale in
modo da facilitare il mapping a livello distribuito.
Utilizzando queste dimensioni e le relazioni ad esse connesse, vogliamo riuscire ad attribuire all’immagine delle etichette corrette che la possono caratterizzare semanticamente. Deve essere possibile gestire un etichettamento
multiplo, ovvero deve essere possibile attribuire ad ogni immagine, nella sua
globalità, un certo numero di etichette che possano caratterizzarla dal punto
di vista dei contenuti che essa stessa rappresenta. Le etichette semantiche
non sono, di conseguenza, connesse alle singole regioni bensı̀ all’immagine
nel suo complesso.
In Figura 3.1 l’utente estrae un’immagine non ancora etichettata dal database e si aspetta che il sistema fornisca delle caratterizzazioni semantiche
lavorando sulle feature di basso livello connesse alle singole regioni in cui
l’immagine stessa, rappresentante una tigre, può essere segmentata.
In Figura 3.2 si comprende come vengono introdotte le molteplici tassonomie
per ricavare i concetti, le etichette che verranno utilizzate per l’annotazione
dell’immagine dal punto di vista semantico. Al termine delle fase di etichettemanto automatico si desidererebbe che l’immagine I1 fosse etichettata con
i termini “tigre”, “acqua”, “roccia” ed “erba”.
Siamo consapevoli del fatto che, lavorare con il solo contenuto semantico
o con le sole feature di basso livello non è sufficiente per fornire una buona
caratterizzazione delle immagini. Proprio per questo motivo è necessario integrare il più possibile i due approcci cercando di combinarli in modo efficiente
ed efficace per cercare di realizzare gli obiettivi che ci siamo prefissati.
2
Formalizzazione del modello
Supponiamo di avere un database ampiamente popolato che indicheremo
con DB. Le immagini, in esso contenute, possono essere rappresentate formalmente in questo modo:
Ii = ({R1 , R2 , ..., Rr }; {K1 , K2 , ..., Kk }) per i = 1, ..., n
Questo significa che ogni immagine singolarmente presa, contenuta nel DB,
può essere rappresentata da un vettore di regioni, {R1 , R2 , ..., Rr }, e da un set
60
Proposta per l’etichettamento
automatico di immagini
Figura 3.1: Come si opera a livello di feature connesse alle regioni in cui
un’immagine può essere segmentata.
3.2 Formalizzazione del modello
61
Figura 3.2: Come si opera a livello di etichette semantiche, derivanti da diverse dimensioni tassonomiche, al fine di caratterizzare un’immagine dal punto
di vista del contenuto.
Proposta per l’etichettamento
automatico di immagini
62
di etichette, {K1 , K2 , ..., Kk }, in grado di caratterizzarla dal punto di vista
semantico. Il numero di regioni non può essere definito a priori poiché non si
può sapere esattamente in quante regioni un’immagine sarà segmentata dal
sistema a runtime.
Ogni regione può essere formalmente rappresentata in questo modo:
Rj = {f1 , f2 , ..., fh } per j = 1, ..., r
Ovvero ogni regione è caratterizzata da un vettore di feature ovvero di caratteristiche di basso livello quali colore, tessitura, forma etc. La dimensione del
vettore non può essere definita a priori, ma dipende dal sistema che si occupa
dell’estrazione dalle immagini delle feature di basso livello che sono connesse
ad ogni regione in cui l’immagine può essere segmentata. Ogni etichetta può
essere formalmente rappresentata come segue:
Ky = (Tt ; Ll ) per y = 1, ..., k; t = 1, ..., m; l = 1, ..., #(Tt )
Questo indica che ogni keyword, per come viene rappresentata, viene in realtà
indicata come una coppia indicante l’identificativo della tassonomia da cui
il termine è estratto e l’etichetta vera e propria che caratterizza il contenuto dell’immagine stessa dal punto di vista semantico. Supponiamo di avere
a disposizione m tassonomie di concetti e di prendere in considerazione un
concetto facente parte di questa tassonomia: l’l -esimo concetto sarà compreso fra 1 e la cardinalità della tassonomia in esame (#(Tt )).
Definizione 1 (image retrieval)
In un sistema di reperimento di immagini, data un’immagine Iq appartenente
ad un DB di immagini ampiamente popolato, si vuole definire il concetto di
query fatta su un database di tale tipo in questo modo:
F := Q(Iq , DB)
Grazie a tale “Query Function” si vuole che il sistema sia in grado di restituire, a fronte di un’immagine query Iq che viene presentata, tutte le supponiamo
z immagini più simili all’immagine query sia sfruttando le feature di basso
livello (“query by feature”) sia lavorando a livello di etichette semantiche
3.2 Formalizzazione del modello
63
(“query by keyword”) con le quali un’immagine deve essere stata precedentemente etichettata.
Definizione 2 (etichettamento automatico)
Data una qualunque immagine Iq non ancora etichettata, appartenente di
conseguenza al testing set di immagini del database DB, vogliamo definire una
funzione che consenta di etichettare automaticamente quest’ultima con keyword semantiche appartenenti ad una molteplicità di tassonomie differenti.
Tale funzione, detta “Labeling Function”, può essere scritta come segue:
{K1 , K2 , ..., Kk } := L(Ii , Tt ) con i = 1, ..., n; t = 1, ..., m
Tale “Labeling Function”, presa in ingresso l’immagine da etichettare e le tassonomie messe a disposizione dal sistema, fornisce in uscita un set di coppie
contenenti il termine di etichettamento e l’identificativo della tassonomia a
cui quel termine appartiene.
Si è cercato, in tal modo, di dare una formalizzazione a quelle che sono le
variabili ed i parametri di progetto su cui occorrerà fare delle valutazioni
prima di decidere quale strada risolutiva scegliere alla luce di quelli che sono
gli approcci proposti nello stato dell’arte.
È necessario, a questo punto, cercare di scomporre lo scenario di riferimento
in tanti sotto-problemi. Indagando le singole parti e riferendoci a quello che
è stato proposto nello stato dell’arte, potremo capire e valutare in che modo
sia necessario procedere, in maniera del tutto innovativa, al fine di risolvere
le problematiche di cui si parlerà qui di seguito.
Problema 1
Data un’immagine Iq (immagine query), estratta da un testing set TeS di
immagini non ancora etichettate e con l’ipotesi di avere a disposizione un
training set TrS di immagini campione già etichettate dall’utente, si vuole
studiare una tecnica che consenta di gestire un etichettamento multiplo dell’immagine mediante un set di keyword {K1 , K2 , ..., Kk }.
Problema 2
Data un’immagine Iq (immagine query) non ancora etichettata, si vuole poter
Proposta per l’etichettamento
automatico di immagini
64
attribuire ad essa un insieme di contenuti semantici utilizzando una molteplicità di tassonomie di concetti T1 , ..., Tm dalle quali tali contenuti semantici
possono essere estratti.
Problema 3
Data un’immagine Iq (immagine query) che deve essere etichettata, si vuole
creare una tecnica che consenta di automatizzare il più possibile il processo
di annotazione e che faccia uso sia delle feature di basso livello f1 , f2 , ..., fh ,
associate ad ogni singola regione in cui l’immagine query può essere segmentata, sia di contenuti semantici lavorando a livello di scenario multitassonomico come appartenenza delle singole keyword K1 , K2 , ..., Kk a diverse e svariate ontologie gerarchiche di contenuti.
3
Soluzione iniziale
È necessario presentare nel dettaglio l’approccio a cui si è deciso di far riferimento durante l’attività di tirocinio, di cui si può trovare la documentazione
in [30], per le idee alquanto innovative da esso proposte. Esso tenta di applicare l’approccio a grafi proposto in [5], introdotto nello stato dell’arte e di cui
ci accingiamo a fornire una descrizione dettagliata utilizzando il formalismo
introdotto per modellare lo scenario di riferimento che si intende seguire.
L’innovazione di questo approccio riguarda la possibilità di gestire un etichettamento multiplo delle immagini usando, a basso livello, i legami, le relazioni
di similarità fra le regioni costitutive delle immagini stesse per definire a
quali immagini già etichettate accedere al fine di recuperare i termini che,
più di frequente, ricorrono nell’annotazione con lo scopo di annotare una
nuova immagine. In fase di tirocinio si è deciso di scegliere proprio questo
approccio poiché ci è sembrata molto buona l’idea dell’etichettamento multiplo di un’immagine, ovvero la possibilità di attribuire all’immagine differenti
etichette che non siano solo strettamente connesse alle regioni in cui l’immagine stessa viene segmentata, ma anche etichette più “astratte” che emergono
dalla visione globale dell’immagine.
L’approccio a grafi ci è sembrato, inoltre, particolarmente efficiente. La co-
3.3.1 Definizione formale dell’approccio
65
struzione dinamica del grafo per un set corposo di immagini ha rivelato,
infatti, un alto livello di efficienza computazionale nella restituzione del risultato globale (etichette generate per annotare una nuova immagine). Ci
siamo resi conto, però, che nonostante l’approccio sia abbastanza efficace,
esso avrebbe bisogno di una successiva fase di raffinamento che potrebbe
consentire di andare a migliorare la qualità globale delle etichette restituite.
Questo problema, insieme alla possibilità di rendere dinamicamente variabile
il numero di termini utilizzati per etichettare ogni immagine, ci ha consentito di espandere il problema in modo consapevole introducendo un approccio
innovativo per la gestione dell’etichettamento automatico di immagini.
3.1
Definizione formale dell’approccio
Il problema di etichettare in maniera automatica un set di immagini può
essere più formalmente descritto come segue:
Problema 1
Dato un set S di immagini a colori ciascuna etichettata con un set di parole
e data una nuova immagine non ancora etichettata I, si vogliono trovare le t
migliori etichette (e.g., t=5) da assegnare a tale nuova immagine.
Problema 2
Dato un set S di n oggetti multimediali S=O1 , O2 , ..., On ciascuno con m attributi multimediali, l’obiettivo è trovare un legame fra gli stessi.
Di seguito sono presentate un set di definizioni e di assunzioni utili:
Definizione 1
Un dominio Di di attributi di tipo i è la collezione di tutti i valori atomici
che l’attributo i può assumere.
Definizione 2
I valori del dominio Di saranno chiamati con il nome di “token” del dominio
Di .
Proposta per l’etichettamento
automatico di immagini
66
Assunzione 1
Per ogni dominio Di (i=1, ... ,m) viene fornita una funzione di similarità
si (∗, ∗) che è in grado di assegnare un punteggio ad ogni coppia di token di
dominio Di .
3.2
Costruzione del Mixed-Media Graph
Ogni immagine possiede degli attributi numerici (i vettori di feature connesse
alle regioni dell’immagine) e, solo alcune di esse, sono etichettate con una o
più parole ricavate da un vocabolario. L’idea di base dell’approccio proposto è
quella di prendere tutte le immagini, di segmentarle in regioni (utilizzando un
qualunque algoritmo di segmentazione), di estrarre da ogni regione un vettore
di feature e di considerare che solo alcune delle immagini sono etichettate
con delle parole mentre la maggior parte delle stesse dovrà essere etichettata
mediante questo approccio automatico. L’innovazione consiste nel mappare
tutti gli oggetti, cosı̀ come i loro attributi, come nodi di un grafo; per dei
generici oggetti multimediali con m attributi si può costruire un grafo a
(m+1) livelli fatto da m tipi di nodi differenti (uno per ogni attributo) e un
tipo di nodo strettamente connesso all’oggetto multimediale stesso.
Denotiamo con V(O) il vertice dell’oggetto O e denotiamo con V (ai ) il vertice
il cui valore di attributo A = ai . A questo punto si tracciano tutti gli archi
che consentono il collegamento fra il nodo rappresentante l’oggetto e i vari
nodi corrispondenti ai suoi attributi.
Nel grafo Mixed-Media Graph (MMG) ci sono, dunque, due tipi di link:
• NN-links (nearest-neighbor links) fra i nodi che mappano vettori di
feature simili;
• OAV-links (object-attribute-value links) fra un nodo oggetto e tutti i
nodi che rappresentano i suoi valori di attributo.
C’è solo un punto critico da esaminare: per attributi di tipo numerico e vettoriale è necessario avere un modo per riflettere la similarità fra due vettori.
Si decide, di conseguenza, di aggiungere un arco fra due nodi attributo se e
solo se i due vettori di feature sono sufficientemente simili. Si deve decidere,
dunque, una soglia per valutare la similarità. Ci sono molti modi per fare
questo, ma gli autori hanno deciso di introdurre una soglia adattativa: per
3.3.3 Correlazione mediante Random Walk with Restart
67
ogni vettore di feature si vanno a scegliere i K-NN (K-nearest neighbors)
e, solo per quelli, si vanno a tracciare gli archi corrispondenti. Calcolare il
K-NN è facile dal momento che noi già possediamo una funzione di similarità
si (∗, ∗) per ogni dominio Di .
A questo punto, per risolvere il problema dell’etichettamento automatico,
è necessario sviluppare un metodo per trovare buone parole da usare come
etichette di un’immagine. È necessario, dunque, stimare l’affinità che ogni
termine, delle immagini a cui si è acceduto per similarità di regione, ha con
la nuova immagine da etichettare.
Concretamente supponiamo di avere un set di immagini S = I = I1 , I2 , I3 , I4
come quelle rappresentate in Figura 3.3. Il grafo corrispondente creato, secondo l’approccio sopra presentato, ha tre tipi di nodi differenti: uno per
gli oggetti immagine Ij (j=1,2,3,4), uno per le regioni Rj (j=1, ...,16) e uno
per i termini Lj (j=1, ..., 13). La Figura 3.4 mostra il corrispondente GM M G
ed, in esso, gli archi solidi rappresentano i Object-AttributeValue link, mentre gli archi tratteggiati rappresentano i Nearest-Neighbor link (nell’esempio
consideriamo k=1 nearest neighbor per evitare di sovraccaricare il grafo).
Relativamente all’esempio in esame, si dovrà stimare la similarità di ogni
termine delle immagini recuperate mediante similarità di regione rispetto
all’immagine I4 non ancora etichettata.
3.3
Correlazione mediante Random Walk with Restart
Una volta che è stato mappato il tutto come un problema di grafi, si deve
trovare un metodo per assegnare importanza ai vertici di un grafo, cosı̀ come
determinare quanto correlata è un’immagine non etichettata con un termine
o meglio con un set di termini con cui sono state etichettate altre immagini.
Gli autori propongono di utilizzare il metodo Random Walk with Restart
(RWR) con la consapevolezza che la scelta del metodo è, comunque, ortogonale al framework da loro presentato.
Il metodo Random Walk with Restart opera come segue: per calcolare l’affinità, l’importanza di un nodo “B” per un nodo “A” si deve considerare
un random walker (camminatore casuale) che parte dal nodo “A” e sceglie
randomicamente uno fra tutti i cammini disponibili di volta in volta per arrivare al nodo “B” ma, prima di fare una scelta, con probabilità c, egli ritorna
68
Proposta per l’etichettamento
automatico di immagini
Figura 3.3: Quattro immagini di cui le prime tre annotate e l’ultima da annotare; ad ogni immagine viene fatta corrispondere la sua segmentazione in
regioni.
Figura 3.4: Grafo MMG corrispondente creato in relazione alla situazione
esaminata.
3.3.4 L’algoritmo Cross-modal Correlation Discovery
69
indietro e riparte dal nodo “A”. Denotiamo con uA (B) la probabilità che il
random walker ha di trovarsi, partendo dal nodo “A”, in modo stabile sul
nodo “B”; uA (B) è l’importanza, l’affinità di “B” rispetto ad “A”.
Definizione 3
L’importanza del nodo B rispetto al nodo A è la probabilità di stato stabile
uA (B) di un random walk with restart come definito sopra.
Ad esempio, per risolvere il problema dell’etichettamento dell’immagine I4 di
Figura 3.4 si devono calcolare le probabilità di stato stabile uA (∗) per tutti
i nodi del grafo MMG valutando solo i nodi corrispondenti ai termini e, alla
fine, sarà sufficiente riportare le migliori (e.g. 5) etichette che meglio saranno
in grado di descrivere l’immagine ancora da etichettare, ovvero I4 .
3.4
L’algoritmo Cross-modal Correlation Discovery
Per un problema generale l’algoritmo si sviluppa in varie fasi che prevedono
dapprima la costruzione del grafo MMG poi, quando l’utente si domanda
qual è l’importanza che il nodo “A” possiede in relazione al nodo “B”, si
calcola uA (B), ovvero la probabilità di trovarsi stabilmente su uno stato.
Il calcolo di uA (B) rappresenta una problematica importante e alquanto interessante. Gli autori di [5] propongono una notazione matriciale per compattezza. Supponiamo che Oq sia l’oggetto query e di voler trovare i termini più
adatti per etichettarlo. Si attiva un RWR dal nodo query q e si calcola il vet→
tore contenente le probabilità di stato stabile −
u = (u (1), u (2), ..., u (N ))
q
q
q
q
dove N è il numero di nodi dell’MMG e E il numero di archi.
→
La stima del vettore −
uq può essere efficientemente implementata grazie ad
una moltiplicazione matriciale. Supponiamo che A sia la matrice di adiacenza
→
del grafo MMG e che sia normalizzata per colonna. Supponiamo che −
v sia
q
un vettore colonna con tutti gli N elementi a 0 eccetto l’elemento corrispon→
dente al nodo q il quale è settato a 1. Il vettore −
v è il cosiddetto vettore di
q
restart.
A questo punto si può formalizzare il concetto di “importanza” di un nodo
con la definizione che segue:
Proposta per l’etichettamento
automatico di immagini
70
Definizione 4
Sia c la probabilità di attivare una fase di restart del random walk dal nodo q,
allora il vettore che mappa le probabilità di stato stabile (di dimensione Nx1)
uq è in grado di soddisfare la seguente equazione:
−
→
→
→
uq = (1 − c)A−
uq + c −
vq
Si può mostrare facilmente che:
−
→
→
uq = c(1/(I − (1 − c)A))−
vq
dove I è la matrice identità di dimensione NxN.
Lo pseudocodice dell’algoritmo che consente di trovare le correlazioni a modalità incrociata è indicato di seguito.
Algoritmo Cross-modal Correlation Discovery (CCD)
Dato un grafo GM M G e un oggetto Oq dove alcuni attributi di Oq hanno dei
valori mancanti.
−
1. Sia →
vq = 0 per tutti i suoi N valori eccetto un unico ‘1’ per il q-esimo
valore.
2. Sia A la matrice di adiacenza del grafo aumentante creato nello step 1.
Normalizza la matrice A per colonna.
→
→
3. Inizializza −
uq = −
vq .
→
−
4. Finché ( u non ha raggiunto la convergenza)
q
−
→
→
(a) →
uq = (1 − c)A−
uq + c −
vq .
3.5
Vantaggi e svantaggi
Molteplici sono i vantaggi connessi alla possibilità di utilizzare la tecnica
che sfrutta Mixed-Media Graph per l’etichettamento automatico di immagini. Primo fra tutti la possibilità di generare una molteplicità di etichette.
Riflettendo si può notare, infatti, come sia possibile annotare in modo automatico le immagini (o qualunque tipo di dato multimediale) etichettandole
3.3.5 Vantaggi e svantaggi
71
con un set di parole significative in grado di descriverle. L’innovazione si ha
dal momento che l’etichetta non è attribuita alla regione, ovvero non c’è per
ogni regione una ed una sola etichetta che può essere ad essa associata, ma
l’etichetta caratterizza l’immagine nella sua totalità. Si lavora, dunque, a livello probabilistico accedendo, in base alla similarità di regione, alle immagini
già etichettate e prendendo le supponiamo t etichette che compaiono più di
frequente per etichettare la nuova immagine. Questa idea è assolutamente innovativa in quanto consente di poter annotare un’ immagine con dei concetti
in un certo qual modo “astratti”, ovvero concetti che non emergono in modo
immediato da una osservazione dettagliata delle singole regioni costitutive
dell’immagine stessa.
Ad esempio, se dovessimo etichettare in modo automatico una cartolina come
quella in Figura 3.5 vorremmo avere come etichette non solo “cielo”, “mare”,
“barca”, “grattacielo”, ma anche etichette come “CN Tower” e “Toronto”
capaci di esprimere concetti che non emergono in modo immediato dalle regioni in cui l’immagine è segmentata, ma che sono concetti caratteristici, ad
esempio, di quello che è lo “skyline” di una città famosa.
Un ulteriore esempio di quanto si vuole far comprendere è mostrato in Figura 3.6 dove noi vorremmo che l’immagine fosse etichettata non soltanto con
termini come “mucca”, “erba”, “cespuglio” e “terreno”, ma volemmo poter
gestire anche termini più astratti connessi non soltanto alle regioni costitutive dell’immagine bensı̀ all’immagine nella sua totalità come ad esempio il
concetto di “pascolo”.
Durante lo studio affrontato nella fase di tirocinio ci si è resi conto della
presenza di una molteplicità di problematiche da risolvere per rendere più
preciso ed efficace il processo di etichettamento.
Va detto, infatti, che l’emissione delle etichette si basa su una analisi finale di
frequenza delle stesse. Per ogni immagine del training set, che viene acceduta
mediante Random Walk with Restart lavorando sulle feature di basso livello connesse alle regioni, si catturano tutti i termini che la etichettano. Tali
etichette vengono raggruppate in una struttura dati in cui i termini compaiono senza ripetizioni e con accanto la frequenza. Al termine dell’applicazione
dell’algoritmo si procede ad effettuare un ordinamento (ranking) sulla base
72
Proposta per l’etichettamento
automatico di immagini
Figura 3.5: Possibili etichette per l’immagine potrebbero essere: “cielo”, “mare”, “barca”, “grattacielo”, ma anche concetti più astratti come “CN Tower”
e “Toronto”.
Figura 3.6: Possibili etichette per l’immagine potrebbero essere: “mucca”,
“erba”, “terreno”, ma anche un concetto più astratto come “pascolo”.
3.3.5 Vantaggi e svantaggi
73
delle frequenze e si decide di scegliere le prime supponiamo t etichette per
procedere all’annotazione automatica definitiva dell’immagine query Iq appartenente al testing set di immagini che devono essere ancora etichettate.
Questo procedimento si rivela alquanto impreciso poiché una semplice analisi
sulle frequenze rischia di andare a falsificare quelle che sono le etichette realmente significative al fine dell’annotazione. Ad esempio, a volte si è verificato
il caso in cui, in maniera erronea, il sistema tentasse di andare ad etichettare
un’immagine rappresentante un “cavallo” con il termine “mucca”. Un altro
caso di manifestazione di questa problematica si ha con termini che compaiono frequentemente come “erba”: tale termine rischia di comparire, proprio
a causa della sua ubiqua presenza quasi in tutte le immagini, anche in quelle
che in realtà non la rappresentano.
Un’altra problematica da affrontare è connessa alla possibilità di rendere flessibile il numero di termini che devono andare ad etichettare un’immagine. Ci
sono immagini che, in realtà, potrebbero necessitare meno di, supponiamo
t, termini di etichettamento. In tal caso purtroppo il sistema, che è stato
progettato per restituire esattamente t termini in modo automatico per ogni
immagine, si troverebbe a generare termini effettivamente non corretti ma che
verrebbero, comunque, proposti come potenziali per l’annotazione dell’immagine. In questo caso si rivela fondamentale l’intervento utente che dovrebbe
consapevolmente intervenire nel processo di annotazione andando a cancellare i termini non corretti restituiti. Ad esempio, se un’immagine contenesse
solamente un cavallo che corre in un prato, noi vorremmo che il sistema fosse
in grado di generare automaticamente solamente i termini “cavallo” ed “erba”, ma se il sistema per come è stato costruito prevede la restituzione di
supponiamo 3 etichette allora il sistema restituirà in uscita anche una terza
etichetta, insieme alle prime due, che sicuramente si rivelerà inappropriata
per l’etichettamento dell’immagine in esame.
Entrambi i problemi di cui si è discusso sopra potrebbero essere attenuati, o addirittura completamente risolti, prevedendo una successiva fase di
raffinamento delle etichette generate durante la prima fase di applicazione
dell’approccio a grafi Mixed-Media Graph. Tutto ciò studiando nuovi algoritmi in grado di fondere insieme tecniche differenti in modo opportuno per
i nostri scopi di annotazione automatica.
Proposta per l’etichettamento
automatico di immagini
74
4
Presentazione dell’approccio proposto
In questa sezione ci si pone l’obiettivo di andare a descrivere tutti i dettagli riguardanti la tecnica che è stata pensata, insieme ai relativi algoritmi,
per risolvere in maniera efficiente ed efficace l’etichettamento automatico di
immagini in modo da superare tutte le problematiche che sono state precedentemente esposte. In definitiva, l’idea è quella di cercare di fondere i
principi costituenti due differenti approcci, quelli di cui sono state esposte
le idee di base in [5] ed in [12], in modo da generarne un terzo, del tutto
innovativo, in grado di intervenire più che altro sull’efficacia delle etichette
generate durante una prima fase di etichettamento.
4.1
Costruzione della matrice di similarità
SimilarityTable
Il primo problema che deve essere risolto riguarda la possibilità di generare
un set di etichette, per i fini dell’etichettamento automatico di una nuova
immagine non ancora annotata, che in qualche modo siano correlate le une
con le altre.
Come abbiamo ampiamente discusso nella precedente sezione, sfruttando solamente l’approccio a grafi si ha la possibilità di generare un set di etichette
che sono proprio quelle che il nostro sistema ha intenzione di restituire in uscita. Queste ultime possono poi o essere sottoposte ad una successiva fase di
raffinamento da parte dell’utente esterno che può intervenire nel processo di
annotazione eliminando dei termini che sono stati generati ma che non ritiene corretti, o essere applicate come termini definitivi che il sistema utilizzerà
ciecamente per etichettare l’immagine query Iq , senza porsi problemi relativi
alla loro correttezza formale. In questo modo potrebbe accadere abbastanza frequentemente che il sistema tenti di andare ad etichettare un’immagine
rappresentante un “cavallo” con i termini, a questo punto errati, “mucca” o
“cervo”.
Per far fronte a questo problema si è pensato di spostare il campo d’azione in modo da non considerare più solamente la rilevanza di ogni etichetta
singolarmente presa (primo ordine), ma di valutare il grado di similarità che
può essere associato ad ogni coppia di etichette (secondo ordine).
3.4.1 Costruzione della matrice di similarità
SimilarityTable
75
Partendo dal training set di immagini campione già etichettate, si vuole
costruire un grafo bipartito (bipartite graph) costituito, da un lato, dalle immagini e dall’altro dalle etichette che annotano ciascuna singola immagine.
Il grafo di primo ordine che viene mappato si presenta approssimativamente
come quello che viene mostrato in Figura 3.7 e che è stato appositamente
inserito come esempio per cercare di dare un’idea più precisa di qual è lo
scenario in cui ci si sta muovendo.
A partire da questo grafo G, l’idea è quella di costruire un nuovo grafo, G2 ,
che sia in grado di definire il grado di similarità di ogni coppia di immagini
partendo dal grado di similarità delle coppie di etichette che tali immagini
referenziano e cosı̀ via in maniera del tutto ricorsiva. Si utilizzano le formule
che vengono proposte dall’algoritmo di ricerca di similarità fra coppie di nodi
in un grafo, ovvero l’algoritmo PSimRank. Un esempio del grafo G2 che consente, grazie alla sua intrinseca struttura (archi entranti ed uscenti da ogni
nodo), di calcolare i valori di similarità fra due nodi appartenenti al grafo
stesso viene presentato in Figura 3.8.
Figura 3.7: Esempio di “Bipartite Graph”, costruito a partire dal training set,
composto dalle immagini e dai termini con cui queste ultime sono etichettate.
76
Proposta per l’etichettamento
automatico di immagini
Come abbiamo già illustrato all’interno dello stato dell’arte nel Capitolo 2,
l’algoritmo PSimRank, proposto da [12], in generale consente di calcolare la
similarità fra i nodi che costituiscono un grafo basandosi globalmente sull’idea intuitiva che “due oggetti sono simili se sono referenziati da oggetti a
loro volta simili ”. Riprendiamo ora le idee di base proposte da tale tecnica
per comprendere come poterla applicare alle nostre esigenze.
Il caso base prevede il confronto di un oggetto con se stesso ed, in tal caso,
il massimo punteggio (score) di similarità assegnato risulta 1. In generale lo
score che viene computato è sempre un valore compreso fra 0 ed 1 dove 1
rappresenta il massimo grado di similarità e 0 rappresenta il massimo grado
di dissimilarità. Dati, infatti, due oggetti a e b la similarità fra i due oggetti
può essere indicata con s(a, b) ∈ [0, 1].
Supponiamo di avere un grafo costituito da un insieme di vertici e di prendere in considerazione uno qualunque di tali vertici ad esempio v, si denota
con I(v) e con O(v) rispettivamente il set di archi entranti (in-neighbors) o
uscenti (out-neighbors) dal nodo v. Individualmente gli archi entranti si indicano con Ii (v) con 1 ≤ i ≤ |I(v)| mentre gli archi uscenti si indicano con
Oi (v) con 1 ≤ i ≤ |O(v)|.
Gli score, mediante PSimRank, possono essere calcolati mediante delle iterazioni che propagano le similarità su tutte le coppie degli archi entranti in un
nodo, esattamente come accadeva per SimRank proposto da [13]. Le iterazioni fatte con PSimRank prevedono l’utilizzo di un algoritmo esatto quadratico
organizzato in vari passi i quali sono illustrati in Algoritmo 1.
3.4.1 Costruzione della matrice di similarità
SimilarityTable
77
Figura 3.8: Grafo di ordine due a partire dal quale si calcolano i valori di
similarità associati ad ogni coppia di etichette.
Proposta per l’etichettamento
automatico di immagini
78
Algorithm 1 Formule di PSimRank per il calcolo della similarità fra i nodi
di un grafo.
1: if (u = v) then
2:
psim0 (u, v) = 1.
3: else
4:
psim0 (u, v) = 0.
5: end if
6: repeat
7:
8:
9:
10:
11:
12:
13:
14:
15:
if (u = v) then
psiml+1 (u, v) = 1.
else if (I(u) = 0oI(v) = 0) then
psiml+1 (u, v) = 0.
else
|I(u)∩I(v)|
psiml+1 (u, v) = c.[ |I(u)∪I(v)|
.1+
P
|I(u)\I(v)|
1
0 0
+ |I(u)∪I(v)| . |I(u)\I(v)|.|I(v)|
u0 ∈I(u)\I(v),v 0 ∈I(v) psiml (u , v )+
P
|I(v)\I(u)|
1
0 0
+ |I(u)∪I(v)|
. |I(v)\I(u)|.|I(u)|
v 0 ∈I(v)\I(u),u0 ∈I(u) psiml (u , v )].
end if
16: until (Non c’è convergenza)
PSimRank opera in maniera ricorsiva. Per dare un’intuizione di come esso
affronta ricorsivamente il calcolo delle similarità fra due nodi di un grafo supponiamo di descrivere il procedimento con un esempio pratico. Supponiamo
di voler calcolare quanto sono simili due etichette ad esempio “tigre” e “giungla”. All’iterazione k = 0 la similarità simk (tigre, giungla) = 0 poiché non
si possiede nessun’altra informazione che, in qualche modo, possa correlare i
due termini. All’iterazione k = 1 ci si chiede se esiste almeno un’immagine
che è etichettata con “tigre” e “giungla” contemporaneamente. Se sı̀, le due
etichette risultano correlate ed il loro grado di similarità può essere calcolato
con le formule sopra indicate, ma in ogni caso il valore computato risulta
essere diverso da zero. All’iterazione k = 2 ci si chiede se, fra tutte le immagini che sono etichettate con il termine “tigre” ce n’è almeno una che ha un
termine comune a tutte quelle che sono etichettate con il termine “giungla”.
Se sı̀, i termini “tigre” e “giungla” risultano correlati con un valore di similarità computato che risulterà rafforzato rispetto a quello calcolato al passo
3.4.2 Fase di generazione delle etichette
79
precedente (più tendente a 1 che a 0). Il processo può essere ripetuto fino a
n volte ovvero fino a quando non si verifica di aver raggiunto la convergenza
a livello di valori computati.
Una volta calcolati i valori di similarità fra tutte le possibili coppie di etichette, impiegate per annotare le immagini del training set, questi vengono
inseriti in una matrice quadrata, che decidiamo di chiamare SimilarityT able,
la cui struttura generale è molto simile a quella della matrice riportata qui
di seguito nella Tabella 1.
È bene precisare che il calcolo degli score di similarità viene effettuato offline. Per questo motivo, dato il training set, si va a riempire la matrice
SimilarityT able[j][j] prima di far partire l’effettivo processo di etichettamento. Ciò implica che questa prima fase non influenza la complessità computazionale degli algoritmi che in seguito andremo a definire, poiché non
viene fatta a tempo di esecuzione bensı̀ in una fase antecedente. Proprio per
questo motivo, la dimensione della matrice può essere anche molto elevata
(dipende dal numero di etichette impiegate per l’annotazione del training
set) e, nonostante ciò, non si va a toccare la complessità algoritmica finale.
Tabella 1
Orso T igre Scoiattolo Erba
{...}
Cielo
Orso
1
s1,2
s1,3
s1,4
s1,...
s1,j
T igre
s2,1
1
s2,3
s2,4
s2,...
s2,j
Scoiattolo
s3,1
s3,2
1
s3,4
s3,...
s3,j
Erba
s4,1
s4,2
s4,3
1
s4,...
s4,j
{...}
s...,1
s...,2
s...,3
s...,4
1
s...,j
Cielo
sj,1
sj,2
sj,3
sj,4
sj,...
1
4.2
Fase di generazione delle etichette
Durante questa fase si utilizzano e si offre una visione innovativa delle tecniche che in parte sono state indagate e sviluppate durante l’attività di tirocinio. Nel momento in cui il sistema entra in esecuzione si sfrutta la struttura a
grafo, Mixed-Media Graph (MMG), navigandolo in maniera casuale secondo
un algoritmo di tipo Random Walk with Restart (RWR).
Nell’attività di tirocinio si è preferito utilizzare una tecnica che, invece di
80
Proposta per l’etichettamento
automatico di immagini
andare a scegliere in modo randomico una fra le k regioni più simili ad una
data regione, prevedeva di ciclare esattamente su tutte le k regioni simili ad
una regione data per cercare di velocizzare la convergenza algoritmica. In
questo contesto, al contrario, invece di gestire la generazione delle etichette
mediante una modalità “one shot”, ovvero in un solo passo, abbiamo deciso
di generare le etichette mediante un cammino casuale, che naviga liberamente il grafo MMG costruito, andando ad esplorare sia regioni, sia etichette ed
andando a catturare la frequenza con cui tale RWR attraversa un dato nodo
etichetta. Ad ogni termine viene, infatti, associato un contatore il cui valore
viene incrementato di un’unità ogni volta che il RWR attraversa quella determinata etichetta.
Dal punto di vista della convergenza algoritmica il sistema, data una nuova
immagine che deve essere etichettata, impiega un po’ più tempo per la generazione del set di etichette disponibili ma, in ogni caso, la precisione con cui
queste vengono generate è sicuramente superiore. Visto che il RWR procede
in modo casuale, è ovvio che se il processo di etichettamento viene ripetuto
una molteplicità di volte per annotare la stessa immagine ogni volta verranno
generate un set di etichette in parte uguali ed in parte differenti. Tutto ciò
è dato dalla casualità della navigazione del RWR. È ovvio, però, che più fasi
di “RESTART ” vengono previste, più la precisione nella generazione del set
di etichetta aumenta.
L’algoritmo di generazione delle etichette è riportato in Algoritmo 2.
Strutture dati
L’algoritmo sfrutta la presenza di differenti tipologie di strutture dati, alcune permanenti ed altre temporanee. Quelle permanenti sono fondamentali
e devono essere salvate poiché serviranno nella parte di fusione successiva
delle due tecniche, che fino ad ora ci siamo apprestati a spiegare. Quelle
temporanee, al contrario, sono strutture che hanno il tempo di vita legato
all’esecuzione dell’algoritmo stesso.
Strutture permanenti
Ad ogni etichetta Li , che viene utilizzata per annotare il training set e che
viene navigata dal RWR poiché costituente un nodo di un grafo, è associato
3.4.2 Fase di generazione delle etichette
81
un contatore counter(Li ), inizializzato all’inizio a zero, il cui valore viene
incrementato di un’unità ogni volta che il RWR attraversa quella determinata etichetta. Durante la fase di etichettamento di un’immagine non ancora
annotata, il RWR naviga il grafo n volte (con n abbastanza elevato per garantire maggiore precisione nella generazione delle etichette), ed ogni volta
che attraversa un nodo, sia esso un nodo regione o un nodo etichetta, viene
generato un valore di probabilità p ∈ [0, 1] il quale viene confrontato con un
valore di soglia C1 . Se (p ≥ C1 ) il RWR riparte dall’immagine query (attua
la cosiddetta fase di “RESTART ”). Durante la navigazione, però, ogni volta
che il RWR capita su un nodo etichetta incrementa il valore del contatore associato ad essa di un’unità. L’idea è che, anche durante una sola navigazione,
il RWR potrebbe capitare più volte sullo stesso nodo etichetta, poiché ogni
suo movimento è casuale, e di conseguenza il valore del contatore counter(Li )
potrebbe essere incrementato di più unità anche durante un’unica navigazione. Noi siamo interessati a tenere traccia della frequenza di attraversamento
compiuta in tutte le, supponiamo n, navigazioni complessivamente.
Strutture temporanee
La struttura temporanea Z raccoglie tutte le regioni, più simili ad una data
regione supponiamo Rk , che vengono accedute mediante una k-NN query e
tutte le etichette che annotano l’immagine a cui la regione Rk appartiene. Z
è un vettore di dimensione sempre variabile poiché una query k-NN raccoglie
sempre esattamente k elementi (i primi k termini del vettore), ma la variabilità è data dal numero di etichette poiché non tutte le immagini del training
set sono annotate con lo stesso numero di termini. Tale struttura viene utilizzata dal RWR per decidere dove muoversi in maniera casuale. Si sceglie,
infatti, in modo random un elemento del vettore e si decide di spostarsi su
di esso (sia quest’ultimo regione o etichetta).
Proposta per l’etichettamento
automatico di immagini
82











Z=









R1


R2 

... 


... 

Rk 


L1 

L2 


... 

... 

Li
I dettagli dell’algoritmo sono riportati di seguito. Data in ingresso, infatti,
l’immagine query Iq che deve essere etichettata, l’algoritmo si articola nei
passi di risoluzione che vengono dettagliati in Algoritmo 2.
Per comprendere intuitivamente l’algoritmo vengono di seguito riportate tre
figure che tentano di mettere in luce un esempio di come opera il RWR su
un grafo MMG.
In Figura 3.9 si presenta la struttura di GM M G con tutti i suoi tre tipi di attributi (immagini, regioni ed etichette) e connessioni (“object-attribute value
link ” e “nearest-neighbor link ”).
In Figura 3.10 ed in Figura 3.11 si mostrano due esempi di funzionamento
del RWR che naviga sul grafo GM M G . Gli step che vengono indicati non sono
quelli dell’algoritmo. Sono semplicemente stati inseriti per capire la sequenzialità di navigazione del grafo.
3.4.2 Fase di generazione delle etichette
83
Algorithm 2 Generazione di etichette usando la tecnica Random Walk with
Restart e la struttura Mixed-Media Graph.
1: Inizializza la variabile n con un valore grande a piacere.
2: repeat
3:
Decrementa la variabile n di un’unità.
4:
Scegli a caso una delle regioni che segmentano l’immagine query (e.g.
Rk ).
5:
Genera un valore di probabilità p ∈ [0, 1].
6:
if (p ≥ C1 ) then
7:
ritorna allo Step (3).
8:
end if
9:
Applica una k-NN query e recupera le k regioni più simili ad Rk .
10:
Seleziona le i etichette {L1 , ..., Li } dell’immagine (all’inizio Iq , poi
una qualunque scelta dal processo randomico) a cui la regione Rk
appartiene.
11:
Riempi un vettore Z con le regioni e le etichette recuperate
rispettivamente negli Step (9) e (10).
12:
Scegli a caso un elemento del vettore Z, che indichiamo con Z[z].
13:
if (Z[z] è una regione (e.g. Rg )) then
14:
15:
16:
ritorna allo Step (9).
else if (Z[z] è un’etichetta (e.g. Lg )) then
incrementa il valore di counter(Lg ) di un’unità (inizializzandolo a 1
se non è ancora stato creato).
17:
end if
18:
Genera un valore di probabilità p ∈ [0, 1].
19:
if (p ≥ C1 ) then
20:
ritorna allo Step (3).
21:
end if
22:
Riempi un vettore E con gli identificativi di tutte le immagini che sono
etichettate con Lg .
23:
Scegli a caso un elemento del vettore E, che indichiamo con E[e].
24:
Scegli una regione a caso fra quelle che segmentano l’immagine E[e] e
ritorna allo Step (9).
25: until (n ≥ 0)
Proposta per l’etichettamento
automatico di immagini
84
Figura 3.9: Esempio di struttura di un grafo Mixed-Media Graph.
Figura 3.10: Primo esempio di navigazione del Random Walk with Restart
sul grafo GM M G .
3.4.3 Successivo raffinamento
85
Figura 3.11: Secondo esempio di navigazione del Random Walk with Restart
sul grafo GM M G .
4.3
Successivo raffinamento
A questo punto ci troviamo in questa situazione:
• abbiamo costruito offline una matrice di secondo ordine contenente
le similarità fra tutte le coppie di concetti utilizzati per etichettare le
immagini del training set;
• facendo navigare il Random Walk with Restart sul grafo GM M G , abbiamo catturato un set di etichette, potenziali annotatori dell’immagine
query, con le loro frequenze di attraversamento.
La domanda che ci si pone ora è questa: come fare a raffinare l’iniziale processo di etichettamento, dovuto a RWR, integrando la presenza di una matrice
contenente le similarità fra tutte le coppie di concetti usati per l’annotazione
del training set? Come integrare in definitiva le due tecniche di cui si è ampiamente discusso fino ad ora?
L’approccio che si è deciso di seguire è quello riportato nel dettaglio all’interno degli algoritmi Algoritmo 3 e Algoritmo 4. Per dare un’idea di come
86
Proposta per l’etichettamento
automatico di immagini
le cose vengono organizzate procediamo di seguito a fornire una breve descrizione di come si è gestita l’integrazione. Prima, però, definiamo il concetto
di “clique” e spieghiamo perché è stato introdotto.
Definizione di Clique
Nella teoria dei grafi, un clique ottenuto su un grafo non orientato G =
(V,E), costituito da un insieme di vertici (V) e da un insieme di archi (E),
è un sottoinsieme di vertici V’ ⊆ V tale che, per ogni coppia di vertici in
V’, deve esistere un arco in grado di connettere i due. Questo equivale a dire
che il sottografo indotto, ovvero V’, deve essere completo. La dimensione di
un clique viene identificata dal numero di vertici che il clique stesso contiene.
Il problema associato ai clique (clique problem) consiste nel determinare se
un generico grafo, fornito in ingresso, contiene un clique di almeno una data
dimensione, supponiamo k vertici. Nel momento in cui k o più vertici vengono individuati, risulta banale verificare se essi formano effettivamente un
clique o meno ed è per questo che si dice che il problema connesso alla determinazione dei clique è in NP.
Il corrispondente problema di ottimizzazione (maximum clique problem) consiste nel determinare il clique massimo in un grafo. La NP-completezza di
questo problema deriva banalmente dalla NP-completezza del set dei problemi indipendenti ad esso associati poiché si può individuare un clique di
almeno k elementi se e solo se c’è un set indipendente di almeno k vertici nel
grafo complementare. Questo è facile da vedere dal momento che, se un sottografo è completo, il suo complementare non ha nessun arco di connessione.
Un esempio di rappresentazione di un grafo su cui è possibile individuare un
insieme di clique viene mostrato in Figura 3.12.
3.4.3 Successivo raffinamento
87
Figura 3.12: Esempio di un grafo di termini da cui possono essere estratti i clique. Le connessioni rosse mettono in evidenza il clique a frequenza
massima restituito.
88
Proposta per l’etichettamento
automatico di immagini
Partendo da queste considerazioni di base si è deciso di procedere nel modo
che ci apprestiamo a descrivere.
Dapprima abbiamo preso tutte le etichette, restituite come risultato dall’applicazione dell’Algoritmo 2, con tutte le loro frequenze, indicate con
counter(Lk ), decidendo di tenere solamente quelle ritenute veramente “significative” ovvero solamente le, supponiamo k, etichette con il più alto valore
di frequenza ad esse associato. A questo punto, con tali etichette, abbiamo
deciso di costruire un grafo G(V, E) in cui i vertici V rappresentano i termini, mentre gli archi E indicano le connessioni fra i vari concetti in base al
valore di similarità che può essere catturato dalla SimilarityT able, costruita
in modo offline durante la prima fase di elaborazione algoritmica.
Si è deciso, inoltre, di non mantenere tutte le connessioni ovvero, dati due
concetti generici (Lu , Lv ), si è deciso di costruire l’arco di connessione fra i
due solamente se il corrispondete valore di similarità, SimilarityT able[u][v],
risulta superiore ad un ben definito valore di soglia C2 . Questo perché vogliamo pensare di eliminare a priori tutte le similarità che non sono ritenute
significative: probabilmente, infatti, se il valore di affinità fra due concetti è
troppo basso, non è corretto tenerlo in considerazione poiché questo rappresenta già un primo indizio del fatto che i due termini non risultano poi cosı̀
correlati gli uni con gli altri.
Il grafo che si viene a costruire non è completo, ma l’obiettivo è quello di recuperare, da esso, tutti possibili clique applicando l’Algoritmo 4 che descriveremo successivamente. Una volta identificati tutti i possibili clique del grafo
calcoliamo, per ciascuno di essi, il valore della frequenza associata al clique,
P
rappresentato con la seguente formula F reqCliquei = Lk ∈Cliquei counter(Lk )
dove i identifica l’i-esimo clique che stiamo prendendo in considerazione . La
frequenza complessiva di un clique si ottiene facendo, dunque, la sommatoria
di tutte le frequenze (counter(Lk )), associate ai concetti che fanno parte del
clique, recuperate durante l’applicazione dell’Algortimo 2.
L’Algoritmo 3 termina proponendo in uscita il clique, ovvero l’insieme di
etichette il cui valore di frequenza, ad esso globalmente associato, risulta il
massimo. Tale clique viene indicato con il nome di Cliquemax .
3.4.3 Successivo raffinamento
89
Va puntualizzato che in uscita non viene restituito il maximum clique, ovvero il clique con il massimo numero di termini, bensı̀ il clique con associato
il massimo valore di frequenza. Questo perché può capitare che magari un
clique costituito, ad esempio, da tre soli concetti abbia, ad esso associato,
un valore di frequenza complessiva di molto maggiore rispetto ad un cilque
composto, ad esempio, da quattro concetti. Questo perché potenzialmente il
clique composto da tre concetti potrebbe essere dotato di un grado di precisione maggiore essendo costituito dai termini che effettivamente potrebbero
rivelarsi più adatti ad etichettare l’immagine. Vogliamo conseguentemente
dare a tutti i clique la possibilità di entrare in gioco per etichettare l’immagine restituendo in uscita, però, solamente quello che, al di là del numero
di concetti che esso stesso è in grado di aggregare, è realmente il candidato
migliore in base alla frequenza, catturata dall’applicazione del Random Walk
with Restart durante l’Algoritmo 2, associata ai singoli termini.
Algorithm 3 Raffinamento delle etichette generate, durante l’applicazione
dell’Algoritmo 2, usando la tecnica PSimRank.
1: Crea il vettore T ERM S[k] contenente i k concetti con il più alto valore
di frequenza, counter(Lk ), ottenuti dall’Algoritmo 2.
2: Crea un grafo non orientato G(V, E) fatto da un insieme di vertici
e di archi, dove V corrisponde al vettore T ERM S[k] e E contiene
tutte le coppie (Lu , Lv ) aventi similarità maggiore di un data soglia
(SimilarityT able[u][v] ≥ C2 ).
3: Applica al grafo l’Algoritmo 4, in grado di individuare il clique
Cliquemax a frequenza massima (avendo che la frequenza di un clique
P
si calcola come F reqCliquei = Lk ∈Cliquei counter(Lk )).
4: return Il vettore RESU LT , contenente tutti i concetti Lj ∈ Cliquemax .
L’Algoritmo 4 si pone l’obiettivo di trovare tutti i clique presenti all’interno
del grafo operando con una tecnica a forza bruta.
Le strutture temporanee utilizzate sono tre, rispettivamente i vettori T EM P ,
T EM P 1 e RESU LT .
Ogni volta che un clique è scoperto esso viene aggiunto a RESU LT che quindi, alla fine, arriverà a contenere tutti i clique del grafo.
Proposta per l’etichettamento
automatico di immagini
90
L’algoritmo, facendo riferimento al grafo proposto in Figura 3.12, opera muovendosi all’interno di una struttura simile a quella illustrata nella Tabella 2
ed in particolare, per ogni nodo del grafo, aggiunge a RESU LT il nodo stesso
(clique di dimensione uno) e poi procede confrontando il nodo con ognuno
degli altri nodi del grafo con indice maggiore (il grafo è non orientato, quindi sarebbe superfluo confrontare il nodo con tutti gli altri), aggiungendo a
T EM P ogni coppia che risulti connessa all’interno del grafo stesso.
Una volta inizializzato il vettore T EM P , si procede in maniera analoga,
confrontando ogni clique di ordine (n), presente in T EM P , con i clique di
indice maggiore all’interno dello stesso vettore ed aggiungendo a T EM P 1
ed a RESU LT tutti i clique “compatibili” trovati, risultanti dall’unione dei
due clique confrontati e quindi di ordine (n + 1). Due clique sono considerati
“compatibili” quando ognuno dei nodi presenti all’interno del primo clique è
connesso a tutti i nodi del secondo.
Quando tutti i clique di T EM P sono stati confrontati, il vettore stesso viene svuotato e, se T EM P 1 contiene degli elementi, essi vengono spostati in
T EM P e la procedura è ripetuta per l’ordine (n + 1).
Tutto ciò viene fatto per ogni singolo nodo del grafo iniziale.
Alla fine il vettore RESU LT conterrà tutti i clique trovati, insieme al loro
punteggio complessivo, ovvero alla somma di tutte le frequenze dei singoli
nodi componenti il clique.
Al chiamante verrà, quindi, restituito il clique a punteggio massimo.
Il procedimento che è stato appena descritto viene esemplificato in Esempio
1 facendo riferimento al grafo in Figura 3.12. La descrizione formale viene,
invece, dettagliata in Algoritmo 4.
Esempio 1
Supponiamo che questi siano i k (e.g. k = 6) termini con più alto valore di
frequenza restituiti dal Random Walk with Restart durante la prima fase di
generazione attribuita all’Algoritmo 2.
• (A) Grass
• (B) Bear
• (C) Ground
• (D) Rock
3.4.3 Successivo raffinamento
91
• (E) Water
• (F) Deer
Applicando l’Algoritmo 4 abbiamo la generazione di una struttura di questo tipo contenente tutti i clique, ciascuno con associato il proprio valore di
frequenza complessiva (F reqCliquei ).
Tabella 2
1
A (95)
B (59)
C (57)
D (38)
E (35)
2
A,B (154)
B,C (116)
C,E (92)
D,E (73)
E,F (66)
A,C (152)
B,D (97)
C,F (88)
A,E (130)
B,E (94)
F (31)
A,F (126)
3
A,B,C (211)
B,C,E (151)
A,B,E (189)
B,D,E (132)
C,E,F (123)
A,C,E (187)
A,C,F (183)
A,E,F (161)
4
A,B,C,E (246)
A,C,E,F (218)
Applicando, infine, l’Algoritmo 3 otteniamo i dati che sono riportati sotto.
Il clique a massima frequenza estratto risulta:
Cliquemax = {“Grass” (A); “Bear” (B); “Ground” (C); “Water” (E)}
la cui massima frequenza risulta F reqCliquemax = 95+59+57+35 = 246.
Proposta per l’etichettamento
automatico di immagini
92
Algorithm 4 Individuazione del clique a massima frequenza contenuto nel
grafo G(V, E).
1: Crea il vettore T EM P .
2: Crea il vettore RESU LT .
3: for (i = 0 to k) do
4:
5:
6:
7:
for (j = i + 1 to k) do
if (V [i] is similar V [j]) then
Aggiungi il clique (V [i], V [j]) ai vettori RESU LT e T EM P .
end if
8:
end for
9:
Crea una variabile booleana cicla inizializzata a true.
10:
repeat
11:
Crea il vettore T EM P 1.
12:
for (j = 0 to k) do
13:
for (l = j + 1 to k) do
if (Cliquej is similar Cliquel ) then
14:
Aggiungi il clique (Cliquej ∪ Cliquel ) al vettore T EM P 1.
15:
end if
16:
17:
end for
18:
end for
19:
if (T EM P 1 non è vuoto) then
20:
Vuota il vettore T EM P .
21:
for (ogni clique Cliquei in T EM P 1) do
22:
Aggiungi Cliquei a T EM P .
23:
Aggiungi Cliquei a RESU LT .
24:
25:
26:
27:
28:
end for
else
Metti il flag cicla a f alse.
end if
until (cicla = true)
29: end for
30: return
Cliquemax (quest’ultimo è uno dei clique facenti parte di
RESU LT il cui score risulta il massimo).
3.4.4 Vantaggi apportati dall’approccio proposto
4.4
93
Vantaggi apportati dall’approccio proposto
Valutando conservativamente la bontà della tecnica che è stata ideata si può
notare come siano stati raggiunti gli obiettivi che erano stati prefissati in
partenza.
In primo luogo abbiamo la possibilità di gestire l’etichettamento di una nuova
immagine mediante un set di etichette capaci di esprimere anche contenuti
astratti. Non è definito il legame fra un’etichetta e le regioni in cui l’immagine
può essere segmentata. Le etichette sono vincolate in maniera forte all’immagine nella sua totalità. Immagini, regioni di segmentazione ed etichette sono
correlate mediante la struttura modulare di un grafo, il Mixed-Media Graph,
il quale può essere liberamente navigato tramite Random Walk with Restart.
In secondo luogo il numero di etichette generate non è staticamente definito, ma è variabile. La variabilità è data dalla possibilità di basarci sulla
determinazione di clique, all’interno di un grafo di concetti connessi fra loro
solamente se il valore di similarità (calcolato mediante la tecnica PSimRank )
associato ad ogni coppia di termini supera un ben definito valore di soglia,
per ciascuno dei quali si calcola il valore complessivo della frequenza ad essi
associata. Il sistema provvederà a restituire il clique a massima frequenza
andando ad etichettare l’immagine, non ancora annotata, con l’insieme di
termini facenti parte di tale clique. Rendiamo di conseguenza flessibile il numero di termini che devono andare ad etichettare un’immagine dal momento
che potrebbero esistere immagini che necessitano meno di, supponiamo t,
valori di etichettamento.
L’ultima considerazione riguarda l’intervento multitassonomico. Esso interviene, secondo il nostro approccio, solo nella prima fase di etichettamento
del training set: ogni immagine che fa parte di quest’ultimo viene etichettata
con dei termini che provengono da diverse tassonomie. L’intervento multitassonomico impedisce ad un utente di annotare le immagini con termini di sua
preferenza, vincolandolo in modo forte alla scelta di concetti facenti parte di
una struttura gerarchica organizzata.
Capitolo 4
Imagination
In questo capitolo ci apprestiamo a descrivere nel dettaglio le caratteristiche
del prototipo software , “Imagination”, che è stato realizzato per provare sia
gli algoritmi di etichettamento automatico di immagini, di cui si è parlato
approfonditamente nella presente tesi, sia le tecniche di “mapping” a livello
ontologico i cui dettagli sono presentati in [29].
Il nome “Imagination” rappresenta l’acronimo: “IMage semAntics: ontoloGy
mappiINg & Auto capTIONing”. Tale acronimo indica, in effetti, la doppia
valenza e il doppio utilizzo che si fa di esso. L’idea è quella di estrarre il contenuto semantico, presente in un’immagine, operando su quest’ultima con la
finalità di gestire la sua annotazione, mediante concetti, in maniera automatica e di valutare le relazioni fra i termini stessi che appartengono ad una
molteplicità di tassonomie differenti collocate non solo in un contesto locale,
ma anche in ambito distribuito.
Nel presente capitolo, di conseguenza, ci concentreremo dapprima sulla descrizione di come è stato possibile gestire l’integrazione del sistema Windsurf
nel progetto Imagination, poi discuteremo di come ci si è potuti interfacciare
con il DBMS MySql. Parleremo poi del perché è stato necessario introdurre l’ontologia WordNet e del motivo che ci ha spinti, successivamente, a
progettare un nuovo editor di ontologie, Jont, al fine di rendere possibile
la costruzione di più semplici strutture tassonomiche specifiche in grado di
adattarsi ai nostri domini di riferimento. Infine, presenteremo l’architettura
software dell’applicazione descrivendo ciò che Imagination consente di fare
dal punto di vista dell’interazione dell’utente finale con l’interfaccia grafica di
96
Imagination
sistema ed analizzeremo le responsabilità associate a tutte le classi ed a tutti
i package che, da un punto di vista strutturale, rappresentano l’organizzazione complessiva del sistema. Al termine, valuteremo i risultati sperimentali
ottenuti in merito alla definizione, a regime, dei valori di soglia che vengono
utilizzati all’interno dei differenti algoritmi creati.
1
Applicazione di Windsurf al progetto Imagination
Windsurf (Wavelet-based INDexing of imageS Using Region Fragmentation)
è un sistema Content-Based Image-Retrieval che si concentra sulla creazione
di algoritmi efficienti ed efficaci in grado di gestire la segmentazione delle
immagini in regioni. Esso è stato sviluppato presso l’Università di Bologna
ed i dettagli relativi alla sua realizzazione sono presentati in [31], in [32] ed
in [33].
Questo sistema, come illustrato in Figura 4.1, utilizza la trasformata Wavelet
discreta per estrarre le feature di colore e tessitura da una qualunque immagine presa in ingresso, poi applica un algoritmo di clustering per partizionare
l’immagine in regioni omogenee ed, infine, memorizza le caratteristiche delle
singole regioni con lo scopo di poterle confrontare.
Windsurf introduce un nuovo approccio per quanto riguarda l’estrazione delle feature: l’applicazione della trasformata di Wavelet produce, infatti, informazioni combinate su colore e tessitura che descrivono il contenuto dell’immagine, mentre nei presistenti sistemi le due tipologie di informazioni erano
sempre state mantenute separate. Le feature cosı̀ estratte vengono successivamente utilizzate per frammentare l’immagine in regioni, tramite l’algoritmo
di clustering k − means. Poiché questo algoritmo utilizza i coefficienti di
Wavelet per partizionare le immagini in regioni, non vengono mantenute le
informazioni spaziali ed i pixel sono raggruppati utilizzando solo le informazioni relative a colore e tessitura. La similarità fra due immagini viene, infine,
calcolata attraverso una funzione di distanza che confronta le feature delle
singole regioni e combina poi i risultati a livello globale.
4.1 Applicazione di Windsurf al progetto Imagination
97
Figura 4.1: Fasi di elaborazione di un’immagine all’interno del sistema
Windsurf.
È necessario, a questo proposito, domandarsi in quale contesto il sistema
“Imagination” ha sfruttato le potenzialità di Windsurf. La risposta si ha
indagando l’ambito infrastrutturale: per gestire la segmentazione delle immagini in regioni si è scelto di utilizzare le librerie del motore Windsurf. È
importante capire infatti come, avendo a disposizione tali librerie, abbiamo
avuto la possibilità di mappare già una prima parte del grafo GM M G ovvero
quella che gestisce il legame fra le immagini e le regioni costitutive delle stesse. In realtà ciò che abbiamo fatto è stato prendere Windsurf ed estrarre dal
sistema i metodi che effettivamente ci potevano essere utili per la gestione
della segmentazione delle immagini in regioni e per la successiva estrazione
dei vettori di feature da esse. Da Windsurf abbiamo estrapolato anche il
metodo che ci ha consentito di calcolare la similarità fra i vettori di feature
rappresentativi delle varie regioni. Con questo metodo abbiamo potuto eseguire le k-NN query andando a recuperare, data una regione, le k regioni più
simili ad essa.
Da un punto di vista più implementativo abbiamo deciso di non costruirci la
matrice di adiacenza proposta da [5] anche perché, nonostante la costruzione
in parte offline, essa sarebbe risultata prevalentemente sparsa (riempita con
molti 0 e pochi 1) e proprio per questo assai inefficiente per quanto riguarda
il nostro caso specifico in cui si opera con un dataset di 971 immagini e di
conseguenza circa 2000 regioni complessivamente. Ricordiamo che la matrice
di adiacenza dovrebbe, infatti, contenere tanti ingressi quanti sono i “nodi”
effettivi del grafo ovvero nodi immagine, regione e concetto. Siamo riusciti a
98
Imagination
lavorare, dunque, molto più efficientemente sfruttando la struttura che implicitamente Windsurf già è stato in grado di fornirci, evitando di caricare
a tempo di esecuzione una matrice di dimensioni eccessive che sarebbe stata assolutamente non scalabile nel caso di database di immagini abbastanza
grandi da gestire.
Abbiamo, di conseguenza, deciso di effettuare una navigazione del grafo i cui
valori sono stati precedentemente caricati in un database, soluzione magari
più lenta a convergere, ma che non esplode dal punto di vista della complessità all’aumentare della grandezza del grafo. La probabilità C1 di effettuare
una fase di “RESTART ” è fissa quindi, anche nel caso di un grafo arbitrariamente grande, il tempo di navigazione correlato al processo del Random
Walk with Restart rimane lo stesso.
2
Interfacciamento con il database MySql
Dal momento che si è deciso di sfruttare l’interazione con il database, per
memorizzare le immagini e le regioni connesse alle immagini stesse, è stato
creato un nuovo database, chiamato “mmg”, al cui interno sono state mappate un set di tabelle. Il DBMS utilizzato per la gestione complessiva delle
tabelle si cui si parlerà è MySql, i cui dettagli si posso consultare online in
[34].
Le tabelle sono quelle elencate di seguito (in Figura 4.2 è proposto un diagramma che evidenzia, inoltre, i collegamenti fra le stesse):
• Tabella IMAGES
Questa tabella ha la responsabilità di mappare per ogni immagine
(identificata univocamente dal suo “image id ”) i termini (indicati
dal valore “term”) che la etichettano e il riferimento alla tassonomia
(“ontology ”) a cui questi ultimi appartengono.
La primary key è costituita dalla tripla di valori (“image id ”, “term”,
“ontology ”).
• Tabella ID MATCH
Questa tabella memorizza il match fra l’identificativo numerico dell’im-
4.2 Interfacciamento con il database MySql
99
magine (“image id ”) e il suo nome effettivo (“image name”).
La primary key è costituita dal solo termine “image id ”.
• Tabella FEATURES
Questa tabella memorizza, per ogni regione di un’immagine, il vettore
contenente le sue feature ovvero le caratteristiche di basso livello ad
essa associate. La tabella contiene, infatti, l’identificativo univoco di
ogni regione(“id region”), il riferimento all’immagine a cui tale regione appartiene (“id image”) e il vettore delle feature di basso livello
associate alla regione dell’immagine stessa. Le feature sono diverse a
seconda della dimensione dell’immagine da cui vengono estratte per
questo è necessario tenere traccia di ciò mediante il campo indicato
con “dimension”. I campi “center1 ”, ..., “center12 ” rappresentano i centroidi per l’estrazione delle feature (questi valori sono stati presi
dalle librerie del motore Windsurf trasportandoli dai file, su cui erano
memorizzati, e salvandoli in MySql). Analogamente “covcoeff1 ”, ...,
“covcoeff24 ” sono dei coefficienti di covarianza utilizzati per l’estrazione delle feature dal motore Windsurf (anche questi valori sono stati
trasportati da file in tabelle MySql).
La primary key è costituita dal solo termine “id region”, dal momento che tutte le immagini sono univocamente identificate.
• Tabella ONTOLOGIES
Prevedendo di lavorare con una molteplicità di ontologie non solo in
ambito distribuito, ma anche a livello locale è stato deciso di introdurre questa tabella in cui sono memorizzate tutte le ontologie create,
ciascuna con il proprio nome identificativo (“ontology ”), con i concetti in essa contenuti (“concept”) e la relazione di parentela progressiva
che lega fra loro i vari termini (“parent”). Per ogni concetto, appartenente ad una definita tassonomia, si indica il termine da cui esso deriva,
vale a dire il suo termine genitore.
La primary key è rappresentata dalla coppia (“ontology ”, “concept”)
al fine di identificare univocamente, per ogni ontologia, quali sono i ter-
100
Imagination
mini che essa è un grado di rappresentare.
• Tabella PSIMRANK
Questa tabella è stata introdotta per individuare, grazie all’utilizzo dell’algoritmo PSimRank, le similarità fra le varie coppie di concetti presi
in esame. Una volta definita l’ontologia che si sta indagando per valutare la similarità fra i vari concetti (“ontology ”), si prende ogni termine
(“termA”) e lo si confronta con ciascuno degli altri (“termB”) appartenenti alla medesima tassonomia di concetti (“ontology ”) e si calcola
il valore di similarità (“sim”) fra le coppie create utilizzando le formule
di cui tanto si è discusso nel capitolo precedente legate all’applicazione
dell’approccio PSimRank.
La primary key è costituita dalla tripla di valori (“termA”, “termB”,
“ontology ”).
• Tabella SIMILARITY
Questa tabella è stata costruita al fine di salvare, per ogni regione
“id region”, le k regioni più simili (e.g. k = 10) ad essa, indicate in “sim region”, riportando il corrispondente valore di similarità
(“sim”) calcolato utilizzando i metodi estratti da Windsurf.
Visto che il calcolo di tali valori è strettamente correlato al processo di
navigazione attuato dal Random Walk with Restart e che quest’ultimo
può, durante il suo processo di attraversamento, toccare sia nodi regione sia nodi etichette è necessario indicare, in caso di un passaggio sui
nodi etichette, l’ontologia di appartenenza di queste ultime nel campo
“ontology ”.
La primary key è costituita dalla tripla (“id region”, “sim region”,
“ontology ”).
Si noti che tutte le frecce, che sono indicate in Figura 4.2, sono state inserite
per mettere in evidenza i vincoli di foreign key fra le varie tabelle.
4.2 Interfacciamento con il database MySql
101
Figura 4.2: Diagramma che mostra lo schema del database “mmg” evidenziando i vincoli di “primary key” e di “foreign key” presenti in
esso.
102
3
Imagination
Integrazione di una molteplicità di tassonomie
L’ontologia rappresenta il tentativo di formulare uno schema concettuale
esaustivo e rigoroso nell’ambito di un dato dominio; si tratta generalmente di una struttura dati gerarchica che contiene tutte le entità rilevanti, le
relazioni esistenti fra di esse, le regole, gli assiomi, ed i vincoli specifici del
dominio stesso. Un esempio di ontologia viene mostrato in Figura 4.3. In esso
viene messo in evidenza come i concetti, appartenenti a due diverse ontologie,
si possono correlare mediante la presenza di una molteplicità di relazioni.
L’ontologia per eccellenza è quella rappresentata da WordNet. WordNet,
per i cui dettagli si può far riferimento a [2], a [3] ed a [4], è una rete semantica realizzata presso l’università di Princeton da un gruppo di ricerca
guidato da George Miller che si basa su teorie psicolinguistiche sull’organizzazione della memoria lessicale. Nel sistema consultabile online nomi, verbi,
aggettivi e avverbi sono organizzati in un insieme di sinonimi ognuno dei
quali rappresenta un concetto lessicale di base. La principale differenza fra
WordNet e un dizionario standard è, infatti, la suddivisione dell’ontologia in
queste quattro categorie sintattiche di base.
Il vantaggio di questa suddivisione è che ogni categoria è organizzata semanticamente in modo diverso; ad esempio, i nomi sono organizzati in memoria
all’interno di gerarchie specifiche, i verbi sono organizzati con una varietà
di relazioni concatenate, gli aggettivi e gli avverbi sono, invece, organizzati
come iperspazi n-dimensionali. Un unico principio organizzativo per tutte le
categorie sintattiche avrebbe mal rappresentato, infatti, la complessità della
conoscenza lessicale.
Ai fini dell’annotazione automatica di immagini ci siamo serviti dell’ontologia WordNet, dal punto di vista dei nomi e del significato ad essi connesso,
per consentire ad un utente di poter annotare il training set di immagini
campione accedendo ai termini facenti parte di tale ontologia. Ci siamo, infatti, diffusamente soffermati sulla problematica connessa alla soggettività
dell’annotazione nel senso che utenti diversi potrebbero scegliere di annotare
la stessa immagine con parole diverse, ma sinonime. E’ necessario utilizzare,
dunque, le parole provenienti da una ontologia di dominio per cercare di evi-
4.3 Integrazione di una molteplicità di tassonomie
103
Figura 4.3: Esempio di più gerarchie di concetti connesse mediante un set di
differenti relazioni.
104
Imagination
tare questa problematica di fondo.
Ci siamo resi conto che, però, WordNet è davvero un’ontologia molto ricca
ed estesa che rischia spesso e volentieri di non essere poi cosı̀ appropriata se,
come nel nostro caso, l’obiettivo è quello di testare gli algoritmi per la gestione dell’etichettamento automatico di immagini lavorando su domini molto
più ristretti e specifici riguardanti un certo ambito. Proprio per questo motivo si è pensato di creare un sistema, Jont di cui si fornirà una descrizione
dettagliata nei paragrafi successivi, in grado di occuparsi dell’editing delle
ontologie. Un utente può costruirsi la sua ontologia e decidere di andare ad
annotare le immagini, appartenenti al training set, con i termini appartenenti
ad essa. Per l’etichettamento è prevista la possibilità di annotare le immagini mediante una molteplicità di termini appartenenti a differenti tassonomie
gerarchiche di concetti. Un esempio di ontologie ad hoc, realizzate appositamente per rappresentare il nostro contesto di azione, sono molto simili a
quelle rappresentate in Figura 4.4.
Figura 4.4: Due esempi di ontologie ad hoc che, singolarmente, possono essere
utilizzate per l’etichettamento del training set.
4.4 Architettura software
4
105
Architettura software
Prima di andare a presentare l’interfaccia grafica delle due applicazioni Imagination e Jont, andiamo a descrivere nel dettaglio l’architettura software
che è stata realizzata per applicare concretamente le tecniche illustrare nel
capitolo precedente. Tale descrizione avverrà tenendo conto della suddivisione in vari package delle due applicazioni per meglio distinguere le diverse
funzionalità ed essere coerenti con la modularità delle stesse.
4.1
Considerazioni relative al linguaggio
L’applicazione è stata sviluppata utilizzando il Java framework su piattaforma Macintosh OS X 10.4 (Tiger). La versione di Java utilizzata è la 1.5,
in quanto giudicata ormai sufficientemente matura ed implementata su tutte
le principali piattaforme (OS X, Linux, Windows).
La decisione del cambio di linguaggio, diverso dal C++ delle librerie Windsurf originali, è stata presa alla luce delle difficoltà incontrate (e comunque
risolte) nel porting delle librerie C++ su piattaforma OS X, difficoltà che
hanno portato a delle considerazioni sulla necessità di riscrivere o, comunque, adattare le librerie in caso di porting successivi su altre piattaforme. Nel
caso di Java il porting è invece a costo zero, ed anche l’interfacciamento con
il database MySql è reso molto più facile che in C++ grazie alla disponibilità
del driver JDBC.
4.2
Struttura di Imagination
Il prototipo Imagination è stato organizzato in modo da mantenere un livello di modularità strutturale. In esso possiamo identificare un insieme di
package in cui, ognuno di essi, riveste un set ben definito di responsabilità.
L’obiettivo è ora quello di andare a puntualizzare tali ruoli evidenziandone
le caratteristiche di base. La struttura complessiva dei package può essere visualizzata nella sua interezza in Figura 4.5. In questo diagramma sono stati
riportati per completezza i legami fra le differenti classi e, di conseguenza,
fra i package corrispondenti.
106
Imagination
Figura 4.5: Architettura generale dell’applicazione Imagination dal punto di
vista dei package e delle classi in essi contenute.
4.4.2 Struttura di Imagination
107
Package jwindsurf
Contiene le librerie Windsurf, necessarie per ottenere la similarità fra le regioni della collezione di immagini.
Nella prima versione dell’applicazione, in una politica generale di riutilizzo
del software scritto in precedenza, il package era solo un’interfaccia JNI verso
le librerie Windsurf originali scritte nel linguaggio C++. Solo una piccola
parte di tali librerie veniva, però, effettivamente utilizzata, in particolare si
chiedeva di ricavare dall’intera collezione delle immagini una lista delle k regioni più simili alla regione data come query (ovvero k-NN query).
I primi test dell’applicazione hanno, però, messo in evidenza tempi molto
lunghi per il calcolo di questa query k-NN, tempi che andavano ad influire
negativamente in maniera abbastanza evidente sui tempi di risposta dell’applicazione stessa nel suo complesso.
Il problema è stato individuato nell’utilizzo di file di testo per memorizzare
tutte le feature connesse alle regioni di tutte le immagini della collezione, file
evidentemente troppo grandi per permettere un rapido accesso ed un veloce
reperimento delle informazioni desiderate.
Per ovviare a questo problema, tutte le informazioni, contenute nei file di
testo, sono state trasferite nel database MySql (di cui si è ampiamente discusso nei paragrafi precedenti), in modo da consentire un accesso molto più
veloce e mirato alle feature, grazie anche all’utilizzo del linguaggio Sql per la
gestione delle interrogazioni fatte sul database “mmg” creato.
Le classi implementate per il trasferimento dei dati da file su database, ovvero Filler e Filler 1 , sono state mantenute, memorizzate all’interno del
package imagination.sql, in quanto potrebbero servire in futuro come mediatori per consentire la comunicazione fra un’altra eventuale applicazione,
che potrebbe essere utilizzata per l’estrazione delle feature dalle immagini
mediante tecniche diverse da quelle che vengono proposte da Windsurf, e la
nostra.
Una volta effettuata la conversione delle informazioni da file a database, il
package jwindsurf è stato radicalmente riscritto incorporando in esso una
parte delle librerie Windsurf e svincolandolo totalmente dall’uso del JNI,
garantendo cosı̀ una totale portabilità dell’applicazione su qualsiasi piatta-
108
Imagination
forma con una Java Virtual Machine ed un database MySql (opensource).
L’interfacciamento con il database è garantito dal package imagination.sql,
distinto dal resto dell’applicazione per seguire una logica di massima modularità e permettere il riutilizzo del software.
Per velocizzare ulteriormente l’accesso alle informazioni sulle immagini è stato implementato un caching delle stesse, quindi all’avvio (se la memoria lo
permette) le feature statiche relative alle immagini vengono caricate in strutture dinamiche per accelerare ancora di più l’accesso ad esse grazie anche
all’utilizzo di tecniche di hashing per il reperimento delle regioni desiderate.
• Classe WUtility
Tale classe incorpora la maggior parte dei metodi relativi alle operazioni tra matrici, usati dal metodo principale che calcola la distanza
di Bhattacharyya fra le feature connesse alle regioni in cui le immagini
possono essere segmentate.
• Classe Distance
Tale classe è un contenitore. A fronte di una k-NN query il risultato è
un vettore di istanze di questa classe. Tali istanze contengono la regione simile, l’immagine a cui essa appartiene e il valore di similarità di
questa con la regione query.
• Classe WArray
Tale classe contiene un insieme di strutture di supporto alla classificazione ed indicizzazione dei dati della collezione.
• Classe WRegion
Tale classe contiene una singola regione e tutte le feature ad essa connesse. È in grado di costruirsi a partire da un ResultSet e di restituire
la sua distanza con un’altra regione dello stesso tipo.
• Classe RegionCollection
Tale classe è una struttura che contiene all’interno tutte le regioni ed
implementa il metodo che consente di confrontare la regione, data come
4.4.2 Struttura di Imagination
109
input, con tutte le regioni, contenute all’interno della collezione (a prescindere dalle immagini alle quali appartengono), secondo la distanza
di Bhattacharyya e restituendo le k regioni più simili ad essa.
Package wordnetexplorer
In questo package si va ad indagare tutto ciò che è connesso alla possibilità di integrare la presenza dell’ontologia lessicale WordNet all’interno del
sistema per la gestione dell’etichettamento automatico di immagini. Benché
si abbia la consapevolezza che spesso WordNet risulta eccessivamente immensa, come ontologia, rispetto ai nostri obiettivi e che, in realtà, sarebbe
sufficiente creare delle tassonomie molto più semplici ed ad hoc cablate per
i nostri scopi, è stato deciso di inserirla all’interno del sistema Imagination
primo per dare un’idea di generalità, secondo per testare, durante le prime
fasi, l’algoritmo di etichettamento automatico senza doverci eccessivamente
concentrare sull’origine ontologica dei concetti stessi.
• Classe Synset
Tale classe consente di rappresentare un concetto appartenente all’ontologia WordNet specificando, in particolare, anche il suo identificativo
numerico.
• Classe WnSql
Tale classe gestisce la connessione con il database “wn pro mysql”
implementando, in linguaggio Sql, le richieste di accesso a quest’ultimo
che provengono dalle altre classi.
Essa implementa i metodi necessari a cercare i lemmi nell’ontologia,
ad associarli alle loro descrizioni ed a costruire l’albero visualizzato nel
frame. Questa classe segue la logica di costruzione del pattern Singleton.
• Classe WordnetExplorer
Tale classe rappresenta l’interfaccia grafica di accesso all’ontologia WordNet permettendo di effettuare una ricerca per parole all’interno della
110
Imagination
stessa.
Package imagination.sql
Questo package garantisce l’accesso al database grazie alla classe singleton
MySqlConnector ed incorpora le classi Filler e Filler 1 che vengono
utilizzate per il trasferimento delle feature da file a database.
MySqlConnector è stato implementato secondo il pattern Singleton, quindi tutte le classi che all’interno dell’applicazione lavorano con esso si riferiscono alla stessa istanza, garantendo cosı̀ lo sharing della connessione al database
ed una corretta apertura e chiusura della stessa rispettivamente all’avvio ed
al termine dell’applicazione. Questa classe offre tutti i metodi per accedere
al database dell’applicazione tranne quelli relativi a WordNet, contenuti in
un altro database e, quindi, in un’altra classe creata appositamente. I metodi sono di supporto a tutte le funzioni dell’applicazione, fra cui il caching
iniziale, l’etichettamento automatico ed il mapping ontologico.
• Classe MySqlConnector
Tale classe gestisce la connessione con il database “mmg” implementando, in linguaggio Sql, le richieste di accesso a quest’ultimo che provengono dalle altre classi.
• Classe SimComputer
Per ogni ontologia e per ogni immagine etichettata con i termini che
provengono da quest’ultima, questa classe implementa la procedura offline che consente di ricavare le k regioni più simili a ciascuna delle
regioni che appartengono all’immagine stessa.
• Classe Filler
Tale classe ha la responsabilità di prendere i dati, relativi a come opera
Windsurf dal punto di vista del recupero delle immagini, salvati su file e di inserirli all’interno del database “mmg” nella tabella id match.
4.4.2 Struttura di Imagination
111
• Classe Filler 1
Tale classe ha la responsabilità di prendere i dati, relativi a come opera Windsurf dal punto di vista della segmentazione delle immagini in
regioni e del corrispondente recupero delle feature di basso livello connesse a queste ultime, salvati su file e di inserirli all’interno del database
“mmg” nella tabella features.
Package imagination.ontology
In questo package è inserita la classe base in grado di implementare l’algoritmo di mapping ontologico di cui parla dettagliatamente in [29].
• Classe OntologyWalker
Tale classe, dato un termine appartenente ad una ben definita ontologia di dominio, restituisce l’elenco dei k termini più simili appartenenti
ad un’altra ontologia implementando l’algoritmo di mapping ontologico
descritto nel dettaglio in [29].
Package imagination.ontology.gui
Tale package ha la responsabilità di gestire la visualizzazione della struttura gerarchica dell’ontologia, una volta che essa stessa è stata selezionata.
Nel paragrafo successivo andremo ad indagare nel dettaglio il modo in cui si
può accedere a questa parte dell’interfaccia grafica andando a vedere in che
modo si può gestire l’interazione con essa.
• Classe OntologyViewer
Tale classe consente di visualizzare la struttura di un’ontologia, mettendone in luce le sue caratteristiche dal punto di vista gerarchico, una
volta che essa è stata selezionata.
Package imagination.similarity
In questo package ci si concentra sulla presentazione di tutte le classi che
112
Imagination
sono state create per utilizzare l’algoritmo PSimRank ovvero per arrivare a
costruire, come fine ultimo, una tabella all’interno del database “mmg” che
consenta di definire la similarità, calcolata ricorsivamente una volta costruito
il bipartite graph fra le immagini e le etichette coinvolte, fra tutte le coppie
di concetti utilizzati per l’etichettamento del training set.
• Classe SetUtility
Tale classe offre la possibilità di computare le operazioni insiemistiche,
ovvero unione, intersezione e differenza, fra due insiemi. Essa viene
utilizzata nel calcolo dei coefficienti necessari all’applicazione dell’algoritmo PSimRank.
• Classe ImageSimMatrix
Tale classe offre possibilità di gestire una matrice in cui vengono memorizzati i valori di similarità, calcolati mediante l’applicazione dell’algoritmo PSimRank, fra le coppie di immagini che costituiscono il
training set. Tali valori vengono aggiornati, ad ogni iterazione dell’algoritmo stesso, finché non si raggiunge la convergenza.
• Classe LabelSimMatrix
Tale classe offre possibilità di gestire una matrice in cui vengono memorizzati i valori di similarità, calcolati mediante l’applicazione dell’algoritmo PSimRank, fra le etichette che annotano il training set. Tali
valori vengono aggiornati ad ogni iterazione dell’algoritmo finché non
si raggiunge la convergenza.
• Classe MyComparator
Tale classe svolge il ruolo di comparatore fra due entità. Essa riveste un
ruolo di rilievo poiché è di aiuto nella gestione di ordinamenti di vettori.
• Classe PSimRank
Tale classe ha la responsabilità di implementare le formule ricorsive che
vengono utilizzate nell’applicazione dell’algoritmo PSimRank.
4.4.2 Struttura di Imagination
113
• Classe PSimRanker
Tale classe consente di calcolare, per ogni concetto appartenente ad
una certa ontologia, i valori di similarità con tutti gli altri termini appartenenti ad essa utilizzando l’algoritmo PSimRank e sfruttando la
struttura di grafo bipartito fra immagini ed etichette in grado di annotare le immagini stesse (per fare ciò si utilizza il training set di immagini
campione già etichettate).
• Classe RWR
Tale classe implementa l’Algoritmo 2, che è stato descritto nel dettaglio nel capitolo precedente, ma senza imposizione di vincoli sul numero
di volte in cui l’algoritmo deve attuare la fase di “RESTART ”.
• Classe RandomWalker
Tale classe utilizza RWR per portare a termine l’implementazione
dell’Algoritmo 2 imponendo il vincolo sul numero di volte in cui l’algoritmo deve attuare la fase di “RESTART ”.
Package imagination.graph
In questo package ritroviamo tutte le classi che sono coinvolte nell’applicazione dell’Algoritmo 4. In questa sezione ci si occupa di definire tutti i
metodi per poter lavorare con un clique e per poter rappresentare il grafo da
cui i clique stessi devono essere estratti.
• Classe Clique
Questa classe contiene tutti i metodi necessari per lavorare con un clique rappresentandolo in tutta la sua interezza.
• Classe Graph
Tale classe è in grado di rappresentare il grafo di cui si parla negli algoritmi Algoritmo 3 e Algoritmo 4. Esso è composto da un insieme
di vertici, che rappresentano i termini con più alto valore di frequenza
114
Imagination
restituiti dall’applicazione del Random Walk with Restart, e da un insieme di archi in grado di definire il valore di similarità fra ogni coppia
di termini solo se tale valore, calcolato mediante l’applicazione dell’algoritmo PSimRank, è superiore ad un ben definito parametro di soglia,
vale a dire C2 . A partire dalla struttura di questo grafo si vogliono identificare i clique in esso contenuti, con l’obiettivo di generare in uscita il
clique a massima frequenza di cui ampiamente si è discusso nel capitolo
precedente.
Package imagination.graph.drawing
In questo package ci si occupa della rappresentazione, dal punto di vista
grafico, di ciò che viene generato mandando in esecuzione gli algoritmi Algoritmo 3 e Algoritmo 4. In questa sottosezione ci si concentra dunque
sulla creazione, dal punto di vista grafico, del grafo che consente di collegare
i concetti, estratti in prima battuta dall’applicazione dell’Algoritmo 2, e le
similarità fra di essi in modo da poter estrarre dal grafo stesso tutti i possibili
clique. Sempre graficamente si gestisce, inoltre, la visualizzazione del clique
a massima frequenza che viene restituito come risultato finale per l’utente.
• Classe CliqueDrawing
Questa classe è un’interfaccia grafica per la visualizzazione concreta di
ciò che viene creato mandando in esecuzione gli algoritmi Algoritmo
3 e Algoritmo 4. Grazie a tale classe, infatti, viene resa possibile la
visualizzazione del grafo di concetti e similarità mettendo in luce il clique a massima frequenza che, al termine, viene restituito.
Package imagination.gui
In questo ultimo package ritroviamo tutte le classi che sono coinvolte nella
creazione e nella gestione dell’interfaccia grafica principale del sistema Imagination la quale verrà spiegata nel dettaglio nel paragrafo successivo. Da
questa interfaccia tutto il sistema viene monitorato e gestito. Grazie ad essa
si offre all’utente il controllo di tutte le funzioni esaminate nelle descrizioni
4.4.3 Struttura di Jont
115
dei package precedenti.
• Classe SettingsFrame
Tale classe viene utilizzata da quella principale ImaginationFrame.
Essa consente di associare ad ogni parametro di soglia un ben definito
valore, prima di far eseguire l’applicazione stessa. Ad ogni parametro è
associato un valore di default di cui si parlerà diffusamente in uno dei
paragrafi successivi.
• Classe JImagePanel
Tale classe viene utilizzata dalla classe principale ImaginationFrame
per gestire l’interfaccia grafica complessiva dell’applicazione.
• Classe ImaginationFrame
Tale classe rappresenta l’interfaccia grafica complessiva di gestione dell’applicazione. Da essa è possibile svolgere tutta una seria di operazioni
di base che possono consentire sia di applicare l’etichettamento automatico di immagini sia di portare a compimento la fase di mapping
ontologico. La modalità di funzionamento di tale interfaccia verrà descritto nel dettaglio nei paragrafi successivi.
4.3
Struttura di Jont
Jont è un’applicazione “satellite”, rispetto a quella principale, che verrà meglio descritta, dal punto di vista grafico, nel paragrafo successivo.
È stata introdotta per fornire velocemente piccole ontologie personalizzate
da usare negli esempi sia di etichettamento automatico di immagini sia di
mapping ontologico.
Essa permette di costruire l’albero di un’ontologia, partendo dai termini definiti dall’utente, consentendo di connetterli sfruttando la relazione genitorefiglio. Le operazioni, che possono essere svolte da questa applicazione, riguardano la possibilità di aggiungere termini, eliminarli, spostarli nel piano
di lavoro ed aggiungere collegamenti fra ogni coppia di termini stessi. Tale
116
Imagination
applicazione si occupa, inoltre, dei controlli per evitare cicli, auto-link ed è
responsabile di fornire un’ontologia ben formata con un’unica radice. Il menu
di interazione con essa consente di mostrare le ontologie presenti nel database, salvare l’ontologia corrente, caricarne una già esistente per modificarla o
eliminarla nel caso non sia più rilevante per gli scopi proposti.
La struttura complessiva dei package può essere visualizzata nella sua interezza in Figura 4.6. In questo diagramma sono stati riportati per completezza
i legami fra le differenti classi e, di conseguenza, fra i package corrispondenti.
Figura 4.6: Architettura generale dell’applicazione Jont dal punto di vista dei
package e delle classi in essi contenute.
Package jont
Questo package contiene le classi che consentono di accedere all’applicazione
di editing delle ontologie.
• Classe Main
Tale classe rappresenta semplicemente il punto di ingresso per accedere
all’applicazione principale contenuta nella classe MainFrame.
4.4.3 Struttura di Jont
117
Package jont.sql
Questo package contiene le classi che consentono di gestire l’accesso al database. SqlConnector è stato implementato secondo il pattern Singleton,
quindi tutte le classi che all’interno dell’applicazione lavorano con esso si
riferiscono alla stessa istanza, garantendo cosı̀ lo sharing della connessione
al database ed una corretta apertura e chiusura della stessa rispettivamente
all’avvio ed al termine dell’applicazione.
• Classe SqlConnector
Tale classe ha il compito di gestire l’accesso al database “mmg”, alla
tabella ontologies, nel quale viene fatto il salvataggio dell’ontologia
durante il suo processo di costruzione sfruttando la relazione genitorefiglio. In linguaggio Sql tale classe implementa le richieste di accesso al
database che provengono dalle altre classi.
Package jont.gui
Questo package contiene, infine, tutte le classi in grado di gestire l’interfaccia
grafica dell’applicazione. Si disegna, di conseguenza, un’ontologia a partire
dai singoli concetti costitutivi della stessa che vengono introdotti dall’utente.
L’effetto finale è l’editing di una struttura ontologica gerarchica che viene
salvata all’interno del database “mmg”.
• Classe Concept
Questa classe ha il compito di rappresentare, anche da un punto di
vista grafico, l’idea del “concetto” che entra a fare parte di una certa
ontologia.
• Classe MainFrame
Questa classe si occupa dell’interfaccia grafica dell’applicazione. Grazie
ad essa si ha la possibilità di accedere alla differenti utility messe a
disposizione da essa. Essa permette di costruire l’albero di un’ontologia, partendo dai termini definiti dall’utente, consentendo di connetterli
118
Imagination
sfruttando la relazione genitore-figlio.
5
Interfaccia grafica di Imagination
Descriviamo ora l’interfaccia grafica del nostro sistema Imagination con l’obiettivo di comprendere meglio il funzionamento dell’etichettamento automatico.
La Figura 4.7 mostra l’interfaccia grafica dell’applicazione. All’avvio vengono caricate, dal database “mmg”, tutte le categorie delle immagini a disposizione e, per ogni categoria, vengono caricate le immagini che ad essa
appartengono. Ogni volta che, con il mouse, si seleziona un’immagine ne viene visualizzata una sua miniatura. Nell’area di testo “Labels” sono indicate
le etichette effettive dell’immagine ovvero quelle che sono state associate in
modo definitivo a quest’ultima. In questo caso, come si può notare, l’immagine non è ancora stata etichettata e per questo motivo l’area di testo risulta
vuota.
Per attivare la fase di etichettamento ci sono due opzioni:
1. Fare click sul pulsante “Query ” nel caso si voglia, in qualche modo,
monitorare la fase di etichettamento immagine per immagine.
2. Fare click sul pulsante “Auto caption! ” nel caso in cui si vogliano
etichettare tutte le immagini del database avendo a disposizione un
training set di immagini già etichettate sufficiente per gestire una buona
fase di etichettamento.
Ci concentriamo ora sul primo caso.
Supponiamo di aver selezionato, dunque, un’immagine non ancora etichettata e di aver fatto click sul tasto “Query ”. Il sistema, utilizzando la tecnica
di cui abbiamo ampiamente discusso nel capitolo precedente, genera delle
potenziali etichette da attribuire all’immagine. Nell’esempio di Figura 4.7 il
sistema genera le etichette “bear”, “grass”, “ground” e “water” tutte corrette
rispetto a quella che è l’immagine che effettivamente sta per essere etichettata. A questo punto l’utente può fare click sul pulsante “Assign terms”
e, automaticamente, tutti i termini contenuti nell’area di testo contenente
4.5 Interfaccia grafica di Imagination
119
le “potenziali” etichette verranno assegnati in modo permanente all’area di
testo “Labels” e diventeranno etichette definitive per quell’immagine.
Si è deciso di riportare qui un set di esempi, quelli proposti nelle differenti
Figure 4.8, 4.9 e 4.10, che mostrano come il sistema è in grado di generare
buone etichette, in numero variabile a seconda delle immagini prese in esame,
sottoponendo immagini tutte differenti e direttamente alla prima applicazione dell’algoritmo. Concretamente, infatti, premendo più volte il pulsante
“Query ”, il sistema tende a generare un set di etichette per la maggior parte uguali con alcune varianti. Questo accade perché l’innovativo approccio di
annotazione proposto utilizza per prima cosa il Random Walk with Restart,
che segue cammini sempre casuali operando di conseguenza con un margine
di variabilità e, seconda cosa, nei due algoritmi che sono alla base della nostra
tecnica si utilizzano due valori di soglia (C1 e C2 ) che, in ogni caso, influenzano non solo il numero di termini che effettivamente vengono generati dal
sistema per la gestione dell’etichettamento automatico, ma anche il valore
assunto da tali termini a seconda della posizione che essi occupano nella lista
finale una volta che tutte le formule algoritmiche sono state applicate.
Graficamente si è deciso di mostrare anche il perché delle etichette generate
ovvero il clique a massima frequenza che è responsabile della generazione finale dei termini che il sistema è in grado di restituire.
Vengono infatti selezionati i, supponiamo x, termini a frequenza massima
che vengono catturati mediante il Random Walk with Restart, e tali concetti
vengono connessi fra loro solamente se il valore di similarità, computato mediante l’algoritmo PSimRank, supera un definito valore di soglia. A questo
punto il grafo presenta un insieme di nodi e di connessioni di colore azzurro.
Nel momento in cui si chiede al sistema di effettuare l’etichettamento automatico di una nuova immagine si vuole fare in modo che il sistema stesso sia
in grado di definire quali sono i termini che, con maggiore probabilità, possono essere i potenziali annotatori per l’immagine oggetto di interrogazione.
Per fare ciò si identificano tutti i clique all’interno del grafo di concetti e, per
ognuno di essi, si calcola lo “score”, ovvero si fa la sommatoria di tutte le
frequenze associate ai termini che costituiscono il clique in esame. Fra tutti i
clique si restituisce in uscita quello con il massimo valore di frequenza ad esso
associato che, dal punto di vista grafico, viene rappresentato con un insieme
120
Imagination
di nodi e di connessioni di colore rosso. Nel pannello di visualizzazione sono,
infine, presentati non più solamente i termini che costituisco il clique a frequenza massima, bensı̀ anche lo score complessivo associato al clique stesso
restituito.
Tutti gli esempi che sono riportati di seguito mostrano non solamente le
etichette generate, ma anche il clique a massima frequenza prodotto graficamente in uscita con il valore di score stesso.
4.5 Interfaccia grafica di Imagination
121
Figura 4.7: Interfaccia grafica dell’applicazione. Primo esempio di generazione automatica di etichette tutte corrette al fine dell’annotazione
automatica.
122
Imagination
Figura 4.8: Interfaccia grafica dell’applicazione. Secondo esempio di generazione automatica di etichette tutte corrette al fine dell’annotazione automatica. Visualizzazione del clique a massima frequenza responsabile della
restituzione di tali termini.
4.5 Interfaccia grafica di Imagination
123
Figura 4.9: Interfaccia grafica dell’applicazione. Terzo esempio di generazione automatica di etichette tutte corrette al fine dell’annotazione automatica.
Visualizzazione del clique a massima frequenza responsabile della restituzione
di tali termini.
124
Imagination
Figura 4.10: Interfaccia grafica dell’applicazione. Quarto esempio di generazione automatica di etichette tutte corrette al fine dell’annotazione automatica. Visualizzazione del clique a massima frequenza responsabile della
restituzione di tali termini.
4.5 Interfaccia grafica di Imagination
125
In Figura 4.11 viene riportato un esempio di errata generazione di un termine da parte del sistema. Dal momento che l’utente decide, in questo primo
caso, di monitorare l’etichettamento, egli stesso può intervenire fornendo un
feedback di rilevanza nei confronti dei termini proposti. Egli può, conseguentemente, selezionare il termine improprio generato e fare click sul pulsante
“Remove term” per rimuoverlo dalla lista di potenziali etichette. A questo
punto l’utente può fare click sul pulsante “Assign terms” e, automaticamente, tutti i termini contenuti nell’area di testo contenente le “potenziali”
etichette verranno assegnati in modo permanente all’area di testo “Labels”
e diventeranno etichette definitive per quell’immagine.
Nel secondo caso invece, ovvero nel momento in cui l’utente decide si premere
il pulsante “Auto caption! ”, si ha un etichettamento automatico di tutte
le immagini non ancora annotate senza nessun intervento di feedback lato
utente. Affinché l’etichettamento sia in grado di fornire delle buone etichette
complessivamente è opportuno partire da un training set di immagini già
annotate sufficientemente corposo in modo da innalzare la probabilità di una
corretta generazione di termini.
A questo punto dobbiamo soffermarci su quali sono le utility a livello di
sistema che ci consentono di andare ad annotare manualmente le immagini, che costituiscono il training set, avendo al consapevolezza che i termini,
che vengono utilizzati per l’etichettamento, non possono essere scelti soggettivamente, ma devono far parte di una o più ontologie, ovvero strutture
gerarchiche, di concetti.
In Figura 4.12 si mostra semplicemente come, a fronte della pressione del tasto “Show wordnet”, il sistema è in grado di caricare i termini classificati
secondo l’ontologia WordNet. L’interfaccia grafica è suddivisa infatti in due
pannelli, nel primo è rappresentata la parte dell’ontologia che stiamo attualmente esplorando, mentre il secondo, quello di destra, contiene la descrizione
del termine. L’utente deve inserire il nome approssimativo con cui vorrebbe
etichettare l’immagine, deve fare click sul pulsante “Search”, a questo punto
WordNet genererà il sotto-albero a partire dalla parola inserita. L’utente
potrà scegliere con quale livello di dettaglio etichettare l’immagine in base
alla gerarchia di parole restituite dall’ontologia stessa. Premendo il pulsante
“Reset tree” il sistema è in grado di ricaricare la struttura gerarchica inizia-
126
Imagination
Figura 4.11: Generazione di un sottoinsieme di etichette corrette. Rimozione di quelle generate erroneamente e definitivo assegnamento di quelle
appropriate all’immagine.
4.5 Interfaccia grafica di Imagination
127
le di WordNet. Una volta scelto il termine corretto, l’utente dovrà premere
il tasto “Add term” per inserire il termine nell’area di testo in cui si trovano
tutti i potenziali termini candidati per l’etichettamento.
Vista la dimensione proibitiva dell’ontologia WordNet non è stato possibile
caricarla tutta in memoria, quindi l’albero è di tipo “dinamico”, ovvero ad
ogni esplorazione di un termine che non sia foglia, il sottoalbero relativo viene caricato dal database a tempo di esecuzione fino ad una profondità pari
a due livelli. Tutto ciò non rallenta l’esplorazione dell’albero, quindi questa
soluzione è risultata molto soddisfacente in fase di realizzazione pratica.
In realtà, come abbiamo già spiegato nei paragrafi precedenti, ci siamo resi
conto che WordNet è davvero un’ontologia molto ricca ed estesa che rischia
spesso e volentieri di non essere poi cosı̀ appropriata se, come nel nostro caso,
l’obiettivo è quello di testare gli algoritmi per la gestione dell’etichettamento
automatico di immagini lavorando su domini molto più ristretti e specifici riguardanti un certo ambito. Proprio per questo motivo si è pensato di andare
ad annotare le immagini con i termini appartenenti ad una molteplicità di
differenti tassonomie gerarchiche di concetti create ad hoc per i nostri scopi
e sicuramente molto meno ampie dell’ontologia lessicale WordNet.
Nella Figura 4.13 vengono mostrate due differenti esempi di ontologie una
composta dai termini italiani ed una composta dai termini inglesi. Come si
nota le due, pur memorizzando gli stessi termini da un punto di vista concettuale presentano delle strutture gerarchiche completamente diverse. Con
ciascuna di queste ontologie si è andato ad etichettare un training set diverso di immagini. Questo è stato utile per andare a testare la fase di mapping
ontologico i cui dettagli sono riportati in [29]. La cosa che vogliamo puntualizzare però è che, per l’annotazione di uno dei due training set, per semplicità,
abbiamo utilizzato un’unica ontologia in grado di unire gli aspetti legati sia
al mondo naturale sia al mondo animale. Ovviamente questa è stata una
scelta semplicistica poiché, in realtà, per ogni training set che era necessario
etichettare, si sarebbero potuti utilizzare i contenuti provenienti da una molteplicità di ontologie proprio perché, per ipotesi, il nostro scenario di lavoro
è multitassonomico.
128
Imagination
Figura 4.12: Interfaccia di caricamento dell’ontologia WordNet.
4.5 Interfaccia grafica di Imagination
129
Figura 4.13: Ontologie create ad hoc sia per la gestione dell’etichettamento
automatico, sia per il mapping ontolgico.
130
Imagination
Il menu “Ontology ”, visibile in dettaglio in Figura 4.14, permette di mostrare le ontologie presenti nel database mediante la scelta “Show Ontologies”
e di scegliere quella da utilizzare per l’etichettamento o il mapping mediante
“Set Ontology ”. Ogni volta che l’ontologia corrente viene cambiata, l’applicazione si aggiorna e mostra le etichette che le immagini hanno rispetto
all’ontologia correntemente selezionata. Mediante “Restore Training Set”
è possibile fare un ripristino del training set originario.
L’ultima parte che deve essere sviscerata, dal punto di vista dell’interfaccia
grafica, riguarda la finestra di dialogo “Settings” grazie alla quale è possibile assegnare dei valori, variando quelli di default, ai parametri che devono
essere utilizzati all’interno dei vari algoritmi di cui abbiamo parlato nel capitolo precedente. Tale finestra è visibile in Figura 4.15 e i dettagli connessi
a tali parametri saranno esposti nei paragrafi successivi.
Figura 4.14: Dettaglio del menu Ontology dell’applicazione, che consente di
visualizzare le ontologie disponibili e di selezionare una di esse per poi usarla
per l’etichettamento/mapping.
Figura 4.15: Dettaglio del menu Settings dell’applicazione, che consente di
assegnare dei valori, variando quelli di default, ai parametri utilizzati dagli
algoritmi.
4.6 Interfaccia grafica di Jont
6
131
Interfaccia grafica di Jont
Jont è un’applicazione disgiunta rispetto a quella principale, che si presenta
graficamente come viene mostrato in Figura 4.16.
È stata introdotta per fornire velocemente piccole ontologie personalizzate da
usare negli esempi di etichettamento e di mapping. Essa permette di costruire
l’albero di un’ontologia, strutturata gerarchicamente, partendo dai termini
definiti dall’utente e legati dal rapporto di parentela genitore-figlio.
Nella toolbar sono evidenziati i comandi connessi alla creazione ed alla gestione di una nuova ontologia. Grazie al comando “Add Concept” si può
aggiungere un nuovo concetto mentre, grazie al comando “Remove Concept”, si può gestire la sua rimozione. Con “Link Concept” si possono
connettere i vari concetti gli uni con gli altri arrivando a costruire l’ontologia
e, dal punto di vista grafico, questi possono essere spostati sul piano grazie
al comando “Move Concept”. Dal menu File è possibile gestire il caricamento di un’ontologia che è stata precedentemente salvata grazie al comando
“Open Ontology ” oppure è possibile salvare una nuova ontologia che è stata appena creata mediante l’istruzione “Save Ontology ”. Si ha, inoltre,
la possibilità di vedere visualizzata la lista di tutte le ontologie disponibili
mediante “Show Ontologies” ed, infine, è possibile gestire la cancellazione
di quelle che si ritiene che non siano più utili mediante il comando “Delete
Ontology ”.
7
Valutazioni sui parametri di Imagination
L’ambiente Imagination, creato per offrire uno strumento di test per gli algoritmi proposti, permette il settaggio di tutte le principali variabili che regolano il funzionamento del mapping ontologico e dell’etichettamento automatico. Attraverso una finestra, visibile in Figura 4.15, è possibile indicare
dei valori per ognuno dei parametri proposti, per poi eseguire gli algoritmi e
prendere visione del risultato.
I valori suggeriti al momento dell’apertura del programma sono derivati da
una fase preliminare di test (illustrata più avanti) e rappresentano un tradeoff tra risultati ottenuti e tempo di esecuzione.
132
Imagination
Figura 4.16: Interfaccia grafica dell’applicazione Jont che gestisce l’editing
delle ontologie. In alto è visibile la toolbar dei comandi relativi alla modifica dell’ontologia, mentre il menu File consente di operare con le ontologie
presenti nel database.
4.7 Valutazioni sui parametri di Imagination
133
Andiamo ora ad esaminare le singole variabili, facendo riferimento alla Figura 4.15 e agli algoritmi presentati nel capitolo precedente:
• RWR Iterations
Variabile n dell’Algoritmo 2, indica il numero di iterazioni effettuate
dal Random Walk with Restart. Questo parametro è molto delicato in
quanto incide parecchio sul tempo di esecuzione, visto che la fase di
RWR rappresenta circa il 95% del tempo complessivo di un qualsiasi
etichettamento o mapping (come detto sopra la fase PSimRank è eseguita offline, quindi la sua durata è irrilevante). Se le iterazioni sono
troppe, quindi, l’utente è costretto ad attendere un tempo elevato in
attesa del risultato, cosa che dovrebbe assolutamente essere evitata, ma
se le iterazioni sono troppo poche si rischia di non avere convergenza
e, quindi, di non veder restituito un risultato corretto. La convergenza
si ha quando a fronte di più esecuzioni successive della stessa query
(concetto per il mapping o immagine per l’etichettamento) i risultati
sono sempre gli stessi, assicurando cosı̀ una risposta costante nel tempo.
• RWR Probability
Variabile C1 dell’Algoritmo 2, è la probabilità di restart del Random
Walk. Quando il cammino si trova in un nodo del grafo, genera un valore casuale fra 0 e 1 e, se questo valore è maggiore di RWR Probability,
il cammino viene fatto ripartire dal nodo iniziale (o terminare nel caso
le iterazioni siano esaurite). Molti degli algoritmi studiati che fanno uso
di RWR sono concordi nello stabilire un valore ideale della variabile a
0.8, ed il nostro caso non fa eccezione.
• RWR k-NN
Variabile k dell’Algoritmo 2, rappresenta il numero di vicini da considerare nell’applicazione della query k-Nearest Neighbours ad una regione dell’immagine considerata. Con un valore troppo grande si rischia
di prendere regioni troppo dissimili da quella di partenza e, quindi, di
aumentare il “rumore”, ovvero le etichette che non hanno relazione con
la query, mentre con un valore troppo piccolo si rischia di restringere
134
Imagination
troppo la ricerca e di non esplorare a sufficienza tutto il grafo MMG.
• Clique Candidates
Variabile k dell’Algoritmo 3, ovvero il numero di etichette restituite dall’Algoritmo 2 per andare a formare il grafo su cui effettuare
la ricerca dei clique. Tale ricerca rappresenta un problema NP-Hard,
quindi il numero dei nodi del grafo va attentamente valutato per evitare
di avere tempi troppo lunghi, dal momento che l’incremento anche di
una sola unità potrebbe portare all’aumento esponenziale dell’attesa.
Ovviamente con un numero di nodi troppo piccolo si rischia di lasciar
fuori un candidato che potrebbe far parte del risultato finale.
• Clique Similarity Threshold
Variabile C2 dell’Algoritmo 3, è la soglia di similarità (PSimRank )
oltre la quale due concetti vengono considerati connessi all’interno del
grafo su cui effettuare la ricerca del clique. Con una soglia troppo bassa tutti i termini risultano connessi e, quindi, il grafo costituirebbe un
unico clique (risultato ovviamente errato), mentre con un valore troppo
alto i clique potrebbero non superare i due elementi, o addirittura gli
unici clique potrebbero essere quelli rappresentati dai singoli nodi. Anche relativamente a questo parametro è necessario attribuire un buon
valore di compromesso per far fronte ai due problemi estremi. Il valore
che abbiamo deciso di associare a tale variabile, dopo aver sottoposto
l’applicazione a innumerevoli prove, è 0.3.
Per decidere quali valori possono essere ritenuti ottimali al fine di essere
applicati ai vari algoritmi, abbiamo eseguito una serie di test automatici variando, di volta in volta, i parametri d’ingresso al fine di ottenere un log dei
risultati, in cui si tiene traccia anche dei tempi di esecuzione connessi alla
computazione.
Per quanto riguarda l’etichettamento abbiamo supposto di annotare l’immagine rappresentata in Figura 4.17. I termini che ci aspetteremmo di ottenere
dalla sua annotazione, supponendo di utilizzare l’ontologia Gaia, sono i quattro termini “ground”, “bear”, “grass” e “water”. Senza riportare nel dettaglio
4.7 Valutazioni sui parametri di Imagination
135
i nomi di tutti i termini di volta in volta generati dal sistema, si è deciso di
inserire, all’interno delle tabelle che seguono, il numero di termini corretti ed
il numero di termini errati rispetto alla configurazione ammessa.
Nella Tabella 3, riportata di seguito, variamo il numero di iterazioni del
Random Walk with Restart, mantenendo costante il numero di termini candidati a massima frequenza, che vengono estratti dall’applicazione del RWR,
che sono alla base della creazione del grafo da cui devono essere estratti i
clique.
Nella Tabella 4, al contrario, manteniamo fisse a 500 il numero di iterazioni
e variamo il numero di termini che costituiscono il grafo di concetti da cui
devono essere estratti i clique.
Figura 4.17: Immagine con la quale sono state raccolte le statistiche relative
all’etichettamento.
136
Imagination
Tabella 3
N◦ iter. RWR N◦ nodi grafo Termini corretti
Termini errati Secondi
50
6
2
2
4
50
6
4
0
3
50
6
4
0
2
50
6
4
0
3
50
6
4
0
2
100
6
4
0
4
100
6
2
2
5
100
6
2
2
4
100
6
4
0
4
100
6
4
0
3
200
6
4
0
9
200
6
4
0
9
200
6
4
0
7
200
6
4
0
9
200
6
3
0
10
500
6
4
0
19
500
6
4
0
21
500
6
4
0
19
500
6
4
0
22
500
6
4
0
21
1000
6
4
0
41
1000
6
4
0
45
1000
6
4
0
40
1000
6
4
0
40
1000
6
4
0
40
5000
6
4
0
190
5000
6
4
0
194
5000
6
4
0
192
5000
6
4
0
200
5000
6
4
0
200
4.7 Valutazioni sui parametri di Imagination
137
Tabella 4
N◦ iter. RWR N◦ nodi grafo Termini corretti Termini errati
Secondi
500
3
3
0
19
500
3
3
0
20
500
3
3
0
17
500
3
3
0
20
500
3
3
0
20
500
4
3
0
21
500
4
3
0
18
500
4
3
0
19
500
4
3
0
17
500
4
3
0
21
500
8
4
0
20
500
8
4
0
20
500
8
3
2
19
500
8
4
0
20
500
8
4
0
19
500
10
3
1
21
500
10
4
0
23
500
10
4
0
20
500
10
3
2
20
500
10
4
0
21
Esaminando i dati raccolti si può notare come, per un numero di iterazioni
superiore a 500, si abbiano 5 risultati corretti su 5 tentativi effettuati (maggior numero di termini corretti senza termini errati), mentre per un numero
inferiore di tentativi si riscontrano alcuni risultati errati. Questo perché più
il RWR ha la possibilità di iterare, più riesce ad essere preciso nella scelta
dei termini che, in qualche modo, incontra nel suo cammino. Più iterazioni
vengono fatte e più si alza il valore della frequenza associata ai termini a cui
più frequentemente il RWR accede. Il valore ideale per il numero di iterazioni
compiute dal RWR, quindi, è stato impostato a 500.
Per quanto riguarda, invece, il numero di termini candidati a massima frequenza, che vengono estratti dall’applicazione del RWR e che sono alla base
138
Imagination
della creazione del grafo da cui devono essere estratti i clique, si può osservare
che, per valori inferiori a 6, i termini sono corretti, ma ne vengono restituiti
meno di quelli globalmente corretti che in realtà dovrebbero essere restituiti:
si produce un taglio sul numero di termini corretti che, in potenza, potrebbero essere generati. Per un numero maggiore di 6, invece, i clique risultano
composti anche da termini errati, ovvero si produce in uscita un eccesso di
etichette e, per questo, alcune di queste risultano non opportune per i fini
di etichettemento o mapping. In entrambi i casi le conseguenze incidono in
maniera errata sulle etichette effettivamente restituite. Si è deciso, di conseguenza, di impostare il valore ideale a 6.
Un’ultima considerazione deve essere effettuata relativamente alla convergenza dell’algoritmo PSimRank. Va tenuto in considerazione il fatto che, grazie
alle formule ricorsive che caratterizzano tale algoritmo, possiamo computare
la similarità fra ogni coppia di immagini che fanno parte del training set e,
partendo da queste e mediante un meccanismo di rinforzo progressivo, possiamo calcolare la similarità fra ogni coppia di concetti connessi alle immagini
del training set stesso. PSimRank opera ricorsivamente ed è per questo che
è necessario domandarsi in quante iterazioni e fino a che cifra decimale è
possibile ottenere la convergenza dal punto di vista dei valori.
Nella Tabella 5, riportata di seguito ed i cui valori sono stati ottenuti in via
del tutto sperimentale, si può notare come la convergenza di valori fino alla
nona cifra decimale viene ottenuta in circa 31 iterazioni dell’algoritmo ovvero
in un numero di iterazioni sufficientemente basso da consentirci di lavorare
con un livello di precisione particolarmente elevato.
Tabella 5
Cifre decimali Iterazioni
3
12
4
14
5
18
6
21
7
25
8
28
9
31
4.7 Valutazioni sui parametri di Imagination
139
Da ultimo si vuole precisare che i valori, relativi ai dati sperimentali ottenuti,
sono stati calcolati su piattaforma Mac OS X 10.4.3 e JVM 1.5.0 05, con
processore PowerPC G4 1,67 Ghz dotato di 1 Gb di RAM.
Conclusioni
Giunti al termine del seguente lavoro di tesi possiamo concludere di esserci fatti un’idea abbastanza approfondita di quello che è stato ed è lo stato
dell’arte circa il processo di annotazione semi-automatica e automatica di
immagini.
Partendo dall’attività di tirocinio svolta e valutando le problematiche incontrate, abbiamo proposto una nuova tecnica per l’etichettamento automatico
di immagini in grado di superare i limiti delineati. Si è deciso di basare la
soluzione proposta sull’utilizzo del grafo Mixed-Media Graph, in grado di correlare immagini, regioni ed etichette attraversato da un navigatore libero di
muoversi su di esso, ovvero il Random Walk with Restart. L’idea innovativa,
a questo punto, è consistita nel cercare di attuare una seconda fase di raffinamento delle etichette, generate durante la prima navigazione mediante RWR,
in modo da aumentare il grado di precisione complessivo dell’etichettamento
automatico. Per fare ciò si è utilizzato l’approccio PSimRank il quale opera
con un livello di complessità di ordine due. Con PSimRank è stato possibile
computare offline la similarità fra tutte le coppie di concetti, utilizzati per
l’etichettamento del training set, una volta creata la struttura di un bipartite
graph, fatto dalle immagini e dalle etichette in grado di annotarle. Sfruttando, infine, queste due tecniche si è deciso di creare un grafo di concetti con lo
scopo di identificare, in esso, i clique con score massimo in modo da recuperare l’insieme di termini qualitativamente più adatti per annotare un’immagine
non ancora etichettata.
Dall’integrazione di queste due tecniche è nato un approccio innovativo che è
stato sicuramente in grado di aumentare l’efficacia complessiva delle etichette
142
Imagination
generate, dal punto di vista qualitativo, pur mantenendo invariata l’efficienza. Valutando conservativamente la bontà della tecnica che è stata ideata, si
può notare come siano stati raggiunti gli obiettivi che ci si era prefissati.
In primo luogo, abbiamo la possibilità di gestire l’etichettamento di una nuova immagine mediante un insieme di etichette capaci di esprimere anche
contenuti astratti. L’etichettamento multiplo inoltre ci consente di descrivere meglio i differenti significati semantici associati ai contenuti proposti dalle
immagini stesse. Non è definito, infatti, il legame fra un’etichetta e le regioni
in cui l’immagine può essere segmentata. Le etichette sono vincolate in maniera forte all’immagine nella sua totalità.
In secondo luogo, il numero di etichette generate non è statico, ma è variabile poiché connesso alla possibilità di restituire un insieme di valori solo se
questi fanno parte di un clique di concetti correlati in modo forte sia dalla
frequenza di attraversamento sia dalla similarità. Rendiamo di conseguenza
flessibile il numero di termini che devono andare ad etichettare un’immagine dal momento che potrebbero esistere immagini che necessitano meno di,
supponiamo t, valori di etichettamento.
L’ultima considerazione riguarda l’intervento multitassonomico. Esso interviene solo nella prima fase, ovvero durante l’etichettamento del training set:
ogni immagine, che fa parte di quest’ultimo, viene etichettata con dei termini che provengono da diverse tassonomie. L’intervento multitassonomico
impedisce ad un utente di annotare le immagini con termini di sua preferenza, vincolandolo in modo molto forte alla scelta di concetti facenti parte
di una struttura gerarchica organizzata. Abbiamo infatti dato la possibilità
all’utente di attingere alla gerarchia di termini WordNet per gestire l’etichettamento delle immagini in modo tale da non dover incorrere nel problema
della soggettività dell’annotazione. È stato comunque reso possibile l’utilizzo
di una qualunque ontologia di dominio, non necessariamente WordNet che,
nell’essere cosı̀ estesa, rischia spesso di non essere particolarmente adatta a
contesti più semplici e specifici come quelli che sono stati riportati nei nostri
esempi.
A fronte di tutte queste considerazioni si è riusciti ad implementare un prototipo software, chiamato Imagination, in grado di testare sia le problematiche
4.7 Valutazioni sui parametri di Imagination
143
connesse all’etichettamento automatico di immagini, di cui si è discusso nel
presente lavoro di tesi, sia quelle legate al mapping ontologico in ambito distribuito, i cui dettagli sono riportati in [29].
Ci sono varie cose su cui sarà necessario riflettere in futuro. Primo fra tutti,
sarà opportuno prevedere un modo per utilizzare la gerarchia WordNet, o
qualunque altra sia in quel momento utilizzata, al fine di gestire rilassamenti
semantici: se durante il processo di annotazione automatica venissero fornite
come scelte di etichette possibili per l’immagine di un orso le parole “bear” e
“asiatic black bear”, il sistema dovrebbe essere in grado di scendere e risalire
la gerarchia WordNet, o qualunque altra ontologia, andando ad etichettare
l’immagine con il termine più specifico fra quelli proposti e appartenenti ad
uno stesso sotto-albero della gerarchia. In definitiva, sarà necessario prevedere la possibilità di andare ad interrogare l’ontologia di dominio sia verso
l’alto, sia verso il basso una volta fornito un termine da valutare, andando
a fare il pruning di tutto ciò che si trova sopra rispetto ad un termine più
specifico che è stato restituito. L’interrogazione verso l’alto potrebbe essere
fatta sfruttando il concetto di rilassamento semantico, mentre la parte di
interrogazione del corrispondente albero sottostante potrebbe essere fatta in
modo integrale.
Un ulteriore sviluppo futuro riguarda la necessità di gestire una sorta di
aggregazione delle regioni. Le librerie del motore Windsurf, quelle di base,
lavorano a livello di similarità di colore e tessitura. Il problema è che, a livello
di grafo MMG, sarebbe più opportuno lavorare con la similarità fra “forme”
prevedendo un eventuale intervento utente al fine di aggregare un set di regioni che insieme potrebbero costituire la forma di un oggetto in grado di
possedere un significato semantico. A basso livello si continuerebbe a lavorare con la similarità di colore, ma nella costruzione del grafo si potrebbe
lavorare a livello di macro-regioni derivanti da un’aggregazione delle regioni
di base mediante o un intervento utente che semplicemente potrebbe, con il
mouse, contornare un set di regioni, o un meccanismo automatico che in maniera assolutamente casuale potrebbe tentare di aggregare un set di regioni
per costituire delle macro-regioni. Questo darebbe la possibilità di lavorare
con scale diverse di granularità a livello di feedback lato utente in un sistema
144
ad apprendimento progressivo.
Imagination
Bibliografia
[1] V. W. Soo, C. Y. Lee, C. C. Li, S. L. Chen e C. C. Chen.“Automated
Semantic Annotation and Retrieval Based on Sharable Ontology and
Case-based Learning Techniques”. IEEE Multimedia 2004.
[2] G. Miller.“WordNet: A Lexical Database for English”. Communications
ACM 1995.
[3] V. Guidetti.“Intelligent Information Integration Systems: Extending Lexicon Ontology”. Tesi di Laurea. Università di Modena. Anno Accademico
2001-2002.
[4] WordNet: http://wordnet.princeton.edu/
[5] J. Y. Pan, H. J. Yang, C. Faloutsos, P. Duygulu. “Automatic Multimedia
Cross-modal Correlation Discovery”. KDD 2004.
[6] J. Y. Pan, H. J. Yang, C. Faloutsos. “MMSS: Multi-modal Story-oriented
Video Summarization”. ICDM 2004.
[7] R. Fagin, R. Guha, R. Kumar, J. Novak, D. Sivakumar, A. Tomkins.
“Multi-Structural Databases”. PODS 2005.
[8] R. Fagin, P. Kolaitis, R. Kumar, J. Novak, D. Sivakumar, A. Tomkins.
“Efficient Implementation of Large-Scale Multi-Structural Databases”.
VLDB 2005.
[9] C. Yang, M. Dong. “Region Based Image Annotation Through MultipleInstance Learning”. ACM 2005.
146
Bibliografia
[10] L. Wang, L. Khan, B. Thuraisingham. “A Framework for Automated
Image Annotation based on Feature Selection”. CVDB 2005.
[11] E. Y. Chang. “EXTENT: Fusing Context, Content, and Semantic
Ontology for Photo Annotation”. CVDB 2005.
[12] D. Fogaras, B. Rácz. “Scaling Link-Based Similarity Search”. WWW
2005.
[13] G. Jeh, J. Widom. “SimRank: A Measure of Structural-Context
Similarity”. KDD 2002.
[14] R. Jin, J. Y. Chai e L. Si. “Effective Automatic Image Annotation Via
A Coherent Language Model and Active Learning”. ACM MM 2004.
[15] K. Goh, E. Y. Chang e W. Lai. “Multimodal Concept-Dependent Active
Learning for Image Retrieval ”. ACM MM 2004.
[16] L. Wang, L. Liu e L. Khan. “Automatic Image Annotation and Retrieval
Using Subspace Clustering Algorithm”. MMDB 2004.
[17] W. Jin, R. Shi e T. S. Chua. “A Semi-Naı̈ve Bayesian Method Incorporating Clustering with Pair-wise Constraints for Auto Image Annotation”.
ACM MM 2004.
[18] F. Kang, R. Jin e J. Y. Chai. “Regularizing Translation Models for Better
Automatic Image Annotation”. CIKM 2004.
[19] L. Zhang, Y. Hu, M. Li, W. Ma e H. Zhang. “Efficient Propagation for
Face Annotation in Family Albums”. ACM MM 2004.
[20] X. J. Wang, W. Y. Ma, G. R. Xue e X. Li. “Multi-Model Similarity
Propagation and its Application for Web Image Retrieval ”. ACM MM
2004.
[21] E. HyvÄonen, A. Styrman e S. Saarela. “Ontology-Based Image
Retrieval ”. WWW 2003.
[22] C. Breen, L. Khan, A. Kumar e L. Wang. “Ontology-based image
classification using neural networks”. SPIE 2002.
Bibliografia
147
[23] S. Jiang, T. Huang e W. Gao. “An Ontology-based Approach to Retrieve
Digitized Art Images”. IEEE/WIC/ACM WI 2004.
[24] J. Fan, Y. Gao, H. Luo e G. Xu. “Automatic Image Annotation by Using
Concept-Sensitive Salient Objects for Image Content Representation”.
SIGIR 2004.
[25] V. Mezaris, I. Kompatsiaris e M. G. Strintzis. “Region-based Image Retrieval using an Object Ontology and Relevance Feedback ”. EURASIP
JOURNAL ON APPLIED SIGNAL PROCESSING 2004.
[26] V. W. Soo, C. Y. Lee, C. C. Li, S. L. Chen e C. C. Chen. “Automated Semantic Annotation and Retrieval Based on Sharable Ontology and
Case-based Learning Techniques”. IEEE Multimedia 2004.
[27] B. Shevade e H. Sundaram. “Incentive based image annotation”. AMETR-02/2004.
[28] P. Appan, B. Shevade, H. Sundaram e D. Birchfield. “Interfaces For
Networked Media Exploration And Collaborative Annotation”. ACM IUI
2005.
[29] E. Ferranti. “Interrogazioni distribuite su collezioni eterogenee di dati
multimediali ”. Tesi di Laurea Specialistica. Dipartimento di Elettronica Informatica e Sistemistica. Università degli Studi di Bologna. Anno
Accademico 2004-2005.
[30] E. Rondini. “Studio di tecniche per l’utilizzo di ontologie in database
di immagini: 1) Modelli di annotazione semantica 2) Tecniche ai propagazione automatica delle annotazioni ”. Attività di tirocinio curriculare.
Dipartimento di Elettronica Informatica e Sistemistica. Università degli
Studi di Bologna. Anno Accademico 2004-2005.
[31] I. Bartolini. “Efficient and Effective Similarity Search in Multimedia
Databases”. Ph.D. Thesis. Dipartimento di Elettronica Informatica e
Sistemistica. Università degli Studi di Bologna. Febbraio 2002.
[32] S. Ardizzoni, I. Bartolini and M. Patella. “Windsurf: Region-Based
Image Retrieval Using Wavelets”. IWOSS 1999.
148
Bibliografia
[33] I. Bartolini, M. Patella. “Correct and Efficient Evaluation of RegionBased Image Search”. SEBD 2000.
[34] MySql: http://www.mysql.com/
Scarica