Hand tracking con Kinect e rendering per dispositivi aptici indossabili

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Hand tracking con Kinect e rendering per dispositivi aptici indossabili"

Transcript

1 Università degli studi di Siena Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Hand tracking con Kinect e rendering per dispositivi aptici indossabili Relatore Prof. Domenico Prattichizzo Candidato Valentino Frati Anno Accademico 2010/2011

2 2

3 Indice 1 Introduzione 7 2 Kinect: analisi dell hardware e calibrazione L hardware di Kinect Il calcolo dei valori di disparità attraverso la structured light Il modello della camera e la geometria epipolare Come Kinect ottiene le corrispondenze di punti I parametri di calibrazione di Kinect L algoritmo per il tracking della mano La procedura dell algoritmo di tracking Elaborazione dell immagine di profondità Computazione del bounding box della mano Dal contorno 2D della mano ai punti fondamentali e alla posizione dei polpastrelli Filtraggio Limitazioni dell algoritmo proposto Applicazione: rendering e force feedback L animazione della mano Il feedback aptico ed i risultati Conclusioni e sviluppi futuri 61 3

4 4

5 Elenco delle figure 1.1 Esempi di tecniche per il rilevamento della posa della mano Il gravity grabber sviluppato da Kouta Minamizawa Kinect con frame di riferimento Modello pinhole della camera Rappresentazione delle linee epipolari Sistema di riferimento per due camere parallele Proiezione di punti su piani immagine Sistema composto da un proiettore ed una camera allineati Pattern proiettato da Kinect Immagine di profondità con bounding box Posizione dell avambraccio rispetto alla mano Esempio di risultato dopo aver applicato la trasformata di distanza Rappresentazione grafica dei Convexity Defects Dettaglio della finestra di tracking Punti e vettori fondamentali considerati nell algoritmo di tracking Errore medio con filtro di Kalman Errore medio rilevamento centro di massa Errore medio angolo di rotazione asse Z Errore medio angolo di rotazione assi X e Y Dispositivi aptici Omega Sistema di rendering aptico basato su Kinect

6 4.3 Errore medio angolo di rotazione indice e pollice Esempio di simulazione di presa di un oggetto cubico Traiettoria dell oggetto durante la simulazione di presa Forza di contatto resa per il pollice Forza di contatto resa per il dito indice Tempo di esecuzione rilevato per il processo

7 Capitolo 1 Introduzione Due contesti che costituiscono un attiva area di ricerca rappresentano due settori di relativa integrazione. Quello dell hand tracking, quindi del rilevamento della posizione, della postura e dei movimenti della mano umana, e lo sviluppo di dispositivi aptici in grado di rendere all utilizzatore le forze dell ambiente virtuale. L informazione sul movimento umano è necessaria per i dispositivi aptici, così come la loro presenza fornisce quel livello di realismo che rende l interazione uomo-realtà virtuale completa. Da un lato, vengono ricercate le tecniche migliori, più accurate, meno onerose in termini economici, dall altro i dispositivi aptici indossabili soffrono di una carenza d informazione in quanto studiati per essere di piccole dimensioni, non ingombranti e applicabili direttamente dove la forza deve essere percepita nella realtà: ad esempio sulle dita, considerando la mano umana. L introduzione da parte di Microsoft di un nuovo sensore denominato Kinect [1], dotato di camere per il rilevamento della profondità e del colore degli oggetti, può inserirsi in questo contesto, per produrre le informazioni necessarie alla resa tattile fornita dagli attuatori. Lo studio del dispositivo può da un lato rappresentare una fonte d informazione accurata, poco costosa e poco pesante dal punto di vista computazionale così da poter essere utilizzata in larga scala, dall altro far progredire in modo ancora più rapido la ricerca sugli attuatori indossabili in quanto una loro introduzione nello stesso contesto permette la percezione dell oggetto virtuale come reale, coinvolgendo i tre sensi principali quali la vista, l udito ed il tatto. 7

8 Esistono diversi approcci per il rilevamento della posizione e della configurazione della mano nello spazio 3D: la ricerca di punti fondamentali e corrispondenze può avvenire tramite marcatori, patterns colorati, guanti provvisti di sensori o direttamente sulla mano nuda. Di seguito vengono brevemente introdotte le tecniche fondamentali: alcune soluzioni sono rappresentate in Fig Motion-capture basata su marcatori: questo sistema è oggetto di ricerca in diversi campi applicativi, ma richiede marcatori retroriflettenti o LED [2] intrusivi oltre che complessi e laboriosi setup delle camere. Esso è però un tipo di metodo che garantisce un elevato livello di accuratezza e precisione data l effettiva identificabilità dei punti di riferimento. Si tratta inoltre di un tipo di soluzione che può rivelarsi costosa e richiedere camere multiple. Tracking della mano nuda: è un tipo di tracking anch esso rappresentante un attiva area di ricerca. Il rilevamento dei contorni e delle silhouettes sono i più comuni metodi utilizzati per identificare la posa della mano. Effettuata con l utilizzo di camere, può soffrire del cambiamento delle condizioni luminose dell ambiente e necessitare di algoritmi complessi a livello computazionale: essi infatti non si prestano per applicazioni real-time, e ciò ne può precludere l utilizzo per applicazioni di controllo in ambienti virtuali. Soluzioni che prediligono velocità di computazione con la semplificazione degli algoritmi perdono a livello di risoluzione e precisione. In questo modo ad esempio è possibile tracciare la posizione approssimata e l orientazione della mano oltre a due o tre gradi di libertà aggiuntivi per la posizione. Applicazioni per il riconoscimento dei gesti della mano sono comunque state proposte nel corso degli anni, anche con buoni livelli di risultati [3] [4]. Il lavoro presentato nei capitoli successivi si propone di percorrere questo tipo di direzione, cercando di superare le limitazioni imposte sia dall hardware che dagli algoritmi utilizzati. 8

9 Stima della posa data-driven: è un tipo di tecnica che si basa su una ricerca in database, che può presentare problemi dal punto di vista del livello e complessità di tale ricerca. Sono stati introdotti sistemi che effettuano ricerche in un database di pose generate a livello software [5] per la stima della posa del corpo, tecniche di approssimazione nearest neighbor [6] per la stima della posa della mano o database di silhouettes. Il pattern distintivo deve essere il può possibile privo di ambiguità per permettere la corretta interpretazione della posa, migliorare l accuratezza e la velocità di esecuzione. Hand-tracking con guanti: tali sistemi, come il P5 Data Glove e il CyberGlove di Immersion presentano un elevata accuratezza nella cattura dell input 3D e possono essere utilizzati in contesti real-time. Tuttavia si tratta si soluzioni molto costose ed ingombranti, adatte soltanto ad un area di ricerca e non proponibili per l uso di largo consumo. Essi si basano su esoscheletri o numerosi sensori montanti sul guanto, che possono essere inoltre costrittivi per i movimenti. Hand-tracking con marcatori colorati: si tratta di un tipo di tracking basato sull identificazione di determinati punti fondamentali tramite l analisi del colore. Lavori precedenti in tale ambito hanno dimostrato l utilizzo di questa tecnica in domini limitati o per brevi sequenze di movimento [7]. Ad esempio vengono associati ad i giunti delle dita anelli colorati in modo da permetterne l identificazione ed ottenere la posa della mano tramite cinematica inversa. Tale tecnica può essere utilizzata assieme all approccio data-driven per ricercare la posa della mano che meglio combacia con l immagine rilevata. Uno dei primi esperimenti di uso di Kinect nel contesto aptico è stato effettuato in una demo prodotta dal Laboratorio di Biorobotica dell Università di Washington [8]. Essa consiste nell usare Kinect per costruire un immagine di profondità della scena 3D con oggetti che possono essere toccati virtualmente 9

10 Fig. 1.1: Tre esempi di come è possibile rilevare la posizione della mano: tramite guanti provvisti di sensori (sinistra), tramite marcatori colorati (destra) o tramite marcatori posti sui giunti (in basso) a distanza utilizzando dispositivi aptici come il PHANTOM o altri dispositivi prodotti dallo stesso gruppo di ricerca. Si tratta di un sistema ad alto costo computazionale, in quanto l intera scena deve essere aggiornata tramite calcoli proiettivi, e l aggiornamento del movimento risulta infatti ad un basso framerate, anche se nessun avatar rappresentativo del dispositivo aptico viene per esempio inserito all interno della scena. L approccio proposto dal lavoro descritto nei capitoli successivi è diverso. Quello che si è voluto studiare è l utilizzo della tecnologia di Kinect non per costruire una mappa digitale dell ambiente ma come un componente connesso al dispositivo aptico stesso. In particolare, si vuole usare il sensore di Kinect per identificare la posizione della mano nello spazio e poter così controllare l avatar ad essa associato nell ambiente virtuale. In altre parole, non ci foca- 10

11 Fig. 1.2: Il gravity grabber sviluppato da Kouta Minamizawa lizziamo sull oggetto ma sull organo coinvolto nell esperienza tattile: la mano umana. L obiettivo principale di questo studio è sviluppare un sistema integrato di dispositivo aptico indossabile, che possiamo considerare inoltre una promettente area di ricerca in aptica. Per citare un esempio di dispositivo aptico indossabile, si può considerare il gravity grabber sviluppato da Kouta Minamizawa e descritto in [9]: esso è un dispositivo indossabile provvisto di due motori (Fig. 1.2) per il feedback di forza al punto di contatto dei polpastrelli. La differenza principale di questo tipo di dispositivo rispetto ai più sofisticati e complessi esoscheletri [10] è che il feedback cinestetico è praticamente inesistente ed il feedback di forza è principalmente tattile [11]. L altro svantaggio è che la parte sensibile della mano umana o del braccio è scarsa. Cercare soluzioni per risolvere quindi il problema dell insufficienza di precisione, accuratezza e livello di dati di rilevamento nel campo del wearable haptics è l obiettivo proposto attraverso la tecnologia fornita da Kinect. Rilevare o tracciare la mano umana è fondamentale in aptica per localizzare l avatar nell ambiente virtuale e per implementare correttamente gli algoritmi di resa delle forze nei dispositivi aptici ad impedenza come quelli utilizzati nel lavoro. Come detto in precedenza, diverse soluzioni sono possibili per ovviare a questo problema, come l uso di guanti sensorizzati, marcatori [12] [13] o camere [14]. Comunque, tutti questi tipi di approccio possono risultare da una parte poveri in termini di performance, troppo complessi per l utilizzo in tempo reale 11

12 o troppo costosi. Inoltre, la maggior parte delle soluzioni fa uso di dispositivi addizionali che devono essere indossati dall utilizzatore, facendo diventare il sistema ingombrante, talvolta limitativo, ma soprattutto inadatto ad un integrazione con attuatori di piccole dimensioni quali i dispositivi indossabili citati in precedenza. Quello che verrà presentato e che è stato oggetto del lavoro è quindi uno dei primi tentativi di utilizzo di Kinect come sensore per i dispositivi aptici indossabili. E stato sviluppato un algoritmo basato su euristiche per il tracking della mano e la successiva integrazione con l avatar virtuale, così da permetterne l animazione ed il controllo all interno della scena tridimensionale, l interazione con la fisica dell ambiente riprodotto e gli algoritmi di f orce rendering, con particolare attenzione rivolta al realismo della scena e all effettiva utilizzazione in un contesto real-time. L esempio su cui ci si è concentrati è un task di presa di oggetti attraverso due punti di contatto: è ovviamente conseguenziale che i vantaggi dei dispositivi aptici indossabili sono anche più evidenti quanto un interazione a multi punto di contatto è considerata [15]. Nel Capitolo 2 sarà descritta la tecnologia hardware di Kinect, come vengono acquisiti i dati ed i parametri necessari per la calibrazione e la conversione tra gli spazi. Nel Capitolo 3 sarà descritto l algoritmo implementato, attraverso le parti fondamentali che lo compongono e le principali funzioni utilizzate, considerandone infine le limitazioni. Nel Capitolo 4 sarà descritta l applicazione dei dati ottenuti da tale algoritmo per il controllo di un avatar della mano umana all interno dello spazio virtuale con i risultati ottenuti in un esperimento effettuato di presa e spostamento di un oggetto con feedback di forza attraverso attuatori montati sulle dita. 12

13 Capitolo 2 Kinect: analisi dell hardware e calibrazione In questa sezione verrà brevemente introdotto l hardware di Kinect, sarà discusso il funzionamento di tale tecnologia in riferimento al tipo di dati che verranno utilizzati (dati di profondità attraverso la disparità e dati nello spazio attraverso le coordinate del piano immagine) ed infine verranno riportate e commentate le funzioni di calibrazione ed il loro utilizzo. 2.1 L hardware di Kinect Kinect [1] è un nuovo tipo di tecnologia di game controller introdotta da Microsoft nel Novembre Sin dal suo lancio è stato evidente che il dispositivo avrebbe trasformato non solo il settore dei giochi da console a cui esso è dedicato e che Microsoft ha inizialmente inteso come unico ambito applicativo, ma che avrebbe potuto trovare applicazione in molti altri possibili settori, relativi alla robotica, alla realtà virtuale o al controllo gestuale, grazie alla sua abilità di tracciamento dei movimenti e di riconoscimento vocale, oltre ad essere in grado di identificare volti, tutto senza la necessità di alcun altro dispositivo addizionale [16]. Kinect (Fig. 2.1) interpreta scene 3D grazie ad una struttura basata su una proiezione continua ad infrarossi di pattern pseudo-casuali di punti. Esso ha una conformazione da web-cam di ridotte dimensioni e permette all utilizzatore di controllare ed interagire con un mondo virtuale attraverso 13

14 un interfaccia naturale, con l utilizzo di gesti, movimenti, comandi vocali o presentando immagini od oggetti. Il dispositivo include una camera a colori RGB, un sensore di profondità ed un microfono stereo. Tale dispositivo consente un Fig. 2.1: Il dispositivo Kinect prodotto da Microsoft con il frame di riferimento della camera. L asse z è uscente dalla camera completo rilevamento del moto del corpo, e riconoscimento facciale e gestuale. Il sensore di profondità consiste in un proiettore laser ad infrarossi combinato con un sensore monocromatico CMOS, e consente a Kinect di processare scene tridimensionali in ogni condizione di luce ambientale [1]. Questa tecnologia è stata prodotta da Israeli PrimeSense [17]. Una variante della ricostruzione 3D basata su immagini, descritta nel paragrafo successivo, viene utilizzata per ottenere la profondità del punto osservato nella scena 3D [18]. Il range di sensibilità del sensore di profondità è aggiustabile a seconda dello scopo di utilizzo, ed il software di Kinect è capace di calibrare automaticamente il sensore basandosi su specifiche necessità o sull ambiente di utilizzo. Kinect consente di riconoscere simultaneamente fino a sei persone, incluse due in movimento per un analisi del moto con un estrazione di features di 20 giunti per giocatore attivo. L unità centrale del sensore era stata originariamente programmata in modo da avere al proprio interno un microprocessore che potesse occuparsi di operazioni quali la mappatura dello scheletro, ma l idea è stata poi abbando- 14

15 nata: infatti la richiesta di risorse della cpu da parte di Kinect è minimale. In questo modo è possibile ottenere dal dispositivo una vasta e diversificata gamma di informazioni e dati che coprono l intero range di necessità per lo scopo di tracking di persone od oggetti. Attraverso studi sperimentali, è stato determinato che il sensore di Kinect processa il flusso video ad un frame rate di 30 Hz. Lo stream RGB usa una risoluzione VGA ad 8 bit di profondità con dimensione di 640x480 pixels con un filtro di Bayer per il colore, mentre il sensore monocromatico di profondità genera un flusso dati a risoluzione VGA (640 x 480 pixels) con 11 bit di profondità, quindi con 2048 livelli di sensitività. Il sensore di Kinect ha un range di utilizzo da un minimo di 0.4 ad un massimo di 4.0 metri. Esso ha un campo di vista angolare di 57 orizzontalmente e 43 verticalmente, mentre il fulcro motorizzato è capace di uno spostamento di 27 verso l alto o verso il basso, controllabile via software. Il campo orizzontale ad una distanza di 0.8 m è all incirca 87 cm, mentre quello verticale circa 63 cm, risultando quindi una risoluzione di 1.3 mm per pixel. La risoluzione spaziale x/y a 2 metri di distanza dal sensore è di 3 mm, mentre la risoluzione di profondità z sempre a due metri di distanza è di 1 cm. 2.2 Il calcolo dei valori di disparità attraverso la structured light Per l utilizzo all interno di un algoritmo di tracking, è importante capire come lavora l hardware sensoriale di Kinect e quindi il tipo di dati che è necessario gestire ed interpretare. Per fare ciò, è necessario prima introdurre brevemente due concetti: le definizioni fondamentali del modello della camera [19] e alcune nozioni basilari sulla geometria epipolare, con riferimento al caso preso in esame di due camere calibrate poste parallelamente di fronte alla scena. In seguito tali concetti saranno applicati all approccio di Kinect per ottenere la struttura 3D della scena. 15

16 2.2.1 Il modello della camera e la geometria epipolare Il modello della telecamera segue quello detto pinhole, nome che deriva dal fatto che lo schema di tale modello è analogo alla proiezione di un immagine all interno di un ambiente attraverso un piccolo foro, in cui l immagine si propaga attraverso lo spazio lungo delle linee immaginarie dette linee ottiche che, per proiezione prospettica, si incontrano in un unico punto chiamato centro ottico. Tale schema è mostrato in Fig. 2.2, in cui è possibile distinguere un piano immagine, o piano retina, indicato con R, un piano f ocale contenente il centro ottico ed indicato con F, ed il centro ottico stesso C. La retta passante per C ed ortogonale ad R viene chiamata asse ottico mentre il suo punto di intersezione con il piano immagine punto principale. Il sistema di riferimento per lo spazio tridimensionale, detto sistema standard x, y, z viene fissato come centrato in C e con l asse z coincidente con l asse ottico. Vengono indicati con X = [x, y, z] T le coordinate di un generico punto nello spazio tridimensionale e con x = [u, v] T le coordinate della proiezione di X su R. Fig. 2.2: Il modello pinhole della telecamera Considerando quindi la proporzionalità dovuta alla proiezione prospettica, 16

17 possiamo scrivere (valori in metri) da cui si ottengono le due equazioni x : u = z : f y : v = z : f u = xf z v = yf z (2.1) in cui è stato assunto, senza perdere di generalità z = f, che è possibile scrivere come z = f. Si tratta comunque di una relazione tra le coordinate sul piano immagine e quelle nello spazio tridimensionale non lineare. Si utilizza quindi una forma matriciale omogenea per poterci ricondurre ad una relazione lineare. Ponendo quindi U h = u z e V h = v z, otteniamo la forma matriciale: U h V h S h = f f x y z 1 (2.2) Con S h 0 sempre tranne che in caso di punto appartenente al piano focale F, il che implicherebbe avere delle linee di proiezione verso l infinito. La relazione tra le coordinate sul piano immagine e quelle reali è espressa quindi dalla seguente equazione x h = P m X h (2.3) dove x h = [x, s] T e X h = [X, 1] T, mentre P m è l applicazione lineare o matrice di trasf ormazione prospettica della camera. In realtà il piano retina è fisicamente riconducibile al ccd sul quale l immagine arriva dopo aver attraversato l obiettivo della telecamera. Risulta quindi conveniente esprimere le coordinate 17

18 di x in pixel anziché metri. Per il piano R valgono quindi le seguenti relazioni: u new = k u u + u 0 = kuxf z + u 0 v new = k v v + v 0 = kvyf z + v 0 con [u 0, v 0 ] coordinate del punto principale e k u,k v numero di pixels per metro (pixel/m), rispettivamente per u e v. La matrice prospettica, dopo la scalatura ottenuta per i pixel, può essere riscritta come P p = fk u 0 u 0 0 fk v v Infine, ponendo α u = fk u e α v = fk v otteniamo la matrice K detta matrice di calibrazione α u 0 u 0 K = 0 α v v 0 (2.4) in cui α u e α v rappresentano la distanza focale espressa rispettivamente in pixel orizzontali e verticali. α u, α v, u 0 e v 0 vengono detti parametri intrinseci della camera. Si può infine notare che la matrice identità è in realtà la forma normalizzata della matrice K in cui la distanza f = 1 e u 0 = v 0 = 0 poiché il punto principale è allineato con il centro ottico. Quindi la matrice di proiezione della camera P può essere scritta come P = K[I 0] (2.5) Tale matrice viene utilizzata per le considerazioni della geometria epipolare, che verrà di seguito brevemente discussa [20], prendendo in esame il caso di una camera allineata ad un altra, come è stato implementato nell hardware di Kinect considerando il sistema formato da due camere calibrate. La geometria 18

19 epipolare descrive le relazioni ed i vincoli geometrici che legano due immagini 2D della stessa scena 3D catturata da due camere con posizione ed orientamento distinti: essa quindi permette la ricostruzione della scena tridimensionale a partire da due immagini stereoscopiche e quindi l acquisizione dei dati di profondità dei punti di interesse nello spazio. Per ogni punto nella prima immagine (prima camera) è quindi necessario determinare il punto corrispondente nella seconda immagine (seconda camera). Per ogni coppia di punti ottenuta, si determina poi il punto 3D tramite tecniche di triangolazione. Un punto in un immagine genera una linea epipolare nell altra, ed il punto corrispondente sulla seconda immagine giace su tale linea. La linea epipolare l è l immagine del raggio attraverso x, vettore di dimensione 3 proiezione sul piano immagine del punto nello spazio. L epipolo e è il punto di intersezione della linea congiungente i centri ottici delle due camere con il piano immagine: tale linea è detta linea di base. L epipolo è quindi l immagine del centro dell altra camera: e = PC, e = P C, con P e P matrici di proiezione per la prima e seconda camera rispettivamente. Siccome la posizione del punto nello spazio 3D X, vettore di dimensione 4, varia, il piano epipolare (formato dai vertici X, C, C ) ruota attorno alla linea di base (Fig. 2.3). La geometria epipolare definisce Fig. 2.3: Rappresentazione delle linee epipolari una mappatura lineare dal punto x nella prima immagine alla linea epipolare l nella seconda immagine che dipende esclusivamente dalle matrici P e P delle 19

20 camere e non dalla loro struttura: l = Fx (2.6) dove F, matrice 3x3, è detta matrice fondamentale. La matrice P è definita in modo generale come P = K[R t] dove K rappresenta la calibrazione interna della camera (matrice 2.4), R e t sono la matrice di rotazione ed il vettore di traslazione dalle coordinate mondo alle coordinate del frame della camera. Per la prima camera vale quindi la relazione scritta in 2.5: P = K[I 0] considerando il frame di coordinate mondo allineato con la prima camera, mentre per la seconda vale P = K [R t] Nel caso preso in esame di due camere allineate, si considerano le seguenti matrici: f 0 0 t x K = K = 0 f 0, R = I, t = 0 (2.7) Al calcolo della matrice F è possibile arrivare dopo semplici considerazioni algebriche [20]: per un punto x nella prima immagine si retroproietta un raggio attraverso la matrice P, si scelgono quindi due punti del raggio e si proiettano sulla seconda immagine attraverso la matrice P e si computa infine la linea passante per i due punti p e q come l = p q. Sviluppando tali considerazioni attraverso calcoli algebrici otteniamo quindi la relazione scritta in 2.6. Essendo [t] la matrice skew-simmetrica del vettore t, la matrice fondamentale può essere scritta come F = K T [t] RK 1 20

21 Esplicitando tale relazione considerando le matrici scritte in 2.7 F = 1/f /f t x 0 t x 0 1/f /f = La corrispondenza tra x = [x, y, 1] T e x = [x, y, 1] T si può quindi ottenere scrivendo l equazione di appartenenza di un punto ad una retta x T l = 0 e sostituendo l dall equazione 2.6, risultando infine x T Fx = 0 (2.8) che esplicitata diventa [ x y 1 ] x y 1 = 0 Considerando il sistema di riferimento in Figura 2.4 ci si riduce a y = y e quindi ad una corrispondenza raster, cioè una scansione di linee orizzontali. In questo caso l epipolo e è un vettore appartenente al Kernel di F, Fe = 0. Considerando quindi K = K per entrambe le camere, R = I e t come definito Fig. 2.4: Sistema di riferimento per due camere parallele 21

22 in 2.7, abbiamo dal risultato precedente y = y ed è possibile calcolare la disparità d raw = x x che verrà utilizzata per ottenere la profondità z del punto considerato X = [X, Y, Z, 1] T nello spazio 3D. Come calcolato in 2.1, x f = X Z, x f = X + t x Z da cui ottenendo quindi x f = x f + t x Z d = x x = ft x z (2.9) Il movimento dell immagine, ossia la disparità (Fig. 2.5), è quindi inversamente proporzionale alla profondità z, per z d 0. Fig. 2.5: Due punti x e x proiettati sui piani immagine delle camere traslate lungo l asse x Come Kinect ottiene le corrispondenze di punti Come detto, Kinect utilizza un proiettore laser ad infrarossi. Esso illumina l ambiente con un pattern pseudo-casuale di punti noti in modo da rilevare le variazioni indotte dagli oggetti nella scena attraverso le distorsioni presenti 22

23 nel pattern: questo tipo di proiezione luminosa viene denominata structured light. L idea principale è quella di utilizzare quindi l illuminazione per creare corrispondenze di punti: questa tecnologia sino a questo momento veniva impiegata ad esempio nella metrologia industriale ed è anche conosciuta come active stereo o white light scanning. Essa utilizza un semplice principio di base: impiegare un proiettore per creare non ambigue corrispondenze e successivamente applicare la procedura di visione stereo. Se viene proiettato un singolo punto, il matching è unico, ma più immagini sono necessarie per coprire l intero oggetto. Un esempio di un estensione di tale principio è una proiezione di linee: per camere calibrate, la geometria epipolare è nota, e meno immagini sono necessarie (una per tutti i punti sulla linea), inoltre la linea interseca ogni linea epipolare in un punto, in questo modo il matching è ancora unico. Ma questa non è ancora la soluzione ottimale: è infatti possibile osservare che un proiettore è semplicemente una camera inversa, e la direzione del raggio è soltanto opposta. Il proiettore può così essere descritto dallo stesso modello geometrico: il pattern proiettato e l immagine definiscono due raggi nello spazio, così un proiettore ed una camera sono sufficienti per la triangolazione. Questa è la soluzione adottata da Kinect (Fig. 2.6). I vantaggi sono che il pat- Fig. 2.6: Sistema composto da un proiettore ed una camera allineati 23

24 tern proiettato (in Fig. 2.7 è riportato il patter proiettato da Kinect) è noto e consente di evitare la scansione riga per riga richiedendo un unica immagine per coprire l intera scena, in questo modo la profondità dipende soltanto dalla posizione del punto nell immagine e il calcolo di tale profondità si riduce ad un semplice table-lookup. In questo modo si ottiene inoltre una soluzione che garantisce una memorizzazione istantanea dei dati ed un procedimento in tempo reale, consentendone l utilizzo in tali ambiti. Fig. 2.7: Pattern proiettato da Kinect 2.3 I parametri di calibrazione di Kinect Kinect è stato prodotto per Xbox 360 e al momento dello sviluppo del lavoro Microsoft non aveva ancora rilasciato né un SDK (Software Development Kit) né un driver ufficiale. Comunque, sviluppatori indipendenti offrono soluzioni per utilizzare Kinect indipendentemente dalla console e con ogni sistema operativo attualmente in commercio. Utilizzando la piattaforma CLNUI prodotta da CodeLaboratories [21] o OpenNI sviluppata da PrimeSense [22] per l hardware che sta alla base di Kinect e che è possibile adattare anche a Kinect stesso grazie alla scrittura di driver appositi, è possibile connettere Kinect e 24

25 comunicare con il Sistema Operativo Windows e quindi con tutte le librerie necessarie per l interpretazione e la gestione dei dati. Nel lavoro, è stata utilizzata la piattaforma CLNUI, la quale fornisce un semplice ma completo set di funzioni per ottenere dati dal device (dati di profondità monocromatici o a colori grezzi o convertiti, di colore RGB) e per il controllo del motore di Kinect. I dati più importanti per lo studio vengono prelevati dal sensore di profondità di Kinect. Essi sono valori ad 11 bit (da 0 a 2047) e rappresentano i valori grezzi d raw di disparità di un punto p della scena 3D. In accordo con la procedura di calibrazione sviluppata in [23, 24], si ottiene d = Ktan(Hd raw + L) O (2.10) dove H = rad/pixel, K = 12.36cm, L = 1.18rad, O = 3.7cm mentre d è la profondità del punto p ottenuta dalla camera di Kinect espressa in cm. Questa approssimazione tangenziale ha una somma delle differenze quadratiche di 0.33cm 2 per i dati di calibrazione: essa comporta un errore di circa 5cm ad una distanza di 4 metri dalla camera e meno di 1cm entro i 2 metri. Una volta che la profondità è stata ottenuta tramite la funzione di calibrazione sopra menzionata, è possibile quindi rilevare il vettore di coordinate per il punto p all interno del frame di Kinect. Siano (i, j) le coordinate (pixels) della proiezione del punto p all interno del frame (Fig. 2.1). Siano (x, y, z) le coordinate del punto p 3D nel frame della camera espresse in cm. In [25] gli autori hanno proposto la seguente equazione per calcolare il vettore [x, y, z] T dalla proiezione (i, j) e la profondità d per il punto p x = (i c x )f x d y = (j c y )f y d z = d (2.11) dove f x = /pixel, f y = /pixel, c x = pixel e c y = pixel. 25

26 In [25] gli autori hanno testato che l accuratezza per la ricostruzione del punto p dal frame di profondità della camera di Kinect è minore di 1cm. Ulteriori test sull accuratezza della misura che è possibile ottenere con il sensore di Kinect sono stati effettuati nell ambito del Kinect node del progetto ROS Kinect al MIT [26]. In questo caso si è analizzato il comportamento del sensore tramite il rilevamento dei valori di disparità in relazione alla funzione inversa della distanza: a valori nell intorno della distanza di un metro l errore medio è di 0.6cm. In tabella 2.1 sono riportati i valori ottenuti attraverso l approssimazione tangenziale: per ogni valore di distanza in metri considerato, ad intervalli di 20cm, viene letto il valore di disparità dal sensore e quindi calcolato il valore attraverso la funzione in L errore di rilevamento della profondità è maggiore quanto più l oggetto si trova lontano dalla camera. Distanza [m] Disparità [pixel] Distanza rilevata [m] Tabella 2.1: Valori di profondità rilevati attraverso il sensore di Kinect Per utilizzare l informazione di colore assieme all informazione di profondità è necessario mappare i pixels di profondità con i pixels di colore, in quanto le due camere non hanno la stessa posizione. Il primo step è quello di eliminare la distorsione del sensore rgb e dell immagine di profondità utilizzando coefficienti di distorsione stimati. Successivamente, utilizzando i parametri intrinseci della camera, ogni pixel (x d, y d ) della camera di profondità può essere proiettato nello spazio metrico 3D usando la seguente formula, dove p indica il punto 26

27 ottenuto nelle nuove coordinate: p x = (x d cx d ) depth(x d,y d ) fx d p y = (y d cy d ) depth(x d,y d ) fy d p z = depth(x d, y d ) con fx d, fy d, cx d e cy d parametri intrinseci della camera definiti come sopra. E così possibile riproiettare ogni punto 3D sull immagine a colori ed ottenere il colore specifico del pixel. Definiamo due matrici, una di rotazione ed una di traslazione (per una distanza tra le due camere di circa 2.5cm), con parametri stimati durante la calibrazione stereo: [ ] R = , T = Applicando quindi la trasformazione di rotazione e traslazione al vettore con le coordinate del punto di interesse nello spazio, otteniamo i valori di colore. Indicando con V t = [v x, v y, v z ] T il vettore ottenuto dalla trasformazione di moltiplicazione con la matrice di rotazione e somma del risultato con il vettore di traslazione, abbiamo infine le coordinate 2D del punto d interesse sul piano immagine pc = [pc x, pc y ] T, da cui prelevare l informazione di colore: pc x = vx fx rgb v z + cx rgb (2.12) pc y = vy fy rgb v z + cy rgb dove fx rgb = , fy rgb = , cx rgb = e cy rgb = , valori espressi in pixel. 27

28 28

29 Capitolo 3 L algoritmo per il tracking della mano In questa sezione saranno illustrati i passi fondamentali dell algoritmo per il rilevamento dei punti fondamentali per il controllo della mano con 6 DoF (Degrees of Freedom) nello spazio ed il movimento delle dita (in particolare in riferimento all individuazione del pollice e del dito indice) attraverso il sensore di Kinect. 3.1 La procedura dell algoritmo di tracking L algoritmo di tracking della mano consiste nei seguenti steps eseguiti ad ogni passo di iterazione: 1. Lettura ed elaborazione dell informazione di profondità ottenuta da Kinect, 2. computazione del bounding box della mano, 3. estrazione dei punti chiave, come la posizione dei polpastrelli, 4. filtraggio delle traiettorie. L intero algoritmo di tracking è stato implementato con l utilizzo dell OpenCV Library [27]. Essa è una libreria per l utilizzo in Computer Vision originariamente sviluppata da Intel. Tale libreria comprende un ampio set di 29

30 funzioni per la manipolazione di immagini come set di pixel 2D, set di punti 3D, il filtraggio, l analisi strutturale delle forme, l analisi del moto. Nel corso degli anni e delle versioni la sua dimensione ed utilità è cresciuta ed oggi è una delle librerie maggiormente diffuse in tale contesto, meglio documentate e più affidabili, sia in termini di algoritmi utilizzati sia in termini di bassa complessità computazionale associata all ottimizzazione dell uso delle risorse hardware, come ad esempio la presenza di sistemi multi-core. Essa offre funzioni per l interpretazione geometrica, la rilevazione di contorni e di punti specifici all interno dell immagine acquisita che sono state utilizzate come base per l algoritmo di tracking. I dati su cui si è lavorato hanno una profondità di 8 bit per pixel in immagini di dimensioni di 640x480 pixels e risultano valori gestibili in modo ottimale in applicazioni real-time. Tale libreria, infatti, viene utilizzata nella prima di tre fasi di processo che devono essere eseguite in tempo reale in modo ciclico senza eccessiva latenza: la scrittura di funzioni quanto più possibile semplici e l acquisizione del minor numero di dati necessari per una corretta rappresentazione risulta quindi fondamentale per lo scopo. Nella discussione saranno presentate alcune delle funzioni principali per l implementazione dell algoritmo Elaborazione dell immagine di profondità I dati vengono ottenuti da Kinect nel modo descritto nel Capitolo 2: viene letta la mappa di profondità e costruita un immagine in scala di grigi della scena 3D. Per ogni punto nello spazio (x, y, z), coordinate espresse in cm, con proiezione sul piano immagine (i, j), coordinate espresse in pixel, la variabile di disparità d raw ad 11 bit di risoluzione viene letta dal sensore di Kinect e convertita in una variabile in virgola mobile rappresentante la distanza del punto dalla camera espressa in centimetri, considerando il sistema solidale al sistema di riferimento della camera, tramite l equazione riportata nel Capitolo 2 per il calcolo della coordinata z di profondità 30

31 z = 12.36[cm]tan( [rad/pixel]d raw [pixel] [rad]) 3.7[cm] ed in una ad 8 bit di profondità in modo da poter essere trattata come un immagine in scala di grigi attraverso le funzioni della libreria OpenCV. E possibile considerare come pixel d intensità maggiore quelli più vicini alla camera, o viceversa. Come suggerito nello sviluppo di una libreria per l utilizzo di Kinect sotto il sistema operativo OSX [28], è utile impostare una tabella di lookup con i 2048 valori di conversione memorizzati, da consultare al momento della richiesta dei dati, per un immediata risposta all interno delle funzioni che necessitano di essi. Considerando l intensità dei pixel più vicini alla camera maggiore di quelli più lontani e k il pixel dell immagine come k = i j si può scrivere intensità(k) = d raw (k) 2048 In questo modo i primi 8 valori ottenuti rappresentati in virgola mobile vengono scritti all interno di un vettore ad 8 bit e quindi convertiti a valori compresi tra 0 e 255. In Fig. 3.1 è riportato un esempio dell immagine di profondità ottenuta Computazione del bounding box della mano Dall immagine di profondità, viene quindi costruito il bounding box che include la mano, la quale è supposta essere l oggetto più vicino al sensore di Kinect. Nelle interazioni di tipo aptico con ambienti virtuali questa assunzione non comporta una limitazione in quanto l utilizzatore tipicamente interagisce con oggetti virtuali e di conseguenza nessun oggetto è interposto tra Kinect e la mano umana da considerare. Tale immagine di profondità viene quindi successivamente convertita in un immagine binaria eseguendo un operazione di threshold dei valori tra due limiti impostati a valori di intensità di 160 e 255, 31

32 Fig. 3.1: Immagine di profondità ottenuta dal sensore di Kinect con il disegno del bounding box della mano corrispondenti ad un eliminazione (valori= 0) degli oggetti più lontani di circa 90 cm e di quelli a livello del bianco, quindi solitamente pixel rumorosi o troppo vicini alla camera per essere rilevati. Negli esperimenti effettuati infatti il valore ottimale della distanza della mano dalla camera risulta di circa 70 cm. Si tratta di un valore adeguato per non perdere troppi dettagli sui punti della mano con il sensore utilizzato da Kinect. Un esempio del bounding box è riportato in Fig. 3.1: in questo caso si considera un bounding box tridimensionale, mentre nei prossimi step ci riferiremo al contorno 2D dell immagine. A livello dello step di threshold, un problema sorge quando con il movimento si viene a portare l avambraccio in una posizione similare a quella della mano, a livello di distanza z dalla camera. In Fig. 3.2 è riportato un esempio di acquisizione in due casi: quando la mano è avanti rispetto al polso e quando invece si trova sulla stessa profondità z. Per risolvere questo problema è possibile seguire due tipi di approcci. Nel primo viene costruito dapprima attorno alla mano il rettangolo orientato secondo l inclinazione, attraverso la funzione cvminarearect(), 32

33 Fig. 3.2: Caso in cui l avambraccio risulta indietro alla mano rispetto a quando raggiunge una distanza simile poi, considerando la lunghezza del lato maggiore, viene effettuata una eliminazione dei pixel appartenenti all avambraccio a partire dal lato inferiore ad esso relativo (si tratta quindi del lato opposto alla direzione dell orientazione della mano calcolata come descritto successivamente). Esso risulta un metodo piuttosto semplice a livello computazionale, ma può presentare possibili errori in caso di rotazioni marcate della mano rispetto all avambraccio. La seconda soluzione invece prevede l utilizzo della funzione cvdisttransform() che opera una trasformazione impostando la luminosità dei pixels in base alla distanza dal pixel nero più vicino (quindi dalla distanza dal contorno). E possibile impostare alcuni differenti tipi di distanza: in questo caso il calcolo viene effettuato utilizzando la distanza euclidea. In Fig. 3.3 è riportato un esempio del risultato della trasformata. Considerando quindi il pixel (o media dei pixels) più luminosi otteniamo il punto centrale della mano, che costituisce il centro del cerchio inscritto: calcolando quindi il raggio di lunghezza pari alla distanza del pixel dal contorno è possibile ottenere tramite di esso la rappresentazione interna della dimensione del palmo della mano. In questo modo, utilizzando il vettore direzione che sarà discusso più avanti per identificare la parte da eliminare è possibile isolare la mano rispetto all avambraccio. Rispetto alla 33

34 prima soluzione, essa risulta più complessa computazionalmente, in quanto è necessario un calcolo di distanza per ogni pixel appartenente al contorno, una verifica sulla luminosità dei pixel risultato della trasformazione ed infine una nuova scrittura dell immagine per l eliminazione dei pixel scartati. Essa non dipende però da un parametro numerico che deve essere impostato come nel primo caso (valore di inizio del taglio) e dà risultati in media più precisi anche in caso di rotazioni particolari della mano. Fig. 3.3: Esempio di risultato dopo aver applicato la trasformata di distanza: il cerchio rappresentato ha il suo centro nel pixel di luminosità maggiore Dal contorno 2D della mano ai punti fondamentali e alla posizione dei polpastrelli Una volta ottenuta l immagine ritagliata dal bounding box, viene rilevato il contorno della mano. La funzione utilizzata per trovare un contorno per gli oggetti in OpenCV [27] è cvfindcontours(): essa prende in ingresso un immagine binaria e ritorna il numero dei contorni trovati, con la possibilità di creare 34

35 una gerarchia a partire dai contorni esterni sino a quelli interni ad essi. La selezione viene effettuata scansionando tali contorni fino a quello di area massima, che rappresenta nel caso specifico quindi quello della mano: gli altri possono riferirsi a rumore o parti del polso da escludere. In uscita dalla funzione si ha un array di punti: viene eseguita una successiva approssimazione eliminando quelli a distanza minima sia per ottenere una forma geometricamente più rilevante sia per diminuire la complessità computazionale. L approssimazione si basa sull algoritmo di Douglas-Peucker [29]: esso trova, data una curva composta di segmenti, una curva similare con un numero minore di punti, basandosi sulla massima distanza tra la curva originale e la curva semplificata. Una volta che il contorno è stato memorizzato, è possibile computare l involucro convesso che lo comprende utilizzando la funzione OpenCV cvconvexhull(). I punti dell involucro rappresentano il contorno esterno della mano, dal polso alle dita se la mano è aperta come in Fig Questo set di punti è necessario per la funzione usata per identificare le dita: cvconvexitydefects(). La funzione lavora sul contorno e sull involucro convesso e computa quelli che vengono chiamati i difetti di convessità. Per ognuno di essi viene aggiornata una struttura con quattro dati fondamentali: un punto iniziale, corrispondente al polpastrello nella rilevazione finale delle dita, un punto di profondità, corrispondente al punto di congiunzione di due dita adiacenti, un punto f inale, corrispondente al polpastrello del dito adiacente ed una prof ondità, corrispondente alla distanza del punto di congiunzione (punto di profondità interno) dall involucro convesso: essa quindi rappresenta la distanza massima dall involucro convesso stesso. Il punto finale è dove il difetto di convessità termina. In Fig. 3.4 è riportato un esempio grafico della computazione dei difetti di convessità dalla funzione. La funzione cvconvexitydefects() fornisce informazioni rilevanti per localizzare la mano nello spazio 3D. In particolare, quindi, i difetti più vicini all involucro convesso determinano la posizione dei polpastrelli. Tale funzione non calcola però un numero limitato e sempre corretto di difetti, ma il risultato iniziale comprende numerosi punti, riconducibili a punti rumorosi 35

36 Fig. 3.4: Un esempio di computazione dei difetti di convessità. L algoritmo individua la posizione dei polpastrelli delle dita ed in particolare dell indice e del pollice che corrispondono ai punti iniziale e finale di un difetto di convessità e non di interesse per il rilevamento delle dita. E necessaria quindi un operazione di filtraggio e selezione che si basa su considerazioni sulla posizione degli stessi e sulla loro distanza dall involucro convesso. Per questa operazione e per il controllo della mano all interno dello spazio, è quindi necessario rilevare punti fondamentali quali il centro di massa, i punti esterni del polso ed il vettore di direzione della mano per identificare correttamente le dita e per permettere la rotazione nello spazio. In Fig. 3.5 sono riportati alcuni dettagli degli elementi rilevati per l interpretazione geometrica della mano all interno dell algoritmo: sono mostrati il rettangolo con gli assi allineati all immagine che racchiude la mano, quello orientato secondo il movimento rotatorio ed il cerchio di raggio minimo circoscritto da cui si possono ricavare informazioni sulla dimensione della mano da utilizzare per i parametri di selezione. Il calcolo di tali rappresentazioni geometriche avviene sulla base in ingresso dei punti di contorno o di involucro convesso rilevati, risultanti in un numero relativamente limitato, e questo comporta bassi costi a livello computazionale pur avendo 36

37 una rappresentazione fedele sul piano immagine delle caratteristiche in termini di dimensioni e orientazione della mano che stiamo considerando. Fig. 3.5: Tracking window: l algoritmo computa il bounding box 2D della mano, il cerchio circoscritto di raggio minimo e il bounding box 2D orientato. Vengono inoltre riportati il polpastrello del pollice, quello dell indice ed il centro della mano Per il calcolo del centro di massa della mano e per le informazioni sulla rotazione è necessario introdurre brevemente alcuni dettagli sul momento di un immagine e sui momenti spaziali e centrali. Nella trattazione di immagini e nella computer vision il momento di un immagine è un metodo statistico che calcola una media pesata dell intensità dei pixels dell immagine stessa, o una funzione di essi, con particolari proprietà e che si presta a utili interpretazioni. I momenti di un immagine sono utili per descrivere gli oggetti dopo la segmentazione: proprietà sull oggetto posso essere ottenuti da essi, come l area totale, il suo centro di massa ed informazioni sulla sua orientazione. Per una funzione 2D continua f(x, y) il momento di 37

38 ordine (p + q) è definito come x p y q f(x, y)dxdy per p, q = 0, 1, 2... Un teorema di unicità (Papoulis[1991]) afferma che se f(x, y) è continua a tratti ed ha valori diversi da zero solo in una parte finita del piano xy, esistono i momenti di ogni ordine, ed il momento m p,q è unicamente determinato da f(x, y) e viceversa. L immagine quindi risulta come somma di funzioni di momenti di ordine minore. Per un immagine in scala di grigi con un intensità del pixel I(x, y) i momenti m i,j sono calcolati come m i,j = x x i y j I(x, y) (3.1) y Considerando immagini binarie la funzione I(x, y) diventa 1 Objet I(x, y) = 0 Background Il momento di ordine 0 definisce quindi l area dell oggetto. m 0,0 = I(x, y)dxdy I momenti del primo ordine contengono invece informazioni sul centro di gravità dell oggetto (x c, y c ), che è possibile ricavare come x c = m 1,0 m 0,0 (3.2) y c = m 0,1 m 0,0 Il centro di gravità viene quindi anche chiamato momento del primo ordine e rappresenta la media della distribuzione dei pixel, mentre il momento del secondo ordine rappresenta la distribuzione attorno al centro: esso fornisce informazioni circa la distribuzione attorno alla media, ossia la varianza e la 38

39 deviazione standard. In questo modo, calcolando media e varianza dell oggetto nell immagine, possiamo trovare la posizione, l orientazione ed il rapporto d aspetto (rapporto tra altezza e larghezza) dell oggetto stesso. L equazione 3.1 descrive quelli che vengono chiamati momenti spaziali dell oggetto. Da questi è possibile ottenere i momenti centrali scalando i momenti spaziali con il centro di gravità dell oggetto (x c, y c ), in questo modo i momenti centrali sono relativi ad esso: essi risultano invarianti alla traslazione. µ p,q = (x x c ) p (y y c ) q f(x, y)dxdy I momenti centrali fino al secondo ordine risultano quindi: µ 0,0 = m 0,0 µ 0,1 = 0 µ 1,0 = 0 µ 1,1 = m 1,1 x c m 0,1 = m 1,1 y c m 1,0 µ 2,0 = m 2,0 x c m 1,0 µ 0,2 = m 0,2 y c m 0,1 µ 2,1 = m 2,1 2x c m 1,1 y c m 2,0 + 2x 2 c m 0,1 µ 1,2 = m 1,2 2y c m 1,1 x c m 0,2 + 2y 2 c m 1,0 Con la funzione OpenCV cvmoments() che ha in ingresso un immagine (binaria o in scala di grigi), o una sequenza di punti appartenenti ad un contorno, è possibile calcolare i momenti, che vengono memorizzati in una struttura dedicata. L informazione sull orientazione dell immagine può essere ottenuta utilizzando innanzitutto i momenti centrali del secondo ordine per costruire una matrice di covarianza. µ 2,0 = µ 2,0 µ 0,0 = m 2,0 m 0,0 x c 2 µ 0,2 = µ 0,2 µ 0,0 = m 0,2 m 0,0 y c 2 µ 1,1 = µ 1,1 µ 0,0 = m 1,1 m 0,0 x c y c 39

40 La matrice di covarianza dell immagine I(x, y) è quindi cov[i(x, y)] = µ 2,0 µ 1,1 µ 1,1 µ 0,2 (3.3) Gli autovettori di questa matrice corrispondono all asse maggiore ed a quello minore dell intensità dell immagine, e l orientazione può essere ottenuta dall angolo associato con il più grande autovalore. Si dimostra[30] che tale angolo θ[rad] è dato da: Gli autovalori della matrice di covarianza risultano θ = 1 2 arctan( 2µ 1,1 ) (3.4) µ 2,0 µ 0,2 µ 2,0 + µ 0,2 ± λ 1,2 = 4 µ 2 1,1 (µ 2,0 µ 0,2) 2 2 (3.5) Essi descrivono inoltre il rapporto d aspetto (dimensione relativa) dell oggetto. Tale calcolo risulta una buona approssimazione e un buon compromesso a livello computazionale (il calcolo dei momenti del primo e del secondo ordine risulta infatti molto rapido e quindi adatto per lo scopo di utilizzo in real-time dell applicazione) per ottenere i dati necessari alla descrizione della mano, con conseguenti considerazioni sia nello spazio 2D (ad esempio ottenendo facilmente l angolo di rotazione attorno all asse z uscente dal piano immagine) che in quello 3D (posizione ed orientazione). Esso risulta un metodo mediamente stabile per calcolare il vettore direzione sul piano xy come [sin(θ), cos(θ)] T, ottenendo quindi da ciò il punto verso up della mano come somma tra il punto identificato dal vettore ruotato dell angolo θ (scalato in rapporto alla dimensione della mano) ed il centro di massa. Il punto identificato p up = [p x, p y ] T sul piano immagine risulta quindi p x = x c + λ 1 sin(θ) p y = y c + λ 1 cos(θ) (3.6) 40

41 Esso inoltre risulta mediamente più stabile rispetto al calcolo del vettore direzione come differenza tra il centro di massa ed il punto centrale del polso, in quanto quest ultimo può risultare rumoroso in alcune posizioni assunte dalla mano, mentre il calcolo con il momento non risente del rumore causato da pochi pixel rispetto alla globalità dell oggetto. Vengono quindi considerate e confrontate entrambe le soluzioni per ottenere una rappresentazione precisa della direzione della mano, così da poter eliminare casi di divergenza eccessiva. Tramite i procedimenti descritti vengono quindi calcolate le coordinate del centro di massa c2d m = [c i, c j ] T e c3d m = [c x, c y, c z ] T e del punto lungo la direzione del vettore di norma unitaria orientato v2d d = [v i, v j ] T e v3d d = [v x, v y, v z ] T rispettivamente sul piano immagine e nello spazio tramite l equazione di conversione riportata in 2.11, considerando x c, y c come in 3.2 e p x, p y come in 3.6, ottenendo c2d m = v2d d = x c y c p x p y, c3d m =, v3d d = (x c c x )f x z c (y c c y )f y z c z c (p x c x )f x z v (p y c y )f y z v z v (3.7) ed il rispettivo vettore di direzione normalizzato nello spazio per il calcolo degli angoli di rotazione vdir = v3d d c3d m v3d d c3d, considerando con lo stesso ragionamento anche il vettore ad esso ortogonale. Una volta calcolate le coordinate m dei punti fondamentali, è possibile procedere con le considerazioni euristiche riguardanti l eliminazione dei punti di non interesse e successivamente con le osservazioni rivolte all identificazione del pollice e dell indice, le due dita di cui si richiede l informazione di posizione. Tali considerazioni vengono effettuate su vettori 2D appartenenti al piano immagine. Per il rilevamento dei 41

42 polpastrelli vengono quindi scartati: Tutti i difetti di convessità i cui punti di profondità relativi risultano con una distanza euclidea dal punto centrale del polso minore della distanza tra il centro di massa e lo stesso punto. Tutti i difetti di convessità aventi un angolo compreso tra i vettori differenza tra i punti iniziali ed i punti finali con il rispettivo punto di profondità maggiore di un valore fissato: 120 risulta una buona scelta tenendo conto che l apertura tra pollice ed indice non può raggiungere tale valore. Tutti i difetti di convessità le cui profondità (distanze) dall involucro convesso risultano minori di un valore fissato: il 10% della lunghezza del raggio del cerchio circoscritto rappresenta un buon valore tenendo conto che la chiusura tra pollice ed indice avvicina il punto di profondità corrispondente all involucro per un valore minimo superiore. Per il rilevamento dei due punti corrispondenti al polso si ordinano i punti trovati in funzione dell angolo rilevato al punto 2, in questo caso considerando i due angoli di ampiezza maggiore. Il centro della retta unente i due punti di profondità indica il punto di riferimento per la distanza dal centro di massa della mano. Dopo la selezione, è quindi necessario associare i punti rilevati alle dita, ed in particolare quelli di indice e pollice che vengono utilizzati al passo successivo per la resa delle forze. Innanzitutto viene fatta una distinzione tra i punti a destra del vettore direzione, che è possibile associare al pollice e all indice, e quelli a sinistra, dito medio, anulare e mignolo. Tali considerazioni valgono per il caso preso in esame riguardante la mano sinistra, in quanto l avatar tridimensionale è una sua rappresentazione, ma valgono in misura uguale ma inversa anche per la mano destra. Si considera quindi il prodotto vettoriale tra i vettori 2D (inseriti in un vettore 3D con componente z = 0): il primo è quello risultante dal vettore differenza tra il punto di profondità di una 42

43 concavità e il centro di massa della mano, normalizzato, mentre il secondo è il vettore direzione di norma unitaria. Se presenti risultati con z positivi (quindi rilevamento di indice o pollice, o entrambi), si verifica l angolo del vettore differenza con il vettore direzione: se questo risulta maggiore di 15 il punto iniziale del difetto di convessità corrispondente viene assegnato al pollice. Una rappresentazione grafica dei punti e dei vettori principali considerati è data in Fig Fig. 3.6: I punti ed i vettori fondamentali rilevati: in nero è riportato il vettore direzione, così come il centro di massa ed il punto centrale del polso. I punti colorati appartengono ai difetti di convessità e vengono chiamati punti di profondità Per eliminare il possibile errore di interpretazione del valore z del prodotto vettoriale precedentemente calcolato tra indice e medio (i due punti di angolo minore rispetto al vettore direzione) che al passo precedente può non aver correttamente scartato il dito medio, si controlla anche l angolo formato dal vettore differenza con il vettore ortogonale (a destra) al vettore direzione: l indice corrisponderà al punto di profondità riferito all angolo minore. Utilizzando 43

44 il rettangolo circoscritto orientato calcolato con la funzione minarearect() è possibile inoltre avere un indicazione sull ordinamento dei punti di concavità considerando l area del triangolo formato da i vertici superiore ed inferiore destri ed i rispettivi punti di profondità Filtraggio Tutti i valori rilevanti ottenuti dagli step precedenti vengono filtrati e regolati per ottenere variazioni attenuate attraverso un filtro di Kalman. La principale funzione OpenCV da utilizzare in questo caso è cvcreatekalman(), che crea un filtro di Kalman di dimensione variabile inizializzando le matrici del filtro. Per un generico punto p = (x, y, z) il filtro stima il vettore di stato s che consiste nella posizione del punto p e nella sua velocità v. Le equazioni della dinamica e della misura (m) sono date da s(k + 1) = As(k) + w(k) m(k) = Cs(k) + v(k) dove A = I t [ and C = 0 I I 0 ] essendo t l intervallo di tempo fra due iterazioni (esso non è minore di 1/30, essendo 30 fps il frame rate di Kinect) mentre w(k) e v(k) rappresentano i rumori della dinamica e della misura. Essi sono assunti essere indipendenti l uno dall altro, bianchi, e con una distribuzione di probabilità normale con matrici di covarianza Q e R, rispettivamente. La matrice Q è una matrice diagonale con valori di , mentre la matrice R è una matrice diagonale con valori di 3.0 per il centro di massa e gli angoli di rotazione della mano, di 0.5 per gli altri punti. La predizione avviene tramite la funzione cvkalmanpredict() che agisce sul filtro passato come argomento, a cui segue una correzione del filtro stesso effettuata tramite la misura reale per il passo successivo attraverso 44

45 la funzione cvkalmancorrect() che ha in ingresso quindi anche i valori della misura effettuata. Nonostante l applicazione del filtro che insegue la traiettoria della mano e delle dita sia effettuata con parametri necessariamente regolati per ottenere una buona stabilità, è possibile seguire un alta velocità di spostamento della mano, principalmente perché la complessità computazionale dell intero algoritmo risulta piuttosto bassa ed il sistema può essere aggiornato in tempo reale, e poiché come detto la precisione del sensore risulta essere minore di un centimetro per la profondità. In Fig. 3.7 sono riportati gli errori di distanza rilevati espressi in cm durante lo spostamento della mano all aumentare della velocità, relativamente al centro di massa (sinistra) ed ai polpastrelli (destra). I valori relativi alla matrice di covarianza R per il centro di massa rendono una maggiore stabilità rispetto ad un inseguimento immediato, mentre per i polpastrelli non è richiesto un valore troppo elevato in quanto gli spostamenti risultano di minore entità. Fig. 3.7: Errore medio rilevato in cm con i parametri di stabilità del filtro di Kalman all aumentare della velocità di spostamento della mano 3.2 Limitazioni dell algoritmo proposto In questa sezione vengono discusse le principali limitazioni dell algoritmo proposto. L errore principale riguarda il terzo passo dell algoritmo: infatti esso si basa su euristiche, considerazioni geometriche e funzioni che operano su vettori di punti. Affinché l algoritmo possa lavorare correttamente, è importante che la parte più ampia possibile della mano sia visibile alla camera, con il minor 45

46 numero possibile di sovrapposizioni di punti rispetto alla camera che ne impediscono il rilevamento totale o parziale. Come detto, alcune euristiche vengono utilizzate per identificare le dita e queste possono fallire o cadere in errore in caso di occlusioni di parti delle dita. La condizione peggiore generante occlusioni accade quando le dita divengono perpendicolari al piano xy della camera di Kinect. In questo caso nessuna informazione di profondità può essere rilevata per una grande parte della mano (i pixels risultano per la maggior parte = 0): tali posizioni non possono essere raggiunte, ma eventualmente solo stimate, ad esempio considerando la posizione relativa delle altre dita. In questa situazione, l errore medio diventa proporzionale alla chiusura delle dita sulla mano. La distanza ottimale della mano da considerare ed il sensore di Kinect è di circa 70cm. Man mano che ci si allontana da questa distanza, essa inizia a diventare troppo piccola, e vengono perse informazioni di profondità, divenendo una rilevazione povera in termini di accuratezza. Al contrario, Kinect non riesce a rilevare oggetti più vicini di cm. In Fig. 3.8 è riportato l errore medio espresso in cm, valutando la distanza tra il centro di massa reale e quello stimato attraverso il momento del primo ordine, con la mano posta all interno del range 65-75cm. Fig. 3.8: Errore medio rilevato in cm facendo compiere alla mano una rotazione attorno all asse Z del frame di riferimento 46

47 Nonostante le limitazioni imposte, un movimento ampio nello spazio è consentito: completo rispetto all asse spaziale z e fino a circa 70 rispetto agli assi spaziali x e y, e fino a circa 1m di traslazione lungo gli assi del piano xy della camera. Considerando la mano in posizione di riposo quando il palmo si trova parallelo di fronte alla camera, con le dita rivolte verso la direzione dell asse y positivo, in Fig. 3.9 è riportato l errore medio rilevato facendo compiere alla mano una rotazione oraria attorno all asse Z del frame di riferimento, uscente dal piano della camera (a sinistra). L angolo è calcolato attraverso i Fig. 3.9: Errore medio rilevato in gradi quando la mano compie una rotazione attorno all asse Z del frame di riferimento. A destra è riportato il caso in cui si utilizza la trasformata di distanza per ottenere il centro della mano momenti centrali. A destra è riportato invece l errore medio rilevato utilizzando la trasformata di distanza per ottenere il centro della mano. I risultati sono leggermente migliori in quanto la totalità della mano viene identificata correttamente anche in caso di rotazione accentuata, eliminando il rumore aggiunto da eventuali pixels appartenenti all avambraccio. In Fig sono infine riportati gli errori medi espressi in gradi quando la mano compie una rotazione oraria attorno all asse X (in alto) e Y (in basso) del frame di riferimento. 47

48 Fig. 3.10: Errore medio rilevato in gradi quando la mano compie una rotazione attorno agli assi X e Y del frame di riferimento 48

49 Capitolo 4 Applicazione: rendering e force feedback In questa sezione verrà illustrato il modello tridimensionale della mano utilizzato, come questo viene controllato attraverso i punti rilevati dall algoritmo descritto al capitolo precedente ed infine verranno riportati i risultati del test effettuato con gli attuatori aptici indossati sul pollice e sul dito indice per la resa delle forze nell interazione con oggetti virtuali. 4.1 L animazione della mano L algoritmo di tracking della mano descritto è stato utilizzato per animare l avatar della mano sinistra come discusso in [31] dove due dispositivi aptici fissi sono stati usati per tracciare il movimento dell indice e del pollice, come riportato in Fig Nel caso discusso vengono sostituite le misure della posizione e della rotazione della mano e delle posizioni dei polpastrelli con i dati forniti dall algoritmo di tracking basato sul sensore di Kinect: le misure dei polpastrelli di indice e pollice vengono fornite da Kinect come in Fig Naturalmente, in questo caso abbiamo più misure per meglio tracciare la mano umana di quelle fornite soltanto dalle interfacce aptiche come in [31], in cui lo studio era rivolto principalmente all interpretazione della postura della mano attraverso un numero minore di misure rispetto ai gradi di libertà, sfruttando appunto le cosiddette sinergie posturali. Il modello cinematico 49

50 Fig. 4.1: Due dispositivi Omega sono stati utilizzati in [31] per interazione aptica 3D in tempo reale dell avatar della mano umana è quello proposto dallo stesso Laboratorio di Sistemi e Robotica dell Università di Siena. Il modello biomeccanico dell avatar della mano ha uno scheletro cinematico con in totale 20 giunti: la sua animazione fa riferimento alla tecnica smooth skinning, conosciuta anche come sub space deformation (SSD) o linear blend skinning (LBS). Questa si basa sul creare inizialmente uno scheletro gerarchico all interno di un modello statico (ad esempio una mesh) nella posizione di riposo, detta anche dress pose. In seguito un set di giunti è assegnato ad ogni vertice della mesh con un peso corrispondente alla sua influenza. La posizione finale dei vertici è ottenuta come combinazione lineare di trasformazioni rigide di vertici considerando i pesi assegnati. Questo metodo risulta semplice da utilizzare, in quanto coinvolge soltanto computazioni algebriche, non richiedendo ad esempio la risoluzione di equazioni dinamiche, e quindi consente un implementazione in real-time della deformazione anche su sistemi hardware di basso livello. Di contro, siccome esso usa un semplice modello lineare per simulare una complessa relazione non lineare fra lo scheletro e la pelle, la deformazione non appare completamente naturale per tutte le trasformazioni dei giunti, per esempio in casi di ampie rotazioni. In aggiunta, l algoritmo è difficile da controllare poiché le combi- 50

ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI. (Visione 3D)

ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI. (Visione 3D) ESTRAZIONE DI DATI 3D DA IMMAGINI DIGITALI () Una immagine (digitale) permette di percepire solo una rappresentazione 2D del mondo La visione 3D si pone lo scopo di percepire il mondo per come è in 3 dimensioni

Dettagli

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video

Librerie digitali. Video. Gestione di video. Caratteristiche dei video. Video. Metadati associati ai video. Metadati associati ai video Video Librerie digitali Gestione di video Ogni filmato è composto da più parti Video Audio Gestito come visto in precedenza Trascrizione del testo, identificazione di informazioni di interesse Testo Utile

Dettagli

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I. 2004

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I. 2004 ESAME DI STAT DI LICE SCIENTIFIC CRS SPERIMENTALE P.N.I. 004 Il candidato risolva uno dei due problemi e 5 dei 0 quesiti in cui si articola il questionario. PRBLEMA Sia la curva d equazione: ke ove k e

Dettagli

Capitolo 13: L offerta dell impresa e il surplus del produttore

Capitolo 13: L offerta dell impresa e il surplus del produttore Capitolo 13: L offerta dell impresa e il surplus del produttore 13.1: Introduzione L analisi dei due capitoli precedenti ha fornito tutti i concetti necessari per affrontare l argomento di questo capitolo:

Dettagli

Processo di rendering

Processo di rendering Processo di rendering Trasformazioni di vista Trasformazioni di vista Il processo di visione in tre dimensioni Le trasformazioni di proiezione 2 Rendering nello spazio 2D Il processo di rendering (visualizzazione)

Dettagli

Un prototipo di 3D scanner

Un prototipo di 3D scanner Un prototipo di 3D scanner Visual Computing Group 1999 Visual Computing Group 1 Obiettivi Progettazione e realizzazione di uno 3d scanner a basso costo, a partire da hardware comune: una foto camera /

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

4. Proiezioni del piano e dello spazio

4. Proiezioni del piano e dello spazio 4. Proiezioni del piano e dello spazio La visualizzazione di oggetti tridimensionali richiede di ottenere una vista piana dell'oggetto. Questo avviene mediante una sequenza di operazioni. Innanzitutto,

Dettagli

Usando il pendolo reversibile di Kater

Usando il pendolo reversibile di Kater Usando il pendolo reversibile di Kater Scopo dell esperienza è la misurazione dell accelerazione di gravità g attraverso il periodo di oscillazione di un pendolo reversibile L accelerazione di gravità

Dettagli

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri COMPETENZA CHIAVE MATEMATICA Fonte di legittimazione Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE L alunno utilizza il calcolo scritto e mentale con i numeri

Dettagli

GIROSCOPIO. Scopo dell esperienza: Teoria fisica. Verificare la relazione: ω p = bmg/iω

GIROSCOPIO. Scopo dell esperienza: Teoria fisica. Verificare la relazione: ω p = bmg/iω GIROSCOPIO Scopo dell esperienza: Verificare la relazione: ω p = bmg/iω dove ω p è la velocità angolare di precessione, ω è la velocità angolare di rotazione, I il momento principale d inerzia assiale,

Dettagli

ISTITUTO COMPRENSIVO MONTEGROTTO TERME SCUOLA PRIMARIA DISCIPLINA: MATEMATICA - CLASSE PRIMA OBIETTIVI DI APPRENDIMENTO

ISTITUTO COMPRENSIVO MONTEGROTTO TERME SCUOLA PRIMARIA DISCIPLINA: MATEMATICA - CLASSE PRIMA OBIETTIVI DI APPRENDIMENTO PRIMA DELLA DISCIPLINA: MATEMATICA - CLASSE PRIMA L alunno si muove con sicurezza nel calcolo scritto e mentale con i numeri naturali. Legge e comprende testi che coinvolgono aspetti logici e matematici.

Dettagli

Anno 4 Grafico di funzione

Anno 4 Grafico di funzione Anno 4 Grafico di funzione Introduzione In questa lezione impareremo a disegnare il grafico di una funzione reale. Per fare ciò è necessario studiare alcune caratteristiche salienti della funzione che

Dettagli

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

CONI, CILINDRI, SUPERFICI DI ROTAZIONE

CONI, CILINDRI, SUPERFICI DI ROTAZIONE CONI, CILINDRI, SUPERFICI DI ROTAZIONE. Esercizi x + z = Esercizio. Data la curva x, calcolare l equazione del cilindro avente γ y = 0 come direttrice e con generatrici parallele al vettore v = (, 0, ).

Dettagli

Esempi di funzione. Scheda Tre

Esempi di funzione. Scheda Tre Scheda Tre Funzioni Consideriamo una legge f che associa ad un elemento di un insieme X al più un elemento di un insieme Y; diciamo che f è una funzione, X è l insieme di partenza e X l insieme di arrivo.

Dettagli

La distribuzione Normale. La distribuzione Normale

La distribuzione Normale. La distribuzione Normale La Distribuzione Normale o Gaussiana è la distribuzione più importante ed utilizzata in tutta la statistica La curva delle frequenze della distribuzione Normale ha una forma caratteristica, simile ad una

Dettagli

INTEGRALI DEFINITI. Tale superficie viene detta trapezoide e la misura della sua area si ottiene utilizzando il calcolo di un integrale definito.

INTEGRALI DEFINITI. Tale superficie viene detta trapezoide e la misura della sua area si ottiene utilizzando il calcolo di un integrale definito. INTEGRALI DEFINITI Sia nel campo scientifico che in quello tecnico si presentano spesso situazioni per affrontare le quali è necessario ricorrere al calcolo dell integrale definito. Vi sono infatti svariati

Dettagli

Esponenziali elogaritmi

Esponenziali elogaritmi Esponenziali elogaritmi Potenze ad esponente reale Ricordiamo che per un qualsiasi numero razionale m n prendere n>0) si pone a m n = n a m (in cui si può sempre a patto che a sia un numero reale positivo.

Dettagli

Introduzione all analisi dei segnali digitali.

Introduzione all analisi dei segnali digitali. Introduzione all analisi dei segnali digitali. Lezioni per il corso di Laboratorio di Fisica IV Isidoro Ferrante A.A. 2001/2002 1 Segnali analogici Si dice segnale la variazione di una qualsiasi grandezza

Dettagli

Sistema automatico di acquisizione e modellazione 3D a basso costo

Sistema automatico di acquisizione e modellazione 3D a basso costo Sistema automatico di acquisizione e modellazione 3D a basso costo Titolo progetto Unità di Brescia Sviluppo, realizzazione e caratterizzazione metrologica di digitalizzatore a basso costo basato su proiezione

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

La spirale iperbolica: Fu descritta per la prima volta da Pierre Varignon (1654-1722). L equazione, espressa in coordinate polari, è del tipo:

La spirale iperbolica: Fu descritta per la prima volta da Pierre Varignon (1654-1722). L equazione, espressa in coordinate polari, è del tipo: Esistono delle forme geometriche che sono in grado, per complessi fattori psicologici non del tutto chiariti, di comunicarci un senso d equilibrio, di gradimento e di benessere. Tra queste analizzeremo

Dettagli

CONTINUITÀ E DERIVABILITÀ Esercizi proposti. 1. Determinare lim M(sinx) (M(t) denota la mantissa di t)

CONTINUITÀ E DERIVABILITÀ Esercizi proposti. 1. Determinare lim M(sinx) (M(t) denota la mantissa di t) CONTINUITÀ E DERIVABILITÀ Esercizi proposti 1. Determinare lim M(sin) (M(t) denota la mantissa di t) kπ/ al variare di k in Z. Ove tale limite non esista, discutere l esistenza dei limiti laterali. Identificare

Dettagli

Complementi di Analisi per Informatica *** Capitolo 2. Numeri Complessi. e Circuiti Elettrici. a Corrente Alternata. Sergio Benenti 7 settembre 2013

Complementi di Analisi per Informatica *** Capitolo 2. Numeri Complessi. e Circuiti Elettrici. a Corrente Alternata. Sergio Benenti 7 settembre 2013 Complementi di Analisi per nformatica *** Capitolo 2 Numeri Complessi e Circuiti Elettrici a Corrente Alternata Sergio Benenti 7 settembre 2013? ndice 2 Circuiti elettrici a corrente alternata 1 21 Circuito

Dettagli

Capitolo V : Il colore nelle immagini digitali

Capitolo V : Il colore nelle immagini digitali Capitolo V : Il colore nelle immagini digitali Lavorare con il colore nelle immagini digitali L uso dei colori nella visione computerizzata e nella computer grafica implica l incorrere in determinate problematiche

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R Studio di funzione Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R : allo scopo di determinarne le caratteristiche principali.

Dettagli

Proiezioni Grafica 3d

Proiezioni Grafica 3d Proiezioni Grafica 3d Giancarlo RINALDO rinaldo@dipmat.unime.it Dipartimento di Matematica Università di Messina ProiezioniGrafica 3d p. 1 Introduzione Il processo di visualizzazione in 3D è intrinsecamente

Dettagli

3DE Modeling Color. E il modulo che si occupa della costruzione di modelli 3D con tessitura a colori.

3DE Modeling Color. E il modulo che si occupa della costruzione di modelli 3D con tessitura a colori. 3DE Modeling Color E il modulo che si occupa della costruzione di modelli 3D con tessitura a colori. E spesso necessario che alle informazioni geometriche di forma siano abbinate informazioni di colore

Dettagli

Il campionamento. La digitalizzazione. Teoria e pratica. La rappresentazione digitale delle immagini. La rappresentazione digitale delle immagini

Il campionamento. La digitalizzazione. Teoria e pratica. La rappresentazione digitale delle immagini. La rappresentazione digitale delle immagini ACQUISIZIONE ED ELABORAZIONE DELLE IMMAGINI Teoria e pratica La digitalizzazione La digitalizzazione di oggetti legati a fenomeni di tipo analogico, avviene attraverso due parametri fondamentali: Il numero

Dettagli

GEOMETRIA DELLE MASSE

GEOMETRIA DELLE MASSE 1 DISPENSA N 2 GEOMETRIA DELLE MASSE Si prende in considerazione un sistema piano, ossia giacente nel pian x-y. Un insieme di masse posizionato nel piano X-Y, rappresentato da punti individuati dalle loro

Dettagli

Sistemi Informativi Territoriali. Map Algebra

Sistemi Informativi Territoriali. Map Algebra Paolo Mogorovich Sistemi Informativi Territoriali Appunti dalle lezioni Map Algebra Cod.735 - Vers.E57 1 Definizione di Map Algebra 2 Operatori locali 3 Operatori zonali 4 Operatori focali 5 Operatori

Dettagli

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26 Indice L attività di recupero 6 Funzioni Teoria in sintesi 0 Obiettivo Ricerca del dominio e del codominio di funzioni note Obiettivo Ricerca del dominio di funzioni algebriche; scrittura del dominio Obiettivo

Dettagli

Corso di Visione Artificiale. Stereopsi. Samuel Rota Bulò

Corso di Visione Artificiale. Stereopsi. Samuel Rota Bulò Corso di Visione Artificiale Stereopsi Samuel Rota Bulò Introduzione La stereopsi è il processo di inferenza della struttura 3D da una coppia di immagini di una stessa scena catturate da posizioni diverse.

Dettagli

Slide Cerbara parte1 5. Le distribuzioni teoriche

Slide Cerbara parte1 5. Le distribuzioni teoriche Slide Cerbara parte1 5 Le distribuzioni teoriche I fenomeni biologici, demografici, sociali ed economici, che sono il principale oggetto della statistica, non sono retti da leggi matematiche. Però dalle

Dettagli

Plate Locator Riconoscimento Automatico di Targhe

Plate Locator Riconoscimento Automatico di Targhe Progetto per Laboratorio di Informatica 3 - Rimotti Daniele, Santinelli Gabriele Plate Locator Riconoscimento Automatico di Targhe Il programma plate_locator.m prende come input: l immagine della targa

Dettagli

Grandezze scalari e vettoriali

Grandezze scalari e vettoriali Grandezze scalari e vettoriali Esempio vettore spostamento: Esistono due tipi di grandezze fisiche. a) Grandezze scalari specificate da un valore numerico (positivo negativo o nullo) e (nel caso di grandezze

Dettagli

Il riduttore di focale utilizzato è il riduttore-correttore Celestron f/ 6.3.

Il riduttore di focale utilizzato è il riduttore-correttore Celestron f/ 6.3. LE FOCALI DEL C8 Di Giovanni Falcicchia Settembre 2010 Premessa (a cura del Telescope Doctor). Il Celestron C8 è uno Schmidt-Cassegrain, ovvero un telescopio composto da uno specchio primario concavo sferico

Dettagli

Analisi e diagramma di Pareto

Analisi e diagramma di Pareto Analisi e diagramma di Pareto L'analisi di Pareto è una metodologia statistica utilizzata per individuare i problemi più rilevanti nella situazione in esame e quindi le priorità di intervento. L'obiettivo

Dettagli

Sistema di ripresa con fotocamera digitale fissa Calibrazione

Sistema di ripresa con fotocamera digitale fissa Calibrazione Sistema di ripresa con fotocamera digitale fissa Calibrazione TUTORIAL CALIBRAZIONE FOTOCAMERA Sommario 1. Interfacciamento PC... 3 2. Collocamento fotocamera... 4 3. Distanza di ripresa... 5 4. Interfacciamento

Dettagli

Trasformazioni Geometriche 1 Roberto Petroni, 2011

Trasformazioni Geometriche 1 Roberto Petroni, 2011 1 Trasformazioni Geometriche 1 Roberto etroni, 2011 Trasformazioni Geometriche sul piano euclideo 1) Introduzione Def: si dice trasformazione geometrica una corrispondenza biunivoca che associa ad ogni

Dettagli

Basi di matematica per il corso di micro

Basi di matematica per il corso di micro Basi di matematica per il corso di micro Microeconomia (anno accademico 2006-2007) Lezione del 21 Marzo 2007 Marianna Belloc 1 Le funzioni 1.1 Definizione Una funzione è una regola che descrive una relazione

Dettagli

~ Copyright Ripetizionando - All rights reserved ~ http://ripetizionando.wordpress.com STUDIO DI FUNZIONE

~ Copyright Ripetizionando - All rights reserved ~ http://ripetizionando.wordpress.com STUDIO DI FUNZIONE STUDIO DI FUNZIONE Passaggi fondamentali Per effettuare uno studio di funzione completo, che non lascia quindi margine a una quasi sicuramente errata inventiva, sono necessari i seguenti 7 passaggi: 1.

Dettagli

TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA

TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA SCUOLA PRIMARIA DI CORTE FRANCA MATEMATICA CLASSE QUINTA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE AL TERMINE DELLA SCUOLA PRIMARIA L ALUNNO SVILUPPA UN ATTEGGIAMENTO POSITIVO RISPETTO ALLA MATEMATICA,

Dettagli

13. Campi vettoriali

13. Campi vettoriali 13. Campi vettoriali 1 Il campo di velocità di un fluido Il concetto di campo in fisica non è limitato ai fenomeni elettrici. In generale il valore di una grandezza fisica assegnato per ogni punto dello

Dettagli

Forze come grandezze vettoriali

Forze come grandezze vettoriali Forze come grandezze vettoriali L. Paolucci 23 novembre 2010 Sommario Esercizi e problemi risolti. Per la classe prima. Anno Scolastico 2010/11 Parte 1 / versione 2 Si ricordi che la risultante di due

Dettagli

2 Argomenti introduttivi e generali

2 Argomenti introduttivi e generali 1 Note Oltre agli esercizi di questa lista si consiglia di svolgere quelli segnalati o assegnati sul registro e genericamente quelli presentati dal libro come esercizio o come esempio sugli argomenti svolti

Dettagli

PROGETTO ESCAVATORE VIRTUALE

PROGETTO ESCAVATORE VIRTUALE PROGETTO ESCAVATORE VIRTUALE Facoltà di Ingegneria Industriale Corso di Laurea in Ingegneria Meccanica Anno Accademico 2011-2012 Matteo Condoleo 1 OBBIETTIVI Il presente progetto è stato realizzato per

Dettagli

bensì una tendenza a ruotare quando vengono applicate in punti diversi di un corpo

bensì una tendenza a ruotare quando vengono applicate in punti diversi di un corpo Momento di una forza Nella figura 1 è illustrato come forze uguali e contrarie possono non produrre equilibrio, bensì una tendenza a ruotare quando vengono applicate in punti diversi di un corpo esteso.

Dettagli

www.andreatorinesi.it

www.andreatorinesi.it La lunghezza focale Lunghezza focale Si definisce lunghezza focale la distanza tra il centro ottico dell'obiettivo (a infinito ) e il piano su cui si forma l'immagine (nel caso del digitale, il sensore).

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

DOMINIO E LIMITI. Esercizio 3 Studiare gli insiemi di livello della funzione f, nei seguenti casi: 1) f(x,y) = y2 x 2 + y 2.

DOMINIO E LIMITI. Esercizio 3 Studiare gli insiemi di livello della funzione f, nei seguenti casi: 1) f(x,y) = y2 x 2 + y 2. FUNZIONI DI DUE VARIABILI 1 DOMINIO E LIMITI Domini e disequazioni in due variabili. Insiemi di livello. Elementi di topologia (insiemi aperti, chiusi, limitati, convessi, connessi per archi; punti di

Dettagli

Trasformazioni 2D. Grande differenza rispetto alla grafica raster!

Trasformazioni 2D. Grande differenza rispetto alla grafica raster! Trasformazioni 2D Il grande vantaggio della grafica vettoriale è che le immagini vettoriali descrivono entità matematiche È immediato manipolare matematicamente tali entità In quasi tutte le manipolazioni

Dettagli

Correzione di immagini da camera Vexcel UltraCam utilizzando Geomatica OrthoEngine

Correzione di immagini da camera Vexcel UltraCam utilizzando Geomatica OrthoEngine Correzione di immagini da camera Vexcel UltraCam utilizzando Geomatica OrthoEngine di Philip Cheng Per molti anni la camera a pellicola aerotrasportata è stata la miglior scelta per l acquisizione di foto

Dettagli

La Visione Artificiale. La vis ione delle macchine La vis ione umana Acquis izione di immag ine

La Visione Artificiale. La vis ione delle macchine La vis ione umana Acquis izione di immag ine La Visione Artificiale La vis ione delle macchine La vis ione umana Acquis izione di immag ine Copyright Alcune slide sono tratte dal testo: Digital Image Processing Materiale didattico relativo si trova

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Corso di Scienza Economica (Economia Politica) prof. G. Di Bartolomeo

Corso di Scienza Economica (Economia Politica) prof. G. Di Bartolomeo Corso di Scienza Economica (Economia Politica) prof. G. Di Bartolomeo Lezione 14 Equilibrio economico generale (efficienza nello scambio) e fallimenti del mercato Facoltà di Scienze della Comunicazione

Dettagli

FUNZIONE REALE DI UNA VARIABILE

FUNZIONE REALE DI UNA VARIABILE FUNZIONE REALE DI UNA VARIABILE Funzione: legge che ad ogni elemento di un insieme D (Dominio) tale che D R, fa corrispondere un elemento y R ( R = Codominio ). f : D R : f () = y ; La funzione f(): A

Dettagli

UNIVERSITÀ DEGLI STUDI DI SIENA

UNIVERSITÀ DEGLI STUDI DI SIENA UNIVERSITÀ DEGLI STUDI DI SIENA FACOLTÀ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria Informatica, orientamento Robotica ed Automazione Tesi di Laurea Interazione Visuo-Aptica con Oggetti Deformabili

Dettagli

CURVE DI LIVELLO. Per avere informazioni sull andamento di una funzione f : D IR n IR può essere utile considerare i suoi insiemi di livello.

CURVE DI LIVELLO. Per avere informazioni sull andamento di una funzione f : D IR n IR può essere utile considerare i suoi insiemi di livello. CURVE DI LIVELLO Per avere informazioni sull andamento di una funzione f : D IR n IR può essere utile considerare i suoi insiemi di livello. Definizione. Si chiama insieme di livello k della funzione f

Dettagli

VALORE DELLE MERCI SEQUESTRATE

VALORE DELLE MERCI SEQUESTRATE La contraffazione in cifre: NUOVA METODOLOGIA PER LA STIMA DEL VALORE DELLE MERCI SEQUESTRATE Roma, Giugno 2013 Giugno 2013-1 Il valore economico dei sequestri In questo Focus si approfondiscono alcune

Dettagli

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S. 2002-03. A. Pisani, appunti di Matematica 1

Le funzioni continue. A. Pisani Liceo Classico Dante Alighieri A.S. 2002-03. A. Pisani, appunti di Matematica 1 Le funzioni continue A. Pisani Liceo Classico Dante Alighieri A.S. -3 A. Pisani, appunti di Matematica 1 Nota bene Questi appunti sono da intendere come guida allo studio e come riassunto di quanto illustrato

Dettagli

CONTINUITÀ E DERIVABILITÀ Esercizi risolti

CONTINUITÀ E DERIVABILITÀ Esercizi risolti CONTINUITÀ E DERIVABILITÀ Esercizi risolti. Determinare kπ/ [cos] al variare di k in Z. Ove tale ite non esista, discutere l esistenza dei iti laterali. Identificare i punti di discontinuità della funzione

Dettagli

Domande a scelta multipla 1

Domande a scelta multipla 1 Domande a scelta multipla Domande a scelta multipla 1 Rispondete alle domande seguenti, scegliendo tra le alternative proposte. Cercate di consultare i suggerimenti solo in caso di difficoltà. Dopo l elenco

Dettagli

a) Il campo di esistenza di f(x) è dato da 2x 0, ovvero x 0. Il grafico di f(x) è quello di una iperbole -1 1

a) Il campo di esistenza di f(x) è dato da 2x 0, ovvero x 0. Il grafico di f(x) è quello di una iperbole -1 1 LE FUNZIONI EALI DI VAIABILE EALE Soluzioni di quesiti e problemi estratti dal Corso Base Blu di Matematica volume 5 Q[] Sono date le due funzioni: ) = e g() = - se - se = - Determina il campo di esistenza

Dettagli

RETTE, PIANI, SFERE, CIRCONFERENZE

RETTE, PIANI, SFERE, CIRCONFERENZE RETTE, PIANI, SFERE, CIRCONFERENZE 1. Esercizi Esercizio 1. Dati i punti A(1, 0, 1) e B(, 1, 1) trovare (1) la loro distanza; () il punto medio del segmento AB; (3) la retta AB sia in forma parametrica,

Dettagli

Test, domande e problemi di Robotica industriale

Test, domande e problemi di Robotica industriale Test, domande e problemi di Robotica industriale 1. Quale, tra i seguenti tipi di robot, non ha giunti prismatici? a) antropomorfo b) cilindrico c) polare d) cartesiano 2. Un volume di lavoro a forma di

Dettagli

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Capitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore.

Capitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore. Capitolo II La forma del valore 7. La duplice forma in cui si presenta la merce: naturale e di valore. I beni nascono come valori d uso: nel loro divenire merci acquisiscono anche un valore (di scambio).

Dettagli

Comando STAMPA. Attiva la finestra di dialogo nella quale vengono impostati i parametri per ottenere tavole stampate:

Comando STAMPA. Attiva la finestra di dialogo nella quale vengono impostati i parametri per ottenere tavole stampate: Stampare disegni Comando STAMPA Attiva la finestra di dialogo nella quale vengono impostati i parametri per ottenere tavole stampate: Su plotter Su stampante In formato elettronico Corso 2D: Stampa Disegni

Dettagli

Progettazione del robot

Progettazione del robot Progettazione del robot MINDSTORMS EV3 Anche quest anno abbiamo deciso di usare unmattoncinolegomindstormsev3.sitratta di un evoluzione dellaversione precedentenxt2.0, migliorata sotto diversi aspetti.

Dettagli

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 I CODICI 1 IL CODICE BCD 1 Somma in BCD 2 Sottrazione BCD 5 IL CODICE ECCESSO 3 20 La trasmissione delle informazioni Quarta Parte I codici Il codice BCD

Dettagli

A.S. 2012-1013 CLASSE PRIMA SCUOLA PRIMARIA D ISTITUTO COMPETENZA CHIAVE EUROPEA DISCIPLINA

A.S. 2012-1013 CLASSE PRIMA SCUOLA PRIMARIA D ISTITUTO COMPETENZA CHIAVE EUROPEA DISCIPLINA ISTITUTO COMPRENSIVO STATALE di Scuola dell Infanzia, Scuola Primaria e Scuola Secondaria di 1 grado San Giovanni Teatino (CH) CURRICOLO A.S. 2012-1013 CLASSE PRIMA SCUOLA PRIMARIA OBIETTIVI DI Sviluppa

Dettagli

1. Distribuzioni campionarie

1. Distribuzioni campionarie Università degli Studi di Basilicata Facoltà di Economia Corso di Laurea in Economia Aziendale - a.a. 2012/2013 lezioni di statistica del 3 e 6 giugno 2013 - di Massimo Cristallo - 1. Distribuzioni campionarie

Dettagli

PointCloud 7.0 Anno 2011

PointCloud 7.0 Anno 2011 PointCloud 7.0 Anno 2011 Compatibilità con AutoCAD 2007-2012 ed AutoCAD 2007-2012 Supporto del formato nativo delle nuvole di punti di AutoCAD (PCG) e miglioramento delle performance riguardo la velocità

Dettagli

Misure di base su una carta. Calcoli di distanze

Misure di base su una carta. Calcoli di distanze Misure di base su una carta Calcoli di distanze Per calcolare la distanza tra due punti su una carta disegnata si opera nel modo seguente: 1. Occorre identificare la scala della carta o ricorrendo alle

Dettagli

SymCAD/C.A.T.S. modulo Canali Schema

SymCAD/C.A.T.S. modulo Canali Schema SymCAD/C.A.T.S. modulo Canali Schema Il modulo Ventilazione Standard permette di effettuare la progettazione integrata (disegno e calcoli) in AutoCAD di reti di canali aria (mandata e ripresa). Il disegno

Dettagli

e-dva - eni-depth Velocity Analysis

e-dva - eni-depth Velocity Analysis Lo scopo dell Analisi di Velocità di Migrazione (MVA) è quello di ottenere un modello della velocità nel sottosuolo che abbia dei tempi di riflessione compatibili con quelli osservati nei dati. Ciò significa

Dettagli

Tutorial 3DRoom. 3DRoom

Tutorial 3DRoom. 3DRoom Il presente paragrafo tratta il rilievo di interni ed esterni eseguito con. L utilizzo del software è molto semplice ed immediato. Dopo aver fatto uno schizzo del vano si passa all inserimento delle diagonali

Dettagli

2 FUNZIONI REALI DI VARIABILE REALE

2 FUNZIONI REALI DI VARIABILE REALE 2 FUNZIONI REALI DI VARIABILE REALE 2.1 CONCETTO DI FUNZIONE Definizione 2.1 Siano A e B due insiemi. Una funzione (o applicazione) f con dominio A a valori in B è una legge che associa ad ogni elemento

Dettagli

LA GRAFICA E LA GEOMETRIA OPERATIVA

LA GRAFICA E LA GEOMETRIA OPERATIVA LA GRAFICA E LA GEOMETRIA OPERATIVA La geometria operativa, contrariamente a quella descrittiva basata sulle regole per la rappresentazione delle forme geometriche, prende in considerazione lo spazio racchiuso

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti

Un ripasso di aritmetica: Rappresentazione binaria - operazioni. riporti Un ripasso di aritmetica: Rappresentazione binaria - operazioni A queste rappresentazioni si possono applicare le operazioni aritmetiche: riporti 1 1 0 + 1 0 = 1 0 0 24 Un ripasso di aritmetica: Rappresentazione

Dettagli

REGOLAMENTO (UE) N. 1235/2011 DELLA COMMISSIONE

REGOLAMENTO (UE) N. 1235/2011 DELLA COMMISSIONE 30.11.2011 Gazzetta ufficiale dell Unione europea L 317/17 REGOLAMENTO (UE) N. 1235/2011 DELLA COMMISSIONE del 29 novembre 2011 recante modifica del regolamento (CE) n. 1222/2009 del Parlamento europeo

Dettagli

Matematica e Statistica

Matematica e Statistica Matematica e Statistica Prova d esame (0/07/03) Università di Verona - Laurea in Biotecnologie - A.A. 0/3 Matematica e Statistica Prova di MATEMATICA (0/07/03) Università di Verona - Laurea in Biotecnologie

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

ESAME DI STATO DI LICEO SCIENTIFICO CORSO DI ORDINAMENTO 2004

ESAME DI STATO DI LICEO SCIENTIFICO CORSO DI ORDINAMENTO 2004 ESAME DI STATO DI LICEO SCIENTIFICO CORSO DI ORDINAMENTO 004 Il candidato risolva uno dei due problemi e 5 dei 10 quesiti in cui si articola il questionario. PROBLEMA 1 Sia f la funzione definita da: f

Dettagli

LA MISURAZIONE DEL CARATTERE

LA MISURAZIONE DEL CARATTERE TPO PROGETTAZIONE UD 03 GESTIONE DEL CARATTERE IL TIPOMETRO LA MISURAZIONE DEL CARATTERE A.F. 2011/2012 MASSIMO FRANCESCHINI - SILVIA CAVARZERE 1 IL TIPOMETRO: PARTI FONDAMENTALI Il tipometro è uno strumento

Dettagli

Compilatore risorse display grafico LCD serie IEC-line

Compilatore risorse display grafico LCD serie IEC-line Compilatore risorse display grafico LCD serie IEC-line aggiornamento: 22-11-2012 IEC-line by OVERDIGIT overdigit.com 1. Il display grafico LCD I PLC della serie IPC-line possono disporre opzionalmente

Dettagli

. Si determina quindi quale distanza viene percorsa lungo l asse y in questo intervallo di tempo: h = v 0y ( d

. Si determina quindi quale distanza viene percorsa lungo l asse y in questo intervallo di tempo: h = v 0y ( d Esercizio 1 Un automobile viaggia a velocità v 0 su una strada inclinata di un angolo θ rispetto alla superficie terrestre, e deve superare un burrone largo d (si veda la figura, in cui è indicato anche

Dettagli

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Teoria dei Giochi. Anna Torre

Teoria dei Giochi. Anna Torre Teoria dei Giochi Anna Torre Almo Collegio Borromeo 14 marzo 2013 email: anna.torre@unipv.it sito web del corso:www-dimat.unipv.it/atorre/borromeo2013.html IL PARI O DISPARI I II S T S (-1, 1) (1, -1)

Dettagli

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010 elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Il controllo della visualizzazione

Il controllo della visualizzazione Capitolo 3 Il controllo della visualizzazione Per disegnare in modo preciso è necessario regolare continuamente l inquadratura in modo da vedere la parte di disegno che interessa. Saper utilizzare gli

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

UNIVERSITÀ DEGLI STUDI DI PADOVA Facoltà di Ingegneria sede di Vicenza A.A. 2007/08

UNIVERSITÀ DEGLI STUDI DI PADOVA Facoltà di Ingegneria sede di Vicenza A.A. 2007/08 UNIVERSITÀ DEGLI STUDI DI PADOVA Facoltà di Ingegneria sede di Vicenza Corso di Disegno Tecnico Industriale per il Corso di Laurea triennale in Ingegneria Meccanica e in Ingegneria Meccatronica Tolleranze

Dettagli