|
|
1
22
加速度计将记录由于重力而产生的恒定加速度,加上用户所承受的任何加速度以及噪声。 你需要低通滤波器的样本,以消除尽可能多的无关噪声。最糟糕的噪声通常会比任何可能的人为加速更高的频率。 请注意,当设备没有被用户加速时,唯一的力是由于重力,因此您可以 deduce its attitude 在太空中。此外,当总加速度与1g相差很大时,一定是由于用户加速了设备;通过减去最后一次已知的重力估计值,您可以大致估计用户加速设备的方向和程度,从而获得数据,您可以开始根据已知手势列表进行匹配。 用一个三轴加速度计,你可以检测到当前的俯仰和侧倾,以及设备在直线上的加速度。积分加速度减去重力将给你一个当前速度的估计值,但是由于噪音,估计值将迅速偏离现实;你必须在手势之前/之间/期间对用户的行为进行假设,并引导他们通过你的用户界面,以提供设备没有被加速的点和y你可以重新设定你的估计值并可靠地估计重力的方向。再次整合以寻找位置不太可能在任何有用的时间段内提供有用的结果。 如果你有两个相距一定距离的三轴加速度计,或者一个和一些陀螺仪,你也可以检测到装置的旋转(通过比较加速度矢量,或者直接从陀螺仪);在几秒钟内积分角动量,你将得到一个当前偏航相对于你开始积分时的估计值,但是再次这将迅速偏离事实。 |
|
|
2
7
由于没有人提到现有的库,根据OP的要求,这里是:
〔1〕
https://en.wikipedia.org/wiki/Hidden_Markov_model
|
|
|
3
5
尚未提到的是实际的手势识别。这是最困难的部分。在清理完数据(低通过滤、规范化等)之后,仍然有大部分工作要做。 看看隐藏的马尔可夫模型。这似乎是最流行的方法,但使用它们并不容易。通常有一个预处理步骤。首先做STFT并将得到的向量聚类到字典中,然后将其导入到HMM中。在Java代码中查看JAHMM的Java LIB。 |
|
|
4
1
为了重力和旋转,你必须重新设置基线,这也增加了月亮阴影的意义… 除非设备有稳定的休息时间(唯一作用于它的力是重力),以重置其测量基线,否则您的系统最终会发展出与眩晕相当的功能。 |