Lépésszámláló mobilalkalmazásokban: mi ez, hogyan működik és hol alkalmazzák

Szerző: IT Sectr Megjelenés: 2026-03-25 Olvasási idő: 8 perc

A lépésszámláló (pedometer) a mobilalkalmazásokban egy szoftver-hardver mechanizmus a felhasználó lépéseinek számlálására a gyorsulásmérő és giroszkóp adatai alapján. A modern okostelefonok gépi tanulási algoritmusokat használnak a szenzorokkal kombinálva a séta, futás és más fizikai tevékenységek pontos meghatározására. A Apple HealthKit Documentation, 2025 adatai szerint a lépésszámlálás pontossága a modern eszközökön normál séta esetén eléri a 95–97%-ot.

Főbb pontok

  • Lépésszámláló (pedometer) — a lépések számlálásának funkciója a gyorsulásmérő, giroszkóp és gépi tanulási algoritmusok adatainak elemzése alapján.
  • A modern lépésszámláló algoritmusok képesek megkülönböztetni a sétát, futást és lépcsőzést, automatikusan meghatározva a felhasználó tevékenységének típusát.
  • A lépésszámlálás fő szenzora a gyorsulásmérő, amely minden lépésnél három tengely mentén regisztrálja a gyorsulást.
  • iOS-en a fejlesztők a Core Motion CMPedometer osztályán keresztül férnek hozzá a lépésszámlálóhoz, Androidon a Sensor API-n keresztül TYPE_STEP_COUNTER használatával.
  • A lépésszámlálás pontossága az eszköz elhelyezkedésétől függ: a lépésszámláló akkor működik a legpontosabban, ha az okostelefont nadrágzsebben vagy övön hordják.

Mi a lépésszámláló a mobil alkalmazásban?

Lépésszámláló (pedometer) a mobilalkalmazásokban egy olyan funkció, amely meghatározza a felhasználó lépéseinek számát az okostelefon beépített mozgásérzékelőitől származó adatok alapján. A múlt mechanikus lépésszámlálóival ellentétben a mobil lépésszámláló mikro-elektromechanikai szenzorokat (MEMS) és digitális jelfeldolgozó algoritmusokat használ a mozgások pontos számlálásához. A modern implementációk nemcsak számolják a lépéseket, hanem osztályozzák a tevékenységet: séta, futás, lépcsőzés.

A lépésszámláló mobil eszközökbe történő integrációja a 2013-ban megjelent M7 mozgás-koprocesszornak köszönhetően vált lehetővé az iPhone 5s-ben, amely minimális energiafogyasztás mellett folyamatosan gyűjtötte a szenzoradatokat. Ma minden modern okostelefon rendelkezik hardveres támogatással a lépésszámláláshoz a szenzorhub szintjén — egy dedikált chip, amely a tehetetlenségi érzékelők adatait dolgozza fel anélkül, hogy felébresztené a fő processzort.

Hogyan működik a lépésszámlálás okostelefonon

Lépésszámlálás okostelefonon a gyorsulásmérő jeleinek elemzésén alapul, amely az eszköz gyorsulását három merőleges tengely (X, Y, Z) mentén méri. Séta közben minden lépés egy jellegzetes gyorsulási mintát hoz létre: először egy felfelé csúcs a láb emelésekor, majd egy lefelé csúcs a landoláskor. A lépések frekvenciája (kadencia) sétánál 100–130 lépés/perc, futásnál 150–180 lépés/perc, a gyorsulás amplitúdója pedig 2–6 m/s².

A gyorsulásmérő jelének feldolgozása

A gyorsulásmérő nyers jele zajt és nagyfrekvenciás zavarokat tartalmaz, ezért a feldolgozás első lépése egy aluláteresztő szűrő (low-pass filter) 3–5 Hz-es vágási frekvenciával. Szűrés után kiszámításra kerül a gyorsulásvektor: a = sqrt(x² + y² + z²), amely kivonja a mozgással kapcsolatos gyorsulást, függetlenül az eszköz tájolásától. Ezután az algoritmus lokális maximumokat detektál a jelben — minden maximum egy lépésnek felel meg.

A téves riasztások csökkentése érdekében (például közlekedési eszközön való rázódáskor) további kritériumok alkalmazandók: minimális lépésamplitúdó (általában >1,2 m/s²), minimális intervallum a lépések között (300–400 ms sétához) és a jel periodicitásának ellenőrzése autokorrelációval. Ha a csúcsok közötti időintervallumok szabálytalanok, a sorozat véletlenszerű mozgásként kerül megjelölésre, és nem számít lépésnek.

Lépésdetektálás gyorsulásmérővel

Az alap lépésdetektáló algoritmus küszöbérték-detektálási módszert használ: a rendszer olyan pillanatokat keres, amikor a gyorsulásmérő jele meghaladja a beállított küszöböt, majd visszatér a nyugalmi szintre. Minden ilyen esemény potenciális lépésnek minősül. Két megközelítés létezik: csúcsdetektálás (peak detection) és nullátmenet (zero-crossing). A csúcsdetektálás a jel maximumait rögzíti, a zero-crossing pedig a jel átlagos értéken való áthaladásának pillanatait, ami kevésbé függ a lépés amplitúdójától.

Küszöb módszerek és adaptív algoritmusok

A modern lépésszámláló algoritmusok adaptív küszöböt használnak, amely automatikusan alkalmazkodik a felhasználó járásstílusához. A rendszer elemzi a jel varianciáját az utolsó 2–3 másodpercben, és kiszámítja a dinamikus küszöböt a szórás (RMS) és egy együttható szorzataként. Ez lehetővé teszi a lépések pontos számlálását mind lassú sétánál, mind erőteljes futásnál, anélkül hogy keresztkalibrációra lenne szükség a tevékenységtípusok között.

Lépésszámláló algoritmusok és gépi tanulás

A lépésszámláló modern implementációi nemcsak csúcsdetektálást, hanem gépi tanulást is használnak a mozgásminták osztályozásához. A neurális hálózati modelleket több ezer órányi valós mozgásfelvételen tanítják különböző forgatókönyvekből: séta sík felületen, lépcsőzés, futás, utazás közlekedési eszközön. A bemeneti jellemzők a gyorsulásmérő és giroszkóp idősorai, a kimenet pedig annak valószínűsége, hogy az aktuális jelszegmens emberi mozgásnak felel meg.

Neurális hálózati modellek a tevékenység osztályozásához

A Google Activity Recognition kutatás adatai szerint a konvolúciós neurális hálózatokon (CNN) alapuló modellek 98%-os pontosságot érnek el a séta felismerésében a tesztadatkészleteken. Az Apple eszközökön Core ML-t használnak az Activity Classification modellel, amelyet több mint 100 ezer önkéntes adatain tanítottak. Az optimalizált modellek közvetlenül az eszközön működnek (on-device inference), ami azonnali feldolgozást és a felhasználói adatvédelem megőrzését biztosítja.

swift
import CoreMotion

class PedometerObserver {
    private let pedometer = CMPedometer()

    func startTracking() {
        guard CMPedometer.isStepCountingAvailable() else { return }
        
        pedometer.startUpdates(from: Date()) { data, error in
            guard let data = data else { return }
            
            let steps = data.numberOfSteps.intValue
            let distance = data.distance?.doubleValue
            let floorsAscended = data.floorsAscended?.intValue
            
            // UI frissítése a lépések számával
            DispatchQueue.main.async {
                // self.stepsLabel.text = "\(steps) lépés"
            }
        }
    }

    func stopTracking() {
        pedometer.stopUpdates()
    }
}

Lépésszámláló iOS-en és Androidon: API és lehetőségek

iOS-en a lépésszámláló eléréséhez a Core Motion keretrendszer CMPedometer osztálya használható. A CMPedometer nemcsak a lépések számát, hanem a megtett távolságot, az emeletek számát (emelkedők), a járás tempóját és az aktivitási időt is biztosítja. Az adatok elérhetők valós időben (startUpdates) és bármely múltbeli időszakra (queryPedometerData) is. A mozgás-koprocesszor (M-sorozat) hardveresen dolgozza fel a szenzoradatokat, ami 80%-kal csökkenti az energiafogyasztást a szoftveres feldolgozáshoz képest.

Androidon a lépésszámlálóval való munka két hardveres szenzoron keresztül valósul meg: TYPE_STEP_COUNTER (halmozott lépésszámláló a rendszerindítás óta) és TYPE_STEP_DETECTOR (esemény generálása minden lépéshez). A TYPE_STEP_COUNTER nem igényel kalibrációt és nem fogyaszt processzor energiát — az adatok hardveresen frissülnek a szenzorhub szintjén. Az összegyűjtött napi lépésstatisztikák eléréséhez a Google Fit API használható a DataType.TYPE_STEP_COUNT_DELTA rekorddal.

kotlin
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager

class StepCounter(
    private val sensorManager: SensorManager
) : SensorEventListener {

    private var totalSteps = 0
    private var previousSteps = -1

    fun startListening() {
        val sensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER)
        sensor?.let {
            sensorManager.registerListener(this, it, SensorManager.SENSOR_DELAY_NORMAL)
        }
    }

    override fun onSensorChanged(event: SensorEvent) {
        if (previousSteps < 0) {
            previousSteps = event.values[0].toInt()
        }
        val currentSteps = event.values[0].toInt()
        totalSteps = currentSteps - previousSteps
    }

    fun getStepCount(): Int = totalSteps

    override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
}

A mobil lépésszámláló pontossága és korlátai

A lépésszámláló pontossága több tényezőtől függ: az okostelefon elhelyezkedésétől (kézben, zsebben vagy táskában), a tevékenység típusától (séta, futás, lépcsőzés) és a szenzorok minőségétől. Az okostelefon nadrágzsebben hordva a pontosság 93–97%, táskában vagy hátizsákban 70–85%-ra csökken. A felhasználó járásstílusa is befolyásolja a pontosságot: a rövid lépések kis gyorsulási amplitúdóval több hibát okoznak, mint a rendszeres járás.

A mobil lépésszámlálók fő korlátai a következők: a lépések számlálásának képtelensége nagyon lassú mozgásnál (<1,5 km/h), téves riasztások a közlekedési eszközön való utazástól, a pontosság csökkenése alacsony sebességű futásnál (kocogás) és a gesztikulálás hatása beszélgetés közben. A hibák minimalizálása érdekében a modern alkalmazások szenzorkombinációt (gyorsulásmérő + giroszkóp + barométer) és gépi tanulást használnak a műtermékek kiszűrésére. A barométer például segít meghatározni a lépcsőzést és a magasságváltozást, kizárva a hamis lépéseket a liftben.

Gyakran Ismételt Kérdések

Hogyan működik a lépésszámláló a telefonban?

A lépésszámláló a telefonban gyorsulásmérőt használ, amely minden lépésnél rögzíti a gyorsulást. Az algoritmus elemzi a gyorsulási csúcsokat három tengely mentén, kiszűri a zajt, és meghatározza a lépések számát. A modern modellek giroszkópot és gépi tanulást is használnak a pontosság növelése és a tevékenység osztályozása érdekében.

Mennyire pontos a lépésszámláló az okostelefonon?

Az okostelefon nadrágzsebben hordva a pontosság normál sétánál eléri a 95–97%-ot. Táskában vagy hátizsákban a pontosság 70–85%-ra csökken. A járásstílus és a felület típusa is befolyásolja a pontosságot — a egyenetlen terep akár 10–15%-os hibát is okozhat.

Működhet a lépésszámláló internet nélkül?

Igen, a lépésszámláló teljesen autonóm módon működik internetkapcsolat nélkül. Minden számítás az eszközön történik a beépített szenzorok segítségével. Internetre csak a fitneszalkalmazások felhőszolgáltatásaival való adatszinkronizáláshoz vagy az útvonal térképének megjelenítéséhez lehet szükség.

Miért mutat a lépésszámláló különböző számokat a különböző alkalmazásokban?

A különböző alkalmazások különböző algoritmusokat használnak a szenzoradatok feldolgozásához, a lépésdetektálási küszöböket és a szűrési módszereket. Egyes alkalmazások a nyers gyorsulásmérő adatok alapján számolják a lépéseket, mások a rendszer API-kon (TYPE_STEP_COUNTER) keresztül, és a különbség a számlálásban elérheti a 10–15%-ot.

Hogyan lehet hozzáférni a lépésszámlálóhoz egy Android alkalmazásban?

Androidon a lépésszámláló eléréséhez használja a TYPE_STEP_COUNTER érzékelőt a Sensor API-n keresztül — ez az eszköz utolsó újraindítása óta számolt halmozott lépésszámot biztosítja. Egy adott nap lépéseinek eléréséhez integrálja a Google Fit API-t a TYPE_STEP_COUNT_DELTA adattípussal.

Összefoglalás

  • Lépésszámláló (pedometer) — a mobileszközök funkciója, amely a MEMS gyorsulásmérő és gépi tanulási algoritmusok adatai alapján határozza meg a lépések számát.
  • A lépésszámlálás fő módszere a csúcsdetektálás és nullátmenet a gyorsulásmérő jelében, ezt követő műtermék-szűréssel és adaptív küszöbbel.
  • A modern implementációk konvolúciós neurális hálózatokat használnak a séta, futás és lépcsőzés osztályozására akár 98%-os pontossággal.
  • iOS-en a lépésszámláló elérése CMPedometer (Core Motion) segítségével, Androidon a TYPE_STEP_COUNTER és Google Fit API használatával történik.
  • A hardveres lépésszámlálás a szenzorhub szintjén nem ébreszti fel a fő processzort, 80%-kal kevesebb energiát fogyasztva a szoftveres feldolgozáshoz képest.
  • A lépésszámláló pontossága az eszköz elhelyezkedésétől függ: nadrágzsebben — akár 97%, táskában — 70–85%. Az egyenetlen terep és a lassú járás szintén csökkenti a pontosságot.
  • A hibák minimalizálása érdekében szenzorkombinációt alkalmaznak: gyorsulásmérő + giroszkóp + barométer, ami lehetővé teszi a hamis lépések kiszűrését közlekedési eszközön való utazáskor és a lépcsőzés érzékelését.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is