cpr model for summarazing video gattamorta mirko meneghello andrea vergari gino m. fayzullin, v.s....
TRANSCRIPT
CPR Model for Summarazing Video
Gattamorta Mirko Meneghello Andrea
Vergari Gino
M. Fayzullin, V.S. SubrahmanianUniversity of Maryland{fms,vs} @cs.umd.edu
A. PicarielloUniversità di Napoli
M.L. SapinoUniversità di Torino
Premessa (1)
Creare un sommario di un video Un sommario video è una rappresentazione
compatta di una sequenza video ed è utile per diverse applicazioni video. Per esempio, fornisce una rapida panoramica del contenuto del video, permettendo un accesso veloce ai vari shots.
Ci sono due forme di sommario video: 1. una sequenza di anteprime, concatenazione di un
numero limitato di segmenti video 2. un insieme di key-frames, una raccolta di frames
scelti adeguatamente.
Premessa (2)
Cosa abbiamo già a disposizione: Video databases che supportano API video Tecniche di sommario basate sul key-frame Selezione a manuale dei frames interessanti
Lo stato dell’arte Data la veloce crescita della tecnologia audio-
video, l’aumento della quantità di contenuto multimediale disponibile in rete è enorme. Gli utenti affrontano una nuova sfida:Come esaminare velocemente grandi quantità di contenuto multimediale
Premessa (3)
Costruire un indice:1. Che usi delle regole per specificare quali
sono gli oggetti, eventi o frames “interessanti” (F.I.) per quel contesto.
2. Possieda una funzione obbiettivo che dati i F.I. combini assieme questi tre parametri: Continuity Priority Repetition
Sommario
1. Introduzione2. Modello formale3. Algoritmi
1. Benchmark2. Conclusioni
CAPITOLO 1
Introduzione
Introduzione
Reperire le parti più interessanti di un video Es: partita di calcio
Goal, falli gravi, azioni spettacolari… Non considerare azioni ripetitive, passaggi,
sostituzioni…
Scenari di applicazione (1)
A cosa serve un CPR model per sintetizzare un video?
Per automatizzare il processo di sintesi Permette alle aziende di “contabilizzare” e vendere clip
di video. Gli utenti possono selezionare le parti che ritengono più
interessanti e acquistare in seguito l’intero video Molte società fanno uso di seminari audio e video interni
disponibili on line.
Device requirement Cellulari, PDA sia per rete GSM che UMTS che supportino
la ricezione di video o brevi clip. Decoder digitali Personal Computer connessi a internet
Scenari di applicazione (2)
CPR Model
SommarioGoalAzioni
Video store
Accounting
Video: cosa analizzare (1)
Video: Es: 15 fps, 1 hour = 60 x 60 x15 = 54.000 frames Impossibile confrontarli tutti per decidere i F.I. Utilizziamo il keyframe: Significa letteralmente fotogramma chiave e
indica il fotogramma di riferimento nella codifica di una clip. In sostanza un key frame non contiene alcuna informazione sui frames adiacenti.Molti compressori usano il keyframe per risparmiare spazio nella compressione, che in questo modo deve tenere conto solo delle differenze tra due keyframes.
Key frame
Video: cosa analizzare (2)
Basta il keyframe ? Il keyframe ci dice solo i frame da
considerare, quelli che contengono più informazione. Ma noi abbiamo anche bisogno di regole per determinare quelli interessanti (F.I.)
Bisogna che selezioniamo solo alcune scene, le più significative per il contesto che si sta analizzando (Es: i goal per una partita di calcio)
Es. Se abbiamo in media un keyframe ogni 300 frame con l’esempio precedente 54000/300=180 che implica che il numero di scene da confrontare è comunque elevato.
Vedremo nel capitolo 2 come queste regole si possano esprimere usando un linguaggio logico.
La funzione obbiettivo
La funzione obbiettivo, che discuteremo nel capitolo 2, servirà:
1. una volta che abbiamo raccolto tutte le scene che rispettano le nostre regole,
2. per decidere quali inserire effettivamente nel sommario
Continuity (del sommario): Il sommario deve essere continuo e non presentare “salti”.
Es rigore: oltre al goal deve esserci frame dell’istante prima del tiro e quello immediatamente successivo.
Proprietà e criteri di selezione (1)
Ogni frames qui sta ad indicare un istante del video
Rincorsa Tiro Parata Goal Festeggiamenti
Proprietà e criteri di selezione (2)
Priority (dei frames): per ogni applicazione di sommario
certi oggetti o eventi sono più importanti di altri Es. di contesto: video di calcio
Es. di evento: il goal è più importante di un semplice passaggio a centro campo Es. di oggetto: Il portiere se ha di fronte l’attaccante che si appresta a tirare è più
importante del portiere che rimette da fondo campo.
Evento più importante
Repetitions (del sommario): anche se un evento è prioritario ma ricorre molte volte nel video, questo diventa meno prioritario nel sommario finale
Es: i calci di rigore, l’evento è ripetuto molte volte quindi ne utilizzo alcuni per rappresentare il sommario e gli altri perdono di priorità
Proprietà e criteri di selezione (3)
Scelgo ad esempio il primo come più prioritario
4 rigori calciati da altrettanti giocatori
Riassumendo
1. Selezioniamo da un video, in modo totalmente automatico tutti i keyframes.
2. Eseguiamo un’analisi con regole per determinare i frames interessanti per il contesto.
3. Tramite una funzione obbiettivo decidiamo quali inserire nel sommario finale.
CAPITOLO 2
Modello Formale
Modellazione del sommario
...1 2 len
v =
Goal 21’ del 1°TRigore 8’ del 2°T
Assist 44’ del 2°T
...
1 … K
…
3
kScon } v
len ..., 1, { S
( ) true=finsum Sf ⇔∈
Sommario S al più di k frame o di blocchi di frame continui:
S deve contenere solo frame “interessanti”:
Ma quando un frame è interessante?
Quando contiene oggetti o azioni che ci interessano!
k-summary
Selezione dei frame (1)
I frame sono analizzati e individuati per contenuti da API del DB multimedialechiamate video-call:
findframe(v,X) individua i frame che contengo l’azione o l’oggetto X findobj(v,f) individua gli oggetti contenuti nel frame f findact(v,f) individua le azioni contenute nel frame f
V=
findframe(v,BALL)
findobj(v,f’)
findact(v,f’’)
... ...
Selezione dei frame (2)
I predicati a loro volta possono essere uniti in and logico formando vincoli più stringenti sulle variabili libere:
Si associa alla variabile una o più azioni (e oggetti) presenti in entrambi i frame
Per istanziare frame, oggetti ed azioni “interessanti” usiamo predicati che
associano ad una variabile X l’output della video-call invocata
X =
'v,f findact X
v,f findactX
( )"Rivaldo"v, findframeX∈
X = “celebrazione”
Video Condition (Vc)
"" eesplulsionv, findframeXXinsum
Il motore che mette in esecuzione i predicati sono le regole di sommario (V )
frame X da restituire
funzione video-call che cerca una o più espulsioni nel video v
corpo della regola
insum(X) : predicato unario (detto anche testa della regola) che restituisce true o false se si è o non si è associato ad X uno o più frame
Vc
k-summary
Frame contenente un passaggioin cui è coinvolto il giocatore Tottisolo se quest’ultimo è presente inun frame già consideratointeressante [ insum(X) ]
Xinsum
Xvfindobj
Zvfindobj
ZvfindactZinsum
YvfindactYinsum
Xvfindobj
XvfindactXinsum
,Totti""
,"Totti"
,"a passaggio"
,"necelebrazio"
,"capitano"
,"goal"
Frame contenente un’azione
digoal in cui partecipa il
capitanoFrame con celebrazione del goal
I frame restituiti sono inseriti nell’insieme dei frame reputati interessanti: Der (V ).
X {f1,f2,f3,f4,f7}
Y {f1,f5,f6,f9}
Z {f1,f2}
VDerS La scelta dei migliori frame costituirà il k-summary
Es:S = {f1,f6,f9}
Continuità
Rendere più attrattivo il sommario Aumentare l’informazione comunicata
Si restituiscono tutti i F.I. Y nell’intervallo [X-i,X+i] dove X èil frame centrale dell’azione
XinsumiYXnearYinsum ,,
VS
Introduciamo tra le regole di sommario anche la seguente
Priorità & non-Ripetizione
Si attribuiscono ai frames canditati per il k-summary delle priorità singole e di gruppo (frame set)
pri( f1 ) = 0.6 pri( {f1,f2} ) = score[0,1]
Usando la funzione pri possiamo imporre score bassi per frame set contenenti
frames simili.Similarità valutata attraverso funzioni di distanza (color histograms)applicate ai frames o al loro contenuto: oggetti ed azioni.
Fare vedere nel sommario più azioni di presunto fallo in area è poco interessante
f2f1
Migliorare la qualità del sommario
CAPITOLO 3
Algoritmi
3. Quindi calcolo tutti i possibili sommari di lunghezza k partendo dall’insieme Der(V)
4. Tramite la funzione eval() calcoliamo il migliore
1. Dato il dominio delle regole V otteniamo N frames interessanti che vanno a formare l’insieme Der(V)
2. Il sommario ottimo deve avere al massimo k frames con k ≤ N
CPR ottimo - sommario ottimale (1)
VDerS NDer V
!kN!k!N
possibili sommari
…
CPR ottimo - sommario ottimale (2)
5. Risultato migliore in termini di Continuità, Priorità, non-Ripetizione
6. Pesi α, β, γ sono decisi dall’utente in base alle sue esigenze
calcoliamo eval(S) = α·C(S) + β·P(S) – γ·R(S) V' DerS scegliendo il k-summary S tale che eval(S) > eval(S’ )
Riconducibile alla computazione di un knapsack problem
…
• SEA (Summary Extension Algorithm)
• CPR genetic programming
• CPR dynamic
Come ottenere sommari video
Permettono di dare un peso alle tre specifiche del modello CPR (continuità, priorità, ripetitività ) (continuità, priorità, ripetitività )
Per ogni regola Vc peso Wi normalizzato tra [0, 1]
0.3
0.7Corpo della regola
Sommario Video
Frame Coverage Pair (FCP) è (f,p)
V
Definiamo il dominio delle regole V
Indica il grado di soddisfazione in forma normalizzata [0,1] della video condizione (Vc)
FCPFCPFCP
Frame i
Pi
Calcoliamo Pi nel caso della regola …
2/3(0.67)
Insum(X)
Insum(Y)
0.3
0.7
0.7
0.3 0.3
Sommario video - esempio
0.3
1.0
1 Avendo calcolato per ogni FCP il valore del grado di soddisfacibilità per la regola i
2 Viene scelto FCP che massimizza le condizioni fra tutti gli FCP della regola i e viene moltiplicato per il peso della regola
0.7
3 Tra tutti i FCP max delle rispettive regole vengono presi quello che ha il valore massimo
0.3
Si osservi che il procedimento deve avvenire iterativamente per tutte le regole in V e per tutti i frames che soddisfano V anche parzialmente
In questo caso avremo il ValidSummaryExtensionRegola 1
Regola 2
Sia Vcurrent variabile che descrive la migliore soluzione fino al corrente istante
V è un sommario video con specifico contenutok è la lunghezza del sommario desiderato
• Basato sulla programmazione dinamica metodo iterativo
1. Verifica ad ogni passo di iterazione se rimpiazzare un frame contenuto in Vcurrent con un nuovo frame considerandolo un buon sommario
• Un sommario è considerato solo se ha esattamente k frame
• La funzione di valutazione dei frames Eval() è monotona
Procedure CPRdyn(V,k)
CPR Dynamic - (Alcuni cenni)
• Usa un approccio basato sulla programmazione genetica nel calcolare un Sommario video
1. Operatore EVAL() valuta la bontà del membro della popolazione(insieme dei frame)
2. Operatore MUTATION() : elimina i membri dalla popolazione del punto 1
1. Crea un sommario con numero casuali di frame e
imposta il valore secondo la funzione Eval()Eval()
2. Applico operatore Mutation()Mutation() ad un numero casuale di membri della popolazione del sommario.
3. Condizione di stop quando la variazione della funzione eval() della popolazione ≤ valore di soglia α stabilito
4. Itero il procedimento per N volteN volte
Procedure CPRGen(V,k,N, α)
CPR Genetic - (Alcuni cenni)
assenza 0
sommario nel i frame del presenza 1 binaria var f frame i
3.
SEA
CPR Genetic
CPR Dynamic
GlossarioN numero iterazioni
K lunghezza sommario
Lenv lunghezza video
a numero max di letterali (atomi) appartenenti al dominio delle regole V
Analisi Complessità
Spazio Tempo
O (num frame)
O ((Len v)² / K²) * N²)
O ( exp(k) )
Len v *card(V)*card(K)ª
O ((Len v)² / K)
O (a)
In ultimo CPR ottimo ha complessità Exp in Lenv
Benchmark (1)
Per valutare la bontà di ogni algoritmo si sono utilizzati: 50 video di calcio
@ 30fps 640x480, Durata 90 ÷ 120 minuti (circa 16200 frames)
Hardware: 1 Pentium 3 @ 800 MHz 128 MB di SDRAM
Risultato: 40 blocchi per ogni video Si sono creati sommari di 2,4,6 minuti
Valutazione: 200 studenti (tutti tifosi)
Benchmark (2)
Summary Quality Comparison
01020304050607080
2 4 6
Summary duration (minutes)
User
pre
fere
nce
(%)
Sea
CPRgen
CPRdyn
Quale algoritmo dà i risultati migliori ?
Benchmark (3)
Quanto impiegano gli algoritmi a creare il sommario ?
Algorithm's Performance
205021002150220022502300235024002450
4 11 16 24 28 37 42 49 58 64 67 75
Number of frames
Tim
e(m
sec) SEA
CPRgen
CPRdyn
Conclusioni
Come si può vedere dai grafici il SEA è l’algoritmo che offre i migliori risultati sia in termini di qualità del sommario prodotto sia in termini di tempo impiegato.
Il CPR è il primo modello per creare sommari di video basato sulla semantica.
Bibliografia
[1] The CPR Model For Summarizing Video: M. Fayzullin, V.S.Subrahmanian,A. Picariello, M.L. Sapino
[2] Searching Multimedia Databases Searching: P.Ciaccia [3] Image Databases: P.Ciaccia [4] Multimedia Databases Indexing: P.Ciaccia [5] Progettazione, implementazione e sperimentazione di un
ambiente per la video summarization:D'Onofrio Salvatore [6] Action description (and eventual recognition):
http://www.cfar.umd.edu/ [7] The First ACM International Workshop on Multimedia
Databases (MMDB 2003) at ACM CIKM 2003: Shu-Ching Chen, Mei-Ling Shyu
THE END