• Non ci sono risultati.

1.1 - Contesto del progetto. 1 - Introduzione.

N/A
N/A
Protected

Academic year: 2021

Condividi "1.1 - Contesto del progetto. 1 - Introduzione."

Copied!
12
0
0

Testo completo

(1)

1 - Introduzione.

Lo scopo di questa tesi è la realizzazione di un sistema elettronico che stabilizzi il flusso video analogico uscente da una telecamera, in modo tale che questo risulti privo delle oscillazioni, verticali e orizzontali, delle immagini vicine che rendono il video disturbato alla vista dell'occhio umano. La tesi è stata realizzata in collaborazione con Oto Melara S.P.A. E in questa sede è stata sviluppata la descrizione hardware del sistema.

1.1 - Contesto del progetto.

In commercio esistono videocamere che realizzano una stabilizzazione delle immagini prima che queste vengano memorizzate su di una opportuna struttura. Solitamente queste telecamere sono progettate per riuscire ad eliminare le vibrazioni dovute agli spostamenti dell'operatore che le utilizza. Infatti il camera-man è spesso costretto a spostarsi o a cambiare inquadratura con un conseguente spostamento della camera. Se l'operatore della telecamera è bravo, riuscirà a muoversi abbastanza armoniosamente da non rendere il video movimentato e quindi anche disturbato agli occhi dell'osservatore. Non sempre, però, si riesce, soltanto tramite la bravura dell'operatore, ad ottenere risultati soddisfacenti. Nel caso in cui chi utilizza la telecamera sia poco attento a spostarsi abbastanza lentamente o sia, per qualche motivo, costretto a spostamenti veloci, il video uscente dalla videocamera risulterà molto disturbato all'occhio umano che vedrà un filmato sfumato e poco dettagliato. Lo stesso effetto ottico si ottiene quando si cerca di inquadrare nella telecamera oggetti che si muovono molto velocemente: è come se questi formassero una scia dietro di se lungo lo schermo. Se a spostarsi molto velocemente non è un solo oggetto, ma tutta la videocamera, si otterrà un

(2)

video molto poco nitido con tutti gli oggetti, anche quelli sullo sfondo, con contorni molto sfumati e un video praticamente privo di dettagli. Questo non è altro che un effetto ottico, infatti le singole immagini del flusso video sono nitide e dettagliate. Se la sequenza video contiene immagini identiche tra loro, il risultato finale è quello di ottenere un filmato che corrisponde con un fotogramma, l'occhio umano non si rende conto se quello che sta vedendo è una immagine statica o tante immagini identiche che si susseguono. Quindi, se al posto di visualizzare sempre la stessa immagine, si realizza una sequenza di immagini che variano poco tra loro, l'occhio interpreta queste mutazioni come un filmato fluido e si può realizzare un video perfettamente nitido e con tutti i dettagli ben visibili. L'occhio non è in grado di visualizzare un singolo fotogramma, ma è come se vedesse più immagini una sopra l'altra.

In definitiva la stabilizzazione di un filmato è utile quando le immagini che compongono un video variano troppo velocemente le une rispetto alle

Illustrazione 1 1: La prima immagine è un esempio di come l'occhio umano vede un video quando ci sono degli spostamenti veloci della telecamera. Mentre la seconda mostra una delle immagini del flusso video, nitida e in cui si distinguono tutti i dettagli.

(3)

altre. In questo caso l'occhio vede sovrapporsi immagini molto diverse tra loro e il risultato è quello di ottenere un filmato incomprensibile. La causa del problema è dovuta al fatto che la videocamera che ha realizzato il filmato si è spostata troppo velocemente e quindi le immagini catturate sono vicine temporalmente, ma rappresentano immagini molto diverse. Per le telecamere manovrate manualmente dall'operatore, come la maggior parte delle videocamere in commercio, il problema è detto “hand-shake”, scossa della mano. Infatti in questo tipo di videocamere la causa dei movimenti veloci è dovuta esclusivamente ai movimenti del camera-man.

Il problema dei movimenti veloci può dare più o meno disturbo a seconda del tipo di inquadratura che viene realizzata. Per esempio, se si realizza un filmato utilizzando una telecamera che ha un cono ottico molto ampio, come accade quando per i panorami, difficilmente questi risulteranno disturbati: piccole vibrazioni della telecamera non permettono che vi siano grandi variazioni tra immagini vicine. Mentre se si utilizza un dispositivo con una ottica che consente di visualizzare oggetti molto lontani dalla videocamera, è molto probabile che piccole vibrazioni della telecamera causino grandi variazioni dell'immagine: è opportuno, allora, utilizzare un sistema di stabilizzazione delle immagini video.

La stabilizzazione del flusso video può essere fondamentale per ottenere un filmato visibile anche quando si fissano telecamere a mezzi mobili come un auto. In alcuni casi si è cercato di risolvere il problema ponendo la videocamera su di una piattaforma meccanica che attenua le vibrazioni del mezzo in movimento, in altri si è cercato di agire, come accade per le telecamere manuali, sul flusso video. Quest'ultima scelta è risultata vincente nei mezzi blindati come carri-armati o torri armate poste su di essi. Infatti in questi casi non è consigliabile utilizzare una piattaforma con un asservimento dedicato perché questa occuperebbe spazio nell'abitacolo, già ristretto, del veicolo e comporterebbe un costo e una

(4)

manutenzione superiore a quella richiesta da una scheda elettronica. Inoltre una scheda elettronica è facilmente sostituibile, se non funzionasse correttamente, mentre una piattaforma con sensori e videocamera risulterebbe più complicata.

Un sistema di stabilizzazione video posto all'interno di un carro-armato o su qualsiasi mezzo militare deve sottostare a specifiche di temperatura molto particolari; infatti qualsiasi sistema deve continuare a funzionare anche quando la temperatura interna al mezzo varia dai -40 a 85°C. Per questo motivo non è possibile utilizzare una qualsiasi videocamera commerciale e porla all'interno dell'abitacolo. L'unica alternativa possibile è quella di utilizzare videocamere e ottiche particolari che continuano a funzionare nonostante le temperature estreme e realizzare, separatamente, un sistema per la stabilizzazione video altrettanto robusto.

Il sistema di stabilizzazione deve essere installato sui mezzi terrestri, costruiti dall'Oto Melara. I mezzi terrestri sono principalmente carri armati con cingoli o ruote che, anche se viaggiassero su di un terreno liscio come l'asfalto, sarebbero comunque soggetti a forti vibrazioni dovute, sia al movimento dei cingoli o delle grandi ruote, sia a quelle del motore. Nella maggior parte dei casi, però, questi mezzi sono costretti a muoversi su terreni non asfaltati o accidentati; quindi le immagini provenienti dalla videocamera risultano molto disturbate.

Il sistema per la stabilizzazione video, studiato in questa, tesi può essere realizzato e installato non soltanto su mezzi militari, ma anche su qualsiasi altro mezzo con videocamera che necessiti di una stabilizzazione video con requisiti di temperatura estremi, come nel campo automotive o spaziale. La scheda riceve in ingresso un segnale video analogico e restituisce in uscita i segnali video necessari a pilotare uno schermo ad alta definizione. Il sistema studiato, infatti, non specifica l'utilizzo di una videocamera con una particolare ottica e per questo motivo può essere utilizzato in una

(5)

grande quantità di situazioni.

Per stabilizzare una sequenza di immagini è necessario riuscire a individuare all'interno del flusso video, le singole immagini trasmesse. Una volta che una immagine è stata individuata, per realizzare la stabilizzazione, deve essere confrontata con l'immagine o le immagini precedenti per riuscire a capire se c'è stato uno spostamento della videocamera. Il confronto tra le due immagini viene fatto in modo tale da capire se vi è stato uno spostamento di una rispetto all'altra. Solitamente si suddivide l'immagine precedente o di riferimento in tanti piccoli blocchi. Ad ogni blocco dell'immagine di riferimento è associata un'area di ricerca nell'immagine corrente che comprende e circonda l'area del blocco di riferimento. Quindi si cerca in quale posizione, nell'area di ricerca, è il blocco più simile a quello dell'immagine di riferimento. In questo modo, considerando la posizione del blocco del riferimento e quella del blocco che ha dato il miglior riscontro, si ottiene un vettore, detto vettore di moto, che nasce dalla locazione dell'immagine di riferimento e punta verso la posizione dell'immagine corrente che ha dato il miglior confronto. In questo modo si ottengono tanti vettori di moto quanti sono i blocchi in cui è stata divisa l'immagine di riferimento. La dimensione dei vettori di spostamento, invece, dipende da quanto è ampia l'area di ricerca sull'immagine corrente. Al limite è possibile realizzare un unico blocco che comprenda tutta l'immagine corrente e far coincidere l'area di ricerca con l'immagine corrente. In questo modo però si otterrebbe un unico vettore di spostamento che è in grado di interpretare soltanto traslazioni orizzontali e verticali dell'immagine. Solitamente per riuscire ad avere più informazioni sugli spostamenti dell'immagine sono necessari più vettori di moto. Infatti dividendo l'immagine in molti quadrati è anche possibile, così come accade negli standard MPEG, distinguere quali tra questi vettori si riferiscono ad oggetti appartenenti allo sfondo e quali di questi appartengono ad oggetti dell'immagine. Infatti un problema che nasce

(6)

utilizzando le tecniche di confronto delle immagini è proprio quello di rischiare di interpretare gli spostamenti di un oggetto come spostamenti dello sfondo dell'immagine e quindi della telecamera. Per eliminare questo problema è possibile utilizzare le tecniche già utilizzate negli standard MPEG, come quella di cercare di individuare i contorni delle figure per riuscire a separarle dallo sfondo. In realtà quest'ultima è un'operazione molto sofisticata e computazionalmente dispendiosa e per questo in molti casi viene scartata. Si preferisce, piuttosto, cercare dei metodi alternativi, come quello di utilizzare tutti i vettori per riuscire a trovare la trasformazione del piano più adatta tramite il metodo dei minimi quadrati, o altri metodi iterativi. In alternativa vengono utilizzati dei metodi probabilistici.

Una volta calcolati i vettori di spostamento è necessario riuscire ad interpretarli per capire come si è spostata la videocamera nello spazio, e quindi, come si è spostata l'immagine. In questa fase vengono utilizzati i vettori di spostamento per ricostruire il moto dell'immagine. Dato che l'immagine è bidimensionale nella maggior parte dei casi, in letteratura, si cerca di ricostruire solamente le traslazioni orizzontali e verticali, in molti si vogliono interpretare anche le rotazioni e in altri ancora si ricostruisce un movimento qualsiasi della telecamera. L'operazione più semplice, resta comunque il calcolo della moda tra tutti i vettori. In questo modo si cerca il vettore di spostamento che si presenta più di frequente, ricostruendo in questo modo le traslazioni bidimensionali dell'immagine. Altri metodi più sofisticati cercano di trovare, tramite i vettori di spostamento, dei punti notevoli dell'immagine, primo tra tutti il FOE (Focus On Espansion), che indica dove si è spostato il centro dell'immagine corrente rispetto a quella di riferimento. Una volta determinato questo punto risulta semplice anche il calcolo delle rotazioni perché vengono calcolate come rotazioni dell'immagine attorno a tale fulcro: il FOE.

(7)

subite dall'immagine. Quindi, determinate queste ultime o un sistema di variabili che identifichi il moto dell'immagine nello spazio, è necessario eliminare le eventuali variazioni veloci dell'immagine che causano disturbi. Per realizzare questa parte del sistema è necessario un filtro che sia in grado di eliminare le singole componenti del moto. Come sempre nel caso più semplice è sufficiente realizzare un filtro passa basso posto in cascata all'uscita del sistema precedente. In realtà serviranno più filtri: uno per ogni componente del moto stimata. Quindi come minimo si devono realizzare due filtri, uno per le traslazioni orizzontali l'altro per quelle verticali.

Il processo di stabilizzazione è quasi completato, infatti, è sufficiente mandare a schermo l'immagine considerando le dovute traslazioni.

Non bisogna dimenticare un problema intrinseco alla telecamera, quello del de-interlacciamento. Questo problema nasce dal fatto che qualsiasi telecamera acquisisce prima le righe dispari e poi le pari, oppure acquisisce le righe progressivamente. Per questo motivo vi è uno sfasamento tra le righe dell'immagine che deve essere recuperato. Questo problema deve essere preso in considerazione fin dall'inizio, quando si effettuano i confronti. In particolare, se si vogliono fare calcoli su di una immagine completa e non soltanto sulle righe pari o dispari di essa, è necessario risolvere prima il problema del de-interlacciamento. In questo caso, però, tutti i calcoli vengono fatti considerando una immagine composta da sole righe pari o dispari e quindi il problema non deve essere risolto. Si propone, comunque, un filtro verticale-temporale che consente di riallineare le righe dell'immagine.

1.2 - Lavoro svolto.

Questa tesi si colloca all'interno di un progetto Oto Melara che consiste nel realizzare un sistema che consenta l'elaborazione video dei segnali

(8)

provenienti da una videocamera. Il video, dopo essere stato stabilizzato, viene mandato a un monitor e processato da altri sistemi di elaborazione. La scheda elettronica sulla quale deve essere implementato il sistema è stata realizzata dall'azienda. La board permette di acquisire un segnale video analogico PAL e di trasformarlo in digitale affinché possa essere elaborato da una FPGA e altri sistemi digitali. Per realizzare la digitalizzazione del flusso viene utilizzato un chip specifico che campiona e quantizza i segnali in ingresso e restituisce in uscita un flusso video digitale. Inoltre questo dispositivo fornisce in uscita dei segnali di sincronismo per riuscire a determinare all'interno del flusso video le informazioni sui vari frame. Il video, così digitalizzato, entra nella FPGA che effettua la stabilizzazione delle immagini e restituisce in uscita un flusso video digitale ad un encoder video che lo trasforma nuovamente in un segnale analogico PAL che può essere visualizzato sullo schermo.

Il dispositivo programmabile FPGA ha il compito di realizzare la stabilizzazione delle immagini. Questo dispositivo deve essere opportunamente programmato affinché possa contenere il processore per la stabilizzazione delle immagini video. Tutto il progetto di programmazione è stato sviluppato con Quartus II[1]: software fornito gratuitamente su internet da Altera, la ditta che realizza le FPGA Stratix II. La progettazione è stata sviluppata secondo la metodologia top-down e ogni parte del progetto è stata descritta tramite il linguaggio di descrizione dell'hardware VHDL[2][3][4][5]. Il software utilizzato, tuttavia, avrebbe consentito lo sviluppo del progetto semplicemente per via grafica. Infatti con Quartus II è possibile realizzare un progetto utilizzando i blocchi logici già descritti al proprio interno. Inoltre quest'ultimo fornisce anche parti logiche molto elaborate come celle di memoria ram, moltiplicatori e altri elementi logici personalizzabili a livello grafico dall'utente. Una volta realizzato il progetto è possibile chiedere al programma di convertire l'intero progetto in VHDL o Verilog. In questo caso, però, per avere una

(9)

maggiore portabilità del progetto si è scelto di programmare direttamente in VHDL, che è il linguaggio di programmazione base, e di utilizzare il meno possibile le funzioni logiche già realizzate da Altera. Le parti che non sono state descritte in VHDL e sono state prese dalle librerie di Quartus II, sono i PLL e i blocchi DSP. Tutto il resto della logica è stato programmato in VHDL, seguendo i consigli dati da Altera, per implementare nel miglior modo possibile le funzioni sull'hardware.

Il flusso di progetto è costituito di più fasi che consentono di verificare la progettazione a vari livelli. Dopo aver descritto le varie parti del progetto è possibile effettuare un primo passo di verifica, detta funzionale. Il sistema viene analizzato e sintetizzato da Quartus II che genera vari file tra i quali vi è quello della netlist, cioè un file che fornisce una rappresentazione della struttura interna del progetto, a livello di porte logiche. Sollecitando il circuito è possibile ricavare le uscite prive dei ritardi introdotti dall'hardware. Questo tipo di simulazione serve per verificare che il sistema svolga la sua funzione in modo corretto, a prescindere dalle specifiche di timing del dispositivo su cui viene implementato il codice. Quando il progetto è funzionalmente corretto, è possibile proseguire la verifica del sistema effettuando l'implementazione sul dispositivo, tramite il passo di place e route del flusso di progetto: vengono posti i blocchi logici dell'hardware e vengono collegati tra loro per realizzare l'implementazione del progetto. A questo punto si conosce la descrizione fisica della rete e quindi è possibile simulare il progetto con i ritardi introdotti dalle porte logiche e dalle interconnessioni. Questa simulazione, detta timing, consente di valutare i tempi di risposta del sistema prima di effettuare una programmazione del dispositivo.

La verifica del progetto è stata effettuata su ogni singola parte di esso, ma mai sul sistema nel suo complesso. Ogni blocco logico è stato testato con il maggior numero di ingressi, cercando di rendere facilmente interpretabile i risultati ottenuti, tramite i grafici con forme d'onda. Per

(10)

realizzare i test sono stati utilizzati i file grafici di Quartus II; in alcuni casi si è passati a una verifica più completa utilizzando dei file di testo: il sistema legge i dati in ingresso da un file e scrive i risultati in un file di uscita. Conoscendo le funzionalità del sistema è possibile calcolare le uscite, dati gli ingressi, in modo automatico.

La realizzazione del filtro digitale ha richiesto l'uso di MathLab per riuscire a stabilire la bontà del filtro ed effettuare delle simulazioni temporali con esso.

La parte iniziale di questa tesi definisce le Specifiche di progetto che identificano i requisiti minimi che deve soddisfare il sistema. All'interno di questo capitolo vengono esposte le caratteristiche che deve avere il sistema per riuscire a seguire anche le variazioni più veloci dell'immagine e i dispositivi a disposizione per realizzare il progetto. Quindi si definiscono le caratteristiche real-time a cui deve sottostare il progetto e si spiegano le motivazioni per cui si è scelto di utilizzare almeno 200 vettori di moto di dimensioni maggiori di 50 pixel con blocchi dell'immagine di riferimento di almeno 16 x 16 pixel. Inoltre si descrivono i componenti hardware utilizzati e le loro connessioni.

Successivamente si inizia lo studio del Sistema per la stabilizzazione

video. Questo capitolo è composto di tre parti fondamentali corrispondenti

ai tre macro-blocchi in cui può essere diviso il sistema:

1. Stima dei movimenti tramite il calcolo dei vettori di moto;

2. Interpretazione dei vettori di spostamento per ricostruire i movimenti della videocamera;

3. Filtraggio delle oscillazioni della videocamera.

La prima parte descrive i principali algoritmi che sono stati trovati in letteratura riguardanti per il calcolo dei vettori di moto. Questi sono ricavati dal flusso video effettuando dei confronti tra due parti di immagini consecutive: una è l'immagine che viene presa come riferimento per il calcolo dello spostamento e per questo motivo è detta immagine o blocco

(11)

di riferimento; il frame successivo è l'immagine corrente che costituisce l'area di ricerca per il calcolo dello spostamento. Ogni algoritmo viene valutato considerando le possibili implementazioni su di strutture hardware generiche e in funzione della particolare sequenza di arrivo dei dati, dettata dallo standard analogico PAL e digitale Y 4:2:2.

Il capitolo prosegue con lo studio di un sistema di variabili che consenta, dati i vettori di spostamento, di ricostruire almeno le traslazioni orizzontali e verticali della videocamera. Per riuscire a ricavare il moto della telecamera, conoscendo i vettori di spostamento, è necessario un modello che descriva come viene modificata una immagine quando la videocamera compie degli spostamenti nello spazio.

Una volta determinato il modello si ricava un sistema che permette di quantizzare le trasformazioni geometriche dell'immagine. Il metodo più comune, per riuscire a determinare i parametri della trasformazione utilizzando più vettori di moto, è quello dei minimi quadrati, ma non è l'unico. Esistono algoritmi iterativi che permettono il calcolo di tali parametri utilizzando il numero di vettori di moto voluti. Questi metodi permettono di trovare i parametri in modo approssimativo, tramite iterazione.

La terza parte del capitolo descrive lo studio di filtri che consentano di eliminare le variazioni veloci dei parametri delle trasformazioni dell'immagine, per riuscire a rendere il video più fluido e visibile all'occhio umano. La banda di frequenze da far passare senza attenuazione deve essere valutata considerando ogni tipo di spostamento. Per questo motivo sarebbe preferibile realizzare più filtri digitali con frequenze passanti diverse per le singole componenti del moto. A tale scopo si è scelto di descrivere due tipologie di filtri passa basso: Butteworth e Chebyshev. Il capitolo si chiude con una descrizione dei vari algoritmi che consentono il de-interlacciamento dell'immagine da mandare a video.

(12)

sistema di stabilizzazione inizia la descrizione del lavoro svolto all'interno dell'azienda Oto Melara. In questa sede è stata realizzata la Descrizione

Riferimenti

Documenti correlati

Nella prima fase di questo lavoro sperimentale si studia una scheda analogica costruita e progettata dalla ditta REEL s.r.l che acquisisce le tensioni di fase del motore e calcola

1 Aprire un terminale, creare una cartella con nome ’lab01’, entrare nella cartella, visualizzare il percorso della cartella, tornare nella cartella superiore, visualizzare il

Capitolo 1 “Il contesto di riferimento”. Introduzione

13 1.5 – Inquadramento delle problematiche connesse al problema e scenari futuri di sviluppo 16 2.CAPITOLO II Parametri di merito di una turbina eolica e corretto inserimento

1.1 Cenni storici……….……… 1.2 Storia degli strumenti urbanistici di Livorno……….. 2.3 La

L'année 1945 représente donc pour Prévert le moment d'une double reconnaissance, littéraire et cinématographique, mais elle marque aussi le début de son

This paper proposes an alternative causal explanation by establishing a relationship between perceptions of domestic political corruption, mainstream party convergence and citizens’

Contudo, no contexto brasileiro, estudos recentes demonstram que embora as diretrizes legais apontem para a abertura de espaços e práticas que respeitem e valore a presença