作者:张。、 | 来源:互联网 | 2023-01-12 14:16
我正在开发一个计步器Android应用程序来计算所采取的步数,并使用这些步骤计算所覆盖的距离和燃烧的卡路里.我已经按照教程
在Android中创建一个简单的计步器和步数计数器,并且完全像它一样.它检测传感器检测到运动时的步数.
但它有一些问题:
当我手持设备站在同一个地方,只需移动我的手或给设备一个挺举时,它会检测到更改并增加步数.
如果我用手中的设备移动得非常慢,它就不会检测到变化.
如果我跳,那么它会在柜台中添加几个步骤.
我已经从Play商店检查了一些其他应用程序,但他们没有做这种事情.
我已搜索但无法找到适合的解决方案或教程.任何帮助或建议.谢谢
1> TukeV..:
这里的问题是您的实现不够复杂:它仅检查加速度计数据中是否存在尖峰,并假定该尖峰来自某个台阶。它不知道加速度峰值实际上是从哪里来的:它可能还来自您跳动或摇动设备的原因。
那么如何使它更准确呢?好吧,这是一个非常困难的问题,长期以来一直是科学论文的主题。即使是最复杂的健身追踪器(使用机器学习,信号处理和其他统计方法)也很难确定该步骤何时是真实的,何时只是新手或用户正在使用该设备。
幸运的是,Android确实具有自己的内置步数计数器和步幅检测器,它们比您的示例中的类还要复杂。
因此,除非您真的想学习信号处理和AI(尽管我对阶跃检测的数据科学知之甚少,但我还是极力推荐这样做),否则建议您使用内置的检测器和计数器。