con una videocamera mobile - RS Components...

3
36 eTech - NUMERO 5 Rilevazione de con una videocamera mobile La videosorveglianza è diventata una parte importante della nostra vita. Grazie alla tecnologia delle videocamere a basso costo, oggi è possibile avvalersi della videosorveglianza per una molteplicità di applicazioni, dal monitoraggio di aree sicure al controllo del rispetto della legge sul traffico. Comunque, l'attività principale dei sistemi automatizzati di videosorveglianza è monitorare i canali video per rilevare oggetti in movimento, al fine di identificare intrusi, o veicoli sulla strada, che è necessario registrare. Lamine Lemmou e Naim Dahnoun School of Electronics, Università di Bristol

Transcript of con una videocamera mobile - RS Components...

Page 1: con una videocamera mobile - RS Components Internationalimg-europe.electrocomponents.com/uk/img/site/campaigns/eTech/... · Lamine Lemmou e Naim Dahnoun School of Electronics, Università

36 eTech - NUMERO 5

Rilevazione del movimento con una videocamera mobile

La videosorveglianza è diventata una parte importante della nostra vita. Grazie alla tecnologia delle videocamere a basso costo, oggi è possibile avvalersi della videosorveglianza per una molteplicità di applicazioni, dal monitoraggio di aree sicure al controllo del rispetto della legge sul traffico. Comunque, l'attività principale dei sistemi automatizzati di videosorveglianza è monitorare i canali video per rilevare oggetti in movimento, al fine di identificare intrusi, o veicoli sulla strada, che è necessario registrare.

Lamine Lemmou e Naim DahnounSchool of Electronics, Università di Bristol

Page 2: con una videocamera mobile - RS Components Internationalimg-europe.electrocomponents.com/uk/img/site/campaigns/eTech/... · Lamine Lemmou e Naim Dahnoun School of Electronics, Università

eTech - NUMERO 5 37

Rilevazione del movimento con una videocamera mobile

“ Siamo riusciti a ridurre drasticamente l'elaborazione necessaria per rilevare

gli oggetti in movimento...”

Esistono algoritmi che consentono di distinguere oggetti in movimento in primo piano su sfondi statici. Tuttavia, queste tecniche non supportano le videocamere in grado di spostarsi orizzontalmente o verticalmente, utilizzate per monitorare un campo di visione molto più ampio di quello dei dispositivi fissi. Sono stati proposti vari metodi per rilevare gli oggetti in movimento mediante videocamere non statiche, ma nessuno fornisce prestazioni in tempo reale.

Così, abbiamo sviluppato un approccio in grado di compensare il movimento di una videocamera e ottimizzarlo per assicurare prestazioni in tempo reale, impiegando hardware embedded a basso costo. Una

tecnica molto nota per rilevare un oggetto in movimento in primo piano mediante una videocamera a spostamento orizzontale consiste nel creare un'immagine a mosaico, statica, da una serie di fotogrammi. In questo caso, i risultati migliori si ottengono quando la videocamera è molto lenta e il movimento dell'oggetto è più rapido. Le differenze fra le singole immagini dovrebbero essere minime.

Per realizzare l'immagine composita, è prima necessario suddividere l'immagine registrata in blocchi di 64 x 64 pixel. Quindi occorre calcolare un vettore di movimento mediante la trasformata rapida di Fourier (FFT, Fast Fourier Transforms) per stabilire la correlazione di fase. Lo svantaggio di questo approccio è l'estrema

complessità di calcolo, imputabile alla FFT, che lo rende inadatto per le applicazioni in tempo reale.

Un altro aspetto negativo è che questa tecnica può bilanciare solo lo spostamento orizzontale, e non quello verticale, delle videocamere. Tuttavia vengono tollerate alcune vibrazioni delle videocamere in senso verticale. Un secondo metodo consiste nel creare un database di oggetti sullo sfondo e di fotogrammi di riferimento, che quindi possono essere confrontati con immagini in ingresso. Ma questa tecnica, denominata Minimum Camera Parameter Settings

Continua a pagina 38 >

Page 3: con una videocamera mobile - RS Components Internationalimg-europe.electrocomponents.com/uk/img/site/campaigns/eTech/... · Lamine Lemmou e Naim Dahnoun School of Electronics, Università

38 eTech - NUMERO 5

(MCPS), può essere utilizzata solo in un ambiente fisso. Nel nostro approccio, per creare più agevolmente un'immagine con correzioni di movimento, ci basiamo sul fatto che quasi l'80% delle informazioni fra due fotogrammi successivi è comune a entrambi. Nel caso delle videocamere che si spostano orizzontalmente e verticalmente, è sufficiente traslare la maggior parte dei pixel nella direzione appropriata. Di conseguenza, utilizziamo tecniche di correlazione 2D per trovare le coordinate di traslazione fra due fotogrammi successivi. Inoltre, per ottimizzare le prestazioni dell'algoritmo o ridurre il tempo necessario per i calcoli, si possono adottare diversi compromessi. Non occorre eseguire una correlazione tra fotogrammi interi. Ad esempio, per ridurre la quantità di dati richiesti per la correlazione, si possono suddividere le immagini in quattro sottofotogrammi, quindi applicare una maschera da 120 x 120 pixel, come nel nostro test, a partire dal centro di ciascuno. Il risultato delle correlazioni è un insieme di coordinate di spostamento. Poiché, tuttavia, tali spostamenti non sono accurati al 100%, per ottenere il migliore risultato di correlazione viene utilizzata una correlazione 2D fra il fotogramma corretto e quello vicino, per ogni sottofotogramma.

È possibile limitare i tempi di calcolo riducendo la maschera quadrata a una riga da 60 pixel e, per la seconda correlazione, avvalendosi di una maschera di appena 120 x 120 pixel, dal centro dell'immagine corretta. Grazie a questo secondo metodo, si riduce la quantità dei dati che occorre trasferire fra la memoria esterna e quella interna dell'elaboratore.

Un terzo metodo tenta di limitare ulteriormente i calcoli considerando una riga da 520 pixel di un'immagine, quindi correlandola a un blocco da 120 x 520 pixel ricavato dal fotogramma successivo, centrato sulla posizione della riga scelta. All'inizio la riga è posizionata approssimativamente al centro dell'immagine, in modo da evitare il centro esatto e i relativi problemi di precisione dovuti all'elaborazione dei punti fissi. È però necessario assicurarsi che la riga non contenga pixel di un oggetto in movimento in primo piano. Se una verifica dimostra che li contiene, la posizione della riga viene modificata casualmente, entro un intervallo di 60 pixel in qualsiasi direzione.

Il secondo metodo fornisce risultati molto simili al primo, ma assicura un tempo di esecuzione dieci volte inferiore. Con il terzo metodo, i tempi di esecuzione si riducono di un ulteriore 40%, ma la qualità del rilevamento peggiora. Il processo di allineamento delle immagini consente di rilevare oggetti in movimento tramite tecniche sviluppate per le videocamere

statiche. Per risolvere il problema del rilevamento degli oggetti su uno sfondo statico, esistono vari approcci.

Il metodo più semplice consiste nel sottrarre un'immagine dall'altra e, applicando una funzione soglia, determinare se ogni pixel appartiene a un oggetto in primo piano o sullo sfondo. In questo caso, il problema è che i risultati dipendono largamente dal valore selezionato per la soglia.

Basandosi su un modello di combinazione gaussiana, è possibile bilanciare la variazione di ciascun pixel dell’immagine, nel tempo. Ogni combinazione gaussiana presenta un valore medio e uno relativo alla varianza e viene valutata in base alla probabilità – ogni curva infatti è correlata teoricamente a una sorgente di variazione (come le variazioni nell'illuminazione). L'approccio del modello di combinazione gaussiana si fonda sul presupposto che ogni pixel dello sfondo fa parte di una di queste distribuzioni. L'algoritmo determina con quale probabilità un pixel appartiene allo sfondo, anziché al primo piano. I risultati della soglia tendono a migliorare con il numero di combinazioni gaussiane utilizzate ma, per la videosorveglianza, di solito sono sufficienti tre combinazioni.

Inoltre esistono tecniche predittive basate sulle variazioni cromatiche temporali in ogni pixel del video. Alcune ricorrono a meccanismi di aggiornamento bayesiani per compensare i cambiamenti nella scena, ad esempio i livelli variabili dell'illuminazione.

Tuttavia, per l'implementazione finale, abbiamo scelto l'approccio che considera la differenza tra i fotogrammi, utilizzando una soglia fissa, a causa della sua limitata complessità rispetto alla tecnica che impiega il modello della combinazione gaussiana.

Per implementare l'algoritmo, è stato selezionato un elaboratore di segnali digitali (DSP, Digital Signal Processor) TMS320DM643x

di Texas Instruments. Facendo riferimento al modulo di valutazione

dell'azienda, siamo riusciti a ridurre al minimo la quantità di hardware esterno

necessario: alla fine, sono stati sufficienti un modulo I/O video e una memoria

esterna adeguata.

Abbiamo dedicato molto tempo alla gestione della memoria, in modo da assicurarci che fosse possibile trasferire le righe dell'immagine con efficienza dalla memoria esterna a quella interna. In conclusione, abbiamo optato per una combinazione di accesso diretto alla memoria, utilizzando l'unità DMA avanzata (EDMA) del DSP e una doppia bufferizzazione per ridurre al minimo il carico dell'elaboratore. L'elaborazione necessaria per produrre i fotogrammi con correzione della posizione viene effettuata riga per riga. Ogni volta si caricano due righe, una per ciascun buffer. Mentre viene eseguita l'elaborazione del primo buffer, il secondo riceve i dati dalla memoria esterna, tramite l'EDMA.

Tuttavia, poiché la fase in cui vengono rilevati gli oggetti in movimento in primo piano richiede fotogrammi completi, è necessario salvare il fotogramma in ingresso nella memoria esterna. È opportuno iniziare i trasferimenti durante la fase di allineamento e abbinamento del fotogramma, subito dopo avere utilizzato il DMA per caricare la riga del fotogramma corrente nei buffer interni. In questo modo si evita di caricare i buffer due volte. La procedura richiede 7,19 ms, con un elaboratore a 700 MHz. Eseguendo algoritmi ottimizzati, DM6437 può raggiungere prestazioni pari a 28 fotogrammi al secondo, che soddisfano i requisiti di elaborazione in tempo reale. Naturalmente è sempre possibile integrare altri algoritmi, se necessario. Siamo riusciti a ridurre drasticamente l'elaborazione necessaria per rilevare gli oggetti in movimento nei sistemi automatizzati di videosorveglianza che utilizzano videocamere mobili in senso orizzontale e verticale, rendendo possibile eseguire gli algoritmi in tempo reale su hardware embedded a basso costo.

Scopri altri componenti di sorveglianza e rilevamento basati su immagini su rswww.it/elettronica

< Continua da pagina 37

“ Per risolvere il problema del rilevamento

degli oggetti, esistono vari approcci ”

Ulteriori vantaggi online...Condividi le tue opinioni su questo articolo all'indirizzo www.designspark.com/etech