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.