Slide ACTIVE - Digital Asset Management - Collana Seminari CRS4 2015
-
Upload
crs4-research-center-in-sardinia -
Category
Technology
-
view
80 -
download
1
Transcript of Slide ACTIVE - Digital Asset Management - Collana Seminari CRS4 2015
CRS4 - Information Society - Digital Media Applications
Progetto Cluster Top-Down ACTIVE
Indicizzazione di contenuti audiovisuali mediante riconoscimento dei volti e degli speaker
13 Maggio 2015 - ore 15.00
Aula Magna IngegneriaVia Marengo, 09124 Cagliari
1
CRS4 - Information Society - Digital Media Applications
La catalogazione dei contenuti
Maurizio Agelli
2
CRS4 - Information Society - Digital Media Applications
introduzione
- 880 miliardi di foto nel 2014 (fonte Yahoo)
- 300 ore di video vanno su YouTube ogni minuto (fonte YouTube)
→ valore economico e culturale dei contenuti digitali
3
Boulevard du Temple, Louis Daguerre, 1838
digital asset:→ "any form of content and/or media including the right to use it" (van Niekerk, A.J. 2006)
→ file + metadata
CRS4 - Information Society - Digital Media Applications
metadati
(1) Information about data.(2) "Structured encoded data that describe characteristics of information-bearing entities
to aid in the identification, discovery, assessment, and management of the described entities" (source American Library Association)
4
IPTC-IIM
EXIFDublin Core
Mpeg-7PLUS
EBU-Core
TV AnytimeCreative Commons
→ standard aperto, creato da Adobe, divenuto standard ISO nel 2012
→ DATA MODEL (XML/RDF) + SERIALIZATION MODEL + storage in file
→ CORE PROPERTIES (namespaces)
→ estendibile (XMP Extensions)
→ garantisce l'interoperabilità dei metadati tra diverse applicazioni
XMP
Mpeg-21....
CRS4 - Information Society - Digital Media Applications
la gestione degli asset digitali
ARCHIVIO
CATALOGO
STRUMENTI
METODI
Conservazione degli asset digitali
Classificazione, search, gestione dei metadati
Ingestion, backup, editing, annotation, feature extraction, transcoding, export, ...
File naming, formati, organizzazione del catalogo, workflow, best practices, backup policies, ...
5
DAM→ Digital Asset Management→ Digital Asset Manager
CRS4 - Information Society - Digital Media Applications
Scenario 1: produzione video
6
Capture Ingestion Working Export
Archive
Storage Area Network (SAN)
Workstation dedicate (ingestion, color correction, editing, visual effects, transcoding, grafica, mixaggio e mastering audio) + Server (rendering)
CRS4 - Information Society - Digital Media Applications
Scenario 2: digitalizzazione di archivi audiovisivi
7
Capture Ingestion Working Export
Archive
Network Attached Storage (NAS)
Digital Restoration
Film scanners, image scanners,A/D converters,players, ...
LTO streamer
DVDPhysicalRestoration
Digital Library
CRS4 - Information Society - Digital Media Applications
Scenario 3: produzione fotografica
8
Capture Ingestion Working Export
Archive / Catalog
Digital cameras
Adobe InDesign
Online photo agency
Produzione editoriale
Singola workstation con Photoshop (+ Bridge) oppureSingola workstation con Lightroom (+ Photoshop)
CRS4 - Information Society - Digital Media Applications
Alcune attività sulla catalogazione dei contenutisvolte al CRS4
9
CRS4 - Information Society - Digital Media Applications
NotreDAM
10
→ web-based→ open source (GPLv3)→ gestisce immagini, video, testi e audio, in vari formati→ il catalogo può modellare oggetti del mondo reale e metterli in relazione con gli asset digitali
utilizzato da US Public Broadcasting Service (Ken Burns America Project,www.pbs.org/kenburns/)
CRS4 - Information Society - Digital Media Applications
ACTIVE
● finanziato dal Programma Azioni Cluster Top-Down di Sardegna Ricerche (fondi PO-FESR 2007-2013)
● obiettivo: realizzare una piattaforma di catalogazione intelligente mirata a valorizzare gli archivi audiovisuali di imprese che operano nell’industria dei contenuti digitali→ algoritmi e tecniche di riconoscimento dei volti e degli speaker→ piattaforma di catalogazione con funzionalità di base (ACTIVE Core)→ espandibile mediante plug-in e web tool esterni→ il software sarà rilasciato su licenza MIT
● maggiori informazioni su: http://active.crs4.it
11
CRS4 - Information Society - Digital Media Applications
Riferimenti e approfondimentiAdobe XMP specifications: www.adobe.com/devnet/xmp.html
IPTC Information Interchange Model (IIM): https://iptc.org/standards/iim/
JEITA CP-3451, EXIF version 2.2, www.kodak.com/global/plugins/acrobat/en/service/digCam/exifStandard2.pdf
Metadata Working Group Specifications: www.metadataworkinggroup.com/specs/
Picture Licensing Universal System (PLUS): www.useplus.com/
ISO/IEC 15938-3 - Mpeg-7 Visual
ISO/IEC 15938-4 - Mpeg-7 Audio
ISO/IEC 15938-5 - Mpeg-7 Multimedia Description Scheme
UPDIG Photographers Guidelines v4.0: www.updig.org/pdfs/updig_photographers_guidelines_v40.pdf
Patricia Russotti and Richard Anderson, Digital Photography best practices and workflow handbook, Focal Press
Peter Krogh, The DAM Book 2nd edition, O'Reilly
Maurizio Agelli, Maria Laura Clemente, Mauro Del Rio, Daniela Ghironi, Orlando Murru and Fabrizio Solinas, CRS4 - NotreDAM, a multi-user, web based Digital Asset Management platform - TPDL 2011 Conference on Theory and Practice of Digital Libraries, Berlin
ACTIVE project documentation: http://active.crs4.it/docs
NotreDAM web site: www.notredam.org
12
CRS4 - Information Society - Digital Media Applications
Algoritmi e tecniche di face detection / tracking / recognition
Maurizio Pintus
13
CRS4 - Information Society - Digital Media Applications
I componenti base del sistema di indicizzazione visuale
14
Video in ingresso
Video indicizzato
Face model
Face detection
Face alignment
Face tracking
Face recognition
CRS4 - Information Society - Digital Media Applications
Face detection: l’algoritmo di Viola-Jones (1)
16
● È stato introdotto da Paul Viola e Michael Jones nel 2001
● Si basa su modelli che vengono creati a partire da un training set di immagini:○ Facce
○ Non facce
CRS4 - Information Society - Digital Media Applications
Face detection: l’algoritmo di Viola-Jones (2)
17
● Viene usata una cascata di classificatori, ciascuno basato su poche feature
● Ciascun classificatore viene calibrato, usando un validation set, in modo da rilevare tutte le facce, con un 50 % di falsi positivi
● Per la creazione del modello, i classificatori utilizzano gli esempi che hanno superato gli stage precedenti
CRS4 - Information Society - Digital Media Applications
Face detection: l’algoritmo di Viola-Jones (3)
18
● Una finestra scorrevole scansiona l'immagine da analizzare alla ricerca di regioni somiglianti ai modelli○ Si eseguono diverse scansioni, partendo da una dimensione minima
ed ingrandendo ogni volta la finestra
● Una regione analizzata viene scartata appena un classificatore nella catena da esito negativo
● Viene rilevata una faccia solo se tutti i classificatori danno esito positivo
CRS4 - Information Society - Digital Media Applications
Face detection: l’algoritmo di Viola-Jones (4)
19
● Le feature utilizzate sono costituite da differenze tra somme di pixel in due o più regioni rettangolari (Haar features)
Two-rectangle feature Two-rectangle feature Three-rectangle feature Four-rectangle feature
CRS4 - Information Society - Digital Media Applications
Face detection: l’algoritmo di Viola-Jones (5)
20
● Per la selezione delle feature ed il training dei classificatori viene usata una variante del metodo AdaBoost
● Le prime feature selezionate riflettono due semplici proprietà delle facce:
CRS4 - Information Society - Digital Media Applications
Face detection: l’algoritmo di Viola-Jones (6)
21
● Per ogni faccia ci saranno di solito tanti rilevamenti, alla fine i bounding box sovrapposti vengono uniti
CRS4 - Information Society - Digital Media Applications
Face detection: risultati
22
● Test effettuati su 300 fotogrammi estratti da trasmissioni televisive, con facce in diverse angolazioni
● Sono stati ottenuti una precision del 95,62 % ed un recall del 62,97 %
precision = n° facce correttamente rilevate
n° totale facce rilevate recall =
n° facce correttamente rilevate
n° totale facce presenti
CRS4 - Information Society - Digital Media Applications
Face tracking: l’algoritmo CAMSHIFT (1)
● CAMSHIFT sta per Continuously Adaptive Mean Shift● È stato introdotto da Gary R. Bradski nel 1998,
modificando l’algoritmo mean shift introdotto da Keinosuke Fukunaga nel 1990
● Viene utilizzato lo spazio di colore Hue Saturation Value (HSV), ignorando i pixel con valori molto bassi di S e V e quelli con valori molto alti di V
24
CRS4 - Information Society - Digital Media Applications
Face tracking: l’algoritmo CAMSHIFT (2)
I passi dell’algoritmo Mean Shift:1. Scegliere dimensione e posizione iniziali della finestra2. Calcolare il centroide (mean location) della distribuzione
di probabilità nella finestra3. Centrare la finestra nel centroide4. Ripetere i passi 2 e 3 fino alla convergenza (o fino a che
lo spostamento del centroide è minore di una soglia)
25
CRS4 - Information Society - Digital Media Applications
● Per una distribuzione di probabilità discreta 2D abbiamo:
Face tracking: l’algoritmo CAMSHIFT (3)
26
● Le coordinate del centroide sono quindi:
CRS4 - Information Society - Digital Media Applications
Face tracking: l’algoritmo CAMSHIFT (4)
I passi dell’algoritmo CAMSHIFT:1. Scegliere dimensione e posizione iniziali della finestra2. Calcolare la nuova posizione della finestra usando
Mean Shift3. Impostare la dimensione della finestra a 4. Ripetere i passi 2 e 3 fino alla convergenza (lo
spostamento del centroide è minore di una soglia)
27
CRS4 - Information Society - Digital Media Applications
Face tracking: l’algoritmo CAMSHIFT (5)
● Nel face tracking la distribuzione di probabilità è la retroproiezione nel nuovo fotogramma dell’istogramma del canale H nel bounding box di una face detection
28
CRS4 - Information Society - Digital Media Applications
Face alignment
29
● Serve ad allineare le feature facciali
● Viene eseguito a partire dalla posizione degli occhi
● È importante per l’accuratezza della face recognition
CRS4 - Information Society - Digital Media Applications
Face alignment: parametri
30
x offset x offset
y offset
CRS4 - Information Society - Digital Media Applications
Face recognition: LBP (1)
32
● L’operatore Local Binary Pattern (LBP) è stato introdotto da Timo Ojala nel 1996
● Il primo utilizzo degli LBP per la face recognition risale a Timo Ahonen, nel 2004
● I metodi basati su LBP sono:○ Robusti alle occlusioni ed alle variazioni di luminosità
○ Efficienti dal punto di vista computazionale
CRS4 - Information Society - Digital Media Applications
Face recognition: LBP (2)
33
● Ogni pixel dell’immagine viene etichettato con un numero calcolato da un’operazione di soglia su pixel vicini
CRS4 - Information Society - Digital Media Applications
Face recognition: LBP (3)
● Un operatore LBP è rappresentato dalla notazione LBPP,R , con P numero di punti di campionamento su un cerchio di raggio R.
34
LBP8,2
CRS4 - Information Society - Digital Media Applications
Face recognition: LBP (4)
35
● L’immagine viene suddivisa in una griglia c x r ● Si calcola l’istogramma dei pattern LBP per ogni cella
della griglia e se ne effettua la concatenazione
CRS4 - Information Society - Digital Media Applications
Face recognition: LBP (5)
36
● A ciascuna cella può essere associato un peso diverso (LBP pesato)
● Il confronto tra istogrammi calcolati sulla faccia da riconoscere S ed istogrammi calcolati su un face model M viene effettuato attraverso la distanza χ²:
CRS4 - Information Society - Digital Media Applications
Face recognition: risultati (1)
37
● Test della sola face recognition, effettuati sul dataset AT&T, costituito da 40 persone con 10 immagini ciascuna
● Usato LBP8,1 con griglia 4 x 4
recognition rate = n° facce riconosciute
n° totale facce
CRS4 - Information Society - Digital Media Applications
Face recognition: risultati (3)
39
● Test di face detection, alignment e recognition, effettuati su fotogrammi estratti da trasmissioni televisive
● Sono state usate nel training set 12 immagini e nel test set 1 immagine per persona
● Usato LBP8,1
CRS4 - Information Society - Digital Media Applications
Il sistema di indicizzazione visuale completo
41
Face detection, tracking
ed alignment
Video annotato
People clustering
Databasepersone
Shot detection
Updatedel
database
Videoin
ingresso
Riduzione complessità
People recognition
Annotazione bulk
CRS4 - Information Society - Digital Media Applications
Riduzione complessità
42
● Permette una diminuzione delle risorse (tempo di elaborazione, memoria, spazio su disco) necessarie per l’analisi
● Non dovrebbe inficiare le prestazioni degli algoritmi
5 fotogrammi al secondo
CRS4 - Information Society - Digital Media Applications
Shot detection
● Utilizziamo la differenza tra istogrammi HSV in fotogrammi consecutivi
● Si utilizza una finestra scorrevole
● Si ha un cambio di shot se il campione centrale è maggiore di una soglia
43
CRS4 - Information Society - Digital Media Applications
People clustering (1)
44
Persona 1
Persona 2
Persona 3
CRS4 - Information Society - Digital Media Applications
People clustering (3)
● Il face tracking permette di ottenere N face track● Si ha una scansione sequenziale di questi face track● Due face track vengono uniti se:
● Oppure se:
46
CRS4 - Information Society - Digital Media Applications
People recognition: caption recognition (1)
47
RisultatiCaption
extraction
Dizionario tag
Fotogramma OCR Tag matching
CRS4 - Information Society - Digital Media Applications
People recognition: caption recognition (2)
48
Giacomo Mameli
CRS4 - Information Society - Digital Media Applications
People recognition: risultati
49
● Test effettuati su 798 fotogrammi con caption estratti da trasmissioni televisive, con 27 persone diverse
● Con la face recognition:○ Face model di 80 persone
○ Recognition rate medio del 51, 44 %
● Con la caption recognition:○ Dizionario di 86 tag
○ Recognition rate medio del 93,25 %
CRS4 - Information Society - Digital Media Applications
Bulk annotation (1)
50
TagPeople
recognition
Databasepersone
Riconosciuto?
Cluster di
face track
Sì
Selezione keyframe
Annotazione keyframe da parte
dell’utente
No
CRS4 - Information Society - Digital Media Applications
Sconosciuto
SconosciutoSconosciuto
Bulk annotation (2)
51
Giacomo Mameli
Mario Leoni
Giacomo Mameli Paolo Fadda Michele Giannotta
Sconosciuto Sconosciuto Sconosciuto
CRS4 - Information Society - Digital Media Applications
People clustering: risultati (1)
● Test effettuati su puntate intere di trasmissioni televisive● È stato utilizzato il sistema completo, senza la fase di
people recognition● I segmenti video dell’annotazione semi-automatica sono
stati confrontati con i segmenti video reali
52
CRS4 - Information Society - Digital Media Applications
People clustering: risultati (2)
● Trasmissione: “Facciamo i conti”
● Durata video: 54 minuti● Persone considerate: 6● Face track ottenuti: 186● Face track non associati
a facce: 3
53
CRS4 - Information Society - Digital Media Applications
People clustering: risultati (3)
● Trasmissione: “Monitor”● Durata video: 119 minuti● Persone considerate: 10● Face track ottenuti: 517● Face track non associati
a facce: 0
54
CRS4 - Information Society - Digital Media Applications
Riferimenti (1)● Szeliski R. (2010) Computer Vision: Algorithms and Applications. New York: Springer.
● Viola, P. & Jones. M. (2001) Rapid Object Detection using a Boosted Cascade of Simple Features. Conference on Computer Vision and Pattern Recognition. p.I-511- I-518.
● Lienhart R. et al. (2003) Empirical Analysis of Detection Cascades of Boosted Classifiers for Rapid Object Detection. DAGM Pattern Recognition Symp. p. 297-304.
● Freund Y, & Schapire, R. E. (1997) A Decision-Theoretic Generalization of On-Line Learning and an application to Boosting. Journal of computer and system sciences. 55 (SS971504). p. 119-139.
● Fukunaga, K. (1990). Introduction to Statistical Pattern Recognition. Boston: Academic Press.
● Bradski, G. R. (1998). Real Time Face and Object Tracking as a Component of a Perceptual User Interface. IEEE Workshop on Applications of Computer Vision. p. 214 - 219.
56
CRS4 - Information Society - Digital Media Applications
Riferimenti (2)● Ojala, T. et al. (1996). A comparative study of texture measures with classification based on
featured distributions. Pattern Recognition. 29 (1). p. 51-59.
● Ahonen, T. et al. (2004). Face Recognition with Local Binary Patterns. European Conference on Computer Vision. p.469–481.
● Ruiz-del-Solar et al. (2009) Recognition of Faces in Unconstrained Environments: A Comparative Study. EURASIP Journal on Advances in Signal Processing. 2009 (184617).
● Korshunov, P. and Ooi, W. T. (2011) Video quality for face detection, recognition and tracking. ACM Transactions on Multimedia Computing, Communications, and Applications. 7 (3). p. 14:1-14:21.
● The Database of Faces (2002) [Online] Available from: http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html.
57
CRS4 - Information Society - Digital Media Applications
Felice Colucci
58
Automatic Speaker Recognition
CRS4 - Information Society - Digital Media Applications
Automatic Speaker Recognition
•Chi?
•Cosa?
•Come?
•Quando?
59
CRS4 - Information Society - Digital Media Applications
Automatic Speaker Recognition - Enrollment
60
Creazione dei modelli
Estrazionefeature
Composizione modello
Database modelli
CRS4 - Information Society - Digital Media Applications
Automatic Speaker Recognition - Training
61
Creazione dei modelli
Estrazionefeature
Composizione modello
Database modelli
Creazione dei modelli
Estrazionefeature
Composizione modello
Confronto o Scoring
Decisione
CRS4 - Information Society - Digital Media Applications
Speaker Identification - Speaker Verification
● Differenti domande:○ di chi è questa voce?○ questa voce è di Matteo?
● Differenti ambiti utilizzo
62
CRS4 - Information Society - Digital Media Applications
Estrazione delle feature
● Non esiste una feature sufficientemente significativa da caratterizzare da sola un parlante
● Caratteristiche:○ Uniche,○ invarianti,○ facilmente misurabile
63
CRS4 - Information Society - Digital Media Applications
MelFrequencyCepstrumCoefficient
● Windowing● Trasformata di Fourier● Applicazione della scala MEL● Logaritmo per ciascuna frequenza● Trasformata discreta del coseno
64
Vettore di feature
CRS4 - Information Society - Digital Media Applications
MelFrequencyCepstrumCoefficient
M(f)=1125ln(1+f/700)
65
CRS4 - Information Society - Digital Media Applications
DiscreteCosineTransform
Simile ad una DFT ma utilizza soltanto numeri reali
66
CRS4 - Information Society - Digital Media Applications
Formanti
● Frequenze naturali di risonanza del tratto vocalico● Ogni vocale è caratterizzata da frequenze di risonanza:
denominate prima formante (o F1), seconda formante (o F2), terza formante (o F3), ecc.
● Le formanti sono determinate dalla configurazione del tratto vocalico.○ Frequenze formantiche variano con la
configurazione della lingua, delle labbra e del velo
67
CRS4 - Information Society - Digital Media Applications
Formanti
concentrazione di energia in una banda frequenziale
timbro vocalico
F1-> bocca
F2-> lingua
68
CRS4 - Information Society - Digital Media Applications
Modelli e classificatori
● Scopo: assegnare un etichetta, un valore semantico, ad un dato segnale audio -> Identificazione
● definiscono delle regole decisionali nello spazio delle feature, che consente di riconoscere un dato segnale audio come appartenente ad uno specifico parlatore○ Forma compatta per rappresentare le informazioni ricavate nella fase
di feature extraction
● Capace di rappresentare nuovi dati
69
CRS4 - Information Society - Digital Media Applications
Modelli
● Template● NN - Nearest Neighbord● VQ - Vector Quantization● Reti Neurali● HMM - Hidden Markov Model● GMM – Gaussian Mixture Model● SVM – Support Vector Machine
70
CRS4 - Information Society - Digital Media Applications
GaussianMixtureModel
● modelli probabilistici formati dalla combinazione lineare di funzioni di distribuzione di tipo gaussiano:○ componenti della mistura
71
CRS4 - Information Society - Digital Media Applications
GaussianMixtureModel
La probabilità di osservare il campione x dato il modello :
x è un vettore di feature di dimensione D, ωi sono i pesi della mixture, M è il numero dei modelli e g(x|μi, Σi) la funzione che le caratterizza.
72
CRS4 - Information Society - Digital Media Applications
GaussianMixtureModel
Ciascun componente della mistura ha una forma del tipo
i matrice di covarianza
i media
73
CRS4 - Information Society - Digital Media Applications
Likelihood Ratio- funzione di verosimiglianza
● Supponiamo di avere un frammento audio Y:○ p1-> Il frammento audio è relativo ad un parlatore S○ p2-> Il frammento audio non è relativo ad un parlatore S
LR(Y)= p(Y|p1)/p(Y|p2)=ɸ
Dato un valore di cut off ɛ. Si ha che se: ɸ>ɛ accetto ipotesi p1ɸ<ɛ rifiuto ipotesi p1
74
CRS4 - Information Society - Digital Media Applications
Test● Video di circa 40 minuti.● Modello ricavato dall’audio del video● Test 24 tracce di un minuto dello stesso video.● Il database dei modelli era composto da circa 60 elementi
Con soglia 0.5 Senza sogliaNumbero TEST 24 24OK 19 22ERRATA 0 2UNKNOWN 5 -
75
Valore vero
Predizione vero positivo falso positivo
falso negativo vero negativo
CRS4 - Information Society - Digital Media Applications
Receiver Operating Charateristic
76
Valore di cut off
Valore vero
Predizione vero positivo=TP falso positivo=FP
falso negativo=FN vero negativo=TN
CRS4 - Information Society - Digital Media Applications
● Definizione: suddividere una traccia audio in parti omogenee○ silenzio○ musica○ differenti parlatori
Risultatomusica silenzio speaker 1 speaker 1silenzio speaker 2 musica speaker 1 silenzio
Diarization
77
musica silenzio
speaker 1
speaker 2
CRS4 - Information Society - Digital Media Applications
Diarization: applicazioni
● Cross show● Speaker Tracking
78
CRS4 - Information Society - Digital Media Applications
Diarization
● Processi○ Voice Activity Detection○ Speaker Change Detection○ Speaker Clustering
● Errori○ individuare un cambio di speaker laddove non sia presente○ non individuare un cambio di speaker
79
CRS4 - Information Society - Digital Media Applications
Risultati sperimentali
● Considerazioni● Audiolibri radio rai
○ 40 file della durata di circa 20 minuti ciascuno○ un solo parlatore○ db dei modelli composto da circa 50 modelli○ RISULTATO = 40 IDENTIFICAZIONI SU 40 TEST
80
CRS4 - Information Society - Digital Media Applications
Risultati sperimentali
70 file (50 durata 1 minuto, 10 durata < 30 sec, 10 durata > 2 minuti)Audio di qualità differenti (conferenze scaricate da youtube, ufficio, podcast radiofonici, trasmissioni TV)
81
Valore vero o atteso
TEST o predizione vero falso
positivo 60 0
negativo 10 0
sensibilità = 85 %specificità = 0 %
CRS4 - Information Society - Digital Media Applications
Risultati sperimentali
● Problemi nel processo di diarization in "Che tempo che fa"
● Efficace nei tratti continui > 5 sec● Sovrapposizioni vengono considerate un terzo parlatore
82
CRS4 - Information Society - Digital Media Applications
ReferenceKinnunen, Tomi; Li, Haizhou (1 January 2010). "An overview of text-independent speaker recognition: From features to supervectors" Speech Communication 52 (1): 12 40. doi:10.1016/j.specom.2009.08.009
Mohand Saïd Allili (2010) A short tutorial on Gaussian Mixture Models
Anguera (2010) Speaker diarization: A review of recent research
B. P. Bogert, M. J. R. Healy, and J. W. Tukey (2009) The quefrency analysis of time series for echoes: cepstrum, pseudo-autocovariance, cross-cepstrum, and saphe cracking". Proceedings of the Symposium on Time Series Analysis (M. Rosenblatt, Ed)
Campbell (2006) Computer Speech and Language
J.P. Campbell (1997) Speaker recognition: A tutorial. In Proceedings of the IEEE, volume 85, pages 1437–1462
Carol Y. Espy-Wilson (2005) A New Set of Features for Text-Independent Speaker Identification
83
CRS4 - Information Society - Digital Media Applications
ReferenceTom Fawcett (2006) An introduction to ROC analysis
Frank Dellaert (2002) The Expectation Maximization Algorithm
Douglas A. Reynolds (2002) An Overview of Automatic Speaker Recognition Technology
Furui (1990) Speaker-Dependent-Feature Extraction, Recognition and Processing Techniques
S. Furui. (1996) An overview of speaker recognition technology In Automatic Speech and
Speaker Recognition: Advanced Topics. Academic Publishers
Alexandre Majetniak (2011) Speaker recognition using universal background model
84
CRS4 - Information Society - Digital Media Applications
Reference
Reynolds (1992) A Gaussian Mixture Modeling Approach to Text-Independent Speaker Identification. PhD thesis, Georgia Institute of Technology
Reynolds, Rose (1995) Robust Text-Indipendent Speaker Identification Using Gaussian Mixture Speaker Models
A. Reynolds (1999) Gaussian Mixture Models
Ross, Prabhakar (2004) An introduction to biometric recognition
Garima Vyas, Barkha Kumari (2002) “Speaker Recognition System Based On MFCC and DCT”
85
CRS4 - Information Society - Digital Media Applications
Obiettivi del progetto ACTIVE
Realizzare una piattaforma di archiviazione di item digitali:● multi-utente / collaborativa● interfaccia web● modulare ➝ personalizzabile / estendibile● flessibile (contesto di utilizzo)● scalabile (multiprocessing)● licenza open source permissiva (MIT)
87
Funzionalità principali messe a disposizione:● ingestion / storage● transcoding - adaptation● metadata extraction● search and export
CRS4 - Information Society - Digital Media Applications
Architettura piattaforma ACTIVE
88
➔ Architettura a tre livelli➔ Pattern architetturale MVC (Model View Controller):
◆ GUI / web interface◆ business logic◆ data model / storage
➔ Maggiore indipendenza tra le componenti logiche!
CRS4 - Information Society - Digital Media Applications
Aspetti tecnologici - problematicheNecessario risolvere diversi problemi:● numero elevato di item● item di tipi differenti (PNG, MP4, MP3) ● item di grandi dimensioni
89
● storage delle risorse● scalabilità degli algoritmi
Item digitali
CRS4 - Information Society - Digital Media Applications
Generazione dei metadati
90
L’attività di catalogazione manuale degli item digitali risulta:● poco gratificante (ripetitiva e non creativa)● dispendiosa (item visualizzati e interpretati)● soggettiva (diverse interpretazioni)
DynamicTags
Automatizzare il processo di generazione dei metadati:● algoritmi di face extraction e speaker extraction
Per ogni item considerato si vuole estrarre e memorizzare:● una lista di metadati ad esso associati● informazioni temporali sulle persone che occorrono nell’item
○ inizio e durata dell’occorrenza (DynamicTag)● tag contenenti il bounding box dell’occorrenza rilevata
CRS4 - Information Society - Digital Media Applications
Generazione metadati - esempio
91
Data una collezione di item con le seguenti caratteristiche:● 7.000 video (6 video al giorno per 3 anni)● durata media di 3 ore● 10 persone distinte in ciascun video● ogni persona compare 30 volte un video
si ottiene un totale di 2,1 milioni di dynamic tags
estratti manualmente da un utente (10 sec per ogni tag) richiederebbero:21mln di secondi pari a circa 2 anni di lavoro!
CRS4 - Information Society - Digital Media Applications
Indicizzazione dei metadati
Indispensabile nelle grandi collezioni di item:● ricerca veloce degli item di interesse● organizzare gli item digitali● aumentare il contenuto informativo● esportare i metadati in formati standard
92
Diverse tipologie di dati (tag):● dati (titolo, autore, ...)● metadati (XMP, EXIF, ...)● keyword e dynamic tag
CRS4 - Information Society - Digital Media Applications
Indicizzazione - matrice binaria
Matrice binaria delle occorrenze:● notazione posizionale
○ righe item, colonne keyword● un bit per ogni occorrenza
○ 1 presente, 0 assente
Problemi:● matrice sparsa (prevalenza di zeri)● difficile gestione/ricerca delle occorrenze (bitwise)● dimensioni considerevoli se si indicizza del testo (300k lessemi)● facile aggiungere item, difficile aggiungere keyword
93
Pula Mare Sardegna
Item 1 0 0 1
Item 2 1 1 0
Item 3 0 1 1
CRS4 - Information Society - Digital Media Applications
Indicizzazione - DBMS
Utilizzare database relazionale per le coppie (keyword_id, item_id)➔ implementazioni efficienti di indici di tipo hash o B-tree➔ ampiamente utilizzati e supportati➔ ideali per gestire dati strutturati e tipizzati
Problemi:● necessario creare un indice per ogni campo● l’aggiornamento dell’indice è oneroso● ricerche composte non immediate● scalabilità limitata● licenze commerciali limitanti
94
CRS4 - Information Society - Digital Media Applications
Indicizzazione - liste invertite
Per ogni keyword_id una lista ordinata di item_idOperatori di manipolazione delle liste di item_id (AND, OR, NOT, ...)Costruzione incrementale dell’indiceAmpiamente utilizzate per indicizzare documenti testuali
95
keyword
23 25 96
item ID list
23 24
24 25 45
pula
mare
sardegna
CRS4 - Information Society - Digital Media Applications
Ricerca degli item lato utente
Nella ricerca full-text:● matching esatto tra query e keyword● sensibile a errori lessicali (typo)● prefix tree non supportato● nessuna gerarchia delle keyword● nessuna semantica delle keyword
96
1 3 9
80
data
4
crs
a
emFunzionalità ormai indispensabili:➔ ricerca inesatta (k-grammi)➔ ricerca parziale (alberi trie)
CRS4 - Information Society - Digital Media Applications
Interoperabilità - API RESTReST : Representational State Transfer➔ Stile architetturale per identificare risorse tramite URL➔ Non è legato al protocollo HTTP (standard de facto)
97
➔ Largo impiego delle API REST◆ Meno verboso, più semplice e intuitivo◆ Facilmente estensibile e uniforme ◆ JSON/XML per la serializzazione dei dati
CRS4 - Information Society - Digital Media Applications
Strumenti per l’estensione della piattaforma ACTIVE
98
Alessandro Sassu
CRS4 - Information Society - Digital Media Applications
Gli strumenti
● ACTIVE Plug-ins
● ACTIVE Tools
99
Active Tools
ACTIVE Core
API
ACTIVE Plug-in
CRS4 - Information Society - Digital Media Applications
ACTIVE Plug-in
● È un componente software utilizzato per personalizzare il comportamento di ACTIVE Core
● È costituito da:○ File di configurazione○ Plug-ins scripts
100
CRS4 - Information Society - Digital Media Applications
File di configurazione
● Riporta la descrizione delle caratteristiche del plugin e degli scripts ad esso associati
● Risiede nell’ACTIVE Core
101
CRS4 - Information Society - Digital Media Applications
Plug-in script
102
● Codice Python che implementa le funzionalità aggiuntive
● Può essere eseguito invocando l’Evento associato in maniera:○ Diretta: si specifica il nome dell’evento che si vuole scatenare○ Indiretta: si intercetta l’evento scatenato dall’interazione con l’API
REST (Action)
CRS4 - Information Society - Digital Media Applications
Esempio (3)
105
ACTIVE CORE
API
JOB PROCESSOR
APIVideo ItemCreated
Video Item POST
ExtractingVideo Duration...
POST PUT
UserInterface
CRS4 - Information Society - Digital Media Applications
ACTIVE Tools
Un ACTIVE Tool è un’applicazione web esterna che può interagire con l’ACTIVE Core
106
CRS4 - Information Society - Digital Media Applications
Scenario
107
CARICAMENTO DEI CONTENUTI
INDICIZZAZIONE DEI CONTENUTI RICERCA VISUALIZZAZIONE
DEI RISULTATI
CRS4 - Information Society - Digital Media Applications
ACTIVE Tools: Navigator e Summarizer
108
● Navigator○ Mostra le persone che compaiono in un determinato video
● Video Summarizer○ Mostra le sezioni dei video in cui compare una determinata persona
○ Aiuta ad esaminare i risultati della ricerca di un determinato volto/speaker in diversi video
CRS4 - Information Society - Digital Media Applications
Tecnologie
111
● Back - end ● Front - end
<video>
BROWSER MP4 WebM Ogg
Internet Explorer YES NO NO
Chrome YES YES YES
Firefox YES YES YES
Safari YES NO NO
Opera YES YES YES
CRS4 - Information Society - Digital Media Applications
HTTP Status: 206 Partial Content
Per visualizzare un video di grandi dimensioni è necessario che, alla richiesta del file da parte del client, il server sia in grado di inviare una risposta di tipo 206 Partial Content
112
REQUEST
RESPONSE
REQUEST
Range: bytes = 0-999
RESPONSE
Accept - Ranges: bytes
Content - Length: 1000
Content - Range:0-999 / 3980206 Partial Content
GET
CLIENT SERVER
CRS4 - Information Society - Digital Media Applications
Job Processor - Caratteristiche
● Definizione modulare dei job;● Esecuzione asincrona dei job;● Esecuzione parallela e distribuita su cluster;● Esecuzione basata su meccanismi di autorizzazione
dell’utente (token).
114
CRS4 - Information Society - Digital Media Applications
Job Processor - Architettura
115
RABBIT MQ
CELERY
SKELETON
JOB (plug-in scripts)
JOB MANAGER
CLUSTERMANAGER
CRS4 - Information Society - Digital Media Applications
Cluster Manager - Tecnologie (Celery)
● Gestione di code di task in modo asincrono basata sullo scambio di messaggi;
● Esecuzione concorrente dei task su uno o più processi dedicati (worker);
● Necessita di un message broker (RabbitMQ).
116
CRS4 - Information Society - Digital Media Applications
Cluster Manager - Tecnologie (RabbitMQ)
● Routing, buffering e persistenza dei messaggi;● Consente il clustering di più server RabbitMQ;
○ Single Logical Broker○ Resource mirroring
● Basato sul paradigma producer-consumer.
117
CRS4 - Information Society - Digital Media Applications
Job Manager
Il Job Manager gestisce code di job (una per ciascuno stato possibile).● Traccia lo stato dei job;● Parallelizza l’esecuzione dei job;● Esegue i job in modo asincrono; ● Mantiene i risultati dei job;● Espone una API REST.
119
Aborted
Running
Completed
Queued
CRS4 - Information Society - Digital Media Applications
Jobs 1
● Consentono l’incapsulamento del codice;● Consentono l’esecuzione asincrona (non bloccante),
parallela e distribuita del codice;● Estendono la classe astratta Job.
120
CRS4 - Information Society - Digital Media Applications
Jobs 2
● PlainJob;○ Eseguibili in locale in modo non distribuito.
● SkeletonJob.○ Eseguibili in parallelo e su cluster in modo distribuito;○ Basati sul framework Algorithmic Skeletons.
121
CRS4 - Information Society - Digital Media Applications
Algorithmic Skeletons
Def. : Gli Algorithmic Skeleton (aka Parallelism patterns) costituiscono un modello di programmazione parallela di alto livello per computazioni concorrenti e distribuite.
Caratteristiche:● favoriscono uno stile di programmazione strutturata● celano la complessità delle applicazioni parallele e distribuite● principio di composizionalità basato su Skeleton Pattern
122
CRS4 - Information Society - Digital Media Applications
Skeleton Patterns - Sequential● Incapsulano il codice utente;● Garantiscono il principio di composizionalità;● Distribuiscono l’esecuzione (in un cluster Celery);● Restituiscono un valore (eventualmente nullo).
Gli skeleton Pattern Sequential costituiscono sempre i nodi foglia di uno skeleton tree!
def foo(val):val++...return val
foo
123
CRS4 - Information Society - Digital Media Applications
Skeleton Patterns - Pipeline● Computazione per stadi (sequenze di skeleton -
stage);● Input fornito al primo stadio;● Output collezionato all’ultimo stadio;● L’output di uno stadio costituisce l’input dello stadio
successivo.
foo barSemantic: [Pipeline<foo, bar>, val] → bar(foo(val))
pipeLa valutazione degli stadi costituisce un processo bloccante (sincronizzazione).
124
CRS4 - Information Society - Digital Media Applications
Skeleton Patterns - Farm
● accetta uno skeleton come argomento (subskel);● accetta in input una lista di N item;● subskel applicato ad ogni input item;● restituisce una lista di N output item;● parallelizza la stessa computazione su più item.
foo
farm
Semantic: [Farm<foo>, list] → foo(val) for val in list
Parallelismo limitato dalle risorse disponibili
125
CRS4 - Information Society - Digital Media Applications
Skeleton Patterns - Esempio
Calcolo fact() e incr() su 10.000 interi:
stage1 = Seq(fact)
stage2 = Seq(incr)
pipe = Pipe(stage1, stage2)
farm = Farm(pipe)
res = Executor().eval(farm, range(10000))
def incr(val):return val + 1
def fact(val):if(val < 2):
return 1t = val--t *= fact(val)return t
126
CRS4 - Information Society - Digital Media Applications
Algorithmic Skeletons - Test● face detection algorithm● input video file: videolina-10sec.mov with 25fps● Celery cluster of 3 nodes (36 physical cores, 48 virtual cores)
Sequential execution time: 121 secParallel/distributed execution time vs available cores:
127
Cores 1 2 4 8 8 16 32 36 48
Nodes 1 1 1 1 2 2 3 3 3
Time 180 130 70 62 56 52 45 39 32