Appunti del corso di Sistemi Multimediali

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Appunti del corso di Sistemi Multimediali"

Transcript

1 Appunti del corso di Sistemi Multimediali (2011/2012) A cura di Fabio Canigliula

2 INDICE DEI CONTENUTI 1. INTRODUZIONE Definizioni sulla Multimedialità Processi Comunicativi WEB SEMANTICO Evoluzione del WEB Accesso alle Informazioni WEB WEB Semantico Ontologia Testuale IMAGE DATA Immagini Formati Immagini COLORS Human Vision Caratteristiche Percettiva del Colore Standardizzazione della Cromacità IMAGE PROCESSING Fondamenti di Image Processing Metodi di Elaborazione nel Dominio Spaziale Elaborazione Punto-Punto (Point-Processing) Histogram Processing Spatial Filtering Smoothing Spatial Filters Utilizzi dello Smoothing Sharpening Spatial Filters

3 6. MULTIMEDIA FEATURES Features and Metrics Features Selection Principal Component Analysis (PCA) Fattorizzazione SVD Algoritmo PCA Compattezza di un Database VISUAL INFORMATION RETRIEVAL Visual Information Retrieval (VIR) Query Remastered Features Extraction Difference of Gaussian Filters (DoG) Wavelet Transform Image Features Scale Invariant Feature Transform (SIFS) Precision and Recall COMPRESSIONE Video Basics Audio Basics Multimedia Data Compression Lossless Compression Lossy Compression Image Compression Video Compression INDICI Database Multimediali (Cenni Introduttivi) Indici Multimediali K-D Tree

4 9.4. Point-Quad Tree (PQT) R-Tree DATABASE MULTIMEDIALI Multimedia Database Oracle Intermedia INTRODUZIONE A XML Introduzione a XML SMIL VIDEOSORVEGLIANZA Sistemi di Videosorveglianza Image Processing System (IPS) Finding Unexplained Activities COMPUTER GRAPHICS Introduzione alla Computer Graphics Paradigmi per la Sintesi di Immagini 3D GESTIONE DEL TESTO Trattamento Automatico del Testo Formalizzazione del Dominio Natural Language Processing (NLP)

5 CAPITOLO I - INTRODUZIONE 1. DEFINIZIONI SULLA MULTIMEDIALITA In ambito informatico il termine multimedia indica la collaborazione ed interazione tra multiple sorgenti eterogenee (testo, immagini, suoni, video, grafica, etc.) al fine di perseguire il completamento/adempimento di un task comune. Un sistema multimediale è un insieme di applicazioni integrate (tra loro in comunicazione) che risolvono un task tramite la loro stretta collaborazione ed interazione. Anche l uomo fa parte del si sistema: si configura come un elemento attivo capace di generare utili feedback (human in the loop). L interattività è quindi un aspetto cruciale per un sistema multimediale, il quale, configurandosi come un firmware, va a rappresentare una descrizione di un aspetto della nostra vita. Un semplice PC sarà quindi solo un accessorio multimediale, ma da solo non può rappresentare un sistema multimediale. Il multimedia computing, ossia lo sviluppo di sistemi multimediali, è un processo multidisciplinare che abbraccia più settori dell informatica e della tecnologia: - Computer Networks and Operating Sistems. - Computer Graphics (inverso della computer vision, si creano grafiche dal digitale direttamente). - Image, audio and image processing. - Data compression. - Computer Vision (simulazione caratteristiche visive umane. Ex: videosorveglianza.) - HCI (human/computer interface, per l interazione uomo macchina). I principali problemi riguardo il trattamento di materiale multimediale, riguardano soprattutto le dimensioni che un file multimediale presenta: siccome queste sono molto elevate, si devono ottimizzare tutti quelli che sono i processi di analisi, visualizzazione, trasmissione e quindi compressione di materiale multimediale. Nella piramide di sviluppo di un sistema multimediale, la figura dell ingegnere è essenziale siccome po ottimizzare quelli che sono aspetti tecnici importantissimi: - Struttura del sistema: la trasmissione deve avvenire in modo che non venga intasata la banda e che non vi sia perdita di informazione a causa di una cattiva gestione dei flussi di trasmissione. - Sincronizzazione delle applicazioni: tramite script specifici devono essere sincronizzati tuti gli aspetti di un sistema multimediale. Se si vuole ad esempio eseguire una presentazione che alterna audio, video ed immagini si deve far in modo che quando parti il video, l audio 4

6 sia sincrono allo sviluppo del contenuto e che non vi siano immagini estranee che blocchino il tutto. - Recupero e protezione delle informazioni. Per information retrieval si intende la capacità di riconoscere quindi trovare informazioni da un contenuto. Una ricerca può essere fatta per trovare testo, immagini, video ma anche cose più astratte come azioni sospette, posture, e linee di pensiero. Basti pensare ad un sistema di videosorveglianza che monitora attivamente un luogo chiuso nel caso siano presenti dei ladri in azione: Il riconoscimento degli oggetti indicherà al sistema che sono presenti degli umani nel campo visivo ed in analisi della videocamera. Il riconoscimento delle azioni potrà analizzare le azioni che questi figuri stanno compiendo: sarà plausibile considerare sospetto l azione di frugare in armadi e nelle camere ad un certo orario nella notte. Il sistema quindi, riconoscerà l azione e la postura sospetta dei malfattori e si metterà in azione per avvertire chi di dovere: polizia con una segnalazione tramite mail o messaggistica non istantanea, e il proprietario del bene tramite un messaggio sul cellulare. Un altro esempio può essere fornito dai motori di ricerca che, in base alla parola inserita per la ricerca, possono fornire in risposta non solo altro testo, siti o riferimenti, ma anche immagini, video e altri sistemi multimediali. Una ricerca più accurata, come il colore di un immagine o il suono ad una certa frequenza in un file audio possono essere effettuate per il riconoscimento di azioni belliche, sanitarie o anche economiche. Insomma, la possibilità di reperire informazioni da contenuti di ogni tipo è certamente un carattere critico di un sistema multimediale. 2. PROCESSI COMUNICATIVI Un processo comunicativo è una situazione in cui un mittente si accorda con un destinatario per lo scambio di un messaggio, tramite un protocollo prestabilito: SENDER ENCODING CHANNEL (noise) RECEIVER DECODING FEEDBACK La comunicazione può avvenire in maniera fisica o virtuale, in maniera sincrona o asincrona. Il messaggio dovrà essere compreso sia dal mittente che dal ricevente. Per averne una corretta interpretazione, questi dovranno avere lo stesso punto di vista, interpretazione e linguaggio. Un messaggio sarà composto da uno o più segni. Un segno veicola un significato: è qualcosa che significa qualcos altro per qualcuno. Tramite l interpretazione, si possono assegnare più significati diversi ad un segno: un mazzo di fiori può rappresentare un dono e non semplicemente un mazzo di fiori. Il segno va a quindi a stimolare l idea con cui esso viene associato, idea comprensibile solo se presente in un contesto di conoscenza collettiva. La semiotica è la scienza dello studio dei segni e dei loro significati. Un segno nella semiotica è rappresentato da una coppia di entità tra loro inscindibili: 5

7 - Significante: è il modo con cui esprimo il segno (testo, figura, video). - Significato: è il concetto che esprime. Un segno può essere anche considerato come un entità astratta, luogo di incontro tra elementi mutuamente indipendenti. I segni si configurano quindi come elementi provvisori di regole di codifica, rappresentando delle correlazioni transitorie tra significante e significato. In un sistema multimediale la semiotica e l utilizzo dei segni è essenziale per far pervenire messaggi e significati all utente. Il collante che mantiene salde le relazioni tra un qualsiasi sistema multimediale e la nostra realtà è proprio l utilizzo dei segni. Basti pensare a sistemi commerciali, pubblicitari o di informazione: i segni vanno a racchiudere dei significati, spesso anche complessi, semplicemente attraverso immagini, descrizioni e video. L importanza del segno è enfatizzata in quelli che sono il Web 2.0 e Web 3.0, dove la connessione e la comunicazione rivestono un ruolo essenziale. Qui i segni posso essere intesi come connessioni tra la singola persona ed il sistema, ma anche tra più persone tramite lo stesso sistema, tutto grazie all utilizzo dei segni e del loro carico significativo. La semantica è la scienza dello studio dei significati e si trova ad un livello subito superiore alla semiotica. Semiotica Semantica Semantica Oggetti Fisici Oggetti Fisici Semiotica (con a, b, c Messaggi) Il media è il mezzo con cui il messaggio viene trasmesso. Un media può essere statico (scolpiti, irremovibili) o dinamico (siti web, social networks, in costante cambiamento); interattivo (human in the loop) o non interattivo. Con lo sviluppo delle applicazioni multimediali, è stato necessario introdurre il concetto di Hypertesto: è possibile navigare attraverso più contenuti testuali (chunks) attraverso quelli che sono dei collegamenti (hotspots) i quali permettono di accedere a contenuti diversi in maniera concatenata, fornendo così una vera e propria funzionalità di browsing dei contenuti. L accesso alle informazioni diventa quindi dinamico, e, nel caso di applicazioni tipo Wikipedia, anche interattivo. L Hypermedia segue lo stesso principio, ma i contenuti non sono solo testuali: audio, video, grafica, etc. Un esempio lampante di hypermedia è fornito dal Wold Wide Web: standardizzato dal W3C (WWW Consorzio), esso deve fornire e assicurare: - Accesso universale alle risorse web da tutti ovunque. - Capacità di navigazione attraverso tutti i contenuti. - Uso responsabile dei contenuti. Il Browser è stato il primo interprete nelle reti. L interprete è una macchina virtuale che esegue codice sorgente come se fosse il suo linguaggio macchina. Il compilatore è colui che genera codice 6

8 sorgente, traducendolo in linguaggio macchina. I linguaggi presenti nel WWW hanno seguito una precisa evoluzione durante la loro storia: SGML HTML XML SMIL Dallo Standard Generalized Markup Language, si è passati al HyperText Markup Language, il quale utilizza marcatori per descrivere come viene rappresentato il testo e hotspots (come fossero links) per poter offrire una navigazione nei contenuti. L Exensible Markup Language permette di definire linguaggi di markup, spesso si utilizzano DTD (Document Type Definition) già composti per poerne seguire le regole di generazione del codice XML. Da esso deriva lo Synchronized Multimedia Integration Language, che offre la possibilità di effettuare presentazioni multimediali attraverso un linguaggio con marcatori. L interattività fornita dall hypertesto, hypermedia e da tutti gli strumenti che da essi derivano (linguaggi xml etc.) è essenziale ed importantissima al fine dei sistemi multimediali. L interattività coinvolge quella che è la figura dell uomo all interno del sistema (man in the loop) come entità il cui feedback è essenziale per il corretto funzionamento ed arricchimento del sistema. Inoltre è ovvio che molti sistemi nascono proprio per essere interattivi, quindi indirizzati a ricevere inputs ed elargire outputs a seconda delle necessità che si incontrano. Un sistema multimediale può anche non essere interattivo. 7

9 CAPITOLO II WEB SEMANTICO 1. EVOLUZIONE DEL WEB Web 1.0 È il web della digitalizzazione delle informazioni: iniziano ad essere portate staticamente le informazioni sul web, attraverso siti di giornalismo, musica e film. I siti web cominciano ad essere multimediali: si inizia ad usare l hypermedialità e a sviluppare delle applicazioni web. Nacquero in questo periodo infatti le prime applicazioni commerciali, andando così a rivoluzionare quello che era il mondo del marketing. Il cardine di questo web sono i contenuti, i quali vengono condivisi con facilità e scalabilità. Web 2.0 Con lo sviluppo dei linguaggi di Markup e delle applicazioni, si è raggiunto un nuovo livello di web. HTML è stato il punto di partenza per lo sviluppo delle applicazioni web recenti, ed il suo successore XML ha permesso che i contenuti fossero gestiti come veri e propri dati. La parola chiave del web 2.0 è Cooperazione (linking people): nasce il social networking. Ogni utente può partecipare attivamente e interattivamente alla creazione di nuovi contenuti multimediali (Youtube, Facebook, Myspace, Wikipedia, etc.). Tali contenuti non saranno più statici come nella precedente versione del web, bensì dinamici e soggetti a continui aggiornamenti, apportati anche dalla stessa comunità di utenza (social community). Il web moderno è quindi creato proprio da noi stessi. Nel web 2.0 nasce un nuovo modo di progettare sistemi informativi: tramite i SOA (Service- Oriented Architecture) è possibile intrecciare più servizi eterogenei sotto un unico sistema, allo scopo di fornire più funzionalità e più integrazione per uno scopo comune. I SOA non definiscono delle API, e strutturano la loro interfaccia in termini di protocolli e funzionalità. Un altro modo per integrare più applicazioni sono i Mashup: si integrano diversi siti ed i rispettivi servizi (e dati) tramite delle API (fornite dalle case produttrici dei servizi che voglio integrare), garantendo così la comunicabilità e le funzionalità cross site (ex: inserimento di google map in siti web). 8

10 Web 3.0 Rappresenta l evoluzione del concetto di condivisione: si integrano strettamente tutti i dati di internet, immaginando il web sempre più come un enorme ed unico database. Per poter integrare questa moltitudine di dati si devono comunque seguire delle regole precise di comunicazione e condivisione. Le fonti dei vari contenuti saranno comunque eterogenee ed apparterranno a diversi proprietari: anche se si raggiungesse la situazione in cui vi sia un unico database generale non si avrà comunque la figura di un solo proprietario. Nel web 3.0 la connessione alla rete e all eventuale database generale, non è limitata più ai soli computers ma si estende ad oggetti di uso comune, come auto, pullman, lavatrici, telefonini, etc. Si è introdotto il concetto di Smartcity, ossia di una città completamente informatizzata ed intelligente, dove ogni cellula è connessa ad un'unica rete: basti pensare ad un pullman che arriva alla fermata che si vuole prendere con cui è possibile comunicare tramite mail o sms e che avvisa quanto manco prima che passi. Anche la Domotica si è ampiamente sviluppata verso il web 3.0: le case più moderne e tecnologiche presentano dei sistemi di controllo e di gestione delle funzionalità domestiche completamente gestite da applicazioni, addirittura connessi in rete. Si pensi ad un antifurto intelligente, che, qual ora dovesse attivarsi, manderebbe dei messaggi sia alla polizia che al proprietario della casa in tempo reale., oppure allo stesso proprietario che può attivare o disattivare l antifurto tramite il suo cellulare o tramite internet. Inoltre si deve tener conto del costante sviluppo dei sistemi GIS (Geographic Information Systems) che permettono la condivisione in tempo reale di informazioni relative al territorio. Per le caratteristiche intrinseche di queste applicazioni intelligenti, il Cloud Computing sarà il futuro per la gestione di questi enormi database e per la connettività di massa. 2. ACCESSO ALLE INFORMAZIONI WEB La ricerca di contenuti sul web è oggi incentrata su quelli che sono i motori di ricerca. Tali motori presentano limitazioni legate agli algoritmi che sono utilizzati per effettuare il matching del contento ricercato e quelli trovati. Si tratta di information retrieval, che si differenzia da una query per il fatto che il risultato della ricerca può non essere esatto. La Ricerca Puramente Sintattica consiste nel digitare una parola chiave e ricevere come risultati tutti i match nei titoli e nei contenuti dei file che il motore ha trovato sul web. Tale ricerca è di per sé ambigua, siccome può ritornare contenuti che spaziano tra svariate semantiche, quindi fuori dal tema di ricerca. Negli ultimi anni, Google si è affidato al Page Ranking: vengono proposti come risultati quei siti dove vi è il più alto tasso di popolazione e dove è stato effettuato più di un riscontro. Così si può offrire una certezza virtuale sulla correttezza del contenuto presentato in risposta. 9

11 La Ricerca Semantica consiste invece nella ricerca di contenuti per semantica e quindi per un significato più generale e non strettamente legato a quello sintattico della parola. Se si esegue una ricerca su Google facendo precedere alla parola da cercare una tilde, si chiede di effettuare una ricerca semantica e non sintattica: si vogliono quindi tutti quei siti dove si parla di della parola che si è cercata, indipendentemente dalla lingua del sito, dal contesto sintattico e dai match non corretti. Una ricerca del genere può essere molto importante per circostanze di spionaggio (intelligence) o di studio della popolazione: tramite le OSA (Open Source Analysis), ossia delle analisi su siti di dominio pubblico (social networks, blogs, etc.), è possibile raccogliere informazioni semantiche su di un topic particolare, facendo ricerche tramite metafore o giochi di parole, per individuare linee di pensiero piuttosto che semplici riscontri tra parole. Tale ricerca può essere effettuata anche per immagini, suoni e video, andando ad analizzare quelli che sono gli oggetti rappresentati, il contesto in cui sono presentati e eventuali modifiche. 3. WEB SEMANTICO Wikipedia fornisce una prima definizione di web semantico: Con il termine web semantico si intende la trasformazione del web: è possibile pubblicare non più solo documenti ma anche informazioni relativi ai documenti stessi (metadati). Un Metadato è un dato che serve per descrivere un altro dato: il suo valore è il descrittore di un altro dato. Si può quindi pensare ad una rappresentazione del web che sia riconoscibile dalle macchine: è possibile una comunicazione tramite protocolli tra più macchine le quali discutono sui contenuti che condividono. Una macchina legge il metadato di un contenuto condiviso da un altra macchina e ne comprende e elabora il contesto. Tale meccanismo è estendibile anche a contenuti di tipologia multimediale. L insieme di tutte le regole di comunicazione e di elaborazione dei contenuti si muove verso il raggiungimento di uno standard che però non è ancora stato raggiunto. Il W3C offre un altra definizione per web semantico: the semantic web is a web of data. There is lots of data we all use every day, and it s not part of the web. Il dato quindi è considerato come qualcosa che può anche non trovarsi sul web. Il web semantico deve allora configurarsi come: - Un Formato Comune per combinare ed integrare i dati (protocollo/standard). - Un linguaggio per registrare come un dato di rifà agli oggetti del mondo reale. L evoluzione del web dipende anche dai contenuti che esso offre: nell ambiente web si configurano due tipologie di utente. Il Produttore è colui che vede al web come un contenitore di informazioni che può essere riempito, mentre il Consumatore lo vede come un insieme di contenuti che possono essere estrapolati. Il web vive sull equilibrio di queste due figure, e tutte le applicazioni moderne sono strutturate in modo che queste due entità siano in equilibrio tra loro. Nell ambito dei dati e della costruzione di database, sarebbe impensabile riscrivere a mano tutti quelli che sono i contenuti del web attuale in formato del web semantico. È quindi necessario un 10

12 qualche meccanismo di elaborazione automatizzato dei dati. Per ottenere tale risultato sono necessari: - Identificatori non ambigui che permettano una associazione tra dati ed oggetti reali [URI: Unique Resource Identificator]. Tali identificatori saranno riferiti anche a cosa fisiche, semantiche e concetti (forma, colori, idee, etc. un po come un IP). - Un modello comune per i dati, in modo da accedere, connettere e descrivere tali oggetti. [RDF: resource description framework]. - Un linguaggio per accedere a tali modelli dei dati [SPARQL: Simple Protocol And RDF Query Language]. - Un vocabolario comune [OWL: Onthology Web Language]. - Una logica per il ragionamento, in grado di dedurre dei dati da altri presenti nel database [OWL, RULES]. Lo sviluppo del web semantico procede a livelli, così che possa ottenere consenso a piccoli passi. UNICODE: serve per determinare e gestire le URI. XML: basato su URI e Unicode. Un documento XML è autodescrittivo ed utilizza un vocabolario definito dall utente. RDF: è il modello base per i dati che si traduce in un linguaggio a se stante. È basato su XML. RDF Schema: mette a disposizione primitive per la gestione di dati, descritti in RDF, in gerarchie. 11

13 OWL: livello delle ontologie. Sono descrizioni di conoscenze condivise. L ontologia è la descrizione di una conoscenza che permette la condivisione del contenuto. Sostituiscono il metadato classico, in maniera più precisa e completa, al fine di descrivere l oggetto. LOGICA: stato di programmazione avanzato che permette di effettuare il reasoning, ossia dedurre informazioni da altre informazioni. Un esempio ne è l intelligenza artificiale. PROVA: permette di realizzare dei processi deduttivi e di realizzare dimostrazioni di prova dei livelli sottostanti. FIDUCIA: permette di certificare la conoscenza, attraverso meccanismi come la firma digitale. Non si confonda il web semantico con la ricerca semantica: sono entrambi complementari ma agenti in sfere diverse. La ricerca semantica viene posta nell ambito dell information retrieval, mentre il web semantico è un astrazione di un entità globale, quale quella del web strettamente integrato. 4. ONTOLOGIA TESTUALE XML struttura i dati in maniera gerarchica (padre e figlio), mentre RDF struttura i dati in maniera semantica (soggetto, predicato, oggetto) più potente e salda di quella del xml. Entrambi questi linguaggi utilizzano i Metadati, essenziali per la descrizione semantica dei dati. Esiste un meccanismo di descrizione dei dati più efficiente e system-oriented, che è quello delle ontologie. Partendo dalla definizione: L ontologia è una specifica esplicita e formale (con i giusti mezzi) di una concettualizzazione condivisa (metadati). [JT Gruber]. L ontologia si preoccupa quindi solo della descrizione delle cose ed il suo scopo non è quello di spiegare dei significati agli uomini, bensì di descrivere concetti semantici alle macchine, tramite il linguaggio formale (e standard) OWL. Così sarà possibile avere due apparecchi in comunicazione tra Italia e il Giappone, senza che vi siano incongruenze sulla comprensione dell argomento (ad esempio un discorso sulla pizza). Un punto critico del OWL è l autoapprendimento automatizzato delle macchine. L ontologia oltre a dire is a e is part of, definisce anche una regola logica per il dato (statement) e ne descrive le sue relazioni gerarchiche. L ontologia risulta essere autodescrittiva e può essere letta anche in senso inverso a quello della sua istanza. Esempio di ontologia: ( ) ( ) ( ) ( ) ( ) Mazzeo è un istanza dell ontologia che assegna a Mazzeo delle caratteristiche di appartenenza sia al gruppo faculty sia a quello staff. Il modello entità-relazione avanzato è a tutti gli effetti un ontologia. 12

14 La costruzione di ontologie a livello di multimedialità presenta molti ostacoli. Primo tra tutti è l eventuale definizione di un criterio di classificazione di ontologie riguardanti un dato multimediale. Per la complessità del dato, possono esservi associati molti concetti e quindi molte associazioni possibili. Per poter ottenerne una corretta gestione si dovrebbe quindi standardizzare tale descrizione. I linguaggi orientati alle associazioni come OWL, premono sulle relazioni più che sulle entità tra oggetti, questo in direzione delle caratteristiche principali del web semantico il quale sembra più concentrato sulla interpretazione e sulle relazioni tra oggetti che sugli oggetti stessi. W3C sta cercando di arrivare ad un punto di stabilità riguardo tale argomento, ma vi sono così tante possibilità e difficoltà che il processo richiederà un lavoro enorme da parte di tutti, noi compresi. Una comparazione tra oggetti multimediali in chiave di ontologie, può essere pensata come un confronto statistico sui metadati che sono associati all informazione considerata: associare interpretazioni ad una immagine, ne può arricchire la descrizione in base a quelli che possono essere più feedback, trattati in chiave statistica, pervenuti dagli stessi utenti. In base a tali dati statistici raccolti, può essere possibile andare poi a stimare una chiave di lettura (tipo page ranking) che guidi l associazione che una macchina può effettuare sul dato in questione. 13

15 CAPITOLO III IMAGE DATA I formati su cui si lavora con dati multimediali sono tantissimi. File Import File Export Native IMAGE PALETTE SOUND VIDEO ANIMATION Image Video.DIR.PAL.ACT.AVI.MOV.BMP.AVI.MOV.DXR.EXE.BMP.DIB.GIF.JPG.PICT.PNG.PNT.PSD.TGA.TIFF.WMF.AIFF.AU.MP3.WAV.DIR.FLA.FLC.GIF.PPT 1. IMMAGINI L immagine è rappresentata da una funzione di due variabili: ( ) intensity Dove e sono le coordinate del Pixel (Picture x ELement) e dove l intensità è il livello di intensità dell immagine in quel pixel. L intensità coincide con il livello di grigio, ossia una delle possibili sfumature che vanno dal bianco al nero. La funzione può restituire più valori, a seconda delle caratteristiche che si considerano relative all immagine. Per esempio i colori, in base al Modello dei Colori utilizzato: ( ) ( ) Modello RGB (Red, Green, Blue) Un immagine analogica è rappresentata da una funzione di due variabili continua: le vecchie fotografie venivano stampate con funzioni continue. Quando una funzione analogica viene discretizzata con campionamento e quantizzazione, si avrà che ogni elemento della serie discreta risultante in realtà corrisponde a delle piccole regioni. Tali regioni rappresentano i pixel. Più sarà efficiente il campionamento e più piccola sarà la regione del pixel e quindi migliore sarà la risoluzione. Per un campionamento teoricamente perfetto, si avrà che un pixel sarà riconducibile ad un punto. 14

16 Il valore dei pixel sono proporzionali all energia/onda elettromagnetica irradiata dalla sorgente. Quando una sorgente luminosa colpisce con un fascio di luce un oggetto, si genererà una riflessione. Potrò quindi descrivere una nuova funzione in due variabili in funzione degli effetti di tale riflessione: ( ) ( ) ( ) Dove ( ), - è la funzione di illuminazione e ( ), - è la funzione di Riflessione. Dove è ilcodominio e è la cardinalità dei grigi. Il sistema di imaging, trasforma il raggio riflesso direttamente in un formato digitale, quindi quantizzato e campionato. La forma digitalizzata viene detta pixelizzazione dell immagine. Se si utilizza una digitalizzazione binaria (format per i bit), i livelli di grigio sono nient altro che potenze di due. Avrò quindi la corrispondenza tra pixel e bit: se K=0, avrò solo due colori associabili ad ogni pixel. K di solito è un byte corrispondente a 256 livelli di grigio. Nelle applicazioni biomediche, si arriva a 12 bit per pixel, ossia a 4096 livelli di grigio. L immagine digitalizzata è quindi una Matrice di Pixel: sull asse orizzontale si effettua il campionamento, mentre sull asse verticale si effettua una quantizzazione. Tali procedure devono essere effettuate in modo che siano compatibili e che non vi sia aliasing. Con una buona digitalizzazione è possibile ottenere immagini con una altrettanta buona risoluzione. La risoluzione è la capacità descrittiva di un pixel, che può essere intesa in due modi differenti. La Risoluzione Spaziale è il numero di punti per pixel che si va a rappresentare, ossia quanti pixel sono presenti nell immagine a parità di dimensioni (DPI = dot per inch). Più punti per inch si hanno, migliore è la risoluzione. La Risoluzione d Intensità è il più piccolo cambio di livello di intensità percepibile. Simile al concetto di sensibilità, viene utilizzato come metro di confronto in situazioni in cui il numero di livelli per pixel è molto grande (elaborazione biomediche). 2. FORMATI IMMAGINI Un file immagine presenta un campo di intestazione (header) come presentazione del contenuto, in cui sono descritte tutte le caratteristiche dell immagine: indicando a che punto del file inizia la sequenza di bit rappresentanti l immagine e come la matrice è disposta (successioni di righe o successioni di colonne). Si possono quindi creare formati diversi a seconda delle modifiche in questi campi di descrizione e di forma del file. Un formato è uno standard di caratteristiche per una tipologia di file. 15

17 Immagine disposta per successione di righe 1 Bit/Pixel Black and White Image. Tali immagini sono rappresentate con un bit per pixel e quindi possono conferire al pixel solo due livelli di grigio: Bianco o Nero. Per tale motivo sono anche dette immagini monocromatiche. Le immagini monocromatiche sono spesso il risultato di un processo di una elaborazione: le mappe di targetting dei missili, nell individuazione del bersaglio, posizionano tanti 1 sulle coordinate dell obiettivo e tutti 0 sulle aree non interessate circostanti (detection), così da avere una idea chiara del territorio necessario al raggiungimento del bersaglio, sfruttando anche il fatto che un immagine ad 1 Bit è molto leggera. Tali immagini possono essere affiancate ai file.tiff (scanner files) per rappresentare dei file a seguito di una scansione. 8 Bit/Pixel Gray-Level Image. Sono le classiche immagini in bianco e nero. In realtà queste immagini sono rappresentate con ben 256 livelli di grigio che vanno dallo 0 (nero) al 255 (bianco) e tutte le possibili sfumature nel mezzo (shadows). Siccome avrò che K=8, ogni pixel è rappresentato con un single byte. Ogni shadow è rappresentabile con l aggiunta o la sottrazione di luminosità dai livelli limite. Le immagini gray-level sono rappresentate da una BITMAP (mappa dei bit), i cui valori sono i livelli di grigio dei pixel (che possono andare da 0 a 255). Una gray-image di dimensione 640x480, richiederà 300 kb di memoria: bytes. Con l aumento dei livelli di grigio, si introduco delle problematiche relative alla omogeneizzazione dell immagine e al rumore. Il rumore può essere riconosciuto nelle immagini quando vi sono delle incongruenze con la rappresentazione. Nel caso dell effetto salt and pepper si ha che, a causa del rumore, vi saranno dei puntini neri sparsi in maniera random all interno dell immagine, andando così a conferirne una 16

18 caratteristica maculata decisamente innaturale (anche durante delle scansioni si possono vedere tali impurità). L omogeneizzazione riguarda il trattamento dei livelli di grigio di un immagine, a seconda delle caratteristiche, legate alla dimensione e alla risoluzione della stessa, che sono necessarie in un dato contesto. La Segmentazione dell immagine consiste nel dividere l immagine in regioni omogenee: se si hanno dei grigi molto vicini tra loro si portano tutti ad un livello comune. Tale procedura da come risultato un immagine più uniforme e quindi più affine ad una eventuale compressione. La tessitura, invece, è la trama dell immagine: la forma con cui il colore è disposto. In questo caso i livelli di grigi sono essenziali e non posso quindi andare ad omogeneizzarli siccome perderei informazione. Se diminuisco i livelli di grigio rappresentabili, le immagini si rovinano, siccome viene stressata la segmentazione dell immagine: uniformando troppo i grigi si perdono i dettagli. Tali dettagli possono essere essenziali per il detecting dei sistemi, come quelli biomedicali o di sicurezza intelligente. Importante è anche la visualizzazione delle immagini. Monitor comuni lavorano con 8 bit/pixel. In immagini di tipo biomedicali in cui K=12+, nel processo di elaborazione, si andrebbero a diminuire i livelli di grigio per poterli portare a risoluzioni minori, compatibili con quelle dell apparato di visualizzazione. Esistono tuttavia meccanismi per elaborare con 12 bit/pixel, per poi trasformare in 8 bit/pixel solo in fase di rappresentazione. Per migliorare le prestazioni di visualizzazione nel caso di processi di enormi dimensioni (le visualizzazioni delle immagini biomedicali sono addirittura in 4D, dove la quarta dimensione è rappresentata dalla trasparenza dell immagine, e quindi da una sua evoluzione temporale) è bene utilizzare dell hardware dedicato: un processore dedicato al rendering e alla pura gestione dei contenuti di visualizzazione, migliorerebbe le prestazioni di un sistema di questo genere. La scheda video riveste un ruolo essenziale nel processo di visualizzazione. Il Frame Buffer è la memoria buffer della scheda video, nella quale è memorizzata la BITMAP del file da visualizzare o elaborare insieme a tutte le informazioni relative alla luminosità dei pixel e alla profondità dei grigi. Se la memoria della scheda video è insufficiente per contenere tutte le informazioni ed i dati relativi alla singola immagine o alle tante che si stanno visualizzando, allora si utilizzerà parte della RAM come supporto. Un processore dedicato va a prendere le bitmap direttamente dal frame buffer. Il Frame Grubber sono apparecchi che permettono di acquisire immagini in formato digitale e trasportarle nel frame buffer. le Bit Planes sono delle rappresentazioni di un immagine a lastre sovrapposte di immagini a 1 bit/pixel. Nella visualizzazione, queste sono create in base alla cardinalità di grigi presenti nell immagine: in questo caso, si ha che ad una 8 bit/pixel gray-image corrisponderanno 8 immagini da 1 bit/pixel. Tali immagini sono create prendendo i bit dal più significativo al meno significativo, e, seguendone l ordine, avranno peso diverso nella approssimazione della figura. Ad esempio, considerando un immagine il cui valore in 8 bit è ( ) ( ),il 1 bit 17

19 peserà 128, il 5 peserà 8 e il 7 solo 2. Tutti gli altri avranno contributi nulli. Ad ogni bit alto, corrisponderà una rappresentazione ad 1 bit/pixel. 24 Bit/Pixel Color Image. Utilizzando il modello RGB ogni pixel è rappresentato da 3 byte (uno per ogni canale): risultano 256x256x256 livelli di grigio (in questo caso colori). Molte immagini a 24 bit a colori sono memorizzate in immagini da 32 bit, dove l extra byte (alpha value) rappresenta informazioni di effetti speciali, come la trasparenza dei pixel. Il formato Windows per tali immagini è.bmp ossia BITMAP. Una color image di dimensione 640x480, richiederà kb di memoria: bytes. 18

20 I tre canali RGB possiedono caratteristiche diverse: il B scurisce l immagine, R e G vi consegnano chiarezza e dettagli. Tali canali possono essere molto importanti per il riconoscimento delle ontologie e per la differenziazione dei dettagli. Per caratterizzare sinteticamente un immagine di questa fattura sono utilizzati in primo luogo gli Istogrammi. L istogramma traccia quante volte un livello di grigio appare nell immagine. Due immagini simili hanno istogrammi simili, ma non è detto che due istogrammi simili siano corrispondenti a due immagini simili: infatti si ha che anche due immagini diverse possono avere istogrammi simili. Per immagini a 24 bit/pixel, avrò 3 istogrammi, uno per ogni colore base. 8 Bit/Pixel Color Image. Per la computer graphic (creazione di immagini dal calcolatore) o per immagini web-sized a bassa risoluzione, sono utilizzabili delle immagini a colori rappresentate in 8 bit/pixel piuttosto che in 24 bit/pixel. La conversione dei avviene semplicemente usando un sottoinsieme finito di colori, in questo caso proprio. I colori del sottoinsieme sono scelti in base alla loro importanza nell immagine, e sono quelli che riescono a descriverla con migliore qualità. Da queste considerazioni di sottoinsieme nasce la Lookup Table (LUT): la bitmap (raw data) dell immagine non conterrà più i livelli di grigio dei colori, bensì degli indici. L indice di una cella della bitmap sarà usato per accedere alla LUT (in questo caso avrà 256 indici). La LUT, una volta acceduta, farà corrispondere all indice un codice binario di 3 byte (caso modello RGB: ad ogni canale di colore è associato un byte), che identificherà l intensità dei colori per il Pixel corrispondente alla posizione della cella di partenza. 19

21 Data un immagine, cambiandone LUT, cambia totalmente la gamma dei colori. La tecnica della LUT permette di comprimere l immagine senza perdita. La perdita infatti non è nella fase di trasformazione, bensì nella fase di creazione dell immagine, già a bassa risoluzione (generate dal calcolatore). La LUT è conservata con il file, associata all immagine di cui è interprete. È possibile ottenere un immagine a 24 bit/pixel in un formato fedele a soli 8 bit/pixel? Esistono due tecniche di conversione: 1) Scaling: si determinano degli intervalli per gli indici dei valori di intensità dei canali RGB per diminuire la cardinalità di rappresentazione dei colori del pixel (shrinking). Nel caso semplice di Scaling Uniforme, per conservare più dettagli, è possibile costruire delle mappature orientate verso i canali RG, che consegnano chiarezza e dettaglio all immagine, piuttosto che B, che consegna solo gli scuri all immagine. Si utilizzano pertanto degli intervalli a 3 bit, - per i canali RG e solo di 2 bit, - per il canale B, per un totale di 8 bit. Per ridimensionare i canali, si dividono i range di R e G per 32 (=256/8) in modo da ottenere 8 intervalli, in cui sono stati scalati 32 livelli di grigio. Per il canale B si dividerà il range per 64 (=256/4) in modo da ottenere 4 intervalli in cui sono stati scalati 64 livelli di grigio. In questo modo, potrò sostituire ai valori della bitmap gli indici della LUT corrispondente, ottenendo così il ridimensionamento. Tale procedimento sebbene sia semplice non è il migliore, siccome introduce della segmentazione che fonde colori vicini creando effetti non piacevoli. In figura, si è considerato una LUT che viene riferita all indice 25, considerando gli intervalli dei tre canali tra. Nella LUT, i canali RGB saranno grandi 1 byte l uno, ed i loro valori dipenderanno dal dispositivo che si utilizza. E possibile utilizzare anche lo scaling sugli istogrammi, considerando proporzioni degli intervalli più accurati, in base alla colorazione dell immagine e alle necessità di rappresentazione. 20

22 2) Median-cut algorithm: Si considera l insieme dei valori del canale R del pixel, - e ne si stila l istogramma. Di tale istogramma si considera la versione ordinata crescente dei valori e si prende quello al centro dell asse delle ascisse come valore di mediana. Ottenuta la mediana, la si individua nell istogramma (quello non ordinato) e la si considera come una soglia: si farà corrispondere un bit posto a 0 a tutti i valori più piccoli della soglia, e un bit posto a 1 a tutti i valori più grandi della soglia. Successivamente si trovano le mediane (con lo stesso metodo utilizzato per R) degli istogrammi dei canali G corrispondenti agli intervalli R-DX e R-SX e si fa corrispondere un bit posto a 0 ai valori sulla SX ed un bit posto a 1 ai valori sulla DX. Si ripete lo stesso procedimento anche per il canale B, ottenendo così uno schema a 3 bit. Ripetendo il procedimento nuovamente per R,G e B ed una terza volta per i soli R e G, si ottiene uno schema a 8 bit, che tramite la LUT stabilirà una corrispondenza con la rispettiva immagine a 24 bit/pixel. Con questo meccanismo, sebbene più pesante e complesso del precedente, si sceglie in base all importanza dei colori, ossia si concentrano i bit li dove la popolazione di colori (si evince dagli istogrammi) avrà dei valori poco variabili e dove quindi sarà necessaria una maggiore differenziazione per non perdere informazione nel processo di trasformazione. Ogni immagine ha un suo meccanismo di mediana diverso da un'altra. GIF (Graphics Interchange Format) È uno standard limitato alle sole 8 bit color images, per questo è molto usato per la grafica, il disegno ed il web. Un file GIF, oltre a supportare le LUT, può essere composto da più immagini (rasters: immagini a scacchiera), legate tra loro dal formato e da semplici caratteristiche di animazione. Esistono due formati di GIF: GIF87a, il primo ad essere standardizzato, e GIF89a che supporta semplici animazioni e controlli sulla trasparenza delle immagini. Il formato (che fornisce descrizioni complete sulla composizione del file) del GIF87, si presenta con una Signature di 6 byte, la quale ha il compito di introdurre la tipologia del file: questo è un file GIF. 21

23 Lo Sceen Descriptor è un insieme di 7 byte di flags, comuni a tutte le immagini presenti nella GIF, che vanno a descrivere le modalità di visualizzazione a schermo. Screen Width e Screen Height rappresentano gli indicatori di forma a video della mia immagine. Il bit m è alto se è presente una mappa dei colori globale, nullo altrimenti. I 3 bit cr (Color Resolution) indicano all hardware una determinata risoluzione di colori. I 3 bit del campo Pixel indica il numero di bit associati ad ogni pixel nel file immagine in generale. Il byte di Background indica il colore dello sfondo dell immagine (tutto ciò che non è immagine); se non specificato, il background sarà assegnato dalla mappa dei colori globale, altrimenti da quella di default. La Global Color Map viene definita per essere la mappa dei colori utilizzabile da ogni immagine, qualora queste non possiedano una Local Color Map, relativa invece alla singola immagine. Una Color Map indica i diversi colori che si presentano all interno della mappa dei valori dell immagine. La lunghezza della mappa è uguale a come descritto nello Screen Descriptor. Nel caso di animazioni, la GIF può essere composta da più immagini. Ogni immagine possiederà un Descrittore di Immagine, che indicherà le caratteristiche principali di ogni immagine e anche i relativi fps (frames per second). Le Bitmap (raw data) di ogni immagine saranno conservate nelle Raster Area (compresse con l algoritmo LZW). Ogni immagine possiederà quindi il proprio descrittore, la propria raster area e, se definita, la propria local color map. 22

24 JPEG (Joint Photographic Experts Group) È lo standard attualmente più famoso per la compressione di immagini. Il suo punto di forza è che sfrutta le proprietà di autocorrezione delle distorsioni della vista umana ed i suoi limiti. La compressione può essere vista come una funzione di trasformata che data un immagine ne restituisce un altra. Detta Y l immagine e C la funzione di compressione: ( ) ( ) ( ) Se anti trasformando l immagine compressa non ottengo l immagine di partenza, ho avuto della perdita di informazione (lossy): questo è il caso di JPEG. Il JPEG fornisce la possibilità all utente di definire il rapporto di compressione (Q): maggiore è la compressione, peggiore sarà la qualità dell immagine. Q sarà scelto in base alle necessità e al futuro impiego dell immagine. Per default. La compressione di JPEG è molto semplice: tutti i valori di intensità dei pixel, sono divisi per un numero intero grande, così che i valori piccoli sono portati a 0. Successivamente, si applica uno schema che raccoglie tutte le file di zeri adiacenti e li rappresenta con pochi bit. Data un immagine Y compressa per il valore di Q default, avrò che la dimensione di Y sarà il 5.6% di Y. La stessa immagine usata con GIF la ridurrebbe al 23%. PNG (Portable Network Graphics) Usato per il web, è in qualche modo un estensione di GIF: supporta ben 48 bit di color information, contro gli 8 del GIF. Può contenere altre informazioni riguardo le correzioni di gamma e la trasparenza dell alpha channel. TIFF (Tagged Image File Format) Formato classico delle scansioni, è un file immagine alla quale è associato un insieme di tags. Siccome tali file sono generati da hardware, per conservare una buona flessibilità di interpretazione del formato, si utilizzano tutti questi tags, tra cui il più importante è il format signifier, che fornisce informazioni sul formato del file. Il TIFF può rappresentare molti tipi di immagini (1-bit, 8-bit gray, 8-bit color, 24-bit RGB etc.) e, sebbene prima utilizzasse una tecnica di compressione lossless, ora adopera un algoritmo Jpeg ottimale. Nel caso in cui la tipologia di compressione sia differente, i tags forniranno informazioni sulla tecnica utilizzata. EXIF (Exchange Image Files) Formato immagine per le fotocamere digitali. Utilizza una tecnica di compressione JPEG baseline. Gestisce una varietà di tags molto maggiore di TIFF, siccome l acquisizione e la stampa 23

25 dell immagine è molto più complessa, siccome si deve tener conto dell enviroment e di tutti gli effetti d ombra. Addizionalmente, EXIF gestisce anche tags audio, associati ad eventuali video. PS (PostScript) and PDF (Portable Document Format) Tutti i formati di immagini finora trattati seguivano una rappresentazione grafica Raster: le immagini, rappresentate da pixels, si presentano come una grande matrice riempita di valori di intensità o di indici associati ad una LUT. Esiste anche un altra tipologia di rappresentazione: la grafica Vector: le figure sono rappresentate da una serie di funzioni geometriche, che ne modellano gli oggetti rappresentati mediante approssimazioni di tipo vettoriale. Ogni sezione dell immagine verrà riferita con una funzione, nella quale saranno espresse coordinate x e y, colore e la forma geometrica da disegnare. L immagine non si presenterà quindi come una bitmap, bensì come una serie di istruzioni che, configurandosi come delle funzioni geometriche, vanno a rappresentare il modo con cui l immagine deve essere costruita (tipo AUTOCAD). La grafica Vector diminuisce le dimensioni dei file, siccome con meno informazioni descrive tutte le componenti che devono essere disegnate nell immagine al fine di ricostruirla. La grafica Raster, invece, indica uno ad uno tutti i punti con tutte le informazioni. La grafica Vector è un ambiente interpretato: un esecutore deve leggere il file e disegnare l immagine. Una grafica del genere è ottimale per immagini di tipo geometrico e animazioni, siccome per le sue proprietà movimenti e squadrature sono più semplici ed immediate da rappresentare (la risoluzione delle immagini non è delle migliori: omogeneizzate). Per rappresentazioni ad alta risoluzione e precisione nel dettaglio, la grafica Vettoriale risulta essere molto più onerosa, siccome il numero di funzioni che servono a modellare in maniera perfetta tali immagini è spropositato, tanto che queste funzioni possono essere approssimate ad una rappresentazione per punti. Risulta chiaro che, in una situazione del genere, è preferibile di gran lunga la grafica Raster che evita la memorizzazione di tutte quelle funzioni. Infine, la grafica Vector permette uno scalamento senza perdita delle immagini, a differenza della pixelizzazione della grafica Raster. 24

26 Il formato PS utilizza una grafica di rappresentazione Vector per i documenti: anche il testo viene considerato come un agglomerato di vettori. Viene utilizzato soprattutto nell ambito di stampe e di fatti fornisce un metodo di stampa del file, piuttosto che una sua descrizione punto per punto. La versione EPS (Encapsulated PostScript) è utilizzata per fornire ulteriori informazioni nel caso si debba integrare un file PS in un altro documento. Il formato PS non definisce alcun tipo di compressione e poteva essere poco performante nell eventualità di rappresentazioni molto complesse o di grandi dimensioni, per questo motivo l Adobe Systems creò un nuovo standard derivante dal PS: il PDF, il quale forniva ben due tecniche di compressione: la JPEG per le immagini e la LZW per tutto ciò che non è immagine. Sia PDF che PS sono linguaggi di descrizione di documenti, quindi i file da essi derivanti non possono(dovrebbero) essere modificati. 25

27 CAPITOLO IV - COLORS 1. HUMAN VISION La luce è un onda elettromagnetica: a seconda della sua lunghezza d onda si ha una tipologia diversa di luce ed un colore. L essere umano può percepire luci solo all interno del campo delle lunghezze d onda visibili. La potenza di ogni frequenza delle onde visibili, viene rappresentata dalla SPD (Spectral Power Distribution), indicata con ( ), in presenza della sola luce solare. La visione umana funziona come una telecamera: la retina è il ricettore che permette di percepire la luce ed i colori attraverso due celle specializzate: i coni (cones) e i bastoncelli (rods). Le rods giocano un ruolo fondamentale per le immagini a livello di grigio, ossia quando la luminosità è molto bassa. I cones si occupano invece della ricezione dei colori, ossia quando vi è sufficiente luminosità: ogni cono produce un segnale che viene poi interpretato dal cervello, tale segnale è molto sensibile alla luce rossa, verde e blu. È molto probabile che il cervello utilizzi solo delle combinazioni (differenze) tra i tre colori, andandone così a generare degli altri: questi saranno utilizzati per riconoscere gli oggetti. La rappresentazione dei colori sui calcolatori è quindi diversa da come l occhio umano li percepisce in realtà. Si può quindi utilizzare la conoscenza della visualizzazione umana per creare metodologie di compressione sempre più furbe (JPEG) e di trasmissione adeguate. L occhio è sensibile alla luce che si stanzia a metà dello spettro del visibile. La sensibilità dei ricettori umani è in funzione della ricezione d onda, ossia di come l occhio è colpito e reagisce alle luci che percepisce: una luce forte cattura l attenzione a livello pre-attentivo. Il canale acromatico prodotto dai cones è proporzionale a: Tale relazione evidenzia la disparità di peso che ogni canale di colore ha nella percezione visiva: l occhio umano risulta essere maggiormente suscettibile ai canali R e G piuttosto che al B. Per quanto concerne le rods, il loro modello di percezione è rappresentato sulla curva di efficienza luminosa ( ), che indica la luminosità percepita (centrata più sulle frequenze del rosso). 26

28 Rispetto ad ogni canale di colore, la risposta dell occhio è proporzionale al numero di neuroni che si accendono in base al segnale di stimolo che si riceve. È possibile quindi scrivere i colori percepiti (spectral sensibility functions) come integrali tra la SPD per canale sul loro contributo del canale acromatico: ( ) ( ) ( ) ( ) ( ) ( ) Dove ( ) ( ) ( ) componenti della funzione vettoriale ( ), ( ) ( ) ( )- che è la funzione di percezione dei coni. La Formazione di un Immagine quindi è data da: una sorgente luminosa con relativa SPD ( ), un oggetto con proprietà riflessive ( )(funzione di riflettenza) e la funzione di filtraggio dei coni oculari ( ). Il prodotto tra riflessione e SPD ( ) ( ) ( ) viene detto Segnale di Colore. Posso quindi riscrivere le funzioni di sensibilità spettrale in funzione dell oggetto riflettente: ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) Il colore è una percezione soggettiva: ogni essere umano ha un contesto interpretativo che da un valore diverso al colore che recepisce. Di fatti non esistono colori uniformi: a partire dallo stimolo luminoso, si arriva a consegnare un valore semiotico al segnale ricevuto. Luce (stimolo fisico) Sensazione Percezione Concezione 27

29 La non uniformità del colore può rappresentare un problema: a causa di ombre, eccessiva luminosità o altri agenti di distorsione della forma d onda, il colore può essere interpretato in maniera ambigua. Tuttavia, grazie al fenomeno della costanza del colore, il cervello umano interpreta ciò che vede attraverso ciò che conosce, associando i colori ad un concetto familiare, come se fosse un etichetta: un pallone rosso posto in penombra, che appare con un colore diverso dal rosso puro, può essere riconosciuto come rosso anche se si percepisce una lunghezza d onda differente. 2. CARATTERISTICHE PERCETTIVE DEL COLORE Gli attributi dei colori sono essenziali per offrirne una caratterizzazione quanto più univoca possibile: nell effettuare una query su un contenuto multimediale, non si può soltanto indirizzare la richiesta con del testo, ma è necessario complicarla con delle informazioni relative a proprietà comparabili delle immagini. Oltre a motivi di caratterizzazione, lo studio dei colori e delle loro proprietà visive, può indicare metodologie di rappresentazioni delle immagini molto più efficaci: riuscire ad ottenere immagini che catturano l attenzione, visibili da tutti in modo chiaro, può esaltare molte delle caratteristiche di un sistema multimediale. La Tinta (Hue) rappresenta il colore puro, ossia il primo attributo del colore. La tinta identifica una lunghezza d onda dominante sulla parte visibile dello spettro elettromagnetico in cui è concentrata energia luminosa (viola, verde, rosso, giallo, etc.), differentemente dai colori Acromatici, che sono i colori dove non è concentrata la luce (bianco, nero e grigi). L occhio umano distingue 250 tinte diverse. La Saturazione (Saturation) indica quanto è puro il colore. Il colore è saturo quando è puro. Tale concetto è legato alla presenza di radiazioni di lunghezza d onda diverse da quelle del colore puro, dovute a colori secondari e/o a presenze di bianchi (rosso/rosa, blu/azzurro). La Lunimosità (Lightness), o chiarezza, esprime la luminosità che il colore riesce ad irradiare rispetto allo sfondo o altri oggetti. È una caratteristica relativa, da non confondere con la brillanza. 28

30 La percezione della chiarezza dipende dalla posizione dei colori nel background: le tinte possono apparire più luminose se lo sfondo è nero oppure più scure se lo sfondo è bianco. Quindi la variazione del Contrasto, genera una differente percezione della tinta dei colori. L occhio umano è maggiormente sensibile ad un contrasto elevato. La Brillanza (Brightness) esprime una proprietà assoluta di un colore: mentre la luminosità deriva dalla riflessione in ambito relativo, la brillanza indica la quantità di luce che il colore sembra emettere ed è una proprietà intrinseca all oggetto riflettente. Il Croma (Chroma) esprime la quantità relativa della componente cromatica di un area rispetto a quella bianca (pienezza), in rapporto alla brillantezza di un oggetto ugualmente illuminato che appare bianco. La saturazione, invece, esprime la quantità relativa della componente cromatica di un area rispetto a quella bianca, in rapporto alla brillantezza del colore dell area stessa. Il Gamma rappresenta il rapporto tra luminosità e tensione che si ha nei dispositivi di displaying: i monitor moderni hanno tutti un gamma prefissato, che ne determina la luminosità totale della rappresentazione, senza cambiare nulla per i valori RGB dei pixel. Bisogna tener conto del gamma quando si vanno a rappresentare immagini su piattaforme diverse: creare un immagine su una piattaforma con gamma di default 2.0 e visualizzarla su di una con una graduazione di 1.5, risulta in una visualizzazione sbiadita e poco accurata. Per tale motivo si ricorre alla Gamma Correction, che permette di codificare e decodificare la luminosità nelle immagini (e anche video): Tale relazione rappresenta la legge in potenza della correzione di gamma. Nel caso comune, si ha che A=1. Pertanto, la relazione tra la tensione in uscita (quella visualizzata) e quella di ingresso (quella ricevuta) sarà modellata esclusivamente dall esponente. La gamma è essenziale per l occhio umano, siccome può cambiare drasticamente quelle che sono le caratteristiche percettive dell immagine. Per gamma di basso valore, si hanno immagini molto chiare, per gamma di alto valore, si hanno immagini molto scure. La Color Wheel è una comune rappresentazione di quelle che possono essere tutte le combinazioni di colori possibili. La circonferenza del disco rappresenta tutti quelli che sono i colori puri. Se si traccia una corda, i punti congiunti da questa corrisponderanno a quei colori puri le quali combinazioni cromatiche sono tutte rappresentate dai colori sulla retta tracciata. Per ottenere i colori si può adoperare il Modello Sottrattivo (anche usato dagli umani) o il Modello Additivo, rispettivamente metodi con i quali i colori si ottengono per differenze cromatiche o sovrapposizioni. 29

31 3. STANDARDIZZAZIONE DELLA CROMATICITA Partendo dalle teorie sulla sensibilità oculare, che hanno portato alla stesura delle spectral sensitivity functions, studi ed esperimenti psicologici hanno dimostrato come il cervello umano compone i colori: preso un colore qualsiasi come campione, tramite il Colorimetro si riusciva sempre a tarare le quantità di colori RGB per formare un colore che risultasse simile al campione. Per questo motivo i colori RGB sono anche detti Colori Primari. Tali colori sono stati individuati sullo spettro visibile e ne sono state formalizzate delle espressioni. Le Color-Matching Curves sono le rappresentazioni delle curve sullo spettro, centrate dove i colori sono puri. I colori rappresentati dal lobo di valori negativi del diagramma sono dipendenti in maniera non lineare dalla combinazione dei colori primari. Per questo motivo il CIE (Commission Internationel de l Eclairage) ha emanato delle versioni standardizzate delle Color-Matching Curves, 30

32 assicurandosi che tutte siano formate solo da valori positivi e che quindi tutti i colori siano rappresentabili da una loro combinazione lineare. Le funzioni standardizzate si ricavano da quelle normali tramite una relazione di tipo matriciale 3x3, che assicura inoltre che la funzione ( ) sia uguale alla curva di efficienza luminosa ( ). Con queste considerazioni, è possibile scrivere quelle che sono le spectral sensibility functions per i nuovi tre canali: ( ) ( ) ( ) ( ) ( ) ( ) Dove la Y rappresenta la luminosità. Tali informazioni, a causa della trasformazione, sono su tre dimensioni, per questo motivo devo normalizzarle, per fare in modo che una sia combinazione lineare delle altre: { Con queste considerazioni si può quindi rappresentare il Color Space Chromaticity Diagram: 31

33 Tale diagramma della cromaticità rappresenta con precisione tutti quelli che sono i colori rappresentabili. Il colore Blu è ottenuto come combinazione di R e G in maniera sottrattiva, ossia dalla loro quantità di luce. Di tutti questi colori se ne possono definire dei sottoinsiemi (Gamut) che si configurano come la cromaticità totale di eventuali applicazioni e non solo monitors (Adobe RGB, srgb, etc.). Modello RGB (Red, Green, Blue). È il modello a colori additivi specifico per monitor e sistemi di visualizzazione semplici. Il suo Color Space è rappresentato da un cubo, il cui lato è uguale alla cardinalità di uno dei tre canali che utilizza. Nel caso di rappresentazioni a 8 bit/pixel, si avrà un lato di 256 livelli. Le coordinate sono di tipo cartesiane, posso quindi posizionare il punto di Nero (0,0,0) e Bianco (1,1,1). Se si traccia la diagonale congiungente questi due punti si ottengono tutte le graduazioni di grigi. Agli angoli avrò due terne di colori: RGB e CMY (Cyan, Magenta and Yellow). Per trasformare RGB in XYZ, utilizzo una trasformata matriciale 3x3. Dati XYZ i valori da ottenere, 32

34 [ ] [ ] Per lo standard SMPTE (Society of Motion Picture and Television Engineers): [ ] ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) Modello HSI (Hue, Saturation, Intensity). È un modello a colori additivi non percettivo, ossia non comprensibile a pieno dalla vista umana, differentemente dal RGB. Utilizza tre misure per descrivere i colori: Hue: colore puro. Saturation: indica quanto un colore è diluito con la luce bianca. Dato un colore, più è prossimo al bianco, maggiore sarà la sua saturazione. Se invece è più prossimo al nero, allora maggiore sarà la sua purezza. Il bianco è la presenza di tutti i colori, il nero è l assenza di tutti i colori, quindi anche aggiungendolo ad un colore, non ne intacca la tinta. Intensity: nozione legata ad una caratteristica non cromatica: si considera la luminosità dell immagine stessa, come per le immagini di soli grigi. Non si utilizza la Brightness siccome può risultare ambigua. il Color Space è rappresentato da un poligono tridimensionale. Dato di un generico colore: punto di rappresentazione - L intensità è letta a seconda dell altezza di. - La tinta è letta dall angolo che forma con il punto di riferimento sulla circonferenza (tipicamente il rosso) rispetto al centro (tutti i punti sono complanari). - La saturazione è la distanza tra e il centro (i due punti sono complanari). Le basi possono essere di vare tipologie, ma per comodità di rappresentazione, è utilizzata una rappresentazione conica. 33

35 Per trasformare dal modello RGB al HSI, dato un colore espresso in termini di RGB (eventualmente anche normalizzato in rgb), tramite coordinate polari, si avrà che:,( ) ( )-, (,( ) ( )( )- ), ( )- ( ) Analogamente, dato un colore espresso in termini di HSI, il corrispondente in RGB sarà caratterizzato da: ( ) ( ) { { ( ) [ ( ) ] ( ) ( ) ( ) ( ) [ ( ) ] ( ) 34

36 ( ) { ( ) ( ) ( ) [ ( ) ] Siccome il modello HSI non è percettivo, la rappresentazione dei colori viene vista dall essere umana come soli livelli di grigio. Tuttavia tale rappresentazione è legata in maniera molto stretta alla forma ed alla composizione cromatica dell oggetto: la caratteristica principale è l intensità siccome H ed S non sono molto popolate (l intensità è molto più complessa, quindi più dettagliata). Tale modello è molto utilizzato per riconoscere caratteristiche delle immagini e per offrirne quante più informazioni possibili. Per comprendere la struttura di un immagine, si cerca sempre di individuare tre elementi fondamentali: - Il Colore - La Forma (Shape), che identifica univocamente un oggetto. - La Tessitura (Texture), ossia la trama dei colori. Su tali caratteristiche verteranno quindi le query. Il modello HSI offre ottime rappresentazioni di tutti e tre questi parametri, inoltre offre una rappresentazione molto più compatta del RGB siccome due dei tre canali sono poco popolati. Per tali motivi molto spesso si adopera la trasformazione in HSI e poi l anti trasformazione. RGB HSI e manipolazione RGB 35

37 Modello L*a*b (CIELAB). È un modello a colori additivi che si basa sul concetto di contrasto. La Legge di Weber dice: le differenze e variazioni sono percepite dall uomo in proporzione alla quantità. Ad esempio, se mentre si mantiene un vassoio viene posto su di questo un recipiente pieno di acqua, si avrà una percezione molto grande della differenza di peso tra gli oggetti. Nel caso duale, se mentre si mantiene il recipiente pieno d acqua viene posto su di questo il vassoio, si percepirà una differenza di peso minore. Analogamente accade per i colori: l occhio umano è molto sensibile ai contrasti di colori e per la legge di Weber, questi si trovano dove le intensità di colore sono basse, quindi per colori scuri. Un esperimento per dimostrare tale comportamento è quello dell Hi-track: due telecamere montate su di un caschetto, riprendono gli occhi durante l osservazione di un oggetto, monitorando il movimento delle pupille. Si sono riscontrati movimenti della pupilla verso zone dove l oggetto presentava maggior contrasto (reazione pre-attentiva). il Color Space è rappresentato da una sezione di cilindro. I parametri caratterizzanti questo modello sono L, relativa alla luminosità e relativi alle combinazioni di colori: Per trasformare dal modello XYZ al L*a*b, si utilizzano coordinate cilindriche:. /, *. /. / +, *. /. / + Dove sono i valori del modello XYZ nel punto bianco puro. Posso definire inoltre: ( ) ( ) ( ) ( ) ( ) ( ) 36

38 Modello CMY (Cyan, Magenta, Yellow). È un modello a colori sottrattivi, dove i colori primari non sono più intesi come R,G e B, ma come Guardando al Color Space del Modello RGB, si riconoscono quindi come colori primari gli antipodi di RGB, ossia CMY. Tale modello è quello utilizzato per le stampanti. Queste generano colore mediante la sottrazione di colore dalle immagini: il Y, ad esempio, sottrae la componente B dall illuminazione del bianco puro e riflette il R e G, ottenendo quindi proprio Y. Nel modello CMY il colore nero rappresenta la sottrazione totale dei colori (opposto del RGB), e quindi corrisponde alla stampa di tutti. Per evitare tale spreco di colori, le nuove stampanti utilizzano il modello CMYK, dove K sta per il colore nero da solo: se si deve stampare il colore nero, piuttosto che usare tre volte la quantità di inchiostro di tutti i colori, si utilizza direttamente il nero. Per trasformare dal modello RGB a CMY, basta semplicemente usare una trasformata complementare: [ ] [ ] [ ] Analogamente per trasformare da CMY a RGB: [ ] [ ] [ ] Infine nel caso di una trasformazione tra RGB e CMYK, basta sostituire i parametri di CMYK a quelli di CMY: [ ] [ ] * + 37

39 CAPITOLO V IMAGE PROCESSING 1. FONDAMENTI DI IMAGE PROCESSING Come detto in precedenza, un immagine può essere considerata come una funzione del tipo: ( ) ( ) Realisticamente tale funzione viene limitata in uno spazio finito, definito dall immagine di dimensione rettangolare:, -, -, - Un immagine a colori, invece, può essere vista come una funzione vettoriale, dove ogni canale cromatico è rappresentato da una funzione relativa alla propria intensità: ( ) * ( ) ( ) + ( ) Nell ambito dell Image Processing, l immagine è considerata una struttura dati (mappa di valori) alla quale è possibile accedere e sulla quale è possibile effettuare elaborazioni: a seconda dello scopo e dell uso dell immagine, si pongono in risalto degli aspetti piuttosto che degli altri, andando ad evidenziare quelle che sono delle caratteristiche proprie dell immagine. L Image Enhancement (miglioramento) è una tecnica o una serie di tecniche che permettono l elaborazione dell immagine al fine di migliorarla per una specifica applicazione. Le tecniche di enhancement sono di fatti Problem-Oriented e si differenziano in due categorie: - Metodi di elaborazione nel Dominio Spaziale, dove si effettuano manipolazioni dai pixel ad altri pixel, quindi rimanendo nello stesso dominio dell immagine. - Metodi di elaborazione nel Dominio Frequenziale, dove si utilizzano trasformate per manipolare le caratteristiche dell immagine (come in TdS). Migliorare un immagine significa renderla più vicina possibile a quelle che sono le richieste e/o necessità in chiave del suo utilizzo. Se un immagine è processata per un interpretazione visuale, sarà proprio l uomo il giudice del miglioramento effettivo dell immagine, e si cercherà di effettuare elaborazioni che possano rendere quanto più piacevole e comprensibile possibile l immagine all occhio umano. Il concetto di buono è legato all interpretazione visiva che si ha di un immagine, quindi una concezione fortemente soggettiva. Nel caso in cui l immagine debba essere utilizzata da applicazioni che non richiedono la presenza umana, la bontà dell immagine sarà pesata a seconda dell utilizzo che tali applicazioni ne faranno. 38

40 Data un immagine di rappresentazione scadente ma dal buon contenuto informativo, tramite delle elaborazioni (di seguito trattate) è possibile riuscire a rappresentare con chiarezza l immagine senza perderne il contenuto. 2. METODI DI ELABORAZIONE NEL DOMINIO SPAZIALE Tali metodi agiscono direttamente sui pixels, tramite delle trasformazioni del tipo: ( ), ( )- Dove ( ) è l immagine di Input, ( ) è quella processata e, - è un operatore che agisce sul vicinato(neighborhood) di ( ). Il vicinato di un pixel è rappresentato da un quadrato che ha come centro il pixel e che comprende tutti quelli vicini a seconda delle sue dimensioni. Nel momento in cui si fissa un punto ( ) e lo si processa con l operatore, il risultato in ( ) sarà relazionato ai valori presenti nello stesso punto ( ) e a quelli del suo vicinato. Il processo utilizza solo i valori al più compresi nel vicinato e non altri. Le elaborazioni possono quindi utilizzare il singolo punto o anche il suo vicinato. Si parlerà rispettivamente di Point Processing e Neighborhood Processing (con filtri). Quest ultimo è molto efficace contro il rumore puntiforme come ad esempio l effetto Salt and Pepper: di fatti il Point Processing tenderebbe a migliorare anche l errore (i puntini neri) mentre l utilizzo del vicinato andrebbe in qualche modo a livellarlo o addirittura eliminarlo, siccome questo si presenterebbe come un punto nero(punto (x,y)) al centro di punti bianchi (vicini). 3. ELABORAZIONE PUNTO-PUNTO (POINT PROCESSING) Si tratta del caso in cui il neighborhood è di dimensione 1x1: ( ) dipende solo dal valore di ( ) in ( ) e, - diventa una funzione di trasformazione dei grigi, ossia una funzione che dato un livello di grigio in ingresso, ne restituisce un altro di diversa intensità:, -, - Con livello di grigio di ( ) e livello di grigio di ( ), entrambe in ( ). A seconda della forma di, -, si ottengono risultati di processing differenti. 39

41 Trasformazioni Base Il Negativo è una trasformazione che dato un certo livello di grigio, ne si fa corrispondere l opposto. L immagine processata si ottiene tramite la relazione: Dove si ricorda che ( ) sono i livelli di grigio totali. Con un immagine del genere si possono evidenziare delle caratteristiche particolari: in ambito biomedicale viene utilizzata per evidenziare dei particolari elementi all interno di radiografie (come ad esempio una mammografia). La Logaritmica processa le immagini secondo la relazione: ( ) Tale trasformazione è detta di espansione degli scuri, siccome data la sua forma di, - tende a comprimere i chiari (prossimi ad L-1) e ad espandere, offrendo un range di rappresentazione più grande, quelli che sono i grigi scuri (prossimi a 0). 40

42 La Power-Law (legge di Potenza) segue la relazione: A seconda del valore di gamma si ottengono delle curve di rappresentazione di funzione di trasformazione è utilizzata per il gamma correction., - diverse. Tale Increase Brightness Considerando l immagine di partenza ( ) e quella processata ( ), si ha: ( ) { ( ) ( ) ( ) con * + Tale trasformazione ha il compito di incrementare la luminosità dell immagine. La funzione di trasformazione in questo caso si presenta come una retta rialzata di un valore g che andrà a consegnare dei valori di intensità più chiari a grigi scuri, con un esatto salto di g livelli. Ad un certo punto (esattamente livelli) si ha un tratto costante, detto di saturazione, dove ad ogni grigio chiaro dell immagine di partenza si fa corrispondere la massima luminosità. Se l immagine è a colori, si effettua la stessa operazione per ogni canale. Con l aggiunta della costante g ai livelli gli istogrammi cambiano: dato che il grigio più scuro sarà proprio rappresentato dal valore g, nell istogramma si avrà che prima di tale valore non vi saranno occorrenze, mentre per il valore 255 risulterà un picco per effetto della saturazione. 41

43 Decrease Brightness E il procedimento duale a quello precedente: si va a sottrarre g dai valori di grigi dell immagine ( ) così da ottenerne una più scura. ( ) { ( ) ( ) ( ) con * + L istogramma avrà il picco sempre in corrispondenza della saturazione, questa volta posizionata sul valore 0. 42

44 Increase Contrast Il contrasto è il rapporto tra la luminosità dell oggetto e quello del background. /. Il suo aumento corrisponde a risaltare l oggetto rispetto il background. Il massimo contrasto è quello che si riscontra tra il nero ed il bianco, dove la distanza in termini di livelli di grigio è massima. Migliorare il contrasto significa evidenziare i dettagli. Dato: Allora risulta: ( ), ( ) - ( ) { ( ) ( ) ( ) ( ) con * + Per migliorare il contrasto dell immagine si è ristretto il campo di variazione dei livelli attraverso due zone di saturazione. Tale procedura permette di migliorare il rapporto di contrasto: Il coefficiente è legato alla pendenza della retta; I valori minori a 127, gli scuri, sono resi ancora più scuri, mentre i valori superiori a 127, i chiari, sono resi ancora più chiari. L aumento di contrasto è un elaborazione non biunivoca, siccome a causa delle due zone di saturazione, è possibile che compiano delle omogeneizzazioni dei colori e quindi una perdita dei dettagli. Per evitare eventuali omogeneizzazioni globali e involontarie, si possono riconoscere gli oggetti dallo sfondo in maniera locale e riuscire, applicando localmente questa elaborazione, ad ottenere buoni miglioramenti di contrasto senza perdite. Per quanto riguarda gli istogrammi, si hanno picchi in corrispondenza dei valori 0 e 255, in corrispondenza delle zone di saturazione. 43

45 Decrease Contrast Caso duale al precedente: qui si cerca di minimizzare il rapporto di contrasto, utilizzando un attenuazione della pendenza della retta della funzione di trasformazione: ( ), ( ) - con * + Data l assenza di zone di saturazione, negli istogrammi non vi saranno picchi. Tuttavia, a causa della forma della funzione, vi sono dei valori limite prima o dopo dei quali non vi saranno occorrenze. Tale trasformazione, a differenza della precedente è biunivoca. Contrast Stretching Per evitare i problemi dovuti alle zone di saturazione nelle funzioni di contrasto, si possono utilizzare delle forme più affusolate, che riescono a trattare anche i valori altrimenti omogeneizzati, mantenendo comunque l efficacia del contrasto buona. Queste tipologie di forme della funzione di elaborazione sono spesso utilizzate in applicazioni General Purpose, ossia senza particolari domini applicativi. Come precedentemente si è detto, restringendo il range dei valori si migliora il contrasto (Contrast Stretching). Se non si conoscono a priori i livelli di saturazione, è possibile ricavarli automaticamente tramite: 44

46 , ( )-, ( )-, ( )-, ( )- E quindi la funzione di elaborazione è: ( ) ( ) ( ) E evidente che con tali considerazioni, si migliora tantissimo l efficacia del contrasto: l istogramma evidenzia l assenza di picchi nei valori estremi (non c è saturazione) e l assenza di zone ad occorrenza nulla (sono coperti tutti i valori del codominio). Con un meccanismo di tipo adattativo si è riuscito ad evitare la perdita del miglioramento di contrasto dei dettagli. In ogni caso, con la modifica del contrasto di un immagine, il tentativo di riportarla allo stato normale implica sempre qualche perdita di dettagli e di contenuti informativi. 45

47 Increased/Decreased Gamma Le trasformazioni sul gamma seguono semplicemente una forma di tipo esponenziale: ( ) * ( ) + A seconda del valore di gamma, si avrà una diminuzione o un aumento della tonalità dell immagine. 46

48 4. HISTOGRAM PROCESSING Sono tecniche più sofisticate delle elaborazioni punto-punto che migliorano le immagini in base al loro istogramma. Il risultato di un elaborazione di istogramma è un immagine con un nuovo istogramma simile a quello dell immagine di partenza. L istogramma di un immagine digitale con una scala di grigi di, - è data da:, - Con k-simo livello di grigio e è il numero di pixels nell immagine con valore di intensità. Siccome l istogramma fornisce un informazione probabilistica, è pratica comune andare a normalizzarlo tra 0 e 1, dividendo ogni valore per il numero di pixels nell immagine :, - Quindi, - fornisce una stima della probabilita di occorrenza del livello di grigio. Ovviamente la somma di tutti i k-simi valori sarà uguale ad 1. Considerando ad esempio una scala di 16 grigi, tramite l elaborazione dell istogramma si ottengono 16 diverse lastre dell immagine popolate dalle occorrenze relative ad un singolo livello di grigio, che possono quindi evidenziare dei particolari altrimenti non chiari, andando a caratterizzare più dettagliatamente l immagine. Per quanto concerne le immagini a colori, oltre ai tre canali RGB, è possibile considerare altri due istogrammi relativi alla Luminosità ( ) e al Valore ( ) dell immagine. ( ), ( ) ( ) ( )- ( ) ( ) ( ) ( ) 47

49 L equalizzazione dell Istogramma è un processo che porta ad una estensione delle differenze cromatiche di un istogramma: nel caso in cui vi è una forte concentrazione di occorrenze in uno stretto intervallo di livelli, tramite l equalizzazione si va ad estendere quell intervallo, rendendone più chiara la lettura. Un effetto legato a tale estensione è la diminuzione di contrasto e quindi ad una eventuale perdita di dettagli dovuta alla fusione di alcuni oggetti con lo sfondo. L analisi degli istogrammi delle immagini è fondamentale per il Forensic, ossia lo studio delle immagini per scopo legale. Di fatti lo studio degli istogrammi decreta se l immagine è stata contraffatta o meno (a seconda che vi siano picchi o sezioni si valori ad occorrenza 0) ed evidenzia dettagli altrimenti nascosti di un immagine. 5. SPATIAL FILTERING La Computer Vision è molto vicina alla videosorveglianza: macchine che interpretano automaticamente degli atteggiamenti umani con criterio umano. Il riconoscimento delle azioni significa elaborare le immagini: le ricerche (detection) delle immagini sono fatte a basso livello (database) mentre la logica di riscontro (analysis) è fatta ad alto livello. Per riconoscere a pieno determinati oggetti all interno di un immagine, occorrono elaborazioni più complesse di quelle finora trattate che rendono necessario l utilizzo di filtri. In particolare, il filtraggio spaziale è un filtraggio che viene applicato direttamente nel dominio dei pixels al fine di ottenere nuovi pixels. Si definisce il concetto di Maschera, ossia la struttura del filtro vero e proprio che viene applicato lungo tutta l immagine. La trasformazione avviene seguendo tutte le risposte di ogni pixel dell immagine sul quale viene applicato il filtro. La maschera è composta da valori numerici che evidenziano componenti ad una determinata frequenza dell immagine. Il filtro quindi, tiene conto non solo del punto su cui è applicata ma anche dei suoi vicini (neighborhood processing). A seconda dei valori dei coefficienti ( ) della maschera, è possibile ottenere dei filtraggi differenti: si può far pesare di più un elemento del vicinato rispetto ad un altro, giocando sulla caratterizzazione dell immagine così filtrata. 48

50 Nel mondo delle immagini le frequenze sono di tipo spaziale, siccome sono relative al modo in cui i pixel sono dislocati nello spazio: Alta Frequenza Spaziale: si tratta di punti dove è presente una maggiore discontinuità (dettagli dell immagine). Bassa Frequenza Spaziale: si tratta di punti dove l immagine è più omogenea, ossia dove non vi sono discontinuità. Il filtraggio consiste nella convoluzione tra la maschera e i pixel dell immagine. Supponendo una maschera 3x3, si ha che ogni pixel viene rappresentato come la convoluzione tra il suo 3x3 neighborhood e i coefficienti della maschera. Indicando con ( ) i coefficienti della maschera e con ( ) i valori (livelli di grigio) dei pixels, si ha che per un generico pixel ( ) vale: ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) Ossia la somma dei prodotti tra i valori dei vicini del pixel (sul quale si è effettuato il filtraggio) compresi nella maschera e i coefficienti della maschera stessa. Utilizzando una forma generale, l azione di filtraggio di una generica maschera di dimensioni è espressa da x ( ) ( ) ( ) A seconda che valga o meno la sovrapposizione degli effetti, i filtri si dividono in Filtri Lineari e Non Lineari. Un discorso a parte meritano i pixel di bordo(edge pixels) immagine. Per questi pixel il vicinato non è del tutto popolato e per questo motivo esistono degli approcci per la loro trattazione: 49

51 - Omissione dei Pixel Mancanti: funziona solo per alcuni filtri e può aggiungere del codice che rallenta inevitabilmente il processo. - Riempire i Pixel Mancanti: tipicamente vi si assegnano valori di Nero o Bianco. - Replicazione dei pixel di Bordo: si considera un altra serie di pixel adiacente e identica a quella del bordo considerato. - Troncare l immagine: gli edge pixels sono considerati non filtrabili. Viene spesso utilizzata per alleggerire il processo senza perdite, siccome è raro trovare un immagine con contenuto informativo utile proprio sui bordi. - Pensare alla matrice come un toro circolare: considerando che un bordo sia connesso a quello suo opposto nell immagine (come nelle mappe di Karnaugh). 6. SMOOTHING SPATIAL FILTERS Effettuano un addolcimento dell immagine: il Blurring consiste nel rimuovere dettagli dall immagine nella fase di pre-processing, una sorta di omogeneizzazione che porta alla riduzione degli effetti del rumore sull immagine (quindi di tipo passa-basso). Quando ad esempio si ha una Texture (tessitura) molto complessa con dettagli inutili, il blurring li elimina spalmandoli sull immagine. Esistono due tipi di filtri di smoothing: 1) Smoothing Linear Filters (Filtri Medi) 2) Order-Statistics Filters (Filtri Mediani) L operazione di convoluzione in ambo i casi è sempre mirata ad essere più rapida possibile. I filtri lineari sono più rapidi di quelli statistici siccome sono richiesti meno calcoli, ma sono meno precisi e lavorano peggio. Un metodo per velocizzare le capacità di calcolo degli elaboratori è lo SIMD (Single Instruction per Multiple Data): si adoperano N processori con N maschere uguali che filtrano l immagine divisa in N parti. Parallelismo che rende istantanea l elaborazione. Filtro Medio (Averaging Filter) E un filtro lineare non statistico e general purpose. L idea è quella di trasformare ogni pixel in modo da assegnargli un valore pari alla media della sua convoluzione con la maschera. Considerando una maschera di dimensioni x, si ha che: 50

52 ( ) ( ) ( ) ( ) L operazione quindi dipende dai valori che sono assegnati ai coefficienti della maschera. Una Standard Average consiste nell assegnare il valore 1 a tutti i coefficienti della maschera: procedimento semplice ma poco dettagliato. Una Weighted Average, invece, consiste nello assegnare valori differenti ai coefficienti, andandone a stimare un peso differente sui contributi della convoluzione: questa procedura risulta essere più precisa e dettagliata. In ambo i casi, non possono esservi pixel a valore nullo. Il Bluring dipende dalla dimensione della maschera: più la maschera è grande, maggiore sarà lo smoothing dell immagine. Una maschera 3x3 conferirà un bluring più dettagliato di una 7x7. La media sulla convoluzione va a ridurre l effetto del rumore sull immagine: nel caso di errore Salt and Pepper, si ha che i valori ad altissimo livello di grigio (causato dal rumore) sono attenuati dagli altri valori dei pixels non affetti da rumore. Filtro Mediano (Median Filter) E un filtro non lineare statistico. L idea è quella di considerare tutti i valori dei pixel coperti dalla maschera, ordinarli e considerare la loro mediana come valore nuovo da assegnare al pixel filtrato. Questa tecnica è molto efficace contro gli effetti dovuti al rumore. L effetto Salt and Pepper può essere quasi completamente rimosso (il filtro Medio, invece, lo spalmava 51

53 sull immagine) grazie allo sfruttamento della mediana: i valori fuori range (spikes) dei vicini corrotti da rumore, non sono considerati come contributi del nuovo valore da assegnare al pixel filtrato. Il filtro Mediano applica uno smoothering dell immagine che conserva i dettagli utili ed elimina quelli dovuti al rumore, differentemente dal filtro Medio che appiattisce tutto in maniera molto più aggressiva. Un difetto del filtro consiste nella complessità delle operazioni di ordinamento, che per immagini molto grandi risultano essere molto onerose e pesanti. Nell esempio in figura, il filtro è stato utilizzato per il pixel a valore 27. Supponendo una struttura standard dei valori del filtro (tutti con coefficienti unitari), secondo la tecnica della mediana, il nuovo valore sarà 21. Da notare è il valore 500 del vicino corrotto da rumore: questo non viene considerato nell assegnazione del 21. Nel caso di filtro Medio, invece, utilizzando la stessa maschera standard, la considerazione del 500 avrebbe fatto scegliere 72 come nuovo valore del pixel (molto meno accurato): ( ) ( ) ( ) Il filtro Mediano risulta quindi essere migliore ma più pesante del filtro Medio. Il filtro Medio tende a creare nuovi livelli di grigio prima non esistenti e va ad attenuare non solo il rumore, ma anche tutte le alte frequenze spaziali, causando così sfocatura, perdita di dettaglio utile e smussatura dei fronti di salita (intesi come differenze tra i livelli di grigi) nelle transazioni chiaro/scuro. Il filtro Mediano, invece, non deteriora i fronti di salita, ma elimina i picchi con base sufficientemente piccola rispetto l ampiezza della maschera. 7. UTILIZZI DELLO SMOOTHING Il cervello umano applica un azione di media ad ogni immagine che viene osservata, facendo concentrare l essere umano su quelli che sono gli aspetti più corposi e densi dell immagine (se si prova a guardare la figura successiva con gli occhi socchiusi, si nota come almeno cinque delle sei 52

54 immagini risultino simili se non uguali). Lo smoothing procede nella stessa direzione, andando a addolcire o eliminare i dettagli più evidenti e lasciando le zone più omogenee e dense. Un filtraggio in serie di un immagine procede allo stesso modo, andando via via a diminuire la risoluzione dell immagine. Si parla infatti di Multi- Resolution, ossia di un immagine disponibile in versioni di diverse risoluzioni. A valle di tale filtraggio si ottiene una cosiddetta macchia (Blob), che consiste nella versione dell immagine a minima risoluzione che evidenzia le zone con il contenuto informativo più denso e omogeneo. Nonostante la sua forma, tale versione a minima risoluzione dell immagine può essere adoperata per una buona caratterizzazione della stessa. Di fatti esistono analisi di immagini a multi risoluzione, che prevedono l utilizzo della Trasformata Wavelet (sulla quale si basa JPEG2000). Su queste analisi si basa la Trasmissione Multi risoluzione Progressiva: si effettua una trasmissione sequenziale dell immagine. Partendo dalla versione a minima risoluzione, che è per le sue caratteristiche di omogeneità la più adatta ad una forte compressione, verranno successivamente inviati sempre più dettagli, aumentando così anche la risoluzione, fino ad ottenere l immagina di partenza. Questa tecnica permette non solo di ottimizzare i tempi di trasmissione di immagini di enormi dimensioni, ma anche di limitare il traffico qualora sia sufficiente una versione a minore risoluzione di un immagine. Si è visto che lo smoothering lascia solo il contenuto più denso e omogeneo di un immagine. Per evidenziarne l aspetto e delimitarne in maniera precisa gli oggetti rimanenti è possibile applicare la tecnica del Theresholding(soglia): stabilita la mediana della smoothed image si assegna a tutti i valori ad essa inferiori il colore Nero, mentre a quelli superiori il colore Bianco. Il procedimento è utile per implementare una primitiva Detection sull immagine. Il theresholding è il più semplice meccanismo di image segmentation, che trasforma un immagine qualsiasi in un immagine binaria. Un meccanismo più complesso per la decisione della soglia consiste nell utilizzo dell Istogramma Bimodale dell immagine. Per ottenere un istogramma bimodale, devono essere presenti due valori di picco con popolazione molto alta, ed una valle tra di essi. Il punto più basso della valle, rappresenterà il valore di soglia. 53

55 8. SHARPENING SPATIAL FILTERS Sono filtri di sharpening che evidenziano i dettagli: sono utilizzati per incrementare la nitidezza delle immagini aumentandone il contrasto locale curandone l effetto blurred. I dettagli in un immagine sono rappresentati da salti di discontinuità tra i livelli dei grigi dei pixels. Un salto di discontinuità tra grigi (compreso il rumore) è anche chiamato Edge che rappresenta una particolarità dell immagine: il bordo di un oggetto è anch esso un edge, ma un edge non è sempre un contorno. I filtri utilizzati per l edge detection sono i filtri derivativi (quindi di tipo passa-alto), che agiscono sulla differenza spaziale tra i pixel. L ampiezza della risposta di un operatore differenziale è proporzionale al grado di discontinuità dell immagine nel punto in cui l operatore è applicato, per tale motivo risulta necessaria un approssimazione del concetto di derivata discreta di primo e secondo ordine. La derivata prima è definita come: - Nulla per tratti costanti (per X se ( ) ( ), per Y se ( ) ( )). - Non nulla per inizio e fine di una rampa o gradino. - Non nulla lungo una rampa. La derivata seconda è invece: - Nulla per aree costanti. (per X se ( ) ( ) ( ), per Y se ( ) ( ) ( )). 54

56 - Non nulla per inizio e fine di una rampo o un gradino. - Nulla lungo rampe a coefficiente angolare costante. Nella figura qui di seguito si è analizzata un immagine a 3-Bit di soli grigi e si mette in evidenza quelle che sono le caratteristiche delle derivate discrete rispetto il solo asse X. Filtro Laplaciano (Derivativo 2 Ordine) E il più importante nell ambito dell image processing. Il filtro Laplaciano è isotropico ossia mantiene lo stesso comportamento indipendentemente dagli ingressi (quindi la sua risposta è indipendente alla direzione della discontinuità dell immagine), e ovviamente anche derivativo. Nella sua versione bidimensionale, il Laplaciano si presenta come una combinazione lineare degli elementi delle derivate. Definito come: ( ) ( ) ( ) ( ) ( ) In questa forma il filtro riesce a pesare solo parte del suo vicinato. Per ottenere un Laplaciano completo su tutte le direzioni, è necessario considerare un secondo filtro, agente sui vicini in diagonale (quelli non compresi dal primo). La loro somma sarà il filtro completo. 55

57 I coefficienti negativi della maschera, dovuti all utilizzo delle derivate discrete che implementano una differenza, indicano che si tratta di un filtro Laplaciano e non uno di Smoothing. In quanto operatore derivativo, il filtro garantisce l effetto di sharpening (affilamento) dell immagine, andandone ad enfatizzare gli edge e a de-enfatizzare le zone omogenee. Per ottenere il miglioramento dell immagine è necessario combinare l immagine originale con il laplaciano: ( ) { ( ) ( ) ( ) ( ) Con ( ) l immagine sharpened, ( ) l immagine di partenza e ( ) l immagine filtrata con la maschera Laplaciana. Se si invertono i segni della somma dei laplaciani, si ottiene l effetto contrario (smoothing). Un ulteriore tecnica di sharpening delle immagini è l unsharp masking: ad un immagine si sottrae la propria versione blurred. ( ) ( ) ( ) ( ) è l immagine sharpened, mentre ( ) è la versione blurred dell immagine ( ). 56

58 Filtro Gradiente (Derivativo 1 Ordine) Rappresenta la derivata di una immagine ( ) nella direzione di massima variazione. Definito come: [ ] Il gradiente in questa forma presenta le derivate parziali non isotropiche, e per questo motivo è necessario considerarne il modulo (magnitudine), anche se l operatore risultante non è lineare: [ ] ( ) Siccome la valutazione del modulo del gradiente comporta un elevata complessità computazionale, per ridurne l entità si approssima il modulo con la somma dei valori assoluti delle componenti, anche se, questa operazione, comporta la perdita nuovamente dell isotropia dell operatore. Il Metodo di Robert consiste nell utilizzare approssimazioni delle derivate prima su direzioni diagonali. Questo metodo è stato uno dei primi ad essere mai utilizzato per l image processing. 57

59 Il Metodo di Sobel consiste nell utilizzare maschere più grandi, di dimensioni 3x3, in cui è più chiaramente definito il punto al quale l operatore è applicato. La maschera è calcolata sull asse X tramite la differenza tra la prima e terza riga e sull asse Y tramite la differenza tra prima e terza colonna. Sia l operatore gradiente che laplaciano sono molto importanti per il trattamento e l analisi degli edge. Questi sono sempre i punti di partenza di ogni elaborazione sulle immagini. 58

60 CAPITOLO VI MULTIMEDIA FEATURES 1. FEATURES AND METRICS Per rappresentare in maniera sintetica un immagine si ricorre all utilizzo delle features, ossia dei particolari, dei tratti, che la contraddistinguono. Le features possono essere proprietà specifiche dell immagine, chiamate a mostrarsi in chiave delle applicazioni che le richiedono. Gli edge sono delle features molto valide, utilizzati per confrontare gli oggetti presenti nelle immagini. Le features possono essere rappresentate in svariati modi, a patto che queste siano relative ad un contesto di confronto comune (se si sta analizzando il canale rosso delle immagini, non importa se all interno di una immagine vi è un cane). La più comune forma di rappresentazione delle features è quella degli Spazi Vettoriali. Rappresentare i contenuti multimediali come punti in uno spazio è essenziale, siccome offre strumenti di gestione matematici, basati su concetti di geometrie e metriche automatizzabili. Per questo motivo i database multimediali adoperano queste tipologie di rappresentazione. Si consideri un immagine di un solo pixel, per rappresentarla in maniera sintetica si può considerare come feature il pixel stesso e rappresentarla su di una retta (spazio di 1D) come un vettore, che parte dall origine e arriva fino al punto identificato dal valore del pixel. Aumentando le dimensioni di rappresentazioni e mantenendo come feature i pixel, risulta ovvio che per un immagine a migliaia di pixel si avrebbero migliaia di dimensioni. Adoperare i pixel come feature quindi non è conveniente, siccome la loro gestione risulterebbe ostica e onerosa. Le features devono essere invarianti alle operazioni geometriche (zooming, rotazione, scalamento) e alle modifiche di luminosità dell immagine. Fissata una forma di rappresentazione per i contenuti multimediali, è poi necessario stabilire una metrica per il loro confronto e per le loro disposizioni. La metrica dipende dal tipo del vettore che si vuol rappresentare: se, ad esempio, si rappresentano pixels come features, allora si progetterà una metrica per i pixels. Qualsiasi sia la metrica, esistono degli assiomi che ne validano la correttezza e che devono essere assolutamente rispettati: 59

61 1) Non Negatività della distanza: ( ) ( ) ( ) 2) Simmetria: ( ) ( ) 3) Disuguaglianza Triangolare: ( ) ( ) ( ) La metrica offre strumenti per consentire query sui contenuti rappresentati nello spazio vettoriale. Fare una query significa mettere in piedi funzioni di somiglianza o differenza tra punti nello spazio, e quindi tra i contenuti multimediali del database. Una query molto comune consiste nel trovare le due immagini più simili ad una data immagine A. in questo caso si effettuerà una ricerca nei pressi del punto A nello spazio e si procederà con un ranking dei candidati, dove ad ogni immagine sarà assegnata una rank. Un ulteriore tipologia di query consiste nel trovare le immagini che differiscono di da A. in questo caso si effettua un Range Search, ossia una ricerca circolare di raggio. Metrica Euclidea Si basa sul concetto di distanza euclidea. Date due immagini A e B rappresentate in uno spazio vettoriale di dimensione N=3, si avrà che: ( ) ( ) ( ) ( ) Se due immagini si trovano sulla stessa retta, significa che su N componenti soltanto una è differente. Con la metrica euclidea questo aspetto viene enfatizzato indipendentemente dalla dimensionalità dello spazio. Supponendo N=30, sebbene le due immagini abbiano 29 componenti uguali (e quindi siano molto simili), la diversità tra queste è legata all entità della distanza sull unica dimensione che varia, che può farle interpretare come molto differenti. La proprietà transitiva non vale per le immagini. Date tre immagini A,B e C, se è vero che. non 60

62 Metrica Radiale (Cosine Similarity) Una metrica basata sugli angoli: invece di considerare la distanza due contenuti multimediali, si considera l angolo che essi formano con l origine. Questa tipologia di metrica è molto utilizzata per il testo (Oracle è stata la prima ad utilizzarla), dove la composizione generale delle features è più importante del contributo della singola. L angolo è misurato in funzione del suo coseno normalizzato, che implica una distanza di somiglianza (mentre il seno di differenza). Dati ( ) e ( ) vettori delle componenti di due punti, si ha che il loro prodotto risulta: Da cui si ottiene il coseno normalizzato: ( ) Considerando i punti in figura, F risulta essere più simile ad A che di E siccome: ( ) ( ) I punti E ed A risultano uguali, siccome si trovano sulla stessa retta (coseno nullo). Metriche di Minkowski Sono una famiglia di distanze metriche, note anche come dimensionalità (definiscono quindi n spazi diversi). -metrics a seconda della loro La più conosciuta è la Manhattan Distance: una metrica L1 che consiste nel considerare la distanza tra due punti come somma delle distanze percorse lungo le direzioni degli assi. Il funzionamento è analogo a quello delle strade americane di Manhattan, dove la pianta urbana è suddivisa in Avenues e Streets (tipo cardini e decumani). Considerando anche la presenza di palazzi, per raggiungere da A, un posto B, si devono percorrere necessariamente le strade seguendo la loro direzione siccome risulterebbe impossibile percorrere la distanza in linea retta. Tale metrica è usata per certi tipi di valutazioni delle similitudini tra immagini, come quelle tra i colori. Da risultati provenienti dalla Computer Vision e dal Pattern Recognition, si è evinto che la 61

63 Manhattan Distance cattura meglio il giudizio umano sulle similitudini tra immagini rispetto alla distanza Euclidea. -metric ( ) La metrica Euclidean Distance è quindi una di tipo L2 e corrisponde alla distanza in linea retta tra i due punti. -metric ( ) E possibile quindi continuare fino a raggiungere una cardinalità infinita: -metric ( ) -metric * + La distanza della -metric, conosciuta anche come Chebyshev Distance, risulta infine essere uguale al semplice massimo tra le proiezioni su X e Y. Questa metrica è la stessa applicata negli scacchi per il pezzo del re: applicando la Chebyshev Distance, è possibile quantificare la distanza del re da ogni altra casella della scacchiera. In definitiva, la scelta di un modello metrico dipende sempre dalla natura delle features che si considerano. Attraverso le metriche è possibile definire gli alberi di accesso alle informazioni e vedere tutti gli elementi come vettori di features (quindi con la possibilità di gestirli analiticamente). 62

64 2. FEATURES SELECTION Prima di poter applicare dei meccanismi di selezione e ottimizzazione del numero di features, occorre comprendere come queste possono essere riconosciute e rappresentate. Nel caso di un semplice dato strutturato, un record, la feature che meglio lo identifica e che meglio lo differenzia da un altro oggetto dello stesso tipo è certamente l ID (quindi una chiave). Per le immagini il discorso e più complesso, siccome vi sono svariate interpretazioni sulle features che meglio possono rappresentare i contenuti di un immagine. Esistono tuttavia delle features cardini che possono essere un buon punto di inizio: - Istogramma dei colori: è una caratterizzazione del primo ordine di tipo statistico delle immagini. Si possono definire delle metriche per verificare se due o più istogrammi simili (in termini di distanza). Purtroppo le sole informazione relative agli istogrammi risultano insufficienti per una completa caratterizzazione di un immagine: da istogrammi simili si evince solo che il contenuto cromatico è simile, mentre gli oggetti rappresentati nell immagine possono essere completamente diversi. - Texture: un analisi della texture comporta uno studio in frequenza di quelli che sono gli oggetti e le loro ripetizioni all interno di una immagine. Un altra metodologia consiste nell utilizzo della Trasformata Wavelet. - Edge: sono le discontinuità che rappresentano dei dettagli dell immagine. - Shapes (forme): elastic matching. - Oggetti: ossia le rappresentazioni all interno dell immagine. - Semantica di Scena: il significato semantico degli oggetti o dell immagine stessa. Per rappresentare queste features bisognerebbe avere una metrica per ogn una di esse oppure una sola per tutte. L Image Analysis (l analisi di un immagine) delle immagini di un database multimediale consiste nell estrapolazione delle loro features e delle altre caratteristiche descrittive. Solitamente questa operazione risulta di complessità molto elevata, siccome all arrivo di una query, vengono effettuate delle operazioni al volo che ricavano per ogni immagine le sue caratteristiche descrittive (features comprese). Per tal motivo sono richieste tecniche di alleggerimento che riducono il numero di operazioni al volo (quelle successive ad una query): nel progettare un MIS (Multimedia Informative System), al fine di alleggerire la complessità dell Image Analysis e quindi di ridurre il numero di operazioni al volo, si effettuano dei processi di: 1) Pre-Processing/Pre-Analysis: sono analisi effettuate al momento dell inserimento di un immagine nel database. Il comando INSERT oltre al descrittore, gestisce anche quelle che sono le informazioni riguardo le features dell immagine, andandole già ad estrapolare e a memorizzare insieme ai dati di descrizione. Di conseguenza anche la DELETE agirà su tali campi. La query agirà non più sul dato ma sulla metrica. 2) Indexing/Clustering. 63

65 3) Semantic Optimization: ottimizzazioni delle funzioni logiche. Con questi procedimenti si sta pensando ad un database multimediale (che tiene conto anche delle features di tipo astratto) e multidimensionale: Per prima cosa si decidono le features da utilizzare, ottimizzarle, e su di queste costruire una metrica. Query, istruzioni e features cambiano significato ed aspetto. Un esempio è Oracle Multimedia, che rappresenta una estensione Object Relational di un database, dove è possibile trattare dati multimediali come fossero oggetti, ogn uno dei quali con i propri metodi di accesso e di gestione. Immagini, audio e video sono visti come BLOB (Binary Large Object), ossia semplici agglomerati di bits a cui sono associati descrizioni e Signatures (che nel caso di immagini sono combinazioni tra croma e texture). Il problema rimane nel caso del Dimensionality Curse, ossia della presenza di un numero elevatissimo (maggiore di 15) di features, che definiscono uno spazio di altrettante dimensioni. Il vettore delle features affetto dal Dimensionality Curse è inutilizzabile per rappresentare del contenuto multimediale, per questo motivo si cerca di ridurne la dimensionalità. Il Feature Selection è una risposta a questa necessità, e consiste nello scegliere in maniera intelligente un sottoinsieme del vettore delle features che sia in grado di descrivere in maniera ottima lo spazio con una cardinalità inferiore a quello di partenza. Una buona feature, nel caso delle immagini, possiede delle caratteristiche chiave: 1) Applicazioni Semantiche. 2) Impatto Percettivo: la feature deve essere quanto più percepibile possibile all utente, così da poterne ottenere del feedback. 3) Potere Discriminativo: capacità di distinguere un immagine da un altra. 4) Potere Descrittivo: capacità di descrivere e caratterizzare quanto più possibile un immagine da un altra. 5) Diminuzione del Carico di lavoro della Query. Come è possibile ridurre le dimensioni di un feature vector al fine di portarlo alla stessa cardinalità delle good features? Si deve trovare un meccanismo che evidenzi le features più importanti. Data un immagine A ed una B, possedendo le features di entrambe, si definisce una distanza tra A e B in uno spazio di cardinalità N. Si vuole quindi trovare un metodo di Trasformazione Spaziale che riduca la cardinalità dello spazio e che lasci invariata (o quasi) la distanza tra i due punti. Considero uno spazio di cardinalità N=3. In questa rappresentazione si ha una nube di punti disposti lungo tutte le direzioni. Applicando una rototraslazione rigida, si posizionano i punti in modo da rendere una direzione ininfluente rispetto le altre, mantenendo intatte le relazioni degli angoli e delle distanze tra i punti della nube. Nell esempio in figura l asse inferiore (rosso) è quello che non da contributo differenziale ai punti ed è quindi eliminabile tramite una proiezione dei punti sui restanti due assi. 64

66 Si è quindi ridotto di uno la cardinalità dello spazio di partenza, ma le distanze e gli angoli a seguito della proiezione sono cambiate. Le Range Query sono sballate, siccome si avranno dei False Hit (punti che prima non erano nel range e che ora sono al suo interno) e dei False Miss (punti che prima erano nel range e che ora sono al suo esterno). Questi ultimi sono i più insidiosi, siccome non possono essere eliminati con un Post-Processing. Un ulteriore esempio: scegliendo come features i pixels e considerando un immagine a risoluzione 628x1024 di soli pixel neri, si ottiene un vettore delle features di elementi (quindi di altrettante dimensioni dello spazio). E evidente che è necessaria una riduzione di tale vettore, possibile tramite algoritmi di trasformazione degli spazi. Le features risultanti da queste trasformazioni (quindi dal vettore risultante delle features) sono dette Componenti Principali del Features Vector. Queste corrispondono a delle good features, e come tali devono presentare tutte le caratteristiche sopra elencate, in particolare devono essere anche Significanti: portano informazione. In generale, un evento è più significante se porta più informazione. Ragionando in frequenza nel caso delle immagini, un evento con una grande occorrenza porta meno informazione siccome con sé trasporta i dettagli dell immagine, mentre un evento con bassa frequenza porta molta più informazione siccome trasporta aree omogenee di grandi dimensioni. 65

67 La caratterizzazione del contenuto informativo per una feature è espresso dal calcolo dell Entropia: ( ) ( ) ( ( ) ) Dove ( ) indica la probabilità. L entropia è legata anche all incertezza del sistema: più il sistema è disordinato maggiore è l entropia. Considerando la massima incertezza dovuta al massimo disordine nel sistema, si ottiene la massima entropia che porta quindi al massimo contenuto informativo trasportato dalla feature. Viceversa, se il sistema è ordinato e non vi è alcuna incertezza, si è in una situazione dove l entropia è minima e quindi il contenuto informativo trasportato dalla feature è minimo. [Vedi par 8.3]. Considerando l esempio in figura: F1,F2 e F3 sono tre features. Quale di queste features ha maggior potere discriminatorio? F3 è chiaramente molto stretta, quindi non permette una chiara distinzione degli oggetti. F2 è ancora più compressa, siccome i punti sono situati su di un piano ad esso perpendicolare. F1 è allora quella che permette di discriminare meglio siccome fornisce una migliore distinzione. F2 ed F3 possono essere eleminate. 3. PRINCIPAL COMPONENT ANALYSIS (PCA) L individuazione delle Componenti Principali di un Features Vector può avvenire tramite una procedura matematica detta Principal Component Analysis (PCA): tramite una trasformazione ortogonale si converte un set di variabili possibilmente correlate tra loro in un altro set di variabili linearmente incorrelate, chiamate appunto Componenti Principali. L ortogonalità assicura che le componenti così trovate siano le massime rappresentative di ogni direzione e che quindi il contenuto rappresentato dallo spazio ridotto sia complessivamente prossimo a quello dello spazio di partenza. Questa tecnica si basa sulla Karhunen-Loeve Transform (KLT) che rappresenta una decorrelazione dei dati: scartando le features che contribuiscono poco alla differenziazione tra le immagini e risaltando quelle che invece contribuiscono molto si definisce una base ridotta di features. Questa selezione avviene anche nel motore di ricerca di Google: il page ranking fornisce una graduatoria dove al top si trovano i siti con più connessioni. L algoritmo PCA agisce con operatori statistici sulle features. In generale, si ha che data una coppia di features ( ), si definisce la matrice ( ) come: 66

68 ( ) ( ) ( ) { ( ) ( ) Ricordando che: ( ),(, -)(, -)- ( )( ) ( ) ( ) Considerando N features componenti un Features Vector, ne viene calcolata la matrice di covarianza, la quale indica la correlazione tra le features. Per ottenere una buona e semplice valutazione del peso di una feature, è necessario ricondurre la matrice di covarianza ad una matrice diagonale, quindi considerando tutte le features indipendenti. ( ) [ ] ( ) [ ] A questo punto si normalizzano i valori sulla diagonale (formata dalle varianze delle features) effettuando poi la Feature Selection: verranno selezionate le features con una varianza con valore prossimo all uno, mentre quelle con un valore di varianza prossimo allo zero saranno scartate. Se la matrice di covarianza non è di per se diagonale, la si deve triangolarizzare tramite l utilizzo di autovalori ( ) ed autovettori ( ) [Vedi SVD]. Si deve ricondurre S alla forma: Si vuole quindi trovare la matrice S, tramite una matrice C triangolare di autovalori e una matrice P di autovettori. Basta ricordare che: ( ) [ ], - Scritta in questa forma, è possibile risalire al peso delle features direttamente dalla matrice C degli autovalori: si scelgono le features con autovalori maggiori, mentre quelle con valori degli autovalori prossimi allo zero si scartano. 67

69 Nel caso di uno spazio 2D, si possono riconoscere due vettori di principal features, che rappresentano le direzioni lungo le quali è concentrato il massimo contenuto informativo. 4. FATTORIZZAZIONE SVD La tecnica di fattorizzazione nota come Singular Value Decomposition (SVD), è un metodo algebrico che permette di decomporre una generica matrice A di dimensioni x in funzione di una matrice diagonale di dimensione x. L SVD viene utilizzato dall algoritmo PCA per riuscire a portare in forma diagonale la matrice di Covarianza. Esso si basa sul concetto espresso dal Teorema Press+92: una qualsiasi matrice può essere decomposta come: Dove,, -, -, - (, - ) - è una qualsiasi matrice di qualsiasi forma, che nel caso del PCA è rappresentata dalla matrice di Covarianza non triangolarizzata. Le matrici, - e (, - ) sono matrici le cui colonne (vettori di singolarità di A rispettivamente SX e DX) sono ortonormali, ossia ortogonali l uno con l altra. Per questa caratteristica le matrici U e V formano, moltiplicate le loro trasposte, delle matrici di identità (il quartetto siffatto compone una base): Infine la matrice, - è quella di più interesse siccome rappresenta la versione quadrata e diagonale di A. Nel caso del PCA questa matrice rappresenta la matrice di covarianza triangolarizzata. La particolarità principale di questa matrice è che i valori sulla diagonale, detti valori di singolarità, sono tutti positivi e disposti in ordine decrescente: i primi valori sulla diagonale rappresentano quelle features che possiedono un maggiore potere rappresentativo di informazione rispetto agli altri. Con questo indice di peso è possibile effettuare poi il feature selection e la riduzione dimensionale dello spazio. Il PCA con queste trasformazioni è come se effettuasse una rototraslazione dello spazio, evidenziando le features più importanti. 68

70 Precisamente, si può affermare che: - I vettori di singolarità SX sono gli autovettori di - I vettori di singolarità DX sono gli autovettori di - I valori di singolarità non nulli e positivi di A (situati sulla diagonale di ) sono le radici quadrate degli autovalori non nulli sia di e di 5. ALGORITMO PCA Una descrizione più precisa della procedura può essere fatta tramite lo studio di un algoritmo che come effetto ha proprio la PCA in ambito dell image processing: lo scopo è quello di trasformare una matrice formata dalla successione di vettori riga, formati dai Features Vectors delle Immagini rappresentate nello spazio di cardinalità (quindi M dimensioni), in una matrice che rappresenterà le stesse immagini ma in uno spazio di dimensione minore di quello di partenza, dove sono considerate solo le features più importanti (appunto, solo ). Si vuole trovare quindi la trasformata Karhunen-Loeve della matrice. * + Organizzazione della Matrice Si suppongano N immagini all interno di uno spazio di cardinalità M, rappresentate quindi come vettori di M features. Chiamando con i vettori riga di features rappresentanti le immagini: 1) Scrivere i vettori come vettori colonna, ogn uno dei quali composto da M righe. 2) Piazzare i vettori colonna in una singola matrice di dimensioni x. Calcolo della Media Sperimentale 3) Calcolare la media lungo ogni dimensione. 4) Creare un vettore riga (dimensione x ) delle medie sperimentali trovate:, -, - 69

71 Calcolo delle deviazione dalla Media La sottrazione della media è una parte fondamentale al fine di trovare una componente principale che minimizzi l errore quadratico medio dell approssimazione della data. 5) Sottrarre il vettore delle medie sperimentali, - ad ogni colonna della matrice. 6) Salvare i risultati della sottrazione nella matrice B di dimensioni x : Dove e un vettore riga di soli uno:, - Trovare la Matrice di Covarianza 7) Trovare la matrice empirica di covarianza C di dimensioni x dall outer product di con se stessa:, -, - Se i coefficienti di coniugata. non sono tutti reali, la trasposta deve essere fatta come Trasposta Trovare Autovalori ed Autovettori della Matrice di Covarianza 8) Determinare (tramite software) la matrice di dimensioni x di autovettori che diagonalizza la matrice di covarianza : Dove è la matrice diagonale degli autovalori di e di dimensioni x :, -, - Gli autovalori e gli autovettori sono pari ed accoppiati: al -simo autovalore corrisponde il -simo autovettore. Valutazione del Contenuto Informativo di ogni Autovettore Gli autovalori rappresentano la distribuzione di informazione lungo ogni autovettore, dove gli autovettori sono una base per la famiglia di immagini. 9) Il contenuto informativo totale, - dell -simo autovettore è la somma dei contributi di informazione lungo tutti gli autovalori:, -, - 70

72 Feature Selection A questo punto si devono scegliere quelli che saranno gli autovettori che costituiranno la nuova base dello spazio ridotto. 10) Salvare le prime colonne di come una nuova matrice di dimensioni x :, -, - 11) Usare il vettore, - come guida per trovare una limitazione adeguata. L obiettivo è di trovare il più piccolo valore possibile di mantenendo un valore informativo di, - alto (lossless compression). Supponendo che si voglia preservare il del contenuto informativo durante la riduzione dello spazio, allora il più piccolo valore di dovrà rispettare:, -, - Conversione delle immagini in Z-Score Matrix 12) Creare un vettore della deviazione standard sperimentale di dimensione x dalla radice quadrata delle varianze sulla diagonale della matrice di covarianza : *, -+ {, -} 13) Calcolare la Z-Score Matrix, ossia la matrice dei valori delle immagini privati della loro media e normalizzati alla varianza: Proiezione della Z-Score Matrix sulla Nuova Base 14) I vettori Proiettati, che rappresentano le Immagini di partenza proiettate sul nuovo spazio ridotto e con solo le features principali, sono le colonne della matrice : * + Dove è questa volta la trasposta coniugata della matrice di autovettori. Le colonne della matrice rappresentano la KLT dei vettori di features rappresentanti le colonne della matrice si partenza. 71

73 6. COMPATTEZZA DI UN DATABASE Una volta selezionate le features principali per la rappresentazione di uno spazio di oggetti multimediali che poi andrà a costituire un database, è possibile verificare la validità di tale features, ossia il loro effettivo peso sulla rappresentazione del database rispetto le altre, tramite il calcolo e lo studio di un fattore di qualità: la compattezza. ( ) ( ) La compattezza di un database ( ) non è altro che la somma delle similarità esistenti tra gli oggetti multimediali ( e ). L ottimizzazione di tale parametro è data dalla sua minimizzazione, in quanto è preferibile avere un database non compatto dove i vari oggetti sono facilmente distinguibili (scarsa similarità), piuttosto che uno compatto dove gli oggetti sono troppo simili e difficilmente distinguibili (alta similarità ). Si può quindi dire che la qualità di una feature è legata al suo effetto sulla compattezza del sistema: - Una feature è buona se, quando questa è rimossa dallo spazio di rappresentazione, si ha un aumento della compattezza del sistema. - Una feature è cattiva se, quando questa è rimossa dallo spazio di rappresentazione, si ha una diminuzione della compattezza del sistema. 72

74 CAPITOLO VII VIR 1. VISUAL INFORMATION RETRIEVAL (VIR) Una semplice query agisce su di oggetti dei quali si conoscono strutture e metodi (tabelle): si muove all interno di un mondo chiuso che è rappresentato dal database sul quale viene lanciata. L information retrieval (IR), invece, spazia su contenuti di tutti i tipi (testo, immagini, video suoni) e di tutti i contesti (significati semantici, lessicali, logici) che devono essere portati all utente. L IR si basa sul concetto di mondo aperto siccome non sono certe le dimensioni degli spazi sui quali si dovranno effettuare ricerche e nemmeno i criteri con i quali affrontarli a priori (basti pensare alle differenti features che possono essere utilizzate per rappresentare contenuti di vario tipo). L IR è quindi multidisciplinare, siccome basato su ingegneria, matematica, psicologia cognitiva, linguistica, statistica e legge. I sistemi di IR automatizzati sono adoperati per ridurre l information overload, ossia la presenza di troppe informazioni che possono confondere l utente in fase di ricerca. Una delle estensioni più interessanti dell IR è quella legata al mondo della percezione visiva: Il Visual Information Retrieval (VIR). Il suo scopo è di trovare in un database multimediale immagini, o sequenze di immagini che sono di importanza per una query. Le immagini sono gli oggetti più utilizzati su internet, questo perché sono un mezzo di comunicazione più potente del solo testo e possono suscitare significati diversi a seconda dell utente oppure comunicare più di un messaggio con gli oggetti raffigurati. Per tale motivo i problemi principali relativi al VIR sono la metodologia di rappresentazione dei dati presenti in una immagine (una sua descrizione) e dell indicizzazione del sistema (per snellirne l accesso). Nel mondo del VIR vi è una serie di informazioni legate all utilizzo delle metadata che devono poter essere manipolate e prese in considerazione: - Content-Indipendent Metadata: sono metadati indipendenti dal contenuto dell immagine (formato, nome, data, location, ownership, etc ). - Content-Dependent Metadata: metadati legati alla percezione dell immagine (colore, texture, movimento [per i video]). - Content-Descriptive Metadata: sono metadati legati alla semantica del dato. Uno di questi può essere l annotation, ossia uno spazio dedicato ad una descrizione manuale di una nota sull oggetto. E uno strumento molto soggettivo che può svincolare facilmente da criteri standard di classificazione delle informazioni. Per questo motivo esistono dei meccanismi che descrivono formalmente i significati della data, tramite dei metadati standard (utilizzabili anche dall utente, ma predisposti dal sistema). Di per se i metadati sono dei valori molto soggettivi, che quindi possono essere anche fraintesi nei criteri di ricerca. Per questo motivo da soli non offrono una completa descrizione dell oggetto. 73

75 La Prima Generazione di sistemi VIR, permette di accedere agli oggetti multimediali tramite stringhe di attributi. Le content-dependent metadata sono espresse dalle keywords, ossia delle parole chiavi preimpostate e messe a disposizione dal sistema che permettono una descrizione oggettiva dei contenuti e quindi una loro classificazione. Le content-descriptive metadata sono espresse da delle annotazioni, spesso scritte da esperti (nel campo biomedico le annotazioni hanno più importanza del database stesso). L utilizzo di annotazioni è caratteristica dei Database Annotati. Questi sistemi si basano sul text search engine (motori di ricerca sintattici) che cercano la parola anche se immersa negli oggetti. Oracle Text utilizza la ricerca su testo tramite un indice basato sulle inverted lists. E uno strumento molto potente siccome velocizza parecchio le operazioni di ricerca. Queste tipologie di sistemi presentano dei problemi (numerati in ordine di importanza): 1) Non si avrà mai una notazione che risponda a tutte le query testuali che si possono ricevere. 2) La notazione consegna un ruolo di eccessiva responsabilità all end user. 3) La soggettività della percezione visiva di un immagine 4) Il problema della lingua, legato alle svariate lingue che si possono trovare e su cui si devono eseguire query (il codice è sempre in inglese). 5) L enorme quantità dei dati e metadati da gestire. Per questi problemi, la sola notazione non è sufficiente a descrivere un oggetto multimediale. La Nuova Generazione di sistemi VIR, deve quindi trovare un metodo puramente oggettivo che riesca a descrivere con efficacia il contenuto multimediale di un database. L oggetto può descriversi da solo tramite le sue features, andando ad escludere quindi l intervento umano e l ambiguità del contenuto visivo. Nelle tabelle di un database che utilizza il precalcolo delle features principali, vi sono dei campi descrittivi aggiunti che servono proprio per la popolazione delle features. Con queste nuove strutture cambia quindi anche il concetto di query, che in un tale sistema si può sia esprimere con semplice testo (correlato al contenuto visivo degli oggetti) oppure tramite un passaggio di un esempio al sistema (Query by Example) che risponderà con oggetti con un alto valore di similarità a quello passato. In questi sistemi, è enfatizzato il 74

76 Relevance Feedback: si effettuano query più precise, con più vincoli, su risultati di una query precedente. Google Images effettua una ricerca su metadati ed annotazioni. La grossa novità consiste nel fatto che il motore di ricerca è basato non solo sul testo, ma anche su quelle che sono le features del dato multimediale che si sta cercando. Per questo è necessario ampliare il concetto di query. 2. QUERY REMASTERED Si è visto che nei sistemi VIR di prima generazione sono utilizzate parole chiavi e annotazioni (con database annotati). Il loro maggior problema è legato alla soggettività di tali contenuti lasciati all utente. Nel tentativo di portare al massimo il grado di oggettività si è reso necessario l introduzione di altri criteri di specificazione dei contenuti multimediali di un database. Con l introduzione di altri criteri di ricerca (features, colori, etc.) si è quindi dovuto riscoprire il significato di query, estendendola a versioni più complesse. Query by Content La Query by Content è la chiave dei nuovi sistemi VIR. Sono query utilizzate per individuare un insieme di immagini che hanno uno specifico contenuto. Le normali Query SQL che agiscono su database relazionali forniscono risultati certi e uguali, siccome agiscono nell ipotesi di un mondo finito limitato al database. Le Query by Content, invece, forniscono risultati non certi siccome agiscono nell ipotesi di un mondo aperto: data un immagine, se si effettua una ricerca per immagini simili (in funzione delle features) in un database multimediale, si dovrà tener conto di una tolleranza nel selezionare i riscontri. Un immagine sarà simile ad un'altra quando queste saranno simili con una certa probabilità e non solo se sono perfettamente uguali (probabilità binaria). Una Query by Content rappresenta quindi diverse tipologia di Query, che possono essere anche lanciate in parallelo: 75

77 - By Text: sono query di tipo testuali, riferite ad un contenuto multimediale. Il loro problema risiede nel significato, siccome per essere efficaci, devono in qualche modo correlarsi alle immagini (anche video, suoni, etc.) a cui si riferiscono. - By Color: sono query di tipo grafico. Tramite la paletta dei colori, si può indirizzare la ricerca su immagini con una colorazione simile a quella che si è indicata. - By Shape: sono query di tipo grafico. Si cercano immagini simili ad una forma (eventualmente fatta a mano: sketch). - By Texture: query di tipo grafico. Si cercano immagini con una trama simile a quella indicata. - By Spazial Relationship: Si cercano immagini con una disposizione degli oggetti simile a quella indicata da una relazione spaziale. Questa può essere eseguita tramite testo: ad esempio trova tutte le immagini con una casa con due alberi sulla destra. Queste query si dividono in due sottocategorie: o Topological Queries: che tengono conto delle posizioni fisiche degli oggetti (a destra di, sopra a, vicino a, etc.). o Metric Queries: che tengono conto delle metriche delle immagini (angoli, distanze, etc.). Il search engine quindi deve gestire tutte le features ad hoc che sono implicitamente necessarie alle query. Query by Example Mentre il testo deve essere interpretato e correlato a contenuti multimediali, l utilizzo di esempi (quindi immagini) all interno della query, diminuisce la complessità delle operazioni. L utente può fornire un prototipo che viene utilizzato come immagine di riferimento dal sistema e dal quale vengono estrapolate tutte le informazioni necessarie alla query. Anche qui il sistema risponderà con una certa tolleranza, fornendo un insieme di riscontri. E un meccanismo molto potente siccome permette il relevance feedback, e per questo molto utilizzato nei database. Si possono fornire oggetti piuttosto che intere immagini: la ricerca sarà fatta concentrandosi sugli oggetti presenti nelle altre immagini. Query by Iconing Sono query basate su concetti. Ogni oggetto viene rappresentato da un icona. Data un icona, è possibile effettuare una query per cercare tutte le immagini con icone simili a quella di partenza. Con più icone è possibile anche esprimere concetti spaziali: si può ricostruire la query della casa e degli alberi attraverso l utilizzo delle icone di una casa e di un albero ed indicandone con operatori booleani delle relazioni spaziali. Questo meccanismo di query richiede delle interfacce uomo/macchina molto complesse. 76

78 3. FEATURES EXTRACTION Tra la moltitudine di features a disposizione di uno spazio, quelle da considerare sono indubbiamente le più importanti. A secondo della loro estrazione possono diversi in due categorie: - Low Level Features: sono quelle di tipo percettivo e derivano direttamente dalla Raw Data (bitmap) dell immagine, siccome sono estrapolate dalle tabelle dei grigi. Queste sono Distanza, Similitudine, Colore, Texture, Forma, Struttura e Movimento (per video). - High Level Features: sono derivate direttamente da quelle di basso livello. Legate principalmente a concetti e a semantica. Esistono diversi approcci verso queste features: si possono scoprire prima quelle di basse livello e poi quelle di alto, oppure viceversa, tramite degli algoritmi di image understanding. La caratteristica principale che deve possedere una feature estratta da un immagine è che deve essere invariante a trasformazioni rigide come variazioni di luminosità, contrasto, scaling, punti di vista, rotazione, etc. Canny Edge Detection: è un algoritmo famoso e molto usato (presente anche nella libreria grafica della intel). Permette un individuazione degli edge molto precisa tramite metodologie di differenze. 77

79 4. DoG (Difference of Gaussian) FILTERS Approssimano la laplaciana con delle gaussiane che individuano zone salienti (edges) all interno di un immagine e sono pertanto filtri di secondo ordine. Il filtro gaussiano è un passabasso. Se si processa l immagine con due gaussiani differenti si ottengono due versioni filtrate della stessa immagine. Sottraendole si esaltano gli edges di quella di partenza. I filtri DoG sono utilizzati per individuare la Piramide Gaussiana, ossia una modo di descrivere l immagine in multirisoluzione. Data un immagine, ne divido per due gli assi X e Y per poi passarvi un filtro Gaussiano passabasso. Il risultato è una immagine più piccola che offre, se portata alle dimensioni dell immagine di partenza, una risoluzione più bassa che evidenzia solo le regioni dell immagine più importanti. Andando avanti per questa maniera, si ottiene una scala di immagini che vanno poi a formare la piramide. Burt e Andelson sono due studiosi che hanno pensato a molti algoritmi applicativi su tale piramide. Di fatti lavorare a diverse risoluzioni della stessa immagine può essere vantaggioso in termini di accesso all informazione e di velocità computazionale: se si deve individuare la semplice posizione di un oggetto in un immagine, non si ha necessità di analizzarne la versione a massima risoluzione, ma è sufficiente quella a risoluzione minima. La piramide è inoltre utile per la trasmissione progressiva di immagini, e in fase di ricerca per un primo riscontro. 78

80 5. TRASFORMATA WAVELET Si basa sul concetto di mulirisoluzione ma utilizza meccanismi computazionali differenti alla gaussiana: sfrutta filtri che sotto certe condizioni processano l immagine in un determinato modo. Viene utilizzata nei formati MPEG e JPEG2000. Una funzione ( ) è una wavelet ortonormale se può essere usata per definire una base di Hilbert che è costruita come la famiglia di funzioni di: ( ) ( ) Una trasformata Wavelet Monodimensionale è data da: [ ]( ) ( ) ( ) Sulle immagini si deve utilizzare la forma bidimensionale. Sotto opportune ipotesi, la trasformata wavelet si ottiene con due filtri monodimensionali, uno applicato sulle X ed uno sulle Y. Data un immagine la trasformazione avviene: 79

81 La convoluzione sottintende l utilizzo di una maschera. Questo filtro, se scelto opportunamente, può fornire una ricostruzione perfetta dell immagine trasformata. L antitrasformata è invece: Da una sola immagine tramite una trasformazione se ne possono generare 4, ogn una delle quali con caratteristiche diverse. La risultante dal doppio filtro passabasso risulta essere la stessa immagine di partenza priva degli edge. I filtri che invece hanno utilizzato dei passa alti, evidenzieranno dei contributi particolari dovuti agli edge dell immagine. Si evidenziano le componenti discontinue. 80

82 La trasformata è iterabile, quindi riapplicabile sull immagine LL. Questa trasformazione presenta l immagine in un formato simile a quello piramidale gaussiano, e permette di individuare dei contenuti e delle particolarità a frequenze diverse. Per le sue caratteristiche, la wavelet trasform è utilizzata per la compressione della data siccome è loosy con perdite molto piccole. La trasformazione corrisponde ad una compressione e la antitrasformazione ad una decompressione. È molto importante conoscere anche la base della wavelet. La base di Haar è la più semplice di tutte, ed è quella che effettua nient altro che un thresholding. Le basi di Daubechi sono molto utilizzate nell image enhancement in maniera locale (si migliorano solo alcune zone delle immagini con wavelet apposite). 81

83 6. IMAGE FEATURES Per le immagini, si parla di features di tipo: - Globali: relative all intera immagine. - Locali: relative a parte di un immagine, specificatamente ad oggetti. Quelle finora descritte sono di tipo globale e, una volta estrapolate, vengono poste negli appositi descrittori di ogni immagine. Le features principali per un immagine riguardano i Colori, la Texture, la Shape e lo spazio. Colore E una feature di tipo globale. Per trovare il descrittore del colore di un immagine si deve definire in primis uno Spazio (RGB, HSI, CMY, etc.) dal quale si possono estrapolare le features. Considerando lo spazio RGB, si deve passare alla caratterizzazione dei colori. Una delle tecniche più comuni è quella di utilizzare l Istogramma dei Colori: si costruisce andando prima a discretizzare l immagine, a differenziarne i colori e a contarne poi le occorrenze per ogni pixel così da ottenere una popolazione dei colori. Da tale istogramma (eventualmente normalizzato) si possono estrapolare i colori principali, formando così un vettore delle features, di cardinalità minore rispetto ai colori totali dell immagine, che contiene elementi di tutti i canali cromatici (R,G e B). Si è ridotta quindi la cardinalità di colori su ogni canale, ed il vettore formatosi è discriminante e compatto. Definito l istogramma dei colori, si procede ora con stabilire una metrica e quindi a definire il concetto di distanza e di similitudine. Date due immagini e, con relativi istogrammi dei colori e si definisce: Questa è una funzione che dati due istogrammi e restituisce un numero, che ne indica il grado di similarità. Chiamando con un generico colore e con ( ) il numero di pixels di colore nell immagine, si possono definire le funzioni di distanza di tipo e : ( ) ( ) ( ) ( ) ( ( ) ( )) Un altra distanza famosa degli anni 90 tutt ora utilizzata è quella di Swan and Ballard: si da una definizione alternativa di distanza specificatamente per gli istogrammi. Per ogni conteggio, si prende il minimo tra i due punti e lo si normalizza. Più che distanza, è una funzione di somiglianza 82

84 basata su sovrapposizione (Overlapping Function), che indica come i due istogrammi delle immagini si sovrappongono. Se l immagine è calcola con se stessa, viene 1. ( ) ( ( ) ( )) ( ) Nonostante la definizione di queste metriche del tutto valide, l istogramma resta una caratterizzazione del primo ordine, quindi non univoca: due istogrammi simili non corrispondono con certezza a due immagini simili. Viceversa, due istogrammi differenti sono sicuramente corrispondenti a due immagini diverse. L utilizzo degli istogrammi è quindi adoperato più per scartare immagini ad una prima e sommaria ricerca piuttosto che per considerarle. Esistono comunque distanze definite da metriche più complesse e più funzionali. Una tra queste è la metrica descritta nell articolo IEEE di Pass and Zabih Histogram refinement for content-based image retrieval (1996), che viene incontro al problema della distribuzione dei colori nello spazio degli istogrammi: considerando ad esempio due macchie su di un immagine, una di colore rosso ed una di colore verde, se si scambiano di posto e si ricalcola l istogramma, questo risulta identico nonostante l immagine sia completamente diversa da quella di partenza. Viene definito il Color Autocorrelogram, che mette in relazione le proprietà cromatiche di un immagine con il suo spazio: dati due pixels e a distanza l uno dall altro, si definisce il coefficiente: ( ) ( ) Che rappresenta la probabilità con cui i due pixels si trovino a distanza (limitata superiormente dalla dimensione massima dell immagine) e che il pixel sia dello stesso colore di. Questo coefficiente lega quindi informazioni cromatica ad informazioni spaziali ed è utilizzato per definire una metrica, e quindi una distanza: ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) il denominatore normalizza la distanza. Questa metrica indica se, data una distanza un immagine, nell altra immagine vi è una distribuzione di colori simile. e Texture Viene utilizzata come feature specialmente per la caratterizzazione di una full-image o di immagini particolari. La tessitura è molto difficile da schematizzare: non esistono parole adatte per poterla descrivere in maniera univoca e completa, perciò la si esprime in formalismi matematici quindi con valori numerici. La texture può essere Periodica o Random a seconda che si ripeta o meno. L elemento di distintivo di una texture rispetto un altra è la sua frequenza e quindi il suo livello di dettaglio. Tuttavia le Tamura Features sono le caratteristiche più utilizzate per descrivere le texture: 83

85 . / ( ) ( ) { ( ) Forma È la più complessa delle features principali: per individuarla si usano diversi approcci, da quelli numerici a quelli spaziali. Un esempio di approccio spaziale è il Matching Elastico. Si inserisce l oggetto B nell oggetto A e ne si calcola la distanza tra i punti corrispondenti dei perimetri. Le figure saranno più simili quanto minore sarà tale distanza. Pixels Features Sono le features legate ai pixels ( ) dell immagine: ( ) ( ) ( ( )) ( ) ( ) ( ) 84

86 7. SCALE INVARIANT FEATURE TRANSFORM (SIFT) Tutti i sistemi di IR moderni utilizzano il SIFT. Le features di tipo SIFT sono Locali: si riconoscono gli oggetti a maggiore contrasto nelle immagini così da creare degli elementi di comparazione con delle altre: nell immagine del camioncino, sono riconosciuti salienti determinati tratti del modello dell oggetto, i quali sono poi ritrovati nella seconda immagine. La SIFT è molto utilizzata siccome le features che tratta risultano essere Invarianti a: - Image Scaling: per tal motivo la SIFT è adoperata a livello commerciale. - Traslazione e Rotazione. Sono invece parzialmente invarianti a: - Cambi di illuminazione. - Punti di Vista. Il funzionamento si divide in quattro parti. L obiettivo è di trovare gli oggetti salienti dell immagine, attorno ai quali si creano descrittori e distanze. 1) Scale-Space Extrema Detection Si tratta dell individuazione degli estremi, ossia i punti con maggior impatto visivo nell immagine. Gli estremi vengono cercati su più scale di risoluzione della stessa immagine (multiscaling). Le scale sono dimensionate attraverso l utilizzo di un filtro (sia di Smoothing o di Sharpening). Si utilizza il DoG che in particolare offre una rappresentazione piramidale dell immagine, perfetta per una analisi multiscala. Si ricorda che il suo funzionamento è legato alla differenza di due versioni dell immagine originaria convoluta con due filtri gaussiani con valori di differenti, che esalta i dettagli. ( ) ( ) ( ) ( ) ( ) ( ) Con ( ) è un prodotto di convoluzione. Tale prodotto genera tante versioni dell immagine, ognuna versione smoothed dell originale (siccome si sono sottratti i dettagli). Questa serie di immagini rappresenta lo spazio delle scale dell immagine originaria, tutte con la stessa sua risoluzione ma con scala diverse. Le immagini convolute sono raggruppate in ottave ed il valore è scelto in modo che si ottenga un numero fissato di immagini convolute per ottava. Le immagini 85

87 DoG sono quindi prese dalle immagini adiacenti (Gaussianblurred). Successivamente si vanno ad identificare gli estremi scegliendoli come minimi o massimi tra le immagini DoG di tutte le scale. Si confronta ogni pixel nelle immagini DoG con i suoi otto vicini e con i nove del piano inferiore e superiore di ogni scala. Se il pixel è il più piccolo o il più grande fra tutti, allora è considerato come Candidato (estremo) per essere un Keypoint. 2) Key Point Localization Siccome dal punto uno si ha un numero molto elevato di estremi, è necessaria una selezione (filtraggio) dei punti che, tra gli estremi, sono i meno rappresentativi. Un primo criterio per la selezione è quella relativa alla posizione geometrica degli estremi: se un punto scelto si trova troppo distante da un edge, all interno di una zona omogenea, è inutile portarlo avanti come keypoint quindi come futura feature. Un secondo criterio di filtraggio può essere legato quindi a quei punti che, più in generale, sono poveri di contrasto (più soggetti al rumore). 3) Orientation Assignment In questo passo, ad ogni keypoint è assegnata una o più direzioni a seconda del gradiente delle direzioni locale dell immagine. Questo è indispensabile per garantire un indipendenza alla rotazione del keypoint. Data una immagine Gaussian-smoothed ( ) ne si fissa la scala cosi da ottenere una versione dell immagine ( ) su cui si può lavorare col gradiente. Si definiscono quindi la magnitudine ( ) e l orientamento ( ) del gradiente dell immagine come: ( ) ( ( ) ( )) ( ( ) ( )) ( ) ( ( ) ( ) ( ) ( ) ) 86

88 Questi fattori sono calcolati per ogni pixel in una regione di vicinato intorno al keypoint nell immagine ( ). Viene formato un Gradient Orientation Histogram di 36 bins, ogn uno rappresentate. I picchi in questo istogramma sono gli orientamenti dominanti. I picchi massimi e quelli al loro 80% sono corrispondenti ai keypoints. 4) Key Point Desctiptor I punti precedenti hanno prima riconosciuto i keypoints e poi hanno assegnato loro delle direzioni. Resta ora solo l individuazione dei descrittori che rappresentano la feature vera e propria. A partire dalla rappresentazione dei gradienti dell immagine si estrapolano i descrittori SIFT. Sono messi in evidenza non il colore e neanche la tessitura, bensì la luminosità e il contrasto in relazione ai vicini. Sono considerati i Gradient Orientation Histograms 4x4 dei vicini del keypoint, estendendo così l analisi ad un vicinato 16x16. Il descrittore diviene un vettore di tutti i valori di questi istogrammi. Con i punti estratti come features SIFT è possibile effettuare un Matching tra più immagini, controllandone la similitudine. Con una semplice variazione di scala, le SIFT restano identiche (corrispondenza 1:1). Nell immagine 2 si vede che i punti dell immagine a SX si ritrovano a DX. A è contenuta completamente in B. Questi riconoscimenti sono indipendenti dalle rototraslazioni (Grazie al Gradiente). 87

89 8. PRECISION AND RECALL Nell ambito del IR, la Precision e il Recall sono due fattori di qualità per descrivere i risultati di una ricerca. La Precision è legata alla frazione di documenti Rilevanti per la ricerca: * + * + * + Il Recall è invece legato alla frazione di documenti che sono rilevanti alla query e che quindi sono stati riportati come risposta: * + * + * + Si prenda per esempio il caso in cui si utilizzi un sistema di IR che riconosca dei cani nelle immagini e che data un immagine con 9 cani il sistema risponda con 7 risultati rilevanti su 9. Se di queste 7 risposte, 4 sono veramente cani, quindi valide, e le altre 3 sono conigli, allora si avrà che la precisione sarà mentre il recall sarà. 88

90 CAPITOLO VIII COMPRESSIONE Buona parte delle tecniche utilizzate per la rappresentazione di immagini, sono usate anche per la rappresentazione di audio e video. 1. VIDEO BASICS Un segnale Video può caratterizzarsi a seconda della suo formato (Analogico or Digitale) e della sua composizione (canali e segnali). L RGB-Video è uno dei segnali video più utilizzati nei comuni sistemi di visualizzazione per computer: il segnale è diviso in tre canali (R, G e B, quindi tre cavetti) indipendenti (no Crosstalk), che trasmettono con qualità di colore massima. Esistono tuttavia anche altri tipi di segnali video, basati su concetti di trasmissione diversi. Il Composite Video consiste nell utilizzare un singolo segnale portante (un solo cavetto) formato dall unione di due segnali: il segnale di Chrominanza, che offre il contributo cromatico del segnale CV, ed il segnale di Luminanza, che offre contributi relativi ai soli livelli di grigi del segnale CV. Il segnale CV è quindi composto da un segnale a colori più uno in bianco e nero. L unione in un unico segnale fa si che vi siano delle interferenze tra i due canali. L S-Video utilizza due segnali separati (due cavetti) ed è un compromesso tra il CV e l RGB. In questo caso il segnale di Luminanza sarà indipendente dal segnale di Chrominanza, rendendo quindi nulle le interferenze tra i due (no Crosstalk). Tuttavia il segnale di Chrominanza sarà strutturato in maniera composta (formata a sua volta da due segnali). La ragione principale per separare i due segnali riguarda l importanza cruciale del contributo della Luminanza: questa infatti trasporta informazioni relativi ai grigi del video. I grigi sono percepiti con più accuratezza dall occhio umano, che riesce con questi a percepire più dettagli e profondità rispetto ad una palette fatta solo di colori. Per questo si preferisce mandare un segnale più corposo di Luminanza associato ad uno meno complesso di Chrominanza. Un segnale Analogico video è un segnale ( ) continuo nel tempo al cui ogni occorrenza è associato un Frame (immagine). In alcuni sistemi è utilizzato il sistema di scansione video Interlaced (interlacciato): per diminuire il costo in banda di trasmissione, ogni frame viene associato all unione di due componenti, una formata dalle righe pari e l altra dalle righe dispari del frame. Siccome l acquisizione, la trasmissione e la visualizzazione (effettuata utilizzando il deinterlacing) in questo formato dipende dalla sincronizzazione di queste due componenti, è possibile avere dei problemi relativi alla loro cattiva coordinazione. In figura è 89

91 mostrato il caso in cui vi è un sistema di riproduzione con un cattivo deinterlacing dove le righe di due frame diversi sono sovrapposti in un'unica immagine. L interlacing offre un vincolo di libertà sulla scelta del rapporto velocità (fps) e qualità del video: scegliere solo una delle due componenti può risultare sufficiente per la visualizzazione video ad alta velocità ma bassa qualità, viceversa per ottenere il massimo della qualità video si considerano contemporaneamente entrambe le componenti. I principali segnali TV analogici si differenziano a seconda del loro sistema di codifica. NTSC è usata negli USA ed in Giappone, in Europa e in Cina vi è la PAL. L FPS (frame per second) non deve essere inferiore a 25, altrimenti il video viene percepito a scatti. Il canale Y rappresenta la Luminanza, le altre le componenti della Chrominanza. Segnali video Digitali sono più facili da trattare (video processing) e per questo più utilizzati degli analogici. Questi nascono dalla digitalizzazione di video analogici (sottoposti a campionamento e quantizzazione) oppure da una acquisizione diretta in formato digitale. Un altro vantaggio che il formato digitale ha rispetto l analogico consiste nella migliore tolleranza SNR (segnale su rumore) che questo offre. Inoltre tutti i filtri adoperati per le immagini possono essere utilizzati anche per video (siccome questi sono nient altro che successioni di immagini). Uno dei maggiori standard per video digitali è il CCIR-601, istituito dal CCIR (Consultative Committee for International Radio), il quale utilizza l interlacing scan. Con l avvento delle visualizzazione wide screen si è assistito alla nascita della TV ad alta definizione (HDTV). L idea non è quella di aumentare la risoluzione, bensì di offrire più pixel per la rappresentazione di una sottoarea (si aumenta la dimensione delle colonne nella matrice dei valori). Se il numero di pixel è maggiore a parità di area, si avranno più dettagli. 90

92 Nella voce Picture Rate, la P sta per Progressive Scan (non interlaced), mentre la I sta per Interlaced. 2. AUDIO BASICS Dal punto di vista fisico il suono è un fenomeno di natura macroscopica che coinvolge le molecole dell aria. Con la loro compressione e la loro estensione sono create delle onde sonore, che vengono trasmesse nell aria per essere poi ricevute dall orecchio umano. Ad esempio gli speaker nei sistemi audio vibra, creando suoni che sono percepiti dall orecchio umano. Il suono è di natura puramente analogica, ma per poter essere processato deve essere necessariamente digitalizzato. Il Campionamento rappresenta la discretizzazione del segnale analogico lungo l asse temporale con un certo periodo di sampling. A seconda di tale periodo si può constatare la fedeltà del segnale digitalizzato rispetto quello analogico da cui deriva. Frequenze tipiche di campionamento sono 8KHz (Segnali HD sono a 48KHz). Per ottenere un buon campionamento senza presenza di Aliasing, deve essere rispettata la condizione di Nyquist: Con frequenza di sampling e frequenza massima del segnale campionato. Nei sistemi analogici è sempre presente un contributo di rumore che si aggiunge al segnale puro. Per poter ottenere un indice di valutazione della veridicità di un segnale, si deve quindi andar a pesare il rapporto in potenza del segnale trasmesso con quello del solo rumore (SNR). Tutti i livelli di suoni sono espressi in decibel in relazione alla loro potenza. A seconda della loro intensità possono essere dannosi o meno per l orecchio umano. La Quantizzazione è invece la 91

93 discretizzazione del segnale lungo l asse delle ampiezze (o del voltaggio). Più bit sono utilizzati per i livelli con cui si è quantizzato, maggiore sarà la qualità del segnale (e, ovviamente, maggiore sarà il Data Rate). Il MIDI (Musical Instrument Digital Interface) è uno standard per suoni puramente digitali. I suoni sono differenti dai normali segnali audio. Questi sono creati tramite degli script (in linguaggio MIDI) esclusivamente per far parlare tra loro degli strumenti musicali con interfaccia midi connessi ad un host intelligente (computer), indicando di ogni nota la tonalità, l intensità e la durata. In ogni scheda audio vi è l interfaccia MIDI che permette di poter gestire e leggere gli script scritti con questo standard. Lo standard prevede l utilizzo di canali, ogn uno dei quali corrispondente ad un diverso strumento (CH1 = piano, CH10 = drums, etc.), che sono rappresentati dagli ultimi bits di un messaggio MIDI. I messaggi midi sono costruiti con un formato logico ben definito (sequenze di bits predefinite) e spediti in maniera seriale ai sintetizzatori, i quali leggendo tali messaggi, andranno semplicemente a riprodurne il contenuto, qual ora il canale indicato nel messaggio sia quello a cui il sintetizzatore è dedicato. Il paragone tra MIDI e audio digitale è lo stesso tra immagine a grafica vettoriale e bitmap. Per ulteriori approfondimenti riguardo l argomento, si rimanda ai numerosissimi manuali in rete e alle slide relative al corso 2011/

94 3. MULTIMEDIA DATA COMPRESSION La compressione audio e video è molto più importante e delicata rispetto a quella delle sole immagini: si deve infatti riuscire a ottimizzare il più possibile la dimensione di tali file riducendone i bit di rappresentazione, siccome di norma risultano essere molto estesi. Attraverso dei Codec (encoder/decoder scheme) si cercano compression ratio sempre vantaggiose. Se la compressione comporta perdita di contenuto informativo, allora si dice Lossy. Se non comporta alcuna perdita si dice Lossless. In generale la compressione è indicata da: Dove è il numero di bits prima della compressione e dove sono il numero di bit dopo la compressione. Normalmente si cerca di ottenere altrimenti non si avrebbe riduzione di rappresentazione. La compressione quindi va a creare un nuovo alfabeto con meno simboli rispetto quello di partenza. Per poter conoscere un riferimento per la cardinalità del nuovo alfabeto, quindi per misurare la bontà della compressione, si utilizza l Entropia. Essa rappresenta il grado di disordine in un sistema: è una somma pesata relativa alle decisioni che si prendono nella trasmissione di un set di dati. Le occorrenze più comuni saranno quelle rappresentabili con meno bits. Sia un alfabeto * + l entropia sarà quindi definita come: ( ) Dove è la probabilità dell occorrenza di e dove indica il contenuto informativo di (detto anche self-information). L entropia rappresenta il valore medio minimo di bit ( ) necessari per rappresentare ogni simbolo dell alfabeto compresso, ossia il limite inferiore al quale deve tendere la dimensione media dei simboli prodotti da un encoder. L entropia quindi mira a evidenziare, in un alfabeto, i simboli le cui occorrenze sono più frequenti rendendoli ottimi candidati per la compressione. Ad esempio, si consideri un immagine ad 8-bit di soli grigi distribuiti uniformemente (figura a ): si avranno 256 possibili elementi, tutti con la stessa occorrenza, che formano l alfabeto. Si vuole quindi trovare una dimensione di rappresentazione dei simboli per il nuovo alfabeto compresso : 93

95 In questo caso si presenta un worst case siccome l entropia corrisponde al numero di bits di partenza. L immagine non è comprimibile, siccome non vi è alcuna similitudine tra un pixel ed i suoi vicini. Si consideri adesso una immagine a 1-bit di soli grigi dove dei pixels sono scuri e sono chiari (figura b ). Si avrà che: Si evince che l entropia risulta essere minore del bit necessario per rappresentare questa immagine, e quindi vi è una possibilità di compressione. Da notare che il peso sulla somma dei pixels con maggiore occorrenza risulta minore di quello relativo ai pixels con minore occorrenza. In generale l entropia è maggiore quando la PDF è uniforme e minore quando non lo è. Run-Lenght Coding (RLC) E la più semplice tecnica di compressione utilizzabile: consiste nel comprimere sequenze di occorrenze uguali o simili in una rappresentazione a gruppi formata da un valore rappresentativo ed il conteggio delle occorrenze. Ad esempio, se in una immagine si hanno che i valori dei pixels di un viso hanno simile graduazione di colore (gruppi continui di colori densi), è possibile comprimerli in un unico pixel moltiplicato le direzioni in cui la macchia (intesa come regione da comprimere in questo caso) si estende. Un altro esempio può essere ritrovato nella semplice compressione lineare: in ogni caso, lo RLC non è da applicare a sorgenti fortemente variabili, siccome in quei casi andrebbe ad aumentare la dimensione di rappresentazione piuttosto che a diminuirla: 94

96 Variable-Lenght Coding (VLC) E una metodologia di codifica top-down, che utilizza l algoritmo Shannon-Fano: 1) Ordina i simboli e ne conta le occorrenze. 2) Si divide il simbolo ricorsivamente in due parti con approssimativamente lo stesso numero di conteggi. Supponendo di voler applicare tale algoritmo sulla parola HELLO e di assegnare ai rami SX dell albero il valore logico 0, si avrà che: Di tale codifica è possibile calcolarne l entropia per misurarne la bontà: I bit necessari per rappresentare un simbolo del nuovo alfabeto compresso saranno quindi in media: 95

97 Huffman Coding Differentemente dal VLC, è una tecnica di codifica bottom-up con un rendimento migliore dell algoritmo Shannon-Fano: 1) Stilare una lista di simboli e conteggiarne le occorrenze. 2) Ripetere finche non rimane un unico simbolo: a) Considerare dalla lista i simboli con occorrenza minore e creare un sottoalbero che abbia questi come foglie ed i restati simboli come padre. b) Assegnare la somma delle occorrenze al padre e inserirla nella lista così che l ordine è invariato. c) Cancellare i simboli foglia dalla lista. 3) Assegnare un codice ad ogni foglia a seconda della path che si compie per raggiungerla dalla radice. Alla O corrisponderà il codice 111 e così via. I simboli che occorrono più frequentemente finiscono per essere rappresentati con il minor numero di bits. La codifica di Huffman presenta delle proprietà molto importanti: - Prefisso Unico: nessun codice di Huffman è un prefisso di un altro più esteso, questo evita ambiguità di rappresentazione. - Ottimizzato: è una codifica a minima ridondanza. - I due simboli meno frequenti hanno la stessa cardinalità e differiscono per un solo bit. - Dati due simboli e se allora dove è il numero di bit nel codice di. - La dimensione media dei simboli di risulta essere: 96

98 4. LOSELESS IMAGE COMPRESSION Si tratta si algoritmi di codifica che permettono una compressione senza perdita. Un semplice approccio a questa categoria di coding è quello di utilizzare dei filtri differenziali. Si evidenzieranno quelle che sono le differenze più grandi dell immagine, così da poter capire quelle zone sono più omogenee e quindi candidate per la compressione. Data un immagine ( ) posso ottenere un immagine differenza (processata con un filtro differenziale) ( ) tramite l utilizzo di un semplice filtro di differenza: ( ) ( ) ( ) Oppure tramite l utilizzo di un filtro Laplaciano 2D discreto: ( ) ( ) ( ) ( ) ( ) ( ) Le differenze tra le due immagini ottenute è evidente dal cambiamento dell istogramma. l istogramma dell immagine iniziale ( ) è popolato in maniera approssimativamente più lineare e quindi è indice di un entropia più alta, mentre quello dell immagine processata ( ) risulta essere meno lineare, con un evidente picco nelle occorrenze centrali, e quindi indice di un entropia più bassa. 5. LOSSY IMAGE COMPRESSION Una delle maggiori pecche dei sistemi di compressione Lossless è che la ratio di compressione non risulta essere mai troppo distante dall unità. Per questo motivo si utilizzano le tecniche Lossy, che offrono un tradeoff tra la ratio di compressione e contenuto informativo perso. La dipendenza che intercorre tra ratio e perdita è alla base dei concetti di Lossy compression: a seconda dell utilizzo delle immagini è possibile scegliere ratio enormi a scapito della qualità dell immagine (web images), oppure ratio minori a guadagno della qualità dell immagine (biomedical images). E necessario quindi introdurre degli indici per constatare la differenza tra un immagine e la sua versione compressa. Se si è interessati a conoscere la differenza media tra i pixels si utilizza l errore quadratico medio (MSE: mean square error): ( ) 97

99 Dove rappresenta la sequenza di dati in ingresso, la sequenza di dati ricostruita e la lunghezza della sequenza. Se si e interessati alla dimensione dell errore relativo al segnale, si può misurare il solito SNR: Dove è la varianza della sequenza di data originale mentre è il MSE. Se si e infine interessati all errore sul valore di picco, si utilizza il peak-signal-to-noise ratio (PSNR): Discrete Cosine Transform Il ruolo della DCT è quello di decomporre il segnale sorgente in due componenti, una continua (DC) in bassa frequenza ed una alternata (AC) in alta frequenza. La DCT formalizza la nozione di frequenza spaziale (intesa come quante volte i valori dei pixel cambiano in una sottoarea dell immagine) con una misura di quanto i contenuti dell immagine cambiano in corrispondenza del numero di cicli di un coseno: lega la variazione del pixel spaziale ad una variazione angolare. Una volta effettuata la DCT, si utilizza la IDCT per anti-trasformare. In generale, data una funzione ( ) rappresentate una sottoarea di un immagine, è possibile applicare la DCT per ottenere una nuova immagine ( ) della stessa dimensionalità di ( ): ( ) ( ) ( ) ( ) ( ) ( ) Dove ; ; e dove le costanti ( ) e ( ) sono determinate da: ( ), Tale trasformazione risulta essere Lineare, siccome vale la relazione: ( ) ( ) ( ) Con e costanti e e funzioni, variabili o costanti. Si può concludere che quindi la DCT trasforma un immagine generica ( ) in un dominio spaziale, in un altra ( ) in un dominio a frequenza spaziale. 98

100 Si analizzi il caso particolare della 2D-DCT, utilizzata per le immagini: ( ) ( ) ( ) ( ) ( ) ( ) La corrispondente 2D-IDCT: ( ) ( ) ( ) ( ) ( ) ( ) Entrambe per. Al fine di ottenere una migliore compressione, le basi, rappresentate dai contributi di ( ) nelle espressioni devono essere ortonormali. Date le funzioni ( ) e ( ) esse sono ortonormali se vale: [ ( ) ( )] Di fatti, si può dimostrare che: [ ( ) ( )] { * ( ) ( ) + * ( ) ( ) ( ) ( ) + { 99

101 6. IMAGE COMPRESSION JPEG E lo standard più utilizzato per la compressione di immagini immagini. Creato dalla Joint Photographic Experts Group, utilizza una compressione Lossy dell immagine utilizzando il metodo della DCT. L encoding, come visto da figura, verte su cinque step fondamentali: 1) Trasformazione da RGB a YIQ o YUV. Siccome non si possono considerare avere tutti i colori di RGB ne si considera un sottoinsieme (sottocampionamento colori). L immagine è poi suddivisa in blocchi 8x8. 2) Applicare la DCT sui blocchi così da ottenere i corrispondenti coefficienti: ( ) ( ) Applicare la trasformazione sui blocchi di un immagine comporta il disaccoppiamento di un blocco dai suoi vicini. Questo provoca, con ratio di compressione molto alte, l effetto blocky dove l immagine assume un aspetto simile all effetto pixel. 3) Si effettua la quantizzazione dei blocchi di coefficienti ( ). Tale processo e la principale causa di perdita di informazione nell intero processo di compressione ed è anche quello che determina il grado di compressione al processo. ( ) ( ( ) ( ) ) dove ( ) è una funzione di approssimazione. La bontà della compressione dipende dal numero di quanti che si utilizzano nella quantizzazione: più ne sono, migliore è la 100

102 qualità dell immagine ma minore è il grado di compressione. La matrice ( ) è costruita in modo da minimizzare le perdite e massimizzare la compressione. Essa presenta valori maggiori negli angoli inferiori destri, proprio per minimizzare le perdite in alte frequenze. 4) La preparazione all encoding avviene mediante l ordinamento a ZigZag dei blocchi quantizzati ( ): venendo scansionati in tale maniera aumenta la probabilità di trovare numerose successioni di valori simili. 5) La DCT separa due componenti sul segnale, una DC ed una AC. La componente alternata viene trattata con un RLC encoder, attuando quindi una compressione lossless. Sulla componente DC viene applicato la Differential Pulse Code Modulation (DCPM), che, sommariamente, prevede l approssimazione di gruppi di bit simili ad un gruppo di differenze calcolate tra coppie consecutive di bit del gruppo di partenza. L unico grado di libertà su cui si può agire per ottenere una compressione JPEG ad hoc, è il tasso di quadrettatura, che delimita la dimensione dei blocchi in cui è divisa l immagine e quindi un consequenziale mutamento dell effetto blocky. Esistono quattro tipologie diverse di utilizzo del codificatore JPEG: - Sequential Mode: è il modo di default. Esso effettua la codifica di un immaginel in un singolo SX-DX e TOP-BOT scan. - Progressive Mode: consiste nell effettuare più scansioni dell immagine così da ottenere diversi strati di quest ultima. Ogni strato avrà un rapporto compressione/qualità differente. Il progressive mode è molto utilizzato nelle applicazioni WEB siccome in quest ambito si è indirizzati alla velocità rispetto alla qualità e per questo si usa una codifica raw fatta con una scansione veloce che restituisce un immagine a bassa qualità ma piccole dimensioni. Per ottenere immagini migliori si effettuano poi passate incrementando la dimensione dell immagine compressa. - Hierarchical Mode: consiste nell effettuare un encoding multistrato dell immagine, ottenendone più versioni a diverse risoluzioni. Simile al progressive Mode. - Lossless Mode: utilizza filtri differenziali senza encoding. Poco utilizzato siccome la ratio è prossima ad uno. L organizzazione del formato di una serie di immagini Jpeg è composto da degli indicatori di start of frame e end of frame, con in mezzo il contenuto vero e proprio. Il frame è un immagine. Uno Scan e un sottoinsieme dell immagine (ad esempio la componente rossa) ed e un insieme di segmenti. Un Segmento è un gruppo di blocchi. Un Blocco è un pezzo 8x8 dell immagine. Gli Header sono descrittivi per l elemento a cui sono associati. Lo scan ha anche un insieme di metadati utili per descrivere lo scan stesso. 101

103 JPEG 2000 Rappresenta un evoluzione del normale JPEG. Viene migliorato il compromesso tra compression ratio e qualità dell immagine utilizzando al posto della DCT la Trasformata Wavelet. Sfruttando la sua analisi multiscala e multirisoluzione è possibile agire su diverse versioni della stessa immagine. In particolare, si avrà che nella parte LL vi saranno tutti i contributi a bassa frequenza, mentre negli altri restanti i dettagli. E quindi semplice indirizzare la compressione su queste aree dove le variazioni (componenti frequenziali spaziali in bassa frequenza) sono concentrati, inoltre la wavelet transform è reversibile, quindi applicabile senza problemi su qualsiasi immagine. In generale vi saranno molti vantaggi rispetto al normale JPEG: - Migliore rapporto compression ratio/qualità immagine. - Maggiore dimensione massima delle immagini su cui è applicabile senza problemi (fino a ). - Reiettivo al rumore. - Ottimizzato per immagini native digitali. - Può gestire fino a 256 canali di informazioni rispetto ai soli 3 dei colori del JPEG. 102

104 7. VIDEO COMPRESSION Motion Compression (MC) Un video è una successione di immagini (frames). Affinché il video risulti fluido e non a scatti deve essere riprodotto almeno a 25fps. Ogni frame può essere compressa con le tecniche viste in precedenza, così andando a conoscerne di ogn una le bitmaps. Il vincolo principale del video è il fattore tempo. Si necessita di meccanismi di compressioni rapidi ed efficaci al fine di poter diminuire la dimensione di rappresentazione di ogni frame e quindi del video in generale. Se una telecamera fissa è in registrazione, si avrà un acquisizione con background fisso. La differenza tra due frames e è minima, siccome in questa situazione poco più effettivamente cambiare in di secondo (bassa entropia). Conoscendo questa bassa variazione è possibile, in fase di compressione, andare a codificare il frame e successivamente la sola differenza con. Questo procedimento migliora il tasso di compressione del video e ne diminuisce la dimensione. Il Motion Compensation (MC) è un algoritmo che sfrutta questa proprietà per facilitare la compressione video. Ogni immagine è suddivisa in macroblocchi della dimensione x. Di default la dimensione per le immagini di luminanza è mentre per quelle di chrominanza è. L immagine corrente e detta Target Frame. L MC lavora a livello di macroblocchi. Considerando ad esempio un solo macroblocco, l MC cerca nell immagine successiva (o precedente) la posizione del macroblocco più simile a quello considerato. Una volta trovato, la differenza di posizione tra i due corrisponderà al Motion Vector (MV). Tramite l MV di ogni macroblocco è possibile predire quindi il cambiamento del frame da quello. La ricerca del MV è normalmente limitata all analisi dei vicini del macroblocco considerato. L Hierarchical Search è un metodo di ricerca del MV molto buona, siccome sfrutta la minore risoluzione delle versioni ridotte dell immagine al fine di diminuire la dimensione della Search Window e la complessità della ricerca (meno variazioni). In figura, si parte da una immagine a livello 0 ad alta risoluzione. Applicandone una riduzione multiscala si arriva fino alla versione di livello due a bassa risoluzione e di dimensioni inferiori. Qui ti stima il MV attraverso l MC. 103

105 Trovato il vettore lo si utilizza per trovare con semplicità quello di livello 1, ed infine quello di livello 0. H.261 Uno standard prima dell MPEG, è il primo ad introdurre una compressione utilizzando l algoritmo MC. Fu disegnato per videoconferenze. La codifica video supportava un bit-rate di x kbps, dove, - e richiedeva un ritardo di 50 ms per essere utilizzato per le videoconferenze realtime bidirezionali. In una tipica sequenza di frames H.261 sono definite due tipologie di frames: - Intra-Frames (I-frames): sono considerate come immagini indipendenti sulle quali vengono applicate a pieno le tecniche di compressione per immagini (ex: JPEG). Solitamente sono immagini di background. - Inter-Frames (P-frames): sono immagini non indipendenti che seguono e sono legate ad un I-frame. Di una P-frame è calcolato il MV e codificata la differenza con la I-frame o la P- frame che la precede. Il range minimo del MV è. La codifica di un I-frame effettua una rimozione della ridondanza spaziale, mentre la codifica di un P-frame effettua una rimozione della ridondanza temporale. Il periodo che intercorre tra due I-frames successive dipende dall encoder. Solitamente, per evitare la propagazione di errori di coding si utilizzano due I-frames per secondo. La codifica di un I-frame avviene a livello di macroblocchi e risulta essere simile, se non identica, all encoding di tipo JPEG. Per ogni frame, i macroblocchi hanno dimensione x e sono costituiti da quattro blocchi Y della luminanza a cui sono associati due blocchi x relativi alla chrominanza. La codifica di un P-frame avvien tramite l utilizzo dell algoritmo MC. Per ogni macroblocco del target frame viene calcolato un MV a seconda del macroblocco più simile (best matching) del frame precedente. Si effettua una differenza (foward prediction error), per poi andare ad applicare su questa le procedure di encoding. Se la distanza tra il macroblocco analizzato ed il suo corrispondente predetto è eccessiva (oltre la Search Window), allora si procede d un coding normale del macroblocco e non della differenza. La differenza tra macroblocchi corrisponde alla differenza dei loro MV: 104

106 MPEG-1 MPEG è uno standard definito dalla Moving Pictures Experts Group nel 1988 per lo sviluppo di video digitali. Encoder e decoder sono forniti completamente dalle case costruttrici, a seconda della versione e della tipologia di MPEG. MPEG-1 adopera un formato televisivo di tipo digitale: il CCIR601, anche conosciuto come SIF (Source Input Format). Supporta solo video non-interlacciati e la sua risoluzione è normalmente: - 352x240 per NTSC a 30fps - 352x288 per PAL a 25fps Utilizzando un sottocampionamento di chroma. Anche nell MPEG-1 viene applicata la MC. In questo caso, differentemente dal H.261, la ricerca del macroblocco più simile viene effettuata bidirezionalmente: sia nel frame successivo che in quello precedente. Questo implica che la sequenza di frames è differente dalla versione vista nel H.261: - Bidirectional-Frames (B-frames): usato per la ricerca bidirezionale. Ogni macroblocco di una B-frame avrà fino a due MV, uno per la foward prediction (rispetto al frame precedente) ed uno per la backward prediction (rispetto al frame antecedente). Se entrambi i MV sono validi (non oltre la RW), si considerano entrambi i macroblocchi corrispondenti per ottenere un valore medio ( ) utile per la differenza da codificare. Se solo uno dei due è valido, il procedimento risulta analogo al caso del H.261. Il B-frame offre quindi uno strumento che permette di scegliere lungo quale direzione muoversi nella ricerca del best match. 105

107 Il formato dell-mpeg-1 risulta essere molto complesso: - Sequence layer: una sequenza video è considerata un agglomerato di GOP (Group of Pictures). Inizia con un header nel quale sono contenute informazioni sulle immagini, come la size, frame_rate, bit_rate, matrice di quantizzazione, etc. Headers opzionali tra i GOP indicano il cambiamento di alcuni di questi parametri. - GOP layer: un GOP contiene una o più immagini, una delle quali (di solito l iniziale) deve essere un I-frame. L header contiene informazioni come time_code che indica l esatto istante al quale il frame deve comparire nella sequenza. - Picture layer: ogni immagine è composta da più slices. Le immagini possono essere di tipo I,P o B. - Slice layer: sono necessarie per il bit rate control e per la sincronizzazione dopo la perdita o per la corruzione di bits. Ogni slice può essere composta da un numero differente di macroblocchi. La lunghezza e la posizione di ogni slice è descritta nell header. - Macroblock layer: ogni macroblocco consiste in quattro blocchi Y di luminanza e dei blocchi e relativi alla chrominanza. Tutti i blocchi sono di dimensione x. - Block layer: se i blocchi appartengono ad un I-frame, allora la componente DC viene processata per prima con il DPCM, seguita dalla componente AC con il VLC. Alternativamente si utilizza il VLC per entrambe. 106

108 MPEG-2 Evoluzione del MPEG-1, offre una risoluzione più alta del video con un bit-rate di oltre 4Mbps. Supporta i video interlacciati siccome è un requisito per il broadcasting digitale e per l HDTV. Per i video interlacciati, sono associate ad ogni frame due campi (fields) relativi alle righe pari e dispari. Ogni campo forma una Field-frame (F-frame). Coppie di F-frames formano le normali frames di tipo I,P o B. Questa volta la prediction effettuata con l MC viene applicata sui singoli F-frames. 107

109 MPEG-4 Ulteriore evoluzione dell MPEG, oltre alla compressione, pone grande enfasi sulla interazione con gli utenti. La codifica è basata sugli oggetti presenti nelle scene delle immagini. il bit-rate copre un largo intervallo da 5kbps a 10Mbps. MPEG-7 In questa evoluzione viene soddisfatta la necessita di video e audio retrieval. Questo standard prova a standardizzare delle features, poi utilizzate per poter processare i contenuti video e audio. Il dato deve essere velocemente reperibile siccome il formato per cui viene utilizzato MPEG-7 e principalmente digitale (quindi multimediale). MPEG-7 definisce una serie di descrittori per il dato multimediale: - Feature: caratteristiche dei dati. - Description: un set di Ds e DSs che descrivono le informazioni strutturali e concettuali dei contenuti, la conservazione e l uso dei contenuti. - Descriptors (D): definizione (sintattica e semantica) della feature. - Description Schemes (DS): specifica la struttura e la relazione tra Ds e DDs. - Description Definition Language (DDL): regole sintattiche per esprimere e combinare DSs e Ds. Lo scopo di MPEG-7 è proprio quello di standardizzare Ds, DSs e DDL. I meccanismi di object detection e di comparazione sono molto utili per l IR. Ogni oggetto è ricondotto ad una sua corrispondente regione ed una shape (come in MPEG-4). Da tale shape è possibile riconoscere il movimento di questo oggetto nella sequenza e offrire quindi buone informazioni per un IR. Per ulteriori approfondimenti riguardo l argomento, si rimanda ai numerosissimi manuali in rete e alle slide relative al corso 2011/2012 del corso. 108

110 CAPITOLO IX INDICI 1. DATABASE MULTIMEDIALI (CENNI) Un database a modello relazionale è di norma il database base per eccellenza. Gestito dal DBMS, applicazione che gestisce tutte le procedure effettuate sul DB, esso può essere suddiviso in tre livelli fondamentali: il livello esterno delle viste, il livello centrale logico concettuale e il livello fisico interno. Tale divisione disaccoppia gli strati di un database, i quali sono da considerarsi come veri e propri moduli. Il DBMS inoltre assicura l ACID (Atomicità, Coerenza, Isolamento e Durabilità) delle transazioni. Per la gestione di dati multimediali il modello relazionale non è però ottimale. Per un MMDB si devono ridefinire il modello dei dati e del DBMS. Siccome la maggior parte dei DB è ormai di tipo relazionale (RDB), nel creare MMDB si sceglie di estendere i normali RDB al fine di non perderne il contenuto. Il modello fisico di un MMDB può essere visto come un insieme di tanti depositi, ogn uno rappresentante di un tipo di dato multimediale differente. Per poter gestire questa diversità di tipi di dato, il nuovo DBMS multimediale (MMDBMS) deve essere in grado di gestire in maniera univoca le risorse in ogni deposito: è necessario quindi un metodo di gestione univoco e non ambiguo che permetta la gestione indifferenziata di qualsiasi contenuto all interno del MMDB. La soluzione ricade sul ruolo degli indici: ogni deposito, quindi ogni tipologia di dato multimediale, avrà degli indici ad hoc, che saranno poi gestiti dal MMDBMS come se si trovasse in un normale RDB. Oltre a gestire il query processing, il query planning, etc. il MMDBMS deve essere in grado di gestire anche le particolarità associate alle tipologie specifiche del dato multimediale: query multimediali (by example, by content, etc.). Un Object-Relational Database (ORDB), ed il rispettivo ORBDMS, consiste in un RDB con la possibilità di avere, all interno delle tabelle, degli oggetti o delle vere e proprie classi, mantendo le caratteristiche relazionali dei RDB. E una via di mezzo tra un RDB ed un OODB (Object-Oriented DB). 109

111 2. INDICI MULTIMEDIALI L indice è un mezzo per ottenere un metodo veloce di accesso al valore di una quantità. Viene solitamente presentato all interno di una lista di indici ordinati, e fornisce una logica di accesso per un dato. Siccome i DB in generale ospitano quantità enormi di dati, è necessario un metodo di accesso rapido ed efficiente (l opposto dell accesso sequenziale) che permetta di avere buone performance nonostante la dimensione. L indice riesce in questo, configurandosi come uno strumento potente che permette di accedere ai dati seguendo delle strutture ad albero. Un albero è definito in modo ricorsivo asimmetrico ed è formato da due elementi principali: Livelli e Nodi. Un nodo è un entità connessa alla struttura: se un nodo non ha padri si configura come Root (radice), se invece non ha figli si dice Leaf (foglia). I livelli sono indici di profondità dell albero ed indicano quanto un nodo disti dalla radice (distanza pesata contando i rami). Quanto più un albero è profondo, tanto più aumenta il tempo massimo di ricerca per una foglia. In generale per un albero la complessità di ricerca è dell ordine di ( ) con numero dei nodi. Un albero si dice bilanciato (B-tree) se tutte le sue foglie si trovano sullo stesso livello. Se un albero è bilanciato e di livello 3, allora tutte le foglie saranno sul livello 3 e nessuna si troverà sui livelli 1 e 2. In questa tipologia di albero, la complessità di ricerca di un nodo è dell ordine di ( ) dove e il numero dei nodi e dove è il numero dei livelli. E evidente che questa complessità ridotta rappresenta un utilizzo migliore degli indici e quindi un migliore query planning. Nel caso in cui l albero non sia bilanciato, si ritorna al caso sequenziale e quindi non performante. Mantenere un albero bilanciato non è facile, siccome le operazioni di INSERT e DELETE vanno a mutare in maniera netta l aspetto della struttura. Un metodo consiste nell applicare ad ogni modifica un algoritmo che bilancia automaticamente l albero. In un albero bilanciato ogni nodo (tranne la Root e le Foglie) ha al più e almeno figli. Si ricordi che il B-tree è differente dall albero Binario. L albero Binario è un albedo i cui nodi possono avere al più due figli e non è detto che sia bilanciato (basti pensare alle codifiche VLC e di Huffman). 110

112 I dati multimediali sono rappresentati con serie di features. Alla complessità di questa serie corrisponde la dimensionalità dello spazio di rappresentazione dei dati. l indice, dovrà pertanto essere compatibile con questa spazialità su tutte le dimensioni. Le query che possono arrivare su un MMDB sono del tipo: 1. Exact Match: il risultato si trova nel set di punti ritornato come risposta alla query. 2. Nearest Neighbor: il risultato ritorna il punto più vicino a quello cercato. 3. Range Search: la risposta ritorna tutti i punti all interno di una regione specificata. A seconda di ogni query, avrò alberi di tipologia differente. Un approccio generale per la gestione dei dati, è quello di dividere lo spazio in regioni ed assegnare ad ogni regione un dato. Nel caso in cui la regione è piena, la si divide. L information retrieval vede le regioni dello spazio e non singolarmente i dati: si delimita la ricerca in base alle regioni e solo in quelle si cerca il dato, scartando tutto il resto. Il problema risiede nella dimensionalità degli spazi: andare a gestire in questo modo degli spazi a dimensioni può risultare complesso ed oneroso. Si cerca quindi di ridurne la cardinalità, applicando dei sistemi di trasformazione che linearizzano gli spazi, riducendoli ad una sola dimensione (che è facile da trattare). Durante questa trasformazione è possibile perdere dell informazione, ma con attenzione queste possono essere limitate. Essenziale per una buona trasformazione è che la distanza tra due punti resti quanto più invariata possibile. Nel caso delle immagini (2D space) ci si trova dinanzi una matrice di valori che, per essere portati ad 1D, devono essere linearizzati. La linearizzazione, a seconda dell ordine con cui si procede, può portare a risultati differenti. Il Row/Column Order è una logica di linearizzazione semplice e veloce: si linearizza mettendo una dopo l altra tutte le righe dall alto verso il basso. Questo meccanismo presenta dei problemi soprattutto sulla distanza tra i punti limiti, siccome i punti 7 e 8, dapprima lontani, ora si trovano ad essere adiacenti (come anche 15 e 23), mentre i punti 0 e 8 dapprima vicini si troveranno ora lontani. Il Row/Coloum Prime è una soluzione poco più elaborata: arrivato alla fine della riga, si percorre la successiva nel verso opposto andando così ad eliminare il problema tra i punti 7 e 8 ma lasciando quello tra 0 e 15. Il Cantor Diagonal Order è una trasformazione di tipo diagonale che riesce a diminuire i problemi dei punti limite. Lo Z-Order è invece quello matematicamente migliore, che in questo caso minimizza gli errori e le perdite dovute alle distanze troppo distorte. 111

113 Quindi, dato uno spazio N-dimensionale, ed M punti, si può definire una funzione di distanza che verte sulle features di rappresentazione dello spazio e che risolve le query multimediali attraverso gli indici. 3. -D TREE A seconda del valore di l albero gestirà informazioni a diverse dimensioni. Si consideri il caso di, e quindi del 2D-tree: ogni nodo dovrà tener traccia del tipo di contenuto che rappresenta, delle coordinate nello spazio e dei link dei figli. Il tipo di dato del nodo è strutturato ed al suo interno sono presenti anche puntatori ad altri nodi. 112

114 Per dividere in regioni lo spazio il 2D-tree segue un procedimento ben preciso in base ai livelli. Dato nodi figli ed un nodo padre si avrà che, a seconda della sua posizione: 1. In un livello Dispari: Nel sottoalbero Sinistro, per tutti gli M nodi: Nel sottoalbero Destro, per tutti gli M nodi: N divide la regione in due parti con una linea Orizzontale. 2. In un livello Pari: Nel sottoalbero Sinistro, per tutti gli M nodi: Nel sottoalbero Destro, per tutti gli M nodi: N divide la regione in due parti con una linea Verticale. INSERT Come esempio si consideri una mappa geografica di un sistema GIS. Su di questa viene applicata l indicizzazione 2D-tree nell evidenziare quattro città all interno dello spazio. Per costruire l albero, si necessita di una INSERT iniziale per determinare la root. Si scelga arbitrariamente Torino. Siccome l albero è vuoto, Torino viene inserito al livello 0, pari. Successivamente si sceglie di effettuare una INSERT di Biella. Il livello dell inserzione è 1, dispari. A 113

115 questo punto è necessario fare un controllo sui valori delle coordinate dei due punti, per scegliere in quale sottoalbero di Torino andare a piazzare Biella. Siccome risulta: Biella sarà connessa al sottoalbero destro (Rlink) di Torino. Si voglia effettuare ora l INSERT di Alessandria. Si deve prima confrontare Alessandria con Torino al livello di inserzione 1: Alessandria deve trovarsi quindi connessa al sottoalbero destro di Torino ma il suo puntatore Rlink è già occupato da Biella. Si deve quindi passare a confrontare Alessandria con Biella per un inserimento a livello 2, pari: Quindi Alessandria sarà connessa al sottoalbero sinistro (Llink) di Biella. 114

116 Infine, si voglia inserire Cuneo. Per un inserimento al livello 1, dispari, si confrontano le coordinate di Cuneo e Torino: Quindi Cuneo si troverà connesso al sottoalbero sinistro di Torino. In conclusione, la struttura 2D-tree decompone la mappa in zone asimmetriche. Più saranno i nodi e più fitta sarà la divisione della mappa. Siccome lo sviluppo di tale albero (quindi le INSERT) dipende dalla scelta della root, questa è fatta con attenzione siccome si cerca sempre di rendere quanto più bilanciato possibile un albero. 115

117 DELETE La cancellazione (DELETE) di un nodo è un operazione molto complessa e operazionalmente costosa. Essa dipende dalla struttura generale dell albero e dal nodo che si intende cancellare. Se ad essere cancellata è una foglia, l operazione è semplice e veloce siccome basta rimuoverla ponendo il puntatore del padre che la punta a zero (nel caso precedente foglie sono Alessandria e Cuneo). Se invece ad essere cancellata è un nodo interno, quindi con almeno un figlio, bisogna trovare un padre sostitutivo. Chiamando con il nodo interno da eliminare si deve trovare almeno un candidato (solitamente si stima una lista di candidati) per essere sostituito ad. Il candidato deve rispettare delle proprieta : 1. Per ogni nodo M nel sottoalbero Sinistro: Se il livello è Dispari: SE il livello è Pari: 2. Per ogni nodo M nel sottoalbero Destro: Se il livello è Dispari: SE il livello è Pari: Una volta identificato un candidato, si sostituisce ad N per poi cancellarsi dalla sua posizione originaria. Se non era una foglia il processo si dovrà ripetere per non lasciare i vecchi figli di orfani. Se nell esempio precedente si vuole cancellare con una DELETE Torino, questo deve essere rimpiazzato da un candidato. Il candidato è Alessandria, siccome ha la coordinata Y più piccola di tutti gli altri nodi nel sottoalbero destro, e quindi si sostituirà come root. E poi necessario verificare nuovamente tutte le condizioni di disposizione dei nodi: Biella, trovandosi al livello 1 nel sottoalbero destro, non può avere coordinata X maggiore di quella del padre. Occorre quindi ricostruire interamente l albero da capo. E evidente che la cancellazione risulta essere molto delicata siccome, essendo ricorsiva, il riarrangiamento può arrivare a ricostruire interamente un albero ad ogni nodo eliminato. 116

118 4. POINT QUADTREE (PQT) Questa struttura per indici che, come le altre, è mirata al velocizzare il query processing, è la più utilizzata nei sistemi GIS e fu portata alla ribalta da Hanan Samet. In questa struttura ogni nodo rappresenta implicitamente una regione rettangolare. Tale regione viene suddivisa in quattro parti (quadranti) con una linea verticale ed una orizzontale, entrambe passanti per il punto ( ), contenuto dal rispettivo nodo. Ogni nodo ha quindi quattro figli, ogn uno corrispondente ad un quadrante. La root rappresenta l intera regione dello spazio (in questo caso dell immagine). INSERT La INSERT di un nuovo nodo del PQT è più semplice dei quella del 2D-tree. Si consideri root e nodo da inserire. Inizialmente si controlla se l albero è vuoto ( ) e che non coincida proprio con. Si inizia quindi il ciclo di scansione dell albero, per trovare il quadrante di appartenenza del nodo rispetto ad. Una volta che si è trovato il quadrante, viene assegnato ad il valore del figlio presente in (diverso ovviamente da ). Se il quadrante e privo di altri figli, nel ciclo successivo, risulterà. Quando ciò avviene, il ruolo del figlio di nel quadrante selezionato sarà assegnato a P. 117

119 Se un PQT ha nodi, il worst case per una INSERT è rappresentato quando l albero ha livelli, quindi un massimo di complessita di inserzione. Riprendendo l esempio usato per il 2D-tree, si scelga Torino come root facendo una INSERT con l albero vuoto. Fissate le coordinate e si divide lo spazio (rappresentato dall intera immagine siccome Torino è la root) in quattro regioni. Si voglia adesso effettuare la INSERT di Biella. Essa si troverà nel quadrante NE di Torino, e quindi la si dovrà associare al rispettivo puntatore di Torino. Biella divide quindi la regione NE di Torino in altre quattro regioni. Si inseriscono poi Alessandria e Cuneo con la stessa logica. Si voglia inserire una quinta città, Alba ( ). Questa si troverà in un quadrante di Alessandria e sarà quindi associata al rispettivo suo puntatore. Alba dividerà la regione a cui è associata (ossia il quadrante di Alessandria in cui si trova) in altri quattro quadranti. 118

120 La forma della struttura segue quindi l ordine di inserimento dei nodi e dipende dalla posizione della root. Di norma si sceglie come root un punto approssimativamente al centro dello spazio, così da avere più possibilità di bilanciare l albero. Il PQT è quindi un albero semplice da strutturare ed applicabile a qualsiasi spazio avente definita una funzione di distanza per i punti. E una generalizzazione per le dimensioni dell albero binario. DELETE Sull altra manica, la DELETE risulta essere molto più complessa della INSERT. Si supponga root e che si voglia eliminare un generico punto di coordinate ( ). Si deve innanzitutto effettuare una ricerca (di complessità logaritmica) del nodo all interno dell albero. Se il nodo non è trovato, la DELETE non viene effettuata. Se il nodo viene trovato ed è una foglia, la DELETE viene effettuata ponendo all interno del padre il puntatore corrispondente al quadrante in cui il figlio si trova a NULL. Nel caso in cui D è interno, la DELETE diviene molto complessa. Si consideri l esempio in figura: 119

121 In questo caso il nodo è la root, e gli altri sono i figli che vanno a popolare lo spazio. Si voglia eliminare una delle foglie (C, F o E): la procedura risulta semplice siccome si tratta solo di porre i puntatori dei padri con cui sono riferiti a zero. Si voglia ora eliminare un nodo con un solo figlio (D o B): in questo caso la DELETE eliminerà il nodo scelto e connetterà il suo figlio con il rispettivo padre sullo stesso quadrante. La rimozione di un nodo più interno (A o R) comporta invece un ragionamento leggermente più complesso. In questo caso sia R che A possiedono due figli quindi il loro meccanismo di cancellazione risulterà identico. Si consideri la DELETE sul nodo A, Il candidato che lo rimpiazzerà dovrà essere uno dei due figli. La scelta viene fatta guardando alle future operazioni di bilanciamento. In questo caso, viene scelto il punto D come candidato, siccome richiede meno operazioni per il riarrangiamento (ma nulla vieta di procedere anche con C). Scelto il candidato, si cancella l altro figlio con una DELETE. Eliminato C si ritorna alla situazione in cui A possiede un solo figlio, quindi si assegna D al quadrante NE di R. Dopo l assegnazione si effettua una nuova INSERT di C, riportandolo nella posizione adeguata rispetto alla nuova sottoradice D. C sarà posizionato nel quadrante NW di D. L inserimento di C fa parte del processo di riarrangiamento dell albero. Nel caso in cui si voglia cancellare un nodo interno con più di due figli, si deve trovare per ogni regione il nodo migliore che richieda minori INSERT durante il processo di riarrangiamento. Tra i 120

122 quattro trovati, si sceglie il migliore con lo stesso criterio precedente. Scelto il candidato, ricorsivamente si cancellano gli altri nodi per poi reinserirli in fase di riarrangiamento. E chiaro che in questo caso le INSERT saranno molto più numerose. Di seguito verrà illustrato parte dell algoritmo di Samet per la risoluzione della DELETE nei PQT. Si voglia cancellare il nodo rappresentato dal puntatore P dal PQT la cui radice è rappresentata dal suo puntatore R. Ad ogni cancellazione di P, corrisponde un riarrangiamento di tutto il suo sottoalbero e, ricorsivamente, del sottoalbero relativo al suo sostituto. Se P coincide con R, tutto l albero dovrà essere ricostruito da capo. Se P non ha figli oppure ha un solo figlio, il padre di P riceverà il figlio di P al suo posto. Negli altri casi, in cui P ha più di un figlio, si deve ricercare il miglior candidato che possa sostituirlo, all interno della regione del nodo (ossia il quadrante del padre in cui si trova), analizzando quindi i suoi quadranti. Il candidato si sceglie in base alla disposizione del sottoalbero, cercando di limitare il futuro riarrangiamento. Fissato il nodo come candidato si considera la rispettiva regione, ossia il quadrante di in cui si trova, per poter iniziare a riarrangiare il sottoalbero. Per il quadrante adiacente sulla sinistra di si usa la funzione ( ) (clockwise direction), per quello adiacente sulla destra si usa invece la funzione ( ) (counterclockwise direction) ed infine per il quadrante opposto si usa ( ). Infine si deve sistemare anche la stessa regione, tramite la funzione ( ). La funzione di riarrangiamento ( ) è ricorsiva e differente in base al quadrante alla quale si applica. Cerca sempre di riportarsi al caso semplice in cui un nodo possieda un solo figlio oppure che sia una foglia. La funzione ( ) invece sceglie, nel quadrante in cui viene scelto il candidato, la migliore disposizione per il sottoalbero, riarrangiandolo con il candidato come nuova sottoroot. 121

123 K-Nearest Neighbor Search (K-NN Search) Per query come nearest neighbor (NN) e range search (RS), il PQT è la struttura per eccellenza. In particolare la query di tipo NN è la più importante per il PQT: data una query NN effettuata su un punto, si avranno in risposta i punti (quindi definiti a priori) del PQT che sono più vicini a (K-NN Search). Al concetto di vicinanza deve essere associato quindi una ben definita distanza ( ) che deve essere conforme al tipo di features scelte per rappresentare lo spazio (la distanza è Euclidea se le features sono spaziali). Per semplicità di analisi si suppone, riducendo quindi la ricerca al punto più vicino a. L algoritmo K-NN si basa sull utilizzo di due variabili: - : contiene il valore della distanza tra il candidato e il punto. - : contiene le coordinate del punto contenute nel nodo candidato. Attraverso queste due variabili, si tiene traccia, nel caso di, del singolo nodo candidato ad essere il più vicino. Le due variabili sono inizializzate a valori di default (infinito per e NULL per ). La ricerca parte dalla Root, per poi scendere per l albero. Di ogni nodo N esaminato, viene verificata inizialmente l intersezione tra la regione a cui è associato (ossia il quadrante del padre in cui N è situato) ed il punto, tramite una distanza. Se questa risulta più piccola del valore di allora il nodo può essere visitato. Se invece la distanza risulta più grande, allora il nodo e tutto il suo sottoalbero sono potati (pruning). Verificata questa condizione, si calcola la distanza tra il punto e e la si confronta con il valore di. Se questa risulta minore, diviene il nuovo valore della variabile, si aggiorna col valore del punto corrispondente ad e si procede con la ricerca. Altrimenti si continua direttamente. La potatura è molto efficace nel ridurre la complessità della ricerca sull albero, ed è per tale motivo che il K-NN è molto usato con i PQT. 122

124 Si voglia cercare, ad esempio, in un albero come in figura il punto ( ). Lo spazio in cui si effettua la ricerca è puramente spaziale (come la mappa vista in precedenza) e quindi viene utilizzata una distanza Euclidea. Siano ( ) e ( ) due punti e una regione generica: ( ) ( ) ( ) ( ) * ( ) + Quindi la distanza di un punto da una regione si riconduce alla distanza minima tra il punto considerato ed il punto più vicino ad esso all interno della regione. Quando tale distanza è nulla ( ( ) ), vuol dire che il punto. Inizialmente sono settati i valori = e e si inizia la ricerca dalla Root. Siccome la regione di è l intera immagine, sicuramente andrà ad intersecare il punto. Quindi: ( ) (( ) ( )) ( ) ( ) ( ) Si procede con l analizzare i figli di, partendo dalla sinistra ossia il nodo ( ) situato nella regione NW. ( ) ( ) (( ) ( )) ( ) ( ) La distanza con il nodo risulta essere minore del valore in e quindi si considera come possibile candidato. Si devono comunque analizzare anche gli altri figli di. L unico altro è ( ) nel quadrante SE: ( ) Siccome la condizione sulla regione non è soddisfatta, il nodo ed il suo sottoalbero saranno destinati alla potatura. Per verificare: ( ) (( ) ( )) ( ) ( ) 123

125 E evidente che la distanza tra e e maggiore del valore in. Il nodo e il sottoalbero ad esso corrispondente viene allora potato. è dunque il nuovo candidato: ( ) ( ) Si procede quindi la ricerca per il sottoalbero di ( ), situato nella regione NW di : partendo dal figlio più a sinistra, ossia ( ) ( ) (( ) ( )) ( ) ( ) Nonostante la condizione sulla regione fosse corretta, il valore della distanza ha costretto a scartare come candidato. e tutto il suo sottoalbero vengono quindi potati. La ricerca termina, siccome non vi sono più nodi da analizzare. Si è quindi trovato che il punto più vicino a quello della query è ( ). Il ragionamento è facilmente estendibile anche per valori di e quindi di piu vicini da considerare al punto. Il meccanismo di analisi dell albero è lo stesso, ma in questo caso non si conserva una coppia di variabili e bensì un vettore di coppie di dimensione. In questo vettore si avrà un valore che sarà la distanza più piccola da tra i vari candidati del vettore. Tale valore sarà quello con cui confrontare le regioni e le distanze dei vari nodi analizzati dell albero. Nel caso se ne trovi una minore di allora si esclude e si inserisce il valore nel vettore. Per quelle che risultano maggiori di si effettua la potatura. Range Search E una query che come risposta ottiene tutti i punti all interno di una regione definita intorno al punto. Le regioni possono essere di svariate forme, ma per semplicità si supporrà una circonferenza. Differentemente dalla K-NN Search, con la RS non si conosce a priori il numero di punti ottenibili in risposta. Data quindi una distanza, si otterrà una circonferenza ( ) di tale raggio intorno al punto, all interno della quale vi saranno tutti i punti che dovranno essere restituiti nella risposta della query. La selezione dei candidati è fatta per esclusione: se un nodo che viene analizzato si trova in una regione (intesa il quadrante definito dal padre ed in cui si trova) la quale non interseca la circonferenza ( ), allora viene potato con tutto il suo sottoalbero. Ricalcando l esempio precedente, si consideri ( ) con. Si definisce la circonferenza ( ) e l insieme dei candidati * +. Si inizia con l analizzare la Root. Siccome la regione della Root è l intera immagine, sicuramente questa interseca la circonferenza ( ). Ne si calcola quindi direttamente la distanza: 124

126 ( ) Quindi. Successivamente si analizzano i figli di, iniziando da. La regione in cui A si trova è quella relativa al quadrante NW di. Si deve controllare quindi che tale regione intersechi la circonferenza ( ). Analogamente per, situato nel quadrante SE di, si dovrà verificare la condizione di intersezione: ( ) ( ) Quindi, dai risultati si evince che la circonferenza ( ) interseca la regione NW, ma non la SE. Quindi il punto viene potato con tutto il suo sottoalbero. Tornando alla regione NW, si va ora a misurare la distanza tra il punto e : ( ) * + Quindi, e viene inserito come candidato nell insieme delle risposte. Siccome la regione di A è valida, si procede con l analisi dei figli di. Si studia quindi, andando a ragionare con la sua regione, ossia controllando se il quadrante NW di interseca la circonferenza ( ). ( ) Il quadrante, ossia la regione di, interseca la circonferenza ( ). Si deve quindi analizzare la distanza con : ( ) Quindi e la ricerca è conclusa. la risposta alla query sarà rappresentata soltanto dal punto Il problema dei PQT è l algoritmo di DELETE che risulta essere molto lento e complesso. Inoltre, per la sua natura, nonostante la scelta di una Root accurata l albero cresce in maniera fortemente non bilanciata, questo dovuto anche alla dimensione molto variabile delle regioni descritte dai punti. Tutti questi fattori rallentano le esecuzioni delle query, siccome rendono i tempi di esecuzione del K-NN e del RS impredicibili. Per questo motivo si cerca di effettuare al massimo il pruning. 5. R-TREE Sono utilizzati per indicizzare data in due dimensioni con l utilizzo di rettangoli generalizzati. Differentemente dalle strutture per indici precedenti che utilizzano dei punti, gli R-tree utilizzano aree. Un rettangolo generalizzato può essere definito per qualsiasi dimensionalità: sia uno spazio a dimensioni, un rettangolo generalizzato definito su questo spazio, corrisponde ad una serie di disuguaglianze presa ogn una su una dimensione differente: 125

127 Un immagine può quindi essere vista come una regione (rettangolo per l appunto) in uno spazio - dimensionale piuttosto che un punto. Questa visione può rendere più qualitativa la gestione dei contenuti multimediali (in questo caso relativo alle sole immagini). la caratteristica attraente degli R-tree è che sono delle generalizzazioni di B-tree, quindi sono bilanciati. Ogni nodo può contenere fino ad rettangoli e non meno di. Di solito. Come per un B-tree: tutte le foglie sono allo stesso livello e la Root ha almeno due figli, sempre che non sia una foglia. Ogni nodo rappresenta implicitamente una regione, e quindi la Root rappresenta l intera immagine. La regione di un generico nodo rappresenta la scatola (Bound Box) di rettangoli associati a quel nodo. Diversamente dai PQT le regioni possono sovrapporsi (overlap). Per evitare sovrapposizioni e per gestire le massime capacità dei nodi, al fine di tener bilanciato l albero, si effettuano degli split. Uno split può essere mirato a minimizzare l area complessiva dei sottoinsiemi dei rettangoli nello spazio, oppure per minimizzare l overlap in un singolo rettangolo. Lo split ha una complessità di tipo esponenziale, ma esistono altre metodologie più complesse che lo riducono fino all ordine quadratico. Si consideri ad esempio la dimensione massima di un nodo, e la situazione in figura, dove, con l aggiunta di un quarto elemento si deve scegliere si splittare. Se si sceglie di minimizzare l area, occupando meno spazio e facilitando la potatura, si conservano comunque gli overlap: se una query sceglie proprio un punto che è in overlap tra più rettangolini (proprio sull intersezione tra e o su e ), l acceso dovrà essere fatto su tutti i nodi che lo intersecano (in questo caso due). Se si sceglie invece di minimizzare l overlap, si evita il problema precedente ma si aumenta l area complessiva occupata, rendendo così meno veloce la potatura. 126

128 INSERT Si consideri ad esempio uno spazio bidimensionale e si supponga N=4. La root avrà come regione tutta l immagine e, inizialmente, avrà i quattro spazi per i figli vuoti. Si inseriscono quattro rettangoli associandoli come figli di e li si dispongono in modo che non si intersechino. Si vuole inserire ora un quinto rettangolo nello spazio, lievemente in overlap con. Il nodo ha però raggiunto la capacità massima di figli ed occorre quindi uno splitting. Si definiscono due nodi ausiliari ( e ), vuoti, che verranno utilizzati per gestire i cinque elementi inseriti e permettendo alla radice di mantenere il requisito di figli. Questi rettangoli ausiliari sono dimensionati in modo da minimizzare l area degli elementi che andranno a contenere, lasciando più spazio alla root. Siccome il rettangolo e situato in prossimità dei rettangoli e, al rettangolo verranno associati questi tre vicini, mentre gli altri due saranno assegnati al rettangolo. Con la INSERT di ed si riempie anche il nodo. Si procede quindi ad uno splitting analogo a quello precedente, definendo un terzo nodo ausiliario di dimensioni tali da minimizzare l area che racchiude e, e ridimensionando al fine di essere ottimale per l area complessiva di ed. 127

129 In conclusione l algoritmo va a creare dei livelli intermedi al crescere della complessità in generale dell albero, mantenendolo sempre bilanciato. Nel caso in cui un elemento inserito si trovi in overlap tra due nodi, quindi sovrapposto a due scatole (Bound Boxes) differenti e non con un altro rettangolo, si procede ad uno splitting dello stesso rettangolo inserito, così da bilanciare l albero e mantenere al minimo il grado di overlapping. Ovviamente se uno dei due nodi (o anche entrambi) è pieno, si procede ad un ulteriore splitting. Le immagini splittate in questo modo si dicono frammentate, e l effetto che hanno sullo spazio è quello della segmentazione. K-NN Search Si analizzi il caso in cui con un R-tree si voglia rispondere ad una query di tipo K-NN. Si consideri al solito il caso base per facilitare l analisi dell algoritmo. La metodologia è identica a quella precedente, se non per il fatto che questa volta si ragiona con delle regioni e non con dei punti. Mantenendo quindi intatti i ragionamenti precedenti, si cambia solo la metrica di distanza dello spazio, che da puntuale, diventa piana. Siano due regioni e : ( ) ( ) * ( ) + 128

130 Dato quindi un rettangolo relativo alla query, si vuole trovare il rettangolo nello spazio più vicino ad esso. Si inizializzano = e. Si analizza prima la root che, banalmente, interseca Si passa quindi ad analizzare le intersezioni con le regioni descritte da e. Si sceglie di iniziare da che è in prossimità di. L area descritta da interseca quella di quindi si può procedere alla sua ispezione. Al suo interno si studiano tutti i rettangoli presenti fino a trovare quello la cui regione interseca quella di e stimandone la distanza per verificare se vince su. Nel caso in analisi: ( ) Andando poi ad esaminare i restanti nodi e, siccome non intersecano la regione di saranno immediatamente potati. Tutti i ragionamenti finora effettuati sono stati effettuati con l ipotesi che tutte le immagini siano riconducibili a rettangoli generalizzati. In realtà questo non è così semplice siccome richiede un lavoro ed un accortezza non indifferente. 129

131 CAPITOLO X MULTIMEDIA DATABASE 1. DATABASE MULTIMEDIALI Si è già introdotto in precedenza il concetto di MMDB e si è visto come, nell ambito concettuale della sua struttura, gli indici siano uno strumento essenziale per poter accedere efficientemente ed efficacemente ai dati stipati nel database. Il modello strutturale di un MMDB non è unico e può assumere diverse forme in base alla concettualizzazione e la gestione degli indici. Un primo modello si basa sul Principio di Autonomia e consiste, come già visto in precedenza, nel gestire un set di indici ad hoc per ogni tipologia di dati multimediale presenti nei vari depositi. Questo è il modello più semplice realizzabile e prevede una gestione impeccabile della diversità degli indici da parte del MMDBMS. Un secondo modello si basa invece sul Principio di Uniformità. Diversamente dal modello precedente, qui gli indici sono unificati in un'unica macro tipologia. Sarà compito del MMDBMS riconoscere a quale tipo di dato questi indici sono associati. Infine vi sono i Modelli Ibridi, nati dall unione dei due precedenti. In questo modello gli indici sono gestiti in parte in maniera autonoma ed in altra parte in modo uniforme. Livello Fisico: Gestione dei Dati Una prima idea di costruzione di un MMDB può essere quella di tenere tutti i file separati e di costruire una tabella per ogni dato contenente le sue informazioni. Ovviamente questa logica risulta essere troppo onerosa per un MMDB, ed è per questo che il modello dei dati deve essere pensato per favorire la propria indicizzazione. 130

132 Si è visto che gli MMDB, organizzano i dati ad oggetti (tipo strutturato o delle vere e proprie classi) in un ambiente Object Relational (ORDBMS). Questi oggetti hanno una dimensione variabile, che cresce linearmente con la dimensione dei dati multimediali a cui sono associati. Siccome normalmente nei DB sono stipati dati multimediali di grandi dimensioni, si parlerà di Large Object (LOB). I LOB facilitano la memorizzazione di dati di grosse dimensioni (Mb e superiore) e si suddividono in due categorie: - BLOB (Binary LOB): l oggetto multimediale è rappresentato in forma binaria. - CLOB (Character LOB): rappresentano l oggetto multimediale come una sequenza di caratteri. La caratteristica peculiare dei LOB è che sono memorizzati esternamente alle tabelle ma internamente al DB. Per questo motivo il dato deve rispettare le caratteristiche ACID che ne assicurano il comportamento transazionale. Il MMDBMS vedrà il dato come una tabella all interno della quale vi saranno i reali riferimenti al LOB e dovrà gestirli dal punto di vista dell accesso, ripristino e autorizzazione. MMDBMS Engine Per gestire al meglio le diverse tipologie di dati presenti in relazione alla complessità dei depositi dati che formano il MMDB, il MMDBMS riassume più moduli al suo interno, che si occupano della gestione a basso livelli del MMDB: - Storage Manager: si occupa di memorizzare i LOB dei dati multimediali nella MMBD. - Transaction Manager: gestisce la concorrenza degli accessi di utenti ed applicazioni ai dati multimediali. Come per i normali RDB, vuole che siano rispettate le ACID dei dati. - Directory Manager: si occupa dell archiviazione dei dati multimediali su memoria secondaria, gestendone anche accesso e protezione. - Object Manager: gestisce la creazione, inserimento, aggiornamento e cancellazione dei LOB. - Media Integrator: si occupa dell integrazione tra i vari tipi di dati multimediali. - Query Manager: si occupa della risoluzione delle query multimediali (by example, by content, etc.) applicando tutti i metodi risolutivi visti nelle scorse lezioni. L interfaccia dei MMDBMS è grafica siccome deve predisporsi in maniera semplice ed efficace alla gestione delle query multimediali, sia quando queste vengono formate ed inviate come richieste, sia quando il sistema deve presentarne le risposte. Ovviamente l interfaccia deve essere adeguata 131

133 alla tipologia di piattaforma sulla quale viene posta; generalmente è utilizzata in relazione al web. Il livello interfaccia è completamente disaccoppiato dal MMDB. Al di sotto dell interfaccia vi è il Livello Applicativo che contiene i moduli che permettono la comunicazione (quindi vere e proprie interfacce) tra il livello interfaccia e quello fisico del MMDB. Questi moduli (elencati sopra) devono garantire la trasformazione di una query multimediale in una normale SQL comprendibile al livello più basso del MMDB. Il Popolamento di un MMDB non può avvenire in maniera puramente manuale, ma deve servirsi di meccanismi di alimentazione automatica: connettendosi a sistemi come i social networks acquisiscono immagini, testo e quant altro. Questi meccanismi sono possibili grazie al wrapping, ossia alla possibilità di utilizzare degli oggetti non modificabili, siccome appartenenti ad altri sistemi, tramite delle API messe a disposizione dai sistemi stessi. Un wrapper quindi è un informazione che precede o incornicia delle informazioni principali: 1) In internet, le stringhe e ftp:// sono anche chiamati wrapper. 2) Nei linguaggi di programmazione, HTML e nei motori di ricerca, i wrapper sono i caratteri utilizzati per incorniciare le informazioni importanti: <e> per HTML, {e} per LaTex. 3) Nei linguaggi object-oriented un wrapper è un oggetto che contiene altri oggetti, ossia un oggetto che mette a disposizione librerie esterne all applicazione in cui è istanziato. 4) Nella trasmissione dei dati, il wrapper è la sequenza di dati che sono inseriti all inizio (header) e alla fine (trailer) dei dai da trasmettere. 5) In un DB, un wrapper viene utilizzato per determinare chi ha accesso e che tipo di accesso è possibile ai dati. Un MMDB può quindi gestire anche quelle che sono immagini (Image DB) e video (Video DB). In ambo i casi le risposte non saranno mai uniche e precise come nei RDB, siccome col concetto di similarità e di ricerca complessa, è inevitabile consegnare in risposta un set di soluzioni. I sistemi 132

134 utilizzati dal Query Manager, modulo del MMDBMS, riconoscono le similitudini tra oggetti, e anche del movimento nel caso dei video, per riuscire ad ottenere delle risposte esaurienti ed attendibili alle query sottoposte. Sistemi analoghi sono utilizzati anche per Audio e Testo. 2. ORACLE INTERMEDIA Estensione di Oracle, è un servizio di memorizzazione di dati multimediali: internamente come BLOB e anche esternamente come URL. La differenza tra i due, dal punto di vista del DBMS è puramente logica. Il DBMS è suddiviso in due livelli fondamentali: il livello inferiore Oracle Database è il DBMS vero e proprio, mentre il livello superiore Oracle Application Server raggruppa tutti i servizi di intermedia, ossia quelle applicazioni che permettono di utilizzare le funzioni del DB. 133

135 Gestione dei Dati Ogni oggetto multimediale in Oracle può essere memorizzato, manipolato ed interrogato utilizzando un particolare tipo di dato. Tali tipi particolari sono tutti definiti nel package ORDSYS, assieme ai relativi attributi, proprietà e metodi di accesso. Nel caso particolare delle immagini si ha una classe definita come ORDImage costituita da: - Attributi: che rappresentano il dato sorgente, ossia l immagine. - Proprieta globali: come dimensioni, tipo, larghezza, lunghezza, compressione, etc. - Metodi: che permettono di gestire il dato, ossia l immagine. - Signature: definita dal campo ORDImageSignature, che rappresenta una combinazione di features associate ad un immagine. Si supponga di voler creare una tabella contenente delle immagini relative a fotografie, una possibile dichiarazione sarà del tipo: 134

136 Il Costruttore inizializza gli attributi della classe relativa all immagine, ma non la memorizza all interno del DB (ossia non carica l immagine nel campo BLOB). La funzione ( ) inizializza l oggetto ponendo tutti i suoi attributi a, esclusi: - (). - (indica che l immagine è caricata nel File System locale). -. Ad esempio, nell effettuare una INSERT nella tabella prima creata: Sono previsti metodi di Caricamento, nel caso in cui si voglia copiare l immagine nel DBMS successivamente alla sua inizializzazione. L idea è quella di riempire con la funzione ( ) l istanza dell immagine creata nella tabella di partenza. Tale funzione rappresenta quindi il metodo di caricamento offerto dalla classe immagine per legarsi al DBMS tramite l assegnazione ad un BLOB, e quindi entrare nella visione del DB. Particolare attenzione deve essere posta sull istruzione : questa infatti blocca la tupla risultante dalla SELECT, ossia quella il cui. E sarà proprio questa ad essere poi riempita con il caricamento. 135

137 E possibile usare anche riferimenti esterni tramite l utilizzo degli URL. Creata l immagine, si avranno a disposizione ulteriori metodi di copia, processamento, settaggio attributi e di accesso agli attributi (una per attributo). La più importante tra questi è di sicuro la Signature. Essa rappresenta una combinazione di features (color, texture, shape, space location, etc.) calcolate relativamente all immagine ed è un attributo unico di tipo BLOB. Le features della signature individuano un punto nello spazio multimediale in cui sono rappresentate le immagini. la 136

138 somma dei valori delle features di signature è 100. La signature di un immagine viene creata con la funzione ( ). Nella classe sono definiti anche degli Operatori, di cui due sono i principali: - ( ): verifica la similitudine tra due immagini attraverso le loro signature. L operatore calcola la media pesata delle distanze di ogni feature considerata, pesandole rispetto all importanza che le si attribuisce. Stabilito un valor di threshold (soglia) compreso tra 1 e 100, vi si comparerà la distanza e restituirà 1 se questa sarà minore della soglia. - ( ): restituisce il valore di similarità tra due signature. Per poter essere invocata, deve essere applicata su oggetti che sono certamente simili, ossia che sono risultati di una ( ). è un intero che rappresenta l identificatore di una chiamata a ( ). Per esempio, si voglia no determinare tutte le fotografie simili ad una data foto in un database contenente solo immagini. si devono determinare quindi i gradi di similitudine con le altre immagini, seguendo quelli che sono dei pesi prestabiliti (Weighted) delle features. Sia consegnata maggior importanza al colore: Si fissi, si vuole restituire tutti gli identificatori delle fotografie che soddisfano tale query, insieme al relativo score calcolato. Quindi, considerando la variabile di tipo, si avrà la query: 137

139 Si supponga ora un immagine trovata, con le seguenti distanze dalle features della query: Si calcola la distanza media pesata: Che risulta maggiore della soglia. L immagine non viene quindi considerata. Nel caso in cui tale distanza fosse stata minore della soglia, allora l immagine trovata sarebbe stata una delle soluzioni della query. Si supponga di voler determinare la fotografia più simile a. La query corrispondente sarà : 138

140 CAPITOLO XI INTRODUZIONE A XML 1. INTRODUZIONE A XML XML (extended Markup Language) è una evoluzione di HTML (HyperText Markup Language), entrambi evoluzioni SGML (Standard Generalized Makrup Language). Il suo scopo è quello di cercare di definire non un linguaggio, bensì una famiglia di linguaggi che possa definire in maniera separata struttura e contenuto. XML definisce un modello di dati semistrutturati, siccome composti sia da dati strutturati e testo. Di seguito è presentato un modello delle strutture dei dati utilizzati in XML. In questa struttura vi è sia la struttura del dato che i valori dei suoi attributi. Si presenta come un insieme di TAG (in rosso) ai quali è possibile associare dei valori (in nero). I TAG sono predefiniti, quindi fissi, in HTML, mentre XML offre all utente l opportunità di poterne definire dei propri (per questo extended ML). I TAG sono gestiti in maniera gerarchica da XML, non potendosi relazionare con altri record come nel modello relazionale. Per questa caratteristica, i database nativi in XML sono fortemente gerarchici, facili da usare ma difficili da gestire a livello DB. Per tale motivo si utilizzano modelli ibridi dove un RDB gestisce un interfaccia XML così da unire i vantaggi di entrambi i modelli. Esiste comunque un set prefissato di TAG che possono essere utilizzati e condivisi da più applicazioni. Per comprendere quali di questi sono utilizzabili e quali no, è necessaria una descrizione dei dati coerente e globale. Uno dei metodi per poter definire questa descrizione è l utilizzo dei Namespace, ossia degli spazi dei nomi inclusi nel file XML. Un altro metodo consiste nell associare al file XML un DTD (Document Type Definition) il quale: - Definisce gli elementi leciti all interno del documento. Non si potranno usare quindi altri elementi se non quelli definiti. Una specie di vocabolario per i file che lo useranno. - Definisce la struttura di ogni elemento, indicando cosa può contenere, l ordine, la quantità di elementi e se sono opzionali o obbligatori. Una specie di grammatica. - Dichiara una serie di attributi per ogni elemento e che valori possono o devono assumere. - Fornisce la possibilità di dichiarare entità e di importare parti di altri DTD. 139

141 - Utile ad un parser per controllare la correttezza lessicale e sintattica di un documento (well formed). Il parser è una parte del compilatore (è quello che dice, ad esempio, che non si è chiusa una parentesi in un file di programmazione). Il DTD, come anche gli altri Schemas, è riferito solitamente all inizio del file XML. Ogni DTD è identificato da un Uniform Resource Identifier (URI) così da non avere ambiguità nella loro definizione. Una URI è una stringa che identifica univocamente una risorsa generica che può essere un indirizzo web, un documento, un'immagine, un file, un servizio, un indirizzo di posta elettronica, etc. l URI è una generalizzazione di URL. L utilità di una URI la si evince quando due file XML differenti, appartenenti a differenti applicazioni condividono lo stesso DTD. Con l URI si è sicuri che il DTD offrirà alle applicazioni lo stesso set di dati definiti, rendendoli compatibili. Un evoluzione del DTD è lo XSD (XML Schema Definition), un linguaggio di descrizione che risulta più potente dal punto di vista semantico: aumenta la capacità di modellazione del dato del XML. Un file più un XSD o un DTD riescono a formattare un documento. Siccome un file XML nient altro è che un agglomerato di testo, ad esso è associato una codifica di tipo UNICODE, la quale associa ad ogni carattere usato per la stesura del testo un numero univoco, rendendolo così indipendente dalla lingua con cui esso è composto, dalla piattaforma e dal programma. Per questi motivo XML è lo standard per eccellenza dello scambio di data siccome può mettere in comunicazione delle applicazioni diverse, create da persone diverse ma con la stessa semantica (DTD, Namespaces, XSD). XML non si presenta mai da solo, ma con un insieme di tools: - XSD, DTD, Namespaces. - XPath: linguaggio che permette di accedere a parti di documento XML. - XLink and XPointer: offrono un supporto a riferimenti incrociati tra documenti differenti e anche tra parti diverse dello stesso documento. - XSLT: linguaggio per trasformare documenti XML in altri documenti XML. Ad esempio in HTML per poter visualizzare file XML. - XQuery: linguaggio per effettuare query sul file XML. Un file XML può quindi essere sia un semplice file di testo dove sono definite alcune strutture dati, oppure quasi un database (come un elenco telefonico). Sintassi XML XML è formato da TAG (sempre in coppie di apertura e chiusura) e testo che devono essere innestati in maniera corretta (come sottoblocchi). Il testo si configura come unico tipo base per XML e viene indicato con PCDATA. 140

142 Nel definire tipologie di dati, è possibile associare ad un TAG degli attributi, al solo fine di velocizzarne la definizione. E possibile utilizzare lo stesso TAG più volte all interno di una struttura per indicarne due istanze con significato differente. il segmento di codice XML che si trova tra un TAG di apertura ed uno di chiusura viene chiamato elemento. Un documento XML può quindi configurarsi come un albero, dove le foglie sono vuote o contenenti PCDATA. Un file XML, come sopra detto, deve essere sempre well formed. Questo accade se: 1) I TAG sono sintatticamente corretti. 2) Ogni TAG ha apertura e chiusura. 3) Esiste un TAG Radice (riflette la struttura gerarchica del XML). 4) Gli innesti dei TAG sono corretti. 141

143 Per la sua natura gerarchica, la rappresentazione di un DB con XML è diversa dal modello RDB. Nel modello RDB, la tabella definisce la relazione tra la tabella e quella. Nel caso del modello XML DB, la tabella perde la caratteristica di relazionare e diventa un altro semplice nodo nella struttura gerarchica XML. Per ulteriori approfondimenti riguardo l argomento, si rimanda ai numerosissimi manuali in rete e alle slide relative al corso 2011/ SMIL (Synchronized Multimedia Integration Language) SMIL è una raccomandazione W3C che permette la creazione di presentazioni multimediali sul web. Basato su XML, permette di miscelare diverse tipologie di media (suoni, testo, video, immagini etc.) sincronizzandone l esecuzione mediante una timeline. SMIL è utile sono in presentazioni lineari (tipo slideshows) mentre per quelle non-lineari risulta inappropriato. Utilizza un formato HTML con TAG appositi, che indicano l elemento di tipo SMIL. SMIL è completamente indipendente dell architettura sul quale viene creato il file, l unico vincolo è il player che deve 142

144 essere adeguato (browser + plugin solitamente). SMIL non è molto utilizzato siccome le case produttrici hanno scelto linguaggi che hanno già avevano in cantiere per lo stesso scopo. Nell intestazione HEAD si inseriscono le metainformazioni che descrivono le informazioni contenute nel file. Il LAYOUT rappresenta la facciata di presentazione della presentazione sia spaziale che temporale. Il BODY rappresenta la parte di codice che descrive i media e la loro rappresentazione. La creazione di una presentazione SMIL verte su tre punti cardini: - Creazione delle aree per i media. - Riempimento delle aree con gli oggetti multimediali. - Determinazione dell ordine di esecuzione degli oggetti (Serie, Parallelo o Combinazione tra i due). SMIL è case-sensitive, ossia sensibile alle maiuscole. Per tale motivo bisogna ricordarsi che tutti i TAG sono scritti con le minuscole. Quindi, in un elemento SMIL si devono specificare: - Content: gli oggetti multimediali o parti di essi. - Layouts: spaziali o temporali, per la rappresentazione dell elemento. - Links: sorgente e destinazione. - Alternative Content: a seconda dell utente o/e della connessione, si adopereranno tecniche di riproduzione dell elemento diverse al fine di ottimizzare la banda, risoluzione e quant altro. Si terrà conto quindi se a visualizzare la presentazione sarà un olandese con fibra ottica in full HD, oppure un cinese con una connessione 56k in LD. - Semantic Annotations: viene effettuata con dei metadati che sono essenziali per il retreival. 143

145 Il source (src) è un attributo che rappresenta una URI (URL in più dei casi) di un oggetto multimediale e quindi la fonte dal quale attingere l informazione. I nomi dati agli oggetti sono solo per la leggibilità ma non sono usati per la loro determinazione. Ref, text, textstream, img, audio, video e animation sono tutti elementi multimediali. Ogn uno di loro occuperà uno spazio differente all interno del layout. Si consideri uno spazio formato dagli assi, relativi a coordinate spaziali che rappresentano un istante di un oggetto multimediale e che rappresenta lo scorrere del tempo. In questo spazio si configura come una stringa monodimensionale, come un area, come una immagine in movimento (di profondità su pari alla sua durata) e come una stringa in movimento. and Il tempo e lo spazio sono trattati in maniera differente nel layout. Il tempo è ristretto ad un'unica dimensione, e quindi viene sempre associato come una durata ad ogni oggetto multimediale. Gli attributi clipbegin e clipend offrono meccanismi per gestire l istante esatto in cui gli oggetti compaiono e scompaiono nella presentazione, ossia per gestire il Temporal Layout. 144

146 Layout Element Inteso come Layout Spaziale, quindi relativo agli assi e, fornisce gli strumenti per definire le regioni dove poi saranno piazzati gli oggetti multimediali all interno dello spazio di presentazione. Questo attributo deve comparire nella sezione head dell elemento SMIL. Ogni zona della presentazione definita in questa sezione deve essere specificata in altezza, larghezza e con un colore di sfondo. Inizialmente si definisce una root-layout che definirà la grandezza e le prime caratteristiche della finestra di visualizzazione della presentazione. In questa, verranno poi a definirsi le varie zone. Viene definito un ID (XML identifier) per ogni regione, siccome questo verrà riferito nella definizione di nuovi oggetti multimediali per posizionarli nello spazio. L altezza e la larghezza sono espresse in pixels. L indice Z rappresenta lo stacking order, ossia l ordine di sovrapposizione degli oggetti (l oggetto con l indice più alto sarà al top della pila). 145

147 Durata Elemento La durata di un elemento viene espressa principalmente in relazione a dati di tipo audio e video. La durata intrinseca di testo ed immagini è 0, mentre per audio e video è pari al proprio tempo di esecuzione. Tuttavia, è possibile manipolare questa durata, tramite la specifica di alcuni attributi. L attributo definisce esplicitamente la durata dell elemento. Questa può essere inferiore o superiore alla durata intrinseca. L attributo fornisce uno strumento di ripetizione dell elemento. Tramite il settaggio di un intero, si indica quante volte l oggetto viene ripetuto. Se viene specificato indefinite, allora si ripeterà all infinito. In combinazione con si può avere un limite esplicito alle ripetizioni. 146

148 Riproduzione in Serie e in Parallelo L attributo permette di riprodurre in parallelo gruppi di elementi. Gli elementi del gruppo iniziano allo stesso istante. Si può riferire anche ad una regione specifica, agendo solo su quella. La durata del gruppo dipende dal figlio con durata maggiore. L attributo permette invece di riprodurre in sequenza un gruppo di elementi. L ordine di riproduzione è espresso dall ordine con cui sono presentati nell attributo gli elementi. Quando un figlio finisce, il prossimo inizia. 147

149 E possibile ovviamente innestare e per ottenere paralleli di serie oppure serie di paralleli. Dall immagine si evince che ci si trova nella situazione di una serie di paralleli. La serie vuole che il secondo figlio inizia quando il primo termina. Il primo figlio, rappresentato dal primo gruppo, si conclude effettivamente quando l elemento del suo gruppo più duraturo termina. L attributo risulta molto interessante siccome offre delle tecniche di delay nei paralleli. In un gruppo di, e possibile infatti, grazie al, si puo configurare un elemento ad iniziare non in concomitanza con l inizio del, bensì ritardarlo oppure renderlo dipendente da un trigger. 148

150 In conclusione, con il layout (spaziale + temporale) si definisce quindi una vera e propria algebra di esecuzione degli elementi. Per ulteriori approfondimenti riguardo l argomento, si rimanda ai numerosissimi manuali in rete e alle slide relative al corso 2011/

151 CAPITOLO XII VIDEOSORVEGLIANZA 1. SISTEMI DI VIDEOSORVEGLIANZA Il bisogno di garantire la sicurezza delle persone è uno dei motivi principali per cui si utilizzano sempre più frequentemente sistemi di videosorveglianza nelle città. L obiettivo, non ancora raggiunto, di tali sistemi è quello di riuscire a riconoscere automaticamente ed in tempo reale quelle che possono essere azioni sospette o potenzialmente pericolose. In generale, la struttura di un sistema di videosorveglianza è composta da più livelli: Sensor Layer Si tratta del livello più esterno del sistema che si occupa della raccolta delle informazioni dell ambiente osservato. I sensori sono di diversa tipologia e di differente sensibilità, ed in base al loro numero, alla loro qualità di acquisizione e alla loro disposizione, offrono dei flussi di dati differenti ai livelli successivi. E noto che i flussi di dati di tipo video sono di dimensioni molto grandi. Per ridurre la quantità di frames non utili e risparmiare sulla memoria, le moderne telecamere riescono a riconoscere quando nella scena di ripresa vi sono oggetti in movimento. Nel caso di scene statiche, il ratio di acquisizione diminuisce (ad esempio, 1 frame ogni 5 secondi), mentre se vi sono oggetti in movimento, si applica la normale ratio (ad esempio, 25 fps). La 150

152 sequenza di frames dal momento in cui si accende la telecamera fino a quando la si spegne è detta Shot. Una Scena, è l unione di più shots. I dati raccolti dal sensor layer sono memorizzati all interno di un apposito database video (Video Repository) e forniti in ingresso al sistema IPS che si occuperà poi del loro trattamento. Image Processing Layer L obiettivo di questo livello è di estrapolare le informazioni di basso livello (riconoscimento degli oggetti nella scena e relativi metadati) dai dati raccolti dai sensori, utilizzando tecniche di Image Processing applicate dal modulo IPS. Particolare attenzione necessita il Tracking degli oggetti, ossia la capacità di seguire un oggetto riconosciuto all interno della scena anche nel caso in cui questo esca e rientri successivamente nella stessa scena. Successivamente all elaborazione dei dati, viene effettuata una conversione delle informazioni estrapolate in un formato che sia utilizzabile dai livelli successivi. Le informazioni in questo nuovo formato sono memorizzate in un apposita sezione del database (Data Collection). L image processing layer funge quindi da tramite tra le informazioni di basso livello e le analisi di alto livello. Composite Event Detection Layer Il fulcro di questo livello è il modulo di post-elaborazione HSRC (High Semantics Reasoning Center) che è la parte del sistema responsabile della rilevazione delle occorrenze degli eventi strutturalmente complessi, quindi di alto livello, a partire dagli elementi di basso livello contenuti nel Data Collection. Al suo interno si distinguono diversi componenti: Event Repository: e la porzione del DB in cui sono memorizzate le definizioni dei predicati ed i modelli degli eventi che si vuole riconoscere (scambio di pacchi, tentativi di rapina, valigie lasciate incustodite, etc.). Data Collection: è la porzione del DB che contiene l output del modulo IPS. Agent Based Processor (ABP): è il cuore dell HSRC. Il suo compito è quello di controllare e gestire tutti i processi che avvengono all interno del modulo: preleva prima la definizione dell evento di interesse dall Event Repository, poi l osservazione, ossia la descrizione del video in termini di predicati, dalla Data Collection ed infine verifica l occorrenza dell evento all interno dell osservazione. Subvideo Extractor: dopo la rilevazione di un evento questo modulo si occupa dell estrazione dal video della sequenza di frames di interesse e del suo salvataggio come nuovo file all interno del Video Repository, così da poterla rendere visibile sia off-line che on-line. Query Builder: gestisce quelli che sono i criteri di ricerca effettuabili dall utente sul sistema. A seconda delle richieste dell utente, l ABP agirà con modelli di eventi differenti su altrettanto differenti predicati. La limitazione risiede negli algoritmi utilizzati nell IPS, 151

153 siccome non è possibile effettuare delle query (definire quindi nuovi predicati) su elementi le cui occorrenze non possono essere riconosciute dagli algoritmi del modulo IPS. User Layer Questo livello è composto da interfacce user-friendly ed è rivolto a due categorie di utenza: 1) Servizi di Gestione: l amministratore del sistema ha la possibilità di definire nuove tipologie di eventi (nuovi modelli) e di estendere l insieme degli algoritmi di riconoscimento del modulo IPS. 2) Servizi Utente: l utente finale può gestire la visualizzazione dei video e seguire lo sviluppo dell analisi. Purtroppo gli attuali algoritmi di analisi non riescono a fornire risposte a query di alto livello, siccome non è possibile indicizzare i video analizzati: gli eventi da riconoscere sono impredicibili, e quindi necessaria una prima analisi prima di una eventuale annotazione dei contenuti relativi ai video analizzati. 2. IMAGE PROCESSING SYSTEM (IPS) Si tratta del sistema responsabile del riconoscimento a basso livello delle informazioni dei video ed e composto da due livelli tra loro dipendenti: 1) Object Segmentation: segmenta gli oggetti che cambiano nella scena. Le prestazioni di questo livello influenzano ogni altra elaborazione successiva sul video. 2) Tracking: si occupa dell analisi degli oggetti individuati da un punto di vista statico (estrazione delle features e classificazione) e dinamico (analisi dei loro movimenti nella scena). Object Segmentation La segmentazione degli oggetti presenti in una scena è il punto critico dei sistemi di videosorveglianza. Consiste nel suddividere un frame in regioni significative, separando tutto ciò che è sfondo da ciò che corrisponde ad un oggetto o parte di un oggetto e corrisponde al primo passo verso l estrazione delle informazioni di una scena. Preso un frame come riferimento, che rappresenta lo sfondo o background, il sistema di object segmentation deve essere in grado di 152

154 riconoscere automaticamente eventuali cambiamenti presenti negli oggetti degli altri frame rispetto quello di riferimento. L immagine di riferimento non è unica e cambia periodicamente. Il riconoscimento degli oggetti deve essere quindi fatto anche indipendentemente dallo sfondo (ad esempio notte e giorno) con il quale si confrontano gli oggetti dei frames in analisi. l output del sistema di object segmentation è un immagine binaria (BLOB). Gli algoritmi che sono utilizzati da tale sistema sono suddivisibili in due categorie, in base agli approcci che seguono: 1) Algoritmi basati su frame difference: sono algoritmi che utilizzano le tecniche di Change Detection basate sulla differenza tra frames. Sono evidenziati gli oggetti di interesse solo in corrispondenza dei pixel che presentano delle differenze di intensità apprezzabili tra frames successivi. Il problema principale di questi algoritmi è quando l oggetto in analisi non ha un movimento continuo: se l oggetto si muove e improvvisamente si ferma per poi ripartire, nel tempo in cui si è fermato l oggetto sarà ignorato e riconosciuto come sfondo. 2) Algoritmi basati su Confronto con Background (Background Subtraction): l individuazione degli oggetti di interesse è basata sul confronto tra il frame o una sequenza si frame ed un background di riferimento che contiene le informazioni della scena in assenza di movimento. Il vantaggio di questi algoritmi è che sono indipendenti dalla velocità di movimento degli oggetti, siccome anche se questi si fermano improvvisamente, saranno comunque riconosciuti siccome saranno in posizioni differenti rispetto alla quella che avevano nel frame di riferimento. Il problema è che risulta necessario un aggiornamento continuo degli sfondi di riferimento. Tracking Il modulo di tracking a partire dai risultati del modulo di object segmentation, deve essere in grado di accorgersi dell apparizione di un oggetto e di inseguirlo per tutta la durata della scena, ed eventualmente di riconoscerlo qualora dovesse scomparire per poi riapparire (quando ad esempio passa dietro ad un altro oggetto, oppure quando lascia la scena per poi tornarvi). Gli algoritmi di tracking si suddividono in due categorie: 1) Algoritmi non basati su Modello Geometrico: non richiedono nessuna conoscenza a priori della forma degli oggetti. Pertanto estraggono caratteristiche e proprietà degli oggetti in modo da tracciarne delle traiettorie e gestirne le interazioni. 2) Algoritmi basati su Modelli Geometrici: sfruttano invece la conoscenza a priori del modello degli oggetti che si trovano sulla scena. Sono i migliori per il tracking, siccome il riconoscimento è certo e dettagliato, ma d altra parte sono computazionalmente costosi a causa dei numerosissimi modelli degli oggetti che potrebbero essere presenti nei frame. Inoltre si è in grado di trattare solo gli oggetti i cui modelli sono presenti nel database, mentre tutti quelli di cui non si trova un match sono ignorati. 153

155 3. FINDING UNEXPLAINED ACTIVITIES Il Reasoning è la capacità da parte di un sistema di ricavare informazioni e conclusioni dalla conoscenza disponibile. Nei sistemi di videosorveglianza è un aspetto cruciale, siccome è essenziale che siano riconosciuti quanti più eventi è possibile. Un approccio innovativo (ancora sperimentale) al reasoning è offerto dal finding unexplained activities: trovare all interno di un video quelle che sono le sequenze di frames che non sono (totalmente o parzialmente) spiegate dai modelli degli eventi noti, ossia nel riconoscere quei atteggiamenti degli oggetti nei frames che non trovano spiegazione con i modelli di eventi a disposizione. In figura è rappresentata la struttura di un sistema di FUA: Image Processing Library Come libreria di Image Processing è utilizzata il software RPT (Reading People Tracker), un software per il tracciamento di persone ed oggetti per scopi di videosorveglianza. In input vuole un video grezzo e restituisce in uscita un file formato XML con la descrizione di tutti gli oggetti trovati con relativi metadati e coordinate. Video Labeler E stato realizzato in Java. Legge il file XML (basso livello) e ne riconosce gli eventi base, identificando gli Action Symbol. Ad ogni Action Symbol è associata una regola che ne permette l identificazione. L output è rappresentato dal labeling del video (contenente informazioni ad alto livello). 154

156 Activity Detection Engine (ADE) Si occupa dell identificazione delle occorrenze delle attività corrispondenti ad un modello noto. E realizzato appositamente in C. In input vuole il video grezzo, il labeling del video ed i modelli delle attività (eventi) stocastiche note. In output il modulo presenterà le occorrenze degli eventi riconosciuti e corrispondenti ai modelli disponibili. Gli eventi noti sono modellati con attività stocastiche e rappresentati da diagrammi degli stati. Ogni arco rappresenta delle informazioni probabilistiche e temporali delle relazioni che si hanno tra gli oggetti. Si consideri l evento di prelievo da un bancomat: Per ogni coppia di valori ( ) assegnata agli archi, rappresenta il valore temporale che trascorre prima che avvenga il cambiamento di stato, mentre rappresenta la probabilità con cui l arco può essere percorso. La somma delle probabilità degli archi di uscita di uno stato deve essere sempre uguale ad 1. Si consideri ad esempio il caso in cui ci si trovi nello stato e che l unità temporale siano i secondi. Da questo stato, vi sarà il 40% di probabilità di dover passare allo stato dopo 2 secondi, ed il 60% di probabilità di dover passare allo stato dopo 1 secondo. Un istanza di un evento è da considerare come una path di percorrenza degli stati. La probabilità di percorrenza di una istanza è data dal prodotto delle probabilità di ogni arco. Ad esempio, data un istanza : ( ) Il sistema ADE unirà le istanze degli eventi con le label provenienti dal Labeler e formerà quelle che sono le occorrenze. Ogni occorrenza avrà quindi una probabilità, che corrisponde alla probabilità ( ) e una path di Action Symbols, ossia coppie formate da i frames di interesse e gli stati del modello. ( ) ( ) ( ) ( ) 155

157 UAP Engine Si occupa del ritrovamento delle sequenze video totalmente o parzialmente non spiegate. E stato implementato in Java. In input vuole le occorrenze delle attività spiegate (ossia degli eventi riconosciuti), ed in output presenta le occorrenze delle attività totalmente o parzialmente non spiegate. Si considerano le occorrenze degli eventi riconosciuti provenienti dall ADE. Due occorrenze ( e ) si dicono in conflitto se hanno un intersezione non nulla: Ad esempio, data una sequenza di cinque frames figura, se si considerano le occorrenze: relative al modello usato nella precedente ( ) ( ) ( ) ( ) ( ) ( ) Risulta chiaramente che le sue occorrenze saranno in conflitto sul frame può essere rappresentato da una sola delle due occorrenze. siccome l evento Considerando l insieme di tutte le occorrenze riconosciute in un video, si definisce un mondo possibile l insieme di occorrenze privo di conflitti: Le sequenze di frames Totalmente non Spiegate sono quelle sequenze i quali Action Symbol non sono spiegate da nessuna occorrenza. Le sequenze di frames Parzialmente non Spiegate, sono quelle sequenze i quali Action Symbol sono solo in parte spiegate da delle occorrenze. 156

158 E possibile infine ottenere una stima di tutte le Totally Unexplained Activity (TUA) e le Partially Unexplained Activity (PUA) tramite delle metodologie automatiche statistiche, applicate alle PDF di tutti i mondi probabili all interno di. Per ulteriori approfondimenti riguardo l argomento, si rimanda alle slide relative al corso 2011/

159 CAPITOLO XIII COMPUTER GRAPHICS 1. INTRODUZIONE ALLA COMPUTER GRAPHICS Spesso capita di confondersi tra imaging, computer graphics e computer vision. Per definizione: - Imaging: conosciuto anche come Image Processing è lo studio delle immagini in 2D ed include tutte le tecniche viste in precedenza per l elaborazione di immagini digitali. - Computer Graphics: è il processo di creazione di immagini a partire da dati elaborati dal computer. - Computer Vision: si occupa di analizzare le immagini per estrarvi dei significati. E una scienza teorica informatica nata come branca dell Intelligenza Artificiale, che cerca di emulare gli aspetti e le caratteristiche della visione umana per i computer. La Computer Grafica viene quindi creata dal computer ed analizzata dallo stesso. Essa genera immagini creando un mondo di pixel tramite funzioni discrete, simulando quelli che sono le forme, le fisicità e il movimento degli oggetti rappresentati. Alla base della descrizione 3D di un oggetto vi è il Box(1,1,1) ossia l unità base che è presente in ogni modello rappresentato in Computer Graphics. Un immagine di Computer Graphics è quindi il risultato della ricostruzione a video di un modello 3D tramite delle trasformazioni e modellazioni delle unità di tipo Box(1,1,1). Fare grafica 3D vuol dire quindi creare scene in un mondo virtuale composte da oggetti geometrici con attributi pittorico ed uniti a immagini e testo. L interazione è indispensabile, siccome si deve essere in grado di interagire con gli oggetti all interno del mondo creato. Tali oggetti devono poter essere visitati tramite delle proprietà di navigazione offerte dai player, che permettono di guardare le scene da diversi punti di vista e rappresentare l immagine con l oggetto visto in 158

160 maniera differente. Con lo stesso criterio sono realizzate le animazioni, ossia il cambiamento delle caratteristiche dei modelli degli oggetti. Il realismo e la qualità della rappresentazione della grafica dipende dai player che si utilizzano per la visualizzazione. La Computer Graphics necessita quindi di un linguaggio descrittivo molto sofisticato al fine di poter rendere il meglio comprensibile e dettagliata possibile la rappresentazione dell oggetto al player. Le applicazioni della Computer Graphics spaziano in vari settori: viene utilizzata per i videogiochi, per la creazione di film animati, e ultimamente anche in ambito medicale. Durante delle sedute chirurgiche, è possibile condividere il corso e l andamento dell operazione in remoto con altre equipe di tutto il mondo, grazie alle ricostruzioni in Computer Graphics dell intervento. Per sostenere tutti i processi di modellistica, ricostruzione e rendering delle immagini in Computer Graphics, è necessario mettere a disposizione un hardware dedicato al calcolo e alle elaborazioni delle funzioni che sono utilizzate per la descrizione geometrica degli oggetti da rappresentare. Si devono poter effettuare le classiche trasformazioni geometriche in tempo reale, siccome i player permettono di navigare all interno dei modelli 3D tramite scalature e di presentare immagini con particolari sempre diversi dello stesso modello. Le schede grafiche si configurano quindi come l hardware dedicato per questa tipologia di operazioni. La GPU (Graphic Processing Unit) è il processore dedicato a questi calcoli e può far uso delle memorie interne e a lui dedicate presenti proprio sulla scheda (Frame Buffer + Graphic Memory). 2. PARADIGMI PER LA SINTESI DI IMMAGINI 3D Per poter riuscire a comprendere e realizzare un immagine 3D, è necessario dapprima spiegare quelle che sono le entità presenti al suo interno, per poi analizzare le tecniche di gestione del mondo virtuale e degli oggetti ad esso relativi in funzione del visualizzatore (player). Si distinguono due gruppi di entità principali: - Oggetti (sintetici): rappresentazioni digitali di forme e caratteristiche di oggetti reali tridimensionali tramite un modello 3D. Sono posizionati nello spazio 3D e generano scene diverse a seconda della loro disposizione. 159

161 - Osservatori (virtuali): permettono di osservare la scena da un certo punto di vista e sfruttano quelle che sono le caratteristiche di navigazione dei players. Il rendering è il processo grazie al quale l osservatore genera un immagine a partire da una scena. Tale processo è completamente svolto dal processore dedicato. Per ridurre al minimo il lavoro sul processore, si cerca di effettuare delle trasformazioni geometriche più semplici possibili: - Per il posizionamento degli oggetti sulla scena, sono necessarie traslazioni, rotazioni e scalature. - Per rappresentare la scena da inquadrare, sono necessarie trasformazioni rigide al fine di esprimere gli oggetti nella scena nel sistema di riferimento del punto di vista. - Per rappresentare la scena da visualizzare si devono effettuare proiezioni ortografiche e prospettiche. Per consegnare realismo alle immagini 3D, bisogna considerare la luminosità e l ombreggiatura degli oggetti. Ogni punto dell oggetto nella scena è illuminato in funzione di: - Sorgenti di luce presenti sulla scena - Posizione del punto - Orientamento della superficie nel punto - Proprietà riflettenti del materiale - Emissione propria di luce Il Lighting è il calcolo dell equazione di illuminazione in uno o più punti da illuminare. Lo Shading è il modo con cui il lightning viene utilizzato per simulare l illuminazione durante il rendering. Il Flat Shading consiste nell applicare il modello di illuminazione sui piani costituenti la scena. Per ogni piano viene effettuato di volta in volta il lighting. Il Gouraud Shading consiste nel valutare il lighting per ogni vertice del poligono (e non per ogni piano), tramite un calcolo medio effettuato tra le normali dei piani adiacenti al vertice. 160

162 Il Texture Mapping è un processo il cui scopo è quello di modellare le superfici degli oggetti con dei motivi e delle trame realistiche. La texture deve essere modellata con tecniche matematiche che applicano la texture agli oggetti nella scena. Tra i linguaggi moderni di programmazione 3D vi è l exensible 3D. Si tratta di una nuova generazione di specifiche grafiche per la descrizione dei contenuti tridimensionali interattivi. E il successore di VRML97, che era il linguaggio standard per la virtual reality. Tra le sue funzionalità vi è la possibilità di effettuare dello Scripting orientato al networking. La struttura di un file di un mondo 3D è di tipo gerarchico, e gli oggetti con le loro relazioni sono rappresentati da alberi. Per ulteriori approfondimenti riguardo l argomento, si rimanda ai numerosissimi manuali in rete e alle slide relative al corso 2011/

163 CAPITOLO XIV GESTIONE DEL TESTO 1. TRATTAMENTO AUTOMATICO DEL TESTO Al giorno d oggi per la comprensione del testo le interfacce utilizzano ancora le parole chiavi, affidandosi ad una ricerca e ad un confronto lessicale (al più logico). Lo scopo che si rincorre da 50 anni a questa parte è quello di rendere l interpretazione del testo automatica, ossia propria di un sistema di elaborazione, che riesca a venire a capo di tutte le problematiche (linguaggi, ambiguità, etc.) legate alla interpretazione semantica dei testi e dei loro contenuti. In un discorso reale, alle parole si accompagnano gesti, espressioni, cambiamenti del tono di voce, tutte cose che non possono essere espresse su un documento testuale. Nella scrittura, esistono tecniche di descrizioni che cercano di rappresentare queste aggiunte esterne (ad esempio descrizioni di paesaggi, stati d animo, espressioni, etc.), al fine di rendere più reale possibile un testo e di offrire quindi al lettore la capacità di poter interpretare soggettivamente le emozioni descritte, decodificandole in maniera più sofisticata di quella che è realmente rappresentata sul testo. Il trattamento automatico del testo si prefigge lo scopo di fornire al calcolatore le conoscenze linguistiche necessarie al fine di comprendere la struttura ed il contenuto del testo, simulando il comportamento di un lettore umano: - Acquisire automaticamente conoscenza dai documenti. - Velocizzare l accesso alle informazioni. - Utilizzare infrastrutture di gestione e sviluppo di risorse linguistiche di grandi dimensioni (es: Web Semantico). Ad esempio, se un medico vuole cercare una diagnosi vecchia di 10 anni e non si ricorda il nome del paziente, può effettuare delle ricerche per contenuto indicando nella ricerca le poche parole che si ricorda a riguardo della diagnosi, sia che siano contenute nel documento, sia che siano delle approssimazioni del contenuto ma che non sono presenti nel documento vero e proprio. La ricerca per contenuto implica l estrazione e la formalizzazione delle informazioni di interesse al fine di poter rendere interrogabile il documento e non ambigue le risposte. La ricerca per parole chiave (lessicale) ha molti limiti. Se si cerca la parola squadra in un motore di ricerca, i risultati saranno imprecisi, siccome la parola chiave è ambigua (può essere una squadra di calcio, un verbo, strumento per disegno, etc.), inoltre se si cercano parole simili a quella indicata, tutti i risultati saranno omessi (problema della Recall). La ricerca semantica invece va oltre il puro significato lessicale della parola e riesce ad intendere i significati semantici del testo da ricercare (tramite ontologie) restituendo risposte più appropriate e rilevanti. Per ottenere i risultati preposti dalla ricerca semantica, occorre stabilire un meccanismo di reasoning dei sistemi di ricerca e trattamento testuale, al fine di renderli automatici ed autonomi. 162

164 Il modello di reasoning (sperimentale) in analisi, si struttura come in figura: - Formalizzazione del Dominio: in questa prima fase si ottengono i nodi dell ontologia. Il documento diventa una lista e si cominciano ad accoppiare i nodi in base ai loro legami semantici. Le risorse in questo frangente sono inserite dai linguisti, mentre gli ingegneri hanno il compito di ottimizzarne la disposizione. - Estrazione Informazioni: in questa seconda fase si ricavano le relazioni semantiche tra i nodi dell ontologia, e anche con nodi esterni al documento. - Espansione Semantica della Query: in questo ultima fase si utilizzano i risultati ottenuti per realizzare un motore di Ricerca Semantica. Si mappano le ontologie ed i documenti nelle basi di dati. Le fasi e sono ancora in fase di studio. 163

165 2. FORMALIZZAZIONE DEL DOMINIO Si analizza di seguito la prima delle tre fasi presentate in precedenza. Fase 0: Scansione I documenti non sono sempre in formato digitale. Per questo motivo è necessaria un acquisizione. L input è sempre rumoroso, bisogna quindi stare attenti ad eventuali problemi che possono provenire da una cattiva acquisizione. Fase 1: Pretrattamento del Corpus la prima operazione che viene eseguita in questa fase è il Parsing (o Tokenizzazione) ossia la distinzione tra quelli che sono i caratteri dell alfabeto e quelli che sono utilizzati come separatori. Si consideri la successione di caratteri 50% se si considera il % come separatore, si avrà che i caratteri utili saranno 50. Si definiscono quindi le singole unità di analisi: i Token, ossia successioni di caratteri dell alfabeto compresi da separatori. L output del Parsing è una lista di Token. La seconda operazione è quella della Normalizzazione che viene applicata sul risultato del Parsing. La normalizzazione ha lo scopo di uniformare le differenti variazioni ortografiche di un token (errore di battitura, errore di codifica, errore di formato, etc.), in modo che siano ricondotte ad un unica forma grafica. Questo avviene tramite il raggruppamento dei token in classi di equivalenza. In questo processo si cerca di eliminare quante più ambiguità possibili nell ortografia del testo, come le lettere minuscole e maiuscole ( usa come verbo e USA come stato), la 164

166 trasformazione di apostrofi in accenti e l eventuale viceversa, le lettere maiuscole dopo un punto, etc. in generale le procedure di normalizzazione ricorrono a: - Database appositi: si tratta di elenchi, glossari e repertori con cui è possibile riconoscere ed uniformare la grafica di particolari espressioni (nomi di città, sigle, abbreviazioni, etc.) o anche cristallizzare sequenze specifiche di parole (locuzioni grammaticali) e standardizzarne la forma, riducendo quindi le ambiguità aiutando le classi di equivalenza. - Sistema di Regole: stabiliscono quale dev essere il comportamento della normalizzazione in casi di ambiguità (es: quando intendere un punto come una fine di una frase o come l abbreviazione si un nome). L ultima operazione di questa fase consiste nella Correzione degli Errori di Codifica, che va a correggere quelli che possono essere eventuali errori di codifica dovuti all interpretazione scorretta di caratteri speciali (non ASCII standard). Fase 2: Annotazione Morfo-Sintattica La prima operazione che si esegue in questa fase è l Annotazione Grammaticale o Part of Speech (POS) Tagging. Consiste nell associare a ciascun token la corretta categoria grammaticale (o parte del discorso) tramite dei linguaggi di markup. E in questa fase che avviene la disambiguazione lessicale, come per il token pesca che può essere quindi specificato se è un verbo o un nome. Il procedimento è riconducibile ad una analisi grammaticale, ed è essenziale per poter applicare poi le regole di costruzione delle frasi. Nonostante questo trattamento, logicamente e sintatticamente le frasi mantengono ancora delle ambiguità. Basti considerare la frase la vecchia la porta la sbarra che e può avere multipli significati a seconda delle annotazioni lessicali che si consegnano ad ogni token. Per aiutare la classificazione lessicale delle parole, occorre una distinsione in categorie: - Parole Piene: ossia parole che portano contenuto, come nomi, verbi, aggettivi ed avverbi. - Parole Vuote: ossia parole che non portano contenuto, come articoli, preposizioni, congiunzioni. Con questa distinzione è possibile operare una annotazione più efficace, che riesce ad eliminare delle ambiguità lessicali analizzando le parole che precedono o seguono i token. Il software TreeTagger, utilizza degli alberi di decisione probabilistici, che analizzano ogni frase al cui interno vi sono token ambigui. Tramite degli statements, si scorre l albero fino ad arrivare ad un nodo che classifichi il token ambiguo. Ad esempio la parola prima del token è un articolo? se è vero, allora il token è un nome. Altrimenti si procede con un altro statement: il token è seguito da un avverbio? e così via. Il processo di annotazione del TreeTagger può essere avviata solo su un set di token precedentemente già annotati. Non tutti i termini ambigui possono essere risolti da questo processo. 165

167 Successivamente all annotazione POS, vi è l operazione di Lemmatizzazione. Gli elementi lessicali non ambigui provenienti dalla fase di annotazione sono associati ad un Lemma relativo, ossia ad un descrittore della categoria grammaticale di appartenenza. I termini possono quindi essere raccolti in gruppi in quanto derivanti da uno stesso lemma: - Per i nomi il lemma coincide con la forma singolare maschile: - Per i verbi il lemma coincide con la forma all infinito. Un altra tecnica di lemmatizzazione è lo Stemming, che riconduce le parole a radici comuni che non variano con coniugazioni, flessioni, prefissi e suffissi. Fase 3: Analisi Lessico-Metrica Questa fase si occupa di ritagliare un gruppo di parole utili dalla lista di token con label. Queste parole sono scelte in base alla loro ridondanza nel documento e devono offrire un tasso di copertura (legato alla perdita di informazioni) dei contenuti del documento quanto più alto possibile. Devono considerarsi anche le parole uniche (HAPAX) che compaiono solo un volta in tutto il documento o in un insieme di documenti, siccome sono le uniche portatrici di informazioni legate al loro significato. La prima operazione di questa fase è il calcolo delle misure lessico-metriche, ossia di indici statistici sul vocabolario e sulle classi di frequenza, al fine di determinare il tasso di copertura del lessico estratto dal testo: - Lunghezza in Parole del Corpus ( ): definita dal numero totale di occorrenze dei token che compongono il corpo del documento. - Grandezza del Vocabolario ( ): definita dal numero totale di forme grafiche diverse. Ricchezza Lessicale del Corpus ( ): i valori di questo indice sono compresi tra 0 e 1. Se il suo valore è vicino allo 0, significa che il vocabolario del testo non è molto grande e quindi poco vario. Se il valore è prossimo all 1, vuol dire che la grandezza del vocabolario è quasi pari a quella del testo, ossia che il testo è quasi completamente formato da HAPAX. - Frequenza Assoluta ( ): indica quante volte un determinato token occorre all interno del testo. - Frequenza Relativa ( ): indica il rapporto tra la frequenza assoluta ed il numero totale di token nel testo: - Frequenza Media Generale ( ): e uguale al rapporto tra la somma delle frequenze di tutti i token del vocabolario (proprio ) e la grandezza del vocabolario: 166

168 - Frequenza Cumulata ( ): fornisce tasso di copertura del testo, ossia la percentuale di occorrenze che derivano dalle parole del vocabolario al di sopra di una soglia, sul totale di tutte le occorrenze del corpus. La soglia di frequenza viene stabilita per garantire un sottoinsieme del vocabolario da essere analizzato, siccome il vocabolario per intero risulterebbe troppo oneroso. Ovviamente tale sottoinsieme deve garantire una accettabile. - TF-IDF: utilizzato per scopi di indicizzazione. Evidenzia quelle che sono le parole che occorrono frequentemente in un documento ma raramente nella raccolta di documenti. Esso è direttamente proporzionale alla frequenza di comparsa della parola all interno del documento e inversamente proporzionale alla distribuzione della parola all interno della raccolta di documenti. Le parole trovate con un indice TF-IDF molto alto, sono approssimabili ad un HAPAX. La seconda ed ultima operazione di questa fase è l Individuazione dei Segmenti, ossia il calcolo di ulteriori indici statistici relativi questa volta alle dipendenze dei token adiacenti. Se due token sono sempre in successione, è possibile considerarli come una unica parola (quindi unico token). - IS: rappresenta la dipendenza di insiemi di token in funzione delle loro frequenze di occorrenza. Si calcola valutando la frequenza con cui due o più termini compaiono assieme, confrontata con la frequenza delle occorrenze degli stessi termini separati che compaiono nel testo. Il risultato finale della fase 3 è un vocabolario fatto dei termini che hanno superato i processi di segmentazione. Fase 4: Estrazione dei Termini Peculiari Si tratta di una fase di filtraggio, che raccoglie solo gli elementi lessicali rilevanti dal vocabolario ottenuto. Si filtra in funzione di: - Categoria grammaticale (ottenuta dalla Lemmatizzazione). - Valori degli indici lessico-metrici. Il filtro agisce quindi sugli elementi che non sono indispensabili (es: gli articoli sono scartati). Successivamente si estraggono solo le parole più importanti. Si definisce quindi il lessico peculiare ossia l insieme degli elementi essenziali che riescono a rappresentare il contenuto informativo del documento. 167

169 Fase 5: Individuazione delle Relazioni Semantiche In questa fase si cercano quelle che sono relazioni semantiche tra i termini estratti. Queste relazioni sono necessarie per arricchire l ontologia e sono stimate in base alle relazioni tra token, in base al loro utilizzo o al contesto (se sono utilizzati con verbi simili, se sono sinonimi, etc). buone tecniche di formalizzazione delle relazioni semantiche sono effettuate con l ausilio di DB esterni, al fine di poter avere più informazioni possibili con cui procedere. Per valutare l efficacia del sistema di ricerca semantica, si distinguono prima: - Documenti Rilevanti: di effettivo interesse per l utente. - Documenti Recuperati: prodotti in output dal sistema come risposta di una query. Si utilizzano poi gli indici di Precision (documenti ottenuti in output rilevanti) e Recall (documenti rilevanti restituiti effettivamente in output). 3. NATURAL LANGUAGE PROCESSING (NLP) Il NLP è la capacità da parte di sistemi automatizzati ed automatici di comprendere, elaborare e rispondere il linguaggio di tipo naturale, utilizzato comunemente dall uomo. Con tecniche di reasoning e di analisi testuali è possibile quindi che una macchina riesca a interagire con l uomo. Un elemento importantissimo per questa interazione è ovviamente l Information Retrieval, che si configura anche in questo caso come uno dei punti cardini del rapporto uomo/macchina. Le informazioni testuali che si devono analizzare sono racchiuse in raccolte di documenti, ogn uno dei quali può presentarsi con un tipo differente: - Documento non Strutturato: documento privo di Tags (annotazioni) e senza divisione in sezioni. - Documento Parzialmente Strutturato: diviso in sezioni e formato dall unione di più documenti non strutturati. Ad esempio, in una cartella clinica a seconda della sezione in cui si scrive (diagnosi, prescrizioni, sintomi) le parole assumeranno significati diversi - Documento Completamente Strutturato: diviso in sezione e annotato nei suoi contenuti. Questa tipologia di documenti sono i più facili da gestire. E possibile inoltre gestire l insieme di documenti attraverso: 168

170 - Clustering: data una raccolta di documenti, li si divide in insiemi basandosi sui loro contenuti. - Classificazione: dato un insieme di argomenti, all inserimento di un nuovo documento lo si associa all argomento a cui appartiene. - Ranking: l ordinamento in funzione di importanza dei documenti nella raccolta (usato per ordinare risposte alle query). Per favorire la catalogazione dei contenuti dei documenti e quindi favorirne la gestione in ambito dell IR, si deve indicizzare il testo. Il primo meccanismo di indicizzazione dei documenti è l Indice Booleano. Con delle query espresse in algebra booleana, è possibile trovare delle risposte in base ai valori di questi indici assegnati ai contenuti dei documenti, che ne indicano la presenza o meno. Ad esempio, si voglia cercare all interno di alcune opere di Shakespeare la presenza dei nomi Brutus e Caesar ma non Calpurnia. Gli indici booleani assegnati a queste parole relativi ai vari documenti (in questo caso le opere) indicano in maniera rapida la presenza o meno degli elementi da cercare. Ad ogni termine è associato quindi un vettore di bits, che ne indicano la presenza nelle rispettive opere. Per risolvere la query si considerano i vettori relativi a Brutus, Caesar e il complementare di Calpurnia e si effettua una AND di tutti e tre: Una problematica delle risposte alle query è il Ranked Retrieval: le risposte devono essere ordinate in una lista a seconda della loro importanza rispetto al documento analizzato. Nel modello classico di ricerca, l utente vuole un set di risposte a lui soddisfacenti. La trasformazione della richiesta fatta al sistema avanza con il proseguire dei livelli di comprensione della macchina. 169

IMMAGINE BITMAP E VETTORIALI

IMMAGINE BITMAP E VETTORIALI BITMAP VETTORIALE VETTORIALE BITMAP IMMAGINE BITMAP è una immagine costituita da una matrice di Pixel. PIXEL (picture element) indica ciascuno degli elementi puntiformi che compongono la rappresentazione

Dettagli

gestione e modifica di immagini fotografiche digitali

gestione e modifica di immagini fotografiche digitali gestione e modifica di immagini fotografiche digitali il colore e le immagini la gestione delle immagini Il computer è in grado di gestire le immagini in formato digitale. Gestire vuol dire acquisirle,

Dettagli

Le immagini digitali. Le immagini digitali. Caterina Balletti. Caterina Balletti. Immagini grafiche. Trattamento di immagini digitali.

Le immagini digitali. Le immagini digitali. Caterina Balletti. Caterina Balletti. Immagini grafiche. Trattamento di immagini digitali. 1 Le immagini digitali Le immagini digitali Università IUAV di venezia Trattamento di immagini digitali immagini grafiche immagini raster immagini vettoriali acquisizione trattamento geometrico trattamento

Dettagli

Capitolo V : Il colore nelle immagini digitali

Capitolo V : Il colore nelle immagini digitali Capitolo V : Il colore nelle immagini digitali Lavorare con il colore nelle immagini digitali L uso dei colori nella visione computerizzata e nella computer grafica implica l incorrere in determinate problematiche

Dettagli

C M A P M IONAM A E M NT N O

C M A P M IONAM A E M NT N O IMMAGINE DIGITALE Nelle immagini digitali, il contenuto fotografico (radiometria) viene registrato sotto forma di numeri. Si giunge a tale rappresentazione (RASTER) suddividendo l immagine fotografica

Dettagli

Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti

Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti Un ripasso di aritmetica: Rappresentazione binaria - operazioni A queste rappresentazioni si possono applicare le operazioni aritmetiche: riporti 1 1 0 + 1 0 = 1 0 0 24 Un ripasso di aritmetica: Rappresentazione

Dettagli

Le immagini digitali. formati, caratteristiche e uso. Testo e foto di Mario Ceppi

Le immagini digitali. formati, caratteristiche e uso. Testo e foto di Mario Ceppi Le immagini digitali formati, caratteristiche e uso Testo e foto di Mario Ceppi GIF Ideale per la rappresentazione di immagini sul Web come gif animate, pulsanti e intestazioni, non è invece adatto alle

Dettagli

Dal foglio di carta alla multimedialità

Dal foglio di carta alla multimedialità Dal foglio di carta alla multimedialità Multimediale Che utilizza più mezzi di comunicazione. Nell'ambito delle tecnologie educative significa utilizzare più mezzi didattici integrati. IPERTESTO E IPERMEDIA

Dettagli

Immagini vettoriali Immagini bitmap (o raster) Le immagini vettoriali .cdr.swf .svg .ai.dfx .eps.pdf .psd

Immagini vettoriali Immagini bitmap (o raster) Le immagini vettoriali .cdr.swf .svg .ai.dfx .eps.pdf .psd Esistono due tipi di immagini digitali: Immagini vettoriali, rappresentate come funzioni vettoriali che descrivono curve e poligoni Immagini bitmap, (o raster) rappresentate sul supporto digitale come

Dettagli

INFORMATICA E GRAFICA PER IL WEB

INFORMATICA E GRAFICA PER IL WEB INFORMATICA E GRAFICA PER IL WEB Psicologia e comunicazione A.A. 2013/2014 Università degli studi Milano-Bicocca docente: Diana Quarti INFORMATICA E GRAFICA PER IL WEB A.A. 2013/2014 docente: Diana Quarti

Dettagli

Il campionamento. La digitalizzazione. Teoria e pratica. La rappresentazione digitale delle immagini. La rappresentazione digitale delle immagini

Il campionamento. La digitalizzazione. Teoria e pratica. La rappresentazione digitale delle immagini. La rappresentazione digitale delle immagini ACQUISIZIONE ED ELABORAZIONE DELLE IMMAGINI Teoria e pratica La digitalizzazione La digitalizzazione di oggetti legati a fenomeni di tipo analogico, avviene attraverso due parametri fondamentali: Il numero

Dettagli

Immagini digitali Appunti per la classe 3 R a cura del prof. ing. Mario Catalano

Immagini digitali Appunti per la classe 3 R a cura del prof. ing. Mario Catalano Immagini digitali LA CODIFICA DELLE IMMAGINI Anche le immagini possono essere memorizzate in forma numerica (digitale) suddividendole in milioni di punti, per ognuno dei quali si definisce il colore in

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

Immagini Digitali Immagini digitali

Immagini Digitali Immagini digitali Immagini digitali Processi e metodi per la codifica e il trattamento dei formati raster e vettoriali Immagini raster Fondamenti Le immagini raster, chiamate anche pittoriche o bitmap, sono immagini in

Dettagli

Immagini vettoriali. Immagini raster

Immagini vettoriali. Immagini raster Immagini vettoriali Le immagini vettoriali sono caratterizzate da linee e curve definite da entità matematiche chiamate vettori. I vettori sono segmenti definiti da un punto di origine, una direzione e

Dettagli

EXPLOit Content Management Data Base per documenti SGML/XML

EXPLOit Content Management Data Base per documenti SGML/XML EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per

Dettagli

La Visione Artificiale. La vis ione delle macchine La vis ione umana Acquis izione di immag ine

La Visione Artificiale. La vis ione delle macchine La vis ione umana Acquis izione di immag ine La Visione Artificiale La vis ione delle macchine La vis ione umana Acquis izione di immag ine Copyright Alcune slide sono tratte dal testo: Digital Image Processing Materiale didattico relativo si trova

Dettagli

PDF created with pdffactory trial version www.pdffactory.com

PDF created with pdffactory trial version www.pdffactory.com Codifica di immagini Codifica di immagini o Un immagine è un insieme continuo di informazioni A differenza delle cifre e dei caratteri alfanumerici, per le immagini non esiste un'unità minima di riferimento

Dettagli

Informatica grafica e Multimedialità. 4 Immagini grafiche

Informatica grafica e Multimedialità. 4 Immagini grafiche Immagini raster e vettoriali Le immagini grafiche si distinguono in due classi differenti: immagini raster e immagini vettoriali. Le immagini raster, dette anche pittoriche o pixel-oriented, dividono l

Dettagli

INFORMATICA E GRAFICA PER IL WEB

INFORMATICA E GRAFICA PER IL WEB INFORMATICA E GRAFICA PER IL WEB Psicologia e comunicazione A.A. 2014/2015 Università degli studi Milano-Bicocca docente: Diana Quarti LEZIONE 04 INFORMATICA E GRAFICA PER IL WEB A.A. 2014/2015 docente:

Dettagli

Il colore. IGEA 2006-07 7 febbraio 2007

Il colore. IGEA 2006-07 7 febbraio 2007 Il colore IGEA 2006-07 7 febbraio 2007 La luce Radiazione elettromagnetica 380 740 nanometri (790 480 THz) Percezione della luce /1 Organi sensoriali: Bastoncelli Molto sensibili (anche a un solo fotone:

Dettagli

La codifica delle immagini

La codifica delle immagini La codifica delle immagini La digitalizzazione La digitalizzazione di oggetti legati a fenomeni di tipo analogico, avviene attraverso due parametri fondamentali: 1. Il numero dei campionamenti o di misurazioni

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

Marta Capiluppi marta.capiluppi@univr.it Dipartimento di Informatica Università di Verona

Marta Capiluppi marta.capiluppi@univr.it Dipartimento di Informatica Università di Verona Marta Capiluppi marta.capiluppi@univr.it Dipartimento di Informatica Università di Verona Classificazione delle immagini Le immagini si suddividono in raster e vettoriali. Le immagini raster sono di tipo

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

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

Immagini digitali. Paolo Zatelli. Dipartimento di Ingegneria Civile ed Ambientale Università di Trento. Immagini digitali

Immagini digitali. Paolo Zatelli. Dipartimento di Ingegneria Civile ed Ambientale Università di Trento. Immagini digitali Immagini digitali Immagini digitali Paolo Zatelli Dipartimento di Ingegneria Civile ed Ambientale Università di Trento Paolo Zatelli Università di Trento 1 / 22 Immagini digitali Outline 1 Immagini digitali

Dettagli

Informatica. Rappresentazione binaria Per esempio +101010000 diventa +0.10101 10 18/10/2007. Introduzione ai sistemi informatici 1

Informatica. Rappresentazione binaria Per esempio +101010000 diventa +0.10101 10 18/10/2007. Introduzione ai sistemi informatici 1 Informatica Pietro Storniolo storniolo@csai.unipa.it http://www.pa.icar.cnr.it/storniolo/info200708 Numeri razionali Cifre più significative: : sono le cifre associate ai pesi maggiori per i numeri maggiori

Dettagli

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

Dettagli

La codifica delle immagini

La codifica delle immagini Analogamente possiamo codificare le immagini a colori. In questo caso si tratta di individuare un certo numero di sfumature, gradazioni di colore differenti e di codificare ognuna mediante un'opportuna

Dettagli

La codifica delle Immagini. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132Sesto San Giovanni

La codifica delle Immagini. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132Sesto San Giovanni La codifica delle Immagini Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132Sesto San Giovanni Lettere e numeri non costituiscono le uniche informazioni utilizzate dagli elaboratori, infatti

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

Elaborazione testi: immagini

Elaborazione testi: immagini by Studio Elfra sas Gestione Immagini Aggiornato a Aprile 2009 Informatica di base 1 Elaborazione testi: immagini Il testo di un documento di Word può essere integrato con immagini di vario tipo: 2 1 Elaborazione

Dettagli

Lande Immortali: Riepilogo dello Stato di Avanzamento del Progetto

Lande Immortali: Riepilogo dello Stato di Avanzamento del Progetto Lande Immortali: Riepilogo dello Stato di Avanzamento del Progetto Progetto a cura di Martino Michele Matricola: 0124000461 Miglio Stefano Matricola: 0124000462 Obiettivi Iniziali Si intende realizzare

Dettagli

II BIT: In..formati sui file

II BIT: In..formati sui file II BIT: In..formati sui file 10 Giugno 2015 Ma quanto liberi? 10 Giugno 2015 1 / 46 Argomenti 1 Introduzione 2 Formati proprietari, aperti o liberi? 3 I file 4 Immagini, musica e video 5 Compatibilità

Dettagli

Giorgio Maria Di Nunzio

Giorgio Maria Di Nunzio Università degli Studi di Padova Dipartimento di Scienze Storiche, Geografiche e dell Antichità Fondamenti di Informatica A.A. 2012/2013 Giorgio Maria Di Nunzio Immagini Digitali Ä Dispense aggiuntive

Dettagli

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l Ambiente e il Territorio

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l Ambiente e il Territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l Ambiente e il Territorio Rappresentazione dell Informazione

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

Codifica delle Informazioni

Codifica delle Informazioni Codifica delle Informazioni Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Panoramica Le informazioni gestite dai sistemi di elaborazione devono essere codificate

Dettagli

Informatica per la comunicazione" - lezione 7 -

Informatica per la comunicazione - lezione 7 - Informatica per la comunicazione - lezione 7 - Campionamento La codifica dei suoni si basa sulla codifica delle onde che li producono, a sua volta basata su una procedura chiamata campionamento.! Il campionamento

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

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

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

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

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

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

Test percettivi per la valutazione del contrasto di immagini digitali

Test percettivi per la valutazione del contrasto di immagini digitali Agenzia Nazionale per le Nuove Tecnologie, l Energia e lo Sviluppo Economico Sostenibile RICERCA DI SISTEMA ELETTRICO Test percettivi per la valutazione del contrasto di immagini digitali Alessandro Rizzi,

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

I cookie sono classificati in base alla durata e al sito che li ha impostati.

I cookie sono classificati in base alla durata e al sito che li ha impostati. 1. Informativa sui cookie 1.1. Informazioni sui cookie I siti Web si avvalgono di tecniche utili e intelligenti per aumentare la semplicità di utilizzo e rendere i siti più interessanti per ogni visitatore.

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

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

Capitolo 4 Pianificazione e Sviluppo di Web Part

Capitolo 4 Pianificazione e Sviluppo di Web Part Capitolo 4 Pianificazione e Sviluppo di Web Part Questo capitolo mostra come usare Microsoft Office XP Developer per personalizzare Microsoft SharePoint Portal Server 2001. Spiega come creare, aggiungere,

Dettagli

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio Documento Tecnico Light CRM Descrizione delle funzionalità del servizio Prosa S.r.l. - www.prosa.com Versione documento: 1, del 11 Luglio 2006. Redatto da: Michela Michielan, michielan@prosa.com Revisionato

Dettagli

Insegnare con il blog. Materiale tratto da:

Insegnare con il blog. Materiale tratto da: Insegnare con il blog Materiale tratto da: Weblog La parola "blog" nasce dalla contrazione del termine anglosassone "weblog" che, letteralmente, significa "traccia nella rete". Il blog infatti rappresenta

Dettagli

Fotografia corso base. Educazione Permanente Treviso. Specifiche digitali. Federico Covre. http://arcifotografiabase.wordpress.com

Fotografia corso base. Educazione Permanente Treviso. Specifiche digitali. Federico Covre. http://arcifotografiabase.wordpress.com Fotografia corso base Educazione Permanente Treviso Specifiche digitali http://arcifotografiabase.wordpress.com Federico Covre Pixel (picture element) Indica ciascuno degli elementi puntiformi che compongono

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

Linguaggi e Paradigmi di Programmazione

Linguaggi e Paradigmi di Programmazione Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una

Dettagli

Realizzazione siti web. Le immagini

Realizzazione siti web. Le immagini Realizzazione siti web Le immagini Rappresentqazione digitale delle immagini (immagini bitmapped Si sovrappone all'immagine analogica (ad esempio una fotografia) una griglia fittissima di minuscole cellette.

Dettagli

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass 0_Iniziare con GRASS Avvio di Grass e creazione della cartella del Database di GRASS Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

Dettagli

Allegato tecnico. Per l invio di documenti elettronici al Comune di Prato

Allegato tecnico. Per l invio di documenti elettronici al Comune di Prato Allegato tecnico Per l invio di documenti elettronici al Comune di Prato 1. Formati ammissibili per l invio di documenti elettronici. Indipendentemente da quale sia il metodo scelto per l invio di una

Dettagli

3D e Realtà Virtuale

3D e Realtà Virtuale 3D e Realtà Virtuale Modello 3D La costruzione di un modello 3D, così come la realizzazione di un plastico tradizionale, necessita di grande precisione e attenzione conoscitiva. Tale modello convoglia

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

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

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

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

PHOTOSHOP BREVE TUTORIAL

PHOTOSHOP BREVE TUTORIAL PHOTOSHOP BREVE TUTORIAL CARATTERISTICHE INNOVATIVE DI PHOTOSHOP CS SOMMARIO Il file browser Galleria dei filtri Disporre testo su un tracciato Paletta degli istogrammi Omogeneizzazione del colore ed acquisizione

Dettagli

Introduzione al Semantic Web

Introduzione al Semantic Web Corso di Laurea Specialistica in Ingegneria Gestionale Corso di Sistemi Informativi Modulo II A. A. 2013-2014 Giuseppe Loseto Dal Web al Semantic Web 2 Dal Web al Semantic Web: Motivazioni Il Web dovrebbe

Dettagli

Come si misura la memoria di un calcolatore?

Come si misura la memoria di un calcolatore? Come si misura la memoria di un calcolatore? Definizione Il byte è definito come unità di misura di memoria. I multipli del byte sono: KiloByte (KB) - 1 KB = 2 10 byte = 1024 byte MegaByte (MB) - 1 MB

Dettagli

Il calendario di Windows Vista

Il calendario di Windows Vista Il calendario di Windows Vista Una delle novità introdotte in Windows Vista è il Calendario di Windows, un programma utilissimo per la gestione degli appuntamenti, delle ricorrenze e delle attività lavorative

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Scopo della lezione. Informatica. Informatica - def. 1. Informatica Scopo della lezione Informatica per le lauree triennali LEZIONE 1 - Che cos è l informatica Introdurre i concetti base della materia Definire le differenze tra hardware e software Individuare le applicazioni

Dettagli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica

Dettagli

Architetture Applicative

Architetture Applicative Alessandro Martinelli alessandro.martinelli@unipv.it 6 Marzo 2012 Architetture Architetture Applicative Introduzione Alcuni esempi di Architetture Applicative Architetture con più Applicazioni Architetture

Dettagli

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate MODULO BASE Quanto segue deve essere rispettato se si vuole che le immagini presentate nei vari moduli corrispondano, con buona probabilità, a quanto apparirà nello schermo del proprio computer nel momento

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 Progetto ICoNLingua Scienza senza Frontiere CsF- Italia Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A. 2013-2014 1. Introduzione La valutazione sia in itinere

Dettagli

Cosa è un foglio elettronico

Cosa è un foglio elettronico Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti

Dettagli

Scheda di approfondimento gioco I pixel

Scheda di approfondimento gioco I pixel Scheda di approfondimento gioco I pixel IN CLASSE: per introdurre questo tema, dopo aver ricordato cos è la Rete, chiedere ai bambini se conoscono il sistema di comunicazione dei computer. Il computer

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

Codifica delle immagini

Codifica delle immagini FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Codifica delle immagini 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n.

Dettagli

In questa pagina si descrivono le modalità di gestione del sito in riferimento al trattamento dei dati personali degli utenti che lo consultano.

In questa pagina si descrivono le modalità di gestione del sito in riferimento al trattamento dei dati personali degli utenti che lo consultano. PRIVACY POLICY PERCHE QUESTO AVVISO In questa pagina si descrivono le modalità di gestione del sito in riferimento al trattamento dei dati personali degli utenti che lo consultano. Si tratta di un informativa

Dettagli

5. Fondamenti di navigazione e ricerca di informazioni sul Web

5. Fondamenti di navigazione e ricerca di informazioni sul Web 5. Fondamenti di navigazione e ricerca di informazioni sul Web EIPASS Junior SCUOLA PRIMARIA Pagina 43 di 47 In questo modulo sono trattati gli argomenti principali dell universo di Internet, con particolare

Dettagli

Nota interpretativa. La definizione delle imprese di dimensione minori ai fini dell applicazione dei principi di revisione internazionali

Nota interpretativa. La definizione delle imprese di dimensione minori ai fini dell applicazione dei principi di revisione internazionali Nota interpretativa La definizione delle imprese di dimensione minori ai fini dell applicazione dei principi di revisione internazionali Febbraio 2012 1 Mandato 2008-2012 Area di delega Consigliere Delegato

Dettagli

I metodi colore in Photoshop e il significato dei canali

I metodi colore in Photoshop e il significato dei canali I metodi colore in Photoshop e il significato dei canali IL COLORE Iniziamo a pensare alla luce come definita da due caratteristiche indipendenti: 1. LUMINOSITÀ 2. COLORE Luminosità quanto è forte questa

Dettagli

Codifiche a lunghezza variabile

Codifiche a lunghezza variabile Sistemi Multimediali Codifiche a lunghezza variabile Marco Gribaudo marcog@di.unito.it, gribaudo@elet.polimi.it Assegnazione del codice Come visto in precedenza, per poter memorizzare o trasmettere un

Dettagli

DIFFERENZIARE LE CAMPAGNE DI MARKETING La scelta del canale adeguato

DIFFERENZIARE LE CAMPAGNE DI MARKETING La scelta del canale adeguato Via Durini, 23-20122 Milano (MI) Tel.+39.02.77.88.931 Fax +39.02.76.31.33.84 Piazza Marconi,15-00144 Roma Tel.+39.06.32.80.37.33 Fax +39.06.32.80.36.00 www.valuelab.it valuelab@valuelab.it DIFFERENZIARE

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Reti di calcolatori ed indirizzi IP

Reti di calcolatori ed indirizzi IP ITIS TASSINARI, 1D Reti di calcolatori ed indirizzi IP Prof. Pasquale De Michele 5 aprile 2014 1 INTRODUZIONE ALLE RETI DI CALCOLATORI Cosa è una rete di calcolatori? Il modo migliore per capire di cosa

Dettagli

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. *+33(GLWRU GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain. Il programma si basa su un architettura di tasti funzionali presenti

Dettagli

3. Introduzione all'internetworking

3. Introduzione all'internetworking 3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia

Dettagli

Le strumentazioni laser scanning oriented per i processi di censimento anagrafico dei patrimoni

Le strumentazioni laser scanning oriented per i processi di censimento anagrafico dei patrimoni CONVEGNO FACILITY MANAGEMENT: LA GESTIONE INTEGRATA DEI PATRIMONI PUBBLICI GENOVA FACOLTA DI ARCHITETTURA 06.07.2010 Le strumentazioni laser scanning oriented per i processi di censimento anagrafico dei

Dettagli

Università Politecnica delle Marche. Progetto Didattico

Università Politecnica delle Marche. Progetto Didattico Università Politecnica delle Marche Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica e dell Automazione Sede di Ancona Anno Accademico 2011-2012 Corso di Tecnologie WEB Docente prof. Alessandro

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

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

INFORMATICA. Elaborazione delle immagini digitali. Università degli Studi di Foggia Dipartimento di Medicina Clinica e Sperimentale

INFORMATICA. Elaborazione delle immagini digitali. Università degli Studi di Foggia Dipartimento di Medicina Clinica e Sperimentale INFORMATICA Università degli Studi di Foggia Dipartimento di Medicina Clinica e Sperimentale A.A. 2014/2015 II ANNO II SEMESTRE 2 CFU CORSO DI LAUREA MAGISTRALE IN SCIENZE E TECNICHE DELLE ATTIVITÀ MOTORIE

Dettagli

Hub-PA Versione 1.0.6 Manuale utente

Hub-PA Versione 1.0.6 Manuale utente Hub-PA Versione 1.0.6 Manuale utente (Giugno 2014) Hub-PA è la porta d ingresso al servizio di fatturazione elettronica verso la Pubblica Amministrazione (PA) a disposizione di ogni fornitore. Questo manuale

Dettagli

CONTENT MANAGEMENT SY STEM

CONTENT MANAGEMENT SY STEM CONTENT MANAGEMENT SY STEM I NDI CE I NTRODUZI ONE Accesso al CMS 1) CONTENUTI 1.1 I nserimento, modifica e cancellazione dei contenuti 1.2 Sezioni, categorie e sottocategorie 2) UTENTI 3) UP LOAD FILES

Dettagli

Le immagini digitali: introduzione

Le immagini digitali: introduzione Le immagini digitali: introduzione 1 L immagine digitale Un immagine pittorica è compsta da milioni di pigmenti colorati molto piccoli che, messi vicino l uno all altro, danno l impressione dei vari oggetti.

Dettagli

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:

Dettagli