Inertial Data Analytics for Sport Elisabetta Pisetti Anno scolastico 2014/15 Classe 5Ais Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Indice Sommario Indice .................................................................................................... 2 Sommario............................................................................................ 2 Introduzione ........................................................................................... 3 Esperimento ........................................................................................... 4 Processo ................................................................................................ 5 Acquisizione dei dati ............................................................................. 5 Pre-processing ..................................................................................... 5 Feature extraction ................................................................................ 6 Classificazione ...................................................................................... 6 Python ................................................................................................... 7 Perchè usare Python ............................................................................. 7 Chi usa Python ..................................................................................... 8 PostegreSQL e pgAdmin ........................................................................... 8 Galaxy ................................................................................................... 9 Moduli Galaxy ........................................................................................10 Creazione script Python ........................................................................11 Creazione file xml ................................................................................13 Conclusioni ............................................................................................14 2 Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Introduzione La fatica è una delle principali cause degli infortuni nello sport. Nello sci alpino la stanchezza colpisce la reattività muscolare e il controllo del movimento, alterando la percezione del pericolo e la risposta dei riflessi. Nell’ottica di contenere l’alto tasso di incidenti e di infortuni, ho aderito a un progetto sperimentale di ricerca presso la Fondazione Bruno Kessler, volto a un’analisi dei dati al fine di prevedere gli effetti della fatica, di segnalare le piste e i momenti della giornata a maggior rischio. L’analisi e l’interpretazione geospaziale di dati inerziali sono avvenute mediante GPS (Global Positioning System) e GIS (Geographic Information System) . L'idea di dedicarmi a un’attività di stage continuativo in FBK, presso l’unità MPBA (Predictive Models for Biomedicine & Environment) diretta da Cesare Furlanello, é nata in settembre, dopo che la scorsa estate avevo svolto il tirocinio estivo presso tale ente di innovazione e ricerca. È stata un'esperienza stimolante poiché ho avuto l’opportunità di cimentarmi in tecnologie sperimentali e in nuovi linguaggi di programmazione, quali Python e SQL. Quest'ultimo è stato oggetto di studio teorico e di analisi pratica all’interno della programmazione di Informatica dell’anno scolastico appena trascorso. Durante il mio stage estivo, durato circa un mese, ho avuto modo di concentrarmi sulla raccolta e sull'analisi di dati provenienti da sensori inerziali e da GPS. Tale argomento di indagine ha suscitato il mio interesse al punto da spingermi a continuare a lavorarci anche durante quest'anno. A partire da gennaio mi sono recata un pomeriggio ogni settimana presso la sede di FBK sita a Povo per proseguire il mio percorso di sperimentazione. In particolare ho avuto l’opportunità di contribuire allo sviluppo di una piattaforma per gestire e processare dati inerziali e spaziali. La piattaforma è stata utilizzata in uno studio per capire, attraverso l’estrazione di features inerziali, lo stato di affaticamento di uno sciatore. 3 Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Esperimento I campioni del nostro esperimento sono sciatori inesperti, atleti e allenatori, con sessioni di sci di almeno 180 min in un’area sciistica pubblica. I dati inerziali vengono raccolti da un insieme di tre sensori IMU (Inertial Measurement Units). Ogni IMU comprende un accelerometro triassiale, un giroscopio triassiale e un magnetometro triassiale. I dati IMU vengono inviati tramite Bluetooth a uno smartphone Android, dove una app verifica eventuali dati mancanti, li sincronizza e infine li memorizza sullo smartphone. Altri dati inerziali e GPS vengono anche raccolti direttamente dallo smartphone. I sensori e lo smartphone vengono posizionati sul corpo in due diverse modalità: • I sensori sulla schiena, sulla coscia sinistra, sulla coscia destra e lo smartphone nella tasca destra dei pantaloni; • I sensori sulla schiena, sulla coscia destra, sulla gamba destra, e lo smartphone nella tasca sinistra dei pantaloni. Inoltre, alla fine del percorso, gli sciatori inseriscono il livello percepito di affaticamento muscolare su una scala di riferimento soggettivo da 1 a 5. Nelle prime due discese gli sciatori sono invitati a scegliere piste facili o intermedie (blu o rosse) al fine di scaldarsi. Ogni sciatore seleziona la stessa pista rossa come terza e ultima discesa della sessione per ottenere un confronto diretto. Gli sciatori sono comunque liberi di sciare in tutta l’area sciistica, poiché le tracce GPS sono annotate automaticamente. Tutti i dati vengono caricati su un database centrale PostGreSQL /PostGIS e poi elaborati per estrarre informazioni sull’orario e sulla frequenza. Infine, applicando metodi di apprendimento automatico (Machine Learning) viene associato un marcatore di fatica per ogni sciata. 4 Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Processo Acquisizione dei dati I sensori inerziali, come ad esempio accelerometro e giroscopio, vengono utilizzati per tracciare i movimenti. Questi vengono posizionati sul corpo e raccolgono tutti i dati. Pre-processing I dati grezzi provenienti dai sensori vengono processati per eliminare il rumore e per adattarli per i prossimi step. Alcuni esempi di processi sono: • controllo dei dati mancanti • controllo dei dati errati • correzione dei dati errati 5 Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Feature extraction Con feature extraction si intende il processo di estrazione delle caratteristiche, ossia la modalità di trasformazione dei dati eterogenei in ingresso in un insieme ridotto di caratteristiche. Tale processo risulta molto efficiente ed efficace quando si analizza una quantità notevole di dati che, altrimenti, richiederebbero un uso massiccio di memoria. Pertanto, è spesso utilizzato quando si opera con media, varianza e densità. Classificazione Infine viene eseguito un algoritmo di classificazione per riconoscere il livello do affaticamento dello sciatore. Se quest’ultimo risulta stanco verrà inviata una notifica al suo smartphone dicendo che conviene che si fermi perché altrimenti potrebbe farmi male. 6 Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Python Python è un linguaggio di programmazione ad alto livello, ideato da Guido van Rossum e rilasciato pubblicamente per la prima volta nel 1991. Per il nome l’inventore ha preso spunto dalla commedia Monty Python's Flying Circus degli anni ‘70 . Perché usare Python • È free: Python è completamente gratuito ed è possibile usarlo e distribuirlo senza restrizioni di copyright. • È orientato agli oggetti: Python è un linguaggio orientato agli oggetti, supporta nozioni avanzate di polimorfismo, ereditarietà, operatori di overloading, il tutto con una semplice sintassi. • È portabile: è possibile usarlo su diverse piattaforme come Unix, Linux, Windows, DOS, Macintosh, cellulari Nokia e Android. Lo stesso codice può essere eseguito su qualsiasi piattaforma, purché abbia l’interprete Python installato. • È facile da usare: utilizza semplici regole di sintassi e opera ad un alto livello di astrazione. • È ricco di librerie: offre numerose librerie standard e altre aggiuntive per programmi specifici. • È performante: Python è un linguaggio interpretato, compila il proprio codice in un bytecode molto efficiente che permette di raggiungere prestazioni vicine ai linguaggi in codice nativo. • Gestisce la memoria automaticamente: esiste il meccanismo di garbage collection, cioè una modalità automatica di gestire la memoria che non viene più utilizzata dalle applicazioni • È integrabile ad altri linguaggi: Python può essere integrato ad altri linguaggi come .NET con IronPython o python per .NET, Java con Jython. 7 Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Chi usa Python Gli ambiti di applicazione sono svariati: Python è attualmente utilizzato per realizzare interfacce GUI, per lavorare con i database per lo sviluppo di applicazioni Web e desktop, per realizzare giochi, grafica 3D… Oggi Python viene utilizzato in molte grandi realtà del mercato informatico, di cui alcuni esempi sono: ● La NASA usa Python per lo sviluppo di sistemi di controllo; ● Yahoo! ha sviluppato in Python alcuni servizi di internet; ● Google e Youtube usano Python. PostegreSQL e pgAdmin PostgreSQL è conosciuto come il miglior ORDBMS (Object Relational DataBase Managemente System) non commerciale. È l’unico fra i prodotti open source a poter competere con prodotti come Oracle, Microsoft SQL Server e altri. pgAdmin è un'applicazione C++ libera, un’interfaccia grafica che consente di amministrare in modo semplificato database di PostgreSQL. 8 Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Galaxy Galaxy è una piattaforma open basata sul web utilizzata per la ricerca computazionale biomedica accessibile, trasparente e riproducibile. • accessibile: gli utenti, senza esperienza di programmazione, possono specificare facilmente i parametri ed eseguire strumenti e flussi di lavoro • riproducibile : Galaxy acquisisce le informazioni in modo che qualsiasi utente possa capire e ripetere una analisi completa. • trasparente : gli utenti condividono e pubblicano le analisi via web e creano pagine e documenti interattivi che descrivono una analisi completa È possibile utilizzare Galaxy in due diverse modalità: • attraverso Internet all’indirizzo usegalaxy.org • applicazione in locale scaricata da sito 9 Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Moduli Galaxy Per creare un modulo in Galaxy è necessario avere due file, uno script in Python e un file xml. Il primo definisce quello che dovrà fare il modulo, mentre il secondo detta le regole di creazione della struttura del modulo. Per creare un diagramma di lavoro basterà semplicemente trascinare i moduli interessati all’interno dell’area di lavoro e collegare i moduli tra di loro secondo l’ordine voluto. 10 Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Creazione script Python In questa parte di script vengono definiti i parametri indicando il tipo, la destinazione e un suggerimento in caso l’utente non capisca cosa inserire. In questo momento i parametri inseriti sono in chiaro tuttavia in un prossimo aggiornamento le informazioni relative al database e all’utente verranno crittografate in modo che persone non autorizzate non possano accedere. 11 Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Nella parte di script sottostante vengono create delle variabili che prendono il valore dei parametri inseriti precedentemente. Questa porzione di script serve per connettersi al database, si inseriscono i parametri della connessione, ossia il nome del database, il nome dell’utente, la password, l’indirizzo IP e la porta su cui si trova il database. Infine viene assegnato un nome alle colonne della tabella e il risultato della query viene salvato in un file .csv . 12 Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Creazione file xml Il file xml detta le regole su come deve essere strutturato il modulo e inoltre specifica il tipo di ogni parametro, in questo caso sono tutti di tipo text. Viene specificato anche a quale script Python fare riferimento, facendo ciò all’interno della cartella contenente il file xml verrà aggiunto anche lo script Python. 13 Elisabetta Pisetti 5Ais 2014-15 ITT “G. Marconi” Rovereto Conclusioni Svolgere un periodo di stage presso FBK è stata un’esperienza stimolante che mi ha dato la possibilità di partecipare ad un progetto innovativo e utile per prevenire incidenti sulle piste da sci. Inoltre, il progetto è stato portato, quasi interamente, sulla piattaforma Galaxy per poter permettere a persone, poco esperte nel settore della programmazione, di poter utilizzare in maniera grafica le stesse tecnologie. Questo aspetto è molto interessante, in quanto non ci sono più così tanti limiti come un tempo, dove solo le persone esperte e acculturate potevano compiere determinati compiti e lavori, ora quasi chiunque può permettersi di creare siti web e applicazioni solamente seguendo un tutorial in rete. Per questo motivo anche FBK ha deciso di implementare parte dei propri progetti su piattaforme utilizzabili da chiunque fosse interessato. Ringrazio la Fondazione Bruno Kessler, in particolare l’unità MPBA presso cui ho svolto il mio stage, per la disponibilità dimostrata in questi mesi di tirocinio. Inoltre, ringrazio Andrea Bizzego, il tutor che mi ha seguita e aiutata, dandomi l’opportunità di sperimentare nuove tecnologie e strumenti. 14