在这篇文章中,通过使用动态时间规整(DTW)鼠标浏览器了解如何开始动态时间扭曲。
DTW鼠标浏览器是一个在Processing中创建的应用程序,我们可以在其中绘制不同的手势。它将为Wekinator提供两个输入,并且可以接受最多9个类的1个DTW输出。在今天的例子中,我们将使用1个DTW输出和3个类。我们发送的输入是x和y值。
我们将在鼠标浏览器中记录三个手势,Wekinator将根据这些手势进行训练。然后,我们将鼠标浏览器设置为运行模式,并在再次绘制手势时,Wekinator将告诉我们绘制了哪个手势。
什么是动态时间扭曲?动态时间规整(DTW)是最初为语音识别开发的时间序列对齐算法。其目的在于通过迭代地扭曲时间轴来对齐两个特征向量序列,直到找到两个序列之间的最佳匹配(根据合适的度量)。
DTW允许系统比较两个信号并寻找相似性(来自ICfans),即使一个信号与另一个信号有时间偏移。它对语音识别的适用性在于能够查找已知的语音伪像,无论说话者的说话速度如何。
处理方DTW鼠标浏览器是在Processing中制作的,可以从Wekinator的示例页面获得。它将为Wekinator提供2个输入,并接受Wekinator的1个DTW输出。
从那里下载'DTW鼠标浏览器'。解压缩并在Processing中运行草图。“处理”窗口类似于下图所示的窗口。
DTW鼠标浏览器将向Wekinator发送2个输入,并接受1个DTW输出。
打开Wekinator,将输入设置为2并输出为1,然后选择输出类型为3个类的“所有动态时间扭曲”。同样,我们可以设置最多9个类,但在此IC项目中仅使用3个。
现在按下一个按钮,将打开一个新窗口:
在处理过程中记录手势现在,我们需要在Processing窗口中绘制3个手势。
打开处理窗口,然后按键盘上的“1”。它将选择第一个类并绘制垂直线。这将输出1。
按键盘上的“2”选择“2”类并绘制一条水平线。这将输出2。
按键盘上的“3”选择“3”类并画一个圆圈。这将输出3。
我们已经记录了三个姿势,现在是时候训练Wekinator并运行程序了。单击运行按钮,它将开始查找您刚刚录制的手势。
现在,当您在Processing窗口中绘制手势时,Wekinator会将这些手势与录制的手势相匹配,并告诉我们绘制的手势。