我正在开发一个识别加速度计手势的Android应用程序。目前我只是利用动态时间扭曲来获得输入手势与数据库中大约200个独特手势数据之间的最小距离。我的应用程序循环遍历数据,并将输入手势与数据库中的手势数据逐一进行比较。它可以找到最小的距离并在5秒钟内识别手势的平均值。问题是我可以加快识别时间可能是半秒或更短吗?我是否必须使用像KNN这样的分类方法并将其与dtw方法结合使用?一个或多个参考文献将是apreciated ..
答案 0 :(得分:0)
您目前正在做的是1NN。换句话说,您已经在运行最简单的KNN方法。 K = 1。改变K不会加速任何事情,它可以仅改变结果的质量。为了加快这个过程,您可以考虑使用两种方法:
答案 1 :(得分:0)
我的直觉是Locally Sensitive Hashing可以很容易地应用。例如,您可以通过随机选取K点并检查时间序列是否“太远”来设计它们。
我会详细介绍这个想法,但我找到了这篇论文:http://dtai.cs.kuleuven.be/events/MLSA13/papers/mlsa13_submission_13.pdf,它似乎使用了更简单的LHS函数。
所以这是一条出路,希望它成功。你也可以实现一个简单的分类器并接受它的答案,如果它非常肯定这个手势(我会在这里推荐SVM,如上面的答案),如果它接近边界决定寻找最近的邻居。
答案 2 :(得分:0)