Sei sulla pagina 1di 49

PROGETTO Digital Window

Relazione conclusiva FASE 1


Modelli dei dati per riconoscimento e
classificazione
Sommario
Introduzione
CAP. 1 Rappresentazione e modellizzazione 3D capi vetrina
1.1 Modellizzazione 3D: linguaggi e formati
1.2 Modellizzazione corpo umano e capi di abbigliamento
1.3 Software per grafica 3D
1.3.1. Player X3D
1.3.2. Editing, rendering e animazioni 3D
1.4 Creazione automatica modelli 3D
CAP. 2 Classificazione capi vetrina
2.1 Classificazione automatica
2.2 Classificazione di oggetti da immagini o video
2.2.1. Segmentazione di immagini
2.2.2. Segmentazione di immagini di capi di abbigliamento
2.2.3. Tecniche per la classificazione di immagini
2.2.4. Riconoscimento e classificazione capi abbigliamento
CAP. 3 Modelli per la rappresentazione di flussi temporali di oggetti
3.1 Modelli per la rappresentazione dei dati temporali
3.2 Modelli per la rappresentazione del flusso pedonale
3.3 Rappresentazione di dati temporali basata su XML
Introduzione
Gli obiettivi generali del progetto Digital Window comprendono:
L'acquisizione automatica periodica della configurazione della vetrina
Il riconoscimento e la classificazione del contenuto della vetrina
La generazione di un modello spaziale della stessa
Il popolamento di una base di dati con immagini relative a capi di abbigliamento
La rilevazione del flusso della clientela davanti alla vetrina e rilevamento degli oggetti
osservati
Lo scambio di dati in forma protetta fra punti di vendita e sede centrale definendo
opportuni formati
La prima fase del progetto Digital Window prevede una ricognizione sui modelli e sugli strumenti
utilizzabili per l'acquisizione automatica e l'aggiornamento della configurazione delle vetrine e la
loro rappresentazione 3D al fine di consentire la verifica della corretta applicazione delle direttive di
allestimento indicate dall'azienda e di fornire una base per la realizzzione del sistema di tracking e
monitoraggio della clientela. Inoltre prevede una ricognizione sullo stato dell'arte dei principali
algoritmi per il riconoscimento, per la classificazione di oggetti e per la loro collocazione 3D. Infine
prevede la ricognizione dei modelli per la rappresentazione di flussi temporali di oggetti.
Il primo capitolo di questa relazione riguarda la rappresentazione 3D dei capi in vetrina, il secondo
tratta della classificazione e riconoscimento automatico dei capi in vetrina, infine il terzo presenta lo
studio di modelli temporali per la rappresentazione dell'evoluzione della configurazione delle
vetrine e per il monitoraggio della clientela.
Nel primo capitolo vengono inizialmente presentati e brevemente illustrati i linguaggi e i formati
usati per la rappresentazione di contenuti 3D e, fra i molti formati presenti allo stato dell'arte, si
scelto di dedicare pi attenzione ai linguaggi standard ISO VRML e X3D per la modellizzazione di
oggetti e ambienti 3D; successivamente ci si concentrati sulla modellizzazione del corpo umano e
dei suoi accessori sia da un punto di vista matematico che tramite il linguaggio XML; la sezione 3
stata dedicata alla rassegna di software per la grafica 3D sia dal punto di vista della visualizzazione
di file 3D tramite semplici player o browser sia dal punto di vista dell'editing del rendering e
dell'animazione; il capitolo si chiude con la presentazione di software che permettono di creare
automaticamente modelli 3D a partire da foto.
Il secondo capitolo si apre con una sezione riguardante il problema generale della classificazione
automatica illustrando in particolare le tecniche di classificazione fuzzy. Si passa poi a considerare
nello specifico il problema della classificazione di oggetti da immagini o video; tale problema viene
scomposto in due passi: il primo quello della segmentazione che ha lo scopo di individuare i vari
oggetti all'interno dell'immagine, mentre il secondo quello della classificazione vera e propria.
Entrambi i problemi vengono prima trattati in generale e poi vengono presentate le tecniche
descritte in letteratura per l'applicazione al caso di capi di abbigliamento sia per la segmentazione
che per la classificazione.
Il terzo capitolo tratta dei modelli per la rappresentazione di dati temporali. Nell'ambito del progetto
la necessit di trattare dati temporali duplice: da un lato occorre tener traccia dell'evoluzione
temporale della vetrina registrando, oltre alla posizione in cui capo stato esposto, anche l'intervallo
temporale dell'esposizione; inoltre occorrer registrare il periodo in cui una vetrina ha avuto una
certa configurazione. D'altro canto sar necessario tener traccia del flusso pedonale davanti alla
vetrina, registrando oltre alle traiettorie degli osservatori anche i tempi di permanenza in una data
posizione in modo da valutare l'attrattiva dei diversi elementi presenti nella vetrina. Il capitolo si
apre con una presentazione dei modelli e dei prodotti per la rappresentazione di dati temporali
introducendo in particolare il modello di dati bitemporale che associato ad un dato prevede il tempo
di validit (il tempo in cui un dato vero nel mondo modellato) ed un tempo di transazione (il
tempo in cui un dato presente nel database); nel paragrafo successivo saranno illustrati i modelli e
le tecniche utilizzate per la rappresentazione dei flussi pedonali. Infine, nel terzo paragrafo,
verranno presentati i modelli XML per la rappresentazione di dati temporali descrivendo in
particolare due modelli generali per la rappresentazione di dati temporali per i quali sono stati
definite delle estensioni temporali dei linguaggi di interrogazione XPath e XQuery.
CAPITOLO 1
MODELLIZZAZIONE E RAPPRESENTAZIONE
CAPI IN VETRINA
Questo capitolo dedicato alla descrizione dei risultati ottenuti nella fase di ricognizione dello stato
dell'arte per quanto riguarda i principali linguaggi, modelli e formati per la rappresentazione dei dati
in 3D. Particolare attenzione stata dedicata alla ricerca di tecniche standard per la modellizzazione
di capi di abbigliamento e l'uso di formati aperti non proprietari basati sul linguaggio XML.
In merito alla modellizzazione 3D, nella Sezione 1.1 sono presentati e brevemente illustrati i
linguaggi/formati VRML, X3D ed alcune alternative. L'attenzione stata dedicata a VRML e X3D
perch sono i linguaggi standard per la modellizzazione di oggetti/ambienti 3D. VRML un
linguaggio aperto open source e rappresenta il primo formato standard ISO per la modellizzazione
di oggetti/ambienti 3D mentre X3D rappresenta la naturale evoluzione di VRML come standard
ISO e pu essere a tutto diritto considerato la versione in XML di VRML. Questo linguaggio
sicuramente il riferimento da considerare per la modellazione di oggetti 3D allo stato attuale
dell'arte.
Nella sezione successiva 1.2 si passa alla descrizione di tecniche di modellazione dei dati applicate
direttamente al trattamento di capi di abbigliamento. Vengono presentati alcuni modelli
matematico/geometrici basati su grafi usati come riferimento in molti lavori dedicati al
riconoscimento automatico e alla classificazione di capi di abbigliamento ed il linguaggio
BodyXML proposto come linguaggio XML per la specifica modellazione del corpo umano e dei
suoi accessori come appunto i capi di abbigliamento.
La sezione 1.3 dedicata alla descrizione dei software disponibili sul mercato e principalmente in
uso nel settore della grafica 3D. Data l'eccessiva numerosit di questi prodotti, la nostra attenzione
stata concentrata sui principali prodotti open source che presentano particolare attinenza con il
progetto, come per esempio quelli dedicati alla modellazione del corpo umano e dei suoi accessori
oppure quelli che permettono funzionalit di realizzazione automatica del modello 3D.
1.1 Modellazione 3D: linguaggi e formati
VRML
VRML (Virtual Reality Modeling Language) uno dei formati standard per la grafica vettoriale 3D
interattiva. Mediante il VRML possibile descrivere ambienti virtuali contenenti oggetti, sorgenti
luminose, immagini, suoni, filmati. Questi mondi, inoltre, possono essere animati e presentare
caratteristiche anche complesse di interattivit.
I file di tipo VRML sono semplici file di testo contenenti tutti i comandi necessari a descrivere una
scena tridimensionale.
Il formato stato introdotto nel 1994 ed stato progettato proprio per il World Wide Web; rimasto
lo standard di riferimento per la modellazione 3D fino al 2004 quando stato sostituito dal formato
X3D (Extensible 3D) che pu ragionevolmente essere considerato un VRML 2.0 riscritto in XML.
La specifica attuale, standard ISO, divisa in due parti:
1. ISO/IEC 14772-1 che definisce le funzionalit base e la codifica testuale
2. ISO/IEC 14772-2 che definisce le interfacce verso l'esterno.
L'introduzione di VRML ha suscitato un grande interesse e una grande euforia nel mondo della
grafica e nel mondo di internet, ma non ha avuto la grande diffusione di massa che inizialmente era
stata prevista. Una delle principali ragioni di questo fallimento stata riconosciuta nella
mancanza di banda disponibile. Ai tempi della nascita di VRML e negli anni della sua massima
popolarit, la maggioranza degli utenti stava ancora usando accessi internet lenti in dial-up.
Le prime sperimentazioni di VRML furono principalmente nei settori dell'educazione e negli
ambienti di ricerca dove un formato aperto sicuramente pi apprezzato. Oltre agli scopi di
modellizzazione grafica 3D per i quali stato creato, VRML ampiamente usato come formato per
lo scambio di file di modelli 3D in particolare fra sistemi CAD.
I file di tipo VRML sono semplici file di testo contenenti la descrizione geometrica degli oggetti, la
specifica di qualit grafiche (come superficie, texture, brillantezza, trasparenza ecc.), animazioni,
suoni etc. e l'associazione di un URL che permette la visualizzazione e la navigazione dell'oggetto
direttamente dal browser.
Le geometrie degli oggetti possono essere descritte attraverso un insieme di primitive che
definiscono geometrie semplici come sfere, cubi o coni oppure la descrizione di oggetti complessi
composti da una serie di poligoni definiti a loro volta da vertici e spigoli rappresentanti la geometria
dell'oggetto. I file VRML sono comunemente chiamati "mondi" e sono caratterizzati
dall'estensione .wrl.
Agli oggetti inoltre attribuita una posizione all'interno di uno schema di assi ortogonali in tre
dimensioni che definisce la loro disposizione all'interno del mondo VRML. La posizione degli
oggetti pu essere definita in maniera assoluta rispetto agli assi oppure in maniera relativa fra gli
oggetti stessi. Gli oggetti possono essere collegati fra di loro attraverso la definizione di gerarchie
usando nodi innestati in cui si definiscono le distanze relative.
Per rappresentare in maniera pi realistica le superfici degli oggetti, possibile associare ad un
oggetto una immagine di texture per poter rappresentare realisticamente oggetti dalle superfici non
uniformi quali il legno, il marmo ecc; a tale scopo il VRML prevede limpiego di immagini di
textures inserite tramite i principali formati grafici GIF, JPG e PNG che vengono mappate sopra gli
oggetti e ne definiscono la superficie. La mappatura di texture su primitive geometriche definita
da regole ben precise mentre quando si tratta di mappare una texture su un oggetto complesso
necessario definire una serie di propriet ed effetti che devono essere applicati.
Infine gli oggetti sono inseribili in un mondo che definisce l'ambiente in cui l'oggetto si trova.
Questa possibilit pu essere raggiunta in due modi in VRML 2.0. Il primo modo consiste nel
cambiare colore al background, specificando posizione e colori degli elementi cielo e terra. In
pratica, VRML rende disponibile una sfera che avvolge completamente il mondo; il colore sui lati
interni della sfera puo' essere specificato in modo tale da variare in modo lineare tra piu' valori. Il
secondo metodo prevede lutilizzo, in luogo della sfera, di un box sulle cui pareti interne applicare
oltre ai colori, textures di immagini.
X3D
X3D il linguaggio successore di VRML che viene migliorato con l'aggiunta di nuove features, API
avanzate, formati per la codifica dei dati nonch attraverso regole di conformit pi ristrette e l'uso
di profili. Le principali caratteristiche di X3D sono:
Formato open source.
ufficialmente incorporato all'interno dello standard MPEG-4 per il multimedia.
L'uso di XML rende facile l'esposizione dei dati a Web Services e applicazioni distribuite.
compatibile con formati avanzati di grafica
Offre oggetti manipolabili in C, C++ e Java
Lo scopo principale di X3D la descrizione di ambienti virtuali interattivi. Le entit che possono
essere descritte sono:
Ambiente (descrive le caratteristiche dell'ambiente, come lo sfondo, la nebbia, ecc.)
Oggetti (descrive la posizione, la geometria e il colore degli oggetti)
Luci (descrive la posizione e le caratteristiche fisiche delle luci)
Suoni (descrive la posizione e le caratteristiche dei suoni)
Osservatore (descrive le caratteristiche dell'osservatore)
Animazioni (descrive le eventuali animazioni degli oggetti, delle luci, dei suoni,
dell'osservatore, ecc.)
Interattivit (descrive l'interazione dell'ambiente con l'osservatore, ad esempio il click su di
un oggetto)
Scripting (permette di manipolare l'ambiente virtuale attraverso linguaggi di scripting come
Javascript o attraverso linguaggi come Java)
Un file X3D un file XML in cui viene descritto l'ambiente virtuale attraverso quello che viene
definito grafo della scena.
Il grafo della scena sostanzialmente un albero i cui nodi interni rappresentano le trasformazioni
spaziali delle entit definite nell'ambiente virtuale, mentre le foglie sono le entit stesse. Il fatto che
si usi il termine grafo invece che albero deriva dal fatto che quando due nodi distinti fanno
riferimento alla stessa entit si definisce un collegamento tra i due, ottenendo di fatto un grafo.
Nella visualizzazione della scena il player esegue una visita dell'albero inserendo nella scena le
entit man mano che vengono incontrate.
Sul mercato esistono molte applicazioni, molte delle quali di tipo open source, che leggono e
interpretano in maniera nativa i file X3D, fra cui Blender (noto editor di grafica e animazioni 3D) e
Project Wonderland (client per mondi virtuali della Sun Microsystems). Applicazioni in X3D
possono essere visualizzate direttamente nei browser usando la tecnologia OpenGL per la grafica
3D. Negli anni 2000, molte societ come Bitmanagement hanno migliorato la qualit degli effetti
virtuali la livello di DirectX 9.0c, ma a prezzo di una soluzione proprietaria.
X3D mira a divenire lo standard Web per il 3D, e ad essere integrato nelle pagine HTML5 come
altri dialetti XML (MathML, SVG).
Alternative a X3D
O3D un'application programming interface (API) realizzata da Google per la creazione di
applicazioni grafiche interattive 3D. una libreria Javascript Open source ed distribuita sotto
licenza BSD. O3D stata distribuita inizialmente (2009) sotto forma di plugin con codice open
source, utilizzabile da tutti i principali browser. Si trattava di un plugin con un'accelerazione di
rendering particolarmente potente, per cui i requisiti di sistema necessari per il corretto
funzionamento, erano piuttosto elevati. O3D un plugin ad alto livello, come pu essere Flash o
Silverlight, ed principalmente rivolto agli sviluppatori di giochi e grafica 3D. Attualmente O3D
distribuita come libreria Java-Script open source per creare ricche applicazioni 3D interattive nel
browser, implementata sulla base di WebGL.
3DMLW (3D Markup Language for Web) un linguaggio di marcatura basato su XML per
rappresentare contenuti 2D e 3D su Web. La piattaforma 3DMLW una suite di software open
source che pu essere usata su qualunque applicazione richieda la visualizzazione di contenuti. Il
motore di rendering usa lo standard OpenGL per le ottime performance e la distribuibilit
indipendente dalla piattaforma. Consiste di una libreria di scena a una libreria per la grafica che
forniscono una pipeline ottimizzata per il rendering. La libreria di scena pu essere utilizzata
indipendentemente per la manipolazione e la conversione dei mesh senza farne il rendering.
COLLADA (COLLAborative Design Activity) attualmente un formato di scambio per
applicazioni interattive 3D. COLLADA stato inizialmente proposto dalla Sony ed attualmente
gestito dal consorzio no-profit Khronos Group. COLLADA definisce uno schema aperto standard
XML per lo scambio di contenuti digitali fra vari applicativi per ovviare al problema
dell'incompatibilit dei formati proprietari. I documenti COLLADA sono file XML, solitamente
identificati con l'estensione .dae (digital asset exchange). COLLADA prevede un apposito supporto
per le applicazioni in fisica che permette di definire vari attributi fisici nella scena come per
esempio propriet di superficie dei materiali, vincoli fisici fra oggetti oppure propriet globali come
la gravitazione.
3DXML un formato proprietario per file 3D sviluppato dalla Dassault Systems sotto il marchio
3D Via. Usa un contenitore XML le cui specifiche sono pubblicate, ma non deve essere confuso con
X3D, il formato standard ISO basato su XML per la grafica 3D. Attualmente il formato 3DXML
format supportato solo dai prodotti della Dassault Systemes. Un player free distribuito per le
piattaforme Windows. 3DVIA Printscreen, applicazione per Windows, cattura istruzioni OpenGL e
DirectX per generare file 3DXML.
1.2 Modellizzazione corpo umano e capi di abbigliamento
Il tema della modellizzazione automatica di abiti e tessuti un tema di avanguardia, anche se per
motivi diversi, da molti anni. Con lo sviluppo delle moderne tecnologie per il rendering 3D, nonch
con il contemporaneo abbassamento dei costi per hardware ad elevate prestazioni, il tema quanto
mai attuale per almeno tre importanti settori industriali: la grafica di film e videogiochi, lo shopping
virtuale, la prototipazione e la simulazione di tessuti/capi innovativi per settori specialistici/avanzati
(come per esempio tute per vigili del fuoco e astronauti). Nel primo e nel secondo settore si richiede
una rappresentazione sempre pi realistica, possibilmente real-time, di capi/tessuti e della loro
vestibilit in tempi di sviluppo sempre pi rapidi e al minor costo possibile [5, 7, 8], mentre nel
terzo si richiede un lavoro di ingegnerizzazione al fine di testare e simulare la reattivit/resistenza
dei tessuti prima della messa in produzione per abbassare tempi e costi della lavorazione nonch i
rischi legati alla sperimentazione/simulazione [6].
Nonostante i settori e le applicazioni citati sopra siano quelli di pi forte impatto nell'immaginario
comune, la ricerca ha rivolto molta attenzione anche all'idea di modellare matematicamente oggetti
complessi come insiemi di componenti strutturate secondo il modello psicologico di Biederman
[10]. Il tema particolarmente sentito perch da una modellizzazione di questo tipo si possono
ottenere notevoli successi e miglioramenti nel campo del riconoscimento automatico di oggetti
anche nel caso di oggetti complessi e strutturati che offrono una grande variabilit in forme, texture
e colori all'interno della stessa categoria come per esempio nel caso di veicoli o capi di
abbigliamento.
Nel corso degli anni sono stati proposti vari approcci che possono essere racchiusi in due principali
categorie: modelli basati sull'aspetto e modelli basati sulla struttura. I primi usano una
rappresentazione principalmente basata sulle propriet fotometriche degli oggetti [11,12,13], e
tendono a disgregare l'informazione geometrica di alcuni punti chiave all'interno degli oggetti stessi.
Questo li rende non particolarmente efficaci per il riconoscimento in casi in cui la posa, le eventuali
occlusioni o riconfigurazioni sono fattori imprescindibili. Al contrario, i modelli basati sulla
struttura [1,9,13,14,15,19] includono informazioni importanti in merito alla posizione relativa e
assoluta delle componenti e questo li rende pi efficaci nei sistemi di riconoscimento in quanto
possono tener conto delle relazioni fra gruppi di parti/componenti costituenti gli oggetti.
L'idea comune in [1,9,15] si basa sull'utilizzo di grafi And-Or per la modellizzazione di oggetti
strutturati e sull'approccio basato sul learning della struttura di una certa categoria a partire da un
set di casi iniziali conosciuti (apprendimento supervisionato). Questi lavori, seppure con importanti
differenze, propongono algoritmi di inferenza per riconoscere oggetti all'interno di una categoria
data un'immagine di input sfruttando i template assunti in fase di apprendimento del sistema.
In [9,15] sono presentati sistemi pi generali testati su 5 differenti categorie di oggetti (orologi,
biciclette, computer, tazze e teiere) mentre il sistema presentato in [1] focalizzato sul caso
particolare dei capi di abbigliamento.
Fig.1.1 Esempio di apprendimento del modello. (a) immagine originale, (b) schizzo elaborato a mano (c) layer da
eliminare con pieghe, ombeggiature, texture etc. (d) schizzo risultante dalla sottrazione di (c), (e) decomposizione
di (d) in sub-templates per le varie componenti.
Nel lavoro presentato in [1] gli autori presentano una grammatica context sensitive rappresentata
con un grafo And-Or [3] che permette di produrre un ampio set di templates grafici per capi di
abbigliamento (T-shirts, giacche, etc.). In una prima fase di apprendimento supervisionato, sono
stati esaminati una serie di schizzi di persone vestite che sono stati decomposti in categorie di abiti e
parti del corpo (collo, spalle, mani, pantaloni, scarpe etc.) come illustrato in Fig.1.1. Ogni
componente modellata pu avere diversi subtemplates (sottografi) che sono usati come foglie in un
grande grafo And-Or: in tale grafo i nodi And rappresentano una decomposizione del grafo in sotto-
configurazioni, mentre i nodi Or sono un punto di scelta all'interno di un set di sotto-configurazioni;
i vincoli rappresentati dagli archi orizzontali rappresentano le relazioni fra le varie componenti
come possibile vedere in Fig.1.2.
Gli autori presentano inoltre un algoritmo ispirato a [4] che permette di inferire il grafo And-Or
modellante una certa immagine passata in input con un approccio misto bottom-up top-down in cui
le componenti pi informative (per es. il viso) sono catturate e modellate prima in modo che
possano fornire le informazioni necessarie per inferire le componenti meno significative.
L'obiettivo di ricostruire la struttura della immagine passata in input per restituire in output un
disegno ottenuto come composizione degli sketch del grafo inferito.
In [14] viene presentato un sistema di riconoscimento basato sul modello geometrico PS (Picture
Structures) introdotto da Fischler & Elschlager negli anni '70 [20] in cui oggetti strutturati vengono
modellati come insiemi di componenti rigide connesse da giunti snodati e sono rappresentati tramite
grafi. In particolare si analizza il caso della modellazione del corpo umano in cui le componenti
rigide sono rettangoli rappresentati da le coordinate del centro, l'angolo di rotazione e le dimensioni
(vedi Fig.1.3). Il problema del riconoscimento quindi affrontato come problema di matching tra
modelli (grafi) rappresentato come problema di minimizzazione di una funzione energia basata
sulle deformazioni e le relazioni fra le parti. Gli autori presentano un framework statistico che,
inserendo due restrizioni nelle ipotesi del modello originale, riesce a risolvere il problema di
minimizzazione della funzione energia in maniera molto efficiente e restituisce i primi k risultati
migliori per il matching.
Fig.1.2 Esempio di grafo AND-OR applicato alla modellazione di braccia.
In [19] viene affrontato il problema della modellizzazione delle composizioni di capi come grafi
etichettati in cui i nodi rappresentano le regioni segmentate, gli archi rappresentano le relazioni fra
esse e si hanno due funzioni di etichettatura che associano ai nodi alcune delle usuali features
grafiche caratterizzanti i segmenti e associano agli archi informazioni sulle relazioni di vicinato
(neighbourhood) fra i nodi e una distanza di similarit. Alcuni esempi di modellazione di diverse
composizioni sono illustrati in Fig.1.4.
Il modello presentato insieme ad un sistema di riconoscimento di abiti usato per l'identificazione
di persone all'interno del video di sorveglianza di un grande magazzino che verr illustrato nella
Sezione 2.2.4.
Oltre all'attinenza con il progetto Digital Window per quanto riguarda i modelli presentati e il
ccampo di applicazione in cui vengono sfruttati, uno dei principali punti di interesse di questi lavori
consiste nella struttura di rappresentazione gerarchica degli oggetti per la quale si pu tentare una
traduzione in formato XML. Tale traduzione potrebbe poi portare ad una rappresentazione
automatica in linguaggio X3D per la realizzazione e rendering di modelli 3D.
Fig.1.3 Esempio di applicazione del modello PS (Picture Structure) alla modellazione di una figura umana
Fig.1.4 Esempi di modellazione di cinque differenti composizioni di capi.
Tentativi di standardizzazione in XML
Oltre alle ricerche descritte in merito alla modellizzazione matematica e geometrica di classi di
oggetti ai fini di un'efficiente riconoscimento/classificazione, gli sforzi della comunit scientifica
sono stati rivolti anche alla ricerca di standard per la modellizzazione in formato XML del corpo
umano e dei capi di abbigliamento.
Durante la seconda met degli anni '90, in cui si assistito ad una esplosione del numero di
produttori di 3D scanner, lo sviluppo sia di software che di hardware si evoluto indipendentemente
fra i vari produttori. Questo trend ha causato la nascita di tanti formati per la rappresentazione del
corpo umano quanti furono i produttori di hardware del tempo. Lo studio riportato in [16] illustra lo
stato del mercato nel 2001 e illustra le diversit fra i vari formati scelti per la rappresentazione.
Per colmare il gap evidenziato, in [17] stato proposto lo standard BodyXML con il quale si
introducono le specifiche di un XML wrapper pensato principalmente per applicazioni nel settore
dell'abbigliamento. L'idea base quella di unificare le rappresentazioni del corpo umano e quelle
dei capi d'abbigliamento.
BodyXML stato proposto all'interno del progetto europeo e-T Cluster (IST-2000-26084) con
l'intento di sottometterlo al Web3D Consortium per la promozione come standard. In realt non
mai divenuto uno standard ufficiale e la sua diffusione attualmente molto limitata. riconosciuto
solo come un tentativo di standardizzazione al quale l'industria non si mai adeguata, preferendo i
propri formati proprietari. Attualmente le uniche indicazioni ufficiali per la rappresentazione del
corpo umano sono contenute nello standard ISO/IEC FCD 19774 Humanoid animation che non
considera in nessun punto la problematica della rappresentazione di abbigliamento e/o accessori del
corpo umano.

1.3 Software per la grafica 3D
1.3.1 Player X3D
Xj3D
Xj3D un progetto del Web3D Consortium finalizzato alla creazione di un toolkit per contenuti
VRML e X3D completamente scritto in Java. Il toolkit pu essere utilizzato per importare un
contenuto VRML all'interno di una applicazione, oppure per creare un browser completo. Lo scopo
iniziale del progetto era di creare un caricatore di file per le API Java3D; il progetto part grazie alla
concessione di codice al Web3D consortium da parte di Sun Microsystems. Nel tempo il progetto
cresciuto e comprende molte altre caratteristiche. Per esempio stato usato come uno dei principali
campi in cui testare le nuove specifiche X3D e permette di lavorare con standard diversi
dall'originale Java3D.
FreeWRL/FreeX3D
FreeWRL un browser opensource compatibile con i formati VRML/X3D per piattaforme
Microsoft Windows, Linux e Mac OS X rilasciato sotto licenza LGPL. Questo browser permette di
superare i problemi di incompatibilit che inevitabilmente sorgono se si va un uso estensivo di
formati VRML/X3D su altri browser. FreeWRL/FreeX3D segue lo standard ISO del Web3D
Consortium, ed certificato "Interchange Profile" Compliant dallo stesso Web3D Consortium. E'
multi-threaded, scritto in C, e usa OpenGL per il rendering. Il codice sorgente disponibile
sull'homepage del progetto. E' attualmente in uso in tutto il mondo.
Homepage: http://freewrl.sourceforge.net/
X3D-Edit
X3D-Edit un tool open source per la creazione, l'editing e la validazione di scene X3D.
E' scritto in Java e XML e pu essere usato sia come applicazione stand alone che come plugin per
Netbeans. X3D-Edit include editing diretto di scene X3D usando XML, la visualizzazione di scene
usando Xj3D viewer, la validazione XML usando grammatiche X3D DTD, e una serie di strumenti
che facilitano lo sviluppo fra cui il PixelTexture image import che permette di incorporare un file
immagine all'interno della scena X3D convertendolo in un nodo PixelTexture.
1.3.2 Editing e Rendering 3D
Il mercato del rendering e dell'editing per grafica 3D molto ampio e offre innumerevoli prodotti
dalle performance (e costi) pi svariati. In questa sezione, oltre ad una breve presentazione di Maya
e 3DSMax, due tra i software pi famosi e pi largamente usati nel mondo della grafica 3D, ci
siamo concentrati sulla ricerca di software che avessero caratteristiche utili al progetto o una diretta
connessione con gli scopi del progetto Digital Window.
Maya
Autodesk Maya un software professionale di modellazione, animazione e rendering 3D,
apprezzato soprattutto per l'alta qualit, i numerosi strumenti che mette a disposizione, la grande
libert di personalizzazione e l'implementazione di procedure scritte dall'utente, nonch per la
possibilit di aggiungere e rimuovere plugin. E' disponibile per tutte le piattaforme Windows, Linux
e MacOSX.
Una delle categorie in cui eccelle sicuramente la Character Animation, che lo rende,
probabilmente, il programma pi usato per i moderni film d'animazione tridimensionale e per la
progettazione dei videogiochi. Le immagini che produce sono dovute ai motori di rendering
integrati Maya Software, Maya Hardware, Maya Vector (che renderizza la scena trasformandola in
vettori) e Mental Ray oltre al supporto di terze parti per prodotti come Maxwell Render,
RenderMan, e Vray. Maya anche uno dei pi flessibili software del mercato grazie al suo
linguaggio di scripting, il "Mel" (Maya Embedded Language), e alla sua architettura aperta, che
permette all'utente di espandere e personalizzare le funzionalit del programma. Ultimamente Maya
supporta anche il linguaggio di programmazione Python. Mel permette la personalizzazione dei
pulsanti, dei menu e delle procedure disponibili, nonch la creazione di animazioni molto
complesse. La ditta produttrice di Maya, la Alias, stata recentemente acquisita dalla Autodesk, la
casa di 3D Studio Max e AutoCAD.
Prezzo: a partire da 3.450 USD
Homepage: http://usa.autodesk.com/maya/
3D Studio Max
3D Studio Max (3DSMax o Max) un programma professionale, disponibile solo per Windows, di
grafica vettoriale tridimensionale e animazione ed il principale concorrente di Maya.
Come Maya, deve il suo successo all'alta qualit al rendering di Mental Ray e alla possibilit di
installare vari plugin. Uno dei principali punti di forza di 3DSMax dato dalle numerose tecniche di
modellazione che mette a disposizione e dai potenti strumenti di illuminazione avanzata che
include, come Radiosity e Light Tracer, simili a strumenti di professionali per il rendering
fotorealistico come finalRender, Brazil r/s e V-ray. Inoltre include anche Havok Reactor, un software
per la creazione di simulazioni dinamiche realistiche, usate anche in parecchi giochi.
Infine 3DSMax pu generare un oggetto chiamato "emettitore di particelle": un oggetto 3D
modellato con il programma che emette oggetti multipli trattati come gruppo. A partire dalla
versione 7, ci sono 7 emettitori di particelle: PF Source, Spray, Snow, Blizzard, PArray, PCloud, e
Super Spray. Dalle ultime versioni sono stati introdotti metodi di controllo delle particelle definiti
"ad eventi": il comportamento di ogni singola particella condizionata dall'accadere o meno di
alcuni eventi (toccare una superficie, essere vicini a qualcosa, e cos via). Questo sistema permette
di creare animazioni di numerosi oggetti estremamente complesse (stormi di uccelli, eserciti in
movimento, ecc.)
Prezzo: a partire da 3.495 USD
Homepage: http://usa.autodesk.com/3ds-max/
Blender
Blender un programma open source di modellazione, animazione, compositing e rendering di
immagini tridimensionali. disponibile per tutte le piattaforme Windows, Mac OS X, Linux,
FreeBSD ed rilasciato gratuitamente sotto licenza GPL.
Dispone di funzionalit per mappature UV, simulazioni di fluidi, di rivestimenti, di particelle e
creazione di applicazioni/giochi 3D ed dotato di un robusto insieme di funzionalit paragonabili,
per caratteristiche e complessit, ad altri noti programmi per la modellazione 3D come 3D Studio
Max e Maya. Tra le funzionalit di Blender vi anche l'utilizzo di ray tracing e di script (in Python).
Sebbene attualmente permetta di realizzare praticamente ogni cosa possibile nell'ambito 3D,
differisce ancora da programmi come 3D Studio Max e Maya perch manca ancora di un sistema
NLA (Non Linear Animation) ricco e flessibile, la possibilit di unire armature (pu solo essere
emulato con un uso esteso dei vincoli), un'esportazione in formato non binario, un sistema
migliorato per gestire le misurazioni e, soprattutto a causa dello sviluppo rapido di Blender, una
documentazione coerente e sempre aggiornata.
Il film Spiderman 2 (2004) stato il primo grande progetto professionale nel quale Blender stato
usato e sono sempre di pi gli artisti 3D famosi che sposano la sua filosofia open source e che ne
dichiarano l'uso come software primario.
A partire da febbraio 2005, la Blender Foundation ha iniziato la realizzazione del corto di
animazione Elephants dream, che ha portato alla produzione di un DVD nel 2006. Il filmato,
finanziato in gran parte dalla prevendita del DVD stesso, stato rilasciato sotto licenza Creative
Commons, cos come tutti i file e gli script sorgenti realizzati dal team di sviluppo. In tal modo da
un lato si procede allo sviluppo del codice di Blender, apportando le migliorie necessarie in un
progetto di tale complessit e dall'altro si offre alla comunit (che ha sostenuto anche
economicamente lo sviluppo) uno strumento unico dal punto di vista didattico.
Costo: gratuito
Homepage: www.blender.org/
Poser
Poser un software per l'editing, l'animazione e il rendering 3D ottimizzato per modelli di figure
umane che possono essere animati e messi in posa proprio come manichini.
Usando nativamente un sottoinsieme del formato OBJ e un file text-based markup per i contenuti,
Poser dotato di varie librerie contenenti figure di persone, animali, robot, e cartoons e che
includono pose, capelli, oggetti di scena, texture, gesti delle mani ed espressioni facciali.
Poich Poser non permette la modellizzazione di oggetti, si sviluppata una larga community di
artisti, rivenditori e esperti di marketing per la gestione, scambio e commercializzazione di
contenuti Poser usualmente poi trasferiti in Maya 3DS Max.
Gi nella versione intermedia, il software dotato di ampie librerie gratuite fra cui la libreria Props,
particolarmente attinente a questo progetto, contenente oggetti come cappotti, vestiti, gonne,
pantaloni, cappelli, ecc.
Costo: fra i 49.99 USD e 499.99 USD a seconda della versione
Homepage: http://poser.smithmicro.com/
Google Sketchup
Sketchup un software per l'editing, l'animazione e il rendering 3D inizialmente prodotto e
distribuito da @Last, attualmente sviluppato e distribuito da Google dopo l'acquisizione nel 2007
della @Last. Le piattaforme supportate sono Windows e Mac. Sketchup distribuito con licenza
freeware nella versione base, accanto alla quale mantenuta e sviluppata la versione a pagamento
Google SketchUp Pro. Il sistema non pu attualmente competere con sistemi professionali come
Maya o 3DSMax, ma garantisce una facilit di utilizzo anche per i neofiti non comparabile con altri
software, orientata soprattutto al disegno tecnico. Le caratteristiche principali di Sketchup che lo
rendono particolarmente semplice da usare sono un sistema intelligente di disegno (chiamato
inference) e la possibilit di studiare forme tridimensionali attraverso tecniche di estrusione molto
intuitive (Push/Pull Technology). E' possibile inoltre definire le coordinate geografiche dell'oggetto
(longitudine, latitudine) e posizionarlo in Google Earth, nonch simulare l'incidenza realistica delle
ombre solari sul modello, ad una data ora e periodo dell'anno. Google inoltre fornisce molti tutorial
e filmati per gli utenti di vario livello e soprattutto mette a disposizione un sistema di warehouse in
cui gli utenti possono salvare e condividere i modelli realizzati. Permette infine di gestire semplici
animazioni della scena e di espandere le funzionalit attraverso una serie di plugin anche di terze
parti.
Costo: gratuito per la versione base, 360 EURO per la versione Pro.
Homepage: http://sketchup.google.com/
1.4 Creazione automatica modelli 3D
Considerando il notevole sforzo in termini di tempo e risorse che la creazione di modelli 3D
richiede, si stanno affermando sul mercato e sono oggetto di studio nell'ambito della ricerca,
algoritmi e software per la creazione automatica di modelli 3D.
La tecnica pi comune quella di creare modelli 3D a partire da foto e a tale proposito sono
presentati i principali software sul mercato che forniscono questa possibilit. Inoltre viene descritto
un innovativo progetto della Cambridge University che permette la creazione real-time del modello
3D di un oggetto dall'acquisizione delle sue caratteristiche tramite videocamera.
3DSOM
3D Software Object Modeller (3DSOM) un potente software per la creazione contenuti 3D di
qualit professionale da immagini. Possono essere modellati molti tipi di oggetti, inclusi quelli con
buchi e forme organiche difficili.
Le foto devono essere scattate da vari punti di vista usando una normale fotocamera digitale,
posizionando gli oggetti su un tappetino (mat) con stampata una griglia di riferimento di fronte ad
uno sfondo uniforme. La forma dell'oggetto automaticamente estratta da ogni foto e l'informazione
catturata usata per creare il mesh 3D. Una volta ottenuto il modello possibile esportarlo in
formati standard ed includerlo nelle scene 3D dell'utente o in pagine Web, nonch elaborarlo con i
principali software di grafica 3D. L'oggetto deve essere posizionato su un piedistallo al centro del
3DSOM mat come mostrato in Fig.1.5 e sono necessarie da 15 a 30 foto scattate secondo vari punti
di vista.
Prezzo: 988 EUR
Homepage: http://www.3dsom.com
Fig.1.5 Esempio di posizionamento dell'oggetto sul 3DSOM mat.
Strata Foto 3D
Strata Foto 3D CX permette di usare una normale fotocamera digitale per creare modelli 3D di
oggetti. L'oggetto viene posto su un apposito supporto e il software guida l'utente nello scattare le
foto necessarie (da 20 a 256 foto) per realizzare il corrispondente modello 3D. Il sistema comprende
un plugin Photoshop che rende la creazione del modello ancora pi semplice. E' il software ideale
per creare cataloghi online. Una volta creato il modello possibile scattare ulteriori foto per
correggere eventuali errori o buchi; la fusione delle immagini automatica.
Il sistema fornisce un sistema di calibratura delle lenti indipendente dal tipo di fotocamera utilizzato
e permette l'esportazione del modello in VRML or 3DS. Inoltre la stessa casa produttrice fornisce
una suite di software (a pagamento) per il rendering e l'animazione 3D, nonch la pubblicazione
realtime di contenuti per il web e l'inserimento automatico in documenti Adobe (PDF, Illustrator,
Flash, Photoshop). Il sistema distribuito per piattaforme Windows e Mac.
Prezzo: 695 USD
Homepage: http://www.strata.com/products/strata_3d_cx_suite/strata_foto_3d_cx/
PhotoModeler e PhotoModeler Scanner
PhotoModeler un software per le piattaforme Windows per la misurazione e la modellazione di
oggetti reali e scene attraverso l'uso di fotografie. Sviluppato da Eos Systems Inc, PhotoModeler
basato e implementa vari principi di fotogrammetria, la tecnica di rilievo che permette di acquisire
dei dati metrici di un oggetto (forma e posizione) tramite l'acquisizione e l'analisi di una coppia di
fotogrammi stereometrici.
A differenza dei software come Strata Foto 3D e 3DSOM che permettono la modellazione di oggetti
di dimensioni limitate, PhotoModeler permette di realizzare modelli 3D anche per grandi oggetti,
locali e spazi aperti. PhotoModeler stato testato anche sulla modellazione di una lunga strada
grazie alla funzionalit di Project Merge. L'idea di catturare la scena come un insieme di
sottoprogetti di lunghezza limitata (ca. 150 piedi) che sono poi fusi insieme da apposite funzionalit.
Per quanto riguarda invece l'acquisizione di forme organiche (visi e mani di persone, animali) pi
indicata la versione Photomodeler Scanner che aggiunge a tutte le funzionalit di PhotoModeler
anche il Dense Surface Modeling (DSM), usato specificatamente in quei casi in cui necessario un
grande numero di punti 3D.
Prezzo: Photomodeler 1145 USD, Photomodeler Scanner 2595 USD che diventano rispettivamente
1000 USD e 2000 USD per la licenza educational
Homepage: http://www.photomodeler.com
Photo-to-3D
Photo-to-3D un servizio online gratuito che permette di creare un modello 3D esportabile in vari
formati a partire da 2 foto dell'oggetto. Il servizio fornisce una galleria di immagini, ma permette
anche di fare upload di immagini dell'utente, che possono essere modellate in 3D dall'applicazione
che le rende successivamente scaricabili. Il modello restituito di buona qualit ma, partendo da
solo 2 foto, non completo a 360 perch viene modellata solo la parte dell'oggetto visibile in
entrambe le foto. Il software non scaricabile e non sono previste n la diffusione del codice n
dettagli sull'algoritmo utilizzato.
Homepage: http://www.photo-to-3d.com
CAPITOLO 2
CLASSIFICAZIONE CAPI IN VETRINA
In questo secondo capitolo si illustrano le tecniche e gli algoritmi pi significativi allo stato attuale
dell'arte per la classificazione e il riconoscimento di capi di abbigliamento. Nel primo paragrafo si
presenta il problema generale della classificazione automatica [21,22], descrivendo in particolare le
tecniche fuzzy di classificazione [21,22]. Si passa poi a trattare in dettaglio il problema della
classificazione di oggetti da immagini o da video. Il processo si divide in due fasi: segmentazione e
classificazione. La fase si segmentazione ha lo scopo di individuare gli oggetti all'interno
dell'immagine; oggetti che saranno poi riconosciuti nella fase di classificazione. Entrambe le fasi
vengono prima presentate in generale, poi si passa a descrivere le tecniche specifiche per la
segmentazione, la classificazione e il riconoscimento di capi di abbigliamento.
2.1 Classificazione automatica
La classificazione automatica quel settore del machine learning che permette di associare un
oggetto sconosciuto ad una classe di appartenenza, date N classi di oggetti predefinite. Ovvero,
dati k attributi a
1
,a
2
,...,a
k
con cui definire oggetti, date N classi predefinite C
1
, C
2,
, C
N
in cui
raggruppare gli oggetti e dato un oggetto x descritto tramite gli attributi a
1
,a
2
,...,a
k
, un classificatore
C un programma che dati in input l'oggetto x e le classi C
1
,...,C
N
restituisce una classe C
i
tale che
xC
i
.
La classificazione automatica fa parte del sottoinsieme di algoritmi detti di apprendimento
supervisionato. Per questi algoritmi si parte dal presupposto di avere due insiemi di oggetti di cui si
conosce l'esatta classificazione chiamati rispettivamente training set e data set, necessari
rispettivamente per addestrare e costruire il classificatore e valutarne le performance.
In Fig.2.1 descritto lo schema classico per la costruzione e la valutazione di un classificatore.
Nell'esempio ogni record descritto da 3 attributi Attrib
1,
Attrib
2
, Attrib
3
e associato a due classi C
1
,
C
2
descritte con le etichette Yes/No rappresentate in rosso nelle tabelle. Scelto l'algoritmo da
utilizzare si usa il training set come input della fase di apprendimento del modello; una volta
costruito il modello questo viene applicato al test set. Il modello costruito viene quindi valutato
confrontando i risultati forniti dal modello nella classificazione dei record del test set con i dati
conosciuti rispetto alle reali classi di appartenenza dei dati del test set.
Fig.2.1 Schema classico per apprendimento e valutazione di un algoritmo di classificazione
Nonostante lo studio degli algoritmi di classificazione sia uno dei principali argomenti di ricerca nei
settori del machine learning e del data mining, esistono gi molte applicazioni mature di uso
comune sia nel settore scientifico che in quello industriale che hanno raggiunto un elevato livello di
affidabilit e che hanno portato numerosi successi.
Fra queste, senza pretesa di essere esaustivi, possono essere considerate:
Classificazione del tipo di tumore dall'analisi delle immagini restituite da TAC e RM.
Classificazione delle transazioni finanziare delle carte di credito come legittime o
fraudolente.
Classificazione di proteine
Classificazione di testi/news in base al tema trattato (sport, finanza, politica, etc.)
Classificazione di corpi celesti dalle immagini dei radiotelescopi
Classificazione del rischio di credito a partire dal profilo utente
Classificazione di pazienti in base al rischio clinico
Classificazione degli utenti di un negozio online in base alla storia dei loro acquisti
In letteratura esistono diverse tecniche di classificazione e per ognuna di esse sono stati studiati e
realizzati diversi algoritmi.
Alberi di decisione
Classificazione basata su regole
Classificazione basata su istanze
Algoritmi genetici
Reti neurali
Reti bayesiane
Support Vector Machines
Ensemble methods
Dato un problema di classificazione non sempre chiaro quale sia la tecnica pi consona al
problema da risolvere e la scelta sia della tecnica sia dell'algoritmo lasciata all'intuizione
dell'esperto. Questo in particolare dovuto al fatto che non esiste una tecnica o un particolare
algoritmo che sia pi efficiente ed abile di tutti gli altri; ogni tecnica pu dare ottimi risultati per un
particolare campo di applicazione o insieme di dati e non avere la stessa capacit di previsione su
altri problemi o insiemi di dati. Tuttavia possibile stabilire dei criteri generali in base al modo in
cui i dati sono modellati considerando le specificit delle singole tecniche.
Tipi di dati e modellazione degli attributi
Quando si decide di applicare una tecnica di classificazione, o pi in generale una tecnica di data
mining, ad un problema, bisogna stabilire la struttura dei record che compongono il training set e il
test set; in altre parole bisogna decidere quali sono gli attributi che caratterizzato i dati e il loro
formato e quante/quali sono le classi a cui associare i record.
Una prima distinzione deve essere fatta nel distinguere gli attributi tra numerici e categorici (o
nominali). Gli attributi numerici, a volte chiamati anche continui, sono quelli esprimibili tramite un
numero, intero o reale, associato ad un dominio, finito o infinito, come per esempio l'et, l'altezza o
il peso di una persona oppure la dimensione di una zona di interesse in una immagine TAC ; da
notare come in questo caso l'uso del termine continuo sia improprio da un punto di vista matematico
visto che sono chiamati continui anche attributi espressi da numeri interi. Gli attributi categorici (o
nominali) sono invece quelli che assumono valori all'interno di un insieme predefinito di valori
rappresentati generalmente da un'etichetta come per esempio il sesso {F,M} oppure la
categoria/settore di oggetto acquistato {alimentari, casalinghi, tecnologici, igiene}.
Per quanto riguarda le classi, sufficiente distinguere se si tratta di una classificazione booleana
oppure di una classificazione con cardinalit dell'output superiore a due. Per esempio la
classificazione delle transazioni delle carte di credito in legittime/fraudolente una classificazione
booleana, mentre la classificazione di news o il livello di rischio dei clienti di una finanziaria ha in
generale una cardinalit superiore.
Preprocessing dei dati di input
Prima di applicare qualunque tecnica di data mining, e quindi anche di classificazione, necessario
dare uno sguardo ai dati che si hanno a disposizione al fine di evidenziare e risolvere anomalie,
nonch uniformarne la struttura. Il processo generalmente necessario perch i dati sono raccolti in
precedenza, indipendentemente e in contesti differenti rispetto all'obiettivo di applicare un algoritmo
di classificazione e possono provenire da pi fonti che usano modelli diversi. Per esempio la
classificazione delle frodi nelle transazioni finanziarie con carte di credito usa i database storici
degli acquisti che sono stati pensati, realizzati e popolati con intenti e per attivit differenti.
Come per la scelta della tecnica e dell'algoritmo da utilizzare per risolvere un dato problema, anche
nella fase di preprocessing non esiste un metodo classico da seguire e il risultato dipende molto
dall'abilit ed esperienza di chi ha progettato il metodo; tuttavia esistono delle best practice che
possono guidare l'utente meno esperto.
Identificazione di dati anomali/errati: nonostante alcuni valori per certi attributi possano essere
palesemente errati non sempre facile individuarli all'interno di dataset molto grandi. A tale scopo,
alcuni strumenti di data mining offrono tabelle riassuntive della frequenza dei valori e permettono il
calcolo di valori caratterizzanti gli attributi come media e mediana. Queste tipologie di errori si
incontrano per esempio quando ci sono valori mancanti in fase di inserimento/memorizzazione dei
dati all'origine e il sistema usato ha sostituito tali valori con valori di default
Identificazione dei dati mancanti: il trattamento dei dati mancanti dipende fortemente dalla tecnica
di classificazione che si deciso di adottare perch esistono algoritmi che non ammettono la
presenza di dati mancanti mentre altri algoritmi possono trattarli senza grosso impatto nel caso
siano in numero limitato. In presenza di dati mancanti si opera in generale (i) scartando i record
relativi (applicabile solo nel caso in cui la percentuale di dati affetti limitata) (ii) sostituendo il
dato mancante con la media o mediana della classe (applicabile solo in caso di dati numerici) (iii)
sostituendo il dato con i dati presenti in record molto simili.
Semplificare i dati: il processo di semplificazione dei dati spesso necessario quando il database da
cui estrarre gli insiemi di training e test caratterizzato da molti (anche centinaia) di attributi non
tutti necessariamente informativi e a volte ridondanti. In questi casi la presenza di un esperto del
dominio di applicazione indispensabile nonostante possano essere applicate tecniche per
l'identificazione di dipendenze funzionali fra gli attributi e per la valutazione della capacit
predittiva delle variabili.
Trasformazione dei dati: il processo di trasformazione dei dati consiste nella modifica dei valori
realmente memorizzati nel database con valori diversi e pu essere necessario per vari motivi legati
principalmente al tipo di tecnica applicata. Per esempio l'uso di reti neurali richiede un processo di
normalizzazione dei dati nell'intervallo [0,1] mentre l'uso di tecniche che non ammettono dati
categorici richiede la conversione del tipo di dato.
Valutazione dei classificatori
Una volta creato il modello di classificazione necessario valutarne le performance e stabilire
criteri che ci permettano di confrontare due diversi classificatori creati per lo stesso scopo.
La valutazione di un classificatore generalmente concentrata sulla capacit di classificare
correttamente piuttosto che sulla velocit o la scalabilit degli algoritmi. A tale proposito una delle
metriche pi semplici e comuni data dall'accuratezza che definita sia in termini di classificazioni
corrette, falsi positivi e falsi negativi sia basandosi semplicemente sul numero di classificazioni
corrette/sbagliate sia su tali numeri combinati con dei costi; tale metrica a volte scissa in due
differenti valori chiamati precision/recall.
Classificazione fuzzy
A differenza delle tecniche classiche di classificazione che restituiscono esattamente una classe alla
quale associare il record di input, la classificazione fuzzy permette di restituire un output pi
sfumato ovvero permette di associare ad ogni classe di output un valore compreso fra 0 e 1
rappresentante il grado di appartenenza del record alla classe. In questo caso ogni oggetto pu
essere associato a pi classi con differenti gradi di appartenenza.
Mentre nel caso della classificazione fuzzy restano pressoch invariate le considerazioni generali
sullo schema di apprendimento e quelle riguardanti il modello dei dati di input, particolare
attenzione deve essere dedicata alla definizione delle classi e alle tecniche usate durante la fase di
apprendimento del modello.
Nel caso della classificazione fuzzy, ad ogni classe C
1
,...,C
N
viene associata una funzione di
appartenenza 1, ..., N tale che i : x v
i
[0,1] associa ad ogni record x un valore di
appartenenza v
i
alla classe C
i
. Ogni oggetto non quindi associato ad una singola classe ma sar
caratterizzato da un n-upla di valori (v
1
,...v
N
) tali che i =1..N, v
i
= i(x).
Il processo di fuzzificazione stato introdotto con due scopi principali: una migliore e pi realistica
gestione di alcuni attributi (in particolare quelli continui) e la possibilit di associare pi classi di
appartenenza a quei casi border-line per i quali l'associazione ad una singola categoria
rappresenterebbe un'approssimazione troppo grossolana.
Per valutare un classificatore fuzzy su dati classici (nei quali cio ogni record associato ad una
singola classe) viene quindi applicato un metodo per associare ad ogni singolo oggetto una sola
classe di output che sar poi confrontata con la reale classe di appartenenza. Questa selezione in
genere restituisce la classe con il grado di appartenenza pi elevato.
Per quanto riguarda invece le tecniche e gli algoritmi di classificazione si assistito ad una
rivisitazione e riadattamento delle tecniche classiche al caso fuzzy.
L'approccio alla classificazione che pi di tutti stato sottoposto ad un processo di fuzzificazione
quello basato su regole in cui si passa in maniera abbastanza naturale alla gestione di regole fuzzy
anzich regole crisp. Tali sistemi differiscono fra loro principalmente per la tecnica con cui le regole
fuzzy sono state dedotte. Da citare anche i casi di realizzazione di sistemi di classificazione fuzzy
basati su reti neurali fuzzy e su fuzzy KNN.
In particolare da notare in letteratura:
[23] in cui viene presentato un algoritmo co-evolutivo per la scoperta di regole fuzzy di
classificazione. L'algoritmo diviso in due parti che permettono di evolvere rispettivamente
una popolazione di insiemi di regole fuzzy IF-THEN e un insieme di funzioni di
appartenenza che permettono di valutare tali funzioni. Lo scopo degli autori di permettere
una pi naturale gestione degli attributi continui che anzich essere trattati in maniera crisp
all'interno dell'antecedente della regola vengono valutati tramite il grado di appartenenza.
[24] in cui viene presentato un sistema basato su support vector machines (SVM) per la
realizzazione di un sistema di classificazione fuzzy basato su regole. Gli autori analizzano la
connessione fra classificatori fuzzy e kernel machines, mostrando come un classificatore
fuzzy definisce implicitamente un kernel invariante rispetto alle traslazioni. L'inferenza
fuzzy della parte IF di una regola fuzzy pu essere vista come valutazione della funzione
kernel. E' dimostrato che il sistema creato ha un elevato grado di generalizzazione.
[25] in cui viene presentata una rete neurale fuzzy di tipo min-max (GFMM) ottenuta da un
processo di generalizzazione ed estensione degli algoritmi fuzzy di classificazione e
clusterizzazione di Simpson [28]. GFMM combina tecniche di learning supervisionato e
non-supervisionato in un unico algoritmo. I risultati della classificazione possono essere sia
crisp che fuzzy. Il sistema stato applicato con successo al problema dell'identificazione di
perdite in sistemi di distribuzione dell'acqua.
[26] in cui viene presentato un sistema di classificazione delle impronte digitali basato
sull'estrazione di features dell'immagine usate come input da una rete neurale fuzzy che
classifica l'impronta secondo il sistema Henry (il sistema pi comunemente utilizzato per la
classificazione di impronte digitali). Il sistema stato valutato su un insieme di impronte del
database NIST-4 e presenta un grado di accuratezza del 98.5% per il problema a 5 classi.
[27] in cui viene presentato un sistema fuzzy per la classificazione di musica basato sulle
emozioni. Per la natura stessa del problema di interpretazione delle emozioni l'applicazione
di tecniche fuzzy risulta particolarmente adeguata e l'applicazione interessante. Sono stati
proposti due algoritmi di classificazione fuzzy basati su fuzzy-KNN e fuzzy-KNM che
restituiscono un vettore di gradi di appartenenza alle classi prestabilite dal modello
psicologico AV per la modellizzazione delle emozioni.
2.2 Classificazione di oggetti da immagine o video
La classificazione di oggetti data un'immagine o un video corrisponde al problema di
classificazione automatica in cui l'input del programma costituito da una immagine o un video
contenente uno o pi oggetti da classificare.
Il problema si scompone in varie parti. Innanzitutto l'immagine o il video passato in input deve
essere elaborato al fine di estrarre la parte di immagine/video contenente l'oggetto/gli oggetti di
interesse (scartando ci che non si ritiene interessante) e di ripulire l'immagine dal rumore presente
in modo da ottenere un'immagine pi facilmente elaborabile/classificabile. Tale processo
conosciuto con il nome Image Segmentation. Successivamente gli oggetti segmentati vengono
passati come input al processo di apprendimento del sistema di classificazione. Una volta creato, il
classificatore viene testato sull'insieme di test e dai risultati di questa fase viene fatta la valutazione
del classificatore creato.
In Fig.2.2 illustrato lo schema del sistema di classificazione di oggetti da video presentato in [29];
da questo schema sono evidenti le due componenti di segmentazione e classificazione appena
illustrate.
2.2.1 Segmentazione di immagini
Nel settore della computer vision, definiamo segmentazione ogni processo di partizionamento di
una immagine in segmenti multipli (regioni di pixel) avente lo scopo di semplificare e/o cambiare
l'immagine originale al fine di renderla pi facilmente elaborabile. Tutti i pixel in una regione sono
simili rispetto ad alcune caratteristiche proprie dell'immagine (colore, intensit o texture) mentre
regioni adiacenti sono significativamente differenti rispetto alle stesse caratteristiche [30].
Fig.2.2 Schema classico di un sistema di classificazione di oggetti da video
Viste le innumerevoli applicazioni pratiche il problema stato ampiamente studiato e sono stati
sviluppati molti algoritmi e tecniche general-purpose per la segmentazione; tuttavia il problema non
stato risolto interamente perch non si ancora identificata una tecnica standard efficace in ogni
dominio di applicazione. Infatti di fronte ad un problema reale la scelta dell'algoritmo da usare
richiede una conoscenza diretta del dominio di applicazione e delle sue peculiarit. Senza pretesa di
esaustivit elenchiamo alcune delle tecniche maggiormente utilizzate in vari settori applicativi.
La tecnica pi semplice in assoluto la tresholding che permette di trasformare una immagine a
livelli di grigio in una immagine binaria: i pixel che hanno un livello di grigio sopra la soglia
acquisiranno valore 1 e saranno considerati oggetti mentre gli altri avranno valore 0 e saranno
considerati come sfondo. La tecnica facilmente estendibile anche ad immagini a colori applicando
per esempio l'algoritmo ad ognuno dei canali RGB; le immagini risultanti sono poi ricomposte
tramite l'operatore binario di congiunzione. L'efficacia di questo metodo molto sensibile alla scelta
del valore soglia [31].
Una delle tecniche pi ampiamente utilizzate, data la sua efficienza, basata sugli istogrammi legati
all'immagine; l'efficienza assicurata dal fatto che sufficiente un unico passaggio dell'algoritmo
per valutare tutti i pixel dell'immagine. Selezionata una misura applicabile ad ogni singolo pixel
(colore e intensit sono le pi frequenti) possibile costruire un istogramma con tali valori; picchi e
valli identificabili nell'istogramma sono usati per individuare le regioni di pixel con caratteristiche
simili [30]. La tecnica che usa un singolo passo pu essere facilmente migliorata in termini di
efficacia, al prezzo di un incremento del costo computazionale, permettendo l'applicazione ricorsiva
all'interno dei cluster identificati per essere suddivisi in cluster pi piccoli [32]. Altre tecniche
interessanti sono basate su tecniche di compressione dati, sull'identificazione dei contorni (edge
detection) o sulle derivate parziali. Per una descrizione pi approfondita si veda [30]. Infine, se
consideriamo la segmentazione come un classico problema di clustering, possono essere applicate
le tecniche usate per la clusterizzazione come per esempio gli algoritmi k-NN, fuzzy C-means, o le
tecniche di tipo region growing. Anche l'uso di particolari reti neurali come le mappe di Kohonen
[33] o le reti Pulse-coupled (PCNNs) [34] ha riscosso un notevole successo e ha trovato applicazioni
in molti problemi reali dimostrando un elevato grado di generalizzazione e di efficacia.
Concludiamo questo paragrafo con una serie di software facilmente reperibili e che offrono una
panoramica sullo stato dell'arte per la segmentazione di immagini. Tali software sono divisi in due
sezioni rispetto alle modalit di distribuzione usate.
Software open source:
SIOX (see Simple Interactive Object Extraction). Tool disponibile nel programma di grafica
vettoriale open source GIMP. Sito ufficiale: www.siox.org
ImageMagick. Collezione di tool per creare, editare, comporre e convertire immagini
bitmap. Pu leggere e scrivere pi di 100 tipi di dati. Per la segmentazione usa l'algoritmo di
clustering Fuzzy C-Means. Non ha interfaccia grafica: gli strumenti vengono invocati
direttamente da linea di comando. Sito ufficiale: www.imagemagick.org/script/index.php
Aforge.NET. Framework open source in C#. Sito ufficiale: www.aforgenet.com
Population. Libreria C++ open-source per image processing. Sito ufficiale:
http://population.shinoe.org
Software proprietari:
Pac-N-Zoom Color. Tool della Accelerated I/O, Inc. con funzioni per la segmentazione.
TurtleSeg. Tool gratuito interattivo per la segmentazione di immagini 3D.
2.2.2 Segmentazione di immagini di capi di abbigliamento
In questo paragrafo descriviamo sinteticamente alcuni recenti lavori sulla segmentazione di
immagini di capi di abbigliamento che riteniamo particolarmente interessanti ai fini del progetto.
In [35] gli autori presentano un nuovo metodo per la segmentazione di immagini di capi di
abbigliamento basato sulla stima del foreground (abiti) e del background (sfondo) tramite CDT
(Constrained Delaunay Triangulation), che non necessita di alcun modello predefinito. Gli abiti
sono estratti con una tecnica basata su graph cuts, dove i seeds del foreground e del background
sono determinati automaticamente rispettivamente tramite identificazione del torso e CDT. I seed
cos determinati sono usati per modellare le distribuzioni di colore con modelli gaussiani;
foreground e background sono inoltre filtrati con un algoritmo di soppressione del rumore basato su
CDT per ottenere una segmentazione pi accurata e robusta. Lo schema del sistema ed un esempio
di elaborazione sono illustrati in Fig.2.3.I risultati sperimentali presentati dimostrano l'efficacia del
metodo e alcuni di essi sono ilustrati in Fig.2.4.
Fig.2.3 Schema del sistema di [35] ed esempio di processamento.
Fig.2.4 Alcuni risultati sperimentali del sistema presentato in [35]
In [36] viene illustrato un metodo per la segmentazione di istanze multiple di un oggetto
appartenente ad una categoria predefinita che pu mostrare al suo interno grande variabilit nelle
forme proiettate e nei colori. Il metodo si basa su una formulazione MRF (Markov Random Field)
che incorpora a priori un modello della forma e una distribuzione di colori per ogni parte
costituente la figura stessa. Gli autori propongono un nuovo modello per le forme che consiste in
una distribuzione spaziale di probabilit a priori per la label associata ad ogni pixel. Gli autori
propongono anche una estensione della formulazione MRF per trattare simultaneamente pi oggetti
all'interno di una ottimizzazione globale. Infine applicano il metodo alla segmentazione di capi di
abbigliamento in immagini contenenti gruppi di persone, dimostrando perfomance migliori rispetto
all'attuale stato dell'arte. Nel caso applicativo mostrato, di cui alcuni esempi sono mostrati in
Fig.2.5, la categoria definita dagli abiti da uomo composta da camicia, giacca e cravatta.
In [37] viene presentata una nuova tecnica per la segmentazione di capi di abbigliamento in
immagini con pi persone con un elevato grado di copertura/occlusione. L'idea di combinare
modelli di bloccaggio per determinare le occlusioni dovute alle persone. A differenza dei
tradizionali modelli a livelli che cercano di risolvere il problema al livello pi alto, il modello
proposto partiziona il problema in una serie di occlusioni fra coppie di persone per poi determinarne
la relazione di occlusione locale. In questo modo riesce facilmente a gestire casi in cui sono presenti
anche molte persone. I risultati sperimentali illustrati mostrano sia come il metodo superi in
efficacia altri sistemi (vedi Fig.2.6) sia la sua efficacia quando applicato ad immagini con molte
persone come in Fig.2.7.
Fig.2.5 Risultati per la segmentazione di capi di abbigliamento usando le probabilit a priori deformate. Le
immagini mostrano che il sistema in grado di segmentare le varie parti che compongno l'abito mostrato in
diverse pose.
Fig. 2.6 Data l'immagine di input posta in alto a sinistra, le frecce nella immagine in alto a destra indicano le
relazioni di occlusione mentre le immagini in basso sono i risultati del processo usando tecniche tradizionali (a
sinistra) e usando la tecnica proposta in questo lavoro (a destra).
Fig.2.7 In ogni coppia di figure, l'immagine a sinistra rappresenta l'input con con l'identificazione dei visi,
mentre l'immagine di sinistra l'output del sistema.
In [38] viene illustrato come il problema del identificazione di persone sia semplificato quando le
immagini sono contestualizzate e viene analizzato anche l'abbigliamento dei soggetti e vengono
evidenziate le relazioni esistenti fra l'efficacia del sistema di riconoscimento e quella del processo di
segmentazione dell'immagine. Il processo di segmentazione basato sull'elaborazione di pi
immagini della stessa persona con gli stessi capi e i risultati mostrati sono evidentemente migliori
rispetto a quelli ottenuti con tecniche standard. L'identificazione finale delle persone avviene
mettendo insieme sia le informazioni ottenute dal riconoscimento del viso che quelle ottenute dal
modello di abbigliamento.
2.2.3 Tecniche per la classificazione di immagini
Il processo di classificazione delle immagini pu essere scomposto in vari step: scelta di un
classificatore adeguato al problema, selezione del training set, preprocessing dell'immagine,
estrazione di feature, verifica dell'accuratezza del modello descritto.
La selezione delle variabili da usare per la rappresentazione dell'immagine uno dei punti pi critici
per la realizzazione di un efficiente sistema di classificazione. Le variabili da poter usare sono molte
e sono particolarmente legate al dominio di applicazione (per esempio, l'indice di vegetazione
essenziale per la classificazione di immagini aeree del suolo ma chiaramente irrilevante per molte
altre applicazioni).
I principali approcci usati possono essere riassunti in:
Approccio probabilistico statistico: maximum likelihood, K-NN
Reti Neurali
Minimum Distance
Alberi di decisione
Support Vector Machines (SVM)
Approcci combinati di varie tecniche
Adattamento di algoritmi di clustering come ISODATA e K-means
Approcci fuzzy
Un'ampia letteratura in merito allo stato dell'arte riassunta in [39] al quale si rimanda per
approfondimenti ed ulteriori citazioni.
2.2.4 Riconoscimento e classificazione capi abbigliamento
In questo paragrafo descriviamo i risultati ottenuti in merito all'analisi dello stato dell'arte su sistemi
di riconoscimento e classificazione di immagini di capi di abbigliamento che riteniamo
particolarmente interessanti ai fini del progetto.
Innanzitutto bisogna premettere che, mentre per quanto riguarda il riconoscimento di capi di
abbigliamento esiste un'ampia gamma di algoritmi e sistemi, rispetto allo stato attuale dell'arte sono
rari i casi di sistemi di classificazione specifici per i capi di abbigliamento.
Il motivo principale attribuibile al fatto che, negli ultimi anni, i sistemi di riconoscimento di abiti
sono stati efficacemente utilizzati in altre applicazioni di successo come per esempio nei sistemi di
identificazione delle persone nei circuiti di videosorveglianza o nei sistemi commerciali di
recommendation per lo shopping virtuale.
Un interessante caso di classificazione di capi di abbigliamento illustrtato in [40] dove viene
presentato un sistema per etichettare in real-time categorie di abiti da video di sorveglianza di cui un
esempio di funzionamento illustrato in Fig.2.8.
Fig.2.8 Esempio di funzionamento del sistema di classificazione real-time presentato in [40].
Gli autori sfruttano sistemi di riconoscimento di volti e tracciamento del movimento per localizzare
figure umane e sviluppano un efficiente sistema di segmentazione per l'estrazione delle immagini
dei vestiti. Tali immagini sono poi confrontate combinando gli istogrammi dei colori e tre differenti
descrittori di texture. Lo schema descrittivo del sistema illustrato in Fig. 2.9.
Fig. 2.9 Schema del sistema di riconoscimento/classificazione
Il sistema stato valutato usando come dataset un video con 937 persone e 25441 capi
d'abbigliamento; il sistema ha dimostrato risultati promettenti (average recall over 80% at false
positive rate 0.1) nel riconoscere 8 categorie di abiti (abiti, camicie, T-shirt, jeans, pantaloni corti,
gonne corte e gonne lunghe). In Fig.2.10 sono mostrati alcuni risultati della fase di segmentazione.
Fig.2.10 Alcuni risultati della fase di segmentazione.
Come in questo caso anche nei sistemi di identificazione di persone l'idea base di identificare,
all'interno dell'immagine, le varie figure umane presenti partendo dal riconoscimento dei volti ed
applicare relazioni di adiacenza e prossimit con le altri parti del corpo in modo da indentificare
busto e arti. Una volta riconosciuta la figura umana si sostituisce il riconoscimento del volto
(applicazioni poco efficienti a volte inapplicabili) con il riconoscimento degli abiti indossati per
identificare una certa persone fra quelle presenti.
In [19] viene presentato un sistema di questo tipo: il riconoscimento di abiti viene usato per il
l'identificazione di persone all'interno del video di sorveglianza di un grande magazzino. Il sistema
basato sul modello a grafo presentato nella Sezione 1.2 e il riconoscimento viene implementato
come problema di matching di grafi. Data l'immagine in input contenente la persona da cercare si
procede con l'estrazione del Segmentation Graph; il grafo risultante viene confrontato con una srie
di grafi di modelli precedentemente calcolati e inseriti nel database; l'algoritmo di matching fa uso
di alberi di decisione e di una funzione di costo che valuta la somiglianza dei nodi attraverso
caratteristiche come area, texture e colore. Un esempio di processo di matching con relativi risultati
illustrato in Fig.2.11.
Invece, nei sistemi di recommendation system si parte con l'obiettivo di restituire una serie di capi
che possono, secondo qualche criterio, essere associati a quello passato in input per esempio per
consigliare acquisti abbinati o per cercare nei database dei negozi online chi vende un preciso capo
o almeno un capo simile.
Comunque, aldil delle finalit del sistema globale, in entrambi i casi alla fine si adottano tecniche
di matching basate soprattutto su features dell'immagine (istogramma dei colori, texture, etc.).
Fig.2.11 Data in input l'immagine in alto a sinistra viene calcolato il segmentation graph corrispondente e questo
viene confrontato con i modelli presenti nel database; dai risultati si pu vedere come l'ultimo dei modelli a
destra quello pi vicino perch offre il minore costo di matching.
In [18,41] vengono presentati sistemi di supporto allo shopping basati su tecniche di image
processing. In entrambi i casi l'applicazione permette agli utenti di sottomettere al sistema una foto
di un capo di abbigliamento a cui sono interessati, e il sistema risponder con una lista di capi simili
usando tecniche di image retrieval.
In [18] il costo del matching fra due oggetti dato dal valore del test statistico Chi-quadro calcolato
sull'istogramma che definisce lo shape context, quindi il problema del calcolo delle corrispondenze
pu essere risolto minimizzando la funzione di costo totale del matching; mentre in [41] gli autori
usano caratteristiche come colore, texture, SIFT features e sagoma dell'oggetto per determinare un
livello di similarit fra coppie di oggetti. I sistemi sono stati testati rispettivamente su un set di 90
capi divisi in 12 categorie diverse e di 381 immagini in 3 categorie ma i risultati non sono
confrontabili. In Fig.2.12 e Fig.2.13 sono illustrati alcuni risultati presentati dagli autori.
Fig.2.12 Alcuni risultati sperimentali presentati in [41].
Results
query
Fig.2.13 Alcuni risultati sperimentali presentati in [18].
CAPITOLO 3
MODELLI PER LA RAPPRESENTAZIONE DI FLUSSI
TEMPORALI DI OGGETTI
Nell'ambito del progetto Digital Window, la necessit di trattare dati temporali duplice: da un
lato occorre tener traccia dell'evoluzione temporale della vetrina registrando, oltre alla posizione in
cui capo stato esposto, anche l'intervallo temporale dell'esposizione; inoltre occorrer registrare il
periodo in cui una vetrina ha avuto una certa configurazione. D'altro canto sar necessario tener
traccia del flusso pedonale davanti alla vetrina, registrando oltre alle traiettorie degli osservatori
anche i tempi di permanenza in una data posizione in modo da valutare l'attrattiva dei diversi
elementi presenti nella vetrina.
Questo capitolo si apre con una presentazione dei modelli e dei prodotti per la rappresentazione
di dati temporali, mentre nel paragrafo successivo saranno illustrati i modelli e le tecniche utilizzate
per la rappresentazione del flusso pedonale. Infine, nel terzo paragrafo, verranno presentati i
modelli XML per la rappresentazione di dati temporali.
3.1 Modelli per la rappresentazione dei dati temporali
In molte applicazioni di database necessario rappresentare informazioni di tipo temporale,
come ad esempio il periodo di tempo in cui un certo fatto vero oppure informazioni su quando un
certo dato entrato nel database oppure il dato stato modificato.In generale un database modella e
registra informazioni su una parte di realt detta realt modellata o mini-mondo. Un database
temporale permette cancellazioni e modifiche non distruttive e consente di rappresentare le
variazioni nel tempo dei fenomeni che modella.
Il primo passo per la definizione del modello temporale quello di definire l'opportuna ontologia
temporale come descritto in [47]. Sebbene esistano ontologie pi complesse come quella ad albero o
quella a grafo, per gli scopi del progetto sar sufficiente l'ontologia lineare, che vede il tempo come
una sequenza ordinata di istanti temporali. Come vedremo, pur nella sua semplicit, questa
ontologia permette di definire modelli temporali multidimensionali.
comunque possibile definire domini temporali di diversa densit: il dominio discreto che
caratterizzato da una granularit (rappresentata dalla misura temporale di riferimento) e dal chronon
(la pi piccola unit di tempo rappresentabile nel modello con la granularit specificata), il dominio
denso ed il dominio continuo.
Il secondo passo sar di fissare la dimensione temporale.
Possiamo avere database ad una sola dimensione temporale secondo il modello timestamp, dove
ad ogni tupla di una relazione viene aggiunto un attributo temporale o secondo l'equivalente
modello snapshot, definito formalmente come una mappa fra il dominio temporale e la classe dei
database relazionali standard.
Consideriamo il seguente esempio tratto sempre da [47]. Definiamo un database per
rappresentare le prenotazioni di aule in una universit. Aule e prenotazioni sono rappresentate dallo
schema booking(Meeting,Room), mentre nel database relazionale secondo il modello timestamp si
user la relazione Booking(Meeting,Room, Time). La Figura 3.1 mostra una possibile istanza della
relazione secondo il modello timestamp.
Figura 3.1 Possibile istanza della relazione Booking nel modello timestamp
Si noti che si supposta una granularit pari ad un minuto e che la prenotazione dell'aula DC1331
per il Dbgroup dalle 10 alle 12 comporta un record per ogni minuto dell'intervallo.
La figura 3.2 rappresenta la stessa istanza rappresentata nel modello snapshot. I due modelli sono
equivalenti nel senso che costituiscono due modi diversi di vedere gli stessi dati e quindi
rappresentano la stessa classe di database temporali
Figura 3.2 Possibile istanza della relazione Booking nel modello snapshot
I modelli precedenti sono in prima forma normale. Per ridurre il numero di record presenti nel
database possibile collassare i record che fanno riferimento a tutti i singoli minuti di una
prenotazione di un'aula in un unico record che rappresenta l'intervallo di durata della prenotazione,
come ad esempio:
Booking(DB group, DC1331, [06-Jan-04.10:00, 06-Jan-04.11:59])
In questo modo per la rappresentazione non pi in prima forma normale. Inoltre bisogna
distinguere i casi in cui il fatto vero in ogni singolo istante contenuto nell'intervallo (come accade
nell'esempio) da quelli in cui questo non vero e l'intervallo rappresenta dunque solo il nome di un
insieme (si pu pensare come al nome di un punto in uno spazio a due dimensioni).
Il modello temporale usualmente utilizzato tuttavia bidimensionale, il cosiddetto modello
bitemporale.
In questo modello si distinguono due tipi di tempo: il tempo di validit (valid time) ed il tempo di
transazione (transaction time).
Il tempo di validit denota il periodo di tempo in cui un fatto vero nel mini-mondo [52] e
rappresenta i cambiamenti nel tempo degli stati del mini-mondo. Il tempo di transazione denota il
tempo in cui un fatto presente nel database e rappresenta i cambiamenti nel tempo degli stati del
database.
Il tempo di validit si applica ai fatti, mentre il tempo di transazione associabile a qualsiasi entit
del database [53]. Il tempo di transazione per una entit ha una durata: dall'inserimento alla
cancellazione. Pi inserimenti e cancellazioni sono possibili per la stessa entit e le cancellazioni
diventano virtuali: cancellare un'entit non la rimuove dal database, ma la esclude dallo stato
corrente.
Dato un fatto, il tempo di validit ed il tempo di transazione possono essere diversi: ad esempio
consideriamo un database che registra gli eventi della vita di Caravaggio. Il tempo di validit di
questi eventi sar compreso fra il 1571 ed il 1610, mentre il tempo di transazione inizia quando un
evento inserito nel database, per esempio il 10 giugno 2000.
Un database che registra solo il tempo di validit viene detto database storico, mentre un database
che registra solo il tempo di transazione viene detto database rollback.
possibile considerare anche altre dimensioni temporali, in applicazioni avanzate o specializzate:
ad esempio il tempo di decisione [59] che denota il tempo di occorrenza di eventi che iniziano o
terminano la validit di un fatto nel mini-mondo oppure il modello di [46] dove, per rappresentare
l'evoluzione temporale delle norme giuridiche e le loro differenti versioni, viene proposto un
modello temporale a quattro dimensioni in cui vengono rappresentati i tempi di pubblicazione,
validit, efficacia e transazione.
Vediamo ora due fra i modelli temporali proposti per rappresentare il tempo di validit ed il tempo
di transazione.
Il primo modello, detto Bitemporal Conceptual Data Model (BCDM) [51], associa alle tuple che
corrispondono ai fatti insiemi di coppie di valori (tempo di transazione, tempo di validit). La
presenza della tupla (ti, vi) nella informazione temporale associata ad un fatto significa che lo stato
del database al tempo ti registra che il fatto rappresentato dalla tupla valido al tempo vi. Il valore
speciale UC (until changed) indica che il fatto associato rimane parte dello stato corrente del
database . Questo comporta che la presenza di questo valore comporta l'inserimento nell'insieme ad
ogni tick del clock di nuove coppie (ti+1, vi), (ti+2, vi), (ti+3, vi),
L'idea alla base del BCDM mantenere la semplicit del modello relazionale cogliendo per anche
gli aspetti temporali. In questo modello, non sono ammesse in una istanza di relazione tuple con
valori degli attributi espliciti mutualmente identici: la storia completa di un fatto contenuta in una
sola tupla; inoltre istanze di relazione che sono sintatticamente diverse rappresentano informazioni
diverse e viceversa, cosa che in generale non accade in altri modelli bitemporali.
Tuttavia il modello BCDM poco adatto alle applicazioni pratiche. Infatti sebbene offra l'ulteriore
vantaggio di essere in prima forma normale, la lunghezza variabile e la dimensione sempre
crescente delle informazioni temporali associate alle tuple rende preferibili rappresentazioni pi
compatte.
Il modello proposto in [68] costituisce un modello pratico e popolare nelle implementazioni. Esso
prevede un formato di lunghezza fissa per la rappresentazione delle informazioni temporali
associate ad una tupla: il tempo di validit e quello di transazione sono rappresentati come
intervalli, registrando per entrambi l'istante di inizio e quello di fine. Diversamente dal modello
precedente, in cui le relazioni devono essere aggiornate ad ogni tick del clock, in questo modello le
relazioni rimangono aggiornate; a questo scopo si usano variabili, (ad esempio now) che assumono
il valore del tempo corrente.
I due modelli risultano comunque ugualmente espressivi in quanto consentono di registrare gli stessi
fatti. Per il progetto sar pi conveniente usare il secondo modello, in quanto pi compatto e pi
adatto a registrare una grande mole di dati.
Per quanto riguarda le implementazioni, negli anni 90 iniziato il progetto, guidato da R. T.
Snodgrass che ha portato alla definizione di TSQL2 [66], una estensione temporale dello standard
SQL-92.
Per una descrizione completa del linguaggio TSQL2 si veda [69]. Per una guida allo sviluppo di
applicazioni temporali in SQL si veda [70].
Nel modello di TSQL2 il tempo discreto; l'unit minima di tempo rappresentabile detta chronon.
Sono introdotti tre tipi di dati temporali: datetime che corrisponde ad un evento istantaneo privo di
durata che pu essere rappresentato da un singolo chronon; period che corrisponde ad un intervallo
temporale dotato di inizio e di fine e che pu essere rappresentato da due valori di tipo datetime ;
interval che rappresenta una durata (per esempio due giorni, una settimana).
Vengono inoltre i tipi date, time e timestamp da SQL-92.
A partire da questi tipi elementari vengono definiti i tipi temporal element (un insieme di period) ed
instant set (un insieme di datetime). L'introduzione di questi tipi non primitivi permette di definire
un'algebra degli intervalli che gode della propriet di chiusura (cio il risultato di una operazione
applicata a questi tipi ancora un valore di quei tipi).
L'algebra degli intervalli prevede gli operatori di uguaglianza, precedes, follows, overlaps, meets,
contains, e le operazioni insiemistiche di unione, intersezione, differenza.
Successivamente, alcuni membri della comunit che si occupava di database temporali hanno
lavorato per trasferire idee e costrutti del TSQL2 nel SQL3, proponendo una estensione detta
SQL/Temporal, ed hanno formulato una proposta al'ISO. Tuttavia a causa di un disaccordo
all'interno del comitato dell'ISO il progetto responsabile del supporto temporale stato cancellato
nel 2001 [67] [50].
Tuttavia alcuni prodotti commerciali ed open-source forniscono un supporto temporale basato sulle
idee di SQL/Temporal: di seguito sono descritti i principali; per una lista completa si veda [67].
IBM DB2 per z/OS [49] offre un supporto per la gestione dei dati secondo secondo il modello
bitemporale. Offre il tipo di dato period, il supporto per il tempo di validit (chiamato in questo
contesto business time) e per il tempo di transazione (chiamato in questo contesto system time).
Oracle Database [60] scaricabile allo scopo di sviluppare, testare, prototipare e dimostrare una
applicazione. Per elaborare dati reali o per scopi commerciali tuttavia necessario acquistare una
licenza. Oracle Database offre Workspace Manager [61], un sistema per la gestione delle versioni
dei dati presenti nel database. Workspace Manager fornisce i workspace come ambienti virtuali che
isolano l'insieme dei cambiamenti effettuati sui dati, mantengono la storia dei cambiamenti e creano
scenari multipli per analisi di tipo what if.
Workspace Manager offre anche il supporto per la gestione del tempo di validit. In questo caso
viene aggiunta una colonna che contiene il periodo di validit associato alla corrispondente riga
della tabella. possibile specificare un tempo di validit per la sessione e Workspace Manager
assicura che interrogazioni, inserimenti, aggiornamenti e cancellazioni siano coerenti e riflettano
correttamente il tempo di validit. Offre le funzioni per l'algebra degli intervalli: sovrapposizione,
contenenza, uguaglianza, confronto, intersezione, differenza.
TimeDB [75] un database relazionale bitemporale sviluppato da A. Stainer. Lavora come
interfaccia verso database Oracle, compilando istruzioni TSQL2 in una sequenza di istruzioni
SQL92.
Teradata [74] offre caratteristiche per la gestione dei dati secondo il modello bitemporale: il tipo di
dati Period, gestione del tempo di validit e del tempo di transazione, una semantica che comprende
qualificatori temporali su vincoli, interrogazioni e sessioni, gestisce le serie temporali.
PostgreSQL [62] un DBMS open souce utilizzabile sui principali sistemi operativi fra cui Linux,
UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64) e Windows. Comprende tipi di
dati di SQL:2008 fra cui DATE, INTERVAL e TIMESTAMP. Sono scaricabili due package open-
soure per la gestione di dati temporali: Temporal [63] e pgChronos [64]. Entrambi definiscono un
tipo di dato per rappresentare periodi e le funzioni ed operatori per l'algebra degli intervalli. Il
primo package offre qualche esempio di utilizzo, il secondo un po' pi ricco di funzioni.
3.2 Modelli per la rappresentazione del flusso pedonale
In questo paragrafo verranno descritte le tecniche per la modellizzazione e la rappresentazione del
flusso pedonale, finalizzate a rappresentare il flusso del pubblico che osserva la vetrina. Le tecniche
e gli strumenti per l'acquisizione delle informazioni sul flusso pedonale verranno descritte nella
relazione relativa alla Fase 2 del progetto, mentre in questo paragrafo ci limiteremo a presentare le
tecniche per la rappresentazione del flusso pedonale.
Come suggerito in [57], le caratteristiche del flusso di un traffico possono essere divise in due
livelli, microscopico e macroscopico. Il livello microscopico riguarda unit individuali con
caratteristiche quali la velocit individuale e le interazioni con altri individui, mentre il livello
macroscopico riguarda quantit globali come densit, flusso e velocit media. Per la problematica
del progetto, esaminare il comportamento dei singoli osservatori nel relativamente ristretto spazio
della vetrina, risulta senz'altro necessario un approccio di tipo microscopico.
Esistono vari modelli per il flusso pedonale. Presenteremo una breve rassegna dei principali,
seguendo [73]. Va comunque osservato che tali modelli sono finalizzati alla simulazione del flusso
pedonale allo scopo di effettuare una valutazione dell'allocazione dello spazio in una struttura, come
ad esempio un edificio, e del conseguente possibile flusso pedonale. Ad esempio servono per
valutare le vie di fuga e simulare il comportamento della folla in caso di emergenza o di catastrofe
come ad esempio in [54].
I principali modelli sono elencati sotto; essi sono accomunati dal tener conto che i pedoni tendono
ad avvicinarsi alla propria meta, mentre tendono a mantenere una certa distanza fra loro e dagli
ostacoli.
Modello cellulare costi-benefici [45]: lo spazio suddiviso in una griglia quadrata (ad esempio di
0,5 m per lato) ed i pedoni sono visti come particelle nelle celle della griglia. Ogni cella pu
contenere un solo pedone e ad ogni cella assegnato un punteggio di repulsione dovuto alla
presenza di pedoni vicini; la forza di repulsione bilanciata dal beneficio di muoversi verso la
destinazione desiderata.
Modello automa cellulare (si veda ad esempio [42]): i pedoni sono simulati come automi in celle
di una griglia che rappresenta lo spazio. I movimenti possono essere cambio di linea o salto di cella
e sono guidati da regole che dipendono dallo stato delle celle adiacenti.
Modello forza magnetica (si veda ad esempio [56]): il movimento dei pedoni viene assimilato a
quello di cariche in un campo magnetico. Ogni pedone rappresentato come un polo positivo e cos
gli ostacoli, mentre le mete dei pedoni sono rappresentate da poli negativi. Un pedone continua ad
accelerare in base alle forze a cui sottoposto finch non raggiunge una velocit limite.
Modello forza sociale [48]: si assume che il pedone sia motivato da forze sociali, La somma di
queste forze produce una accelerazione. Le forze dipendono dall'intenzione di raggiungere la meta
in un certo tempo e dalla presenza di ostacoli o di altri pedoni.
Modello rete di code (si veda ad esempio [55]): nasce per simulare situazioni di evacuazione. Le
stanze sono rappresentate da nodi, le porte fra stanze da archi. Ogni persona parte da un nodo (una
stanza) si mette in coda in un arco (cio presso una porta) e raggiunge un altro nodo allo scopo
finale di raggiungere la porta di uscita. Un pedone sceglie un arco in modo casuale in base ad un
peso. Il peso funzione dell'affollamento della stanza. Se un arco occupato il pedone si metter in
attesa oppure prover un arco diverso.
I modelli descritti hanno finalit di simulazione e pertanto non sono applicabili al progetto. Tali
modelli sono in genere (ma non sempre) testati valutando le previsioni del modello con dati reali
raccolti per esempio tramite webcam oppure tramite rfid portati da volontari oppure tramite l'analisi
dei dati dei dispositivi di telefonia mobile.
Per immagazzinare i dati rilevati sperimentalmente in genere si utilizza un database che contiene le
traiettorie dei vari pedoni In [71] viene introdotto un database per la rappresentazione delle
traiettorie pedonali detto NTXY. Questo tipo di database prevede quattro campi: il campo N
rappresenta un identificativo del pedone, il campo T il timestamp del momento in cui stata
effettuata l'osservazione ed i campi X e Y rappresentano la posizione in cui il pedone si trovava.
Tale tipo di database stato in seguito utilizzato dall'autore in vari lavori ed un database con una
simile struttura descritto anche in [58] per la rappresentazione dei movimenti di individui
registrati tramite i dati riguardanti i movimenti di dispositivi di telefonia mobile.
Una tale database per non risulta pienamente soddisfacente per gli scopi del progetto. Infatti, nel
caso di un individuo che osserva una vetrina, oltre la semplice traiettoria, sar utile registrare anche
i tempi di permanenza in una data posizione. Nel nostro caso quindi, invece che utilizzare un
semplice timestamp, preferibile utilizzare un tipo intervallo per rappresentare il periodo di
permanenza in una data posizione. Per quanto riguarda la privacy sar sufficiente rappresentare gli
individui tramite un identificatore numerico univoco in analogia al campo N detto sopra. In questo
modo nel database non sar presente nessun dato che possa far risalire all'identit di un pedone.
L'elaborazione avverr in tempo reale e nel database non verranno inseriti n dati personali n tanto
meno dati sensibili. Lo svantaggio di questo approccio che non consente di riconoscere un
passaggio successivo davanti alla vetrina della stessa persona: per fare questo sarebbe necessario di
tener traccia di alcuni dati identificativi anche se solo in forma di features o di sunto.
3.3 Rappresentazione di dati temporali basata su XML
Il linguaggio XML pu essere utilizzato, fra l'altro, per pubblicare dati presenti in un database per
renderli diponibili ad un'altra applicazione. Nel progetto questo potrebbe essere effettuato al fine di
rendere i dati presenti nel database disponibili per applicazioni che eseguano ad esempio analsi
statistiche. Su tali dati espressi in XML anche possibile effettuare interrogazioni tramite i
linguaggi XPath [76] e XQuery [77].
Sono stati proposti vari modelli per la rappresentazione di dati temporali in XML. Si vedano ad
esempio le rassegne presentate in [44, 46, 65]. Ai fini del progetto discuteremo in particolare due
modelli, quello di [44, 65]. Essi si accompagnano ad un linguaggio per le interrogazioni temporali.
Il primo modello nasce da una definizione astratta di un documento XML temporale come un grafo
con archi annotati. Gli archi sono di due tipi: gli archi di contenimento che descrivono
l'annidamento degli elementi ed i valori degli attributi; gli archi di rirerimento che indicano
riferimenti fra i nodi. Entrambi i tipi degli archi sono annotati con elementi temporali, ad esempio
intervalli. Vengono poi discusse alcune codifiche concrete della rappresentazione astratta, fra cui
viene proposta quella detta rappresentazione top-down non replicata. In questa rappresentazione la
radice del grafo viene mappata nella radice del documento ed ogni nodo del grafo viene mappato in
un singolo elemento od attributo XML. Se nel grafo un nodo elemento ha un arco contenimento
verso un nodo elemento, il valore corrispondente incluso nell'elemento. Per ogni nodo attributo ci
sar un attributo nel documento ed il suo valore sar l'unico valore associato con il nodo attributo.
Nella rappresentazione top-down gli archi contenimento pi vecchi saranno scelti per essere
rappresentati tramite un'inclusione fisica, mentre gli altri saranno rappresentati da riferimenti fra
genitori e figli.
Per quanto riguarda le etichette temporali, se e(ni, nj) un arco di contenimento con etichetta
temporale Ti, allora l'elemento che rappresenta ni nel documento XML conterr l'elemento che
contiene nj e verr etichettato con Ti. Per ogni altro arco e(nk, nj) con etichetta Tk, nell'elemento che
corrisponde a nk verr inserito un attributo IN con il valore dell'ID dell'elemento nj e con etichetta
temporale Tk.
Nelle seguenti figure vediamo un esempio tratto dall'articolo: la figura 3.3 rappresenta il grafo
relativo ad alcune squadre (franchige) che militano nel campionato NBA con alcuni relativi
giocatori; la figura 3.4 rappresenta il corrispondente documento XML. Nell'articolo viene poi
proposto TXPath, un linguaggio di interrogazioni che estende Xpath e consente interrogazioni
temporali complesse ed estende la semantica di Xpath restituendo sequenze di coppie (nodo,
intervallo) invece che sequenze di nodi.
In [44] viene invece presentata una estensione di Xquery detta Xquery. L'approccio seguito di
definire un precompilatore che traduce una interrogazione in Xquery in una interrogazione
Xquery standard. Il modello temporale soggiacente XSchema [43].
Esso utilizza una architettura a tre livelli per specificare uno schema per dati temporali. Il primo
livello lo schema per una versione individuale, lo schema snapshot. Esso uno documento schema
XML convenzionale. Il secondo livello costituito dalle annotazioni temporali dello schema
Fig 3.3 grafo del database NBA
snapshot. Esse identificano quali elementi possono variare nel tempo. Le annotazioni fisiche
costituiscono il terzo livello. Esse descrivono come sono rappresentati gli aspetti che variano nel
tempo. Uno schema XSchema viene costruito definendo inizialmente lo schema di base non
temporale. Si passa poi ad annotare le componenti che possono variare nel tempo. Infine vanno
definite le annotazioni che specificano dove andranno collocati i timestamps e come saranno
rappresentati.
La validit di un documento XML temporale potr essere testata, verificando ad esempio che i limiti
temporali di un nodo contangano quelli dei nodi discendenti.
Tre tipi di interrogazioni temporali sono offerte da Xquery: correnti, sequenziate e
rappresentazionali. Il primo tipo di interrogazione richiede informazioni relative allo stato corrente
del documento. La sua semantica la stessa della corrispondente interrogazione Xquery applicata
allo stato corrente del documento XML. Per scrivere interrogazioni correnti non necessario
conoscere la rappresentazione dei dati temporali n quali essi siano, ma sufficiente riferirsi al solo
schema nontemporale.
Fig 3.4 Rappresentazione XML top-down non replicata

Le interrogazioni sequenziate sono applicate indipendentemente ad ogni punto nel tempo. Il
risultato sar, in base al dato temporale indicato nell'interrogazione, una sequenza di elementi che
hanno variabilit temporale. possibile scrivere una interrogazione sequenziata, come nel caso
precedente, riferendosi al solo schema nontemporale.
Le interrogazioni rappresentazionali sono quelle che coinvolgono pi stati del documento di input e
quindi richiedono la conoscenza degli elementi temporali definiti nello schema.
BIBLIOGRAFIA
[1] H.Chen , Z.J Xu , Z.Q. Liu , S.C. Zhu. Composite Templates for Cloth Modeling and Sketching,
IEEE Conf. on Computer Vision and Pattern Recognition, 2006
[2] C.E. Guo, S.C. Zhu, and Y.N. Wu, A mathematical theory for primal sketch and sketchability,
In proc of ICCV, 2003.
[3] J. Pearl, Heuristics: Intelligent Search Strategies for Computer Problem Solving, Addison-
Wesley, 1984.
[4] Z.W. Tu et al. Image parsing: unifying segmentation, detection, and recognition, ICCV, 2003.
[5] K. Daubert, H.P.A. Lensch. W. Heidrich, H. Seidel. Efficient cloth modeling and rendering. In
Proc. of the 12th Eurographics Workshop on Rendering, pp. 63-70, (2001).
[6] J. Long, K. Burns, J.Yang. Cloth Modeling and Simulation: A Literature Survey. In Lecture
Notes in Computer Science, Vol.6777, pp.312-320, (2011).
[7] Seungwoo Oh , Junghyun Ahn , Kwangyun Wohn . Low damped cloth simulation . In The
Visual Computer 22(2), pp 7079, (2006).
[8] Yu-Ju Shen, Ming-Shi Wang . Real-time approach for cloth simulation . In Journal of Real-Time
Image Processing Vol. 1 pp.303310 (2007).
[9] J. Porway, B. Yao, S.C. Zhu. Learning Compositional Models for Object Categories From Small
Sample Sets . In Object Categorization: Computer and Human Vision Perspectives . Cambridge
University Press. (2009)
[10] I. Biederman, Recognition-by-Components: A theory of Human Image Under- standing,
Psychological Review, vol. 94: 115-147, 1987 .
[11] D. G. Lowe, Distinctive image features from scale-invariant key- points,International Journal
of Computer Vision, 60(2), pp. 91-110, 2004.
[12] S. Ullman, E. Sali, M. Vidal-Naquet, A Fragment-Based Approach to Object Representation
and Classification. In Proc. of the 4th International Workshop on Visual Form, 2001.
[13] M. Weber, M. Welling, P. Perona, Towards automatic discovery of object categories, In Proc.
of IEEE Conf. on Computer Vision and Pattern Recognition, vol. 2: 101-108, 2000.
[14] P. Felzenszwalb, D. Huttenlocher, Pictorial Structures for Object Recognition, In
International Journal of Computer Vision, 61(1): 55-79, 2005.
[15] L. Lin, T. Wu, J. Porway, Z. Xu. A stochastic graph grammar for compositional object
representation and recognition. In Pattern Recognition, Vol. 42 (7), pp. 1297-1307, 2009.
[16] Carrere, C., Istook, C., Little, T., Hong, H., Plumlee, T., C. Carrere (Leader); C. Istook; T.
Little; H. Hong; T. Plumlee (NCSU), National Textile Center Annual Report: November 2001
[17] Kartsounis, G., Douros I., Treleaven, P.C., "BodyXML - An XML-based High Level
Representation Framework of Human Bodies", In Proc. of 3D Modelling 2003.
[18] Chin-Hsien Tseng, Shao-Shin Hung, and Jyh-Jong Tsay, An Efficient Garment Visual Search
based on Shape Context. In Proc of the 9th WSEAS International Conference on Multimedia
Systems & Signal Processing, pp.223-230, 2009.
[19] A.Borrs, F. Tous, J. Llads, M. Vanrell. High-Level Clothes Description Based on Colour-
Texture and Structural Features. Lecture Notes in Computer Science 2652 pp.108-116, 2003.
[20] M.A. Fischler and R.A. Elschlager. The representation and matching of pictorial
structures. IEEE Transactions on Computer, 22(1):6792, January 1973.
[21] I. H.Witten, E. Frank. Data mining: practical machine learning tools anc techniques. Morgan
Kaufmann Publisher (2005)
[22] P. N. Tan, M. Steinbach, V. Kumar. Introduction to Data Mining. Addison-Wesley (2004)
[23] Roberto RF Mendes, Fabricio de B. Voznika, Alex A. Freitas. Discovering Fuzzy Classification
Rules with Genetic Programming and Co-evolution. In proc of PKDD 2001, LNAI 2168, pp. (2001)
[24] Yixin Chen, Wang, J.Z. Support vector learning for fuzzy rule-based classification systems. In
IEEE Transactions on Fuzzy Systems,Vol 11(6), pp. 716-728 (2000)
[25] B. Gabrys, A. Bargiela. General fuzzy min-max neural network for clustering and
classification. In IEEE Transactions on Neural Networks, Vol. 11(3) pp.769 - 783 (2000)
[26] Mohamed, S.M., Nyongesa, H. Automatic fingerprint classification system using fuzzy neural
techniques. In proc of the 2002 IEEE International Conference on Fuzzy Systems. pp. 358 362.
(2002)
[27] Yi-Hsuan Yang, Chia-Chu Liu, and Homer H. Chen. Music Emotion Classification: A Fuzzy
Approach. In proc of MULTIMEDIA '06, the 14th annual ACM international conference on
Multimedia (2006)
[28] P. K. Simpson, Artificial Neural Systems: Foundations, Paradigms, Applications, and
Implementations. New York: Pergamon, 1990.
[29] D. Farin, T. Haenselmann, S. Kopf, G. Khne, and W. Effelsber. Segmentation and
Classification of Moving Video Objects. Chapter 23 in Handbook of Video Databases. Design and
Applications. Furht B. Marques O. Editors, CRC Press (2004).
[30] L.G. Shapiro, G.C. Stockman. Computer Vision, Prentice-Hall (2001).
[31] R.C. Gonzalez, R.E. Woods. Thresholding. In Digital Image Processing, pp.595611. Pearson
Education (2001)
[32] R. Ohlander, K. Price, R.D. Reddy. Picture Segmentation Using a Recursive Region Splitting
Method. Computer Graphics and Image Processing 8 (3): 313333 (1978).
[33] S. Haykin. Self-organizing maps. In Neural networks - A comprehensive foundation (2nd ed.).
Prentice-Hall (1999).
[34] G. Kuntimad, H.S. Ranganath. Perfect image segmentation using pulse coupled neural
networks. In IEEE Transactions on Neural Networks, vol. 10 (3), pp. 591 598, (1999)
[35] Zhilan Hu, Hong Yan, Xinggang Lin , Clothing segmentation using foreground and
background estimation based on the constrained Delaunay triangulation , Pattern Recognition,
Volume: 41, Issue: 5, May, 2008, pp. 1581-1592
[36] Basela S. Hasan, David. C. Hogg. Segmentation using Deformable Spatial Priors with
Application to Clothing. In proc of the British Machine Vision Conference, BMVC 2010 pp.1-11
[37] Nan Wang and Haizhou Ai. Who Blocks Who: Simultaneous Clothing Segmentation for
Grouping Images. In proc of the 13
th
International Conference on Computer Vision, ICCV 2011,
[38] A.Callagher, T.Chen. Clothing cosegmentation for recognizing people, IEEE Conference on
Computer Vision and Pattern Recognition, 2008
[39] D. Lu, Q. Weng. A survey of image classification methods and techniques for improving
classification performance. International Journal of Remote Sensing, Vol. 28, No. 5, 10 March 2007,
823870
[40] Ming Yang, Kai Yu, REAL-TIME CLOTHING RECOGNITION IN SURVEILLANCE
VIDEOS, 18th IEEE International Conference on Image Processing, 2011
[41] Esther Hsu, Christie Paz, Shizhe Shen. Clothing Image Retrieval for Smarter Shopping.
Progetto della Stanford University
[42] Blue, V.J. and Adler, J.L. (2000) Cellular Automata Microsimulation of Bidirectional
Pedestrian Flows. Transportation Research Board 1678,135-141.
[43] F. Currim, S. Currim, C. E. Dyreson, and R. T. Snodgrass. A Tale of TwoSchemas: Creating A
Temporal XML Schema from a Snapshot Schema with tXSchema. In Proceedings of International
Conference on Extending Database Technology, Heraklion-Crete, Greece, 2004.
[44] D. Gao, Supporting the Procedural Component of Query Languages over Time-Varying Data,
tesi PhD,Department of Computer Science, University of Arizon, 2009.
[45] Gipps, P.G. and Marksjo, B. (1985) A Micro-Simulation Model for Pedestrian Flows. In
Mathematics and Computers in Simulation 27, pp. 95-105.
[46] F. Grandi, F. Mandreoli, P. Tiberio Temporal modelling and management of normative
documents in XML format Data & Knowledge Engineering 54 (2005) 327354.
[47] Handbook of Temporal Reasoning in Artificial Intelligence. Edited by Michael Fisher, Dov M.
Gabbay, Lluis Vila, Esevier 2005 ISBN 13: 978-0-444-51493-6.
[48] Helbing, D. and Molnar, P. (1995) Social Force Model for pedestrian dynamics. In Physical
Review E 51, pp. 4282-4286.
[49] www-01.ibm.com/software/data/db2/zos/family/
[50] www.jcc.com/sql.htm
[51] C. S. Jensen and R. T. Snodgrass. Semantics of Time-Varying Information. In Information
Systems, 21(4):311352, 1996.
[52] C. S. Jensen and C. E. Dyreson (eds.). A Consensus Glossary of Temporal Database Concepts
February 1998 Version. [21, pp. 367405].
[53] C. S. Jensen, Temporal Database Management, Dr. Techn. Thesis, 2000,
http://cs.au.dk/~csj/publications.
[54] Lmmel G., Grether D., Nagel K., The representation and implementation of time-dependent
inundation in large-scale microscopic evacuation simulations Tramsportation Research Part C:
Emerging Technologies (2010) Volume: 18, Issue: 1, Publisher: Elsevier Ltd, Pages: 84-98 ISSN:
0968090X.
[55] Lovas,G.G.(1994) Modeling And Simulation Of Pedestrian Traffic Flow. In Transportation
Research 28B, pp. 429-443.
[56] Matsushita and Okazaki. A study of Simulation Model for Way FindingBehavior by
Experiments in Mazes. Journal of Architecture, Planning. EnvironmentEngineering. AIJ, No.429,
pp. 51-59, 1991.
[57] May, A. D. Traffic Flow Fundamental, Prentice Hall, New Jersey, 1990.
[58] Mountain D., Raper J., Spatio-temporal representations of individual human movement for
personalising location-based services (2001) GISRUK 2001 Conference Proceedings
[59] M.A. Nascimento, M. Eich, Decision time for temporal databases, in: Proc. of the 2nd Int.
Workshop on Temporal Representation and Reasoning (TIME95), Melbourne Beach, FL, 1995, pp.
157162.
[60] www.oracle.com
[61] http://www.oracle.com/technetwork/database/enterprise-edition/index-087067.html
[62] www.postgresql.org
[63] pgfoundry.org/projects/temporal/
[64] pgfoundry.org/projects/timespan/
[65] F. Rizzolo, A. A. Vaisman, Temporal XML: modeling, indexing, and query processing, The
VLDB Journal The International Journal on Very Large Data Bases, Volume 17 Issue 5, 2008.
[66]www.cs.arizona.edu/~rts/tsql2.html
[67] www.cs.arizona.edu/~rts/sql3.html
[68] R. T. Snodgrass. The Temporal Query Language TQuel. ACM Transactionson Database
Systems, 12(2):247298, June 1987.
[69] R. T. Snodgrass. The TSQL2 Temporal Query Language. Kluwer Academic Publishers, 1995.
[70] R. T. Snodgrass. Developing Time-Oriented Database Applications in SQL, Morgan Kaufmann
Publishers, Inc., San Francisco, 504+xxiii pages, ISBN 1-55860-436-7, 2000.
[71] Teknomo, K., Takeyama, Y. and Inamura, H. (2000), Data Collection Method for Pedestrian
Movement Variables, Dimensi Teknik Sipil - Journal of Civil Engineering Science and Technology,
Vol. 2 no 1, pp. 43-48.
[72] Teknomo, K., Takeyama, Y. and Inamura, H. Tracking System to Automate Data Collection of
Microscopic Pedestrian Traffic Flow, Proceeding of The 4th Eastern Asia Society For
Transportation Studies, Hanoi, Vietnam, Vol. 3 no 1, pp. 11-25, Oct. 2001
[73] ,Teknomo, Kardi, Microscopic Pedestrian Flow Characteristics: Development of an Image
Processing Data Collection and Simulation Model, Ph.D. Dissertation, Tohoku University, Japan
[74] www.teradata.com/database/teradata-temporal/
[75] www.timeconsult.com/Software/Software.html
[76] http://www.w3.org/tr/xpath20/
[77] http://www.w3c.org/TR/xquery/