ITVI20120087A1 - Stabilizzazione video digitale - Google Patents

Stabilizzazione video digitale Download PDF

Info

Publication number
ITVI20120087A1
ITVI20120087A1 IT000087A ITVI20120087A ITVI20120087A1 IT VI20120087 A1 ITVI20120087 A1 IT VI20120087A1 IT 000087 A IT000087 A IT 000087A IT VI20120087 A ITVI20120087 A IT VI20120087A IT VI20120087 A1 ITVI20120087 A1 IT VI20120087A1
Authority
IT
Italy
Prior art keywords
motion vectors
image frame
blocks
vectors
pixels
Prior art date
Application number
IT000087A
Other languages
English (en)
Inventor
Sebastiano Battiato
Arcangeloranieri Bruna
Giovanni Puglisi
Giuseppe Spampinato
Original Assignee
St Microelectronics Srl
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by St Microelectronics Srl filed Critical St Microelectronics Srl
Priority to IT000087A priority Critical patent/ITVI20120087A1/it
Priority to US13/841,583 priority patent/US9100573B2/en
Publication of ITVI20120087A1 publication Critical patent/ITVI20120087A1/it

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Studio Devices (AREA)
  • Picture Signal Circuits (AREA)
  • Image Processing (AREA)
  • Television Systems (AREA)

Description

DESCRIZIONE
Dell’invenzione dal titolo “Stabilizzazione di video digitaliâ€
CAMPO DELL’INVENZIONE
La presente invenzione riguarda la tecnica di stabilizzazione di video digitali, in particolare, la compensazione di effetti di tremolio della mano o hand-shaking su sequenze video basata su un algoritmo robusto ed a basso costo risultante nel rimuovere effetti di movimento da immagini di una sequenza video.
SFONDO DELL’INVENZIONE
Mezzi per catturare video digitali sono ben noti nel mercato di consumo di massa e disponibili a prezzi relativamente bassi. Tuttavia, i video amatoriali spesso risentono di disallineamenti di fotogrammi consecutivi causati da hand-shaking (tremolio). Dunque, nella tecnica à ̈ nota una varietà di tecniche di stabilizzazione basate su una stima del movimento (si veda, ad esempio, A. Engelsberg, G. Schmidt, "A comparative review of digital image stabilizing algorithms for mobile video communications", IEEE Transactions on Consumer Electronics, Vol. 45, No. 3, Agosto 1999; J.K. Paik, Y.C. Park, D.W. Kim, "An adaptative motion decision system for digital image stabilizer based on edge pattern matching", IEEE ICCE Consumer Electronics, Digest of Technical Papers, Giugno 1992).
In particolare, à ̈ stata implementata una stima di movimento basata su curve caratteristiche orizzontali e verticali (si veda, ad esempio, M. Kim, E. Kim, D. Shim, S. Jang, G. Kim, and W. Kim, "An Efficient Global Motion Characterization Method for Image Processing Applications," IEEE Trans. On Consumer Electronics, pagine 1010-1018, Nov. 1997 ; Y. Koo and W. Kim, "An Image Resolution Enhancing Technique Using Adaptive Sub-Pixel Interpolation For Digital Still Camera System", IEEE Transactions On Consumer Electronics, Vol. 45, No. 1., Febbraio 2005). Tuttavia, questi tipi di metodi di stabilizzazione non sono sufficientemente affidabili nel caso di variazioni di illuminazione, sfocatura del movimento o motion blur, ingresso di nuovi dettagli nella scena oppure oggetti in movimento nella scena. Questi problemi sono stati parzialmente affrontati in US 2010/124379 A1 ed EP 2204982 A1, in cui à ̈ stato fornito un algoritmo che consente in particolare la riduzione della sfocatura del movimento e la distrazione da parte di oggetti in movimento. Tuttavia, l’algoritmo proposto si mostra perfezionabile con riferimento alla precisione della stabilizzazione complessiva ed alla gestione di sagome o pattern regolari. Pertanto, nonostante i recenti progressi tecnologici, esiste ancora la necessità di un metodo perfezionato di stabilizzazione di video, che tenga conto delle ristrette risorse computazionali disponibili nei prodotti di massa per catturare video.
DESCRIZIONE DELL’INVENZIONE
La presente invenzione à ̈ diretta alla summenzionata esigenza e, di conseguenza, riguarda un metodo per compensare un movimento non intenzionale un una sequenza video causato da hand-shaking. Si fornisce un metodo per filtrare un’immagine di una sequenza video di immagini da un movimento spurio causato da hand-shaking (tremolio). Il metodo per filtrare un fotogramma di immagine di una sequenza video da un movimento spurio comprende le fasi di
dividere in blocchi di pixel il fotogramma di immagine (corrente) ed un fotogramma di immagine precedente di una sequenza video;
determinare vettori di movimento per i blocchi del fotogramma di immagine (corrente);
determinare parametri di trasformazione inter-fotogramma per il fotogramma di immagine (corrente) in base ai vettori di movimento determinati; e
generare un fotogramma di immagine filtrato (a partire dal fotogramma di immagine corrente) in base ai parametri di trasformazione inter-fotogramma determinati; in cui il fotogramma di immagine à ̈ diviso in blocchi in sovrapposizione.
In linea di principio, i vettori di movimento possono essere determinati con qualsiasi metodo noto nella tecnica, ad esempio algoritmi di allineamento di blocchi descritti da S. Auberger e C. Miro, Digital Video Stabilization Architecture For Low Cost Devices, Proceedings of the 4th International Symposium on Image and Signal Processing and Analysis, pagina 474, 2005, o F. Vella, A. Castorina, M. Mancuso, and G. Messina, Digital Image Stabilization By Adaptive Block Motion Vectors Filtering, IEEE Trans. on Consumer Electronics, 48(3):796-801, Agosto 2002 o in EP 2 204 982 A1.
Nella procedura di filtraggio complessiva, la fase di dividere un fotogramma corrente in blocchi di pixel à ̈ cruciale per l’immagine filtrata risultante. Il numero di blocchi ottenuti à ̈ importante perché ciascun blocco deve essere abbastanza grande da consentire una buona stima del rispettivo vettore di movimento ed abbastanza piccolo da avere un numero considerevole di vettori di movimento per facilitare l’estrazione dei parametri di trasformazione inter-fotogramma.
Secondo l’invenzione si ottengono blocchi in sovrapposizione per un fotogramma di immagine in considerazione. Ciascun blocco in sovrapposizione può avere lo stesso numero di pixel X. Quindi, blocchi adiacenti sia nella direzione verticale che nella direzione orizzontale condividono un certo numero predeterminato di pixel X/Y dove Y determina il numero di pixel condivisi. Si consideri, ad esempio, un’area del fotogramma di immagine di 128 x 128 pixel. Quest’area potrebbe essere divisa in cinque blocchi: un primo blocco B0 = (0..63, 0..63), ossia comprendente i primi 64 pixel in ciascuna direzione, un secondo blocco B1 = (16..79, 16..79), un terzo blocco B2 = (32.. 95, 32..95), un quarto blocco B3 = (48.. 111, 48..111) ed un quinto blocco B4 = (64.. 127, 64..127). Dunque, anziché due blocchi non in sovrapposizione (per pixel (0..63, 0..63) e (64..127, 64..127)), nel metodo dell’invenzione si impiega un numero di pixel in sovrapposizione (in questo esempio, cinque blocchi in sovrapposizione). Dividendo il fotogramma di immagine in blocchi in sovrapposizione, à ̈ possibile aumentare il numero di vettori di movimento e blocchi da usare per determinare i parametri di trasformazione inter-fotogramma senza ridurre eccessivamente le dimensioni dei blocchi per una determinazione affidabile dei vettori di movimento.
I vettori di movimento si possono determinare allineando blocchi e ciascun blocco può comprendere un sottoinsieme di pixel che vengono usati solo per determinare i vettori di movimento. Ad esempio, ciascun blocco comprende una finestra di ricerca in corrispondenza di ciascun margine (sinistro, destro, superiore, inferiore) in cui le finestre di ricerca comprendono un numero predeterminato di pixel (marginali) che non vengono usati per determinare i vettori di movimento (allineamento blocchi) in modo da definire un movimento massimo consentito dei blocchi da un fotogramma di immagine ad un altro nelle direzioni verticale ed orizzontale.
Esperimenti hanno mostrato che l’uso di almeno 32 pixel utilizzati per l’allineamento blocchi e/o dimensioni delle finestre di ricerca in ciascuna direzione pari a più del 5% della dimensione (numero di pixel) del fotogramma di immagine in tale direzione e/o almeno 200 blocchi in cui il fotogramma di immagine viene diviso fornisce risultati soddisfacenti sia per la determinazione dei vettori di movimento che per la determinazione dei parametri di trasformazione inter-fotogramma. Occorre osservare che, in linea di principio, il metodo dell’invenzione può comprendere la divisione di fotogrammi in blocchi in sovrapposizione oppure l’uso di blocchi con finestre di ricerca non utilizzate per l’allineamento blocchi, ossia la previsione di blocchi sovrapposti e la previsione di finestre di ricerca non devono necessariamente essere combinate. Si fornisce, dunque, un metodo di filtraggio di un fotogramma di immagine di una sequenza video da un movimento spurio comprendente le fasi di dividere in blocchi di pixel il fotogramma di immagine ed un fotogramma di immagine precedente della sequenza video; determinare vettori di movimento per i blocchi del fotogramma di immagine allineando i blocchi; determinare parametri di trasformazione inter-fotogramma per il fotogramma di immagine sulla base dei vettori di movimento determinati; e generare un fotogramma di immagine filtrato in base ai parametri di trasformazione inter-fotogramma determinati; in cui ciascun blocco comprende una finestra di ricerca in corrispondenza di ciascun margine (sinistro, destro, superiore, inferiore) in cui le finestre di ricerca comprendono un numero predeterminato di pixel (marginali) che non vengono usati per determinare i vettori di movimento (allineamento blocchi). Ciascuna finestra di ricerca può comprendere 16 x 16, o 32 x 32, o 40 x 40 o 64 x 64 pixel e/o ciascun blocco può comprendere 64 x 64, 96 x 96, o 112 x 112 o 160 x 160 pixel e/o regioni in sovrapposizione dei blocchi possono comprendere 16 x 16, or 32 x 32, o 40 x 40 o 48 x 48 pixel.
Come discusso in EP 2204 982 A1 le tecniche di proiezione integrale note sono affette da problemi che sorgono quando nella scena entrano nuovi dettagli diversi o sagome regolari. Difatti, in EP 2204982 A1 à ̈ stata introdotta una nuova formula di allineamento (si vedano le equazioni 5 e 6 o 9 e 10 di tale documento). In particolare, in presenza di una sagoma regolare una curva di allineamento che rappresenta la sagoma può comprendere una pluralità di minimi o valori simili. In tal caso, si possono considerare due minimi successivi ed un massimo posizionato tra questi minimi ed à ̈ possibile evitare una erronea selezione di minimi locali secondo gli insegnamenti di EP 2204 982 A1. Per questo, si definisce una percentuale P:
P=(|min1−min2|))/(max1 −min(min1,min2 )
e se la percentuale P à ̈ minore di una soglia T predeterminata, il nuovo minimo selezionato sarà quello con la posizione inferiore (più piccolo valore assoluto sull’ascissa) tra min1 e min2, altrimenti il nuovo minimo selezionato sarà il minimo di min1 e min2).
Tuttavia, la precisione dell’allineamento insegnata in EP 2204982 A1 può ancora essere migliorata come segue (si veda anche la descrizione delle Figure 13 e 14 qui di seguito). Ossia, si determina un minimo (globale) per un pixel B(x2, y2). Quindi, si considerano anche il valore intero precedente, A(x2, y2), (valore di pixel del pixel precedente) ed il valore intero seguente, C(x2, y2), (valore di pixel del pixel precedente). Ora il compito à ̈ quello di determinare i coefficienti a, b e c dell’equazione della parabola y = ax<2>+ bx c che collega A, B e C. Si determina il vertice della parabola e questo viene considerato come il nuovo minimo. Dunque, si determina il minimo su una scala (non intera) di sottopixel in modo da migliorare la precisione del processo di allineamento.
A partire dai vettori di movimento determinati, ad esempio ottenuti in base a qualche algoritmo di allineamento blocchi noto allo stato detta tecnica, si estraggono parametri inter-fotogramma impiegando regole di eliminazione (si veda la descrizione dettagliata qui di seguito). In particolare, la presente invenzione fornisce una nuova applicazione di un filtro di istogramma durante il processo di stima di parametri inter-fotogramma (si veda anche la Figura 15 e la sua descrizione qui di seguito). Come già descritto in US 2010/124379 A1, a causa di oggetti in movimento nella scena rappresentata ci sono vettori di movimento che vengono calcolati correttamente dall’allineamento blocchi che devono essere cancellati per determinare parametri inter-fotogramma. In particolare, grandi oggetti in movimento (ad esempio con dimensioni pari al 50% del fotogramma di immagine o superiori) possono essere trattati con un filtro storico (si veda la Figura 8 di US 2010/124379 A1).
L’applicazione del filtro storico descritto in US 2010/124379 A1 si prevede anche secondo una forma di realizzazione esemplificativa del metodo ivi divulgato. La robustezza del parametro inter-fotogramma può essere ulteriormente migliorata nel modo seguente. In presenza di grandi oggetti in movimento (di dimensioni pari ad almeno il 50% dell’intero fotogramma) un istogramma di vettori di movimento mostra picchi multipli. Uno dei picchi à ̈ causato da un movimento della telecamera mentre gli altri sono causati dall’oggetto in movimento. Secondo una forma di realizzazione si utilizza un filtro di istogramma che trova il picco più alto nell’istogramma di vettori di movimento e filtra tutti (i componenti di) i vettori di movimento che sono troppo lontani dal picco più alto trovato. La decisione riguardo il “troppo lontano†viene effettuata tramite una soglia per la distanza, che si determina sulla base della massima rotazione e scala consentite. Gli istogrammi sono correlati a Vettori di Movimento trovati blocco per blocco. Sugli assi à ̈ mostrato il numero di Vettori di Movimento che hanno lo stesso valore. Una rotazione/scala consentita à ̈ l’intervallo di valori in cui si assume che essi varino. Questi valori possono essere ottenuti sperimentalmente su un insieme di sequenze di prova. Esempi sono -5° <= rotazione <= 5° e 0,9 <= scala <= 1,1.
Una forma di realizzazione del metodo dell’invenzione che fa uso del filtro di istogramma può inoltre comprendere applicare un filtro storico a vettori di movimento determinati per un fotogramma di immagine corrente comprendente determinare un primo insieme di vettori di movimento, che sono analoghi ai vettori di movimento determinati per un fotogramma di immagine precedente, ed un secondo insieme di vettori di movimento diversi ai vettori di movimento determinati per il fotogramma di immagine precedente, cancellare alcuni vettori di movimento del primo e secondo insieme di vettori di movimento e combinare gli insiemi di vettori di movimento così ridotti per ottenere un insieme combinato di vettori di movimento ed in cui il filtro di istogramma viene applicato all’insieme combinato di vettori di movimento. Il secondo insieme di vettori di movimento può essere ridotto sulla base di una matrice di errore determinata per il fotogramma di immagine precedente, come descritto qui di seguito.
Occorre osservare che l’applicazione del filtro di istogramma può essere combinata con l’impiego di blocchi in sovrapposizione e di blocchi comprendenti finestre di ricerca del tipo descritti sopra. In linea di principio, il filtro di istogramma può essere usato in un metodo per filtrare un fotogramma di immagine basato su blocchi non in sovrapposizione senza finestre di ricerca. Dunque, si prevede un metodo per filtrare da un movimento spurio un fotogramma di immagine di una sequenza video, comprendente le fasi di dividere in blocchi di pixel il fotogramma di immagine (corrente) ed un fotogramma di immagine precedente della sequenza video; determinare vettori di movimento per i blocchi del fotogramma di immagine (corrente); determinare parametri di trasformazione inter-fotogramma per il fotogramma di immagine (corrente) sulla base dei vettori di movimento determinati; e generare un fotogramma di immagine filtrato (a partire dal fotogramma di immagine corrente) sulla base dei parametri di trasformazione inter-fotogramma determinati; e comprendente inoltre applicare un filtro di istogramma ai vettori di movimento determinati per filtrare vettori di movimento che sono troppo lontani (oltre una soglia predeterminata) da un picco più alto trovato in un istogramma dei vettori di movimento generato. Si prevede anche nel presente documento un dispositivo mobile per catturare video (ad esempio una video camera digitale, un telefono mobile oppure una telecamera digitale) comprendente un processore configurato per eseguire le fasi dei metodi secondo uno degli esempi descritti sopra.
Ulteriori caratteristiche e vantaggi della presente invenzione verranno descritti con riferimento ai disegni. Nella descrizione, si fa riferimento alle unite figure che hanno lo scopo di illustrare forme di realizzazione dell’invenzione. Va da sé che tali forme di realizzazione non rappresentano la portata completa dell’invenzione.
La Figura 1 illustra fasi di base di un esempio del metodo di stabilizzazione di video digitali ivi descritto.
La Figura 2 illustra un blocco comprendente finestre di ricerca in corrispondenza del margine e pixel usati per l’allineamento.
La Figura 3 mostra una tabella con figure tipiche per le dimensioni di finestre di ricerca e blocchi nonché numeri di blocchi.
La Figura 4 illustra blocchi in sovrapposizione.
La Figura 5 mostra una tabella con valori tipici per dimensioni di finestre di ricerca e blocchi e regioni di sovrapposizione nonché numeri di blocchi.
La Figura 6 mostra due curve successive che differiscono tra loro per la variazione di illuminazione.
Le Figure 7 e 8 mostrano un allineamento ideale ed un allineamento non corretto secondo il metodo di proiezione integrale, rispettivamente, per un cambio di illuminazione.
La Figura 9 mostra una risposta di un filtro passa alto per pre-filtrare caratteristiche di riga/colonna.
La Figura 10 mostra un risultato di allineamento ottenuto con il filtro illustrato in Figura 9.
La Figura 11 mostra un risultato di corrispondenza ottenuto per mezzo di un filtro passa banda Butterworth IIR.
La Figura 12 illustra una risposta di un filtro usato per ottenere il risultato mostrato in Figura 11.
Le Figure 13 e 14 illustrano un allineamento di sotto-pixel secondo un esempio della presente invenzione.
La Figura 15 illustra il processo per determinare parametri di trasformazione interfotogramma.
La Figura 16 illustra una selezione di blocchi per la determinazione di vettori di movimento.
La Figura 17 mostra un istogramma ottenuto a partire da componenti di vettore di movimento.
La Figura 18 mostra un istogramma ottenuto a partire da componenti di vettore di movimento nel caso di un grande oggetto in movimento prima (diagramma di sinistra) e dopo (diagramma di destra) l’applicazione di un filtro di istogramma secondo un esempio della presente invenzione.
La Figura 19 illustra un processo per ottenere parametri di modello di similitudine. La Figura 20 mostra una propagazione di errore nel calcolo di una matrice di errore.
Nel seguito viene descritto con riferimento alla Figura 1 un esempio del metodo dell’invenzione per stabilizzare video digitali. In una prima fase, si esegue una stima di un movimento di blocchi. In questa fase, si stimano vettori di movimento per i fotogrammi video in ingresso che sono divisi in blocchi. Inoltre, si calcolano partico lari parametri che sono usati nella seconda fase successiva di estrazione parametri. Quando i fotogrammi vengono divisi in blocchi occorre trovare, in linea di principio, alcuni compromessi tra blocchi abbastanza grandi da consentire una stima di movimento affidabile e blocchi abbastanza piccoli da facilitare una buona estrazione dei parametri. Secondo questo esempio, non tutti i pixel di un blocco sono usati per la stima di movimento. Piuttosto, si definiscono finestre di ricerca, ossia i massimi movimenti consentiti nelle direzioni orizzontale e verticale (si veda la Figura 2). Un tipico numero di pixel che consente una stima di movimento affidabile à ̈ 32 o più. Tipiche figure della divisione di blocchi provate per consentire una stima di movimento affidabile sono mostrate in Figura 3. Tuttavia, per una buona estrazione dei parametri sono necessari più blocchi di quelli mostrati in Figura 3. Più blocchi consentono una stima di più vettori di movimento.
Secondo un esempio si possono usare blocchi sovrapposti con due parametri: O-verlapX e OverlapY, che rappresentano il numero di pixel da traslare a partire dall’origine del fotogramma per ottenere il nuovo blocco, rispettivamente nelle direzioni orizzontale e verticale. Un esempio à ̈ mostrato in Figura 4. In questo caso, la dimensione orizzontale dei blocchi à ̈ BlocksizeX = 64 e la sovrapposizione orizzontale OverlapX = 16, per cui il primo blocco (non sovrapposto (normale)) à ̈ dato da B0=(0..63, 0..63), mentre il secondo blocco à ̈ dato da B1=(16..79, 16..79) e così via fino al blocco B4=(64..127,64..127). Pertanto, anziché due blocchi nell’area del fotogramma di 128x64 pixel, otteniamo cinque blocchi. In generale, per conoscere il numero totale di blocchi BlockNumber, si applica la seguente formula:
BlockNumberX =((Width−BlockSizeX )/OverlapX ) 1 BlockNumberY =((Height−BlockSizeY )/OverlapY ) 1 BlockNumber = BlockNumberX ⋅BlockNumbe rY
in cui Width e Height sono le dimensioni orizzontale e verticale dell’immagine, mentre BlockSizeX e BlockSizeY sono le dimensioni orizzontale e verticale del blocco. Un numero adatto di blocchi à ̈, ad esempio, 200 o più.
Successivamente, si esegue l’estrazione di caratteristiche sulla base di curve caratteristiche orizzontali e verticali. Le caratteristiche riga/colonna (RCF) lungo le dimensioni orizzontale (m) e verticale (n) possono essere calcolate a partire da m
RCF x
k (j ) = ∑ p ij
i = 1
n
RCF y
k<(>i<)>= ∑ p ij
j = 1
come descritto in EP 2204982 A1 (pijà ̈ il valore di pixel in posizione (i,j)).
Il blocco di elaborazione segnale della prima fase illustrato in Figura 1 affronta i problemi di ridurre l’illuminazione di cambio scena e gli effetti di sfocatura del movimento, mentre tecniche di proiezione integrale originale (M. Kim, E. Kim, D. Shim, S. Jang, G. Kim, e W. Kim, "An Efficient Global Motion Characterization Method for Image Processing Applications," IEEE Trans. On Consumer Electronics, pagine 1010-1018, Nov. 1997 ; Y. Koo and W. Kim, "An Image Resolution Enhancing Technique Using Adaptive Sub-Pixel Interpolation For Digital Still Camera System", IEEE Transactions On Consumer Electronics, Vol.45, No.1., February 2005) sono affette da questo tipo di problemi. Per illustrare l’effetto di cambi di illuminazione nelle caratteristiche di riga/colonna calcolate, si fornisce il seguente esempio. In Figura 6 sono visualizzate due curve successive. Occorre osservare che la forma delle curve à ̈ realmente simile, ma i valori sono leggermente differenti per i cambi di illuminazione di scena. I risultati dell’allineamento ideale (-29) sono mostrati in Figura 7. Con il metodo di proiezione integrale classico, l’allineamento non à ̈ corretto, come indicato in Figura 8. Principalmente le variazioni dinamiche alte che si verificano attorno al punto 1600 causano il fallimento del metodo. Il metodo di proiezioni integrali, in particolare, à ̈ affetto dai forti bordi attorno al punto 1600.
È stato osservato che migliori risultati di stabilizzazione si possono ottenere prefiltrando le caratteristiche di riga/colonna con un filtro passa alto (HPF), migliorando in tal modo i picchi di curva ottenuti nel seguente modo:
C fil
x =Cx−(C x ⊗LPF )
C fil
y =Cy−(C y ⊗LPF )
Un filtro passa basso (LPF) con 16 uno (ossia [1111111111111111]/16) consente di ottenere un HPF semplice, con buoni risultati e costi aggiuntivi bassi, tramite sottrazione dei dati filtrati da quello originale. La risposta del filtro à ̈ mostrata in Figura 9. Nell’esempio proposto, con questo semplice filtro, otteniamo un buon allineamento (-29), come mostrato in Figura 10. Questa soluzione fornisce buoni risultati ed à ̈ semplice da implementare (solo 15 operazioni di somma ed una traslazione per campione). Occorre notare che, in alternativa, si potrebbe usare un filtro passa banda (BPF) Butterworth IIR. Esperimenti hanno mostrato che, per esempio, à ̈ adatto un filtro di secondo ordine Direct form II con frequenze di taglio w1=0,01 Hz e w2=0,20 Hz. I risultati di allineamento e la risposta di grandezza ottenuti con un tale filtro sono mostrati nelle Figure 11 e 12.
Un altro problema da affrontare à ̈ la sfocatura del movimento. Il filtro passa banda (BPF) Butterworth IIR menzionato à ̈ particolarmente adatto ad affrontare questo problema. In alternativa, si può usare un HPF Butterworth FIR (si veda la descrizione dettagliata in EP 2204982 A1).
Il blocco di allineamento di fase 1 di Figura 1 affronta i problemi generati da nuovi dettagli che entrano nella scena catturata da mezzi per la cattura di immagini e che tengono conto di caratteristiche di caratteristiche di sagoma regolari come descritto anche in EP 2204982 A1.
Secondo una forma di realizzazione della presente invenzione, per aumentare la precisione dell’allineamento, si esegue una stima di sotto-pixel.
Consideriamo tre punti nell’allineamento: il minimo scelto (B) ed il valore intero precedente (A) e seguente (C). Con questi tre punti tendiamo a determinare la parabola che passa per questi tre punti ed il nuovo minimo scelto sarà il minimo della parabola ottenuta.
Si considerino, ad esempio, i tre punti A=(x1,y1), B=(x2,y2) e C=(x3,y3). Il problema à ̈ determinare i coefficienti a, b, c dell’equazione della parabola y = ax<2>+bx+c passante per i punti A,B,C. La soluzione à ̈ la seguente:
a=(x1â‹…(y3 - y2 )-x2â‹…y3 x3â‹…y2 (x2 -x3 ) â‹…y 1)/d en;
b=-(x 2â‹…(y - y )-x 2â‹…y x 2
1 3 2 2 3 3 â‹…y2 (x 2
2 -x 2
3 ) â‹…y 1)/d en;
c=(x1â‹…(x 2
3 â‹…y2 -x 2
2 â‹…y3 )+x 2
1 â‹…(x2â‹…y3 -x3â‹…y2 )+(x 2
2 â‹…x3 -x2â‹…x 2
3 ) â‹…y 1)/d en;
den=(x â‹…(x 2 -x 2
2 )-x2â‹…x 2
3 x 2
2 â‹…x3 x 2
1 3 1 â‹…(x2 -x 3 ));
Per ottimizzare il numero delle operazioni necessarie, possiamo semplificare nel modo seguente:
a=(t1-t2+t3 t 4 )/den;
b=-(x1â‹…t1-x2â‹…t2+x3â‹…t3+x2â‹…t4a-x3 â‹…t 4b )/den;
c=(-x22â‹…t1a+x32â‹…t1b+x12â‹…t2-x12â‹…t3-x32â‹…t4a+x22 â‹…t 4b )/den;
den=(x12â‹…(x2-x3)+x22â‹…(x3-x1)+x32 â‹…(x1-x 2 ));
dove:
t1a=x1·y3 ; t1b=x1·y2 ; t1 = t1a -t 1b ;
t2=x2·y3 ; t3 =x3·y 2 ;
t4a=x2·y1 ; t4b=x3·y1 ; t4 = t4a -t 4b ;
x =x 2
1 ; x22=x 2
2 ; x32 =x 2
12 3 ;
Poiché il vertice della parabola (che à ̈ il minimo che stiamo cercando) à ̈ nella posizione V = (Vx,Vy)=(-b/(2·a), (4·a·c-b<2>)/(4·a)), il numero totale di operazioni per calcolarlo à ̈: 22 somme, 2 traslazioni, 25 moltiplicazioni e 5 divisioni.
In particolare, siamo interessati solo al calcolo di Vx:
Vx=-b/(2â‹… a)=(x1â‹…t1-x2â‹…t2+x3â‹…t3+x2â‹…t4a-x3â‹…t4b)/(2â‹…(t1-t2+t3+t4)); dove t1, t2, t3, t4a, t4be t4sono come (11). Così il numero totale di operazioni per calcolare Vxà ̈: 10 somme, 1 traslazione, 11 moltiplicazioni e 1 divisione.
Possiamo ottimizzare ulteriormente il calcolo di Vxnel modo seguente:
Vx=-b/(2â‹… a)=(x1â‹…t1+x2â‹…t2+x3â‹…t3 )/(2â‹…(t1+t2 t 3 ));
t1=x1â‹…(y3-y2 ); t2=x2â‹…(y1-y3 ); t3=x3 â‹…(y2-y 1 );
Così le operazioni totali per calcolare Vxsono ridotte ulteriormente: 7 somme, 1 traslazione, 6 moltiplicazioni e 1 divisione.
Solo a titolo di esempio, se consideriamo i tre punti A=(x1,y1)=(-5, 5111), B=(x2,y2)=(-4, 4259) e C=(x3,y3)=(-3, 4259), otteniamo V=(Vx,Vy)=(-3.5, 4152.5), che à ̈ esattamente sulla metà dei punti B e C, poiché essi hanno la medesima coordinata y, come indicato in Figura 13. Nel caso in cui i due punti vicini al vertice non abbiano la medesima coordinata y, il vertice verrà situato in prossimità del punto che possiede la minore coordinata y, come mostrato in Figura 14.
Nel calcolo del vertice Vx, il parametro a assume un ruolo importante. Difatti, se a à ̈ maggiore di zero, allora la parabola à ̈ convessa con il vertice in basso; se a à ̈ minore di zero, allora la parabola à ̈ concava, con il vertice in alto; se a à ̈ uguale a zero, allora abbiamo una linea. Poiché siamo interessati al calcolo del minimo della parabola, a deve essere sempre maggiore di zero.
La seconda fase mostrata in Figura 1 riguarda l’estrazione di parametri. A partire da una coppia di fotogrammi consecutivi (I(t), I(t-1)) si calcolano parametri di trasformazione inter-fotogramma: il parametro zoom λ, l’angolo di rotazione Î ̧, le traslazioni lungo l’asse X e l’asse Y, rispettivamente Txe Ty,. I blocchi di base di fase 2 sono descritti in US 2010124379 A1. La Figura 15 illustra un algoritmo di stima del movimento secondo un esempio della presente invenzione. A confronto con l’algoritmo descritto in US 2010124379 A1, in particolare, secondo il nuovo esempio dell’invenzione si utilizza un filtro di istogramma. Per ridurre la complessità dell’algoritmo occorre effettuare un’opportuna selezione dei blocchi usati per il calcolo di vettori di movimento locali. La selezione tiene conto della storia dei blocchi (tipicamente un buon blocco al tempo t à ̈ anche affidabile al tempo t+1) e di un inserimento casuale (occorre considerare la variabilità delle condizioni di scena). In un’applicazione in tempo reale occorre impostare un limite superiore fisso del numero di operazioni. In particolare, deve essere noto in anticipo il numero massimo di blocchi in cui calcolare un vettore di movimento locale. Chiamiamo questo limite superiore maxVectorsNumber. L’algoritmo considera due soglie percentuali: selectHistory e selectRandom (la loro somma à ̈ pari ad uno). Queste soglie decidono il numero di vettori selezionati per la loro storia (selectHistory*maxVectorNumber) oppure in un modo casuale (selectRandom* maxVectorNumber). Un modulo di calcolo matrice di errore fornisce informazioni circa la storia di ciascun blocco (matrice booleana Mb). Queste informazioni sono il punto di partenza dell’algoritmo di selezione. Per prima cosa, le posizioni di blocchi affidabili fornite da Mbvengono propagate nelle zone limitrofe tramite operatori morfologici producendo una matrice di posizioni Bmo. Questa fase realizza considerazioni di similitudine spaziale (tipicamente i vettori vicini ad un buon vettore sono vettori affidabili) e migliora le prestazioni di un modulo di pre-filtraggio (si veda di seguito). Infatti, alcuni criteri di filtraggio tengono conto del comportamento dei vettori adiacenti e non lavorano in modo appropriato in assenza di un vicino. Per soddisfare il requisito di limite superiore si esegue anche una fase di sfoltimento. Questa fase elimina i vettori in eccesso in modo uniforme. Chiamiamo la nuova matrice di posizioni Bmop. Dunque, sono stati considerati lontani al più i vettori selectHistory*maxVectorNumber. I vettori rimanenti vengono quindi selezionati in modo casuale. Per fornire informazioni sui vettori adiacenti a ciascun blocco selezionato, essi vengono scelti in gruppi di quattro. Inoltre, per forzare una distribuzione spaziale uniforme à ̈ stato sviluppato il seguente algoritmo (si veda la Figura 16):
1. L’immagine di un rettangolo viene trasformata in un’immagine di quadrato. Il bordo del quadrato à ̈ uguale alla più piccola dimensione di rettangolo.
2. L’immagine di quadrato viene divisa in M<2>regioni di quadrato. Se dobbiamo selezionare N gruppi di blocchi, M à ̈ il più piccolo intero che soddisfa M<2>> N.
3. Si selezionano in modo casuale N regioni di quadrato tra le M<2>disponibili. 4. Per ciascuna regione selezionata si seleziona in modo casuale un punto reale.
5. Le coordinate 2D dei punti selezionati vengono trasformate nel rettangolo originale e quantizzate.
Per coprire possibili sovrapposizioni, le fasi sopra elencate vengono ripetute iterativamente fino a quando non à ̈ stato posizionato ogni gruppo di blocchi. Ciascuna nuova iterazione parte con gli elementi residui (blocchi non ancora inseriti) di quella precedente. Tuttavia, il numero complessivo di iterazioni da eseguire deve essere fissato in anticipo (à ̈ necessario un limite superiore per soddisfare i requisiti di calcolo in tempo reale). Per sommare la fase di inserimento casuale, partendo da Bmop,si calcola una matrice di posizioni Bs. Questa matrice, insieme ai fotogrammi in ingresso al tempo t e t − 1, à ̈ l’ingresso del modulo stimatore locale mostrato in Figura 15.
Lo stimatore di movimento locale calcola tipicamente molti vettori di movimento errati. Per filtrare questi vettori che non sono utili per una stima di movimento globale, facciamo uso delle seguenti considerazioni:
• I valori IP_Error_x e IP_Error_y devono essere bassi (allineamento efficace).
• I vettori di movimento locali devono condividere valori simili nei propri vettori limitrofi (continuità di movimento).
• Vettori di movimento locale che fanno riferimento a blocchi omogenei non sono affidabili.
Le regole di cui sopra sono state derivate dopo una fase sperimentale esaustiva volta ad ottenere un opportuno compromesso tra una complessità totale e vincoli in tempo reale. Secondo la considerazione precedente abbiamo derivato cinque indici: IP_Error_x e IP_Error_y (bontà dell’allineamento), NS (similitudine di vettori limitrofi), DispX e DispY.
IP_Error_x, IP_Error_y e gli indici di disomogeneità (DispX e DispY) sono stati già calcolati durante la fase di allineamento delle curve. NS viene calcolato nel seguente modo:
1 1 1
NS<(>i , j<)>= ∑∑Mvx<(>i, j<)>−Mvx<(>i+k, j+h<)>+ Mvy<(>i, j<)>−Mvy<(>i+k , j h<)>8 k= − 1 h= − 1
dove Mvx(i,j) e Mvy(i,j) sono i vettori di movimento rispettivamente in direzione orizzontale e verticale del blocco in posizione (i,j).
Come già menzionato sopra, in EP 2204982 A1 à ̈ stata introdotta una nuova formula di allineamento (si vedano le equazioni 9 e 10)
M −max_ s
P (s)= RCF F1
v ( j)−RCF F 2
h v ( j s )
j = ∑max_ s
offh={s′:Ph(s′)=minP h(s ) }
N −max_ s
P(s)= RCF F1
h (i)−RCF F 2
v h (i s )
i =m ∑ax_ s
offv={s′:Pv(s′)=minP v(s) }
con la curva di accoppiamento PÎ1⁄2(s) ed i parametri RCFhe RCFvper un’immagine F nelle direzioni orizzontale e verticale
m
RCF x
k (j ) = ∑ p ij
i = 1
n
RCF y
k<(>i<)>= ∑ p ij
j = 1
dove pij denota il valore di pixel in posizione (i, j). IP_Error_x = min Ph(s) e IP_Error_y = min Pv(s) sono i valori di errore di allineamento forniti dallo stimatore locale in base a proiezioni integrali DispX = (max RCF<x>min RCF<x>) e DispY = (max RCF<y>- min RCF<y>) sono la differenza tra i valori massimo e minimo delle curve di proiezione integrale.
Il modulo Prefiltering filtra i vettori di movimento locale calcolando dapprima i valori IP_Error_x, IP_Error_y, NS, DispX, DispY. Tutti i vettori con entrambi DispX e DispY minori di thHom(una soglia fissata sperimentalmente) vengono filtrati. A partire dai vettori VIPvengono prodotti vettori Vpf2. I vettori Vpf2vengono quindi ordinati in ordine ascendente secondo i valori IP_Error_x, IP_Error_y (e NS) etichettando come cancellati anche una percentuale ppf1(ppf2) di vettori con valori IP_Error_x, IP_Error_y (NS) elevati. Inoltre, vettori Vpf2sono ordinati in ordine discendente secondo valori DispX (e DispY), etichettando come cancellati una percentuale ppf3di vettori con valori DispX (DispY) bassi. Infine, i vettori etichettati vengono scartati ottenendo come uscita finale un insieme di vettori Vpf.
I filtraggi descritti sopra sono volti ad eliminare tutti i vettori errati calcolati da un generico algoritmo BM. Tuttavia, a causa di oggetti in movimento nella scena, esistono vettori correttamente calcolati da BM (quindi non filtrati da un modulo Prefiltering) che devono essere cancellati per avere una buona stima di parametri interfotogramma. Se gli oggetti in movimento non sono molto grandi, i loro vettori verranno probabilmente scartati da un modulo di stima robusto. Al contrario, se gli oggetti in movimento sono molto grandi (anche più grandi del 50% della scena) informazioni di immagine singola non sono sufficienti a filtrare questi vettori.
Per rendere il nostro algoritmo robusto a tale situazione, un modulo History (Memory) filter usa informazioni su immagini precedenti. Tutti i vettori Vpfvengono divisi in Vpfnew(vettori non appartenenti a Vpfall’iterazione precedente t − 1) e VpfOld(vettori appartenenti a Vpfall’iterazione precedente t − 1). Una percentuale pmf1dei vettori Vpfnewviene poi scartata. Essi vengono considerati meno affidabili dei vettori VpfOld. Chiamiamo i vettori rimanenti (non scartati) VpfnewF. Secondo valori di errore vettore Me(t−1) si ordinano e filtrano vettori VpfOld(una percentuale pmf2con errore elevato). Chiamiamo i vettori rimanenti (non scartati) VpfOldF. Infine, i vettori VpfnewFeVpfOldFvengono messi insieme in Vf.
L’impiego di un filtro di istogramma rappresenta un aspetto nuovo del metodo dell’invenzione. Questa fase innovativa migliora la robustezza dell’approccio proposto in presenza di oggetti in movimento nella scena. A causa della limitata quantità di fattore di rotazione e zoom coinvolto nelle applicazioni mobili, le componenti di vettore di movimento ed i parametri di traslazione dovrebbero avere valori confrontabili. Considerando un istogramma 2D di componenti di vettore di movimento, i vettori hanno tipicamente le caratteristiche illustrate in Figura 17: i vettori di movimento sono molto vicini tra loro. In presenza di grandi oggetti in movimento l’istogramma 2D contiene picchi multipli, come illustrato in Figura 18 prima (figura di sinistra) e dopo (figura di destra) l’applicazione del filtro di istogramma. Solo un picco corrisponde al movimento della videocamera, l’altro à ̈ correlato ad un oggetto in movimento che entra nella scena. Il filtro di istogramma trova il picco più alto nell’istogramma 2D e filtra tutti i vettori che sono troppo lontani da esso (sulla base di una certa soglia predefinita determinata in base alla massima rotazione ed alla scala consentita). I vettori rimanenti (Vhf) vengono quindi propagati verso il modulo stimatore robusto (si veda la Figura 15).
Un movimento globale tra fotogrammi adiacenti può essere stimato con un modello di similitudine bidimensionale, usualmente un buon compromesso tra efficacia e complessità. Questo modello esemplificativo descrive un movimento interfotogramma usando quattro parametri differenti, precisamente due traslazioni, un angolo di rotazione ed un fattore di zoom, ed associa un punto (xi, yi) nel fotogramma Inad un punto (xf, yf) nel fotogramma In+1 con la seguente trasformazione:
ï£ ́xf = xiλcosÎ ̧ − yiλ sin Î ̧ T x

ï£ ́yf = xiλsinÎ ̧ yiλ cos Î ̧ T y
dove λ à ̈ il parametro di zoom, Î ̧ l’angolo di rotazione, Txand Tyrispettivamente traslazioni lungo l’asse X e l’asse Y. Considerando N vettori di movimento otteniamo il seguente sistema lineare sovravincolato:
dove a=λ cos Î ̧ , b=λ sin Î ̧ , c =Tx, d =Ty.
Il calcolo di vettori può essere influenzato da rumore per cui à ̈ utile applicare un metodo ai minimi quadrati lineare su un insieme di equazioni ridondanti per ottenere il vettore di parametri.
p=(A<t>⋅A)<−1>⋅A<t>⋅ b
Tutti i parametri λ, Î ̧, Tx, Tydel modello di similitudine possono essere derivati facilmente da componenti del vettore p nel modo seguente:
λ = a2 b 2
Î ̧ = tan −1 (b a )
T x = c
T y = d
L’intero insieme di vettori di movimento locali include probabilmente allineamenti errati o allineamenti corretti che appartengono ad oggetti in auto movimento nella scena filmata. Ovviamente, esistono alcune coppie corrette che rappresentano scuotimenti reali della telecamera ma diversi punti semplicemente non riguardano tale informazione. Il metodo ai minimi quadrati non si comporta bene quando c’à ̈ una grande porzione di valori anomali nel numero totale di caratteristiche, come in questo caso. Tuttavia, valori anomali possono essere identificati, filtrati dal processo di stima, il che si traduce in una migliore precisione.
Per ottenere prestazioni in tempo reale abbiamo implementato una tecnica di scarto rapido:
• A partire dai valori Vhfvalori si calcola una prima stima ai minimi quadrati dei parametri di trasformazione inter-fotogramma (λ1, Î ̧1, Tx1, Ty1).
• Vettori di movimento i cui componenti lungo gli assi x ed y sono troppo lontani dai valori di traslazione (Tx1, Ty1) calcolati in precedenza vengono filtrati. A causa della quantità limitata di rotazione e di fattore di zoom coinvolta nelle applicazioni mobili, le componenti dei vettori di movimento ed i parametri di traslazione dovrebbero avere valori vicini tra loro.
• Per ciascun elemento Vdsi calcolano due misure di errore (E1, E2) date dalla seguente formula:
E 1 =e2
x e 2
y
2
( (xs −xi )⋅ (xf −xi )+ (ys − yi )⋅ (yf − y i ) )
E 2 =
snorm1 â‹… snorm 2
2 2
snorm 1 = (xs −xi ) (ys − y i )
2 2
snorm 2 = (xf −xi ) (yf − y i )
ex = xs − x f
ey = ys − y f
dove (xi, yi) à ̈ il centro del blocco (correlato ad un vettore) nel fotogramma t−1, (xf, yf) à ̈ la posizione del blocco in corrispondenza di un fotogramma t calcolato dallo stimatore di vettori di movimento locali e (xs, ys) à ̈ la posizione stimata secondo parametri inter-fotogramma (λ1, Î ̧1, Tx1, Ty1).
Secondo l’errore E1 (ed E2), si ordinano tutti gli elementi Vdin ordine crescente e si filtra una percentuale con alto valore di errore. Chiamiamo Vsi vettori rimanenti (non filtrati). A partire dai valori Vssi calcola la stima ai minimi quadrati dei parametri di trasformazione inter-fotogramma (λ, Î ̧, Tx, Ty).
In Figura 19 à ̈ mostrato un diagramma che descrive come lavora il blocco di stima robusta. La misura di errore E1 à ̈ il quadrato della distanza euclidea tra i vettori di movimento stimato e misurato, mentre E2 à ̈ il quadrato del coseno dell’angolo tra essi. E1 ed E2 talvolta sbagliano considerando affidabili vettori che differiscono realmente molto rispetto al movimento di fotogramma reale. Tuttavia combinandoli questi errori di valutazione diminuiscono drasticamente.
Infine, viene calcolata una matrice di errore (si veda la Figura 15). Per ciascun elemento Vpfsi calcola un errore (distanza euclidea) usato per riempire la matrice di errore Me. Questa metrica à ̈ semplice da calcolare ed atta a distinguere efficace mente vettori appartenenti ad oggetti che entrano nella scena e vettori che descrivono movimenti della scena. Solitamente, Vpf(t) contiene elementi corrispondenti a blocchi che non erano presenti in Vpf(t − 1). Quindi, alcuni vettori non hanno un ingresso Mequando sono considerati nel filtro storico. Per risolvere parzialmente questo problema, propaghiamo il valore di vettori di errore nei dintorni semplicemente copiando ciascun valore di errore nei suoi dintorni senza un valore associato. L’algoritmo viene calcolato da sinistra a destra, dall’alto in basso, come illustrato in Figura 20.
Tutte le forme di realizzazione discusse in precedenza non sono intese come limitazioni, ma fungono da esempi che illustrano caratteristiche e vantaggi dell’invenzione. Va da sé che tutte le caratteristiche descritte sopra possono anche essere combinate in modi diversi.

Claims (12)

  1. RIVENDICAZIONI 1. Metodo per filtrare da un movimento spurio un fotogramma di immagine di una sequenza video comprendente le fasi di dividere in blocchi di pixel il fotogramma di immagine ed un fotogramma di immagine precedente della sequenza video; determinare vettori di movimento per i blocchi del fotogramma di immagine; determinare parametri di trasformazione inter-fotogramma per il fotogramma di immagine in base ai vettori di movimento determinati; generare un fotogramma di immagine filtrato in base ai parametri di trasformazione inter-fotogramma determinati; in cui l’immagine à ̈ divisa in blocchi in sovrapposizione.
  2. 2. Metodo secondo la rivendicazione 1, in cui i vettori di movimento sono determinati tramite allineamento di blocchi e ciascun blocco comprende un sottoinsieme di pixel che vengono usati solo per determinare i vettori di movimento.
  3. 3. Metodo secondo la rivendicazione 2, in cui almeno 32 pixel sono usati per l’allineamento di blocchi e/o la dimensione della finestra di ricerca in ciascuna direzione à ̈ maggiore del 5% della dimensione del fotogramma di immagine in quella direzione e/o il numero di blocchi in cui l’immagine à ̈ divisa à ̈ almeno 200.
  4. 4. Metodo secondo la rivendicazione 2 o 3, in cui ciascuna finestra di ricerca comprende 16 x 16, o 32 x 32, o 40 x 40 o 64 x 64 pixel e/o ciascun blocco comprende 64 x 64, 96 x 96, o 112 x 112 o 160 x 160 pixel e/o le regioni di sovrapposizione dei blocchi comprendono 16 x 16, o 32 x 32, o 40 x 40 o 48 x 48 pixel.
  5. 5. Metodo secondo una delle rivendicazioni precedenti, comprendente inoltre una determinazione di sotto-pixel di un minimo di una curva di allineamento per una sagoma regolare compresa nel fotogramma di immagine.
  6. 6. Metodo secondo la rivendicazione 5, in cui la determinazione di sotto-pixel si basa su un’equazione di una parabola.
  7. 7. Metodo secondo una delle rivendicazioni precedenti, comprendente inoltre il generare un istogramma di vettori di movimento determinati ed applicare un filtro di istogramma ai vettori di movimento determinati per trovare un picco più alto nell’istogramma e filtrare i vettori di movimento con una distanza dal picco più alto trovato maggiore di una soglia predeterminata.
  8. 8. Metodo secondo la rivendicazione 7, comprendente inoltre applicare un filtro storico a vettori di movimento determinati per un fotogramma di immagine corrente comprendente determinare un primo gruppo di vettori di movimento uguali ai vettori di movimento determinati per un fotogramma di immagine precedente ed un secondo gruppo di vettori diversi dai vettori di movimento determinati per il fotogramma di immagine precedente, cancellare alcuni vettori di movimento del primo e del secondo gruppo di vettori di movimento e combinare i gruppi così ridotti di vettori di movimento per ottenere un gruppo combinato di vettori di movimento ed in cui il filtro di istogramma viene applicato al gruppo combinato di vettori di movimento.
  9. 9. Metodo secondo la rivendicazione 8, in cui il secondo gruppo di vettori di movimento viene ridotto in base ad una matrice di errore per il fotogramma di immagine precedente.
  10. 10. Prodotto programma per calcolatore comprendente uno o più mezzi leggibili da un calcolatore aventi istruzioni eseguibili da un calcolatore per eseguire le fasi del metodo secondo una delle rivendicazioni precedenti.
  11. 11. Dispositivo mobile per catturare video comprendente un processore configurato per eseguire le fasi dei metodi secondo una delle rivendicazioni da 1 a 9.
  12. 12. Dispositivo mobile per catturare video secondo la rivendicazione 11, in cui il dispositivo mobile per catturare video à ̈ una videocamera digitale, un telefono cellulare oppure una telecamera digitale.
IT000087A 2012-04-17 2012-04-17 Stabilizzazione video digitale ITVI20120087A1 (it)

Priority Applications (2)

Application Number Priority Date Filing Date Title
IT000087A ITVI20120087A1 (it) 2012-04-17 2012-04-17 Stabilizzazione video digitale
US13/841,583 US9100573B2 (en) 2012-04-17 2013-03-15 Low-cost roto-translational video stabilization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT000087A ITVI20120087A1 (it) 2012-04-17 2012-04-17 Stabilizzazione video digitale

Publications (1)

Publication Number Publication Date
ITVI20120087A1 true ITVI20120087A1 (it) 2013-10-18

Family

ID=46178732

Family Applications (1)

Application Number Title Priority Date Filing Date
IT000087A ITVI20120087A1 (it) 2012-04-17 2012-04-17 Stabilizzazione video digitale

Country Status (2)

Country Link
US (1) US9100573B2 (it)
IT (1) ITVI20120087A1 (it)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9374532B2 (en) * 2013-03-15 2016-06-21 Google Inc. Cascaded camera motion estimation, rolling shutter detection, and camera shake detection for video stabilization
TWI542201B (zh) * 2013-12-26 2016-07-11 智原科技股份有限公司 降低視訊畫面抖動的方法與裝置
CN106991418B (zh) * 2017-03-09 2020-08-04 上海小蚁科技有限公司 飞虫检测方法、装置及终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0613020A1 (en) * 1993-02-25 1994-08-31 Sony Corporation Object tracking apparatus
US5742710A (en) * 1994-02-23 1998-04-21 Rca Thomson Licensing Corporation Computationally-efficient method for estimating image motion
EP2058760A1 (en) * 2007-11-12 2009-05-13 Qualcomm Incorporated Block based image stabilization
US20110211083A1 (en) * 2010-03-01 2011-09-01 Stmicroelectronics, Inc. Border handling for motion compensated temporal interpolator using camera model

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1013718A (ja) 1996-06-18 1998-01-16 Oki Electric Ind Co Ltd ノイズ除去回路
JP4596718B2 (ja) 1999-08-11 2010-12-15 ノキア コーポレイション 適応動きベクトル場符号化
US6687301B2 (en) 2001-03-19 2004-02-03 Fulvio Moschetti Method for block matching motion estimation in digital video sequences
JP4724351B2 (ja) 2002-07-15 2011-07-13 三菱電機株式会社 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法、および通信装置
WO2004114063A2 (en) 2003-06-13 2004-12-29 Georgia Tech Research Corporation Data reconstruction using directional interpolation techniques
US7660475B2 (en) 2004-12-22 2010-02-09 Ntt Docomo, Inc. Method and apparatus for coding positions of coefficients
US20070076982A1 (en) 2005-09-30 2007-04-05 Petrescu Doina I System and method for video stabilization
JP4304528B2 (ja) 2005-12-01 2009-07-29 ソニー株式会社 画像処理装置および画像処理方法
JP4178480B2 (ja) 2006-06-14 2008-11-12 ソニー株式会社 画像処理装置、画像処理方法、撮像装置および撮像方法
KR100809354B1 (ko) * 2007-02-02 2008-03-05 삼성전자주식회사 복원된 프레임의 프레임율을 업컨버팅하는 장치 및 방법
US8150181B2 (en) 2008-11-17 2012-04-03 Stmicroelectronics S.R.L. Method of filtering a video sequence image from spurious motion effects
US8107750B2 (en) 2008-12-31 2012-01-31 Stmicroelectronics S.R.L. Method of generating motion vectors of images of a video sequence

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0613020A1 (en) * 1993-02-25 1994-08-31 Sony Corporation Object tracking apparatus
US5742710A (en) * 1994-02-23 1998-04-21 Rca Thomson Licensing Corporation Computationally-efficient method for estimating image motion
EP2058760A1 (en) * 2007-11-12 2009-05-13 Qualcomm Incorporated Block based image stabilization
US20110211083A1 (en) * 2010-03-01 2011-09-01 Stmicroelectronics, Inc. Border handling for motion compensated temporal interpolator using camera model

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JOZAWA H ET AL: "Interframe video coding using overlapped motion compensation and perfect reconstruction filter banks", SPEECH PROCESSING 1. SAN FRANCISCO, MAR. 23 - 26, 1992; [PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING (ICASSP)], NEW YORK, IEEE, US, vol. 4, 23 March 1992 (1992-03-23), pages 649 - 652, XP010059043, ISBN: 978-0-7803-0532-8, DOI: 10.1109/ICASSP.1992.226314 *

Also Published As

Publication number Publication date
US20130286241A1 (en) 2013-10-31
US9100573B2 (en) 2015-08-04

Similar Documents

Publication Publication Date Title
US11341750B2 (en) Quasi-parametric optical flow estimation
US9681150B2 (en) Optical flow determination using pyramidal block matching
CN111510691B (zh) 颜色插值方法及装置、设备、存储介质
US8867826B2 (en) Disparity estimation for misaligned stereo image pairs
JP5908844B2 (ja) 画像処理装置および画像処理方法
JP7024736B2 (ja) 画像処理装置、および画像処理方法、並びにプログラム
JP2005037378A (ja) 奥行計測方法と奥行計測装置
JP2011060282A (ja) 動き領域の非線形スムージングを用いた動き検出方法およびシステム
JPWO2012176556A1 (ja) 対応点探索装置、および距離測定装置
JP2018097777A (ja) 障害物検出装置および障害物検出方法
WO2017096384A1 (en) Quasi-parametric optical flow estimation
ITVI20120087A1 (it) Stabilizzazione video digitale
JP2010016812A (ja) 画像処理装置、画像処理方法およびコンピューター読み取り可能な媒体
KR20130057324A (ko) 계층적 스테레오 매칭 장치 및 방법
IT201900001833A1 (it) Un procedimento per rilevare oggetti in movimento mediante una telecamera in movimento, e relativo sistema di elaborazione, dispositivo e prodotto informatico
JP6648916B2 (ja) 撮像装置
KR100882085B1 (ko) 영상의 컨트라스트 향상 방법
ITMI970575A1 (it) Metodo per la stima del movimento in sequenze di immagini codificate a blocchi in particolare per la elaborazione del segnale video
CN107124611B (zh) 一种视频帧率的转换方法和装置
TWI488143B (zh) 影像修復方法
CN110599504B (zh) 一种图像处理方法及装置
Iu et al. Re-examining the optical flow constraint. A new optical flow algorithm with outlier rejection
WO2012153440A1 (ja) 予測ベクトル生成方法、予測ベクトル生成装置、予測ベクトル生成プログラム、画像符号化方法、画像符号化装置、画像符号化プログラム、画像復号方法、画像復号装置、及び画像復号プログラム
Kunnath et al. Depth from Defocus on a Transmissive Diffraction Mask-based Sensor
JP6481375B2 (ja) 情報処理システム、情報処理方法、プログラム、および情報処理装置