我的Android手势识别应用程序需要分类方法吗?

时间:2013-09-13 03:00:10

标签: android machine-learning

我正在开发一个识别加速度计手势的Android应用程序。目前我只是利用动态时间扭曲来获得输入手势与数据库中大约200个独特手势数据之间的最小距离。我的应用程序循环遍历数据,并将输入手势与数据库中的手势数据逐一进行比较。它可以找到最小的距离并在5秒钟内识别手势的平均值。问题是我可以加快识别时间可能是半秒或更短吗?我是否必须使用像KNN这样的分类方法并将其与dtw方法结合使用?一个或多个参考文献将是apreciated ..

3 个答案:

答案 0 :(得分:0)

您目前正在做的是1NN。换句话说,您已经在运行最简单的KNN方法。 K = 1。改变K不会加速任何事情,它可以改变结果的质量。为了加快这个过程,您可以考虑使用两种方法:

  • 使用一些索引方法,这将降低基于距离的搜索的计算复杂性。这个问题被称为最近邻搜索(NNS),甚至是wikipedia provides quite a lot of information关于其加速的问题;
  • 使用完全不同的分类方法,构建一个更简单的模型(可能是SVM甚至是某些决策树 - 它取决于您的实际数据)。

答案 1 :(得分:0)

我的直觉是Locally Sensitive Hashing可以很容易地应用。例如,您可以通过随机选取K点并检查时间序列是否“太远”来设计它们。

我会详细介绍这个想法,但我找到了这篇论文:http://dtai.cs.kuleuven.be/events/MLSA13/papers/mlsa13_submission_13.pdf,它似乎使用了更简单的LHS函数。

所以这是一条出路,希望它成功。你也可以实现一个简单的分类器并接受它的答案,如果它非常肯定这个手势(我会在这里推荐SVM,如上面的答案),如果它接近边界决定寻找最近的邻居。

答案 2 :(得分:0)

即使在手机上也能以10,000赫兹的速度进行DTW,请参阅此视频

http://www.youtube.com/watch?v=d_qLzMMuVQg

埃蒙