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/