加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

加速度计 – 如何识别Microsoft Band手势

发布时间:2020-12-14 02:08:07 所属栏目:Windows 来源:网络整理
导读:通过手机,我可以向配对的Microsoft乐队发送消息和/或对话,但我想收到乐队给手机的确认.由于似乎没有任何其他方式,我认为我将不得不采取一种姿势,例如用户来回旋转一次手腕,或者可能会晃动他们的手腕.这听起来像是加速度计和陀螺仪的工作.从这些中收集信息应
通过手机,我可以向配对的Microsoft乐队发送消息和/或对话,但我想收到乐队给手机的确认.由于似乎没有任何其他方式,我认为我将不得不采取一种姿势,例如用户来回旋转一次手腕,或者可能会晃动他们的手腕.这听起来像是加速度计和陀螺仪的工作.从这些中收集信息应该很容易,但是在识别手势如一个方向上的手腕旋转然后又回到另一个方向时,任何人都可以建议如何将其识别为有意的手势,而不仅仅是正常的“非手势“动作?

非常感谢任何帮助,

约翰·H

解决方法

首先保存数据并将其绘制为不同类型的图形,以查看是否看到手势的模式.我有一个类似的问题,我想检测用户何时吃了一口,并过滤掉其他手势,如切割,饮用等等.

我记录了1分钟的数据,并且完全按照预定的数量进行了咬合,否则正常进行了相互作用.然后我稍微平滑了数据,并查看图表,看看我是否能看到一个模式,看看我可以使用哪些阈值.

我确定了一些因素:
定义咬合的集合中的读数Nr(必须以16ms间隔超过20)
Y轴上的峰和谷
之间的休息

我用它来创建一个计算,根据用户提供的训练数据找到“终极”阈值,但由于旋转等手势在人与人之间大致相同,你可以预定义阈值,然后让它例如,用户设置灵敏度.

以下是一些图表:

应该说Y数据:)

这个图像可能太模糊了,但这一切都始于一些想法和一些白板,其中包括使用斜率,抛物线计算,加速度随时间变化以及未考虑的内容.蛮力工作最好,或者我只是在数学上吮吸.

摘要

>写下您的手势和所涉及因素的定义
>记录数据
来自加速度计和陀螺仪并绘制一些图表
>寻找常见的模式
>组合一个能产生正确响应的算法
基于输入数据和因素.
>调整和重构.

摇动应该相当容易,只需决定哪种方式(上下或侧面,或两者都允许).设置轴的阈值,并确定在多长时间内有多少交叉点.

手机上的伪代码,原谅丑陋:)有些东西……?:

if(totaltime< maxTime) if(reading.X> something)
?????if(reading.timestamp – itemsForCount.Last().TimeStamp< = maxTimeBetweenShakes)
?????itemsForCount.Add(新项目({….})

if(itemsFourCount.Count> = desiredShakes)
???itemsFourCount.Clear();
if(totaltime> maxTime)
???itemsFourCount.Clear();

灵感:
我已经完成了Leap动作的一些工作,我记得看看他们的js代码,看看他们的几个手势是如何定义的. Here is Js leap motion. C#libs需要反编译,这将是针对lic的.协议.

Hammer.js是一个有趣的OSS,你可以看到如何定义触摸手势,– 查找滑动和旋转.

还有一些值得关注的kinect手势api,但与飞跃不同,因为你通常有一个骨架或点模型可以使用,还有一个坐标视图框.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读