首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用加速度计进行手势识别

如何使用加速度计进行手势识别
EN

Stack Overflow用户
提问于 2008-10-13 20:48:05
回答 4查看 18.9K关注 0票数 19

我的目标是识别安装在太阳黑子上的加速计的简单手势。一个手势可以像旋转设备或以几种不同的动作移动设备一样简单。该设备目前只有加速计,但我们正在考虑添加陀螺仪,如果这将使其更容易/更准确。

有谁有关于如何做到这一点的建议吗?Java中有没有可用的库?你推荐我检出的样例项目?你推荐的论文是什么?

sun spot是一个Java平台,可以帮助您快速构建系统原型。它是使用Java编程的,可以将命令转发回连接到计算机的基站。如果我需要解释更多硬件是如何工作的,请留下评论。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-13 21:17:57

加速度计将记录由于重力而产生的恒定加速度,加上设备受到的任何加速度,以及噪声。

你需要对样本进行低通滤波,以尽可能多地去除不相关的噪声。最糟糕的噪声通常是比任何可能的人类诱导加速度更高的频率。

意识到当设备没有被用户加速时,唯一的力是由于重力,因此你可以在太空中deduce its attitude。此外,当总加速度与1g相差很大时,这一定是由于用户加速了设备;通过减去最近已知的重力估计值,您可以粗略地估计用户正在加速设备的方向和加速程度,从而获得可以开始与已知手势列表进行匹配的数据。

使用单个三轴加速度计,您可以检测当前的俯仰和侧滚,也可以检测设备的直线加速度。集成加速度减去重力将给出当前速度的估计,但由于噪声,估计将迅速偏离现实;您将不得不在手势之前/之间/期间对用户的行为做出假设,并通过您的UI引导他们,以提供设备未被加速的点,您可以重新设置估计并可靠地估计重力方向。再次集成以找到位置在任何有用的时间长度上都不太可能提供有用的结果。

如果你有两个相隔一定距离的三轴加速度计,或者一个陀螺仪和一些陀螺仪,你也可以检测设备的旋转(通过比较加速度向量,或者直接从陀螺仪);在几秒钟内积分角动量将给你一个相对于你开始积分时的当前偏航的估计,但同样,这将很快偏离真实。

票数 22
EN

Stack Overflow用户

发布于 2014-11-02 19:45:39

由于似乎没有人提到OP所要求的现有库,下面是:

http://www.wiigee.org/

为了与Wiimote一起使用,Java 是一个基于的开源实现,用于基于加速度计读数的模式匹配。它使用隐马尔可夫模型1来实现这一点。

它显然被一家名为Thorn Technologies的公司使用,并在这里提到了他们的经验:http://www.thorntech.com/2013/07/mobile-device-3d-accelerometer-based-gesture-recognition/

或者,您可以考虑FastDTW (https://code.google.com/p/fastdtw/)。它的精确度低于常规的DTW2,但在计算上也更便宜,这在嵌入式系统或移动设备中是一个大问题。

1

2

编辑:操作员在其中一条评论中提到,他使用$1 Recognizer的变体完成了他的项目,现场准确率为90%,计算时间为亚毫秒级。他还提到,轮换不是他的项目的标准。

票数 7
EN

Stack Overflow用户

发布于 2009-07-02 03:39:34

还没有提到的是实际的手势识别。这是最难的部分。在清理数据(低通滤波、归一化等)之后,您仍有大部分工作要做。

看看隐马尔可夫模型。这似乎是最流行的方法,但使用它们并不容易。通常有一个预处理步骤。首先进行短时傅立叶变换,并将生成的向量聚类到字典中,然后将其输入HMM。看看google代码中的java lib中的jahmm。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/198982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档