• Non ci sono risultati.

2. LA SOLUZIONE PROPOSTA

N/A
N/A
Protected

Academic year: 2021

Condividi "2. LA SOLUZIONE PROPOSTA"

Copied!
21
0
0

Testo completo

(1)

2. LA SOLUZIONE PROPOSTA

2.1 Approccio al problema dell’obstacle avoidance

In generale, la visione e l’azionamento che deriva dai sottosistemi atti a questi scopi, si combinano insieme secondo un modello open-loop del tipo looking-then-moving. L’accuratezza del risultato dell’operazione dipende strettamente dalla precisione dei sistemi di visione (nel caso dei robot anche dall’accuratezza dell’end-effector).

La base di tutto il processo di Obstacle Avoidance è il processo che porta all’identificazione di un oggetto presente sulla scena del veicolo in movimento, può essere schematizzato a passi come segue:

1. Rielaborazione del contenuto informativo delle immagini:Le immagini provenienti dalle due telecamere al medesimo istante vengono rielaborate secondo opportune tecniche in modo da estrarne in entrambe i tratti fondamentali che identificano gli oggetti rappresentati.

2. Ricerca di corrispondenze fra le immagini (Matching): Per ciascun istante i tratti distintivi (rilevati al passo precedente) di un’immagine (ad esempio la sinistra) devono poter trovare un corrispettivo nell’altra immagine (la destra).

3. Localizzazione delle corrispondenze sullo spazio 3D (Depth Estimation): Dal momento che ciascun tratto distintivo individua una caratteristica di un oggetto nello scenario, qualora si rilevi una corrispondenza di un tratto distintivo tra immagine sinistra e immagine destra, è anche possibile risalire, tramite la geometria che regola le proiezioni, alla posizione 3D di quella caratteristica dell’oggetto.

4. Raggruppamento di più caratteristiche di un oggetto (Clustering): Più corrispondenze vicine spazialmente possono essere raggruppate in un unico insieme (cluster) in modo che esse identifichino lo stesso oggetto dell’ambiente di lavoro del veicolo. E’ possibile costruire così una mappa di profondità che rappresenti opportunamente gli ostacoli che compongono lo scenario in cui il veicolo si muove.

Gli studi finora compiuti offrono un vasto panorama su cosa definire e su come descrivere i tratti distintivi di un immagine. Ne riportiamo tre:

1. Utilizzo delle feature. Una feature non è altro che un pixel importante dell’immagine perché ingloba in sé caratteristiche rilevanti del punto dell’oggetto 3D di cui è la proiezione.

2. Utilizzo delle sagome. Si estraggono le sagome o i contorni degli oggetti.

3. Utilizzo di texture. Si estraggono dall’immagine piccole finestre di pixel, identificative della zona da cui sono state prelevate.

Gli algoritmi che ne derivano dipendono strettamente da tale scelta di base; si possono indicare sinteticamente con le tre categorie:

(2)

1. Algoritmi di tracking feature-based stimano la posizione degli oggetti basate sulla variazione delle feature degli oggetti in una sequenza di immagini. [14]

2. Metodi di contorni attivi modellano la sagoma di oggetti rigidi o non rigidi (deformabili) come curve parametriche che si muovono durante il tracking minimizzando l’energia sotto l’influenza delle forze dell’immagine. [15]

3. Algoritmi basati sul flusso ottico (optical flow) coinvolgono il calcolo del campo di flusso ottico, da cui si possono estrarre le informazioni del moto dell’oggetto. [16]

Per quanto la scelta di una delle tre assunzioni non escluda l’altra, ovvero è possibile avvalersi di un uso combinato di feature e tessiture o feature e contorni, ad esempio, nel nostro caso si prenderà in considerazione solamente la prima possibilità. Pertanto si intenderà per feature un qualsiasi punto d’interesse dell’immagine. L’approccio scelto per risolvere il problema dell’obstacle avoidance può essere schematizzato come in fig.2.1.

Fig.2.1 Flow-Chart che schematizza l’approccio utilizzato per risolvere il problema dell’obstacle avoidance

(3)

2.2 L’ hardware utilizzato

2.2.1 Il veicolo autonomo: Kart Ulisse

Il veicolo da cui ha origine il veicolo autonomo Ulisse è un golf-kart monoposto a tre ruote, Gap Dolly, (Figura 2.2) prodotto dalla ditta BestKart di Padova, guidato dal golfista per il trasporto di sé e della sacca delle mazze. Il rapporto tra BestKart ed il Dipartimento di Sistemi Elettrici ed Automazione è nato allo scopo di realizzare un veicolo autonomo capace di riconoscere ed inseguire un golfista sul campo di gioco.

Un veicolo con queste caratteristiche viene utilizzato per sperimentare nuovi algoritmi di guida e comando; sarà inoltre possibile applicare al veicolo controllori standard per vedere le problematiche associate alla realizzazione pratica del controllore. Inoltre, una versione opportunamente modificata di questo veicolo potrà essere di ausilio a persone diversamente abili per giocare a golf e muoversi sui tracciati in completa autonomia. In questo senso diventa fondamentale la realizzazione di un Sistema di Visione per il kart Ulisse, questo è il nome che il gruppo di Ricerca ha dato al veicolo autonomo. (vedi Figura 2.3)

Fig.2.2 Il golf-kart Dolly

Fig.2.3 Il veicolo autonomo Ulisse

In particolare per la navigazione autonoma del veicolo diventa esenziale che il kart sia in grado di riconoscere gli ostacoli che incontra nel proprio cammino e quindi realizzare una efficace strategia di Obstacle Avoidance. In questo senso, si è scelto di realizzare un Sistema di

(4)

Visione che faccia uso di sensori come due videocamere, dati i vantaggi di cui si è detto nel paragrafo 1.3.1.2.

2.2.2 Sensori di visione

2.2.2.1 Le videocamere utilizzate

I sensori di Visione utilizzati per il kart Ulisse sono due videocamere Logitech® Quickcam® Pro 4000, le cui caratteristiche principali sono riportate nella tabella seguente:

Sensore VGA CCD

Risoluzione 1.3 megapixel

Risoluzione massima video 640x480

Numero frame per secondo fino a 30

Connessione USB

Nell’attuale versione prototipo, le due videocamere sono state montate rigidamente su un’asta rigida d’acciaio: la posizione e l’inclinazione di ciascuna possono essere regolate mediante il giunto sferico su cui sono fissate (vedi Figura 2.4).

Fig.2.4 Particolari delle telecamere sul Kart Ulisse

2.2.2.2 Il modello di proiezione della videocamera

Una videocamera contiene al suo interno una lente che forma una proiezione 2D della scena sul piano immagine, dove è posto il sensore (in genere CCD).

Nel seguito con il termine videocamera (camera), piuttosto che il dispositivo fisico in sé, intenderemo la trasformazione di proiezione che vi è legata: i punti del mondo 3D (object space) diventano punti 2D sul piano immagine. Questo comporta la perdita di informazione della profondità della scena, perché un punto sul piano immagine corrisponde ad una retta intera della scena 3D. La conoscenza della geometria del processo di acquisizione delle immagini diventa essenziale, in modo che le informazioni provenienti dalle telecamere possano essere “fuse” con

(5)

Per descrivere la geometria che regola il funzionamento di una videocamera, in particolare ci riferiremo al modello pinhole a proiezione centrale (central projection). [18]

Una volta che vengono fissati il sistema di riferimento della videocamera (con origine nel centro di proiezione, detto anche centro della videocamera), il piano individuato da Z=f, viene chiamato piano immagine (image plane o focal plane), mentre f viene chiamata lunghezza focale (focal lenght). Nel modello pinhole un punto nello spazio P di coordinate P =

[

X Y Z

]

T, nel sistema di riferimento della videocamera, si proietta sul piano immagine posto a attraverso una proiezione perspettiva (perspective projection) alla locazione x =

[

x y

]

T, che corrisponde al punto di intersezione sul piano immagine della retta che collega il punto P al centro di proiezione.

Si chiama asse ottico o asse principale, l’asse che attraversa il centro di proiezione, ortogonale al piano immagine. Questo asse interseca il piano immagine sul punto

[

]

T

Y

X c

c

c = 0 (nel sistema di riferimento dell’immagine) chiamato punto principale.

La figura 1.1 mostra l’operazione di proiezione. I due sistemi di coordinate sono il sistema di riferimento sulla videocamera di origine OC, Camera frame, (rispetto al quale si esprimono le coordinate 3D del punto) e il sistema di riferimento sul piano immagine di origine OI, Image frame, (rispetto al quale si esprimono le coordinate in pixel). Gli assi XC e xI hanno stessa direzione ma sono scalati l’uno rispetto all’altro a seconda della lunghezza focale f (espressa in pixel). Lo stesso rapporto intercorre anche tra gli assi YC e yI .

Per triangoli simili,come da figura 12, se si considera l’origine del sistema di riferimento sul piano immagine coincidente con il centro ottico, anziché sull’angolo in alto a sinistra, il punto

[

]

T

Z Y X

X = risulta mappato sul punto x sul piano immagine, le cui coordinate si

esprimono come:           = Z Y f Z X f

x per cui la funzione proiezione centrale dal mondo alle coordinate

sull’immagine si esprime come:

                    ℜ ℜ Z Y f Z X f Z Y X a a 2 : 3 (2.1)

L’espressione (2.1) non è del tutto corretta, in quanto scegliendo la terna di riferimento sull’immagine come in figura 2.5, bisogna considerare un offset per il punto principale:

          + +           ℜ ℜ Y X c Z Y f c Z X f Z Y X a a 2 : 3 (2.2)

(6)

Fig.2.5 L’operazione di proiezione

Quando i pixel non sono quadrati, la lunghezza focale deve essere espressa usando larghezza e altezza di un pixel come unità di lunghezza: fx e fY . Le coordinate del punto proiettato sono in questo caso:           + + = Y Y X X c Z Y f c Z X f x{1,2} (2.3)

Questo ultimo vettore dà precisamente la posizione del punto proiettato sull’immagine in pixel, quando si ha una pinhole camera ideale. Le videocamere reali non hanno pinhole ma lenti, che introducono una certa distorsione dell’immagine, per cui il punto proiettato risulta in una posizione leggermente diversa x~. Un semplice modello del primo ordine della distorsione introdotta da una lente è il modello di distorsione radiale:

(7)

                 + + =       = + =         = y y x x y x c b c b b b a k a b Z Y Z X a y x 2 f f x ~ ) 1 ( distorsione radiale (2.4)

dove k è chiamato coefficiente di distorsione radiale.

Alcuni di questi parametri costituiscono i coefficienti della cosiddetta matrice di calibrazione della videocamera, la quale contiene appunto i parametri intrinseci della videocamera:

          = 1 0 0 0 Y Y x X c f c f K α (2.5) dove:

fx e fy sono la lunghezza focale espressa in pixel secondo la dimensione dei pixel lungo XI e YI

cx e cy sono le coordinate del punto principale sul frame del piano immagine α è lo skew, l’obliquità, l’angolo tra gli assi XI e YI in pixel.

Non compaiono nella matrice di calibrazione ma fanno parte in ogni modo dei parametri intrinseci di una telecamera, i parametri che rappresentano la distorsione (radiale e tangenziale).

2.2.2.3 Stereovisione e geometria epipolare

Grazie alla vista di una scena mediante l’uso coordinato di più videocamere montate su uno stesso veicolo è possibile ricostruire la profondità 3D. A questo scopo sono sufficienti due videocamere, ciascuna delle quali funge da sensore di vista analogamente alla “vista umana”; è in questo senso il nome di Visione Stereo (Stereo Vision). In questo lavoro di tesi, ci si restringe al caso di un Sistema di Visione i cui sensori siano appunto due videocamere montate a distanza prestabilita e giacenti alla stessa altezza da terra. In altri termini si supporrà che:

• La distanza tra le due telecamere sia fissa e nota.

• La matrice di rototraslazione tra le due videocamere sia nota.

• La vista dai due sensori di visione sia non eccessivamente diversa una dall’altra (approccio classico).

• Parametri intrinseci delle telecamere molto simili.

In figura 2.6 possiamo vedere la tipica configurazione stereo utilizzata è quella nominata

parallel cameras, (vedi figura 2.6) in cui:

• I due piani immagine sono disposti in verticale e sono coplanari nello spazio.

• Le due telecamere hanno identica lunghezza focale e sono separate solo lungo l’asse X da una distanza di Baseline B.

(8)

Si chiama coppia di coniugati (conjugate pair) la coppia delle due proiezioni di un medesimo punto sulla scena nei due piani immagini; in figura 2.6 vengono indicati con pL e pR.

In questo caso ideale, le informazioni sulla profondità si ottengono considerando che le proiezioni della coppia di coniugati risultano di coordinate solo leggermente diverse, in particolare la coordinata (verticale) Y della proiezione del punto sui due piani immagini è la stessa, invece la coordinata X varia di poco; la differenza delle due coordinate lungo X si chiama disparità (disparity).

Fig.2.6 Parallel cameras: La proiezione su videocamere stereo

Nei prossimi capitoli quando si parlerà di “sistema di riferimento solidale alla telecamera” ci si riferirà a fig.2.6 ed al sistema di riferimento Xcl,Ycl,Zcl per la telecamera sinistra, Xcr,Ycr,Zcr per la telecamera destra.

Il piano che passa per i centri delle due videocamere e il punto sulla scena è chiamato piano epipolare. L’intersezione tra un piano immagine e il piano epipolare si chiama linea epipolare. La Geometria Epipolare è appunto la geometria proiettiva intrinseca tra due differenti viste.

La figura 2.7 mostra nel dettaglio il piano epipolare, su cui giacciono le rette che collegano il punto nello spazio della scena 3D (indicato in blu e con coordinate espresse rispetto al frame della videocamera sinistra) con i rispettivi centri delle due videocamere e la relativa baseline, e le linee epipolari, evidenziate in rosso.

In realtà, a causa della naturale distorsione delle immagini provenienti da una videocamera e della geometria imperfetta, è necessario considerare anche una leggera disparità verticale delle proiezioni.

(9)

Fig.2.7 Parallel Cameras: Geometria della vistione stereo binoculare.

Definiremo più appropriatamente la disparità come la distanza tra i punti di una coppia di coniugati se le due immagini venissero sovrapposte.

Per quato segue ci riferiremo alla fig.2.6. Gli assi a cui faremo riferimento saranno quelli della telecamera sinistra: Xcl,Ycl,Zcl.

La configurazione di tipo parallel cameras, fin qui analizzata, risulta di difficile realizzazione pratica, in tutti i casi in cui si abbia a che fare con un veicolo “prototipale” o nei casi in cui le due videocamere siano indipendenti e montate in configurazione stereo . Per queste ragioni si può fare riferimento ad una configurazione stereo generica, che in seguito si indicherà semplicemente come configurazione stereo, in cui:

• I due piani immagine sono disposti in verticale e non sono coplanari nello spazio • Le due telecamere hanno identica lunghezza focale e sono separate solo lungo l’asse

Xcl da una distanza di Baseline B.

Dal momento che la geometria proiettiva dipende solamente dai parametri interni alle videocamere e alla posizione relativa l’una rispetto all’altra, le definizioni di piano epipolare e di linea epipolare rimangono invariate; la figura 2.8 mostra un esempio. I centri delle videocamere, il punto nello spazio 3D P e le sue proiezioni pL, pR, giacciono sullo stesso piano (epipolare). Se un punto dell’immagine pL viene proiettato all’indietro nello spazio 3D, questo corrisponde ad un raggio definito dal centro della telecamera sinistra e il punto stesso. Tale raggio di punti si proietta come una linea lR nel secondo piano immagine (piano immagine destro nella figura 2.8): la proiezione di P sulla seconda immagine (immagine destra) è un punto che appartiene a tale

(10)

Fig.2.8 Stereo Cameras: Geometria epipolare della Visione stereo binoculare

Si chiama epipolo (epipole) l’intersezione della linea che congiunge i centri delle videocamere (baseline) con il piano immagine. Allo stesso modo, l’epipolo è la vista del centro dell’altra videocamera dell’altra vista. L’epipolo costituisce anche il punto di fuga della direzione di traslazione della baseline.

Tutte le linee epipolari si intersecano all’epipolo del piano immagine. Ciascun piano epipolare interseca il piano dell’immagine sinistra e il piano dell’immagine destra lungo le linee epipolare e definisce le corrispondenze tra le linee.

Grazie alla possibilità di poter caratterizzare algebricamente la geometria che regola le proiezioni di un punto nello spazio 3D sui due piani immagini, ovvero la Geometria Epipolare, è possibile calcolare agevolmente la profondità del punto dai piani delle due videocamere, come si vedrà più dettagliatamente in seguito.

Una volta che la posizione e l’orientazione delle due videocamere è nota, resta da risolvere il problema della stereopsi (stereopsis): trovare le due proiezioni sui due piani immagini che corrispondono allo stesso punto 3D. Questo aspetto è noto come il problema delle corrispondenze (correspondence problem) e sarà preso in considerazione successivamente.

2.2.2.4 Posizionamento videocamere

Il posizionamento è stato studiato svolgendo alcune semplici considerazioni riguardo le caratteristiche fisiche del veicolo e i vincoli determinati dalle caratteristiche delle videocamere e dagli obiettivi che si vogliono raggiungere attraverso il sistema di visione. [17]

La scelta del posizionamento dei sensori di Visione sul Kart influisce pesantemente sull’efficacia del Sistema di Visione che ne risulta, per queste ragioni il posizionamento delle due videocamere è stato effettuato secondo una strategia ben precisa che viene riportata nel seguito.

Per sfruttare i vantaggi che il sistema produce in termini di Geometria Epipolare, le due videocamere sono state regolate perché risultino in configurazione del tipo parallel cameras,

(11)

• I due piani immagine sono disposti in orizzontale e sono coplanari nello spazio. • Le due videocamere hanno identica lunghezza focale (perché le due videocamere

sono dello stesso tipo) e risultano traslate l’una rispetto all’altra solamente lungo l’asse X.(fig.2.6)

Data la struttura attuale del veicolo, si è scelto di posizionare l’asta su cui sono fissate le due videocamere, in modo che essa risulti incernierata sulla lastra d’acciaio che sovrasta la ruota anteriore del kart. (Vedi Figura 2.4). L’altezza dell’asta da terra risulta quindi di circa h=55 cm. Questa distanza sembra essere una buona soluzione al fine di poter inquadrare il suolo davanti al kart ad una distanza ragionevole.

La baseline B, distanza tra le due videocamere lungo l’asse X (del riferimento sul piano immagine delle videocamere), è stata fissata come B=30 cm circa. Questa scelta è sembrata un giusto compromesso: una baseline più elevata implicherebbe una maggiore diversità di vista tra le due videocamere, pertanto potrebbe dare problemi all’algoritmo di matching tra feature, una baseline inferiore darebbe luogo a problemi in fase di triangolazione per la ricostruzione della posizione 3D delle feature.

Ciascuna videocamera possiede un campo visivo orizzontale pari ad un angolo di circa 40° e un campo visivo verticale di circa 30°.

Le figure 2.9-2.11 illustrano nel dettaglio tale configurazione e i parametri descritti.

Fig.2.9 Posizione delle videocamere sul Kart visto davanti

La distanza d indicata in figura 4.6 corrisponde alla distanza (rispetto alle due videocamere) a cui i coni dei campi visivi orizzontali delle due videocamere si sovrappongono. Questa può essere facilmente calcolata come:

cm ctg B d (20 ) 40 2 ° ≈ ≈ (2.6)

(12)

Fig.2.10 Posizione delle videocamere sul Kart visto di lato

Fig.2.11 Configurazione delle videocamere

La distanza in avanti (lookahead distance) indicata in figura 2.11 come dl, corrisponde alla distanza minima a cui il robot è in grado di rilevare un ostacolo e di fermarsi (supponendo si trovasse alla velocità massima) prima di scontrare l’ostacolo. Anche se tecnicamente tale distanza dipende dalla risoluzione delle videocamere e dalla dimensione minima dell’ostacolo (questi fattori influenzano il tempo di processo dei programmi di riconoscimento degli ostacoli),

(13)

frenata stop

l t v d

d = max + (2.7)

Nel caso del kart Ulisse il tempo necessario a bloccarne il movimento tstop, ad esempio qualora venga attivato il freno di emergenza, è pressoché nullo. Pertanto la quantità dl, da un punto di vista di vincoli meccanici del veicolo, può essere pensata come dl = dfrenata ovvero

dell’ordine di pochi centimetri.

Se si tiene in considerazione la vista delle videocamere emerge, banalmente, il vincolo che la distanza in avanti debba certamente maggiore della distanza d, dl > d, in quanto non sarebbe

possibile vedere alcun punto dello spazio proiettato in entrambe le immagini.

Quest’ultimo vincolo non è sufficiente a definire la distanza in avanti, infatti è anche necessario che l’oggetto risulti a fuoco nell’immagine delle due videocamere o che sia possibile individuarlo nella sua interezza o quanto meno sia possibile individuarne il suo contatto col pavimento. Per queste ragioni si può prendere in considerazione una distanza in avanti minima (indicata in figura 2.10 come dl,min). Questa corrisponde ad esempio alla distanza minima a cui i coni dei campi visivi delle due videocamere “intersecano” il pavimento. Nel nostro caso:

m d

MIN

l ≈1,90 (2.8)

A seconda delle dimensioni dell’ostacolo, nonostante questo si trovi a una distanza in avanti minima tale che dl >> dfrenata, il robot (considerando la sua larghezza) potrebbe non essere in

grado di aggirarlo, ma semplicemente di frenare per evitarlo. Per la maggiorparte dei casi è più opportuno quindi considerare una distanza in avanti maggiore di quella minima.

Huang e Krotkov [25] indicano alcuni riferimenti a riguardo e considerano la larghezza del robot, w, come parametro da tenere in considerazione per determinare la distanza in avanti, definendo un’altra quantità, la larghezza di copertura wC, width of coverage (vedi figura 2.7). Una buona scelta corrisponde a considerare:

w

wC =3 (2.9)

il ché significa essere in grado di vedere uno spazio pari a 3 volte la larghezza del robot alla distanza in avanti, in modo da garantire al robot lo spazio per sterzare e evitare l’ostacolo. Le relazioni geometriche che legano le varie quantità portano all’espressione:

d ctg w d C l ≈ (20°)+ 2 (2.10)

Considerando la larghezza del veicolo pari a w = 1metro, dalla (7) si ha wC = 3metri e quindi nella (8) si ottiene dl ≈ 4.52 metri. Nel caso del kart Ulisse, dunque, se l’ostacolo individuato si

trova ad una profondità maggiore di dl ≈ 4.52 metri, il veicolo è in grado di sterzare ed evitare

l’ostacolo.

2.2.2.5 Calibrazione delle videocamere

I sistemi di riferimento delle telecamere a cui ci si riferisce in questo paragrafo sono quelli di figura 13 par.2.2.2.3: coordinate Xcl,Ycl,Zcl, per la telecamera sinistra ; coordinate Xcr,Ycr,Zcr, per la telecamera destra.

Si chiama epipolo (epipole) l’intersezione della linea che congiunge i centri delle videocamere (baseline) con il piano immagine. Allo stesso modo, l’epipolo è la vista del centro dell’altra videocamera dell’altra vista. L’epipolo costituisce anche il punto di fuga della

(14)

Tutte le linee epipolari si intersecano all’epipolo del piano immagine. Ciascun piano epipolare interseca il piano dell’immagine sinistra e il piano dell’immagine destra lungo le linee epipolare e definisce le corrispondenze tra le linee.

Grazie alla possibilità di poter caratterizzare algebricamente la geometria che regola le proiezioni di un punto nello spazio 3D sui due piani immagini, ovvero la Geometria Epipolare, è possibile calcolare agevolmente la profondità del punto dai piani delle due videocamere (par.2.2.2.3).

Una volta che la posizione e l’orientazione delle due videocamere è nota, resta da risolvere il problema della stereopsi (stereopsis): trovare le due proiezioni sui due piani immagini che corrispondono allo stesso punto 3D. Questo aspetto è noto come il problema delle corrispondenze (correspondence problem).Come ultimo passaggio è anche possibile calcolare la trasformazione di rototraslazione, che regola la posizione e l’orientazione di ciascuna videocamera rispetto all’altra.

Attraverso la stima così ottenuta delle matrici R e T, è possibile all’interno dell’algoritmo di Visione calcolare la posizione dei punti sullo spazio 3D mediante triangolazione.

La procedura di calibrazione delle videocamere kart Ulisse è stata eseguita mediante il Camera Calibration® Toolbox di Jean-Yves Bouguet , e risulta molto semplice:

1. Si scattano al medesimo istante alcune foto di una scacchiera in pose diverse nello spazio sia con la videocamera sinistra che con la videocamera destra (in Configurazione Stereo). (vedi esempio in figura 2.12).

2. Si processano le foto scattate con la videocamera sinistra e si ottengono la stima dei parametri intrinseci per la videocamera sinistra.

3. Si processano le foto scattate con la videocamera destra e si ottengono la stima dei parametri intrinseci per la videocamera destra.

4. Si processano i dati intrinseci delle due videocamere e si ottengono i parametri estrinseci delle due Videocamere in configurazione Stereo.

Fig.2.12 Coppia d foto per la calibrazione delle videocamere

Supponendo di utilizzare le videocamere ad una risoluzione del CCD pari a 320x240pixel, le foto sono state scattate a questa risoluzione. I parametri che si ottengono per le due videocamere sono molto simili, come c’è da aspettarsi, trattandosi di due videocamere uguali. Le due matrici di calibrazione (espresse in pixel) risultano:

(15)

          = 1 0 0 136 9 . 403 0 7 . 154 0 5 . 403 left K           = 1 0 0 6 . 141 2 . 406 0 9 . 155 0 3 . 405 right K (2.11)

I parametri intrinseci ed estrinseci ottenuti per le due videocamere portano ad una configurazione come quella mostrata nelle figure 2.10 – 2.11. Nella prima delle due figure, vengono rappresentate la posizione e l’orientazione delle scacchiere fotografate rispetto a ciascuna videocamera singolarmente, modellata attraverso il sistema di riferimento sul centro ottico (in blu) e attraverso il cono di vista (in rosso). Nella seconda vengono mostrate le medesime scacchiere rispetto ad entrambe le videocamere; intuitivamente è facile rilevare la posizione e l’orientazione delle due videocamere una rispetto all’altra.

(16)

Fig.2.14 Parametri estrinseci delle due videocamere in configurazione stereo

Il toolbox utilizzato fornisce il vettore di traslazione T e vettore di rotazione om inteso in termini della formula di Rodrigues, da cui si può ricavare la matrice di rotazione in senso classico R. Nel caso della configurazione nella figura 2.14 questi risultano:

          − − − = 9998 . 0 0058 . 0 02 . 0 0057 . 0 9999 . 0 0085 . 0 02 . 0 0085 . 0 9998 . 0 R           − − = 68 . 10 33 . 4 292 T (2.12)

dove le coordinate del vettore T sono espresse in millimetri. Si noti come la prima coordinata, che esprime lo spostamento relativo lungo l’asse Xcl delle due videocamere, è proprio pari alla lunghezza della baseline B.

E’ necessario notare che un piccolo spostamento delle due videocamere influisce direttamente sui parametri estrinseci così determinati. Allo stato attuale la procedura di Calibrazione è stata ripetuta ogni volta che è stata modificata la posizione o l’orientazione delle videocamere, per qualche ragione più o meno accidentale. E’ allo studio una qualche procedura “automatica” di correzione della posizione delle videocamere per adeguarla all’ultima posizione di cui si conosce anche la calibrazione relativa.

(17)

2.3 Ricostruzione delle coordinate nello spazio 3D

Una volta ottenute le giuste corrispondenze tra punti sulla telecamera destra e punti sulla telecamera sinistra è possibile ricostruire le coordinate nella spazio 3D.

Grazie alla procedura di calibrazione Stereo (di cui si è parlato al paragrafo 2.2.2.5), la trasformazione che lega i riferimenti sulle due videocamere Stereo è nota. Si conoscono infatti le matrici R e Tche esprimono la rototraslazione fra i due sistemi di riferimento. Ad esempio i valori nella (2.12). Se si indicano con XL =

[

XL YL ZL

]

Te

[

]

T R R R R X Y Z X = le coordinate di un punto 3D rispettivamente nel sistema di riferimento della videocamera sinistra e nel sistema di riferimento della videocamera destra, questi due vettori sono legati l’uno all’altro attraverso l’equazione del moto rigido:

T

R +

= L

R X

X (2.13)

dove R e T sono la matrice di rotazione e il vettore di traslazione che caratterizza il moto rigido tra i due sistemi di riferimento con origine sul centro ottico di ciascuna videocamera.

Siano:

[

R R

]

T R R R Z x y X x = = 1 e

[

L L

]

T L L L Z x y X x = = 1 i vettori delle coordinate delle proiezioni prospettiche pL e pR di P sui piani immagine delle due videocamere, ovvero le coordinate della coppia di coniugati, espressi rispetto al sistema di riferimento sui piani immagine. Nella figura 2.15 vengono rappresentate le varie quantità per un generico sistema di videocamere Stereo.

Nota: nel caso di videocamere calibrate stereo, i vettori xL e xR si considerano già normalizzati, ovvero corretti da effetti di eventuale distorsione.

Fig.2.15 Proiezione di un punto in un sistema di riferimento stereo

(18)

T R + = L L R RZ x Z x T R =L L R RZ x Z x in forma matriciale

[

R

]

= T      ⋅ − L R L R Z Z x x (2.14)

Se si chiama A=

[

xR RxL

]

, matrice 3x2, l’equazione precedente assume la forma:

T A =      L R Z Z (2.15)

La soluzione ai minimi quadrati dell’equazione (2.15) è dunque nella forma:

[

ATA

]

ATT L R Z Z −1 =       (2.16) per esteso: T R R R R       −       − − =       − L R L R L L R R L R x x x x x x x x Z Z 1 2 2 2 (2.17)

Se si chiama: a =RxL, dall’equazione precedente si ricavano due soluzioni esplicite per ZL

e ZR :         − − − =       T T T T , , , , , , , 1 2 2 2 2 2 R R R R R R R L R x x a a x a a x x a x a x a Z Z (2.18)

dove <…,…> indica il prodotto scalare tra vettori.

La tecnica di triangolazione è stata facilmente implementata attraverso una funzione in Matlab.

Se un punto nello spazio si trova molto lontano dalle videocamere, i triangoli che si avranno nel calcolare la sua profondità, avranno un angolo molto acuto. In questo caso, diventa essenziale la precisione con cui vengono determinate le coordinate 2D delle proiezioni sul piano immagine sinistro e destro. Un’estrema precisione, tuttavia, potrebbe non essere sufficiente a determinare con correttezza le coordinate 3D di tale punto. Talvolta, infatti, può accadere che la profondità di punti molto lontani venga calcolata dalla procedura di triangolazione come negativa (come se tali punti si trovassero dietro le videocamere), oppure le loro coordinate lungo l’asse X e/o l’asse Y sono sbagliate perché corrispondenti a punti al di fuori del campo di vista delle videocamere. In particolare, si è notato come la profondità di punti 3D, appartenenti a oggetti o ostacoli ad una profondità maggiore di 20 metri, risulti spesso errata, perché imprecisa o negativa.

E’ necessario quindi un ulteriore controllo sulla bontà delle coordinate costruite: a scopo precauzionale, non vengono considerati:

(19)

2.4 Problema delle corrispondenze

Nel precedente paragrafo si è potuto ricostruire le coordinate nello spazio 3D perché si supponeva di conoscere i punti corrispondenti tra telecamera destra e telecamera sinistra. Nella realtà trovare i punti corrispondenti tra due immagini digitali non è un problema dalla soluzione banale.[18]

Per risolvere questo problema, si è deciso di utilizzare l’algoritmo SIFT di David Lowe [14] che permette di estrarre features dalle immagini digitali. Tale algoritmo calcola, per ogni feature, una serie di informazioni che ci permettono di risolvere il problema delle corrispondenze. Il funzionamento dell’algoritmo sarà esposto nel prossimo capitolo.

2.5 Fasi del progetto

La prima fase di questo lavoro di tesi è consistita nella realizzazione di software sviluppato in Matlab. Tale software esegue l’estrazione di features mediante l’algoritmo SIFT, calcola le corrispondenze tra features (par.2.4,fig.2.16), triangola le features ottenendo un insieme di punti nello spazio 3D(par.2.3,fig. 2.17), clusterizza i punti in modo da ottenere ostacoli(cap.5), calcola una rappresentazione bidimensionale vista dall’alto degli ostacoli(cap.5,fig.2.18), georeferenzia le coordinate degli ostacoli utilizzando le informazioni provenienti dall’odometria e costruisce una mappa vista dall’alto degli ostacoli (cap.5).

(20)

Fig.2.17 Clusterizzazione dei punti nello spazio tridimensionale

(21)

Fig. 2.17 Mappa georeferenziata degli ostacoli visti dall’alto. Vengono sovrapposti i risultati della clusterizzazione provenienti da coppie di frames prese ad istanti successivi. In verde: Il veicolo Ulisse. In rosso: gli oggetti che stanno al livello del terreno. In blu: gli

ostacoli.

Nella seconda fase del progetto, è stato realizzato un database di features SIFT che ci permettesse di fare il tracking di tali features.(cap.4) Il database è stato realizzato in linguaggio C++ perché questo linguaggio ha tempi di esecuzione più veloci di Matlab. Utilizzando il C++ si ha, inoltre, la possibilità di creare strutture dati complesse grazie alle classi. Come librerie di visione sono state utilizzate le OpenCV distribuite dalla Intel. Il codice dell’algoritmo SIFT è stato fornito da David Lowe.

Nella terza fase del progetto, è stato scritto un programma che fa le stesse cose di quello scritto nella prima fase ma stavolta in linguaggio C++. La clusterizzazione è stata realizzata utilizzando i dati presenti nel database di features. Il software realizzato è in grado di funzionare in tempo reale ricevendo i dati dalla due webcam (fig. 2.4). Sono stati effettuati una serie di esperimenti che ci hanno permesso di capire il funzionamento dell’algoritmo SIFT. E’ stato quindi scritto un piccolo algoritmo di visione che permette di sopperire ad alcune mancanze dell’algoritmo SIFT(Cap.3).

Nella quarta fase del progetto, è stato scritto il software che esegue il tracking dei cluster nel tempo sfruttando i dati provenienti dal database di features. Tale software esegue, inoltre, la selezione delle features “buone” per creare una mappa georeferenziata di un ambiente dinamico. Il risultato del software realizzato è la mappa georeferenziata dell’ambiente dinamico in cui il veicolo si muove. (Cap.5)

Figura

Fig. 2.17 Mappa georeferenziata degli ostacoli visti dall’alto. Vengono sovrapposti i risultati  della clusterizzazione provenienti da coppie di frames prese ad istanti successivi

Riferimenti

Documenti correlati

Non avendo ancora introdotto le derivate, non possiamo ancora trarre conclusioni sulla crescenza di f , a meno di fare qualche manipolazione algebrica. Rimandiamo

Letizia Pernigotti - pernigotti@science.unitn.it 22 marzo 2012.

Universit` a degli Studi di Trento Corso di Laurea in

(ii) Segue dal punto (i) e dal fatto che un parallelepipedo ha volume zero se e solo ha dimensione due o uno, cio` e almeno uno dei vettori sta nel piano generato dagli altri due (se

Potevamo osservare dall’inizio che, poich´e B appartiene al piano di vista, viene trasformato in se stesso dalla proiezione.. 

tg( ir ) che, per la periodicità π della funzione tangente, viene spesso semplicemente identificato con l’angolo orientato in senso antiorario che porta il semiasse

Proiezione ortogonale di una retta su

• Nel caso b) dire qual’è la reciproca posizione delle rette al variare di λ∈R.. Fasci di piani