算法来比较来自加速计的三维数据信号 [英] Algorithms to compare 3D signal data from accelerometers

查看:112
本文介绍了算法来比较来自加速计的三维数据信号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我工作,涉及到运动数据的分析,比较和给相似性得分的一个项目。我在点在我的应用程序,我可以收集和显示数据,现在需要一些算法的方向。

I'm working on a project that involves the analysis of motion data, to compare and give a similarity score. I am at the point in my application where I can collect and display data, and now need some algorithmic direction.

<强>目标:给出2(X,Y,Z)的时间序列从加速度计记录的运动数据,计算一个相似性得分(实数,最终0到100)给出了如何的量度类似的议案是,从录音。

Goal: given two (x,y,z) time series of motion data recorded from the accelerometer, compute a similarity score (real number, eventually 0 to 100) that gives a measure of how similar the motion was, from the recordings.

例如:下面是我的软件(在他们的相似性得分应该是和我的意见)一些图像,使数据的想法我收集了:

Examples: Here are some images from my software, giving an idea of the data I've collected (and my opinions on what their similarity scores should be):

这应该得分相当不错

也许这应该得分差

应该不是成绩好

pretty的可怕

好吧得分

pretty的好

不太好

的一些想法:我在音频处理和计算机视觉的一些经验,所以我最初的想法来自那里。开始我想的低通滤波(Q:。这LPF有很多)的信号,然后试图动态时间规整。我想用这种方式比较X1到X2,Y1到Y2等。然而,这对我来说似乎丢失重要信息,例如如何X1系列涉及Z1相比,如何X2涉及Z2系列。

Some ideas: I have some experience in audio processing and computer vision, so my initial ideas come from there. To start I was thinking of low-pass filtering (q: which LPF? There's a lot.) the signals, then trying dynamic time warping. I would compare x1 to x2, y1 to y2, etc in this way. However, this seems to me to lose important information such as how the x1 series relates to z1, compared to how x2 relates to z2 series.

另一个想法我一直在使用 MFCCs 在做分析的频域,也许吧。这是从我了解语音识别的常用技术。

Another thought I had was doing analysis in the frequency domain, perhaps using MFCCs. This is a common technique in speech recognition from what I understand.

还有的办法拧,机器学习。我可以存储模板的手势和运行某种魔力,使他们辨认。这不是我的preference(我想能够拉这一关,而无需万吨训练数据),但如果有人知道一个计划,在那里你像哦,这会的绝对工作做好,然后确定。

There's also the approach of "screw it, machine learning." I could store templated gestures and run some sort of magic to make them recognizable. This is not my preference (I'd like to be able to pull this off without requiring tons of training data), but if someone knows of a scheme where you're like "Oh this would definitely work well", then sure.

软件+实现::该项目正在中完成的的Java ,然后我的数据的格式为:

Software + Implementation: This project is being done in Java, and my data is in the form:

float[150] x1;
float[150] y1;
float[150] z1; //note: x2,y2,z2 will be of different length, but similar 

所以它应该是pretty的易于使用,如果有人想建议图书馆基于算法的建议来使用。

So it should be pretty easy to work with, if anyone wants to recommend libraries to use based on algorithm suggestions.

其他:有方向的问题。然而,我的计划是把样本作为参考之一,并轮换一次 X [I],Y [I],其他的Z [I] 点与之相匹配的。然后做比较。这个目前的计划是利用这个旋转公式:罗德里格斯'旋转式这是否有道理?

Other: There is the issue of orientation. However, my plan is to take one of the samples as the "reference" and rotate every x[i],y[i],z[i] point of the other to match it. Then do the comparison. Current plan for this is using this rotation formula: Rodrigues' rotation formula Does this make sense?

推荐答案

您可以计算出使用动态的时间与一个最近邻分类规整分类精度。考虑你的数据只有三个层面,这是一个比较简单的问题。使用动态时间规整是一个很好的方向。此外,您还可以使用欧氏距离​​。当你的数据集是大动态时间规整超过欧氏距离的进步将会消失。

You can calculate the classification accuracy using dynamic time warping with One Nearest Neighbor classifier. Consider you data only has three dimensions, this is a relatively easy problem. Using dynamic time warping is a good direction. Also, you can use Euclidean distance. The advance of Dynamic Time Warping over Euclidean distance will disappear when your dataset is large.

由于只有3个轴,有两种方法,或者使用从单个轴数据,或利用从所有轴数据。由于采用全轴更容易产生错误,我会建议使用从仅仅是一种单轴数据。例如,使用数据从x轴,计算的准确度。然后,你做同样的事情从Y和Z的数据。在最后,你会得到一个精度矩阵。在矩阵的每一行中,有分类结果对不同的活动。在矩阵的每一列,你将看到在不同的轴线相同的活性的分类结果。这是训练过程。在测试过程中,您可以按照从轴,让精度最高的结果。

Since there are only 3 axes, there are two methods, either using data from a single axis, or using data from all axes. Since using all axes is more likely to generate errors, I would suggest using data from just a single axis. For example, use data from x axis, calculate the accuracy. Then you do the same thing for data from y and z. In the last, you will get a accuracy matrix. In each row of the matrix, there are classification result for different activities. In each column of the matrix, you will see the classification result for the same activity in different axis. This is the training procedure. In the testing procedure, you can follow the result from the axis that gives the highest accuracy.

此外,存在与上述方法中的问题。它仅计算对结果的先验知识(在过去的训练阶段),它并没有在测试阶段的新证据(最近邻距离)计算。

Moreover, there is a problem with the above method. It only counts on the result in the prior knowledge (the past training phase), it does not count in the new evidence (the nearest neighbor distance) in the testing phase.

我在提交论文谈论如何使用这两种先验知识和多维时间序列分类的新证据。它仍在审查中,所以我不能与你分享。否则,我可以给你的文件,供大家参考。

I have a paper in submission talking about how to use both the prior knowledge and the new evidence in multi-dimensional time series classification. It is still under review, so I can not share it with you. Otherwise, I can send you the paper for your reference.

这篇关于算法来比较来自加速计的三维数据信号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆