Tag: 加速度计

训练Android应用使用机器学习识别传感器模式

我希望我的应用程序能够检测携带手机的用户何时下落,只使用加速计数据(因为它是所有智能手机上唯一可用的传感器)。 我首先试图实现一种算法来检测自由落体(加速度计的总加速度接近于零,接着是由于地面打击引起的高加速度,以及当用户刚刚在楼下快速走动时短暂静止以消除误报),但是有一个很多方法下降,而且对于我的算法实现,我总是可以找到一个情况下,没有检测到跌倒,或者在哪里跌倒被错误地检测到。 我认为机器学习可以帮助我解决这个问题,通过学习来自不同设备的很多传感器值,不同的采样率,什么是跌倒,什么不是。 Tensorflow似乎是我所需要的,因为它似乎可以在Android上运行,但是虽然我可以找到教程来使用它进行离线图像分类( 在这里例如 ),但我没有找到任何帮助,使模型学习模式来自运动传感器的值。 我试着学习如何使用入门页面使用Tensorflow,但未能,可能是因为我不太流利的Python,并没有机器学习的背景。 (我在Java和Kotlin上流利,并习惯于Android API)。 我正在从社区寻求帮助,帮助我使用Tensorflow(或机器学习中的其他东西)来训练我的应用程序,以识别跌倒和其他运动传感器模式。 提醒一下,Android会以随机速率报告运动传感器值,但会为每个传感器事件提供纳秒级时间戳,可用于推断自上次传感器事件以来流逝的时间,并将传感器读数作为浮点数提供对于每个轴(x,y,z)都是32位)。

根据Kotlin的Android手机计算位置,依靠小动作来模拟蝴蝶网

在Kotlin,我正在开发一个用户移动手机来控制虚拟蝴蝶网的程序。 位置信息发送给MQTT broker ,UI应用程序将获取数据。 我的问题是准确地显示的位置。 如果手机是捕手的网络部分,那么理想情况下,当您移动手机时,使用加速度计,我应该知道您正在移动哪个方向,并且可以发送该数据。 理论上很好,在实践中更难。 为了减少代码,我只想知道手机上移了多少,意识到它至多会移动两三英尺,所以如果它移动六英寸,我想告诉用户界面它移动了六英寸。 我正在尝试根据手机的方向在开始部分进行调整。 我如何准确地跟踪位置信息? override fun onSensorChanged(sensorEvent: SensorEvent?) { val mySensor = sensorEvent!!.sensor if (mySensor.type == Sensor.TYPE_ACCELEROMETER) { var mSensorZ: Float= 0F when (mDisplay?.getRotation()) { Surface.ROTATION_0 -> { mSensorZ = sensorEvent.values[2]; } Surface.ROTATION_90 -> { mSensorZ = sensorEvent.values[2]; } Surface.ROTATION_180 -> { mSensorZ = sensorEvent.values[2]; } Surface.ROTATION_270 -> { […]