论坛» 嵌入式开发» FPGA

如何用机器学习编程动态时间扭曲

助工
2018-11-27 11:04 1楼

在这篇文章中,通过使用动态时间规整(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中运行草图。“处理”窗口类似于下图所示的窗口。

image2.png

将Wekinator的DTW鼠标浏览器示例下载到Processing中。

设置Wekinator侧

DTW鼠标浏览器将向Wekinator发送2个输入,并接受1个DTW输出。

打开Wekinator,将输入设置为2并输出为1,然后选择输出类型为3个类的“所有动态时间扭曲”。同样,我们可以设置最多9个类,但在此IC项目中仅使用3个。

image4.png

根据上面屏幕截图中的设置设置Wekinator。

现在按下一个按钮,将打开一个新窗口:

image3.png

Wekinator中的窗口记录项目的输出。

在处理过程中记录手势

现在,我们需要在Processing窗口中绘制3个手势。

打开处理窗口,然后按键盘上的“1”。它将选择第一个类并绘制垂直线。这将输出1。

按键盘上的“2”选择“2”类并绘制一条水平线。这将输出2。

按键盘上的“3”选择“3”类并画一个圆圈。这将输出3。

我们已经记录了三个姿势,现在是时候训练Wekinator并运行程序了。单击运行按钮,它将开始查找您刚刚录制的手势。

image1.png

单击屏幕左上角的记录/运行按钮以记录输出。

现在,当您在Processing窗口中绘制手势时,Wekinator会将这些手势与录制的手势相匹配,并告诉我们绘制的手势。


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]