Trasformazione a posa standard di point cloud di persone per re-identificazione

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Trasformazione a posa standard di point cloud di persone per re-identificazione"

Transcript

1 Università degli Studi di Padova DIPARTIMENTO DI INGEGNERIA DELL INFORMAZIONE Corso di Laurea Magistrale in Ingegneria Informatica Trasformazione a posa standard di point cloud di persone per re-identificazione Candidato: Alberto Basso Relatore: Emanuele Menegatti Correlatore: Matteo Munaro Anno Accademico

2

3 i Alla mia famiglia, Danilo, Giuseppina e Andrea, per avermi sostenuto e permesso di giungere fino a questo traguardo. Ad Alessandro, Luca, Stefano ed Umberto, per questi cinque impegnativi anni passati a studiare assieme. Alberto Basso

4 ii

5 iii Sommario Questa tesi si propone di analizzare e implementare tecniche per la creazione di modelli 3D da impiegare per la re-identificazione nell ambito del tracking di persone. In particolare, viene proposta una tecnica per la trasformazione di point cloud di persone a posa standard in tempo reale, impiegando le informazioni fornite dal tracking dello scheletro, la quale permette di ignorare il problema delle differenti pose che una persona assume. Il problema della re-identificazione viene quindi affrontato con un approccio derivato dalla 3D object recognition, dove si suppone che gli oggetti subiscano solamente trasformazioni rigide. Viene spiegato come utilizzare queste point cloud trasformate per comporre modelli 3D di persone in movimento che possono essere impiegate per la re-identificazione tramite ICP matching con nuove cloud, comparando la forma globale del corpo. Abstract This thesis targets the analysis and implementation of techniques for creating people 3D models for re-identification in people tracking. A novel technique is proposed for exploiting skeleton information to transform persons point clouds to a standard pose in real-time, which allows to disregard the problem of the different poses a person can assume. This way, we can tackle the re-identification problem with an approach borrowed from the 3D object recognition domain, where objects are supposed to undergo rigid transformations only. We explain how to use these transformed point clouds for composing 3D models of moving people which can be used for re-identification by means of an ICP matching with new test clouds, that is by comparing their global body shape.

6 iv

7 Indice 1 Introduzione Stato dell arte Struttura della tesi ROS - Robot Operating System Architettura a grafo PCL - Point Cloud Library OpenCV Microsoft Kinect Caratteristiche hardware Microsoft Kinect for Windows SDK OpenNI Tracking dello scheletro Kinect for Windows SDK Skeletal Tracker Algoritmo di tracking Caratteristiche dello scheletro OpenNI Skeletal Tracker Algoritmo di tracking Caratteristiche dello scheletro PCL Skeletal Tracker Algoritmo di tracking Caratteristiche dello scheletro Comparazione Trasformazione a posa standard Segmentazione del corpo in parti Algoritmo di trasformazione a posa standard Generazione modello 3D Pre-processing Voxel filtering ICP - Iterative Closest Points v

8 vi INDICE Statistical Outlier Removal filtering Moving Least Squares smoothing Re-identificazione di persone RGB-D people re-identification dataset Dataset BIWI RGBD-ID Dataset IAS-Lab RGBD-ID Person Point Cloud Matching Test e risultati Risultati - BIWI RGBD-ID dataset Risultati - IAS-Lab RGBD-ID dataset Risultati Multi-frame Comparazione tra PPCM e Skeleton Descriptor Prestazioni Conclusioni 57 A Implementazione 59 A.1 Pacchetti PeopleModel e PeopleReidentification A.2 Pacchetti ActionModel e bagtofilesconverter B Configurazione software 61 B.1 CUDA B.2 ROS B.3 PCL trunk

9 Elenco delle figure 3.1 Microsoft Kinect Componenti sensore Microsoft Kinect Interazione tra hardware Kinect, SDK e applicazioni Architettura Kinect for Windows SDK Architettura framework OpenNI Campo di visione Modalità di tracking: Kinect for Windows SDK permette di riconoscere 20 joint per scheletro in modalità default e 10 joint in modalità seated Tracking multi-utente Esempi di modelli del training set generati sinteticamente Esempi di depth image e corrispondente body part label image del training set dello skeletal tracker BPC calcola la body part label per ogni pixel e poi usa questa segmentazione per localizzare i joint dello scheletro Schema scheletro Kinect SDK Organizzazione gerarchica dello scheletro Bone orientation Pipeline di tracking di OpenNI Schema scheletro OpenNI Esempi di scheletro e labeling delle parti del corpo Output del tracker Segmentazione della cloud in parti in base ai link dello scheletro Esempi di trasformazione a posa standard. A sinistra viene mostrata la segmentazione delle parti del corpo, a destra la cloud trasformata con texture RGB Organizzazione gerarchica ad albero dei joint (a) Point cloud in posa standard ottenuta da un singolo frame e (b) modello ottenuto sommando insieme point cloud in posa standard ottenute da diversi frame Modello prima e dopo lo smoothing MLS Esempi di modelli. (a), (b) e (c) sono stati creati a partire da dati raccolti con il Kinect for Windows SDK mentre (d), (e) e (f) sono stati raccolti con OpenNI.. 37 vii

10 viii ELENCO DELLE FIGURE 6.1 Esempi di immagini RGB con la stima dello scheletro del dataset BIWI RGBD-ID Esempi di immagini RGB con la stima dello scheletro del dataset OpenNI Point cloud matching con allineamento ICP Cumulative Matching Curves ottenute con l approccio di point cloud matching con e senza trasformazione a posa standard sulle sequenze di test del BIWI RGBD-ID dataset (a) CMC e (b) istogramma rank medio ottenuti dai risultati sulla sequenza Still del BIWI RGBD-ID dataset (a) CMC e (b) istogramma rank medio ottenuti dai risultati sulla sequenza Walking del BIWI RGBD-ID dataset (a) CMC e (b) istogramma rank medio ottenuti dai risultati sulla sequenza Outfit del dataset IAS-Lab RGBD-ID filtrando i frame con l algoritmo di face detection (a) CMC e (b) istogramma rank medio ottenuti dai risultati sulla sequenza Room del dataset IAS-Lab RGBD-ID filtrando i frame con l algoritmo di face detection (a) CMC e (b) istogramma rank medio ottenuti dai risultati sulla sequenza Outfit del dataset IAS-Lab RGBD-ID (a) CMC e (b) istogramma rank medio ottenuti dai risultati sulla sequenza Room del dataset IAS-Lab RGBD-ID Comparazione CMC ottenute con l algoritmo di Person Point Cloud Matching e il descrittore dello scheletro sui testing set del BIWI RGBD-ID dataset Istogrammi di rank medio ottenuti con le due tecniche per ogni persona dei set di test Still (a), (b) e Walking (c), (d) del dataset BIWI RGBD-ID Tempo medio di elaborazione per le singole operazioni

11 Elenco delle tabelle 4.1 Riepilogo caratteristiche skeletal tracker Risultati dataset BIWI RGBD-ID Risultati dataset IAS-Lab RGBD-ID Risultati multi frame dataset BIWI RGBD-ID Risultati multi frame dataset IAS-Lab RGBD-ID Comparazione risultati ottenuti in cross validation e con i testing set del BIWI RGBD-ID dataset Tempo medio di elaborazione per le singole operazioni ix

12 x ELENCO DELLE TABELLE

13 Capitolo 1 Introduzione Questa tesi si propone di analizzare e implementare tecniche per la creazione di modelli 3D da impiegare per la re-identificazione nell ambito del tracking di persone. Il problema della re-identificazione di persone consiste nel riconoscere se una persona attualmente visibile da una telecamera è già stata osservata in precedenza. Questo problema rappresenta un attività fondamentale in molte applicazioni pratiche: controllo degli accessi, video sorveglianza, tracking di persone sono solamente alcuni esempi. In questa tesi viene presentata una nuova tecnica per la re-identificazione basata sulla comparazione di features soft biometric non collaborative per la re-identificazione a lungo termine. In particolare viene comparata la global body shape, ovvero la forma globale del corpo della persona. La tecnica proposta deriva dalla 3D object recognition ed impiega i dati di profondità ottenuti da sensori RGB-D come la Microsoft Kinect e la Asus Xtion PRO. Dato che la forma del corpo cambia anche a causa delle differenti pose che un soggetto può assumere durante il movimento è stata sviluppata una nuova tecnica che sfrutta le informazioni fornite dagli skeletal tracker Microsoft e OpenNI per trasformare le point cloud di persone a una posa standard prima di effettuare la comparazione. 1.1 Stato dell arte La maggior parte dei sistemi di identificazione basati sulla visione impiega descrittori soft biometric, ovvero un insieme di caratteristiche della persona che forniscono delle informazioni biometriche, ma non sono individualmente sufficienti ad autenticare un soggetto, principalmente a causa della mancanza di carattere distintivo o permanenza nel tempo. Queste informazioni biometriche si definiscono collaborative se richiedono l intervento dell utente per essere raccolte, come ad esempio il riconoscimento dell iride o l analisi delle impronte digitali, oppure 1

14 2 CAPITOLO 1. INTRODUZIONE non-collaborative come il riconoscimento facciale [18]. Un altro tipo di metodo basato sulla visione che è stato impiegato per la re-identificazione di persone è il riconoscimento dell andatura, come proposto in [16, 12]. Gli approcci applicati alla re-identificazione impiegano solitamente dati provenienti da telecamere 2D e si basano su tecniche che prendono in considerazione solamente l aspetto delle persone [17, 4, 3]. Queste tecniche assumono che l abbigliamento degli individui rimanga invariato durante il periodo di osservazione, vincolando l applicazione di questi metodi in un intervallo temporale limitato. Inoltre cambiamenti di illuminazione e punto di vista aggiungono ulteriore complessità al problema. I sensori RGB-D economici come la Microsoft Kinect e la Asus Xtion PRO, entrambe prodotte impiegando tecniche sviluppate da Primesense [5], permettono di acquisire informazioni di profondità in maniera veloce e conveniente. Questo ha spinto i ricercatori a impiegare sensori RGB-D in differenti campi applicativi, come ad esempio per la stima della posa [13] e il riconoscimento di oggetti [9]. Nonostante questo impulso alla ricerca tali sensori sono apparsi sul mercato solo recentemente per cui la letteratura in questo campo è abbastanza limitata. L adozione di informazioni sulla struttura 3D del corpo umano per la re-identificazione è stata introdotta per la prima volta in [1] dove viene proposto un modello 3D rigido, simile ad un sarcofago, per il riconoscimento di pedoni. Questo modello viene adattato in base all altezza del soggetto, ma non viene considerata nessuna informazione riguardante la forma del corpo e viene utilizzato solamente per mappare l apparenza della persona. Similarmente in [11] viene proposto un descrittore cilindrico tridimensionale creato a partire dai dati forniti da una depth camera. Tale descrittore si basa su una griglia cilindrica 3D che memorizza variazioni di colore con angolo e altezza. In [2] vengono proposti due differenti insiemi di feature calcolate solamente a partire dai dati di profondità. Il primo comprende feature estratte dallo scheletro, in particolare la lunghezza degli arti e l altezza del soggetto, mentre il secondo comprende le distanze geodesiche calcolate sulla superficie della forma del corpo tra delle coppie di giunti (per esempio dalla spalla all anca destra), che sono indici della curvatura e per approssimazione delle dimensioni di specifiche regioni del corpo. Infine, il software Kinect Identity [8], eseguito dalla Kinect per Xbox360, usa tre tipi di descrittori, l altezza del soggetto, un descrittore facciale e un descrittore di colore dei vestiti dell utente per re-identificare il giocatore durante la sessione di gioco. In questo caso, però il problema è semplificato in quanto questa applicazione copre intervalli di tempo limitati ed un numero esiguo di soggetti.

15 1.2. STRUTTURA DELLA TESI Struttura della tesi Nel Capitolo 2 viene descritto il framework ROS (Robot Operating System) e le principali librerie impiegate nel lavoro di tesi: PCL (Point Cloud Library) e OpenCV (Open Computer Vision). Nel Capitolo 3 vengono presentate le principali caratteristiche del sensore RGB-D Microsoft Kinect e introdotti il Microsoft Kinect for Windows SDK e il framework OpenNI. Nel Capitolo 4 vengono presentati e comparati i principali software per il tracking dello scheletro compatibili con il sensore Kinect. Nel Capitolo 5 viene presentato l algoritmo di trasformazione a posa standard di point cloud di persone e viene descritta una tecnica che sfrutta questo algoritmo per la creazione di modelli 3D di persone. Nel Capitolo 6 viene presentato un approccio alla re-identificazione di persone basato sulle caratteristiche di forma del corpo che impiega un matching ICP di point cloud di persone in posa standard con un modello 3D. Vengono inoltre illustrati i risultati ottenuti su due differenti dataset di persone. Il Capitolo 7 è dedicato alle conclusioni tratte da questo lavoro, in Appendice A sono riportati i dettagli riguardati l implementazione delle tecniche sviluppate e in Appendice B viene descritta la configurazione dell ambiente software impiegato nello sviluppo.

16 4 CAPITOLO 1. INTRODUZIONE

17 Capitolo 2 ROS - Robot Operating System ROS 1 (Robot Operating System) è un framework per lo sviluppo di software per robot, che fornisce funzionalità simili ad un sistema operativo su piattaforme software eterogenee. Il progetto ROS è nato nel 2007 presso lo Stanford Artificial Intelligence Laboratory per il controllo del robot STAIR. Dal 2008 lo sviluppo è portato avanti da Willow Garage 2, un istituto di ricerca per la robotica, formato da più di venti istituzioni che collaborano mediante un modello di sviluppo federale. ROS fornisce alcuni dei servizi standard per un sistema operativo come astrazione hardware, controllo di periferiche a basso livello, gestione di pacchetti. ROS è basato su un architettura a grafo dove l elaborazione ha luogo in nodi che possono pubblicare e ricevere messaggi di controllo, stato o provenienti da sensori e attuatori. Il framework attualmente supporta pienamente solamente Ubuntu Linux mentre il funzionamento su altre distribuzioni o piattaforme software (Windows, MacOS) non è garantito in quanto il supporto è ancora in fase sperimentale. ROS viene rilasciato con licenza BSD, gratuito per uso commerciale e accademico. 2.1 Architettura a grafo ROS si basa su un architettura a grafo, simile ad una rete peer-to-peer nella quale i processi ROS (nodes) condividono i dati sotto forma di messaggi. I componenti pricipali di questa architettura sono: Nodes Un nodo è sostanzialmente un processo che effettua delle elaborazioni, nei nodi vengono eseguite le istruzioni e per questo sono il principale componente del grafo. I nodi comunicano

18 6 CAPITOLO 2. ROS - ROBOT OPERATING SYSTEM tra di loro pubblicando messaggi su topic, servizi RPC o il parameter server. Messages Un messaggio ROS è una semplice struttura dati contenente campi di tipo primitivo (integer, floating point, boolean, etc.) oppure array e struct. Topics Un topic è un bus identificato da un nome mediante il quale i nodi possono scambiare messaggi. I topic implementano una semantica publish/subscribe che disaccoppia la produzione dell informazione dal suo consumo. In generale, i nodi non sono a conoscenza del loro interlocutore, i nodi che sono interessati ai dati di un topic lo sottoscrivono, mentre i nodi che generano i messaggi li pubblicano nel topic in questione. Ogni topic può avere più nodi che pubblicano o sottoscrittori. Services Il modello publish/subscribe costituisce un metodo di comunicazione molto flessibile, ma il suo paradigma molti-a-molti non è appropriato per interazioni di tipo RPC, le quasi sono molto frequenti in un sistema distribuito. Il paradigma RPC request/reply viene implementato tramite servizi, i quali sono definiti da un paio di messaggi, uno per la richiesta e uno per la risposta. Ogni servizio viene identificato da un nome, mediante il quale un nodo client può invocare il servizio. Master Il master fornisce servizi di naming e registrazione per gli altri nodi nel sistema ROS. Tiene traccia di publishers e subscribers ai topic e dei servizi offerti. Il master mette a disposizione degli altri nodi anche il parameter server, un dizionario condiviso utilizzato dai nodi per archiviare e recuperare i parametri in fase di esecuzione. Bags Le bag sono un formato per il salvataggio e la riproduzione di messaggi ROS. Sono un importante meccanismo per il salvataggio dei dati provenienti ad esempio dai sensori, che possono essere utilizzati in un secondo momento per la creazione di un ambiente di test per gli algoritmi sviluppati. 2.2 PCL - Point Cloud Library PCL 3 (Point Cloud Library) è un progetto open source che contiene numerosi algoritmi allo stato dell arte per l elaborazione di immagini 2D/3D e point cloud, i quali includono filtering, feature estimation, surface reconstruction, registrazione, model fitting e segmentatione. Questi algoritmi possono essere usati, per esempio, per filtrare valori anomali da dati rumorosi, effettuare lo stiching di point cloud 3D, segmentare parti rilevanti da una scena, individuare keypoint e calcolare descrittori per riconoscere oggetti nel mondo in base alla loro forma geometrica, creare superfici da point cloud e visualizzarle. PCL è ben integrata in ROS il quale fornisce 3

19 2.2. PCL - POINT CLOUD LIBRARY 7 anche alcune funzionalità come nodi pronti all uso. PCL viene rilasciato secondo i termini della licenza BSD, gratuito sia per un utilizzo nell ambito della ricerca che commerciale. Il progetto viene supportato finanziariamente da grandi aziende quali Open Perception, Willow Garage, NVIDIA, Google, Toyota, Trimble, Urban Robotics, Honda Research Institute, Sandia, Dinast, Optronic, Ocular Robotics, Velodyne, Spectrolab, Fotonic, Leica Geosystems, National Institute of Standards and Technology, Southwest Research Institute, e MKE. PCL è cross-platform ed attualmente è disponibile per sistemi Linux, Windows, MacOS e Android nella versione 1.6. La libreria si compone di diversi moduli: common contiene le strutture di dati comuni e i metodi usati dalla maggior parte delle librerie PCL. La struttura dei dati di base include la classe Point Cloud e una moltitudine di tipi di punti che sono utilizzati per rappresentare punti semplici, le normali delle superfici, i valori di colore RGB e i descrittori delle features. Contiene inoltre numerose funzione per calcolare distanze/norme, medie e covarianze, conversioni angolari e trasformazioni geometriche. filters contiene algoritmi di rimozione di outlier e rumore per il filtraggio di point cloud 3D. Contiene inoltre filtri generici usati per estrarre sottoinsiemi di point cloud, per escluderne una parte o effettuare il downsampling. features contiene le strutture di dati e i meccanismi per stimare features 3D a partire dalle point cloud. Le features 3D descrivono pattern geometrici basati sulle informazioni disponibili attorno al punto. Lo spazio di dati selezionato attorno al punto considerato è solitamente conosciuto sotto il nome di k-neighborhood. keypoints contiene l implementazione di diversi algoritmi per l individuazione di keypoint nelle point cloud. Questi keypoint (chiamati anche punti di interesse) sono punti in un immagine o point cloud che sono stabili, distintivi e possono essere identificati usando dei criteri ben definiti. In genere, il numero di punti di interesse in una point cloud è molto inferiore rispetto al numero di punti totali, e quando usato in combinazione con descrittori di feature locali per ogni keypoint, i keypoint e i descrittori possono essere usati per formare una rappresentazione compatta ma distintiva dei dati originali. registration contiene molti algoritmi per la registrazione di point cloud organizzate e non organizzate. La registrazione tra due point cloud si occupa di trovare la trasformazione che minimizza la distanza (errore di allineamento) tra punti corrispondenti. kdtree fornisce la struttura dati kd-tree, che usa l implementazione FLANN per effettuare velocemente ricerche nearest neighbor. Un Kd-tree (albero a k dimensioni) è una struttura di dati per partizionare lo spazio che memorizza un set di punti a k-dimensioni in una struttura ad albero che permette efficienti range search e nearest neighbor search. Nearest neighbor searches sono operazioni fondamentali quando si lavora con dati point cloud e

20 8 CAPITOLO 2. ROS - ROBOT OPERATING SYSTEM può essere utilizzata per trovare corrispondenze tra gruppi di punti, descrittori di features o per definire un neighborhood locale attorno a un punto o ad un insieme di punti. octree fornisce un modo efficiente per creare una struttura ad albero gerarchica dei dati a partire da una point cloud. Questo permette il partizionamento spaziale, il downsampling e le operazioni di ricerca sul data set di punti. Ogni nodo octree ha otto figli oppure nessuno. Il nodo radice descrive un bounding box cubico che racchiude tutti i punti. A ogni livello dell albero questo spazio vien suddiviso da un fattore 2 che corrisponde a un incremento della voxel resolution. segmentation contiene algoritmi per la segmentazione di point cloud in cluster distinti. Questi algoritmi sono maggiormente indicati per elaborare una point cloud che è composta da un numero di regioni spazialmente isolate. In questi casi, clustering è spesso usato per suddividere la cloud nelle sue parti che la costituiscono, che possono poi essere elaborate in modo indipendente. sample consensus contiene metodi di SAmple Consensus (SAC) come RANSAC e modelli come piani e cilindri. Questi possono essere combinati liberamente in modo da identificare modelli specifici e i loro parametri nelle point clouds. Alcuni dei modelli implementati in questa libreria includono: linee, piani, e sfere. L adattamento ai piani è solitamente applicato al compito di identificare superfici interne comuni, come muri, pavimenti o piani di tavoli. Altri modelli possono essere usati per identificare e segmentare oggetti dalle strutture geometriche comuni. surface si occupa della ricostruzione della superficie originale da scansioni 3D. in base al compito assegnato, che può essere ad esempio un convex/concave hull, una rappresentazione mesh o una superficie smoothed/resampled con normali. Creare un guscio convesso o concavo è utile per esempio quando c è la necessità di una rappresentazione semplificata di una superficie o quando devono esserne estratti i confini. Meshing è un metodo utilizzato in generale per creare una superficie a partire da dei punti. Smoothing e resampling possono essere importanti se la cloud è rumorosa o se è composta da scansioni multiple che non sono allineate perfettamente. La complessità della surface estimation può essere regolata, e le normali possono essere stimate nello stesso step se necessario. range image contiene classi per rappresentare ed elaborare range image. Una range image ( o depth map) è un immagine nella quale i valori di ogni pixel rappresentano la distanza dal sensore e sono rappresentazioni 3D generate comunemente da telecamere stereo o a tempo di volo. Conoscendo i parametri intrinseci di calibrazione del sensore è possibile convertire una range image in una point cloud. io contiene classi e funzioni per la lettura e la scrittura di file di dati point cloud e mesh (PCD e PLY), e per catturare point clouds da una varietà di sensori RGB-D compatibili,

21 2.3. OPENCV 9 quali la Microsoft Kinect e la Asus XTionPro. visualization questa libreria è stata creata con lo scopo di riuscire a prototipare velocemente e visualizzare i risultati degli algoritmi operanti su point cloud 3D. Simile alle routines highhui di OpenCV per mostrare immagini in 2D e per disegnare forme in 2D sullo schermo questo modulo permette di visualizzare point cloud 3D e disegnare forme 3D. 2.3 OpenCV OpenCV 4 (Open Source Compure Vision) è una libreria di funzioni orientata allo sviluppo di applicazioni real time nell ambito della computer vision. Originariamente sviluppata da Intel, viene ora supportata da Willow Garage e Itseez. OpenCV è cross-platform e viene rilasciata con licenza BSD, gratuita sia per un uso accademico che commerciale, per molte piattaforme tra cui Linux, Windows, MacOS, Android e ios. La libreria comprende più di 2500 algoritmi e offre interfacce in C++, C, e Python. Esempi di applicazioni di OpenCV sono: Human-Computer Interaction (HCI), object identification, segmentation e recognition, face recognition, gesture recognition, motion tracking, ego motion, motion understanding, structure from motion (SFM), stereo e multi-camera calibration e depth computation, mobile robotics. Come PCL, OpenCV è completamente integrata in ROS il quale fornisce funzioni di conversione tra formato immagini nativo della libreria e messaggi ROS. 4

22 10 CAPITOLO 2. ROS - ROBOT OPERATING SYSTEM

23 Capitolo 3 Microsoft Kinect Figura 3.1: Microsoft Kinect Microsoft Kinect (Figura 3.1) si basa su una tecnologia software sviluppata internamente da Rare, una sussidiaria di Microsoft Game Studios, e su una range camera sviluppata dall israeliana PrimeSense, che interpreta le informazioni provenienti da un proiettore a luce infrarossa strutturata per ricostruire la scena 3D. Questo sistema di scansione 3D è chiamato Light Coding ed impiega una variante delle ben note tecnologie di ricostruzione di immagini 3D [5]. Per Microsoft il progetto Kinect aveva l obiettivo di allargare l utenza della console Microsoft Xbox 360 oltre la tradizionale utenza di giocatori, permettendo un esperienza di intrattenimento e di gioco libera dall impiego di sistemi di input tradizionali, attraverso un interfaccia utente naturale (NUI) che fa uso di gesture e comandi vocali. Il sensore Kinect permette al computer di percepire direttamente la terza dimensione, ovvero la profondità dell ambiente in cui è immerso il giocatore; inoltre è in grado di riconoscere quando l utente sta parlando, sa identificare gli utenti, e sa interpretare i movimenti e i gesti compiuti da ciascuno di essi, traducendoli in un formato che gli sviluppatori possono utilizzare per costruire una nuova esperienza utente. L impatto del sensore Kinect in breve tempo si è espanso ben oltre l industria videoludica. Complice la sua grande disponibilità ed il prezzo contenuto, molti ricercatori e professionisti in informatica, 11

24 12 CAPITOLO 3. MICROSOFT KINECT ingegneria elettronica, e robotica stanno sfruttando la tecnologia di rilevamento per sviluppare nuovi modi creativi per interagire con le macchine e per eseguire altre attività, dai sistemi informativi, al controllo robotico. 3.1 Caratteristiche hardware Il sensore Kinect incorpora dell hardware di percezione molto avanzato. In particolare, presenta un sensore di profondità, una telecamera RGB, e un array di quattro microfoni che abilitano funzionalità di motion capture 3D, riconoscimento facciale e riconoscimento vocale. Il sensore di profondità consiste di un proiettore laser ad infrarossi combinato con un sensore CMOS monocromatico che interpreta la luce infrarossa catturata creando una depth map dell ambiente. Il range del sensore di profondità è regolabile e il software Kinect è in grado di calibrarlo in modo automatico sulla base del gioco o dell ambiente fisico del giocatore, in modo da adeguarsi alla presenza di mobili o altri tipi di ostacoli. L output video di default del sensore ha un rate Figura 3.2: Componenti sensore Microsoft Kinect di 30Hz, ed è composto da due differenti stream. Il primo proveniente dalla camera RGB ha risoluzione VGA a 8bit (640 x 480 pixel), con un filtro colore di Bayer, mentre il secondo è prodotto dal sensore di profondità monocromatico sempre con risoluzione VGA, con profondità a 11bit, cioè 2048 livelli di sensibilità. Per quanto riguarda lo stream RGB è possibile configurare il sensore per funzionare a risoluzione 1280 x 960 pixel a 12Hz, mentre per lo stream depth sono disponibili anche le risoluzioni 160 x 120 e 320 x 240 pixel sempre a 30 Hz. Il range di utilizzo della Kinect, quando utilizzata con software Xbox, è compreso tra 1.2 e 3.5 metri di distanza. L area richiesta per giocare con la Kinect è all incirca di 6 metri quadri, un volume di 12 metri cubi, nonostante il sensore sia in grado di effettuare il tracciamento in un range più ampio, tra 0.7 e 6 metri. Il sensore ha un angolo di visione di 57 orizzontalmente e 43 verticalmente, mentre il pivot motorizzato può garantire ulteriori 27 sia in alto che in basso. Il campo orizzontale della Kinect alla distanza minima di 0.8 metri è pari a circa 87cm, e il campo verticale a 63cm,

25 3.2. MICROSOFT KINECT FOR WINDOWS SDK 13 che comporta una risoluzione di 1.3mm per pixel. Come ampiamente descritto in precedenza, la Kinect è formata essenzialmente da 3 tipi di input, una normale telecamera, un sensore di profondità e un array di microfoni. L output del sensore è costituito da due matrici, una per la camera RGB e la seconda per la depth camera. La prima viene mostrata direttamente in modo grafico, in quanto si tratta di una normale immagine RGB; la seconda è di solito utilizzata nel riconoscimento dello scheletro, può essere mappata come una range image, con una colorazione che esprime la profondità degli oggetti. 3.2 Microsoft Kinect for Windows SDK Kinect for Windows SDK fornisce un insieme di librerie software e strumenti per lo sviluppo di applicazioni con il sensore Kinect. La versione attuale dell SDK è la 1.6, rilasciata nell ottobre 2012, ed è compatibile solamente con Windows 7 e Windows 8. Kinect for Windows SDK si articola nell architettura mostrata in Figura 3.4. Figura 3.3: Interazione tra hardware Kinect, SDK e applicazioni 1. Hardware comprende i componenti del sensore Kinect e l hub USB attraverso il quale è connesso al computer. 2. Microsoft Kinect driver Kinect i driver per Windows hanno le seguenti funzionalità: accesso all array di microfoni con API Windows. accesso agli stream video RGB e depth. impiego di più periferiche Kinect contemporaneamente. 3. NUI API Insieme di API che permettono di controllare le funzionalità più avanzate di Kinect, quali skeleton tracking face recognition voice recognition 4. Kinect Audio DMO estende le funzionalità dell array di microfoni per fornire le funzionalità di beamforming (mappatura sonora dell ambiente) e localizzazione della sorgente sonora.

26 14 CAPITOLO 3. MICROSOFT KINECT 5. Windows standard API le API audio, speech e media presenti in Windows e Microsoft Speech. Figura 3.4: Architettura Kinect for Windows SDK 3.3 OpenNI OpenNI 1 (Open Natural Interaction) è un framework multi-piattaforma che mette a disposizione API per sviluppare applicazioni utilizzando la Natural Interaction. Il termine Natural Interaction si riferisce ai sistemi che impiegano i sensi umani, in particolare, visione e udito per l interazione uomo-macchina. Il principale obiettivo di OpenNI è quello di definire un insieme di API standard in grado di gestire sensori audio e video, e middleware di percezione (componenti software che analizzano l audio e il video di una scena), permettendo la comunicazione tra questi due componenti, pur mantenendoli chiaramente distinti. Grazie a questa architettura, OpenNI permette di sviluppare algoritmi che funzionano con i dati raw, indipendentemente dal sensore che li ha generati. Il framework OpenNI è quindi un layer di astrazione (Figura 3.5) che fornisce interfacce sia verso i sensori che verso i componenti middleware. I sensori attualmente supportati sono: sensori video 3D (RGB camera, IR camera come Microsoft Kinect o Asus XTion Pro) e dispositivi audio (microfoni o array di microfoni). Mentre le componenti middleware messe a disposizione da OpenNI sono: 1

27 3.3. OPENNI 15 full body analysis e skeleton tracking hand point analysis gesture detection scene analyzer Figura 3.5: Architettura framework OpenNI

28 16 CAPITOLO 3. MICROSOFT KINECT

29 Capitolo 4 Tracking dello scheletro La tecnica di trasformazione a posa standard impiega le informazioni ottenute dal tracking dello scheletro per ricondurre le point cloud di persone ad una posa comune. Lo scheletro fornito dal tracker comprende un insieme di punti (joints), le cui coordinate 3D corrispondono a punti caratteristici del corpo umano (testa, mani, spalle, piedi, ecc.). La concatenazione di due joint da origine a segmenti, detti link o bone, che rappresentano le ossa dello scheletro e la cui orientazione corrisponde all orientazione spaziale della relativa parte del corpo. In questo capitolo vengono introdotti gli algoritmi utilizzati per il tracking dello scheletro e vengono analizzati e comparati tre framework compatibili con il sensore Microsoft Kinect impiegati durante il progetto di tesi: Kinect for Windows SDK Skeletal Tracker OpenNI Skeletal Tracker PCL Skeletal Tracker 4.1 Kinect for Windows SDK Skeletal Tracker Questo skeletal tracker è compreso all interno del Kineck for Windows SDK e fornisce un insieme di API che permettono un facile accesso alle articolazioni scheletro. Lo skeletal tracker è in grado per riconoscere persone in piedi o sedute di fronte alla Kinect, ad una distanza compresa tra 0.8 e 4.0 metri, sebbene il range di visione ottimale si colloca tra 1.2 e 3.5 metri, oltre i quali le informazioni di profodità del sensore IR tendono ad essere più rumorose e quindi meno affidabili. Il tracker non è però in grado di riconoscere se la persona è rivolta verso il sensore oppure volge le spalle alla Kinect. Kinect for Windows SDK permette di riconoscere fino a sei utenti, solo due utenti possono essere monitorati in modo dettagliato, il che significa 17

30 18 CAPITOLO 4. TRACKING DELLO SCHELETRO che il sensore restituisce le posizioni di tutti e 20 i joint, mentre per gli altri viene fornita solamente la posizione complessiva. Questo perchè il tracking completo di tutti gli utenti risulta computazionalmente troppo oneroso per applicazioni real-time. (a) Range in default mode (b) Angoli di visione (depth e RGB). Figura 4.1: Campo di visione. (a) Full skeleton mode (b) Seated skeleton mode Figura 4.2: Modalità di tracking: Kinect for Windows SDK permette di riconoscere 20 joint per scheletro in modalità default e 10 joint in modalità seated.

31 4.1. KINECT FOR WINDOWS SDK SKELETAL TRACKER 19 Figura 4.3: Tracking multi-utente Algoritmo di tracking Il tracking dello scheletro in tempo reale risulta difficile a causa delle differenti pose che l utente può assumere (ogni parte del corpo si può muovere in migliaia di modi e direzioni differenti), altezza, corporatura, vestiti e così via. Per superare questi problemi e riconoscere i joint indipendentemente dalla posa della persona Shotton et al. in [13, 14], propongono un approccio basato sul machine learning. In particolare viene impiegato un classificatore basato su random decision forest per predire accuratamente la posizione dei joint dello scheletro. Questo classificatore viene allenato mediante un dataset di training appositamente creato composto da molti modelli di persone generati sinteticamente (500k frame e 100k pose) che variano per altezza, corporatura, vestiti, orientazioni e punti di vista, nei quali ogni punto è etichettato in base alla parte del corpo. Questa segmentazione definisce 31 body part: LU/RU/LW/RW head, neck, L/R shoulder, LU/RU/LW/RW arm, L/R elbow, L/R wrist, L/R hand, LU/RU/LW/RW torso, LU/RU/LW/RW leg, L/R knee, L/R ankle, and L/R foot (Left, Right, Upper, lower). La rendering pipeline utilizzata dallo skeletal tracker si compone di diversi passaggi che permettono di riconoscere le parti del corpo a partire dai dati di profondità: 1. Il sensore Kinect restituisce i dati grezzi di profondità, in cui ogni pixel contiene un valore che rappresenta la distanza tra il sensore e la persona. A partire dalla depth image viene rimosso il background identificando solamente i pixel corrispondenti all utente (user map). 2. L algoritmo Body Part Classification (BPC) si occupa di assegnare indipendentemente

32 20 CAPITOLO 4. TRACKING DELLO SCHELETRO Figura 4.4: Esempi di modelli del training set generati sinteticamente. Figura 4.5: Esempi di depth image e corrispondente body part label image del training set dello skeletal tracker.

33 4.1. KINECT FOR WINDOWS SDK SKELETAL TRACKER 21 ad ogni pixel dell utente la label della parte del corpo a cui appartiene, classificandolo mediante decision forest. Le decision forest sono delle strutture ad albero nelle quali ogni nodo rappresenta un modello con etichettatura delle parti del corpo. 3. La segmentazione del corpo tramite labelling viene utilizzata per localizzare i joint del corpo. 4. La posizione dei joint viene espressa mediante coordinate 3D (X, Y e Z) dove X e Y definiscono la posizione del joint e Z rappresenta la distanza dal sensore. Per ottenere le coordinate corrette vengono calcolate tre viste della stessa immagine: frontale, superiore e laterale come mostrato in Figura 4.6 Figura 4.6: BPC calcola la body part label per ogni pixel e poi usa questa segmentazione per localizzare i joint dello scheletro Caratteristiche dello scheletro Lo scheletro ottenuto dal tracker si compone di 20 joint e 19 bone. Per ogni joint vengono restituite le coordinate 3D e la confidenza del tracking: Tracked (il joint è riconosciuto con la massima confidenza), Inferred (il joint non è riconosciuto perchè occluso ma la sua posizione viene ricavata dalla posizione degli altri joint) o Not Tracked (il joint non è riconosciuto dal tracker). Lo schema in Figura 4.7 rappresenta uno scheletro umano completo rivolto verso il sensore Kinect. I joint dello scheletro sono organizzati in una struttura gerarchica ad albero che

34 22 CAPITOLO 4. TRACKING DELLO SCHELETRO Figura 4.7: Schema scheletro Kinect SDK ha come nodo radice l hip center e ogni bone ha un joint padre e un joint figlio. Questo implica che ogni joint ad esclusione dei joint foglia (testa, mani e piedi) può essere sia padre che figlio in base al bone considerato. Figura 4.8: Organizzazione gerarchica dello scheletro Per ogni bone viene restituito un quaternione che ne definisce l orientazione spaziale assoluta oppure relativa al bone precedente nella gerarchia: Hierarchical orientation Il quaternione associato al bone rappresenta la rotazione necessaria per passare dall orientazione del bone padre a quella del bone corrente. Questo equivale a considerare la rotazione del sistema di riferimento cartesiano dallo spazio del bone padre a quello del bone figlio considerando il bone parallelo all asse y. Nella definizione gerarchica, la rotazione dell hip center fornisce l orientamento assoluto dell utente respetto alle coordinate spaziali del sensore. Ciò presuppone che lo spazio oggetto giocatore ha l origine nell hip center, l asse y è verticale, l asse x è a sinistra, e l asse z verso il

35 4.2. OPENNI SKELETAL TRACKER 23 sensore. Absolute orientation Il quaternione associato al bone rappresenta la rotazione assoluta del bone nello spazio 3D. Anche in questo caso la rotazione dell hip center fornisce l orientamento assoluto dell utente. (a) Hierarchical orientation (b) Absolute orientation Figura 4.9: Bone orientation 4.2 OpenNI Skeletal Tracker Le funzionalità di tracking dello scheletro del framework OpenNI vengono fornite dal middleware NiTE (Natural Interface Technology for End-User) sviluppato da Primesense. Rispetto al tracker Microsoft, NiTE permette di riconoscere se le persone sono rivolte verso il sensore oppure sono di spalle ed inoltre non presenta nessuna limitazione software sul numero di utenti per i quali è possibile effettuare il tracking completo di tutti i joint; l unico limite è imposto dalla capacità di elaborazione della CPU del sistema impiegato Algoritmo di tracking Non sono diponibili molte informazioni riguardanti l algoritmo impiegato da NiTE per il tracking dello scheletro in quanto il middleware non è open source e Primesense non ha pubblicato nessun dettaglio al riguardo. Nella Figura 4.10 è schematizzata la pipeline di tracking dello scheletro implementata da OpenNI.

36 24 CAPITOLO 4. TRACKING DELLO SCHELETRO Figura 4.10: Pipeline di tracking di OpenNI Caratteristiche dello scheletro Il tracker permette ti riconoscere fino a 15 joint e 14 links. Come per lo skeletal tracker Microsoft per ogni joint vengono restituite le coordinate 3D, l orientazione e la confidenza del tracking: Tracked (il joint è riconosciuto con la massima confidenza), Inferred (il joint non è riconosciuto perchè occluso ma la sua posizione viene ricavata dalla posizione degli altri joint) o Not Tracked (il joint non è riconosciuto dal tracker). Come si può osservare dalla (Figura 4.11) la posizione e l orientazione dei joint viene fornita nel sistema di coordinate del mondo reale. L origine del sistema di coordinate è il sensore, +X punta verso destra, +Y punta verso l altro e +Z punta verso la direzione di profondità crescente. 4.3 PCL Skeletal Tracker Questo skeletal tracker si basa sul lavoro di Koen Buys, Cedric Cagniart, Anatoly Bashkeev e Caroline Pantofaru, ed è stato presentato a ICRA2012 e IROS2012. Una prima versione del tracker è disponibile per la compilazione nel trunk di PCL e necessita di una GPU Nvidia con architettura Fermi o Kepler per essere eseguito in quanto sfrutta CUDA per la parallelizzazione dell algoritmo di labeling.

37 4.3. PCL SKELETAL TRACKER 25 Figura 4.11: Schema scheletro OpenNI Algoritmo di tracking L implementazione si basa su un approccio simile a Shotton et al.[13] ed impiega, come illustrato in precedenza per il tracker Microsoft, delle random decision forest allenate offline mediante un dataset di modelli di persone già segmentati rispetto alle parti del corpo. A partire dalla classificazione delle parti del corpo mediante le random decision forest (labeling) vengono estratte le coordinate dei joint. Nel dettaglio il workflow impiegato dall algoritmo è il seguente: 1. rimozione del background 2. etichettattura di ogni pixel della persona in base alla parte del corpo a cui appartiene con maggiore probabilità mediante la classificazione con ogni tree della random forest 3. sintesi dell output proveniente da ogni tree in una singola etichettatura media 4. clustering di ogni parte del corpo per calcolare la posizione del joint corrispondente Caratteristiche dello scheletro Il tracker restituisce la segmentazione della persona in 27 parti del corpo (Lfoot,Lleg, Lknee, Lthigh, Rfoot, Rleg, Rknee, Rthigh, Rhips, Lhips, Neck, Rarm, Relbow, Rforearm, Rhand, Larm, Lelbow, Lforearm, Lhand, FaceLB, FaceRB, FaceLT, FaceRT, Rchest, Lchest, Lshoulder,

38 26 CAPITOLO 4. TRACKING DELLO SCHELETRO Figura 4.12: Esempi di scheletro e labeling delle parti del corpo. Rshoulder), al momento della scrittura di questa tesi non vengono invece fornite direttamente né le posizioni dei joints né l orientazione dei link dello scheletro. Queste limitazioni lo rendono inadatto ai fini del progetto descritto in questa tesi, il tracker è comunque ancora nelle prime fasi di sviluppo e grazie alla sua implementazioni su GPU in futuro potrebbe presentare una valida alternativa. Figura 4.13: Output del tracker

39 4.4. COMPARAZIONE Comparazione Nella tabella seguente vengono riassunte le principali caratteristiche dei tracker Microsoft e OpenNI presentati in questo capitolo. Skeletal tracker Microsoft OpenNI N joint N link Risoluzione immagine RGB massima 1280x x480 Risoluzione depth map massima 640x x480 Tracking a 360 No Si N di scheletri riconosciuti 2 Illimitato Tabella 4.1: Riepilogo caratteristiche skeletal tracker. Scheletro Lo skeletal tracker Microsoft riconosce 20 joint, mentre OpenNI solamente 15. In particolare, OpenNI non definisce i joint di wrist, ankle e spine presenti nel tracker Microsoft, per cui l orientazione di mani e piedi non viene calcolata indipendentemente ma viene impostata uguale all orientazione del corrispondente avambraccio o gamba. Inoltre OpenNI richiede alcuni secondi di calibrazione per il riconoscimento della persona. La precedente versione del tracker infatti richiedeva all utente di mantenere per qualche secondo una posa di calibrazione (psi pose o surrender pose), e sebbene questo vincolo è stato rimosso nella versione corrente le informazioni dello scheletro raccolte nei primi frame potrebbero non risultare accurate. Infine, OpenNI è in grado di effettuare il tracking sia se l utente è rivolto verso il sensore, sia di spalle, adattando correttamente la rotazione dello scheletro, mentre il tracker Microsoft non distingue nativamente se la persona è ripresa di spalle e quindi in questo caso non è in grado di stimare la posizione corretta dei joint. Accuratezza Entrambi i tracker permettono di riconoscere i joint con buona accuratezza nel caso in cui tutte le parti del corpo siano completamente visibili, mentre nel caso in cui alcuni joint siano occlusi il tracker Microsoft riesce a predirre con più accuratezza la loro posizione. Per quanto riguarda le orientazioni dei link invece il tracker OpenNI alcune volte non ritorna la rotazione corretta dei link in relazione alla posizione frontale o di spalle dell utente. L algoritmo di trasformazione a posa standard è stato inizialmente implementato impiegando i dati dello scheletro forniti dal Kinect for Windows SDK e poi è stato adattato per lavorare anche

40 28 CAPITOLO 4. TRACKING DELLO SCHELETRO con i dati forniti da OpenNI in modo da permettere una ricostruzione completa a 360 gradi della persona non possibile con il tracker Microsoft.

41 Capitolo 5 Trasformazione a posa standard Le tecniche di riconoscimento di oggetti 3D si basano sul presupposto che gli oggetti siano indeformabili e siano sottoposti solamente a trasformazioni rigide. Tuttavia, quando si considerano le persone in movimento non è possibile assumere l ipotesi di rigidità in quanto le persone sono oggetti articolati e possono assumere una grande varietà di pose differenti. La tecnica che abbiamo sviluppato sfrutta le informazioni di posizione dei joint e l orientazione dei link dello scheletro forniti dallo skeletal tracker per trasformare le persone ad una nuova posa, definita posa standard. 5.1 Segmentazione del corpo in parti Il primo passo per la trasformazione a posa standard della point cloud consiste nel segmentare il corpo della persona in parti. Come descritto nel capitolo precedente, anche se lo skeletal tracker Microsoft stima la segmentazione del corpo come prima fase e poi da queste deriva la posizione dei joint, non fornisce in output il labeling della depth map in parti. Per questo motivo abbiamo implementato una procedura che permette di ottenere la segmentazione della persona in parti a partire dalle coordinate 3D delle posizioni dei joint. In particolare, per ogni punto della point cloud viene calcolata la distanza da tutti i link dello scheletro e viene assegnato alla parte del corpo corrispondente al link più vicino. Per migliorare la segmentazione di tronco e braccia, soprattutto quando le braccia sono in posizione di riposo lungo in corpo, sono stati aggiunti due link fittizi tra i joint delle anche e quelli delle spalle. 29

42 30 CAPITOLO 5. TRASFORMAZIONE A POSA STANDARD Figura 5.1: Segmentazione della cloud in parti in base ai link dello scheletro. 5.2 Algoritmo di trasformazione a posa standard Una volta effettuata la segmentazione del corpo in parti, è possibile trasformare la posa assunta dalla persona in posa standard. Come descritto in precedenza la posa standard permette di confrontare direttamente le point cloud ottenute da diversi soggetti e pose, imponendo in tutte la stessa orientazione tra i link. Come posa standard è stata scelta la tipica posa frontale di una persona a riposo, con le braccia lungo i fianchi, come mostrato in Figura 5.2. Questa posizione è stata scelta in quanto naturale per una persona che sta ad esempio camminando, situazione molto comune nell ambito del tracking di persone. Ogni parte del corpo segmentata viene ruotata in base all orientazione del corrispondente link dello scheletro e traslata in base alle coordinate dei propri joint. L orientazione dei link dello scheletro viene espressa dallo skeletal tracker mediante quaternioni per cui, per calcolare la rotazione relativa tra l orientazione del link della parte del corpo del frame corrente e quello in posa standard, è sufficiente effettuare la seguente operazione: R = Q S Q 1 C (5.1) dove R è la rotazione cercata, Q S è il quaternione che esprime l orientazione del link in posa standard mentre Q C esprime l orientazione dello stesso link nel frame corrente. Secondo l algebra dei quaternioni questo equivale ad applicare ad ogni parte del corpo prima una rotazione che la riporta ad una orientazione neutra per poi applicare la rotazione che la porta ad avere

43 5.2. ALGORITMO DI TRASFORMAZIONE A POSA STANDARD 31 (a) (b) Figura 5.2: Esempi di trasformazione a posa standard. A sinistra viene mostrata la segmentazione delle parti del corpo, a destra la cloud trasformata con texture RGB. la corrispondente orientazione in posa standard. Visto che i quaternioni esprimono solamente l informazione sull orientazione del link dello scheletro ma non danno nessuna informazione riguardo alle sue coordinate nello spazio, prima di poter applicare la rotazione R è necessario traslare la parte del corpo ] nell origine delle coordinate mediante una traslazione di vettore V C = [ x C y C z C, dove x C, y C, z C sono le coordinate del joint padre del link corrente. A questo punto è possibile ] applicare la rotazione e successivamente traslare la parte del corpo di V S = [x S y S z S dove x S, y S, z S sono le coordinate del joint in posa standard. Queste coordinate vengono calcolate in base al link precedente come spiegato in dettaglio nel prossimo paragrafo. Riassumendo la trasformazione applicata ad ogni punto della parte del corpo corrente è la seguente: P = T VS (R(T VC (P))) (5.2) L algoritmo ricalcola le coordinate dei joint del link corrente a partire dalle coordinate del link padre secondo la struttura ad albero descritta in Figura 5.2. A partire dall hip center ogni link viene concatenato con il precedente facendo coincidere il secondo joint del link padre con il primo joint del link figlio. Questo permette allo scheletro standard di essere indipendente dalla lunghezza dei link e di adattarsi alla struttura scheletrica del soggetto ripreso, evitando situazioni in cui la point cloud ricostruita è spezzata o compressa perché i link del soggetto

44 32 CAPITOLO 5. TRASFORMAZIONE A POSA STANDARD Figura 5.3: Organizzazione gerarchica ad albero dei joint. ripreso sono rispettivamente più corti o più lunghi rispetto allo scheletro standard. Nel dettaglio, al primo link (hip center spine) viene applicata la rototraslazione in base all orientazione e alle coordinate della posa standard e ad esso vengono concatenati gli altri link. Per ogni link successivo indicando con P(P 0,P 1 ) e F(F 0,F] 1 ) rispettivamente il link padre in posa standard e il link figlio, il vettore V F S = [x P1 y P1 z P1 esprime la traslazione da applicare al link figlio (dopo la rotazione) per portarlo in posa standard. 5.3 Generazione modello 3D In seguito alla trasformazione a posa standard le point cloud appartenenti alla stessa persona in movimento possono essere facilmente unite per comporre un modello più completo della persona. La Figura 5.4, mostra una point cloud (a) derivata da un singolo frame, mentre in (b) viene mostrato il modello ottenuto fondendo alcune point cloud acquisite da diversi punti di vista e trasformate in posa standard. Si può notare come la point cloud incrementale sia più densa e completa rispetto alla cloud singola. Questo modello può essere utilizzato come riferimento per il matching di nuove point cloud di test. La creazione del modello si compone delle seguenti fasi: 1. Pre-processing

45 5.3. GENERAZIONE MODELLO 3D 33 (a) Controllo sulla validità dei dati dello scheletro (b) Face detection 2. Trasformazione a posa standard 3. Aggiunta della cloud corrente al modello e allineamento ICP 4. Voxeling 5. SOR filtering 6. MLS filtering (a) (b) Figura 5.4: (a) Point cloud in posa standard ottenuta da un singolo frame e (b) modello ottenuto sommando insieme point cloud in posa standard ottenute da diversi frame Pre-processing Validazione scheletro Per ottenere dei modelli visivamente di buona qualità ed utilizzabili per il matching è stato scelto di considerare solamente i frame in cui lo skeletal tracker restituisce lo stato tracked per tutti i joint dello scheletro. In questo modo solamente i frame in cui tutte le parti del corpo sono visibili vengono presi in considerazione per la creazione del modello. Inoltre viene effettuato un ulteriore controllo sulla posizione dei joint tramite un bounding box, centrato nel centroide della

46 34 CAPITOLO 5. TRASFORMAZIONE A POSA STANDARD cloud della persona e di dimensioni 2m x 3m x 1m rispettivamente nelle coordinate X, Y, Z. Se le coordinate di un joint risultano fuori dallo spazio delimitato dal box a causa di errori di stima dello skeletal tracker o imprecisioni in fase di registrazione il frame viene scartato. Face detection Come descritto in precedenza l algoritmo di skeletal tracking Microsoft si basa su un random forest classifier che è stato allenato con esempi di persone viste solamente di fronte, per cui non fornisce la stima corretta dello scheletro quando una persona viene vista di spalle. Per questa ragione nella creazione del modello a partire dai dati forniti dal tracker Microsoft vengono mantenuti solamente i frame nei quali viene riconosciuta la presenza di una faccia. Per la face detection viene impiegato l algoritmo proposto da Viola e Jones in [15]. Per migliorare il tempo di elaborazione e diminuire il numero di falsi positivi, la regione di ricerca della faccia è stata limitata ad un intorno della posizione 2D del joint della testa, ottenuto dallo skeletal tracker Voxel filtering Per ridurre il numero di punti da processare e limitare il numero di punti nella cloud incrementale viene applicato un filtro voxel grid alla cloud di ogni frame. Il filtro voxel grid permette di effettuare il down-sample di una point cloud utilizzando un reticolo di punti. In dettaglio: 1. viene costruito un reticolo di punti dove il lato di ogni cubo viene impostato dal leafsize 2. per ogni cubo viene calcolato il centroide dei punti presenti al suo interno e impostato come voxel del cubo corrente ICP - Iterative Closest Points Dopo la trasformazione a posa standard, le point cloud di frame differenti possono essere sommate per formare un modello incrementale della persona. Questo viene fatto prima allineando le cloud secondo l orientazione globale della persona, fornita dallo skeletal tracker come orientazione dell hip center e successivamente rifinendo questo allineamento impiegando l algoritmo di registrazione Iterative Closest Points. La trasformazione iniziale viene effettuata in quanto ICP converge molto velocemente se le due cloud non sono molto distanti l una dall altra, in caso contrario potrebbe rimanere bloccato in un minimo locale. ICP minimizza iterativamente la distanza tra punti corrispondenti delle point cloud. In ogni iterazione viene calcolata una nuova matrice di trasformazione. Le corrispondenze vengono ricercate solamente tra punti vicini (con un intorno imposto da un treshold) e poi una piccola trasformazione viene calcolata ad ogni iterazione. L algoritmo, nell implementazione di PCL, ha tre condizioni di terminazione:

47 5.3. GENERAZIONE MODELLO 3D 35 massimo numero di iterazioni il valore di epsilon tra le due ultime iterazione differisce meno di un valore specificato una funzione di fitness calcolata internamente raggiunge il threshold impostato Nel nostro software solamente le prime due condizioni sono state impostate rispettivamente a 10 iterazioni ed epsilon a Statistical Outlier Removal filtering La segmentazione fornita dalla user map, riesce solitamente ad isolare i pixel corrispondenti all utente, eliminando il background. Nonostante ciò può capitare che alcuni pixel appartenenti al background siano presenti nei punti della point cloud della persona a causa di parametri di registrazione non perfetti o ritardi nella sincronizzazione. Per limitare l impatto di queste imperfezioni sulla qualità del modello finale viene impiegato un filtro Statistical Outlier Removal. Il filtro SOR si basa sul calcolo della distribuzione dei punti nell intorno del dataset di input. Per ogni punto viene calcolata la distanza media da esso ai suoi vicini. Assumendo che la distribuzione risultante sia gaussiana, il filtro elimina tutti i punti la cui distanza media risulta fuori dall intervallo definito dalla media globale delle distanze e dalla deviazione standard Moving Least Squares smoothing Le point cloud ottenute con il sensore Kinect hanno una buona risoluzione ma il passo di quantizzazione della depth map aumenta in maniera quadratica con la distanza e non permette di ottenere point cloud regolari a più di due metri di distanza dal sensore. In Figura 5.5(a) viene riportata una point cloud di una persona a circa tre metri di distanza dal sensore. Come si può notare la superficie della point cloud risulta suddivisa in fette prodotte dai passi di quantizzazione. Per mitigare questo problema è stato impiegato il metodo Moving Least Squares (MLS) per la ricostruzione di superfici, il risultato è riportato in Figura 5.5(b). MLS è un metodo di ricostruzione di funzioni continue da un insieme di campioni di punti non organizzati tramite il calcolo dei minimi quadrati in un intorno del punto in cui viene richiesto il valore. In dettaglio, si consideri la funzione f : R n R e un insieme di punti S = (x i, f i ) f (x i ) = f i dove x i R n e gli f i sono numeri reali. L approssimazione moving least squares di grado m nel punto x è p(x) dove p minimizza l errore dei minimi quadrati (p(x) f i ) 2 θ( x x i ) (5.3) i su tutti i polinomi di grado m in R n e θ(s) tende a zero per s.

48 36 CAPITOLO 5. TRASFORMAZIONE A POSA STANDARD (a) (b) Figura 5.5: Modello prima e dopo lo smoothing MLS

49 5.3. GENERAZIONE MODELLO 3D 37 (a) (b) (c) (d) (e) (f) Figura 5.6: Esempi di modelli. (a), (b) e (c) sono stati creati a partire da dati raccolti con il Kinect for Windows SDK mentre (d), (e) e (f) sono stati raccolti con OpenNI.

50 38 CAPITOLO 5. TRASFORMAZIONE A POSA STANDARD

51 Capitolo 6 Re-identificazione di persone La trasformazione a posa standard non è utile solamente perchè permette di sommare point cloud di persone indipendentemente dalla loro posa iniziale per la creazione di modelli, ma anche perchè permette di impiegare questi modelli per la comparazione a scopo di re-identificazione con nuove point cloud di test. Il framework sviluppato permette di identificare un soggetto in piedi di fronte ad una depth camera, prendendo in considerazione un singolo fotogramma di input. Per ottenere questo obiettivo vengono comparate point cloud di persone in posa standard con un modello di riferimento della persona generato con la tecnica descritta in Sezione RGB-D people re-identification dataset La tecnica di re-identificazione descritta nella Sezione 6.2 è stata testata con due dataset, il primo BIWI RGBD-ID dataset è stato raccolto con il Kinect for Windows SDK, mentre il secondo IAS-Lab RGBD-ID dataset con il framework OpenNI Dataset BIWI RGBD-ID Il dataset BIWI RGBD-ID [10] è composto da 50 sequenze video di persone diverse registrate impiegando il Kinect for Windows SDK. Il dataset include immagini RGB (registrate a risoluzione 1280x960), depth map, user map, dati sullo scheletro e coordinate del piano del pavimento. Questi video sono stati acquisiti a circa 8-10fps e sono della durata di circa un minuto per ogni persona. Inoltre il dataset comprende anche 56 sequenze di test con 28 persone già presenti nel dataset. Queste sequenze sono state registrate in una stanza diversa rispetto alle prime 50 sequenze ed inoltre le persone sono vestite in maniera differente. Per ogni persona sono presenti una prima sequenza, Still, in cui la persona è ferma in piedi davanti alla telecamera e una 39

52 40 CAPITOLO 6. RE-IDENTIFICAZIONE DI PERSONE seconda sequenza, Walking, in cui la persona effettua due camminate frontali e due camminate diagonali verso la Kinect. (a) (b) (c) Figura 6.1: Esempi di immagini RGB con la stima dello scheletro del dataset BIWI RGBD-ID. (a) (b) (c) Figura 6.2: Esempi di immagini RGB con la stima dello scheletro del dataset OpenNI Dataset IAS-Lab RGBD-ID Il dataset IAS-Lab RGBD-ID, registrato con OpenNI, comprende tre sequenze video di 11 persone che si muovono di fronte al sensore Kinect. La prima sequenza (Training) e la seconda sequenza (Room) sono state registrate in due stanze diverse, mentre la terza (Outfit) è stata registrata nella stessa stanza della prima sequenza ma le persone indossano vestiti diversi. Ogni sequenza è composta dalle seguenti azioni: rotazione della persona a 360 due camminate frontali avanti/indietro una camminata diagonale una camminata libera Le sequenze sono della durata di circa un minuto e mezzo e includono immagini RGB (registrate a risoluzione 640x480), depth map, user map, dati dello scheletro.

53 6.2. PERSON POINT CLOUD MATCHING Person Point Cloud Matching L approccio alla re-identificazione proposto prende in considerazione la forma dell intera point cloud della persona per il compito di re-identificazione. Per ogni frame di test viene creata la corrispondente point cloud in posa standard, filtrata mediante voxel grid e smoothing MLS. A questo punto la point cloud viene allineata con ICP e confrontata con tutti i modelli di persone generati a partire dal training set. Ad ogni iterazione viene calcolata la fitness score tra la cloud corrente e i modelli. La fitness score impiegata come metrica di similarità è definita come la distanza media dei punti della prima cloud al più vicino punto della seconda cloud. In dettaglio, siano P 1 e P 2 le due point cloud, il fitness score di P 2 rispetto a P 1 è definito come: dove q i viene definito come: f 2 1 = p 1 P 2 p i q i (6.1) q i = arg min p 1 P 1 p i q j (6.2) Questa funzione permette quindi di confrontare la forma del corpo dei soggetti rappresentati dalle cloud definendo una metrica sulla distribuzione dei punti della cloud nello spazio. Figura 6.3: Point cloud matching con allineamento ICP.

54 42 CAPITOLO 6. RE-IDENTIFICAZIONE DI PERSONE 6.3 Test e risultati Per la valutazione dei risultati di re-identificazione, sono state calcolate le Cumulative Matching Curves (CMC) [7]. Per ogni k da 1 al numero di soggetti di training, queste curve esprimono l indice di riconoscimento medio calcolato considerando la classificazione corretta se la persona da riconoscere appare tra i soggetti che hanno ottenuto i k migliori score di classificazione. I parametri tipici di valutazione per queste curve sono l indice di riconoscimento rank-1 e la normalized Area Under Curve (nauc) che corrisponde all integrale della CMC. Gli indici di riconoscimento vengono calcolati separatamente per ogni soggetto nel dataset e poi mediati per ottenere l indice di riconoscimento globale. Vengono inoltre riportati gli istogrammi del rank medio per ogni persona delle sequenze di test, ovvero il rank medio al quale la persona viene correttamente classificata. I valori mancanti nell asse delle ascisse dipendono dal fatto che non tutti i soggetti di training sono presenti nel dataset di test Risultati - BIWI RGBD-ID dataset La Tabella 6.1 riporta sinteticamente i risultati ottenuti dall algoritmo di point cloud matching sul dataset BIWI RGBD-ID. In Figura 6.4 viene comparato il metodo proposto con un metodo per il matching simile che però non sfrutta la trasformazione a posa standard. Per il test set in cui le persone sono ferme in posa frontale (Still) la differenza di prestazioni è minima in quanto le persone vengono riprese sempre nella stessa posa. Al contrario per il test set con persone in movimento l applicazione della trasformazione a posa standard permette di migliorare le prestazioni di riconoscimento raggiungendo un rank-1 del 22.38% e una nauc di 81.56% contro rispettivamente 6.61% e 62.61%. È importante sottolineare che anche in questa fase di testing vengono considerati validi solamente i frame nei quali viene rilevata la faccia del soggetto ripreso come avviene durante la creazione del modello a causa delle già descritte limitazioni dello skeletal tracker Microsoft. rank-1 nauc Cross validation 93.72% 99.62% Still 32.49% 89.04% Walking 22.38% 81.56% Tabella 6.1: Risultati dataset BIWI RGBD-ID.

55 6.3. TEST E RISULTATI 43 (a) Still (b) Walking Figura 6.4: Cumulative Matching Curves ottenute con l approccio di point cloud matching con e senza trasformazione a posa standard sulle sequenze di test del BIWI RGBD-ID dataset.

56 44 CAPITOLO 6. RE-IDENTIFICAZIONE DI PERSONE (a) (b) Figura 6.5: (a) CMC e (b) istogramma rank medio ottenuti dai risultati sulla sequenza Still del BIWI RGBD-ID dataset.

57 6.3. TEST E RISULTATI 45 (a) (b) Figura 6.6: (a) CMC e (b) istogramma rank medio ottenuti dai risultati sulla sequenza Walking del BIWI RGBD-ID dataset.

58 46 CAPITOLO 6. RE-IDENTIFICAZIONE DI PERSONE Risultati - IAS-Lab RGBD-ID dataset La Tabella 6.2 riporta sinteticamente i risultati ottenuti dall algoritmo di point cloud matching sul dataset IAS-Lab RGBD-ID. Su questo dataset i test sono stati eseguiti dapprima con le modalità descritte per il dataset BIWI RGBD-ID impiegando l algoritmo di face detection per filtrare i frame in cui la persona è di spalle e successivamente su tutti i frame validi, sia frontali che posteriori, sfruttando appieno le potenzialità dello skeletal tracker OpenNI. rank-1 nauc Cross validation 91.99% 98.73% Outfit con face detection 27.32% 71.87% Room con face detection 49.39% 83.31% Outfit 28.61% 73.16% Room 43.69% 81.65% Tabella 6.2: Risultati dataset IAS-Lab RGBD-ID.

59 6.3. TEST E RISULTATI 47 (a) (b) Figura 6.7: (a) CMC e (b) istogramma rank medio ottenuti dai risultati sulla sequenza Outfit del dataset IAS-Lab RGBD-ID filtrando i frame con l algoritmo di face detection.

60 48 CAPITOLO 6. RE-IDENTIFICAZIONE DI PERSONE (a) (b) Figura 6.8: (a) CMC e (b) istogramma rank medio ottenuti dai risultati sulla sequenza Room del dataset IAS-Lab RGBD-ID filtrando i frame con l algoritmo di face detection.

61 6.3. TEST E RISULTATI 49 (a) (b) Figura 6.9: (a) CMC e (b) istogramma rank medio ottenuti dai risultati sulla sequenza Outfit del dataset IAS-Lab RGBD-ID.

62 50 CAPITOLO 6. RE-IDENTIFICAZIONE DI PERSONE (a) (b) Figura 6.10: (a) CMC e (b) istogramma rank medio ottenuti dai risultati sulla sequenza Room del dataset IAS-Lab RGBD-ID.

63 6.3. TEST E RISULTATI Risultati Multi-frame Il Person Point Cloud Matching implementa un metodo di re-identificazione one-shot a partire dai singoli frame. D altra parte, se sono disponibili più frame della persona da riconoscere è possibile identificare i soggetti applicando un approccio multi-frame, impiegando uno schema di voto che associa ad ogni sequenza di test la persona che l algoritmo identifica con il minor fitness score nel maggior numero di frame. In Tabella 6.3 e Tabella 6.4 vengono comparati i risultati ottenuti sulle sequenze di test di entrambi i dataset con l approccio a frame singolo e multi-frame. Come si può notare l incremento prestazionale medio è del 10-20%. BIWI RGBD-ID Single Multi Cross validation 93.72% 100% Still 32.49% 42.86% Walking 22.38% 39.29% Tabella 6.3: Risultati multi frame dataset BIWI RGBD-ID. IAS-Lab RGBD-ID Single Multi Cross validation 91.99% 100% Outfit con face detection 27.32% 36.36% Room con face detection 49.39% 72.73% Outfit 28.61% 63.64% Room 43.69% 72.73% Tabella 6.4: Risultati multi frame dataset IAS-Lab RGBD-ID Comparazione tra PPCM e Skeleton Descriptor In questa sezione vengono comparati i risultati di re-identificazione dell algoritmo di Person Point Cloud Matching e di un altro descrittore soft biometric che impiega informazioni sullo scheletro, entrambi ottenuti con il BIWI RGBD-ID dataset. In particolare questo descrittore si basa sul calcolo di alcune lunghezze e rapporti di lunghezza, ottenuti dalla posizione 3D dei joint del corpo forniti dallo skeletal tracker. Le lunghezze prese in considerazione sono le seguenti: altezza testa, altezza collo, distanza tra collo e spalla destra, distanza tra collo e spalla sinistra, distanza da torso e spalla destra, lunghezza braccio destro, lunghezza braccio sinistro, lunghezza gamba destra, lunghezza gamba sinistra, lunghezza torso, distanza tra anca destra e anca sinistra, rapporto tra la lunghezza del torso e lunghezza della gamba destra, rapporto tra la lunghezza

64 52 CAPITOLO 6. RE-IDENTIFICAZIONE DI PERSONE Cross validation Test - Still Test - Walking Rank-1 nauc Rank-1 nauc Rank-1 nauc Skeleton (NN) 80.5% 98.2% 26.6% 89.7% 21.1% 86.6% Point cloud matching 93.7% 99.6% 32.5% 89.0% 22.4% 81.6% Tabella 6.5: Comparazione risultati ottenuti in cross validation e con i testing set del BIWI RGBD-ID dataset. del torso e la lunghezza della gamba sinistra. Tutte queste lunghezze vengono concatenate in un singolo descrittore dello scheletro e viene poi impiegato un classificatore Nearest Neighbor basato sulla distanza euclidea per la comparazione dei descrittori estratti dal training set con quelli dei testing set. Come si può osservare dalle CMC in Figura 6.11 la tecnica di point cloud matching ha performance inferiori rispetto al descrittore dello scheletro, tuttavia la differenza tra le due tecnica risulta minima. Quello che è importante evidenziare è invece che le due tecniche sono in qualche modo complementari in quanto i due differenti approcci portano a errori su soggetti diversi, come mostrato negli istogrammi di rank medio in Figura 6.11 Figura 6.11: Comparazione CMC ottenute con l algoritmo di Person Point Cloud Matching e il descrittore dello scheletro sui testing set del BIWI RGBD-ID dataset.

65 6.3. TEST E RISULTATI 53 (a) Skeleton (NN) (b) Point cloud matching (c) Skeleton(NN) (d) Point cloud matching Figura 6.12: Istogrammi di rank medio ottenuti con le due tecniche per ogni persona dei set di test Still (a), (b) e Walking (c), (d) del dataset BIWI RGBD-ID.

66 54 CAPITOLO 6. RE-IDENTIFICAZIONE DI PERSONE 6.4 Prestazioni Nella Tabella 5.2 vengono riportate in dettaglio le prestazioni per l algoritmo di re-identificazione con la seguente configurazione harware/software ottenute sul BIWI RGB-D dataset: CPU: Intel Core 3.40Ghz RAM: 8 GB DDR3 SO: Ubuntu Precise 64bit ROS: Fuerte L operazione che richiede più tempo di calcolo è il matching della point cloud trasformata con i modelli di ogni persona del training set, che richiede 250 ms per effettuare 50 comparazioni. Il tempo medio di esecuzione di tutti i passaggi dell algoritmo è di circa 490ms, che si traduce in un frame rate di 2.08 fps. Questo suggerisce che con ulteriori ottimizzazioni e un numero non troppo elevato di persone nel database questo approccio può essere impiegato in real time. Operazione Tempo di elaborazione (ms) Lettura dati scheletro e RGB-D Registrazione da depth a RGB Segmentatione e labeling 3.03 Face detection Trasformazione a posa standard 0.41 Voxel filtering 0.33 SOR filtering 6.40 MLS smoothing Allineamento ICP al modello e calcolo fitness score Totale Tabella 6.6: Tempo medio di elaborazione per le singole operazioni.

67 6.4. PRESTAZIONI 55 Figura 6.13: Tempo medio di elaborazione per le singole operazioni.

20 Giugno 2013 Gianni Rosa Gallina giannishub@hotmail.com @giannirg http://giannishub.cloudapp.net/it/

20 Giugno 2013 Gianni Rosa Gallina giannishub@hotmail.com @giannirg http://giannishub.cloudapp.net/it/ 20 Giugno 2013 Microsoft Kinect introduzione Gianni Rosa Gallina giannishub@hotmail.com Twitter: @giannirg Blog: http://giannishub.cloudapp.net/it/ Agenda Cos è Microsoft Kinect? Cosa si può fare con Kinect?

Dettagli

Elaborazione di segnali generati dal sensore Kinect

Elaborazione di segnali generati dal sensore Kinect DII Dipartimento di Ingegneria dell Informazione Elaborazione di segnali generati dal sensore Kinect Enea Cippitelli e.cippitelli@univpm.it Overview 1. Il sensore Kinect 2. Software 3. Test della sedia

Dettagli

Progetto Didattico di Informatica Multimediale

Progetto Didattico di Informatica Multimediale Progetto Didattico di Informatica Multimediale VRAI - Vision, Robotics and Artificial Intelligence 20 aprile 2015 Rev. 18+ Introduzione Le videocamere di riconoscimento sono strumenti sempre più utilizzati

Dettagli

Corso SIRI 2014. Dott. Ing. Stefano Tonello

Corso SIRI 2014. Dott. Ing. Stefano Tonello Corso SIRI 2014 Dott. Ing. Stefano Tonello IT+Robotics Spin-off dell Università di Padova fondata nel 2005 IAS-LAB (Intelligent and Autonomous Systems Laboratory) Attiva nei campi della robotica e visione

Dettagli

2005-2015. Ing. Alessio Negri

2005-2015. Ing. Alessio Negri Software realizzati 2005-2015 Ing. Alessio Negri Laurea Magistrale in Ingegneria Informatica in ambito visione stereoscopica Moduli di controllo del sistema GSM Software VB6 per l interfacciamento con

Dettagli

Robot Operating System

Robot Operating System Robot Operating System Lezione 1 A cura di: Jonathan Cacace 1 Outline Lezione 1: Introduzione; Architettura ROS; Protocolli di comunicazione; Concetti base; Primi passi. Lezione 2: ROS Stage; 2 Introduzione

Dettagli

Sviluppo di una app per Android al fine di gestire una serie di rilievi fotografici nell ambito della sicurezza dei fiumi

Sviluppo di una app per Android al fine di gestire una serie di rilievi fotografici nell ambito della sicurezza dei fiumi 1. Android App Android App Sviluppo di una app per Android al fine di gestire una serie di rilievi fotografici nell ambito della sicurezza dei fiumi Adriano Mancini mancini@dii.univpm.it Si deve sviluppare

Dettagli

Classificazione e Segmentazione di Gesture per la Human Computer Interaction

Classificazione e Segmentazione di Gesture per la Human Computer Interaction Università degli studi di Modena e Reggio Emilia Dipartimento di Ingegneria "Enzo Ferrari" Corso di Laurea Magistrale in Ingegneria Informatica Classificazione e Segmentazione di Gesture per la Human Computer

Dettagli

Università degli Studi di Catania Corso di Laurea Magistrale in Informatica Multimedia 2013/14. Cantarella Danilo. OpenCV Android

Università degli Studi di Catania Corso di Laurea Magistrale in Informatica Multimedia 2013/14. Cantarella Danilo. OpenCV Android Università degli Studi di Catania Corso di Laurea Magistrale in Informatica Multimedia 2013/14 Cantarella Danilo Introduzione OpenCV (Open Source Computer Vision Library) è una libreria disponibile per

Dettagli

Laboratorio di Elaborazione e Trasmissione Video

Laboratorio di Elaborazione e Trasmissione Video + Laboratorio di Elaborazione e Trasmissione Video Prof. Christian Micheloni Dott. Marco Vernier Dipartimento di Matematica e Informatica Università degli studi di Udine Cosa abbiamo visto Nella 1 lezione:

Dettagli

Giornata ANIPLA Introduzione alla visione industriale 3D. Milano, 14 giugno 2012 www.vblab.it R. Sala - remo.sala@polimi.it

Giornata ANIPLA Introduzione alla visione industriale 3D. Milano, 14 giugno 2012 www.vblab.it R. Sala - remo.sala@polimi.it Giornata ANIPLA Introduzione alla visione industriale 3D Milano, 14 giugno 2012 www.vblab.it R. Sala - remo.sala@polimi.it La visione delle macchine: 35 anni di storia Il testo Digital image processing

Dettagli

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 () Calcolo delle corrispondenze Affrontiamo il problema centrale della visione stereo, cioè la ricerca automatica di punti corrispondenti tra immagini Chiamiamo

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

Dettagli

Lezione 16: Animazione (2)

Lezione 16: Animazione (2) Lezione 16: Animazione (2) Informatica Multimediale Docente: Umberto Castellani Sommario Introduzione Origini Produrre animazioni Animazione tradizionale (2D) Animazione digitale 2 Animazione 3D Animazione

Dettagli

Applicazioni della Realtà Virtuale al settore della Riabilitazione Motoria. Stato dell arte e caso di studio: il progetto HYPER Alessandro De Mauro

Applicazioni della Realtà Virtuale al settore della Riabilitazione Motoria. Stato dell arte e caso di studio: il progetto HYPER Alessandro De Mauro Applicazioni della Realtà Virtuale al settore della Riabilitazione Motoria. Stato dell arte e caso di studio: il progetto HYPER Alessandro De Mauro Ademauro@vicomtech.org Vicomtech Centro tecnologico no

Dettagli

IsoStereo 3D: il sistema generale ed automatizzato per ricostruzione tridimensionale

IsoStereo 3D: il sistema generale ed automatizzato per ricostruzione tridimensionale IsoStereo 3D: il sistema generale ed automatizzato per ricostruzione tridimensionale Isomorph srl, Giugno 2008 Caratteristiche del programma: IsoStereo 3D elabora immagini stereoscopiche e ricostruisce

Dettagli

Master in Computer Game Dev. Interaction Design

Master in Computer Game Dev. Interaction Design Master in Computer Game Dev Interaction Design Il Docente Umberto Castellani (PhD) Ricercatore del Dipartimento di Informatica Università di Verona VIPS (Vision, Image Processing & Sound) (http://vips.sci.univr.it)

Dettagli

Studio e sviluppo di uno Scanner 3D con Kinect

Studio e sviluppo di uno Scanner 3D con Kinect Studio e sviluppo di uno Scanner 3D con Kinect Università politecnica delle marche Facoltà di ingegneria Corso di laurea magistrale in ingegneria informatica Tesi di laurea di: Luca Pignati Relatore: Prof.

Dettagli

ELABORAZIONE DI DATI TRIDIMENSIONALI - RELAZIONE HOMEWORK 2

ELABORAZIONE DI DATI TRIDIMENSIONALI - RELAZIONE HOMEWORK 2 DAVIDE ZANIN 1035601 ELABORAZIONE DI DATI TRIDIMENSIONALI - RELAZIONE HOMEWORK 2 SOMMARIO Elaborazione di dati tridimensionali - Relazione Homework 2... 1 Obiettivo... 2 Descrizione della procedura seguita...

Dettagli

MovieShot Motore Di Ricerca Per Film Basato Sul Riconoscimento Della Locandina

MovieShot Motore Di Ricerca Per Film Basato Sul Riconoscimento Della Locandina MovieShot Motore Di Ricerca Per Film Basato Sul Riconoscimento Della Locandina Giorgio Iacoboni Matricola 1099585 Anno Accademico 2010/2011 Outline Introduzione Image Matching Architettura di MovieShot

Dettagli

INTRODUCTION TO WEARABLE TECHNOLOGY

INTRODUCTION TO WEARABLE TECHNOLOGY INTRODUCTION TO WEARABLE TECHNOLOGY AND MOBILE VISION - Tutorial 2 - In questo tutorial impareremo come sviluppare una applicazione in grado di classificare in modo automatico alcuni luoghi di interessa

Dettagli

Indice. settembre 2008 Il File System 2

Indice. settembre 2008 Il File System 2 Il File System Indice 4. Il File System 5. Vantaggi del FS 6. Protezione 7. Condivisione 8. I file - 1 9. I file - 2 10. Attributi dei file 11. Directory 12. Livelli di astrazione - 1 13. Livelli di astrazione

Dettagli

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo 2010. Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano

Lezione1. Cos è la computer grafica. Lezione del 10 Marzo 2010. Michele Antolini Dipartimento di Ingegneria Meccanica Politecnico di Milano Lezione1 Informatica Grafica Cos è la computer grafica Lezione del 10 Marzo 2010 Grafica OpenGL vs Direct Dipartimento di Ingegneria Meccanica Politecnico di Milano 1.1 Tubo a Raggi Catodici Cathode Ray

Dettagli

Sistema di rilevamento automatico e riconoscimento volti. aspetti metodologici e pratici

Sistema di rilevamento automatico e riconoscimento volti. aspetti metodologici e pratici Introduzione Sistema di rilevamento automatico e riconoscimento volti: aspetti metodologici e pratici by Univr https://www.scienze.univr.it 24 novembre 2010 Goal Introduzione Goal Sistemi biometrici Face

Dettagli

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

Minipiattaforme volanti per il controllo del territorio: ambienti di simulazione

Minipiattaforme volanti per il controllo del territorio: ambienti di simulazione Minipiattaforme volanti per il controllo del territorio: ambienti di simulazione Claudio Demartini Politecnico di Torino - DAUIN claudio.demartini@polito.it Barbara Pralio Politecnico di Torino - DIASP

Dettagli

Sistema di rilevamento automatico e riconoscimento volti. aspetti metodologici e pratici

Sistema di rilevamento automatico e riconoscimento volti. aspetti metodologici e pratici Introduzione Sistema di rilevamento automatico e riconoscimento volti: aspetti metodologici e pratici by Univr https://www.scienze.univr.it 24 novembre 2010 Goal Introduzione Goal Sistemi biometrici Face

Dettagli

Progetto Computer Vision. Conteggio persone in una stanza

Progetto Computer Vision. Conteggio persone in una stanza Progetto Computer Vision Conteggio persone in una stanza Montanaro Teodoro (188924) Federico Ianne (188283) Sommario Obiettivo... 3 Telecamera in dotazione... 3 Ambiente di sviluppo... 4 Approcci possibili

Dettagli

Controllo di posizione di un robot articolato mediante Kinect

Controllo di posizione di un robot articolato mediante Kinect UNIVERSITÀ DI BRESCIA FACOLTÀ DI INGEGNERIA Dipartimento di Ingegneria dell Informazione Laboratorio di Robotica Avanzata Advanced Robotics Laboratory Corso di Robotica Mobile (Prof. Riccardo Cassinis)

Dettagli

Serie IMZ-RS400. RealShot Manager versione 4. www.sonybiz.net/nvm

Serie IMZ-RS400. RealShot Manager versione 4. www.sonybiz.net/nvm Serie IMZ-RS400 RealShot Manager versione 4 www.sonybiz.net/nvm Software di monitoraggio basato sull innovativa piattaforma DEPA (Distributed Enhanced Processing Architecture) che fornisce un analisi delle

Dettagli

Ricostruzione di scene 3D a colori

Ricostruzione di scene 3D a colori Universitá degli studi di Padova Facoltá di Ingegneria Tesi di Laurea Triennale in INGEGNERIA DELL INFORMAZIONE Ricostruzione di scene 3D a colori Relatore Prof. Pietro Zanuttigh Co-relatore Cappelletto

Dettagli

INSEGUIMENTO DI PERSONE MEDIANTE ROBOT MOBILE DOTATO DI TELECAMERA DI PROFONDITÀ PEOPLE TRACKING WITH A MOBILE ROBOT USING A DEPTH CAMERA

INSEGUIMENTO DI PERSONE MEDIANTE ROBOT MOBILE DOTATO DI TELECAMERA DI PROFONDITÀ PEOPLE TRACKING WITH A MOBILE ROBOT USING A DEPTH CAMERA UNIVERSITÀ DEGLI STUDI DI PARMA FACOLTÀ DI INGEGNERIA Corso di Laurea in Ingegneria Informatica INSEGUIMENTO DI PERSONE MEDIANTE ROBOT MOBILE DOTATO DI TELECAMERA DI PROFONDITÀ PEOPLE TRACKING WITH A MOBILE

Dettagli

Sommario PREMESSA... 2 1 RILIEVO LASER SCANNING... 2. 1.1 La tecnica... 2 1.2 La campagna... 6 1.3 Elaborazione dei dati... 10

Sommario PREMESSA... 2 1 RILIEVO LASER SCANNING... 2. 1.1 La tecnica... 2 1.2 La campagna... 6 1.3 Elaborazione dei dati... 10 REL D Rilievi topografici e studio di inserimento urbanistico Pag 1 Sommario PREMESSA... 2 1 RILIEVO LASER SCANNING... 2 1.1 La tecnica... 2 1.2 La campagna... 6 1.3 Elaborazione dei dati... 10 REL D Rilievi

Dettagli

Ing. Matteo Munaro. Lab. di Sistemi Autonomi Intelligenti (IAS-Lab) Università di Padova 16/04/12 - Bologna

Ing. Matteo Munaro. Lab. di Sistemi Autonomi Intelligenti (IAS-Lab) Università di Padova 16/04/12 - Bologna Ing. Matteo Munaro Lab. di Sistemi Autonomi Intelligenti (IAS-Lab) Università di Padova 16/04/12 - Bologna Persone allo IAS-Lab Staff Enrico Pagello, Full Professor of Computer Science Emanuele Menegatti,

Dettagli

Premessa. Presentazione

Premessa. Presentazione Premessa Nexera nasce come società del settore ICT, con una forte focalizzazione sulla ricerca tecnologica, e, sin dall inizio della sua attività, ha concentrato la propria attenzione al settore della

Dettagli

Il dispositivo Microsoft Kinect

Il dispositivo Microsoft Kinect Politecnico di Torino Corso di laurea Magistrale in Ingegneria Informatica (Computer Engeneering) Il dispositivo Microsoft Kinect Tesina di Realtà Virtuale Prof. Andrea Giuseppe Bottino A.A. 2011-2012

Dettagli

La Realtà Aumentata. Definizione Tecnologie: Applicazioni. HMD Tracker. Realtà Virtuale: il presente, il passato, Realtà Aumentata il futuro

La Realtà Aumentata. Definizione Tecnologie: Applicazioni. HMD Tracker. Realtà Virtuale: il presente, il passato, Realtà Aumentata il futuro La Realtà Aumentata Definizione Tecnologie: HMD Tracker Applicazioni La Realtà Aumentata Diagramma del continuum realtà/virtualità di Millmann ( 94) AR come parte della Mixed Reality Predomina la percezione

Dettagli

Corso di Rilievo Fotogrammetrico 3D e gestione delle mesh

Corso di Rilievo Fotogrammetrico 3D e gestione delle mesh www.terrelogiche.com Corso di Rilievo Fotogrammetrico 3D e gestione delle mesh >>ROMA >>07-08-09 ottobre 2015 Dipartimento di Ingegneria Civile, Edile e Ambientale. Sapienza Università di Roma, Via Eudossiana,

Dettagli

LA STEREO FOTOMETRIA, OLTRE L IMMAGINAZIONE

LA STEREO FOTOMETRIA, OLTRE L IMMAGINAZIONE MADD-SPOT, 2, 2013 LA STEREO FOTOMETRIA, OLTRE L IMMAGINAZIONE DI ROBERTO MECCA Il mercato dell animazione 3D è in forte crescita in questi anni. Stampanti tridimensionali, nuovi strumenti per l analisi

Dettagli

Dalla Computer Vision alle interfacce naturali

Dalla Computer Vision alle interfacce naturali Dalla Computer Vision alle interfacce naturali METODI E MODELLI DI INTERAZIONE Social Q&A @vs_ar #askvisionary www.vision-ary.net 14/11/2014 TWITTER @VS_AR 2 Obiettivi del seminario 1. Fornire gli elementi

Dettagli

Realtà Aumentata. Definizione Tecnologie: Applicazioni. HMD Tracker. Realtà Virtuale: il presente, il passato, Aumentata il futuro

Realtà Aumentata. Definizione Tecnologie: Applicazioni. HMD Tracker. Realtà Virtuale: il presente, il passato, Aumentata il futuro La Definizione Tecnologie: HMD Tracker Applicazioni La Diagramma del continuum realtà/virtualit /virtualità di Millmann ( 94) AR come parte della Mixed Reality Predomina la percezione del mondo reale,

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

1. Hard Real Time Linux (Laurea VO o specialistica)

1. Hard Real Time Linux (Laurea VO o specialistica) 20/9/06 Elenco Tesi Disponibili Applied Research & Technology Dept. La Società MBDA La MBDA Italia è un azienda leader nella realizzazione di sistemi di difesa che con i suoi prodotti è in grado di soddisfare

Dettagli

Applied Research & Technology Dept.

Applied Research & Technology Dept. 17/12/08 Elenco Tesi Disponibili Applied Research & Technology Dept. La Società MBDA La MBDA Italia è un azienda leader nella realizzazione di sistemi di difesa che con i suoi prodotti è in grado di soddisfare

Dettagli

Dispense del corso di Elaborazione di Immagini e Audio Digitali

Dispense del corso di Elaborazione di Immagini e Audio Digitali http://imagelab.ing.unimo.iting it Dispense del corso di Elaborazione di Immagini e Audio Digitali Video Processing Prof. Roberto Vezzani Dall immagine al video Un video può essere visto innanzitutto come

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica Il software Dipartimento di Ingegneria dell Informazione Universitàdegli Studi di Parma SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono

Dettagli

Stabilizzazione Video. Video Digitali

Stabilizzazione Video. Video Digitali Stabilizzazione Video Video Digitali Stabilizzazione video STABILIZZARE:assicurare il mantenimento di una condizione di equilibrio constante,generalmente identificabile nell'assenza di oscillazioni o variazioni

Dettagli

Sensori low-cost per la riabilitazione

Sensori low-cost per la riabilitazione Sensori low-cost per la riabilitazione Applied Intelligent Systems Laboratory University of Milano N.A. Borghese, M. Pirovano, R. Mainetti P. Lanzi, G. Baud Bovy Trento, 09 Marzo 2012 1 Idea chiave: Sensori

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il Sistema Operativo Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Cos

Dettagli

Livello di approfondimento della lezione. Texture mapping di solito spiegato in corsi di CG di base

Livello di approfondimento della lezione. Texture mapping di solito spiegato in corsi di CG di base Texture mapping Davide Gadia, Daniele Marini Corso di Programmazione Grafica per il Tempo Reale Laurea Magistrale in Informatica per la Comunicazione a.a. 2013/2014 Livello di approfondimento della lezione

Dettagli

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 25 febbraio 2015. Corso di laurea in Matematica

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 25 febbraio 2015. Corso di laurea in Matematica Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 25 febbraio 2015 1 / 42 INFORMATICA Varie definizioni: Scienza degli elaboratori elettronici (Computer Science)

Dettagli

Applicazioni e considerazioni conclusive

Applicazioni e considerazioni conclusive Applicazioni e considerazioni conclusive 8.1 La telecamera tridimensionale Il sistema di scansione a luce debolmente strutturata permette di scandire un oggetto e di ricavarne un immagine tridimensionale

Dettagli

AMBIENTE VIRTUALE UTENTE

AMBIENTE VIRTUALE UTENTE Moduli logici di un Ambiente Virtuale Sintesi Campionamento Comportamenti Proprietà AMBIENTE VIRTUALE Management Rendering Interazione UTENTE È il processo che porta alla descrizione di un oggetto (modello),

Dettagli

EyeTower. EyeTower: Software di videosorveglianza intelligente Gestione e analisi video avanzata in un solo pacchetto

EyeTower. EyeTower: Software di videosorveglianza intelligente Gestione e analisi video avanzata in un solo pacchetto VIRTUAL IMAGING TECHNOLOGY : Software di videosorveglianza intelligente Gestione e analisi video avanzata in un solo pacchetto è l unico prodotto che integra in un unica piattaforma di videosorveglianza

Dettagli

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Sistemi Operativi I Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia Introduzione: 1. Principi di base dei sistemi operativi 2. Sistemi

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

OpenSceneGraph & OSG4Web

OpenSceneGraph & OSG4Web OpenSceneGraph & OSG4Web Parte 1 OpenSceneGraph Introduzione alla creazione di una Applicazione 3D e OpenGL Basi di OpenSceneGraph Demo e prove pratiche Parte 2 Navigazione e Virtual Worlds su larga scala

Dettagli

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

Information Visualization

Information Visualization Information Visualization Introduzione alla CG Prof. Andrea F. Abate abate@unisa.it http://www.unisa.it/docenti/andreafrancescoabate/index CG e VR: cosa sono e a cosa servono Con il termine Computer Graphics,

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

Corso: Informatica+ Andrea Cremonini. Lezione del 20/10/2014

Corso: Informatica+ Andrea Cremonini. Lezione del 20/10/2014 Corso: Informatica+ Andrea Cremonini Lezione del 20/10/2014 1 Cosa è un computer? Un elaboratore di dati e immagini Uno smartphone Il decoder di Sky Una console di gioco siamo circondati! andrea.cremon

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

Miglioramento di algoritmi di elaborazione di immagini da scanner 3D tramite Simulated Annealing

Miglioramento di algoritmi di elaborazione di immagini da scanner 3D tramite Simulated Annealing Miglioramento di algoritmi di elaborazione di immagini da scanner 3D tramite Simulated Annealing Marco Derboni 1, Evelina Lamma 1, Antonio Zaccaro 2 1 Dipartimento di Ingegneria, Via Saragat 1, 44122 Ferrara

Dettagli

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Sistema operativo Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base Architettura a strati di un calcolatore

Dettagli

Studio tecnologico per il porting di MITO (Medical Imaging TOolkit) su dispositivi mobili

Studio tecnologico per il porting di MITO (Medical Imaging TOolkit) su dispositivi mobili Consiglio Nazionale delle Ricerche Istituto di Calcolo e Reti ad Alte Prestazioni Studio tecnologico per il porting di MITO (Medical Imaging TOolkit) su dispositivi mobili Alessio Pierluigi Placitelli

Dettagli

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche Il Cloud Computing La visualizzazione nella Cloud Problematiche Virtualizzazione della GPU Front end Virtualization

Dettagli

Corso di Rilievo 3D e gestione delle mesh (Avanzato)

Corso di Rilievo 3D e gestione delle mesh (Avanzato) www.terrelogiche.com Corso di Rilievo 3D e gestione delle mesh (Avanzato) >>ROMA Informazioni ed iscrizioni: www.terrelogiche.com TerreLogiche organizza il corso Rilievo 3D e gestione delle mesh (Avanzato)

Dettagli

Introduzione Computer Graphics

Introduzione Computer Graphics Knowledge Aided Engineering Manufacturing and Related Technologies Dipartimento di Ingegneria Industriale Università di Parma Introduzione Computer Graphics Cosa e la computer graphics Computer Graphics

Dettagli

Ricostruzione stereo. Il nostro obiettivo. Ricostruzione del Cenacolo Vinciano. Ricostruire la profondità. d Y

Ricostruzione stereo. Il nostro obiettivo. Ricostruzione del Cenacolo Vinciano. Ricostruire la profondità. d Y Il nostro obiettivo Daniele Marini Ricostruzione stereo Ricostruire scenari 3D da più immagini per inserire oggetti di sintesi Ricostruire la profondità Ricostruzione del Cenacolo Vinciano Solo se abbiamo

Dettagli

09/12/2013 Riconoscimento facciale 2

09/12/2013 Riconoscimento facciale 2 Lezione 10: Misure delle Prestazioni Sistemi Multibiometrici Docente: Michele Nappi mnappi@unisa.it biplab.unisa.it 089-963334963334 Verifica e Riconoscimento Verifica: Confronto Uno a Uno. Conferma l

Dettagli

Analisi video intelligente

Analisi video intelligente Analisi video intelligente (versione 1.4) pag. 1 di 17 INDICE 1. PRESENTAZIONE ANALISI VIDEO... 3 2. PROSPETTIVA... 4 3. AREE DI INTERESSE... 6 4. PARAMETRI BASE... 7 5. PEOPLE DETECTOR... 10 6. PERCORSI...

Dettagli

Esperienze di Apprendimento Automatico per il corso di Intelligenza Artificiale

Esperienze di Apprendimento Automatico per il corso di Intelligenza Artificiale Esperienze di Apprendimento Automatico per il corso di lippi@dsi.unifi.it Dipartimento Sistemi e Informatica Università di Firenze Dipartimento Ingegneria dell Informazione Università di Siena Introduzione

Dettagli

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino

Sistemi Operativi. Modulo 2. C. Marrocco. Università degli Studi di Cassino Sistemi Operativi Modulo 2 Schema di un Sistema di Calcolo Programmi Dati di Input Calcolatore Dati di output Modello di von Neumann Bus di sistema CPU Memoria Centrale Memoria di Massa Interfaccia Periferica

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Lezione 6 a.a. 2010/2011 Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono: diversi

Dettagli

Informatica e Bioinformatica: Sistemi Operativi

Informatica e Bioinformatica: Sistemi Operativi Informatica e Bioinformatica: Sistemi Operativi 11 marzo 2013 Macchina Hardware/Software Sistema Operativo Macchina Hardware La macchina hardware corrisponde alle componenti fisiche del calcolatore (quelle

Dettagli

Master SIT Settembre 2006. Corso Web & GIS - Master in Sistemi Informativi Territoriali AA 2005/2006. Chiara Renso. ISTI- CNR c.renso@isti.cnr.

Master SIT Settembre 2006. Corso Web & GIS - Master in Sistemi Informativi Territoriali AA 2005/2006. Chiara Renso. ISTI- CNR c.renso@isti.cnr. COSTRUIRE APPLICAZIONI WEB GIS: SERVIZI E STRATEGIE Corso - Master in Sistemi Informativi Territoriali AA 2005/2006 ISTI- CNR c.renso@isti.cnr.it I servizi WebGIS...1 Download di dati...3 Visualizzazione

Dettagli

Capitolo 6 ELABORAZIONE DI IMMAGINI A COLORI

Capitolo 6 ELABORAZIONE DI IMMAGINI A COLORI Capitolo 6 ELABORAZIONE DI IMMAGINI A COLORI Il colore viene utilizzato nelle immagini digitali per due motivi principali: è un descrittore che semplifica l identificazione di un oggetto e la sua estrazione

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

Martina Agazzi. Corso di Tecniche plastiche contemporanee. Prof. Carlo Lanzi

Martina Agazzi. Corso di Tecniche plastiche contemporanee. Prof. Carlo Lanzi Martina Agazzi Corso di Tecniche plastiche contemporanee Prof. Carlo Lanzi RILEVAMENTO 3D DI UN OGGETTO ARTISTICO (SCULTURA) Luce strutturata Dispositivo portatile, facilmente trasportabile digitalizzazione

Dettagli

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Gli elaboratori utilizzano memoria per Dati da elaborare Istruzioni eseguite dall elaboratore software differenti risoluzione problemi differenti Algoritmo

Dettagli

Un Sistema Location-based per la mappatura degli Access Point

Un Sistema Location-based per la mappatura degli Access Point 1 Un Sistema Location-based per la mappatura degli Access Point Pasquale Cautela pasquale.cautela@studio.unibo.it Marco Peca marco.peca@studio.unibo.it Rosario Salpietro rosario.salpietro@studio.unibo.it

Dettagli

VCA per serie ZN-VE e ZN-XE

VCA per serie ZN-VE e ZN-XE IP camera VCA per serie ZN-VE e ZN-XE Algoritmi di analisi video Video Analytics 29/05/2012- G234/1/I Caratteristiche principali Algoritmi ZNS-Presence preinstallati in tutti i dispositivi della serie

Dettagli

GidasADM (Calcolo e monitoraggio della diffusione degli odori) Manuale utente

GidasADM (Calcolo e monitoraggio della diffusione degli odori) Manuale utente GidasADM (Calcolo e monitoraggio della diffusione degli odori) Manuale utente Aggiornamento 20/05/2013 Cod. SWUM_01029_it Sommario 1. Introduzione... 3 1.1. Il modello di calcolo applicato... 3 2. Requisiti

Dettagli

Indicizzazione e ricerca delle immagini

Indicizzazione e ricerca delle immagini Indicizzazione e ricerca delle immagini E un settore della ricerca dove sono stati raggiunti risultati molto importanti e avanzati. Ora tali tecniche sono anche incluse nei database relazionali di tipo

Dettagli

Infrastrutture Software

Infrastrutture Software Infrastrutture Software I componenti fisici di un sistema informatico sono resi accessibili agli utenti attraverso un complesso di strumenti software finalizzati all utilizzo dell architettura. Si tratta

Dettagli

Hand tracking con Kinect e rendering per dispositivi aptici indossabili

Hand tracking con Kinect e rendering per dispositivi aptici indossabili 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

Dettagli

Informatica di Base. Il software

Informatica di Base. Il software di Base 1 Sistemi informatici Hardware Microprocessore Memoria Periferiche di input e output Software Software di sistema Programmi applicativi 2 Il sw applicativo Il sw applicativo è costituito dall insieme

Dettagli

Server e Gateway VSoIP Pro

Server e Gateway VSoIP Pro IP video Server e Gateway VSoIP Pro Software VSoIP Server 3.2 14/12/2012- G215/2/I Caratteristiche principali VSoIP 3.2 Suite è il sistema di gestione video GANZ per reti Ethernet basato su una reale topologia

Dettagli

1 INTRODUZIONE 1.1 Computer Vision e Pattern Recognition

1 INTRODUZIONE 1.1 Computer Vision e Pattern Recognition 1 INTRODUZIONE 1.1 Computer Vision e Pattern Recognition Gli studi condotti nel corso del mio Dottorato di Ricerca si possono maggiormente ricondurre a quella branca della scienza che va sotto il nome

Dettagli

Promelit DiMavision. Video OverIP. DiMavision. L intelligenza al servizio della videosorveglianza.

Promelit DiMavision. Video OverIP. DiMavision. L intelligenza al servizio della videosorveglianza. Promelit DiMavision Video OverIP DiMavision. L intelligenza al servizio della videosorveglianza. DiMavision. Il sofware per gestire il sistema di videosorveglianza in modo facile, efficace, distribuito

Dettagli

Un sistema di Vision Inspection basato su reti neurali

Un sistema di Vision Inspection basato su reti neurali Un sistema di Vision Inspection basato su reti neurali Ludovico Buffon 1, Evelina Lamma 1, Fabrizio Riguzzi 1, Davide Formenti 2 1 Dipartimento di Ingegneria, Via Saragat 1, 44122 Ferrara (FE), Italia

Dettagli

M.E.N.T.I.S. Microscope Embedded Neurosurgical Training and Intra-operative System

M.E.N.T.I.S. Microscope Embedded Neurosurgical Training and Intra-operative System Sistema di Realta Virtuale ed Aumentata per la Neurochirurgia Compusurge meeting 13.07.2009 M.E.N.T.I.S. Microscope Embedded Neurosurgical Training and Intra-operative System A. De Mauro 1, J. Raczkowsky

Dettagli

SISTEMA DI VISIONE PER LA VALUTAZIONE DEL CORRETTO IMPACCHETTAMENTO DI MOLLETTE IN PLASTICA: INDAGINE DI FATTIBILITA

SISTEMA DI VISIONE PER LA VALUTAZIONE DEL CORRETTO IMPACCHETTAMENTO DI MOLLETTE IN PLASTICA: INDAGINE DI FATTIBILITA SISTEMA DI VISIONE PER LA VALUTAZIONE DEL CORRETTO IMPACCHETTAMENTO DI MOLLETTE IN PLASTICA: INDAGINE DI FATTIBILITA Studenti: Mazzotti Daniele matr. 72857 Rossini Diego matr. 74486 1. INTRODUZIONE In

Dettagli

teoresi studi&ricerche

teoresi studi&ricerche UN SISTEMA DI CONTROLLO PER ELICOTTERO Realizzazione con Simulink e Direct3D di M. CARIDI e L. DAGA Dipartimento di Informatica e Sistemistica Università degli Studi di Roma La Sapienza via Eudossiana

Dettagli

Fusione delle Immagini in Radioterapia Riccardo Ragona Università di Torino

Fusione delle Immagini in Radioterapia Riccardo Ragona Università di Torino Fusione delle Immagini in Radioterapia Riccardo Ragona Università di Torino Introduzione Transformazioni Algoritmi Visualizzazione Validazione Applicazioni Conclusioni Perche la Fusione delle Immagini?

Dettagli

BluData. The smart eyes over your production system. www.blueng.com info@blueng.com

BluData. The smart eyes over your production system. www.blueng.com info@blueng.com BluData The smart eyes over your production system www.blueng.com info@blueng.com Il Prodotto BluData è il sistema di raccolta dati innovativo e dinamico nato dall esperienza pluriennale di Bluengineering

Dettagli

AMBIENTE VIRTUALE. Moduli logici di un Ambiente Virtuale. Modellazione. Management Rendering Interazione. Sintesi. Comportamenti.

AMBIENTE VIRTUALE. Moduli logici di un Ambiente Virtuale. Modellazione. Management Rendering Interazione. Sintesi. Comportamenti. Moduli logici di un Ambiente Virtuale Sintesi Campionamento Comportamenti Proprietà AMBIENTE VIRTUALE Management Rendering Interazione UTENTE È il processo che porta alla descrizione di un oggetto (modello),

Dettagli

Lettura targhe con telecamere MOBOTIX

Lettura targhe con telecamere MOBOTIX Lettura targhe con telecamere MOBOTIX Premessa Le telecamere MOBOTIX non hanno a bordo un software in grado di effettuare la lettura dei caratteri della targa (OCR Optical Character Recognition) ma possono

Dettagli

Studio di fattibilità di un sistema di visione per controllo di qualità di un portasaponetta

Studio di fattibilità di un sistema di visione per controllo di qualità di un portasaponetta UNIVERSITÀ DEGLI STUDI DI BRESCIA FACOLTÀ DI INGEGNERIA PROGETTO DI STRUMENTAZIONE ELETTRONICA B Studio di fattibilità di un sistema di visione per controllo di qualità di un portasaponetta Studenti: Andrea

Dettagli