• Non ci sono risultati.

Viene eseguita una calibrazione con un set di immagini virtuali, tramite Matlab. Il pattern utilizzato è una scacchiera con 5 caselle di dimensioni quadrate 1 mm x 1 mm. Sono state con- siderate fino ad un massimo di 6 differenti posizioni della scacchiera nel 3D. La procedura per questa calibrazione virtuale consiste:

• nell’imporre una posizione ed orientamento del biprisma T ,om ed al pattern nelle 6 generiche configurazioni X3D, X3D2, X3D3, X3D4, X3D5, X3D6 (matrici 3x36); • risolvere il problema di geometria proiettiva all’indietro ottenendo così i pixels del piano

immagine provenienti sia dal piano frontale sinistro del biprisma pgs, pgs2, pgs3, pgs4, pgs5, pgs6, che dal piano frontale destro pgd, pgd2, pgd3, pgd4, pgd5, pgd6 (matrici 2x36); • nel cancellare le informazioni sul posizionamento 3D sia del biprisma che del pattern; • ed infine utilizzare i codici della geometria proiettiva in avanti per riottenere i parametri

estrinseci del problema T0,om0, X3D0, X3D20, X3D30, X3D40, X3D50, X3D60, sfruttando il metodo dei minimi quadrati.

La funzione da minimizzare con il metodo dei minimi quadrati:

F = [X3D0; X3D20; X3D30; X3D40; X3D50; X3D60] − [pix; pix2; pix3; pix4; pix5; pix6] è una matrice (18)x(36) dove pix pix2 . . . pix6 sono i punti 3D ottenuti facendo intersecare il versore uscente pin2d di destra con il versore uscente di sinistra pin2s, nella proiezione in avanti. i=36; for n=1:i pgsi=pgs(:,n); [pi_ns2,b] = Biprisma2(pgsi,x(1:3,1),x(4:6,1)); pgdi=pgd(:,n); [pi_nd3,d] = Biprisma3(pgdi,x(1:3,1),x(4:6,1)); t=[pi_ns2 -pi_nd3]\(d-b); pix(:,n)=b+t(1)*pi_ns2; end

CAPITOLO 5. CALIBRAZIONE MODELLO CON BIPRISMA 49

Figura 5.6: Esempio di pixel ottenuti sul piano immagine partendo da una scacchiera posta di fronte al biprisma

5.4

Accuratezza

Una volta terminata con successo la fase di validazione del modello si passa all’analisi critica dei risultati, la valutazione della loro accuratezza. Sono state condotte prove numeriche per la calibrazione, per un differente numero e posizione del pattern e per differenti posizioni del biprisma. Nella seguente tabella viene riportato l’ Errore Assoluto dato dalla differenza

Err = [T ; om; X3D; X3D2; X3D3; X3D4; X3D5; X3D6]−

[T0; om0; X3D0; X3D20; X3D30; X3D40; X3D50; X3D60] (5.1)

Tabella 5.1

Numero di posizioni del pattern Max valore errore posizionamento Max valore errore orientazione

1 >10 mm 0,5 rad

3 <0,1 mm ∼ 0,01 rad

5 <0,1 mm ∼ 0,01 rad

6 0,3 mm ∼ 0,01 rad

Dalla Tabella 5.1 si osserva come nella determinazione dei parametri estrinseci il risultato con un solo posizionamento del pattern non è corretto. Aumentando i posizionamenti del pattern

CAPITOLO 5. CALIBRAZIONE MODELLO CON BIPRISMA 50

nella singola calibrazione, mantenendo fisso il biprisma, la soluzione ottenuta è molto vicina a quella esatta, in tutti i casi deve però essere imposto un Limite Inferiore e Limite Superiore dove cercarla.

5.4.1 Sensibilità

Nei precedenti capitoli abbiamo visto come si è giunti alla costruzione di un modello matemati- co. Successivamente, abbiamo visto come affrontare il problema della calibrazione costituito da 42 variabili ( 6 x 7: parametri estrinseci x posizionamento del biprisma e del pattern in 6 con- figurazioni). Si è constatato che la risoluzione è molto onerosa specialmente riguardo al tempo di elaborazione, ma ancora non si è verificato qualora sopraggiungano delle cause che varino leggermente i dati iniziali. E’ stata condotta quindi un’ analisi di sensibilità, scavalcando l’enorme mole di calcoli, in modo da evidenziare il legame diretto tra la soluzione finale ed i dati iniziali stessi. L’analisi di sensibilità condotta quindi serve a calcolare con quale entità di perturbazioni dei dati iniziali (pixel nel piano immagine) si ripercuotono sulla soluzione ottima finale (posizione ed orientazione del biprisma e del pattern). In ogni caso la soluzione pertur- bata continuerà ad essere ottima. Il caso preso in esame è una calibrazione con il pattern in 6 differenti posizioni.

Perturbazione [pixels] Max valore errore posizionamento Max valore errore orientazione

0.025 <0,1 mm < 0,001 rad 0.05 <0,1 mm < 0,001 rad 0.1 <0,1 mm < 0,001 rad 0.2 <0,1 mm ∼ 0,002 rad 0.5 <0,1 mm ∼ 0,002 rad 1 0,588 mm 0,052 rad 2 1 mm 0,05 rad 5 3,034 mm 0,122 rad

Dall’analisi risulta che per ottenere una calibrazione corretta i valori del piano immagine possono essere perturbati anche di 2 pixels rispetto al valore esatto.

Viene riportato un confronto grafico tra i punti 3D ottenuti con il processo di calibrazione ed il valore esatto:

Cerchi verdi indicano il valore esatto mentre i punti rossi sono i valori ottenuti con la calibrazione.

Perturbazione [pixels] Massima differenza tra posizione esatta e posizione dei punti calibrati

0.05 0,0014 mm

0.2 0,038 mm

1 0,26 mm

2 0,496 mm

CAPITOLO 5. CALIBRAZIONE MODELLO CON BIPRISMA 51

Figura 5.10: Errore lungo y Confrontando i dati ottenuti

dalla calibrazione si evince che in questo modello gli errori commessi nel calcolare gli angoli di orientazione

sono inferiori, in termine di Errore Relativo, rispetto agli errori di posizionamento. In particolar

modo la direzione y nel sistema di riferimento del biprisma è il parametro più sensibile all’errore. Deve essere quindi sfruttato un limite superiore ed inferiore

nel metodo dei minimi quadrati, per mantenere la calibrazione entro valori accettabili. Nella figura qui

accanto viene mostrato con la freccia rossa il vettore normalizzato del’errore di posizionamento → a meno di piccolissimi angoli segue la direzione y del biprisma.

CAPITOLO 5. CALIBRAZIONE MODELLO CON BIPRISMA 52

(a) Esempio punti proiettati in avanti

(b) Pattern proiettati e biprisma (1)

(c) Pattern proiettati e biprisma (2)

CAPITOLO 5. CALIBRAZIONE MODELLO CON BIPRISMA 53

(a) Errore con perturbazione di 0.05 pixels

(b) Errore con perturbazione di 0.2 pixels

(c) Errore con perturbazione di 1 pixels

(d) Errore con perturbazione di 2 pixels

CAPITOLO 5. CALIBRAZIONE MODELLO CON BIPRISMA 54

(a) Con perturbazione di 1 pixel (b) Con perturbazione di 5 pixel

Capitolo 6

Conclusioni

Si è visto quindi che è possibile creare un sistema composto di una sola telecamera ed il biprisma per ottenere la percezione tridimensionale, cioè l’informazione di profondità. Il modello matematico, sviluppato per correggere le distorsioni dovute alla rifrazione del biprisma, è un modello valido per diverse posizioni, orientazioni e geometrie del biprisma stesso. La ricostruzione di una scena 3D sfruttando proiezioni in avanti (problema forward projection) e proiezioni all’indietro (problema backward projection), ammette una soluzione unica. L’ottimizzazione della calibrazione, con utilizzo del metodo dei minimi quadrati invece

necessita di vincoli superiori ed inferiori (upperbound e lowerbound) per essere ottenuta. Inoltre per avere la soluzione quanto più vicina a quella effettiva sono necessari almeno 3

posizionamenti del pattern: il numero dei vincoli imposti al problema con un solo posizionamento non sono sufficienti. Verificata la bontà della calibrazione è stata eseguita

un’analisi di sensibilità per evidenziare il legame diretto tra la soluzione finale ed i dati iniziali, qualora questi vengano perturbati. La calibrazione è risulta essere valida anche per variazioni dei punti sul piano immagine dell’ordine di 2 pixels. Oltre questo valore soprattutto

gli errori di posizionamento del biprisma sono risultati eccessivi.

Capitolo 7

Sviluppi futuri

Per la calibrazione la criticità è stata dimostrata essere l’ottimizzazione, per poter continuare lo studio di questo modello è necessario ripensare all’algoritmo risolutore. Obbiettivo da ricercarsi è l’ottenere la soluzione esatta senza dover imporre dei limiti: nella pratica può

diventare complicato dover sempre indicare un range dafinito da un limite superiore ed inferiore. Sfruttando sempre il modello matematico descitto può essere eseguita anche una ottimizzazione dei parametri del biprisma: angolo compreso tra i due piani frontali, spessore; facendoli variare a seconda della geometria del corpo 3D che si intende acquisire ed analizzare.

Tra gli sviluppi futuri ci sono sicuramente anche un’ analisi dettagliata sulla risoluzione che è possibile raggiungere al variare sia della posizione del biprisma rispetto alla telecamera, che

dell’oggetto 3D da acquisire.

Capitolo 8

Appendice

8.1

Legge Snell

La legge di Snell descrive le modalità di rifrazione di un raggio luminoso nella transizione tra due mezzi considerati isotropi con indice di rifrazione diverso. Nel caso preso in esame: • coefficiente rifrazione aria cn = 1;

• coefficiente rifrazione plexiglass cn = 1.483.

La figura mostra i due mezzi trasmissivi con indice di rifrazione n1 = 1 (a sinistra) e n2 = 1.483 (a destra) in contatto tra loro attraverso una superficie, che viene chiamata interfaccia (linea verticale in figura). Nel caso n2 > n1, la luce ha una velocità di fase più

bassa nel secondo mezzo.

Figura 8.1: Fenomeno rifrazione

Il raggio luminoso P O proveniente dal mezzo di sinistra colpisce l’interfaccia nel punto

O, a partire da tale punto O tracciamo una retta perpendicolare all’interfaccia

stessa, che viene chiamata normale all’interfaccia (linea orizzontale in figura). L’angolo tra la normale e il raggio luminoso

P O viene chiamato angolo d’incidenza, θ1. Il raggio attraversa l’interfaccia e prosegue nel mezzo di destra, indicato come OQ. L’angolo che tale raggio (rifratto) forma con la normale si chiama angolo di rifrazione, θ2.

La legge di Snell

fornisce la relazione tra gli angoli θ1 e θ2: n1 sin θ1= n2 sin θ2

Si noti che nel caso θ1 = 0◦ (ovvero il raggio risulta perpendicolare all’interfaccia) la soluzione è θ2= 0◦ per qualunque valore di n1 e n2.

CAPITOLO 8. APPENDICE 58

In altri termini, un raggio che entra in un mezzo in modo perpendicolare alla sua superficie non viene mai deviato.

Quanto detto sopra vale anche nel caso di un raggio luminoso che passa da un mezzo più denso a uno meno denso; la simmetria della legge di Snell mostra che gli stessi percorsi

luminosi sono validi anche nella direzione opposta.

Una regola di carattere qualitativo per determinare la direzione della rifrazione è che il raggio luminoso è sempre più vicino alla normale dal lato del mezzo più denso.

CAPITOLO 8. APPENDICE 59

Figura 8.2: Rotazione asse-angolo

8.2

Rotazione Asse-Angolo

Una rotazione è una trasformazione del piano o dello spazio euclideo che sposta gli oggetti in modo rigido e che lascia fisso almeno un punto, nel caso del piano, o una retta, nel caso dello spazio. I punti che restano fissi nella trasformazione formano più in generale un sottospazio:

quando questo insieme è un punto o una retta, si chiama rispettivamente il centro e l’asse della rotazione.

Più precisamente, una rotazione è una isometria di uno spazio euclideo che ne preserva l’orientazione, ed è descritta da una matrice ortogonale speciale.

Qualunque sia il numero delle dimensioni dello spazio di rotazione, gli elementi della rotazione sono:

• il verso (orario-antiorario);

• l’ampiezza dell’angolo di rotazione;

• il centro di rotazione (il punto attorno a cui avviene il movimento rotatorio).

Una rappresentazione minima dell’orientamento può ottenersi ricorrendo a 4 parametri (più 1 eq.ne di vincolo) che esprimono la rotazione attorno ad un asse dello spazio di un certo angolo. Tale rappresentazione può risultare vantaggiosa nel problema della generazione di traiettorie per l’orientamento dell’organo terminale di un manipolatore. Sia ω il versore dell’asse attorno

a cui si ruota e θ l’angolo di cui si ruota. La matrice di rotazione attorno ad un asse sso può essere ottenuta per combinazioni elementari come segue. Siano (α;β;γ) gli angoli

formati dalle proiezioni di ω con gli assi cartesiani. Possiamo scrivere:

Rω(θ) = Rz(α) Ry(γ) Rz(θ) Ry(−γ) Rz(−α)

La soluzione precedente si basa sull’idea di ruotare il versore ω dell’angolo necessario a sovrapporlo sull’asse z, effettuare la rotazione dell’angolo θ che a questo punto è facilmente

descrivibile in termini di rotazioni elementari, ed infine riportare il versore nella direzione iniziale. Dalle componenti del versore ω si possono estrarre le funzioni trascendenti necessarie

CAPITOLO 8. APPENDICE 60

Figura 8.3: Costruzione geometrica

al calcolo della matrice di rotazione, in modo da eliminare la dipendenza esplicita da α e γ. Ponendo cθ = cos(θ), sθ = sin(θ) e vθ = (1 − cθ), la matrice di rotazione corrispondente ad

una descrizione asse/angolo risulta dunque:

Rω(θ) =   ω12vθ+ cθ ω1ω2vθ− ω3 sθ ω1ω3vθω2 sθ ω1ω2vθ+ ω3 ω22vθ+ cθ ω2ω3vθ− ω1 ω1ω3vθω2 sθ ω2ω3vθ+ ω1 ω32vθ+ cθ  

Per tale matrice vale la proprietà R−ω(−θ) = Rω(θ), che mostra come tale rappresentazione non sia univoca poiché una rotazione di −θ intorno a −ω produce gli stessi effetti di una

rotazione di θ intorno a ω.

8.2.1 Costruzione geometrica

La rotazione che porta il vettore p = OP sul vettore ¯p = ¯OP può essere costruita geometricamente nel modo seguente:

¯

CAPITOLO 8. APPENDICE 61

Documenti correlati