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