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