Žingsniamačio judesio atpažinimas

Kaip tas mažas prietaisėlis skaičiuoja mūsų žingsnius

Turbūt daugelis esame pastebėję, kad mūsų išmanieji telefonai, laikrodžiai ar specialūs fitneso prietaisai kažkaip stebuklingu būdu žino, kiek žingsnių per dieną nužingsniavome. Dar prieš dešimtmetį tokia technologija atrodė kaip mokslinė fantastika, o dabar ji yra kiekvieno kišenėje. Bet kaip gi tas mažytis įrenginys gali atskirti, kada mes vaikštome, kada bėgame, o kada tiesiog kratome telefoną?

Viskas prasideda nuo mikroelektromechaninių sistemų – arba, kaip jas mėgsta vadinti inžinieriai, MEMS sensorių. Tai tokie mažyčiai komponentai, kurie telpa ant kelių kvadratinių milimetrų plotelio, bet sugeba jausti net menkiausius judesius. Pagrindinis veikėjas čia yra akselerometras – įrenginys, kuris matuoja pagreitį trimis erdvės kryptimis. Paprastai tariant, jis jaučia, kaip greitai ir kokia kryptimi jūs judate.

Įdomu tai, kad pirmieji žingsniamačiai buvo visai kitokio principo. Jie turėjo mechaninį svyruoklį – tarsi mažą rutulėlį ar svarstį, kuris kiekvieno žingsnio metu pajudėdavo ir užregistruodavo kontaktą. Buvo panašu į mažytį metronomo mechanizmą jūsų kišenėje. Tačiau tokios sistemos buvo gana nepatikimos – jos galėjo skaičiuoti žingsnius net tada, kai tiesiog važiavote automobiliu per duobėtą kelią.

Akselerometro paslaptys ir jo veikimo principas

Šiuolaikiniame akselerometre nėra jokių judančių dalių tradicine prasme. Jis veikia remiantis mikroskopinėmis struktūromis, kurios priklauso nuo puslaidininkių technologijų. Įsivaizduokite mažytę masę, pakabintą ant itin plonų spyruoklių. Kai prietaisas juda, ši masė dėl inercijos šiek tiek atsilieka arba lenkia priekį, o tai keičia elektrinę talpą tarp judančios dalies ir nejudančių elektrodų.

Šie pokyčiai yra mikroskopiniai – kalbame apie nanometrų ar net mažesnių dydžių poslinkius. Tačiau šiuolaikinė elektronika sugeba juos užfiksuoti ir paversti skaitmeniniais duomenimis. Akselerometras matuoja pagreitį visose trijose ašyse: X (į šonus), Y (pirmyn-atgal) ir Z (aukštyn-žemyn). Būtent šių trijų matavimų derinys leidžia suprasti, kokį judesį atlieka žmogus.

Kai vaikštote, jūsų kūnas atlieka gana nuspėjamą judėjimo seką. Kiekvienas žingsnis sukelia charakteringą pagreičio bangą. Pirmiausia viena koja pakyla nuo žemės – tai sukelia nedidelį pagreitį į viršų. Tada koja nusileidžia ir smūgiuoja į žemę – čia atsiranda ryškus pagreičio pikas. Šis ciklas kartojasi su kiekvienu žingsniu, sukurdamas tam tikrą ritmą, kurį akselerometras puikiai užfiksuoja.

Nuo duomenų chaoso iki prasmingos informacijos

Bet čia prasideda tikroji magija. Akselerometras per sekundę atlieka šimtus ar net tūkstančius matavimų, sukurdamas milžinišką duomenų srautą. Jei tiesiog bandytume skaičiuoti kiekvieną pagreičio piką, gautume visišką nesąmonę. Kodėl? Nes mes ne tik vaikštome – mes taip pat gestikuliuojame, pasikasame galvą, traukiame telefoną iš kišenės, dedame jį ant stalo. Visi šie judesiai taip pat sukuria pagreičio pokyčius.

Čia į pagalbą ateina signalų apdorojimo algoritmai. Pirmiausia duomenys pereina per filtrus, kurie pašalina aukšto dažnio triukšmą – smulkius virpesius ir netyčinius judesius. Tada sistema ieško specifinių modelių (angliškai juos vadina „patterns”), kurie atitinka vaikščiojimo ar bėgimo charakteristikas.

Vienas iš populiariausių metodų yra vadinamasis slenkančio lango algoritmas. Sistema analizuoja ne vieną konkretų matavimą, o tam tikrą laiko intervalą – pavyzdžiui, 2-3 sekundes. Per šį laiką ji ieško cikliškai besikartojančių pagreičio bangų. Jei tokios bangos atsiranda reguliariai ir jų dažnis atitinka žmogaus žingsnių dažnį (paprastai nuo 1 iki 3 žingsnių per sekundę), sistema užregistruoja judesius kaip vaikščiojimą.

Dar vienas svarbus aspektas – pagreičio vektoriaus dydis. Kai vaikštote, bendras pagreitis (visų trijų ašių kombinacija) svyruoja tam tikrose ribose. Per stiprus pagreitis gali reikšti, kad telefonas krenta ar yra metamas, o per silpnas – kad jis tiesiog guli ant stalo. Šie slenksčiai yra kruopščiai nusiteikti, kad sistema kuo tiksliau atpažintų būtent žingsnius.

Kai į žaidimą įsijungia dirbtinis intelektas

Pastaraisiais metais žingsniamačių technologija padarė milžinišką šuolį į priekį dėl mašininio mokymosi algoritmų. Vietoj to, kad inžinieriai rankiniu būdu programuotų kiekvieną galimą judesio scenarijų, dabar sistema gali išmokti pati atpažinti skirtingus judesių tipus.

Mokslininkai surinko tūkstančius valandų duomenų iš realių žmonių – įvairaus amžiaus, svorio, ūgio, vaikščiojančių skirtingu greičiu ir skirtingose vietose. Šie duomenys buvo panaudoti apmokyti neuroninių tinklų modelius, kurie gali atpažinti ne tik paprastą vaikščiojimą, bet ir bėgimą, lipimą laiptais, dviračio važiavimą, net šokius ar specifines sporto veiklas.

Tokios sistemos veikia kur kas sudėtingiau nei paprasti filtrai. Jos analizuoja ne tik pagreičio duomenis, bet ir jų pokyčių greičius, dažnių spektrus, netgi tai, kaip vienas judesys pereina į kitą. Pavyzdžiui, kai pradedame bėgti po ramaus vaikščiojimo, pagreičio bangos ne tik tampa dažnesnės, bet ir jų forma šiek tiek pasikeičia – smūgiai į žemę tampa ryškesni, o „skrydžio” fazė tarp žingsnių ilgesnė.

Kai kurie modernūs išmanieji laikrodžiai netgi gali atpažinti, ar vaikštote asfaltu, žole ar smėliu. Kaip? Skirtingos paviršių tekstūros sukelia šiek tiek skirtingus vibracijų modelius, kuriuos jautrus akselerometras gali užfiksuoti, o gerai apmokytas algoritmas – interpretuoti.

Giroskopas – akselerometro geriausias draugas

Daugelis šiuolaikinių prietaisų turi ne tik akselerometrą, bet ir giroskopu – sensorių, kuris matuoja kampinį greitį, arba paprasčiau tariant, sukimąsi. Jei akselerometras pasako, kaip greitai judame, tai giroskopas pasako, kaip greitai sukamės.

Kodėl tai svarbu žingsniams skaičiuoti? Kai vaikštome, mūsų kūnas ne tik juda pirmyn, bet ir šiek tiek sukinėjasi. Klubai sukasi, pečiai juda priešinga kryptimi, galva palaikydama pusiausvyrą atlieka subtilias korekcijas. Visa tai sukuria sudėtingą trijų dimensijų judesio choreografiją.

Giroskopo duomenys padeda atskirti tikrus žingsnius nuo klaidinančių judesių. Pavyzdžiui, jei telefonas krenta iš stalo, akselerometras užfiksuos stiprų pagreitį žemyn. Bet giroskopas parodys, kad prietaisas chaotiškai sukinėjasi – o tai nėra būdinga vaikščiojimui. Arba jei važiuojate automobiliu per duobėtą kelią, akselerometras jaus daug vertikalių svyravimų, tačiau giroskopas neparodys to ritmingo kūno sukimosi, kuris būdingas žingsniavimu.

Šių dviejų sensorių duomenų sintezė vadinama sensorių susiliejimu (sensor fusion). Tai labai galingas metodas, leidžiantis pasiekti kur kas didesnį tikslumą nei naudojant bet kurį sensorių atskirai. Kai kurie prietaisai dar prideda magnetometrą (kompasą) ir barometrą (oro slėgio sensorių), kuris gali padėti nustatyti, ar kopiate į kalną ar laiptais.

Kodėl skirtingi prietaisai skaičiuoja skirtingai

Turbūt esate pastebėję, kad jūsų telefonas ir išmanusis laikrodis ne visada rodo tą patį žingsnių skaičių. Arba draugo fitneso apyrankė rodo 10,000 žingsnių, o jūsų – tik 9,500, nors vaikščiojote kartu. Kodėl taip nutinka?

Pirma, skirtingi gamintojai naudoja skirtingus algoritmus ir skirtingus jautrumo nustatymus. Kai kurie prietaisai yra nustatyti konservatyviau – jie skaičiuoja tik tuos judesius, dėl kurių yra visiškai tikri, kad tai žingsniai. Kiti yra liberalesni ir gali užskaityti net abejotinus judesius. Nėra vieno teisingo atsakymo, kuris metodas geresnis – tai priklauso nuo to, ko norite: absoliutaus tikslumo ar to, kad nebūtų praleisti jokie žingsniai.

Antra, prietaiso padėtis ant kūno turi didžiulę įtaką. Telefonas kišenėje juda visai kitaip nei laikrodis ant riešo. Riešas atlieka daug papildomų judesių – gestikuliuojame, rašome, vairuojame. Todėl laikrodžio algoritmams tenka būti kur kas sudėtingesniems, kad atskirtų tikrus žingsnius nuo rankos mostų.

Trečia, skirtingi žmonės vaikšto skirtingai. Aukštas žmogus su ilgomis kojomis daro ilgus, lėtus žingsnius. Žemas žmogus su trumpomis kojomis – trumpus, greitesnius. Vyresnio amžiaus žmonės dažnai vaikšto atsargiau, su mažesniu pagreičiu. Jaunimas gali energingai trypčioti, sukurdamas stipresnius smūgius. Idealiu atveju algoritmas turėtų prisitaikyti prie individualaus vaikščiojimo stiliaus, bet tai nėra paprasta.

Praktiniai patarimai tikslesniam skaičiavimui

Jei norite, kad jūsų žingsniamatis veiktų kuo tiksliau, yra keletas dalykų, kuriuos galite padaryti. Pirmiausia, įsitikinkite, kad prietaise įvestos teisingos jūsų fizinės charakteristikos – ūgis, svoris, amžius. Nors tai gali atrodyti kaip tik statistikos duomenys, daugelis algoritmų naudoja šią informaciją, kad geriau interpretuotų sensorių duomenis.

Jei naudojate išmanųjį telefoną, stenkitės jį nešioti vienoje vietoje – idealiai kišenėje prie klubo arba specialiame dėkle ant diržo. Kuo stabilesnė prietaiso padėtis, tuo lengviau algoritmui atpažinti judesius. Jei telefonas šokinėja rankinėje tarp raktų ir kosmetikos, duomenys bus kur kas chaotiškesni.

Išmaniesiems laikrodžiams svarbu, kad jie būtų tvirtai, bet ne per stipriai, pritvirtinti prie riešo. Jei laikrodis laisvai šokinėja ant rankos, jo duomenys bus netikslūs. Taip pat verta žinoti, kad kai kurie laikrodžiai leidžia nurodyti, ant kurios rankos jį nešiojate – dominuojančios ar ne. Tai padeda algoritmui geriau interpretuoti rankos judesius.

Dar vienas patarimas – leiskite prietaisui „pažinti” jūsų vaikščiojimo stilių. Kai kurios programėlės turi kalibravimo funkciją: jūs nuvaikštote žinomą atstumą (pavyzdžiui, 100 metrų), o sistema nusistato, koks yra jūsų vidutinis žingsnio ilgis ir ritmas. Po tokio kalibravimo tikslumas gali žymiai pagerėti.

Ateities perspektyvos ir naujos galimybės

Žingsniamačių technologija nesiruošia sustoti ties paprastu žingsnių skaičiavimu. Jau dabar matome prietaisus, kurie gali analizuoti jūsų eisenos kokybę – ar vaikštote simetriškai, ar viena koja žengiate stipriau nei kita, kaip keičiasi jūsų vaikščiojimo greitis per dieną. Tokia informacija gali būti vertinga ne tik sportininkams, bet ir medikams.

Pavyzdžiui, eisenos pokyčiai gali būti ankstyvasis Parkinsono ligos ar kitų neurologinių sutrikimų požymis. Jei jūsų išmanusis laikrodis pastebėtų, kad per pastaruosius mėnesius jūsų žingsniai tapo trumpesni ir nereguliaresni, jis galėtų pasiūlyti pasitikrinti sveikatą. Žinoma, tai nėra diagnozė, bet gali būti naudingas įspėjimo signalas.

Kita įdomi kryptis – energijos sąnaudų skaičiavimas. Dabartiniai prietaisai dažnai naudoja gana primityvius modelius, kurie tiesiog daugins žingsnių skaičių iš vidutinės kalorijos vertės. Tačiau tikrovėje skirtingi žingsniai reikalauja skirtingos energijos. Lipimas į kalną yra kur kas sunkesnis nei vaikščiojimas lyguma. Greitesnis tempas reikalauja daugiau pastangų. Ateities algoritmai galės tai atsižvelgti, analizuodami ne tik žingsnių skaičių, bet ir jų intensyvumą, pagreičio modelius, netgi širdies ritmo duomenis.

Dar viena perspektyvi sritis – kritimų aptikimas. Vyresnio amžiaus žmonėms kritimai yra didelė problema, dažnai vedanti į rimtas traumas. Šiuolaikiniai sensoriai jau gali atpažinti staigų, nekontroliuojamą kritimą ir automatiškai išsiųsti pagalbos signalą. Kai kurie išmanieji laikrodžiai jau turi tokią funkciją, ir ji tikrai yra išgelbėjusi gyvybių.

Kai technologija tampa kasdieniu palydovu

Grįžtant prie pradžios klausimo – kaip tas mažas prietaisėlis skaičiuoja mūsų žingsnius – atsakymas yra sudėtingas ir kartu nuostabus. Tai fizikos, matematikos, signalų apdorojimo, mašininio mokymosi ir inžinerijos derinys, sutalpintas į kelių milimetrų dydžio lustą.

Bet svarbiausia ne technologija pati savaime, o tai, kaip ji keičia mūsų gyvenimą. Žingsniamačiai motyvuoja judėti daugiau, padeda stebėti sveikatos pokyčius, net skatina draugiškus varžybas su kolegomis ar šeimos nariais. Tai puikus pavyzdys, kaip sudėtinga technologija gali būti paversta paprasta, intuityviai suprantama priemone, kuria naudojasi milijonai žmonių visame pasaulyje.

Ir nors algoritmai nuolat tobulėja, o sensoriai tampa vis jautresni, pagrindinis principas lieka tas pats: atidžiai stebėti, kaip judame, ir tame judėjime įžvelgti prasmingus modelius. Galbūt būtent tai ir yra gražiausia – kad technologija išmoko stebėti ir suprasti vieną iš seniausių ir natūraliausių žmogaus veiksmų – paprastą žingsnį.