Sistema automatico per la localizzazione ed il tracciamento di agenti

Localizzazione e Tracciamento di persone e robot
attraverso la Stereo Visione.
di
Luigi Scozzafava
©Luigi Scozzafava 2003
Tesi presentata alla
UNIVERSITÀ DEGLI STUDI DI ROMA “La Sapienza”
FACOLTÀ DI INGEGNERIA
Per il
CORSO DI LAUREA IN INGEGNERIA INFORMATICA
Relatore:
Ing. Iocchi Luca
Controrelatore:
Prof.ssa Pirri Fiora
ANNO ACCADEMICO 2003/2004
Roma, Lazio, Italia, 2003
Estratto
In questa tesi viene presentato un robusto sistema di stereo visione per la
localizzazione ed il tracciamento di persone e robot.
Il sistema in questione ha come contesto l’ambiente domestico e si colloca
all’interno di un ampio progetto denominato RoboCare.
Il sistema di visione proposto è costituito da una coppia di telecamere fisse
in grado di monitorare una stanza di circa tre metri per due. Le coppie di
immagini, provenienti da entrambe le telecamere, sono utilizzate per il
calcolo della terza dimensione. L’uso della stereo visione consente di
risolvere possibili situazioni di ambiguità, dovute ad esempio, alla parziale
occlusione degli elementi d’interesse che si muovono all’interno
dell’ambiente. Occorre ricordare che tali situazioni di ambiguità non sono
di facile soluzione ed il loro numero aumenta con l’aumentare degli oggetti
presenti nella scena. E’ quindi necessario eliminare dalla scena tutti gli
elementi a cui non siamo interessati. Pertanto bisogna costruire un modello
che descriva gli elementi che costituiscono il background della scena. Tale
modello, viene calcolato in base alla sequenza temporale di immagini
(proveniente dalla telecamera sinistra) e viene aggiornato dinamicamente.
All’interno di questo documento sarà presentato un nuovo metodo per
l’aggiornamento dinamico del modello probabilistico che descrive il
background della scena. Tale metodo consente di integrare rapidamente,
all’interno del modello stesso, possibili modifiche dell’ambiente dovute, ad
esempio, allo spostamento di oggetti e/o cambiamenti di luce. Il metodo
proposto è in grado di creare un modello probabilistico dell’ambiente
anche in assenza di una precedente fase d’apprendimento, e in presenza di
i
fenomeni di disturbo come, ad esempio, il movimento di robot e persone
all’interno dell’ambiente monitorato.
Sono quindi presentati i risultati ottenuti che dimostrano la validità del
sistema e del metodo proposto per la creazione e l’aggiornamento
dinamico del background. Infine, sono esposte le conclusioni ed una serie
di ampliamenti che potranno essere apportati da parte di futuri lavori al
sistema di visione proposto.
ii
Sommario
CAPITOLO 1........................................................................................................................ 7
INTRODUZIONE ................................................................................................................... 7
1.1
Il progetto RoboCare..................................................................................... 8
1.2
Obbiettivi della tesi........................................................................................ 9
1.3
Il problema della localizzazione e del tracciamento. ................................. 11
1.4
Sviluppo della tesi e risultati conseguiti. .................................................... 13
1.5
Organizzazione della tesi ............................................................................ 16
CAPITOLO 2...................................................................................................................... 17
ANALISI DEI SISTEMI E DEI PROBLEMI DI LOCALIZZAZIONE E TRACCIAMENTO ............... 17
2.1
Tecniche di localizzazione e tracciamento ................................................. 17
2.2
Sistemi di visione per il tracciamento di persone....................................... 22
2.2.1
Problemi comuni ad un sistema di visione.......................................................... 22
2.2.2
Sistemi di visione monoculare ............................................................................ 29
2.2.3
Sistemi di visione stereo ...................................................................................... 34
2.2.4
Sistemi di visione multi-camera .......................................................................... 38
CAPITOLO 3...................................................................................................................... 42
LA STEREO VISIONE......................................................................................................... 42
3.1
Il modello pinhole........................................................................................ 43
3.2
Distorsione radiale...................................................................................... 46
3.3
La calibrazione............................................................................................ 48
3.3.1
3.4
Metodo di Tsai..................................................................................................... 50
Geometria della stereo visione.................................................................... 54
3.4.1
Il problema della corrispondenza ........................................................................ 55
3.4.1.1
Metodi Area-Based................................................................................... 58
3.4.2
Il problema della ricostruzione............................................................................ 59
3.4.3
Precisione............................................................................................................. 62
3.4.4
Calibrazione Stereo.............................................................................................. 65
3.4.5
Ricostruzione di oggetti 3D................................................................................. 66
3.5
Small Vision System (SVS) .......................................................................... 68
CAPITOLO 4...................................................................................................................... 71
IL SISTEMA DI LOCALIZZAZIONE E TRACCIAMENTO DEGLI AGENTI ................................. 71
4.1
Schema Logico............................................................................................. 72
iii
4.2
La calibrazione............................................................................................ 78
4.2.1
Calibrazione Stereo.............................................................................................. 79
4.2.2
Calibrazione Esterna............................................................................................ 81
4.3
Modellazione e sottrazione del background. .............................................. 83
4.3.1
Creazione del modello......................................................................................... 84
4.3.2
Aggiornamento del modello................................................................................ 86
4.3.3
Sottrazione del background ................................................................................. 92
4.3.3.1
Confronto con l’intensity-model............................................................... 92
4.3.3.2
Confronto con l’edge-model..................................................................... 93
4.3.4
Elementi connessi e riduzione del rumore nel foreground della scena .............. 95
4.3.5
Calcolo degli elementi connessi (Blobs)............................................................. 96
4.4
Proiezione del foreground e ricostruzione della terza dimensione............ 97
4.4.1
Calcolo della Disparity-Map ............................................................................... 99
4.4.2
Dal camera-view al plan-view........................................................................... 100
4.4.3
Occupancy map & Height map ......................................................................... 101
4.4.4
Perfezionamento della occupancy-map e della height-map ............................. 104
4.5
Localizzazione e tracciamento .................................................................. 105
4.5.1
I Templates ........................................................................................................ 106
4.5.2
Localizzazione ................................................................................................... 107
4.5.3
Tracciamento ..................................................................................................... 109
4.5.3.1
Reti Bayesiane ........................................................................................ 114
4.5.3.2
Tracciamento tramite Filtro di Kalman.................................................. 117
4.5.3.3
Tecniche per il tracciamento a lungo termine........................................ 121
CAPITOLO 5.................................................................................................................... 123
RISULTATI SPERIMENTALI .............................................................................................. 123
5.1
5.1.1
5.2
Configurazione Hardware e Software ...................................................... 124
Interfaccia Utente............................................................................................... 126
Risultati della sperimentazione in ambiente simulato.............................. 128
5.2.1
Precisione nella ricostruzione 3D...................................................................... 130
5.2.2
Precisione nella fase di localizzazione e tracciamento ..................................... 132
5.3
Risultati della sperimentazione in ambiente reale.................................... 134
5.3.1
Creazione del modello in assenza di una precedente fase di apprendimento... 135
5.3.2
Velocità di aggiornamento del modello ............................................................ 140
5.3.3
Localizzazione e Tracciamento ......................................................................... 144
5.3.4
Precisione del sistema........................................................................................ 150
CAPITOLO 6.................................................................................................................... 152
CONCLUSIONI ................................................................................................................. 152
iv
6.1
Risultati raggiunti e limitazioni del sistema ............................................. 152
6.2
Suggerimenti per ampliamenti futuri ........................................................ 154
APPENDICE..................................................................................................................... 156
A.1 Illusioni ambiguità ed inconsistenze ................................................................. 156
A.2 Il metodo di Sobel .............................................................................................. 158
A.3 I sistemi di rappresentazione del colore............................................................ 160
BIBLIOGRAFIA.............................................................................................................. 163
v
Ringraziamenti
Vorrei ringraziare tutte le persone che hanno reso possibile la
realizzazione di questo lavoro. Desidero soprattutto rivolgere un sentito
ringraziamento al Ing.Luca Iocchi, in veste di relatore e alla Prof.ssa
Fiora Pirri, in veste di correlatore, per la gentile disponibilità e per
l’accurata opera di revisione.
Ringrazio il CNR per aver messo a disposizione le strutture e le
apparecchiature necessarie allo sviluppo e alla sperimentazione del
sistema realizzato in questa tesi e Shahram Bahadori per la cortesia e la
gentilezza che ha sempre dimostrato.
Un ringraziamento va al mio migliore amico Paolo per la sua simpatia e
sincerità.
Vorrei ringraziare i miei genitori e mio fratello Fabio, che mi hanno
sopportato e aiutato con pazienza in questi lunghi anni di studio.
Infine ringrazio Gloria per il suo aiuto e per il suo indispensabile affetto.
vi
Capitolo 1
Introduzione
In questi ultimi anni l’interesse rivolto ai sistemi di visione è aumentato
notevolmente. Questo perché gli apparati di visione si presentano come il
miglior compromesso tra costo, flessibilità e ricchezza informativa. Lo
sviluppo di applicazioni robotiche in ambienti poco strutturati, dinamici e
rapidamente variabili, come ad esempio l’ambiente domestico, richiede
l’impiego di sistemi di visione robusti ed affidabili che siano in grado di
percepire gli eventi che si verificano nell’ambiente e di monitorarne la loro
evoluzione. La presente tesi si colloca all’interno del progetto RoboCare
(descritto nella prossima sezione) e ha come obbiettivo la realizzazione di
un robusto sistema basato sulla stereo visione per la localizzazione ed il
tracciamento di persone e robot all’interno di un ambiente domestico.
Il lavoro descritto in questa tesi è relativo alla progettazione allo sviluppo e
alla fase di sperimentazione del sistema realizzato.
In questo capitolo, dopo aver descritto il progetto RoboCare e aver
presentato gli obbiettivi della nostra tesi, cercheremo di capire quali sono le
difficoltà che presenta la realizzazione di un sistema di visione rivolto alla
localizzazione e al tracciamento di uomini e robot all’interno di ambienti
non strutturati. In conclusione, daremo un breve sguardo ai risultati ottenuti
ed ai maggiori contributi apportati da questa tesi all’interno del progetto
RoboCare.
Capitolo 1. Introduzione
8
1.1 Il progetto RoboCare
RoboCare è un progetto finanziato dal CNR, della durata di tre anni, che ha
come obbiettivo la creazione di tutta una serie di infrastrutture tecnologiche
(software, robot, sensori intelligenti ecc.) in grado di fornire assistenza a
persone che, per motivi di età o a causa di un handicap fisico, non sono
autosufficienti. Questo viene fatto impiegando una serie di sistemi
tecnologici che cooperano tra di loro per offrire diversi servizi. Per
esempio, i pazienti affetti dal morbo di Alzheimer potrebbero beneficiare
di un sistema in grado di ricordare loro di prendere un determinato
farmaco, di chiudere il gas della stufa, il rubinetto dell’acqua e così via
dicendo. Da questo semplice esempio, si comprende la necessità di
realizzare un sistema in cui vi sia la partecipazione di più “attori” ognuno
in grado di svolgere in totale autonomia il proprio ruolo, ma che potrebbero
dover cooperare fra di loro al fine di raggiungere un obbiettivo comune.
Così, tornando al precedente esempio, un sensore potrebbe segnalare ad un
robot mobile una possibile fuga di gas il quale a sua volta, localizzata la
persona anziana all’interno dell’ambiente domestico, potrebbe avvisarlo
dell’imminente pericolo tramite un messaggio vocale.
Realizzare un tale tipo di sistema rappresenta un’importante
applicazione delle tecniche di Robotica e Intelligenza Artificiale,
richiedendo lo sviluppo di agenti software e robotici intelligenti in grado di
compiere attività complesse e di presentare un elevato livello di interazione
uomo-macchina. Al sistema è quindi richiesto di coordinare i vari
componenti mediante una supervisione dell’intera struttura e fornire delle
funzioni di controllo per consentire un intervento diretto da parte di
operatori umani.
Capitolo 1. Introduzione
9
All’interno del progetto RoboCare è stata inoltre condotta un’inchiesta
per capire quanto, una tale tecnologia, sarebbe stata accettata dal pubblico
anziano a cui si rivolge. Da questa inchiesta sono emersi dei dati
interessanti che hanno fornito delle informazioni, ad esempio, sulla forma
del robot e sulle funzionalità che questo dovrebbe avere per ridurre al
minimo l’impatto psicologico determinato dalla sua presenza. Teniamo
comunque a sottolineare che questa tecnologia non nasce con l’intento di
soppiantare le cure amorevoli che solo un essere umano è in grado di dare,
anzi, il suo intento è quello di prestarsi come un valido supporto sia per le
persone non autosufficienti sia per coloro che giornalmente si occupano di
queste persone.
Per la sperimentazione del sistema realizzato in questa tesi, è stata allestita
una stanza in cui sono stati riproposti vari ambienti che caratterizzano una
casa (cucina, camera da letto e soggiorno). La coppia di telecamere stereo
sono state installate, su di un apposito supporto, ad una distanza una
dall’altra di 18cm. Tale supporto è stato infine fissato al muro ad
un’altezza di circa 2,5 metri da terra da cui è stato possibile monitorare gli
spostamenti dei soggetti all’interno di un’area di circa 3 metri quadrati.
1.2 Obbiettivi della tesi
Il vantaggio di usare la visione per la realizzazione di un sistema di
localizzazione e tracciamento risiede sostanzialmente nella quantità di
informazioni che è possibile ottenere anche senza l’impiego di hardware
speciali e costosi, come ad esempio sensori di posizione, fra l’altro
scomodi da indossare. Sfortunatamente, estrarre informazioni affidabili e
precise dalle immagini non è un’impresa facile e lo diventa ancor meno se
dalla sequenza di immagini bisogna estrarre anche la terza dimensione
necessaria al calcolo della posizione 3D dei soggetti tracciati.
Capitolo 1. Introduzione
10
L’obbiettivo di questa tesi è quello di realizzare un sistema in grado di
localizzare e tracciare la posizione di ogni agente presente nella scena,
anche se non completamente visibile a causa della presenza di sedie, tavoli
e mobili di vario tipo che compongono l’arredamento di un ambiente
domestico. Il sistema proposto risulta particolarmente utile per:
1) L’interfacciamento con dei moduli di supervisione ai quali il
sistema sarà in grado di fornire la posizione ed il numero dei
soggetti presenti nell’ambiente.
2) La valutazione delle strategie e del comportamento del sistema
robotica (es. tracciando le traiettorie seguite dai robot per
raggiungere i loro obbiettivi).
3) L’interazione diretta con i robot per migliorarne le prestazioni
fornendo loro un feedback sulla loro posizione o anche sulla
traiettoria seguita, ad esempio, dal soggetto umano con cui il robot
deve interaggire.
La realizzazione di un sistema di localizzazione e tracciamento preciso ed
affidabile non è l’unico obbiettivo che questa tesi si propone di
raggiungere. Cercheremo infatti di realizzare un sistema non invasivo,
ovvero in cui non sia necessario utilizzare dei sensori e/o particolari
dispositivi da indossare per effettuare la localizzazione ed il tracciamento
del soggetto d’interesse. Questo perché, come abbiamo visto, il progetto
RoboCare si rivolge ad una categoria di persone che non sono
completamente autosufficienti, quindi l’impiego di tali sensori risulterebbe
totalmente inadeguato in questo contesto. Per tale motivo, il sistema
presentato in questa tesi è completamente passivo ed è basato
sull’elaborazione delle immagini provenienti da un sistema di telecamere.
Infine, fra i vari obbiettivi, questa tesi si propone di realizzare un sistema di
localizzazione e tracciamento che possa essere riutilizzato in ogni altro tipo
Capitolo 1. Introduzione
11
di contesto, anche al di fuori di quello domestico, e che possa essere
ampliato da lavori futuri in modo tale da arricchirne le sue funzionalità. Si
potrebbe ad esempio pensare di aggiungere un modulo che, una volta
localizzato il soggetto, sia in grado di scandire i tratti somatici del volto che
consentano di identificare il soggetto tracciato. Questo ed altri
suggerimenti per dei futuri lavori saranno trattati nell’ultimo capitolo di
questa tesi.
1.3 Il problema della localizzazione e del tracciamento.
Il problema legato alla localizzazione e al tracciamento di un soggetto è un
problema di difficile soluzione specialmente se, come in questo caso,
l’unica fonte di informazione è costituita da una sequenza di immagini
bidimensionali. Bisogna quindi trovare una soluzione per:
•
estrarre gli elementi di interesse dall’insieme di pixel che
costituiscono una immagine digitale (classificazione).
•
calcolare la loro posizione nell’ambiente (localizzazione).
•
associare gli elementi individuati precedentemente con quelli
attuali al fine di identificare la traiettoria seguita da ognuno di
questi elementi (tracciamento).
Le soluzioni proposte in letteratura non risolvono completamente il
problema della localizzazione e del tracciamento, specialmente quando si
ha la necessità di risalire a partire dall’immagine bidimensionale alle
coordinate tridimensionali che caratterizzano la posizione del soggetto
tracciato. Come vedremo in maggior dettaglio, nel Capitolo 2, le tecniche
adottate per localizzazione ed il tracciamento possono essere suddivise in
due categorie. La prima categoria è caratterizzata dall’impiego di speciali
marcatori e/o dispositivi che congiuntamente alla sequenza d’immagini
provenienti dalle telecamere possono fornire delle informazioni abbastanza
Capitolo 1. Introduzione
12
precise sulla posizione occupata nello spazio dai vari soggetti. La seconda
categoria, di cui fa parte anche il sistema realizzato in questa tesi, cerca di
risolvere il problema legato alla localizzazione e al tracciamento
utilizzando la sola sequenza di immagini proveniente dal sistema di
acquisizione video. I sistemi in cui non vengono utilizzati particolari
marcatori e/o dispositivi (detti anche sistemi marker free) possono essere
suddivisi a loro volta in sistemi monoculari, sistemi binoculari o di stereovisione e sistemi multi-camera. Tutti questi tipi di sistemi cercano di
rispondere all’esigenza legata al calcolo della terza dimensione nel
processo di localizzazione e tracciamento con approcci diversi. Anche se
questi argomenti verranno ripresi ed approfonditi nel prossimo capitolo è
utile sapere che l’inferenza sulla terza dimensione nel caso di sistemi
monoculari viene ottenuta dall’analisi temporale dei fotogrammi, mentre
nel caso dei sistemi binoculari o anche di quelli multi-camera la distanza
tra soggetto e telecamere viene ottenuta per mezzo di un processo di
triangolazione.
Il problema della localizzazione e del tracciamento è un problema molto
più complesso da risolvere quando gli elementi che devono essere seguiti
dal sistema di visione non sono dei corpi rigidi. Questo è il caso in cui gli
elementi da tracciare sono delle persone. Infatti una persona è in grado di
modificare la sua postura rapidamente ed in ogni istante. Così, ad esempio,
una persona che in un fotogramma era in piedi in quello successivo può
aver “cambiato forma” perché si è piegata a raccogliere un oggetto da terra.
Questa variabilità nelle forme, come avremo modo di approfondire in
seguito, rappresenta un problema importante e di difficile soluzione.
Un’altra fonte di problemi è costituita dalle ambiguità che si vengono a
creare a causa delle situazioni di occlusione. In pratica, queste situazioni si
presentano ogni volta in cui un ostacolo si interpone tra il soggetto
Capitolo 1. Introduzione
13
tracciato e la telecamera determinando quindi l’impossibilità, da parte del
sistema, di determinare la posizione esatta del soggetto (vedi Figura 1-1).
Figura 1-1: Esempio di una situazione di occlusione dovuta alla presenza dell'albero.
Questi ostacoli possono essere costituiti anche dalle stesse persone che,
passando davanti la telecamera, impediscono la localizzazione del soggetto
più lontano (inter-occlusione). Infine è necessario considerare fattori di
disturbo dovuti alle variazioni di luminosità della scena, alle ombre, alle
immagini riflesse da uno specchio ecc. Questa serie di problemi rende
estremamente difficile la realizzazione di un sistema di localizzazione e
tracciamento che sia efficace in tutte le situazioni, e quindi i sistemi
sviluppati attualmente (incluso quello descritto in questa tesi) devono
trovare un giusto compromesso tra efficacia ed efficienza del metodo.
1.4 Sviluppo della tesi e risultati conseguiti.
Lo sviluppo del sistema presentato in questa tesi ha richiesto un lungo
periodo di studio durante il quale si è cercato di individuare le tecniche di
visione più adeguate a risolvere i problemi presi in considerazione.
L’analisi (riportata nel capitolo 2) dei sistemi di visione monoculari,
binoculari e multicamera proposti in letteratura ha consentito di individuare
quello che, visto anche il tipo di applicazione del sistema realizzato in
questa tesi, si presenta come il miglior compromesso tra costo, flessibilità e
Capitolo 1. Introduzione
14
prestazioni. Da questa analisi è emerso che il sistema di visione in grado di
soddisfare tali requisiti è quello binoculare o anche detto di stereo-visione.
Il sistema sviluppato si articola in più fasi, la prima di queste fasi è rivolta
alla segmentazione dell’immagine in cui vengono individuate le zone di
foreground e di background della scena. Una volta identificati nelle
immagini i pixel appartenenti ai soggetti da tracciare il sistema passa a
proiettare tali punti, tramite un processo di stereo visione, nella terza
dimensione nel sistema di riferimento costituito dalle telecamere. Questi
punti vengono quindi riportati in coordinate del mondo al fine di costituire
una nube di punti 3D (appartenenti ai soli soggetti da tracciare) che può
essere inquadrata da qualsiasi posizione. In particolare, verrà generata una
inquadratura virtuale della scena che riprende questi punti dall’alto. Questa
nuova inquadratura consentirà al sistema di ridurre al minimo il numero
delle occlusioni e consentirà quindi di localizzare la posizione di ogni
individuo all’interno della scena. Inoltre il sistema è in grado di calcolare
alcune caratteristiche per ciascun oggetto e le utilizzerà per identificare lo
stesso individuo nei fotogrammi successivi a quello attuale. La posizione di
ogni individuo viene quindi stimata utilizzando il baricentro calcolato per
ogni nube di punti tridimensionali appartenenti all’individuo stesso. Inoltre,
per avere una migliore approssimazione della posizione del soggetto, anche
in presenza di possibili situazioni di occlusione, il sistema proposto è stato
dotato di un filtro di Kalman che è in grado di limitare il rumore introdotto
nella fase di misura della posizione. In questo modo è possibile avere una
stima della posizione del soggetto tracciato anche se questo non è visibile
alle telecamere. Infine, per ragionare in presenza di situazioni ambigue che
possono scaturire, ad esempio, dalla mancata localizzazione di un soggetto,
il sistema in questione è stato dotato di una piccola base di conoscenza
dalla quale, per mezzo di una rete Bayesiana, tramite la quale è possibile
stabilire da un punto di vista probabilistico se il soggetto in questione non è
stato localizzato perché è uscito definitivamente dalla scena oppure perché
Capitolo 1. Introduzione
15
la sua presenza è stata nascosta alle telecamere a causa di una situazione di
occlusione. I risultati ottenuti durante la sperimentazione del sistema
proposto sono stati più che soddisfacenti. Durante la sperimentazione il
sistema è stato in grado di localizzare e tracciare più soggetti presenti
contemporaneamente nell’ambiente monitorato anche in presenza di interocclusioni e di parziali occlusioni dovute all’arredamento dell’ambiente
domestico.
Oltre alla realizzazione del sistema di localizzazione e tracciamento, in
questa tesi è stato presentato un nuovo metodo che consente di creare un
modello del background della scena anche in assenza di una precedente
fase di addestramento. Tale metodo consente inoltre di aggiornare
dinamicamente il modello del background creato modificando in maniera
selettiva le sole zone della scena che si presentano “inanimate”. Un metodo
che mantenga il modello del background della scena aggiornato nel modo
corretto, ovvero in cui le modifiche apportate riguardano solo ed
esclusivamente quelle zone della stanza in cui sono visibili i soli elementi
che appartengono al background, è una prerogativa a cui non è possibile
rinunciare specialmente se il processo di localizzazione e tracciamento si
protrae per un lungo periodo di tempo. Questo perché le modifiche
dell’ambiente monitorato causate anche da delle semplici azioni, come può
essere ad esempio quella legata allo spostamento di una sedia, tendono a
sommarsi nel tempo e ad aumentare la differenza tra il background della
scena reale e quello rappresentato dal modello. Tale differenza si traduce,
in fase di estrazione del foreground, in un aumento dei falsi
positivi/negativi che ben presto tendono a riempire l’intera maschera
relativa al foreground della scena.
Il sistema qui realizzato è stato presentato e dimostrato nell’ambito
dell’incontro di fine primo anno di progetto, che si è tenuto a Roma in data
Capitolo 1. Introduzione
16
29 ottobre 2003 e a cui hanno partecipato diversi ricercatori provenienti da
altre Università italiane. Un filmato video della dimostrazione è stato
prodotto ed è disponibile sul sito web del progetto Robocare. I risultati del
lavoro di questa tesi sono stati riassunti in un articolo presentato al primo
Workshop RoboCare [27].
1.5 Organizzazione della tesi
La tesi è stata organizzata sostanzialmente in cinque parti. Nella prima
parte (Capitolo 2) è stata fatta un’analisi sui sistemi di visione
(monoculare, binoculare e multicamera), proposti in letteratura, al fine di
mettere in evidenza le problematiche e i vantaggi di ognuno di questi
sistemi. Da tale analisi è stato possibile individuare, nel sistema binoculare
(o anche detto di stereo-visione), il giusto compromesso tra costo,
robustezza. Quindi nella seconda parte (Capitolo 3) ci siamo occupati di
fornire le basi matematiche che consentono il calcolo della terza
dimensione a partire da una coppia di immagini stereo, e di descrivere il
processo di calibrazione e di modellazione della distorsione radiale
introdotta dalla non idealità dell’ottica delle telecamere. Nella terza parte
(Capitolo 4) è stato descritto in dettaglio il sistema di localizzazione e
tracciamento tramite stereo-visione realizzato in questa tesi. Nella quarta
parte (Capitolo 5) sono mostrati i risultati sperimentali ottenuti con il
sistema realizzato. Infine, nella quinta parte (Capitolo 6), sono presentate le
conclusioni e dei suggerimenti per futuri lavori rivolti ad ampliare le
funzionalità del sistema proposto.
Capitolo 2
Analisi dei sistemi e dei problemi
di localizzazione e tracciamento
Quello che rende la localizzazione e il tracciamento un problema di non
facile soluzione è il fatto che esso racchiude al suo interno un vasto numero
di sottoproblemi, come ad esempio l’estrazione degli elementi d’interesse
dalle immagini, il calcolo della loro posizione nello spazio, la risoluzione
delle ambiguità dovute alle svariate situazioni di occlusione, la
localizzazione dello stesso soggetto in due fotogrammi diversi e così via
dicendo. Tutti questi problemi non presentano un'unica soluzione e
sfortunatamente le soluzioni proposte finora non sono in grado di risolverli
completamente. Di seguito, dopo un breve paragrafo che ci aiuterà a capire
quali tecniche si prestano meglio al nostro scopo, sono riportati alcuni
lavori presenti in letteratura. L’analisi di questi lavori ci aiuterà ad
inquadrare meglio le problematiche legate allo sviluppo di un sistema di
visione ed, in particolare, a quelle legate alla localizzazione ed al
tracciamento degli agenti.
2.1 Tecniche di localizzazione e tracciamento
Uno dei problemi che si incontrano nella realizzazione di un sistema di
visione, che consenta di localizzare e tracciare i movimenti di persone e
robot, è incentrato sul come calcolare la loro posizione e il loro movimento
all’interno dell’ambiente. Il processo di localizzazione ha come obbiettivo
Capitolo 2. Analisi dei problemi e dei sistemi
18
principale la determinazione della posizione e dell’eventuale orientamento
degli elementi d’interesse. Nel processo di tracciamento, invece, si cerca di
individuare le corrispondenze tra il fotogramma precedente e quello
attuale, che consentano di seguire nel tempo gli agenti. In altre parole, si
tratta di estrarre degli elementi di interesse che caratterizzano il
fotogramma all’istante t-1, come punti, linee, forme ecc., determinarne la
loro posizione nello spazio (localizzazione) e individuarne nuovamente la
loro presenza all’interno del fotogramma catturato all’istante t
determinandone una traiettoria di spostamento (tracciamento).
Le tecniche adottate per individuare ed estrarre tali elementi d’interesse
sono sostanzialmente due e si distinguono per l’impiego o meno di
particolari dispositivi detti marcatori.
(a) Localizzazione e Tracciamento mediante l’impiego di marcatori
In questa tecnica, dei marcatori e/o dispositivi di vario tipo sono fissati
sul corpo della persona (vedi Figura 2-1). I segnali emessi da questi
dispositivi possono essere di tipo diverso (luminoso, elettro-meccanico
ecc.) e vengono catturati dall’apposito dispositivo di ricezione che ha il
compito di convertire questi segnali in informazioni tridimensionali.
Figura 2-1: Marcatori e dispositivi per il tracciamento.
Questa tecnica è largamente impiegata in applicazioni di Realtà
Virtuale e presenta come vantaggio principale la possibilità di ottenere
Capitolo 2. Analisi dei problemi e dei sistemi
19
in tempo reale la posizione e l’orientamento della persona. Per contro,
presenta i seguenti svantaggi:
-
Lo spostamento dei sensori dalla loro posizione originale
provoca situazioni di incertezza nei risultati.
-
Particolare difficoltà nel posizionare tali dispositivi su
alcune zone del corpo, come ad esempio, spalle e ginocchia.
-
Rigidità nei movimenti della persona derivanti dal
condizionamento fisico e psicologico legato alla presenza di
tali sensori.
(b) Localizzazione e Tracciamento senza l’impiego di marcatori
I metodi che non impiegano marcatori nella fase di localizzazione e
tracciamento, riescono ad ottenere una stima sulla posizione della
persona tracciata, elaborando le sole sequenze di immagini provenienti
dai sistemi di acquisizione video. La sequenza di immagini può
provenire da una sola telecamera (sistema di visione monoculare), o da
due o più telecamere (sistemi di visione multi-camera) .
Nei sistemi di visione monoculare, si cerca di risalire alla posizione
della persona estraendone inizialmente il profilo e cercando di trovare
le corrispondenze con un modello 3D (vedi Figura 2-2).
Figura 2-2: Sovrapposizione modello 3D.
Capitolo 2. Analisi dei problemi e dei sistemi
20
Un'altra strada possibile per ricostruire la terza dimensione, è basata sul
calcolo del flusso ottico prodotto dal movimento di alcuni punti di
interesse, detti features, scelti a priori (vedi Figura 2-3).
Figura 2-3: Esempio di tracciamento di un punto d’interesse.
Queste tecniche, associate ad un modello geometrico della telecamera,
consentono il passaggio dalle coordinate bidimensionali dell’immagine
a quelle tridimensionali. Occorre notare che il solo modello geometrico
della telecamera non è sufficiente a determinare la posizione di un
punto nello spazio. Infatti, oltre a conoscere le coordinate (u,v) nel
dominio dell’immagine, per avere un’unica soluzione occorre
conoscere la distanza d che separa il punto d’interesse dalla telecamera.
Una stima di tale distanza d viene fornita applicando una delle due
tecniche prima menzionate.
Nei sistemi di visione che impiegano più di una telecamera, una
stessa
scena
viene
invece
ripresa
da
diverse
angolazioni
contemporaneamente. L’analisi di queste immagini permette di
Capitolo 2. Analisi dei problemi e dei sistemi
21
ricavare la posizione dell’elemento che si sta tracciando, per mezzo di
un processo di triangolazione. In particolare, in un sistema di stereo
visione, la distanza tra il punto (P) osservato e le telecamere è calcolata
in base al triangolo formato da P e dai centri ottici del sistema di
osservazione C1, C2 (vedi Figura 2-4).
Figura 2-4: Triangolazione nei sistemi di stereo visione.
Queste tecniche, in cui non è richiesto l’uso di marcatori o di
dispositivi di vario tipo, consentono al soggetto una completa libertà
nei movimenti. Questo vantaggio si paga però con una maggiore
difficoltà nella ricostruzione della terza dimensione. Nei sistemi di
visione monoculare, prima accennati, la stima della terza dimensione
risulta essere ancora più difficile da ricavare rispetto ai sistemi di
visione che impiegano due o più telecamere. Questo perché, come ben
sappiamo, la formazione di una immagine bidimensionale è costituita
dalla sovrapposizione di più informazioni tridimensionali che
governano la scena. Come risultato, il problema inverso, data una
immagine bidimensionale determinare la scena tridimensionale dalla
quale deriva, non ha un'unica soluzione.
Capitolo 2. Analisi dei problemi e dei sistemi
22
Da questa breve introduzione si capisce che, per i nostri scopi, l’uso di un
sistema che impieghi dei marcatori per localizzare e tracciare la posizione
delle persone non è praticabile. Infatti un tale tipo di sistema, oltre a
richiedere un hardware particolare, obbliga le persone che devono essere
monitorate ad indossare, non senza difficoltà, particolari dispositivi.
Considerando inoltre la classe di persone a cui il progetto RoboCare si
rivolge, è naturale scegliere dei sistemi basati su metodi marker free.
L’intero sistema proposto in questa tesi è quindi basato sulla sola
elaborazione delle immagini che provengono dalle telecamere. E’ pertanto
possibile un suo riutilizzo anche in altri contesti (oltre a quello domestico)
come, ad esempio, all’interno di un generico sistema di sorveglianza.
2.2 Sistemi di visione per il tracciamento di persone
I sistemi di visione trattati in letteratura possono essere raccolti sotto tre
categorie distinte, in base al numero di telecamere impiegate dal sistema di
visione. Possiamo quindi suddividere i sistemi in:
-
monoculari (uso di una sola telecamera)
-
stereo (uso di due telecamere)
-
multi-camera (costituiti da più di due telecamere)
Prima di passare ad analizzare alcuni dei sistemi presenti in letteratura, sarà
utile focalizzare i problemi che sono comuni alla maggior parte, se non a
tutti, i sistemi di visione.
2.2.1 Problemi comuni ad un sistema di visione
La localizzazione ed il tracciamento di agenti per mezzo del solo sistema di
visione, quindi non impiegando marcatori o dispositivi di altro tipo, non è
un problema di semplice soluzione. Un robusto sistema di visione, per
Capitolo 2. Analisi dei problemi e dei sistemi
23
essere definito tale, deve essere in grado di risolvere molteplici problemi
legati alla individuazione degli elementi di interesse, alla localizzazione e
al tracciamento in situazioni di occlusione. Inoltre deve essere in grado di
determinare gli elementi che entrano ed escono dalla scena. Cerchiamo di
analizzare più da vicino questi aspetti.
Individuazione degli elementi di interesse. L’estrazione degli oggetti di
interesse dalle immagini che provengono dal sistema d’acquisizione video,
è uno dei primi problemi che il sistema di visione deve essere in grado di
risolvere. In generale, gli oggetti d’interesse possono essere persone,
automobili, animali e altro ancora. Tali elementi vengono identificati con il
termine generico di “foreground”. Il termine “background della scena” o
più semplicemente background, viene invece utilizzato per riferirsi agli
oggetti inanimati che compongono la struttura dell’ambiente considerato.
La maggior parte dei sistemi di visione impiega, per estrarre il foreground,
un modello del background della scena che viene sottratto alle immagini
provenienti dal sistema di acquisizione video (vedi Figura 2-5).
Figura 2-5: Estrazione del foreground
Comunque l’uso della semplice sottrazione del background, al fine di
individuare gli elementi di interesse, presenta diversi problemi quando si è
in presenza di:
Capitolo 2. Analisi dei problemi e dei sistemi
-
24
Cambiamenti repentini delle condizioni d’illuminazione, questi
cambiamenti determinano una variazione dei colori e delle intensità
che caratterizzano la scena. I punti dell’immagine (pixels)
interessati da tali variazioni verranno erroneamente classificati, in
seguito alla sottrazione del background, come appartenenti al
foreground della scena. Questo problema si riscontra maggiormente
negli ambienti esterni, dove l’illuminazione può essere influenzata
dal passaggio di nuvole a bassa quota.
-
Oggetti in movimento di vario tipo, come ad esempio la rotazione
delle pale di un ventilatore o il muoversi delle fronde degli alberi.
Inoltre, occorre considerare le superfici riflettenti. Queste possono
proiettare l’immagine di un soggetto in movimento, quindi le
superfici bagnate, gli specchi, i pavimenti particolarmente lucidi
possono far interpretare alcune zone della scena come delle zone di
foreground.
-
Ombre. La sottrazione del background non è in grado di fare una
distinzione tra il soggetto e la sua ombra (vedi Figura 2-6). Pertanto
il foreground, oltre a presentare la sagoma del soggetto, presenterà
anche la sua ombra proiettata. Tali ombre sono un grosso problema
per tutti quei sistemi di visione che basano la loro analisi sui profili
delle sagome estratte nella fase di sottrazione del background.
Capitolo 2. Analisi dei problemi e dei sistemi
25
Figura 2-6: Problemi legati alle ombre.(a) Persona ed ombra erroneamente
identificati come un unico oggetto.(b) Foreground in cui è evidente la presenza di
un’ombra.
Localizzazione e Tracciamento in situazioni di occlusione. Come
abbiamo visto nel paragrafo precedente, la localizzazione e il tracciamento
di persone e robot in un ambiente non è un problema di semplice
soluzione. Tale difficoltà è resa maggiore dal fatto che le uniche
informazioni a nostra disposizione, per localizzare e tracciare gli elementi
di interesse, derivano esclusivamente dalle immagini provenienti dalle
telecamere. Ma cosa accade se un soggetto viene nascosto dalla presenza di
altri soggetti o strutture, che si interpongono tra il soggetto stesso e le
telecamere? In questo caso siamo in presenza di una situazione di
occlusione. Cercare di localizzare e di tracciare oggetti in situazione di
occlusione risulta essere una operazione alquanto difficile. Questo perché
non si può stabilire con certezza la posizione e la velocità di un oggetto, la
cui visione da parte del sistema di acquisizione, viene impedita dalla
presenza di altri elementi (vedi Figura 2-7). Come vedremo in seguito, si
cercherà comunque di ottenere una stima sulla posizione del soggetto
tracciato, utilizzando la direzione e la velocità rilevate prima che si
verificasse l’occlusione.
Capitolo 2. Analisi dei problemi e dei sistemi
26
Figura 2-7: La sequenza mostra, nel fotogramma 156, una situazione di occlusione.
Le possibili situazioni di occlusione possono essere distinte in:
-
Occlusione tra oggetti, questo tipo di occlusione si ha quando un
oggetto si interpone tra l’oggetto tracciato e il campo visivo della
telecamera (vedi Figura 2-7). La semplice sottrazione del
background fornisce una sola zona di foreground nella quale non è
dato sapere chi fra i due soggetti si trova più vicino alla telecamera.
Rilevare una situazione di occlusione come quella presentata in
Figura 2-7 è abbastanza facile. Questo perché i due soggetti, prima
di interferire un con l’altro, sono partiti da una situazione di non
occlusione (fotogramma 120). La situazione sarebbe stata ben
diversa se i due soggetti fossero entrati contemporaneamente dallo
stesso lato del campo visivo. Infatti, in tal caso, uno dei due
soggetti si sarebbe sovrapposto all’altro già dall’inizio, impedendo
al sistema di visione di rivelarne la presenza e quindi di
determinare una possibile situazione di occlusione. Il problema
risiede quindi nel segmentare l’unica zona del foreground, che
contiene soggetti diversi, in zone separate che consentano di
distinguere un elemento dall’altro. L’identificazione e la
risoluzione di possibili situazioni di occlusione dovute alla
presenza di più di due oggetti è un compito estremamente difficile.
Questo spiega perché in letteratura la quasi totalità dei sistemi di
Capitolo 2. Analisi dei problemi e dei sistemi
27
visione riesce a risolvere, non senza difficoltà, situazioni di
occlusione provocate dalla presenza di non più di due o tre soggetti.
-
Occlusioni a breve termine, in questo caso ci si riferisce alle
occlusioni dovute alla presenza di elementi strutturali della scena
che possono impedire la visione di un oggetto per un breve periodo
di tempo. Tali elementi strutturali possono essere costituiti, ad
esempio, da un cartello stradale, dal tronco di un albero ecc. Questi
elementi, oltre a determinare l’occlusione temporanea di un
oggetto, possono determinare, in fase di estrazione del foreground,
la presenza di due zone diverse che in realtà appartengono però allo
stesso soggetto (vedi Figura 2-8).
Figura 2-8: La presenza del lampione (a) ha provocato la separazione del soggetto in
due zone, interpretate dal sistema di visione come due soggetti distinti (b).
-
Occlusioni a lungo termine, questo tipo di occlusioni si verifica
quando un soggetto entra ad esempio all’interno di un edificio, di
una macchina oppure varca la soglia di una porta che comunica con
un altro ufficio. In queste situazioni, occorre stabilire se aspettare
che il soggetto tracciato esca nuovamente dall’edificio o dalla porta
in cui era entrato, oppure dichiarare il soggetto come
definitivamente uscito dalla scena. Esempi di strutture che possono
Capitolo 2. Analisi dei problemi e dei sistemi
28
determinare occlusioni cosiddette a breve termine (BT) e a lungo
termine (LT) sono schematicamente evidenziate in Figura 2-9.
Figura 2-9: Esempi di occlusione a lungo termine (LT) e a breve termine (BT).
Determinare gli elementi che entrano ed escono dalla scena. Un oggetto
viene definito come entrante/uscente nella scena nel momento in cui
entra/esce dal campo visivo della telecamera. L’entrata e l’uscita degli
oggetti da punti diversi è facilmente determinabile. Le cose si complicano
se l’entrata (o l’uscita) di due o più oggetti avviene nello stesso istante e
nello stesso punto della scena. Se, ad esempio, una persona entra nella
scena da una certa posizione mentre un’altra esce dalla stessa posizione (e
allo stesso tempo) allora, in questa situazione, il sistema di visione
interpreterebbe questa situazione in modo errato. Infatti, l’entrata in scena
della nuova persona verrebbe interpretata (dal sistema di visione) come una
inversione di marcia della persona che stava uscendo e non come l’entrata
di un nuovo soggetto. La soluzione a questo tipo di problemi richiede
l’analisi delle traiettorie ed il riconoscimento degli elementi correntemente
tracciati.
Dopo aver introdotto questa serie di problematiche cerchiamo di capire in
che modo, i sistemi di visione proposti in letteratura, tentano di porvi
rimedio.
Capitolo 2. Analisi dei problemi e dei sistemi
29
2.2.2 Sistemi di visione monoculare
Negli ultimi anni un gran numero di sistemi di visione monoculare, per la
maggior parte orientati verso applicazioni di video sorveglianza, sono stati
proposti in letteratura. Questo spiega perché, molti degli sforzi compiuti da
queste applicazioni, siano principalmente rivolti a risolvere problemi legati
ai repentini cambiamenti d’illuminazione e alle innumerevoli situazioni di
occlusione che possono verificarsi in un ambiente esterno.
Come abbiamo visto nel paragrafo precedente, il primo obbiettivo di un
qualsiasi sistema di visione è quello d’individuare gli elementi d’interesse.
Una tecnica largamente utilizzata nell’estrazione del foreground, è basata
sul confronto di ogni fotogramma con una immagine del background. Tale
operazione consente di classificare i pixel, che presentano una significativa
variazione rispetto al modello del background, come appartenenti al
foreground. Il background può essere modellato per mezzo di una singola
Gaussiana come in PFinder [1]. Per consentire a tale modello di adattarsi
alla scena è necessario un breve periodo di apprendimento durante il quale
l’ambiente monitorato deve rimanere vuoto. Tale metodo risulta essere
efficiente solo quando il background è poco variabile, mentre presenta
delle grosse difficoltà nelle situazioni in cui si hanno cambiamenti di
illuminazione e/o piccole variazioni del background, dovute per esempio,
al movimento delle fronde degli alberi. Una variante più robusta di questo
metodo, prevede l’uso di K Gaussiane [2,3,4,5,6,7]. Comunque, anche
questo metodo fallisce in presenza di rapidi cambiamenti d’illuminazione
e/o in presenza d’ombre. Questo fallimento si traduce in un foreground
costellato da molti pixel errati, che portano lo stadio demandato alla
localizzazione e al tracciamento, alla perdita degli oggetti tracciati o
all’identificazione di oggetti “fantasma” dovuti, ad esempio, alla
proiezione di un ombra su di una parete (vedi Figura 2-10).
Capitolo 2. Analisi dei problemi e dei sistemi
30
Figura 2-10: Errata classificazione del foreground.
L’errata classificazione è da imputarsi all’uso di una rappresentazione
dell’immagine che dipende direttamente dalla luminosità dell’ambiente. Le
rappresentazioni che dipendono direttamente dall’intensità luminosa sono
ad esempio la rappresentazione R, G, B e quella a scale di grigi I. In tali
rappresentazioni il risultato finale è ottenuto dall’interazione tra la luce
fornita dalla sorgente luminosa e il colore della superficie dell’oggetto
investito da essa. Per risolvere quindi il problema legato alla variazione
della luminosità ambientale e, in particolar modo a quello dovuto alla
presenza delle ombre, molte delle applicazioni propongono una sottrazione
del background basata su una rappresentazione dell’immagine che non
dipenda dall’intensità della sorgente luminosa. Troviamo pertanto, in
applicazioni come PFinder, l’uso della rappresentazione yuv, in cui
vengono separate le componenti di crominanza u e v dalla componente di
intensità y al fine di svincolarsi dai problemi legati alle variazioni
dell’intensità luminosa. Un’altro tipo di soluzione viene proposta da
Horprasert [12] che propone di separare la luminosità dalla componente del
colore nello spazio rgb. Tali soluzioni si rivelano utili solo quando le
ombre non sono troppo accentuate ed in generale quando la variazione
dell’intensità luminosa non è molto marcata. In tutti gli altri casi devono
essere impiegate delle tecniche non basate sulla sola rappresentazione
Capitolo 2. Analisi dei problemi e dei sistemi
31
dell’immagine [13]. Per concludere vale la pena osservare, come proposto
in [3], che la direzione del gradiente può fornire una rappresentazione
invariante rispetto alla luminosità. L’idea alla base di questa osservazione
risiede nel fatto che, se fx ed fy sono rispettivamente le derivate orizzontali e
verticali di un punto dell’immagine, allora una variazione di luminosità (in
quel punto) si traduce in una variazione del modulo delle singole derivate,
ma il rapporto fra di esse resta pressoché invariato.
Sottratto il background e dopo aver ripulito da eventuali ombre il
foreground, ha inizio il processo di localizzazione e tracciamento. Prima
però, le regioni dell’immagine i cui pixels risultano essere tra loro
connessi, vengono a costituire delle singole entità che in letteratura sono
indicate con il nome di blob (vedi Figura 2-11).
Figura 2-11: (a) Immagine originale. (b) Foreground. (c) Blobs. (d) Foreground
ripulito dai blobs troppo piccoli.
Dopo aver ottenuto questi blob il metodo proposto da T. Zhao [4] cerca di
individuare le persone da tracciare utilizzando un approccio che lui stesso
definisce come “ipotizza e verifica”. In pratica quello che viene fatto è uno
studio del profilo (al fine di individuare delle teste) e delle dimensioni (per
Capitolo 2. Analisi dei problemi e dei sistemi
32
scartare zone troppo piccole o troppo grandi) dei blob estratti. Questa fase
è richiesta, specialmente nel monitoraggio di ambienti esterni, perché non è
detto che tutti i blob ottenuti dalla sottrazione del background appartengano
ad un essere umano. Potrebbero, per esempio, appartenere a delle
automobili in transito. In altri metodi, come ad esempio quelli proposti da
T. Ellis [5] e da O. Javed [3], non viene fatta alcuna ipotesi preventiva sui
blob. Il processo di tracciamento, una volta definiti i boundig box che
delimitano i vari blob identificati, cerca di mettere in corrispondenza le
regioni che erano state evidenziate nel fotogramma precedente con quelle
individuate nell’immagine attuale. Per permettere tale ricerca, ogni regione
viene caratterizzata con dei parametri come la dimensione (in termini di
pixel) e le coordinate del centro di massa del blob considerato. Grazie a
questi parametri è possibile costruire una funzione, come quella proposta
da O. Javed [3], che permette di “misurare” la diversità fra due regioni.
Pertanto, scelta una regione appartenente al fotogramma elaborato
all’istante t-1, è possibile individuare nel fotogramma attuale la regione che
rende minima tale funzione. Le possibili situazioni che possono verificarsi
in questa ricerca sono riassunte in [3] come:
-
Tutte le corrispondenze tra il fotogramma t-1 e t sono state trovate.
In questo ogni soggetto è stato correttamente individuato e quindi
non ci sono situazioni di ambiguità.
-
Delle regioni (blob), presenti nel fotogramma t-1, non hanno
trovato alcuna corrispondenza nel fotogramma t. Questo si
potrebbe verificare in presenza di situazioni di occlusione (a breve
termine o a lungo termine) o anche perché il soggetto è uscito dal
campo d’azione della telecamera.
-
La situazione opposta alla precedente si ha quando, alcune regioni
nel fotogramma t non hanno trovato una corrispondenza nel
fotogramma t-1. Questo può significare o che un nuovo soggetto è
Capitolo 2. Analisi dei problemi e dei sistemi
33
entrato in scena, oppure che una precedente situazione di
occlusione è cessata e quindi, il soggetto interessato, è nuovamente
visibile alla telecamera.
Un modo interessante per interpretare le possibili situazioni prima elencate
ci viene fornito da T. Ellis e Ming Xu [5]. Il metodo da loro proposto cerca
di prevedere, in base allo stato attuale dei blob tracciati e ad una rete di
credenze (o rete bayesiana), quale sarà lo stato futuro del blob preso in
considerazione. Tramite questa rete bayesiana è possibile ragionare da un
punto di vista probabilistico e dedurre ad esempio che, se la dimensione di
un blob è aumentata e due regioni nel fotogramma t-1 non hanno trovato
corrispondenza nel fotogramma t, allora, con molta probabilità, siamo in
presenza di una situazione di inter-occlusione fra due soggetti. Inoltre per
continuare ad avere una buona stima sulla posizione dei soggetti tracciati,
anche in presenza di una situazione di occlusione, i metodi [4, 8, 11]
suggeriscono l’impiego del filtro di Kalman. Un’altra soluzione, meno
robusta ma anche meno onerosa da un punto di vista del tempo di calcolo,
richiede l’impiego di un semplice modello in cui la posizione prevista
viene calcolata in base alla posizione e alla velocità attuale [3].
Come anticipato nei precedenti paragrafi, il calcolo della terza dimensione
in un sistema di visione monoculare non è affatto banale. Tale difficoltà
traspare anche dal fatto che, fra i vari metodi trattati, solo in quello
proposto da T. Zhao e R. Nevatia [4] viene considerato il problema legato
al calcolo della terza dimensione. Il metodo impiega un modello della
scena che, per mezzo di una fase di calibrazione, viene fatto collimare con
l’inquadratura della telecamera. Questo consente quindi di passare dalle
coordinate 2D dell’immagine a quelle 3D della scena. Per rendere unica la
soluzione, nel passaggio da 2D a 3D, viene ipotizzato che le persone da
localizzare e tracciare si spostano su di un piano noto a priori. Questo
consente, una volta localizzata la posizione 2D dei piedi delle persone, di
Capitolo 2. Analisi dei problemi e dei sistemi
34
ricavare la loro posizione nello spazio della scena. Tale metodo non può
quindi essere impiegato in tutte quelle situazioni in cui i piedi delle persone
da tracciare siano nascosti alla telecamera. Basta infatti pensare a come è
strutturato l’ambiente domestico o un ufficio per rendersi subito conto che,
a causa della presenza di tavoli, sedie e altro ancora, i piedi delle persone
resterebbero per la maggior parte del tempo nascosti alla telecamera,
rendendo quindi tale tecnica di localizzazione inadeguata per tale tipo di
contesto.
2.2.3 Sistemi di visione stereo
Da quanto si è potuto osservare nel precedente paragrafo, la principale
difficoltà che presenta il sistema di visione monoculare è legata al calcolo
delle coordinate tridimensionali. In letteratura, da qualche anno a questa
parte, un numero sempre maggiore di ricercatori ha proposto dei sistemi di
visione che cercano di sfruttare lo stesso principio che è alla base del
sistema di visione umano. Tali sistemi impiegano non più una telecamera
ma due e per tale motivo vengono indicati come sistemi di stereo-visione.
Per capire l’importanza che la visione stereoscopica riveste nella
percezione e quindi nel calcolo della terza dimensione, si suggerisce al
lettore un piccolo ma significativo esperimento. L’obbiettivo è quello di
mettere il tappo, con una mano, ad una penna tenuta nell’altra mano ad una
certa distanza davanti a noi. Provando prima con entrambi gli occhi aperti e
poi con uno chiuso. Nel secondo caso, l’impresa risulta essere molto più
difficile.
La prima cosa che il sistema di stereo-visione calcola, al fine di individuare
la profondità di una scena, è la mappa di disparità. La geometria su cui si
basa un sistema di stereo-visione verrà trattata in dettaglio nei successivi
paragrafi. Per ora ci basta sapere che la mappa di disparità nasce dal
confronto tra due immagini (sinistra e destra), catturate allo stesso istante
dalla coppia di telecamere stereo, ed è la base da cui ogni sistema di stereo-
Capitolo 2. Analisi dei problemi e dei sistemi
35
visione parte per calcolare le coordinate 3D di ogni punto della scena (vedi
Figura 2-12).
Figura 2-12: (a) Immagine sinistra. (b) Immagine destra. (c) Mappa di disparità. Le
aree più luminose sono quelle più vicine alla telecamera.
Come nei sistemi di visione monoculare, anche quelli basati sulla stereo
visione hanno bisogno di estrarre da ogni fotogramma il foreground della
scena. Alcuni metodi di stereo-visione proposti [8, 16] impiegano, per
dividere il foreground dal background, le stesse tecniche viste nel caso dei
sistemi monoculari. La novità presente nel metodo proposto da [8] risiede
nell’impiego della mappa di disparità, oltre all’intensità luminosa dei punti
dell’immagine, per creare il modello del background. Questo permette di
ottenere un modello del background che è in grado di fornire dei buoni
risultati anche in presenza di ombre o in caso di improvvise variazioni di
luminosità. Tale robustezza deriva dal fatto che il calcolo della mappa di
disparità non risente delle variazioni della sorgente luminosa. Altri metodi,
come quelli presentati da C. Eveland e K. Konolige [14] e da T. Darrel
[15], cercano di estrarre gli elementi di foreground direttamente dalla
mappa di disparità. In pratica, questi metodi addestrano il sistema di
gaussiane, impiegate per modellare il background, esclusivamente sulla
mappa di disparità. Il principale svantaggio di questi metodi è legato al
fatto che non sempre la mappa di disparità risulta essere omogenea, e
questo porta quindi ad avere un foreground spesso molto rumoroso e non
Capitolo 2. Analisi dei problemi e dei sistemi
36
perfettamente delineato. Comunque tale tipo di approccio risulta utile in
tutte quelle applicazioni in cui il tempo di calcolo è prioritario [11]. Una
volta estratto il foreground della scena, metodi come quello di T.Darrel
[17] e S. Grange [18], passano allo studio dei profili estratti nella fase
precedente al fine di dividere le persone da altri eventuali oggetti. L’analisi
dei profili viene guidata da zone del corpo come, ad esempio, viso e/o
mani. Per mettere in evidenza tali parti vengono utilizzati dei filtri che,
lavorando sui colori, hanno il compito di evidenziare le aree dell’immagine
in cui è visibile il colore della pelle (vedi Figura 2-13).
Figura 2-13: (a) Immagine originale. (b) Mappa di disparità. (c) Immagine filtrata, in
cui volto è braccia sono ben visibili. (d) Foreground della scena.
Ora che il sistema di visione ha individuato gli elementi d’interesse si passa
al loro tracciamento. In questo caso, a differenza di quello che avviene nei
sistemi di visione monoculari, il tracciamento può essere condotto
direttamente nelle coordinate tridimensionali utilizzando come sistema di
riferimento quello della telecamera. Per identificare più facilmente la
posizione dei soggetti da tracciare nell’ambiente monitorato, alcuni metodi
Capitolo 2. Analisi dei problemi e dei sistemi
37
propongono di posizionare la coppia di telecamere stereo sul soffitto in
modo da inquadrare verticalmente il pavimento e di rendere quindi
praticamente nullo il numero delle possibili situazioni di occlusione (vedi
Figura 2-14). Posizionare le telecamere in questo modo, come si può
osservare dalla Figura 2-14, rende visibile solo una piccola parte
dell’ambiente monitorato.
Figura 2-14: Telecamere posizionate sul soffitto.
Ultimamente alcuni metodi [8, 11, 15] propongono di proiettare i punti
appartenenti al foreground direttamente sul pavimento (plan-view) al fine
di creare una mappa che in letteratura prende il nome di occupancy map. In
Figura 2-15c è possibile osservare un esempio di tale mappa. In questo
modo si può creare una sorta di telecamera virtuale in grado di fornire una
ripresa dall’alto, in cui le situazioni di occlusione sono ridotte al minimo,
ed inoltre l’inquadratura risulta essere molto più ampia rispetto a quella che
avevamo con il primo metodo.
Capitolo 2. Analisi dei problemi e dei sistemi
38
Figura 2-15: (a) Immagine telecamera sinistra. (b) Foreground. (c) Occupancy map.
Una volta ottenuta la occupancy map è possibile localizzare e tracciare le
persone utilizzando eventualmente un filtro di Kalman, al fine di rendere il
sistema più robusto in caso di rilevamenti errati.
Possiamo quindi concludere che, a differenza dei sistemi di visione
monoculare, i sistemi di stereo-visione si prestano meglio in quelle
applicazioni in cui è necessario il calcolo della terza dimensione. In tutte le
altre situazioni, in cui è sufficiente individuare la presenza di un soggetto
e/o tracciare la sua posizione nelle coordinate dell’immagine 2D, le
applicazioni basate sui sistemi di visione monoculare forniscono degli
ottimi risultati.
2.2.4 Sistemi di visione multi-camera
Per avere una visione completa su quello che è il panorama dei sistemi di
visione, non potevano mancare i sistemi che utilizzano più di due
telecamere.
L’impiego di più telecamere, poste in punti diversi dell’ambiente da
monitorare, consente sostanzialmente di ridurre al minimo il numero di
situazioni ambigue che possono crearsi in presenza di occlusioni. Infatti
l’idea di base è che se una telecamera non “vede” il soggetto tracciato,
perché ad esempio nascosto da un mobile o da un altro soggetto,
sicuramente un’altra telecamera, posta in un altro punto dell’ambiente, avrà
la visuale libera e sarà in grado di individuarlo. Su questa idea è basato il
Capitolo 2. Analisi dei problemi e dei sistemi
39
metodo presentato da Mittal e Davis [20], nel quale sono impiegate quattro
telecamere che consentono di osservare, da punti di vista differenti e nello
stesso istante, la stessa scena. Come si può osservare, anche in situazioni
complesse come quella rappresentata in Figura 2-16, l’algoritmo riesce a
risolvere le varie situazioni di ambiguità grazie al confronto incrociato
effettuato sulle quattro viste.
Figura 2-16: Immagini provenienti dalle quattro telecamere sincronizzate.
Dalla Figura 2-17, si può notare che i cinque soggetti che compongono la
scena sono stati correttamente individuati.
Figura 2-17: Distribuzione dei cinque individui all'interno della stanza.
Capitolo 2. Analisi dei problemi e dei sistemi
40
Il sistema di triangolazione utilizzato per ricavare la posizione dei soggetti
è il seguente. Una volta individuati i vari blob che compongono la scena,
vengono proiettate le coordinate dei bounding-box che li contengono; tale
operazione viene effettuata su ogni inquadratura della scena. L’intersezione
dei raggi, prodotti dalla proiezione di tali punti, individuano le aree che
contengono i vari soggetti. Utilizzando infine le intersezioni delle diagonali
dei quadrilateri che si sono ottenuti è possibile ricavare la loro posizione
nello spazio(vedi Figura 2-18).
Figura 2-18: Triangolazione utilizzata per localizzare i soggetti tracciati.
Pertanto, un sistema di visione multi-camera, fornisce delle buone
prestazioni anche in presenza di numerose occlusioni. Tale sistema
richiede però dell’hardware aggiuntivo (un numero maggiore di
telecamere) e il suo impiego è consigliabile in ambienti in cui la presenza
di un gran numero di persone può determinare diverse situazioni di
occlusione.
Capitolo 2. Analisi dei problemi e dei sistemi
41
Dopo un’attenta analisi dei problemi, la nostra scelta è ricaduta sui sistemi
di stereo-visione. Questo perché il sistema di stereo-visione risulta essere il
miglior compromesso, sia dal punto di vista dei costi che delle prestazioni,
rispetto agli altri due sistemi (monoculari, multi-camera). Infatti, dovendo
monitorare un ambiente domestico, la scelta di un sistema di visione
monoculare non sarebbe stata una scelta felice. In quanto, come abbiamo
avuto modo di vedere, anche la presenza di piccoli ostacoli come, ad
esempio, mobili e sedie avrebbero portato tale sistema di visione non
essere in grado di fornire una stima sufficientemente precisa sulla
posizione delle persone e dei robot all’interno dell’ambiente monitorato.
La nostra scelta, inoltre, non è ricaduta sui sistemi di visione multi-camera
perché, trattandosi di un ambiente domestico, difficilmente si sarebbero
venute a creare situazioni di occlusioni particolarmente complesse, tali da
giustificare l’impiego di un sistema multi-camera.
Capitolo 3
La Stereo Visione
Nella prima parte di questo capitolo cercheremo di capire come sia
possibile, partendo dalla scena tridimensionale, la formazione delle
immagini bidimensionali. La comprensione di questa prima parte ci fornirà
le basi per poter affrontare il problema inverso, ovvero, la ricostruzione
della terza dimensione a partire dalle informazioni provenienti da due
immagini bidimensionali. In particolare verrà descritto il modello pinhole,
inizialmente in una versione semplificata, necessaria ad introdurre alcuni
concetti fondamentali legati alla formazione e alla geometria delle
immagini bidimensionali. In seguito, tale modello, verrà adeguato in modo
da poter considerare gli effetti dovuti alla distorsione radiale prodotti dalle
lenti reali. Definito il modello cercheremo di capire come, per mezzo del
processo di calibrazione, sia possibile ottenere le grandezze che lo
caratterizzano. Nella terza parte di questo capitolo affronteremo il
problema della ricostruzione della terza dimensione. In particolare
descriveremo la geometria che governa un sistema di stereo visione e quali
sono i problemi che caratterizzano tale tipo di sistema. Inoltre cercheremo
di capire che livello di precisione può raggiungere un tale sistema e come
la distanza possa influire su tale precisione. Per concludere presenteremo il
sistema SVS e uno dei campi in cui la stereo-visione riscuote maggior
successo, la ricostruzione di modelli 3D.
Capitolo 3. La Stereo Visione
43
3.1 Il modello pinhole
Il modello pinhole descrive essenzialmente il principio della cosiddetta
camera oscura. In pratica una camera oscura può essere vista come una
scatola chiusa in cui è stato praticato un piccolo foro, su una delle sue
superfici, e dal quale la luce proveniente dal mondo esterno può passare.
Formalizziamo meglio la nostra scatola nera. Si indichi con F il piano in
cui è presente il foro. Da un oggetto posto davanti al piano F partono dei
raggi luminosi dovuti ad emissione diretta o riflessa. I raggi che entrano nel
foro formano sul piano I l’immagine invertita dell’oggetto da cui
provengono. Tali piani, F e I, sono detti rispettivamente piano focale e
piano immagine (o piano retina) e la distanza tra loro viene detta distanza
focale f. Il punto dove è stato praticato il foro prende il nome di centro
ottico mentre la retta normale al piano focale e passante per il foro stesso è
detto asse ottico. Infine, la proiezione invertita dell’oggetto sul piano
immagine è detta proiezione percettiva dell’oggetto. Le grandezze appena
descritte sono riportate in Figura 3-1.
Figura 3-1: Schematizzazione del modello pinhole
Capitolo 3. La Stereo Visione
44
Si supponga ora di scegliere un sistema di riferimento di assi cartesiani X
Y Z di centro Oc coincidente con il centro ottico (vedi Figura 3-1). L’asse
X è ortogonale al piano individuato dall’asse ottico e dall’asse Y. Se M è
un punto dell’oggetto la cui rappresentazione nello spazio è data (in
~
coordinate omogenee) dal vettore M = [ x, y, z , t ]T e se m rappresenta la
sua proiezione sul piano immagine (sempre in coordinate omogenee)
~ = [u , v, s ]T , abbiamo, osservando la Figura 3-1 che:
m
v u
− f
= =
z
y x
Dopo alcuni passaggi matematici [32], la relazione precedente può essere
riscritta come:
0
⎡− f k u
u 0 0⎤
~
~
~=⎢ 0
m
− f k v v0 0⎥⎥ M = PM
⎢
⎢⎣ 0
0
1 0⎥⎦
(3.1)
dove la matrice P prende il nome di matrice di proiezione prospettica e la
relazione (3.1) rappresenta la relazione che lega le coordinate
dell’immagine e quelle del mondo.
La matrice P può essere riscritta come:
P = K [I
0]
(3.2)
dove I rappresenta la matrice identità di dimensioni 3x3 e K è definita
come:
Capitolo 3. La Stereo Visione
0
⎡− f k u
u0⎤
⎢
K =⎢ 0
− f k v v0 ⎥⎥
⎢⎣ 0
0
1 ⎥⎦
45
(3.3)
In questa matrice la coppia (u 0 , v0 )T rappresenta le coordinate del centro
dell’immagine (Cc), mentre i parametri ku e kv rappresentano le unità nel
nuovo sistema di riferimento (OI, U, V) (vedi Figura 3-2).
Figura 3-2: Proiezione di un punto sul piano immagine.
Vale la pena notare che quando le coordinate di un punto mi sull’immagine
vengono espresse in pixel e quelle del punto che lo ha generato sono
espresse in metri così come anche la distanza focale f, allora 1/ku e 1/kv
rappresentano la dimensione, in metri, di un singolo pixel; mentre -fku e fkv possono essere interpretate come la dimensione della distanza focale in
termini di pixel orizzontali e verticali.
Capitolo 3. La Stereo Visione
46
Occorre sottolineare che le quantità f, ku, kv, uo e vo non dipendono ne
dall’orientazione ne tanto meno dalla posizione della telecamera ed è per
questo motivo che vengono chiamati parametri intrinseci o interni della
telecamera.
In molte applicazioni, potrebbe essere necessario dover passare dal sistema
di riferimento della telecamera ad uno solidale con il mondo o viceversa.
Per poter effettuare questo cambiamento di coordinate occorre conoscere la
matrice di rotazione R e il vettore traslazione t che esprimono
l’orientazione e la posizione della telecamera rispetto una terna solidale
con il mondo esterno. Se supponiamo quindi di avere un punto di
coordinate (Xcam,Ycam,Zcam) nel riferimento solidale con la telecamera e se la
terna di coordinate (Xw,Yw,Zw) rappresentano lo stesso punto nel sistema di
riferimento del mondo allora:
[X w ,Y w , Z w]T = R [X cam ,Y cam , Z cam ]T + t
(3.4)
In questo caso la matrice di proiezione P può essere riscritta come:
P = K [R t]
(3.5)
La matrice di rotazione R ed il vettore di traslazione t vengono anche
chiamati parametri estrinseci o esterni della telecamera. Come avremo
modo di vedere in seguito, sia i parametri interni che quelli esterni
potranno essere calcolati mediante una procedura di calibrazione della
telecamera.
3.2 Distorsione radiale
Nel precedente paragrafo è stato illustrato un modello pinhole nel quale si
ipotizzava, in prima approssimazione, di utilizzare una lente puntiforme. In
realtà un tale tipo di lente non è fisicamente realizzabile. Questo implica
Capitolo 3. La Stereo Visione
47
che, per quanto piccola sia, la lente a nostra disposizione introdurrà sempre
una certa distorsione radiale. In Figura 3-3 possiamo osservare gli effetti
dovuti alla non linearità delle lenti reali.
Per tener conto della distorsione radiale occorre adattare il modello pinhole
al caso generale in cui la lente presenta un comportamento non ideale. La
distorsione, visibile in Figura 3-3, è caratterizzata dalla seguente relazione:
D( p) = k1 r 2d + k 2 r 4d + k 3 r 6d + ...
(3.6)
dove rd rappresenta la distanza (in pixel) del punto p dal centro
dell’immagine (cc) e dove i parametri kn sono delle costanti, chiamate
coefficienti di distorsione, che dipendono dal tipo di lente e pertanto fanno
quindi parte dei parametri interni della telecamera.
Figura 3-3: Distorsione radiale causata dalla lente reale.
Capitolo 3. La Stereo Visione
48
Limitandoci a considerare solo il primo termine nell’espressione
precedente k1, otteniamo che, la relazione che lega le coordinate distorte
(ud,vd) a quelle non distorte (u,v) è data da:
⎧u = ud (1 + k1 r d2 )
⎨
2
⎩v = vd (1 + k1 r d )
(3.7)
rd = u 2d + v 2d
(3.8)
dove:
3.3 La calibrazione
Nelle relazioni che abbiamo visto precedentemente i parametri interni ed
esterni della telecamera devono essere individuati in maniera appropriata in
modo tale da adeguare il modello ideale della telecamera alle
caratteristiche reali della stessa.
La necessità di calcolare queste due categorie di parametri, interni ed
esterni, porta ad una naturale suddivisione del processo di calibrazione in:
-
Calibrazione Interna, in cui vengono calcolati i parametri interni (f,
ku, kv, uo, vo, k1) che caratterizzano la telecamera e che consentono
di modellare la proiezione di un punto della scena sul piano
dell’immagine anche in presenza di una distorsione radiale
introdotta dal sistema ottico della telecamera.
-
Calibrazione Esterna, in cui vengono calcolati i parametri esterni
(R, t) che definiscono le trasformazioni necessarie al passaggio dal
sistema di riferimento della telecamera a quello del mondo e
viceversa.
Capitolo 3. La Stereo Visione
49
Si noti che la fase di calibrazione interna è richiesta una sola volta, mentre
la fase di calibrazione esterna deve essere ripetuta ogni qualvolta le
telecamere vengono spostate e/o ruotate. Questo perché, come abbiamo
avuto modo di vedere, i parametri interni ottenuti dalla fase di calibrazione
omonima sono legati all’hardware della telecamera, quindi, fintanto che la
telecamera resta la stessa anche questi parametri restano invariati. Nel caso
della calibrazione esterna, invece, poiché i parametri che la interessano (R,
t) dipendono dall’orientazione e dalla posizione della telecamera è
sufficiente che questa venga mossa, anche accidentalmente, affinché si
renda necessaria una nuova fase di calibrazione esterna.
Esistono molte tecniche che consentono il calcolo dei parametri di una
telecamera [21, 28, 29, 30, 31], comunque tutte queste tecniche
condividono una stessa metodologia. Tale
metodologia consiste
nell’inquadrare un oggetto speciale predefinito (griglia di calibrazione) con
un “pattern” di cui si conoscono le dimensioni, dopodiché si passa al
calcolo dei parametri della telecamera. Il calcolo di questi parametri
richiede il passaggio per due fasi successive, che sono:
1) Stima dei parametri per via analitica.
2) Raffinamento di questi parametri attraverso una ottimizzazione non
lineare.
Fra i vari metodi di calibrazione proposti in letteratura, abbiamo scelto il
metodo di Tsai [30] in quanto, a fronte di un minimo numero di features
estratti, consente di stimare con buona precisione tutti i parametri che
caratterizzano il modello matematico della telecamera. Nel paragrafo che
segue, descriveremo in dettaglio tale metodo ed in particolare tratteremo il
caso in cui i punti estratti per la fase di calibrazione siano coplanari.
Capitolo 3. La Stereo Visione
50
3.3.1 Metodo di Tsai
Come si è potuto osservare, nella fase di calibrazione, è necessario
determinare alcuni parametri necessari a descrivere, internamente ed
esternamente, il modello della nostra telecamera. Alcuni di questi
parametri sono dati direttamente dal produttore della telecamera (come il
numero di pixel che costituiscono il sensore CCD, le dimensioni di questi
pixel ecc.), altri invece dipendono dalla posizione della stessa telecamera
(come la matrice di rotazione R ed il vettore di traslazione t). Per la
determinazione di questi parametri uno dei metodi più noti tra quelli
presenti in letteratura è quello di Tsai[21, 29, 30]. Tale metodo richiede
come input, per ogni punto scelto sull’immagine, la sua corrispondente
posizione nello spazio tridimensionale. Questo insieme di coppie 2D-3D
deve essere costituito da almeno 7 elementi per consentire, nel caso di
punti coplanari, una accurata calibrazione a meno di un fattore di
proporzionalità. Nel caso in cui tali punti non siano coplanari il numero
minimo di tali coppie di coordinate sale ad almeno 11 ed in tal caso è
possibile individuare anche il fattore di proporzionalità ignoto. Poiché
disporre di una griglia di calibrazione 3D è difficile, tipicamente quello che
si fa è di risolvere più problemi con set di punti coplanari per trovare tutti i
parametri di calibrazione.
Cercheremo ora di esaminare più da vicino i passi che caratterizzano il
metodo di Tsai. Consideriamo quindi la seguente fattorizzazione della
matrice di proiezione prospettica P (vedi relazione 3.1):
⎛ k u 0 u o ⎞⎛ − f
⎟⎜
~ ⎜
Ρ = ⎜ 0 k v vo ⎟⎜ 0
⎜ 0 0 1 ⎟⎜ 0
⎝
⎠⎝
0
−f
0
0 0⎞
⎟⎛ R t ⎞
⎟
0 0 ⎟⎜⎜
0 1⎟⎠
⎝
⎟
1 0⎠
(3.9)
Capitolo 3. La Stereo Visione
51
Nella relazione (3.9) sono visibili i parametri interni ed esterni che servono
a caratterizzare il modello matematico della telecamera, non è presente
però il coefficiente di distorsione (k1) che come vedremo sarà considerato
in seguito.
Siano dati N punti (coplanari) della scena reale individuati, ad esempio,
utilizzando il centro di alcuni marker disposti come in Figura 3-4.
Figura 3-4: Punti utilizzati nella calibrazione delle telecamere.
Ogni punto è quindi caratterizzato dalla terna di coordinate tridimensionali,
T
rispetto ad un sistema di riferimento nel mondo, data da wi = ( xi , yi ,0) . La
terza componente risulta essere nulla in quanto i punti considerati
giacciono tutti sul piano di coordinate z = 0, ovvero il pavimento. Siano
inoltre
T
mi = (u i , vi ) i
corrispondenti
punti
proiettati
sul
piano
dell’immagine le cui coordinate sono espresse in pixel. Poiché gli elementi
della prima matrice sono noti possiamo considerare il seguente cambio di
coordinate:
−1
⎛ k u 0 uo ⎞
⎟ ~
~←⎜ 0
m
k v vo ⎟ m
⎜
⎜0 0 1⎟
⎝
⎠
Quindi la (3.9) può essere riscritta come:
(3.10)
Capitolo 3. La Stereo Visione
⎛− f
~ ⎜
Ρ=⎜ 0
⎜ 0
⎝
52
0
−f
0
0 0⎞
⎟⎛ R t ⎞
⎟⎟
0 0 ⎟⎜⎜
0
1
⎝
⎠
1 0 ⎟⎠
Ciascun punto di calibrazione fornisce l'equazione:
~i = ~
~i
Pw
m
(3.11)
(3.12)
Essendo:
⎛ r11 r12 r13 ⎞
⎜
⎟
R = ⎜ r 21 r 22 r 23 ⎟ e t = (t1, t 2 , t 3)T
⎜
⎟
⎝ r 31 r 32 r 33 ⎠
la matrice di rotazione e il vettore traslazione, possiamo scrivere:
− f (r1T wi + t1)
T
r 3 wi + t 3
− f (r T2 wi + t 2)
vi =
T
r 3 wi + t 3
ui =
(3.13)
Il metodo di Tsai si basa essenzialmente su questa equazione per ricavare i
parametri interni ed esterni. Pertanto, mettendo a rapporto le precedenti
relazioni si ha:
T
u i − f (r1 wi + t1) r11 xi + r12 yi + t1
=
=
T
vi − f (r 2 wi + t 2) r 21 xi + r 22 yi + t 2
(3.14)
E’ quindi possibile impostare il seguente sistema lineare:
Au = b
nelle incognite u = ( r11 t 2 , r12 t 2 , r 21 t 2 , r 22 t 2 , t1 t 2)T , in cui:
⎛ v1 x1
v1 y1
v1 ⎞
− u1 x1
− u1 y1
⎟
⎜
:
:
:
: ⎟ e b = (u1...u N )T
A = ⎜:
⎟
⎜
⎝ v N x N v N y N −u N x N −u N y N v N ⎠
(3.15)
Capitolo 3. La Stereo Visione
53
Il sistema può essere risolto col metodo della pseudoinversa. A questo
punto sfruttando anche l’ortogonalità di R possiamo ricavarci tutti gli
elementi della matrice di rotazione e le prime due componenti del vettore
di traslazione t. La terza componente di t così come la distanza focale f, si
ottengono ritornando al sistema di partenza Au = b , dove:
u = ( f , t 3)T
⎛ u1 (r 31 x1 + r 32 y1) ⎞
⎜
⎟
:
b=⎜
⎟
⎜ (
⎟
⎝ u N r 31 x N + r 32 y N ) ⎠
⎛ r11 x1 + r12 y1 + t1 u1 ⎞
⎟
⎜
:
: ⎟
A=⎜
⎟
⎜
⎝ r11 x N + r12 y N + t1 u N ⎠
La soluzione ai minimi quadrati si calcola nuovamente con la
pseudoinversa di A.
Per calcolare infine il coefficiente di distorsione radiale k1 , viene risolto
il seguente problema di regressione non lineare per i parametri t1 , f e k1 :
2
u i (1 + k 1 r i ) =
− f (r1T wi + t1)
T
r 3 wi + t 3
(3.16)
La precedente relazione è stata ottenuta considerando nell’espressione
(3.13) la presenza della distorsione radiale, ovvero effettuando la seguente
sostituzione:
u ← u (1 + k1 r i2)
dove:
2
2
2
r =u +v
Capitolo 3. La Stereo Visione
54
3.4 Geometria della stereo visione
Ottenere la profondità di una scena, da una coppia di immagini che la
ritraggono da due punti di vista differenti e nello stesso istante, richiede la
soluzione dei due problemi, conosciuti come:
1. Il problema della corrispondenza. In questa fase si cerca,come dice
la parola stessa, di mettere in corrispondenza la proiezione di ogni
punto della scena, visibile nell’immagine sinistra, con la proiezione
dello stesso punto visibile sull’immagine destra. Occorre notare che
alcuni punti della scena potrebbero non essere visibili da entrambe
le telecamere, tale condizione determina l’impossibilità di
individuare una corrispondenza per tale coppia di punti.
2. Il problema della ricostruzione. Partendo dai risultati ottenuti nella
fase precedente si cerca, per mezzo di un processo di
triangolazione, di risalire alle coordinate tridimensionali dei punti
della scena. Tale processo di ricostruzione sarà possibile solo per
quei punti della scena in cui, nella fase precedente, sia stato
possibile mettere in corrispondenza biunivoca le due proiezioni
(sinistra e destra) che lo caratterizzano.
La fase di ricerca delle corrispondenze non è un compito facile. I differenti
problemi e i metodi che caratterizzano tale ricerca verranno illustrati nei
prossimi paragrafi.
Una volta individuate le corrispondenze di un punto della scena in
entrambe le immagini (sinistra e destra) è possibile ricavare la disparità
che separa questi due punti. Tale disparità esprime, in altri termini, la
distanza tra il punto considerato nell’immagine sinistra ed il suo coniugato
nell’immagine destra. Se conosciamo quindi i parametri interni delle
telecamere, la lunghezza focale e la distanza che separa i due centri ottici
allora, dalla mappa di disparità è possibile risalire alla terza dimensione dei
punti considerati.
Capitolo 3. La Stereo Visione
55
3.4.1 Il problema della corrispondenza
Supponiamo di avere due immagini prese da due punti di vista differenti
della stessa scena nello stesso istante temporale. Facendo riferimento alla
Figura 3-5 il problema della corrispondenza può esprimersi in questi
termini:
dato un punto I1 nell'immagine A occorre individuare il punto I2
nell'immagine B che corrisponde ad I1, nel senso che, deriva dalla
proiezione dello stesso punto P della scena.
Figura 3-5: Proiezione di un punto P della scena nelle immagini A e B.
Solitamente la ricerca delle coppie di punti coniugati nelle due immagini,
inizia con la scelta di un punto in una delle due e segue con la ricerca del
suo coniugato nell’altra immagine. Come avremo modo di vedere esistono
tutta una serie di fattori che rendono il problema della corrispondenza un
problema difficile da risolvere. Un ulteriore complicazione deriva dal fatto
che scelto un punto su una delle due immagini, tale punto può
corrispondere a diversi punti nella seconda immagine. Per risolvere questa
situazione di ambiguità bisogna ricorre alla cosiddetta geometria epipolare
che ci consente di ridurre lo spazio di ricerca del punto coniugato.
Consideriamo quindi il caso generico riportato in Figura 3-5. Per la terna di
punti costituita da C1 e C2 e da un punto P qualsiasi passa un piano, questo
piano prende il nome di piano epipolare. Questo piano intersecando i due
piani immagini A e B determina due linee rette DE1 e DE2 dette linee
Capitolo 3. La Stereo Visione
56
epipolari. Da quanto detto risulta che dato un punto I1 posto sulla linea
epipolare DE1 nel piano immagine A il suo coniugato I2 è da ricercarsi
lungo la linea epipolare DE2 che giace sul piano immagine B. Si noti che
cambiando il punto P è possibile generare un fascio di piani attorno alla
retta passante per C1 e C2 tale retta, intersecando il piano A (o B), individua
un punto E1 che prende il nome di epipolo. Se le due immagini sono
ottenute da due telecamere poste parallelamente, la linea epipolare è la
stessa in entrambe le immagini (vedi Figura 3-6a). Invece, nel caso in cui
le immagini provengano da due telecamere posizionate non parallelamente,
la linea epipolare è costituita dalla retta che unisce la proiezione P’ (o
P’’)di un punto P della scena con l’epipolo F’ (o F’’) (vedi Figura 3-6b).
Figura 3-6: Geometria epipolare per telecamere parallele (a) e convergenti (b).
Capitolo 3. La Stereo Visione
57
Una volta individuata la linea epipolare su una delle due immagini,
possiamo calcolare la somiglianza di ogni punto presente su questa linea
con un altro punto appartenente alla corrispondente linea epipolare
nell’altra immagine. Le tecniche proposte per questa ricerca sono diverse e
le più comuni saranno illustrate nel prossimo paragrafo.
I fattori che concorrono a rendere complesso il problema della
corrispondenza, sono:
1. Occlusione. Si presenta quando i punti di una immagine non
corrispondono a nessun altro punto presente nell’altra immagine.
Questo può accadere, ad esempio, quando un oggetto impedisce ad
una delle due telecamere di osservare la stessa area osservata
dall’altra telecamera (vedi Figura 3-7a) .
2. Rumore. La presenza di rumore, nelle immagini acquisite, può
rendere difficoltosa la fase di ricerca delle corrispondenze. Questo è
uno dei motivi per i quali si cerca sempre di impiegare delle
telecamere che non comprimano le immagini acquisite prima di
trasferirle sul computer.
3. Distorsione fotometrica. Tale tipo di distorsione si presenta quando
un punto, della scena reale, presenta un’intensità luminosa diversa
in ogni immagine. Questa situazione si può verificare quando
siamo in presenza di una superficie che presenta riflessi che
dipendono dall’angolo di osservazione.
4. Distorsione prospettica. In questo caso la proiezione di uno stesso
oggetto può presentare un numero di “informazioni” magiori in una
vista e meno nell’altra (vedi Figura 3-7b).
5. Tinte unite. L’assenza di ogni tipo di texture, nella scena osservata,
rende impossibile identificare le similarità nelle due immagini.
Questo è il motivo per cui la mappa di disparità, di un oggetto a
tinta unita (come per es. un muro bianco), si presenta frastagliata e
con molto rumore.
Capitolo 3. La Stereo Visione
Figura 3-7a: Situazione di occlusione.
58
Figura 3-7b: Distorsione prospettica.
3.4.1.1 Metodi Area-Based
I metodi area-based si basano, come abbiamo già visto, sul confronto tra
coppie di piccole aree, nelle immagini, dette finestre (o windows). In
questo paragrafo cercheremo di capire come viene effettuato il confronto
fra queste aree. Occorre notare che quanto più accurata sarà la
corrispondenza individuata in questa fase tanto più la mappa di disparità e
di conseguenza le stime sulla terza dimensione che ne derivano saranno
precise. I modi che consentono di confrontare due finestre nelle due
immagini sono basati sulla cross-correlazione (Cross-correlation) o sulla
somma di differenze elevate al quadrato (SSD).
Cross-correlation:
c ( x, y , d ) = ∑ I L ( x + ξ , y + η ) ⋅ I R ( x + ξ − d , y + η )
(ξ ,η )
SSD:
c( x, y, d ) = ∑ [ I L( x + ξ , y + η ) − I R ( x + ξ − d , y + η ) ]2
(ξ ,η )
Con riferimento alle precedenti relazioni: ξ ∈ [ − n, n] rappresenta l’altezza
della finestra, η ∈ [ − m, m] è l’ampiezza della finestra di ricerca ed x, y
Capitolo 3. La Stereo Visione
59
sono le coordinate del pixel nell’immagine sinistra (IL) spiazzato di una
quantità d rispetto all’immagine destra (IR).
Prima di concludere, vale la pena notare che, oltre ai metodi Area-Based
esistono i cosiddetti metodi Feature-Based. Tali metodi si basano sulla
ricerca nelle immagini di caratteristiche peculiari dette feature, come ad
esempio angoli o segmenti rettilinei, che possano essere “facilmente”
identificati in entrambi le viste. Sebbene in questo modo si abbia la
certezza di poter individuare in entrambe le immagini i feature scelti e
quindi di ottenere una corretta ricostruzione della terza dimensione per
questi punti, le mappe di disparità che ne derivano presentano una nube di
punti meno densa. Questo, per quanto riguarda i sistemi di localizzazione e
tracciamento, potrebbe portare ad una stima non precisa sulla posizione 3D
dei soggetti in questione. Inoltre è necessario conoscere la tipologia delle
immagini trattate per definire in modo corretto il tipo di feature da estrarre.
3.4.2 Il problema della ricostruzione
In questo paragrafo cercheremo di capire come, a partire dalle coppie di
punti individuati nella fase precedente, sia possibile risalire alle coordinate
tridimensionali del punto della scena da cui derivano. Ipotizziamo quindi di
non essere in presenza di alcuna distorsione radiale e di aver disposto le
telecamere, parallelamente, come in Figura 3-8.
Supponiamo che P sia un punto nella scena di coordinate (Xw,Yw,Zw).
Siano quindi (u L , v L ) e (u R , v R ) le proiezioni prospettiche di tale punto sui
piani immagine sinistro e destro (vedi Figura 3-9) ottenute dalla ricerca
delle corrispondenze come illustrato nel paragrafo precedente.
Capitolo 3. La Stereo Visione
60
Figura 3-8: Schematizzazione di un sistema di stereovisione a telecamere parallele.
Figura 3-9: Vista dall'alto del sistema mostrato in Figura 3-8.
Se la lente della telecamera sinistra ha coordinate (− b 2 ,0,0) e quella
destra ha coordinate (b 2 ,0,0) , allora:
⎛uL ⎞
f ⎛Xw+b
⎜⎜ ⎟⎟ =
⎜⎜
⎝ vL ⎠ Z w ⎝ Y w
2⎞ ⎛uR ⎞
f ⎛Xw−b
⎟⎟ e ⎜⎜ ⎟⎟ =
⎜⎜
⎠ ⎝ vR ⎠ Z w ⎝ Y w
2⎞
⎟⎟
⎠
Capitolo 3. La Stereo Visione
61
essendo:
vL = vR = Y w
otteniamo:
uL − uR =
f ⎡
b ⎛
b ⎞⎤
f
b
⎢ X w + 2 − ⎜ X w − 2 ⎟⎥ =
⎝
⎠⎦ Z w
Zw ⎣
che può essere riscritta come:
Zw =
f
f
b= b
d
uL − uR
(3.17)
La quantità d = u L − u R esprime la disparità fra i due punti. Dalla
precedente relazione si capisce che d decresce all’aumentare della distanza
Z w ed aumenta nel caso contrario. Una volta nota la distanza Z w che
separa il punto P dal sistema di telecamere è possibile ricavare X w e Y w
dalla relazione:
⎛ X w ⎞ Z w ⎛ uL ⎞ ⎛ b 2⎞
⎜⎜ ⎟⎟ =
⎜ ⎟−⎜
⎟
f ⎜⎝ v L ⎟⎠ ⎜⎝ 0 ⎟⎠
⎝Yw ⎠
⎛uR ⎞ ⎛b 2⎞
⎟
= Z w ⎜⎜ ⎟⎟ + ⎜⎜
f ⎝ v R ⎠ ⎝ 0 ⎟⎠
Una volta calcolata la disparità in ogni punto dell’immagine sinistra è
possibile creare una mappa che racchiuda la disparità di ogni punto della
scena mediante una scala di colori. Tale mappa prende il nome di disparity
map o anche come depth map (vedi Figura 3-10).
Capitolo 3. La Stereo Visione
62
Figura 3-10: Le tonalità più scure indicano disparità minori e quindi identificano
punti della scena che presentano distanze maggiori rispetto alla coppia di telecamere.
3.4.3 Precisione
Ora che conosciamo la geometria di base di un sistema di stereo-visione, è
lecito domandarsi quale sia la massima risoluzione che un tale sistema è in
grado di raggiungere nella ricostruzione delle coordinate tridimensionali.
Riprendiamo quindi la relazione (3.17) e cerchiamo innanzitutto di capire,
con un esempio, come varia la disparità in funzione della distanza. Sia
quindi:
Zw =
f
b
d
(3.18)
dove f rappresenta la distanza focale, d è la disparità e b è la distanza che
separa i centri ottici delle due telecamere. Per fissare le idee, supponiamo
la distanza focale f = 6.3mm e la baseline ovvero b = 8 cm. Inoltre
Capitolo 3. La Stereo Visione
63
sappiamo che per lenti che presentano una distanza focale di 6.3mm, la
dimensione dei pixel del sensore di acquisizione è di circa 14µm.
Sostituendo tali quantità nella relazione (3.18) è possibile ottenere il
grafico in Figura 3-11, che descrive l’andamento della disparità d in
funzione della distanza Zw.
Figura 3-11: Relazione inversa tra disparità e distanza (f = 6.3mm, b = 8.0 cm).
Da tale grafico è possibile osservare che l’intervallo coperto da un sistema
di stereo visione, caratterizzato dai parametri sopra elencati, varia da un
minimo di mezzo metro, con una disparità che supera i 60 pixel, ad un
massimo di circa 35 metri in cui la disparità è praticamente nulla. Occorre
tener presente che tali dati sono puramente teorici e di conseguenza, anche
a causa dei disturbi legati al problema della corrispondenza, l’intervallo
che può essere effettivamente coperto da un sistema di stereovisione è
minore rispetto a quello calcolato per via teorica. Ora se indichiamo con
∆Zw la più piccola variazione che un sistema di stereo visione è in grado di
rilevare in presenza di una variazione ∆d della disparità, possiamo scrivere
che:
Capitolo 3. La Stereo Visione
64
⎛ 2
∆ Z w = ⎜⎜ Z w
⎝b⋅ f
⎞
⎟⎟∆d
⎠
(3.19)
E’ possibile osservare che la baseline b e la distanza focale f influiscono
inversamente in tale relazione. Questo vuol dire che una baseline ampia e/o
una distanza focale maggiore consentono di aumentare il numero di
dettagli che un sistema di stereovisione è in grado di percepire. Pertanto,
utilizzando un sistema di stereovisione con le caratteristiche già viste (b =
8cm, f = 6.3mm) ed utilizzando una interpolazione delle disparità pari ad ¼
della dimensione reale del pixel (ovvero ∆d = 14 4 = 3.5µ m ), abbiamo per
la (3.19) il seguente andamento:
Figura 3-12: Precisione di un sistema di stereovisione in funzione della distanza.
Si è scelto di utilizzare una scala logaritmica per mostrare in dettaglio
l’andamento della (3.19) per distanze inferiori ai 10 metri. Dalla Figura 312 è possibile notare che a distanza di un metro la risoluzione è di circa
8mm. A quattro metri si ha una risoluzione di 100mm e a 10m, infine, il
più piccolo dettaglio che può essere rilevato è di circa un metro. Questo
rapido degradamento delle prestazioni in termini di risoluzione era da
Capitolo 3. La Stereo Visione
65
aspettarselo visto che la (3.19) cresce con il quadrato della distanza. Come
abbiamo potuto vedere, la risoluzione di un sistema di visione decresce
abbastanza rapidamente con la distanza, ovvero detto in altre parole vuol
dire che, l’intervallo della minima distanza rilevabile aumenta. Questo
fatto, non rappresenta un grosso problema quando si deve tracciare la
posizione di un soggetto. Infatti una risoluzione di un metro, ad una
distanza di 10m, è sufficiente a rilevare la presenza (e la posizione) di una
persona. Se questo non bastasse è sempre possibile intervenire, come
abbiamo visto, sulla lunghezza della baseline e/o sulla distanza focale per
raggiungere risoluzioni migliori anche a grandi distanze.
3.4.4 Calibrazione Stereo
Abbiamo visto che un sistema di stereovisione impiega due telecamere per
riprendere (nello stesso istante) la stessa scena da due punti di vista
differenti, al fine di determinarne la sua profondità. Poiché un tale sistema
è caratterizzato da due telecamere avremo bisogno di determinare i
parametri, interni ed esterni, per entrambe. Quindi non si avrà più una sola
matrice di proiezione prospettica ma bensì due, come risulta dalle seguenti
relazioni:
P1 = K 1 [I
0]
P2 = K 2 [R t ]
dove la prima telecamera è stata posta nell’origine (R = I, t = 0) del sistema
di riferimento scelto, e dove la matrice R ed il vettore t della seconda
telecamera rappresentano la sua rotazione e la sua traslazione rispetto alla
prima. Pertanto nella fase di calibrazione stereo sarà necessario calcolare i
parametri (interni) delle due telecamere che caratterizzano le matrici K1 e
K2 ed inoltre occorrerà individuare la matrice R e il vettore t che
Capitolo 3. La Stereo Visione
66
specificano la posizione e l’orientazione relativa delle due telecamere.
Queste informazioni possono essere ottenute sostanzialmente con gli stessi
metodi utilizzati nella calibrazione di una singola telecamera come
illustrato nei paragrafi precedenti. La principale differenza risiede nel fatto
che i procedimenti di calibrazione stereo [34] tengono conto anche del
vincolo che le telecamere non si sono mosse durante l’acquisizione delle
diverse coppie di immagini.
3.4.5 Ricostruzione di oggetti 3D
Le applicazioni della stereo visione sono molteplici e si basano in gran
parte sulla ricostruzione 3D di oggetti reali. Uno schema generale su come,
a partire da una coppia di immagini stereo, sia possibile ricostruire un
oggetto 3D è dato dal seguente diagramma:
Capitolo 3. La Stereo Visione
67
Figura 3-13: Processo di ricostruzione 3D.
Dalla Figura 3-13 si nota che a partire da una sola coppia di immagini
possiamo ricostruire una sola parte del modello 3D. Pertanto, se siamo
interessati all’intera ricostruzione di un oggetto, le coppie di immagini
(stereo) devono poter ritrarre l’oggetto considerato da diversi punti di vista.
In questo modo è possibile ottenere diverse superfici del modello 3D che
devono quindi essere integrate tra loro opportunamente (vedi Figura 3-14).
Per maggiori informazioni su come sia possibile fondere tali modelli in un
unico elemento si rimanda alle letture [22] e [23].
Capitolo 3. La Stereo Visione
68
Figura 3-14: Profilo sinistro e destro di un busto umano uniti in un unico modello 3D.
In basso è possibile osservare il risultato ottenuto dopo aver assemblato le varie parti.
Inoltre, come descritto in [24], è possibile controllare il numero dei
poligoni che costituiscono l’oggetto (vedi Figura 3-15) avendo quindi
diverse risoluzioni nella visualizzazione 3D:
Figura 3-15: Ricostruzione di un oggetto 3D impiegando un diversi livelli di dettaglio.
3.5 Small Vision System (SVS)
Le librerie utilizzate nel sistema proposto, per la ricostruzione della
struttura tridimensionale della scena, provengono dall’applicazione Small
Vision System. Tali librerie sono state ottimizzate al fine di fornire delle
Capitolo 3. La Stereo Visione
69
buone prestazioni anche su elaboratori di fascia medio-bassa e sono
disponibili sia per ambienti Linux che per ambienti Windows. La
calibrazione delle telecamere del sistema qui presentato è stata fatta tramite
SVS. Cinque coppie di stereo immagini sono richieste per la fase di
calibrazione. Tali immagini sono presentate a SVS che provvederà,
impiegando il metodo di Tsai1, a calcolare i parametri interni di entrambe
le telecamere e tramite una successiva fase di ottimizzazione non lineare
calcola i parametri esterni [35] nel sistema di coordinate della telecamera
sinistra. Nella tabella che segue sono riportati i parametri intrinseci,
calcolati da SVS, delle telecamere utilizzate dal sistema di visione
presentato:
Telecamera sinistra
Telecamera destra
Ocx
169.778452
180.089423
Ocy
132.169940
132.324708
f
4.855683
4.827285
k1
0.017337
0.017314
E’ interessante osservare come la distanza focale, ottenuta tramite il
processo di calibrazione, si avvicini di molto a quello dichiarato dal
costruttore (f = 4.0mm). Inoltre il parametro k1 di distorsione radiale è
praticamente identico in entrambe le telecamere. Questo era da aspettarselo
visto che sono state utilizzate due telecamere appartenenti allo stesso
modello e quindi, presumibilmente, monteranno lo stesso tipo di lenti. Per
concludere l’applicazione SVS impiega, per individuare le corrispondenze
nelle due immagini, un metodo di ricerca Area-Based. Naturalmente la
ricerca delle corrispondenze viene fatta lungo linee epipolari. Questo
consente di ottenere dei risultati molto più accurati e di avere dei tempi di
1
Per maggiori informazioni fare riferimento al paragrafo 3.3.1
Capitolo 3. La Stereo Visione
70
calcolo notevolmente ridotti. L’area di ricerca intorno ad ogni punto può
variare da un minimo di 5x5 ad un massimo di 13x13 pixel. E’ inoltre
possibile applicare dei filtri per migliorare la mappa di disparità ottenuta
dalla precedente fase di ricerca delle corrispondenze. L’impiego di tali filtri
tende però a far degradare rapidamente le prestazioni del sistema. Il loro
impiego può quindi risultare essere critico per applicazioni di tipo real-time
mentre è molto adeguato in tutte le altre applicazioni.
Capitolo 4
Il sistema di localizzazione e
tracciamento degli agenti
In questo capitolo verrà descritto dettagliatamente il sistema per la
localizzazione ed il tracciamento di uomini e robot attraverso la
stereovisione, realizzato nell’ambito di questa tesi. Inizieremo dando uno
sguardo generale all’intero sistema ed individuando i principali moduli
logici che lo compongono. Vedremo come, a partire da un input costituito
da una coppia di immagini stereo, sia possibile ricavare la posizione dei
soggetti presenti nell’ambiente. Descriveremo quindi le fasi di calibrazione
(interna ed esterna) necessarie ad ottenere un modello delle telecamere che
ci consentirà di ricavare la terza dimensione per i punti del foreground
della scena, ed inoltre vedremo come calcolare la posizione dei soggetti in
un sistema di riferimento solidale con l’ambiente monitorato. In tal modo
si potranno osservare i punti proiettati all’interno della scena da una
qualsiasi angolazione. In particolare utilizzeremo per i nostri scopi
un’inquadratura virtuale che ci consentirà di ottenere una visuale dall’alto
del pavimento della stanza (plan-view) in cui le possibili situazioni di interocclusione risultano essere ridotte al minimo.
Presenteremo inoltre un nuovo metodo per l’aggiornamento dinamico del
modello del background della scena. Tale metodo è in grado d’individuare
gli oggetti da includere all’interno del background in base all’attività dei
loro bordi. Questo ci permette, ad esempio, di non integrare nel modello
una persona, anche se è ferma nello stesso punto della stanza da diverso
tempo. Come descritto in precedenza molti dei metodi presenti in
letteratura (vedi ad esempio [1, 5, 6, 8]) non sono in grado di rilevare
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
72
questo tipo di situazione e tendono quindi ad includere nel modello del
background ogni cosa stazioni nello stesso punto della scena per più di un
certo periodo di tempo. Un altro grosso vantaggio del metodo proposto è
legato al fatto che per costruire un modello del background non c’è
bisogno di una precedente fase di addestramento, cosa che invece è
necessaria per la maggior parte dei metodi proposti in letteratura.
In conclusione, vengono presentate le tecniche utilizzate per la localizzare
e per tracciare degli elementi d’interesse. Vedremo come per mezzo di una
piccola base di conoscenza sia possibile, utilizzando le reti Bayesiane,
ragionare nelle situazioni d’incertezza che si possono presentare durante il
processo di localizzazione e tracciamento. Descriveremo infine come,
mediante l’uso del Filtro di Kalman, sia possibile migliorare
significativamente la precisione del sistema anche quando il soggetto non è
visibile e si rende quindi necessaria una previsione sulla sua posizione.
4.1 Schema Logico
Nello schema che segue sono riportati i principali moduli logici che
costituiscono il sistema di localizzazione e tracciamento presentato in
questa tesi. Con l’aiuto di tale schema cercheremo di capire come a partire
da una coppia d’immagini, sia possibile localizzare e tracciare uomini e
robot impiegando la stereovisione. Il flusso di dati, come indicato dal verso
delle frecce, procede dall’alto in basso in senso orario.
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
73
Off-Line Calibration
Internal & External
Params
Foreground
Segmentation
Stereo
Images
3D Reconstruction
&
Blobs
&
Background model
creation / update
Plan view projection
Occupancy map
&
Height map
Person
Tracks
Kalman Filter & Bayesian Networks
for
Object Tracking
Schema 4.1: Flusso di dati che caratterizzano il sistema di localizzazione e
tracciamento
Come è possibile osservare dallo schema 4.1 il sistema riceve in ingresso
una sequenza di immagini catturate dal sistema di telecamere stereo, da tali
immagini vengono estratti solo i punti che appartengono al foreground
della scena. Questa prima fase termina con una prima segmentazione in cui
i punti dell’immagine, che si trovano a contatto diretto, vengono raccolti a
formare dei blob distinti. I punti appartenenti a questi blob, grazie ad una
precedente fase di calibrazione (interna ed esterna) condotta off-line,
vengono proiettati nella terza dimensione rispetto ad una terna di
riferimento solidale con l’ambiente monitorato. Questi punti 3D così
ottenuti vengono quindi a costituire la mappa di occupazione (occupancymap) e la mappa delle altezze (height-map) degli individui presenti
nell’ambiente monitorato. Da queste mappe è possibile ottenere una
seconda segmentazione che consente d’individuare i soggetti che, nella
prima segmentazione, risultavano “fusi” in un unico blob. Questa seconda
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
74
segmentazione mette quindi in evidenza la posizione di ogni soggetto
all’interno della stanza. A partire da tale posizione e dalla forma assunta da
tali soggetti all’interno della height-map filtrata, si passa ad effettuare il
matching con quelli presenti nella lista dei soggetti localizzati
correttamente nei fotogrammi precedenti. Nel caso in cui, per uno dei
nuovi soggetti individuati, non sia stato possibile trovare alcuna
corrispondenza all’interno del database dei soggetti tracciati, il sistema
cerca di interpretare la situazione di incertezza, che si è venuta a creare,
tramite l’uso di una rete Bayesiana. Il filtro di Kalman, infine, riduce il
rumore introdotto dalle misure delle posizioni dei vari soggetti effettuate
sulla height-map. Inoltre, consente di stimare la posizione anche per quei
soggetti che nel fotogramma corrente non risultano essere visibili a causa,
ad esempio, di una situazione di occlusione.
Dopo questa panoramica generale del sistema realizzato, passeremo ad
esplorare internamente i macro-blocchi dello schema 4.1 per capire come
questi utilizzino le informazioni provenienti dagli altri blocchi del sistema.
Di seguito viene riportata una sorta di linea guida in cui sono illustrate
brevemente, nell’ordine con cui verranno poi riprese e dettagliate nelle
successive sezioni di questo capitolo, le funzionalità dei blocchi riportati
nello schema 4.2 (di seguito riportato). Questo ci permetterà di affrontare
in modo sistematico la descrizione delle varie parti che costituiscono il
sistema di localizzazione e tracciamento presentato, senza perdere mai di
vista la struttura generale che lo caratterizza.
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
Stereo
Real World
Calibration
Calibration
Foreground
Camera view
Plan view
Segmentation
Projection
Projection
Background
Modelling
Stereo
Images
75
Occupancy and
Height map
creation
Bayesian
Unmatched
objects
Network
Segmentation and Template
to object matching
Person
Tracks
Kalman Filter
Tracking
Matched
objects
Schema 4.2: Vista d’insieme del sistema di localizzazione e tracciamento proposto in
questa tesi.
1. Calibrazione off-line. Questa è l’unica fase, all’interno del sistema,
che viene attuata non a tempo di esecuzione. Tale fase di
calibrazione ha il compito di stabilire i parametri delle telecamere
(Stereo Calibration) necessari a ricostruire la terza dimensione in
un sistema di riferimento solidale con la coppia di telecamere
stereo. Inoltre, per mezzo di una fase di calibrazione esterna (Real
World Calibration) sarà possibile stabilire la coppia di parametri
(R, t) che consentiranno al sistema di passare dal sistema di
riferimento solidale alla coppia di telecamere ad uno solidale con
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
l’ambiente
monitorato.
Come
vedremo,
questo
76
passaggio
permetterà di ricavare una vista dall’alto (virtuale) dei soggetti
presenti all’interno della stanza monitorata.
2. Modellazione e sottrazione del background della scena. L’input del
sistema proposto in questa tesi è costituito da una coppia di
immagini fornite dalla coppia di telecamere stereo. Il primo modulo
(background modelling) impiega l’immagine proveniente dalla
telecamera sinistra per creare e/o modificare un modello del
background della scena. Il secondo (foreground segmentation),
invece, utilizza il modello prodotto dal primo modulo per estrarre il
foreground della scena. Il foreground così ottenuto viene quindi
suddiviso, sempre all’interno di questo modulo, in zone distinte una
dall’altra da un colore diverso (blob). Ricordiamo che questi blob
rappresentano quelle aree dello schermo in cui i pixel
dell’immagine, che sono a diretto contatto fra di loro, vengono
classificati come appartenenti ad un'unica entità (blob) distinta da
ogni altra. Di questi blob, quelli che per dimensioni in termini di
pixel superano una certa soglia arrivano al terzo modulo (camera
view projection) gli altri invece vengono scartati.
3. Ricostruzione della inquadratura virtuale dall’alto della scena
(Occupancy map, Height map). I parametri ottenuti nella fase di
calibrazione interna (stereo calibration) consentono di proiettare
ogni punto, appartenente ad ogni blob del foreground della scena,
in un punto tridimensionale nel sistema di riferimento delle
telecamere. Le coordinate di queste nubi di punti tridimensionali,
originati dai diversi blob, passano attraverso un quarto modulo
(plan view projection) per essere riportate in un nuovo sistema di
riferimento,
questa
volta,
solidale
con
il
mondo.
Tale
trasformazione è resa possibile dalla matrice di rotazione R e dal
vettore di traslazione t calcolati nella fase di calibrazione esterna
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
77
mediante il metodo di Tsai (real world calibration). Da questi punti
3D, nel nuovo sistema di riferimento, è possibile stabilire le
grandezze fisiche (reali) che caratterizzano i vari elementi del
foreground della scena, come ad esempio altezza e larghezza. Ogni
punto tridimensionale viene quindi proiettato sul pavimento (z = 0)
a formare una mappa che rappresenta lo spazio occupato dai
soggetti (occupancy map). Inoltre, per ogni punto di coordinate
(x,y,z) vengono scelti quelli che presentano, a parità di x e y, la
coordinata z maggiore. Questi punti costituiranno una mappa delle
altezze qui definita come height map. Su queste mappe è possibile
individuare la presenza di nuovi uomini (o robot) entrati nel cono
visivo delle telecamere stereo. Inoltre, l’impiego di queste mappe,
consentirà di risolvere possibili situazioni di inter-occlusione e di
localizzare e tracciare uomini e robot all’interno dell’ambiente
monitorato.
4. Localizzazione e Tracciamento (filtro di Kalman e reti Bayesiane).
La fase di tracciamento procede con la memorizzazione della
posizione, velocità e dimensioni fisiche (come altezza e larghezza)
del soggetto monitorato. Viene quindi memorizzata la “postura” del
soggetto, visibile sia nella occupancy map che nella height map.
Questo consente di localizzare lo stesso soggetto all’interno del
fotogramma successivo e quindi di seguirne i suoi spostamenti nel
tempo. E’ chiaro che la riuscita della fase di localizzazione è
vincolata al tempo trascorso tra l’elaborazione di un fotogramma e
quella successiva. Infatti, se supponiamo di elaborare 10
fotogrammi al secondo è logico supporre che nei 100ms che
dividono un’ elaborazione dall’altra, le caratteristiche utilizzate
nella localizzazione di un individuo quali posizione, velocità e
postura saranno variate di pochissimo e sarà quindi possibile
associarle correttamente all’oggetto individuato nel fotogramma
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
78
precedente. L’impiego del filtro di Kalman (kalman filter tracking)
nel processo di tracciamento consente di avere una stima accurata
sulla posizione del soggetto anche in presenza di una situazione di
occlusione completa. Lo stato relativo al processo di tracciamento è
r r
r
r
costituito dalla coppia x , v dove x e v rappresentano
rispettivamente il vettore posizione e il vettore velocità del soggetto
nell’ambiente monitorato. Infine, il sistema di localizzazione e
tracciamento proposto, per poter far fronte a possibili situazioni di
incertezza impiega una rete Bayesiana (bayesian network). Queste
situazioni d’incertezza si potrebbero verificare se, ad esempio, un
elemento localizzato e tracciato correttamente nel fotogramma
precedente non è stato individuato in quello attuale o viceversa. In
questo caso l’impiego di una rete bayesiana potrebbe portare il
sistema ad una deduzione del tipo: “se il soggetto, nel fotogramma
precedente, si trovava ai limiti del campo visivo delle telecamere,
allora con molta probabilità non è stato possibile individuare il
soggetto, nel fotogramma corrente, perché è uscito dalla scena e
non perché si trova in una situazione di occlusione”. Per
concludere, in output dal sistema abbiamo le coordinate delle
posizioni occupate da ogni persona tracciata (person tracks).
4.2 La calibrazione
Come abbiamo visto dai capitoli precedenti, per avere una buona mappa di
disparità e una corretta valutazione delle distanze nel processo di
ricostruzione delle coordinate tridimensionali, è necessaria una fase di
calibrazione delle telecamere. Tale fase di calibrazione è stata, nel nostro
caso, suddivisa in due parti. Nella prima parte sono stati calcolati i
parametri interni che caratterizzano il modello matematico delle
telecamere, mentre nella seconda parte sono stati calcolati i parametri
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
79
esterni che forniscono la posizione e la rotazione delle telecamere
nell’ambiente monitorato. I parametri interni ci hanno quindi consentito di
modellare la distorsione radiale delle lenti e di rettificare le immagini
provenienti dalle due telecamere, al fine di ottenere una corretta proiezione
dei punti nello spazio tridimensionale nel sistema di riferimento delle
telecamere. Infine, il calcolo dei parametri esterni è stato necessario per
passare dalle coordinate (Xcam, Ycam, Zcam) nel sistema di riferimento della
telecamera alle coordinate (Xw, Yw, Zw) di un sistema riferimento solidale
con la scena monitorata.
4.2.1 Calibrazione Stereo
La calibrazione stereo è stata effettuata utilizzando l’applicazione SVS.
Come richiesto da tale applicazione sono state catturate cinque coppie di
immagini di un pattern (a forma di scacchiera) le cui dimensioni sono note
all’applicazione SVS. In Figura 4-1 è possibile osservare la sequenza di
immagini utilizzata nella fase di calibrazione interna delle telcamere.
Figura 4-1: Immagini dello stesso pattern utilizzate nella fase di calibrazione
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
80
Da ogni coppia di immagini, vengono estratti gli angoli di ogni quadrato
appartenente al pattern considerato (features, vedi Figura 4-2).
Figura 4-2:Features individuati automaticamente da SVS in una coppia immagini
stereoscopiche.
Dall’estrazione di tali features SVS è in grado di calcolare
automaticamente i parametri interni delle due telecamere. Questa fase di
calibrazione
interna
non
richiede
l’inserimento
manuale
delle
corrispondenze tra le coordinate dell’immagine bidimensionale e quelle
tridimensionali del mondo reale. Tali informazioni vengono infatti
calcolate automaticamente da SVS in quanto le dimensioni che
caratterizzano il pattern utilizzato nella fase di calibrazione sono note a tale
applicazione. Alla fine del processo di calibrazione, SVS fornisce un file in
cui sono contenuti i parametri necessari a creare un modello matematico
per entrambe le telecamere. Alcuni di questi parametri sono riportati nel
seguente riquadro:
# SVS Engine v 1.4 Stereo Camera Parameter File
[left camera]
pwidth 640
pheight 480
dpx
0.014400
dpy
0.013800
sx
1.042286
Cx
169.778452
Cy
132.169940
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
81
f
4.855683
kappa1 0.017337
[right camera]
pwidth 640
pheight 480
dpx
0.014400
dpy
0.013800
sx
1.045176
Cx
180.089423
Cy
132.324708
f
4.827285
kappa1 0.017314
in cui è possibile riconoscere la dimensione orizzontale e verticale del
singolo pixel (dpx, dpy), il fattore di scala (sx, sy), il centro dell’immagine
(Cx, Cy), la distanza focale (f) ed il coefficiente di distorsione (kappa1).
4.2.2 Calibrazione Esterna
La calibrazione esterna (real world calibration) è stata effettuata
utilizzando il metodo di Tsai per un insieme di punti non coplanari scelti
nell’ambiente da monitorare. A differenza di quella interna, la calibrazione
esterna, ha richiesto la ricerca manuale dei punti di interesse (features). E’
stato quindi necessario contrassegnare ogni punto utile della scena con
delle piccole croci (vedi Figura 4-3).
Figura 4-3: I punti utilizzati nella fase di calibrazione esterna evidenziati da piccole
croci.
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
82
Questi marker sono stati disposti nella stanza rispettando le misure
riportate nello schema di Figura 4-4. Si può notare che non tutti i punti
selezionati giacciono sullo stesso piano. Questa scelta è stata fatta perché la
calibrazione tramite il metodo di Tsai di un insieme di punti non coplanari,
risulta essere molto più accurata rispetto al caso in cui tutti i punti
giacciano sullo stesso piano.
Figura 4-4: Dimensioni della stanza monitorata
La corrispondenza tra coordinate bidimensionali e quelle tridimensionali
del mondo reale sono state individuate manualmente come mostrato in
Figura 4-5. A questo punto i risultati sono stati raccolti in un unico file di
testo in cui ogni riga presentava le coordinate di un singolo punto della
scena.
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
83
Figura 4-5: Features della scena individuati manualmente
In particolare i primi tre valori si riferiscono alle coordinate tridimensionali
del punto considerato (Xw, Yw, Zw) e sono espressi in cm, mentre i restanti
due valori (u,v) sono le coordinate espresse in pixel, dello stesso punto,
all’interno dell’immagine catturata dalla telecamera sinistra. Il sistema di
riferimento ha la sua origine nella parete antistante a quella visibile in
Figura 4-3 ed è disposto in modo tale da avere l’asse z uscente dal foglio,
l’asse x diretto verso destra e l’asse y rivolto verso l’alto (confronta con
Figura 4-4). Tali corrispondenze, tra mondo reale ed immagine, ci hanno
permesso di calcolare il vettore di traslazione Tcam e la matrice di rotazione
Rcam permettendo quindi il passaggio dal sistema di riferimento solidale
con le telecamere a uno solidale con la stanza, tramite la relazione (3.4).
4.3 Modellazione e sottrazione del background.
Per poter estrarre gli elementi di foreground presenti nella scena, occorre
avere a disposizione un modello del background da poter sottrarre ad ogni
fotogramma proveniente dalle telecamere. In questo paragrafo presentiamo
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
84
una nuovo metodo che consente di creare un modello del background sia in
condizioni di staticità della scena che in presenza di elementi di disturbo.
In altre parole, l’impiego di questo metodo, ci consentirà di creare un
modello del background anche in assenza di una precedente fase di
apprendimento. Mostreremo inoltre come il sistema, guidato dal metodo
proposto, sia in grado di evolvere autonomamente nel tempo, integrando
nel suo modello del background le sole modifiche apportate alla
configurazione dello “sfondo” della scena reale.
4.3.1 Creazione del modello
Per rendere il modello sufficientemente robusto alle variazioni di
luminosità [3,7] abbiamo utilizzato le informazioni provenienti sia dalla
sequenza d’immagini catturate dalla scena, che dai bordi (edges)
individuati sulle stesse immagini con l’ausilio dell’operatore di Sobel2. Le
informazioni sulla luminosità costituiscono quindi una parte del modello
che indicheremo con il termine intensity-model. Mentre le informazioni
che riguardano i “bordi” costituiranno la seconda parte del modello
denominata edge-model.
L’intensity-model è rappresentato da una matrice i cui elementi sono in
corrispondenza biunivoca con i pixel delle immagini riprese dalle
telecamere (320x240 pixel). Ogni elemento di questa matrice è
caratterizzato da una media pesata:
µ I , t = α ⋅ I t + (1 − α ) ⋅ µ I , t −1
(4.2)
dove µ I , t rappresenta la media dell’intensità luminosa del pixel all’istante
t, α è un coefficiente che ci consente di regolare la velocità di
“apprendimento” del modello ed It rappresenta l’intensità luminosa del
2
Per maggiori informazioni sul filtro di Sobel consultare l’appendice.
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
85
pixel I all’istante t. In pratica, sottraendo ad ogni pixel dell’immagine il
corrispondente valor medio µ I , t è possibile stabilire quali pixel hanno
cambiato intensità luminosa. Per modellare il rumore introdotto dalle
telecamere e quindi per evitare che i pixel affetti da tale rumore vengono
considerati come pixel di foreground è stato introdotto un parametro di
normalizzazione σ I , t definito come:
(
)
σ 2I , t = α ⋅ I t − µ I , t + (1 − α ) ⋅ σ 2I , t −1
2
(4.3)
Come è possibile notare sia la (4.2) che la (4.3) sono ottenute in modo
ricorsivo. Questa particolare forma ci consente quindi di aggiornare i valori
di µ I , t e σ I , t utilizzando le sole informazioni rilevate dal fotogramma
corrente.
L’edge-model si ottiene applicando l’operatore di Sobel ad ogni immagine
proveniente dal sistema di acquisizione. In pratica l’operatore di Sobel,
tramite l’impiego di due matrici (kernel), è in grado di ottenere i bordi
orizzontali (horizontal-edges) e i bordi verticali (vertical-edges) presenti
nell’immagine. I valori di questi bordi vengono memorizzati in due matrici
distinte. Ogni elemento di queste matrici è caratterizzato dai parametri
( µ H , t , σ H , t ) e ( µ V , t , σ V , t ) definiti come nel caso dell’intensity-model, ma
con Ht e Vt che rappresentano il valore del bordo orizzontale/verticale
ottenuto per il generico pixel dopo aver applicato Sobel al fotogramma t. In
Figura 4-6a è possibile osservare la media µ I , t dell’intensity-model,
mentre in Figura 4-6b e 4-6c è possibile osservare le medie (orizzontale e
verticale) dell’edge-model.
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
86
Figura 4-6: (a) Media delle intensità dei pixels, (b) Media dei bordi orizzontali, (c)
Media dei bordi verticali.
4.3.2 Aggiornamento del modello
Nel precedente paragrafo abbiamo visto come sia possibile creare un
modello del background. Qui cercheremo di capire come sia possibile
mantenere questo modello costantemente aggiornato. Molti dei metodi
proposti in letteratura (ad esempio [1,2,5,6,7]) , nella fase di
aggiornamento del modello del background intervengono direttamente sul
coefficiente che determina la velocità con cui i cambiamenti della scena
vengono inglobati all’interno del modello. In questo modo si cerca di
evitare che cambiamenti temporanei del background, dovuti per esempio a
persone che camminano nell’ambiente, vengano inglobati nel modello.
Questa soluzione presenta però due grossi svantaggi. Il primo è legato al
fatto che se una persona si ferma nello stesso punto per un tempo
relativamente lungo, anche se il coefficiente di apprendimento è stato
ridotto al minimo, tale persona verrà inclusa in un tempo più o meno lungo
all’interno del modello del background. Questo determina la scomparsa
della sua sagoma dal foreground e di conseguenza non sarà più possibile
tracciarne la sua posizione. Il secondo svantaggio è una diretta
conseguenza del primo. Infatti, come abbiamo visto, per ridurre la velocità
con cui vengono apportate le modifiche al modello del background occorre
ridurre di molto il coefficiente di adattamento del modello. Se da una parte
questo permette di non includere nel background i soggetti che stazionano
da poco tempo in una stessa posizione dell’immagine, dall’altro porta il
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
87
sistema a rispondere molto lentamente ad eventuali modifiche apportate
nell’ambiente. Questo determina la presenza di false zone di foreground
che persistono per un tempo pari a quello necessario ad inglobare un
soggetto nel modello del background. Se ora pensiamo ad un ambiente
molto variabile come potrebbe essere quello domestico o anche a quello di
un ufficio si capisce che i piccoli cambiamenti apportati alla stanza, ad
esempio dovuti allo spostamento di una sedia o di alcuni oggetti posti su di
una scrivania, si accumulerebbero generando delle false zone di foreground
sempre più estese. Pertanto una lenta risposta da parte del sistema ad
adeguare il modello del background si tradurrebbe in un rapido calo delle
prestazioni del sistema di localizzazione e tracciamento.
In questa tesi proponiamo un nuovo metodo per l’aggiornamento del
modello del background basato sulle attività dei bordi estratti mediante
l’operatore di Sobel, che caratterizzano l’immagine della scena. In pratica
l’aggiornamento del modello, secondo quanto visto nel paragrafo
precedente, verrà effettuato solamente sulle righe e sulle colonne
dell’immagine che presentano un’attività dei bordi nulla. L’idea di base è
legata alla osservazione che i bordi che appartengono a degli oggetti
inanimati restano immutati nel tempo e presentano pertanto un’attività
nulla. I bordi che invece appartengono a degli oggetti animati cambiano da
fotogramma a fotogramma. Consideriamo per esempio una persona ferma
che parla con un'altra. I minimi movimenti compiuti da questa con la testa,
le spalle o anche dovuti alla sola fase respiratoria, contribuiranno ad
innescare una modifica di molti altri bordi appartenenti alla sua figura. Ad
esempio l’espansione toracica produrrà una deformazione della camicia e
di conseguenza una modifica nella direzione trama del tessuto e della luce
da essa riflessa. Questo tipo di modifica potrà essere evidenziata da
un’analisi dei bordi che caratterizzano la scena stessa.
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
88
Il metodo da noi proposto impiega un modello che descrive le attività di
ogni bordo evidenziato sulla scena. E quindi solo le righe e le colonne del
fotogramma corrente che presentano un’attività massima al di sotto di una
certa soglia verranno utilizzati nella fase di aggiornamento del modello.
Definiamo quindi l’attività A di un pixel appartenente ad un bordo
caratterizzato dai valori Ht, Vt tramite la seguente relazione:
At = (1 − β ) ⋅ At −1 + β ⋅ D mg
(4.4)
dove il parametro β regola la velocità di reazione del sistema in presenza
di un cambiamento dell’intensità del bordo considerato. Per evitare che il
rumore introdotto dalle telecamere possa essere interpretato come l’attività
di un bordo, tale parametro deve essere sufficientemente piccolo, nel
nostro caso β = 0.08 .
Inoltre Dmg rappresenta la diversità osservata tra l’intensità del bordo
rilevato nel fotogramma corrente e quella presente nel background-edgemodel ed è definita dalla relazione:
2
2
D mg = H t + V t − E t −1
(4.5)
Ogni elemento del background-edge-model è definito dalla relazione:
2
2
E t = (1 − β ) ⋅ E t −1 + β ⋅ H t + V t
(4.6)
notiamo che gli elementi del intensity-model e del edge-model vengono
aggiornati solo quando il valore dell’attività At è al disotto di una soglia
minima. Questo elimina la possibilità di includere in questi modelli, che
descrivono il background della scena, quelle zone che sono ancora in una
fase di cambiamento ovvero caratterizzati da un’attività non nulla (vedi
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
89
Figura 4-7). Nella colonna destra di Figura 4-7 è possibile osservare il
background-edge-model in una fase in cui c’è assenza di movimento nella
stanza e, subito dopo, in presenza di un soggetto in movimento. Si può
osservare come, i nuovi bordi creati dalla presenza del soggetto,
modifichino il background-edge-model determinando un conseguente
aumento delle attività massime orizzontali e verticali. In Figura, per non
appesantire le immagini, sono state riportate le sole attività (massime)
verticali. Ora, i continui cambiamenti di questi bordi vengono rilevati ed
integrati (gradualmente) nel background-edge-model ma non all’interno
del intensity-model e del edge-model. In questo modo, il modello che
descrive il background e tramite il quale viene estratto il foreground della
scena non viene modificato fintanto che le attività che vengono attualmente
rilevate non scendono al disotto di una soglia minima. Questo avverrà
solamente quando i bordi avranno cessato la loro attività di movimento
che, per una riga o per una colonna, si avrà solo nei casi in cui o il bordo
non si trova più nella zona considerata, perché ad esempio appartiene ad un
soggetto in movimento, oppure il bordo non ha mutato la sua posizione e la
sua forma per un certo periodo di tempo. Dagli studi fatti, si è potuto
osservare che solamente i bordi appartenenti ad oggetti inanimati restano
del tutto immobili ed immutati nel tempo mentre, negli altri casi, tendono a
modificarsi e a cambiare di posizione provocando una conseguente
variazione delle attività.
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
90
Figura 4-7: Attività verticali dei bordi e background-edge-model.
Cerchiamo di capire quali sono i passi che caratterizzano l’aggiornamento
del modello del background. Supponiamo quindi di partire da un generico
istante t in cui è stato già creato un modello del background della scena
(come descritto nel paragrafo 4.3.1) e sia stato anche inizializzato il
background-edge-model. A questo punto ad ogni pixel p dell’immagine
viene applicato l’operatore di Sobel per estrarre i valori Hp e Vp che lo
caratterizzano. Applicando la relazione (4.5) e la (4.4) è possibile calcolare
l’attività dei bordi dell’intera immagine. Ora che sono note le attività di
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
91
ogni punto viene effettuata una scansione dell’immagine per individuare la
massima attività di ogni riga e di ogni colonna. Tali attività vengono quindi
confrontate con le attività rilevate nel fotogramma all’istante t-1. Se questo
confronto rivela una diminuzione dell’attività e se l’attività attualmente
misurata è al disotto di una certa soglia minima allora la riga e/o la colonna
considerata viene etichettata come statica e si può quindi passare
all’aggiornamento della parte del modello del background che la riguarda
tramite le relazioni (4.2) e (4.3).
Sfruttando questa stessa logica il metodo presentato è in grado di creare un
modello del background della scena anche in presenza di elementi di
disturbo che si muovono al suo interno. Questo risulta essere una novità
rispetto ai metodi presenti in letteratura i quali richiedono, per costruire un
modello del background, una precedente fase di addestramento in cui non è
ammessa la presenza di alcun soggetto. Supponiamo quindi di partire
dall’istante t = 0 e di azzerare intensity-model, edge-model e il
background-edge-model. Poiché partiamo da una situazione di staticità è
logico impostare l’attività di ogni punto dell’immagine a zero. Non appena
arriva il primo fotogramma essendo nullo il background-edge-model in
corrispondenza di ogni punto dell’immagine verrà registrato un aumento
delle attività. Questo aumento delle attività portano il sistema a non
aggiornare nessun elemento dell’intensity-model e dell’edge-model
pertanto in questa fase il fotogramma in questione non apporta alcuna
informazione utile per la creazione del modello del background. Man mano
che nuovi fotogrammi vengono presentati al sistema le zone che non sono
influenzate da nessuna modifica dei propri bordi cominceranno a
presentare una diminuzione delle loro attività massime quindi non appena
tali attività scenderanno al disotto della soglia minima avrà inizio, solo per
queste zone, la creazione e l’aggiornamento del modello del background
della scena. Tale processo di creazione/aggiornamento verrà quindi
arrestato ogni volta che vengono evidenziati degli aumenti nelle attività per
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
92
poi essere ripreso quando le attività massime delle righe e/o delle colonne
in questione scendono al disotto della soglia minima.
4.3.3 Sottrazione del background
Nella fase di sottrazione del background l’intensità di ogni pixel
proveniente dal fotogramma t, viene confrontato con l’intensità media µ I , t
che gli corrisponde nell’intensity-model. Da questo confronto scaturisce un
valore che normalizzato rappresenta, in una scala da 0 a 100, quanto il
pixel in questione si sia allontanato dal suo valor medio. Se il valore che
deriva da tale confronto supera una certa soglia minima il pixel viene
dichiarato come appartenente al foreground. Pertanto il processo di
sottrazione del background per questo pixel si arresta e si passa ad
analizzare il pixel successivo. In caso contrario per quello stesso pixel
vengono calcolati i bordi orizzontale e verticale con l’operatore di Sobel e
viene quindi effettuato un confronto di entrambi con i valori memorizzati
nell’edge-model. Anche in questo caso se il valore ottenuto supera una
certa soglia minima il pixel verrà etichettato come appartenente al
foreground in caso contrario verrà dichiarato come appartenente al
background della scena. Cerchiamo ora di capire come viene calcolato il
valore di confidenza sopra citato sia nel confronto con l’intensity-model
che in quello dell’edge-model.
4.3.3.1 Confronto con l’intensity-model.
Supponiamo quindi di indicare con It l’intensità luminosa di un generico
pixel I prelevato dal fotogramma t. Allora, possiamo scrivere che:
∆I t = I t − µ I , t
dove ∆It rappresenta la differenza, in valore assoluto, tra l’intensità del
pixel considerato e l’intensità media calcolata fino a quel momento. Ora se
il valore ∆It è al disotto di una certa soglia minima T I , min = m I σ I , t il
valore restituito da questo confronto sarà nullo, ovvero il pixel in questione
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
93
sarà classificato come appartenente al background della scena. Nel caso in
cui il valore ∆It superi una certa soglia superiore T I , max = M I σ I , t il valore
restituito sarà 100 questo ad indicare che il pixel considerato appartiene
invece al foreground della scena. In tutti gli altri casi in cui
T I , min < ∆I t < T I , max il valore di confidenza viene calcolato attraverso la
seguente relazione:
CI, t =
∆I t − T I , min
⋅ 100 ∈ [0, 100]
T I , max − T I , min
I valori di MI, mI sono delle costanti il cui valore deve essere determinato
sperimentalmente.
4.3.3.2 Confronto con l’edge-model.
Supponiamo che la fase di confronto con l’intensity-model abbia restituito,
per il pixel considerato, un valore di confidenza CI,t maggiore di 0 ma che
non supera la soglia minima CF. A questo punto non siamo in grado di
stabilire se il pixel in questione appartiene al foreground o al background
della scena. Si rende necessario quindi confrontare i bordi Ht, Vt per tale
punto dell’immagine con i valori medi µ H , t e µ V , t memorizzati nell’edge-
model. Come nel caso precedente, calcoliamo la differenza assoluta tra i
valori correnti Ht, Vt e quelli medi, quindi:
∆H t = H t − µ H , t
∆V t = V t − µ V , t
Il gradiente sarà quindi dato da:
∆G t = ∆H t + ∆V t
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
94
ed il valore di confidenza CE,t può essere ottenuto dalla seguente relazione:
C E, t
⎧0
K t < T E , min
⎪
⎪ K t − T E , min
=⎨
per T E , min < K t < T E , max
⎪ T E , max − T E , min
K t > T E , max
⎪100
⎩
Kt =
∆G
con G*t = max H t + V t , µ H , t + µ V , t
*
Gt
dove:
{
2
}
Nelle relazioni precedenti i valori di TE,min e TE,max sono calcolati come nel
caso dell’intensity-model, ovvero:
T E , min = m E σ E , t
T E , max = M E σ E , t
dove mE ed ME sono due costanti da determinare sperimentalmente, mentre
σ E, t è data dalla somma σ E , t = σ H , t + σ V , t .
In definitiva, ricapitolando, abbiamo visto che se il coefficiente di
confidenza CI,t non supera la soglia minima CF si passa a controllare se
questo valore viene invece superato da CE,t . Se questo avviene per CI,t
oppure per CE,t allora il pixel viene classificato come appartenente al
foreground della scena, altrimenti viene classificato come elemento di
background. Procedere con un confronto sequenziale come quello appena
illustrato, ovvero prima confrontare CI,t con CF e solo se necessario passare
a confrontare CE,t con CF, migliora notevolmente le prestazioni del sistema
sia da un punto di vista della velocità computazionale sia in termini di
qualità nei risultati ottenuti. In Figura 4-8 è possibile osservare il risultato
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
95
ottenuto dopo aver sottratto, con il metodo descritto, il modello del
background della scena al fotogramma corrente. In bianco sono stati
evidenziati i punti classificati come appartenenti al foreground della scena,
mentre i restanti punti di colore nero evidenziano le zone classificate come
background.
Figura 4-8: Mappa di foreground della scena ottenuto dopo aver sottratto il modello
del background dal fotogramma corrente.
4.3.4 Elementi connessi e riduzione del rumore nel foreground
della scena
Una volta che il modello del background è stato sottratto al fotogramma
corrente quello che resta è una “maschera” binaria in cui sono distinti gli
elementi di foreground dagli elementi appartenenti al background della
scena. Spesso tale maschera non è del tutto priva di rumore (vedi Figura 48). Può accadere infatti che alcune zone del foreground non siano
uniformemente riempite oppure che alcuni punti risultino essere classificati
in modo errato come appartenenti al foreground della scena. Per eliminare
le zone di falso foreground e tutti gli elementi che per dimensione non
possono appartenere ad un soggetto da tracciare, il metodo qui presentato
individua inizialmente tutti gli elementi connessi del foreground (blob) e di
questi mantiene solo quelli che sono costituiti da almeno 200 pixel. In
questo modo viene eliminato il classico rumore impulsivo detto anche
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
96
“sale e pepe”. Inoltre, per mezzo dell’operatore morfologico di apertura
[9] è possibile riempire delle piccole zone del foreground che sono state
erroneamente classificate come appartenenti al background della scena,
come può essere osservato nella Figura 4-9.
Figura 4-9: In senso orario troviamo: (1) Il fotogramma originale, (2) Maschera del
foreground della scena, (3) Blob ognuno identificato da un colore diverso, (4) Blob la
cui dimensione supera i 200 pixel.
4.3.5 Calcolo degli elementi connessi (Blobs)
A partire dalla maschera del foreground ottenuta, si cerca d’individuare gli
elementi presenti nella scena. Come abbiamo avuto modo di vedere, la
maschera di foreground è in pratica una immagine in cui i pixel che
appartengono ad un elemento di foreground sono etichettati con valore 1
mentre quelli che appartengono al background hanno valore 0. Nel calcolo
degli elementi connessi si cerca di individuare delle zone, costituite dai
pixel
che si trovano a diretto contatto, e di distinguere tali zone
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
97
etichettandole in modo diverso. Le zone così ottenute vengono indicate con
il termine di Blob. Da questa fase abbiamo una prima segmentazione degli
oggetti che compongono il foreground della scena. Per ognuno di questi
blob, dopo questa fase, siamo in grado di stabilire il numero di pixel che li
compongono e la regione (bounding-box) da essi occupata. Questo ci
permette di filtrare tutte quelle zone che per dimensione non possono
appartenere a nessun elemento d’interesse. In questo modo il “rumore”
dovuto a delle false zone di foreground viene ulteriormente ridotto (vedi
Figura 4-9 riquadro in basso a destra).
4.4 Proiezione del foreground e ricostruzione della terza
dimensione
Una volta ottenuto un foreground privo di elementi di disturbo possiamo
passare a proiettare nello spazio i punti che appartengono ai blob rimasti.
Questo modo di operare presenta due grossi vantaggi. Il primo è legato al
fatto che, essendo il numero di punti da proiettare ridotti al minimo, è
possibile ottenere un aumento delle prestazioni del sistema. Il secondo
vantaggio che si ottiene è forse più importante del primo. Infatti aver
proiettato i soli punti che appartengono ai blob del foreground della scena
riduce il numero delle possibili ambiguità che si possono incontrare nella
fase di segmentazione attuata nella terza dimensione per vari soggetti.
Comunque, anche dopo aver filtrato ogni elemento di disturbo, non
conviene segmentare queste nubi di punti 3D nello spazio a partire dal
punto di vista della telecamera (camera-view) tramite la mappa di disparità.
Questo perché, come abbiamo detto, la mappa di disparità non è
sufficientemente dettagliata, a causa degli innumerevoli punti per cui non è
stato possibile individuare una corrispondenza nelle due immagini,
pertanto una segmentazione basata sulla disparità e quindi sulla distanza
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
98
degli oggetti dalle telecamere non fornirebbe i risultati sperati. Alcuni
metodi presentati di recente in letteratura risolvono questo problema con
una inquadratura dall’alto dei punti proiettati. In pratica grazie ad una
trasformazione di coordinate è possibile “simulare” la presenza di una
telecamera posta sul soffitto della stanza. Il vantaggio di inquadrare la
scena da questa nuova visuale deriva dal fatto che il numero delle
occlusioni tra una soggetto ed un altro sono praticamente nulle. Le sagome
dei soggetti visti da questa angolatura possono essere proiettate sul
pavimento e fornire quindi una stima dell’area da essi occupata
(occupancy-map). Inoltre è possibile calcolare una mappa delle altezze
(height-map) dei punti proiettati che, unitamente all’occupancy-map, può
essere utilizzata per individuare la posizione di ogni soggetto, anche di
quelli che nell’inquadratura della telecamera risultavano parzialmente
occlusi. Si noti che l’utilizzo di una telecamera reale posta sul soffitto,
specialmente se basso, consentirebbe di monitorare solamente una piccola
porzione della stanza. Inoltre, un’inquadratura reale dall’alto preclude la
possibilità di vedere i volti delle persone e quindi di creare, ad esempio, un
eventuale modulo aggiuntivo per il riconoscimento degli individui che
popolano la stanza. Grazie alla stereo-visione siamo invece in grado di
creare una inquadratura qualsiasi dei punti tridimensionali che
caratterizzano il foreground della scena a partire da una inquadratura fissa
della scena. In particolare questo è possibile anche per ambienti all’aperto
in cui chiaramente non essendo presente un soffitto non sarebbe possibile
installare una telecamera reale per riprendere la scena dall’alto.
Nei paragrafi che seguono illustreremo nel dettaglio come sia possibile
creare una nuova inquadratura della scena dall’alto (plan-view) e costruire
da questa la mappa di occupazione (occupancy-map) e delle altezze
(height-map), sulle quali verrà effettuata la localizzazione ed il
tracciamento dei soggetti (ripresi dalla coppia di telecamere).
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
99
4.4.1 Calcolo della Disparity-Map
Il primo passo da compiere per poter arrivare a generare l’occupancy-map
e la height-map è il calcolo della disparity-map. Quindi a partire dalla
coppia di immagini stereo si passa, mediante un algoritmo di ricerca delle
corrispondenze di tipo area-based, ad individuare per ogni punto
dell’immagine sinistra il suo coniugato sull’immagine destra. Individuata
la distanza per ogni coppia di punti coniugati è possibile ricostruire la
mappa di disparità (o di profondità) della scena. Da questa mappa di
disparità, solo i punti che corrispondono al foreground della scena verranno
proiettati nella terna di riferimento solidale con la coppia di telecamere
(camera-view) (vedi Figura 4-10).
Figura 4-10: (a) Immagine proveniente dalla telecamera sinistra. (b) Immagine
destra. (c) Mappa di disparità. (d) Mappa di disparità filtrata mediante l’uso della
maschera del foreground della scena (visibile in basso a destra).
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
100
4.4.2 Dal camera-view al plan-view
Per fissare le idee osserviamo la Figura 4-11. Come prima cosa ogni punto
di coordinate (u,v) appartenente al foreground dell’immagine viene
proiettato nello spazio tridimensionale della scena impiegando la mappa di
disparità e le informazioni provenienti dalla fase di calibrazione delle
telecamere.
Figura 4-11: Terne di riferimento del sistema di telecamere stereo e del mondo.
Quello che otteniamo è una nube di punti 3D di coordinate (Xcam, Ycam,
Zcam) nel riferimento della coppia di telecamere stereo. Per poter osservare
questa nube di punti da un altro punto di vista e nelle coordinate del mondo
dobbiamo fissare un nuovo sistema di riferimento. Consideriamo quindi la
terna (Xw, Yw, Zw) in cui gli assi Xw, Yw giacciono sul pavimento mentre
l’asse Zw è rivolto verso l’alto. Il passaggio dal sistema di riferimento delle
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
101
telecamere a quello del mondo è reso possibile dalla fase di calibrazione
esterna realizzata tramite il metodo di Tsai. Tale calibrazione esterna,
descritta in dettaglio nel paragrafo 4.2.2, ci fornisce la matrice di rotazione
e il vettore traslazione necessari ad effettuare il cambiamento di coordinate,
secondo la relazione (3.4) che qui riportiamo per comodità:
[X wY w Z w]T = Rcam [X camY cam Z cam]T + Tr cam
Ora che i punti sono stati trasformati nelle coordinate del mondo è
possibile calcolare le mappe su cui verrà effettuato la segmentazione e il
tracciamento dei vari oggetti che compongono la scena.
4.4.3 Occupancy map & Height map
Per poter creare la occupancy-map e la height-map occorre suddividere in
tanti piccoli tasselli il pavimento. In Figura 4-12 è possibile osservare la
telecamera virtuale ottenuta grazie al cambiamento di coordinate descritto
nel paragrafo precedente. Inoltre è possibile notare come il pavimento sia
stato suddiviso in tanti tasselli di lato δ scale (vedi Figure 4-11 e 4-12).
Ognuna di queste celle andrà a costituire un punto nella occupancy-map
(height-map) la cui “intensità” sarà stabilita dal numero di punti proiettati
che si trovano al di sopra della cella considerata. In pratica occorre vedere
ogni cella come una sorta di tubo quadrato (detto voxel) che si estende
verticalmente e che delimita il volume d’azione della singola cella (vedi
Figura 4-12).
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
102
Figura 4-12: Tramite la mappa di disparità ogni punto viene proiettato in 3D e
raccolto all’interno di un Voxel. Il numero dei punti 3D all’interno di un voxel
determinano l’intensità della cella corrispondente e quindi della occupancy-map.
Il passo di quantizzazione ( δ scale ) deve essere sufficientemente piccolo da
apprezzare i dettagli dei soggetti tracciati ma allo stesso tempo deve essere
sufficientemente grande da eliminare il rumore introdotto dalle
imprecisioni della mappa di disparità. Un buon compresso si ha utilizzando
un passo di quantizzazione δ scale compreso fra 3-5 cm/cella. Stabilita la
risoluzione del pavimento si passa a proiettare ogni punto della scena 3D
nella cella che gli corrisponde. I punti della scena aventi coordinate (Xw,
Yw, Zw) che si trovano all’interno di un voxel contribuiscono, come già
detto, ad aumentare il valore della cella che gli corrisponde. Sappiamo che
gli oggetti più lontani dalla telecamera tendono ad apparire molto più
piccoli, quindi composti da meno punti, rispetto a quelli più vicini. Questo
implica che se ogni punto contribuisse ad aumentare il valore di una cella
di un’unità gli oggetti più lontani (essendo composti da meno punti)
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
103
risulterebbero poco evidenti all’interno della occupancy-map. Per evitare
questo problema ogni punto contribuisce con una quantità che aumenta con
l’aumentare della distanza del punto stesso dalla telecamera, il cui valore è
compreso tra 0 e 1. In pratica l’incremento della cella Occ ( x plan , y plan )
dell’occupancy-map dovuto alla presenza di un generico punto p
all’interno del suo voxel è pari a (disp max − disp p ) disp max [11]. Dove
dispmax rappresenta la massima disparità della scena e dispp rappresenta la
disparità del punto p. Per capire a quale cella appartiene un punto di
coordinate (Xw, Yw, Zw) è sufficiente ignorare la sua altezza Zw e ricavare le
coordinate (xplan, yplan) della cella a cui appartiene con le seguenti relazioni:
x plan = ⎣( X w − X min ) δ scale + 0.5⎦
y plan = ⎣(Y w − Y min ) δ scale + 0.5⎦
dove Xmin, Ymin rappresentano il limite minimo dell’ambiente monitorato.
L’occupancy-map da sola non basta ad evidenziare dei soggetti
parzialmente occlusi. Infatti se pensiamo che ogni cella dell’occupancymap dipende direttamente dal numero di punti contenuti all’interno del
voxel che gli corrisponde siamo in grado di capire che soggetti
parzialmente occlusi risultano appena visibili in tale mappa. Per ovviare a
questo problema è utile calcolare la mappa delle altezze o height-map.
L’unica differenza che presenta tale mappa rispetto alla occupancy-map è
legata al modo in cui vengono calcolati i valori che sono associati alle celle
che la costituiscono. In pratica ogni cella della height-map è caratterizzata
dalla massima altezza raggiunta dai punti all’interno del suo voxel. Quindi
per ogni punto di coordinate (Xw, Yw, Zw) all’interno del voxel della cella di
coordinate (xplan, yplan) si controlla se Zw > H(xplan, yplan) e se Zw< Zmax. Se
questo è il caso ad H(xplan, yplan) viene assegnato il valore di Zw altrimenti la
height-map per la cella (xplan, yplan) resta invariata. La height-map così
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
104
ottenuta ha il grosso vantaggio di evidenziare la presenza di soggetti
nell’ambiente anche se è visibile solo la loro testa. Quindi ci consente di
segmentare i vari elementi della scena anche se alcuni di essi risultano
essere parzialmente occlusi. Sfortunatamente la height-map risulta essere
molto rumorosa è quindi necessario un suo perfezionamento.
4.4.4 Perfezionamento della occupancy-map e della height-map
Per ridurre il rumore nella mappa delle altezze (height-map) ed in quella di
occupazione(occupancy-map) viene applicato un filtro di Gauss in modo
da ridurre il rumore senza però perdere troppi dettagli. Per fare ciò il kernel
del filtro di Gauss deve essere adeguato alla risoluzione scelta per le celle
delle mappe. Queste mappe, a cui è stato applicato il filtro di Gauss,
saranno indicate come Occsmooth ed Hsmooth per poterle distinguere
rispettivamente dalla occupancy-map e dalla height-map originali. La
height-map così filtrata continua comunque ad essere troppo sensibile
rispetto ad ogni elemento che presenti una certa altezza. Infatti è sufficiente
che un soggetto sollevi un braccio o qualsiasi altro oggetto perché questo
venga evidenziato nella height-map. Per eliminare anche questo tipo di
problema possiamo “mascherare” la height-map utilizzando l’occupancy
map. In pratica l’altezza delle celle della height-map che, nella rispettiva
cella della occupancy-map, hanno un valore inferiore ad una certa soglia
ϑ noise vengono azzerate. Formalmente possiamo descrivere quanto detto
nel modo che segue:
⎧ H smooth (i, j ) se Occsmooth (i, j ) > ϑ noise
H mask (i, j ) = ⎨
se Occsmooth (i, j ) ≤ ϑ noise
⎩0
dove i,j rappresentano gli indici all’interno delle mappe.
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
105
In Figura 4-13 è possibile osservare nell’ordine: il fotogramma originale, la
height map e la occupancy-map a cui è stato applicato il filtro di Gauss ed
infine la Hmask .
Figura 4-13:(a) Fotogramma originale, (b) Hsmooth, (c) Occsmooth, (d) Hmask.
Occorre notare che il valore di ϑ noise va stabilito con attenzione e deve
essere determinato sperimentalmente. Infatti un valore troppo elevato di
tale soglia porterebbe a non rivelare la presenza dei soggetti parzialmente
occlusi.
4.5 Localizzazione e tracciamento
Utilizzando la height-map filtrata (Hmask) siamo in grado di localizzare e
tracciare i soggetti che compongono il foreground della scena. Alcuni dei
testi in letteratura, come ad esempio [11], suggeriscono di approssimare le
forme visibili nella occupancy-map per mezzo di k-gaussiane e di
utilizzare tale approssimazione per individuare la presenza di uno stesso
soggetto all’interno dei fotogrammi successivi. L’individuazione di un tale
modello, per ogni soggetto tracciato, oltre ad essere oneroso da un punto di
vista del tempo di calcolo fornisce dei risultati non del tutto soddisfacenti.
Abbiamo quindi pensato di trattare direttamente la “postura” del soggetto,
osservabile nella Hmask e nella Occsmooth, come se fosse una sorta di
istantanea da poter utilizzare come modello (template) nella ricerca dello
stesso soggetto all’interno dei fotogrammi futuri [8, 11].
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
106
4.5.1 I Templates
Come accennato nei paragrafi precedenti, i template utilizzati dal sistema
di localizzazione e tracciamento qui proposto sono sostanzialmente tre.
Due sono ricavati direttamente dalla height-map e dalla occupancy-map e
saranno indicati rispettivamente come TH e TO. Un terzo è invece ricavato
per ogni blob presente nel foreground della scena dal colore di ogni pixel
di questi blob. In pratica dalla terna (R, G, B), che definisce l’intensità di
un pixel, si passa alla cromaticità del pixel stesso definita dalla terna
(r,g,b). A questo punto possiamo costruire un template TC impiegando una
matrice di dimensioni m x m con m = 16. Tale template TC è quindi una
sorta d’istogramma a due dimensioni in cui ogni cella viene indirizzata per
un pixel di cromaticità (r,g,b) e dalla coppia:
rg = r − g
2b − r − g
by =
2
e dove il valore della cella TC (rg, by) viene incrementato di una unità.
Questo template verrà confrontato con quello di ogni altro blob
appartenente al foreground della scena. Da un punto di vista intuitivo
l’utilità di tale template è legata all’osservazione che molti dei soggetti
tracciati saranno vestiti con indumenti di colore diverso e quindi
presenteranno un template TC differente uno dall’altro. Questo ci
consentirà di effettuare un matching molto più accurato fra i blob
individuati nel fotogramma attuale e gli oggetti che sono stati localizzati e
tracciati in quello precedente. Inoltre grazie a questo template siamo in
grado di distinguere un robot da un agente umano. Questo perché i robot
nella loro versione finale, saranno colorati in modo tale da consentire al
sistema di visione di distinguerli dai soggetti umani.
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
107
Per quanto riguarda invece i template che possono essere ricavati dalla
occupancy-map e dalla height-map occorre fare alcune considerazioni sulle
dimensioni delle matrici che li conterranno. Come abbiamo visto ogni
punto dell’occupancy-map e della height-map corrisponde ad una
dimensione fisica ben precisa, compresa tra i 3 ed i 5 cm. Pertanto, essendo
i template TH e TO prelevati direttamente da queste mappe, dovranno essere
costituiti da un numero di punti sufficiente a contenere il soggetto
evidenziato nella mappa considerata. Supponendo quindi di aver utilizzato
come passo di quantizzazione un δ scale = 4 cm potremmo utilizzare delle
matrici 20x20 (ovvero 80cm x 80cm) che risultano più che sufficienti a
contenere le proiezioni di un uomo o di un robot sul pavimento.
4.5.2 Localizzazione
Per localizzare la posizione dei soggetti presenti nell’ambiente monitorato
si procede nel modo seguente. Uno alla volta i blob, che appartengono al
foreground della scena, vengono proiettati nel dominio 3D per ricostruire
la relativa Hmask. Come sappiamo un blob della scena può appartenere ad
uno o anche a più soggetti della scena se siamo in presenza di una
situazione di inter-occlusione. Per individuare tale situazione di occlusione
si passa ad analizzare la Hmask generata dal blob corrente con l’intento di
individuare le zone che presentano una maggiore densità di punti. Per fare
questo, nell’area individuata sulla Hmask dalla proiezione del bounding-box
del blob considerato, viene effettuata una convoluzione con un quadrato di
dimensioni pari a quelle di un template. Poiché, come spiegato nel
precedente paragrafo, la dimensione dei template TH e TO è stata fissata per
ognuno di loro a 20x20 pixel, allora, questa sarà anche la misura che
caratterizzarà la finestra nel processo di convoluzione. Quindi:
20
C (u , v) = ∑20
∀(u , v) ∈ AreaProiettata(Blobi)
x = 0 ∑ y = 0 H mask ( x + u , y + v )
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
108
Ora se C, per la coppia di coordinate (u,v), è maggiore di una certa soglia
minima Tperson (individuata sperimentalmente) vuol dire che l’area
all’interno della finestra di ricerca, avente un primo vertice in (u,v) e il suo
opposto in (u+20, v+20), appartiene ad un soggetto (vedi Figura 4-14).
Figura 4-14: All'interno della height-map vengono ricercate le aree a maggior
densità per ricavare la posizione dei vari soggetti che popolano la scena.
Una volta identificata la coppia (u,v) per cui C > Tperson, si passa a centrare
meglio il quadrato in modo da massimizzare il valore ottenuto dalla
convoluzione. Questo viene fatto ricercando la coppia di coordinate (u’,v’),
presa in un intorno di (u,v), che rende massimo il valore di C. Una volta
centrato correttamente l’obiettivo all’interno del quadrato di dimensioni
20x20 si passa a memorizzare i punti, all’interno di questa area, nel
template TH. Considerando la stessa area all’interno della occupancy-map
si passa a memorizzare, nello stesso modo, il template TO. Per concludere i
punti che appartengono a tale area vengono rimossi sia dalla Hmask che
dalla Occsmooth in questo modo si evita di riconsiderare la stessa zona. Tale
processo si conclude quando tutta l’area occupata dalla proiezione dei
punti appartenenti al blobi è stata analizzata. A questo punto possiamo
ipotizzare due situazioni. La prima situazione è che nella nostra ricerca
abbiamo rilevato la presenza di un solo soggetto, quindi poiché al blob
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
109
considerato corrisponde un solo elemento nella Hmask non siamo in
presenza di una situazione di occlusione. Nella seconda situazione
potrebbe invece accadere che siano state individuate diverse aree
all’interno della Hmask che appartengono a soggetti diversi. Chiaramente in
questo caso siamo in presenza di una situazione di occlusione che non si
sarebbe potuta evidenziare a partire dal solo blob in questione.
L’operazione appena descritta viene ripetuta per ogni blob appartenente al
foreground della scena e ci consente di scoprire le situazioni di parziale
occlusione.
4.5.3 Tracciamento
Conclusa la fase di localizzazione abbiamo, per ogni blob della scena, uno
o più template che appartengono ad altrettanti oggetti che (verosimilmente)
sono stati localizzati e tracciati nel fotogramma precedente. Occorre quindi
mettere in corrispondenza tali oggetti, che sono stati precedentemente
memorizzati all’interno di una lista, con i template individuati nel
fotogramma corrente. All’inizio del processo di localizzazione e
tracciamento la lista di questi oggetti, localizzati e tracciati nell’istante
precedente, è vuota. Ogni template individuato nella fase di localizzazione,
che non corrisponde a nessun elemento della lista, verrà inserito come
nuovo oggetto al suo interno. Ogni oggetto di questa lista è che ne descrive
la situazione attuale (nuovo, occluso, perso, ecc.). Pertanto gli oggetti che
all’istante t = 0 sono in corrispondenza biunivoca con un unico blob da cui
derivano saranno etichettati come NEW_OBJECT e verranno aggiunti alla
lista. Se invece dalla proiezione di un solo blob è stato possibile rilevare la
presenza di più di un oggetto allora questi elementi verranno etichettati
come OCCLUDED e quindi aggiunti alla lista.
Nel fotogramma successivo sarà necessario, una volta individuati i vari
template all’interno delle mappe, metterli in corrispondenza con gli oggetti
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
110
presenti all’interno della lista in modo da poter tracciare i movimenti di
ogni soggetto nel tempo. Ogni oggetto all’interno della lista è caratterizzato
da:
•
Una posizione (Xw,Yw): che corrisponde al centro del quadrato
utilizzato per individuare i template TH e TO.
•
Dai template TH ,TO e TC.
•
Uno
stato
che
può
assumere
i
valori:
NEW_OBJECT,
OCCLUDED, MERGED, LOST, TERMINATED.
Per determinare la corrispondenza tra gli oggetti Oi della lista e gli elementi
Ej rilevati nell’ultimo fotogramma occorre calcolare la distanza che separa
ogni possibile coppia (Oi, Ej). La distanza tra un oggetto Oi ed un elemento
Ej è costituita dalla somma pesata di più distanze ognuna delle quali riflette
le differenze di una qualche caratteristica scelta come misura. Quanto detto
può essere formalizzato tramite la relazione:
Dist (Oi , E j ) = ∑h wk ⋅ d k ( Oi , E j )
(4.7)
Assumendo che gli oggetti non subiscano grossi cambiamenti (come è
logico che sia) fra due fotogrammi consecutivi, allora il valore che
caratterizza la distanza tra un oggetto O e elemento E sarà molto piccolo se
tale elemento corrisponde all’oggetto (precedentemente tracciato) nel
nuovo fotogramma. Le distanze dk utilizzate per calcolare la distanza
complessiva tra un oggetto ed un elemento sono:
1. La distanza tra la posizione prevista per l’oggetto O e quella
rilevata per l’elemento E. A tale metrica è stato assegnato il peso
maggiore all’interno della sommatoria (4.7) ed è definita come:
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
d 1 (O, E ) = ( x E − xo, pred ) + ( y E − y o, pred )
2
111
2
2. La differenza tra il template TO dell’oggetto O e il template T’O
dell’elemento E. Tale distanza è definita come:
n −1 n −1
'
d 2 (O, E ) = ∑ ∑ T O ( x, y ) − T O ( x, y )
y =0x =0
3. La differenza tra il template TH dell’oggetto O con il template T’H
rilevato per l’elemento E. Questa distanza viene calcolata come nel
caso precedente sostituendo semplicemente TO con TH, quindi:
n −1 n −1
'
d 3 (O, E ) = ∑ ∑ T H ( x, y ) − T H ( x, y )
y =0x =0
4. Infine, la misura della distanza tra il colore del template TC
dell’oggetto O e quella T’C dell’elemento E è calcolata come:
⎛ T C (rg ,by )
T C' (rg ,by ) ⎞⎟
⎜
(
,
)
O
E
=
−
∑
∑
d4
⎟
rg = 0 by = 0 ⎜
S T C'
⎝ ST C
⎠
2
m −1 m −1
m −1 m −1
dove S T = ∑ ∑ T C (rg , by ) . Questa normalizzazione ci permette
rg = 0 by = 0
di rendere il valore di tale distanza indipendente dalle dimensioni
dell’elemento considerato.
Vale la pena osservare che nella distanza d1 se l’oggetto O è etichettato
come NEW_OBJECT allora la sua posizione prevista viene sostituita con
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
112
la sua posizione attuale. Inoltre la distanza definita nel punto 4 viene
calcolata solo nel caso in cui gli elementi considerati non siano
OCCLUDED.
L’insieme delle distanze Dist(Oi, Ej) calcolate per ogni possibile coppia
(i,j) vengono a costituire la matrice di somiglianza M. In questa matrice
vengono riportate le distanze delle sole coppie (i,j) per cui Dist(Oi, Ej) è
minore di una certa soglia di tolleranza. In tutti gli altri casi gli elementi
della matrice M sono impostati alla distanza massima DIST_MAX = 1e10,
ad indicare che non vi è alcuna corrispondenza tra Oi ed Ej. Le associazioni
oggetto-elemento possono essere fatte analizzando tale matrice. In pratica
per ogni oggetto O viene ricercato l’elemento E che presenta la distanza
minore da esso. Inoltre per ogni elemento E si passa a ricercare l’oggetto O
che più gli si avvicina in termini di distanza.
Quindi per una coppia (O1,E1) può accadere che:
•
Se O1 è il solo oggetto che presenta la minore distanza da E1 ed
inoltre E1 è l’unico elemento con distanza minore da O1, allora
l’elemento E1 viene associato all’oggetto O1 ed etichettato come
TRACKED.
•
Se due oggetti O1, O2 identificano lo stesso elemento E1 come
quello che presenta la distanza minore per entrambi allora si passa a
valutare quale, fra le due coppie (E1, O1) ed (E1, O2), è quella che
presenta la distanza minore. Supponiamo ad esempio che la coppia
(E1, O1) sia quella con la distanza minore allora E1 viene associato
ad O1 e questo viene etichettato come TRACKED. Per l’oggetto O2
si passa invece a controllare se esiste un altro elemento E2 che
presenta una distanza al disotto della soglia di tolleranza. Se questo
elemento esiste E2 viene assegnato ad O2 che a sua volta viene
etichettato come TRACKED in caso contrario O2 viene etichettato
come MERGED.
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
•
113
Infine si potrebbe avere la situazione duale alla precedente in cui
cioè ad un oggetto O1 è possibile associare due elementi E1 ed E2.
Occorre quindi controllare quali fra le due coppie (O1, E1) ed (O1,
E2) presenta la distanza minima. Per fissare le idee supponiamo che
sia la prima ad avere la distanza minore, allora ad E1 viene
associato ad O1 che viene quindi etichettato come TRACKED. Per
E2 si cerca di vedere se esiste un altro oggetto O2 che presenta una
distanza minima da esso. Se questo oggetto esiste allora E2 viene
associato ad O2 e si etichetta tale oggetto come TRACKED, in caso
contrario l’elemento E2 viene ignorato.
Alla fine della fase di ricerca delle corrispondenze oggetto-elemento le
situazioni possibili che si possono avere sono:
1. Tutti gli oggetti sono stati associati a tutti gli elementi rilevati nel
fotogramma corrente. In questo caso la posizione, la velocità e tutti
template (TH, TO e TC) che caratterizzano ogni oggetto sono
aggiornati con quelli dell’elemento che gli è stato associato.
2. Tutti gli elementi sono stati allocati ma alcuni oggetti della lista
non hanno trovato una corrispondenza. Questo vuol dire che tali
oggetti sono “scomparsi” dalla visuale delle telecamere. Questo
potrebbe accadere per esempio in una situazione di completa
occlusione o anche perché il soggetto è uscito definitivamente dalla
scena. Vedremo nel successivo paragrafo come sia possibile
affrontare tali situazioni di incertezza.
3. Tutti gli oggetti hanno trovato il corrispondente elemento nel
fotogramma corrente ma alcuni di questi elementi non hanno
trovato un oggetto all’interno della lista. In questo caso siamo in
presenza di nuovi soggetti che sono entrati in scena e che quindi
devono essere inseriti nella lista degli oggetti da tracciare.
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
114
Il primo caso rappresenta quindi la situazione più favorevole ovvero in cui
avendo trovato una corrispondenza biunivoca tra oggetti ed elementi non si
presenta alcun tipo di ambiguità. Negli altri due casi invece occorre capire
per quale motivo non siamo riusciti a stabilire una corrispondenza. Per
risolvere questo tipo di problematiche impiegheremo una rete Bayesiana
che ci consentirà di ragionare anche in quelle situazioni di incertezza in
cui, ad esempio, occorra stabilire se la perdita di un soggetto è dovuta alla
sua uscita di scena o è stata causata da una situazione di occlusione. Infine
per avere una stima migliore sulla posizione di ogni soggetto tracciato
verrà impiegato un filtro di Kalman. Tale filtro ci consentirà di avere una
stima della posizione anche per quei soggetti che non risultano essere
visibili (temporaneamente) alle telecamere. Entrambi questi aspetti
verranno trattati in dettaglio nei paragrafi che seguono.
4.5.3.1 Reti Bayesiane
Dopo aver ricercato ogni corrispondenza oggetto-elemento può accadere,
come abbiamo visto, che per qualche oggetto o elemento non sia stato
possibile stabilire un’associazione. Questo potrebbe verificarsi perché un
oggetto è uscito dalla scena oppure perché siamo in presenza di una
situazione di occlusione o ancora perché la fase di estrazione del
foreground è fallita. Per cercare di risolvere almeno parzialmente tali
situazioni di ambiguità il sistema realizzato in questa tesi, impiega un
piccolo dominio di conoscenza. Ad esempio, se sappiamo che l’oggetto per
il quale non è stato possibile stabilire una corrispondenza nel fotogramma
corrente si trovava, nel fotogramma precedente, ai limiti del campo visivo
delle telecamere allora con molta probabilità il soggetto è uscito
definitivamente dalla scena.
In questo lavoro abbiamo utilizzato delle reti di credenze anche note con il
nome di reti Bayesiane [25,26,33] per rappresentare ed utilizzare un
piccolo dominio di conoscenza. In pratica una rete Bayesiana è costituita
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
115
da un grafo orientato ed aciclico nel quale ogni nodo rappresenta una
variabile aleatoria e gli archi rappresentano le connessioni causali tra le
variabili. Ad ogni nodo è associata una tabella di probabilità condizionate
che quantifica gli effetti che i genitori hanno sul nodo. Dove i genitori di
un nodo sono costituiti da tutti quei nodi che hanno frecce che puntano al
nodo. Nel caso in cui il nodo non presenti alcun parente allora la
probabilità condizionata degenera in una probabilità a priori. Una volta
osservato lo stato di alcuni nodi è possibile calcolare la probabilità a
posteriori dei restanti nodi utilizzando delle tabelle di probabilità
condizionata associate ad ogni nodo. Ogni riga di queste tabelle contiene la
probabilità condizionata del valore di ogni nodo rispetto ad una qualsiasi
combinazione dei valori che i genitori del nodo possono assumere (caso
condizionante).
Nel caso specifico sono state utilizzate due reti Bayesiane una per
ragionare quando siamo in presenza di un oggetto a cui non è stato
possibile assegnare nessun elemento (vedi Schema A) ed un’altra per
ragionare nella situazione inversa ovvero nella situazione in cui siamo in
presenza di un elemento a cui non è stato possibile associare nessun
oggetto presente nella lista di quelli tracciati(vedi Schema B).
Occluded t-1
Terminated t
Lost t
Occluded t
Predictive
Terminated
Unmatched
Object
Predictive
Occluded
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
116
Schema A: Rete Bayesiana utilizzata per gli oggetti non assegnati.
Occluded t-1
New Object t
Distance
LT
Unmatched
Element
Tracked t
Blob size
decreases
Schema B: Rete Bayesiana utilizzata per gli elementi non assegnati.
Nelle reti Bayesiane visibili negli schemi A e B (in cui sono state omesse le
tabelle di probabilità condizionata per non appesantire la grafica) gli stati
dei vari nodi ad eccezione di “Terminated t”, “Lost t”, “Occluded t” e “New
Object t” possono essere determinati dai risultati ottenuti nell’elaborazione
attuale e in quella passata. La distribuzione delle probabilità condizionate
attribuite ad ogni variabile all’interno della rete sono specificate utilizzando
il dominio di conoscenza. Tutte le variabili aleatorie sono di tipo binario ad
esclusione di “Distance LT” che può assumere tre distinti valori
(“touching”, “close”, “far”). Questa variabile riflette la distanza che separa
l’elemento considerato da una zona di occlusione a lungo termine (LT). Se
per esempio un elemento E, non assegnato a nessun oggetto, si trova in
prossimità di una zona di occlusione a lungo termine (come i bordi delle
schermo) allora la probabilità che si tratti di un nuovo oggetto entrato in
scena viene rafforzata. Inoltre questa probabilità tende a crescere
ulteriormente se in prossimità dell’elemento considerato nell’istante t-1
non era in corso alcuna situazione di inter-occlusione. Questo controllo è
necessario perché il termine di una situazione di occlusione (completa)
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
117
determina la “ricomparsa” sul foreground della scena di due blob distinti di
cui uno potrebbe essere erroneamente interpretato dal sistema come un
nuovo elemento entrato in scena. Osserviamo che lo stato di “Predictive
Terminated” e di “Predictive Occluded” vengono stabiliti per ogni oggetto
utilizzando i seguenti criteri:
•
Predictive Terminated. Un oggetto viene etichettato in questo modo
ogni volta che il suo boundig-box bidimensionale nella occupancymap si sovrappone con i limiti dell’area monitorata dalle
telecamere.
•
Predictive Occluded. Questo stato viene assegnato a tutti gli oggetti
la cui area, proiettata sul plan-view, si sovrappone con quella di un
altro oggetto o con una zona della scena definita come zona di
occlusione a breve termine.
Infine, se anche la rete Bayesiana fallisce nell’intento di stabilire lo stato di
un certo oggetto, questo verrà classificato come “Lost”. Se un oggetto
permane nello stato di “Lost” per più di cinque fotogrammi sarà dichiarato
perso in maniera definitiva e verrà quindi eliminato dalla lista degli oggetti
tracciati.
4.5.3.2 Tracciamento tramite Filtro di Kalman.
Il filtro di Kalman si presta particolarmente bene ad essere usato in tutte
quelle situazioni in cui sia necessaria una stima di uno stato futuro a partire
dalla conoscenza di quello attuale. Tale filtro nel sistema di localizzazione
r r
v
e tracciamento qui presentato è caratterizzato dallo stato x , v dove x
r
rappresenta la posizione bidimensionale del soggetto tracciato, mentre v è
la velocità del soggetto, entrambi con coordinate proiettate sul piano
individuato dal pavimento (plan-view).
La stima dello stato successivo si ottiene dalla relazione:
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
st +1 = Φ ⋅ st + wt
118
(4.8)
e da una fase di misura, utilizzata per aggiornare lo stato corrente e fornire
una stima più accurata dello stato successivo:
z t = H s t + vt
(4.9)
Le variabili aleatorie wt e vt rappresentano rispettivamente il rumore nel
processo di tracciamento e il rumore nella misura. Si assume che esse
siano indipendenti e con distribuzione di probabilità normale bianca,
quindi:
wt = N (0, Q)
vt = N (0, R)
dove Q ed R sono rispettivamente le matrici di covarianza nel rumore del
processo e di covarianza nel rumore della misura.
Nella relazione (4.8) la matrice Φ rappresenta la matrice di transizione
dello stato. Nel nostro caso essendo:
xt +1 = xt + v x ,t ⋅ t
y t +1 = y t + v y ,t ⋅ t
e avendo posto t = 1, il generico stato st risulta essere:
⎡ xt ⎤
⎢y ⎥
t
st = ⎢ ⎥
⎢ v x ,t ⎥
⎢ ⎥
⎣v y ,t ⎦
pertanto la corrispondente matrice di transizione, sarà:
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
⎡1
⎢0
Φ=⎢
⎢0
⎢
⎣0
0
1
0
0
1
0
1
0
119
0⎤
1⎥⎥
0⎥
⎥
1⎦
La matrice H, visibile nella relazione (4.9), ci consente di estrarre dal
vettore di stato gli elementi che siamo in grado di misurare all’interno del
nostro processo di tracciamento. Poiché nel nostro caso siamo in grado di
osservare e quindi di misurare la sola posizione (xt,yt) del soggetto la
matrice H sarà:
⎡1 0 0 0 ⎤
H =⎢
⎥
⎣0 1 0 0 ⎦
Infine, le matrici Q ed R, avendo assunto come deviazione standard
dell’errore commesso nel calcolo della posizione del soggetto, un valore
pari a 12cm ed essendo δ scale = 4cm / voxel avremo σ x = σ y = 3 pixel . Per
quanto riguarda invece la deviazione sulla stima della velocità abbiamo
posto σ vx = σ vy = 2 . In definitiva abbiamo che:
⎡9
⎢0
Q=⎢
⎢0
⎢
⎣0
0
9
0
0
1
0
4
0
0⎤
1⎥⎥
0⎥
⎥
4⎦
Nella fase di misurazione della posizione assumiamo una deviazione
standard dell’errore di circa 8cm pertanto σ x = σ y = 2 pixel . In definitiva
la matrice di covarianza nel rumore della misura R, sarà:
⎡4 0⎤
R=⎢
⎥
⎣0 4⎦
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
120
Per verificare la bontà del modello creato sono stati simulati dei percorsi di
un ipotetico soggetto introducendo, nella fase di misurazione, un errore
casuale. Nelle figure che seguono, il quadratino rappresenta il percorso
seguito dal soggetto, i cerchietti scuri indicano le posizioni stimate tramite
il filtro di Kalman, infine con i cerchietti più chiari rappresentano le
posizioni ottenute mediante un semplice modello a velocità costante in cui
la stima della posizione del soggetto è calcolata a partire dall’osservazione
di due fotogrammi consecutivi.
Figura 4-15: Esempi di percorsi simulati ricostruiti tramite filtro di Kalman (cerchi
scuri) e tramite un semplice modello a velocità costante (cerchi chiari).
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
121
Come è possibile osservare il filtro di Kalman fornisce una buona stima
sulla posizione del soggetto tracciato anche in presenza di decelerazioni e/o
cambi di direzione. Grazie al filtro di Kalman come avremo modo di
osservare dai risultati ottenuti sperimentalmente è stato possibile
raggiungere un buon livello di precisione nel tracciamento di uomini e
robot.
4.5.3.3 Tecniche per il tracciamento a lungo termine
Per evitare che vengano inseriti nella lista degli oggetti tracciati anche
quelle zone di foreground che rimangono tali solo per un breve periodo
prima di essere inglobate nel modello del background, si è dotato ogni
oggetto di un campo “time_track” e di un campo “time_lost”. Il primo
campo indica il numero di volte consecutive che un oggetto è stato
tracciato con successo. Il secondo campo viene invece incrementato di uno
ogni volta che l’oggetto tracciato risulta essere etichettato come “lost”. Un
nuovo oggetto, prima di essere inserito in modo definitivo nella lista degli
oggetti tracciati, viene inserito in una lista diversa denominata lista dei
candidati. Ogni elemento di questa lista deve essere localizzato
correttamente per almeno 5 fotogrammi consecutivi, altrimenti viene
dichiarato come un falso allarme e viene rimosso dalla lista dei possibili
“candidati”. Se un soggetto viene invece perso per più di cinque
fotogrammi allora viene dichiarato perso e viene quindi rimosso dalla lista
degli oggetti tracciati. Infine, il sistema prima di iniziare il tracciamento di
un nuovo oggetto verifica che questo sia più alto di un metro. In questo
modo si evita di tracciare, ad esempio, lo spostamento di una sedia o di un
cestino. Con questo semplice tipo di filtraggio si rischia però di non
tracciare i soggetti di bassa statura come, ad esempio, i bambini o anche i
soggetti adulti che si sono accovacciati sul pavimento per raccogliere
qualcosa. Questo non toglie però che in futuro sia possibile corredare il
Capitolo 4. Il sistema di localizzazione e tracciamento degli agenti
122
sistema sviluppato di un modulo che consenta di riconoscere e quindi
filtrare in maniera oculata i soli oggetti di interesse. Di questi e di altri
miglioramenti se ne parlerà nel capitolo delle conclusioni in cui verranno
riportati dei suggerimenti per possibili lavori futuri.
Capitolo 5
Risultati sperimentali
In questo capitolo, dopo aver descritto brevemente la configurazione
hardware su cui poggia il sistema presentato in questa tesi, passeremo ad
analizzare i risultati ottenuti dalla fase di sperimentazione. In questa fase
abbiamo utilizzato, oltre alle sequenze video provenienti dal mondo reale,
delle sequenze di immagini sintetiche realizzate con un potente tool di
sviluppo tridimensionale (3DSMax® v5.0). Queste sequenze ci hanno
permesso di stabilire, ancor prima che fosse stata allestita la stanza
“RoboCare”, la posizione e l’orientamento ottimale per le due telecamere
stereo. E’ stato inoltre possibile individuare la distanza migliore fra le due
telecamere (baseline) necessaria ad ottenere i risultati migliori durante la
fase di ricostruzione della terza dimensione all’interno del range di distanze
a cui siamo interessati. Dopo questa prima fase di sperimentazione attuata
sul set di immagini sintetiche siamo passati ad analizzare il comportamento
del sistema di localizzazione e tracciamento sulle sequenze di immagini
riprese dall’ambiente reale.
Gli esperimenti hanno avuto come obbiettivo quello di mettere in evidenza
le prestazioni del sistema nella:
1. Creazione del modello di background senza una precedente fase di
apprendimento e in presenza di elementi di disturbo all’interno
della scena.
2. Accuratezza e velocità di aggiornamento del modello del
background.
Capitolo 5. Risultati sperimentali
124
3. Precisione dei risultati nella fase di localizzazione e tracciamento
dei vari soggetti all’interno dell’ambiente monitorato.
5.1 Configurazione Hardware e Software
Il sistema di visione proposto è stato scritto interamente in C++, questo ne
consente la sua compilazione sia in ambiente Linux che in ambiente
Windows senza troppe difficoltà. In particolare il sistema è stato testato su
di un PC a 600Mhz in cui è stata installata la versione 9.0 di Linux RedHat.
Le immagini vengono acquisite dal mondo esterno tramite una coppia di
webcam di tipo FireWire alla velocità di 15fps. Le caratteristiche tecniche
di queste telecamere sono riportate in tabella 1.
Sensor
Color CCD image
Optical size
1/4 inch format
Effective pixels
659(h) x 494(v)
Frame rate
30 frames/sec. at 640 x 480 format
Focal length
4.00 mm
Back focal length
3.50 mm
Focus area ranges
from 1.0 cm to infinity
Angle of view
62 degree, diagonal
Distortion
< -12.0 %
Band Width
200 Mb/s
Tabella 1: Caratteristiche tecniche webcam iBot
Le telecamere sono quindi state fissate parallelamente su di un supporto
rigido ad una distanza una dall’altra di 18cm ed inclinate verso il basso di
circa 20°. Con una baseline di 18cm e con una distanza focale di 4mm è
Capitolo 5. Risultati sperimentali
125
possibile ricoprire, senza particolari problemi, un intervallo di distanze
compreso tra 1 e 7 metri (vedi Figura 5-1). Occorre notare che la relazione
riportata in Figura 5-1 ha una valenza puramente teorica, comunque ci dà
la possibilità di osservare che con la configurazione scelta il sistema sarà in
grado di ricostruire, con una buona precisione, la terza dimensione di tutti
gli oggetti che si trovano tra una distanza minima di 1.5 metri ed una
distanza massima di 5 metri dalle telecamere.
Figura 5-1: Relazione tra disparità e distanza per un sistema di telecamere disposte
parallelamente con distanza focale f = 4mm e baseline b = 18 cm.
Il supporto su cui sono montate le telecamere è stato poi fissato al muro da
un’altezza di 2,5 metri. Questa particolare disposizione è stata scelta
perché, dalle prove fatte sul modello 3D della stanza, si è visto che da
questa posizione è possibile rilevare la testa e quindi la presenza di un
soggetto anche in situazioni di inter-occlusione. Il supporto su cui sono
state installate le due telecamere può essere osservato nella parte alta delle
figure (2a) e (2b).
Capitolo 5. Risultati sperimentali
126
Figura 5-2: Configurazione hardware su cui è stato sperimentato il sistema di visione.
5.1.1 Interfaccia Utente
L’interfaccia utente del sistema sviluppato è riportata in Figura 5-3.
Tramite questa interfaccia siamo in grado di monitorare l’output fornito dai
singoli moduli che costituiscono il sistema di localizzazione e tracciamento
qui presentato. Questo tipo di feedback “visuale” è di fondamentale
importanza in quanto permette di osservare il sistema in ogni sua parte e di
valutare i risultati forniti da ogni singolo modulo. Possiamo quindi
visualizzare il modello di background che il sistema ha creato e vedere
come evolve nel tempo oppure osservare la mappa di disparità della scena
monitorata e altro ancora.
Come avevamo accennato nei capitoli precedenti, una volta proiettati i
punti appartenenti al foreground della scena è possibile osservarli da una
qualsiasi angolazione. Per consentire di apprezzare al meglio tale
caratteristica si è pensato di realizzare un modulo che fosse in grado di
visualizzare, tramite le librerie OpenGL, i punti proiettati e che ci
permettesse di osservarli in tempo reale da una qualsiasi angolazione.
Capitolo 5. Risultati sperimentali
127
Figura 5-3: Interfaccia utente del sistema di localizzazione e tracciamento realizzato
in questa tesi
Inoltre, tramite questo modulo è possibile seguire il processo di
localizzazione e tracciamento del sistema da un punto di vista qualitativo,
al fine di verificarne (tramite ispezione visiva) la sua precisione. Infatti, se
consideriamo ad esempio la Figura 5-4, è possibile notare come il sistema
sia stato in grado di localizzare correttamente i due soggetti e anche come,
grazie alla presenza dei due cerchi di colore diverso, sia possibile stabilire
con una semplice ispezione visiva la sua precisione. Si noti che, grazie alla
telecamera virtuale, è stato possibile inquadrare la scena da una posizione
diversa da quella ottenuta dalle telecamere reali. Questo si può notare
facilmente se si osserva l’inclinazione del pavimento ricostruito in 3D
visibile in Figura 5-4.
Capitolo 5. Risultati sperimentali
128
Figura 5-4: Inquadratura virtuale ricostruita dal sistema realizzato in questa tesi.
Dopo questa breve descrizione dell’interfaccia del sistema realizzato
passiamo ad analizzare i risultati ottenuti durante la fase di
sperimentazione.
5.2 Risultati della sperimentazione in ambiente simulato
Prima di passare alla sperimentazione su sequenze di immagini riprese da
un ambiente reale, sono state fatte delle prove su sequenze ricostruite al
computer per capire quale fosse la migliore disposizione per le telecamere
e per avere una prima valutazione sulla precisione del sistema nella fase di
ricostruzione della terza dimensione e in quella di localizzazione e
tracciamento degli elementi d’interesse. In Figura 5-5 è possibile osservare
il modello tridimensionale della scena.
Capitolo 5. Risultati sperimentali
129
Figura 5-5: Ricostruzione virtuale della scena.
Come è possibile osservare, sono presenti due cilindri che simulano la
presenza di due soggetti che si muovono all’interno dell’ambiente virtuale.
Le altezze dei due cilindri sono rispettivamente di 175cm per il cilindro
contraddistinto dal colore blu (quello più scuro) e di 160cm per l’altro.
Inoltre il cilindro più alto presenta un diametro di 75cm mentre il diametro
di quello più basso è di 60cm. Nel riquadro in alto a sinistra di Figura 5-5 è
possibile osservare i percorsi seguiti dai due cilindri, a destra troviamo una
inquadratura wireframe della scena, infine nella parte bassa troviamo
rispettivamente le inquadrature sinistra e destra della stessa scena. Nella
parte alta del riquadro in basso a destra, sempre di Figura 5-5, è inoltre
possibile osservare un fotogramma ripreso dalla scena reale. Da questo
fotogramma si può notare che la disposizione delle telecamere, utilizzata
per la sperimentazione all’interno dell’ambiente virtuale, sia rimasta la
stessa anche nelle prove fatte all’interno della scena reale.
Capitolo 5. Risultati sperimentali
130
La serie di esperimenti condotti sulle sequenze di immagini sintetiche
hanno cercato di mettere in evidenza i seguenti aspetti:
1. Precisione nella ricostruzione della terza dimensione a partire dalla
coppia di immagini stereo.
2. Precisione del sistema nel localizzare e tracciare gli spostamenti dei
due cilindri.
5.2.1 Precisione nella ricostruzione 3D
Per valutare la precisione nella fase di ricostruzione della terza dimensione
abbiamo scelto 20 coppie di immagini stereo (provenienti dalla sequenza di
immagini sintetiche) e le abbiamo presentate in ingresso al sistema che ha
provveduto a calcolare la height-map e la occupancy-map. Da queste
mappe, una volta identificata la posizione dei due cilindri, è stata calcolata
la media delle altezze rilevate per ognuno di essi dalla height-map e la
lunghezza del lato del quadrato necessario a contenerne la loro proiezione
nella occupancy-map. In tabella 2 sono state riportate le distanze in cm tra
le misure effettuate per l’altezza e la larghezza dei due cilindri e le loro
dimensioni reali.
Coppia
Cilindro A
Cilindro B
stereo
Err.
Altezza
(in cm)
Err.
Larghezza
(in cm)
Err.
Altezza
(in cm)
Err.
Larghezza
(in cm)
1
2
3
4
5
6
7
8
-2.87
-6.19
0.19
3.70
-1.62
5.17
6.06
-2.00
-0.44
2.34
4.06
-0.58
-0.97
3.77
-3.66
2.16
-5.74
2.41
-3.12
-0.55
5.50
-2.30
-0.64
-4.55
1.92
4.05
1.75
-1.49
0.43
2.96
2.23
-2.68
immagini
Capitolo 5. Risultati sperimentali
9
10
11
12
13
14
15
16
17
18
19
20
0.79
1.91
3.56
-2.38
-0.75
1.98
0.27
0.87
2.63
-6.00
1.68
0.85
131
-0.09
-1.65
-5.04
3.41
1.34
0.39
-4.17
-3.13
-1.59
-3.03
1.31
1.22
2.08
-4.54
-1.53
-0.80
-1.62
0.97
-1.71
7.56
-0.74
-5.05
1.92
-6.39
0.59
-1.88
-2.76
0.07
-0.94
-6.28
-1.90
-0.85
-1.82
2.19
-0.80
-1.27
Tabella 2: Differenza tra dimensioni reali e ricostruite tramite stereovisione.
Da queste misure è possibile osservare come l’errore commesso nella
ricostruzione delle dimensioni dei due cilindri per mezzo della stereo
visione sia sufficientemente piccolo da poter essere trascurato per il nostro
tipo di applicazione. In Figura 5-6 sono stati riportate gli errori ottenuti (in
valore assoluto) in funzione della distanza tra cilindro e telecamere.
Figura 5-6.: Errore assoluto in funzione della distanza che separa l'oggetto dalla
telecamera.
E’ possibile osservare come, anche se di pochi centimetri, l’errore
commesso nella ricostruzione delle dimensioni dei cilindri tenda ad
aumentare con la distanza che separa l’oggetto ricostruito dalle telecamere.
Capitolo 5. Risultati sperimentali
132
5.2.2 Precisione nella fase di localizzazione e tracciamento
In questa fase si è cercato di valutare la precisione del sistema durante la
fase di localizzazione e tracciamento dei due cilindri. In particolare
abbiamo utilizzato una sequenza di 100 fotogrammi in cui i due cilindri
sono ripresi mentre si muovono lungo le traiettorie visibili nel riquadro in
alto a sinistra di Figura 5-5. Abbiamo quindi presentato tale sequenza al
sistema che ha ricostruito le traiettorie collegando ogni punto in cui è stato
localizzato il cilindro con la sua precedente posizione. Il risultato ottenuto
può essere osservato in Figura 5-7. Le linee a tratto continuo rappresentano
i percorsi reali seguiti dai due cilindri. Le linee tratteggiate rappresentano
invece la traiettoria ricostruita dal sistema. Le x rappresentano il punto sul
piano in cui è stato localizzato il cilindro.
Figura 5-7: Localizzazione e tracciamento su una sequenza di immagini sintetiche
Infine le x cerchiate rappresentano due falsi oggetti individuati dal sistema
in due fotogrammi distinti. Poiché la loro identificazione (errata) è
Capitolo 5. Risultati sperimentali
133
avvenuta in un solo fotogramma il sistema li ha identificati come false
localizzazioni e quindi non sono stati inseriti nella lista degli oggetti
tracciati. Le zone più scure, visibili in Figura 5-7, rappresentano le zone
della stanza che giacciono al di fuori del cono visivo costituito dalle due
telecamere stereo. Solo per la zona più chiara, ovvero quella visibile da
entrambe le telecamere è possibile ricostruire la terza dimensione e quindi
tracciare gli spostamenti dei due cilindri. Questo spiega perché non è stato
possibile ricostruire per intero le traiettorie seguite dai due cilindri.
Dalla sequenza di fotogrammi visibili in Figura 5-8 è possibile notare come
anche in presenza di inter-occlusioni (vedi fotogrammi 46,67,83 di Figura
5-8) il sistema sia stato in grado localizzare e tracciare correttamente
entrambi i cilindri.
Figura 5-8: Nei fotogrammi 46, 67 e 83 è possibile osservare delle situazioni di interocclusione.
Capitolo 5. Risultati sperimentali
134
Nel capitolo precedente abbiamo visto come l’intero sistema sviluppato si
basi sull’ipotesi fondamentale che il tempo, che separa un fotogramma
dall’altro, sia sufficientemente breve da poter ipotizzare che le differenze
in termini di posizione, postura ecc. dei soggetti tracciati siano minime.
Questo consente di localizzare e tracciare con maggior precisione la
posizione degli elementi all’interno della scena. In questa sperimentazione
abbiamo avuto la conferma di quanto era stato detto. Infatti il cilindro che
si sposta sul percorso di colore più chiaro (vedi Figura 5-7) viene fatto
accelerare (volontariamente) nella parte alta del percorso. Questa
accelerazione la si può dedurre dal fatto che il numero di punti in cui è
stato localizzato il cilindro in tale parte del percorso sono più distanti.
Come si può vedere queste grosse differenze di posizione, tra un
fotogramma ed il successivo, hanno portato il sistema ad una
approssimazione peggiore del percorso reale. Se invece osserviamo lo
spostamento del secondo cilindro che si muove ad una velocità
decisamente inferiore rispetto al primo si nota che la precisione nella
localizzazione e nel tracciamento è molto alta. In pratica, un framerate tra
gli 8-10Hz è più che sufficiente per far si che la nostra ipotesi di lavoro
venga rispettata. Questo perché le variazioni che si possono avere in un
periodo
di
100ms
sono
talmente
minime
da
non
modificare
significativamente la postura osservabile nel plan-view, e quindi sarà
possibile utilizzare i template (TO, TH e TC) per individuare correttamente
gli stessi soggetti in fotogrammi diversi.
5.3 Risultati della sperimentazione in ambiente reale
In questa fase della sperimentazione, una volta installate le telecamere
secondo quanto suggerito dalle prove fatte con le immagini sintetiche,
abbiamo cercato di verificare il comportamento del sistema su immagini
Capitolo 5. Risultati sperimentali
135
provenienti dal mondo reale. In particolare, l’obbiettivo è stato quello di
mettere in evidenza le capacità del sistema nella:
•
creazione del modello di background senza una precedente fase di
addestramento e con dei soggetti che si muovono all’interno della
stanza.
•
aggiornamento del modello anche in presenza di continui
cambiamenti apportati alla configurazione del background della
scena originale.
•
localizzazione e tracciamento dei soggetti all’interno dell’ambiente
reale in presenza di parziali occlusioni dovute alla presenza di un
tavolo e/o di altri soggetti.
5.3.1 Creazione del modello in assenza di una precedente fase di
apprendimento
Per valutare le capacità del sistema nel ricostruire il modello di background
in assenza di una precedente fase di addestramento, abbiamo utilizzato due
sequenze di immagini. Nella prima sequenza è presente una sola persona
che si muove nell’ambiente mentre nella seconda sequenza, per aumentare
il fattore di disturbo, abbiamo ripreso gli spostamenti di due soggetti. E’
interessante notare come in pochissimo tempo (circa 50 sec.) il sistema sia
riuscito a ricostruire il modello del background senza includere al suo
interno i soggetti che si trovavano nella stanza.
In Figura 5-9 è possibile osservare alcuni fotogrammi della sequenza. In
particolare, nella colonna più a sinistra è possibile osservare la sequenza
ripresa, al centro è riportata l’evoluzione del modello del background ed
infine a destra sono riportati le massime attività verticali ed orizzontali
rilevate dal sistema lungo le colonne e le righe di ogni immagine elaborata.
Capitolo 5. Risultati sperimentali
136
Figura 5-9: Fase iniziale nella creazione del modello in assenza di una precedente fase
di apprendimento.
L’assenza di un qualsiasi modello con cui confrontare il fotogramma
attuale porta chiaramente ad un aumento delle attività riscontrate su ogni
bordo della scena. Questo lo si può osservare nella terza colonna di Figura
5-9, in cui le attività tendono a salire rapidamente in ogni parte della scena
per poi ridiscendere gradualmente man mano che le modifiche rilevate su
ogni bordo vengono integrate nel modello del background
.
Nella Figura che segue si può vedere chiaramente che le massime attività
sui bordi rilevate dal sistema si trovano in corrispondenza della zona
Capitolo 5. Risultati sperimentali
137
occupata dal soggetto. E’ possibile notare (nella seconda riga di Figura 510) come, nelle zone in cui le attività sono al disotto della soglia minima, si
cominci ad intravedere la formazione del modello del background. In
particolare è possibile notare le caratteristiche striature orizzontali e
verticali dovute all’aggiornamento delle sole righe e colonne che
presentano un’attività massima al disotto della soglia di tolleranza fissata.
Tale soglia è necessaria perché le attività non saranno mai nulle, questo a
causa del rumore di fondo introdotto dalle telecamere e dalle piccole
variazioni di luminosità che provengono dall’esterno.
Figura 5-10: Dopo una prima fase di assestamento delle attività ha inizio la creazione
del modello del background.
In Figura 5-11 è infine possibile osservare il modello del background della
scena completamente ricostruito.
Capitolo 5. Risultati sperimentali
138
Figura 5-11: In queste immagini si vede come il background sia stato interamente
ricostruito, inoltre non essendoci nessuna variazione in corso le attività (orizzontali,
verticali) dei bordi sono praticamente nulle.
Per complicare la situazione abbiamo provato a far ricostruire al sistema il
modello del background in presenza di due soggetti che passeggiano e
stazionano all’interno della stanza per alcuni minuti.
Il risultato ottenuto lo si può osservare nella sequenza riportata in Figura 512. In particolare, possiamo osservare la persistenza di due zone scure
presenti all’interno del modello del background. Queste zone restano
“incomplete” per un periodo di tempo più lungo rispetto alle altre in quanto
i personaggi che si muovono all’interno della scena passano molto del loro
tempo proprio in queste regioni, quindi il sistema non ha modo di
aggiornarle con lo stesso ritmo seguito per le altre zone.
Capitolo 5. Risultati sperimentali
139
Figura 5-12: Creazione del modello di background in presenza di due soggetti che si
muovono e stazionano all’interno della stanza.
Capitolo 5. Risultati sperimentali
140
E’ infine interessante notare come grazie al processo di interpolazione
attuato dall’algoritmo realizzato in questa tesi, le ombre proiettate vengano
filtrate completamente.
Dalle sperimentazioni fatte è emerso che il metodo presentato è in grado di
ricostruire, in assenza di una precedente fase di addestramento, il modello
del background in un tempo variabile. Infatti, il tempo necessario a
completare il modello è essenzialmente legato alla quantità di “rumore”
prodotto dagli spostamenti compiuti dai vari soggetti nella scena. Questo
fenomeno è perfettamente evidenziato dalle due sequenze video proposte
come esempio in questo documento. Infatti per costruire il modello del
background nella prima sequenza il sistema ha impiegato solamente 50sec,
questo perché il soggetto si muoveva da una parte all’altra della scena
consentendo al sistema di integrare nel modello le parti “libere” della
stanza. Nella seconda sequenza, invece, per completare del tutto il modello
del background sono stati necessari circa 4min. Questo perché la presenza
contemporanea dei due soggetti all’interno della stanza hanno portato il
sistema a poter integrare, un po’ per volta, solo piccole porzioni della scena
ripresa. Inoltre, le aree della stanza in cui i soggetti sono rimasti per un
periodo maggiore hanno richiesto un’ulteriore tempo aggiuntivo per essere
integrate completamente nel modello.
5.3.2 Velocità di aggiornamento del modello
Partendo da un modello del background già costruito abbiamo cercato di
capire, modificando la scena reale, quanto tempo fosse necessario al
sistema per integrare all’interno del modello tali modifiche. La sequenza
video utilizzata è durata circa 10min. Durante questo periodo di tempo
sono stati posti sul tavolo una serie di oggetti e sono stati fatti muovere
all’interno dell’ambiente delle persone. In Figura 5-13 è possibile osservare
a sinistra una inquadratura della scena ripresa dalla telecamera sinistra,
Capitolo 5. Risultati sperimentali
141
mentre sul lato destro abbiamo il modello del background precedentemente
ricostruito dal sistema.
Figura 5-13: (a) Scena ripresa dalla telecamera sinistra. (b) Modello del background
ricostruito dal sistema.
In Figura 5-14 possiamo osservare vari oggetti disposti sul tavolo che sono
andati a modificare la configurazione iniziale della scena reale. Da questo
istante in poi inizieremo a scandire il tempo impiegato dal sistema per
integrare queste modifiche all’interno del modello del background. La
figura 5-14 rappresenta la situazione iniziale all’istante t = 0.
Figura 5-14:(a) Oggetti aggiunti nella scena. (b) Modello del background.
Dopo 36 secondi il sistema inizia ad aggiornare il modello nelle zone in cui
le attività dei bordi sono sufficientemente basse da poter essere considerate
“inanimate” e quindi aggiornabili. In Figura 5-15 possiamo osservare come
Capitolo 5. Risultati sperimentali
142
all’interno del modello sia possibile intravedere la presenza del computer
portatile e della bottiglia, ma non la bilancia. Infatti, nel caso della bilancia,
il sistema attende prima di avviare la sua integrazione all’interno del
modello in quanto la presenza della persona provoca, in prossimità della
stessa, un aumento delle attività massime.
Figura 5-15: In (b) è possibile osservare come il sistema inizi a modificare il modello
del background da cui era partito.
Non appena la persona si allontana dalla posizione che occupava in Figura
5-15a, anche la bilancia inizia a prendere forma all’interno del modello
(vedi Figura 5-16a e 5-16b).
Figura 5-16: Dopo 1 minuto e 15 secondi gli aggiornamenti apportati dal sistema al
modello risultano essere sempre più marcati.
Capitolo 5. Risultati sperimentali
143
In Figura 5-17a è possibile osservare che sia il computer portatile che la
bilancia sono ancora “visti” come oggetti di foreground della scena.
Figura 5-17: In (a) sono visibili gli oggetti come (ritenuti dal sistema) appartenenti al
foreground della scena.
Dopo circa 2 minuti dall’inizio della prova gli oggetti posti sul tavolo
risultano essere quasi del tutto integrati all’interno del modello.
Osservando la Figura 5-18 è possibile osservare come tutti gli oggetti posti
sul tavolo siano ora ritenuti dal sistema come appartenenti al background
della scena e non più al suo foreground. Questo anche se l’integrazione di
tali oggetti non è stata del tutto completata. Infatti, se osserviamo con una
certa attenzione il modello del foreground visibile in 5-18b, noteremo che
gli oggetti presentano ancora una certa trasparenza. Tale trasparenza
“residua” non risulta essere un grosso problema per la fase di sottrazione
del background. Questo perché la soglia, utilizzata per ottenere la maschera
binaria del foreground, approssima i pixel che si discostano di poco dal
modello come appartenenti al background della scena.
E’ stato necessario attendere complessivamente 2 minuti e 35 secondi
prima di vedere completamente integrate all’interno del modello di
background le modifiche apportate. In Figura 5-19 è possibile osservare il
risultato finale.
Capitolo 5. Risultati sperimentali
144
Figura 5-18: Oggetti posti sul tavolo sono divenuti parte integrante del background
della scena.
Figura 5-19: In (b) è possibile osservare il risultato ottenuto dopo 2 min. e 35 secondi.
5.3.3 Localizzazione e Tracciamento
Per sperimentare le capacità e la robustezza del sistema durante la fase di
localizzazione e tracciamento, abbiamo monitorato la stanza a nostra
disposizione per circa 30 minuti. In questo periodo di tempo sono stati
seguiti gli spostamenti di un numero massimo di tre soggetti presenti
contemporaneamente nella scena. Sono quindi stati conteggiati il numero
di errori commessi dal sistema in base al:
Capitolo 5. Risultati sperimentali
145
A) Numero di occlusioni non risolte correttamente.
B) Numero di volte in cui non è stata evidenziata la presenza di un
soggetto all’interno della stanza.
C) Numero di volte in cui è stata persa la traccia di un soggetto.
D) Numero di volte in cui il sistema ha scambiato l’identità di un
soggetto con quella di un altro soggetto tracciato.
Gli errori commessi dal sistema sono stati valutati dapprima sulla sequenza
di immagini catturate in tempo reale e poi utilizzando la stessa sequenza,
questa volta però, durante un’elaborazione off-line. In questo documento
con il termine di “elaborazione off-line” ci si riferisce alla possibilità di
elaborare una immagine alla volta e solo quando l’elaborazione
dell’immagine in corso si è conclusa si passerà ad elaborare la successiva.
In questo modo, a differenza di quanto avviene in un elaborazione di tipo
real-time impiegando un processore lento, tutti i fotogrammi verranno
elaborati senza quindi interrompere la continuità temporale della sequenza.
Chiaramente in alternativa ad una elaborazione di tipo off-line con un PC
avente basse performance è possibile utilizzare una elaborazione real-time
con un PC sufficientemente potente da poter elaborare 8-10 fotogrammi al
secondo (ad es. PC a 2 Ghz). Il confronto dei risultati ottenuti tramite una
elaborazione di tipo real-time ed una off-line si è reso necessario in quanto
il PC a 600Mhz a nostra disposizione, non ha permesso di far fronte
all’ipotesi di base necessaria al corretto funzionamento del sistema. Infatti,
come abbiamo visto nei paragrafi precedenti, per riuscire a localizzare e
tracciare con precisione un determinato soggetto occorre che la sua
posizione, velocità e postura siano cambiate di poco dall’ultimo
fotogramma in cui è stato individuato correttamente. Questa condizione
non risulta verificata nel nostro caso, in quanto il tempo impiegato dal
processore a 600Mhz per elaborare un fotogramma è di circa 300ms
(questo tempo di elaborazione scende a 90-100ms su un PC a 2Ghz). Per
Capitolo 5. Risultati sperimentali
146
tale motivo abbiamo deciso di conteggiare gli errori commessi dal sistema
sia durante un’elaborazione in tempo reale che in una elaborazione off-line
impiegando lo stesso processore a 600Mhz. I risultati ottenuti sono stati
raccolti nella tabella che segue.
Errate
(real-time)
Errate
(off-line)
Eventi
totali
Situazioni di
occlusione
Localizzazione
Tracciamento
Identificazione
4
0
7
3
2
0
1
0
12
18
18
5
Tabella 3: Risposte errate ottenute durante l’elaborazione on-line ed off-line della
sequenza video.
Dalla Tabella 3 è possibile osservare che durante l’elaborazione off-line
della stessa sequenza video utilizzata nella valutazione in real-time, il
numero di errori commessi dal sistema nelle varie situazioni si è ridotto
notevolmente come ci aspettavamo. In particolare su un totale di 12
situazioni di occlusione che si sono venute a creare, nell’elaborazione realtime, il sistema ne ha classificate erroneamente 4 su 12 mentre
nell’elaborazione off-line il numero di errori si è ridotto a 2. Nella seconda
colonna di tabella 3 possiamo vedere che su 18 soggetti che sono entrati
nel campo visivo della scena tutti sono stati correttamente localizzati.
Occorre comunque precisare che tali soggetti non hanno assunto particolari
posture, quindi ad esempio non si sono sdraiati o accovacciati a terra, ma si
sono limitati a passeggiare in posizione eretta mettendosi, in alcune
situazioni, a sedere. Delle 18 “tracce” lasciate dai soggetti entrati in scena,
chiaramente
in
tempi
diversi
e
comunque
non
più
di
tre
contemporaneamente, ne sono state perse 7 durante l’elaborazione realtime ed una sola nel caso off-line. Questo risultato era da aspettarselo
Capitolo 5. Risultati sperimentali
147
infatti la fase di localizzazione di nuovi soggetti non è influenzata dal
framerate in quanto non occorre confrontare nessun parametro, quindi sia
nel caso real-time che in quello off-line non si hanno cambiamenti nelle
risposte date dal sistema. Cosa del tutto diversa accade nella fase di
tracciamento in cui, per poter mettere in corrispondenza gli oggetti presenti
nel database degli elementi tracciati con i blob individuati all’interno
dell’occupancy-map, occorre confrontare dei parametri quali la posizione e
la postura del soggetto nel fotogramma attuale con quelle rilevate nel
fotogramma precedente. Infine, nell’ultima colonna di tabella 3 abbiamo
riportato il numero di volte che il sistema ha scambiato le identità di due
elementi tracciati. Questo si è verificato solo durante la sperimentazione
compiuta in real-time, in particolare quando le traiettorie di due soggetti
provenienti da opposte direzioni si sono incontrate.
Negli screen-shots che seguono è possibile osservare alcuni istanti
dell’elaborazione condotta on-line. Dall’intensità luminosa dei due cerchi
alla base dei due soggetti è possibile osservare come il sistema sia stato in
grado di distinguere e seguire correttamente gli spostamenti dei due
soggetti presenti nella scena.
Capitolo 5. Risultati sperimentali
148
Figura 5-20: Situazione di parziale occlusione risolta correttamente.
Figura 5-21: La presenza del tavolo e della parziale inter-occlusione tra soggetti non
ha impedito al sistema di localizzare correttamente entrambe i soggetti.
Anche dopo la situazione di occlusione entrambi i soggetti continuano ad
essere identificati correttamente (vedi Figura 5-22).
Capitolo 5. Risultati sperimentali
149
Figura 5-22: Dopo la situazione di completa occlusione i soggetti continuano ad
essere localizzati correttamente.
Infine, dalla Figura che segue, è possibile osservare come anche in una
situazione di diretto contatto tra i due soggetti, il sistema riesca ad
identificare entrambi correttamente partendo dalla occupancy-map visibile
nel riquadro in alto a destra.
Capitolo 5. Risultati sperimentali
150
Figura 5-23: Corretta localizzazione ottenuta dall'analisi della occupancy-map.
5.3.4 Precisione del sistema
Per valutare la precisione nel calcolo della posizione dei soggetti tracciati,
abbiamo effettuato una serie di misure sulla posizione reale occupata da un
soggetto a varie distanze dalle telecamere. Tali misure sono state poi
confrontate con le posizioni calcolate dal sistema e sono stati calcolati
l’errore medio e la varianza. I risultati ottenuti da queste prove sono state
riportate in tabella 4.
Distanza
Errore Medio
Varianza
(in cm)
(in cm)
(in cm)
170
3,1
1
190
3,8
1,1
Capitolo 5. Risultati sperimentali
151
210
4,3
1,5
230
5,9
1,9
250
6,8
2,1
270
7,0
2,5
290
7,2
2,4
300
7,4
3,2
Tabella 4: Precisione del sistema in funzione della distanza dell’elemento localizzato.
Capitolo 6
Conclusioni
Come si è potuto vedere lo sviluppo, di un sistema di visione artificiale,
presenta molteplici aspetti e difficoltà. Anche se allo stato attuale il sistema
di visione umano supera di gran lunga quello artificiale gli sforzi che si
stanno compiendo nell’ambito della visione portano ad avere dei sistemi
che, come nel nostro caso, possono comunque essere di supporto a dei
progetti, come quello RoboCare, rivolti all’assistenza e al monitoraggio di
persone non completamente autosufficienti.
In questo capitolo vengono riassunti i maggiori contributi apportati da
questa tesi e le limitazioni del sistema presentato. Sono infine riportate una
serie di suggerimenti che possono essere presi come spunto per possibili
ampliamenti futuri.
6.1 Risultati raggiunti e limitazioni del sistema
In questa tesi è stato realizzato un sistema per la localizzazione ed il
tracciamento di uomini e robot attraverso la stereo-visione. E’ stato inoltre
presentato un nuovo metodo per l’aggiornamento dinamico del modello del
background.
La stereo-visione si è dimostrata essere una valida risposta a molti dei
problemi che si riscontrano in questo tipo di applicazioni. In particolare ci
Capitolo 6. Conclusioni
153
ha permesso di proiettare i punti dell’immagine appartenenti al foreground
della scena nello spazio tridimensionale e di calcolarne quindi la distanza
di ognuno di essi dal sistema di telecamere. L’introduzione della terza
dimensione ha permesso, al sistema presentato in questa tesi, di ricavare
una inquadratura “virtuale” dall’alto della scena dalla quale è stato
possibile risolvere con successo complesse situazioni di inter-occlusione.
La sola proiezione del foreground ha inoltre ridotto il numero di elementi
che potevano interferire con la corretta localizzazione dei soggetti e grazie
all’impiego del Filtro di Kalman e ad una piccola base di conoscenza
guidata da una rete Baesiana è stato possibile rendere il sistema ancora più
robusto.
La fase di sperimentazione, descritta nel capitolo 5, ha dimostrato la
validità sia del sistema di localizzazione e tracciamento proposto che del
nuovo metodo presentato per la creazione e l’aggiornamento del modello
di background. Tale metodo rappresenta una novità e fornisce una risposta
concreta a quello che è il problema dell’aggiornamento dinamico del
modello di background. L’analisi della letteratura mostra che le tecniche
per l’aggiornamento del modello di background si basano sulla modifica di
un coefficiente che regola la velocità di apprendimento o addirittura lo
fissano ad un valore costante. Il metodo descritto in questa tesi propone
invece una soluzione basata sulla distinzione tra gli oggetti “animati” da
quelli “inanimati” analizzando l’attività dei loro bordi. Questo approccio al
problema consente, ad esempio, di non integrare quelle zone che sono
occupate da una persona intenta a parlare con un’altra e di integrare
rapidamente tutte le altre.
I risultati ottenuti assumono un valore ancor più rilevante se si pensa che il
sistema di acquisizione video del sistema realizzato in questa tesi è
Capitolo 6. Conclusioni
154
costituito da due webcam e che il processore utilizzato nelle nostre
sperimentazioni ha una frequenza di lavoro di 600Mhz.
Data la compattezza e la modularità del sistema presentato, è possibile un
suo riutilizzo in ogni tipo di ambiente indoor. Ad esempio, potrebbe essere
impiegato all’interno di un museo per monitorare gli spostamenti dei vari
soggetti e controllare che non oltrepassino la distanza di sicurezza che li
divide dalle opere d’arte.
Chiaramente il sistema realizzato ha alcune limitazioni. Le maggiori
difficoltà sono state riscontrate nella localizzazione e nel tracciamento di
tre o più persone poste una vicina all’altra a formare un gruppo abbastanza
compatto. In questi casi infatti l’inquadratura virtuale dall’alto a rileva
un’unica grande “massa” dalla quale non è possibile localizzare con
precisione la posizione di ogni singolo individuo.
6.2 Suggerimenti per ampliamenti futuri
Il prototipo realizzato risponde a tutte le caratteristiche richieste.
Comunque esistono vari aspetti che possono essere considerati al fine di
estenderne le funzionalità o anche per migliorarne le prestazioni.
Suggerimenti per dei futuri lavori rivolti all’ampliamento delle funzionalità
sono legati alla possibilità di:
•
Riconoscere la persona tracciata. Si potrebbe ad esempio
localizzare il viso della persona tramite un semplice filtro sul colore
e cercare di applicare delle tecniche per il riconoscimento facciale.
•
Moltiplicare il sistema proposto in questa tesi in modo da
inquadrare più stanze o più angoli di una stessa stanza e di creare
quindi un modulo che coordini le informazioni provenienti dai vari
Capitolo 6. Conclusioni
155
sistemi distribuiti al fine di determinare con maggior precisione e
all’interno di un’ ambiente molto più ampio, gli spostamenti di uno
stesso soggetto.
•
Monitorare ambienti di tipo outdoor.
•
Riconoscere le diverse posture assunte dal soggetto monitorato.
Questo permetterebbe di capire se, ad esempio, a causa di un
malore la persona è caduta e si trova distesa sul pavimento.
Per quel che riguarda il miglioramento delle prestazioni del sistema, un
altro possibile lavoro potrebbe essere rivolto ad ampliare la piccola base di
conoscenza impiegata in questo sistema, per risolvere le situazioni di
ambiguità, in modo tale da poter essere utilizzata per dedurre ad esempio in
base ad una diminuzione dell’altezza ed in base al fatto che la persona
tracciata si trovava accanto ad una poltrona che tale persona si è seduta. Da
questa situazione il sistema potrebbe ad esempio decidere di accendere lo
stereo o la tv.
Appendice
A.1 Illusioni ambiguità ed inconsistenze
Fino a questo momento abbiamo rivolto la nostra attenzione alle varie
difficoltà che un sistema di visione artificiale incontra nell’interpretare le
informazioni provenienti dal mondo esterno. Risolvere le innumerevoli
ambiguità presenti nel mondo reale non è un compito facile, neanche, per il
sistema di visione umano. Questo perché, alcune volte, le immagini
possono avere più di una interpretazione (vedi Figura 1).
Figura 1: Immagini aventi una doppia interpretazione.
In altri casi le immagini possono presentare delle illusioni ottiche (vedi
Figura 2).
Appendice
157
Figura 2: Illusioni ottiche. (a)Zollner, 1860. (b) Poggendorff, 1860. (c) Helmholtz,
1866. (d) Muller-Lyer, 1889. (e) Hering, 1861. (f) Wundt, 1896.
Infine, esiste la possibilità che, anche se siamo in presenza di un’immagine
che non presenta ambiguità o illusioni ottiche, non è detto che la geometria
in essa rappresentata sia fisicamente realizzabile. Osserviamo, ad esempio,
la litografia di Escher rappresentata in Figura 3. A prima vista sembrerebbe
non presentare alcuna particolarità, se invece la esaminiamo con più
attenzione, noteremo che, una tale struttura non è fisicamente realizzabile.
Figura 3: Inconsistenze geometriche
Appendice
158
Le differenti illusioni, ambiguità ed inconsistenze che abbiamo avuto modo
di osservare sono qualcosa di più che delle semplici situazioni curiose.
Helmhotz nel suo libro3 scrisse che ogni immagine è un’immagine di
qualcosa solo per colui che sa come interpretarla, ed è proprio questa
capacità che unitamente all’immagine consente di avere un’idea di ciò che
è in essa raffigurato. Da questa affermazione possiamo ipotizzare che il
sistema di visione umano non interpreta le immagini in base a delle precise
ed esatte regole basate sulla fisica che governano la scena, ma piuttosto
invoca delle regole ricavate dalla precedente esperienza dell’individuo che
la osserva.
A.2 Il metodo di Sobel
Il metodo di Sobel consiste nell’applicare ad ogni pixel dell’immagine due
maschere, una per rilevare i gradienti orizzontali e l’altra per quelli
verticali:
⎡+ 1 + 2 + 1⎤
⎢
0
0 ⎥⎥
Gy = ⎢ 0
⎢⎣ − 1 − 2 − 1⎥⎦
⎡ − 1 0 + 1⎤
⎥
⎢
G x = ⎢ − 2 0 + 2⎥
⎢⎣ − 1 0 + 1 ⎥⎦
Queste matrici possono essere applicate separatamente per avere una
misura del gradiente in ogni direzione, ma possono anche essere combinate
per trovare il modulo e l’orientazione del gradiente:
G = G 2x + G 2y ≅ G x + G y
⎛ Gy ⎞
⎟⎟
⎝ Gx ⎠
ϑ = arctan⎜⎜
3
Handbook of Physiological Optics
Appendice
159
Infine, l’operatore di Sobel è lineare, quindi ogni matrice può essere
scomposta come prodotto di un vettore colonna per un vettore riga:
⎡ − 1 0 + 1⎤ ⎡ + 1⎤
⎢− 2 0 + 2⎥ = ⎢+ 2⎥ ⋅ [− 1 0 + 1]
⎢
⎥ ⎢ ⎥
⎢⎣ − 1 0 + 1 ⎥⎦ ⎢⎣ + 1 ⎥⎦
⎡+ 1 + 2 + 1⎤ ⎡+ 1⎤
⎢0
0
0 ⎥⎥ = ⎢⎢ 0 ⎥⎥ ⋅ [+ 1 + 2 + 1]
⎢
⎢⎣ − 1 − 2 − 1⎥⎦ ⎢⎣− 1⎥⎦
Questo consente di ridurre il numero di moltiplicazioni, e quindi i tempi di
calcolo.
Figura 4: Bordi estratti tramite l’operatore di Sobel.
Appendice
160
A.3 I sistemi di rappresentazione del colore
Esistono vari sistemi per rappresentare un'immagine a colori. Quello RGB
(Red-Green-Blue) è un sistema di riferimento in cui ogni colore viene
individuato dalle sue componenti rossa, verde e blu. Questi rappresentano i
tre colori fondamentali da cui è possibile ricavare tutti gli altri. Ogni colore
può quindi essere interpretato come una combinazione lineare dei tre
fondamentali. Immaginando di prendere un sistema di riferimento
cartesiano in tre dimensioni, ed associando ad ogni asse uno dei tre colori
base, nasce il cubo RGB.
Figura 5: Rappresentazione del cubo RGB.
Ogni punto all'interno del cubo rappresenta un colore e le sue proiezioni
sui tre assi indicano le sue componenti di rosso, verde e blu. Il vertice del
cubo che coincide con l'origine degli assi corrisponde al colore con tutte le
componenti nulle, cioè il nero. Percorrendo i tre spigoli del cubo che
partono dall'origine, si osservano tutte le gradazioni dei tre colori
fondamentali. Il vertice del cubo opposto all'origine corrisponde al bianco,
che è il colore con tutte le tre componenti al massimo valore. Lungo gli
spigoli del cubo che partono dal vertice che rappresenta il bianco, si
Appendice
161
possono osservare altri tre colori in tutte le loro gradazioni: il ciano, il
magenta e il giallo.
Ogni colore si può quindi esprimere anche in funzione delle componenti
ciano, magenta e giallo, che rappresentano così una seconda terna di colori
fondamentali. Il sistema CMY (Cyan-Magenta-Yellow) è complementare a
quello RGB, e viene spesso utilizzato in tipografia in quanto l'assenza di
colore si identifica nel bianco, che è solitamente il colore del supporto
tipografico. Al contrario, per realizzare il nero si devono utilizzare tutti i tre
colori. Per motivi analoghi, il sistema RGB è idoneo per applicazioni in cui
lo sfondo è nero.
C’è,
infine,
un
terzo
sistema
molto
utilizzato
nell’ambito
dell’elaborazione delle immagini, il sistema HSI (Hue-SaturationIntensity) o HSV (Hue-Saturation-Value), in cui ogni colore viene
rappresentato univocamente da tre componenti dette tinta, saturazione e
luminosità. Si può passare dalle coordinate RGB a quelle HSI tramite una
funzione biunivoca ℜ3 → ℜ3. Le relazioni che permettono questo
passaggio sono:
I = 0.30 ⋅ R + 0.59 ⋅ G + 0.11 ⋅ B
x I = 0.60 ⋅ R − 0.28 ⋅ G − 0.32 ⋅ B
xQ = 0.21 ⋅ R − 0.52 ⋅ G + 0.31 ⋅ B
La prima equazione esprime come calcolare il segnale di luminanza,
ovvero la luminosità del pixel, tramite una media pesata delle componenti
RGB. In particolare viene dato maggior peso al verde, meno al rosso e
ancor meno al blu, per rispettare la fisiologia dell'occhio umano che è più
sensibile al verde, meno al rosso e ancor meno al blu. In questa formula, R,
G e B rappresentano i valori di rosso, verde e blu normalizzati, in modo
che la luminanza vari da zero, nel caso del nero, a uno, nel caso del bianco.
Appendice
162
Con le altre due equazioni è possibile calcolare due nuovi segnali xI e xQ,
che rappresentano, rispettivamente, la parte in fase e quella in quadratura di
un nuovo segnale complesso C = xI + j xQ, detto crominanza. Parlando in
termini di fase e di ampiezza abbiamo che alla fase di C viene dato il nome
di tinta (Hue) ed alla sua ampiezza quello di saturazione (Saturation), e
sono dati da:
⎛ xQ ⎞
H = arctan⎜⎜ ⎟⎟
⎝ xI ⎠
S = x 2I + xQ2
Bibliografia
[1] C. Wren, A. Azarbayejani, T. Darrel and A. Pentland. “Pfinder: realtime tracking of the human body”, IEEE Trans. PAMI, 19(7):780-785,
1997.
[2] Michael Harville. Adaptive video background modelling using color
and depth, ICIP01(III: 90-93), 2001
[3] Omar Javed, Mubarak Shah. Tracking and object classification for
automated surveillance, ECCV 2002, 2002
[4] T. Zhao, R. Nevatia, Fengjun. Segmentation and tracking of multiple
humans in complex situations. CVPR 2001 (IEEE Conference on
Computer Vision and Pattern Recognition), Kauai, Hawaii, Dec., 2001.
[5] Tim Ellis, Ming Xu. Object detection and tracking in an open and
dynamic world. PETS2001, Hawaii, USA, December 2001.
[6] C. Stauffer and W. E. L. Grimson. Adaptive background mixture
models for real-time tracking, Proc. IEEE CVPR Conf., 1999.
[7] S. Jabri, Z. Duric, H Wechsler. Detection and Location of People in
Video Images Using Adaptive Fusion of Color and Edge Information,
ICPR, 2000.
[8] Michael Harville. Stereo person tracking with adaptive plan-view
templates of height and occupancy statistics. To appear in Journal of Image
and Vision Computing, 2003.
[9] R. Molina. Introduccion al Procesamiento y Analisis de Imagenes
Digitales,
http://www.etsi2.ugr.es/depat/ccia/mia/complemento/Procesamiento
Imágenes
[10] S. Bahadori, A. Cesta, G. Grisetti, L. Iocchi, R. Leone, D. Nardi,
A.Oddi, F.Pecora, and R. Masconi. RoboCare: an Integrated Robotic
System for the Domestic Care of the Elderly. 2003.
Bibliografia
164
[11] D. Beymer, K.Konolige. Tracking people from a mobile platform. In
IJCAI-2001 Workshop on Reasoning with Uncertainty in Robotics, 2001.
[12]. T. Horprasert, D. Harwood and L. Davis, A Statistical Approach for
Real Time Robust Background Subtraction and Shadow Detection. IEEE
Frame Rate Work-shop 1999.
[13] Hao Jiang and Mark S. Drew, Shadow-Resistant Tracking in Video.
Multimedia and Expo, 2003, pages III 77-80.
[14] C. Eveland, K. Konolige, Robert C. Bolles, Background Modeling
for Segmentation of Video-Rate Stereo Sequences. Conference on
Computer Vision and Pattern Recognition, Santa Barbara, CA (June
1998).
[15] T. Darrell, D. Demirdjian, N. Checka, P. Felzenszwalb,
Plan-view trajectory estimation with dense stereo background models.
ICCV, 2001.
[16] Liang Zhao, Larry Davis, Detection and tracking of people using
stereo. ECCV, 2002.
[17] T. Darrell, G. Gordon, M. Harville, J. Woodfill, Integrated person
tracking using stereo, color, and pattern detection. International Journal
of Computer Vision(37), No. 2, pp. 175-185, June 2000.
[18] S. Grange, Human Oriented Tracking. SRI international, 2000.
[19] H. Eltoukhy, K. Salama, Multiple Camera Tracking. EE392J, 2002.
[20] A. Mittal, L. S. Davis,M2Tracker: A Multi-View Approach to
Segmenting and Tracking People in a Cluttered Scene Using
Region-Based Stereo. International Journal of Computer Vision 51(3):
189-203 (2003)
Bibliografia
165
[21] Tsai, Roger Y, A Versatile Camera Calibration Technique for HighAccuracy 3D Machine Vision Metrology Using Off-the Shelf TV Cameras
and Lenses, IEEE Journal of Robotics and Automation, vol.
RA-3, no. 4, August 1987, pp. 323-344.
[22] Reinhard Koch, 3–D Modeling of Human Heads from Stereoscopic
Image Sequences, Universität Hannover, 2001.
[23] F. Remondino, M. Garland, Human Body Reconstruction from
Image Sequences, Institute of Geodesy and Photogrammetry, 2002.
[24] S. Zelinka, M. Garland, Permission Grids: Practical, Error-bounded
Simplification, ACM Transactions on Graphics, 21(2), April 2002.
[25] H.Buxton, S. Gong, Visual sourveillance in a dynamic and uncertain
world, Artificial Intelligence,1995.
[26] J. Sherrah, S.Gong, Tracking discontinuous motion using Bayesian
inference, ECCV 2000, 2000.
[27] S. Bahadori, L. Iocchi, L. Scozzafava, People and Robot Localization
and Tracking through a Fixed Stereo Vision System, Work-shop 2003.
[28] J. Heikkila, O. Silvén, A four-step camera calibration procedure
with implicit image correction. In IEEE Conf. on Computer Vision and
Pattern Recognition (CVPR’97), pages 1106-1112, 1997.
[29] R. Lenz, R. Tsai, Techniques for calibration of the scale and image
center for high accuracy 3-d machine vision metrology. IEEE Trans. On
Pattern Analysis and Machine Intelligence, 10(5), 1988.
[30] R.Tsai, An efficient and accurate camera calibration technique for 3d
machine vision. In IEEE Conf. on Computer Vision and Pattern
Recognition (CVPR’86), 1986.
[31] Z. Zhang, Flexible camera calibration by viewing a plan from
unknown orientations. In International Conference on Computer Vision
(ICCV’99), pages 666-673, 1999.
Bibliografia
166
[32] O. Faugeras, Three-Dimensional Computer Vision (A Geometric
Viewpoint), pages 37-45, 1996
[33] J. Russel, P. Norvig, Intelligenza Artificiale (un approccio moderno),
cap. 15, 1999
[34] Faugeras O.D., Toscani G., The calibration problem of stereo,
Proceedings of IEEE Computer Vision and Pattern Recognition, 1986.
[35] Konolige K., Small Vision Systems: Hardware and Implementation,
Artificial Intelligence Center, SRI International, Menlo Park, California,
2000.