A.Criminisi, G.Cross, A.Blake, V.Kolmogorov
BILAYER SEGMENTATION
OF LIVE VIDEO
• Andrea Mazzei
• Consiglia Montaruli
• Marco Manganelli
OBIETTIVO
Presentazione di un algoritmo in grado di effettuare un’efficiente
segmentazione in tempo reale di una sequenza video in due layer:
foreground e background.
Possibile applicazione: sostituzione del background in una video
conferenza.
Richiede efficienza computazionale per sostenere la velocità di una
applicazione streaming video e accuratezza per ottenere un risultato
apprezzabile.
NOTAZIONE
FRAME:
array I di pixel nello spazio dei colori YUV.
DERIVATE TEMPORALI:
Ad ogni istante t calcolate come:
G( . ) Kernel Gaussiano, σ =0.8
GRADIENTI SPAZIALI:
dove
g n  grad ( I ) n
MOVIMENTI OSSERVABILI:
SEGMENTAZIONE BINARIA:


I  ( I1 , I2 ,..., IN )
I  G ( I t )  G ( I t 1 )
n
n
n
g  ( g1 , g 2 ,..., g N )
m  (g, I )
array di valori X   x0 , x1 ,..., xn 
in cui x  F , B con F e B che denotano l’appartenenza di un pixel al
foreground o al background layer.
MODELLO PER LA SEGMENTAZIONE
1
t
La segmentazione in due layer avviene sulla stima di X ,..., X , che si
ottiene effettuando una minimizzazione del termine di energia E.
L’energia al tempo t è rappresentata come somma di quattro termini:
t 1
t 2
E  E (x , x , x , I , m )
t
t
t
E  V V U U
T
• Temporal
Motion
likelihood
continuity
Colour continuity
Spatial
S
C
t
M
E  V V U U
T
S
C
M
TERMINE DI TEMPORAL COHERENCE
Analizzando due frame, un pixel può
rimanere nel layer di background (BB) o
di foreground (FF) oppure effettuare una
transizione (FB o BF).
Modello: catena di Markov del secondo
ordine, la probabilità che un pixel al
tempo t appartenga ad un layer dipende
dallo stato del pixel nei frame ai tempi t-1
e t-2.
In base a questo, il termine di Temporal Coherence può essere calcolato come:
T
t
t 1
V (x , x , x
t 2
N

)     log p ( x | x , x
n
t
n
t 1
n
t 2
n
)

E  V V U U
T
S
C
M
TERMINE DI SPATIAL COHERENCE
Termine che rappresenta la tendenza dei confini di una regione di segmentazione
ad allinearsi con i contorni dell’immagine caratterizzati da un alto contrasto.
Garantisce una continuità spaziale.
2



exp(


||
I

I
||
)
S
m
n

V (x, I)     ( xm  xn ) 
1 
( m , n )C


• C rappresenta l’insieme di coppie di pixel vicini.
• γ, ε costanti di diluizione
E  V V U U
T
S
C
M
TERMINE DI COLOUR LIKELIHOOD
Termine che assegna un pixel ad un layer in base ad una valutazione della
distribuzione del colore.
N
U C (x, I)     log p  I n | xn 
n
Al tempo t:
• Il foreground è calcolato sul frame attuale
DINAMICO
• Il background è calcolato in fase di inizializzazione
STATICO
Efficienza computazionale rispetto a metodi basati su Gaussian Mixture
Model ed Expectation Maximization
E  V V U U
T
S
C
M
TERMINE DI MOTION LIKELIHOOD
Evidenzia le parti in movimento dell’immagine, calcolando il moto in
base alla segmentazione al tempo t e t-1.
U (x , x , m )   log p(m | x , x )
M
t
t 1
t
t
n
n
Pixel chiari:
MOVIMENTO
Pixel scuri:
STASI
t
n
t 1
n
MINIMIZZAZIONE DELL’ENERGIA
X   x0 , x1 ,..., xn 
Array di valori di segmentazione:
t 1
t 2
E  E (x , x , x , I , m )
t
ENERGIA:
t
t
t
MINIMIZZAZIONE
t 1
xˆ  arg min E (x , x , xˆ
t
t
x
t 2
t
t
,I ,m )
Applicazione del metodo del Graph Cut
Scarica

Bilayer Segmentation of Live Video