Real-time 3D reconstruction using multiple depth cameras Studente/i Relatore Correlatore Committente Diaz Lopez Marco Ferrari Alan Galli Vanni - Corso di laurea Modulo Anno Data Ing. Informatica TP M00002 - C09511 2015/2016 02/09/2016 Abstract Dispositivi che permettono di rilevare la cinematica dei corpi vengono largamente utilizzati negli ultimi anni per i più svariati compiti, sia nel mondo dei giochi, sia in ambienti professionali (ad esempio per il settore medico o sportivo) fino ad altri più lucrativi come la domotica. In questo progetto si utilizza il Kinect di Microsoft il quale offre una propria SDK tramite la quale è possibile capire la posizione dell’utente e tenere traccia dei suoi movimenti. Il Kinect, per ricavare queste informazioni, richiede una visione diretta dell’utente (senza la presenza di ostacoli). Con il presente lavori si vuole ovviare alla problematica appena citata, in questo contesto è stata sviluppata un’applicazione distribuita la quale unifica le coordinate dei corpi rilevate da diversi Kinect. La struttura di comunicazione utilizzata per il trasferimento è basata sulla strategia pull-push. Il server, dopo aver collezionato i dati, ricostruisce la scena Per fare ciò i dati in entrata devono essere elaborati in modo che tutti abbiano lo stesso sistema di riferimento e qualora un elemento sia mancante in un Kinect, vien ripreso da un altro. Oltre alla gestione dei dati ricavati dai diversi Kinect, questi vengono anche visualizzati a schermo facendo uso della libreria grafica OpenGL in modo da poter avere una visualizzazione real-time della cinematica del corpo. L’architettura proposta offre anche la possibilità di scalare aggiungendo un numero imprecisato di Kinect in modo da poter rendere il sistema efficace nei più svariati ambienti. . Obiettivi Il Kinect di Microsoft può essere utilizzato in un ambiente domestico per aumentare l'interazione degli utenti con il computer, mediante il riconoscimento della cinematica del corpo. Malgrado il Kinect sia in grado di riconoscere anche la profondità della scena (tramite infrarosso), la presenza di ostacoli impedisce una vera visione a 360 gradi. Lo scopo di questo lavoro è quello di porre rimedio a questo problema, sviluppando un framework in grado di unificare le informazioni provenienti da molteplici Kinect. Una volta sviluppato il framework, sarà possibile applicare tecniche di activity recognition in modo da identificare le attività in corso effettuate dagli utenti. Conclusione Sebbene il Kinect ha delle sue limitazione, ha un gran potenziale a scopo di ricerca, permettendo creare dei progetti molto interessanti con un preventivo molto stretto, negli ultimi anni sono cresciute il numero di ricerche che hanno come scopo la ricostruzione 3D, e questo dispositivo tramite la camera RGB-D ha delle eccezionale prestazione. Inoltre ha come vantaggio che fornisce la Kinect SDK la quale permette una programmazione più comoda e veloce. Durante lo sviluppo di questo progetto sono stati affrontati diversi problemi tra i quali principalmente si trovano quelli che riguardano alla gestione delle relative posizione di ogni parte del corpo e la gestione della comunicazione tra la parte client e server. Avendo progettato l’applicazione come un sistema distribuito permette fare fronte al problema che suppone la presenza di ostacoli al interno di una scena, giacché questa struttura fornisce l’opzione di aggiungere tanti Kinect come si creda opportuno, per avere tutte le aree della scena sotto controllo. Inoltre al numero di Kinect, è importante segnalare il fatto che dal lato server si avranno tutti i dati nello stesso sistema di riferimento, questi dati possono essere trattati per rilevare delle gestures, che permettano di capire qualche evento che se voglia. Di tutto ciò si può concludere che la soluzione proposta unifica i dati provenienti da diversi Kinect ovviando i problemi generati dalla presenza di ostacoli e permettendo una posteriore applicazione di tecniche di activity recognition in modo da identificare le attività in corso effettuate dagli utenti. Questo progetto è sicuramente un ottimo punto di partenza, che già permette intravedere il vero potenziale che offre l’estrazione e analisi dei movimenti che effettua un utente, queste analisi possono essere applicati in un’infinità di ambienti tale come domotica, medicale, sportivi e pure console di gioco.