Aktiviteetin tunnistus mobillilaitteiden kiihtyvyysantureilla

SAMI KOSKIMÄKI
AKTIVITEETIN TUNNISTUS MOBIILILAITTEIDEN
KIIHTYVYYSANTUREILLA
Diplomityö
Tarkastaja: tutkimusjohtaja Alpo
Värri
Tarkastajat ja aihe hyväksytty Teknisten tieteiden tiedekuntaneuvoston
kokouksessa 4. kesäkuuta 2014
TAMPEREEN TEKNILLINEN YLIOPISTO
Automaatiotekniikan koulutusohjelma
KOSKIMÄKI, SAMI: Aktiviteetin tunnistus mobiililaitteiden
kiihtyvyysantureilla
Diplomityö, 49 sivua
Tammikuu 2015
Pääaine: Signaalinkäsittely
Tarkastajat: tutkimusjohtaja Alpo Värri
Avainsanat: aktiviteetin tunnistus, kiihtyvyysanturi, hahmontunnistus,
älypuhelin
Tässä työssä luodaan järjestelmä, joka tunnistaa mobiililaitteen käyttäjän aktiviteetin
kiihtyvyysanturin avulla. Tunnistettavat aktiviteetit ovat kävely, juoksu, pyöräily, passiivisuus ja muu liikunta. Tavoitteena on luoda järjestelmä, joka toimii huomaamattomasti mobiililaitteessa ja kerää jatkuvasti tietoa käyttäjän arkipäiväisestä aktiivisuudesta.
Koska järjestelmän on tarkoitus toimia taustalla ilman, että käyttäjä erikseen ilmoittaa
aktiviteetin alkaneen, on yksi suurimmista haasteista erottaa muut jokapäiväiset liikkeet
ja toiminnot kuten mobiililaitteen normaali käyttö tunnistettavista aktiviteeteista. Työssä
kiinnitetään erityistä huomiota myös järjestelmän resurssivaatimuksiin mobiililaitteen
akkukulutuksen minimoimiseksi.
Toteutettu järjestelmä käsittelee mobiililaitteen tarjoamaa kolmiulotteista kiihtyvyysaikasarjaa lyhyissä ikkunoissa. Ikkunasta irrotetaan joukko piirteitä, joiden avulla tilastollinen luokitin tekee alustavan luokituksen aktiviteetista. Tätä tulosta jalostetaan jälkikäsittelyalgoritmilla, joka ottaa huomioon useamman peräkkäisen luokituksen. Luokittimen koulutusdatan keräämiseen kiinnitettiin erityistä huomiota.
Toteutettu järjestelmä asettaa kiihtyvyyssensorille erittäin vähän vaatimuksia. Järjestelmän vaatima 15 Hz:n näytteenottotaajuus on saatavilla lähes jokaisessa markkinoilla
olevassa kiihtyvyysanturissa. Myös vaadittu ±2 g arvoalue on tarpeeksi pieni useimmille kiihtyvyysantureille. Toteutettu järjestelmä asettaa erittäin vähän vaatimuksia myös
sensorin asennolle ja sijainnille käyttäjän vartalossa. Mobiililaitteen asennolla ei ole
merkitystä, ja sen voi sijoittaa taskujen lisäksi jopa reppuun tai käsilaukkuun. Järjestelmän vaikutus akun kulutukseen on pieni. Lisäksi järjestelmä toteutettiin taustaprosessina, joka ei häiritse laitteen normaalia käyttöä millään tavalla.
Järjestelmä tunnistaa passiivisuuden, kävelyn ja juoksun tarkasti. Koulutettu luokitin
saavuttaa näille luokille 99 prosentin tunnistustarkkuuden työssä kerätyllä datajoukolla,
joka sisältää 12 tuntia kävelyä, 3 tuntia juoksua ja 4,5 tuntia pyöräilyä yhteensä kahdek-
II
salta eri henkilöltä. Myös pyöräilyn tunnistustarkkuus on hyvä, mutta asettaa mobiililaitteen sijainnille erityisvaatimuksia. Nämä erityisvaatimukset huomioiden myös pyöräilyn tunnistustarkkuus on lähes 98 prosenttia.
III
TAMPERE UNIVERSITY OF TECHNOLOGY
Master’s Degree Programme in Automation Technology
KOSKIMÄKI, SAMI: Activity detection using accelerometers in mobile
devices
Master of Science Thesis, 49 pages
January 2015
Major: Signal Processing
Examiners: Associate professor Alpo Värri
Keywords: activity detection, accelerometer, pattern recognition,
smartphone
This thesis reports the creation of a system that uses accelerometer to recognize mobile
device user’s activity. The recognized activities are walking, running, cycling, passiveness and other physical exercise. The purpose of the system is to work unnoticed in a
mobile device and collect information on user’s everyday activities.
As the system is meant to work in the background, without the user specifically indicating that an activity has started, one of the greatest challenges in creating the system is to
separate other ordinary motions and actions such as the normal usage of the mobile device from the before mentioned physical activities. Special attention was paid to the system resource requirements to minimize its effect on the battery usage in the mobile device.
The executed system processes the tridimensional acceleration time series retrieved
from the mobile device in short time windows. From a time window, the system extracts a group of characters that a statistical classifier then analyses to determine a preliminary classification for the activity. This result is further refined with a post processing algorithm that takes into account several consecutive classifications. The training data for the classifier was gathered carefully in order to assure its comprehensiveness.
The resulting system imposes very few requirements for an accelerometer. The system
requires a sampling frequency of 15Hz which is available in almost every accelerometer
in the market. The required value range of ±2g is sufficiently small for most of the accelerometers as well. The executed system also sets very little requirements for the position of the sensor and for its location on the user’s body. The position of the mobile device is irrelevant and the users can place the device not only in their pockets but even in
their backpacks or handbags. The system has only a small effect on the battery usage. In
addition to this, the system was executed as a background process that does not affect
the normal usage of the device in any way.
IV
The system recognizes passiveness, walking and running precisely. The trained classifier achieves 99 percent recognition accuracy in these classes with the collected data set
that includes 12 hours of walking, 3 hours of running and 4.5 hours of cycling in total
from eight different people. It also recognizes cycling well but, unlike the other activities, cycling posits requirements for the location of the mobile device during the activity. When these requirements are met, the recognition accuracy in cycling is almost 98
percent.
V
ALKUSANAT
Työn tekninen toteutus tehtiin osana asiakasprojektia Vincit Oy:ssä vuosina 2011–2012.
Työn kirjallinen osuus valmistui hyvin hitaasti seuraavien kolmen vuoden aikana. Kiitos
siitä, että työ yleensäkin valmistui, kuuluu tyttöystävälleni Merja Koski-Sipilälle ja työkaverilleni Juha Riipille, jotka potkivat minua eteenpäin tasaisin välein. Osa kiitoksesta
kuuluu myös ahdistaville unilleni, jotka muistuttivat minua keskeneräisestä koulutuksestani.
Haluan kiittää myös työn ohjaajaa, tutkimusjohtaja Alpo Värriä. Hän oli tavoitettavissa
aina kun tarvitsin neuvoja tai palautetta ja vastasi kysymyksiini nopeasti ja tarkasti.
Tampereella, 25.1.2015
Sami Koskimäki
VI
SISÄLLYS
1
2
3
4
5
6
Johdanto .................................................................................................................... 2
Teoreettinen tausta .................................................................................................... 4
2.1 Hahmontunnistusjärjestelmät ............................................................................. 4
2.2 Kiihtyvyysanturit ................................................................................................ 5
2.2.1
Toimintaperiaate ......................................................................................... 6
2.2.2
Mobiililaitteiden kiihtyvyysanturit ............................................................. 6
2.3 Mittausdatan esikäsittely .................................................................................... 7
2.3.1
Uudelleennäytteistys ................................................................................... 8
2.3.2
Projektio orientaatioriippumattomaan avaruuteen ...................................... 9
2.4 Piirteet .............................................................................................................. 10
2.4.1
Aikatason piirteet ...................................................................................... 10
2.4.2
Taajuustason piirteet ................................................................................. 11
2.5 Luokittimet ....................................................................................................... 12
2.5.1
MLP-neuroverkko ..................................................................................... 13
2.5.2
Tukivektorikone ........................................................................................ 14
2.5.3
Binääripäätöspuu ....................................................................................... 15
Koulutusdata ........................................................................................................... 17
3.1 Lähestymistapojen vertailua ............................................................................. 17
3.2 Hyvä koulutusdata ............................................................................................ 19
3.3 Keräysjärjestelmä ............................................................................................. 20
3.4 Keräysjärjestelyt ............................................................................................... 21
3.5 Kerätty data ...................................................................................................... 23
Toteutettu järjestelmä .............................................................................................. 26
4.1 Järjestelmän rakenne ........................................................................................ 26
4.2 Esikäsittely ....................................................................................................... 27
4.2.1
Uudelleennäytteistys ................................................................................. 27
4.2.2
Orientaatioriippuvuuden poisto................................................................. 28
4.3 Piirteiden valinta............................................................................................... 28
4.4 Luokitus ............................................................................................................ 34
4.4.1
Tukivektorikone ........................................................................................ 34
4.4.2
MLP-neuroverkko ..................................................................................... 36
4.4.3
Binääripäätöspuu ....................................................................................... 36
4.4.4
Luokittimen valinta ................................................................................... 37
4.5 Temporaalinen jälkikäsittely ............................................................................ 37
4.6 Resurssien hallinta ............................................................................................ 39
Tulokset ja niiden tarkastelu ................................................................................... 40
5.1 Tarkkuus arkipäiväisessä käytössä ................................................................... 40
5.1.1
Ensimmäisen koehenkilön tulokset ja analyysi......................................... 40
5.1.2
Toisen koehenkilön tulokset ja analyysi ................................................... 43
5.2 Akun kulutus arkipäiväisessä käytössä ............................................................ 46
Yhteenveto .............................................................................................................. 48
VII
Lähteet ............................................................................................................................. 50
VIII
LYHENTEET JA MERKINNÄT
Lyhenteet
DC
FFT
GPS
IIR
MCR
MLP
RBF
SVM
WLAN
ZCR
engl. Direct Current, tasavirta
engl. Fast Fourier Transform, nopea algoritmi diskreetin Fouriermuunnoksen laskemiseen
engl. Global Positioning System, maailmanlaajuinen
paikallistamisjärjestelmä
engl. Infinite Impulse Response, suodatintyyppi, jonka impulssivaste on
äärettömän pitkä
engl. Medium Crossing Rate, taajuus jolla signaalin arvo siirtyy
keskiarvon toiselle puolelle
engl. Multilayer Perceptron, neuroverkkotyyppi, joka koostuu useasta
tasosta neuroneita
engl. Radial Basis Function, kantafunktio, jonka arvo riippuu
etäisyydestä origoon
engl. Support Vector Machine, tukivektorikone, lineaarinen
luokitinmalli
engl. Wireless Local Area Network, langaton lähiverkkoteknologia
engl. Zero Crossing Rate, taajuus jolla signaalin arvo siirtyy nollan
toiselle puolelle
Muuttujat ja funktiot
(
)
(
)
( )
Φ
̂
( )
Muuttujien h ja v välinen korrelaatio
Muuttujien h ja v välinen kovarianssi
Signaalin S entropia
Muuttujan h keskihajonta
Kernelifunktio
Arvioitu maan vetovoimavektori
Kiihtyvyyden vaakasuuntainen komponentti
Kiihtyvyyden pystysuuntainen komponentti
Aikasarjan n:s kiihtyvyysvektori
2
1
JOHDANTO
Mobiililaitteiden ja mobiilipalveluiden kontekstitietoisuus (engl. context awareness) on
ajankohtainen aihealue, johon kehitetään jatkuvasti lisää sovelluksia. Kontekstilla tarkoitetaan tässä yhteydessä esimerkiksi käyttäjän aktiviteettia (mitä tekee), sijaintia, tunnetilaa tai ympäristöä. Kontekstitietoinen palvelu käyttää kontekstitietoa hyväkseen tarjotakseen palvelun käyttäjälle tilanteeseen (kontekstiin) paremmin sopivaa tietoa. Mobiililaitteen ja sen käyttäjän sijaintitiedon hyödyntäminen on hyvä esimerkki kontekstitietoisesta sovelluksesta. Käyttäjän sijainnin automaattinen määrittäminen on helppoa
mobiililaitteista nykyään lähes poikkeuksetta löytyvän GPS-anturin ansiosta.
Mobiililaitteissa on usein muitakin sensoreita, joita voidaan käyttää kontekstin havainnointiin, kuten kiihtyvyysanturi, kompassi, mikrofoni, WLAN-adapteri ja bluetoothadapteri. Esimerkiksi WLAN-yhteyden avulla voidaan yrittää päätellä, onko käyttäjä
lähellä rakennusta vai ei, koska WLAN-yhteyksiä on yleensä vain rakennusten sisällä.
Mikrofonin tallentamasta äänisignaalista voidaan yrittää päätellä onko käyttäjä ihmisjoukossa vai yksin, koska ihmisjoukossa usein kuuluu monen ihmisen puhetta samaan
aikaan. Käyttäjän aktiviteetin tunnistamiseen soveltuu parhaiten kiihtyvyysanturi, joka
tallentaa hyvin yksityiskohtaista tietoa käyttäjän liikkeistä.
Käyttäjän aktiviteettia voidaan käyttää hyväksi monessa sovelluksessa. Yksinkertaisimmillaan sovellus voi pitää kirjaa käyttäjän aktiviteetista, jotta käyttäjä voi seurata
liikuntansa määrää. Sovellus voi tarjota mahdollisuuden toimintojen automatisointiin
aktiviteetin perusteella. Käyttäjä voi esimerkiksi valita, että laitteen musiikkisoitin menee automaattisesti päälle, kun käyttäjä lähtee lenkille ja alkaa juosta.
Tässä työssä keskitytään käyttäjän aktiviteetin tunnistamiseen kiihtyvyysanturin avulla.
Tunnistettavat aktiviteetit ovat kävely, juoksu, pyöräily, passiivisuus ja muu liikunta.
Nämä ovat yleisiä jokapäiväisiä aktiviteetteja, ja tavoitteena on luoda järjestelmä, joka
toimii huomaamattomasti mobiililaitteessa, ja jatkuvasti kerää tietoa käyttäjän arkipäiväisestä aktiivisuudesta.
Koska järjestelmän on tarkoitus toimia taustalla ilman, että käyttäjä erikseen ilmoittaa
aktiviteetin alkaneen, on yksi suurimmista haasteista erottaa muut jokapäiväiset liikkeet
ja toiminnot, kuten mobiililaitteen normaali käyttö, tunnistettavista aktiviteeteista.
Työssä kiinnitetään erityistä huomiota myös järjestelmän resurssivaatimuksiin mobiili-
3
laitteen akkukulutuksen minimoimiseksi ja täten järjestelmän huomaamattomuuden
maksimoimiseksi.
Aktiviteetin tunnistusta kiihtyvyysanturin avulla on tutkittu laajasti. Useimmissa tutkimuksissa on kuitenkin käytetty montaa kiihtyvyysanturia, jotka on sijoitettu tiettyihin
asentoihin eri puolille käyttäjän vartaloa. Tässä työssä luotava järjestelmä on riippumaton sensorin (eli mobiililaitteen) asennosta ja sijainnista vartalossa. Työn tuloksena luodaan ohjelma, jota voidaan ajaa taustalla mobiililaitteissa jatkuvasti ilman merkittävää
vaikutusta akun kulutukseen. Järjestelmä tunnistaa valitut aktiviteetit suurella tarkkuudella ja osaa olla reagoimatta mobiililaitteen normaaliin käyttöön.
Tunnistusjärjestelmä toteutetaan yleiskäyttöisenä Java-kirjastona, joka ei tee oletuksia
alla olevasta käyttöjärjestelmästä tai laitteistosta. Teoriassa järjestelmän voi integroida
mihin tahansa laitteeseen, jolle on saatavilla Java 6 -yhteensopiva Java-virtuaalikone.
Työssä kuitenkin käytetään android-käyttöjärjestelmällä varustettuja mobiililaitteita niiden helpon saatavuuden, halvan hinnan ja monimuotoisuuden vuoksi.
4
2
TEOREETTINEN TAUSTA
2.1
Hahmontunnistusjärjestelmät
Tässä työssä luotava järjestelmä on pohjimmiltaan hahmontunnistusjärjestelmä. Tässä
luvussa käydään lyhyesti läpi hahmontunnistusjärjestelmien perusrakenne ja tärkeimmät
osat. Seuraavat aliluvut keskittyvät tarkemmin tämän työn kannalta oleellisiin hahmontunnistusjärjestelmän osiin.
Hahmontunnistus on operaatio, jossa joukko kohteesta tehtyjä havaintoja sijoitetaan oikeaan luokkaan. Tässä työssä havainnot ovat kiihtyvyysanturilta saatuja näytearvoja ja
mahdolliset luokat ovat aktiviteetit kävely, juoksu, pyöräily, passivisuus, ja muu liikunta. Kuvassa 1 on esitetty hahmontunnistusjärjestelmän yksinkertaistettu rakenne.
Sensori
raakadata (havainnot)
Esikäsittely
esikäsitelty data
Piirteenirrotus
piirrevektori
Luokitus
luokitustulos
Jälkikäsittely
lopullinen luokka
Kuva 1. Hahmontunnistusjärjestemän rakenne
5
Sensori voi olla mikä tahansa laite, joka havainnoi kohdetta ja tarjoaa siitä mittauksia.
Sensori voi olla esimerkiksi kamera, jonka tarjoamat mittaukset ovat kuvia kohteesta.
Tämän työn tapauksessa sensori on mobiililaitteen kiihtyvyysanturi, joka tarjoaa havaintoja kiihtyvyysarvojen muodossa laitteen ja siten myös sen kantajan liikkeistä.
Esikäsittelyssä sensorin tarjoamaa mittausdataa käsitellään siten, että siitä on helpompi
irrottaa kiinnostavia piirteitä. Kohinan suodatus ja segmentointi ovat yleisiä esikäsittelyoperaatioita. Segmentointi tarkoittaa luokiteltavan objektin erottamista muusta datasta. Jos esimerkiksi auton kuvasta on tarkoitus tunnistaa rekisterinumero, segmentointi
etsii kuvasta rekisterikilven ja erottaa sen taustasta. Tässä työssä esikäsittely koostuu
datan näytetaajuuden alentamisesta ja sensorin asennon vaikutusten poistamisesta. Molemmissa operaatioissa poistetaan raakadatasta epäoleellista tietoa.
Piirteenirrotus (engl. feature extraction) on operaatio, jossa mittausdatasta irrotetaan
piirteitä, jotka kuvaavat luokiteltavia objekteja mahdollisimman hyvin. Mittausdata on
usein moniulotteista ja sisältää paljon sovelluksen kannalta ylimääräistä informaatiota.
Esimerkiksi kuva voi helposti sisältää miljoonia näytearvoja. Piirteenirrotuksen yksi
päätarkoitus onkin alentaa mittausdatan dimensiota ja siten yksinkertaistaa mittausdataa.
Mittausdatasta muodostettua piirteiden joukkoa kutsutaan piirrevektoriksi. Itse piirteet
ja niiden irrotusmenetelmät riippuvat paljon sovelluksesta ja käytettävästä luokittimesta.
Jos järjestelmän tarkoitus on esimerkiksi luokitella ihmisiä miehiksi ja naisiksi, hyviä
piirteitä voisivat olla pituus, paino ja rinnanympärys. Yksinkertaistettuna tarkoitus on
muokata mittausdata muotoon, joka tekee luokittimen työn mahdollisimman helpoksi.
Luokitin sijoittaa piirrevektorin todennäköisimpään luokkaan ja siten muodostaa alustavan arvion luokasta, johon sensorin tarjoamat havainnot kuuluvat. Luokitin ei yleensä
ota huomioon kuin yhden piirrevektorin, eikä siksi usein pysty yksin muodostamaan
optimaalista luokitustulosta.
Jälkikäsittelyssä voidaan ottaa huomioon useampi luokitustulos ja parantaa tarkkuutta
ottamalla huomioon tulosten keskinäiset riippuvuussuhteet. Oletetaan esimerkiksi, että
luokitin on tuottanut aktiviteettisekvenssin {P, J, P, J, P, J}, missä P trakoittaa pyöräilyä, J juoksua ja jokainen tapahtuma on viiden sekunnin mittainen. Voidaan helposti
päätellä, että henkilö ei todennäköisesti ole juossut pyörän kanssa viiden sekunnin välein, vaan kyseessä on luokitusvirhe. Kun luokittimen suorituskyvystä on hyvä käsitys,
voidaan virhe yrittää korjata.
2.2
Kiihtyvyysanturit
Tässä työssä kehitettävän hahmontunnistusjärjestelmän sensorina toimii kiihtyvyysanturi. Kiihtyvyysanturi on laite, joka mittaa kappaleen kiihtyvyyttä eli nopeuden muutosta
tietyssä ajassa. Tässä luvussa esitellään kiihtyvyysanturien toimintaperiaate ja perehdy-
6
tään mobiililaitteiden kiihtyvyysantureiden dataformaattiin, ominaisuuksiin ja rajoituksiin.
2.2.1 Toimintaperiaate
Kiihtyvyysanturi mittaa niin sanottua oikeaa kiihtyvyyttä (engl. proper acceleration).
Levossa anturin antama lukema on noin 1 g eli noin 9,81
ylöspäin johtuen maan
) tai kolmen (
)
vetovoimasta. Anturit mittaavat kiihtyvyyttä yleensä kahden (
toisiaan vastaan kohtisuoran akselin suhteen omassa paikallisessa koordinaatistossaan.
Kiihtyvyysanturin voidaan ajatella koostuvan kitkavaimennetusta massasta, joka on
kiinnitetty jousen päähän. Kun anturin runko liikkuu, jousi venyy. Mittaamalla jousen
venymä saadaan laskettua massaan kohdistuva voima ja sen avulla kiihtyvyys. Käytännön antureissa käytetään pietsosähköisiä, pietsoresistiivisiä tai kapasitiivisia komponentteja, jotka muuttavat mekaanisen liikkeen sähköiseksi signaaliksi.
Kiihtyvyysantureiden antamissa lukemissa on anturin laadusta riippuen eri määrä virhettä. Yleensä anturin jokaisella akselilla on sekä vääristymää (engl. bias) että skaalavirhettä (engl. scale error). Vääristymä on vakiosuuruinen virhe kiihtyvyyslukemassa ja
skaalavirhe on suoraan verrannollinen kiihtyvyyteen.
2.2.2 Mobiililaitteiden kiihtyvyysanturit
Nykyaikaisista älypuhelimista löytyy lähes poikkeuksetta kiihtyvyysanturi. Älypuhelimien kiihtyvyysanturit on tarkoitettu pääasiassa puhelimen asennon tunnistamiseen ja
pelien ohjaamiseen, eikä tieteelliseen, tarkkuutta vaativaan käyttöön. Tämän vuoksi mittauksien laatu on usein heikko.
Mobiililaitteiden käyttöjärjestelmien ohjelmointirajapinnan kautta kiihtyvyysantureilta
). Käytännössä
saatava mittaus on yleensä kolmiulotteinen reaalilukuvektori (
näytteiden arvoalueet ovat kuitenkin kvantisoituneet, koska anturin A/D-muunnin tuottaa 8–24 bittisiä kokonaislukuja. Käytännön kokeilujen perusteella näytteiden bittisyvyys on useimmissa älypuhelimissa enintään 6–8 bittiä. Antureiden näytetaajuudet
vaihtelevat paljon. Mobiililaitteesta ja käyttöjärjestelmästä riippuen käytössä olevat näytetaajuudet ovat väliltä 10–100 Hz. Myös kiihtyvyysantureiden arvo-alue on käytännössä aina rajoitettu välille ±2 g. Taulukossa 1 on listattu tässä työssä käytettyjen älypuhelimien kiihtyvyysantureiden keskimääräiset näytetaajuudet, näytetaajuuksien keskihajonnat ja kiihtyvyysarvojen arvoalueet. Laitteille, jotka tarjosivat useamman näytetaajuuden, suurin on esitetty.
7
Taulukko 1. Mobiililaitteiden näytetaajuudet ja niiden keskihajonnat
Mobiililaite
HTC Desire
HTC Desire Z
Samsung Galaxy Tab
Google Nexus S
ZTE Blade
Näytetaajuuden
keskiarvo
49 Hz
60 Hz
113 Hz
50 Hz
12 Hz
Näytetaajuuden
keskihajonta
8.4 Hz
2.9 Hz
9.3 Hz
1.4 Hz
4.2 Hz
Arvoalue
±2 g
±2 g
±2 g
±2 g
±2 g
Taulukon 1 arvot saatiin tallentamalla jokaisen laitteen kiihtyvyyssignaalia 1000 näytteen mittainen pala ja laskemalla peräkkäisten näytteiden aika-arvojen erotuksien käänteisarvojen (näytetaajuus) keskiarvo ja keskihajonta. Näytteen tallennuksen aikana laitetta ravistettiin voimakkaasti muutaman sekunnin ajan, jolloin kiihtyvyysarvot leikkaantuivat ylä- ja alapäästä ja näin arvo-alue saatiin määritettyä. Kuvassa 2 on esitetty
HTC Desire -laitteen näytetaajuushistogrammi.
Kuva 2. HTC Desire -laitteen näytetaajuushistogrammi
2.3
Mittausdatan esikäsittely
Kiihtyvyysdatan epätasavälisyys ja riippuvuus laitteen orientaatiosta ovat seikkoja, jotka vaikeuttavat datan analysoimista ja piirteiden irrotusta. Tässä luvussa esitellään me-
8
netelmät sekä näytetaajuuden tasoittamiseen eli uudelleennäytteistämiseen (engl. resampling) että orientaatioriippuvuuden poistamiseen.
2.3.1 Uudelleennäytteistys
Kuten taulukosta 1 ja kuvasta 2 nähdään, käytettävissä oleva kiihtyvyysdata saattaa laitteesta riippuen olla hyvinkin epätasavälistä. Datan epätasavälisyys vaikeuttaa analysointia ja aiheuttaa virhettä varsinkin taajuusspektrin estimointiin. Epätasavälisesti näytteistetylle datalle on kehitetty useita spektrin estimointimenetelmiä, mutta ne ovat laskennallisesti huomattavasti raskaampia kuin tasavälisen datan kanssa yleisesti käytetty nopea Fourier-muunnos (FFT).
Yksinkertaisin ja laskentatehokkain tapa tasavälistää data on käyttää lineaarista interpolointia. Kuvassa 3 on esitetty lineaarista interpolointia käyttävän uudelleennäytteistäjän
rakenne.
Sensori
epätasavälinen data
Interpolointi
tasavälinen data
Alipäästösuodatus
kaistarajoitettu data
Alinäytteistys
data jatkokäsittelyyn
Kuva 3. Uudelleennäytteistyksen rakenne
Ensin sensorilta tuleva epätasavälinen näytedata tasavälistetään interpoloimalla lineaarisesti. Tasavälisen datan näytetaajuus täytyy Nyquistin teoreeman nojalla olla vähintään
kaksi kertaa suurempi kuin epätasavälisen datan suurin taajuus, jotta laskostumista
(engl. aliasing) ei tapahtuisi. Tämä taajuus voidaan arvioida esimerkiksi koulutusdatasta. Koulutusdataa käsitellään myöhemmin luvussa 3. Lisäksi näytetaajuuden täytyy olla
halutun ulostulonäytetaajuuden moninkerta N, jotta alinäytteistys olisi yksinkertaista.
9
Näin saatu ylinäytteistetty tasavälinen data alipäästösuodatetaan, jotta laskostumista ei
esiinny myöskään alinäytteistysvaiheessa. Alipäästösuodatus voidaan suorittaa esimerkiksi toisen asteen IIR (Infinite Impulse Response) -suodattimella. IIR-suodattimet ovat
yksinkertaisia toteuttaa ja hyvin laskentatehokkaita. Viimeisessä vaiheessa alipäästösuodatetusta datasta yksinkertaisesti valitaan joka N:s näyte.
2.3.2 Projektio orientaatioriippumattomaan avaruuteen
Suurin ongelma mobiililaitteen kiihtyvyysdatassa hahmontunnistuksen kannalta on datan riippuvuus laitteen orientaatiosta. Data ja siitä lasketut piirteet siis riippuvat laitteen
asennosta. Tämä vaikeuttaa luokittimen koulutusta, koska koulutusdataa täytyisi kerätä
erikseen laitteen kaikista orientaatioista. Suurimmassa osassa aikaisempia tutkimuksia
tämä ongelma on kierretty kiinnittämällä sensori tiettyyn asentoon [1–9][12–13]. Yksi
vaihtoehto on käyttää vain orientaatioriippumattomia piirteitä summaamalla data yksiulotteiseksi [10]. Poistamalla orientaatiotieto kokonaan menetetään kuitenkin paljon
oleellista informaatiota.
Laitteen asento on mahdollista päätellä vetovoimavektorin suunnasta. Kiihtyvyysnäytteiden keskiarvo ajan yli antaa hyvän arvion vetovoiman suunnasta. Mizell esitteli menetelmän, jolla kolmiulotteinen kiihtyvyysdata voidaan projisoida kaksiulotteiseen
orientaatioriippumattomaan avaruuteen [14]. Yang et al. käyttivät tätä menetelmää onnistuneesti töissään [10][11]. Projektion vaatimat matemaattiset operaatiot on esitetty
kaavoissa (1)–(5).
∑ (
̂
‖ ‖
(1)
̂
‖ ̂‖
̂
‖ ‖
)
(2)
( )〉
〈̂
‖ ( )
( )
[ ]
̂
‖
(3)
(4)
(5)
Olkoon ( ) kolmiulotteinen kiihtyvyysvektori ajanhetkellä . Silloin arvioitu vetovoimavektori ajanhetkellä on ̂. Kokonaisluku N määrää liukuvan keskiarvotusikkunan pituuden. Yang et al. käyttivät N:lle arvoa, joka vastasi neljää sekuntia [11]. Mitä
pidempi N, sitä tarkempi arvio, mutta hitaampi reaktionopeus orientaation vaihteluihin.
Pystysuuntainen, eli vetovoimavektorin ̂ suuntainen, kiihtyvyyskomponentti saadaan
10
helposti kiihtyvyysvektorin ( ) ja vetovoimavektorin ̂ pistetulona. Vektorin ( )
vektoria vasten kohtisuora komponentti kuvaa vaakasuuntaista kiihtyvyyttä. Vektorin
suuntaa vaakatasossa ei pystytä määrittämään, vaan on aina vektoreiden ̂ ja ( )
virittämällä tasolla. Vaakasuuntaiseksi kiihtyvyyskomponentiksi voidaan valita vektorin
pituus . Orientaatioprojektion tuloksena on siis jokaiselle ajanhetkelle vektori .
Tästä eteenpäin tässä työssä symbolilla ( ) viitataan kaavan (5) vektoriin.
2.4
Piirteet
Esikäsittelyvaiheesta saatava kaksiulotteinen orientaatioriippumaton kiihtyvyysdata sisältää vielä suuren määrän informaatiota, josta osa on hyödytöntä kohinaa. Kiihtyvyysdatasta voidaan irrottaa suuri määrä erilaisia piirteitä. Monet piirteet kuvaavat kuitenkin
samaa ilmiötä, osa on epäoleellista tässä työssä tunnistettavien luokkien kannalta ja osa
on yksinkertaisesti liian raskaita laskettavaksi mobiililaitteessa. Oikein valitut piirteet
ovat järjestelmän suorituskyvyn kannalta koulutusdatan jälkeen tärkein osa. Valtavasta
potentiaalisesta piirrejoukosta parhaiden piirteiden valinta olisi todella hidas operaatio.
Onneksi potentiaalisten piirteiden rajaukseen saadaan apua aikaisemmista tutkimuksista.
Piirteet voidaan jakaa karkeasti aikatason ja taajuustason piirteisiin. Aikatason piirteet
irrotetaan suoraan kiihtyvyysdatasta, ja ne ovat usein yksinkertaisesti laskettavissa. Taajuustason piirteet vaativat kiihtyvyysdatan muuntamista taajuustasoon FFT:n avulla.
Seuraavissa aliluvuissa esitellään kirjallisuudessa hyödyllisiksi todetut piirteet. Useimmat esiteltävät piirteet voidaan laskea molemmille kiihtyvyyskomponenteille ( ja )
erikseen, osaan taas tarvitaan molemmat komponentit.
Esiteltäväksi on valittu piirteet, jotka ovat aikaisemmissa tutkimuksissa yleisimmin käytettyjä. Usein valittu piirrejoukko on ollut hyvin samantyylinen. Poikkeuksina tästä pääsäännöstä Maurer et al. keskittyivät erityisesti aikatason piirteisiin [7]. Lester et al. tutkivat tavallista laajempaa joukkoa taajuustason piirteitä. Piirrejoukko sisälsi muun muassa kepstri (engl. cepstrum) -komponentteja ja kaistapäästösuodattimien ulostulotehoja.
[6] Taajuustason piirteet on yleensä laskettu FFT:n avulla, mutta Mäntyjärvi et al. käyttivät työssään [5] poikkeuksellisesti wavelet-muunnosta.
2.4.1 Aikatason piirteet
Keskiarvo eli näyteikkunan DC-komponentti on yksinkertaisin ja käytetyin piirre. Keskiarvon voidaan ajatella esittävän myös näyteikkunan histogrammin sijaintia. Keskiarvopiirrettä on käytetty monissa aikaisemmissa tutkimuksissa [1–4][5–13].
Varianssi kuvaa liikkeen intensiteettiä ja on hyödyllinen erottamaan kevyet aktiviteetit,
kuten kävely, intensiivisistä, kuten juoksu. Varianssi on myös näyteikkunan histogrammin leveyden mitta. Myös varianssia on hyödynnetty useissa aikaisemmissa tutkimuk-
11
sissa [2][6-9][11][13]. Monesti on käytetty keskihajontaa, joka kuvaa samaa piirrettä, ja
on itse asiassa varianssin neliöjuuri [1][3][10–12].
Vinous (engl. skewness) on histogrammin muotoa kuvaava käsite. Vinous on suuri, jos
suuri osa arvoista on joko keskiarvoa suurempia tai pienempiä. Vinoutta on käytetty
usein tutkimuksissa, joissa yksi tunnistettavista luokista on portaissa kävely, koska se
aiheuttaa pystysuuntaisen kiihtyvyyden histogrammiin vinoutta. [1][2][9]
Huipukkuus (engl. kurtosis) on vinouden tavoin histogrammin muotoa kuvaava piirre.
Terävähuippuinen histogrammi antaa positiivisen huipukkuusarvon ja litteähuippuinen
negatiivisen. Huipukkuutta on käytetty usein samoissa tutkimuksissa kuin vinoutta.
[1][2][9]
Persentiili (engl. percentile) on histogrammista laskettava piirre, joka kuvaa arvojen
kertymää tietyn arvon alapuolelle. Esimerkiksi 5. persentiili on sellainen arvo että sitä
pienempiä arvoja on histogrammissa 5 %. Tunnetuin on 50. persentiili, eli mediaani.
Käyttämällä useampaa persentiiliä saadaan histogrammin muoto kuvattua halutulla
tarkkuudella. Persentiilejä on käytetty onnistuneesti piirteinä muutamissa tutkimuksissa
[2][9]. Kwapisz et al. käyttivät välille [0, 1] skaalattuja persentiilejä, jotka kuvaavat
vain histogrammin muodon eivätkä lainkaan sijaintia tai skaalaa [12].
Nollan ylitystaajuus (ZCR) ja keskiarvon ylitystaajuus (MCR) ovat yksinkertaisia
aikatason signaalista helposti laskettavia piirteitä, jotka riippuvat kuitenkin vahvasti signaalin taajuussisällöstä. ZCR on taajuus, jolla signaalin arvo muuttuu negatiivisesta positiiviseksi tai positiivisesta negatiiviseksi. MCR puolestaan on taajuus, jolla signaalin
arvo siirtyy keskiarvon toiselta puolelta toiselle. MCR:ää ja ZCR:ää on käytetty joissain
töissä taajuuspiirteiden laskentatehokkaina vaihtoehtoina [7][10][11].
Korrelaatio erisuuntaisten kiihtyvyyskomponenttien välillä auttaa tunnistamaan aktiviteetit, jotka sisältävät liikettä useammassa suunnassa. Bao ja Intille käyttivät korrelaatiota erottamaan normaalin kävelyn portaissa kävelystä [3]. Korrelaatio voidaan määritellä
kovarianssin avulla kaavassa (6) esitetyllä tavalla. [3][4][10][11]
(
)
(
)
(6)
2.4.2 Taajuustason piirteet
Spektrin piikkitaajuus eli se taajuus, jota näyteikkuna sisältää eniten, on hyödyllinen
piirre, joka auttaa erottamaan toisistaan jaksollisia aktiviteetteja, kuten kävely ja juoksu.
Kävelyn piikkitaajuus on yleensä pienempi kuin juoksun. Spektrin piikkitaajuus voi-
12
daan arvioida helposti ja laskennallisesti suhteellisen tehokkaasti FFT:n avulla. Spektrin
piikkitaajuutta on käytetty yllättävän vähän, vaikka se on intuitiivisesti erinomainen
piirre [2][8][11]. Pärkkä et al. käyttivät piirteenä myös spektrin piikkitehoa, joka on
spektrin piikkitaajuuden teho [2].
Spektrin energiat eri taajuuskaistoilla on yksi eniten käytetyistä piirteistä. Ihmisen
luonnolliset aktiviteetit sijoittuvat taajuuskaistan alapäähän (alle 4 Hz). Korkeataajuiset
komponentit, kuten ajoneuvon tärinä, sijoittuvat spektrin yläpäähän ja voidaan helposti
erottaa ihmisen liikkeistä [11]. Lisäksi eri aktiviteetit sijaitsevat usein omilla toisistaan
erotettavilla kaistoilla. Spektrin energia-arvot voidaan laskea FFT:n neliöityjen komponenttien summana halutulla taajuuskaistalla. [2][6][9][11][13]
Spektrin energiasuhdeluvut ovat spektrin energioiden suhteita toisiinsa. Usein ei ole
kiinnostavaa tietää taajuuskaistan absoluuttista energiaa, vaan kaistan energian suhde
johonkin toiseen kaistaan riittää. Esimerkiksi matalien (alle 4 Hz) taajuuksien suhde
korkeisiin (yli 4 Hz) voi olla hyvä piirre erottamaan ihmisen aktiviteetit ajoneuvossa
istumisesta. Lisäksi energiasuhdelukuja käyttämällä piirrevektorin pituutta voidaan
usein lyhentää, joka puolestaan vähentää luokittimen työtä. [11]
Spektrin entropia kuvaa spektrin taajuuksien hajontaa. Spektri, jonka entropia on pieni, sisältää paljon muutamaa taajuutta. Jos spektrin entropia on suuri, spektri sisältää
useita merkittäviä komponentteja eri taajuuksilla. Entropian avulla voidaan erottaa samalla taajuuskaistalla olevia aktiviteetteja toisistaan. Esimerkiksi pyöräily saattaa tuottaa hyvin siniaaltomaisen pystysuuntaisen taajuuskomponentin ja siten pienen entropian. Pyöräily voidaan mahdollisesti erottaa samantaajuisesta kävelystä, koska kävely
tuottaa harmonisia taajuuskomponentteja myös muille taajuuksille, ja täten nostaa entropiaa. Spektrin entropia on todettu hyödylliseksi useissa aikaisemmissa tutkimuksissa.
Spektrin entropia on määritelty signaalin tehospektrin funktiona kaavassa (7) esitetyllä tavalla. [4][6][8][9][11]
( )
2.5
∑
( )
∑
( ( ))
( )
(7)
Luokittimet
Kun piirrevektori on luotu, se syötetään luokittimelle, joka päättää joidenkin kriteerien
perusteella, mihin luokkaan vektori kuuluu. Yleensä mallinnettava ilmiö on monimutkainen ja mitään intuitiivista ja yksinkertaista kuvausta piirreavaruudesta luokkajoukkoon ei ole olemassa. Tällaisten ongelmien ratkaisemiseen on kehitetty useita erilaisia
luokittimia, jotka pystyvät esimerkkien avulla luokittamaan piirrevektorin todennäköiseen luokkaansa. Luokittimille annetaan tavalla tai toisella käyttöön joukko esimerkki-
13
piirrevektoreita, joiden oikea luokka tiedetään. Luokitin osaa sijoittaa uudet, ennestään
tuntemattomat piirrevektorit luokkaan, jonka esimerkkivektorit muistuttavat eniten uutta
vektoria. Esimerkkien antamista luokittimelle kutsutaan luokittimen kouluttamiseksi ja
tällaista koulutusprosessia ohjatuksi oppimiseksi.
Koulutuksen yksityiskohdat riippuvat luokittimesta, mutta prosessi on pääpiirteittäin
samanlainen. Ensin täytyy kerätä koulutusdata, joka sisältää esimerkkejä kaikista tunnistettavista luokista. Lisäksi tarvitaan erillinen testidata, jolla luokittimen suorituskykyä voidaan mitata. Testidata täytyy valita siten, että sillä on mahdollisimman vähän
riippuvuuksia koulutusdataan. Oletetaan esimerkiksi, että piirrevektori sisältää jotain
mittauksia ihmisestä. Jotta luokitin toimisi henkilöstä riippumatta, koulutusdataa täytyy
kerätä usealta henkilöltä. Nyt testidata voitaisiin valita siten, että jokaiselta koulutushenkilöltä valitaan satunnaisesti osa näytteistä testidataan. Paljon parempi testi saadaan
kuitenkin aikaan poistamalla yksi henkilö koulutusdatasta ja käyttämällä tämän henkilön mittauksia testidatana. Tällöin testi kuvaa paremmin todellista käyttötilannetta. Se
kuinka monta koulutusnäytettä luokitin tarvitsee toimiakseen hyvin, riippuu luokittimesta ja koulutusalgoritmista.
Yksi suurimmista haasteista luokitinta koulutettaessa on ylioppimisen välttäminen.
Luokittimen ylioppiminen viittaa tilanteeseen, jossa luokitin sovittuu esimerkkeihin liian tarkasti ja tunnistaa luokkaan vain vektoreita, jotka ovat lähes identtisiä esimerkkien
kanssa. Ylioppimista voidaan välttää tarpeeksi kattavalla koulutusdatalla ja valitsemalla
luokittimen parametrit oikein.
Luokittimia on tutkittu vuosikymmeniä ja useita erilaisia luokittimia on kehitetty. Tässä
luvussa tutustutaan lyhyesti muutamaan yleisimmistä luokittimista. Esiteltävät luokittimet on aikaisemmissa tutkimuksissa todettu parhaiksi [7][10][12].
2.5.1 MLP-neuroverkko
Neuroverkko on abstrakti laskentamalli, joka matkii aivojen tapaa käsitellä tietoa. Kuten
aivoissa, neuroverkossa on neuroneita, joiden välillä on yhteyksiä eli synapseja. Neuronit kommunikoivat toisilleen lähettämällä signaaleja yhteyksiä pitkin. Neuroverkon
”muisti” tallentuu aivojen tapaan yhteyksien vahvuuksina.
Tunnetuin neuroverkkotyyppi on niin sanottu monitasoinen perceptron -neuroverkko
(MLP). Yksinkertaisimmillaan MLP-neuroverkko koostuu kolmesta tasosta neuroneita,
jotka ovat sisääntulotaso (engl. input layer), piilotaso (engl. hidden layer) ja ulostulotaso (engl. output layer). Jokaisen tason neuronit on yhdistetty jokaiseen seuraavan tason
neuroniin.
14
Sisääntulotasossa on neuroni jokaiselle piirrevektorin alkiolle. Sisääntuloneuroneiden
ulostulo on sama kuin niiden sisääntulo. Jokaisen sisääntuloneuronin ulostulo syötetään
jokaiselle piilotason neuronille kerrottuna yhteyden painoarvolla
. Lisäksi jokaiselle
piilotason neuronille syötetään sisääntulotasosta riippumaton vakioarvo (engl. bias). Piilotason neuronit summaavat sisääntulonsa, syöttävät summan aktivaatiofunktiolle ja antavat funktion arvon ulostulonaan. Ulostulotason neuronit toimivat samalla tavalla kuin
piilotason neuronit ja näin saadaan ulostulona arvo jokaiselta ulostulotason neuronilta.
Neuroverkko koulutetaan niin, että yksi ulostuloista aktivoituu (antaa suuren arvon) kullekin luokalle. Koulutus muuttaa kertoimia
ja
kunnes tarpeeksi moni koulutusnäyte luokitetaan oikein tai suorituskyky ei enää parane.
Kwapisz et al. vertailivat useampaa luokitinta aktiviteetin tunnistussovelluksessa ja totesivat MLP-neuroverkon suorituskyvyn parhaaksi [12]. Myös Baek et al. ja Mäntyjärvi
et al. käyttivät MLP-neuroverkkoja onnistuneesti [1][5].
2.5.2 Tukivektorikone
Tukivektorikone (engl. support vector machine) määrittää luokkien välille hypertason,
joka on mahdollisimman kaukana molempien luokkien koulutusnäytteistä. Luokitus tapahtuu määrittämällä, kummalle puolelle tätä tasoa tuntematon näyte kuuluu. Perinteisessä muodossaan tukivektorikone on siis lineaarinen luokitin. Tukivektorikone saadaan
muodostamaan epälineaarisia päätöspintoja kuvaamalla näyteavaruus niin sanotulla
kernelifunktiolla epälineaarisesti korkeampiulotteiseksi avaruudeksi, jossa luokat ovat
lineaarisesti erotettavissa. Kuva 4 havainnollistaa tukivektorikoneen toimintaa kaksiulotteisessa piirreavaruudessa.
Kuva 4. Tukivektorikoneen muodostama päätöspinta kahden luokan välillä. Vasemmanpuoleisessa kuvassa alkuperäinen piirreavaruus ja oikeanpuoleisessa kuvassa piirreavaruus kuvattuna kernelifunktion ϕ läpi
15
Tukivektorikoneen etuja MLP-neuroverkkoon nähden on sen parempi yleistämiskyky.
Toisin sanoen tukivektorikone ei yliopi ongelmaa yhtä helposti. Lisäksi tukivektorikoneen kouluttaminen on huomattavasti nopeampaa kuin MLP:n, koska koulutus voidaan
esittää neliöllisenä optimointiongelmana, jolle on olemassa tehokkaita ratkaisualgoritmeja. Tukivektorikone on kuitenkin rakenteeltaan huomattavasti monimutkaisempi kuin
MLP ja tukivektorikoneen koulutusalgoritmit päätyvät usein ratkaisuun, joka tekee luokituksesta laskennallisesti raskaan operaation.
Bao ja Intille sekä Yang et al. tutkivat tukivektorikoneen suorituskykyä aktiviteetin tunnistuksessa. Kaikissa näissä tutkimuksissa tukivektorikone oli luokitustarkkuudeltaan
yksi parhaista luokittimista [4][10][11].
2.5.3 Binääripäätöspuu
Binääripäätöspuu on puurakenne, jossa jokaisella solmulla on joko kaksi tai ei yhtään
lasta. Jokaisessa solmussa jonkin piirteen arvoa verrataan tiettyyn kynnysarvoon. Jos
piirteen arvo on pienempi kuin kynnysarvo, siirrytään vasempaan lapsisolmuun, muuten
oikeaan. Tätä prosessia jatketaan kunnes on saavutettu lehtisolmu eli solmu, jolla ei ole
lapsia. Lehtisolmut on sidottu tiettyyn luokkaan ja luokittimen ulostulo on sen lehden
luokka, johon vertailulla päädyttiin. Kuvassa 5 on esitetty päätöspuu, joka on koulutettu
MATLAB-ohjelmiston tutulla fisheriris-datajoukolla.
Kuva 5. Binääripäätöspuu joka on koulutettu MATLAB-ohjelmiston fisheririsdatajoukolle
16
Binääripuun koulutusalgoritmit muodostavat puun ja määrittävät kynnysarvot koulutusdatan avulla. Binääripäätöspuu pystyy muodostamaan epälineaarisia päätöspintoja luokkien välille, esittämällä ne ”sahalaitatasoina”. Epälineaarisuudet kuitenkin kasvattavat
puun kokoa nopeasti. Algoritmien luomaa puuta täytyykin usein karsia (engl. prune)
poistamalla solmut, jotka eivät paranna luokitustarkkuutta merkittävästi. Koulutusalgoritmit, kuten C4.5, luovat puun siten, että parhaiten piirreavaruutta jakavat piirteet ovat
puussa ylimpänä. Puun rakenteesta voidaan siis vetää johtopäätöksiä piirteiden hyvyydestä, eli kyvystä erottaa luokat toisistaan.
Binääripäätöspuut muodostavat selkeitä päätösketjuja, joita ihmisen on helppo ymmärtää ja tulkita. Tämän vuoksi ne ovat saaneet paljon huomiota aikaisemmissa tutkimuksissa [2-4][6-12]. Usein binääripäätöspuut on myös todettu luokitustarkkuudeltaan erinomaisiksi, kun niitä on verrattu muihin luokittimiin [7][10][11]. Binääripäätöspuiden
kiehtovuutta lisää niille kehitetyt todella nopeat koulutusalgoritmit ja puun evaluoinnin
laskentatehokkuus.
17
3
KOULUTUSDATA
Koulutusdata on joukko piirrevektoreita, joiden oikea luokka tiedetään ja joiden avulla
luokitin koulutetaan. Tarpeeksi kattava koulutusdata on järjestelmän suorituskyvyn
kannalta tärkein osa. Luokitusdatan monipuolisuus määrittää luokittimen kyvyn tunnistaa uusia tuntemattomia piirrevektoreita. Monipuolisuuden lisäksi on erittäin tärkeää,
että koulutusdata ei sisällä virheellisiä näytteitä. Näytteet, joiden luokka on merkitty
virheellisesti, heikentävät nopeasti luokittimen suorituskykyä.
Tässä luvussa tutustutaan ensin aikaisempien tutkimusten koulutusdatoihin ja määritellään tämän avulla hyvä koulutusdata. Aliluvussa 3.3 esitellään laitteisto ja ohjelmisto,
joiden avulla keräys suoritettiin. Lopuksi listataan kerätty koulutusdata.
3.1
Lähestymistapojen vertailua
Aikaisemmat tutkimukset voidaan jakaa karkeasti kolmeen ryhmään sen perusteella miten koulutusdata on niissä kerätty ja miten koulutusdatan tärkeyteen on suhtauduttu.
1. Ensimmäinen ryhmä ei keskittynyt koulutusdataan vaan työ painottui algoritmeihin. Näissä töissä koulutusdataa kerättiin epäluonnollisissa ja tarkasti
valvotuissa koeolosuhteissa yhdeltä tai muutamalta henkilöltä. Usein keräys
suoritettiin samana päivänä ja samassa paikassa. [1][5][8][10][13]
2. Toisen ryhmän töissä kritisoitiin ensimmäisen ryhmän töitä ja otettiin usein
täysin vastakkainen lähestymistapa. Koulutusdatan luonnollisuutta korostettiin ja data kerättiin täysin valvomattomissa olosuhteissa siten, että koehenkilö merkitsi itse mitä milloinkin oli tekemässä. Koehenkilöiden annettiin
usein vapaasti valita missä ja miten he suorittivat tarvittavat kokeet. Näissä
tutkimuksissa koulutusdataa kertyi usein runsaasti. [2][3][4][6][9]
3. Kolmas ryhmä valitsi kultaisen keskitien. Koulutusdataa kerättiin luonnollisissa olosuhteissa siten, että kokeen järjestäjä oli valvomassa suorituksia.
Näissä, kuten ryhmän 2 töissä, tiedostettiin koulutusdatan tärkeys ja dataa
kerättiin useilta erityyppisiltä koehenkilöiltä useissa eri tilanteissa.
[4][7][9][11][12]
Ensimmäisen ryhmän töiden tuloksista nähdään, että kattava koulutusdata on tärkeää.
Esimerkiksi Baek et al. keräsivät koulutusdatan yhdessä paikassa, yhtenä päivänä ja yhdeltä henkilöltä [1]. Kun tämän datan perusteella koulutetulla luokittimella myöhemmin
18
luokiteltiin saman koehenkilön aktiviteetteja, tulokset olivat huonot. Työn tekijät arvioivat syyksi sen, että koehenkilö liikkui nopeammin jälkimmäisen kokeen aikana. Ilman tällaisia todisteitakin on loogista päätellä, että koulutusdatan täytyy olla kattava,
koska luokitin toimii täysin näiden esimerkkien varassa.
Ihmiset liikkuvat kukin hieman eri tavalla. Lisäksi liikkumistyyli riippuu tilanteesta (kiire, väsymys, liukas tie). On siis tärkeää, että valitut koehenkilöt edustavat erilaisia liikuntatyylejä ja kerääminen suoritetaan erilaisissa tilanteissa ja paikoissa. Liikkuminen
epäluonnollisissa laboratorio-olosuhteissa saattaa poiketa todellisesta liikuntatyylistä
voimakkaasti. Usein koehenkilö on lisäksi ollut joku tutkimusryhmän jäsen. Näissä tapauksissa liikkeisiin on saattanut vaikuttaa tutkijan tieto siitä minkä perusteella liike
tunnistetaan, joka on saattanut aiheuttaa näiden piirteiden korostamista.
Toisen ryhmän töissä koulutusdatan kattavuus ei ole ongelma. Esimerkiksi Ermes ja
Pärkkä keräsivät yhteensä 47 tuntia dataa 12 henkilöltä [9]. Koulutusdata sisälsi näytteitä kattavasti kaikista tunnistettavista aktiviteeteista. Koehenkilöt valitsivat itse paikan,
ajan ja tyylin, jolla he suorittivat kokeet. Koehenkilöä pyydettiin esimerkiksi pyöräilemään puoli tuntia, ja koehenkilö sai itse päättää missä, millä pyörällä ja milloin koe suoritettiin. Koehenkilöt merkitsivät itse kämmentietokoneen avulla kokeiden alun ja lopun. Tällä lähestymistavalla saavutetaan luonnollinen ja kattava koulutusdatajoukko,
kunhan koehenkilöt on valittu siten, että he edustavat erilaisia liikuntatyylejä.
Toisen ryhmän lähestymistavassa suurin ongelma on virheellisesti merkityt näytteet.
Vaikka koehenkilöille painotettaisiin, että aktiviteetit tulee merkitä tarkasti, ei tarvittavaa tarkkuutta usein saavuteta. Koehenkilöt eivät yleensä ole kiinnostuneita tutkimuksen tuloksista kuten tutkimuksen tekijät, ja aktiviteettien merkintä on usein epätarkkaa.
Vaikka koehenkilö olisi kuinka tarkka, unohduksia ja vahinkoja sattuu, ja virheellisiä
merkintöjä on lähes mahdotonta huomata jälkikäteen. Esimerkiksi Pärkkä et al. mainitsivat heikkojen tulosten todennäköiseksi syyksi virheelliset merkinnät koulutusdatassa
[2].
Jos koehenkilö esimerkiksi pyöräilee, hän saattaa merkitä pyöräilyksi koko lenkin,
vaikka se sisältäisi liikennevaloissa seisoskelua ja jopa kävelyn kodista polkupyörälle.
Vaikka tällaiset tauot merkittäisiinkin, polkupyörän päällä polkematta istuminen, kuten
alamäen laskeminen tulisi melko varmasti merkittyä pyöräilyksi. Jos koehenkilö merkitsisi aktiviteetit tarpeeksi tarkasti ottaen huomioon kaikki edellä mainitut tilanteet, lähtisi
toiminnasta se luonnollisuus, joka oli toisen ryhmän lähestymistavan tarkoitus.
Kolmas ryhmä tiedosti kahden ensimmäisen ryhmän lähestymistapojen rajoitteet. Koetilanteet olivat luonnollisia, mutta niitä valvottiin tarkemmin ja suoritusten merkintään oli
kiinnitetty erityistä huomiota. Yang et al. käyttivät datankeräysjärjestelmää, jossa dataa
kerääviä laitteita oli samanaikaisesti useampia koehenkilön vartalossa [11]. Kaikkia lait-
19
teita ohjattiin langattomasti ohjauslaitteella. Näin datan keräystä valvova henkilö saattoi
merkitä dataan sekunnin kymmenyksen tarkkuudella aktiviteettien alku- ja loppuhetket.
Viitaten aikaisempaan pyöräilijäesimerkkiin, tällaisella järjestelmällä valvoja voi vaivattomasti merkitä hetket, jolloin koehenkilö ei polje pyörää.
3.2
Hyvä koulutusdata
Edellisen aliluvun perusteella on selvää, että koulutusdatan keräämisen täytyy olla valvottua tarpeeksi tarkkojen merkintöjen varmistamiseksi. Valvonta ei saa kuitenkaan häiritä koehenkilöiden suorituksia. Koehenkilöiden täytyy saada valita miten ja missä he
suorittavat keräyksen, jotta taataan mahdollisimman luonnolliset tulokset. Koetta valvovan henkilön täytyy varoa, ettei hänen oma liikuntansa vaikuta koehenkilön liikuntaan.
Kokeen aikana täytyy edetä koehenkilön tahtia. Jotta tällainen häiritsemätön toiminta
olisi mahdollista, on koehenkilöiden pystyttävä olemaan rentoja koetilanteissa. Yksi
vaihtoehto on valita valvojalle tuttuja henkilöitä. Tässä tapauksessa ei saa kuitenkaan
tinkiä koehenkilöiden erilaisuudesta. Esimerkiksi sisarukset saattavat liikkua liian samankaltaisesti.
Eri aktiviteetit asettavat erilaisia vaatimuksia koehenkilöille ja keräystilanteelle. Nämä
erikoisvaatimukset täytyy ottaa huomioon datan keräystä suunnitellessa ja myös itse keräystilanteessa. Seuraavissa kappaleissa määritellään ”hyvä koulutusdata” jokaiselle
tunnistettavalle aktiviteetille erikseen.
Kävelydata riippuu paljon henkilöstä. Kävelyä täytyy kerätä tarpeeksi kattavalta joukolta erilaisia kävelytyylejä edustavia henkilöitä. Kävelytyyli muuttuu iän myötä ja siihen vaikuttaa pituus, paino ja sukupuoli. Tyyliin vaikuttaa oleellisesti myös keli. Esimerkiksi jäisellä asfaltilla kävely poikkeaa kesällä kävelystä. Jopa kenkä saattaa vaikuttaa tuloksiin. Lisäksi suurin osa ihmisen jokapäiväisestä liikunnasta on kävelyä, joten
kävelyn tunnistamiseen tulee kiinnittää erityistä huomiota.
Juoksutyylejä on yhtä paljon kuin kävelytyylejä ja tyyli riippuu samoista seikoista kuin
kävely. Kaikissa aikaisemmissa tutkimuksissa juoksun tunnistaminen on kuitenkin toiminut erinomaisesti riippumatta koehenkilöiden tai koulutusdatan määrästä. Tämä johtuu siitä, että juoksu aiheuttaa kiihtyvyyteen todella selkeitä piirteitä. Juoksudatan kerääminen voidaan siis jättää pienemmälle huomiolle. Jokaiselta kävelijältä kannattaa
silti ottaa samalla pieni juoksunäyte, koska se ei vaadi erityisjärjestelyitä.
Pyöräilyä kerättäessä koehenkilöiden määrällä ei ole niin suurta merkitystä. Polkupyörän rakenne määrittää hyvin pitkälti henkilön raajojen liikeradan. Tärkeämpiä seikkoja
ovat polkupyörien erilaisuus (paksu/ohut kumi, jousitus jne.), alusta, jolla poljetaan ja
polkunopeus. Polkupyörällä poljettaessa dataa saa tallentaa vain silloin kun koehenkilö
polkee. Ei ole järkevää yrittää tunnistaa polkupyöräilyksi satulan päällä paikallaan istu-
20
mista, joka alustasta riippuen näkyy datassa vain tärinän aiheuttamana kohinana. Kun
polkujaksot luokitetaan oikein, voidaan tauot tarvittaessa luokittaa pyöräilyksi jälkikäsittelyssä. Luokittimen olisi lähes mahdoton erottaa polkupyörän päällä istumisen aiheuttamaa tärinää esimerkiksi autossa istumisen aiheuttamasta tärinästä.
Passiivisuuden tunnistaminen on erityisen tärkeää, koska tässä työssä luotavan järjestelmän on tarkoitus toimia mobiililaitteissa ja luokittaa jatkuvasti käyttäjän liikkeitä.
Aktiviteettien tunnistuksen kanssa yhtä tärkeää on se, että muut liikkeet eivät tunnistu
virheellisesti joksikin aktiviteetiksi. Esimerkiksi puhelimen normaali käyttö aiheuttaa
kiihtyvyyttä, mutta sen täytyy tunnistua passiivisuudeksi, jos käyttäjä on muuten paikallaan. Samoin autossa istuminen aiheuttaa välillä kovaakin tärinää, mutta käyttäjä on silti
passiivinen. Monimutkaisempia tilanteita ovat esimerkiksi hermostunut jalan pomputtaminen, joka saattaa puhelimen ollessa taskussa tunnistua pyöräilyksi samankaltaisen
liikkeen vuoksi. Vastaavia virhetilanteita on lukemattomia, ja niihin kaikkiin ei voi varautua etukäteen. Hyvä lähestymistapa onkin kerätä passiivisuusdataa yleisimmistä tilanteista, kuten autossa tai bussissa istumisesta ja puhelimen normaalista näpyttelystä.
Erityistapaukset, kuten jalan pomputtelu, voidaan opettaa myöhemmin, jos ja kun niitä
kokeissa havaitaan.
3.3
Keräysjärjestelmä
Jotta koulutusdatan kerääminen olisi mahdollisimman nopeaa, täytyy keräysjärjestelmään kiinnittää huomiota. Koetilanteessa mikään ei ole koehenkilön (tai valvojan) kannalta turhauttavampaa kuin tekniset ongelmat. Tässä työssä suunniteltiin ja ohjelmoitiin
järjestelmä, joka toimii android-mobiilikäyttöjärjestelmässä. Android valittiin alustaksi
siksi, että se mahdollistaa aitojen taustaprosessien toteuttamisen. Erilaisia androidia
käyttäviä mobiililaitteita on satoja. Tämä mahdollistaa sen, että datan keräämiseen voidaan valita laitteita, joilla on eri valmistajien kiihtyvyysantureita. Järjestelmä koostuu
kahdesta ohjelmasta: ohjaimesta ja datan kerääjästä.
Ohjain on yhteydessä kerääjiin langattomasti bluetoothin avulla. Teoriassa ohjain voi
ohjata rajatonta määrää kerääjiä samanaikaisesti, mutta käytännössä vain kolme kerääjää saatiin vakaasti kommunikoimaan ohjaimen kanssa. Ohjaimen tarkoitus on lähettää
kerääjille tieto nykyisestä aktiviteetista eli merkitä koulutusdataa. Lisäksi ohjain näyttää
käyttäjälle kerääjien lähettämää tilannetietoa.
Datan kerääjä on taustaprosessi, joka pyörii laitteessa huomaamattomasti taustalla ja
tallentaa kiihtyvyyssensorin dataa tiedostoon. Tiedostoon merkitään myös jokaisen aktiviteetin alku- ja loppuhetket, kun ohjain lähettää niistä merkin. Lisäksi kerääjässä voidaan ajaa reaaliajassa työssä luotavia luokitusalgoritmeja ja luokitustulos voidaan lähettää ohjaimelle, joka näyttää tuloksen ohjaimen käyttäjälle. Tällä tavoin voidaan reaaliaikaisesti seurata millainen liike tunnistuu virheellisesti nykyisellä luokittimella ja keskit-
21
tyä sen keräämiseen. Luokittimen virheitä voidaan paikata keräämällä vain luokitusdataa, joka tuo lisäarvoa luokittimelle. Kuvassa 6 on kuvankaappaus ohjaimesta, kun siihen on liitetty kaksi kerääjää.
Kuva 6. Datankeräysjärjestemän ohjain. Viimeiset kaksi tekstiriviä listaavat liitetyt kerääjät, niiden tunnistaman aktiviteetin ja yhteyden tilan. Isoilla napeilla lähetetään kerääjille tieto nykyisestä oikeasta aktiviteetista.
3.4
Keräysjärjestelyt
Koulutusdataa kerättäessä koehenkilöllä oli mukanaan kaksi tai kolme Android-laitetta,
joissa ajettiin datan kerääjäohjelmaa. Laitteet valittiin taulukossa 1 listatuista laitteista
siten, että jokaista käytettiin mahdollisimman paljon. Laitteet sijoitettiin paikkoihin joissa ihmiset useimmiten kantavat matkapuhelintaan kyseisen liikunnan aikana. Taulukossa 2 on listattu laitteiden sijainnit kullekin aktiviteetille.
22
Taulukko 2. Mobiililaitteiden sijainnit koehenkilöiden vartalossa.
Aktiviteetti
Kävely
Sijainnit miehillä
housun etutasku
takin rintatasku
takin alatasku
vyö
Juoksu
housun etutasku
takin rintatasku
takin alatasku
vyö
housun etutasku
takin alatasku
vyö
Pyöräily
Sijainnit naisilla
käsilaukku kädessä
käsilaukku olalla
laukku selässä
housun etutasku
takin alatasku
housun etutasku
takin rintatasku
takin alatasku
vyö
housun etutasku
takin alatasku
vyö
Naisille ja miehille valittiin eri sijainnit, koska naiset kantavat matkapuhelintaan
useimmiten käsilaukussa, joka taas voi olla sijoitettuna monella eri tavalla, joista kukin
aiheuttaa erilaisen kiihtyvyyssignaalin. Harva kantaa käsilaukkua juostessaan, joten
juoksua ei tallennettu laitteen ollessa käsilaukussa. Myöhemmin tässä työssä todetaan,
että pyöräilyn robustiin tunnistamiseen tarvitaan jalan liikkeen aiheuttama kiihtyvyys.
Tämä kävi selväksi jo datan keräämisen alkuvaiheessa ja sijainnit, joihin polkuliike ei
vaikuta, jätettiin pois. Passiivisuudeksi tunnistettavissa tilanteissa laitteen sijainnilla ei
ole merkitystä (autossa istuminen) tai laitteen sijainti on suoraan sidottu tilanteeseen
(jalan pomputus, puhelimen käyttö). Näistä syistä passiivisuus on jätetty pois taulukosta
2.
Koehenkilö sai valita itse ajan ja paikan, jossa keräys suoritettiin. Osa kävely- ja juoksureiteistä oli tasaista asfalttia ja osa hiekkatietä, jossa oli ylä- ja alamäkiä. Polkupyöräilyn
tapauksessa alusta, jolla poljetaan, on oleellinen. Sora- ja hiekkatiellä poljettaessa kiihtyvyyssignaali sisältää huomattavasti enemmän kohinaa kuin tasaisella asfaltilla. Tästä
syystä johtuen pidettiin huolta siitä, että keräystä suoritettiin erilaisilla alustoilla.
Tämän työn kirjoittaja oli mukana valvojan roolissa jokaisessa keräyssessiossa. Session
alussa koehenkilöä ohjeistettiin liikkumaan mahdollisimman luonnollisesti ja määräämään tahdin. Pyöräilyä kerättäessä koehenkilöä jouduttiin kuitenkin pyytämään välttämään polkemisen lopettamista yllättäen, jotta ohjaaja ehtisi merkitsemään polkemattomat jaksot.
Koulutusdata kerättiin kahdessa vaiheessa, joista ensimmäisessä kerättiin jokaiselta
koehenkilöltä kutakin liikuntatyyppiä noin viisitoista minuuttia. Luokitin koulutettiin
tämän pohjadatan avulla, ja luokitin asennettiin datan kerääjiin. Tämän jälkeen siirryttiin toiseen vaiheeseen, jossa vältettiin keräämästä koulutusdataa, jonka luokitin jo luo-
23
kitti oikein. Luokitin koulutettiin uudelleen jokaisen session jälkeen, ja kerääjät päivitettiin. Samalla siirryttiin myös hieman epäluonnollisempaan keräysprosessiin. Jos esimerkiksi koehenkilön kävely tunnistui ilman ongelmia, häntä pyydettiin hidastamaan tai
nopeuttamaan tahtia, kunnes kävely ei enää tunnistunut. Koska toisessa vaiheessa pyrittiin löytämään liikuntatyylejä, joita algoritmit eivät tunnista, koehenkilöiden luontaisilla
erilaisuuksilla ei ollut enää niin suurta merkitystä. Tästä syystä ja käytännöllisistä syistä
johtuen toisen vaiheen datasta suurin osa kerättiin tämän työn kirjoittajalta ja hänen tyttöystävältään.
Myös passiivisuuden koulutusdata kerättiin työn kirjoittajalta ja hänen tyttöystävältään.
Ensin kerättiin dataa muutamista yleisimmistä tilanteista, kuten erilaisissa ajoneuvoissa
istumisesta (henkilöauto, juna, bussi) ja puhelimen normaalista käytöstä (tekstiviestin
kirjoittaminen, soittaminen). Datajoukkoa laajennettiin sitä mukaa, kun virheellisiä tunnistuksia huomattiin jokapäiväisessä käytössä. Työn kirjoittaja ajoi datan kerääjää puhelimessaan jatkuvasti. Kun huomattiin, että järjestelmä tunnisti virheellisesti passiivisuudeksi luokiteltavan tilanteen, tilanteesta kerätty data lisättiin passiivisuuden koulutusdataan. Usein tarkkaa ajankohtaa oli vaikea rajata, joten tilanne pyrittiin uusimaan ja merkitsemään tarkasti. Seuraavissa kappaleissa on esitelty muutamia tällaisia tilanteita.
Moni ihminen, työn kirjoittaja mukaan lukien, pomputtaa jalkaansa istuessaan. Pomputus on jaksollista liikettä, joka tunnistui aluksi pyöräilyksi. Tästä johtuen jalan pomputuksen aiheuttamaa dataa lisättiin passiivisuuden koulutusdataan. Keräyslaite oli pomputuksen aikana housujen taskussa tai vyöllä.
Usein pakkasessa seisoessaan ihmiset lämmittelevät heiluttelemalla raajojaan, hyppimällä tai muuten paikallaan heilumalla. Myös tällaiset tilanteet tunnistettiin aluksi virheellisesti. Myös muissa tilanteissa ihmiset usein paikallaan seisoessaan liikehtivät jollain tavalla. Vaatteiden selaaminen vaatekaupassa ja käsilaukun heiluttaminen ovat esimerkkejä tällaisesta liikehtimisestä. Tästä johtuen kyseisistä tilanteista tallennettiin kattava joukko koulutusdataa passiivisuudelle.
3.5
Kerätty data
Dataa kerättiin yhteensä kahdeksalta henkilöltä työn kirjoittaja mukaan lukien. Koehenkilöistä viisi oli naisia ja kolme oli miehiä. Koehenkilöt valittiin käytännön syistä työn
kirjoittajan lähipiiristä. Koehenkilöt pyrittiin kuitenkin valitsemaan mahdollisimman
monipuolisesti.
Dataa kerättiin yhteensä viidellä eri laitteella, jotka on esitelty taulukossa 1. Myös laitteet valittiin mahdollisimman monipuolisesti saatavilla olevasta rajoitetusta joukosta.
Taulukoissa 3, 4 ja 5 on listattu tilastoja kerätystä koulutusdatasta. Jokaiselle aktiviteettiluokalle paitsi passiivisuudelle on oma taulukkonsa. Ensimmäinen sarake ilmaisee
24
missä kohdassa koehenkilöä laite on ollut. Toinen sarake kertoo, kuinka paljon dataa
kerättiin. Kolmas sarake kertoo, kuinka monelta koehenkilöltä dataa kerättiin. Viimeinen sarake kertoo, kuinka montaa eri laitetta keräykseen käytettiin. Taulukossa 6 on listattu koehenkilöiden sukupuolet, iät, painot ja kerätyt datamäärät.
Taulukko 3. Kerätty kävelydata
Sijainti
Aika
housun etutasku
04:56:01
takin rintatasku
01:41:52
takin alatasku
02:41:22
vyö
00:22:35
käsilaukku kädessä
02:39:35
käsilaukku olalla
01:30:03
laukku selässä
02:37:35
käsi
00:15:02
korva
00:13:19
Koehenkilöitä
8
3
6
3
4
2
4
1
1
Laitteita
2
2
3
1
3
2
2
1
1
Yhteensä
8
5
11:53:22
Taulukko 4. Kerätty juoksudata
Sijainti
housun etutasku
takin rintatasku
takin alatasku
Vyö
Käsi
Aika
01:22:06
01:30:02
01:47:30
00:14:12
00:12:02
Koehenkilöitä
8
3
6
3
1
Laitteita
2
2
3
1
1
Yhteensä
03:05:52
8
5
Koehenkilöitä
8
6
3
8
Laitteita
2
3
1
5
Taulukko 5. Kerätty pyöräilydata
Sijainti
housun etutasku
takin alatasku
vyö
Yhteensä
Aika
02:19:49
00:23:31
01:57:40
04:38:60
Taulukko 6. Koehenkilöiden tiedot ja kerätyn datan määrä
Koehenkilö
Sukupuoli
Ikä
Paino
Aika
Henkilö 1
Henkilö 2
Henkilö 3
Henkilö 4
02:21:17
01:27:24
00:14:24
03:23:09
nainen
nainen
nainen
nainen
55 v
50 v
24 v
28 v
85 kg
64 kg
67 kg
76 kg
25
Henkilö 5
Henkilö 6
Henkilö 7
Sami Koskimäki
nainen
mies
mies
mies
Yhteensä
5 naista, 3 miestä
29 v
58 v
29 v
26 v
73 kg
65 kg
100 kg
75 kg
02:28:09
02:10:34
01:12:40
07:30:23
20:46:59
26
4
TOTEUTETTU JÄRJESTELMÄ
4.1
Järjestelmän rakenne
Toteutetun järjestelmän rakenne noudattaa luvussa 2.1 esiteltyä. Kuvassa 7 on esitelty
toteutetun järjestelmän rakenne korkealla tasolla. Kiihtyvyysanturilta saatavat näytteet
käsitellään viiden sekunnin mittaisissa ikkunoissa siten, että peräkkäiset ikkunat ovat
puoliksi limittäin. Seuraavissa aliluvuissa on selitetty kuvan 7 vaiheiden toteutus.
Kiihtyvyyssensori
kiihtyvyysnäytteet
Uudelleennäytteistys
uudelleennäytteistetyt näytteet
Orientaatioriippuvuuden poisto
orientaatioriippumattomat näytteet
Piirteenirrotus
piirrevektori
MLP-luokitin
aktiviteetti
Temporaalinen jälkikäsittely
suodatettu aktiviteetti
Kuva 7. Toteutetun aktiviteetintunnistusjärjestelmän rakenne
27
4.2
Esikäsittely
Esikäsittelyssä kiihtyvyyssignaali muutetaan tasaväliseksi ja datan riippuvuus laitteen
asennosta eli orientaatiosta poistetaan. Molempien operaatioiden teoria on esitelty luvuissa 2.3.1 ja 2.3.2. Seuraavissa aliluvuissa esitetään operaatioiden toteutuksessa tehdyt valinnat.
4.2.1 Uudelleennäytteistys
Kiihtyvyyssignaali uudelleennäytteistetään mahdollisimman matalalle näytetaajuudelle
kahdesta syystä: matala näytetaajuus pienentää järjestelmän laskentavaatimuksia ja laajentaa laitejoukkoa, jolla järjestelmää voidaan käyttää. Näytetaajuuden valinta tehtiin
vasta viimeisenä laskemalla näytetaajuutta, kunnes tulokset alkoivat heikentyä. Tämä
voitiin tehdä, koska koulutusdata tallennettiin suurimmalla mahdollisella näytetaajuudella ja järjestelmä suunniteltiin niin, että näytetaajuutta voitiin vaihtaa yhtä vakioarvoa
muuttamalla. Näytetaajuudeksi valikoitui tällä menetelmällä 15 Hz.
Kuten luvussa 2.3.1 kerrottiin, epätasavälinen kiihtyvyyssignaali muutetaan uudelleennäytteistysprosessin alussa tasaväliseksi lineaarisella interpolaatiolla. Interpoloinnin
tuottama välinäytetaajuus täytyy olla ulostulonäytetaajuuden (15 Hz) monikerta ja tarpeeksi korkea, että epätasavälisessä signaalissa olevat taajuudet eivät laskostu. Välinäytetaajuudeksi valittiin 30 Hz. Valinta tehtiin tarkastelemalla koko koulutusdatajoukon
spektriä. Spektrissä on hyvin vähän komponentteja yli 15 Hz taajuuksilla, kuten kuvasta
8 nähdään.
Kuva 8. Koko koulutusdatasta lasketun spektrin magnitudi
28
Valittu näytetaajuus on tarpeeksi matala, että useimmat mobiililaitteet pystyvät tuottamaan kiihtyvyyssignaalia tällä taajuudella. Työn kirjoituksen aikana onnistuttiin löytämään ainoastaan yksi laite (ZTE Blade) joka ei pystynyt tuottamaan tarvittavaa näytetaajuutta. Näin matalalla näytetaajuudella tehtävät signaalinkäsittelyoperaatiot eivät
vaadi laitteistolta paljoa. Kaikki mobiililaitteet pystyvät esimerkiksi helposti ja resursseja kuluttamatta taajuuskorjaamaan äänisignaalia, jonka näytetaajuus on yleensä yli 40
kHz.
4.2.2 Orientaatioriippuvuuden poisto
Luvussa 2.3.2 esitetyissä kaavoissa valittavaksi jää ainoastaan muuttuja N eli keskiarvoikkunan pituus. Tämä pituus valittiin samalla menetelmällä kuin näytetaajuus, eli tiputtamalla ikkunan pituutta, kunnes luokitustulos alkoi heikentyä. Parhaat tulokset saatiin ikkunanpituudella 3 sekuntia.
4.3
Piirteiden valinta
Alustava piirrejoukko valittiin kirjallisuuden perusteella. Tähän joukkoon kuului keskiarvo, varianssi, spektrin piikkitaajuus ja spektrin entropia. Tällä joukolla päästiin
erinomaisiin tuloksiin alkuvaiheiden koulutusdatalla. Kun koulutusdata lisääntyi, alkoi
luokittimen suorituskyky heikentyä. Piirrejoukkoa täydennettiin piirteillä, jotka auttoivat tunnistamaan laajentuneen näytejoukon. Varsinkin passiivisuuden monimutkainen
koulutusdata vaati uusien piirteiden lisäämistä ja piirrejoukon optimointia.
Piirrejoukkoa ei missään vaiheessa pyritty minimoimaan, vaan pyrittiin löytämään
joukko, jolla tunnistus oli mahdollisimman tarkka. Vasta kun tällainen joukko löytyi,
tarkistettiin piirteiden laskentavaatimuksien vaikutus järjestelmän resurssivaatimuksiin.
Kuten myöhemmin työssä todetaan, piirteiden laskenta ei ole merkittävä tekijä järjestelmän virrankulutuksen kannalta ja siksi piirrejoukko jätettiin melko suureksi.
Seuraavissa kappaleissa esitellään valitut piirteet ja perustellaan niiden valinta. Kaikki
piirteet laskettiin sekä pysty- että vaakasuuntaiselle kiihtyvyyskomponentille, paitsi persentiilit, jotka laskettiin vain pystysuuntaiselle kiihtyvyyskomponentille.
Keskiarvo on valituista piirteistä yksinkertaisin. Se kuvaa yhdessä varianssin kanssa
näyteikkunan histogrammin sijainnin ja leveyden. Juoksua lukuun ottamatta kaikkien
aktiviteettien pystysuuntaisen komponentin keskiarvo on lähellä maan putoamiskiihtyvyyttä 9,8 m/s2. Pystysuuntainen keskiarvo onkin hyvä piirre erottamaan juoksun muista
aktiviteeteista. Kuvaajasta 9 on esitetty koulutusnäytteiden pystysuuntaiset varianssit ja
keskiarvot. Kuvaajasta nähdään, miten juoksun keskiarvo on muita luokkia pienempi.
29
Kuva 9. Koulutusdatan aktiviteettien jakauma pystysuuntaisen varianssin ja pystysuuntaisen keskiarvon funktiona
Varianssi on erinomainen piirre kuvaamaan aktiviteetin intensiivisyyttä ja erottaakin
parhaiten juoksun muista aktiviteeteista. Kuten kuvasta 9 nähdään, pelkästään varianssin avulla voitaisiin erottaa juoksu muista aktiviteeteista suhteellisen suurella todennäköisyydellä.
Spektrin energiat laskettiin neljälle eri kaistalle, jotka ovat 0 Hz–1,2 Hz; 1,2 Hz–2 Hz;
2 Hz–3Hz ja 3 Hz–7.5Hz. Kaistat valittiin siten, että aktiviteetit jakautuivat mahdollisimman hyvin eri kaistoille. Pyöräilyn aiheuttamat taajuudet sijoittuvat pääasiassa
alimmalle 0 Hz–1,2 Hz kaistalle. Kävely aiheuttaa taajuuksia, jotka osuvat pääasiassa
1,2 Hz–2 Hz kaistalle. Juoksu puolestaan aiheuttaa piikkejä kaistalle 2 Hz–3 Hz. Ihmisen liikkeistä aiheutuvat taajuudet sijoittuvat pääasiassa alle 4 Hz taajuuksille. Esimerkiksi ajoneuvossa istuminen (tärinä) aiheuttaa korkeataajuista kiihtyvyyttä. Ylin kaista
onkin hyvä piirre erottamaan tiettyjä passiivisuuden alalajeja muista aktiviteeteista. Kuvasta 10 nähdään, miten pyöräily ja kävely painottuvat alimmalle kahdelle taajuuskaistalle. Kuvasta 11 taas nähdään miten osa passiivisuudesta on painottunut ylimmälle taajuuskaistalle. Taajuuskaistojen energiat skaalattiin energioiden summalla, joka selittää
kuvien 10 ja 11 arvot. Spektrin energiat lasketaan summaamalla näyteikkunan Fouriermuunnoksen itseisarvon neliöitä halutulta taajuuskaistalta.
30
Kuva 10. Kävelyn ja pyöräilyn jakauma spektrin alimpien energiakaistojen funktiona
Kuva 11. Koulutusdatan aktiviteettien jakauma pystysuuntaisen varianssin ja spektrin
ylimmän energiakaistan funktiona. Spektrin energia on esitetty logaritmisella asteikolla.
31
Persentiilien avulla voidaan kuvata näyteikkunan histogrammin muoto halutulla tarkkuudella. Tässä työssä piirteiksi valittiin 5, 25, 75 ja 95 persentiilit. Persentiilit laskettiin
siten, että näyteikkunan arvot skaalattiin ensin välille [0, 1]. Tällöin persentiilit kuvaavat
ainoastaan histogrammin muodon, ei sen sijaintia eikä leveyttä. Histogrammin sijainti ja
leveys saadaan jo keskiarvosta ja varianssista. Persentiilien avulla voidaan helposti erottaa pienet lyhytkestoiset liikkeet koko analysointi-ikkunan mittaisista jatkuvista liikkeistä. Tällaisia liikkeitä syntyy paljon mobiililaitteen normaalikäytössä. Kuvat 12 ja 13 havainnollistavat tällaista erottelua. Kaikki tässä työssä tunnistettavat aktiviteetit ovat
luonteeltaan jaksollisia ja kestävät vähintään yhden analysointi-ikkunan pituuden. Persentiilit auttavat erottamaan passiivisuutta muista aktiviteeteista. Kuvassa 14 on havainnollistettu lyhyiden epäjatkuvien liikkeiden erottumista koulutusdatasta 5. persentiilin
avulla.
Kuva 12. Tyypillisen juoksunäyteikkunan pystysuuntainen komponentti ja sen histogrammi, jonka päälle piirretty työssä piirteinä käytetyt persentiilit
Kuva 13. Lyhyen epäjatkuvan liikkeen aiheuttaman näyteikkunan pystysuuntainen komponentti ja sen histogrammi, jonka päälle piirretty työssä piirteinä käytetyt persentiilit
32
Kuva 14. Lyhyet epäjatkuvat liikkeet koulutusdatassa 5. pystysuuntaisen persentiilin ja
pystysuuntaisen varianssin funktiona
Spektrin piikkitaajuus auttaa erottamaan kävelyn ja pyöräilyn rajatapauksia, joita ei
voida erottaa varianssin avulla. Lisäksi spektrin piikkitaajuus auttaa erottamaan pyöräilyä kävelystä tilanteissa, joissa pyöräily aiheuttaa lähes samat energiat kahdelle alimmalle kaistalle. Piikkitaajuus ei juuri tuo lisäinformaatiota taajuuskaistojen energioiden
lisäksi, mutta parantaa silti luokitustulosta, ja siksi se jätettiin mukaan näytevektoriin.
Lisäksi piikkitaajuuden laskenta ei suurenna järjestelmän laskentavaatimuksia, koska
piikkitaajuuden laskentaan tarvittava Fourier-muunnos lasketaan jo taajuuskaistojen
energioita varten. Kuvasta 15 nähdään, että muutamaa poikkeusta lukuun ottamatta
kaikki juoksunäytteet saadaan erotettua kävelynäytteistä pystysuuntaisen varianssin ja
piikkitaajuuden avulla.
33
Kuva 15. Kävely ja juoksu pystysuuntaisen varianssin ja spektrin piikkitaajuuden funktiona
Spektrin entropia ei osoittautunut niin hyödylliseksi kuin aikaisemmat tutkimukset
antoivat ymmärtää. Aikaisemmat tutkimukset antoivat viitteitä, että spektrin entropia
olisi erityisen pieni pyöräilyn tapauksessa, koska se aiheuttaa selkeän siniaallon kiihtyvyyssignaaliin. Tässä työssä tällaista ei huomattu. Tämä johtuu luultavasti siitä, että tässä työssä kiihtyvyysanturi (matkapuhelin) oli sijoitettu pyöräilyn aikana taskuun tai
vyölle, jossa jalan aiheuttama liike ei ole niin säännöllistä, kuin esimerkiksi nilkassa.
Vaikka liike välillä oli säännöllistä, sen amplitudi oli niin pieni, että matkapuhelimen
kiihtyvyysanturin kohina alkoi olla merkittävää ja nosti huomattavasti pyöräilyn spektrin entropiaa. Spektrin entropia jätettiin pois piirrejoukosta. Kuvasta 16 nähdään koulutusdatan luokat pysty- ja vaakasuuntaisten spektrien entropioiden funktiona.
34
Kuva 16. Koulutusdatan luokat pysty- ja vaakasuuntaisten spektrien entropian funktiona
4.4
Luokitus
Luokittimen valintaa varten testattiin kaikkia kolmea teoriaosuudessa esiteltyä luokitinta. Seuraavissa aliluvuissa esitellään lyhyesti kullakin luokittimella saavutettu luokitustarkkuus sekaannusmatriisien avulla. Luokittimien koulutukseen valittiin satunnaisesti
90 prosenttia koulutusdatasta ja suorituskyky testattiin jäljelle jääneellä 10 prosentilla.
Jokaisen luokittimen testinäytteiden luokittamiseen käyttämä aika mitattiin, ja ajat on
esitetty sekunteina. Jokainen luokitin on toteutettu Java-kielellä, ja laskenta-ajan mittaus
tehtiin samalla tietokoneella vertailukelpoisuuden saavuttamiseksi. Viimeisessä aliluvussa vertaillaan luokittimia ja tehdään valinta.
4.4.1 Tukivektorikone
Työssä käytettiin LIBSVM–kirjaston Java-versiota. LIBSVM on tehokas avoimen lähdekoodin tukivektorikonekirjasto. Kuvaus korkeampiulotteiseen avaruuteen tehtiin Radial Basis Function -kantafunktion (RBF) avulla. Kaikki käytetyt parametrit on esitetty
listauksessa 1.
Listaus 1. LIBSVM-kirjaston parametrit.
param.svm_type = svm_parameter.C_SVC;
param.kernel_type = svm_parameter.RBF;
35
param.degree = 3;
param.gamma = 0.2;
param.coef0 = 0;
param.nu = 0.5;
param.cache_size = 100;
param.C = 2e4;
param.eps = 1e-3;
param.p = 0.1;
param.shrinking = 1;
param.probability = 0;
param.nr_weight = 0;
param.weight_label = new int[0];
param.weight = new double[0];
Kuten sekaannusmatriisista 17 nähdään, tukivektorikoneen luokitustarkkuus on erinomainen tämän työn datajoukolla. Luokittimesta muodostui kuitenkin parametreista
riippumatta liian monimutkainen. Koulutettu tukivektorikone koostui 801 tukivektorista. Muuttamalla gamma-arvoa, joka määrää kantafunktioiden koon, ei saavutettu pienempää tukivektorimäärää. Testijoukon luokittamiseen kulunut aika oli 0,44 sekuntia.
Tällaisenaan tukivektorikone vaatii liian paljon laskenta-aikaa, ja ei siten ole paras vaihtoehto järjestelmän luokittimeksi.
Kuva 17. Tukivektorikoneen sekaannusmatriisi
36
4.4.2 MLP-neuroverkko
MLP-neuroverkon koulutus suoritettiin MATLAB-ohjelmiston funktiolla patternnet.train, mutta itse luokitus tehtiin työn kirjoittajan itse ohjelmoimalla Javatoteutuksella. MATLAB-ohjelmistolla koulutetun luokittimen parametrit kirjoitettiin
Java-tiedostoon, jota käytettiin luokittimien toteutuksessa. Koulutetulla neuroverkolla
oli yksi piiloneuronikerros. Parhaaksi neuronimääräksi valikoitiin 15 neuronia laskemalla neuronien määrää kunnes suorituskyky alkoi heikentyä oleellisesti.
Kuten kuvan 18 sekaannusmatriisista nähdään, myös MLP-neuroverkon suorituskyky
oli työn datajoukolla erinomainen. Luokitukseen kulunut aika oli 0,022 sekuntia, joka
on huomattavasti vähemmän kuin tukivektorikoneella.
Kuva 18. MLP-neuroverkon sekaannusmatriisi
4.4.3 Binääripäätöspuu
Myös binääripäätöspuun koulutukseen käytettiin MATLAB-ohjelmistoa, ja itse luokitus
toteutettiin itse kirjoitetulla Java-koodilla. Kuvassa 19 on binääripäätöspuun sekaannusmatriisi, josta nähdään, että sillä saavutetaan tukivektorikoneeseen ja MLPneuroverkkoon verrattava tunnistustarkuus. Binääripäätöspuun evaluointi on todella tehokasta, luokitus vaatii ainoastaan yhden vertailuoperaation per taso. Jos puussa on 10
tasoa (todella iso päätöspuu), vaatii yhden näytteen luokittaminen silti vain 10 vertailuoperaatiota. Tästä johtuen binääripäätöspuun luokitukseen käyttämä aika on testatuista
luokittimista pienin, 0,003 sekuntia.
37
Kuva 19. Binääripäätöspuun sekaannusmatriisi
4.4.4 Luokittimen valinta
Kaikkien kolmen luokittimen luokitustarkkuus on lähellä sataa prosenttia. Luokitustarkkuuden osalta on yhdentekevää, mikä kolmesta testatusta luokittimesta valitaan. Tukivektorikone voidaan sulkea pois sen laskentavaatimusten vuoksi. MLP-neuroverkon ja
binääripäätöspuun luokitukseen käyttämät ajat ovat molemmat tarpeeksi pieniä, kun niitä verrataan piirteiden irrottamiseen kuluvaan aikaan, joka oli testiympäristössä noin
0,45 sekuntia. Binääripäätöspuu vaikutti hieman ylioppineelta. Ylioppiminen ilmeni
esimerkiksi vaikeutena tunnistaa mobiililaitteen peruskäyttöä passiivisuudeksi. Myös
koulutusdata on vajavaista tältä osin. Kuvasta 14 nähdään, että lyhyitä epäjatkuvia liikkeitä, joista puhelimen peruskäyttö pääosin koostuu, on koulutusdatassa todella vähän.
Tämä vaikuttaa osaltaan siihen, että päätöspuu ei luokita niitä onnistuneesti. MLPneuroverkko kuitenkin vajavaisesta koulutusdatasta riippumatta luokitti vastaavat tilanteet oikein. Luokittimeksi valittiin MLP-neuroverkko.
4.5
Temporaalinen jälkikäsittely
Tässä työssä jälkikäsittelyn on tarkoitus hoitaa kaksi tehtävää:
1. Suodattaa luokittimen tekemiä lyhytaikaisia virheitä
2. Tunnistaa viides luokka, eli muu liikunta
38
Jälkikäsittelijä ylläpitää histogrammia viimeisen minuutin aikana saaduista luokittimen
antamista ”raaoista” luokitustuloksista. Jos jotain aktiviteettia on yli 50 prosenttia, valitaan se ulostuloksi. Jos yhtään aktiviteettia ei ole yli 50 prosenttia, valitaan ulostuloksi
viides luokka eli muu liikunta.
Tällainen määritelmä luokalle muu liikunta sopii hyvin aktiviteeteille, jotka koostuvat
suurimmaksi osaksi alle puolen minuutin mittaisista pätkistä kävelyä, juoksua ja passiivisuutta. Tällaisia aktiviteetteja ovat esimerkiksi jalkapallo, salibandy, jääkiekko, tennis,
sulkapallo ja squash. Määritelmä ei sovi jaksollisille aktiviteeteille, kuten hiihto ja matkaluistelu.
Tällaisen jälkikäsittelijän huono puoli on se, että tarkkuus aikatasossa heikkenee suhteessa histogrammi-ikkunan pituuteen. Minuutin mittaisella ikkunalla kaikki alle 30 sekunnin (60 s x 50 %) mittaiset liikuntasuoritukset jäävät helposti tunnistamatta, tai tunnistuvat luokkaan muu liikunta. Lisäksi siirryttäessä lajista toiseen, esimerkiksi kävelystä juoksuun, syntyy helposti yksi tunnistus luokkaa muu liikunta. Siirtymä on täydellinen ainoastaan siinä tapauksessa, että histogrammissa ei ole ainuttakaan näytettä muita
luokkia kuin juoksu ja kävely.
Kuvassa 20 esitetään jälkikäsittelijän toimintaa. Sininen viiva on luokittelijan ulostulo ja
punainen viiva jälkikäsittelijän antama suodatettu luokka. Kuvasta on havaittavissa
myös jälkikäsittelijän tunnistukseen aiheuttama viive.
Kuva 20. Esimerkki jälkikäsittelijän toiminnasta
39
4.6
Resurssien hallinta
Yksi tämän työn päätavoitteista oli luoda järjestelmä, jota voidaan ajaa taustalla jatkuvasti ilman, että se vaikuttaa matkapuhelimen käyttökokemukseen tai akun kestoon.
Kaikki modernit älypuhelinkäyttöjärjestelmät pyrkivät säästämään akkua siirtymällä
virransäästötilaan, kun yksikään käynnissä oleva ohjelma ei vaadi aktiivisesti laskentaaikaa. Virransäästötilassa myös sensorit, kuten kiihtyvyyssensori sammutetaan, eikä aktiviteetin tunnistus ole mahdollista. Virransäästötila on pääosin vastuussa älypuhelinten
akun kestosta. Esimerkiksi testilaitteen HTC Desire Z akku kestää useita vuorokausia,
kun laitteen antaa olla käyttämättömänä pöydällä. Kun laitteen virransäästötilan ottaa
pois päältä, akku kestää alle 12 tuntia käyttämättömänäkin.
Kävikin nopeasti ilmi, että resurssien hallinnan kannalta ylivoimaisesti oleellisin asia on
virransäästötilan salliminen silloin, kun käyttäjä ei liiku. Itse kiihtyvyysdatan analysointi vaatii mitättömän määrän suoritinaikaa, eikä vaikuta akun kulutukseen oleellisesti.
Esimerkiksi suorittimeltaan vaatimattomimmalla, nykystandardeilla vanhanaikaisella
testilaitteella ZTE Blade työssä toteutettu hahmontunnistusjärjestelmä vaatii alle prosentin suoritinaikaa.
Toteutettu järjestelmä antaa mobiililaitteen vaipua virransäästötilaan, jos kymmeneen
minuuttiin ei ole tunnistettu muuta kuin passiivisuutta. Järjestelmä herää virransäästötilasta kerran minuutissa viideksi sekunniksi (yksi tunnistusikkuna). Jos tänä aikana tunnistetaan aktiivisuutta, palataan aktiiviseen tilaan.
Toteutettu järjestelmä kuluttaa sitä enemmän akkua, mitä aktiivisempi käyttäjä on. Tavallisena arkipäivänä keskiverto ihminen kuitenkin liikkuu ajallisesti melko pienen osan
päivästä. Esimerkiksi kotona ollessaan suurin osa ihmisistä säilyttää älypuhelintaan
pöydällä, joten sohvalta jääkaapille kävely ei herätä laitetta virransäästötilasta.
40
5
TULOKSET JA NIIDEN TARKASTELU
Tässä luvussa tarkastellaan toteutetun järjestelmän suorituskykyä arkipäiväisen liikunnan tunnistamisessa, joka oli työn tavoite. Toinen päätavoite oli järjestelmän huomaamattomuus, jota testataan mittaamalla järjestelmän vaikutus laitteen akun kulutukseen.
Muilla tavoin järjestelmä on täysin huomaamaton, koska sitä ajetaan mobiililaitteessa
taustaprosessina, joka ei näy käyttäjälle muuten kuin mahdollisesti lyhentyneenä akun
kestona.
5.1
Tarkkuus arkipäiväisessä käytössä
Luokituksen tarkkuutta testattiin siten, että koehenkilöt pitivät järjestelmää käynnissä
omissa matkapuhelimissaan yhden tavallisen arkipäivän. Koehenkilöitä pyydettiin merkitsemään päivän aikana suorittamansa liikunta noin minuutin tarkkuudella. Koehenkilöitä oli kaksi, joista kumpikaan ei ollut mukana koulutusdatan keräämisessä.
5.1.1 Ensimmäisen koehenkilön tulokset ja analyysi
Kuvassa 21 on esitetty ensimmäisen koehenkilön aktiviteetit päivän ajalta kellonajan
funktiona. Kuvaajaan on merkitty punaisilla laatikoilla kiinnostavat aktiivisuusjaksot eli
osiot. Seuraavissa kappaleissa jokainen osio analysoidaan erikseen tarkemmin.
Kuva 21. Ensimmäisen koehenkilön aktiviteetit kellonajan funktiona
41
Osio 1 on esitetty tarkemmin kuvassa 22. Koehenkilö lähti ja saapui töihin bussilla.
Koehenkilö käveli kotoaan bussille ja tältä ajalta onkin tallentunut pelkkää kävelyä.
Bussin saavuttua koehenkilön työpaikalle koehenkilö käveli työpisteelleen. Tämän kävelyjakson aikana järjestelmä tunnisti muutaman sekunnin kävelyn luokkaan muu liikunta. Tämä johtui luultavasti siitä, että koehenkilö nousi virheen tapahduttua portaita
pitkin. Kestollisesti molemmat aktiivisuusjaksot vastaavat koehenkilön arvioita.
Kuva 22. Ensimmäisen koehenkilön ensimmäisen osion aktiviteetit kellonajan funktiona
Osio 2 on esitetty tarkemmin kuvassa 23. Tässä osiossa koehenkilö nousi työpisteeltään
ja lähti lounaalle läheiseen ruokalaan. Kävelymatkat ruokalaan ja takaisin ovat rekisteröityneet ajallisesti ja kestollisesti oikein. Noin kello 12.01 järjestelmä on hetkellisesti
luokitellut liikunnan luokkaan muu liikunta. Samoihin aikoihin tunnistus on myös käynyt muutaman kerran luokassa passiivisuus. Koehenkilö oli tuolloin ruokalan linjastolla
ja kävely oli hidasta ja jaksottaista. Järjestelmä on luultavasti tunnistanut lyhyet passiivisuudet oikein, mutta on jossain vaiheessa tunnistanut yhden tai useamman näyteikkunan luokkaan pyöräily kävelyn hitaudesta johtuen. Nämä virhetunnistukset ovat saaneet
jälkikäsittelijän antamaan hetkellisesti tunnistuksen luokkaan muu liikunta.
Kuva 23. Ensimmäisen koehenkilön toisen osion aktiviteetit kellonajan funktiona
Osio 3 on esitetty tarkemmin kuvassa 24. Koehenkilö lähti töistä bussilla, kävi ruokakaupassa ja saapui kotiinsa. Kävelymatka bussille on rekisteröitynyt oikein välillä
42
17.00–17.05. Koehenkilö nousi bussista noin kello 17.25 ja käveli läheiseen ruokakauppaan, jossa hän teki ostoksia noin kello 17.37 asti. Ostosten ajalta on rekisteröitynyt
useita kävely- ja passiivisuusjaksoja. Kaupassa ollessaan koehenkilö kertoi pysähtyneensä useita kertoja miettimään ja asioimaan mm. lihatiskillä, joka selittää passiiviset
jaksot. Pisin passiivisuusjakso välillä 17:35–17:37 on luultavasti aiheutunut kassalle jonottamisesta. Pisin kävelyjakso välillä 17:37–17:43 tallentui koehenkilön kävellessä
kaupasta kotiin.
Kuva 24. Ensimmäisen koehenkilön kolmannen osion aktiviteetit kellonajan funktiona
Osio 4 on esitetty tarkemmin kuvassa 25. Tässä osiossa koehenkilö kävi lenkillä. Lyhyen kävelyjakson jälkeen koehenkilö juoksi noin 15 minuuttia. Tämä täsmää ajallisesti ja
kestollisesti tarkasti koehenkilön kertomuksiin. Juoksujakson alussa ja lopussa tunnistus
on käynyt luokassa muu liikunta. Tämä selittyy luvussa 4.5 esitellyllä jälkikäsittelijän
heikkoudella. Juoksujakson jälkeen koehenkilö oli kävellyt pysähtymättä takaisin kotiinsa. Järjestelmä on kuitenkin tunnistanut virheellisesti useita passiivisia hetkiä kävelymatkalta. Voidaan spekuloida, että käyttäjä oli juoksujakson jälkeen väsynyt ja käveli
hitaasti, nostamatta jalkoja tavallisen kävelyn tapaan. Joka tapauksessa tämä on selkeä
virhe tunnistusjärjestelmältä. Virheen korjaamiseksi saattaisi riittää kävelyjakson lisääminen koulutusdataan.
Kuva 25. Ensimmäisen koehenkilön neljännen osion aktiviteetit kellonajan funktiona
43
Taulukossa 7 on koehenkilön arviot päivän aktiviteettien kokonaiskestosta sekä järjestelmän tunnistamat arvot.
Taulukko 7. Ensimmäisen koehenkilön arviot ja tunnistetut aktiviteettien kestot
Aktiviteetti
Koehenkilön arvio
Tunnistettu kesto
Kävely
28 min
30 min
Juoksu
15 min
14 min
Pyöräily
0 min
0 min
Muu liikunta
Ei kysytty
1 min
Koehenkilö kertoi käyneensä työpäivän aikana useamman kerran hakemassa kahvia läheisestä keittiöstä. Koehenkilö oli lisäksi vieraillut työkaverin työpisteellä. Ainoa järjestelmän tunnistama tapahtuma tältä ajalta on noin 14.30 tunnistettu muutaman sekunnin
muu liikunta -jakso. Virransäästöominaisuuksista ja jälkikäsittelystä johtuen järjestelmä
tunnistaa heikosti lyhyitä, alle minuutin mittaisia aktiviteettijaksoja.
Yhteenvetona ensimmäisen koehenkilön tuloksista voidaan sanoa, että tunnistustarkkuus on ollut melko hyvä. Erityisesti passiivisuuden tunnistaminen aktiivisuusjaksojen
väleissä on ollut erinomaista. Koehenkilö käytti matkapuhelintaan normaalisti koko päivän ajan eikä normaali käyttö ole aiheuttanut aktiivisten jaksojen välissä ainuttakaan
virheellistä tunnistusta.
5.1.2 Toisen koehenkilön tulokset ja analyysi
Kuvassa 26 on esitetty toisen koehenkilön aktiviteetit päivän ajalta kellonajan funktiona. Kuvaajaan on merkitty punaisilla laatikoilla kiinnostavat aktiivisuusjaksot eli osiot.
Seuraavissa kappaleissa jokainen osio analysoidaan erikseen tarkemmin.
44
Kuva 26. Toisen koehenkilön aktiviteetit kellonajan funktiona
Osio 1 on esitetty tarkemmin kuvassa 27. Osiossa 1 koehenkilö pyöräili kodistaan työpaikalleen. Koehenkilö käveli ensin vajaan minuutin pyörävarastoon asunnostaan, jonka
jälkeen koko jakso oli käyttäjän mukaan pyöräilyä. Lopussa koehenkilö käveli työpisteelleen. Järjestelmällä on ollut selvästi vaikeuksia tunnistaa pyöräily oikein. Varsinkin
alkumatka on pääosin tunnistunut luokkiin muu liikunta ja passiivisuus. Alkumatkan
pisin passiivisuusjakso välillä klo 8.44–8.45 selittyy liikennevaloissa odottelulla. Muut
virheet johtuvat järjestelmän heikkoudesta tunnistaa lyhyitä pyöräilyjaksoja oikein.
Loppumatka klo 8.45 eteenpäin oli pyörätietä ilman liikennevaloja tai muita esteitä.
Tunnistus onkin toiminut loppumatkasta huomattavasti paremmin. Myös loppumatkan
aikana on kuitenkin useampi jakso luokkia muu liikunta ja passiivisuus. Nämä saattavat
johtua alamäistä, joissa koehenkilö ei ole polkenut ollenkaan tai on polkenut tavallista
rauhallisemmin.
Kuva 27. Toisen koehenkilön ensimmäisen osion aktiviteetit kellonajan funktiona
Osio 2 on esitetty tarkemmin kuvassa 28. Toinen osio muodostuu koehenkilön kävelystä lounaalle läheiseen ruokalaan ja takaisin työpisteelleen. Osio 2 on lähes identtinen
ensimmäisen koehenkilön toisen osion kanssa ja sama analyysi pätee.
Kuva 28. Toisen koehenkilön toisen osion aktiviteetit kellonajan funktiona
45
Osio 3 on esitetty tarkemmin kuvassa 29. Kolmannessa osiossa koehenkilö pyöräili takaisin kotiinsa työpaikaltaan. Analyysi on pääosin sama kuin ensimmäisessä osiossa,
mutta ajallisesti takaperin. Loppumatka (ensimmäisen osion alkumatka) on tällä kertaa
tunnistunut kävelyksi, passiivisuus ja muu liikunta -luokkien sijaan.
Kuva 29. Toisen koehenkilön kolmannen osion aktiviteetit kellonajan funktiona
Osio 4 on esitetty tarkemmin kuvassa 30. Viimeisessä aktiviteettiosiossa koehenkilö
käveli kaupungilla ja vieraili useissa liikkeissä. Koehenkilö kertoi olleensa koko ajan
kävellen liikkeessä, muutamaa vaatteiden sovitusta lukuun ottamatta. Koehenkilö kertoi
myös säilyttäneensä matkapuhelintaan käsilaukussa. Tunnistuksessa on selvästi liian
pitkiä passiivisuusjaksoja verrattuna koehenkilön kertomuksiin. Liikkeiden sisällä kävely on luultavasti ollut liian hidasta, jotta järjestelmä olisi tunnistanut sen järjestelmällisesti kävelyksi. Myös se, että matkapuhelinta säilytettiin käsilaukussa, on saattanut vaikuttaa tunnistukseen. Koehenkilö kuitenkin mieltää lähes koko osion kävelyksi, koska
hän ei pysähtynyt istumaan missään vaiheessa.
Kuva 30. Toisen koehenkilön neljännen osion aktiviteetit kellonajan funktiona
46
Taulukossa 8 on koehenkilön arviot päivän aktiviteettien kokonaiskestosta sekä järjestelmän tunnistamat arvot.
Taulukko 8. Toisen koehenkilön arviot ja tunnistetut aktiviteettien kestot
Aktiviteetti
Koehenkilön arvio
Tunnistettu kesto
Kävely
40 min
36 min
Juoksu
0 min
0 min
Pyöräily
40 min
24 min
Muu liikunta
Ei kysytty
5 min
Myös toisen koehenkilön tuloksista nähdään, että matkapuhelimen normaali käyttö, kuten puhelut, internetin käyttö tai sähköpostien kirjoittaminen ei ole aiheuttanut tunnistuksia. Tuloksista kuitenkin nähdään myös, että passiivisuuden tunnistus on ehkä liiankin herkkä. Tuloksissa on paljon passiivisuutta paikoissa, missä koehenkilö kertomansa
mukaan oli liikkeessä. Virheitä osittain selittää myös se, että koehenkilö mieltää kävelyksi myös kaupan sisällä suoritetun epäjatkuvan ja hitaan kävelyn. Työssä kävelyksi
määriteltiin jatkuva tasainen kävely. Ihmiset myös luonnollisesti mieltävät pyöräilyksi
koko sen ajan, jonka he ovat polkupyörän satulan päällä, kun taas järjestelmä tunnistaa
vain jaksot, joissa käyttäjä polkee yhtäjaksoisesti yli 30 sekuntia.
5.2
Akun kulutus arkipäiväisessä käytössä
Järjestelmän tarkan akunkulutuksen mittaaminen osoittautui haastavaksi, koska itse järjestelmä ei suoranaisesti kuluta akkua. Akkua kuluttaa mikä tahansa raskaampi operaatio, joka sattuu suorittumaan silloin, kun tunnistusjärjestelmä herättää mobiililaitteen
unitilasta kerätäkseen kiihtyvyysdataa. Mobiililaitteiden käyttöjärjestelmät suorittavat
hereillä ollessaan monenlaisia ylläpito- ja muita toimenpiteitä, joita kaikkia ei voi hallita. Käyttöjärjestelmä saattaa esimerkiksi tarkastaa verkon yli, onko saapunut uusia sähköposteja, ladata päivityksiä, synkronoida kelloa tai synkronoida uusimmat kuvat ja videot mediagalleriaan tai jopa verkon yli pilvipalveluun.
Akun kulutusta yritettiin mitata poistamalla mobiililaitteesta kaikki ohjelmistot, joiden
synkronointiasetuksia ei voitu hallita (ja jotka pystyi poistamaan) ja toistamalla tismalleen saman käyttösekvenssin siten, että tunnistusjärjestelmä oli ajossa ja siten, että se ei
ollut. Sekvenssin oli tarkoitus matkia tavanomaista arkipäiväistä käyttöä. Siihen kuului
sähköpostin tarkastamista ja kirjoittamista, internetin selailua ja muutama puhelu. Tarkasti toistetusta sekvenssistä huolimatta akkukestossa oli huomattavissa usean tunnin
eroja. Jos yli päivän kestävän sekvenssin olisi toistanut useita kertoja tunnistuksen kanssa ja ilman, oltaisiin ehkä saatu jonkinlainen arvio vertaamalla keskiarvoja, mutta tämä
olisi kestänyt viikkoja tai jopa kuukausia riippuen laitteiden määrästä.
47
Hyvän mobiililaitteen akku kestää noin yhden päivän normaalia aktiivista käyttöä.
Vaikka joidenkin laitteiden akku kestää melkein kaksi päivää, täytyy laite kuitenkin ladata joka yö, ettei se lopu kesken päivän. Tästä johtuen mobiililaitteiden käyttäjiä ei
usein kiinnosta laitteen tarkka akkukesto vaan se, kestääkö akku varmasti yhden päivän
vai ei.
Järjestelmän vaikutusta akkukestoon päädyttiinkin mittaamaan binääriasteikolla kestää
päivän – ei kestä päivää. Kulutusta testattiin jokaisella työssä käytetyllä testilaitteella
paitsi Galaxy Tab -tabletilla, jota oli hieman vaikea käyttää normaalisti puhelimena.
Käyttäjinä kokeessa toimivat työn kirjoittaja, hänen tyttöystävänsä ja työkaverinsa. Laitetta käytettiin ensin kolme latauskertaa ilman tunnistusjärjestelmää ja kolme latauskertaa tunnistusjärjestelmän kanssa. Jokainen koehenkilö käytti laitetta oman puhelimensa
sijasta normaalisti. Koska käyttäjän aktiivisuus vaikuttaa tunnistusjärjestelmän toimintaan, työn kirjoittaja lisäsi normaaliin päiväänsä testin ajaksi puolen tunnin mittaisen
juoksulenkin.
Odotetusti jokaisen testilaitteen akku kesti ilman tunnistusjärjestelmää yhden päivän
verran, mutta ei kahta, joten laitteet ladattiin joka yö. Laite pysyi toimintakunnossa yhden kokonaisen päivän myös tunnistusjärjestelmän ollessa käytössä. Käyttäjien silmämääräisten arvioiden mukaan akkua oli kulunut hieman enemmän päivän aikana järjestelmän ollessa käytössä.
Ainakin tämän yksinkertaisen mittarin perusteella järjestelmän akunkulutus ei ole nykystandardeilla ja Android-käyttöjärjestelmällä merkittävää. Tulosta tukevat myös muut
työn aikana saadut käyttökokemukset.
48
6
YHTEENVETO
Työn tavoitteena oli luoda järjestelmä, joka tunnistaa älypuhelimen käyttäjän jokapäiväisen arkiliikunnan huomaamattomasti vaikuttamatta älypuhelimen normaaliin käyttöön. Tämä tavoite saavutettiin hyvin. Parantamisen varaa jäi kuitenkin monella osaalueella ja jatkokehitysmahdollisuuksia on useita.
Toteutettu järjestelmä asettaa kiihtyvyyssensorille erittäin vähän vaatimuksia. Järjestelmän vaatima 15 Hz:n näytteenottotaajuus on saatavilla lähes jokaisesta markkinoilla
olevassa kiihtyvyysanturissa. Myös vaadittu ±2 g arvoalue on tarpeeksi pieni useimmille kiihtyvyysantureille. Aikaisemmissa tutkimuksissa laitevaatimuksiin ei ole kiinnitetty
huomiota, ja niissä toteutetut järjestelmät on yleensä suunniteltu toimimaan vain tietyn
sensorin kanssa.
Toteutettu järjestelmä asettaa erittäin vähän vaatimuksia sensorin asennolle ja sijainnille
käyttäjän vartalossa. Sensorin voi sijoittaa jopa reppuun tai käsilaukkuun, joka tekee
järjestelmästä käyttökelpoisen myös naisille. Useimmissa aikaisemmissa tutkimuksissa
sensorin asento ja paikka oli tarkoin määritelty eikä sen vaihtamista sallittu.
Toteutettu järjestelmä suunniteltiin alusta alkaen siten, että sen ajaminen mobiililaitteessa olisi mahdollisimman näkymätöntä käyttäjälle. Järjestelmän vaikutus akun kulutukseen on pieni. Lisäksi järjestelmä toteutettiin taustaprosessina, joka ei häiritse laitteen
normaalia käyttöä millään tavalla. Tämä on oleellinen vaatimus, jotta tunnistusjärjestelmä olisi oikeasti käytettävä. Tämäkin on asia, johon aikaisemmat tutkimukset eivät
juuri ota kantaa.
Myös koulutusdatan keräämiseen ja datan merkitsemiseen kiinnitettiin aikaisempia tutkimuksia enemmän huomiota, joka osoittautui erittäin tärkeäksi. Koulutusdatan laatu
heijastui aikaisempia tutkimuksia korkeampana tunnistustarkkuutena siitä huolimatta,
että käytetyt piirteet ja luokitin olivat pääosin samoja.
Yksi työn suurimmista saavutuksista oli koulutusdatan laatu ja tarkkuus ja siitä johtuva
erittäin korkea tunnistustarkkuus koulutusdatalla. Koulutusdataa voisi kuitenkin olla
huomattavasti enemmän, ja se voisi edustaa laajempaa kirjoa erilaisia ihmisiä. Esimerkiksi vanhuksilla ja lapsilla on usein hyvin persoonallinen kävely- ja juoksutyyli, jota
järjestelmä ei välttämättä nykyisellään tunnista. Myös datan merkitsemisen eli annotoinnin olisi voinut tehdä vieläkin tarkemmin. Jos järjestelmää haluttaisiin laajentaa
49
erottamaan erimerkiksi portaiden nousu ja lasku tavallisesta kävelystä, olisi se luultavasti mahdotonta, koska portaita pitkin kävely on merkitty tavalliseksi kävelyksi.
Työssä otettiin hyvin pragmaattinen lähestymistapa piirteiden valintaan, joka johti suureen piirrejoukkoon. Joukkoa saisi luultavasti pienennettyä analysoimalla piirteiden tarpeellisuutta. Piirrejoukon pienentäminen ei toisi työn tavoitteiden valossa lisäarvoa,
mutta saattaisi mahdollista järjestelmän käyttämisen muillakin alustoilla, kuten erittäin
tehorajoittuneilla mikrokontrollereilla.
Pyöräilyn tunnistaminen jätti tunnistettavista aktiviteeteista eniten toivomisen varaa.
Tunnistus perustuu täysin jalan pyörivään liikkeeseen. Tunnistus on luotettava vain jos
älypuhelin on käyttäjän housujen taskussa tai muuten liitettynä jalkaan. Arkipäiväinen
pyöräily on erittäin epäjatkuvaa. Usein pyöräily koostuu muutaman kymmenen sekunnin mittaisista polkujaksoista ja niitä seuraavista lepojaksoista (alamäet, liikaa vauhtia
jne.). Kun käyttäjä ei polje, kiihtyvyysdatassa ei ole mitään, mistä liikkeen voisi tunnistaa pyöräilyksi. Pyöräilyn tunnistusta voisi kuitenkin luultavasti parantaa huomattavasti
nokkelalla jälkikäsittelyllä. Tässä työssä toteutettu jälkikäsittelijä ei sovellu tähän tehtävään kovinkaan hyvin. Pyöräilyn tunnistusta voisi myös parantaa lisäämällä järjestelmään GPS-sensoriin perustuvan paikka- ja nopeustiedon. GPS kuitenkin jätettiin tietoisesti pois, koska sen käyttäminen kuluttaa liikaa älypuhelimen akkua.
Järjestelmää voisi helposti jatkokehittää tunnistamaan muitakin jatkuvia, jaksollisia liikuntamuotoja, kuten hiihto ja rullaluistelu. Työn ohessa kehitetty datankeräysjärjestelmä ja luokittimen koulutukseen sekä tulosten analysointiin kirjoitetut MATLAB-skriptit
tekevät jatkokehityksestä helppoa.
50
LÄHTEET
[1]
J. Baek, G. Lee, W. Park & B. Yun, Accelerometer signal processing for
user activity detection. Teoksessa Negoita et al. (toim.) KES 2004, LNAI
3215, Berlin, s. 610–617, 2004.
[2]
J. Pärkkä, M. Ermes, P. Korpipää, J. Mäntyjärvi, J. Peltola & I.
Korhonen, Activity classification using realistic data from wearable
sensors. IEEE transactions on information technology in biomedicine,
vol. 10, no. 1, 2006.
[3]
N. Ravi, N. Dandekar, P. Mysore, J. & M. Littman, Activity recognition
from accelerometer data. IAAI’05 Proceedings of the 17th conference on
Innovative applications of artificial intelligence, vol. 3, s. 1541–1546,
2005.
[4]
L. Bao & S. Intille, Activity recognition from user-annotated acceleration
data. Teoksessa A. Ferscha & F. Matten (toim.) PERVASIVE 2004,
LNCS 3001, s. 1–17, 2004.
[5]
J. Mäntyjärvi, J. Himberg & T. Seppänen, Recognizing human motion
with multiple acceleration sensors. Systems, Man, and Cybernetics, 2001,
IEEE international conference, vol. 2, s. 747–752, 2001.
[6]
J. Lester, T. Choundhury, N. Kern, G. Borriello & B. Hannaford, A
hybrid discriminative/generative approach for modeling human activities.
IJCAI’05 Proceedings of the 19th international joint conference on
artificial intelligence, p. 766–772, 2005.
[7]
U. Maurer, A. Smailagic, D. Siewiorek & M. Deisher, Activity
recognition and monitoring using multiple sensors on different body
positions. BSN’06 Proceedings of the international workshop on
wearable and implantable body sensor network. p. 112–116, 2006.
[8]
M. Ermes & J. Pärkkä, Advancing from offline to online activity
recognition with wearable sensors. EMBS 2008 30th annual international
conference of the IEEE, Vancouver, 2008, s. 4451–4454, 2008.
51
[9]
M. Ermes & J. Pärkkä, Detection of daily activities and sports with
wearable sensors in controlled and uncontrolled conditions. IEEE
transactions on information technology in biomedicine, vol. 12, no. 1, s.
20–26, 2008.
[10]
J. Yang, Toward physical activity diary: motion recognition using simple
acceleration features with mobile phones. IMCE’09 Proceedings of the
1st international workshop on interactive multimedia for consumer
electronics, s. 1–10, 2009.
[11]
J. Yang, H. Lu, Z. Liu & P. Boda, Physical activity recognition with
mobile phones: Challenges, Methods and applications. Multimedia
interactions and intelligent user interfaces Advances in pattern
recognition 2010, s. 185–213, 2010.
[12]
J. Kwapisz, G. Weiss & S. Moore, Activity recognition using cell phone
Accelerometers, ACM SIGKDD Explorations newsletter, vol. 12, no. 2,
s. 74–82, 2010.
[13]
Y. Kawahara, H. Kurasawa & H. Morikawa, Recognizing user context
using mobile handsets with acceleration sensors, PORTABLE07 IEEE
international conference on portable information devices, s. 1–5, 2007.
[14]
D. Mizell, Using gravity to estimate accelerometer orientation,
Proceedings of the 7th IEEE symposium on wearable computers, s. 252–
253, 2005.