--- title: 24 - Sistemi di visione tags: Misure description: Lezione 18 novembre --- ### Introduzione alla lezione Vediamo i sistemi di visione, senza andare in profondità, per capire come vengono utilizzati (non gli algoritmi) come se fossero un normale sensore. ### Introduzione I sistemi di visione sono impiegati in robotica mobile per la ricostruzione della mappa dell’ambiente di lavoro e l’identificazione di oggetti per l’interazione con l’ambiente stesso. Si basano su: * **Telecamera**: dispositivo a stato solido per l’acquisizione dell’immagine, posta a bordo del robot oppure nell’ambiente di lavoro. * **Frame grabber**: un reticolo di elementi fotosensibili su un chip (e.g. CCD, catturatore di frame, o CMOS che fornisce un numero proporzionale alla luce ricevuta) che producono una carica proporzionale alla luminosità del corrispondente punto della scena. * **Elettronica**: dopo una conversione analogico/digitale, i valori di carica associati a ciascun elemento (detto pixel), proporzionali al suo livello di grigio, vengono memorizzati sotto forma di matrice in un buffer di memoria RAM per l’elaborazione numerica. ### La lente Le lenti sono utili nei sensori di visione per modificare la direzione dei raggi luminosi (i.e. fotoni) e convogliarli nel modo desiderato: quando la luce emessa da un oggetto G entra all’interno della lente, la sua direzione viene modificata in accordo alla legge di Snell. ![](https://i.imgur.com/vFfOs6T.jpg) ### Il frame grabber * **Sensore CCD (preferito nei sistemi di visione per la robotica)**: * La carica di ogni pixel è trasferita attraverso un numero molto limitato di nodi di uscita (spesso solo uno) per essere convertita in tensione, memorizzata e inviata fuori chip come segnale analogico. * Il segnale analogico è digitalizzato da un convertitore A/D esterno. * Tutti i pixel possono essere adibiti a catturare la luce e l’uniformità di uscita è elevata (QUESTO E' UN VANTAGGIO, SVANTAGGIO: OUTPUT NON DIGITALE). * **Sensore CMOS**: * Ogni pixel ha il proprio circuito di conversione da carica a tensione, e il sensore spesso include amplificatore, correzione del rumore e circuiti di digitalizzazione. * L’output del circuito è direttamente digitale (QUESTO È UN VANTAGGIO, LO SVANTAGGIO: MINORE SUPERFICIE SENSIBILE ALLA LUCE perché parte della superficie è dedicata all'elettronica). Il Charge-Coupled Device (CCD) e il Complementary Metal Oxide Semiconductor (CMOS) sono sensori per l’acquisizione delle immagini che si basano su due tecnologie differenti, ciascuna con i suoi pro e i suoi contro (figura) anche se con l'avanzamento tecnologico si assomigliano sempre di più. ![](https://i.imgur.com/trRKiwe.jpg) ### Caratteristiche principali di una telecamera * **Potere risolvente**: È la capacità dell’occhio umano di distinguere punti; in condizioni ideali il potere risolvente dell’occhio umano è 1/16 mm, ovvero l’occhio medio non è in grado di distinguere due punti, posti a meno di 1/16 mm tra loro, se osservati ad una distanza standard di 25 cm. * **Piano oggetto**: È il piano ideale che attraversa il soggetto che viene messo a fuoco. * **Lunghezza focale**: È la distanza tra il diaframma (il foro nel caso della pin-hole camera) e il piano di messa a fuoco. * **Numerazione diaframmi**: Si esprime mediante l’f-number, ed è la frazione della lunghezza focale dell’obiettivo che esprime il diametro del foro attraverso cui passa la luce: $$ f_{\#} = \frac{f}{d} $$ con d diametro del foro. ### Definizione delle grandezze ottiche #### Profondità di campo Sostanzialmente, la distanza che riesco a mettere a fuoco rappresenta la distanza tra i due piani-oggetto che vengono messi a fuoco sul piano immagine all’interno del circolo di confusione, ovvero all’interno del cerchio di raggio pari alla distanza che definisce il potere risolvente. ![](https://i.imgur.com/xOQ7L0A.jpg) #### Angolo di visione Rappresenta l’angolo massimo riproducibile dalla telecamera. ![](https://i.imgur.com/RaNDhNT.jpg) #### Campo visivo Rappresenta lo spazio tridimensionale (**detto anche FRUSTUM**) definito dalla profondità di campo e dall’angolo di visione. ![](https://i.imgur.com/MG717ze.jpg =300x) ### Modelli di fotocamera Ci permettono di mappare punti 3D analogici in coordinate 2D(x,y). Sono suddivisi principalmente in esplicito, in cui la calibrazione richiede il calcolo dei parametri della fotocamera (es. Pin-Hole, DLT, Fotogrammetrico) e implicito, in cui la calibrazione non richiede il calcolo dei parametri della fotocamera (2 Piani, N Piani). Noi ci concentreremo sulla Pin-Hole camera. #### La fotocamera stenoscopica (o pin-hole camera) La fotocamera stenoscopica (o pin-hole camera) utilizza un foro stenopeico come obiettivo, in pratica un semplice foro posizionato al centro di un lato della fotocamera. La fotocamera con foro stenopeico produce immagini poco nitide, ma con profondità di campo illimitata: a causa della sua semplicità costruttiva è spesso utilizzata per applicazioni a basso costo, mentre grazie alla sua semplicità di modellazione è spesso usata come riferimento per la spiegazione della trasformazione da immagine nel mondo reale a immagine digitale. #### Passaggio dall’immagine 3D analogica all’immagine 2D digitale ![](https://i.imgur.com/Xtei37j.jpg) Prima di tutto si passa dalle **coordinate cartesiane** del mondo reale alle **coordinate omogenee** del mondo. Successivamente utilizzando una *matrice rotorelazionale* si passa alle **coordinate omogenee** dello spazio della fotocamera, per poi utilizzare una *matrice prospettica* per passare alle **coordinate piano immagine**. Infine con una *matrice di calibrazione* si passa alle **coordinate frame grabber**. Questo è importante da ricordare. Un punto nel mondo è rappresentabile come una coppia di coordinate pixel. <span style="color: green">**D'ora in poi, non bisogna focalizzarsi sulla matematica ma sul flusso logico**</span> #### Le coordinate omogenee Le coordinate omogenee servono per rappresentare trasformazioni affini (i.e. trasformazione lineare + traslazione) in forma matriciale (utilizziamo una matrice di rototraslazione per effettuare contemporaneamente la rotozione dovuta al prodotto con una matrice e la traslazione dovuta alla somma con un vettore). Trovano impiego per le trasformazioni di tipo prospettico (proiezione prospettica) nelle quali un punto viene proiettato in un piano secondo linee che non sono parallele tra loro, ma che provengono da un punto. ![](https://i.imgur.com/GMPdEPY.jpg) Non c'è univocità nel senso che a parità di coordinate cartesiane possiamo avere infinite coordinate omogenee, basta cambiare il fattore di scala $x_4$. Comunque, le coordinate omogenee sono state introdotte perché permettono di trattare rotazione e traslazione con un unica matrice di rototraslazione invece di usare la matrice di rotazione e la matrice di traslazione. Tutte le terne $(x_1, x_2, x_3)$ in figura che si ottengono una dall'altra moltiplicando per un’opportuna costante $(x_4)$ rappresentano lo stesso punto sul piano cartesiano: per questo motivo queste coordinate vengono dette coordinate omogenee e, per loro definizione, non sono biunivoche. #### Rotazione dallo spazio mondo allo spazio fotocamera ![](https://i.imgur.com/eYCOB61.jpg =300x) Nella figura notiamo che il prodotto della matrice R con il vettore coordinate del mondo ci permette di "mettere in parallelo" (o avere lo stesso sistema di riferimento) le coordinate del mondo con quello dello spazio della telecamera, il vettore (off-set) invece, trasla nello spazio. La **matrice di rototraslazione**, tramite le coordinate omogenee, rappresenta una combinazione di rotazione e traslazione come un’unica trasformazione. Siamo quindi di elaborare un punto nello spazio semplicimente con un prodotto con una matrice. ![](https://i.imgur.com/QEv6FJs.jpg =400x) #### Proiezione dallo spazio della fotocamera al piano immagine Nella figura notiamo i passaggi per realizzare la matrice prospettica. ![](https://i.imgur.com/dIVpwRh.jpg =200x) La **matrice prospettica**, tramite le coordinate omogenee, rappresenta la proiezione come una matrice che riporta le coordinate di un punto dello spazio nel piano. Per ora però, è solo una trasformazione prospettica, non c'è stata ancora alcuna digitalizzazione. ![](https://i.imgur.com/49pHSzL.jpg =500x) #### Conversione dal piano immagine al frame grabber A questo punto avviene la vera e propria digitalizzazione. Come vediamo in figura esiste una scalatura che ci permette di passare dai metri ai pixel. ![](https://i.imgur.com/iPjW5pL.jpg =400x) La **matrice di calibrazione** permette di risolvere il problema del passaggio dal sistema metrico (spazio immagine) a quello digitale della fotocamera. ![](https://i.imgur.com/1cS93WM.jpg =300x) #### Trasformazione risultante È possibile accorpare le 3 matrici viste sinora in modo da formare un unico prodotto matriciale che ha 10 gradi di libertà (dipende da 10 parametri). $$ \{ p_s = P_r p_w ; p_i = P_p p_s ; q_i = P_c p_i \} \to q_i = P_{tot} p_w $$ ![](https://i.imgur.com/P8CM2Po.jpg) #### Calibrazione L’operazione di calibrazione permette di individuare i 10 gradi di libertà descritti in precedenza: la conoscenza di questi parametri è fondamentale se si vuole “mappare” correttamente l’immagine del mondo reale in un’immagine digitale bidimensionale, associando correttamente l’informazione di dimensione (fondamentale, ad esempio, nelle operazione di matching). Per calibrare una fotocamera si procede nel seguente modo: * si determina il modello adatto della fotocamera (le relazioni descritte nella presente lezione valgono nel caso semplice della pin-hole camera). * si riprende un’immagine nota (a 2 o 3 dimensioni) e si stimano i parametri per la correzione delle distorsioni. * si correggono le immagini ottenute andando ad impiegare i parametri appena calcolati. ![](https://i.imgur.com/nLsdF0x.jpg) #### Il matching Per matching si intende la procedura di riconoscimento di uno specifico oggetto (o caratteristica di un oggetto) a partire dai dati acquisiti mediante un sistema di visione(non ha bisogno di una calibrazione). In robotica mobile il matching è spesso impiegato come metodo correttivo per la risoluzione del problema della navigazione e della localizzazione, qualora la posizione o la dimensione dell’oggetto del matching siano note. #### Esempi matching ##### Esperimento all'UNIVPM Le linee nere verticali che separano gli uffici a quota 160/165 sono state utilizzate come elementi da riconoscere per effettuare il matching. L'esperimento consisteva nel tracking di u robot a guida differenziale, prima solo con IMU e poi con l'aggiunta del matching. Nel primo caso l'errore (x,y) era (31 cm, 94 cm) nel secondo caso invece scendeva notevolmente: (5.7 cm, 7.6 cm). ##### Fotocamera 2D Tramite sogliatura, erosione e dilatazione, e in seguito calcolo della regione è possibile effettuare una selezione dimensionale degli oggetti fotografati. ##### Stereocamera La stereocamera è una fotocamera binoculare in grado di acquisire frame da due differenti angolazioni: l’elaborazine dei frame permette di ottenere immagini a tre dimensioni, utilizzando il riconoscimento bordi e l'analisi della correlazione(associa ad ogni coppia di punti delle immagini stereoscopiche la probabilità che essi corrispondano allo stesso punto dell’oggetto fisico). Viene quindi utilizzato come sensore di depth. ### Domande di riepilogo <span style="color: green">**In generale non vuole FORMULE!**</span> * Che legame c’è tra circolo di confusione, profondità di campo e campo visivo? * o meglio, che cos'è il frustum? * Quali sono i pregi e difetti delle tecnologie di acquisizione immagine CCD e CMOS? * Come avviene il passaggio da immagine 3D analogica ad immagine 2D bidimensionale? * descrivere le fasi con le matrici * E’ importante conoscere il modello della fotocamera per eseguire la calibrazione? Perché? * Quali sono i parametri da calcolare per la calibrazione della fotocamera? Da $1:16:00$ a $1:20:00$ spiega l'event-based camera, molto interessante ma non richiesta per l'esame.