Appunti del corso di Sistemi Multimediali

Transcript

Appunti del corso di Sistemi Multimediali
Appunti del corso di Sistemi Multimediali
(2011/2012)
A cura di Fabio Canigliula
INDICE DEI CONTENUTI
1. INTRODUZIONE ................................................................................................ 4
1.1.
Definizioni sulla Multimedialità ................................................................................... 4
1.2.
Processi Comunicativi ................................................................................................. 5
2. WEB SEMANTICO ............................................................................................. 8
2.1.
Evoluzione del WEB .................................................................................................... 8
2.2.
Accesso alle Informazioni WEB ................................................................................... 9
2.3.
WEB Semantico ......................................................................................................... 10
2.4.
Ontologia Testuale .................................................................................................... 12
3. IMAGE DATA .................................................................................................. 14
3.1.
Immagini ................................................................................................................... 14
3.2.
Formati Immagini ...................................................................................................... 15
4. COLORS .......................................................................................................... 26
4.1.
Human Vision ............................................................................................................ 26
4.2.
Caratteristiche Percettiva del Colore ........................................................................ 28
4.3.
Standardizzazione della Cromacità .......................................................................... 30
5. IMAGE PROCESSING ....................................................................................... 39
5.1.
Fondamenti di Image Processing .............................................................................. 39
5.2.
Metodi di Elaborazione nel Dominio Spaziale .......................................................... 40
5.3.
Elaborazione Punto-Punto (Point-Processing) .......................................................... 40
5.4.
Histogram Processing ................................................................................................ 48
5.5.
Spatial Filtering .......................................................................................................... 49
5.6.
Smoothing Spatial Filters ........................................................................................... 51
5.7.
Utilizzi dello Smoothing ............................................................................................. 53
5.8.
Sharpening Spatial Filters .......................................................................................... 55
1
6. MULTIMEDIA FEATURES ................................................................................. 59
6.1.
Features and Metrics ................................................................................................. 59
6.2.
Features Selection ...................................................................................................... 63
6.3.
Principal Component Analysis (PCA) ......................................................................... 66
6.4.
Fattorizzazione SVD ................................................................................................... 68
6.5.
Algoritmo PCA ............................................................................................................ 69
6.6.
Compattezza di un Database .................................................................................... 72
7. VISUAL INFORMATION RETRIEVAL ................................................................. 73
7.1.
Visual Information Retrieval (VIR) ............................................................................. 73
7.2.
Query Remastered .................................................................................................... 75
7.3.
Features Extraction ................................................................................................... 77
7.4.
Difference of Gaussian Filters (DoG) ......................................................................... 78
7.5.
Wavelet Transform .................................................................................................... 79
7.6.
Image Features........................................................................................................... 82
7.7.
Scale Invariant Feature Transform (SIFS) .................................................................. 85
7.8.
Precision and Recall ................................................................................................... 88
8. COMPRESSIONE ............................................................................................. 89
8.1.
Video Basics .............................................................................................................. 89
8.2.
Audio Basics ............................................................................................................... 91
8.3.
Multimedia Data Compression .................................................................................. 93
8.4.
Lossless Compression................................................................................................. 97
8.5.
Lossy Compression ..................................................................................................... 97
8.6.
Image Compression ................................................................................................. 100
8.7.
Video Compression ................................................................................................. 103
9. INDICI ............................................................................................................109
9.1.
Database Multimediali (Cenni Introduttivi) ............................................................ 109
9.2.
Indici Multimediali .................................................................................................. 110
9.3.
K-D Tree ................................................................................................................... 112
2
9.4.
Point-Quad Tree (PQT) ............................................................................................ 117
9.5.
R-Tree ...................................................................................................................... 125
10. DATABASE MULTIMEDIALI ...........................................................................130
10.1.
Multimedia Database .............................................................................................. 130
10.2.
Oracle Intermedia .................................................................................................... 133
11. INTRODUZIONE A XML ................................................................................139
11.1.
Introduzione a XML ................................................................................................. 139
11.2.
SMIL ......................................................................................................................... 142
12. VIDEOSORVEGLIANZA ..................................................................................150
12.1.
Sistemi di Videosorveglianza ................................................................................... 150
12.2.
Image Processing System (IPS) ................................................................................ 152
12.3.
Finding Unexplained Activities ................................................................................ 154
13. COMPUTER GRAPHICS ..................................................................................158
13.1.
Introduzione alla Computer Graphics ..................................................................... 158
13.2.
Paradigmi per la Sintesi di Immagini 3D .................................................................. 159
14. GESTIONE DEL TESTO....................................................................................162
14.1.
Trattamento Automatico del Testo ......................................................................... 162
14.2.
Formalizzazione del Dominio .................................................................................. 164
14.3.
Natural Language Processing (NLP) .......................................................................... 168
3
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
-
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
-
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
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
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 (ServiceOriented 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
 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
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
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
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
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
CAPITOLO III – IMAGE DATA
I formati su cui si lavora con dati multimediali sono tantissimi.
File Import
IMAGE
.BMP .DIB
.GIF .JPG
.PICT .PNG
.PNT .PSD
.TGA .TIFF
.WMF
PALETTE
.PAL
.ACT
SOUND
.AIFF
.AU
.MP3
.WAV
VIDEO
.AVI
.MOV
File Export
ANIMATION Image Video
.DIR
.BMP .AVI
.FLA
.MOV
.FLC
.GIF
.PPT
Native
.DIR
.DXR
.EXE
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
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 (
Riflessione. Dove è ilcodominio e
è la cardinalità dei grigi.
)
,
- è la funzione di
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
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
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
)
(
) ,il 1° bit
esempio, considerando un’immagine il cui valore in 8 bit è (
17
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à 921.6 kb di memoria:
bytes.
18
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
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
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
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
 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
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
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
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
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 ( )
è la funzione di percezione dei coni.
,
( )
( )
( )- che
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
( ) ( ) viene detto Segnale di Colore.
oculari ( ). Il prodotto tra riflessione e SPD ( )
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
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
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
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
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
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
[ ]
[ ]
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
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
(
(
(
)→
{
[
)
)
(
(
)
]
)
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
 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
 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
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
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:
(
)
, (
)-
) è l’immagine di Input, (
) è quella processata e , - è un operatore che agisce
Dove (
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 (
forma di , -, si ottengono risultati di processing differenti.
). A seconda della
39
 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
La Power-Law (legge di Potenza) segue la relazione:
A seconda del valore di gamma si ottengono delle curve di rappresentazione di , - diverse. Tale
funzione di trasformazione è utilizzata per il gamma correction.
 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
 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
 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
 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
, (
, (
))-
, (
, (
))-
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
 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
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
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
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
-
-
-
-
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
(
)
∑
∑
∑
(
∑
) (
)
(
)
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
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
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 MultiResolution, 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
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 (
Non nulla per inizio e fine di una rampa o gradino.
Non nulla lungo una rampa.
), per Y se (
)
(
)).
La derivata seconda è invece:
-
Nulla per aree costanti. (per X se
)
(
)).
(
)
(
)
(
)
(
), per Y se (
54
-
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
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, (
con la maschera Laplaciana.
)
)
) l’immagine di partenza e
(
) l’immagine filtrata
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
 Filtro Gradiente (Derivativo 1° Ordine)
Rappresenta la derivata di una immagine (
come:
) nella direzione di massima variazione. Definito
[
]
[
]
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
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
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
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
 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 ⃗ (
prodotto risulta:
)e ⃗
(
) vettori delle componenti di due punti, si ha che il loro
⃗ ⃗
∑
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
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
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
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
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 643072 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
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
(
(
)
(
)
→{
)
( )
( )
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
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
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
quadrate degli autovalori non nulli sia di
e di
) sono le radici
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
 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
se
,
Se i coefficienti di
coniugata.
-
,
-
x
dall’outer product di con
stessa:
∑
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
diagonalizza la matrice di covarianza :
di dimensioni
x
di autovettori che
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
 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
quadrata delle varianze sulla diagonale della matrice di covarianza :
* , -+
{√ ,
x dalla radice
-}
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
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
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
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
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
-
-
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
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
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
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
Hilbert
che
( ) è una wavelet ortonormale se può essere usata per definire una base di
è
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
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
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
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
( ) il numero di pixels di colore
grado di similarità’. Chiamando con un generico colore e con
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
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
.
/
(
)
|
|
∑
(|
| )
(
{
)
 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
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
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
) e l’orientamento (
quindi la magnitudine (
) del gradiente dell’immagine come:
(
)
√( (
)
(
)
(
(
))
(
(
( (
)
)
(
(
)
(
))
)
)
)
86
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
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
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
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
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
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/2012.
92
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
*
+ l’entropia sarà quindi definita come:
bits. Sia un alfabeto
( )
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
→
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
 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

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
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
) tramite l’utilizzo di un
un’immagine differenza (processata con un filtro differenziale) (
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
) è popolato in maniera approssimativamente più
iniziale (
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
Dove
rappresenta la sequenza di dati in ingresso,
lunghezza della sequenza.
la sequenza di dati ricostruita e
la
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
) della stessa dimensionalità’ di ( ):
applicare la DCT per ottenere una nuova immagine (
(
Dove
da:
( ) ( )
)
√
(
∑∑
)
(
)
(
)
; e dove le costanti ( ) e ( ) sono determinate
;
( )
,
√
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
) in un dominio a
trasforma un’immagine generica ( ) in un dominio spaziale, in un’altra (
frequenza spaziale.
98
Si analizzi il caso particolare della 2D-DCT, utilizzata per le immagini:
(
)
( ) ( )
∑∑
(
)
(
)
(
)
(
)
(
)
La corrispondente 2D-IDCT:
(
)
Entrambe per
∑∑
( ) ( )
(
)
.
( ) nelle
Al fine di ottenere una migliore compressione, le basi, rappresentate dai contributi di
espressioni devono essere ortonormali. Date le funzioni ( ) e ( ) esse sono ortonormali se
vale:
∑[
()
( )]
∑[
()
( )]
{
Di fatti, si può dimostrare che:
∑*
∑*
{
(
( )
)
(
(
)
)
( )
+
(
)
+
99
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
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
): venendo scansionati in tale maniera aumenta la probabilità di trovare
quantizzati ̂ (
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
 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
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
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 Pframe 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

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
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
 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
 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
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
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
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
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
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
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
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
 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
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
Se un PQT ha nodi, il “worst case” per una INSERT è rappresentato quando l’albero ha
quindi un massimo di complessita’ di inserzione.
livelli,
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
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
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
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
( ) è ricorsiva e differente in base al quadrante alla quale
La funzione di riarrangiamento
si applica. Cerca sempre di riportarsi al caso semplice in cui un nodo possieda un solo figlio oppure
( ) invece sceglie, nel quadrante in cui viene scelto il
che sia una foglia. La funzione
candidato, la migliore disposizione per il sottoalbero, riarrangiandolo con il candidato come nuova
sottoRoot.
121
 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
(
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
(
) due punti e
quindi viene utilizzata una distanza Euclidea. Siano
(
)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
nella regione NW.
)
((
√
)
)
, partendo dalla sinistra ossia il nodo
(
(
(
(
) situato
)
)(
))
)
√(
(
)
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
E’ evidente che la distanza tra e e’ maggiore del valore in
. Il nodo
ad esso corrispondente viene allora potato. è dunque il nuovo candidato:
(
(
)
)
Si procede quindi la ricerca per il sottoalbero di
(
), situato nella regione NW di :
(
(
)
((
)(
e il sottoalbero
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
(
)
√
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
analizzare la distanza con :
(
Quindi
)
, interseca la circonferenza
)
(
). Si deve 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
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
 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
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
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
saranno immediatamente potati.
)
e
, siccome non intersecano la regione di
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
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
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
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 http:// 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
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
 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
Il Costruttore inizializza gli attributi della classe relativa all’immagine, ma non la memorizza
( ) inizializza
all’interno del DB (ossia non carica l’immagine nel campo BLOB). La funzione
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
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
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
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
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
-
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
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)
2)
3)
4)
I TAG sono sintatticamente corretti.
Ogni TAG ha apertura e chiusura.
Esiste un TAG Radice (riflette la struttura gerarchica del XML).
Gli innesti dei TAG sono corretti.
141
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/2012.
2. 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
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

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
 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

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
 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
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
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/2012.
149
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
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
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
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
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

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
 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
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/2012.
157
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
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
-
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
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/2012.
161
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
Il modello di reasoning (sperimentale) in analisi, si struttura come in figura:
-
-
Le fasi
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.
e
sono ancora in fase di studio.
163
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
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
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
-
-
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
 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
-
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
Solitamente l’utente indica solo le parole chiave di quello che realmente vuol cercare. Arrivata al
blocco “Query” la macchina risponde alla richieste che le viene presentata dopo le trasformazioni
della richiesta (che la rendono più comprensibile al sistema). La bontà dei risultati sono misurati
con Precision e Recall.
Col crescere delle dimensioni delle raccolte dei documenti, diventa difficile e costoso andare a
memorizzare gli indici booleani relativi ad ogni documento, siccome questi sarebbero racchiusi in
tabelle enormi. Perciò si adopera un’altra tipologia di indicizzazione. Il metodo degli Inverted
Index fa corrispondere ad ogni documento un ID: ad ogni termine assegna una lista ordinata
contenente gli ID dei documenti in cui compare. Con questa tecnica si risparmia sulle dimensioni di
memorizzazione (non è richiesta una tabella, bensì delle liste linkate) e si rende semplice la
consultazione degli indici all’interno delle liste, siccome sono ordinate.
L’insieme dei termini viene chiamato Dizionario, mentre ogni ID contenuto nella lista è chiamato
Posting. Per costruire gli Inverted Index, si applicano le tecniche viste in precedenza per il
trattamento automatico del testo al fine di estrapolare un insieme di lessico peculiare da ogni
documento della raccolta. Successivamente, si fondono gli insiemi di lessico peculiare di ogni
documento, ottenendo informazioni sulla frequenza di occorrenza di ogni termine relativa
all’intera raccolta (in quanti documenti della raccolta compare il termine). A queste informazioni è
aggiunta la lista dei postings, che traccia gli ID dei documenti in cui compaiono i termini.
170
Costruito il dizionario e le postings lists, per effettuare una query si applicano operatori booleani
che agiscono questa volta sui postings. Si consideri ad esempio la query
.
Cercando nel dizionario le parole
e
ne si trova la lista dei postings e si effettua
il merge. Il risultato sarà’ l’insieme dei postings comuni alle due liste.
Computazionalmente l’operatore di esclusione (
) è molto più complesso del merging.
Spesso la sola ricerca delle parole chiavi non è sufficiente, siccome si vuole ricercare anche
informazioni relative al contesto e alla semantica. Per questo motivo sono possibili delle query di
prossimità testuali, che ricercano negli intorni della parola indicata, quelli che sono riscontri di
altre parole con significati affini al contesto da ricercare (es: sullo stesso rigo, o su righi adiacenti).
171