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