【问题标题】:How can I use machine learning to convert orientation sensor data into movement events?如何使用机器学习将方向传感器数据转换为运动事件?
【发布时间】:2019-06-11 19:31:54
【问题描述】:

我构建了一个基于带有一些传感器的微控制器的设备,其中一个是方向传感器,它目前提供有关 x、y、z 的俯仰、偏航、滚动和加速度的信息。我希望能够在设备运行良好时检测到移动“事件”......移动。

例如,我想检测一个“重新定位”事件,该事件基本上由一系列其他事件组成 - “向上”(捡起)、“移动”(在空中移动到其他点)、“向下”(设备放回)。

由于我刚刚开始弄清楚如何使它成为可能,所以我想问一下我是否得到了正确的想法或浪费了我的时间。

我目前的想法是,我使用我探测到的数据来创建一个数据集,并尝试使用机器学习来检测每个元素是否属于我要检测的事件之一。所以基本上我拿了这个设备,先在桌子上转了几圈,然后拿起了几圈,然后在空中移动了几下,最后放下了几圈。这生成了一组具有如下结构的数据:

yaw,pitch,roll,accelx,accely,accelz,state
-140,178,178,17,-163,-495,stand
110,-176,-166,-212,-97,-389,down
118,-177,178,123,16,-146,up
166,-174,-171,-375,-145,-929,up
157,-178,178,4,-61,-259,down
108,177,-177,-55,76,-516,move
152,178,-179,35,98,-479,stand
175,177,-178,-30,-168,-668,move
100,177,178,-42,26,-447,stand
-14,177,179,42,-57,-491,stand
-155,177,179,28,-57,-469,stand
92,-173,-169,347,-373,-305,down

[...]

最后一个“状态”列是我添加的 - 我在每个测试运动类型之后添加了这个,然后重新排列了行。

我通过这种方式获得了大约 450 条记录,我的想法是使用机器学习来预测来自正在运行的设备的每条记录的“状态”列,然后我可以将结果排队,如果在短时间内“ up" 事件占多数,我可以认为设备正在被拾取。

也许不是将每个读数用作数据行,我宁愿取最后 10 个读数(假设)并尝试预测每列会发生什么 - 即,如果我知道最后 10 个偏航读数是我移动期间的变化device up 我宁愿使用这些数据 - 因此 6 列中每一列的 10 个读数作为行处理,然后我有 6 个结果 - 结果类型的比率再次可以检测在这些过程中发生的“运动”事件10 个读数。

我目前大约 30% 参加了在线 ML 课程并且很享受它,但我真的很想听听更有经验的人的一些 cmets。

我的想法是一个合理的解决方案,还是我完全不了解如何使用 ML?如果是这样,我应该使用哪些资源来开始自己的工作?

【问题讨论】:

    标签: python machine-learning sensors


    【解决方案1】:

    你重新组合阅读的想法似乎很有趣。但这一切都取决于您获得记录的频率以及您计划如何将它们分组。

    如果您每 10-100 毫秒获得一次记录,那么将它们分组可能是个好主意,因为这有助于获得更准确的数据以减少噪音。您可以取每列的平均值来消除噪音并帮助您的分类器更好地分类您的不同状态。

    否则,如果您每秒都有一个记录,我认为重新组合记录是个坏主意,因为您肯定会将多个操作混合在一起。

    如果有时间,最好的方法是尝试两种方法^^

    【讨论】:

      猜你喜欢
      • 2014-11-06
      • 2016-08-16
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      • 2011-03-28
      • 2018-02-04
      • 1970-01-01
      • 2016-09-02
      相关资源
      最近更新 更多