Kaatumisten tunnistaminen rannekellolla - Datankeruu ja algoritmin kehitys
Kettunen, Mikko (2022)
Kettunen, Mikko
2022
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-202203083214
https://urn.fi/URN:NBN:fi:amk-202203083214
Tiivistelmä
Insinöörityön tavoitteena oli kerätä rannekellolla dataa kaatumisista ja normaaleista aktiviteeteista, ja tämän datan perusteella kehittää algoritmi tunnistamaan kaatumisia. Insinöörityö toteutettiin Navigil Oy:lle.
Työssä dataa kerättiin Navigilin 580 rannekellolla, joka mittaa sekä kiihtyvyyttä että ilmanpainedataa. Datankeruussa määriteltiin 18 kaatumisskenaariota ja 12 normaalin aktiviteetin skenaariota. Datankeruun tuloksena oli 180 kaatumista sisältävää tiedostoa ja 130 normaaleja aktiviteetteja sisältäviä tiedostoja. Kerättyä dataa tutkittiin Python-ohjelmointikielellä. Datasta löydettiin 6 piirrettä, joiden avulla aktiviteetti voitiin määritellä joko kaatumiseksi tai normaaliksi aktiviteetiksi.
Dataa tutkiessa huomattiin, että jos kaatumisen lähtöasentona oli tuolilla istuminen tai sängyllä makaaminen ei merkittävää ilmanpaineen kasvua useimmiten pystytty tunnistamaan. Koska ilmanpaineen kasvun todettiin olevan hyvä piirre erottamaan kaatuminen normaalista aktiviteetista, ei näitä kaatumisia otettu huomioon algoritmin kehityksessä ja täten algoritmin tulosten esittelyssä.
Kerätyn datan perusteella kehitettiin algoritmi, joka tunnistaa kaatumisia kiihtyvyys- ja ilmanpainedatan perusteella. Algoritmin kehityksessä priorisoitiin väärien hälytysten välttämistä. Tavoitteena oli, että suurin osa mitatuista kaatumisista tunnistettaisiin ilman, että yhtäkään mitattua normaalia aktiviteettia tunnistettaisiin väärin kaatumiseksi. Algoritmin kehityksessä käytettiin Python-ohjelmointikieltä, mutta algoritmia kehitettiin siten, että se olisi mahdollisimman helppo kääntää C-ohjelmointikielelle, jolla Navigilin 580 rannekellon toiminnallisuudet on ohjelmoitu.
Kehitetty algoritmi tunnisti 79 % mitatuista kaatumisista ilman, että yhdestäkään normaalista aktiviteetista tuli väärää hälytystä. Tunnistustarkkuuteen oltiin tyytyväisiä, ja algoritmi tullaan lähitulevaisuudessa implementoimaan Navigil 580 -rannekelloon.
Työssä dataa kerättiin Navigilin 580 rannekellolla, joka mittaa sekä kiihtyvyyttä että ilmanpainedataa. Datankeruussa määriteltiin 18 kaatumisskenaariota ja 12 normaalin aktiviteetin skenaariota. Datankeruun tuloksena oli 180 kaatumista sisältävää tiedostoa ja 130 normaaleja aktiviteetteja sisältäviä tiedostoja. Kerättyä dataa tutkittiin Python-ohjelmointikielellä. Datasta löydettiin 6 piirrettä, joiden avulla aktiviteetti voitiin määritellä joko kaatumiseksi tai normaaliksi aktiviteetiksi.
Dataa tutkiessa huomattiin, että jos kaatumisen lähtöasentona oli tuolilla istuminen tai sängyllä makaaminen ei merkittävää ilmanpaineen kasvua useimmiten pystytty tunnistamaan. Koska ilmanpaineen kasvun todettiin olevan hyvä piirre erottamaan kaatuminen normaalista aktiviteetista, ei näitä kaatumisia otettu huomioon algoritmin kehityksessä ja täten algoritmin tulosten esittelyssä.
Kerätyn datan perusteella kehitettiin algoritmi, joka tunnistaa kaatumisia kiihtyvyys- ja ilmanpainedatan perusteella. Algoritmin kehityksessä priorisoitiin väärien hälytysten välttämistä. Tavoitteena oli, että suurin osa mitatuista kaatumisista tunnistettaisiin ilman, että yhtäkään mitattua normaalia aktiviteettia tunnistettaisiin väärin kaatumiseksi. Algoritmin kehityksessä käytettiin Python-ohjelmointikieltä, mutta algoritmia kehitettiin siten, että se olisi mahdollisimman helppo kääntää C-ohjelmointikielelle, jolla Navigilin 580 rannekellon toiminnallisuudet on ohjelmoitu.
Kehitetty algoritmi tunnisti 79 % mitatuista kaatumisista ilman, että yhdestäkään normaalista aktiviteetista tuli väärää hälytystä. Tunnistustarkkuuteen oltiin tyytyväisiä, ja algoritmi tullaan lähitulevaisuudessa implementoimaan Navigil 580 -rannekelloon.