eia_VideoProcessing

Transcript

eia_VideoProcessing
http://imagelab ing unimo it
http://imagelab.ing.unimo.it
Dispense del corso di Elaborazione di Immagini e Audio Digitali
Video Processing
Prof. Roberto Vezzani
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Dall’ immagine al video
• Un video può essere visto innanzitutto come una
sequenza di immagini
i
i i (frames)
(f
)
• Le immagini sono acquisite in istanti di tempo discreti e
successivi
i i tk
con Dt=tk+1-tk di norma costante per k=0…n-1
• Il Dt non e’ sempre costante nei video acquisiti da rete o
modificati da un processo di imaging
y
x
t
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Semplice sequenza di immagini?
• Un video non è una semplice sequenza di immagini
scorrelate
l
• I frame sono una rappresentazione discretizzata nel tempo
(
(campionata)
i
t ) di valori
l i continui.
ti i
• Ogni pixel evolve nel tempo in modo continuo
• Esistono
Ei
dipendenze
di
d
temporali
li tra pixel
i l spazialmente
i l
t e
temporalmente adiacenti.
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
(dal corso di Visione Artificiale – facoltà di Ingegneria)
MOTION ANALYSIS
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Motion field
•
•
Motion field (campo di moto)
è la rappresentazione
pp
2D di un movimento
genericamente 3D, tramite un vettore di
velocità che corrisponde alla direzione del
moto relativo tra scena ed osservatore e
alla velocità.
velocità E’la
E la proiezione 2D sul piano
immagine del vettore 3D di velocità.
•
Nel caso di pura traslazione perpendicolare
al piano immagine il campo di moto è
caratterizzato da vettori paralleli
In caso di traslazioni in 3D esiste un punto
p
•
– focus of expansion FOE
– or focus of contraction FOC
da cui partono o convergono i vettori
di moto
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Optical flow
•
•
•
•
L’optical flow (il flusso ottico) è la stima del moto apparente di tutti i pattern
luminosi
c=(u,v) vettore velocità
indica velocità e direzione del moto come può essere calcolato solo in base
alla luminosità; approssima il motion field nell
nell’ipotesi
ipotesi di luminosità costante
casi estremi di divergenza tra optical flow e motion field:
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Stima dell’optical
dell’optical flow
•
•
•
•
•
Stima di Optical Flow basata sulla variazione della luminosità (Gradient
Based).
Based)
Stima di Optical Flow basata sulle corrispondenze discrete (Matching).
Della prima classe fanno parte tutti gli algoritmi che rivelano il flusso ottico
d ll’i t
dall’interpretazione
t i
delle
d ll variazioni
i i i di luminosità
l i ità delle
d ll immagini
i
i i all passare
del tempo. Esempi di tale approccio sono in (Horn e Schunck [33]), (Nesi
[36]), (Liu [35]).
il vero flusso
fl
ottico
i viene
i
determinato
d
i
unicamente
i
da
d questa classe
l
di
algoritmi; solo in questo caso infatti si ottiene un insieme di vettori denso, nel
senso che viene determinato per ogni pixel dell’immagine.
Nella seconda classe rientrano tutti gli algoritmi che ricostruiscono il
movimento ricercando nella sequenza di immagini quelle caratteristiche degli
oggetti che possono considerarsi permanenti nel tempo come, per esempio, gli
spigoli (i corner), i profili, i pattern particolari, ecc...
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Assunzioni
1) Massima velocità: si suppone che esista una velocità massima a cui
p
un massimo spostamento
p
tra un frame ed il successivo
corrisponde
• rmax= cmax t
2) Piccole accelerazioni: si suppone che ll’accelerazione
accelerazione sia trascurabile; ipotesi
accettabile se Δt (intervallo tra due frame) è sufficientemente piccolo
3) Movimento uniforme: di tutti i punti degli oggetti inquadrati
4) Corpo rigido: affinché la forma e l’apparenza luminosa dello stesso oggetto
non cambi tra due frame successivi e pertanto che la luminosità I(x,y) di ogni
punto appartenente ad un oggetto mobile o statico non varii nel tempo
5) Dipendenza spaziale: ossia che la luminosità I(x,y,t) dipenda strettamente dalle
coordinate (x,y) dell’immagine
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Calolo dell’ Optical flow
• Si ipotizza che il Moto sia sufficientemente piccolo cosi’
che
h l’intensità
l’i
i à in
i quell punto rimanga
i
costante
dI
I dx I dy I

 0
0
x dt
d y dt
d
t
dt
• con le derivate parziali
u
dx
dt
v
dy
dt
I xu  I yv  I t  0
• Note le componenti del gradiente di luminosità per ogni
punto sii suppone valida
lid la
l Brightness
h
Constancy Equation
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Optical flow
• L’equazione è sottodeterminata (2 incognite in
un’equazione)
’
i
) e pertanto sono notii in
i letteratura
l
di
diversi
i
metodi di calcolo basati su vincoli aggiuntivi differenti.
• Lucas
L
Kanade
K
d 1981:
1981 e’ l’algoritmo piu’ noto per calcolare l’optical flow.
• 1) Si suppone u e v costanti in un intorno (es 5x5); Calcolo
della derivata nel tempo con la differenza all’indietro
all indietro
I  x , y , t 
 I n  x , y   I n 1  x , y 
t
• 2) Calcolo del gradiente (ad es. con Sobel)
 I x , y 

x
 I x , y 

y
1
1
  I x  i , y  j   S x  i , y  j 
x
i 1 j 1
1
1
  I x  i , y  j  S x  i , y  j 
i 1 j  1
y
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Feature Tracking
•
•
è difficile fare il tracking di un singolo pixel, a meno che esso non abbia un
livello di luminosità molto diverso dai p
pixels situati attorno ad esso.
Il rischio è quello di confondere il pixel con quelli ad esso adiacenti a causa di
eventuale rumore introdotto nell’immagine.
•
Percio’ il tracking non viene fatto per un singolo pixel ma per una finestra
di pixels W, e si ricercano finestre aventi una struttura particolare e facilmente
identificabile.
•
Pero’ anche la finestra può subire, oltre a spostamenti, anche modifiche alla
sua struttura.
•
per tutelarsi dall’errore di fare il tracking di una finestra che non è quella
individuata all’inizio, viene fatto un test ad ogni passo che confronta la finestra
corrente con quella
ll fissata
fi
all’inizio,
ll’i i i e se le
l variazioni
i i i rilevate
il
sono eccessive
i la
l
finestra viene scartata.
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Selezione delle feature
•
•
•
•
 I
g
 x
I 
 Ix
y 


I y  I T
Come trovare feature significative?
punti situati su bordi,, angoli,
g , entrambi caratterizzati da un
Punti buoni sono p
gradiente di luminosità abbastanza elevato. Rientrano in queste categorie anche
punti di rumore, tipo rumore sale-pepe.
La matrice G di autocorrelazione dipende esclusivamente dal gradiente di
luminosità dei pixels per cui è l’algoritmo di selezione delle features che deve
accertarsi che i coefficienti siano oltre il livello di rumore dell’immagine e che
conducano ad un problema ben condizionato numericamente.
Queste due condizioni si traducono rispettivamente nel chiedere che i due
autovalori della matrice G siano abbastanza grandi, e che siano dello stesso
ordine di grandezza. Tomasi e Kanade definiscono tre casi:
1. due autovalori piccoli indicano una finestra di pixels con un profilo di
intensità pressochè costante;
2. un autovalore grande ed uno piccolo corrispondono ad un pattern
con un gradiente
di
iin un’unica
’ i di
direzione;
i
3. due autovalori grandi rappresentano features come angoli o
texture di tipo sale e pepe (con alte frequenze spaziali) o aree di cui può
essere fatto
f tt il tracking
t ki in
i modo
d affidabile.
ffid bil
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Selezione delle feature
•
Percio’ per avere buone feature bisogna vedere la matrice G e avere
min(  1 ,  2 )  
•
il livello di soglia, che si può prendere uguale al valore medio degli autovalori
di una finestra con luminosità quasi costante, e degli autovalori di una finestra
contenente angoli o una texture ben distinguibile.
•
Con l’applicazione di questo criterio la matrice G risulta ben condizionata
numericamente,
e c e e, infatti lambda
b impone
po e un limitee inferiore
e o e agli
g autovalori,
ov o , eed
essendo il valore massimo di luminosità permesso dai pixels un numero finito,
l’autovalore massimo non può diventare arbitrariamente grande.
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Esempi
Horn & Schunk
Block Matching
Lucas & Kanade
Feature Tracker Piramidale L&K
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Metodi differenziali a livello di grigio
•
•
ipotesi semplificativa : le condizioni di illuminazione della scena si mantengano
costanti per un intervallo di tempo sufficientemente lungo.
un’apprezzabile variazione della luminosità di un pixel indica la presenza di un moto relativo tra
la scena e la sorgente di acquisizione.
•
•
Data
D
t una sequenza di immagini
i
i i {In},
}
l’immagine differenza tra due frames Dn è definita dalla differenza tra i valori di
luminosità dei pixel corrispondenti nei due frames successivi In e In-1 della sequenza.
•
Tale differenza può essere valutata con varie tecniche, che vanno dalla semplice
sottrazione a confronti basati su statistiche del secondo ordine calcolate su piccole
regioni.
C
Caso
piu’
i ’ semplice
li differenze
diff
tra frames
f
•
Dn(i , j) = | In(i , j) - In-1(i , j) |
 Stationary Region Sn = {p(i , j)  In | Dn(i , j) = 0}
 Moving Region Mn = {p(i , j)  In | Dn(i , j)  0}
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Binarizzazione del movimento
• 1) differenza tra due frames
• 2) binarizzazione con soglia semplice o ad isteresi
Frame
difference
Soglia assoluta
threshold
Soglia con isteresi
E’ il metodo assolutamente piu’ usato nei sistemi di videosorveglianza
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Single difference
• Problemi:
• Presenza di ghost
• Delocalizzazione
Frame n-1
Frame n
Dn
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Differenza tra piu’ frames
Frame i
T
Frame j
Movimento
T
Frame k
1)questo metodo
1)
d consente di selezionare
l i
solo
l i puntii “
“sicuri”
i i” del
d l contorno, rendendo
d d più
iù
affidabile la fase di chiusura dei contorni se il gradiente viene calcolato sulla seconda
delle tre immagini con le quali si ricava l’informazione sul moto.
2) questo metodo è più robusto nei confronti del rumore e dei movimenti della telecamera in
quanto gli effetti di queste degradazioni sulle immagini in generale non sono uguali in
tutte e tre i frames della sequenza.
• In q
questo caso l’operatore
p
logico
g
AND p
può eliminare le zone di apparente
pp
movimento
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Differenze tra tre frame
•
Immagine
–
con single difference
double difference
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Double--difference
Double
• Attenzione la differenze tra tre frame e’ corretta se gli
oggettiFrame
i sono
disgiunti
di i i
n1
Frame
n+1
Frame n
Dn
Dn+1
DDn
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia
Background suppression
•
•
La differenza non viene fatta con il frame precedente ma con il frame di riferimento
It
((background)
g
)
Dk(i,j)= |fk(i,j)-B(i,j)|
Background
Update
Bt
Background
Suppression
DBt
Segmentation
MVOt
•
•
•
•
estrae tutti i punti in movimento
Problema: come calcolare ll’immagine
immagine di riferimento
cambiano le condizioni di luminosita’
costruzione dell’immagine riferimento interpolando le immagini della sequenza
Roberto Vezzani - Imagelab – Università di Modena e Reggio Emilia