如何确定在DTW算法中使用哪个stepPattern

时间:2015-04-01 19:48:16

标签: r algorithm image-processing comparison

我对使用DTW算法的stepPattern感到有点困惑。

我必须承认,一个月前我不知道该算法是否存在。

所以故事从特定类型的图像比较开始。 正如您在下面看到的,我选择从图像中提取“时间”系列数据的方式。

enter image description here

这个想法是在播种时将所有叉子的距离调到第一个叉子。因此,对于两个不同的图像,您有两个不同的距离值数组。 这个想法的关键点是这两个数组的值彼此对应。

由此,我的意思是两个数组的第一个值是从第二个左叉到第一个主叉的距离(如图中所示的数字1),等等......

通过使用这些值,我使用R package来使用DTW算法。

这是我想要你的意见的地方。我试过两种方式:

A)不对称

我使用了它,因为我从我读过的东西中理解,如果你有相应的值要检查,你可以使用非对称stepPattern。要比较第一个图像的值1和另一个图像的值1,第一个图像的值2与另一个图像的值2等等...

首先我运行

dist = dtw(F,K1,keep=TRUE,step.pattern = asymmetric)

然后我把它改成那个

dist = dtw(K1,F,keep=TRUE,step.pattern = asymmetric)

这两个不同的执行给我带来了不同的距离值(dist$distance)。我不喜欢这样,但是我理解后者必须预期结果,因为该方法仅通过i值(x轴)改变(如果我错了,请纠正我)。

B)Symmetric1

之后我决定以不同的方式运行

dist = dtw(F,K1,keep=TRUE,step.pattern = symmetric1)

dist = dtw(K1,F,keep=TRUE,step.pattern = symmetric1)

返回相同的距离值(dist$distance)。

如您所知,还有不止那些stepPatterns。那么基于我应该为我的案例选择stepPattern应该是什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

您最好的选择可能是symmetric2模式,具有以下理想特征:

  1. 它是众所周知且常用的
  2. 它是对称的,你可以理解的属性
  3. 它是可规范化的,因此您可以比较不同长度的路线。
  4. 其他模式缺少一个或多个上述属性。