• Non ci sono risultati.

Elaborazione di immagini stereoscopiche per sistemi Sense and Avoid di aeromobili a pilotaggio remoto

N/A
N/A
Protected

Academic year: 2021

Condividi "Elaborazione di immagini stereoscopiche per sistemi Sense and Avoid di aeromobili a pilotaggio remoto"

Copied!
104
0
0

Testo completo

(1)

UNIVERSITÀ DI PISA

FACOLTÀ DI INGEGNERIA

Dipartimento di Ingegneria Civile ed industriale

Corso di laurea magistrale in Ingegneria Aerospaziale

Tesi di laurea

ELABORAZIONE DI IMMAGINI STEREOSCOPICHE

PER SISTEMI SENSE AND AVOID

DI AEROMOBILI A PILOTAGGIO REMOTO

Relatore:

Prof. Roberto Galatolo Ing. Francesco Schettini Prof. Eugenio Denti Ing. Gianpietro Di Rito

Candidato: Michele CAROSELLI ANNO ACCADEMICO 2016-2017

(2)

INDICE

SOMMARIO ... 1

1. INTRODUZIONE ... 2

1.1 SISTEMI SENSE AND AVOID ... 3

1.2 NORMATIVA ... 7

1.3 GESTIONE DEI CONFLITTI ... 7

1.4 FUNZIONI DEL SISTEMA SENSE AND AVOID ... 8

1.5 SENSORI ... 10

1.6 ELABORAZIONE DELLE IMMAGINI ... 11

1.7 SVILUPPO DELLE ATTIVITÀ ... 12

2. VISIONE STEREOSCOPICA E MATCHING DI IMMAGINI ... 13

2.1 GEOMETRIA DEL SISTEMA STEREOSCOPICO ... 14

2.2 CALIBRAZIONE ... 17

2.3 RISULTATI DELLA CALIBRAZIONE... 19

2.4 MATCHING DI FEATURE ... 20

3. ALGORITMI PER L’ELABORAZIONE DELLE IMMAGINI STEREOSCOPICHE ... 22

3.1 MODELLO MATEMATICO SIFT ... 22

3.2 MAPPA DI DISPARITÀ E CALCOLO DELLA DISTANZA ... 30

3.3 IMPLEMENTAZIONE IN LABVIEW ... 33

3.3.1 MATLAB-STUDIO E RIELABORAZIONE... 33

3.3.2 DA MATLAB A LABVIEW... 35

3.3.3 MATLAB VS LABVIEW-CONFRONTO DEI RISULTATI ... 37

3.4 ATTIVITÀ SPERIMENTALE DI TEST CON LABVIEW-IMMAGINI STATICHE E DINAMICHE ... 39

3.5 INDIVIDUAZIONE ED ELABORAZIONE DI UN FILTRO PER LE IMMAGINI ... 43

3.6 SISTEMA REAL TIME UTILIZZATO ... 49

3.6.1 INSTALLAZIONE PROCESSORE NI CRIO-9038 ... 49

3.6.2 FPGA ED ELABORAZIONE IMMAGINI ... 50

3.7 RILEVAZIONE DELLA DISTANZA ... 53

3.8 PROBLEMATICHE INCONTRATE ... 57

4. CONCLUSIONI ... 60

5. SVILUPPI FUTURI ... 61 AEROMOBILI A PILOTAGGIO REMOTO ... I LABVIEW ... III

(3)

FILTRO GAUSSIANO ... XXVII LAPLACIANO DELLA GAUSSIANA (LOG) E DIFFERENZA DI GAUSSIANE (DOG) ... XXIX NATIONAL INSTRUMENTS – CRIO-9038 ... XXXII BASLER – ACA1600-60GC ... XXXVI BIBLIOGRAFIA

(4)

SOMMARIO

Il presente lavoro di tesi rientra in un’attività di ricerca, condotta dal Dipartimento di Ingegneria Civile e Industriale dell’Università di Pisa, riguardante lo sviluppo di un sistema “Sense and Avoid” per velivoli a pilotaggio remoto di piccole dimensioni e che volino a bassa velocità.

L’obiettivo è, quindi, quello di sviluppare un algoritmo riguardante la funzione “Sense” del sistema e calcolare, in tempo reale, la distanza degli oggetti attraverso un sistema di visione stereoscopica.

È stato sviluppato un programma in grado di estrarre le caratteristiche distintive delle immagini, provenienti da un sistema stereoscopico di telecamere ed un algoritmo che ne effettua il confronto.

Infine, è stata implementata una tecnica di triangolazione tridimensionale per il calcolo della distanza.

Successivamente, l’algoritmo sviluppato è stato programmato sul processore “cRIO-9038”, della NATIONAL INSTRUMENTS, in possesso del Dipartimento di Ingegneria Civile e Industriale per realizzare alcuni test in tempo reale.

A tale processore sono state collegate le telecamere “Basler acA1600-60gc GigE”. I test con tale hardware hanno permesso di valutare le prestazioni degli algoritmi sviluppati in diverse condizioni di illuminazione e distanza.

Ciò ha consentito di ottenere la conferma della correttezza dell’impostazione della tesi e di portare a termine il lavoro di sviluppo di un sistema “Sense and Avoid” relativamente alla parte “sense”.

(5)

1. INTRODUZIONE

Negli ultimi anni, tra le tante novità che hanno caratterizzato il settore dell’aviazione civile, è risultato particolarmente rilevante lo sviluppo degli aeromobili a pilotaggio remoto.

I Remotely Piloted Aircraft System, RPAS, sono velivoli in grado di compiere missioni di volo senza equipaggio a bordo (Appendice 1). Il loro utilizzo è ormai consolidato per usi militari ed è in forte crescita anche in ambito civile[1].

In figura 1.1, si rappresenta la grande varietà di progetti relativi allo sviluppo di aeromobili a pilotaggio remoto ed ognuno di essi presenta obiettivi e campi di applicazione differenti.

Figura 1.1 Applicazioni RPAS

La diffusione sempre maggiore dell’uso di questi velivoli è dovuta ai numerosi vantaggi che presentano rispetto agli aeromobili convenzionali. Tra questi, i più rilevanti sono relativi all’assenza di equipaggio ed ai costi di acquisizione e di esercizio.

Considerando anche l’incolumità dell’equipaggio, possono essere affidate ad aeromobili a pilotaggio remoto le seguenti missioni:

- Dirty: missioni “sporche”, svolte in ambiente nucleare, chimico o batteriologico; - Dull: missioni “monotone”, tipicamente di lunga durata, come la sorveglianza e la

ricognizione;

- Dangerous: missioni “pericolose”, che prevedono il sorvolo di aree ostili.

È necessario precisare che l’impiego di RPAS richiede anche lo sviluppo di una regolamentazione internazionale al fine di fornire, da un lato, le necessarie garanzie di sicurezza e, dall’altro, certezze circa i limiti nell’utilizzo di tali mezzi.

(6)

1.1 Sistemi Sense and Avoid

Nel mondo commerciale si fa sempre più ricorso a soluzioni ingegneristiche per ridurre infortuni, incidenti e rendere più sicuro l’ambiente circostante.

Tra le varie soluzioni che hanno preso piede, una, sicuramente importante e, allo stesso tempo, in continua fase di sviluppo e integrazione, è quella legata ai sistemi sense and avoid.

In particolare, in campo automobilistico, le case giapponesi sono state all’avanguardia e, al giorno d’oggi, sono numerose le aziende che fanno impiego di sistemi che hanno questo obiettivo.

Essi sono in grado di effettuare un’analisi della situazione circostante e di reagire conseguentemente, in modo da evitare o ridurre la gravità delle collisioni con altri mezzi, oggetti o persone.

Sempre in ambito automobilistico, sistemi di questo genere sono noti anche come “precrash system”, “forward collision warning system” o “collision mitigating system”.

Tali sistemi impiegano sensori quali radar, laser e coppie di telecamere, indispensabili per ottenere una visione stereoscopica.

Quando i sensori acquisiscono le informazioni e consentono al sistema centrale di individuare un possibile pericolo, esso reagisce dapprima attraverso avvisi acustici per poi intervenire autonomamente, frenando e/o sterzando.

(7)

Figura 1.3 Sense and Avoid – Posizionamento dei sensori

Nei primi anni del 2000, la Honda ha sviluppato ed implementato un sistema di visione notturna, in grado di individuare e riconoscere i pedoni, allertare il guidatore e prendere decisioni. Il primo modello di auto dotato di tale sistema è stato la “Honda Legend”.

Nel Marzo del 2016, la “National Highway Traffic Safety Administration” e la “Insurance Institute for Highway Safety” hanno annunciato che ci dovrà essere un incremento della produzione di auto con tali sistemi e che si prevede vengano immesse sul mercato statunitense dal 2022.

È stata stimata una riduzione di 28000 collisioni e 12000 feriti sulle strade statunitensi mentre, su quelle europee, uno studio ha suggerito che ci sarebbero riduzioni fino al 27% degli incidenti e di circa 8000 morti/anno.

Ulteriore campo ingegneristico/industriale, in cui ha preso piede la tecnologia Sense and Avoid e che risulta sempre più in fase di sviluppo, è quello aeronautico. Lo scopo di un sistema Sense and Avoid, SAA, è di agire al posto del pilota per rilevare e risolvere alcune problematiche legate alla condotta della missione di volo. In particolare, come descrive la Federal Aviation Administration, FAA[6], SAA è la

capacità di un RPAS di mantenersi sempre “well clear” dagli altri velivoli e di evitare collisioni con oggetti o altro traffico aereo. Il concetto well clear è stato proposto come uno standard di separazione in volo a cui un sistema SAA deve aderire. Quindi, si può affermare che indichi essenzialmente una norma utilizzata per determinare le azioni necessarie in modo da mantenere una distanza richiesta dagli altri velivoli.

(8)

Lo sviluppo di un sistema SAA si basa su requisiti che garantiscano livelli di sicurezza equivalenti a quelli ottenuti con la capacità See and Avoid di aeromobili con equipaggio a bordo.

Figura 1.4 Schema a blocchi per un sistema SAA

Affinché un RPAS possa evitare in modo autonomo eventuali collisioni, esso deve essere in grado di svolgere diversi compiti identificabili in due fasi principali. La prima, denominata Sense, ha la funzione di ricevere segnali relativi alla posizione e alla velocità di eventuali ostacoli presenti sulla rotta, attraverso l’utilizzo di una serie di sensori.

La seconda fase, Avoid, ha il compito di ricevere e confrontare i dati forniti dalla funzione Sense e successivamente elaborare, attraverso opportune logiche, una traiettoria di evasione.

Figura 1.5 Sistema Sense and Avoid – Traiettoria di evasione

Tale traiettoria deve sottostare alle regole dell’aria e garantire la separazione necessaria da altro traffico aereo.

Il sistema SAA deve essere sviluppato in modo che la sua condotta operativa rispetti i principi di gestione dei conflitti indicati nei documenti dell’International Civil Aviation Organization, ICAO.

Nel 2016, si è sviluppata una collaborazione tra due grandi aziende, Amazon e Google per la consegna di merci attraverso l’impiego di RPAS.

In particolare, la NASA, nel campo del controllo del traffico di velivoli a pilotaggio remoto, ha effettuato dei test con RPAS al fine di sviluppare un sistema in grado di soddisfare tale esigenza.

(9)

Il primo test di controllo del traffico aereo da parte della NASA è stato effettuato nell’aprile 2016, quando gli operatori di volo dell’FAA hanno sorvolato uno spazio aereo pilotando 22 RPAS contemporaneamente.

Il Congresso degli Stati Uniti, dal canto suo, sta lavorando per fornire una legislazione unica in grado di rendere sicuro l’utilizzo degli RPAS.

Figura 1.6 RPAS in volo

(10)

1.2 Normativa

L’Ente Nazionale Aviazione Civile, ENAC, ha stilato un regolamento riguardante i mezzi a pilotaggio remoto nel quale si descrivono norme e comportamenti necessari per garantire la sicurezza[3]. I sistemi impiegati hanno il compito di evitare

collisioni con cose e persone. In particolare, si indicano le regole di circolazione e utilizzo dello spazio aereo distinguendo:

- Visual Line of Sight, VLOS: operazioni condotte in condizioni tali per cui il pilota remoto è in grado di mantenere il contatto visivo continuativo con il mezzo aereo, in modo da consentirgli un controllo diretto del volo;

- Extended Visual Line of Sight, EVLOS: operazioni condotte in aree le cui dimensioni superano i limiti delle condizioni VLOS e per le quali i requisiti del VLOS sono soddisfatti con l’uso di sistemi alternativi;

- Beyond Visual Line of Sight, BVLOS: operazioni condotte in condizioni che non consentono al pilota remoto di rimanere in contatto visivo diretto e costante con il mezzo aereo, al fine di gestire il volo, mantenere le separazioni ed evitare collisioni. Si necessita di sistemi e procedure per il mantenimento della separazione e per evitare collisioni che richiedono l’approvazione da parte dell’ENAC. Al momento, tale regolamento non riguarda i mezzi autonomi, come i sistemi Sense and Avoid, in quanto non rientrano nella definizione di aeromobile descritta[4]. È in atto la stesura delle norme europee da parte

dell’European Aviation Safety Agency, EASA, che dovranno prevedere l’impiego di sistemi autonomi nello spazio aereo regolamentato[5].

1.3 Gestione dei conflitti

Come rappresentato in figura 1.8, il processo di gestione dei conflitti è suddiviso in tre livelli: Strategic Conflict Management, Separation Provision e Collision Avoidance[7].

(11)

Il primo livello, Strategic Conflict Management, si concretizza attraverso un’opportuna pianificazione del traffico aereo che si attua prima della gestione tattica dei conflitti. In genere, le azioni associate a questa fase si realizzano prima della partenza. Le misure adottate hanno come obiettivo principale la riduzione della necessità di applicare il secondo livello entro un valore di scurezza predefinito. Il secondo livello, Separation Provision, realizza il piano tattico secondo il quale si vuole mantenere l’RPAS distante dai rischi di collisione, compatibilmente con il gradodi sicurezza richiesto. La Separation Provision entra in azione quando la fase precedente, la Strategic Conflict Management, risulta inefficiente/inefficace o non applicabile e, quindi, quando si sta per inficiare la separazione minima.

L’ultimo livello, Collision Avoidance, subentra quando viene meno la separazione minima. Il sistema SAA deve intervenire con manovre autonome che consentano di evitare la collisione.

Si osserva, infine, che l’ampiezza delle tre aree dipende fondamentalmente da due fattori: lo spazio aereo in cui opera l’RPAS e l’esistenza o meno del servizio di Air Traffic Control, ATC.

1.4 Funzioni del sistema Sense and Avoid

Affinché un RPAS possa volare all’interno di spazi aerei regolamentati, deve essere dotato di un sistema SAA per la gestione dei conflitti.

In particolare, sono fondamentali le funzioni Self Separation e Collision Avoidance che devono essere attuate quando la pianificazione del volo non garantisce la separazione richiesta dagli altri aeromobili[8].

Figura 1.9 Raffigurazione delle soglie di SS e CA

Per quanto concerne la Self Separation, nota la posizione e la traiettoria di un aeromobile, identificato come potenziale pericolo, l’RPAS deve essere in grado di individuare il conflitto e di impostare una procedura di separazione per mantenersi distante da tale pericolo.

(12)

Questa procedura deve garantire la separazione minima e viene realizzata attraverso manovre che modificano la traiettoria originale.

Nel momento in cui non è più garantita la distanza minima di sicurezza, il rischio di una collisione provoca l’intervento della funzione Collision Avoidance che richiede un’azione per evitare la collisione.

Terminata la manovra di evasione e, quindi, evitata la collisione, il sistema SAA continua a realizzare la Self Separation per rimanere well clear.

In figura 1.10, si rappresentano, in modo più dettagliato, i principali passi di un sistema Sense and Avoid in prossimità di un pericolo.

Figura 1.10 Operazione di un sistema SAA In particolare si osservano i seguenti passi:

- Detect Intruder: individuazione della presenza di un intruso;

- Track Intruder: individuazione della posizione e della velocità di un singolo intruso;

- Evaluate collision potential: valutazione del rischio di collisione sulla base della posizione e delle velocità dell’intruso;

- Priorisize collision threats: individuazione della traiettoria dell’intruso con maggiore probabilità di rischio di collisione;

- Declare action is required: indicazione dell’esigenza di intraprendere un’azione correttiva;

- Determine an avoidance manoeuvre: determinazione della specifica manovra di elusione;

(13)

A livello generale, è desiderabile che qualsiasi sistema SAA abbia sia la funzione Self Separation che la funzione Collision Avoidance, ma questo potrebbe anche non essere necessario, come nel caso in cui il servizio di separazione sia fornito dall’ATC. In questo caso è necessario limitarsi alla funzione Self Separation in quanto le istruzioni del controllore hanno priorità sulle indicazioni del sistema SAA e, inoltre, le regole di separazione, nei diversi spazi aerei regolamentati, potrebbero essere diverse.

1.5 Sensori

Per svolgere le funzioni richieste e, quindi, garantire il livello di sicurezza imposto dalla normativa, un sistema Sense and Avoid necessita di particolari sensori che hanno il compito di rilevare, tra gli altri dati, la distanza che intercorre tra l’RPAS e l’eventuale pericolo.

SENSORI CARATTERISTICHE

ATTIVI PASSIVI

Energia Alta Bassa

Campo di osservazione Ridotto Esteso

Risoluzione Bassa Alta

Carico computazionale Leggero Pesante

Tabella 1.1 Confronto sensori

La classificazione dei sensori consiste nella distinzione tra rilevamento attivo o passivo.

I sensori attivi forniscono la misura diretta della distanza basandosi su radiazioni acustiche ed elettromagnetiche.

Il rilevamento passivo, invece, permette di ricavare la medesima distanza utilizzando, ad esempio, dispositivi per l’acquisizione di immagini, come le telecamere. La presenza di un singolo dispositivo permette di ricavare un’immagine bidimensionale che non possiede l’informazione circa la profondità.

Per questo motivo e per ricavare una mappatura tridimensionale dello spazio, si fa uso di un sistema di visione composto da almeno due telecamere ed associato a tecniche di stereoscopia.

In tabella 1.1, sono messi a confronto i due tipi di sensori descritti considerando le caratteristiche di potenza/energia richiesta, campo di osservazione, risoluzione e carico computazionale.

Si può osservare che il principale vantaggio garantito dai sensori attivi è il basso carico computazionale necessario per fornire la stima della distanza.

Allo stesso tempo, tali sensori richiedono di disporre di elevata potenza/energia e offrono un campo di osservazione ridotto.

Infatti, la risoluzione è determinata dalla dimensione dell’antenna che, per ridurre gli ingombri e i pesi, è particolarmente ridotta e fornisce una corta lunghezza d’onda.

(14)

Viceversa, per i sensori passivi, è garantita, in aria chiara, un’elevata risoluzione, un campo di osservazione esteso e una ridotta esigenza di energia.

Lo svantaggio si ha in termini di carico computazionale, in quanto tali sensori richiedono software in grado di gestire e processare le immagini in ingresso estrapolandone le caratteristiche necessarie per le tecniche di triangolazione e, quindi, per il calcolo della dimensione profondità.

1.6 Elaborazione delle immagini

Al fine della gestione ed elaborazione delle immagini, è disponibile una vasta gamma di algoritmi. Per l’individuazione di uno specifico algoritmo si è fatto ricorso alla valutazione di vantaggi e controindicazioni di ognuno di essi.

La scelta è ricaduta sull’algoritmo “Scale Invariant Feature Transform”, SIFT. Già noto in letteratura e proposto da David Lowe nel 2004, questo algoritmo consente di estrarre, dalle immagini, elementi (feature) invarianti per variazioni di scala, angoli di rotazione, deformazioni, rumore, punti di vista e intensità luminosa. Per questo motivo è largamente impiegato per effettuare il riconoscimento di oggetti o facciale, e il tracciamento di oggetti.

L’algoritmo SIFT si sviluppa attraverso quattro passi principali: - Scale Space Extrema Detection;

- Keypoint Localization; - Orientation Assignment; - Description Generation.

A fronte di alcuni vantaggi, il SIFT, tuttavia, ha presentato anche una serie di controindicazioni:

- Vantaggi:

 stabilità e robustezza in diversi scenari e situazioni;

 invarianza alle rotazioni, a variazioni di scala e deformazioni affini;  individuazione di un numero elevato di keypoint che consente di ottenere

una maggiore qualità di matching. - Controindicazioni:

 lentezza computazionale e di elaborazione;

(15)

1.7 Sviluppo delle attività

Al fine del raggiungimento dell’obiettivo di sviluppare un sistema che assolva le funzioni svolte dal pilota a bordo di velivoli convenzionali, sono stati individuati i seguenti passi concettuali:

- sviluppare un programma per estrarre le caratteristiche distintive delle immagini;

- sviluppare l’algoritmo di “matching”; - valutare la distanza;

- analizzare la situazione real time.

Il primo passo riguarda l’attività di elaborazione delle immagini mediante l’algoritmo SIFT.

Relativamente al secondo passo, si effettua il confronto tra le caratteristiche distintive estratte dalle immagini acquisite. Tale confronto viene effettuato in termini di distanza euclidea dei vettori descrittori.

La valutazione della distanza avviene avvalendosi di un sistema di visione stereoscopica, riportato alle condizioni ideali di funzionamento attraverso l’attività di calibrazione.

Infine, nella fase di sperimentazione, il sistema, costituito dalle telecamere e dal processore, formerà una postazione fissa atta a verificare che le immagini acquisite in diversi scenari vengano analizzate per ottenere il calcolo della distanza in tempo reale.

(16)

2. VISIONE STEREOSCOPICA E MATCHING DI IMMAGINI

I sistemi di visione stereoscopica sono ideali nelle applicazioni in cui le telecamere hanno impostazioni e posizioni fisse.

Tra le applicazioni più comuni vi sono la navigazione, la robotica industriale, il controllo automatico e la sorveglianza.

Navigazione

I veicoli autonomi utilizzano le informazioni di profondità per misurare la distanza e le dimensioni degli ostacoli per poter pianificare il percorso ed evitare gli ostacoli.

La visione stereoscopica può fornire un insieme ricco di informazioni tridimensionali per le applicazioni di navigazione e può dare dei buoni risultati anche in condizioni di illuminazione mutevole.

Robotica industriale

Un sistema di visione stereoscopica è utile per la robotica industriale in attività come la raccolta da scomparti o la manipolazione di casse.

Un’applicazione di prelievo da contenitore richiede un braccio robotico per prelevare un oggetto specifico da un contenitore che contiene diverse tipologie di componenti. Il sistema di visione stereoscopica fornisce un modo, relativamente poco dispendioso, per ottenere informazioni 3D e determinare quali parti sono libere e possono essere afferrate. Il sistema può anche fornire una precisa localizzazione dei singoli prodotti in una cassa e consente di realizzare applicazioni in cui un braccio robotizzato rimuove oggetti da un pallet e li sposta ad un altro pallet o linea di processo.

Controllo automatizzato

Le informazioni 3D sono molto utili per garantire l’alta qualità nelle applicazioni di controllo automatizzate. È possibile utilizzare la visione stereoscopica per rilevare i difetti che sono molto difficili da identificare con immagini bidimensionali come mostrato nell’esempio riportato in “Appendice 3”.

Garantire la presenza delle pillole in un blister, controllare la forma delle bottiglie e cercare pin piegati su un connettore sono alcuni esempi di controllo automatizzato in cui le informazioni di profondità hanno un forte impatto sulla garanzia della qualità. Sorveglianza

I sistemi di visione stereoscopica sono adatti anche per le applicazioni di tracciamento dato che sono resistenti alle variazioni di luce e alle ombre. Un sistema di visione stereoscopica può fornire con accuratezza informazioni 3D per gli oggetti tracciati che possono essere utilizzate per rilevare eventi anomali, come persone che superano una soglia o bagagli abbandonati. I sistemi di visione stereoscopica possono anche essere utilizzati per migliorare la precisione dei sistemi di identificazione, come il riconoscimento facciale o altri sistemi biometrici.

(17)

2.1 Geometria del sistema stereoscopico

La rappresentazione di un punto nello spazio, nel piano immagine di una telecamera, implica la perdita dell’informazione relativa alla dimensione della profondità[12] [13]. Infatti, come si può osservare in figura 2.1, due punti distinti nello

spazio, P e Q, intersecati da uno stesso raggio passante per il centro ottico Ol,

corrispondono ad uno stesso punto nel piano immagine πl (p≡q).

Figura 2.1 Proiezione di punti distinti nello spazio nel piano immagine

Uno dei metodi per ottenere l’informazione sulla profondità, consiste nell’impiego di due o più telecamere.

Un sistema composto da due telecamere, analogo al sistema visivo umano, acquisisce due immagini diverse che rappresentano la medesima scena.

Come esposto nella figura 2.2, tra tutti i punti dello spazio che giacciono sul segmento congiungente il centro ottico Ol ed il punto q, proiezione di Q sul piano

immagine πl, un solo punto, detto punto omologo, qʹ, viene proiettato anche sul

piano immagine πr.

La determinazione dei punti omologhi consente di mettere in relazione le proiezioni dello stesso punto sui due piani immagine e di risalire, mediante una procedura denominata triangolazione, alle coordinate dei punti dello spazio rispetto ad un sistema di riferimento opportuno.

(18)

Figura 2.2 Principio di un sistema stereoscopico

Tale problema, dato q in πl, richiederebbe una ricerca bidimensionale del punto

omologo qʹ all’interno del piano πr.

In realtà, sfruttando una particolare caratteristica della geometria del sistema stereoscopico, è possibile effettuare la ricerca del punto omologo in uno spazio monodimensionale.

Infatti, come mostrato in figura 2.3, gli omologhi di tutti i punti dello spazio, che sono proiezione nello stesso punto q del piano immagine πl, giacciono sulla retta

generata dall’intersezione tra il piano immagine πr e il piano epipolare contenente

la retta OlQP e i due centri ottici Ol e Or. Tutti i punti della retta OlQP, avranno i

punti omologhi collocati sulla retta rER, retta epipolare, del piano immagine πr.

(19)

Tale vincolo, denominato epipolare, consente di limitare lo spazio di ricerca dei punti omologhi ad un segmento di retta. Ciò semplifica il problema sia da un punto di vista della complessità algoritmica sia per quanto concerne la correttezza della soluzione.

Tuttavia, il problema può non avere soluzione.

Infatti, a causa della diversa posizione delle telecamere che compongono un sistema di visione stereoscopico nello spazio, è possibile che un punto non risulti proiettato su tutti i piani immagine delle telecamere. In tal caso, non è possibile determinare la distanza del punto esaminato dalle telecamere.

Un sistema di visione stereoscopico è completamente caratterizzato mediante parametri intrinseci ed estrinseci.

I parametri intrinseci consentono di definire la trasformazione che mappa un punto dello spazio 3D nelle coordinate del piano immagine di ogni telecamera.

I parametri estrinseci rappresentano le posizioni e le orientazioni di ogni telecamera rispetto ad un sistema di riferimento noto.

La determinazione dei parametri intrinseci ed estrinseci, ottenuta mediante la procedura di calibrazione, consente quindi di descrivere completamente il sistema stereoscopico e, in particolare, di ottenere informazioni relative alle coordinate dei punti nello spazio mediante la triangolazione di punti omologhi.

La conoscenza di tali parametri consente anche di trasformare le immagini acquisite dal sistema stereoscopico al fine di produrre un sistema virtuale nel quale i piani immagine delle telecamere giacciono sullo stesso piano e nel quale la ricerca dei punti omologhi avviene esaminando le medesime righe nei diversi piani immagine, come rappresentato in figura 2.4.

(20)

2.2 Calibrazione

In un sistema stereoscopico ideale, le telecamere si presuppongono identiche e quindi aventi medesima lunghezza focale ed assi ottici paralleli.

Nella realtà, le lenti delle telecamere introducono delle distorsioni e le stesse possono avere lunghezze focali diverse ed assi ottici disallineati.

Pertanto, si ricorre alla calibrazione al fine di determinare i parametri, intrinseci ed estrinseci, del sistema in modo che si compensino i difetti sopra citati.

I parametri intrinseci correggono la distorsione delle lenti e la differenza di lunghezza focale, mentre quelli estrinseci determinano l’offset spaziale delle due telecamere, compresa la distanza tra esse (baseline) e la deviazione dal parallelismo degli assi ottici.

Attraverso tali parametri è possibile trasformare le immagini acquisite in immagini “ideali”, come sarebbero quelle viste da telecamere con assi ottici paralleli.

Per effettuare la calibrazione di un sistema stereoscopico si può fare ricorso a diverse tecniche.

Tipicamente, però, questa operazione viene eseguita con tecniche basate sull’utilizzo di pattern geometrici dei quali sono note con precisione le caratteristiche, come dimensione e posizione delle feature presenti.

Mediante l’acquisizione di tali pattern, generalmente contenenti feature simili a scacchiere, ripresi in diverse posizioni e utilizzando determinati algoritmi, è possibile stimare i parametri che caratterizzano uno specifico sistema stereoscopico.

In ambiente LabVIEW si impiega un metodo che consente di calibrare il sistema che viene di seguito descritto.

Il modulo di “Vision Development” include funzioni ed esempi per LabVIEW che guidano nel processo di calibrazione della visione stereoscopica e generano delle matrici di calibrazione che sono utilizzate per il calcolo della disparità e profondità. La figura 2.5 mostra la “griglia di calibrazione”, 19cm × 19cm, allegata al modulo Vision Development.

(21)

Figura 2.5 Griglia di calibrazione

Dopo aver stampato la griglia di calibrazione, si generano due set di immagini, relativi alle telecamere destra e sinistra.

Figura 2.6 Set di immagini per la calibrazione, telecamera sinistra

Figura 2.7 Set di immagini per la calibrazione, telecamera destra

La griglia di calibrazione subirà una modifica di posizione durante il processo di acquisizione delle immagini, come rappresentato nelle figure 2.6 e 2.7.

Per le singole immagini di ognuno dei due set, viene creato un sistema di “riferimento scena” avente una medesima origine, coincidente con un specifico punto della griglia.

Per convenzione, esso corrisponde al vertice in alto a sinistra, come mostrato nella figura 2.8.

(22)

Figura 2.8 Sistema di riferimento scena

Orientando gli assi x e y del sistema di riferimento secondo la direzione delle righe e delle colonne della griglia e nota la dimensione dei punti (diametro 0.4cm) e la distanza tra gli stessi (1cm) si ottengono le coordinate di tutti i punti della griglia. Ciò consente di ricavare i parametri intrinseci di ciascuna delle telecamere e i parametri estrinseci del sistema stereoscopico.

2.3 Risultati della calibrazione

In particolare, per questo studio, sono riportati nelle tabelle 2.1 e 2.2 i parametri intrinseci relativi rispettivamente alle telecamere sinistra e destra.

Caratteristiche Valore

Lunghezza focale [pixel] fx = 1101.74;

fy = 1099.13;

Optical Center [pixel] cx = 320.127;

cy = 349.073;

Tabella 2.1 Parametri intrinseci telecamera sinistra

Caratteristiche Valore

Lunghezza focale [pixel] fx = 1074.19;

fy = 1077.08;

Optical Center [pixel] cx = 367.798;

cy = 112.144;

(23)

L’algoritmo che consente di effettuare la calibrazione fornisce anche indicazione circa la qualità della calibrazione stessa.

Nella tabella 2.3 si riportano i dati relativi alla qualità della calibrazione effettuata.

Max. Projection Error 0.869963

Calibration Quality 0.904472

Max. Rectification Error 0.869357

Rectification Quality 0.926654

Tabella 2.3 Qualità della calibrazione 2.4 Matching di feature

Nel caso della visione stereoscopica, le feature SIFT vengono estratte, nello stesso istante, dalle immagini di una coppia di frame, sinistro e destro, e caratterizzate mediante appositi descrittori[15].

Ogni feature è rappresentata dalla posizione del keypoint e dal suo vettore descrittore.

L’operazione di matching viene eseguita confrontando ciascuna feature estratta dalle immagini di sinistra e di destra, in termini di distanza euclidea dei vettori descrittori[9].

L’algoritmo individua il vettore descrittore di feature più vicina, “nearest neighbor algorithm”, ovvero rintraccia la feature più simile che, tra tutte quelle che più le assomigliano tra le feature dell’altra immagine, diventa la candidata al matching. L’imposizione di una soglia globale sulla distanza non si rivela una scelta ottimale in quanto esistono descrittori più discriminanti di altri. Un metodo più robusto si ottiene controllando il rapporto tra la distanza del descrittore più prossimo ed il secondo più prossimo. Questa scelta risulta migliore della precedente poiché, per ottenere un matching affidabile, le corrispondenze corrette necessitano di avere descrittori dell’immagine destra significativamente vicini a descrittori dell’immagine sinistra.

Si definisce con 𝑅 = il rapporto delle distanze euclidee dei due vettori di descrittori, figura 2.9.

(24)

Figura 2.9 Rappresentazione distanza euclidea delle feature

In particolare, d1 è la distanza euclidea tra il descrittore dell’immagine di sinistra e

il suo corrispettivo che ha distanza minima nell’immagine di destra, mentre d2 è la

distanza euclidea tra lo stesso descrittore dell’immagine di sinistra e il suo secondo corrispettivo più vicino nell’immagine destra.

Infatti, si può considerare il valore della distanza dal secondo descrittore come una stima della probabilità di ottenere un match errato. Nel caso in cui i primi due valori siano tra loro molto vicini, R≈1, l’attendibilità del match è molto inferiore rispetto al caso in cui tale rapporto si avvicini a zero.

In questo lavoro, nel caso di matching corretto, R assume valori non elevati. Qualora inferiore a 0.8, il matching è corretto, altrimenti il punto con descrittore considerato non deve essere preso in considerazione.

Tale idea è confermata dall’andamento delle funzioni di densità di probabilità dei rapporti tra le prime due distanze, per il caso di match corretti ed errati rappresentata in figura 2.10. La soglia imposta garantisce, difatti, una buona separazione tra le due curve probabilistiche. Diversamente, con l’aumento di R è possibile notare come vi sia un conseguente aumento della probabilità di rilevare un match errato.

(25)

3. ALGORITMI PER L’ELABORAZIONE DELLE IMMAGINI STEREOSCOPICHE

3.1 Modello matematico SIFT

L’algoritmo SIFT rappresenta un metodo per estrarre da un’immagine le caratteristiche locali, distintive ed invarianti, necessarie per effettuare un confronto affidabile tra viste della medesima scena[9] [10].

Esso si sviluppa attraverso quattro passi principali: - Scale Space Extrema Detection

In questa prima fase di calcolo si ricercano i punti notevoli di interesse, invarianti rispetto alla riduzione in scala e all’orientamento, facendo uso della funzione differenze di Gaussiane (DoG).

- Keypoint Localization

Localizzazione dei keypoint. Si eseguono successivi filtraggi dei punti candidati trovati. I punti chiave si selezionano su misurazioni basate sulla loro stabilità.

- Orientation Assignment

Assegnazione dell’orientazione. Si assegnano una o più orientazioni per ciascun keypoint basate sulle direzioni locali del gradiente dell’immagine. - Description Generation

Generazione del descrittore. I gradienti locali dell’immagine sono misurati rispetto alla riduzione di scala selezionata nella regione che circonda ciascun keypoint.

Un’immagine digitale è la rappresentazione numerica di un’immagine bidimensionale. Tale rappresentazione è composta da una matrice di punti, detti pixel, la cui colorazione è definita tramite uno o più valori numerici.

Nelle immagini a colori viene memorizzato solitamente il livello di intensità dei colori fondamentali.

Nelle immagini monocromatiche, in scala di grigio, il valore indica l’intensità del grigio, che varia dal nero (valore 0) al bianco (valore 1).

In figura 3.1, si hanno le rappresentazioni numeriche di una zona ristretta di pixel di una immagine a colori e di una in scala di grigio.

(26)

Figura 3.1 Rappresentazione numerica dell’immagine a colori e in scala di grigio

Ai fini dell’implementazione dell’algoritmo SIFT, le immagini da processare sono monocromatiche in scala di grigio in quanto, rispetto alle immagini a colori, è possibile ottenere maggiore semplicità di sviluppo e riduzione del carico computazionale.

3.1.1 Algoritmo SIFT

Come precedentemente indicato, l’algoritmo si sviluppa attraverso 4 passi fondamentali che verranno riportati nel seguito.

Identificazione degli estremi locali (Scale Space Extrema Detection) L’obiettivo primario di questa procedura è di individuare i punti dell’immagine che sono invarianti ai cambiamenti di scala e che presentino una certa robustezza ai cambiamenti di illuminazione, del punto di osservazione e all’aggiunta di rumore esterno.

La ricerca di tali punti si ricava tramite un filtraggio in cascata dell’immagine originale con successive convoluzioni gaussiane (Appendice 5).

(27)

Data un’immagine I(x, y) e un filtro gaussiano G(x, y, σ) di deviazione standardσ, lo scale space associato all’immagine è dato da:

L(x, y, σ) = G(x, y, σ) ⨂ I(x, y) dove:

G(𝑥, 𝑦, 𝜎) = 1 2𝜋𝜎 ∙ 𝑒

( )

avente valore medio nullo e deviazione standard σ assegnata.

Effettuando la convoluzione tra l’immagine data e la funzione gaussiana, si ottiene una nuova immagine che è la riproduzione dell’immagine iniziale, ma sfocata. L’intensità di tale sfocatura viene definita dal valore di σ.

La costruzione dello scale space avviene filtrando iterativamente l’immagine ad intervalli regolari. Ciò dà origine a gruppi di immagini detti ottave. Per ricavare i punti di maggiore interesse all’interno dello scale space si introduce la funzione Differenza di Gaussiane, DoG, calcolata come la differenza tra due funzioni gaussiane, considerate a scale consecutive:

D(𝑥, 𝑦, 𝜎 ) = G(𝑥, 𝑦, 𝑘𝜎 ) − G(𝑥, 𝑦, 𝜎) ⊗I (𝑥, 𝑦) = L(𝑥, 𝑦, 𝑘𝜎 ) − L(𝑥, 𝑦, 𝜎)

La scelta di questa particolare funzione è dovuta a diverse ragioni come riportato in Appendice 6.

Un primo aspetto riguarda l’efficienza nel calcolo.

Essendo già note le convoluzioni L(𝑥, 𝑦, 𝜎 ) necessarie per la descrizione dello scale space, la funzione D(𝑥, 𝑦, 𝜎 ) è il risultato di una semplice sottrazione di queste.

In secondo luogo, la funzione DoG fornisce una buona approssimazione della funzione Laplaciano delle Gaussiane, LoG, normalizzata in scala, σ22G.

Tale normalizzazione è necessaria per l’invarianza.

La relazione che intercorre tra DoG e σ22G si può scrivere:

𝜕𝐺

𝜕𝜎 = σ ∇ G

da cui si ha, tramite l’approssimazione alle differenze finite: 𝜕𝐺 𝜕𝜎= σ ∇ G ≈ 𝐺(𝑥, 𝑦, 𝑘𝜎) − 𝐺(𝑥, 𝑦, 𝜎) 𝑘𝜎 − 𝜎 e, quindi: 𝐺(𝑥, 𝑦, 𝑘𝜎) − 𝐺(𝑥, 𝑦, 𝜎) ≈ (𝑘 − 1)σ ∇ G

(28)

Il fattore (k-1) non influenza la locazione del massimo nell’equazione in quanto è costante in ogni scala.

L’errore di approssimazione tende a 0 quando k tende a 1 e l’approssimazione stessa non ha un forte impatto sulla stabilità della ricerca del massimo, così come sulla sua localizzazione, per alcune significanti riduzioni di scala. In figura 3.3 si rappresenta la costruzione della funzione DoG.

Figura 3.3 Rappresentazione DoG

Nella colonna di sinistra, l’immagine originaria viene convoluta con una funzione gaussiana di deviazione standard crescente per produrre, all’interno dello scale space, immagini, separate da un fattore costante k, chiamate ottave.

Ogni ottava viene suddivisa in un numero intero di intervalli s, in modo che sia verificata la relazione k = 21/s.

Per ogni ottava è necessario produrre s + 3 immagini convolute.

Completata la costruzione di un’ottava, le immagini adiacenti in scala vengono sottratte algebricamente, in modo da ottenere le DoG, rappresentate nella colonna di destra.

Processata un’intera ottava, si campiona nuovamente l’immagine convoluta che presenta il valore di deviazione standard doppio rispetto a quello iniziale e si ripete il processo.

(29)

Localizzazione dei keypoint (Keypoint Localization)

I punti di interesse sono gli estremi locali della funzione D(x, y, σ).

Per determinare questi keypoint, ciascun punto viene confrontato con i suoi otto vicini nell’immagine corrente e i nove vicini delle scale superiore e inferiore, come rappresentato in Figura 3.4.

Figura 3.4 Rilevamento dei massimi e minimi della funzione D(x, y, σ)

Il criterio per cui un punto sia un massimo o un minimo locale è che risulti più grande (vicino al valore 1) o più piccolo (vicino al valore 0) tra tutti i suoi vicini.

Rilevati i punti chiave, si procede all’eliminazione dei punti con basso contrasto, valutando la presenza di bordi e linee, che vengono interpolate per aumentare la precisione, la stabilità e il matching dei punti.

La tecnica consiste nell’interpolazione quadratica 3D dei campioni nell’intorno di un estremo locale e utilizza l’espansione di Taylor al secondo ordine della funzione dello scale space D(x, y, σ), traslata in modo che l’origine sia posta sulle stesse coordinate del campione dell’immagine:

𝐷(𝑥) = 𝐷 +𝜕𝐷 𝜕𝑥 𝑥 + 1 2𝑥 𝜕 𝐷 𝜕𝑥 𝑥

dove D e le sue derivate vengono valutate nel punto campione e x = (x, y, σ)T

è l’offset da tale punto.

L’estremo 𝑥 di tale funzione, calcolato ponendo a 0 le derivate, è dato da: 𝑥 =𝜕 𝐷

𝜕𝑥 𝜕𝐷 𝜕𝑥

(30)

Il valore assunto dalla funzione nei punti estremi, confrontato con una soglia imposta, è necessario per eliminare i punti a basso contrasto:

𝐷(𝑥) = 𝐷 +1 2

𝜕𝐷 𝜕𝑥 𝑥

L’eliminazione degli estremi a basso contrasto non è sufficiente a garantire la stabilità.

Figura 3.5 Rilevamento degli estremi effettivi della funzione

La funzione DoG ha una forte risposta lungo i bordi, edges, anche se la posizione lungo i contorni viene determinata con scarsa precisione.

Si considera la seguente matrice Hessiana:

𝐻 = 𝐷 𝐷

𝐷 𝐷

Gli autovalori di H sono proporzionali alle curvature principali di D.

Considerando l’autovalore più grande, α, e quello più piccolo, β, valgono le seguenti relazioni:

𝑇𝑟(𝐻) = 𝐷 + 𝐷 = 𝛼 + 𝛽

𝐷𝑒𝑡(𝐻) = 𝐷 𝐷 − 𝐷 = 𝛼𝛽

Se il determinante è negativo, le curvature hanno segni opposti e, conseguentemente, il punto viene scartato non essendo un estremo.

(31)

Definendo r il rapporto tra l’autovalore più grande e il più piccolo, è possibile scrivere: 𝑇𝑟(𝐻) 𝐷𝑒𝑡(𝐻)= (𝛼 + 𝛽) 𝛼𝛽 = (𝑟𝛽 + 𝛽) 𝑟𝛽 = (𝑟 + 1) 𝑟 La quantità: (𝑟 + 1) 𝑟

è minima quando i due autovalori sono uguali, mentre cresce al crescere di r. Quindi, per imporre che il rapporto tra curvature principali sia sotto una certa soglia, occorre fissare r tale che:

𝑇𝑟(𝐻) 𝐷𝑒𝑡(𝐻)<

(𝑟 + 1) 𝑟

Il valore di soglia di rdetermina l’eliminazione di tutti i keypoint che hanno un rapporto tra le curvature principali maggiore della soglia imposta.

Assegnazione dell’orientazione (Orientation Assignement)

Dopo aver individuato per ciascun keypoint le coordinate e la scala, il passo successivo è quello di determinare l’orientazione dell’estremo per garantire una buona robustezza rispetto alle rotazioni.

La scala associata al keypoint viene utilizzata per scegliere, nella piramide gaussiana, l’immagine con la scala più vicina.

Si calcolano quindi, per ogni campione dell’immagine L(x, y), al valore di scala scelto, il modulo m(x, y) e l’orientazione θ(x, y) del gradiente locale, applicando le differenze tra pixel:

𝑚(𝑥, 𝑦) = (𝐿(𝑥 + 1, 𝑦) − 𝐿(𝑥 − 1, 𝑦)) + (𝐿(𝑥, 𝑦 + 1) − 𝐿(𝑥 , y − 1))

𝜃 (𝑥, 𝑦) = tan (𝐿(𝑥, 𝑦 + 1) − 𝐿(𝑥 , y − 1)) (𝐿(𝑥 + 1, 𝑦) − 𝐿(𝑥 − 1, 𝑦))

Quindi si costruisce un istogramma di orientazioni costituito dalle orientazioni del gradiente dei punti campionati in una regione attorno al keypoint, come quello riportato in figura 3.6.

(32)

Figura 3.6 Istogramma delle orientazioni

Ogni istogramma è composto da 36 bin che coprono i 360 gradi assumibili. Ogni campione aggiunto all’istogramma viene pesato con il valore dell’ampiezza del gradiente in quel punto. I picchi nell’istogramma delle orientazioni corrispondono alle orientazioni dominanti dei gradienti locali. Per determinare tale orientazione viene identificato il picco più alto nell’istogramma e poi vengono considerati tutti gli altri picchi che hanno un valore pari almeno all’80% del valore massimo trovato. Nel caso in cui siano stati selezionati più picchi verranno creati vari keypoint con stessa posizione, stessa scala ma differente orientazione.

Generazione dei descrittori (Description Generation)

Le operazioni precedenti assegnano a ciascun keypoint una posizione, una scala e un’orientazione. Questi parametri costituiscono un sistema di coordinate locali 2D, con cui è possibile descrivere localmente una regione dell’immagine e assicurare l’invarianza di tali parametri.

Occorre infine attribuire ad ogni punto chiave un descrittore, in modo che esso risulti invariante anche rispetto a variazioni di intensità luminosa e punti di vista 3D.

(33)

Sulla sinistra della figura 3.7 sono rappresentati i gradienti, mentre sulla destra il descrittore dei keypoint.

L’ampiezza del gradiente dell’immagine e le orientazioni vengono campionate attorno alla posizione dei punti chiave, usando la scala del keypoint per selezionare il livello della Gaussiana.

Per ottenere l’invarianza alla rotazione, le coordinate del descrittore e l’orientazione del gradiente sono ruotati relativamente all’orientazione dei keypoint.

Si utilizza una finestra gaussiana, con deviazione standard pari alla metà della larghezza della finestra del descrittore, per pesare l’ampiezza di ciascun punto.

Ciò ha lo scopo di evitare cambiamenti improvvisi nel descrittore per piccoli spostamenti della posizione della finestra e per dare meno enfasi ai gradienti che sono più lontani dal centro del descrittore.

Le orientazioni dei singoli campioni dell’intorno del keypoint vengono raggruppate in subregioni 2×2 e, per ciascuna regione, viene calcolato un istogramma di 8 bin, dove ciascun bin corrisponde a una diversa direzione. Il descrittore è formato da un vettore contenente, in ingresso, i valori di tutte le orientazione dell’istogramma.

Generalmente, la tecnica utilizzata si avvale di array 4×4 di istogrammi a 8 bin di orientazioni in ciascuno.

Pertanto, il vettore che descrive ciascun punto chiave consta di 4×4×8 = 128 elementi.

Aumentando il numero di orientazioni possibili e la grandezza degli istogrammi, si può ottenere una migliore corrispondenza ma il descrittore si rende più sensibile alla distorsione.

3.2 Mappa di disparità e calcolo della distanza

Nei capitoli precedenti è stato descritto il funzionamento della visione stereoscopica sottolineando l’aspetto della presenza di immagini con punti di vista diversi. Sfruttando questa caratteristica, è possibile ricavare la profondità della scena raffigurata.

La figura 3.8 mostra lo schema ideale di una configurazione semplificata di visione stereoscopica, dove sono installate due telecamere con i rispettivi assi ottici perfettamente paralleli ed identica lunghezza focale.

(34)

Figura 3.8 Sistema di visione stereoscopica semplificato Le variabili in figura 3.8 sono:

b: linea di base, ovvero la distanza fra le due telecamere; f: lunghezza focale della telecamera;

XA: asse X della telecamera;

ZA: asse ottico della telecamera;

P: punto del mondo reale, definito dalle coordinate X, e Z;

uL: proiezione del punto P nell’immagine della telecamera di sinistra;

uR: proiezione del punto P nell’immagine della telecamera di destra;

d: distanza del punto P dal sistema di visione stereoscopica.

Le due telecamere, distanti tra loro di una misura “b”, vedranno il punto P con coordinate differenti nei relativi piani immagine.

Le proiezioni di P, uL e uR ,sono ottenute tramite le formule:

𝑢 = 𝑓 ∙𝑋 𝑍 𝑢 = 𝑓 ∙(𝑋 − 𝑏)

𝑍

La differenza tra le due coordinate è nota come “disparità” e può essere utilizzata per calcolare l’informazione di profondità, che è la distanza fra il punto reale P e il sistema di visione stereoscopico.

La disparità è data da:

𝑢 − 𝑢 = 𝑓 ∙𝑏 d

(35)

Quindi, la distanza:

𝑑 = 𝑓 ∙ 𝑏

𝑑𝑖𝑠𝑝𝑎𝑟𝑖𝑡à

Facendo corrispondere ad ogni pixel dell’immagine di sinistra uno dell’immagine di destra si può costruire l’immagine di disparità, contenente l’informazione relativa alla distanza[16].

A causa della diversa area di copertura della scena offerta dalle due telecamere, l’immagine di disparità conterrà informazioni solo per l’area in cui sono presenti dati provenienti da entrambe le telecamere, come rappresentato nella figura 3.9.

Figura 3.9 Area di copertura

In realtà, un sistema di visione stereoscopica è più complesso e sarebbe più vicino al sistema illustrato nella figura 3.10, ma tutti i principi di base valgono anche per esso.

(36)

3.3 Implementazione in LabVIEW

Dopo aver illustrato la parte teorica su cui si basa il presente lavoro di tesi, verranno descritte le attività sperimentali svolte.

3.3.1 MATLAB - Studio e rielaborazione

Si è proceduto, inizialmente, riprendendo il lavoro svolto in una precedente attività di tesi dove l’algoritmo di valutazione di distanza di oggetti era stato sviluppato in ambiente MATLAB.

Approfondita della teoria alla base dell’algoritmo individuato, sono state riscontrate alcune problematiche relative al matching tra le immagini acquisite dal sistema stereoscopico.

In particolare, dopo l’elaborazione, non venivano individuati punti di matching, tra le immagini destra e sinistra, che fossero, al contempo, numericamente significativi e corretti.

(37)

Le immagini riportate nelle figure precedenti sono esplicative del problema riscontrato. I punti di matching risultano ridotti numericamente e non corretti nella corrispondenza.

Inizialmente il lavoro si è incentrato sulla correzione dell’algoritmo intervenendo sul codice di elaborazione, superando e risolvendo questo problema, come evidenziano le successive figure 3.13 e 3.14.

Come si può notare, pur lavorando sulle medesime immagini, le modifiche apportate al programma hanno consentito di individuare punti di matching corretti e numericamente significativi.

Figura 3.13 MATLAB - Matching attraverso nuovo codice di elaborazione

(38)

La fase successiva ha riguardato lo studio e la rielaborazione di un programma che avesse lo stesso scopo di quello sviluppato in ambiente MATLAB, ma che, oltre ad assicurare la richiesta accuratezza dei risultati, consentisse di ridurre drasticamente i tempi di elaborazione (real time/near real time).

Ciò per permettere di processare contemporaneamente le immagini del sistema stereoscopico effettuando, istante per istante, la determinazione degli oggetti presenti nel campo visivo, anche in considerazione delle variazioni di illuminazione del potenziale ostacolo e dello scenario.

3.3.2 Da MATLAB a LabVIEW

Prima di addentrarsi in ambiente LabVIEW e, nello specifico, nel settore “Vision & Motion Module”, è stato indispensabile approfondire nel dettaglio il programma stesso.

In “Appendice 2”, è riportata una sintetica descrizione del programma e del suo linguaggio.

Il seguente diagramma di flusso, riportato in figura 3.15, mostra il piano di lavoro per l’elaborazione delle immagini stereoscopiche, dall’acquisizione di una coppia di frame alla successiva.

Figura 3.15 Diagramma di flusso del funzionamento del programma

Acquisizione di

una coppia di

frame

Esecuzione del

SIFT su ogni

frame

Matching dei

Keypoint

Collegamento

tra i Keypoint

Calcolo della

distanza

(39)

Nello specifico, l’algoritmo si articola in 3 sezioni.

La prima sezione analizza le immagini che vengono convertite in scala di grigio, “Grayscale (U8)”, per ridurne il peso computazionale, e immesse da “path” fisso o acquisite tramite telecamere.

Figura 3.16 LabVIEW - Sezione immissione immagini

La seconda sezione affianca le immagini e collega i punti individuati mediante linee.

(40)

Infine, la terza sezione sviluppa il calcolo della distanza di profondità del soggetto.

Figura 3.18 LabVIEW - Sezione calcolo distanza della profondità 3.3.3 MATLAB vs LabVIEW - Confronto dei risultati

Nelle coppie di figure 3.19 e 3.20, 3.21 e 3.22, sono riportati gli esempi di elaborazione delle medesime immagini, mediante l’algoritmo in ambiente MATLAB e LabVIEW, al fine di evidenziare le principali differenze tra i due programmi.

(41)

Figura 3.19 MATLAB - Elaborazione

(42)

Figura 3.21 MATLAB - Elaborazione

Figura 3.22 LabVIEW - Elaborazione

Dall’analisi delle immagini precedenti si evince che non vi sono differenze sostanziali relativamente all’individuazione di punti di matching.

Viceversa, le tempistiche di elaborazione nei due ambienti risultano dell’ordine di minuti in ambiente MATLAB e dell’ordine di decimi di secondo in ambiente LabVIEW.

Ciò conferma l’opportunità di impiegare il software LabVIEW in applicazioni che richiedono risposte nel campo del real time/near real time. 3.4 Attività sperimentale di test con LabVIEW - Immagini statiche e dinamiche

Per l’analisi di immagini statiche è necessario indicare la posizione del file attraverso il suo path.

(43)

immagini delle telecamere avviene mediante il blocco “Vision Acquisition”, come mostrato nella figura 3.27.

Figura 3.27 Utility LabVIEW - Palette Programming/Vision & Motion/Vision Express/Vision Acquisition

Dopo l’acquisizione, entrambe le tipologie di immagini vengono elaborate attraverso il medesimo algoritmo.

Un altro aspetto sostanziale del programma riguarda l’effetto della luminosità dell’ambiente sul sistema di acquisizione delle immagini. Ovviamente, ciò riguarda le immagini dinamiche, anche in relazione alla tipologia di filtro eventualmente impiegato ed alla qualità delle telecamere utilizzate.

In “Appendice 4” sono riportate le varie tipologie di filtri preimpostati di possibile utilizzo in LabVIEW.

(44)

Immagini rilevate in un ambiente scarsamente illuminato vengono analizzate con una certa difficoltà a causa del ridotto numero di keypoint individuabili.

Tuttavia, il programma “avvisa” l’utente attraverso un messaggio di errore e, conseguentemente, si arresta.

Figura 3.28 LabVIEW - Programma in elaborazione

(45)

Figura 3.30 LabVIEW - Curiosità - Un piccolo riflesso luminoso dà origine ad alcuni keypoint in ambiente quasi completamente buio

Al fine di avere la certezza che le singole immagini delle telecamere, costituenti il sistema stereoscopico, venissero acquisite contemporaneamente, è stato studiato ed applicato un metodo che consentisse di sincronizzare i singoli fotogrammi ed averne riscontro attraverso l’accensione di specifici indicatori.

In figura 3.31 e 3.32 sono riportate le immagini relative al metodo citato.

Figura 3.31 LabVIEW - Block Diagram - Metodo per ottenere la sincronia dei singoli fotogrammi e la correzione dell’esposizione

(46)

Figura 3.32 LabVIEW - Front Panel - Indicatori della sincronia dei singoli fotogrammi e della modalità di esposizione - Tasto per la scelta della modalità di esposizione Inoltre, in considerazione della possibilità di regolare l’esposizione degli obiettivi delle telecamere in modalità sia manuale che automatica, si è provveduto ad inserire nel programma dette modalità, come mostrato nelle stesse figure 3.31 e 3.32. 3.5 Individuazione ed elaborazione di un filtro per le immagini

Il software LabVIEW fornisce una serie di filtri, preimpostati e studiati, per conseguire diversi obiettivi. I filtri, lineari e non lineari, ricalcolano il valore del pixel, in base al suo valore e a quello dei suoi vicini, attraverso una media pesata

(47)

Si possono porre, inoltre, più filtri in cascata secondo le proprie esigenze.

I filtri sono anche personalizzabili in dimensione e valore degli elementi del kernel. Modificando tali parametri, si può generare un filtro adatto alle proprie esigenze. In alternativa si possono usare le utility “IMAQ Get Kernel” e “IMAQ Convolute”. La prima consente di costruire il proprio kernel in base a dimensione e valore dei suoi coefficienti.

La seconda, invece, avrà come input, l’immagine da elaborare e il kernel generato attraverso l’“IMAQ Get Kernel”.

Infine, volendo individuare un ulteriore metodo per filtrare le immagini, si può fare riferimento alla base teorica dei filtri (Appendici 4 e 5). Ciò permette di riscrivere, mediante blocchi algebrici, le formule che governano la sintassi del filtro, fino ad ottenere gli stessi risultati dei filtri forniti con il software.

Dopo aver scritto il programma con l’impiego di filtri preimpostati, è stato elaborato un filtro mettendo a frutto le conoscenze relative alle formule teoriche.

Nelle figure 3.33, 3.34 e 3.35 si può osservare l’evoluzione del filtro.

(48)

Figura 3.34 LabVIEW - Evoluzione Filtro - Uso “IMAQ Get Kernel” e “IMAQ Convolute”

Figura 3.35 LabVIEW - Evoluzione Filtro - Uso blocchi logici per ricostruzione formule teoriche Nella figura 3.35, in particolare, si può notare che l’immagine acquisita dalla telecamera viene scomposta ed elaborata sotto forma di matrice e, dopo l’effetto di filtraggio, che comporta una modifica dei valori dei pixel delle immagini, viene ricomposta per riottenere un’immagine visibile.

Si può osservare che, in base alla tipologia di filtro impiegato, alla dimensione del kernel e ai coefficienti della matrice di convoluzione, si possono ottenere diversi risultati. Questi vanno dall’esaltazione dei bordi degli oggetti fino alla perdita di nitidezza e dettagli, per ottenere un minor peso computazionale e una maggior velocità di calcolo.

(49)

Come riportato nelle figure dalla 3.36 alla 3.41, si può osservare che un kernel di dimensioni maggiori produrrà un maggiore effetto di smoothing.

Si ottiene lo stesso effetto anche con l’aumento del valore di σ (deviazione standard) poiché influisce sull’area di applicazione del filtro.

Figura 3.36 LabVIEW - Elaborazione immagini filtrate con kernel = 1 e σ = 2

(50)

Figura 3.38 LabVIEW - Elaborazione immagini filtrate con kernel = 3 e σ = 2

(51)

Figura 3.40 LabVIEW - Elaborazione immagini filtrate con kernel = 5 e σ = 2

Figura 3.41 LabVIEW - Particolare di elaborazione immagini filtrate con kernel = 5 e σ = 2 Dalla prova pratica si osserva che, quando il kernel ha una dimensione pari a 5, la perdita di dettaglio delle immagini è tale da impedire l’individuazione di punti notevoli e, quindi, di ottenere un matching tra le stesse immagini acquisite.

In relazione ai risultati ottenuti in via sperimentale, si è scelto di impostare un valore di kernel pari a 3 e deviazione standard σ pari a2.

(52)

3.6 Sistema real time utilizzato

Al fine di ottenere una elaborazione delle immagini dinamiche in real time/near real time è stato necessario impiegare il processore NI cRIO-9038 e programmare l’FPGA.

Il sistema di visione stereoscopica è stato realizzato con due telecamere “Basler acA1600-60gc GigE”(figura 3.42). Per completare il sistema real time esse sono state connesse al processore suddetto.

Figura 3.42 Telecamere “Basler acA1600-60gc GigE” 3.6.1 Installazione processore NI cRIO-9038

Il processore cRIO-9038, le cui caratteristiche sono riportate in “Appendice 7”, è dotato di un cavo USB che consente un rapido collegamento ad un pc. Ciò permette di programmare il processore caricando su di esso i propri VI. Per sfruttare le potenzialità del processore è necessario, dopo aver installato tutti i pacchetti forniti dalla National Instruments, rendere compatibile il processore stesso con la propria workstation o host computer.

(53)

Inoltre è stato aggiornato il modulo vision alla stessa versione presente sull’host computer.

Qualora non fosse stato fatto, sarebbero nate incompatibilità che avrebbero potuto portare a errori e all’impossibilità di procedere con il lavoro.

3.6.2 FPGA ed elaborazione immagini

I Field-programmable gate arrays, FPGA, sono chip in silicio riprogrammabili che offrono notevoli vantaggi.

Sono dispositivi standard in cui la funzionalità da implementare non viene impostata dal produttore ma dall’utente finale.

Ciò li rende meno costosi, adatti ad un gran numero di applicazioni e, visto che sono programmabili, consentono di ridurre i tempi di progettazione, di verifica, mediante simulazioni, e di prova sul campo dell'applicazione. Il grande vantaggio è dato dalla loro qualità di poter essere riprogrammati. Qualità che permette di apportare eventuali modifiche o correggere errori in qualsiasi momento.

Per questo motivo sono utilizzati ampiamente nelle fasi diprototipazione, in quanto, eventuali errori possono essere risolti semplicemente riconfigurando il dispositivo.

Gli FPGA consentono:

- tempi di risposta Input/Output, I/O, più rapidi e funzionalità specializzate;

- maggiore potenza rispetto ai processori digital signal processors (DSP); - prototipazione rapida e verifica senza la complessità di progettazione di

un circuito Application Specific Integrated Circuit (ASIC);

- aggiornamento sul campo in grado di eliminare i costi elevati di riprogettazione e manutenzione ASIC.

L’elaborazione delle immagini con l’FPGA, attraverso il “Vision Assistant Express”, si basa sul metodo FIFO.

FIFO, acronimo di First In - First Out, primo ad entrare - primo ad uscire, rappresenta la tipologia di transito, in una coda, di oggetti di qualunque natura, anche virtuali.

Il metodo FIFO, classifica, quindi, la modalità di immagazzinamento di oggetti fisici in cui il primo oggetto introdotto è il primo ad uscire. Un esempio, di tale concetto, è quello di un tubo con una estremità da cui entrano gli oggetti e l'altra dalla quale escono secondo l’ordine di entrata. Per trasferire le immagini da elaborare con l’FPGA e recuperare da esso le informazioni necessarie, bisognerà progettare un VI che consenta questo passaggio di informazioni.

(54)

FPGA Target - Trasferimento immagini da e per l’host machine Per metter in comunicazione l’FPGA e l’host machine, bisogna, in fase di progetto, scrivere un VI che consenta un passaggio di informazioni.

Con l’obiettivo di elaborare le immagini attraverso l’FPGA e ritrasferirle all’host machine, in modo tale da proseguire con l’esecuzione del programma di individuazione dei keypoint e matching, si è proceduto, inizialmente, con la progettazione di un VI, sull’FPGA, impiegando il “Vision Assistant Express” nella funzione “color plane extraction”.

Quindi, il sistema ha generato i collegamenti, i blocchi ed il ciclo “timed loop”, che ha consentito il passaggio di informazioni da e per l’FPGA. In figura 3.43 si riporta lo schema del VI scritto sull’FPGA.

Il blocco “IMAQ FPGA FIFO to Pixel Bus” consente, dopo la lettura dell’immagine, l’ottenimento di un pixel bus mentre “IMAQ FPGA Pixel Bus to FIFO”, consente la scrittura, nel pixel bus cluster di riferimento, dei nuovi valori dei pixel.

Figura 3.43 LabVIEW - FPGA target

Host Machine- Trasferimento immagini da e per l’FPGA Target Per ottenere lo scambio di informazioni tra l’host machine e l’FPGA, è stato necessario aggiungere al VI già scritto una nuova sezione.

I blocchi aggiuntivi sono quelli relativi all’apertura e chiusura dell’FPGA, oltre quelli:

 “IMAQ FPGA Configure Image Transfer to Target”, che configura il FIFO per trasferire le immagini all’FPGA;

 “IMAQ FPGA Image Transfer to Target”, che trasferisce le immagini all’FPGA;

(55)

Nelle figure 3.44 e 3.45 si riporta lo schema che consente il passaggio di informazioni tra l’host machine e l’FPGA.

Figura 3.44 LabVIEW - Host machine 1^ Parte - Apertura e chiusura dell’FPGA

(56)

3.7 Rilevazione della distanza

L’ultima fase dell’attività sperimentale ha riguardato il calcolo della distanza di profondità.

L’attività sperimentale è stata effettuata in diverse condizioni di illuminazione da postazione fissa.

In particolare, dopo aver stampato un target delle dimensioni di un foglio A4 (21×29.7 cm), questo è stato applicato ad uno stand e spostato, di fronte alla coppia di telecamere.

La prima prova è stata effettuata in ambiente chiuso, con illuminazione prevalentemente laterale e ad una distanza crescente da 2 a 34 metri, come riportato nella successiva figura 3.46.

Figura 3.46 Calcolo della distanza in ambiente chiuso

Le prove successive sono state effettuate all’esterno, con illuminazione sia frontale che posteriore e a distanze comprese tra 2 e 45 metri, come riportato nella successiva figura 3.47.

Le distanze reali del target sono state ottenute avvalendosi di un distanziometro laser in possesso del Dipartimento di Ingegneria Civile ed Industriale dell’Università di Pisa.

(57)

I risultati ottenuti sono sintetizzati nei grafici seguenti 3.48 e 3.49.

Figura 3.48 Grafico del legame tra la distanza reale e quella misurata

Figura 3.49 Grafico dell’errore (in valore assoluto) tra la distanza reale e quella misurata

0 5 10 15 20 25 30 35 40 45 distanza reale [m] 0 5 10 15 20 25 30 35 40

45 distanza reale - distanza misurata

illuminazione laterale illuminazione posteriore illuminazione frontale 0 5 10 15 20 25 30 35 40 45 distanza reale [m] 0 0.5 1 1.5 2 2.5 3 3.5 4

4.5 distanza reale - errore

illuminazione laterale illuminazione posteriore illuminazione frontale

(58)

Analizzando i grafici si può notare che:

- nel campo da 2 a 15 metri, le curve mostrano un andamento pressoché simile nelle diverse condizioni di illuminazione;

- alla distanza di 30 metri, con illuminazione frontale, si ha un errore di 2.5 metri in eccesso;

- alla distanza di 34 metri, con illuminazione laterale, si ha un errore di 2.57 metri in difetto;

- alla distanza di 45 metri, con illuminazione posteriore, si ha un errore di 4.5 metri in difetto.

I dati relativi ad errori in difetto possono essere considerati positivi, in quanto darebbero modo di anticipare la fase avoid del sistema.

Si ritiene che questa sperimentazione possa essere considerata applicabile ad un RPAS che voli a bassa velocità.

Riferimenti

Documenti correlati

I sistemi radar di monitoraggio e controllo sono utilizzati in diversi settori per il controllo di diversi parametri e sono costituiti da complessi sistemi a

I risultati dell’applicazione di una stessa trasformazione in RGB e HSI non sono, però, perfettamente identici (perché la conversione tra i due spazi colore può comportare

Si pensi, ancora, ad un APR di un Paese aderente alla NATO che voli sul territorio italiano pilotato da una stazione remota posta in acque internazionali: in

La conoscenza dei parametri intrinseci ed estrinseci consente anche di trasformare le immagini acquisite dal sistema stereoscopico al fine di produrre un sistema virtuale nel quale

Non è facile riferirsi ai processi insediativi dei gruppi etnici immigrati come a fenomeni omogenei per caratteristiche e struttura: in ragione delle relazioni – istituzionali e

di tecnica di pianifi cazione e progettazione urbanistica, nonché un’attenzione signifi cativa al tema della forma della città, nel contesto del bagaglio culturale tipico

In tutte le classi, dalla seconda primaria, alla terza secondaria di primo grado, abbiamo svolto il lavoro sui diversi tipi di lettura a seconda del contesto, delle finalità che

Il pulsante Allergie nella barra degli strumenti Paziente è visibile solo nei pazienti con allergie, ovvero nei pazienti in cui sono state impostate una o più allergie nel