问题标签 [dtw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
260 浏览

python - 如何使用 dtw 在 python 中对齐多个轨迹?

我的项目有 5 条不同的轨迹。首先我从文件中读取它们,然后通过解析文件将它们保存到列表中。之后,我将这些值数字化。我想分别对齐 x 和 y 坐标,并将 x 和 y 坐标一起绘制在网格上。

这是我到目前为止所做的。我在 python 中使用 dtw 包,但它需要两个列表并将路径作为数组提供。如何将其转换为 5 个不同列表的对齐轨迹?

0 投票
1 回答
524 浏览

c# - C#_使用NAudio实现STFT

这是我第一次尝试在 C# 上分析音频流。没有任何经验,如果您分享您的解决方案,将不胜感激。:)

使用 NAudio(处理音频的 C# 的开源),我尝试将两个音频流与以下阶段进行比较:

  1. 读取 .wav 文件并以 16 位存储在 float[] 中:

    /li>
  2. 传递float[]to SmbPitchShifter(),并设置PitchShift=1(不改变音高),将 osamp 设置为跃点大小,并传递 _buffer。

    /li>
  3. 最后,使用 DTW 算法比较两个 STFT float[]。

现在,我被困在第 2 阶段,并且有一些问题:
1. 我不完全知道我的 sampleRate 是多少,但默认设置为 44100...
2. 在上面的代码之后,我得到了一个新的 _buffer 浮点数[], 在 stage2 1之后使用 dater :https ://imgur.com/a/VLmHJ 因为我知道 STFT 之后的数据应该是 [-1.0, 1.0)。我错过了哪一步,或者我一开始就完全错了?
3.我不知道NAudio用的是什么窗口。NAudio.Dsp.SmbPitchShifter.CS from github 这些困扰了我很久。如您所知,我是音频分析的新手,非常感谢您的建议。祝你有美好的一天。

0 投票
3 回答
992 浏览

r - 为什么在 proxy::dist 中使用自定义邻近函数会使其在 R 中如此缓慢?

我正在尝试将proxy::dist函数与自定义距离矩阵一起使用,但我现在的速度非常慢。

这是我如何调用自定义函数的可重现示例:

这应该计算矩阵中每个时间序列与test矩阵中所有时间序列之间的距离train(每一行都是一个时间序列)。

我的自定义功能是:

问题是,与我使用时相比method="DTW",甚至与我自己计算距离矩阵的情况相比,这非常慢,并且随着时间序列的长度或数量的增长,它会以指数方式变慢。当然,这植根于嵌套循环,但我对效果的规模感到惊讶。我没有看到它一定有另一个原因。

我的问题是,我还能如何实现 mycustomDTW以使其更快,使用proxy::dist


这是我对执行时间的小实验:

60X7(使用proxy::dist+ customDTW)的执行时间

60X70(使用proxy::dist+ customDTW)的执行时间

60X700(使用proxy::dist+ customDTW)的执行时间

60X700(使用proxy::dist)的执行时间

0 投票
1 回答
381 浏览

r - 软件包安装缺少 S3 方法

我正在尝试安装 R 包“dtwclust”。它在 6 个月前对我有用,但现在——可能是由于系统更新、R 更新或包更新——我收到以下错误消息:

...

我正在运行 Ubuntu 18.04。我尝试使用 dependencies = TRUE 参数,并且尝试重新安装 r-base。知道这些缺少的 S3 方法在哪里吗?谢谢!

0 投票
2 回答
537 浏览

python - python中的rpy2动态时间扭曲(dtw) - 窗口不起作用

现已结束的讨论展示了如何在 python 中使用 R dtw 包。这有点笨拙,但是 R dtw 包比当前可用的 python dtw 实现更好而且更好。不幸的是,像 Sakoe-Chiba band 这样的窗口函数在尝试指定“window.size”时不起作用。映射到参数似乎存在问题。注意 ”。” 使用 rpy2 时,in arguments 应该被替换为“_”。但是遵循这个约定,由于某种原因没有使用该参数。

您可以看到错误状态“window.size”丢失,尽管“window_size”明确以 rpy2 方式指定。

0 投票
1 回答
373 浏览

algorithm - 运动数据比较

我正在开展一个项目,该项目涉及比较从加速度计和陀螺仪传感器收集的运动数据。假设我有特定类型的运动(例如投掷球)的数据,并且我手动创建了片段,如下图所示,其中 AB 和 C 表示三个片段。

带段的加速度计数据: 带段的加速度计数据

目标:给定 X 一个我从同一个传感器记录的新时间序列的运动数据,我如何判断每个段的运动与我收集的运动数据 Y 的相似程度。请注意,对于新数据,我没有关于细分的信息。

想法:我知道如何将两个时间序列与互相关或 DTW 进行比较,但在我的情况下,这些片段存在问题。将 DTW 与 1-KNN 应用以从我的集合中找到(X 的)“最近”时间序列,然后将 Y_nearest 的每个段与 X 进行比较,这是一个好主意吗?如果我没有,我该如何进行比较关于 X 运动数据段的信息?使用机器学习算法有更好的方法吗?

0 投票
1 回答
3951 浏览

python-3.x - numpy矩阵上的并行for循环

我正在查看joblib示例,但我无法弄清楚如何在矩阵上执行并行 for 循环。我正在计算矩阵行之间的成对距离度量。所以我在做:

其中dist_fun需要两个向量并计算距离。我怎样才能使这个循环并行,因为调用dist_fun可以相互独立。


编辑:我使用的距离函数fastdtw不是那么快。所以我认为真的想要并行化这个。使用:

我得到 58.1084 秒的执行时间,并使用:

我得到 116.36 秒并使用:

我得到 55.62 秒。在这里N=33。是否scipy自动使用所有可用内核?


编辑:我想我已经找到了使用该软件包的解决方法,但是在发布我认为有效的方法之前multiprocessing,我会留下未回答的问题,让joblib人员做出回应。

0 投票
0 回答
532 浏览

python - R R中的DTW包用于不同长度的序列

我在 R 的列表中有多个不同长度的序列。我想构建 DTW 距离矩阵以供层次聚类使用。当我在 R 中运行以下命令时:

我得到以上错误。我没有 NAN 或缺失值,但它们的长度不同。我知道 matlab dtw 可以支持不同长度的序列。谁能建议我如何在 R 中解决这个问题?

另外,为了计算所有观察集之间的 DTW 距离,我应该为每两个数据系列编写一个 for 循环,或者 R 或 Python 中是否有任何命令可以计算给定列表或字典作为输入的距离。

我想获得上述输入的距离矩阵。

0 投票
0 回答
410 浏览

r - 使用 R 包 dtw 耗尽矢量内存

我正在尝试使用 R 包dtw来计算两个数字向量之间的距离。这是我的代码示例:

我将使用已解码的 wav 文件,但这也不起作用,所以我一直在使用这个示例数据。根据这篇文章,我检查以确保我正在运行 64 位版本的 R(我认为我是,因为当我启动 R/R Studio 时,我看到:Platform: x86_64-apple-darwin15.6.0 (64-bit)。我还更改了内存大小(并检查了设置) 在上面的代码中按照这篇文章,但我仍然收到此错误消息Error: vector memory exhausted (limit reached?)

0 投票
1 回答
1261 浏览

python - dtaidistance的distance_matrix_fast函数很慢

我正在使用 Python 包dtaidistance进行快速 DTW 计算。如文档中所述,可以使用以下代码:

计算系列集之间的 DTW 距离度量。我正在使用的时间序列的长度为 3000。总的来说,我的每个数据集大约有 3500 个这些序列。

不幸的是,我无法在相当长的时间内从这个函数中得到任何结果。在我的机器(128 GB RAM、32 个 CPU 内核、4 个 Nvidia GPU)上,我不得不在一天后中止计算。令人惊讶的是,我什至没有看到这个函数的任何输出,即使我将参数“show_progress”(参见源代码)设置为 true。

我在这里做错了什么?非常感谢您的帮助。