• Non ci sono risultati.

Lo sviluppo di un digitalizzatore ottico

N/A
N/A
Protected

Academic year: 2021

Condividi "Lo sviluppo di un digitalizzatore ottico"

Copied!
36
0
0

Testo completo

(1)

Lo sviluppo di un digitalizzatore ottico

Il digitalizzatore ottico sviluppato nell’ambito di questa tesi si colloca nel gruppo dei sistemi ottici attivi a triangolazione e, più precisamente, può essere definito come un sistema ottico di visione stereo a luce codificata.

I suoi componenti principali si identificano in due telecamere con sensore CCD ed un videoproiettore multimediale LCD, interfacciati con un personal computer, per la gestione e il processamento dei dati (Figura 3.1).

(2)

Il principio di funzionamento si basa sul metodo di rilevazione delle superfici noto in letteratura con il nome di gray coding (Figura 3.2), che consiste nella proiezione sull’oggetto di una serie di immagini a frange bianche e nere, il cui periodo viene prograssivamente dimezzato, e sulle tecniche della triangolazione attiva.

Quando le telecamere sono utilizzate come strumento per la misura di geometrie prendono solitamente il nome di telecamere fotometriche, in questi casi, come è facilmente immaginabile, è richiesta una procedure antecedente la fase di misurazione vera e propria per la taratura del sistema, che comunemente viene chiamata calibrazione. Questa rappresenta una fase molto importante di tutto il processo di digitalizzazione, perché una calibrazione errata o fatta in maniera poco accurata va ad inficiare il risultato finale del processo stesso.

Figura 3.2. Proiettando in sequenza le immagini a frange mostrate qui sopra, ed acquisendo contemporaneamente le immagini della scena attraverso la telecamera, ogni pixel del CCD apparirà illuminato o meno a seconda che esso cada in una frangia bianco o nera. Quindi proiettando per esempio 10 immagini, per ogni pixel del CCD può essere ricavato un codice binario a 10 bit, che è univocamente legato alla posizione della porzione di superficie inquadrata.

(3)

3.1 L’hardware

Il sistema di visione, come anticipato in precedenza, si basa sul metodo della triangolazione ottica attiva e, prevede quindi, una sorgente di luce che illumini la scena ripresa. Questo compito è affidato ad un comune videoproiettore per usi multimediali: si tratta, infatti, di un apparecchio NEC modello MultiSync VT440K(Figura 3.3), collegato al Personal Computer mediante una scheda video Matrox G550Dual Head. In questo modo, il videoproiettore si comporta come un secondo monitor sul quale possono essere inviate le immagini dei patterns da proiettare.

L’apparecchio è dotato di una ghiera di regolazione situata vicino alla messa a fuoco dell’obiettivo, che permette di variare la focale dell’ottica interna da 38 a 43 mm, ottenendo un ingrandimento dell’immagine proiettata (Figura 3.3). Trattandosi di un apparecchio per usi multimediali, esso è dotato di una notevole potenza di illuminazione (come si può vedere dalla specifica tecnica, la luminosità dichiarata è di 1100 ANSI-Lumen), questo ha permesso di utilizzarlo per i nostri scopi anche in locali con elevata luce ambiente (Figura 3.4).

Figura 3.3. Raffigurazione del proiettore NEC utilizzato; anteriormente si può notare la ghiera di messa a fuoco e quella di regolazione dello zoom

(4)

Figura 3.4. Specifica tecnica del proiettore NEC VT440

Per riprendere la scena durante la proiezione delle frange si sono invece utilizzate due telecamere digitali SONY modello XCD-SX900 in bianco e nero (Figura 3.5), sulle quali sono stati montati due obbiettivi da misura COSMICAR/PENTAX modello H1214-M(KP) (Figura 3.6), dotati, come nella maggior parte dei casi in cui sia richiesta elevata precisione, di alcune piccole viti per il bloccaggio delle due ghiere di regolazione della messa a fuoco e dell’apertura del diaframma. Il serraggio di queste viti fa si che vibrazioni o urti accidentali, a cui inevitabilmente è sottoposto il sistema durante gli spostamenti, non vadano a modificare la taratura degli obbiettivi, cosa che andrebbe a falsare i risultati delle successive acquisizioni. Questo tipo di obbiettivi è stato scelto dopo aver effettuato una serie di prove sperimentali, dalle quali, è emersa la notevole differenza in termini di precisione rispetto a i comuni obbiettivi da 12” utilizzati in precedenza. Questi aspetti verranno comunque trattati in maniera più approfondita nei paragrafi successivi.

(5)

Figura 3.5. Immagine raffigurante la telecamera digitale SONY XCD900. Formato [pollici] 1/2 Distanza focale [mm] 12 Apertura iride 1.4 - 16 Protrusione [mm] 3.5 Attacco C

Angolo visuale orizzontale [°] 29

Distanza minima [mm] 0.25

Diametro griera portafiltri [mm] 27x0.5

Diametro [mm] 29

Lunghezza [mm] 28.5

Peso [g] 55

(6)

L’interfaccia delle telecamere con il personal computer è realizzata tramite una comune scheda di acquisizione video digitale, con connessione FireWire IEEE1394®. Il modello XCD-SX900 rappresenta una nuova generazione di telecamere ad alta risoluzione (Figura 3.8), che per la loro particolare tipologia di costruzione, compatte e leggere, possono essere facilmente installate anche in ambienti industriali, per giunta risultano anche particolarmente insensibili a shock e vibrazioni (Figura 3. 7).

Figura 3. 7. Specifica tecnica della telecamera SONY XCD-SX900.

Figura 3.8. Immagine raffigurante il pannello CCD installato all’interno della telecamera digitale. La parte bianca della figura rappresenta l’effettivo numero di pixels che forniscono l’immagine (1280x960); ogni pixel ha una dimensione di 4.65x4.65 micron.

(7)

3.2 La calibrazione del sistema

3.2.1 Il modello di telecamera

La procedura di calibrazione consente di determinare due diversi gruppi di parametri denominati rispettivamente parametri intrinseci e parametri estrinseci: i primi descrivono la geometria interna e le caratteristiche ottiche della telecamera, mentre i secondi descrivono la posizione e l’orientamento della telecamera rispetto ad un sistema prestabilito [27,28].

Per usare un dispositivo come la telecamera per questi scopi dobbiamo in qualche modo sostituire alla sua costruzione interna un determinato modello geometrico; il più utilizzato anche in letteratura, è il modello Pin Hole Camera, che, tradotto letteralmente significa Telecamera a Buco di Spillo. Da un punto di vista pratico questo modello è costituito da due piani, il primo dei quali presenta un foro di dimensioni infinitesime attraverso il quale possono passare i raggi luminosi, formando nell’altro piano, che è situato posteriormente al primo rispetto allo spazio di misurazione, un’immagine ribaltata dell’oggetto inquadrato. Geometricamente il modello può essere rappresentato da un piano R, detto piano di retina, nel quale si forma l’immagine attraverso una proiezione prospettica: un punto C, il centro ottico o fuoco, posto alla distanza f (lunghezza focale) dal sistema ottico, è usato per formare l’immagine m, di coordinate (x,y) nel piano R, del punto tridimensionale M di coordinate (Xc,Yc,Zc), come intersezione di tale piano con la retta passante per C ed

M (raggio ottico). Viene detta asse ottico la retta passante per il centro ottico C e

perpendicolare al piano di retina R, nel quale individua il punto c (punto principale). Un altro piano di interesse è il piano F, passante per C e parallelo ad R (piano

focale): tutti i punti appartenenti a tale piano non hanno immagine nel piano di retina,

in quanto i raggi ottici relativi a questi punti sono paralleli al piano R, e quindi non lo intersecano mai (Figura 3.9)

(8)

Figura 3.9. Descrizione del modello geometrico della telecamera.

La relazione che intercorre tra le coordinate immagine di m nel piano R e le coordinate tridimensionali del punto M è data da

− = =

c c c

f x y

Z X Y (3.1)

che si può anche scrivere come

= − ⋅ c, = − ⋅ c

c c

X Y

x f y f

Z Z (3.2)

Spesso, piuttosto che il piano di retina dietro al piano focale, situazione che provoca il ribaltamento dell’immagine (da qui i segni negativi nelle espressioni precedenti), si considera un piano parallelo al piano di retina, sempre distante f dal centro ottico ma davanti a quest’ultimo; in tal caso nelle equazioni (3.2) bisogna togliere il segno meno.

Le relazioni non lineari (3.2), che prendono il nome di equazioni proiettive, possono anche essere espresse in forma lineare nel seguente modo

          =                    0 0 0 0 0 0 0 0 1 0 c c c X x f Y y f Z t T (3.3)

(9)

ovvero m P Mi= ⋅i j, dove la matrice iP viene detta matrice di proiezione.

Sebbene con una Pin Hole Camera si possano effettivamente ottenere delle immagini di una scena, in realtà l’intensità della luce che attraversa il piccolo foro (centro ottico), e giunge ai sensori sul piano di retina, non è sufficiente per essere rilevata dal CCD; ecco che allora questo problema viene risolto ponendo davanti al piano di retina un sistema di lenti e, quindi, il tutto non può più essere assimilato ad un foro di dimensioni infinitesime, ma piuttosto ad un dispositivo più complesso, composto da un diaframma e da un sistema di lenti.

Il diaframma non è altro che un’apertura variabile che regola la quantità di luce entrante nell’obbiettivo. La sua funzione è indispensabile dato che le condizioni di luminosità della scena cambiano molto a seconda delle condizioni operative. L’introduzione di un sistema di lenti porta in evidenza i seguenti problemi:

• un primo problema dovuto alla messa a fuoco necessaria per ottenere un’immagine nitida della scena. Molti sistemi dispongono di un sistema di messa a fuoco automatica, ma così non è per le camere a nostra disposizione • un problema più importante è dovuto alla distorsione ed all’aberrazione ottica

introdotte dalle lenti reali, che non permettono più l’utilizzo diretto del semplice modello Pin Hole Camera ed in particolare delle equazioni (3.2). In particolare la non idealità del sistema ottico è dovuta ai seguenti fattori:

• data la limitata apertura delle lenti, la banda ottica del sistema è finita, causando un blur (“offuscamento”) dell’immagine

• le distorsioni geometriche delle lenti causano uno spostamento dei punti immagine in direzione radiale e tangenziale rispetto alla posizione ideale sul piano di retina

• aberrazioni dell’ottica, quali coma, astigmatismo ed altre sono motivo di un ulteriore blur dell’immagine (in realtà per le lenti a disposizione il loro effetto è trascurabile se paragonato a quello dovuto all’apertura limitata delle lenti)

(10)

• sfuocamento, dovuto alla non perfetta messa a fuoco dell’immagine ed al fatto che, in generale, non tutti gli oggetti della scena sono alla medesima distanza dalla telecamera, e quindi non tutta la scena può essere perfettamente a fuoco • vignetting effect, causato dalla presenza del diaframma, che fa sì che l’intensità

di luce che entra nell’obbiettivo diminuisca passando dal centro ai bordi

Il processo di formazione di un’immagine da una scena può essere decomposto in quattro principali fasi:

− Moto rigido tra Σw e Σc. La trasformazione dalle coordinate nel sistema di riferimento solidale con il mondo Σw al sistema di riferimento Σc solidale con la telecamera può essere modellata, in linea di principio, con una rotazione seguita da una traslazione, ovvero

     = ⋅ +             c w c w c w X X Y Y Z Z R T (3.4)

I parametri da calibrare sono i parametri estrinseci, ovvero la matrice ortonormale di rotazione R ed il vettore di traslazione T

− Trasformazione da coordinate in Σc a coordinate immagini ideali. La trasformazione tra le coordinate tridimensionali (Xc,Yc,Zc) nel sistema di riferimento solidale con la camera alle coordinate immagine ideali (indistorte) è data da = ⋅ c , = ⋅ c u u c c X Y x f y f Z Z (3.5)

(11)

− Trasformazione da coordinate immagine ideali a coordinate immagine reali. Dette δx e δy le componenti lungo i due assi della distorsione introdotta dalle lenti, la relazione tra le coordinate ideali (xu,yu) e le coordinate reali (xd,yd), si può esprimere come

= + ⋅ = + ⋅ ( , ) ( , ) d u x u u d u y u u x x δ x y y y δ x y (3.6)

Qui i parametri da calibrare sono quelli dei modelli di distorsione, che verranno descritti meglio successivamente.

− Trasformazione da coordinate immagine reali a pixel. La trasformazione tra le coordinate immagine reali (xd,yd) e le coordinate immagine (u,v) in pixel è modellabile come | = ⋅ d + , =0 d + 0 x y x y u s u v v d d (3.7)

dove (u0,v0) sono le coordinate in pixel dell’effettivo centro c del piano immagine, ovvero del punto di intersezione dell’asse ottico con la matrice di sensori del CCD (punto principale); dx dx (Ncx Nfx)

| = ; N

cx è il numero di elementi sensibili (fotosensori) nella direzione x, Nfx è il numero di pixel campionati in una riga dal sistema di acquisizione; (dx,dy) sono le dimensioni delle celle del CCD. I parametri da calibrare sono le coordinate del punto principale ed il fattore di scala s; quest’ultimo ha origine dal modo in cui l’immagine viene acquisita dal sistema di cattura e tiene conto di eventuali imprecisioni o errori di temporizzazione tra l’hardware di acquisizione (PC) e l’hardware di scansione della telecamera.

Volendo riassumere quanto detto nei quattro punti precedenti, l’algoritmo di calibrazione dovrebbe essere in grado di stimare i sei parametri estrinseci propri del moto rigido descritto dall’equazione (3.4) e l’insieme dei cinque parametri intrinseci; in questo modo abbiamo tutte le informazioni necessarie per trovare la relazione che

(12)

lega le coordinate del punto M nella terna ambiente a quelle del suo punto immagine m nella memoria del Personal Computer.

I parametri estrinseci sono gli elementi della matrice R e del vettore T, quindi apparentemente potrebbero sembrare dodici, in realtà essi sono sei, perché tra i nove elementi di R ci sono sei relazioni di ortonormalità: in altri termini possiamo scrivere la matrice in funzione dei tre angoli di Eulero (θ,ϕ,ψ) nel modo seguente

−    +       

cos cos sin cos sin

= -sin cos +cos sin cos cos cos sin sin sin cos sin sin sin +cos sin cos -cos sin +sin sin cos cos cos

ψ θ ψ θ θ

ψ φ ψ θ φ ψ φ ψ θ φ θ φ ψ φ ψ θ φ ψ φ ψ θ φ θ φ

R (3.8)

I parametri intrinseci regolano invece il passaggio dalle coordinate dell’oggetto 3D nel sistema di riferimento della telecamera a quello relativo al PC; essi sono la distanza focale f, i coefficienti di distorsione, il fattore di scala s e le coordinate (u0,v0) del centro dell’immagine sul sensore CCD.

3.2.2 La distorsione dell’immagine

Per avere una panoramica completa sul modello di telecamera utilizzato e del processo di formazione delle immagini, rimangono da fare, come accennato in precedenza, alcune considerazioni sul fenomeno della distorsione dell’immagine.

Nella pratica comune, il raggio ottico descritto in precedenza non assume la forma di una retta ideale, come si è ipotizzato nelle equazioni presentate precedentemente; questo è dovuto al fatto che la lente di un obbiettivo è molto diversa dal concetto di centro ottico. Il percorso reale del raggio ottico è molto più complicato di quello che noi abbiamo fin qui assunto, pertanto verranno ora analizzate le differenze tra la teoria e ciò che in realtà accade in un’immagine fotografica.

Normalmente, il punto M sull’oggetto, il fuoco C ed il punto m’ sul piano immagine non sono giacenti sulla stessa retta; come vedremo più avanti, la distanza della posizione reale di un punto immagine m’ dalla sua posizione ideale m, allineata con il centro ottico C ed il punto M, è chiamata distorsione; ovviamente tutti i punti di un’immagine, anche se in maniera diversa l’uno dall’altro, ne sono affetti. Si possono distinguere due componenti della distorsione, e cioè una componente

(13)

radiale, ed una tangenziale, disposta in direzione ortogonale alla prima. In genere la distorsione radiale dr è molto più rilevante di quella tangenziale dt, infatti la letteratura tecnica dice che esse stanno in un rapporto di 20 a 1.

Figura 3.10. Schematizzazione della distorsione radiale e tangenziale in un punto m dell’immagine.

Figura 3.11. Effetto della variazione della distorsione radiale con la lunghezza focale f.

La distorsione tangenziale è dovuta al non perfetto allineamento assiale di tutte le lenti all’interno dell’obbiettivo; la distorsione radiale varia invece con la lunghezza focale. Si supponga infatti che dr sia la distorsione radiale di un raggio ottico proveniente dal punto M nello spazio; possiamo osservare che esso forma un angolo α con l’asse ottico fino ad incontrare il fuoco C, dopo di che il raggio assume

(14)

una deviazione dalla sua direzione originaria formando un angolo α’ con l’asse ottico ed andando ad incontrare il piano immagine nel punto m’, distante r dal punto principale c.

Figura 3.12. Effetto della distorsione radiale su griglie rettangolari e su cerchi. In alto si può osservare l’andamento della deformazione ai bordi dell’immagine nel caso di distorsione di Cushion mentre in basso è rappresentata la distorsione di Barrel: la differenza sta nel fatto che nel primo caso i punti che stanno sull’immagine all’interno di un certo cerchio di raggio r0 subiscono uno spostamento verso il centro mentre

quelli che sono al di fuori di questo cerchio sono spostati verso l’esterno dell’immagine; nella distorsione di Barrel succede esattamente il fenomeno opposto.

Se noi trasliamo l’immagine lungo l’asse ottico di una quantità df, la distorsione radiale diventa nulla e la lunghezza focale è ora data da f’=f+df; si potrebbe quindi pensare di assumere come nuova lunghezza focale proprio questa f’, ma così facendo, può accadere che per un altro punto q, che aveva distorsione radiale iniziale nulla, nasca una nuova distorsione diversa da zero. Da ciò si deduce che per ogni punto di un’immagine esiste una distanza principale per cui la distorsione radiale è nulla (Figura 3.10, Figura 3.11).

La distorsione radiale dr è espressa da un polinomio funzione della distanza radiale r dal punto principale ed assume la seguente espressione

(15)

= ⋅ + ⋅ + ⋅ +3 5 7

1 2 3 ....

dr k r k r k r (3.9)

dove i coefficienti ki (i=1,..,5) devono essere determinati dal processo di calibrazione; nel nostro sistema di acquisizione si è tenuto conto dei primi quattro coefficienti, anche se la correzione effettuata dai coefficienti successivi al primo è trascurabile.

Si può infine osservare che, mentre la distorsione radiale è causata dalla forma intrinseca che hanno le lenti, e non può in alcun modo, essere totalmente eliminata in fase di costruzione dell’obbiettivo, la distorsione tangenziale è dovuta al fatto che le lenti dell’obbiettivo possano essere state montate con un certo disallineamento tra gli assi delle varie lenti; questo tipo di disturbo prende infatti anche il nome di distorsione da decentramento.

3.2.3 Teoria della calibrazione

Come già più volte detto il processo di calibrazione consente di determinare i parametri intrinseci ed estrinseci dei dispositivi utilizzati nel sistema di visione stereo, si può inoltre aggiungere che il principio basilare della calibrazione sia costituito dalla relazione fondamentale

= ⋅B

c w (3.10)

dove c rappresenta un vettore contenente le coordinate in pixel degli n punti del provino di calibrazione sul piano immagine della telecamera; w sono le coordinate degli n punti sul provino rispetto ad un sistema di riferimento che chiameremo per comodità ambiente, e B è la matrice di trasformazione globale che racchiude in se i parametri intrinseci ed estrinseci da calcolare. Le quantità c e w sono note a priori, in quanto la prima è misurabile direttamente eseguendo un’elaborazione digitale delle immagini acquisite, mentre la seconda è data, poiché è l’insieme delle coordinate dei punti sul provino di calibrazione rispetto al sistema di riferimento ambiente, giacente sul provino stesso (si osserva che questi punti hanno tutti coordinata z nulla essendo appartenenti ad un piano). Eseguendo una serie di ottimizzazioni sulla soluzione, si riesce ad ottenere come risultato finale la matrice di proiezione B. Con questa operazione siamo quindi in grado di determinare la relazione che intercorre tra la

(16)

terna di riferimento relativa al piano immagine della camera e quella solidale con il provino.

Figura 3.13. Questa immagine illustra il tipo di provino che è stato utilizzato per eseguire la fase di calibrazione del sistema; si tratta di una superficie piana su cui è stato applicato un foglio recante una stampa laser di una scacchiera bianca e nera; in rosso si è voluto rappresentare schematicamente la terna ambiente solidale con il provino stesso, mentre i punti che si utilizzano per trovare la corrispondenza tra telecamera e proiettore sono i vertici di tutti i quadrati disegnati.

Analiticamente il processo di calibrazione viene eseguito nel modo seguente: il primo stadio consiste nella determinazione dell’orientamento della telecamera e delle componenti x e y del vettore traslazione T. Invertendo le (3.7) per ogni punto di calibrazione i si ha

(

)

(

)

| = x ⋅ − 0 , = ⋅ − 0 di i di y i d x u u y d v v s (3.11)

dove con i=1,2,3,....n si indicano i punti di calibrazione. Noti a questo punto (xdi,ydi),nonché le coordinate (Xwi,Ywi,Zwi) degli stessi punti, ma nel riferimento ambiente, si imposta e si risolve il seguente sistema lineare nelle c i n q u e i n c o g n i t e 1 1 1 1 1 1, 2, , 4, 5 y r y r y x y r y r T T T T T T

(17)

[

]

− − − − −  ⋅        ⋅ ⋅ − ⋅ − ⋅ ⋅ =   ⋅       T T T T T T 1 1 1 2 1 1 4 1 5 y y y x di wi di wi di di wi wi wi di y y r r y X y Y y x X X Y x r r (3.12)

Questo sistema ha un’unica soluzione se e solo se il rango della matrice dei coefficienti è pieno o, equivalentemente, se tutte le colonne sono linearmente indipendenti; per n >>5 si dimostra che ciò è vero. D o b b i a m o o r a d e t e r m i n a r e r r r r r r r r r1, , , , , , , , , T , T 2 3 4 5 6 7 8 9 x y a partire da

T 1 T 1 T 1 T T 1 T 1

1, 2, , 4, 5

y r y r y x y r y r

calcolati al passo precedente.

Innanzitutto si procede alla determinazione di Ty, definendo la matrice C, sottomatrice superiore sinistra 2x2 della matrice di rotazione R, scalata di 1 Ty

    =         2 4 T T C T T 1 5 y y y y r r r r (3.13)

l’unicità di Ty è assicurata da un lemma e le proprietà di ortogonalità di R permettono di calcolare T2

y nel modo seguente:

se nessuna riga o colonna di C è nulla, allora

(

)

(

)

  − − ⋅ ⋅ − ⋅ = ⋅ ⋅ − ⋅ T 1 2 2 2 1 5 4 2 2 2 1 5 4 2 4 ' ' ' ' 2 ' ' ' ' r r y S S r r r r r r r r (3.14) altrimenti

( )

( )

−   = +   T2 ' 2 ' 2 1 y ri rj (3.15)

dove Sr =

( ) ( )

r1' 2+ r2' 2+

( ) ( )

r4' 2+ r5' 2 ed ri', rj' sono gli elementi della riga o colonna di C non nulla. Dopo aver determinato T2

(18)

ottenere Ty con il segno giusto. Abbiamo così ricavato le quantità r r r r1, , , 2 4 5 ma

a noi interessa conoscere tutta la matrice R e quindi per determinarla scriviamo

(

)

(

)

− −      = ⋅ − −         R 1 2 2 2 1 2 1 2 1 2 2 2 4 5 4 5 7 8 9 1 1 r r r r r r s r r r r r (3.16)

dove s = −sgn

(

r r1⋅ + ⋅4 r r2 5

)

ed r r r7, , 8 9 sono calcolati come prodotto vettoriale delle prime due righe di R (si sfrutta la sua proprietà di ortonormalità).

Rimane quindi ora da determinare la distanza focale f e la Tz; inizialmente se ne determina soltanto una loro stima, trascurando la distorsione introdotta dalle lenti: impostando infatti il seguente sistema per ciascun punto di calibrazione si ha

   − ⋅ ⋅ = ⋅ ⋅  i y ci T i y ci z f y d Y w d Y (3.17) dove yi = ⋅r X4 wi + ⋅r Y5 wi+Ty e wi = ⋅r X7 wi+ ⋅r Y8 wi.

Usando molti punti di calibrazione questo sistema è sovradeterminato e può essere risolto nelle due incognite f e Tz (applicando per esempio la tecnica dei minimi quadrati). L’ultima fase della calibrazione riguarda la determinazione dei valori esatti di f, Tz e dei vari coefficienti k della distorsione; questa avviene impostando un problema di ottimizzazione non lineare, per inizializzare il quale si usano i valori approssimati determinati al passo precedente.

A questo punto, sulla base delle relazioni che descrivono la trasformazione geometrica dai punti oggetto ai punti immagine, è possibile stimare le coordinate nella terna ambiente di un qualsiasi punto reale, nota che sia la sua quota Zw e le coordinate in pixel (u,v) della sua immagine nella memoria del Personal Computer. Infatti si ha

(

)

(

)

| = x ⋅ − 0 , = ⋅ − 0 . d d y d x u u y d v v s (3.18)

(19)

Utilizzando le relazioni (2.6) si possono ora ricavare le coordinate (xu,yu). Successivamente, invertendo le (2.5), si ottiene

= ⋅ c , = ⋅ c.

c u c u

Z Z

X x Y y

f f (3.19)

A questo punto, riscrivendo la relazione (3.4) e sostituendovi dentro le espressioni di Xc e Yc prima calcolate si ha

        ⋅ = ⋅ +           R T, 1 u w u c w w x f X y Z Y f Z (3.20) ed esplicitando rispetto a

[

]

T w w w X Y Z        =             R R T. 1 u w T u T w c w x f X y Y f Z Z (3.21)

Considerando solo la terza equazione si ha

  = ⋅ + ⋅ + ⋅ − ⋅ − ⋅ − ⋅  3 6 9 3 T 6 T 9 T u u w c x y z x y Z r r r Z r r r f f (3.22)

da cui si ricava Zc in funzione di grandezze note

⋅ + ⋅ + ⋅ + = ⋅ + ⋅ + T T T 3 6 9 3 6 9 . x y z w c u u r r r Z Z x y r f r f r (3.23)

(20)

Mediante le (3.19) possiamo quindi calcolare le coordinate del punto oggetto nel sistema di riferimento della camera ed infine, sfruttando le prime due equazioni della (3.21), si ottiene

(

)

(

)

(

)

(

)

(

)

(

)

= ⋅ − + ⋅ − + ⋅ − = ⋅ − + ⋅ − + ⋅ − T T T T T T 1 4 7 2 5 8 , . w c x c y c z w c x c y c z X r X r Y r Z Y r X r Y r Z (3.24)

che ci permettono di ricavare le coordinate di un punto dell’oggetto rispetto al sistema di riferimento ambiente.

3.2.4 Procedura di calibrazione del sistema

Il processo di calibrazione del sistema può essere suddiviso nelle seguenti sottofasi principali:

− posizionamento relativo delle telecamere, regolazione della messa a fuoco e dell’apertura dei diaframmi, stima delle posizioni spaziali del provino, controllo del campo inquadrato

− acquisizione delle immagini per la calibrazione

− elaborazione delle immagini ed estrazione dei punti di interesse

− calcolo dei parametri di calibrazione

− analisi degli errori ed eventuali correzioni.

Per l’elaborazione digitale delle immagini, e per il calcolo dei parametri della calibrazione (prima quelli delle singole telecamere, poi quelli del sistema stereo), si sono utilizzate delle toolbox di Matlab® precompilate. Particolare attenzione è stata rivolta alla realizzazione del provino di taratura; infatti, le notevoli dimensioni necessarie per questo tipo di applicazione (circa 1m2), unitamente al fatto che la teoria della calibrazione si basa sull’ipotesi che tutti i punti estratti si trovino su di un medesimo piano, hanno richiesto l’utilizzo di materiali con buone caratteristiche di

(21)

planarità e di indeformabilità al variare delle condizioni ambientali e col passare del tempo. Per questi motivi il provino è stato quindi realizzato mediante una lastra di vetro sulla quale è stato applicato un foglio adesivo in PVC, recante la stampa ad alta definizione di una scacchiera (Figura 3.14).

Figura 3.14. Provino di calibrazione

Una volta stabilita la distanza da cui effettuare la scansione, tenendo conto di mantenere sempre un buon compromesso tra le dimensioni della singola inquadratura e precisione dei dati richiesta, in funzione chiaramente delle dimensioni e della geometria dell’oggetto da rilevare, la prima operazione da effettuare consiste nella messa e punto dei dispositivi; si posiziona il provino di fronte al sistema ad una distanza pari a quella di scansione, con l’aiuto del software di gestione delle telecamere, che consente di visualizzare sullo schermo del PC l’immagine dell’inquadratura, si posizionano i due dispositivi ottici in modo che per entrambi il provino ricada al centro dell’immagine. A questo punto si passa prima alla messa a fuoco delle telecamere, aiutandosi solitamente con un foglio di carta stampato e poi alla taratura dell’apertura dei diaframmi in base alle condizioni della luce d’ambiente, per evitare che nelle immagini ci siano delle zone di sovraesposizione: zone in cui vi è troppa luce e si perde definizione nell’immagine (Figura 3.15). Entrambe le operazioni vengono effettuate agendo manualmente sulle ghiere di regolazione presenti sugli obbiettivi.

(22)

Figura 3.15. Le due immagini rappresentano un esempio di inquadratura di entrambe le telecamere (si noti la diversa angolazione delle immagini, che testimoniano i due punti di vista differenti), il libro è stato utilizzato per la messa a fuoco, mentre le due zone evidenziate in rosso rappresentano due zone in sovraesposizione (si vede chiaramente la diversa intensità di luce rispetto al resto dell’immagine, e la perdita di definizione), in questo caso è necessario procedere ad un aggiustamento dell’apertura del diaframma.

Finita questa prima fase di set up si procede all’acquisizione delle immagini necessarie per la calibrazione; come si vedrà in seguito quello che in realtà si va a calibrare è un volume le cui dimensioni sono date all’incirca dalle dimensioni del provino per una profondità di campo generalmente limitata a qualche decina di millimetri (questo limite e dovuto alla poca profondità di messa a fuoco del proiettore). Vengono scattate quindi due fotografie, una dalla telecamera destra e una da quella sinistra, per ogni posizionamento del provino all’interno di questo volume prestabilito. In questa fase bisogna adottare alcuni accorgimenti, come, assicurarsi che tutte le parti del provino siano a fuoco anche nelle posizioni angolate, non sporcare la superficie stampata della scacchiera durante la movimentazione per passare da un posizionamento all’altro, altrimenti viene compromessa la buona riuscita della fase di estrazione dei punti sulle immagini.

Ricordando che la soluzione dell’equazioni di calibrazione avviene attraverso un processo iterativo che interessa tutti i punti mediante una serie di ottimizzazioni, viene spontaneo pensare che, maggiore è il numero dei punti acquisiti, maggiore è la precisione dei risultati ottenuti, nella realtà si è riscontrato invece che dopo un certo numero di posizionamenti, tali da ricoprire tutto il volume da calibrare, non si hanno scostamenti significativi nei risultati ottenuti.

Tramite la toolbox di Matlab® Calib_gui (Figura 3.16) si procede quindi alla calibrazione delle singole telecamere: il programma carica in memoria le immagini relative alla singola telecamera (Figura 3.17) e passa poi alla vera e propria procedura di elaborazione digitale.

(23)

Figura 3.16. Rappresentazione dell’interfacci del programma di calibrazione.

Figura 3.17. Insieme delle immagini caricate in memoria dal programma di calibrazione, prima di passare alla successiva fase di estrazione dei punti

(24)

La tecnica di estrazione dei punti si basa su una routine del programma che, una volta definite le dimensioni in pixel di un puntatore rettangolare, va alla ricerca all’interno dello stesso, della massima variazione del livello di grigio dell’immagine. In questo modo, cliccando in maniera approssimata nell’intorno degli spigoli dei quadrati della scacchiera, il sistema individua con ottima precisione la posizione del vertice cercato. Per ognuna delle immagini scattate è richiesto di cliccare sui quattro spigoli alle estremità della scacchiera (Figura 3. 18), definendo così un rettangolo; immettendo anche la dimensione del lato dei quadrati stampati, il sistema individua la posizione di tutti gli spigoli dei quadrati contenuti all’interno del rettangolo prima definito. E’ probabile che i punti individuati non siano esattamente coincidenti con quelli disegnati (Figura 3.19), questo è dovuto all’effetto di distorsione introdotto dalle lenti degli obiettivi, immettendo allora un valore iniziale per la distorsione è possibile correggere queste posizioni (Figura 3.20).

Figura 3. 18. Queste immagini rappresentano la fase in cui l’utente è chiamato a cliccare in prossimità dei vertici della scacchiera per definire il rettangolo; all’interno di questo il programma andrà poi ad eseguire l’estrazione di tutti i punti di interesse.

Click #2

Click #4 Click #3

(25)

Figura 3.19. Sopra è possibile osservare la fase di estrazione dei punti su una delle immagini acquisite dalla telecamera; l’utente, dopo aver cliccato i quattro vertici alle estremità, definisce un rettangolo interamente visibile all’interno dell’immagine. Il programma va quindi alla ricerca di tutti gli spigoli dei quadrati contenuti dentro il suddetto rettangolo. All’interno della lente di ingrandimento si vede chiaramente l’effetto dovuto alla distorsione dele lenti.

Dopo aver estratto i vari punti su ognuna delle immagini, il programma procede al calcolo dei parametri di calibrazione. Il metodo utilizzato, a differenza dei metodi lineari, può essere definito un metodo multi-step o misto, in quanto risolve dapprima il problema in maniera lineare e poi affina il risultato con tecniche non lineari usando come base di partenza la soluzione precedentemente ottenuta. Mentre nei metodi lineari ci si occupa in prima battuta della stima dei soli parametri estrinseci mentre quelli intrinseci devono essere inseriti dall’utente, il metodo qui implementato si avvale del dualismo geometrico che si viene a creare tra il piano immagine ed il piano costituito dal provino, acquisendo infatti il provino di calibrazione in varie configurazioni spaziali è possibile risalire ad un sistema che fornisce il valore della distanza focale espressa in pixel. Stimando il valore medio tra le distanze focali ottenute per ogni immagine, si procede al calcolo delle matrici di trasformazione prospettica tra il sistema di riferimento della camera ed il sistema solidale con il provino. Infine, si avvia un processo di ottimizzazione globale che, prendendo come dato iniziale il valore della distanza focale sopra calcolata, tende a minimizzare l’errore tra le coordinate dei punti della scacchiera rispetto al

(26)

riferimento del provino e le coordinate dei punti riproiettati (Figura 3.21), cioè ottenuti utilizzando le matrici di trasformazione prospettica prima valutate (errore di riproiezione). Da quest’ultima fase di ottimizzazione si ottengono i parametri estrinseci ed intrinseci della telecamera.

Figura 3.20. In questa immagine si può nuotare come dopo aver introdotto un fattore correttivo per la distorsione, i punti astratti (crocette rosse) coincidano quasi perfettamente con gli spigoli dei quadrati della scacchiera del provino do calibrazione.

I risultati visualizzati comprendono la distanza focale, la posizione del punto principale, i fattori della distorsione e l’errore nell’estrazione dei punti, tutte le grandezze sono espresse in pixel ed inoltre è possibile visualizzare su di un grafico (Figura 3.22) l’errore di riproiezione e l’andamento della distorsione, sia radiale che tangenziale (Figura 3.23). Osservando il diagramma dell’errore di riproiezione si possono individuare tutti quei punti associati ad un errore elevato, in tal caso, si può risalire all’immagine a cui appartengono tali punti ed andare a fare una riestrazione degli stessi, per migliorare l’andamento dei risultati. Talvolta però può capitare che, anche dopo aver eseguito le riestrazioni suddette, i risultati non migliorino in modo significativo, è pertanto necessario verificare che le acquisizioni che stiamo elaborando siano effettivamente utilizzabili, in certi casi infatti, esse possono presentare delle imperfezioni che compromettono la calibrazione.

(27)

Figura 3.21. Visualizzazione dei punti riproiettati, le crocette rosse rappresentano i punti estratti mentre i cerchietti blu rappresentano i punti riproietteti.

Figura 3.22 Errore di riproiezione, ad ogni immagine elaborata viene associato un colore diverso, ciò permette di avere visivamente una stima dell’errore relativo alle singole immagini. Per esempio nel caso di figura si notano un certo numero di punti neri e viola abbastanza lontani rispetto alla nuvola centrale, in questo caso sarebbe opportuno effettuare una riestrazzione delle immagini associte.

Terminata la fase di calibrazione della prima telecamera, si procede in maniera analoga alla calibrazione della seconda telecamera. Una volta ottenuti i parametri intrinseci per entrambe le telecamere, sempre con l’aiuto di una toolbox di Matlab® Stereo_Gui (Figura 3.24), si effettua un’ ulteriore calibrazione comunemente chiamata calibrazione stereo che, consente di andare a determinare i

(28)

parametri estrinseci del sistema. Prendendo come sistema di riferimento quello relativo a una delle due telecamere, generalmente quella di destra, il software calcola sulla base dei parametri intrinseci precedentemente trovati, i valori della matrici R e T per passare da un sistema di riferimento solidale con la telecamera di sinistra, a quello relativo alla telecamera destra (Figura 3.25). I parametri così determinati rappresentano inizialmente solo una stima della posizione relativa tra i due dispositivi ottici, infatti, attraverso un processo iterativo di ottimizzazione si determinano i valori corretti delle matrici (Figura 3.26).

Come si vedrà in seguito queste due matrici sono la base per tutto il processo di ricostruzione tridimensionale.

Figura 3.23. In alto a sinistra è riportato l’andamento della distorsione radiale delle lenti della telecamera mentre a destra quello tangenziale; in basso è raffigurato il diagramma della distorsione globale, che, come si può notare, è molto simile a quello della distorsione radiale. Questo giustifica il fatto che nel calcolo dei vari parametri la distorsione tangenziale è sempre stata trascurata. Con il cerchietto si indica il centro dell’immagine, mentre con la croce è indicata la posizione del punto principale sul piano CCD della camera; essendo i due punti molto vicini, l’andamento della distorsione è abbastanza uniforme sul piano immagine. Alle quattro estremità dell’immagine si può notare lo scostamento massimo dalla posizione ideale, che è pari a circa 20 pixel.

Terminata la procedura di calibrazione è possibile visualizzare su un grafico tridimensionale, la posizione relativa delle due telecamere e la posizione dei piani (relativi a ogni posizionamento del provino) rispetto al sistema, per una valutazione

(29)

immediata delle dimensioni del volume spaziale effettivamente calibrato (Figura 3.27).

Figura 3.24. Interfaccia della routine di Matlab®, per la calibrazione stereo del sistema.

Figura 3.25. Esempio di schermata di output della routine calibrazione stereo: la parte evidenziata riporta la prima stima dei vettori di rotazione e di traslazione relativi al passaggio dal sistema di riferimento solidale con la camera sinistra a quello solidale con la camera destra.

(30)

Figura 3.26. Visualizzazione della schermata di output finale della routine di calibrazione stereo,nella parte evidenziata, vengono riportati i valori ottimizzati dei parametri estrinseci del sistema calibrato.

Figura 3.27. Rappresentazione tridimensionale dei parametri estrinseci del sistema, e valutazione del volume calibrato: nel caso di figura per esempio e stato calibrato un volume pari a circa 600x800x400.

(31)

3.3 La visione stereo

La visione stereoscopica consente di ottenere informazioni di profondità da una coppia di immagini provenienti da due telecamere che inquadrano una scena da differenti posizioni. Il principio è quello su cui si basa il sistema visivo umano: il nostro cervello può fondere (percepire in un’immagine unica) due immagini retiniche che, entro certi limiti si formano su punti retinici lievemente disparati, come ad esempio, quando a causa della distanza fra gli assi visivi, i due occhi osservano lo stesso oggetto sotto due angolazioni diverse. È proprio a causa di questa disparità che avviene la visione stereoscopica facendoci percepire l’oggetto come “unico” e “solido”.

Con questo tipo di approccio vengono comunemente riscontrati due tipi di problematiche: la determinazione delle corrispondenze e la ricostruzione. Il primo consiste nell’accoppiamento tra punti nelle due immagini che sono proiezione dello stesso punto della scena, generalmente chiamati punti coniugati, il secondo riguarda invece la ricostruzione della posizione nella scena dei punti che sono proiettati sulle due immagini. Questo processo di ricostruzione come già accennato in precedenza, necessità della calibrazione dell’apparato stereo, ovvero del calcolo dei parametri intrinseci ed estrinseci delle telecamere.

3.3.1 Ricostruzione 3D

Una volto risolto il problema delle corrispondenze, argomento che verrà trattato nel paragrafo successivo, vediamo come sia possibile la ricostruzione nel caso generale.

(32)

Noti dalla calibrazione le coordinate in pixel dei punti coniugati e le due PPM (perspective projection matrix) relative alle due telecamere, si può facilmente ricostruire la posizione in coordinate assolute del punto di cui entrambe sono la proiezione(Figura 3.28).

Posto m=

( )

u v, T, e scrivendo P nella forma:

(

)

1 14 2 24 3 34 T T T q q q     = =     q P q P p q   (3.25) dall’equazione (3.3) si ricava: 14 34 24 34 q u q q v q= +  +  +  = +  T 1 T 3 T 2 T 3 q w q w q w q w (3.26) ovvero

(

)

(

)

1424 3434 0 0 T T u q uq v q vq + =   + =  1 3 2 3 q q w q q w (3.27) e quindi

(

)

(

)

1424 3434 T T u q uq q uq u + =    +     1 3 2 3 q q w q q (3.28)

Siano m=

( )

u v, Te m′=

(

u v′ ′,

)

Ti due punti coniugati che sono riconosciuti come proiezione dello stesso punto dello spazio, possiamo allora scrivere un sistema lineare sovradimensionato:

(

)

(

)

(

)

(

)

14 34 24 34 14 34 24 34 T T T T u q uq v q vq q uq u q vq v +     − − +    =   ′ ′ − +  ′ ′ − +      1 3 2 3 1 3 2 3 q q q q w q q q q (3.29)

(33)

la cui soluzione (ai minimi quadrati) si può ottenere con il metodo della pseudoinversa.

3.3.2 Determinazione delle corrispondenze

Il calcolo della corrispondenza si basa sull’assunzione che le due scene non siano troppo diverse, ovvero che un particolare della scena appaia simile nelle due immagini. Basandosi sulla similarità un punto della prima immagine può essere messo in corrispondenza con molti punti della seconda immagine: è il problema delle false corrispondenze, che rende difficile l’identificazione della coppie coniugate.

Diversi sono i metodi per la risoluzione di questo problema; esistono già molti algoritmi che, attrverso l’analisi di piccole regioni in un immagine, cercano la regione più somigliante nell’altra immagine mediante una misura di correlazione tra i livelli di grigio, ne esistono invece altri che estraggono delle immagini caratteristiche di interesse (features) che siano possibilmente stabili rispetto al cambio di punto di vista. Il processo di accoppiamento (matching) viene applicato agli attributi associati alle features, come ad esempio: spigoli, segmenti rettilinei, segmenti curvi ecc. Questi tipi di algoritmi hanno però il difetto di essere poco precisi e di non essere molto efficaci per il rilievo di oggetti di forma libera che, generalmente non presentano caratteristiche da poter essere utilizzate come vincoli di similarità.

Figura 3.29. Nella parte sinistra dell’immagine è riportato uno schema esplicativo della tecnica di proiezione e acquisizione di immagini a frange bianche e nere, mentre nella parte destra è schematizzato il processo di codifica binaria delle immagini.

Nel nostro caso il problema è stato invece risolto con un approccio innovativo di tipo

(34)

proiezione e contemporanea acquisizione di una sequenza di linee definite come linee di passaggio da pixel scuri a pixel chiari di immagini a frange bianche e nere. Per consentire la generazione di un numero elevato di linee, è stato utilizzato un metodo di codifica basato sulla proiezione e simultanea acquisizione di n immagini a frange parallele con periodo progressivamente dimezzato (Figura 3.30).

Ciascun pixel nelle immagini proiettate e acquisite è caratterizzato da un’intensità luminosa chiara (bianco) o scura (nero) in base alla sua posizione nel piano immagine. Ad ogni pixel è assegnato un codice binario (0,1) a n bit, dove n è il numero di immagini proiettate (o acquisite) e il valore 0 o 1 è associato al livello di illuminazione (0 = nero, 1 = bianco). La procedura di codifica consente di generare

2n 1

l= − linee di passaggio da pixel scuri a pixel chiari, quindi ad esempio facendo uso di una sequenza di 10 immagini, siamo in grado di codificare al massimo

1023

l= linee ideali.

Figura 3.30. Esempio di proiezione di frange bianche e nere con periodo dimezzato progressivamente.

Tipicamente le zone di transizione tra pixel scuri e pixel chiari non presentano una variazione netta di livello di grigio, bensì un gradiente che si estende per una larghezza pari a qualche pixel (Figura 3.31-a), quindi, per migliorare il

(35)

processo di determinazione della posizione della linea ideale nel piano immagine della telecamera e garantire una precisione nel rilevamento dell’ordine del subpixel, oltre alla sequenza iniziale di dieci immagini sono proiettate anche le immagini ottenute invertendo l’intensità luminosa dei pixel (immagini negative) (Figura 3.31). Le immagini ottenute per differenza delle immagini positive e negative presentano zone di passaggio chiaro-scuro più definite e individuabili con un livello più elevato di precisione (Figura 3.31-b).

Figura 3.31. Esempio di proiezione di un immagine a frange positiva e della sua negativa, i due grafici rappresentano invece l’andamento dell’intensità luminosa, nel immagine acquisita (a), e l’andamento andamento dell’intensità luminosa nell’immagine differenza (b).

Il problema della corrispondenza risulta a questo punto solo in parte risolto, infatti, siamo ancora di fronte ad una indeterminazione dovuta al fatto che un punto appartenente ad una linea dell’immagine destra, avrà come coniugati tutti i punti dell’immagine sinistra appartenenti alla linea che presenta la stessa codifica binaria del punto in esame. Questo problema è stato brillantemente risolto proiettando un’ulteriore sequenza di immagini a frange bianche e nere (sempre positive e negative), con orientamento delle frange ortogonale alle precedenti.(Figura 3.32).

(36)

Figura 3.32. Esempio di proiezione di un sequenza di immagini con frange verticali e orizzontali.

Questo ulteriore passo ha portato quindi alla codifica di l linee orizzontali e l

linee verticali, dalla cui intersezione si identificano l l× punti univocamente codificati per entrambe le immagini.

Figura

Figura 3.1. Prototipo del digitalizzatore ottico.
Figura 3.2. Proiettando in sequenza le immagini a frange mostrate qui sopra, ed  acquisendo contemporaneamente le immagini della scena attraverso la telecamera,  ogni pixel del CCD apparirà illuminato o meno a seconda che esso cada in una frangia  bianco o
Figura 3.3. Raffigurazione del proiettore NEC utilizzato; anteriormente si può  notare la ghiera di messa a fuoco e quella di regolazione dello zoom
Figura 3.4. Specifica tecnica del proiettore NEC VT440
+7

Riferimenti

Documenti correlati

[r]

Lo scopo di questi fogli ` e di dare allo studente di corsi di Laurea della Facolt` a di Ingegneria l’idea di cosa voglia dire e di come si possa fare la classificazione delle coniche

Sui vettori delle coordinate di un vettore di R 2 rispetto alle basi di R 2... In particolare, si

Possiamo scegliere come coordinate libere le coordinate polari sul piano in cui si trova il punto P... Il punto scende fino a raggiungere il vertice

Confrontando i problemi posti in 3.8 e 3.9 e naturale chiedersi quale sia la differenza tra loro.. In 3.9, u è una generica seZ10ne di J'(E), e non necessariamente un r1-

[r]

Sul sito, di seguito a questo documento, trovi una scheda sulla simmetria centrale: prova a leggerla e a svolgere

E’ evidente che nota l’ascissa x si può ricavare la posizione del punto P e viceversa , quindi vi è corrispondenza biunivoca fra i numeri reali relativi ed i punti di una retta