• Non ci sono risultati.

Calibrazione di un sistema di stereovisione basato su singola telecamera e biprisma

N/A
N/A
Protected

Academic year: 2021

Condividi "Calibrazione di un sistema di stereovisione basato su singola telecamera e biprisma"

Copied!
99
0
0

Testo completo

(1)

Università di Pisa

Scuola di Ingegneria

Corso di Laurea Magistrale in Ingegneria Meccanica

Tesi di Laurea

Calibrazione di un sistema di stereovisione basato su singola telecamera e biprisma

Relatori:

Ing. Paolo Neri

Prof. Alessandro Paoli

Prof. Armando V. Razionale

Laureando Emanuele Merli

(2)

Indice

Prefazione iv Riassunto analitico v Abstract vi 1 Industria 4.0 1 1.1 Introduzione . . . 1 1.2 Tecnologie abilitanti . . . 4 1.3 Reverse Engineering . . . 6

1.4 Sistemi ottici passivi . . . 9

2 Visione Stereo 10 2.1 Introduzione . . . 10

2.2 Modello computazionale . . . 12

2.3 Modello Pin-hole Fotocamera . . . 13

2.4 Distorsione . . . 16

3 Calibrazione della Videocamera 19 3.1 Introduzione . . . 19

3.2 Modello realistico . . . 21

3.2.1 Pixellizzazione . . . 22

3.2.2 Parametri estrinseci . . . 24

3.3 Valutazione PPM ed Acquisizione immagini . . . 25

4 Geometria Proiettiva 27 4.1 Forward Projection . . . 27 4.1.1 Schema semplificativo . . . 27 4.1.2 Identificazione piano . . . 29 4.1.3 Risoluzione problema . . . 30 4.2 Backward Projection . . . 36 4.2.1 Schema semplificativo . . . 36 4.2.2 Risoluzione problema . . . 37 i

(3)

INDICE ii

5 Calibrazione Modello con Biprisma 43

5.1 Biprisma . . . 43

5.2 Prima Calibrazione . . . 45

5.2.1 Unicità soluzione . . . 46

5.2.2 Verifica ottimizzazione numerica . . . 47

5.3 Seconda Calibrazione . . . 48 5.4 Accuratezza . . . 49 5.4.1 Sensibilità . . . 50 6 Conclusioni 55 7 Sviluppi futuri 56 8 Appendice 57 8.1 Legge Snell . . . 57 8.2 Rotazione Asse-Angolo . . . 59 8.2.1 Costruzione geometrica . . . 60

8.3 Calcolo simbolico Backward Projection 2D . . . 61

(4)

Devo tutto a mio nonno che mi ha trasmesso la passione per l’Ingegneria. Ringrazio tutti i miei compagni di sventure che mi hanno sopportato, supportato in tutti questi anni. Senza la loro reale presenza giornaliera nel bene e nel male sono sicuro che non sarei riuscito nell’impresa di laurearmi. Grazie Marco Antonio Renato Jonas Daniele Chiara Sara Marcelo Giuseppe

(5)

Prefazione

In questa tesi ho voluto mettermi alla prova su di un argomento attuale ed innovativo quale è Industria 4.0; inoltre ho voluto acquisire nozioni e migliorare le capacità informatiche, di cui mi sono state date le basi dal mio percorso di studi. Durante l’elaborazione della tesi è stato approfondito in particolare il linguaggio di programmazione Matlab, nello specifico calcolo vettoriale, matriciale e l’utilizzo di funzioni di ottimizzazione, che sfruttano ad esempio il metodo dei minimi quadrati. Con il programma Matlab sono state acquisite, analizzate immagini e tramite una rielaborazione dati queste hanno permesso di convalidare il modello sviluppato. Per questo documento è stata condotta una ampia ricerca tra articoli e tesi di altre Università, ma l’approccio fortemente innovativo (quello di non sfruttare ipotesi semplificative nella geometria proiettiva) ha fatto si che sia stato sviluppato un nuovo metodo di risoluzione rispetto a quanto osservato fino adesso. (Nuovo metodo che non è stato esente da errori e rielaborazioni varie durante gran parte del periodo dedicato). La soluzione così ottenuta è più generale e meglio si adatta al problema di acquisizione anche variando forma e posizione del Biprisma. Tra gli sviluppi futuri ci sono sicuramente una analisi dettagliata sulla risoluzione che è possibile raggiungere e dell’errore ottenuto, al variare sia della posizione e rotazione del biprisma rispetto alla telecamera, che dell’oggetto 3D da acquisire.

(6)

Riassunto analitico

Questa tesi è l’inizio di un percorso che prende in esame un nuovo metodo di acquisizione delle immagini attraverso l’utilizzo di una singola videocamera ed un biprisma trasparente di ple-xiglass. Lo studio è finalizzato alla correzione delle immagini acquisite tramite elaborazione di un modello matematico. Correzione necessaria per compensare il fenomeno della rifrazione all’interno del biprisma. Il Primo Capitolo dà una panoramica generale sul significato di In-dustria 4.0, con particolare attenzione al processo del Reverse Engineering per poter acquisire e successivamente rielaborare le immagini dal 3D. Il Secondo Capitolo esplora i principi ed il funzionamento della visione stereoscopica, con due videocamere, validi anche per la singola videocamera più l’utilizzo di un biprisma. Nel Terzo Capitolo dopo l’introduzione dei modelli algebrici utilizzati per la calibrazione della videocamera, vengono prese in esame le varie me-todologie per poter correttamente acquisire le immagini. Lo studio così prosegue nel Quarto Capitolo con la spiegazione di quale sia il modello matematico per la ricostruzione di una scena 3D con il biprisma. Si conclude il percorso con il Quinto Capitolo, dove viene effettuata ed analizzata la calibrazione del nuovo modello. Per ultima l’Appendice, dove sono stati riportati tutti i codici Matlab prodotti per la tesi.

(7)

Abstract

This thesis is the beginning of a course that examines a new method of image acquisition through the use of a single camera and a biprisma. The study is aimed to the correction of image acquired through the elaboration of a mathematical model. In the first chapter a general overview is given to let know what industry 4.0 means, with particular attention to the process of the Reverse Engineering in order to acquire an later rework the images from 3D. In the second chapter we take into consideration the operation of a stereoscopic vision and how, from those principles, is possible to replace the normal vision binocular and the use of a biprisma. In the third chapter, after the introduction of analytical models used to the calibration of the camera, are examinated the various methodology to acquire images in the correct way. Continuing the study, in the fourth chapter it’s explained what is the mathematical method to rebuild a 3D scene with biprisma. Lastly in the fifth chapter it’s carried out and analysed the calibration of the new method. It all end with an Appendix, where we can find all the codes Matlab used in the thesis.

(8)

Capitolo 1

Industria 4.0

1.1

Introduzione

Industria 4.0, Economia digitale, Fabbrica intelligente e Iindustrial Internet of Things sono tutte modalità per descrivere un processo in corso, ovvero la trasformazione delle modalità di produzione, la prestazione di servizi e non da meno l’organizzazione della rete commerciale. Viene chiamata strategia, paradigma ma senza dubbio si può affermare sia una rivoluzione annunciata e tutt’ora in corso di progettazione. Industria 4.0 non riguarda soltanto lo sviluppo di nuove tecnologie, quanto l’applicazione di tecnologie esistenti che operino congiuntamente. Quello che viene definito un “mosaico di tecnologie” da comporre. Fanno riferimento in modo particolare al paradigma fabbrica intelligente le tecnologie legate a:

• ICT (Information and Communications Technology) per l’industria; • automazione dei processi e della produzione;

• meccatronica e robotica;

• produzione e impiego di materiali innovativi.

Tra i termini utilizzati per indicare questa rivoluzione industriale in atto, è presente il termine Smart Factory, usato sia da operatori industriali sia da ricercatori universitari.

Il concetto di Smart Factory nasce in Germania nel 2005 per sostenere l’idea di quanto sia fondamentale il ruolo dei paradigmi di fabbricazione convenzionali basati sulle lean technologies. La tecnologia Lean è:

• in scala ridotta;

• semplice decentralizzata, distribuita; • ad alta intensità di manodopera; • efficiente, controllata localmente.

(9)

CAPITOLO 1. INDUSTRIA 4.0 2

Una Smart Factory è una soluzione per il manufacturing ed una risorsa che fornisce e fa-vorisce processi produttivi flessibili e adattivi, in grado di risolvere problemi derivanti da un impianto di produzione dinamico e in rapida evoluzione, dovuto principalmente alle condizioni al contorno in un mercato caratterizzato da crescente complessità. Lo Smart Manufacturing punta in modo particolare su nuovi sensori, sistemi di servizio e metodologie di controllo da aggiungere ai macchinari esistenti per migliorarne le prestazioni ed estenderne la vita utile. Esso prevede inoltre che l’automazione della produzione si evolva con interoperabilità tra en-tità intelligenti. Le macchine di produzione diventano in grado di adattarsi e reagire in modo flessibile a qualsiasi tipo di ingresso digitale generato da un evento. Lo Smart Manufacturing è destinato a diventare il paradigma della manifattura del futuro e si basa sull’idea che, grazie ad alcune tecnologie digitali innovative, Smart Manufacturing Technologies le imprese mani-fatturiere siano capaci di maggior inter-connessione e cooperazione tra le proprie risorse (i.e., asset fisici, persone e informazioni, sia interne alla fabbrica sia distribuite lungo tutta la value chain). Questo cambierà in modo drastico la loro efficienza e la loro competitività.

Figura 1.1: Elementi Smart Manufacturing

Lo Smart Manufacturing consente quindi di far lavorare in modo più intelligente e con-nesso le risorse, portando velocità e flessibili-tà: elementi di cui le imprese manifatturiere hanno bisogno per recuperare competitività su un mercato odierno e futuro costantemente in crescita.

Factories of the Future è il nome scelto nel 2009 dal programma dell’UE come parte del piano di ripresa economica dell’Europa. Di seguito la tabella di marcia delle Factories of the Future con suoi tre stadi evolutivi:

• Smart Factory; • Digital Factory; • Virtual Factory.

Il termine Industry 4.0 che richiama in-dubbiamente la cosiddetta quarta rivoluzione industriale viene ufficialmente utilizzato per la prima volta nel 2011 alla Fiera di Hannover. Il conio di questo nome avvenne nell’ambito di un progetto facente parte della High-Tech Strategy tedesca, per promuovere l’informatiz-zazione della produzione. E’ il nome della strategia Tedesca alla realizl’informatiz-zazione del paradigma della Fabbrica Intelligente. Industria 4.0 significa essenzialmente integrazione tecnica del CPS (cyber-physical system) nella produzione e nella logistica, così come l’applicazione dell’Internet

(10)

CAPITOLO 1. INDUSTRIA 4.0 3

Figura 1.2: 15 componenti della Smart Factory of the future

delle Cose e dei Servizi nei processi industriali, incluse le conseguenze che derivano dalla crea-zione di valore, modelli di business e, a valle, per la fornitura di servizi e organizzacrea-zione del lavoro. Nella Strategia Industria 4.0:

• il ruolo della tecnologia ICT si amplierà rendendo possibile la creazione di una copia virtuale del mondo fisico in cui, attraverso Internet i sistemi informatici comunichino collaborando con gli esseri umani sia in tempo reale che da remoto;

• si avrà il collegamento via rete in tempo reale di esseri umani, macchine, prodotti ed oggetti per la gestione intelligente;

• con le tecnologie IT si avrà la fusione con le tecnologie di produzione. Oggetti intelligenti, secondo il paradigma cyber-physical system comunicheranno attraverso Internet;

• si avrà una connessione orizzontale del processo produttivo con un cambio di paradig-ma dalla produzione centralizzata verso una produzione decentralizzata. La piramide dell’automazione viene completamente capovolta: i macchinari non processeranno più semplicemente il prodotto, ma il prodotto comunicherà con la macchina per dirle cosa fare esattamente. E’ il prodotto che controllerà il processo di fabbricazione, una vera rivoluzione.

(11)

CAPITOLO 1. INDUSTRIA 4.0 4

Figura 1.3: Rappresentazione schematica del concetto di Industry 4.0

1.2

Tecnologie abilitanti

Tra le numerose tecnologie abilitanti presenti nell’Industria 4.0, in questa tesi sono state appro-fondite le Tecnologies Advanced Automation.

Sono sistemi di produzione automatizzati, arricchiti di soluzioni caratterizzate da elevata capacità cognitiva, adattamento al contesto, autoapprendimento e riconfigurabilità. I tratti distintivi della Advanced Automation sono:

• la capacità di interazione con l’ambiente;

• l’auto-apprendimento e la guida automatica, passando dai “tradizionali” sistemi AGV e le loro evoluzioni ai nuovi dispositivi come i droni;

• l’utilizzo di tecniche di visione pattern recognition, ad esempio, sistemi di manipolazione e stazioni di controllo qualità;

• la capacità di interagire con gli operatori, grazie a robot progettati ad operare in mezzo e a fianco di operatori, piuttosto che rigidamente separati da questi.

L’aspetto che verrà successivamente sviluppato sarà la Pattern Recognition, scienza che si occupa delle metodologie per estrarre informazioni da dati interpretandone o riconoscendone la struttura ( J.Bezdek). Non avrebbe tuttavia alcun senso realizzare sistemi conformi ai cano-ni di Industry 4.0, basati su dispositivi intelligenti, in grado di comucano-nicare fra loro, lasciando nell’architettura dei punti deboli ben nascosti: celati indistintamente sottoforma di strumenti d’acquisizione e misura mal calibrati. Ciò non comporterebbe altro che la produzione di dati

(12)

CAPITOLO 1. INDUSTRIA 4.0 5

(13)

CAPITOLO 1. INDUSTRIA 4.0 6

poco affidabili se non addirittura errati. L’evoluzione della strumentazione, grazie alla dispo-nibilità di nuovi componenti elettronici e di un software sempre più sofisticato ma semplice da utilizzare, richiede competenze multidisciplinari e nuovi approcci alle operazioni di taratura e calibrazione. Offre nuove opportunità di efficienza e la calibrazione si trasforma quindi da costo a investimento. L’automazione dei sistemi produttivi passa necessariamente dall’adozione di sistemi software di supporto, integrati. Con il termine computer algebra system ed il suo acronimo CAS, s’intende un sistema software in grado di facilitare l’esecuzione di elaborazioni simboliche molto utili per poter così elaborare le immagini, acquisite grazie ad una fotocamera. Elaborazione di tipo vettoriale e matriciale. Il computer algebra system utilizzato è MATLAB R.

1.3

Reverse Engineering

Per reverse engineering o nella sua versione italiana, ingegneria inversa si intende il processo di estrazione di informazioni progettuali o più in generale di conoscenze ingegneristiche da un qualsiasi prodotto manufatto. Permette inoltre di acquisire un modello digitalizzato a partire da un modello finito.

Il processo è comunemente basato sulle attività di disassemblaggio e analisi. È interessante sottolineare come il cuore del reverse engineering sia proprio la fase di analisi deduttiva nella quale si cerca di dedurre dal prodotto soluzioni progettuali, geometrie 3D ma anche i processi di produzione senza ulteriori informazioni se non il prodotto stesso. Tra le tante applicazioni quelle principali sono:

• la competitor analysis;

• la carenza di documentazione interna; • scopi didattico-accademici.

Il Reverse Engineering è un insieme di operazioni che permettono di ricostruire la geometria di un oggetto 3D a partire dalla geometria e dalle textures visibili in una scena. Il modello, ottenuto a partire da un insieme di misure prodotte da sensori, inizialmente rappresentato da una nuvola di punti P(x,y,z), viene modificato e completato, per essere usato in un processo di progettazione digitale. Nel caso preso in esame da questa tesi il reverse engineering può essere molto utile per il controllo qualità nella grande produzione. Sono sempre più, infatti, le aziende che lavorano nel settore della produzione di massa, facenti ricorso a sistemi di acquisizione 3D per avere un riscontro qualitativo tempestivo sia nel controllo campione che nell’identificazione di un problema. Il processo di Reverse Engineering comprende due fasi:

• rilievo della forma;

(14)

CAPITOLO 1. INDUSTRIA 4.0 7

Figura 1.5: Passaggi Reverse Engineering

Figura 1.6: Acquisizione dati

Acquisizione di una superficie matemati-camente corretta nei casi tipici di:

• modelli fisici (reali o di concept) per ot-tenere una matematica di partenza per ulteriori analisi progettuale;

• ri-progettazione di parti meccaniche in assenza del modello CAD;

• controllo dimensionale e di qualità per pezzi già in produzione;

• verifica di parti soggette ad usura eccessiva e loro modifica;

• aggiornamento rapido di modelli CAD in seguito ai cambiamenti avvenuti in sede di produzione;

• Replica di prototipi fisici;

• Definizione di un modello utilizzabile come mezzo di simulazione.

Gli aspetti chiave sono:

• conoscere vantaggi e limiti delle diverse tecnologie per poter scegliere la tecnologia corretta per il problema in esame;

• valutare la qualità dei sistemi in funzione dei parametri caratterizzanti il processo (quali risoluzione, incertezza di misura e accuratezza) con attenzione verso le caratteristiche dei materiali e delle features della superficie dell’oggetto;

(15)

CAPITOLO 1. INDUSTRIA 4.0 8

Figura 1.7: Classificazione sistemi di acquisizione

• controllo dimensionale e di qualità per pezzi già in produzione;

• Definire procedure “user-friendly ” tali da semplificare le operazioni di acquisizione, ga-rantendo la qualità dimensionale dei dati:

– la risoluzione spaziale di acquisizione (es. la distanza media tra 2 punti, normalmente nell’ordine di 0,1-0,5 mm);

– l’accuratezza dei moderni sistemi di scansione ( 50 µm e oltre per gli scanner a triangolazione);

– la velocità di campionamento (> 300K al secondo sono considerati parametri adeguati per la maggior parte delle applicazioni).

Acquisizione dati di forme tridimensionali si effettua mediante dispositivi composti da: • un sensore ottico o meccanico;

• un sistema di movimentazione;

• un software per la conversione dei dati acquisiti in un insieme di punti più o meno ordinato. Qualunque sia la tecnologia il prodotto dell’acquisizione sarà una nuvola di punti. I sistemi per l’acquisizione dati possono essere schematizzati come riportato in figura 1.7.

(16)

CAPITOLO 1. INDUSTRIA 4.0 9

Figura 1.8: Classificazione sistemi ottici

Metodi a contatto Metodi ottici VANTAGGI Elevata accuratezza e possibilità

di definire e misurare riferimenti specifici

Senza contatto, sicuro, solitamente economico, di solito veloce

SVANTAGGI Risoluzione, lentezza, volume limi-tato, costoso, da utilizzare solo con materiali rigidi

Sensibile alla trasparenza (vetro, Materiali plastici), confuso dalla specularità e auto-riflessioni, texture

1.4

Sistemi ottici passivi

Passive vision o a luce non strutturata. Forma 3D generata sfruttando l’illuminazione naturale presente nell’ambiente.

(17)

Capitolo 2

Visione Stereo

2.1

Introduzione

La percezione tridimensionale che l’uomo ha dell’ambiente che lo circonda deriva dalla capacità del nostro cervello di fondere le immagini retiniche provenienti dagli occhi e di percepirle come un’unica immagine. Infatti, poiché gli occhi sono posti ad una distanza di circa 65 mm l’uno dall’altro, essi osservano lo stesso oggetto sotto due angolazioni leggermente diverse fornendo al cervello due immagini retiniche che, entro certi limiti, si formano su punti della retina legger-mente differenti. Il cervello poi fonde queste immagini e sfrutta proprio le differenze tra di esse per ricavare le informazioni relative alla conformazione tridimensionale della scena. È proprio quest’ultimo processo, definito Stereopsi, che ci consente di assegnare un senso di maggiore o minore profondità agli oggetti dello spazio visivo, donandoci la percezione tridimensionale dello spazio. [7] Viene così realizzata la Visione Stereoscopica che ci consente di percepire l’oggetto come “unico” e “solido”.

Figura 2.1: Un sistema di visione stereoscopica semplificato

In senso più generale la Stereovisione è l’acquisizione ed elaborazione dell’immagine sfruttando due singoli stumenti ottici, cono-scendo la distanza e l’orientazione tra di lo-ro. Osservando, separatamente ma contem-poraneamente, sotto un angolo corrisponden-te a quello di ripresa, la fotografia di sinistra e quella di destra. La stereopsi computazionale è il processo che consente di ottenere l’infor-mazione di profondità da una coppia di imma-gini provenienti da due telecamere che inqua-drano una scena. Essa costituisce una bran-ca articolata e complessa della visione com-putazionale all’interno della quale si possono individuare in generale due sottoproblemi:

• il calcolo delle corrispondenze;

(18)

CAPITOLO 2. VISIONE STEREO 11

• la ricostruzione della struttura 3D.

Il primo consiste nel riconoscere quali punti di ciascuna immagine sono la proiezione di uno stesso punto della scena. I punti così individuati sono detti coniugati oppure omologhi. L’in-dividuazione di tali punti risulta notevolmente agevolata se le immagini in esame differiscono in maniera lieve tra loro, in modo che uno stesso particolare della scena risulti simile in en-trambe le immagini. A tale scopo assume quindi una grande importanza il posizionamento e l’orientazione delle telecamere e sarà necessario introdurre alcuni vincoli per ridurre al massimo i falsi accoppiamenti, come ad esempio il vincolo epipolare, secondo cui il corrispondente di un punto in un’immagine, può trovarsi solo su una retta (retta epipolare) nell’altra immagine. Questo vincolo rende il problema del calcolo delle corrispondenze unidimensionale piuttosto che bidimensionale, comportando ovviamente notevoli vantaggi in termini di semplicità e rapidità d’esecuzione. Una volta note le coppie di punti coniugati delle due immagini e noti i parametri delle telecamere (posizionamento, orientazione e caratteristiche interne del sensore), è possibile ricostruire la posizione nella scena dei punti proiettati sulle due immagini (ricostruzione della struttura 3D). In realtà, tale problema non risulta di difficile soluzione se i dati di partenza sono corretti, e per questo motivo assumerà una considerevole importanza il problema della calibrazione delle telecamere ed il calcolo dei relativi parametri intrinseci.

La stereovisione si riferisce al problema di determinare la struttura tridimensionale della scena da due o più stereo immagini prese da punti di vista distinti. La visione stereo altro non è che una caratteristica del sistema visivo, propria di alcune specie animali e dell’essere umano. Utilizzando una singola telecamera con parametri intrinseci noti e fissi, non è possibile ottenere la posizione tridimensionale di un punto nello spazio 3D. Di conseguenza, al fine di ottenere una percezione 3D paragonabile al sistema di visione umano, lo stesso punto di scena deve essere visto da due o più punti di vista diversi.

VANTAGGI Metodo passivo Hardware economico (2 telecamere) Intuitivo (simile alla visione umana)

SVANTAGGI Acquisizione punti validi solo in corrispondenza delle feature Dati sparsi e rumorosi

Per ricostruire gli aspetti tridimensionali dell’ambiente il sistema visivo fa uso di una serie di indizi di profondità e informazioni contenute nell’ambiente circostante. Tali indizi si combinano per fornire una rappresentazione coerente dello spazio. Avere due sistemi ottici comporta molti vantaggi:

• un campo visivo più esteso;

• un sistema ridondante che ne permette la visione;

(19)

CAPITOLO 2. VISIONE STEREO 12

Figura 2.2: Disparità binoculare

Uno dei modi per ottenere indici di pro-fondità dalle informazioni provenienti dai due sistemi ottici è quello di considerare la geo-metria delle piccole differenze nelle immagini acquisite singolarmente disparità binocula-ri, cioè differenza fra le immagini retiniche dei due occhi della stessa immagine visiva, pro-dotte da stimoli visivi ad una certa distan-za dall’osservatore. Ciò permette la visione della profondità tramite stereopsi,una vivida impressione della tridimensionalità del mondo che non è acquisibile attraverso la visione mo-noculare. Immagini acquisite dalle due sor-genti non sono esattamente le stesse. Direzione e grandezza della disparità ci dicono quali punti sono vicini e quali lontani. La disparità binoculare emerge quando un dato punto nell’ambiente esterno proietta su punti differenti nel piano immagine.

(a) Immagine sinistra (b) Immagine destra

Figura 2.3: Corrispondenza nella disparità binoculare

Nell’immagine 2.3 si vuole mettere in evidenza la disparità tra l’immagine di sinistra e l’im-magine di destra, dove in entrambi i casi sono stati evidenziati gli stessi punti della scacchiera: si nota come vari la distanza dei punti rispetto al centro immagine, zona di massima accuratezza visiva. Direzione e grandezza della disparità ci dicono quali punti siano vicini e quali lontani.

2.2

Modello computazionale

Assumendo le seguenti ipotesi:

• le due camere hanno i loro assi ottici paralleli e separati da una distanza d detta Baseline; • i fuochi F1 ed F2 alla stessa altezza e stessa lunghezza focale f tra i due obbiettivi;

(20)

CAPITOLO 2. VISIONE STEREO 13

• l’asse x del nostro sistema di riferimento coincidente alla Baseline.

un qualsiasi punto nell’immagine sinistra, questo avrà la stessa ordinata nella corrispondente immagine destra.

Figura 2.4: Schema semplificato visione stereoscopica

Sfruttando i criteri di similitudine dei triangoli è facile ottenere:

P O F 1 O1 = F 1 F 2 (P 1 O1 + O2 P 2) Quindi P O = df δ

dove P O è la distanza dal punto che sto osser-vando e δ è il valore definito come disparità, che è la differenza tra le posizioni di un parti-colare punto di scena che appare nei due piani dell’immagine. Quindi con una sola acquisi-zione immagine posso ricavare la distanza del punto che stò osservando.

In generale si cerca di risolvere le corri-spondenze inserendo una mappa di disparità D, osservando le immagini sinistra (Il) e destra (Ir).

Viene così creato un modello generativo probabilistico dove la probabilità condizionata della disparità, nota l’immagine P (D | I)

P (D | I) = P (Il, Ir | D) + P (D)

è uguale alla probabilità condizionata immagine sinistra ed immagine destra avendo nota la disparità P (Il, Ir | D), più la probabilità marginale della disparità P (D). Infine per avere una soluzione accettabile si tratta solamente di minimizzare la funzione costo.

• Per ogni punto dell’immagine di riferimento si confronta la finestra centrata sul punto corrente con tutte le finestre corrispondenti nell’altra immagine che rientrano all’interno del range di disparità specifico per la coppia stereo. Fig2.6;

• Il confronto si effettua usando come misura di matching la funzione SAD (Sum of Absolute Differences) su pixel in scala di grigio.;

• La finestra corrispondente al minimo della SAD determina la disparità per il punto.

(21)

CAPITOLO 2. VISIONE STEREO 14

Figura 2.6: Confronto tra immagini

Figura 2.5: Creazione mappa disparità da immagini sinistra e destra

Per estrarre informazioni dall’immagine reale viene sfruttato il modello Pin-hole che de-scrive la relazione matematica tra le coordi-nate di un punto nello spazio tridimensionale e la sua proiezione sul piano dell’immagine di una fotocamera, in cui la sua apertura è de-scritta come un punto e non vengono utilizzati obiettivi per mettere a fuoco la luce. Il con-cetto si basa sulla riflessione, emissione di luce da parte dell’oggetto che passa attraverso un forellino di una ipotetica camera oscura e si proietta sul piano immagine.

Il modello non include, ad esempio, distor-sioni geometriche o sfocature di oggetti causa-ti da lencausa-ti e aperture di dimensioni finite, può essere utilizzato solo come una prima appros-simazione della mappatura da una scena 3D ad un’immagine 2D. La sua validità dipende dalla qualità della fotocamera e, in generale,

diminuisce dal centro dell’immagine ai bordi mentre aumentano gli effetti di distorsione della lente.

Modello Pin-hole Camera è 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, situato posteriormente al primo, l’immagine ribaltata dell’oggetto inquadrato.

• C: centro ottico o fuoco; • f: distanza focale;

(22)

CAPITOLO 2. VISIONE STEREO 15

Figura 2.7: Modello pin-hole camera

• c: punto principale. E’ la proiezione del centro ottico sul piano di retina R; • m-M: raggio ottico;

• R: piano sul quale si forma l’immagine attraverso una proiezione prospettica.

Figura 2.8: Modello pin-hole Camera

Per derivare un modello analitico di una pin-hole camera, è necessario introdurre 2 sistemi di riferimento (S.d.R.) cartesiani:

• uno 3D per i punti della scena; • uno 2D per i punti dell’immagine. Consideriamo inizialmente un caso parti-colare con:

• il S.d.R. destrorso (X, Y, Z) per la sce-na, centrato nel centro ottico C, con l’asse Z coincidente con l’asse ottico, punta nella direzione di visione della te-lecamera. Questa scelta prende il nome di S.d.R. Standard;

• ed il S.d.R destrorso (x, y) per il piano immagine, centrato nel punto principale e con assi x e y orientati come X ed Y , rispettivamente.

(23)

CAPITOLO 2. VISIONE STEREO 16

Figura 2.9: Schematizzazione distorsione radiale e tangenziale

Considerando un punto M = [ ˜X, ˜Y , ˜Z] nel sistema di riferimento Standard, la sua proiezione sul piano immagine R di coordinate m = [˜x, ˜y]. La mappatura da coordinate 3D a 2D è una proiezione prospettica seguita da una rotazione di 180◦ sul piano dell’immagine. Con semplici considerazioni di similitudine tra triangoli si arriva alla relazione:

f ˜ Z = −˜x ˜ X = −˜y ˜ Y da cui si ottiene la relazione non lineare:

( ˜ x = −f ∗ ˜˜X Z ˜ y = −f ∗ ˜˜Y Z

L’immagine risultante viene ruotata di 180◦ e la dimensione relativa degli oggetti proiettati dipende dalla loro distanza dal punto focale e la dimensione complessiva dell’immagine dipende dalla distanza f tra il piano dell’immagine e il punto focale.

2.4

Distorsione

Nella pratica comune, il raggio ottico non assume la forma di una retta ideale. La lente di un obiettivo è infatti molto diversa dal concetto di centro ottico. Il punto M , il fuoco C ed il punto m0 sul piano immagine non giacciono sulla stessa retta. La distanza della posizione reale di un punto immagine m0 dalla sua posizione ideale m, viene chiamata distorsione.

La distorsione radiale causa una traslazione delle coordinate rispetto al centro ottico mentre la distorsione tangenziale trasla in modo perpendicolare a quella radiale. Le coordinate del punto, sul piano immagine soggetto a distorsione, possono essere espresse da un polinomio

(24)

CAPITOLO 2. VISIONE STEREO 17

funzione della distanza radiale r dal punto principale ed assumono la seguente espressione:

xd= xd(1) xd(2)  = (1 + k1r2+ k2r4+ k5r6) xn+ dx dx =2 k3x y + k4(r 2+ 2x2) k3(r2+ 2y2) + 2 k4x y  dove:

• , xnsono le coordinate del punto non distorto; • dx è il vettore distorsione tangenziale;

• i coefficienti k devono essere determinati dal processo di calibrazione.

k1k2k3sono costanti chiamate coefficienti di distorsione radiale, mentre k3k4 coefficienti di distorsione tangenziale

Figura 2.10: Effetti distorsione radiale

La distorsione radiale è causata dalla for-ma intrinseca che hanno le lenti, legata all’uso di lenti di non buona qualità e/o all’esigenza di ampliare il campo visivo utilizzando una te-lecamera con distanza focale corta. Nell’ im-magine qui accanto la figura a sinistra risulta avere una distorsione a cuscinetto, la figura a destra risulta avere una distorsione a barilot-to. La distorsione tangenziale è invece princi-palmente dovuta al non perfetto allineamento assiale di tutte le lenti all’interno dell’obiet-tivo e può quindi essere contenuta in fase di costruzione dell’obiettivo.

Come si nota dall’immagine 2.11, l’entità della distorsione radiale è due ordini di grandezza maggiore della distorsione tangenziale, ciò conferma il fatto che quest’ultima solitamente viene trascurata. Inoltre l’entità della distorsione è tanto maggiore quanto più ci si allontana dalla parte centrale dell’immagine.

(25)

CAPITOLO 2. VISIONE STEREO 18

(26)

Capitolo 3

Calibrazione della Videocamera

3.1

Introduzione

Abbiamo visto che sussiste una relazione non lineare tra le coordinate della scena e quelle del punto immagine: ( ˜ x = −f ∗ ˜˜X Z ˜ y = −f ∗ ˜˜Y Z

Tornando al nostro punto M e alla sua proiezione prospettica m, espresse in coordinate omogenee le loro rappresentazioni diventano:

m =   ˜ x ˜ y 1   M =     ˜ X ˜ Y ˜ Z 1    

Usando le coordinate omogenee, quindi considerando la trasformazione come tra spazi proiettivi, la proiezione prospettica diviene una trasformazione lineare.

k ∗   ˜ x ˜ y 1  =   −f ˜X −f ˜Y ˜ Z   =   −f 0 0 0 0 −f 0 0 0 0 1 0       ˜ X ˜ Y ˜ Z 1    

Con la notazione matriciale:

k m = ˜P M

uguale a meno di un fattore di scala arbitrario k. La matrice ˜P rappresenta il modello geometrico della telecamera, e viene detta matrice di proiezione prospettica (PPM).

Nel caso più idealizzato in cui il piano immagine si trova davanti al centro di proiezione (f negativa) e le distanze sono misurate in unità di distanze focali ( f = −1) la PPM diviene:

(27)

CAPITOLO 3. CALIBRAZIONE DELLA VIDEOCAMERA 20

Figura 3.1: Struttura di un sistema di visione stereo.

  1 0 0 0 0 1 0 0 0 0 1 0  

Questa forma estrema della PPM rappresenta l’essenza della proiezione prospettica. Notia-mo che, come era lecito attendersi, la coordinata oNotia-mogenea del punto 3D non ha influenza sul risultato della proiezione, al variare della 4◦ coordinata i punti 3D giacciono sullo stesso raggio ottico.

La formazione dell’immagine è resa possibile per il fatto che i raggi luminosi colpiscono uno schermo, o piano immagine, su cui risiede il dispositivo fotosensibile che registra le intensità dei raggi luminosi, il CCD (Charge Coupled Device).

Il CCD è un sensore che riproduce la retina dell’occhio umano. Esso consiste in un circuito integrato formato da una griglia di n1x n2 elementi semiconduttori sensibili alla luce, cioè in grado di accumulare una carica elettrica proporzionale all’intensità della radiazione luminosa che li colpisce. Tali elementi sono accoppiati in modo che ognuno di essi, sollecitato da un impulso elettrico, possa trasferire la propria carica ad un altro elemento adiacente. Inviando al

(28)

CAPITOLO 3. CALIBRAZIONE DELLA VIDEOCAMERA 21

dispositivo una sequenza temporizzata d’impulsi, si ottiene in uscita un segnale elettrico grazie al quale è possibile ricostruire la matrice dei pixel che compongono l’immagine proiettata sulla superficie del CCD.

Figura 3.2: Disparità binoculare

L’uscita della telecamera a CCD è un se-gnale elettrico analogico, ottenuto leggendo il potenziale degli elementi della matrice CCD. Il segnale video viene così inviato al frame grabber. Quest’ultimo è una scheda di acqui-sizione che viene montata sul PC e a cui ven-gono collegati i segnali in uscita da entrambe le telecamere. Esso ha la funzione di digita-lizzare il segnale video analogico in ingresso, convertendolo in una matrice N1x N2 (tipica-mente 512 x 512) di valori interi, memorizza-ti in un’opportuna area di memoria chiamata frame buffer. Gli elementi della matrice pren-dono il nome di pixels o picture elements. I pixels sono i più piccoli elementi autonomi che compongono la rappresentazione di una immagine nella memoria di un computer. Solitamente i punti sono cosi piccoli e numerosi da non essere distinguibili ad occhio nudo, insieme si fondono in un’unica immagine quando ven-gono stampati su carta o visualizzati su un monitor. Il numero di pixel presente nel sensore esprime la risoluzione della telecamera, per cui maggiore è il loro numero, migliore è la qualità dell’immagine che si ottiene. Ciascun pixel è caratterizzato dalla posizione e assume valori come colore e intensità, variabili in funzione del sistema di rappresentazione adottato. Se l’immagine è monocromatica ogni pixel assumerà un valore in scala di grigi su 8 bit che forniscono 256 diverse gradazioni di luminosità dell’immagine che vanno da 0 (nero) a 255 (bianco). Nel caso di immagine a colori le componenti su 8 bit associate a ogni pixel sono tre, secondo la codifica RGB.

3.2

Modello realistico

Per rendere più prossimo il nostro modello ad un sistema di acquisizione reale è necessario introdurre gli effetti de:

• la pixellizzazione, forma e dimensione della matrice CCD e sua posizione rispetto al centro ottico, identificando quelli che sono parametri intrinseci;

• la trasformazione rigida tra la telecamera e la scena: parametri estrinseci. La pixellizzazione viene presa in considerazione mediante l’inserimento:

• della traslazione del punto principale m, dovuta al cambio di sistema di riferimento che si considera solidale con il sensore e localizzato in un suo angolo, come si definisce tipicamente per le immagini;

(29)

CAPITOLO 3. CALIBRAZIONE DELLA VIDEOCAMERA 22

• e degli effetti di scalatura non uniforme lungo i due assi, dovuti alla forma non ideale degli elementi sensibili della superficie del sensore;

• A causa di sfasamenti nella scansione di righe successive dello schermo, gli assi di riferi-mento immagine non sono ortogonali ma inclinati di un certo angolo.

Figura 3.3: Trasformazione rigida tra telecame-ra e scena

Per tenere conto del fatto che, in generale, il sistema di riferimento mondo non coincide con il sistema di riferimento standard della telecamera, è necessario introdurre una tra-sformazione rigida che lega i due sistemi di ri-ferimento. Si introduce, pertanto, un cambio di coordinate costituito da una rotazioneOR1 seguita da una traslazione t1 che esprimono l’orientazione e la posizione della telecamera rispetto ad una terna solidale con il mondo esterno.

3.2.1 Pixellizzazione

La pixellizzazione viene presa in considerazio-ne mediante l’inserimento:

• della traslazione del punto principale (˜x0; ˜y0), dovuta al cambio di sistema di riferimento che si considera solidale con

il sensore e localizzato in un suo angolo, come si definisce tipicamente per le immagini; • le coordinate di un punto nel sistema

di riferimento standard della telecame-ra sono misutelecame-rate in pixel : si introduce pertanto un fattore di scala;

• e degli effetti di scalatura non unifor-me lungo i due assi, dovuti alla forma non ideale degli elementi sensibili della superficie del sensore (kx; ky);

– kx˜ è l’inverso della dimensione efficace del pixel lungo la direzione ˜x pixel m−1. Le nuove formule di proiezione sono dunque:

˜ x = kx −f ˜ Z x + ˜x0 y = ky˜ −f ˜ Z y + ˜y0

(30)

CAPITOLO 3. CALIBRAZIONE DELLA VIDEOCAMERA 23

In forma omogenea l’equazione della PPM diventa:

˜ P =   −f kx ∗ x0˜ 0 0 −f ky y0˜ 0 0 0 1 0   = A[I|0]

La matrice A, che modella le caratteristiche del sensore, è detta matrice dei parametri intrinseci.

• i parametri intrinseci possono essere ridotti al minimo necessario definendo au = −f kx, av = −f ky, si tratta della lunghezza focale espressa in pixel orizzontali e verticali. I parametri intrinseci sono quindi 4;

• il modello più generale prevede un quinto parametro, lo skew, ovvero l’angolo tra gli assi del sistema di riferimento del sensore. La sua cotangente occuperebbe la posizione indicata dall’asterisco, ed è in pratica sempre 0 ( = coth(π2));

• notiamo che la matrice degli intrinseci è sempre triangolare superiore.

Parametri intrinseci

Partendo dai concetti di teoria appena esplicati, si passa ad indicare la simbologia utilizzata da Matlab. Il modello di fotocamera interno è molto simile a quello utilizzato da Heikkil e Silven presso l’Università di Oulu in Finlandia. [9]. Lista di parametri intrinseci:

• la lunghezza focale in pixel è memorizzata nel vettore fc 2x1 (esprime le coordinate in pixel verticali ed orizzontali);

• le coordinate del punto principale sono memorizzate nel vettore 2x1 cc;

• il coefficiente di inclinazione che definisce l’angolo tra gli assi di pixel x e y è memorizzato nello scalare αc;

• i coefficienti di distorsione dell’immagine (3 per la distorsione radiale e 2 per la tangenziale) sono memorizzati nel vettore kc 5x1.

kc contiene sia la distorsione radiale che la distorsione tangenziale. La matrice di proiezione prospettica KK può essere riscritta:

KK =   f c(1) alphac ∗ f c(1) cc(1) 0 f c(2) cc(2) 0 0 1  

In MATLAB, questa matrice viene memorizzata nella variabile KK dopo la calibrazione. Il rapporto fc (2) / fc (1), spesso chiamato "aspect ratio", è diverso da 1 se il pixel nell’array CCD non è quadrato; pertanto, il modello di fotocamera gestisce naturalmente i pixel non quadrati. Inoltre, il coefficiente αc codifica l’angolo tra gli assi del sensore x e y, di conseguenza, i pixel possono persino non essere rettangolari. Oltre alle stime di calcolo per i parametri intrinseci f c,

(31)

CAPITOLO 3. CALIBRAZIONE DELLA VIDEOCAMERA 24

cc, kc, αc, la casella degli strumenti restituisce anche stime delle incertezze su tali parametri. Le variabili MATLAB che contengono tali incertezze sono f c_error,~ cc_error,~ kc_error,~

~

αcerror; questi vettori sono approssimativamente tre volte le deviazioni standard degli errori di stima. Per convenzione le coordinate pixel sono definite in modo che [0; 0] sia il centro del pixel in alto a sinistra dell’immagine. Di conseguenza, [nx − 1; 0] è il centro del pixel dell’angolo superiore destro, [0; ny − 1] è il centro del pixel dell’angolo inferiore sinistro e [nx − 1; ny − 1] è il centro di il pixel in basso a destra dove nx e ny sono la larghezza e l’altezza dell’immagine. La fase di calibrazione interna è richiesta una sola volta, i parametri interni ottenuti dalla fase di calibrazione omonima sono legati all’hardware della telecamera. Quindi, fintanto che la telecamera resta la stessa anche tali parametri rimangono invariati. Conoscendo i parametri della fotocamera è possibile mappare qualsiasi punto rispetto il piano immagine della fotocamera stessa ed allo stesso tempo mappare anche qualsiasi punto nello spazio esterno.

Mappa pixel Attraverso la funzione project_points2, avendo le coordinate 3D di un insieme di punti nello spazio e i parametri della fotocamera intrinseca (fc, cc, kc, αc), si riesce ad ottenere le proiezioni dei pixel dei punti sul piano immagine.

Mappa inversa Il problema inverso del calcolo del vettore di proiezione dell’immagine nor-malizzato xn dalla coordinata del pixel, viene risolto con la conoscenza dei parametri intrinseci e la funzione: normalize.

3.2.2 Parametri estrinseci

Per poter determinare i parametri estrinseci la calibrazione deve essere ripetuta ogni qualvolta le telecamere vengono spostate e/o ruotate, in quanto i parametri che la interessano (R t) dipendono dall’orientazione e dalla posizione della telecamera. Lista di parametri estrinseci:

• la matrice di orientazione R 3x3; • la matrice di traslazione t 3x1.

Sia P un punto dello spazio con vettore di coordinate XX = [X; Y ; Z] e sia XXc = [Xc; Y c; Zc] il vettore di coordinate di P nel piano di riferimento della fotocamera. Quindi XX e XXc sono correlati l’un all’altro attraverso la seguente equazione di moto rigido,secondo la notazione Matlab:

XXc = Rc1 ∗ XX + T c1 (3.1)

In questo caso T c1 è il vettore coordinate dell’origine della scacchiera, pixel in alto a destra e la terza colonna della matrice Rc1 è il vettore normale al piano identificato dalla scacchiera rispetto al piano di riferimento della fotocamera. Una volta che le coordinate di un punto so-no espresse nel piaso-no di riferimento della telecamera, possoso-no poi essere proiettate sul piaso-no dell’immagine utilizzando i parametri della fotocamera intrinseca. Il vettoreomc1~ , è il vettore di rotazione associata alla matrice di rotazione Rc1, attraverso la formula di Rodrigues. Ana-logamente ai parametri intrinseci, sono calcolate anche le incertezze associate alle stime dei

(32)

CAPITOLO 3. CALIBRAZIONE DELLA VIDEOCAMERA 25

parametri estrinseci omc_error1~ e rappresentano approssimativamente tre volte le deviazioni standard degli errori di stima.

3.3

Valutazione PPM ed Acquisizione immagini

Per conoscere la matrice di proiezione prospettica PPM è necessario valutare i parametri intrin-seci che costituiscono la matrice KK e quelli estrinintrin-seci relativi alle matrici R e t. I parametri intrinseci rappresentano la geometria interna della telecamera e le caratteristiche ottiche, men-tre quelli estrinseci fanno riferimento alla posizione e all’orientazione del sistema di riferimento telecamera rispetto al sistema di riferimento mondo. Il processo di misurazione di tali parametri è detto calibrazione e si basa sul presupposto che si conoscano le proiezioni di alcuni punti 3D, detti punti di calibrazione, le cui coordinate sono note. La necessità di calcolare queste due categorie di parametri, interni ed esterni, porta ad una naturale suddivisione del processo di calibrazione in:

• CALIBRAZIONE INTERNA; • CALIBRAZIONE ESTERNA.

La fase di calibrazione interna è richiesta una sola volta, mentre la fase di calibrazione esterna deve essere ripetuta ogni qualvolta le telecamere vengono spostate e/o ruotate. Infatti, per quanto detto in precedenza, i parametri interni ottenuti dalla fase di calibrazione omonima sono legati all’hardware della telecamera. Quindi, fintanto che la telecamera resta la stessa anche tali parametri rimangono invariati. Nel caso della calibrazione esterna, invece, poiché i parametri che la interessano R e t dipendono dall’orientazione e dalla posizione della telecamera, è sufficiente che questa venga mossa, anche accidentalmente, affinché si renda necessaria una nuova fase di calibrazione esterna. La calibrazione di un sistema di visione consiste nella stima il più possibile accurata dei parametri che definiscono questo modello per ogni telecamera che compone il sistema, a seconda della applicazione è sufficiente stimare solo la PPM. Idea alla base di ogni algoritmo di calibrazione è che conoscendo la corrispondenza tra proiezioni 2D e punti 3D di coordinate note, è possibile riscrivere l’equazione della proiezione prospettica come un sistema lineare con i parametri come incognite e quindi risolverlo. Per ottenere queste corrispondenze, si usano oggetti di forma nota (scacchiere, pattern ripetitivi . . . ).

I metodi per stimare la PPM possono essere classificati in due categorie:

• quelli che usano un’immagine di più piani, almeno 2, contenenti un pattern noto; • quelli che ne usano molte, almeno 3 immagini diverse, di uno stesso pattern piano. Nella pratica è molto più difficile procurarsi oggetti 3D adatti, con piani perfettamente ortogonali piuttosto che un pattern planare che può invece essere costruito con buona precisione.

Nel pattern planare sono noti:

• il numero di corner interni della scacchiera piana, diversi lungo le due dimensioni; • la lunghezza del lato dei quadrati che la compongono.

(33)

CAPITOLO 3. CALIBRAZIONE DELLA VIDEOCAMERA 26

(a)

(b) (c) (d)

Figura 3.4: Pattern utilizzati per acquisizione

Gli angoli interni della scacchiera possono essere facilmente rintracciati nell’immagine con algoritmi standard es. Harris corner detector, con eventuale raffinamento sub-pixel per maggior precisione. In ogni frame si fissa il sistema di riferimento 3D nell’angolo in alto a sinistra della scacchiera con il piano z = 0 coincidente con il pattern e gli altri due assi orientati come la scacchiera, in modo che sia mantenuta sempre la stessa associazione tra assi e dimensioni della scacchiera x = righe, y = colonne; la terza coordinata sarà sempre 0. La x e la y si ricavano grazie alla lunghezza del lato dei quadrati, che è noto. Notare che in ogni frame avremo una diversa stima dei parametri estrinseci e se non interessa un S.d.R. 3D particolare, si può prendere i valori di un frame a caso.

(34)

Capitolo 4

Geometria Proiettiva

La ricostruzione di una scena 3D ripresa può essere schematizzata in due compiti diversi: • poiezione in avanti, Forward Projection (FP), cioè dal punto 3D (X) alla posizione del

piano immagine 2D (x);

• proiezione all’indietro, Backward Projection (BP), cioè dalle coordinate del pixel 2D al punto 3D corrispondente sulla scena.

Risolvere questi due tasks significa ottenere il modello matematico per correggere la di-storsione dovuta al fenomeno della rifrazione del biprisma. Nell’analisi di geometria proiettiva viene presa in esame l’interazione tra i raggi ottici ed il biprisma posto di fronte ad un’unica videocamera. Biprisma di materiale Plexiglass con geometria completamente nota.

Le dimensioni caratteristiche del biprisma sono (figura4.1): • altezza H pari a 20 mm;

• larghezza B pari a 20 mm; • spessore s = 1 mm;

• angolo compreso tra i due piani frontali α = 160◦.

4.1

Forward Projection

4.1.1 Schema semplificativo

Per capire i concetti alla base dello studio viene mostrato uno schema semplificato, figura 4.2, per mostrare il metodo di risoluzione, in cui si è considerato un problema piano in 2D e dove il raggio ottico che colpisce il punto X non attraversa il biprisma, ma si ferma al suo interno. Il problema reale richiede una seconda interazione con il Biprisma ma la teoria che si adotta è esattamente la stessa. Definite:

• l’origine O impostata per essere coincidente con il punto focale della videocamera;

(35)

CAPITOLO 4. GEOMETRIA PROIETTIVA 28

Figura 4.1: Immagine Biprisma elaborata con Matlab

(36)

CAPITOLO 4. GEOMETRIA PROIETTIVA 29

• ~p il versore che rappresenta il pixel da proiettare del piano immagine, inclinato di un angolo θ rispetto all’asse z;

• il versore normale alla superficie ~n e la posizione della superficie stessa.

il problema da risolvere per la proiezione in avanti consiste nel calcolare il punto di arrivo X. In questo caso semplicemente

kgk ~p k~pk = g

con due equazioni, rispetto all’asse x e z, in due incognite è possibile conoscere le coordinate del punto g. Sfruttando la legge di Snell, descritta in appendice:

n1 sin θ = n2 sin θ0

è possibile calcolare l’angolo del versore rifratto θ0. Quindi conoscendo il nuovo versore rifratto ~p0 ed il punto di intersezione g è facile dimostrare:

g + kXk ~p0 = X

si è quindi calcolata la posizione del punto X a meno di una costante; viene così definita la direzione del raggio luminoso rifratto.

4.1.2 Identificazione piano

Prima di procedere al calcolo dei versori che ci permettono di conoscere il punto di arrivo è bene identificare quale piano frontale del Biprisma verrà intersecato. Se pensiamo di posizionarci dietro la fotocamera l’immagine che ci viene rappresentata è quella di figura 4.3. Nel piano immagine della fotocamera vengono proiettati i punti che delimitano i due piani frontali del Biprisma grazie alla funzione project_points2 ed alla conoscenza dei parametri intrinseci della videocamera. (i punti non allineati stanno a significare che il biprisma ha subito una rotazione rispetto a tutti e tre gli assi cartesiani).

Identificati arbitrariamente il piano sinistro ed il piano destro, deve essere realizzata una procedura di calcolo che permette di conoscere la posizione di tutti i pixels del piano immagine, quindi:

• se si trovano all’interno del piano sinistro; • se si trovano all’interno del piano destro; • se sono all’esterno dei due piani.

Con la conoscenza della posizione del singolo pixel, tramite la funzione normalize otteniamo così il versore che parte dal centro ottico della fotocamera e passa esattamente attraverso quel pixel per poi interfacciarsi con il Biprisma.

Per sapere quindi ad esempio se un pixel (nell’immagine identificato con simbolo "+") ∈ piano sinistro si è utilizzato il prodotto vettoriale. Come procedura:

(37)

CAPITOLO 4. GEOMETRIA PROIETTIVA 30

Figura 4.3: Piano immagine fotocamera

1. si sono calcolati i versori ~x, ~y, ~z, ~t che partono rispettivamente dai punti p7p, p2p, p3p, p8p con direzione verso il punto notevole successivo percorrendo il senso orario;

2. si è passato a calcolare il prodotto vettoriale tra il versore di origine p7p e diretto verso il pixel (freccia rossa) ed il versore x;

3. il prodotto vettoriale tra il versore di origine p2p e diretto verso il pixel (freccia verde) ed y;

4. il prodotto vettoriale tra il versore di origine p3p e diretto verso il pixel (freccia blu) e z; 5. infine il prodotto vettoriale tra il versore di origine p8p e diretto verso il pixel (freccia

gialla) e t.

Se i risultati dei quattro prodotti vettoriali hanno tutti lo stesso segno → significa che il pixel ∈ appartiene al piano sinistro. Per il piano destro viene svolto esattamente lo stesso procedimento, cambiando naturalmente i punti notevoli. Se il pixel si trova all’esterno dei due piani significa che non ci sarà interazione tra raggio ottico ed il biprisma.

4.1.3 Risoluzione problema

Una volta constatato che il pixel si trova all’interno del piano frontale sinistro del biprisma, viene calcolato il versorepi_n tramite il codice Matlab precedentemente descritto normalize.~ Ottenuti poi i versori che definiscono il piano ~u ~v, direzioni parallele al piano ma non parallele tra loro, ed il punto appartenente al piano p3 è possibile risolvere il problema di intersezione tra una retta ed un piano. Retta identificata dal versore pi_n ed il punto O.~

(38)

CAPITOLO 4. GEOMETRIA PROIETTIVA 31

Figura 4.4: Forward Projection

O + tpi_n = p3 + ~~ u d1 + ~v d2

Si tratta quindi di risolvere il sistema espresso in forma vettoriale, ottenendo così gli scalari t d1 d2. Sostituendo il valore di t alla retta, si ottiene il punto di intersezione, chiamato a.

Si passa a calcolare l’angolo compreso tra il versore normale del piano frontale ~n ed il versore ~

pi_n con prodotto scalare.

ε = acos(pi_n · ~~ n) Dalla legge di Snell si ricava facilmente l’angolo rifratto ε0

ε0 = asin 

sin ε cn



Per ottenere il versore rifratto pi_n1 è sufficiente ruotare il versore di partenza~ pi_n di un~ angolo pari a ε0 − ε con la matrice di rotazione asse-angolo, dove:

• θ = ε0 − ε; • cθ = cos(θ); • sθ= sin(θ); • vθ= (1 − cθ);

• e1 è il versore, normale al piano identificato da pi_n ed ~~ n, ottenuto mediante prodotto vettoriale.

~

e1 = pi_n × ~~ n sin(ε)

(39)

CAPITOLO 4. GEOMETRIA PROIETTIVA 32

(a) Versori piano frontale

(b) Punto intersezione

Figura 4.5

Re1(θ) =  

e121vθ+ cθ e11e12vθ− e13 sθ e11e13vθe12 sθ e11e12vθ+ e13 e122vθ+ cθ e12e13vθ− e11 e11e13vθe12 sθ e12e13vθ+ e11 e123vθ+ cθ   ~ pi_n1 = Re1(θ0) ·pi_n~

(40)

CAPITOLO 4. GEOMETRIA PROIETTIVA 33

(a) Angoli prodotti con versore normale del piano

(b) Differenza angoli

Figura 4.6

Dalla teoria e successivamente dai calcoli si nota la complanarità tra il versore incidente, la normale al piano ed il versore rifratto. Bisogna fare attenzione a non semplificare il problema ad una geometria 2D perché sebbene i tre versori siano complanari tra loro, non giacciono sullo stesso piano della seconda terna che identifica il fenomeno di rifrazione nella superficie posteriore del Biprisma.

Ottenuto il versore rifratto pi_n1 all’interno del biprisma viene eseguito lo stesso procedi-~ mento utilizzato fino adesso, per determinare: il nuovo punto di intersezione tra versore e piano posteriore, la direzione del versore finale con cui esce dal biprisma. Il procedimento consiste nel:

1. calcolare i versori ~u1, ~v1, ~n1 del piano;

2. calcolare il punto di intersezione b, tra la retta definita dal versore pi_n1 ed il punto di~ partenza a;

a + t0pi_n1 = p5 + ~~ u1 d3 + ~v1 d4

3. calcolare l’angolo compreso tra il versore normale ~n1 ed il versore pi_n1 con prodotto~ scalare;

ε00 = acos(pi_n1 · ~~ n1) 4. calcolare con la legge di Snell l’angolo ε000

ε000 = asin  sin ε 00 cn1 

Da notare che il coefficiente cn1 = cn−1, in quanto avviene il passaggio attraverso la superficie dal plexiglass al mezzo trasmissivo aria.

(41)

CAPITOLO 4. GEOMETRIA PROIETTIVA 34

5. calcolare il nuovo versore rifrattopi_n2 ruotando il precedente versore~ pi_n1 di un angolo~ pari a ε000 − ε00 con la matrice di rotazione:

Re2(θ0) =  

e221v1θ0 + cθ0 e21e22vθ0 − e23 sθ0 e21e13vθ0e22 sθ0

e21e22vθ0+ e23 e222vθ0 + cθ0 e22e13vθ0− e21 e21e23vθ0e22 sθ0 e22e23vθ0 + e21 e22 3vθ0+ cθ0   • θ0 = ε000 − ε00; • cθ0 = cos(θ0); • sθ0 = sin(θ0); • vθ0 = (1 − cθ0);

• e2 è il versore, normale al piano identificato da pi_n1 ed ~~ n1, ottenuto mediante prodotto vettoriale. ~ e2 = pi_n1 × ~~ n1 sin(ε) ~ pi_n2 = Re2(θ0) · pi_n1~

(a) Versori piano posteriore (b) Differenza angoli

(42)

CAPITOLO 4. GEOMETRIA PROIETTIVA 35

Figura 4.8: Punti intersezione

(43)

CAPITOLO 4. GEOMETRIA PROIETTIVA 36

Per il versore che interseca il piano frontale destro del Biprisma si utilizza esattamente lo stesso procedimento e le stesse formule.

Figura 4.10: Risultato finale Forward Projection

4.2

Backward Projection

4.2.1 Schema semplificativo

Anche se il procedimento è simile, il problema consiste nel determinare il versore ~p, quindi l’angolo θ conoscendo:

• il punto nel 2D dell’oggeto X;

• il versore normale alla superficie ~n e la posizione della superficie stessa;

• l’origine O impostata per essere coincidente con il punto focale della fotocamera.

Anche in questo caso ci si è ricondotti ad un problema in 2D sul piano x − z, ordinata y è identicamente nulla. Ponendo il versore ~p0 = [x; 0;1 − x2]

kX − gk ~p0+ X = g

con le due equazioni è possibile conoscere le coordinate del punto g in funzione della unica variabile x. Sfruttando la legge di Snell, descritta in appendice:

n2 sin θ = n1 sin θ0

è possibile calcolare angolo del versore rifratto θ, quindi conoscere il nuovo versore rifratto ~

(44)

CAPITOLO 4. GEOMETRIA PROIETTIVA 37

Figura 4.11: Schema proiezione all’indietro

g + kgk ~p = O viene così risolto il problema calcolando la variabile x.

4.2.2 Risoluzione problema

A differenza del problema di Forward Projection, si conosce il punto di arrivo del raggio ottico pxs e si devono poter ottenere i due versori che escono dal Biprisma, uno dal piano sinistro e l’altro dal piano destro che raggiungono il punto focale della videocamera stessa.

Piano sinistro

Si parte con il porre il versorepi_nr uscente dal punto pxs e diretto verso la superficie posteriore~ del Biprisma come la nostra incognita:

~ pi_nr = ˜X =   X1 X2 X3  

Ottenuti i versori che definiscono il piano posteriore ~u ~v, direzioni parallele al piano ma non parallele tra loro, ed il punto appartenente al piano p1 è possibile risolvere il problema di intersezione tra una retta ed un piano. Retta identificata dal versorepi_nr ed il punto pxs.~

(45)

CAPITOLO 4. GEOMETRIA PROIETTIVA 38

Figura 4.12: Backward Projection

pxs + tpi_nr = p1 + ~~ u d1 + ~v d2

Si tratta quindi di risolvere il sistema espresso in forma vettoriale, ottenendo così gli scalari t d1 d2. Sostituendo il valore di t alla retta, si ottiene il punto di intersezione, chiamato f .

Si passa a calcolare l’angolo compreso tra il versore normale del piano posteriore ~n ed il versorepi_nr con prodotto scalare.~

ε = acos(pi_nr · ~~ n) Dalla legge di Snell si ricava facilmente l’angolo rifratto ε0

ε0 = asin 

sin ε cn



Per ottenere il versore rifratto pi_nr1 è sufficiente ruotare il versore di arrivo~ pi_nr di un~ angolo pari a ε0 − ε con la matrice di rotazione asse-angolo, dove:

• θ = ε0 − ε; • cθ = cos(θ); • sθ= sin(θ); • vθ= (1 − cθ);

• e1 è il versore, normale al piano identificato dapi_nr ed ~~ n, ottenuto mediante prodotto vettoriale.

(46)

CAPITOLO 4. GEOMETRIA PROIETTIVA 39

Figura 4.13: Versori piano posteriore e punti di intersezione

~ e1 = pi_nr × ~~ n sin(ε) Re1(θ) =   e121vθ+ cθ e11e12vθ− e13 sθ e11e13vθe12 sθ e11e12vθ+ e13 e122vθ+ cθ e12e13vθ− e11 e11e13vθe12 sθ e12e13vθ+ e11 e123vθ+ cθ

 

~

pi_nr1 = Re1(θ0) ·pi_nr~

Ottenuto il versore rifratto pi_n1 all’interno del biprisma viene eseguito lo stesso procedi-~ mento utilizzato finora per determinare il nuovo punto di intersezione tra versore ed il piano frontale e la direzione del versore finale con cui esce dal Biprisma. Procedimento consiste nel:

1. calcolare i versori ~u1, ~v1, ~n1 del piano frontale sinistro, rispetto al punto p2;

2. calcolare il punto di intersezione g, tra la retta definita dal versore pi_nr1 ed il punto di~ partenza f , con il piano frontale sinistro;

g + t0pi_nr1 = p2 + ~~ u1 d3 + ~v1 d4

3. calcolare l’angolo compreso tra il versore normale del piano frontale sinistro ~n1 ed il versore ~

pi_nr1 con prodotto scalare;

(47)

CAPITOLO 4. GEOMETRIA PROIETTIVA 40

Figura 4.14: Versori piano frontale sinistro e punti di intersezione

4. calcolare con la legge di Snell l’angolo ε000

ε000 = asin  sin ε 00 cn1 

5. calcolare il nuovo versore rifratto pi_nr2 ruotando il precedente versore~ pi_nr1 di un~ angolo pari a ε000 − ε00 con la matrice di rotazione asse-angolo:

Re2(θ0) =   e221v1θ0 + cθ0 e21e22vθ0 − e23 sθ0 e21e13vθ0e22 sθ0 e21e22vθ0+ e23 e22 2vθ0 + cθ0 e22e13vθ0− e21

e21e23vθ0e22 sθ0 e22e23vθ0 + e21 e223vθ0+ cθ0

  • θ0 = ε000 − ε00; • cθ0 = cos(θ0); • sθ0 = sin(θ0); • vθ0 = (1 − cθ0);

• e2 è il versore, normale al piano identificato da pi_nr1 ed ~~ n1, ottenuto mediante prodotto vettoriale.

~

e2 = pi_nr1 × ~~ n1 sin(ε)

~

(48)

CAPITOLO 4. GEOMETRIA PROIETTIVA 41

Figura 4.15: Risultato finale Backward Projection

Ricordiamo sempre che il versore finale ottenuto èpi_nr2 = f (~ pi_nr) = f ( ˜~ X). Conoscen-do i parametri intrinseci della fotocamera si proietta il punto g nel piano immagine attraverso la funzione Matlab project_points2 in modo tale da conoscere il pixel (pgs) associato al punto. Ottenuta così la funzione finale:

F = pi_nr2 t + g − pg1~ dove:

• t = k(g − pg1)k;

• g è il punto di intersezione tra il versore ed il piano frontale; • pg1 è il punto g proiettato nel piano immagine.

Per risolvere il problema di proiezione all’indietro si tratta solo di trovare gli zeri della funzione F . In questa tesi è stata utilizzata una risoluzione dei minimi quadrati non lineari:

min x kf (x)k 2 2 = minx  f1(x)2+ f2(x)2 . . . fn(x)2 

avendo l’unica accortezza di dare un valore iniziale plausibile a ˜X. In questo modo il problema si riduce a determinare i parametri che minimizzano la Funzione.

Piano destro

Ottenuta la soluzione del piano sinistro si utilizza lo stesso punto 3D pxs per calcolare questa volta il versore che interseca il piano frontale destro del biprisma. Viene utilizzato esattamente lo stesso procedimento e le stesse formule.

(49)

CAPITOLO 4. GEOMETRIA PROIETTIVA 42

(50)

Capitolo 5

Calibrazione Modello con Biprisma

La calibrazione è l’operazione in cui uno strumento di misura viene regolato in modo da miglio-rarne l’accuratezza. L’operazione richiede il confronto con delle misure di riferimento prodotte utilizzando uno strumento campione. La calibrazione ha come obiettivo quello di rendere lo strumento più accurato e migliorarne la precisione, in questo caso si tratta di correggere le distorsioni dovute al fenomeno della rifrazione del biprisma. Chiaramente il modello classico di stereovisione non è più corretto perchè con l’utilizzo del biprisma all’immagine acquisita si aggiunge una distorsione che naturalmente deve essere corretta. L’aberrazione è dovuta ad un indice di rifrazione differente del plexiglass rispetto all’aria e dall’utilizzo di una videocamera non perfetta.

5.1

Biprisma

In pratica, i sistemi di stereovisione convenzionali presentano i vantaggi di una configurazione più semplice e più facile nell’implementazione. Tuttavia, la difficoltà nell’acquisizione sincronizzata delle coppie di immagini da parte delle due fotocamere e il costo del sistema li rendono meno attraenti. Pertanto, i ricercatori hanno studiato i sistemi di stereovisione a obiettivo singolo per risolvere questi problemi. Negli ultimi decenni, sono stati proposti vari sistemi di stereovisione ad obiettivo singolo per sostituire potenzialmente il convenzionale sistema a due telecamere con alcuni vantaggi significativi, quali minori costi di hardware, compattezza e riduzione del carico computazionale. Nel sistema videocamera-biprisma, le coppie di immagini stereo vengono catturate sulle metà sinistra e destra del piano immagine della videocamera. Il vantaggio di utilizzare un biprisma è quindi che nella stessa immagine l’oggetto dello studio è visualizzato in due differenti piani e così è possibile stabilire la geometria e la distanza dell’oggetto rispetto l’osservatore. Figura5.2

Il biprisma in realtà è un solo prisma a sezione triangolare isoscele, il nome deriva dal fatto che idealmente sarebbe formato da due prismi rettangolari uniti per il cateto minore.

La calibrazione avviene in due step:

• una PRIMA CALIBRAZIONE per ottenere i prametri intrinseci, come esposto nel procedimento di calibrazione della visione stereo;

(51)

CAPITOLO 5. CALIBRAZIONE MODELLO CON BIPRISMA 44

Figura 5.1: Schema acquisizione immagine Biprisma

(52)

CAPITOLO 5. CALIBRAZIONE MODELLO CON BIPRISMA 45

Figura 5.3: Unicità soluzione forward

• una SECONDA CALIBRAZIONE per ottenere la posizione esatta nel 3D del biprisma e dei pattern.

5.2

Prima Calibrazione

I parametri intrinseci della fotocamera sono stati ottenuti precedentemente e di seguito ne sono riportati i valori:

αc= 1.472e−04 cc = [8.28e02; 6.08e02] fc = [3.63e03; 3.63e03]

kc = [−0.1528; 0.73; −0.001016; −6.83e−04; 0]

Già con la sola calibrazione interna è possibile arrivare a delle conclusioni. Facendo le ipotesi che il biprisma venga posto in maniera corretta davanti alla fotocamera, si impone delle limitazioni ai raggi ottici per l’attraversamento del biprisma:

• nel forward projection, il raggio deve poter intersecare il piano destro o sinistro e deve uscire unicamente dal piano posteriore;

• mentre nel backward projection, il raggio deve poter intersecare il piano posteriore ed uscire da quello frontale destro o quello sinistro.

Tutti gli altri casi devono essere esclusi. (Ad esempio il raggio ottico non può uscire da piani superiore ed inferiore)

(53)

CAPITOLO 5. CALIBRAZIONE MODELLO CON BIPRISMA 46

Figura 5.4: Unicità soluzione backward

5.2.1 Unicità soluzione

Da prove numeriche sul problema di geometria in avanti ed all’indietro si è constatata l’unicità della soluzione: per ogni valore iniziale del pixel esiste un solo versore uscente e viceversa.

Il problema di ricostruzione scena 3D è un problema ben posto in quanto esso possiede, in un prefissato campo di definizione, una e una sola soluzione e questa dipende con continuità dai dati. Nozione formulata da J. Hadamard da aggiungersi alle usuali richieste di esistenza e unicità della soluzione.

Procedimento geometria proiettiva in avanti:

• partendo da un pixel iniziale ps della telecamera, si calcola versore iniziale pi_n;

• versore iniziale che attraversa il biprisma variando le sue componenti diventando versore finale pi_n2;

Si è dimostrarto sempre tramite analisi numerica che il problema è ben posto in quanto: • per ogni pixel iniziale esiste un unico versore finale pi_n2;

• se il valore di un altro pixel ps0→ ps allora anche pi_n20 → pi_n2 Procedimento geometria proiettiva all’indietro:

• dal punto 3D pxs si sfrutta il metodo precedentemente ottenuto di backward projection per riottenere i due pixel iniziali ps1 ps2.

Si è dimostrarto sempre tramite analisi numerica che il problema è ben posto in quanto: • per ogni punto iniziale pxs esiste un unico versore finale pi_nr2;

(54)

CAPITOLO 5. CALIBRAZIONE MODELLO CON BIPRISMA 47

In conclusione il modello elaborato è verificato, adeguato a rappresentare il principio fisico della rifrazione attraverso un biprisma ed è ben implementato sul calcolatore.

Importante far notare che nel modello non si è operato alcun tipo di semplificazione sia nella modellazione che nel calcolo, la soluzione è valida per ogni configurazione del biprisma (che naturalmente rispetta le limitazioni poste ad inizio capitolo) per ogni posizionamento e forma stessa del biprisma, purchè rimanga all’interno del campo di visione della telecamera.

5.2.2 Verifica ottimizzazione numerica

(a) Geometria proiettiva in avanti

(b) Geometria proiettiva all’indietro

Figura 5.5: Modello coerente

Effettuando il seguente procedimento:

• partendo da un pixel iniziale ps della telecamera, si calcola versore iniziale pi_n;

• versore iniziale che attraversa il biprisma variando le sue componenti diventando versore finale pi_n2;

Riferimenti

Documenti correlati

Un sistema di valori condivisi unito ad un sistema organizzativo basato sullo sviluppo delle risorse umane, garantisce una performance innovativa. e di stimolo per tutti i

Le giornate sono rivolte agli studenti del V e IV anno di Medicina Veterinaria (previsto 0.25 CFU) e aperte al III anno di Tutela e Benessere Animale (previsto 0.5 CFU) ,

Un punto di arrivo perché conclude a suo modo un filone di ricerca sulla modellazione meccanica analitica delle prove sperimentali per la caratterizzazione della tenacità a frattura

 Le giaciture di due rette parallele

Dati due segmenti AB e CD per disegnare la loro somma bisogna renderli adiacenti mentre per disegnare la differenza bisogna sovrapporli facendo coincidere un estremo (vedi

[r]

IL DISEGNO RISOLUTIVO FINALE : ci sono parole chiave nel testo che indicano come disegnare i due angoli. • consecutivi o adiacenti ---> devono essere

Il blocco dei licenziamenti, poi, non do- vrebbe riguardare neppure i casi di chiusura dell'azienda per ces- sazione dell'attività che non de- ve essere riferita solo