Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione...

52
Alma Mater Studiorum Universit ` a degli Studi di Bologna Facolt`a diIngegneria Corso di Laurea in Ingegneria Informatica Tesi di Laurea in Sistemi Informativi LA Progettazione e realizzazione di un benchmark di test per il sistema Shiatsu Candidato: Relatore: Fabrizio Marconi Prof. Ilaria Bartolini Correlatore: Prof. Marco Patella Anno Accademico 2012/2013 - Sessione I

Transcript of Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione...

Page 1: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

Alma Mater StudiorumUniversita degli Studi di Bologna

Facolta di Ingegneria

Corso di Laurea in Ingegneria Informatica

Tesi di Laurea in Sistemi Informativi LA

Progettazione e realizzazione di un

benchmark di test per il sistema

Shiatsu

Candidato: Relatore:Fabrizio Marconi Prof. Ilaria Bartolini

Correlatore:Prof. Marco Patella

Anno Accademico 2012/2013 - Sessione I

Page 2: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

Resistere e inutile!

Page 3: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni
Page 4: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

Indice

1 Introduzione 5

2 Shiatsu 7

2.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 Windurf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2.1 Region-Based e Histogram-Based Image Retrival . . . . 8

2.2.2 Struttura della libreria . . . . . . . . . . . . . . . . . . 10

2.3 Detection Module . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.4 Java Media Framework . . . . . . . . . . . . . . . . . . . . . . 11

2.5 Data Layer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.5.1 Database . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.5.2 CartellaVIDEO DB . . . . . . . . . . . . . . . . . . . . 14

3 Analisi del problema 17

3.1 Modulo per l’inserimento di nuovi video . . . . . . . . . . . . 17

3.2 Collezione video . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1

Page 5: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

2 INDICE

4 Progetto del Database 19

4.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.2 Trecvid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.2.1 Organizzazione dei dati . . . . . . . . . . . . . . . . . . 20

4.2.2 Metadati . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.2.3 Annotazioni . . . . . . . . . . . . . . . . . . . . . . . . 23

4.3 Struttura del Database . . . . . . . . . . . . . . . . . . . . . . 25

4.3.1 Modifiche alla struttura . . . . . . . . . . . . . . . . . 25

4.3.2 Adattamento dei dati alle tabelle esistenti . . . . . . . 27

5 Realizzazione del Crawler 29

5.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.2 Divisione del Lavoro . . . . . . . . . . . . . . . . . . . . . . . 29

5.3 Struttura del Crawler . . . . . . . . . . . . . . . . . . . . . . . 30

5.3.1 InsertionDao . . . . . . . . . . . . . . . . . . . . . . . 31

5.3.2 Interfaccia Grafica . . . . . . . . . . . . . . . . . . . . 32

5.3.3 WorkHandler . . . . . . . . . . . . . . . . . . . . . . . 34

5.3.4 Individuazione dei punti di taglio: Threshold . . . . . . 37

5.3.5 Taglio del Video ed estrazione delle features: CutTa-

skWorker . . . . . . . . . . . . . . . . . . . . . . . . . 38

5.3.6 Conclusione del lavoro . . . . . . . . . . . . . . . . . . 39

5.4 Implementazioni aggiuntive . . . . . . . . . . . . . . . . . . . 40

5.4.1 WorkHandler alternativi . . . . . . . . . . . . . . . . . 40

Page 6: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

INDICE 3

5.5 File Reader . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5.6 Dati prodotti . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6 Conclusioni 45

Page 7: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

4 INDICE

Page 8: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

Capitolo 1

Introduzione

Il continuo e sempre piu veloce evolversi di internet ha portato cam-

biamenti radicali nella vita di tutti. Le informazioni vengono ricercate ed

acquisite in modi diversi rispetto a quando non esisteva, e perfino rispetto

alla sua nascita le cose sono fortemente cambiate. La ricerca all’interno del

World Wide Web si pratica quasi sempre attraverso l’uso di keywords. Que-

ste sono spesso efficaci per la ricerca all’interno di testi ma diventano carenti

per quanto riguarda le fonti multimediali. Infatti, per far fronte al prepotente

espandersi di immagini, audio e video, i motori di ricerca si sono aggiornati

ed evoluti. Oggi e possibile trovare facilmente un file musicale attraverso un

suo spezzone molto breve, o un’immagine mediante una simile; ma per quan-

to riguarda i video ci si affida ancora molto spesso al metodo del “tagging”,

cioe: attribuire dei valori testuali per indicare i contenuti dei video. Benche

questo metodo non sia sempre inefficace a volte si rivela inaffidabile. Cio

perche i “tag” devono essere inseriti manualmente per ciascun file multime-

diale, o magari per gruppi di files. E’ evidente che questo lavoro manuale

diventa quanto piu impreciso o costoso tanto piu e grande la quantita di dati

da gestire. Inoltre questo sistema puo essere impreciso, infatti due video con

lo stesso tag possono avere contenuti visivi o uditivi completamente diversi.

Proprio per questo il progetto SHIATSU si puo considerare un sistema di

ricerca all’avanguardia. SHIATSU (Semantic-Based Hierarchical Automatic

Tagging of Videos by Segmentation using Cuts) e un sistema di tagging video

5

Page 9: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

6 1. Introduzione

automatizzato che si propone di trovare e attribuire tag coerenti ai video, e

di cercare similarita tra piu video. Il principio di base e che il video e un

oggetto complesso: divisibile nelle due componenti audio e video; a sua volta

la componente video e suddivisibile in scene ed infine immagini. Conside-

rando il video come una sequenza ordinata di immagini, SHIATSU analizza

queste ultime, cercando possibili tag ed estendendoli in modo gerarchico alle

varie scene ed infine al video stesso. La versione attuale di SHIATSU e uno

strumento di ricerca efficiente di video. Tale ricerca e stata recentemente

indicizzata ed ottimizzata, aumentando di molto la velocita del sistema. Ad

oggi ci si trova di fronte alla necessita di testare quanto questo sistema sia

realmente efficiente; tuttavia per fare cio il database che era nativamente in-

serito in SHIATSU, atto soprattutto allo sviluppo e ai test di ricerca, risulta

inadeguato. Lo scopo di questa tesi e quindi quello di realizzare uno stru-

mento che consenta di aggiungere materiale all’interno del database in modo

autonomo e semplificato. In questo modo sara possibile creare una nuova

base di dati, adatta a testare tutte le potenzialita di SHIATSU. Il lavoro di

tesi e suddiviso in 6 capitoli strutturati come segue:

1. Introduzione in cui si descrive lo scenario e si introducono gli argo-

menti trattati.

2. Struttura Shiatsu in cui si descrive la struttura esistente e se ne

illustrano le componenti.

3. Analisi del problema in cui si descrive il problema e se ne illustrano

gli aspetti.

4. Realizzazione del CutTask in cui si descrive la creazione del modulo

per l’inserimento di nuovi video.

5. Progetto del Database in cui si descrivono le scelte fatte nella rea-

lizzazione della base di dati.

6. Conclusioni in cui si analizzano i risultati del lavoro e si esaminiamo

i punti aperti.

Page 10: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

Capitolo 2

Struttura Shiatsu

2.1 Introduzione

SHIATSU e un sistema capace di effettuare interrogazioni efficienti su

collezioni di dati multimediali.[1] I suoi compiti comprendono l’annotazione

semi-automatica dei video e la ricerca di media a partire sia da tag testuali

che da documenti multimediali. Lavora secondo logica gerarchica: un video

viene diviso in shots, cioe singole scene, queste poi vengono studiate come

collezioni di immagini detti Keyframes; e programmato prevalentemente in

Java, e sfrutta ampiamente la libreria Java Media Framework[2]: un modulo

che permette la manipolazione di video mediante codice Java. L’architettura

di Shiatsu e formata da tre strati software: Interfaccia, Engine Layer e Data

Layer. L’interfaccia grafica e efficace e consente sia di fare interrogazioni che

di operare sui tag, include una funzione per la riproduzione di video al suo

interno. L’Engine Layer comprende i tre componenti chiave: l’estrattore di

features visuali che determina le caratteristiche delle immagini, l’annotatore

che realizza l’algoritmo di annotazione automatica e il risolutore di interro-

gazioni, che si occupa di trovare i risultati per le query dell’utente. Il Data

Layer e lo strato piu basso che si occupa di dialogare con il Database e di

mantenere i dati coerenti.

Alcuni moduli sono di particolare rilievo per il lavoro che ci si propone di fa-

7

Page 11: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

8 2. Shiatsu

re, nello specifico verranno utilizzati soprattutto lo Shot Detection Module,

il Data Layer ed infine il Feature Extraction Module che di fatto e realizzato

principalmente da Windsurf.

2.2 Windurf

La base del sistema SHIATSU e costituita dalla libreria Windsurf (Wavelet-

Based Indexing of Images Using Region Fragmentation) che consente la ge-

stione di dati multimediali con struttura gerarchica e da accesso a modalita

flessibili di ricerca e di estrazione dati. Windsurf si colloca prevalentemente

nell’Engine Layer nonostante sia dotato di componenti proprie per l’inter-

faccia al database. La definizione del modello di ricerca di Windsurf viene

riportata qui di seguito:

“Dato un database DB di N documenti, DB= {D1, ...,Dn}, doveogni documento D e composto da nd elementi, D={R1, ...,Rnd}.Ogni elemento R di D e descritto dalle proprie caratteristiche che

ne descrivano il contenuto. Fornito un documento query D q =

{Q1, ...,Qn} composto da n elementi, una funzione di distanza tra

elementi ??Delta che misura, usando le caratteristiche visuali, la

dissimilarita tra una coppia di elementi, vogliamo ottenere il set

di documenti in DB migliori rispetto a Dq secondo un certo tipo

di confronto.” [3]

Nel presente caso i documenti sono le immagini: i frame di cui si compongono

i video. Questi documenti verranno divisi in modo appropiato e studiati per

facilitare le operazioni di ricerca.

2.2.1 Region-Based e Histogram-Based Image Retrival

Nel modello Region-Based ogni immagine viene scomposta in “regioni”,

cioe aree dell’immagine con caratteristiche visuali simili. Ogni regione e

Page 12: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

2.2 Windurf 9

dotata di caratteristiche proprie: textures, colori, forme. Queste vengono

elaborate in forme testuali in modo da poter essere piu agevolmente salvate

come “features”.

Figura 2.1: Un esempio della divisione in regioni

L’individuazione delle caratteristiche visuali e di fondamentale impor-

tanza in quanto queste diventeranno la base per il calcolo della distanza tra

piu immagini. Prima di effettuare tale calcolo, sara necessario stabilire la

distanza tra le regioni delle immagini; successivamente una funzione andra

ad aggregare i risultati in modo da ottenere la distanza complessiva. Ci sono

diverse politiche di similarita tra regioni (Windsurf Distance, Earth’s Mover

Distance, Integrated Region Matching, Skyline), che possono essere utilizzate

a seconda del caso e dello scopo della ricerca.

Figura 2.2: Un esempio del confronto fra regioni

Mentre la Region-Based da importanza anche alla struttura dell’immagi-

ne, la tecnica Histogram-Based si occupa principalmente della dominanza dei

colori. Essa e basata su istogrammi: l’istogramma di un’immagine digitale

e una rappresentazione della distribuzione dei toni in essa contenuti. Nella

pratica si definiscono gruppi di colori e vengono analizzati i pixel per definire

a quale gruppo essi appartengano; il tutto poi viene rappresentato in forma

Page 13: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

10 2. Shiatsu

grafica. La quantita di colori definiti influenza la precisione della rappresen-

tazione. L’istogramma puo essere costruito in molti modi ma gli standard

piu diffusi sono gli spazi tridimensionali RGB o HSV. Calcolare la distan-

za tra immagini rappresentate mediante istogrammi e piu semplice e quindi

piu economico in termini di tempo ed elaborazione rispetto alla modalita a

regioni, questo a discapito della qualita della ricerca.

2.2.2 Struttura della libreria

La libreria Windsurf e scritta in linguaggio Java, come gran parte del

sistema SHIATSU; i suoi package principali sono:

• Document: contiene le classi necessarie alla descrizione delle immagini

e delle regioni che le compongono. Include, inoltre, strumenti per il

calcolo della distanza tra immagini.

• FeatureExtractor: si occupa di identificare ed estrarre regioni e features

dalle immagini.

• QueryProcessor: risolve le query basate su immagini, utilizzando ap-

positi indici, se presenti, per velocizzare la ricerca.

• FeatureManager: gestisce le interrogazioni sul DBMySQL per la ricerca

di immagini.

• IndexManager: si occupa di gestire gli indici utilizzati dal QueryPro-

cessor.

2.3 Detection Module

Il Detection Module ha la funzione di individuare gli istanti in cui un

video deve essere tagliato, al fine di formare dallo stesso una collezione di

scene: gli shots. Il problema della segmentazione e piuttosto complesso: ci

sono molti algoritmi con vario grado di profondita per individuare i cambi

Page 14: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

2.4 Java Media Framework 11

di scena; la ricerca, inoltre, e ancora in corso. Inizialmente si era preferito

dotare SHIATSU di un sistema di Shot Detection rivolto all’efficienza. Il“Th-

resholdDetector”che nel sistema era il principale attore del Detection Module

lavorava confrontando due frames successivi, utilizzando sia istogrammi HSV

sia calcolando gli oggetti che entravano od uscivano dalla scena. Il detector

cercava di individuare due fenomeni: hard cuts e gradual transition. Gli hard

cuts sono i cambi di scena netti, da un immagine al nero, o da un’immagine

a una completamente diversa. Invece la gradual transition e la dissolvenza,

cioe l’effetto di un’immagine che sfuma piu o meno gradualmente in un’altra.

Ovviamente questo sistema non poteva garantire l’identificazione perfetta di

tutti i cambi di scena, ma inserendo una doppia soglia dinamica e stato pos-

sibile adattare la sensibilita per varie tipologie di video. Piu recentemente si

e deciso di rendere il Detection Module ancor piu flessibile, infatti nel lavoro

di tesi di Alessandro Colace [4] si e voluto ingegnerizzare questo modulo,

consentendo di inserire vari “Detector”: moduli di individuazione di cambio

scena (vedi figura). In questo modo e possibile scegliere il “Detector” piu

adeguato a seconda del video che si vuole analizzare. Uno di questi rappre-

senta il lavoro di tesi di Giovanni Concas[5], che ha scelto di cercare i cambi

di scena sfruttando unicamente il canale audio. Esso andra ad aggiungersi

al detector predefinito, il Threshold ed eventualmente ad altri Detector che

si voglia realizzare in futuro. L’aspetto interessante di questa struttura e la

possibilita di confrontare i tagli individuati dai vari Detector e, analizzando

i dati, studiare l’efficienza dei vari algoritmi.

2.4 Java Media Framework

Java Media Framework e una libreria che consente la manipolazione di

file video all’interno dell’ambiente Java. Di seguito si riporta la descrizione

fornita dal sito ufficiale.

The Java Media Framework API (JMF) enables audio, video and

other time-based media to be added to applications and apple-

ts built on Java technology. This optional package, which can

Page 15: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

12 2. Shiatsu

capture, playback, stream, and transcode multiple media forma-

ts, extends the Java 2 Platform, Standard Edition (J2SE) for

multimedia developers by providing a powerful toolkit to develop

scalable, cross-platform technology.[6]

La libreria offre diversi servizi che consentono di elaborare flussi audio e video:

dal player, per riprodurre i video in un interfaccia grafica, a strumenti piu

complessi che consentono di analizzare o modificare il video stesso.

Figura 2.3: La finestra del player di JMF

Viene utilizzata in molti modi all’interno di Shiatsu: un player e inse-

rito nell’interfaccia per visualizzare i video inseriti; inoltre viene utilizzata

per estrarre i frame ed i keyframe che devono essere elaborati. La struttura

non e di semplice utilizzo anche perche il supporto, insieme all’ultimo ag-

giornamento, e terminato nel 2004; il tutto e documentato nel sito ufficiale

Oracle.

2.5 Data Layer

Il Data layer e lo strato di software che si occupa di registrare e mante-

nere coerenti i dati generati ed utilizzati da Shiatsu. Esso e composto dal

database vero e proprio, su base MySQL; dallo strato software che si occupa

delle chiamate a database: estrarre o inserire dati dal database a seconda

Page 16: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

2.5 Data Layer 13

delle esigenze; infine, dalla cartella “VIDEO DB”. Lo strato software e stato

realizzato mediante chiamate JDBC[7]. Il tutto e stato modellato a partire

da Windsurf ed adattato al fine di lavorare in modo gerarchico per poter

estendere i tag delle singole immagini ai video.

2.5.1 Database

La struttura iniziale del database e riportata nel seguente schema.

Figura 2.4: Schema ER della struttura originale del database Shiatsu.

Come si puo vedere sono presenti 6 tabelle:

videos: e la tabella che contiene l’elenco dei video presenti in Shiatsu, la cui

chiave primaria e il path del video, relativo alla cartella di archivio di

Shiatsu, DB-VIDEO per default.

Page 17: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

14 2. Shiatsu

shots: contiene l’elenco degli shots presenti in Shiatsu, la chiave primaria

e un id numerico, sono inoltre presenti il path dello shot e il path del

video da cui questo e stato estratto; e presente anche un’immagine che

dovrebbe rappresentare lo shot e il numero dei keyframes estratti.

tag tree: contiene i tipi di tag che e possibile associare ai keyframe. Ogni tag

ha un id tag che lo identifica e un id parent che identifica il genitore

recursivamente, cosı e possibile creare gruppi di tag. Il campo tag

invece, e una descrizione del concetto che il tag vuole identificare, ad

esempio “sport” o “pepole”.

tag shots: associa agli shots i tag mediante la ForeignKey id tag che si rife-

risce alla tabella tag tree, la variabile location non e che una ripetizione

di tag nella tabella tag tree.

tag video: associa ai video i tag, e strutturata come tag shots.

shot features: contiene le features dei vari Keyfreams estratte da Windsurf

e memorizzate dallo stesso secondo le proprie regole. id img in questo

contesto indica una singola immagine, ma essendo ForeignKey riferita

alla tabella shots, e possibile memorizzare un solo keyframe per ogni

shot.

Queste tabelle sono indicizzate in M-tree in modo da migliorare le prestazioni

nella ricerca.

2.5.2 CartellaVIDEO DB

La cartella “VIDEO DB”contiene i file che sono stati elaborati e segmen-

tati da Shiatsu, sono organizzati secondo un’apposita struttura di directory.

E’ necessario prestare attenzione in quanto la struttura deve rispecchiare

quello che e registrato in database o si rischia di incorrere in errori durante

l’esecuzione di Shiatsu.

Page 18: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

2.5 Data Layer 15

Figura 2.5: La struttura della cartella VIDEO DB [8]

All’interno della cartella “sisap” si trova una cartella per ogni video pre-

sente in shiatsu. All’interno di queste vi e presente il video, una cartella che

contiene i vari shots, e una che mantiene organizzati i keyframes. I keyframes

sono a loro volta distribuiti in cartelle, una per ogni shot del video.

Page 19: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni
Page 20: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

Capitolo 3

Analisi del problema

A seguito della recente ottimizzazione della ricerca in Shiatsu, il database

di cui il sistema era fornito e risultato inadeguato. La collezione di video era

stata costruita ed inserita in un primo momento in modo manuale, e per que-

sto motivo era ovviamente di dimensione ridotta. Scopo del database iniziale

era soprattutto di testare le potenzialita del sistema e non di misurarne le

prestazioni, per tale motivo risultava maggiormente indicato per il nascente

sistema Shiatsu perche piu semplice da compilare. Ad oggi si conoscono piu

a fondo le potenzialita di Shiatsu, e si vuole misurarne anche le prestazioni

in modo piu esteso. Da qui l’obbiettivo del presente lavoro di tesi: compilare

un database di grandi dimensioni, adatto a divenire la principale piattaforma

per il benchmark di Shiatsu.

3.1 Modulo per l’inserimento di nuovi video

Per raggiungere l’obbiettivo sopra citato il database da compilare dovra

essere ampio, sara necessario quindi un nuovo modulo software che permetta

di inserire nuovi video in modo automatizzato. Si procedera con l’analisi

di cosa e necessario fare per inserire un nuovo video. Innanzi tutto, sara

necessario rendere il video compatibile con Java Media Framework, che e

17

Page 21: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

18 3. Analisi del problema

il framework che viene utilizzato per l’analisi dei video. In seguito il video

dovra essere analizzato per stabilire in quali punti dovra essere tagliato per

poter generare gli shots; si dovra procedere poi al taglio del video in shots

e all’estrazione, da questi ultimi, dei keyframes. I keyframes dovranno poi

essere analizzati per poter estrarne le features. Di quest’ultima fase si oc-

cupera la libreria Windsurf. E’ evidente che questa operazione sara molto

lunga, quindi bisognera agire tenendone conto.

3.2 Collezione video

L’aspetto principale di questo problema e la costruzione del database vero

e proprio. Esso, come si e detto, dovra essere di grandi dimensioni, ma sara

opportuno scegliere i video con cura in modo che il maggior numero possibile

di eventuali test vi sia applicabile. Sara opportuno considerare sempre quale

sistema che dovra essere testato su questa base di dati: Shiatsu, un sistema

per il tagging automatico dei video. Sara quindi opportuno scegliere video

di varia natura, dimensione e contenuto il piu possibile completi di metadati,

in modo da avere un termine di confronto sui tag che Shiatsu eseguira. Inol-

tre, essendo questo un progetto accademico, i video dovranno essere privi di

Copyright, in modo da poter essere utilizzati liberamente.

Page 22: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

Capitolo 4

Progetto del Database

4.1 Introduzione

La creazione di una base di dati e un lavoro complesso, in questo caso

particolarmente. Infatti il nostro database era piccolo e molto mirato. Come

si e detto creato ad Hoc con strumenti esterni. Anche lo schema del database

rispecchiava quella modalita. Si rendeva quindi necessario, una volta trovati

i dati adatti da inserire, riadattare anche lo schema del database cercando

di limitare il piu possibile di danneggiare il funzionamento di Shiatsu. Dopo

alcune ricerche, si e deciso di utilizzare un famoso Benchmark gia creato da

altri: il TRECVid[9].

4.2 Trecvid

Trecvid e una base di dati nata dalla serie di conferenze Trec:

“The TREC conference series is sponsored by the National Insti-

tute of Standards and Technology (NIST) with additional support

from other U.S. government agencies. The goal of the conference

series is to encourage research in information retrieval by provi-

19

Page 23: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

20 4. Progetto del Database

ding a large test collection, uniform scoring procedures, and a

forum for organizations interested in comparing their results. In

2001 and 2002 the TREC series sponsored a video“track”devoted

to research in automatic segmentation, indexing, and content-

based retrieval of digital video. Beginning in 2003, this track

became an independent evaluation (TRECVID) with a workshop

taking place just before TREC.”[10]

Il TREC e una serie di conferenze mirate a incoraggiare la ricerca sull’estra-

zione di informazioni da video digitali. Per farlo offre ogni anno una grande

collezione di video completi di Ground Truth1 e metadati.

4.2.1 Organizzazione dei dati

I dati video del TREC sono divisi in 2 parti: una a scopo di Development e

l’altra a scopo di Test. Per ognuna sono allegati dati diversi, ma per entrambe

sono presenti la Ground Truth e la divisione in Shot. Per questo lavoro di

tesi e stata ottenuta solo una parte dei dati disponibili per l’anno 2007 e una

parte dell’anno 2009. In particolare, per l’anno 2007, si era in possesso di

dati quali: annotazioni, divisione in shot, ground truth, keyframe della parte

“dev” e 40 video della parte test grazie ai quali e stato possibile creare un

buon benchmark per il nostro sistema Shiatsu, adatto soprattutto a testare

la divisione in shots e il tagging automatico dei video. I dati relativi all’anno

2009 risultano essere in maggior numero ma ancor piu parziali, infatti vi e

una notevole quantita di video: 127. Tuttavia non vi e praticamente alcun

metadato collegato ad essi; nonostante cio e possibile utilizzare tali video per

creare un data set al fine di testare la scalabilita delle prestazioni di Shiatsu e

delle query. Utilizzando questi dati verranno creati 3 database con tre scopi

distinti l’uno dall’altro:

1Per Ground Truth si intende il set di informazione che viene utilizzato come termine

assoluto di paragone per misurare la qualita dei risultati

Page 24: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

4.2 Trecvid 21

trecvid benchmark sara realizzato a partire dai 40 video del Trecvid

2007, che verranno tagliati seguendo la divisione in shot di Trecvid

e importando annotazioni e Ground Truth.

trecvid shiatsu verra creato utilizzando gli stessi 40 video del Trecvid

2007, ugualmente tagliati secondo i dati Trecvid ma importando le

features visuali secondo le modalita Shiatsu.

big data per il quale verranno importati i video del Trecvid 2009 seguendo

interamente le modalita Shiatsu Il primo Database puo essere impie-

gato per testare l’efficacia del tagging automatico di Shiatsu, mentre e

possibile fare uso del secondo per collaudare il nostro algoritmo di divi-

sione in Shots. “big data”, essendo molto grande, puo essere adoperato

per testare l’efficienza delle query.

4.2.2 Metadati

Come appena riportato, i dati del 2007 erano completi di metadati pur

senza troppe descrizioni. E’ stato necessario studiare ogni file in relazione

con gli altri per capire come interpretare i dati e come utilizzarli. Di seguito

viene riportata la spiegazione di ciascun elemento.

Collection2007.xml

E’ un file in formato xml contenente l’elenco di tutti i video del Trecvid

2007. Ogni campo contiene:

id un numero da 1 a 217 che indica l’id associato al video per Trecvid.

filename il nome del file video a cui si fa riferimento.

use il pacchetto in cui il video e utilizzato, dev o test.

source l’indicazione di chi ha fornito il video, tipicamente Sound and Vision

o BBB rushes.

Page 25: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

22 4. Progetto del Database

filetype la tipologia del video, in questo caso sempre MPEG-1.

Cartella Master Shot Reference

Contiene i file “.msb” e “.sb” che indicano i “master shot bounds” e “shot

bounds”di ogni file. Sono file testuali che hanno 2 righe di intestazione in cui

si ringrazia Christian Peterson [11] per la realizzazione, dopo di che ci sono

2 valori per ogni riga: il frame di inizio e di fine di ciascuno shot.

Feature definition.txt

In questo file c’e l’elenco dei concetti che Trecvid si propone di trovare in

ogni video. E’ un file testuale in cui ogni riga indica un concept ad esempio:

1. Sports: Shots depicting any sport in action

“1” e l’identificativo associato al concept, “Sports” e il nome del concept e

segue una breve descrizione di cosa si vuole cercare.

feature.qrels.tv07

Questo file e la vera e propria Ground Truth per quanto riguarda le

annotazioni, segue la descrizione ufficiale:

-TOPIC

-ITERATION

-DOCUMENT#

-RELEVANCY

where TOPIC is the topic number,

ITERATION is the feedback iteration (almost always zero and

not used),

Page 26: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

4.2 Trecvid 23

DOCUMENT# is the official document number that corresponds

to the “docno” field in the documents, and

RELEVANCY is a binary code of 0 for not relevant and 1 for

relevant. [12]

In sostanza, in ogni riga del presente file testuale sono espressi 4 dati separati

da spazi, di cui 3 sono molto rilevanti:

Topic e il primo campo, ed e l’identificativo del concept che si vuole indi-

viduare.

Document e il nome del keyframe a cui si fa riferimento, si cerca ogni

concept in ogni keyframe e se ne verifica la presenza.

Relevancy e l’indicatore di rilevanza del Topic nel Document: 0 per non

rilevante e 1 per rilevante.

4.2.3 Annotazioni

Sebbene anche feature.qrels.tv07 sia una forma di annotazione, quelle

che seguono sono annotazioni fatte da terze parti tutte riferite ai keyframes

estratti con la seguente modalita:

“The keyframes were selected by going to the middle frame of the

shot boundary, then parsing left and right of that frame to locate

the nearest I-Frame. This then became the keyframe and was

extracted. Keyframes have been provided at both the subshot

(NRKF) and master shot (RKF) levels.”

Files .ann

I file.ann prendono il nome del concept che riportano. All’interno ogni ri-

ga indica la presenza o meno del concept nel keyframe indicato, analogamente

al feature.qrels.tv07.

Page 27: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

24 4. Progetto del Database

Annotation person indica la persona che ha fatto l’annotazione

Organizer chi ha organizzato il processo di annotazione

Concept il concetto che si cerca nei frame

Video Name il nome del video a cui appartiene il keyframe

Keyframe Name il nome del keyframe

Judgement la presenza o meno del concept nel keyframe

Sign indica se l’annotatore era sicuro o no dell’annotazione; e presente S

alla fine della riga in caso di incertezza

Sono presenti 2 cartelle con file .ann: la prima chiamata

tv2007.mcg.ict.cas.keyframe.annotation e piu completa rispetto alla cartella

“ann”. Infatti, risulta che qualche elemento del personale abbia dimenticato

di salvare parte delle annotazioni nell’elaborare i file .ann. Il gruppo che

ha creato tv2007.mcg.ict.cas.keyframe.annotation ha corretto questo errore

come spiegato nel “readme” allegato

Files .pos.xml

I file “.pos.xml” sono analoghi per struttura agli “ann”ma al loro interno

si elencano solo i keyframe “positivi” al concetto ispezionato. Generalmente

quando si forniscono questi file si allegano anche i file “.neg” che dovrebbe-

ro contenere i match negativi. L’annotazione e stata realizzata secondo il

metodo (LSCOM) [13]. Essendo tali file in formato xml sono strutturati: la

radice indica il numero di keyframe contenuti nella descrizione e il nome del

concept. In successione ogni entita “Img” indica un keyframe e l’attributo

“objNum” indica quanti oggetti del dato “concept” sono stati identificati. Se

“objNum” e 0 il concept non e identificabile in una sezione dell’immagine; al

contrario se objNum e maggiore di 0 sara presente subito sotto un entita che

rappresenta la posizione del concept nel frame.

Page 28: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

4.3 Struttura del Database 25

4.3 Struttura del Database

Alla luce dei dati che si vogliono importare, e risultato evidente che la

struttura database presente all’inizio del lavoro e illustrata nel capitolo 2.5.1,

sarebbe stata inadeguata. Si sono quindi rese necessarie delle modifiche.

4.3.1 Modifiche alla struttura

Tabella keyframes

La prima modifica che si e deciso di apportare e stata permettere a piu

immagini di appartenere ad uno stesso shot. Questo non era possibile in

precedenza in quanto il campo “id img” era ForeignKey riferita alla tabella

“shots”. Le possibili azioni erano 2: creare un nuovo campo nella tabella

shot features da rendere chiave primaria insieme a “id img”, oppure creare

una nuova tabella dove associare ad ogni shot piu “id img”e modificare la Fo-

reignKey in“shot features” in modo che puntasse tale tabella. Nella seguente

immagine si puo vedere la modifica effettuata.

Page 29: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

26 4. Progetto del Database

Figura 4.1: La differenza tra il vecchio modello (a sinistra) ed il nuovo modello

(a destra).

In seguito e stato necessario eliminare la ForeignKey nella tabella tag shots

che aveva un funzionamento analogo.

Tabella videos

La tabella videos aveva un solo campo: il “video path” che usava per

identificare i video. Si e deciso di inserire 2 campi chiamati “original hash” e

“mjpg format hash” che memorizzano il checksum di ciascun file da inserire,

prima e dopo la conversione. Questo passaggio verra spiegato in seguito.

Questi campi devono essere unici.

Tabella video meta

La tabella video meta e stata creata per ospitare i metadati di Trecvid.

E’ stato deciso di creare una tabella apposita invece che aggiungere campi

alla tabella videos. In questo modo sara piu facile e veloce utilizzare la tabella

Page 30: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

4.3 Struttura del Database 27

videos per individuare i video, mentre la tabella video meta viene letta solo

quando occorre estrarre i metadati.

Tabella cutpoints

La tabella cutpoints ha il solo scopo di memorizzare gli istanti di taglio di

ogni video. Per discriminare ogni shot le chiavi primarie sono il“video path”e

il numero sequenziale dello shot, mentre il campo “frame” e di tipo BIGINT

dato che vengono gestiti come Long. Ogni riga della tabella indichera il

frame finale di ogni shot riferito al video completo, presumendo che il frame

di partenza sia 0.

Figura 4.2: Schema ER della struttura modificata del database Shiatsu.

4.3.2 Adattamento dei dati alle tabelle esistenti

Le modifiche sopra descritte erano strettamente necessarie in quanto i

dati a cui sono destinate non avevano posto in database. Invece una parte

Page 31: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

28 4. Progetto del Database

dei dati da inserire possono essere adattate allo schema preesistente. L’e-

lenco dei concept puo essere inserito efficacemente nella tabella tag tree che

aveva lo stesso scopo. E’ stato preso l’accorgimento di inserire i tag in un

nuovo ramo della tabella, creando il tag “Inported Tag” con id tag = 1000

ed id parent = 1000. Di seguito sono stati creati i tag “annAnnotation”,

“posXMLAnnotation” e “tv07Annotation” rispettivamente con id tag 1100,

1200 e 1300, e con lo stesso genitore id parent 1000. I concept a loro volta

avranno un id tag a partire da 1100 per le annotazioni prese dai file di tipo

“ann”. Es.

id tag 1101, id parent 1100 = Sports (da annotazione “ann”),

id tag 1201, id parent 1200 = Sports (da annotazione “pos.xml”)

id tag 1322, id parent 1300 =Corporate-Leader (da annotazione “tv07”)

E’ quindi possibile inserire le annotazioni sotto forma di tag nella tabella

tag shots anche se in questo caso non tutte le informazioni sono perfetta-

mente compatibili; si perdono ad esempio quelle relative agli oggetti presenti

nelle annotazioni “pos”, ma per i nostri fini le informazioni memorizzate sono

sufficienti.

Page 32: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

Capitolo 5

Realizzazione del Crawler

5.1 Introduzione

L’inserimento di nuovi video, come si e detto, richiede la creazione di un

modulo software da inserire in Shiatsu. In questo capitolo verranno esposti

i problemi incontrati nella sua realizzazione e come tali problemi sono stati

risolti.

5.2 Divisione del Lavoro

Dopo aver constatato la lunghezza eccessiva del processo di inserimen-

to, si e deciso di utilizzare uno strumento Java chiamato SwingWorker che

permette di spostare il carico di lavoro su un nuovo Thread, in modo da

lasciare il programma principale in esecuzione senza bloccarlo. La classe che

implementa “IImportGui.java” deve occuparsi di configurare il “Worker” e di

mantenere il dialogo con esso. Il protagonista principale del lavoro di inse-

rimento sono le classi “IWorkHandler.java” che estendono SwingWorker. In

questo lavoro di tesi si sono realizzate 3 implementazioni, ognuna con scopi

diversi: “DefaultWorkHandler.java”, “TrecImporterWorkHandler” e “Perso-

nalizedWorkHandler”. Dopo essere stata configurata e avviata da “Import-

29

Page 33: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

30 5. Realizzazione del Crawler

Gui.java”, questa classe genera un nuovo Thread e comincia il lavoro sul file.

I vari WorkHandler hanno a disposizione svariate altre classi ognuna con un

compito specifico da svolgere all’interno del lavoro di inserimento.

5.3 Struttura del Crawler

Si e deciso di strutturare il codice seguendo il piu possibile il “Single

Responsability Pattern”, ovvero di dare ad ogni classe uno ed un solo compito

da svolgere. Questo garantisce un’alta riusabilita del codice. Inoltre, si e

fatto largo uso di Interfacce per consentire una piu agevole estensione delle

opzioni di taglio. In questo lavoro di tesi e presente tipicamente una sola

implementazione di ciascuna Interfaccia, ma in alcuni casi sono gia presenti

piu implementazioni. Tra queste e possibile scegliere la piu adeguata al dato

da inserire. Di seguito lo schema UML del codice.

Page 34: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

5.3 Struttura del Crawler 31

Figura 5.1: L’UML del Crawler

5.3.1 InsertionDao

Si e scelto di adoperare il pattern “Dao” per interfacciasi al database.

All’interno della classe “InsertionDao.java” sono implementati metodi che,

sfruttando query JDBC[7], inseriscono, estraggono e manipolano i dati per

facilitarne la fruizione.

Page 35: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

32 5. Realizzazione del Crawler

5.3.2 Interfaccia Grafica

AcquireDataGui

Dal momento in cui l’utente sceglie di inserire un nuovo video nella fine-

stra principale di Shiatsu, sara istanziata la classeAcquireDataGui.java che,

tramite un’interfaccia grafica, chiedera all’utente che tipo di inserimento vuo-

le effettuare. In questo ambito di fatto si seleziona quale “WorkHandler.java”

istanziare. Una volta selezionato il modo dal menu a tendina e premuto il

tasto Next AcquireDataGui.java istanziera “ImportGui.java”per il passaggio

successivo.

ImportGui

“ImportGui.java” ha il compito di configurare e comunicare con il Wor-

kHandler. La struttura delle classi in questa sezione e complessa. Infatti

avendo previsto che ogni WorkHandler possa avere una configurazione diver-

sa e diverse necessita, si e deciso di creare una struttura per la configurazione

dinamica dei WorkHandler. Allo stesso tempo questo serve per la richiesta

dinamica di input. Di seguito si puo vedere la sequenza degli eventi:

Page 36: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

5.3 Struttura del Crawler 33

Figura 5.2: La sequenza degli eventi per la configurazione

Ogni WorkHandler deve avere cablato nel codice un ArrayList di “ICon-

fElement” cioe ConfigurationElement, formato da un nome, un tipo e un

tooltip. Per ogni elemento l’interfaccia grafica fa una richiesta all’utente,

andando poi a riempire un array di IConfElementResponse. Quindi l’array

di risposta viene utilizzato dal WorkHandler per eseguire la configurazione.

Page 37: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

34 5. Realizzazione del Crawler

Per ora e possibile inserire files, cartelle o stringhe in quanto non risulta-

va necessario inserire altro, tuttavia anche queste opzioni sono facilmente

estendibili.

Figura 5.3: Esempio di Requisito: selezione di un file

5.3.3 WorkHandler

Configurazione e controlli iniziali

Prendendo l’array di ritorno IConfElementResponse, ciascun WorkHand-

ler si configura secondo le proprie esigenze, inoltre legge dal file di configu-

razione Shiatsu.xml per ottenere i dati di connessione al database e istan-

zia l’InsertionDao, la classe responsabile di dialogare col database. Se la

configurazione e andata a buon fine WorkHandler restituisce true ad “Im-

portGui.java” che a sua volta lo avvia per il lavoro vero e proprio. Essendo

WorkHandler un’estenzione di SwingWorker, quando “ImportGui.java” lan-

cia il metodo “execute()”, viene generato un nuovo Thread dove proseguira

Page 38: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

5.3 Struttura del Crawler 35

l’esecuzione. Appena avviato il WorkHanlder chiedera all’InsertionDao di di-

sabilitare l’autocommit e di generare un savepoint che WorkHandler salvera.

In questo modo qualsiasi modifica apportata al database non sara definitiva

finche non verra dato il commit. Questo facilita la pulizia dei dati incompleti

in caso di errori o interruzioni da parte dell’utente. All’inizio del lavoro, il

WorkHandler controlla che il file da elaborare non sia presente nella cartella

DB VIDEO/data/sisap ne nel database. Se trova un match viene proposto

all’utente un cambio di nome che viene operato dallo stesso WorkHandler.

Tutte le operazioni atte alla fine del taglio vengono gestite da questa classe,

che delega a chi di dovere per le singole operazioni ma raccoglie sempre i

risultati e opera i controlli.

Figura 5.4: Un esempio di come si presenta l’interfaccia durante l’inserimento

di un file

Page 39: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

36 5. Realizzazione del Crawler

Calcolo del checksum: ChecksumUtils.java

Per verificare che uno stesso video non venga inserito piu volte se ne cal-

cola il checksum, si controlla che non esista in database un video con lo stesso

valore. Questa estrazione viene attuata dalla classe ChecksumUtils.java me-

diante l’algoritmo MD5[14] che sta per Message Digest algorithm 5; essendo

molto veloce, MD5 e perfetto per le nostre semplici esigenze.

Conversione in formato standard Shiatsu: VideoConvert.java

La prima fase nella lavorazione vera e propria del video deve consistere

nella sua conversione, questo perche il framework JMF ha una scarsissima

compatibilita, specialmente per il flusso video in scrittura. Inoltre nella fase

di studio di questo sistema, si e scoperto che era molto difficile far eseguire

il Detector di cambi di scena con successo. Questo perche spesso i file video

compressi non contengono tutti i frame, ma piuttosto un keyframe ogni n

frame, e gli altri n - 1 sono di tipo differenziale o predittivo o simili. Dato

che la logica del nostro detector vuole confrontare ogni frame col successivo,

emergono svariati problemi. Per convertire il video si e optato per un tool

esterno sebbene invocato dal Java. La scelta e ricaduta su “ffmpeg”:

“FFmpeg is a complete, cross-platform solution to record, convert

and stream audio and video.” [15]

Questo tool permette di lavorare sui video da linea di comando e supporta

tutti i principali formati. Questo era quanto serviva. Dopo svariati tentativi

per trovare l’ottimale rapporto qualita/compressione e stata creata la classe

VideoConvert.java in cui si costruisce di volta in volta il comando da far

eseguire al command di Windows che invoca a sua volta “ffmpeg”.

Page 40: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

5.3 Struttura del Crawler 37

Uno dei requisiti necessari per il suo utilizzo e quello di conoscere con la

posizione del file “ffmpeg.exe”. Questo path deve essere specificato dall’uten-

te, alla seconda riga del file VideoProperties.txt. VideoConvert costruisce ed

invoca il comando:

Una volta eseguito il comando e atteso il completamento della conversione,

il software controlla che il file sia stato correttamente creato e convertito. Di

seguito estrae il checksum del nuovo file e verifica nuovamente la sua presenza

in database. Se questo processo e stato eseguito correttamente si inserisce il

nuovo video in database nella tabella videos.

5.3.4 Individuazione dei punti di taglio: Threshold

Al termine della preparazione si ha a disposizione un video che e possibile

analizzare e modificare: e il momento di trovare i punti di taglio. All’inizio

del lavoro di tesi era presente una classe chiamata TresholdDetector che in

teoria avrebbe dovuto elaborare il video per trovare i cutpoints; sfortunata-

mente questa classe presentava gravi bug ed in definitiva non funzionava. Il

tesista Giovanni Concas, avendo anch’egli bisogno della funzione di Treshold,

si era adoperato per il fix dei bug, ma nonostante il software sembrasse fun-

zionare adeguatamente, i punti di taglio che individuava erano errati. Questo

risultava evidente non appena si andava a riprodurre il video manualmente;

si notava che i punti di taglio indicati erano in ritardo di qualche secondo

rispetto all’effettivo cambio di scena. Tale comportamento indicava che il si-

stema individuava effettivamente il cambio di scena, tuttavia erano presenti

problemi relativi alla gestione del flusso video. Inoltre, se si analizzava lo

stesso filmato ma in formato video “.avi” non compresso, il software funzio-

nava perfettamente. Dopo varie ricerche e test si e giunti alla conclusione che

Page 41: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

38 5. Realizzazione del Crawler

il problema era nella compressione dei video: “MPEG-2”. In quel momen-

to si e deciso di convertire ogni video da importare in Shiatsu. Il formato

scelto con molta attenzione e .mov, con compressione MJPEG. Tale configu-

razione garantiva massima compatibilita e allo stesso tempo dava una certa

compressione, seppur non molto alta, risolvendo in definitiva il problema del-

l’individuazione dei punti di taglio. Il Tresholding e stato poi ristrutturato

dal tesista Alessandro Colace che si e adoperato per offrire flessibilita al co-

dice. Il processo e davvero molto lungo, sui video testati dura mediamente

molto piu di un’ora. Alla fine puo restituire l’elenco dei punti di taglio in

frame o nanosecondi, includendo lo 0 e la fine del video. Inoltre, genera i file

immagine detti keyframe secondo varie modalita e li inserisce nella cartella

adatta.

5.3.5 Taglio del Video ed estrazione delle features: Cut-

TaskWorker

Il Detector di tagli esegue l’analisi del video e restituisce unVector<Long>

di punti di taglio che viene subito convertito in un ArrayList<Long>. Wor-

kHandler istanzia il giusto CutWorker, una delle classi che implementa ICut-

TaskWorker, e gli passa il necessario per l’esecuzione. Nell’importazione di

default viene istanziato il CutTaskWorker che ha bisogno di:

il file da tagliare

il path della cartella sisap

un’istanza del InsertionDao

un’istanza dell’interfaccia con l’utente

i punti di taglio

Una volta avviato il CutTaskWorker istanziera SuperCut.java che e la classe

che di fatto taglia il video, generando da esso un nuovo video della lunghezza

Page 42: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

5.3 Struttura del Crawler 39

voluta e comincera il ciclo di tagli. Ad ogni ciclo si deve ricorrere a Super-

Cut.java per tagliare il video, successivamente, inserendolo in database verra

generato un ID che deve essere raccolto ed utilizzato per l’inserimento delle

features. A questo punto del lavoro, esplorando la cartella dei Keyframes

vengono letti quelli appartenenti allo Shot appena inserito in DB; di ogni

immagine se ne calcolano le features utilizzando la libreria Windsurf, si prov-

vede poi ad inserire anche queste in database, sempre stampando a video gli

ID delle immagini ed il ciclo in corso. Nel momento in cui Windsurf si trova

ad elaborare un’immagine totalmente nera, generera un’eccezione. questo a

causa della sua politica di estrazione features.[16] Anche questa operazione

e abbastanza onerosa in termini di tempo seppur neanche vicina al Treshol-

ding, ma riciclando sempre le risorse e possibile portarla a termine anche

con file piuttosto pesanti. E’ possibile, soprattutto su macchine cariche ed in

ogni caso piuttosto raramente, che, durante l’operazione di “Prefetching” del

processor, il SuperCut.java vada in deadlock. Purtroppo non e stato possibi-

le evitare tale inconveniente dal momento che tutto il processo viene gestito

dalla JMF.

5.3.6 Conclusione del lavoro

Finiti i cicli di taglio il controllo torna al WorkHandler, che si occupa di

dare il commit al database, in modo che tutte le aggiunte apportate finora

siano confermate. Infine, chiude tutte le risorse aperte e stampa a video la

conclusione. E’ importante cercare di chiudere tutte le risorse aperte perche

secondo le politiche di SwingWorker il Thread, nonostante abbia finito di

eseguire, rimane aperto in attesa di un altro lavoro da eseguire, quindi e

importante lasciarlo il piu scarico possibile.

Page 43: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

40 5. Realizzazione del Crawler

5.4 Implementazioni aggiuntive

5.4.1 WorkHandler alternativi

Le classi descritte fin’ora descrivono il comportamento del DefaultWor-

kHandler, cioe il normale processo di inserimento di un nuovo video in Shia-

tsu. Nel processo di lavorazione, col fine di popolare diversi database, e stato

implementato anche il TrecImporterWorkHandler: una versione modifica-

ta ed adattata del DefaultWorkHandler utilizzata per popolare il database

“trecvid benchmark”. Questo WorkHalder ha un setup piu specifico estrae

moltissime informazione dai file contenenti i metadati come verra descritto

nella prossima sezione; esso non invoca CutTaskWorker, ma bensı il CutTre-

cWorker, una versione a sua volta modificata che non estrae le features dalle

immagini ma inserisce altre informazioni in DB.

5.5 File Reader

I metadati allegati a Trecvid sono inseriti in normali file, per importare i

dati da questi file si sono resi necessari script specifici per ogni file. Come per

il resto del lavoro si e cercato di rendere il tutto il piu estendibile possibile,

facendo uso di interfacce e classi astratte. Di seguito lo schema UML.

Page 44: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

5.5 File Reader 41

Come si puo vedere ogni classe File Reader eredita dalla classe astratta Gene-

ricFileReader e i file xml hanno un ulteriore supertipo GenericXMLReader.

Come e ovvio non e possibile generalizzare piu di tanto uno script che deve

essere specifico per un certo lavoro, quindi una volta realizzate queste classi

astratte si e passati all’implementazione degli script di lettura dei singoli file.

Collection.xml

Il file “collection.xml” e un elenco strutturato di caratteristiche di file

video. Viene letto da CollectionXMLReader.java tramite il quale e possibile

effettuare ricerche all’interno dei dati.

Page 45: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

42 5. Realizzazione del Crawler

Feature list.txt

Feature List.txt contiene un elenco di tutti i tipi di concetto che possono

essere presenti nei video. Ad ogni concetto (es. Sport) e associato un numero

ed una piccola descrizione. Leggendo questo file la classe ConceptReader.java

crea un ArrayList di Concept, classe creata appositamente per contenere un

singolo concept. In questo modo una volta letto il file ne siamo indipendenti.

Master Shot Record

La cartella Master Shot Record include un file per ogni video, in cui sono

indicati i punti di taglio esatti per quei file. La classe MastershotCutReader

si occupa di legger il file e generare un Vector di long contenente i punti di

taglio espressi in frame.

TrecTagHandler

La classe TrecTagHandler e adatta a contenere una singola annotazione.

Nella costruzione di un TrecTagHandler vanno specificati: il tipo di annota-

zione (pos, xml, tv07), il “Concept”, il keyframe a cui e riferita l’annotazione

e la presenza del concept nel frame. Quest’ultimo valore e specificato tramite

un int e puo presentarsi come:

0 il Concept non e presente.

1 il Concept e presente.

-1 null, non c’e certezza.

2+ sono presenti piu oggetti nel frame.

Page 46: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

5.6 Dati prodotti 43

Annotation Readers

Le classi AnnAnnotationReader.java, PosAnnotationReader.java e

tv07AnnotatioReader.java hanno lo scopo di leggere i file contenenti le an-

notazioni. Ciascuna di esser compila un ArrayList di “TrecTagHandler.

5.6 Dati prodotti

Una volta completato, testato e debuggato il crawler e stato possibile

utilizzarlo per popolare i database che si voleva creare. Sono stati prodotti

il database “trecvid benchmark” e “big data”, che unitamente al database

“tracvid shiatsu” prodotto da Alessandro Colace con questo stesso crawler

forniscono una piattaforma completa per il testing di Shiatsu. Di seguito

riportiamo un grafico che illustra la quantita di dati inclusa nei vari database

Figura 5.5: Un grafico che indica le righe presenti nel database originale ed

in big data

Page 47: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

44 5. Realizzazione del Crawler

Figura 5.6: Un grafico che indica il numero dei video presenti e la di-

mensione in GB rispettivamente di: shiatsu retrival, trecvid benchmark,

trecvid shiatsu, big data

Page 48: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

Capitolo 6

Conclusioni

L’obiettivo posto inizialmente, cioe la progettazione e la creazione di una

piattaforma di benchmark per Shiatsu, e stato pienamente raggiunto. Si

sono infatti creati 3 database per diversi scopi di testing. La creazione di

uno strato software per l’inserimento di ulteriori video permette il facile am-

pliamento dei database, anche di tipi diversi. Shiatsu adesso e pronto per

essere testato nella sua interezza ed in modo appropriato. Per quanto riguar-

da gli sviluppi futuri sarebbe conveniente, benche impegnativo, sostituire il

framework JMF. Quest’ultimo da troppe limitazioni e problemi, potrebbe

essere sostituito da qualche libreria piu moderna, compatibile ed efficiente,

come ad esempio Xuggle[17] o Jffmpeg[18]. In questo modo l’inserimento di

nuovi video sarebbe ancor piu efficiente e il volume occupato dal database

si ridurrebbe drasticamente grazie a compressioni piu efficaci. In futuro un

altro elemento da completare potrebbe essere quello relativo alla creazione di

un nuovo database partendo da dati Trecvid aggiornati e completi in modo

da ottenere una piattaforma di benchmark pienamente affidabile.

45

Page 49: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

46 6. Conclusioni

Page 50: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

Bibliografia

[1] SHIATSU: Semantic-Based Hierarchical Automatic Tagging of Vi-

deos by Segmentation using Cuts. Bartolini, Ilaria, Patella, Mar-

co e Romani, Corrado. 2010. Proceedings of the 3rd International

ACMMMWorkshop on Automated Information Extraction in Media

Production (AIEMPro10).

[2] The Java Media Framework API (JMF) enables audio, video and

other time-based media to be added to applications and applets built

on Java technology. This optional package, which can capture, play-

back, stream, and transcode multiple media formats, extends the

Java 2 Platform, Standard Edition (J2SE) for multimedia developers

by providing a powerful toolkit to develop scalable, cross-platform

technology.

[3] Windsurf: Region-Based Image Retrieval Using Wavelets. Ardiz-

zoni, Stefania, Bartolini,Ilaria e Patella, Marco. 1999. Pro-

ceedings of the 1st Workshop on Similarity Search (IWOSS 1999 -

DEXA 1999).

[4] “Progettazione e realizzazione di un tool per la segmentazione

automatica di collezioni video”. Alessandro Colace. 2013

[5] Giovanni Concas tesista specialistico per il progetto SHIATSU,

indirizzato allo sviluppo di un segmentatore video su dati audio.

[6] http://www.oracle.com/technetwork/java/javase/tech/index-jsp-

140239.html

47

Page 51: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

48 BIBLIOGRAFIA

[7] Java DB is Oracle’s supported distribution of the open sour-

ce Apache Derby database. Its ease of use, standards complian-

ce, full feature set, and small footprint make it the ideal data-

base for Java developers. Java DB is written in the Java pro-

gramming language, providing write once, run anywhere portabi-

lity. It can be embedded in Java applications, requiring zero ad-

ministration by the developer or user. It can also be used in

client server mode. Java DB is fully transactional and provides a

standard SQL interface as well as a JDBC 4.1 compliant driver.

http://www.oracle.com/technetwork/java/javase/jdbc/index.html

[8] Progettazione e realizzazione di una interfaccia grafica per l’interro-

gazione di collezioni video, Emanuele Casadio, 2010/2011

[9] @inproceedings2012trecvidover, author= Paul Over and George

Awad and Martial Michel and Jonathan Fiscus and Greg San-

ders and Barbara Shaw and Wessel Kraaij and Alan F. Smea-

ton and Georges Queenot, title = TRECVID 2012 – An

Overview of the Goals, Tasks, Data, Evaluation Mechanisms

and Metrics, booktitle = Proceedings of TRECVID 2012, key-

words=TRECVid, Video Retrieval, Multimedia Retrieval, IR Eva-

luation, year = 2012, organization = NIST, USA, pdf=http://www-

nlpir.nist.gov/projects/tvpubs/tv12.papers/tv12overview.pdf,

[10] Stephane Ayache and Georges Quenot, “Video Corpus Annotation

using Active Learning”, 30th European Conference on Information

Retrieval (ECIR’08), Glasgow, Scotland, 30th March - 3rd April,

2008 URL: http://mrim.imag.fr/georges.quenot/articles/ecir08.pdf

[11] Automatic shot boundary detection by Christian Petersohn,

Fraunhofer HHI / TU Berlin.

[12] http://trec.nist.gov/data/qrels eng/

[13] definition on http://en.wikipedia.org/wiki/Large Scale Concept Ontology for Multimedia

[14] http://it.wikipedia.org/wiki/MD5 . http://tools.ietf.org/html/rfc1321

Page 52: Progettazione e realizzazione di un benchmark di test per ... · Struttura Shiatsu 2.1 Introduzione SHIATSU e un sistema capace di e ettuare interrogazioni e cienti su collezioni

BIBLIOGRAFIA 49

[15] FFmpeg is a complete, cross-platform solution to record, convert and

stream audio and video. http://www.ffmpeg.org/

[16] Effcient and Effective Similarity Search in Image Databases.

Bartolini, Ilaria. pag.(26-27)

[17] A free open-source library for Java developers to uncompress,

manipulate, and compress recorded or live video in real time.

http://www.xuggle.com/

[18] The Java Media Framework is the module that handles audio and

video files in Java. It is used by many programs to integrate music

and movies into a user interface. Included with the programming

tools is a simple media player called Java Media Studio (JMStudio).

http://jffmpeg.sourceforge.net/