1 / 57

2D Motion Estimation

Materiale di supporto all’insegnamento di ELABORAZIONI IMMAGINI 1. 2D Motion Estimation. Prof. Carlo Regazzoni. 2D Motion e Optical Flow.

nydia
Download Presentation

2D Motion Estimation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Materiale di supporto all’insegnamento di ELABORAZIONI IMMAGINI 1 2D Motion Estimation Prof. Carlo Regazzoni

  2. 2D Motion e Optical Flow • L’occhio umano percepisce il movimento identificando i punti corrispondenti a diversi intervalli di tempo. Tali corrispondenze sono determinate assumendo che il colore o la luminosità di due punti non cambia durante il movimento. • È interessante notare che il movimento 2D osservato può essere diverso dal reale movimento 2D. 1) la sfera ruota, ma i punti della sua superficie, non cambiando colore/luminosità ed appaiono stazionari; 2) la sfera è ferma e la fonte luminosa ruota attorno alla sfera, che darà all’osservatore una sensazione di rotazione. Il moto osservato o apparente è noto come Optical Flow

  3. Equazione Optical Flow • Consideriamo una sequenza video la cui variazione di illuminazione è rappresentata da Ψ(x,y,t). Supponendo un punto dell’immagine (x,y) al tempo t questo si è mosso da (x+dx,y+dy) al tempo t+dt. • Sotto la constant intensity assumption un’immagine dello stesso oggetto in due istanti di tempo ha lo stesso valore di luminanza. Allora: Usando l’espansione di Taylor, con dx,dy,dt abbiamo: .

  4. Equazione Optical Flow • Combinando le equazioni precedenti e dividendo per dt si ottiene la Optical Flow Equation: Con V=(vx,vy) Assumendo che l’intervallo temporale sia breve: Gradiente spaziale del vettore luminosità

  5. Equazione Optical Flow • Il flow vectorvpuò essere decomposto come in figura: Scomponendo il vettore V come: V=etvt+envn La Optical flow equation può essere riscritta come segue 90°

  6. Equazione Optical Flow • Le conseguenze delle equazioni scritte sono tre: • Per ogni pixel, non è possibile determinare il motion vector v basandoci su e separatamente. È necessario un vincolo che generalmente è espresso come il fatto che il flow vector deve variare in maniera “dolce”

  7. Equazione Optical Flow • Dati la proiezione del motion vector lungo la normale è fissata, mentre lungo la direzione tangente è indeterminata. Ogni valore di tale proiezione soddisfa l’ optical flow equation. Questa ambiguità è nota come Aperture Problem. Il termine Aperture si riferisce all’intervallo temporale entro il quale si può applicare la constant intensity assumption. Il movimento si può stimare unicamente se l’apertura contiene almeno due differenti direzione di gradiente come mostrato in figura .

  8. Equazione Optical Flow • In regioni con luminosità costante il vector flow è indeterminato. La stima del moto è realizzabile solo in regioni dove sono presenti variazioni di luminosità, ovvero regioni con contorni o dove è presente una tessitura non uniforme.

  9. Metodologie generali • Consideriamo la stima del moto tra due frame Ψ(x,y, t1) e Ψ(x,y, t2). Chiamiamo il frame al tempo t1Anchor Frame ed il frame al tempo t2Tracked Frame. .

  10. Metodologie generali • In generale possiamo rappresentare un vettore di moto come d(x,a), dove: a=[a1, a2, a3, a4,…., aL] è un vettore contenente i parametri caratterizzanti il moto. Il problema di stima del moto si riduce a stimare i parametri caratterizzanti il moto. I metodi sviluppati si dividono in due grosse categorie: • Feature based: si utilizzano delle caratteristiche prestabilite al fine di stimare il moto fra due frame distinti • Intensity based: applica la optical flow equation ad ogni pixel

  11. Rappresentazione del Moto

  12. Criteri di stima del moto: Displaced Frame Difference • Il criterio più popolare per la stima del moto è basato sulla minimizzazione della somma degli errori tra le luminanze dei due frame Ψ1 e Ψ2. La funzione obiettivo sarà: • Λ= dominio dei pixel, w(x,a)=x+dx • La condizione per minimizzare la funzione è porre il gradiente a zero al fine di ricavare i parametri caratterizzanti il moto. • Il gradiente per p=2: • .

  13. Criterio basato sulla Optical Flow Equation • Un altro approccio è risolvere il sistema di equazioni basato sul voncolo di Optical Flow. • Se la la variazione temporale dt tra due frame e piccola possiamo scrivere: • Risolvendo per x ci riduciamo ad un problema di minimizzazione con la seguente funzione obiettivo: • .

  14. Criterio Bayesiano • Lo stimatore Bayesiano è basato sulla formulazione probabilistica del problema di stima del moto fatta da Konrad e Dubois [1][2]. • Sotto questa formulazione dato l’Anchor Frame Ψ1, il Tracked frame Ψ2 è considerato come una realizzazione del campo casuale Ψ, mentre il campo di moto d è una realizzazione del campo probabilistico D. • La probabilità a posteriori di D data Ψ può essere scritta come: • .

  15. Criterio Bayesiano • Una stima basata sul criterio Bayesiano vuole massimizzare la probabilità a posteriori. Ma dati Ψ1, Ψ2 è cosa equivalente massimizzare solo il numeratore. Dunque la massima stima a posteriori (MAP) di d è: • Rappresentando ε lo spazio di probabilità di una immagine DFD allora per e(x)= Ψ2(x+d), Ψ1(x) dati x e Ψ1 : • E dunque: • .

  16. Criterio Bayesiano • Dalla teoria di codifica della sorgente la lunghezza minima di codice per una sorgente è la sua entropia. • La stima MAP è equivalente a minimizzare la somma della lunghezza del codice e il motion field d. Dunque la MAP stimata per d è equivalente ad una stima di tipo a minimun description lenght (MDL) • Essendo lo scopo degli stimatori di moto nella codifica video il minimizzare la bit rate, il criterio MAP è la migliore scelta che minimizza l’errore di predizione.

  17. Pixel Based Motion Estimation • Nei metodi di stima di moto pixel-based si prova a stimare il vettore di moto per ogni pixel. Il problema in oggetto è mal posto. • Sotto l’ipotesi di constant intensity assumption ci saranno pixel che non potranno essere ”inseguiti” nel Tracked Frame poiché la loro luminosità rimane invariata nel tempo. • Sotto l’ipotesi optical flow il problema sarà ancora indeterminato.(1 equazioni, 2 incognite)

  18. Pixel Based Motion Estimation • Per ovviare a questi problemi sono usati quattro approcci: • Tecniche di regolarizzazione; • Ipotesi di constant intensity o optical flow solo in una regione limitata; • Invariants constraints; • Fare uso delle relazioni fra funzioni di fase e frame prima e dopo il movimento.

  19. Pixel BasedRegolarizzazione basata suMotion Smoothness Constraint • Metodo che combina i criteri basati su: • Optical Flow • Motion Smooth • Horn e Schunck propongono di stimare il vettore movimento minimizzando la seguente funzione obiettivo: • La minimizzazione di tale funzione è realizzata tramite un metodo Gradient Based conosciuto come Gauss-Siedel.

  20. Pixel BasedMultipont Neighborhood • In questo approccio stimiamo il vettore di moto al pixel xne assumiamo che il vettore di moto di tutti i pixel in una regione B(xn) siano gli stessi dn. • Minimizzando l’ errore DFD su B(xn): • Con w(x) sono i pesi assegnati a ogni pixel che decrescono allontanandosi da xn

  21. Pixel BasedMultipont Neighborhood • Il gradiente rispetto a dn è: • L’algoritmo di update determinato, essendo dnl la stima all’iterazione l-esima: • L’ aggiornamento dipende dalla somma dell’immagine gradiente scalata dai valori di DFD pesati ad ogni pixel. In generale questo algoritmo richiede molta computazione per ogni pixel

  22. Block Matching Algorithms • Un problema con i metodi pixel-based è che bisogna rilassare alcuni vincoli al fine di regolarizzare il problema. • Un metodo per rilassare tali vincoli è dividere il dominio in regioni di immagini non sovrapposte, chiamate blocchi, ed assumere che il movimento in tali blocchi sia parametrizzabile semplicemente. • Nel caso più semplice il movimento in ogni blocco è assunto come costante e ogni blocco è soggetto a traslazione (block-wise translational model)

  23. Block MatchingExhaustive Search Block Matching Algorithm (EBMA) • Dato un blocco dell’immagine nel anchor frame Bm il problema della stima del motoè determinare il blocco più appropriato B’m nel tracked frame in modo tale che l’errore tra i due blocchi sia minimizzato. • Lo scostamento dm tra la posizione spaziale dei due blocchi è il vettore di moto (MV).

  24. Block MatchingExhaustive Search Block Matching Algorithm (EBMA) • Sotto le assunzioni fatte l’errore può essere scritto come: • Essendo la stima di MV di un singolo blocco affetta solo dall’errore di predizione del singolo blocco si può stimare ogni blocco individualmente, minimizzando l’errore di predizione accumulato sul blocco: • .

  25. Block MatchingExhaustive Search Block Matching Algorithm (EBMA) • Un metodo per determinare dmche minimizza l’errore suddetto è usare la exhaustive search. • Si determina l’ottimo dm per un dato blocco Bm nell’ anchor frame comparandolo con i blocchi candidati B’m nel tracked frame in una regione predefinita e trovando quello ad errore minimo. (Fig.1 slide successiva)

  26. Block MatchingExhaustive Search Block Matching Algorithm (EBMA) Fig.1

  27. Block MatchingFractional Accuracy Search • Il passo con cui si cerca la corrispondenza dei blocchi non dovrebbe essere “intero”. Per una più accurata rappresentazione del moto le frazioni di pixel sono necessarie. • Un problema usando le frazioni di pixel è che potrebbero non esserci punti di corrispondenza tra anchor e tracked frame. • È quindi necessaria una interpolazione che ad esempio può essere di tipo bi-lineare. • La scelta del passo è generalmente application-dependent. • Questo tipo di algoritmo porta ad una crescita notevole del carico computazionale.

  28. …qualche esempio… • (a) tracked frame • (b) anchor frame • (c-d) MV e immagine predetta con EBMA accuratezza a meta pixel • (e-f) MV deformato e stima basata su un algoritmo mesh-oriented

  29. Rappresentazione del moto Node Based • Introduciamo un modello di movimento basato sul movimento di alcuni punti di un determinato blocco, chiamati nodi. • In questo modello assumiamo che un insieme selezionato di nodi di controllo in un blocco può muoversi liberamente e che lo spostamento di ogni punto interno può essere interpolato dallo spostamento dei nodi scelti.

  30. Rappresentazione del moto Node Based • Siano: • K= numero dei nodi di controllo • Bm= blocco • dm= vettore del moto • La funzione del moto sarà: • Tale funzione esprime lo spostamento di ogni punto nel blocco come interpolazione dei nodi come mostrato in figura1. Il Kernel interpolatore Φ dipende da quale peso si assegna al k-esimo punto di controllo.

  31. Stima del moto usando il modello Node Based • La stima del moviemnto è indipendente blocco per blocco, dunque non considereremo tutti gli m blocchi di un’immagine. • Siano: • a= [dk,kЄK] , K={1,2,3,…..,K} • I parametri del moto possono essere stimati minimizzando l’errore di predizione: • .

  32. Stima del moto usando il modello Node Based • Ci sono molti modi per minimizzare tale errore inclusi l’ exhaustive search e metodi basati sul gradiente. • Il metodo proposto è basato sull’algoritmo di Newton-Ralphson. • Definiamo: • Eseguendo la derivazione di E rispetto ad a dopo alcuni passaggi si ottengono le equazioni di aggiornamento dell’algoritmo.

  33. Stima del moto usando il modello Node Based • Usando si può calcolare il gradiente dell’errore:

  34. Stima del moto usando il modello Node Based • La matrice essiana (eliminando il gradiente del secondo ordine):

  35. Stima del moto usando il modello Node Based • In figura le equazioni di aggiornamento dell’algoritmo: • Come per tutti i processi iterativi basati sul gradiente, anche questo può raggiungere un minimo locale non corretto se la soluzione iniziale non è scelta propriamente.

  36. Stima del moto basata sul Mesh-Based • Senza la conoscenza dei parametri di moto dei blocchi adiacenti la stima dei vettori di moto è spesso caotica, come in figura. • Un metodo per evitare ciò è usare una rappresentazione del moto basata sul modello a mesh (maglia). • . Anchor frame Tracked frame l’ anchor frame è coperto da una mesh, ed il problema di stima del moto è trovare il movimento per ogni nodo

  37. Stima del moto basata sul Mesh-Based • Il metodo di rappresentazione mesh-based garantisce una continuità di rappresentazione dell’immagine ed è maggiormente robusto agli artefatti che i metodi di rappresentazione block-based possono produrre. • Un altro beneficio di una rappresentazione mesh-based è che consente in tracking continuo dell’insieme di nodi fra i frame consecutivi, il che è desiderabile nelle applicazione di object-tracking

  38. Rappresentazione del moto basata sulle Mesh • Con un approccio mesh-based l’immagine è partizionata in elemento poligonali non sovrapposti. • Ogni elemento è definito da pochi nodi e collegamenti tra nodi, come mostrato in Fig.1 • Nella rappresentazione mesh-based l’insieme dei vettori di moto è descritto per mezzo dei nodi Fig.1 Si usa una mesh (griglia) triangolare con tre nodi connessi ad ogni elemento

  39. Rappresentazione del moto basata sulle Mesh • Siano: • M = numero elementi M = {1,2,…..,M} • N = numero nodi N = {1,2,…..,N} • K = numero di nodi che definisce ogni elemento K = {1,2,…..,K} • Dato l’ m-esimo elemento, n-esimo nodo al frame t (t1 = anchor t2= tracked). denotati da Bt,m mЄ M e xt,n nЄ N ed il vettore di moto dell’ n-esimo nodo da dn = x2,n- x1,n. • Il campo di moto nell’elemento B1,m è legato al vettore del moto dn da:

  40. Rappresentazione del moto basata sulle Mesh • La funzione Φè il kernel interpolatore e, come nel caso precedente, dipende dal contributo che sivuole dare ad ogni nodo. • Per garantire la continuità sugli elementi dell’immagine il kernel deve soddisfare:

  41. Rappresentazione del moto basata sulle Mesh Fig.1 • Ad esempio un elemento standard a quattro lati (Fig.1) può essere rappresentato da funzioni di kernel come segue:

  42. Rappresentazione del moto basata sulle Mesh • È importante non confondere l’ approccio mesh-based da quello node-based introdotto precedentemente. • Nell’approccio node-based sebbene blocchi adiacenti possano condividere gli stessi nodi, il vettore di moto è determinato indipendentemente blocco per blocco. • Nell’approccio mesh-based, al nodo n è assegnato il singolo vettore di moto il quale influenzerà la funzione di interpolazione negli elementi collegati a questo nodo. • Nell’approccio node-based, il nodo n può avere 4 differenti vettori di moto associati.

  43. Stima del moto basato sumesh-based model • Con i metodi di rappresentazione del moto basato sulle mesh ci sono due insiemi di problemi da risolvere: • Data una mesh come determinare la posizione dei nodi nel tracked frame. Questo è essenzialmente un problema di motion estimation • Come definire la mesh nell’anchor frame in conformità con la forma dell’oggetto • Una mesh costruita in maniera arbitraria porterà a risultati in generale scadenti • Ci occuperemo comunque solo del primo problema. Il secondo problema è trattato in [1][2]. [1] Y. Wang and O. Lee. Active mesh | a feature seeking and tracking image sequence representation scheme. IEEE Trans. Image Process., 3:610{624, Sept. 1994. [2] Y. Wang and J. Ostermann. Evaluation of mesh-based motion estimation in h.263 like coders. IEEE Trans. Circuits Syst. for Video Technology, 8:243{252, June 1998.

  44. Stima del moto basato sumesh-based model • I parametri del moto possono essere stimati servendoci ancora dell’approccio riguardante la minimizzazione della funzione errore. • Sotto le ipotesi del modello mesh-based: • E ricordando l’equazione del vettore di moto nel caso mesh-based si ha:

  45. Stima del moto Globale • Abbiamo mostrato che, indipendentemente dal movimento della camera e dell’oggetto, la funzione che mappa la corrispondenza tra due frame può essere descritta da una traslazione, una trasformazione geometrica,etc…… • Ci sono in generale due approcci per stimare il moto globalmente. • Stimare i parametri di moto globale minimizzando l’errore di predizione l’errore di predizione dato un insieme di parametri; • Determinando i vettori di moto dei pixel o di blocchi di pixel e dunque usando metodi di regressione per trovare il modello globale di movimento che meglio si adatta al campo di moto stimato

  46. Stimatori Robusti • Il movimento di ogni pixel può essere decomposto in: • Global motion: causato dal movimento della camera • Local motion: a causa del movimento degli oggetti nella scena • Non tutti i pixel dello stesso frame portano conoscenza del movimento globale e idealmente non si potrebbe applicare lo stesso modello di movimento allo stesso frame.

  47. Stimatori Robusti • Questi problemi possono essere superati da un metodo detto stimatore robustose il movimento globale e dominante sul movimento locale • L’idea di base è che i pixel sono governati dal movimento globale. I passi da seguire sono: • Tutti i pixel hanno stesso modello di movimento globale e si stimano i parametri di moto minimizzando l’errore di predizione. • Si determina un insieme iniziale di parametri • Calcolo dell’errore di predizione su ogni pixel • I pixel che avranno errore di predizione sopra una certa soglia saranno “scartati” dall’iterazione successiva • Si ripete iterativamente il processo

  48. Stima del motoRegion-Based • Come evidenziato nelle slide precedenti ci sono generalmente molteplici tipi di movimento in una scena • I stimatori del moto region-based segmentano l’immagine in regioni multiple e stimano i parametri di moto in ogni regione • Le principali tecniche di segmentazione sono: • Clustering: il modello di movimento in una regione è una traslazione pura e la segmentazione tiene in considerazione tutti i pixel connessi con vettori di moto simili • Layered :si dividono le regioni di movimento in più layer (piani) dal primo, che è il più significativo all’ultimo

  49. Stima del moto Multi-Resolution • Come visto dalle precedenti slide, i vari approcci di stima del moto si risolvono in minimizzazioni dell’errore. • Le due difficoltà maggiori nell’ottenere la soluzione corretta sono: • Non è facile trovare il minimo globale e spesso le condizioni iniziali influenzano negativamente la sua ricerca • Il carico computazionale è eccessivo • L’ approccio Multi-Resolution cerca la soluzione migliore a diversi gradi di ottimizzazione, partendo da un primo livello che porterà ad una prima soluzione “grossolana”

  50. Multi-ResolutionFormulazione Generale • La rappresentazione piramidale in figura rappresenta la divisione in livelli ottenuti filtraggi spaziali low-pass e sottocampionamento delle immagini. • Il livello più in basso è l’immagine originale. Immagine a bassa risoluzione Immagine a bassa risoluzione ANCHOR FRAME TRACKED FRAME Immagine originale Immagine originale

More Related