Relazione Attività A3.1 Modellazione del background, segmentazione, tracking e proiezione sul sistema di riferimento GIS globale
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
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
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
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
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