Tecniche semi-automatiche per l annotazione semantica di dati multimediali

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Tecniche semi-automatiche per l annotazione semantica di dati multimediali"

Transcript

1 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/ Sessione II

2 .

3 . What the caterpillar calls the end, The world calls a butterfly. - Lao Tze -

4

5 Indice Introduzione 9 1 Organizzazione della tesi Introduzione ai sistemi di ricerca di immagini 13 1 Sistemi di ricerca basati sul contenuto Architettura di un sistema CBIR Sistemi region-based Caratterizzazione del contenuto di immagini Cos è l etichettamento? Etichettamento di immagini mediante keyword Etichettamento a singola keyword Etichettamento a multipla keyword Le ontologie di dominio Obiettivi per lo scenario di riferimento Stato dell arte 29 1 Etichettamento semi-automatico mediante Mixed-Media Graph Valutazioni Etichettamento semi-automatico mediante Multi-Modal Story-oriented video Summarization Valutazioni Organizzazione mediante Database Multi-Strutturali Definizione di Database Multi-Strutturali Definizione di Pairwise Disjoint Collection

6 6 Indice 3.3 Valutazioni Etichettamento basato su apprendimento mediante istanza multipla Valutazioni Etichettamento automatico basato su selezione di feature Valutazioni Fusione di contesto, contenuto ed ontologia semantica Valutazioni Ricerca di similarità basata su connessioni di un grafo Valutazioni Proposta per l etichettamento automatico di immagini 57 1 Scenario principale Formalizzazione del modello Soluzione iniziale Definizione formale dell approccio Costruzione del Mixed-Media Graph Correlazione mediante Random Walk with Restart L algoritmo Cross-modal Correlation Discovery Vantaggi e svantaggi Presentazione dell approccio proposto Costruzione della matrice di similarità SimilarityTable Fase di generazione delle etichette Successivo raffinamento Vantaggi apportati dall approccio proposto Imagination 95 1 Applicazione di Windsurf al progetto Imagination Interfacciamento con il database MySql Integrazione di una molteplicità di tassonomie Architettura software

7 Indice Considerazioni relative al linguaggio Struttura di Imagination Struttura di Jont Interfaccia grafica di Imagination Interfaccia grafica di Jont Valutazioni sui parametri di Imagination Bibliografia 145

8

9 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 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.

11 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 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.

13 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 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

15 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 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à,

17 1.1.1 Architettura di un sistema CBIR 17 Figura 1.1: Architettura di un Sistema Content-Based Image Retrieval.

18 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.

19 1.2 Cos è l etichettamento? 19 2 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 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

21 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 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.

23 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 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 24 Introduzione ai sistemi di ricerca di immagini Figura 1.4: Esempio di etichettamento multiplo con una keyword associata ad ogni regione.

25 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 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;

27 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 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.

29 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 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-

31 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 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 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

33 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 G MMSS, 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 l i, frame f i e term t i ) 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 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 l i, frame f i e term t i ) 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-

35 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 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

37 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 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.

39 2.3.1 Definizione di Database Multi-Strutturali Definizione di Database Multi-Strutturali Un database multi-strutturale ( Multi-Structural Database o MSDB) è una tripla di elementi (X, D, R) dove X = {x 1, x 2,..., x n } rappresenta l insieme universo degli oggetti (o dei documenti per come vengono trattati dall approccio proposto), D = {D 1, D 2,..., D m } indica il numero di dimensioni ed R indica a quale documento appartengono gli elementi di ogni dimensione. Il singolo elemento x i sarà utilizzato come un semplice identificatore con l idea che un identificatore può indifferentemente essere utilizzato per identificare dati e metadati. Ogni dimensione D i è 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 D i 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 D D la multi-dimensione MD(D ) è definita come segue: se D è un singleton allora la multi-dimensione è semplicemente la dimensione di un singolo elemento, altrimenti se D = {D 1, D 2,..., D d } allora MD(D ) è ancora un reticolo i cui elementi sono {l 1,..., l d ) l i L i } dove (l1, 1..., ld 1) (l2 1,..., ld 2) = (l1 1 l1, 2..., ld 1 l2 d ) 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, (l 1,..., l d )), con x X, se e solo se essa contiene (x, l i ) 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 MD(D ) e per ogni set di elementi S = {l 1,..., l d } della multi-dimensione si può affermare che S è un P DC se l i l j = per tutti gli i, j con i 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 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 X di oggetti se, per ogni x X, 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

41 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 42 Stato dell arte 4 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 Multiple- Instance 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

43 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 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.

45 2.4.1 Valutazioni 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 46 Stato dell arte 5 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

47 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 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

49 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 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

51 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 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

53 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 PSim- Rank 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 54 Stato dell arte indicano con I i (v) con 1 i I(v) mentre gli archi uscenti si indicano con O i (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à sim l (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,

55 2.7 Ricerca di similarità basata su connessioni di un grafo 55 posti uno sul vertice u ed uno sul vertice v, procederanno verso lo stesso vertice con una rapidità (anche in un unico step) che è connessa al fattore probabilistico rappresentato dal coefficiente di Jaccard I(u ) I(v ) I(u ) I(v ) che opera in funzione di quelli che sono gli archi effettivamente entranti nei nodi u e v, ovvero I(u ) e I(v ). Definizione di PSimRank PSimRank è la funzione di distanza supposta (f-meeting distance) per far incontrare due camminatori casuali con f(t) = c t. Per ogni vertice u il random walk X u 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 X u = u X v = v. Da questo momento in poi si può supporre che: con probabilità pari a I(u ) I(v ) I(u ) I(v ) entrambi raggiungano lo stesso vertice scelto uniformemente fra quelli di I(u ) I(v ); con probabilità pari a I(u )\I(v ) I(u ) I(v ) il random walk X u si fermi in uno dei vertici compresi in I(u ) \ I(v ) mentre il random walk X v si fermi in un vertice scelto indipendentemente fra quelli di I(v ); con probabilità pari a I(v )\I(u ) I(u ) I(v ) il random walk X v si fermi in uno dei vertici compresi in I(v ) \ I(u ) mentre il random walk X u si fermi in un vertice scelto indipendentemente fra quelli di I(u ). 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 PSim- Rank prevedono l utilizzo di un algoritmo esatto quadratico organizzato in vari passi. Si denota con τ u,v l istante in cui i random walk X u e X v 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 psim l (u, v) = E(c τu,v ). Risulta banale valutare che, se u = v, allora psim 0 (u, v) = 1 altrimenti psim 0 (u, v) = 0 all istante iniziale. Applicando la legge della totale aspettativa a partire dal primo step di cammino

56 56 Stato dell arte seguito da X u e X v e tenendo conto dello scorrere del tempo possono essere mappate le seguenti iterazioni per il SimRank: psim l+1 (u, v) = 1, ifu = v; psim l+1 (u, v) = 0, ifi(u) = 0orI(v) = 0; I(u) I(v) psim l+1 (u, v) = C.[ I(u) I(v).1+ I(u) \ I(v) + I(u) I(v). 1 I(u) \ I(v). I(v) u I(u)\I(v),v I(v) psim l (u, v )+ I(v) \ I(u) + I(u) I(v). 1 I(v) \ I(u). I(u) 7.1 Valutazioni v I(v)\I(u),u I(u) psim l (u, v )] 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.

57 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.

58 58 1 Scenario principale Proposta per l etichettamento automatico di immagini 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 I 1,..., I n 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 f 1, f 2,..., f h (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 K 1, K 2,..., K k che devono essere utilizzate per etichettare l immagine stessa. Supponiamo, infatti, che ogni immagine I 1,..., I n possa essere segmentata nelle sue regioni costitutive R 1,..., R r. 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 T 1,..., T m, 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

59 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 I 1 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: I i = ({R 1, R 2,..., R r }; {K 1, K 2,..., K k }) per i = 1,..., n Questo significa che ogni immagine singolarmente presa, contenuta nel DB, può essere rappresentata da un vettore di regioni, {R 1, R 2,..., R r }, e da un set

60 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.

61 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.

62 62 Proposta per l etichettamento automatico di immagini di etichette, {K 1, K 2,..., K k }, 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: R j = {f 1, f 2,..., f h } 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: K y = (T t ; L l ) per y = 1,..., k; t = 1,..., m; l = 1,..., #(T t ) 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 (#(T t )). Definizione 1 (image retrieval) In un sistema di reperimento di immagini, data un immagine I q 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(I q, DB) Grazie a tale Query Function si vuole che il sistema sia in grado di restituire, a fronte di un immagine query I q 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

63 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 I q 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: {K 1, K 2,..., K k } := L(I i, T t ) 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 I q (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 {K 1, K 2,..., K k }. Problema 2 Data un immagine I q (immagine query) non ancora etichettata, si vuole poter

64 64 Proposta per l etichettamento automatico di immagini attribuire ad essa un insieme di contenuti semantici utilizzando una molteplicità di tassonomie di concetti T 1,..., T m dalle quali tali contenuti semantici possono essere estratti. Problema 3 Data un immagine I q (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 f 1, f 2,..., f h, 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 K 1, K 2,..., K k 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-

65 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=O 1, O 2,..., O n 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 D i di attributi di tipo i è la collezione di tutti i valori atomici che l attributo i può assumere. Definizione 2 I valori del dominio D i saranno chiamati con il nome di token del dominio D i.

66 66 Proposta per l etichettamento automatico di immagini Assunzione 1 Per ogni dominio D i (i=1,...,m) viene fornita una funzione di similarità s i (, ) che è in grado di assegnare un punteggio ad ogni coppia di token di dominio D i. 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 (a i ) il vertice il cui valore di attributo A = a i. 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

67 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à s i (, ) per ogni dominio D i. 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 = I 1, I 2, I 3, I 4 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 I j (j=1,2,3,4), uno per le regioni R j (j=1,...,16) e uno per i termini L j (j=1,..., 13). La Figura 3.4 mostra il corrispondente G MMG 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 I 4 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 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.

69 3.3.4 L algoritmo Cross-modal Correlation Discovery 69 indietro e riparte dal nodo A. Denotiamo con u A (B) la probabilità che il random walker ha di trovarsi, partendo dal nodo A, in modo stabile sul nodo B ; u A (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 u A (B) di un random walk with restart come definito sopra. Ad esempio, per risolvere il problema dell etichettamento dell immagine I 4 di Figura 3.4 si devono calcolare le probabilità di stato stabile u A ( ) 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 I 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 u A (B), ovvero la probabilità di trovarsi stabilmente su uno stato. Il calcolo di u A (B) rappresenta una problematica importante e alquanto interessante. Gli autori di [5] propongono una notazione matriciale per compattezza. Supponiamo che O q 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 vettore contenente le probabilità di stato stabile u q = (u q (1), u q (2),..., u q (N)) dove N è il numero di nodi dell MMG e E il numero di archi. La stima del vettore u q 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 q sia un vettore colonna con tutti gli N elementi a 0 eccetto l elemento corrispondente al nodo q il quale è settato a 1. Il vettore v q è il cosiddetto vettore di restart. A questo punto si può formalizzare il concetto di importanza di un nodo con la definizione che segue:

70 70 Proposta per l etichettamento automatico di immagini 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) u q è in grado di soddisfare la seguente equazione: uq = (1 c)a u q + c v q Si può mostrare facilmente che: uq = c(1/(i (1 c)a)) v q 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 G MMG e un oggetto O q dove alcuni attributi di O q hanno dei valori mancanti. 1. Sia v q = 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 u q = v q. 4. Finché ( u q non ha raggiunto la convergenza) (a) u q = (1 c)a u q + c v q. 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

71 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 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.

73 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 I q 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.

74 74 Proposta per l etichettamento automatico di immagini 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 I q, 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).

75 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, G 2, 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 G 2 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 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 I i (v) con 1 i I(v) mentre gli archi uscenti si indicano con O i (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.

77 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.

78 78 Proposta per l etichettamento automatico di immagini Algorithm 1 Formule di PSimRank per il calcolo della similarità fra i nodi di un grafo. 1: if (u = v) then 2: psim 0 (u, v) = 1. 3: else 4: psim 0 (u, v) = 0. 5: end if 6: repeat 7: if (u = v) then 8: psim l+1 (u, v) = 1. 9: else if (I(u) = 0oI(v) = 0) then 10: psim l+1 (u, v) = 0. 11: else 12: psim l+1 (u, v) = c.[ I(u) I(v).1+ I(u) I(v) 13: + I(u)\I(v). 1 I(u) I(v) I(u)\I(v). I(v) u I(u)\I(v),v I(v) psim l(u, v )+ 14: + I(v)\I(u). 1 I(u) I(v) I(v)\I(u). I(u) v I(v)\I(u),u I(u) psim l(u, v )]. 15: 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à sim k (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

79 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 s 1,2 s 1,3 s 1,4 s 1,... s 1,j T igre s 2,1 1 s 2,3 s 2,4 s 2,... s 2,j Scoiattolo s 3,1 s 3,2 1 s 3,4 s 3,... s 3,j Erba s 4,1 s 4,2 s 4,3 1 s 4,... s 4,j {...} s...,1 s...,2 s...,3 s...,4 1 s...,j Cielo s j,1 s j,2 s j,3 s j,4 s j, 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 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 L i, che viene utilizzata per annotare il training set e che viene navigata dal RWR poiché costituente un nodo di un grafo, è associato

81 3.4.2 Fase di generazione delle etichette 81 un contatore counter(l i ), 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 C 1. Se (p C 1 ) 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(l i ) 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 R k, che vengono accedute mediante una k-nn query e tutte le etichette che annotano l immagine a cui la regione R k 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).

82 82 Proposta per l etichettamento automatico di immagini Z = R 1 R R k L 1 L L i I dettagli dell algoritmo sono riportati di seguito. Data in ingresso, infatti, l immagine query I q 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 G MMG 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 G MMG. Gli step che vengono indicati non sono quelli dell algoritmo. Sono semplicemente stati inseriti per capire la sequenzialità di navigazione del grafo.

83 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. R k ). 5: Genera un valore di probabilità p [0, 1]. 6: if (p C 1 ) then 7: ritorna allo Step (3). 8: end if 9: Applica una k-nn query e recupera le k regioni più simili ad R k. 10: Seleziona le i etichette {L 1,..., L i } dell immagine (all inizio I q, poi una qualunque scelta dal processo randomico) a cui la regione R k 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. R g )) then 14: ritorna allo Step (9). 15: else if (Z[z] è un etichetta (e.g. L g )) then 16: incrementa il valore di counter(l g ) di un unità (inizializzandolo a 1 17: end if se non è ancora stato creato). 18: Genera un valore di probabilità p [0, 1]. 19: if (p C 1 ) 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 L g. 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)

84 84 Proposta per l etichettamento automatico di immagini 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 G MMG.

85 3.4.3 Successivo raffinamento 85 Figura 3.11: Secondo esempio di navigazione del Random Walk with Restart sul grafo G MMG. 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 G MMG, 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 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.

87 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 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(l k ), 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 (L u, L v ), 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 C 2. 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, rappresentato con la seguente formula F reqclique i = L k Clique i counter(l k ) 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(l k )), 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 Clique max.

89 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 ERMS[k] contenente i k concetti con il più alto valore di frequenza, counter(l k ), 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 (L u, L v ) aventi similarità maggiore di un data soglia (SimilarityT able[u][v] C 2 ). 3: Applica al grafo l Algoritmo 4, in grado di individuare il clique Clique max a frequenza massima (avendo che la frequenza di un clique si calcola come F reqclique i = L k Clique i counter(l k )). 4: return Il vettore RESULT, contenente tutti i concetti L j Clique max. 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 EMP 1 e RESULT. Ogni volta che un clique è scoperto esso viene aggiunto a RESULT che quindi, alla fine, arriverà a contenere tutti i clique del grafo.

90 90 Proposta per l etichettamento automatico di immagini 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 RESULT 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 EMP, si procede in maniera analoga, confrontando ogni clique di ordine (n), presente in T EMP, 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 EMP sono stati confrontati, il vettore stesso viene svuotato e, se T EMP 1 contiene degli elementi, essi vengono spostati in T EMP 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 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

91 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 reqclique i ). Tabella 2 1 A (95) B (59) C (57) D (38) E (35) F (31) 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) A,F (126) 3 A,B,C (211) B,C,E (151) C,E,F (123) A,B,E (189) B,D,E (132) 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: Clique max = { Grass (A); Bear (B); Ground (C); Water (E)} la cui massima frequenza risulta F reqclique max = = 246.

92 92 Proposta per l etichettamento automatico di immagini Algorithm 4 Individuazione del clique a massima frequenza contenuto nel grafo G(V, E). 1: Crea il vettore T EMP. 2: Crea il vettore RESULT. 3: for (i = 0 to k) do 4: for (j = i + 1 to k) do 5: if (V [i] is similar V [j]) then 6: Aggiungi il clique (V [i], V [j]) ai vettori RESULT e T EMP. 7: end if 8: end for 9: Crea una variabile booleana cicla inizializzata a true. 10: repeat 11: Crea il vettore T EMP 1. 12: for (j = 0 to k) do 13: for (l = j + 1 to k) do 14: if (Clique j is similar Clique l ) then 15: Aggiungi il clique (Clique j Clique l ) al vettore T EMP 1. 16: end if 17: end for 18: end for 19: if (T EMP 1 non è vuoto) then 20: Vuota il vettore T EMP. 21: for (ogni clique Clique i in T EMP 1) do 22: Aggiungi Clique i a T EMP. 23: Aggiungi Clique i a RESULT. 24: end for 25: else 26: Metti il flag cicla a false. 27: end if 28: until (cicla = true) 29: end for 30: return Clique max (quest ultimo è uno dei clique facenti parte di RESULT il cui score risulta il massimo).

93 3.4.4 Vantaggi apportati dall approccio proposto 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.

94

95 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 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.

97 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 G MMG 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 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à C 1 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-

99 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 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.

101 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 102 Imagination 3 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-

103 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 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.

105 4.4 Architettura software 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 106 Imagination Figura 4.5: Architettura generale dell applicazione Imagination dal punto di vista dei package e delle classi in essi contenute.

107 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 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

109 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 Word- Net permettendo di effettuare una ricerca per parole all interno della

110 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.

111 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 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.

113 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 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 C 2. 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

115 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 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.

117 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 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

119 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 (C 1 e C 2 ) 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 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.

121 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 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.

123 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 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.

125 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 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.

127 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 128 Imagination Figura 4.12: Interfaccia di caricamento dell ontologia WordNet.

129 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 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.

131 4.6 Interfaccia grafica di Jont Interfaccia grafica di Jont Jont è un applicazione disgiunta rispetto a quella principale, che si presenta graficamente come viene mostrato in Figura È 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 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.

133 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 C 1 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 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 C 2 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 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

135 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.

Introduzione all Information Retrieval

Introduzione all Information Retrieval Introduzione all Information Retrieval Argomenti della lezione Definizione di Information Retrieval. Information Retrieval vs Data Retrieval. Indicizzazione di collezioni e ricerca. Modelli per Information

Dettagli

Esercitazione di Basi di Dati

Esercitazione di Basi di Dati Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 6 Maggio 2004 Come costruire una ontologia Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

I WEBQUEST SCIENZE DELLA FORMAZIONE PRIMARIA UNIVERSITÀ DEGLI STUDI DI PALERMO. Palermo 9 novembre 2011

I WEBQUEST SCIENZE DELLA FORMAZIONE PRIMARIA UNIVERSITÀ DEGLI STUDI DI PALERMO. Palermo 9 novembre 2011 I WEBQUEST SCIENZE DELLA FORMAZIONE PRIMARIA Palermo 9 novembre 2011 UNIVERSITÀ DEGLI STUDI DI PALERMO Webquest Attività di indagine guidata sul Web, che richiede la partecipazione attiva degli studenti,

Dettagli

Basi di Dati Multimediali. Fabio Strocco

Basi di Dati Multimediali. Fabio Strocco Basi di Dati Multimediali Fabio Strocco September 19, 2011 1 Contents 2 Introduzione Le basi di dati (o database) hanno applicazioni in molti campi, in cui è necessario memorizzare, analizzare e gestire

Dettagli

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale.

Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale. Project Cycle Management La programmazione della fase di progettazione esecutiva. La condivisione dell idea progettuale. Il presente materiale didattico costituisce parte integrante del percorso formativo

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Capitolo 2. Operazione di limite

Capitolo 2. Operazione di limite Capitolo 2 Operazione di ite In questo capitolo vogliamo occuparci dell operazione di ite, strumento indispensabile per scoprire molte proprietà delle funzioni. D ora in avanti riguarderemo i domini A

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video Video Librerie digitali Gestione di video Ogni filmato è composto da più parti Video Audio Gestito come visto in precedenza Trascrizione del testo, identificazione di informazioni di interesse Testo Utile

Dettagli

1. BASI DI DATI: GENERALITÀ

1. BASI DI DATI: GENERALITÀ 1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente

Dettagli

Ipertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a. 2011-2012

Ipertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a. 2011-2012 Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Ipertesti e Internet Prof.ssa E. Gentile a.a. 2011-2012 Ipertesto Qualsiasi forma di testualità parole, immagini,

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Introduzione al data base

Introduzione al data base Introduzione al data base L Informatica è quella disciplina che si occupa del trattamento automatico dei dati con l ausilio del computer. Trattare i dati significa: raccoglierli, elaborarli e conservarli

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

COME AVERE SUCCESSO SUL WEB?

COME AVERE SUCCESSO SUL WEB? Registro 3 COME AVERE SUCCESSO SUL WEB? Guida pratica per muovere con successo i primi passi nel web MISURAZIONE ED OBIETTIVI INDEX 3 7 13 Strumenti di controllo e analisi Perché faccio un sito web? Definisci

Dettagli

Dalla progettazione concettuale alla modellazione di dominio

Dalla progettazione concettuale alla modellazione di dominio Luca Cabibbo A P S Analisi e Progettazione del Software Dalla progettazione concettuale alla modellazione di dominio Capitolo 91 marzo 2015 Se qualcuno vi avvicinasse in un vicolo buio dicendo psst, vuoi

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

Dettagli

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE

LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE LE CARATTERISTICHE DEI PRODOTTI MULTIVARIANTE Che cosa sono e a cosa servono le caratteristiche? Oltre a descrivere le qualità di un prodotto con un testo generico (descrizione) è possibile dettagliare

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico MANUALE MOODLE STUDENTI Accesso al Materiale Didattico 1 INDICE 1. INTRODUZIONE ALLA PIATTAFORMA MOODLE... 3 1.1. Corso Moodle... 4 2. ACCESSO ALLA PIATTAFORMA... 7 2.1. Accesso diretto alla piattaforma...

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione Programma del Corso Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Normalizzazione (I prova scritta) (II prova scritta) Interazione fra linguaggi di programmazione e basi di dati Cenni

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI Un utilizzatore a valle di sostanze chimiche dovrebbe informare i propri fornitori riguardo al suo utilizzo delle sostanze (come tali o all

Dettagli

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi ControlloCosti Cubi OLAP I cubi OLAP Un Cubo (OLAP, acronimo di On-Line Analytical Processing) è una struttura per la memorizzazione e la gestione dei dati che permette di eseguire analisi in tempi rapidi,

Dettagli

Elementi di Psicometria con Laboratorio di SPSS 1

Elementi di Psicometria con Laboratorio di SPSS 1 Elementi di Psicometria con Laboratorio di SPSS 1 29-Analisi della potenza statistica vers. 1.0 (12 dicembre 2014) Germano Rossi 1 germano.rossi@unimib.it 1 Dipartimento di Psicologia, Università di Milano-Bicocca

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema Pagina: 1 e-travel ING SW Progetto di Ingegneria del Software e-travel Requisiti Utente Specifiche Funzionali del Sistema e Pagina: 2 di 9 Indice dei contenuti 1 INTRODUZIONE... 3 1.1 SCOPO DEL DOCUMENTO...

Dettagli

La Metodologia adottata nel Corso

La Metodologia adottata nel Corso La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema

Dettagli

RICERCA AZIONE STRUMENTI

RICERCA AZIONE STRUMENTI RICERCA AZIONE STRUMENTI STRUMENTI INTROSPETTIVI Permettono di scoprire gli aspetti più nascosti, le sfaccettature più profonde. Sono privati perché di norma vengono usati dall individuo da solo. Non sono

Dettagli

Alessandra Raffaetà. Basi di Dati

Alessandra Raffaetà. Basi di Dati Lezione 2 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Basi di Dati

Dettagli

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti

La manutenzione come elemento di garanzia della sicurezza di macchine e impianti La manutenzione come elemento di garanzia della sicurezza di macchine e impianti Alessandro Mazzeranghi, Rossano Rossetti MECQ S.r.l. Quanto è importante la manutenzione negli ambienti di lavoro? E cosa

Dettagli

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI) COMUNE DI RAVENNA Il sistema di valutazione delle posizioni del personale dirigente GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI) Ravenna, Settembre 2004 SCHEMA DI SINTESI PER LA

Dettagli

LABORATORIO DI INFORMATICA

LABORATORIO DI INFORMATICA - PROGRAMMAZIONE DI DIPARTIMENTO - anno scolastico 2015-2016 Corso: Liceo Linguistico Quadro orario Classe I II Laboratorio di 2 2 LABORATORIO DI INFORMATICA L insegnamento dell informatica nel liceo linguistici

Dettagli

Rapporto dal Questionari Insegnanti

Rapporto dal Questionari Insegnanti Rapporto dal Questionari Insegnanti SCUOLA CHIC81400N N. Docenti che hanno compilato il questionario: 60 Anno Scolastico 2014/15 Le Aree Indagate Il Questionario Insegnanti ha l obiettivo di rilevare la

Dettagli

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. PROGETTO SeT Il ciclo dell informazione Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi. Scuola media Istituto comprensivo di Fagagna (Udine) Insegnanti referenti: Guerra Annalja, Gianquinto

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

Uso di base delle funzioni in Microsoft Excel

Uso di base delle funzioni in Microsoft Excel Uso di base delle funzioni in Microsoft Excel Le funzioni Una funzione è un operatore che applicato a uno o più argomenti (valori, siano essi numeri con virgola, numeri interi, stringhe di caratteri) restituisce

Dettagli

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste

Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste Banca dati Professioniste in rete per le P.A. Guida all uso per le Professioniste versione 2.1 24/09/2015 aggiornamenti: 23-set-2015; 24-set-2015 Autore: Francesco Brunetta (http://www.francescobrunetta.it/)

Dettagli

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

Università degli Studi Roma Tre Dipartimento di Informatica ed automazione. Facoltà di Ingegneria Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea AUTENTICAZIONE PER APPLICAZIONI WEB Relatore

Dettagli

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome. Prof. Francesco Accarino Raccolta di esercizi modello ER Esercizio 1 Un università vuole raccogliere ed organizzare in un database le informazioni sui propri studenti in relazione ai corsi che essi frequentano

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

e-dva - eni-depth Velocity Analysis

e-dva - eni-depth Velocity Analysis Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa

Dettagli

Analisi e diagramma di Pareto

Analisi e diagramma di Pareto Analisi e diagramma di Pareto L'analisi di Pareto è una metodologia statistica utilizzata per individuare i problemi più rilevanti nella situazione in esame e quindi le priorità di intervento. L'obiettivo

Dettagli

PROCESSO DI INDICIZZAZIONE SEMANTICA

PROCESSO DI INDICIZZAZIONE SEMANTICA PROCESSO DI INDICIZZAZIONE SEMANTICA INDIVIDUAZIONE DEI TEMI/CONCETTI SELEZIONE DEI TEMI/CONCETTI ESPRESSIONE DEI CONCETTI NEL LINGUAGGIO DI INDICIZZAZIONE TIPI DI INDICIZZAZIONE SOMMARIZZAZIONE INDICIZZAZIONE

Dettagli

Il corso di italiano on-line: presentazione

Il corso di italiano on-line: presentazione Il corso di italiano on-line: presentazione Indice Perché un corso di lingua on-line 1. I corsi di lingua italiana ICoNLingua 2. Come è organizzato il corso 2.1. Struttura generale del corso 2.2. Tempistica

Dettagli

Progettazione della componente applicativa

Progettazione della componente applicativa 7 Progettazione della componente applicativa In questo capitolo illustreremo la progettazione della componente applicativa di un sistema informativo. La metodologia da noi utilizzata sarà basata sull utilizzo

Dettagli

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi

Dettagli

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE: IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:! definisce i bisogni e i desideri insoddisfatti! ne definisce l ampiezza! determina quali mercati obiettivo l impresa può meglio servire! definisce i prodotti

Dettagli

ALLEGATO 14 PROBLEMATICHE APPLICATIVE PASSERELLA ESPORTAZIONE DATI E CAPRES

ALLEGATO 14 PROBLEMATICHE APPLICATIVE PASSERELLA ESPORTAZIONE DATI E CAPRES ALLEGATO 14 PROBLEMATICHE APPLICATIVE PASSERELLA ESPORTAZIONE DATI E CAPRES 1 INTRODUZIONE Il presente documento illustra le problematiche tecniche emerse nell utilizzo degli applicativi Viriato e Capres

Dettagli

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA

MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA MANUALE DI UTILIZZO: INTRANET PROVINCIA DI POTENZA Fornitore: Publisys Prodotto: Intranet Provincia di Potenza http://www.provincia.potenza.it/intranet Indice 1. Introduzione... 3 2. I servizi dell Intranet...

Dettagli

Capitolo 5. Cercare informazioni sul Web

Capitolo 5. Cercare informazioni sul Web Capitolo 5 Cercare informazioni sul Web Cercare nel posto giusto Posti logici e noti per reperire informazioni sui nostri contributi pensionistici, chiediamo all INPS Biblioteche on-line La maggior parte

Dettagli

Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario

Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario Progetto ASTREA WP2: Sistema informativo per il monitoraggio del sistema giudiziario Nell ambito di questa attività è in fase di realizzazione un applicativo che metterà a disposizione dei policy makers,

Dettagli

MODULO 5 Appunti ACCESS - Basi di dati

MODULO 5 Appunti ACCESS - Basi di dati MODULO 5 Appunti ACCESS - Basi di dati Lezione 1 www.mondopcnet.com Modulo 5 basi di dati Richiede che il candidato dimostri di possedere la conoscenza relativa ad alcuni concetti fondamentali sui database.

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Esercizio 1: trading on-line

Esercizio 1: trading on-line Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente

Dettagli

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo.

Al termine del lavoro ad uno dei componenti del gruppo verrà affidato l incarico di relazionare a nome di tutto il gruppo. Pag. 1 di 5 6FRSR analizzare problemi complessi riguardanti la gestione di un sito interattivo proponendo soluzioni adeguate e facilmente utilizzabili da una utenza poco informatizzata. 2ELHWWLYL GD UDJJLXQJHUH

Dettagli

La Progettazione Concettuale

La Progettazione Concettuale La Progettazione Concettuale Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica CorsodiBasidiDati Anno Accademico 2006/2007 docente: ing. Corrado Aaron Visaggio

Dettagli

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith

Configurazione della ricerca desktop di Nepomuk. Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith Configurazione della ricerca desktop di Nepomuk Sebastian Trüg Anne-Marie Mahfouf Traduzione della documentazione in italiano: Federico Zenith 2 Indice 1 Introduzione 4 1.1 Impostazioni di base....................................

Dettagli

Il moderno messaggio mediatico: l Ipertesto e l Ipermedia. Stefano Cagol

Il moderno messaggio mediatico: l Ipertesto e l Ipermedia. Stefano Cagol Il moderno messaggio mediatico: l Ipertesto e l Ipermedia Sommario Esercizio Creazione di un ipertesto o ipermedia Competenze Quali le capacità e le competenze? Elementi Caratteristiche peculiari dell

Dettagli

Il motore semantico della PA piemontese. Marta Garabuggio - Regione Piemonte Carlo Fortunato CSI - Piemonte

Il motore semantico della PA piemontese. Marta Garabuggio - Regione Piemonte Carlo Fortunato CSI - Piemonte Marta Garabuggio - Regione Piemonte Carlo Fortunato CSI - Piemonte Sommario Lo scenario Il web della PA piemontese Gli obiettivi La soluzione individuata La tassonomia a faccette Il vocabolario controllato

Dettagli

SCENARIO. Personas. 2010 ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

SCENARIO. Personas. 2010 ALICE Lucchin / BENITO Condemi de Felice. All rights reserved. SCENARIO Personas SCENARIO È una delle tecniche che aiuta il designer a far emergere le esigente dell utente e il contesto d uso. Gli scenari hanno un ambientazione, attori (personas) con degli obiettivi,

Dettagli

La relazione presenta quanto emerso dalla prima indagine condotta sugli utenti della Biblioteca Isimbardi.

La relazione presenta quanto emerso dalla prima indagine condotta sugli utenti della Biblioteca Isimbardi. INTRODUZIONE La relazione presenta quanto emerso dalla prima indagine condotta sugli utenti della Biblioteca Isimbardi. Nel corso di alcuni mesi del 2008 sono state distribuite delle schede anonime, da

Dettagli

Corso di. Dott.ssa Donatella Cocca

Corso di. Dott.ssa Donatella Cocca Corso di Statistica medica e applicata Dott.ssa Donatella Cocca 1 a Lezione Cos'è la statistica? Come in tutta la ricerca scientifica sperimentale, anche nelle scienze mediche e biologiche è indispensabile

Dettagli

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

Dettagli

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci UNIVERSITA MILANO BICOCCA Corso di laurea di primo livello in servizio sociale anno accademico 2009-2010 Progettare il sociale Prof. Dario A. Colombo IL CICLO DI VITA DEL PROGETTO Elementi essenziali di

Dettagli

Un gioco con tre dadi

Un gioco con tre dadi Un gioco con tre dadi Livello scolare: biennio Abilità interessate Costruire lo spazio degli eventi in casi semplici e determinarne la cardinalità. Valutare la probabilità in diversi contesti problematici.

Dettagli

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it

Automazione Industriale (scheduling+mms) scheduling+mms. adacher@dia.uniroma3.it Automazione Industriale (scheduling+mms) scheduling+mms adacher@dia.uniroma3.it Introduzione Sistemi e Modelli Lo studio e l analisi di sistemi tramite una rappresentazione astratta o una sua formalizzazione

Dettagli

Le Basi di dati: generalità. Unità di Apprendimento A1 1

Le Basi di dati: generalità. Unità di Apprendimento A1 1 Le Basi di dati: generalità Unità di Apprendimento A1 1 1 Cosa è una base di dati In ogni modello di organizzazione della vita dell uomo vengono trattate informazioni Una volta individuate e raccolte devono

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

Dettagli

Attività federale di marketing

Attività federale di marketing Attività federale di marketing Gestione e certificazione delle sponsorizzazioni Il Feedback Web Nel piano di sviluppo della propria attività di marketing, la FIS ha adottato il sistema Feedback Web realizzato

Dettagli

Introduzione al corso

Introduzione al corso Introduzione al corso Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: introduzione.pdf Sistemi Informativi L-B Docente Prof. Paolo Ciaccia

Dettagli

Calcolo del Valore Attuale Netto (VAN)

Calcolo del Valore Attuale Netto (VAN) Calcolo del Valore Attuale Netto (VAN) Il calcolo del valore attuale netto (VAN) serve per determinare la redditività di un investimento. Si tratta di utilizzare un procedimento che può consentirci di

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio

Dettagli

Brochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8

Brochure Internet. Versione 2010.1 The Keyrules Company s.r.l. Pagina 2 di 8 Ogni organizzazione possiede un sistema di regole che la caratterizzano e che ne assicurano il funzionamento. Le regole sono l insieme coordinato delle norme che stabiliscono come deve o dovrebbe funzionare

Dettagli

Corrispondenze e funzioni

Corrispondenze e funzioni Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei

Dettagli

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione 4 LEZIONE: Programmazione su Carta a Quadretti Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10 Minuti Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione SOMMARIO:

Dettagli

I modelli di qualità come spinta allo sviluppo

I modelli di qualità come spinta allo sviluppo I modelli di qualità come spinta allo sviluppo Paolo Citti Ordinario Università degli studi di Firenze Presidente Accademia Italiana del Sei Sigma 2005 1 Si legge oggi sui giornali che l azienda Italia

Dettagli

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

ARCHIVI E DATABASE (prof. Ivaldi Giuliano) ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

Guida alla registrazione on-line di un DataLogger

Guida alla registrazione on-line di un DataLogger NovaProject s.r.l. Guida alla registrazione on-line di un DataLogger Revisione 3.0 3/08/2010 Partita IVA / Codice Fiscale: 03034090542 pag. 1 di 17 Contenuti Il presente documento è una guida all accesso

Dettagli

I libri di testo. Carlo Tarsitani

I libri di testo. Carlo Tarsitani I libri di testo Carlo Tarsitani Premessa Per accedere ai contenuti del sapere scientifico, ai vari livelli di istruzione, si usa comunemente anche un libro di testo. A partire dalla scuola primaria, tutti

Dettagli

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori.

In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori. Release 5.20 Manuale Operativo ORDINI PLUS Gestione delle richieste di acquisto In questo manuale sono indicate le procedure per utilizzare correttamente la gestione delle offerte dei fornitori. La gestione

Dettagli

Versione 7.0 Taglie e Colori. Negozio Facile

Versione 7.0 Taglie e Colori. Negozio Facile Versione 7.0 Taglie e Colori Negozio Facile Negozio Facile: Gestione taglie e colori Il concetto di base dal quale siamo partiti è che ogni variante taglia/colore sia un articolo a se stante. Partendo

Dettagli

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto)

Fasi del ciclo di vita del software (riassunto) Progetto: generalità. Progetto e realizzazione (riassunto) Università degli Studi di Roma La Sapienza Facoltà di Ingegneria Sede di Latina Laurea in Ingegneria dell Informazione Fasi del ciclo di vita del software (riassunto) Corso di PROGETTAZIONE DEL SOFTWARE

Dettagli

MOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013]

MOCA. Modulo Candidatura. http://www.federscacchi.it/moca. moca@federscacchi.it. [Manuale versione 1.0 marzo 2013] MOCA Modulo Candidatura http://www.federscacchi.it/moca moca@federscacchi.it [Manuale versione 1.0 marzo 2013] 1/12 MOCA in breve MOCA è una funzionalità del sito web della FSI che permette di inserire

Dettagli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

Come archiviare i dati per le scienze sociali

Come archiviare i dati per le scienze sociali Come archiviare i dati per le scienze sociali ADPSS-SOCIODATA Archivio Dati e Programmi per le Scienze Sociali www.sociologiadip.unimib.it/sociodata E-mail: adpss.sociologia@unimib.it Tel.: 02 64487513

Dettagli

SERVE ANCORA AVERE UN SISTEMA DI QUALITÀ CERTIFICATO?

SERVE ANCORA AVERE UN SISTEMA DI QUALITÀ CERTIFICATO? LA NUOVA ISO 9001 : 2008 SERVE ANCORA AVERE NEL 2009 UN SISTEMA DI QUALITÀ CERTIFICATO? Paolo Citti Ordinario Università degli Studi di Firenze Presidente AICQ Tosco Ligure 1 Si legge oggi sui giornali

Dettagli

2003.06.16 Il sistema C.R.M. / E.R.M.

2003.06.16 Il sistema C.R.M. / E.R.M. 2003.06.16 Il sistema C.R.M. / E.R.M. Customer / Enterprise : Resource Management of Informations I-SKIPPER è un sistema di CONOSCENZE che raccoglie ed integra INFORMAZIONI COMMERCIALI, dati su Clienti,

Dettagli

Crisi e cambiamento nella realtà artigiana

Crisi e cambiamento nella realtà artigiana Confartigianato Asolo e Montebelluna Progetto di ricerca Crisi e cambiamento nella realtà artigiana Treviso, Settembre 2011 Indice 1. Premessa 2 2. (D2) Nel mondo si parla di crisi e di cambiamento, che

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

ISTRUZIONI PER LA GESTIONE BUDGET

ISTRUZIONI PER LA GESTIONE BUDGET ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET

Dettagli

La progettazione centrata sull utente nei bandi di gara

La progettazione centrata sull utente nei bandi di gara Progetto PerformancePA Ambito A - Linea 1 - Una rete per la riforma della PA La progettazione centrata sull utente nei bandi di gara Autore: Maurizio Boscarol Creatore: Formez PA, Progetto Performance

Dettagli

Project Cycle Management

Project Cycle Management Project Cycle Management Tre momenti centrali della fase di analisi: analisi dei problemi, analisi degli obiettivi e identificazione degli ambiti di intervento Il presente materiale didattico costituisce

Dettagli

Uso dei modelli/template

Uso dei modelli/template Uso dei modelli/template Il modello (o template, in inglese) non è altro che un normale file di disegno, generalmente vuoto, cioè senza alcuna geometria disegnata al suo interno, salvato con l estensione.dwt.

Dettagli