Relazione Attività A3.1 Modellazione del background, segmentazione, tracking e proiezione sul sistema di riferimento GIS globale

Pagina creata da Dario Lorusso
 
CONTINUA A LEGGERE
Relazione Attività A3.1 Modellazione del background, segmentazione, tracking e proiezione sul sistema di riferimento GIS globale
Progetto ARGOS: “Sviluppo di tecniche di elaborazione delle immagini per il tracciamento di
oggetti in movimento per monitoraggio, sorveglianza, gestione e controllo del traffico di natanti in
un canale navigabile”.

                                 Relazione Attività A3.1
     Modellazione del background, segmentazione, tracking e
        proiezione sul sistema di riferimento GIS globale
               Domenico Bloisi, Luca Iocchi, Riccardo Leone, Roberta Pigliacampo
                          Dipartimento di Informatica e Sistemistica
                               Università di Roma “La Sapienza”

                                           19 giugno 2007

   1. Introduzione

In questo rapporto descriveremo le attività del progetto ARGOS concernenti:
     ƒ La modellazione del background e l’estrazione del foreground
     ƒ La segmentazione
     ƒ Il tracciamento multi-ipotesi basato su filtri di Kalman
     ƒ La rettificazione delle immagini e la proiezione su mappa GIS
Le precedenti attività sono atte al raggiungimento dello scopo principale del progetto consistente
nell’individuare e tracciare il movimento dei natanti in un canale navigabile usando una serie di
telecamere. Tale obiettivo richiede la soluzione di diversi problemi:
     P1) individuazione dei natanti in movimento dalle immagini fornite dalle telecamere;
     P2) associazione temporale delle osservazioni;
     P3) calibrazione delle telecamere e correzione delle distorsioni prospettiche al fine di calcolare
         misure metriche riferite all’ambiente (ad esempio, posizione assoluta e velocità dei natanti).
Il problema P1 viene risolto tramite modellazione del background ed estrazione del foreground
seguita da segmentazione. La soluzione del problema P2 è affidata al tracciamento multi-ipotesi
basato su filtri di Kalman. Il problema P3 è affrontato attraverso la rettificazione delle immagini e la
proiezione su mappa GIS.
Il sistema ARGOS integra opportunamente le soluzioni sopra menzionate attraverso un processo di
elaborazione che può essere suddiviso in tre macro-fasi: segmentazione, tracciamento e
rettificazione.
     La prima fase consiste nella segmentazione delle immagini. Tale elaborazione è finalizzata al
partizionamento delle immagini in regioni disgiunte e singolarmente omogenee rispetto a
determinati parametri (luminanza, texture, forma, ecc.). Una tecnica molto utilizzata per
segmentare un’immagine è denominata “background subtraction” [1] ovvero di sottrazione dello
sfondo. In pratica, si vuole distinguere nell’immagine ciò che è stanziale (edifici, acqua, costruzioni
di vario genere) da quello che si muove all’interno del campo visivo (barche, traghetti, persone,
macchine, uccelli); le parti di immagine isolate vengono poi analizzate per cercare gli oggetti di
interesse che costituiscono le osservazioni per il passo successivo.
     La seconda fase di tracciamento ha un duplice ruolo: da una parte garantisce una corretta
associazione nel tempo delle varie osservazioni, dall’altra consente un filtraggio che riduce il
Relazione Attività A3.1 Modellazione del background, segmentazione, tracking e proiezione sul sistema di riferimento GIS globale
rumore dell’osservazione. Il tracciamento di un oggetto consiste nella stima dello stato di un
sistema che può evolvere nel tempo, attraverso una serie di osservazioni fatte sul sistema stesso. Lo
stato del sistema da tracciare viene descritto attraverso un vettore di stato che contiene tutte le
informazioni rilevanti per descrivere il target e che tipicamente consistono in:
    • Componenti cinematiche - posizione, velocità, accelerazione, ecc.
    • Componenti caratteristiche - caratteristiche del target, classificazione del target, ecc.
    • Parametri costanti o lentamente variabili - parametri dinamici, ecc.

Uno dei problemi principali nel determinare lo stato di un'entità è quello di valutare, attraverso i dati
e le informazioni fornite dai sensori e dagli strumenti di misurazione, alcune quantità che non sono
direttamente osservabili, ma che possono essere ricavate. Nella maggior parte dei casi, i sensori
forniscono solo una parziale informazione su queste quantità e le loro misurazioni sono affette da
rumore, che perturba le osservazioni in modo non prevedibile. Questo, assieme ad altri fattori,
produce incertezza nelle percezioni e nelle azioni di un agente. L'approccio più diffuso per gestire
questa incertezza è quello di utilizzare la teoria del calcolo delle probabilità: anziché cercare di
ottenere la migliore ipotesi sullo stato, l'informazione viene rappresentata, attraverso algoritmi
probabilistici, come una distribuzione di probabilità su un intero spazio di ipotesi. In questo modo è
possibile rappresentare l'incertezza attraverso un modello matematico e in modo estremamente
robusto rispetto alle limitazioni dovute ai sensori. Uno strumento efficace per effettuare questo tipo
di operazioni è il filtro di Kalman.
La terza fase di rettificazione, infine, ha l’obiettivo di rimuovere le distorsioni dovute allo
schiacciamento prospettico delle telecamere, nonché ad imperfezioni delle lenti, al fine di poter
estrarre informazioni metriche riferite all’ambiente. Tali informazioni permettono successive analisi
di interesse per l’applicazione, quali la geo-referenziazione dell’imbarcazione, il calcolo della sua
velocità, ecc. La fase di rettificazione necessita di una preliminare fase di calibrazione, necessaria a
determinare i parametri necessari alla rettificazione. Le tecniche di rettificazione si distinguono in
due tipi che differiscono dalla conoscenza o meno delle informazioni tri-dimensionali nella scena.
Nei casi in cui è possibile usare sensori 3D (come ad esempio le stereo-camere), la rettificazione
consente di rimuovere anche il rumore dovuto allo schiacciamento prospettico delle immagini 2D.
Nei casi in cui non si abbiano a disposizione le informazioni 3D, il processo di rettificazione dovrà
fare qualche assunzione (ad esempio quella di coplanarità dei punti) e sarà comunque affetto da
rumore che è tanto maggiore quanto più sono distanti la posa reale da quella virtuale.
Nell’applicazione relativa al progetto in esame, poiché non sono disponibili sensori 3D, è
necessario usare un procedimento di rettificazione 2D. Tale procedimento sarà eseguito solamente
su una parte dell’immagine, che è quella relativa alla porzione di canale presente nella scena.
Assumendo tale porzione di spazio planare, è possibile rettificare l’immagine in una vista dall’alto
in cui il rumore presente sarà tanto maggiore quanto più l’elemento rettificato non appartiene al
piano considerato. Inoltre la risoluzione dell’immagine rettificata sarà considerevolmente minore
per gli oggetti più lontani dalla telecamera. Facendo riferimento all’applicazione in esame, avremo
che imbarcazioni più alte produrranno un maggior rumore di rettificazione, imbarcazioni più
lontane saranno definite con peggiore risoluzione nell’immagine rettificata.
A seguire i dettagli relativi a quanto accennato in questa introduzione.

   2. Modellazione del background ed estrazione del foreground

A partire da una serie di immagini riprese attraverso una telecamera fissa è possibile individuare
un’immagine artificiale che viene definita immagine di background. Essa rappresenta la parte
immobile di una scena, cioè quella parte di mondo ripresa dalla camera (fissa) che tende a cambiare
lentamente nel tempo. L’immagine foreground contiene invece le porzioni di un’immagine che
tendono a variare velocemente nel tempo. Per il sistema ARGOS un’immagine di background (si
Relazione Attività A3.1 Modellazione del background, segmentazione, tracking e proiezione sul sistema di riferimento GIS globale
veda la fig. 1b) consisterà in un canale privo di imbarcazioni, mentre un’immagine foreground (fig.
1c) mostrerà le porzioni di immagine che sono in movimento. Ad esempio nella figura 1a le parti in
movimento sono 3 (le due gondole nella parte bassa del canale ed il vaporetto nella parte alta), tali
parti sono visibili sotto forma di chiazze bianche nell’immagine foreground (fig. 1c). Le chiazze
bianche vengono usualmente definite blobs (dall’inglese Binary Large OBjectS).

        immagine reale                     background                         foreground
                                            (artificiale)
              (a)                               (b)                                (c)
                                Figura 1. background vs foreground

Una metodologia robusta ed efficiente per ottenere l’immagine di background e l’immagine
foreground è la “background subtraction”. Tale tecnica della sottrazione del background consiste
essenzialmente in due passi:
   1) si “costruisce” a partire da un insieme S di immagini osservate dalla telecamera l’immagine
      di background B, che verrà poi mantenuta in memoria per un certo periodo di tempo
      (nell’ordine delle decine di secondi);
   2) l’immagine B viene sottratta dall’immagine di input I (con I ∉ S) che la telecamera fornisce
      nell’istante corrente, al fine di produrre una immagine F (detta immagine foreground) che
      contenga solo elementi estranei al background (gli oggetti in movimento).
Se un oggetto appare nel campo visivo della telecamera, si presenterà una grande differenza tra i
valori di colore di I e B permettendo al sistema di segmentazione di inserire tale oggetto
nell’immagine F. La figura 2 a seguire illustra i concetti espressi.

                                                  insieme                 = immagine
                                                  S                         ottenuta dalla
                                                                            telecamera

                                                                          = immagine
                                                                            di background

                                                                          = immagine
                                                                            foreground
                                             B
                        Costruzione
                       dell’immagine
                       di background

                           I              Calcolo           F
                                       dell’immagine
                                        foreground
                                          (I–B)

                           Figura 2. Tecnica di background subtraction
Relazione Attività A3.1 Modellazione del background, segmentazione, tracking e proiezione sul sistema di riferimento GIS globale
2.1 Stima del background

La stima del background è realizzata tramite una tecnica nota come mistura di gaussiane. Il risultato
di tale tecnica è una matrice WxH costituita da celle che contengono al loro interno fino a 7 valori
(definiamo tale matrice matrice di background), W è la lunghezza dell’immagine, H è la sua
altezza. Questi 7 potenziali valori memorizzati per ogni cella (i, j) della matrice di background altro
non sono che i centroidi dei cluster costituiti dai valori RGB dei 20 pixel Pk(i, j) di ogni immagine
k ∈ S. In questo modo, l’immagine di background non ha due dimensioni, bensì un numero di
dimensioni legato alla variabilità di alcuni parametri tipici degli ambienti marini come l’intensità
dell’illuminazione, i riflessi sulle onde, la scia delle imbarcazioni, etc.

                              Stima del Background

                            Insieme S di 20 immagini riprese da una camera fissa

                Maschera per evitare
                di calcolare inutilmente                              matrice di background
                Il background anche                                  calcolata a partire da S
                per gli edifici                                         (questa immagine
                                                                     rappresenta solo i valori
                                                                     relativi alla gaussiana di
                                                                         ordine superiore)

                                      Figura 3. Stima del background

Il calcolo dei centroidi avviene tramite un innovativo algoritmo on-line in grado di permettere una
computazione graduale che non richiede di avere tutte e 20 le immagini di S in memoria per poter
procedere ai calcoli. Questa caratteristica permette di calcolare background dinamici, legati cioè alle
condizioni atmosferiche, poiché è possibile scegliere la distanza temporale di campionamento delle
immagini di S senza che ciò si ripercuota sul tempo finale di calcolo della matrice di background.

   2.2 Estrazione del foreground
La creazione dell’immagine di foreground è concettualmente molto semplice, poiché si tratta di
confrontare i valori dell’immagine corrente (ottenuta dalla camera) con i valori della matrice di
background. Per ogni pixel P(i, j) appartenente all’immagine corrente viene effettuato un confronto
con i valori della matrice di background presenti nella cella (i, j). Se P ha un valore differente
rispetto a tutti quelli della matrice di background almeno di una quantità soglia T (dall’inglese
threshold) allora P è un pixel appartenente all’immagine foreground. La figura 4 rappresenta una
semplificazione del meccanismo sopra descritto, poiché in essa si considera una immagine di
background in due sole dimensioni. Tuttavia, da tale figura è chiaro il perché del nome “sottrazione
del background” poiché in effetti la background image viene sottratta dall’immagine corrente in
modo da far trasparire le parti in movimento (che sono quelle per le quali la differenza tra immagine
corrente ed immagine background supera una fissata soglia T).
Background Subtraction
                                              THRESHOLD (soglia
                                             basata sui valori correnti
                                                di illuminazione)

               Immagine corrente

                                                      >
                                                                              foreground image

               background image
                                                             blobs (Binay Large OBjectS)

                                   Figura 4. Estrazione del foreground

   3. Segmentazione

Una volta in possesso dell’immagine foreground, lo step successivo consiste nel riconoscere ed
etichettare i blob. Si tratta di un compito non banale a causa di una serie di problemi che possono
essere riassunti in due classi
    1) problemi di under-segmentation;
    2) problemi di over-segmentation.
La prima classe è costituita da errori di riconoscimento che si verificano quando il programma di
analisi dei blob emette un output che presenta un numero di blob inferiore rispetto a quello
effettivo. Ad esempio, quando due barche sono molto vicine, il programma per il riconoscimento
dei blob potrebbe considerare le due barche come una unica imbarcazione (si veda la figura 5).

                                                             Immagine corrente

                                                             Due imbarcazioni distinte
                                                             (nel riquadro in bianco)

                                                              Immagine foreground

                                                              Un unico blob identificato
                                                              (nel riquadro in bianco)

                                     Figura 5. Under segmentation
I problemi di over-segmentation si presentano quando il programma per l’analisi dei blob riconosce
nell’immagine foreground un numero di blob superiore alle imbarcazioni effettivamente presenti
nella scena. Tipicamente ciò avviene in presenza di zone del canale con forti riflessi oppure in
corrispondenza di scie causate da grosse imbarcazioni (si veda la figura 6, in cui la scia causata
dall’accelerazione del vaporetto entra a far parte dell’immagine foreground con identificatore 1).

                                   Figura 6. Over segmentation

I problemi sopra delineati possono essere risolti utilizzando in aggiunta alla routine per il
riconoscimento dei blob, una componente software dedicata al calcolo dell’optical flow. Con tale
termine si indica una tecnica numerica in grado di selezionare, date due immagini consecutive di
una scena, le parti di quest’ultima che hanno evidenziato un qualche movimento.
Si tratta di associare ad una sequenza di immagini nella quale compaiono degli oggetti in
movimento, dei vettori che rappresentano il moto degli oggetti stessi. All’insieme di tali vettori si
dà il nome di “optical flow field” oppure “image velocity field”. Dato che l’optical flow è una
buona approssimazione del moto proiettato sulle immagini, esso può essere usato per rilevare il
movimento proprio del sensore (telecamera) rispetto all’ambiente o, mediante assunzioni sulla
struttura dell’optical flow, sull’ambiente e sul movimento del sensore, la struttura tridimensionale
dell’ambiente ripreso. L’optical flow rappresenta la distribuzione delle velocità apparenti delle
variazioni di intensità luminosa che si rilevano sul piano dell’immagine quando esiste un
movimento relativo tra la telecamera e oggetti ripresi. Lo scopo dell'optical flow è quello di
assegnare ad ogni pixel appartenente al frame corrente un motion vector che punta verso la
posizione dello stesso pixel in un frame di riferimento successivo (si veda la figura 7).
Relativamente al problema della segmentazione delle imbarcazioni, il calcolo dell’optical flow è in
grado di fornire direzione, verso e modulo relativo della velocità per ogni imbarcazione.
Queste informazioni, unite all’immagine foreground, permettono di realizzare un approccio
integrato del tipo background subtraction + optical flow. Se due barche procedono in direzioni
opposte e sono molto vicine tra loro, sebbene l’immagine foreground restituisca in output la
presenza di una sola imbarcazione, l’analisi dell’optical flow permette di estrarre le due
imbarcazioni (si veda la figura 8). Poiché l’algoritmo per il calcolo dell’optical flow è decisamente
time-consuming, si è scelto di
    ƒ utilizzare l’immagine foreground come maschera per l’algoritmo atto al calcolo dell’optical
        flow, in modo da effettuare la computazione solo per le zone di reale (o presunto) interesse
        minimizzando con ciò i calcoli necessari;
    ƒ di utilizzare una tecnica molto veloce (si veda la figura 7 per i dettagli), che produce una
        mappa sparsa dei vettori direzionali.
La seconda scelta impone di utilizzare un algoritmo di clusterizzazione sulla mappa dell’optical
flow per poter individuare i baricentri di ogni imbarcazione. La clusterizzazione avviene tramite il
noto algoritmo k-means.
Calcolo dell’Optical Flow
               Si è scelto di usare per il calcolo dell’optical flow una versione iterativa
               dell’algoritmo piramidale di Lucas e Kanade che produce una mappa
               vettoriale sparsa ([Bouget00]). Tale algoritmo calcola le coordinate dei punti
               relativi alle features sul frame corrente date le loro coordinate sul frame
               precedente. La funzione trova le coordinate con una accuratezza di livello
               sub-pixel. Ogni punto feature è classificato in una delle quattro direzioni
               principali Nord-Est (NE), Nord-Ovest (NW), Sud-Est (SE), Sud-Ovest (SW).

                                                                                   direzione
                                                                                      NW

                  frame precedente               frame corrente
                                                                              mappa optical flow
                                                                               (un particolare)

               [Bouguet00] Jean-Yves Bouguet. Pyramidal Implementation of the Lucas
               Kanade Feature Tracker.

                                   Figura 7. Calcolo dell’optical flow

                                 Analisi dei Blob

                                                                                     centroide

                                                                                        ellisse
                                                                      baricentro

                  blu → direzione NW
                  rosso → direzione NE
                  verde → direzione SE

                     Figura 8. Optical flow per risolvere l’under-segmentation

La decisione di applicare l’algoritmo k-means non è pregiudiziale rispetto al tempo di calcolo,
poiché l’esiguo numero (in media molto inferiore a 100) di punti su cui applicare k-means
garantisce che esso converga in un numero molto basso di iterazioni (e quindi in breve tempo). Una
volta trovato il centroide di ogni blob, viene calcolata la varianza e la covarianza dell’insieme di
punti in oggetto, in modo da avere le direzioni degli assi dell’ellisse che approssima il cluster.
Questa informazione consente di ridurre il numero di possibili falsi positivi, poiché è possibile
scartare cluster che presentino la matrice di covarianza in contrasto con i dati forniti dalla mappa
optical flow. Va precisato che il sistema scarta i blob che non presentino significativi valori per
l’optical flow, poiché si tratta evidentemente di falsi positivi.
Figura 9. Optical flow per risolvere l’over-segmentation

In particolare, l’under-segmentation che si presenta quando due barche che viaggiano in direzioni
opposte vengono a trovarsi molto vicine, viene riconosciuto dal sistema grazie alla presenza
contemporanea di due cluster di dimensioni notevoli (figura 8). Il sistema è in grado di distinguere
la presenza di due imbarcazioni, correggendo la falsa segnalazione (una sola imbarcazione) fornita
dall’immagine foreground.
Per evitare l’over-segmentation, il sistema come già affermato, esclude dal computo dei natanti i
blob che presentino valori di optical flow troppo bassi. Si pensi al problema delle scie: il loro colore
bianco (diverso dall’acqua del canale) inganna la tecnica background subtraction, di conseguenza
l’immagine foreground segnala un numero maggiore di natanti rispetto alla realtà (figura 6). Il
calcolo dell’optical flow non risente della presenza della scia, poiché essa tende a rimanere ferma
nel tempo, e quindi in corrispondenza del blob che rappresenta la scia non sono presenti punti della
mappa optical flow (figura 9). A questo punto il sistema, grazie alla sua capacità di riconoscere la
discrepanza tra foreground e optical flow, scarta correttamente il falso positivo.

   4. Tracciamento multi-ipotesi basato su filtri di Kalman

Il tracciamento di un singolo oggetto (target), come accennato nell’introduzione, viene effettuato
mediante il filtro di Kalman, una tecnica probabilistica standard che fornisce ottimi risultati dal
punto di vista della robustezza.
L’applicazione di riferimento è una istanza della problematica del tracciamento di oggetti multipli
che si può riassumere con i seguenti punti:
     • Esiste un numero non noto e variabile di oggetti che devono essere tracciati
     • Ad ogni istante può essere individuato un nuovo target
     • Le varie tracce non sono necessariamente state inizializzate.
     • Ad ogni istante un'osservazione può essere originata da:
            o una traccia esistente (appartiene ad una sequenza di osservazioni ricevute)
            o un nuovo target
            o un falso positivo (osservazione spuria)
•   Possono esistere più osservazioni per uno stesso target
   •   Un'osservazione può essere associata a più di un target

In questo contesto è necessario l’utilizzo di un nuovo filtro di Kalman ogni qualvolta si presenti un
nuovo oggetto da tracciare. E’ dunque indispensabile disporre di meccanismi che consentano la
gestione delle tracce. Abbiamo individuato come fondamentali le seguenti funzionalita’:
    • track formation: ogni volta che viene individuato un nuovo target (viene ricevuta
       un'osservazione non correlata con le tracce esistenti, cioè con una probabilità di associazione
       sotto una certa soglia), una nuova traccia deve essere inizializzata;
   •   data association: l' osservazione ricevuta viene eventualmente associata ad una traccia
       esistente secondo un algoritmo di associazione;
   •   track continuation: l' osservazione associata viene utilizzata per aggiornare lo stato della
       relativa traccia attraverso una tecnica di filtraggio;
   •   cluster tracking: un insieme di oggetti vicini può essere tracciato come un gruppo piuttosto
       che individualmente;
   •   track deletion: le tracce che non vengono confermate per un certo periodo di tempo dalle
       osservazioni ricevute, devono essere riconosciute ed eliminate attraverso un meccanismo di
       cancellazione;
   •   track merging (multi-ipotesi): le tracce che si trovano approssimativamente nello stesso
       stato stimato vengono fuse in un “cluster” per eliminare le tracce ridondanti.

   4.1 Il filtro di Kalman

Il grosso vantaggio del filtro di Kalman è la sua natura semplice e compatta che lo rende
maggiormente adatto nella prospettiva di un'applicazione distribuita e scalabile su un grande
numero di oggetti da tracciare e con risorse computazionali a disposizione limitate.
Il filtro di Kalman [7,3] è un algoritmo ricorsivo di processamento dei dati. Tutte le osservazioni
disponibili vengono processate, a meno della loro precisione, per stimare il valore corrente delle
variabili di interesse, a partire da:
         o conoscenza del modello dinamico del sistema e dei dispositivi di misurazione
         o descrizione statistica del rumore del sistema, degli errori di misurazione e dell'incertezza
             sui modelli dinamici
         o ogni informazione disponibile sulle condizioni iniziali delle variabili di interesse.
La parola ricorsivo nella descrizione precedente implica che il filtraggio non richiede la
memorizzazione di tutti i dati precedenti e il loro ri-processamento all'arrivo di una nuova
osservazione.
Nel filtro di Kalman (in figura 10) le variabili di interesse che descrivono lo stato del sistema non
possono essere misurate direttamente e inferire un qualche tipo di media di questi valori risulta
complicato dal fatto che le relazioni tra variabili di stato e l'output misurato sono note a meno di un
certo rumore. Inoltre anche le osservazioni sono affette da rumore dovuto all'inaccuratezza dei
dispositivi.
Il filtro di Kalman combina i dati osservati disponibili, più la conoscenza a priori sul sistema e sul
rumore delle osservazioni, per produrre una stima della variabile desiderata in modo da minimizzare
statisticamente l' errore.
Figura 10. Tipica applicazione per il filtro di Kalman

Il filtro di Kalman risulta ottimo per problemi in cui ([4]):
     1. La probabilità di transizione dello stato p(xtjut; xt_1) è lineare e Gaussiana, cioè una funzione
          lineare nei sui argomenti, con un rumore additivo gaussiano:

                                          xt = Ftxt_1 + Gtut + wt

       dove ut è il vettore di controllo all' istante t e Ft e Gt sono matrici note. vt è una variabile
       aleatoria con distribuzione gaussiana con valor medio nullo e covarianza Rt che modella
       l'incertezza introdotta dalla transizione di stato.
Figura 11: Filtraggio di Kalman: l' ottimo stimato all' istante t2 è pari alla miglior predizione del suo valore prima che
venga misurata z2, più una correzione sul valore predetto tenendo conto delle osservazioni precedenti (c); le figure (a) e
(b) rappresentano rispettivamente la distribuzione di probabilità basata
sull' osservazione di z1 e la distribuzione di probabilità basata sulla sola osservazione di z2.

         Quindi il filtro di Kalman assume sistemi dinamici lineari (o linearizzabili).

    2. La probabilità dell' osservazione p(ztjxt) è anch' essa lineare e Gaussiana, cioè una funzione
       lineare nei sui argomenti, con un rumore additivo gaussiano:

                                                      zt = Htxt + vt

         dove Ht è una matrice nota e vt, variabile aleatoria con distribuzione gaussiana con valor
         medio nullo e covarianza Qt, descrive il rumore sull' osservazione.

    3. La distribuzione iniziale p(x0) è Gaussiana.

    4. I rumori sullo stato (wt) e sull' osservazione (vt) sono gaussiani e bianchi, quindi i loro valori
       non sono correlati nel tempo.

Queste condizioni sono sufficienti ad assicurarci che ad ogni istante t lo stato stimato xt abbia
sempre una distribuzione gaussiana. Quindi da un punto di vista bayesiano, propaga la distribuzione
di probabilità e fornisce la migliore stima della variabile considerata (minimizza l' errore residuo).
In conclusione in caso di validità delle assunzioni sopra elencate, il Kalman filter è ottimale rispetto
a qualunque altro tipo di filtro.

    4.2 Il problema della associazione dei dati
Il punto cruciale dei problemi di tracciamento multitarget è quello del processo di associazione
dell'osservazione alla traccia. Una volta che le osservazioni sono state validate vengono associate
alla relativa traccia attraverso un algoritmo di data association. Illustreremo in questa sezione alcune
delle tecniche principalmente utilizzate.
La regola del Nearest Neighbors è forse l'approccio più semplice per determinare quale sia l'oggetto
tracciato relativo ad una data osservazione dei sensori [5]. Quando si riceve una nuova
osservazione, tutte le tracce esistenti vengono proiettate all' istante di tempo della nuova misura
ottenuta. Quindi, viene calcolata la distanza tra la posizione osservata e ciascuna delle posizioni
stimate di ogni traccia. L' osservazione viene associata alla traccia più vicina. In questo modo un
problema di tracciamento multiplo può essere ridotto ad un insieme di problemi di tracciamento
singolo.
Un problema della regola del nearest-neighbors è dovuta alle assegnazioni errate delle osservazioni
alle tracce, come succede inevitabilmente se gli oggetti tracciati sono vicini.
Un'associazione sbagliata può determinare una lenta convergenza del filtro allo stato reale, o
persino una divergenza, nel cui caso non è più possibile predire lo stato della traccia. Inoltre le
tracce aggiornate con le osservazioni sbagliate, o non aggiornate affatto, tenderanno nel tempo ad
essere sempre meno correlate con le osservazioni successive fino ad essere cancellate, richiedendo
così una successiva inizializzazione di una nuova traccia e la ripetizione del processo.
Una soluzione al problema delle ambiguità nell'assegnazione è quella di creare tracce a multiple
ipotesi. Secondo questo schema, il sistema di tracciamento non deve necessariamente assegnare
l'osservazione ad una singola traccia, ma se l' osservazione altamente correlata a più tracce può
essere creata una copia aggiornata di tali tracce; con le successive osservazioni la traccia corretta
convergerà con la reale traiettoria del target,
mentre le altre tracce saranno sempre meno correlate alle osservazioni successive. Questa tecnica è
chiamata track splitting [6].

                               Figura 12. Tracciamento multi ipotesi

Un approccio più sofisticato allo splitting è chiamato multiplehypothesis tracking, che mantiene una
storia delle ramificazioni delle tracce, così che ogni qualvolta un ramo viene confermato, tutti i rami
alternativi possono essere scartati [5].

4.3 Tracciamento multi-ipotesi
L' associazione dei dati diventa più difficile quando le osservazioni sono altamente correlate a più di
una traccia. Ad esempio se due oggetti tracciati sono sufficientemente vicini, l'assegnazione delle
osservazioni alle tracce può avvenire in modo sbagliato incorrendo in potenziali errori di stima o
erronee cancellazioni di tracce.
La soluzione adottata per questo problema è stata quella realizzare un sistema di tracciamento
multi-ipotesi : quando esiste ambiguità di associazione un' osservazione può essere associata anche
a più di una traccia, mantenendo più ipotesi di associazione. In questo caso è quindi possibile che
esistano, all'interno del banco, più filtri che mantengano e aggiornino tracce relative allo stesso
target.
Come abbiamo detto, quando non è nota la corretta associazione di più features, si portano avanti
più ipotesi di associazione, fondendo la stessa osservazione con più tracce (quelle per cui esiste
ambiguità nell'assegnazione).
Alla ricezione di una nuova osservazione viene calcolata la probabilità di associazione con tutte le
tracce esistenti. Anziché considerare solo la traccia con cui l' osservazione ha probabilità di
associazione massima, vengono prese tutte quante le tracce per cui la probabilità di associazione
supera il valore di soglia. Ognuna di queste tracce viene quindi
aggiornata dal filtro attraverso la nuova osservazione e, allo stesso tempo viene mantenuta una loro
copia non aggiornata. Questo meccanismo viene detto track splitting.
Successivamente le ipotesi corrette verranno confermate dalle nuove osservazioni, mentre quelle
errate tenderanno ad esserne sempre meno correlate, fino ad arrivare ad un livello di inaccuratezza
della stima dello stato che porta alla loro eliminazione attraverso il meccanismo di cancellazione
delle tracce.
Una delle conseguenze negative di questo tipo di tecnica è l' aumento esponenziale delle tracce di
cui un programma dovrebbe tenere traccia [5]. Ciò potrebbe essere controllato tramite lo stesso
meccanismo di cancellazione delle tracce, ma questo non risulta sufficiente: infatti il track splitting
non decompone completamente un problema di tracciamento multiplo in problemi indipendenti di
tracciamento singolo. Ad esempio due tracce (ipotesi) potrebbero bloccarsi sulla traccia di un
singolo oggetto. Poiché sono altamente correlate alle osservazioni successive dell' oggetto, vengono
entrambe associate senza essere cancellate.
Non essendo sufficiente esaminare una traccia alla volta è stato quindi necessario modificare il
meccanismo di cancellazione delle tracce per identificare le tracce ridondanti. Ad ogni passo viene
calcolata per ogni traccia esistente la sua correlazione con tutte le altre tracce attraverso. Se la
probabilità di associazione tra due tracce supera una certa soglia (stabilita sperimentalmente) le due
tracce rappresentano lo stesso oggetto tracciato e quindi una delle due viene eliminata in modo da
mantenere solo le ipotesi più significative.
È necessario stabilire quando due tracce esistenti siano sufficientemente correlate da rappresentare
la stessa ipotesi di associazione.
Se la soglia di correlazione tra due tracce è troppo alta, vengono mantenute tracce che risultano
ridondanti, favorendo la crescita del numero delle ipotesi, mentre se è troppo bassa possono essere
cancellate troppo velocemente delle ipotesi che potrebbero essere invece corrette, annullando i
vantaggi di un tracciamento multi-ipotesi.

   5. Rettificazione delle immagini e proiezione su mappa GIS

Il terzo passo di generazione delle tracce consiste nel convertire i dati del tracciamento in
coordinate geo-referenziate (relative cioè ad una mappa cartografica dell’ambiente). La
trasformazione di coordinate è ottenuta mediante l’applicazione delle informazioni di calibrazione
calcolate precedentemente e consente di inviare al centro di controllo dati che possono essere
direttamente usati per la visualizzazione cartografica, per il calcolo dei dati sul traffico e per la
rilevazione automatica degli eventi di interesse.

   5.1 Calibrazione interna ed esterna delle telecamere

La calibrazione delle immagini è una tecnica che ha un duplice scopo: da una parte la correzione
delle distorsioni introdotte dalle ottiche e dai dispositivi elettronici interni alle telecamere
(calibrazione interna), dall’altra la trasformazione dei dati in formati alternativi adatti a misurare
quantità di interesse per l’applicazione (calibrazione esterna).
Il procedimento di calibrazione interna è un’operazione standard di tutti i sistemi basati su visione.
Esistono numerosi algoritmi che adottano diversi modelli delle telecamere. Il più comune è il
modello pin-hole, che assume la lente ridotta ad un punto. La calibrazione interna per il modello
pin-hole (vedi ad esempio [8]) consiste quindi nel trovare i parametri del modello relativi ad una
specifica telecamera fornendo una serie di immagini campione in cui è presente una griglia di
calibrazione preparata appositamente per l’operazione. Questo tipo di operazione è quindi semi-
automatica e facilmente attuabile in qualsiasi sistema. Infatti, poiché tale calibrazione regola solo i
parametri interni della telecamera, essa non varia nel tempo (a meno di un cambio delle ottiche o
dei circuiti interni) e quindi può essere eseguita prima dell’installazione della telecamera nel luogo
di interesse.
La fase di calibrazione esterna invece è necessaria al fine di mettere in relazione proprietà
dell’ambiente con le immagini acquisite. Ad esempio, è necessaria per valutare distanze metriche
tra i vari punti dell’immagine. Nell’applicazione studiata in questo progetto la calibrazione esterna è
necessaria per calcolare la posizione degli oggetti tracciati secondo un sistema di riferimento
cartografico (coordinate Gauss-Boaga) e per calcolare la velocità media dei natanti. Le tecniche di
calibrazione esterna [8] richiedono l’installazione della telecamera nella posizione desiderata e la
conoscenza di una serie di corrispondenze tra punti nelle immagini prospettiche acquisite dalla
telecamera e punti nella mappa cartografica. Anche questa operazione è semi-automatica e deve
essere eseguita al momento dell’installazione della telecamera. I valori di calibrazione esterna sono
solitamente poco sensibili a piccole variazioni della posizione della telecamera (quali ad esempio
piccoli spostamenti dalla posizione originaria dovuti a vibrazioni). È necessario invece ripetere
l’operazione ogni qual volta la telecamera venga spostata significativamente dalla sua posa iniziale.

   5.2 Rettificazione delle immagini

Le informazioni di calibrazione interna ed esterna permettono di eseguire l’operazione di
rettificazione, che consiste nel generare una nuova immagine che rappresenta una vista da un punto
di osservazione diverso rispetto a quello dell’immagine originale. In altre parole, la rettificazione
consente di considerare la presenza di telecamere virtuali poste in posizioni diverse dalla telecamera
reale. In molti casi, ad esempio, è utile avere una vista dall’alto della scena, ma non è possibile
installare una telecamera in tale posizione. L’operazione di rettificazione consente di calcolare tale
immagine e quindi di mostrare una vista dall’alto in tempo reale (vedi Figura 13). La mappa del
tratto di Venezia monitorato è presa dalle foto aeree del sistema Google Earth, ma può essere
utilizzata qualsiasi mappa cartografica disponibile. L’effetto della trasformazione consente di
vedere in tempo reale i movimenti dei natanti nel tratto di canale monitorato, simulando una
funzionalità Google Earth live.

  Figura 13. Per ottenere una immagine considerando un punto di vista virtuale è fondamentale
       stabilire delle corrispondenze precise con l’immagine proveniente dalla telecamera.

Infine, è necessario notare che, poiché alcune informazioni metriche della scena (quali la posizione
dell’imbarcazione e la sua velocità) dipendono dal processo di calibrazione e rettificazione, il
rumore in tali misure aumenta all’aumentare della distanza dell’oggetto dalla telecamera e
all’aumentare della dimensione dell’oggetto.
Bibliografia

[1] N. Ohta, A Statistical Approach to Background Subtraction for Surveillance Systems. In ICCV, pages II:
481--486, Vancouver, Canada, June 2001.

[2] Jen-Chao Tai and Kai-Tai Song, Background Segmentation and its Application to Traffic Monitoring
Using Modified Histogram, IEEE International Conference on Networking, Sensing and Control, 2004

[3] P. S. Maybeck. Stochastic models, estimation and control. vol I. ACADEMIC PRESS, 1979.

[4] W. Burgar S. Thrun and D. Fox. Probabilistic Robotics. The MIT Press, 2005.

[5] D. L. Hall and J. Llinas. Handbook for multisensor data fusion (Electrical engineering and applied signal
processing). CRC Press LLC, 2001.

[6] Y. Bar-Shalom and X.-R. Li. Multitarget-Multisensor Tracking: principles and techniques. Yaakov Bar-
Shalom, 1995.

[7] G. Welch and G. Bishop. An introduction to the kalman filter. Technical report, University of North
Carolina at Chapel Hill, NC 27599-3175, 2004.

[8] R.R. Tsai An efficient and accurate camera calibration technique for 3D machine vision. In Conference
on Computer Vision and Pattern Recognition, pp. 364-374, 1986
Puoi anche leggere