计步算法个人总结

您所在的位置:网站首页 如何计步 计步算法个人总结

计步算法个人总结

2024-07-12 15:49:57| 来源: 网络整理| 查看: 265

在Android4.4 Kitkat 之后,谷歌新增了 Step Counter Sensor 以及 Step Detector Sensor 用于Android 计步。我在网上看了很多大牛的博客,现在计步都分为两个大方向,一是直接就使用上面自带的这个,二是自己造轮子,接下来我就讲讲,如何自己造轮子,也算是对自己近期学习成果的总结。

分析数据源

使用加速度传感器获取到手机加速度的变化,然后通过算法来检测步数。仔细想想平时走路的情景,人体重心的加速度由前向和纵向的两个分量合成, 图片来自网络

合成之后的加速度波形就很规律了,我们只需要检测波峰/波谷,再过滤掉其他的干扰,就能估算出步数了(绝对的加速度需要算上重力加速度,本文后面所说的都指相对的,人体行走时产生的加速度)。 图片来自网络

算法分析 检测波峰

既然目标是检测波峰,那就首先要知道,加速度传感器采样的频率比较高,一般大于30Hz,30Hz是什么概念,正常人走一步的时间内,可以采样大概二十次了,意思是,在一个上升波段中,检查到的加速度会连续增大好多次,同样在下降波段中加速度也会连续减小好多次。于是,从波形图看,检测波峰的方法可以概括为四个条件: - 上一次波形上升状态 - 目前为下降状态 - 到波峰为止,连续上升多次 - 波峰/波谷值在一定范围内

翻译成代码便是下面的 boolean DetectorPeak(float newValue, float oldValue) 方法。

检测步数

分析数据源的时候就已提到,检测到波峰之后,需再滤掉干扰波,比如细微的震动等等,才能判定为一步。于是这里便生成了三个条件: - DetectorPeak() return true - 符合一定的时间差 - 大于一个动态生成的阈值

翻译成代码便是下面的 void detectorNewStep(float values) 方法。

源代码

我就直接上了,也可以在我的 GitHub 获取最新的版本。

/** * 自定义的加速度传感器监听 * 在此处理加速度事件 * 使用方法: * - 外部通过 setOnSensorChangeListener 方法传入回调对象 * - 外部通过复写接口 OnSensorChangeListener 的 onChange() 方法获取步数 * Created by XinZh on 2017/3/1. */ @RequiresApi(api = Build.VERSION_CODES.CUPCAKE) public class MyStepDcretor implements SensorEventListener { private final String TAG = "StepDcretor"; //加速度,用x、y、z轴的三个加速度分量计算出 public static float acceleration = 0; //当前传感器的值 //float gravityNew = 0; //上次的加速度 float lastAcceleration = 0; //是否上升的标志位 boolean isDirectionUp = false; //持续上升次数 int continueUpCount = 0; //上一点的持续上升的次数,为了记录波峰的上升次数 int continueUpFormerCount = 0; //上一点的状态,上升还是下降 boolean lastStatus = false; //波峰值 float peakOfWave = 0; //波谷值 float valleyOfWave = 0; //此次波峰的时间 long timeOfThisPeak = 0; //上次波峰的时间 long timeOfLastPeak = 0; //系统当前的时间 long timeOfNow = 0; //初始阈(yu)值 final float initialThreshold = (float


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭