machine-learning - 在手势识别任务中如何从加速度计数据的滑动窗口移动到特征向量?

标签 machine-learning gesture-recognition sliding-window

我们有一个应用程序需要能够根据加速度计数据识别简短的手势。

现在,我读了很多关于这个主题的不同论文(其中由 Andrea Mannini 和 Angelo Maria Sabatini 撰写的“从体上加速度计对人类 body 事件进行分类的机器学习方法”似乎是最有用的一篇)并且我对需要做什么有一个清晰的了解(有些步骤可能看起来是错误的,因为我以前没有任何统计/机器学习方面的经验):

  1. 我需要从智能手机沿 3 个轴收集加速度计数据。
  2. 下一步是将数据分为交流分量和直流分量(其中一个与重力加速度有关,第二个与 body 加速度有关)。我需要使用 body 加速组件,因为该组件似乎可以为事件识别问题提供更好的结果。
  3. 下一步是从 body 加速度分量中提取一些特征 - 要提取的特征尚未确定,因为这不是问题的一部分。
  4. 我需要获取特征向量列表并训练一个分类器(我很可能会使用隐马尔可夫模型,因为该分类器似乎是顺序分类任务的最佳选择,而手势识别任务似乎是属于顺序分类任务)。
  5. 之后我可以评估和完善。

现在,这些论文提到了一件事,我还无法掌握,这就是滑动窗口。据我了解,我需要获取传入的加速度计数据流并将其分成一组重叠的系列,例如

Data from 0s to 1.0s<br/> Data from 0.5s to 1.5s<br/> Data from 1.0s to 2.0s<br/> ...<br/> Data from n s to (n+1.0)s

我不明白的是每个窗口都有加速度计读数的数量:

x0, y0, z0<br/> x1, y1, z1<br/> x2, y2, z2<br/> ...<br/> xn, yn, zn

如您所见,这不是向量,而是矩阵。但我需要一个特征向量来训练我的分类器,那么如何将矩阵压缩到向量中?

我对这些论文的作者如何做到这一点有一些想法:

  1. 我们可以根据每个三元组创建一个特征向量:[featureA based on x0, y0, z0; featureB based on x0, y0, z0; featureA based on x1, y1, z1; featureB based on x1, y1, z1; ... ; featureB based on xn, yn, zn] .
  2. 或者我们可以以某种方式对窗口内的加速度计读数进行平均,这样我们最终只有一个三元组 xa, ya, za (“a”代表“平均”),然后创建一个特征向量,如下所示:[featureA based on xa, ya, za; featureB based on xa, ya, za] .

我不喜欢第二个想法,因为即使对于小窗口,对加速度计数据读数进行平均也可能会导致数据丢失和分类器行为不足。也许论文作者的意思类似于第一个想法,但我不确定。

我对滑动窗口如何创建的理解是否正确(即想法#1)?

最佳答案

首先,您的问题的两部分都是正确的,但并不完全正确。

我要说两件事:

  • 首先,滑动窗口旨在为时间 t 的数据提供上下文。根据数据流,您可以将 future 放入其中,也可以不放入。但这个想法确实是将接近的数据放在同一个窗口中以创建一个新的数据集,其中每行都是一个窗口。话虽如此,从窗口中提取特征与从 3 个坐标中提取特征不同。例如,您可以尝试计算运动速度(通过使用前一点)。所以这两个选项都是有效的!您必须从单个点(例如极坐标)获取特征,但还必须从最后一点获取速度、移动等......这些都是很好的特征。

  • 每个坐标都可以是一个特征。您不需要挤压矩阵,因为它实际上与您的第一个选项或第二个选项没有任何不同。您的加速度计为您提供数据,您可以从中提取特征来创建新的数据集,但无论您做什么,最终都会得到一个矩阵。

关于machine-learning - 在手势识别任务中如何从加速度计数据的滑动窗口移动到特征向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51983494/

相关文章:

machine-learning - 如何在pytorch中计算网络中所有参数的hessian矩阵?

python - Python cv2中的皮肤检测和背景扣除

matlab - 具有滑动窗口元素的矩阵

python - 跳过滑动窗口

mysql - 同一张表的记录之间的日期差异

lucene - 如何设计自动QA系统?

python - Sklearn Pipeline : How to build for kmeans, 聚类文本?

python - ValueError at/image/Tensor Tensor ("activation_5/Softmax:0", shape=(?, 4), dtype=float32) 不是这个图的元素

iphone - UILongPressGestureRecognizer 给出奇怪的结果

algorithm - 如何找到手绘多边形的边和顶点