2012-09-20 16 views
0

是否有任何(noob)文档(举例)解释如何使用DTW(Dynamic time warping)和使用Kinect处理?我需要在Simple Open-NI中记录(like this)手势和使用后记录的手势。我下载了KinectSpace code (pde file),但我不明白它是如何工作的。如何使用DTW技术和Kinect处理?

wikipedia

int DTWDistance(char s[1..n], char t[1..m], int w) { 
    declare int DTW[0..n, 0..m] 
    declare int i, j, cost 

    w := max(w, abs(n-m)) // adapt window size (*) 

    for i := 0 to n 
     for j:= 0 to m 
      DTW[i, j] := infinity 
    DTW[0, 0] := 0 

    for i := 1 to n 
     for j := max(1, i-w) to min(m, i+w) 
      cost := d(s[i], t[j]) 
      DTW[i, j] := cost + minimum(DTW[i-1, j ], // insertion 
             DTW[i, j-1], // deletion 
             DTW[i-1, j-1]) // match 

    return DTW[n, m] 
} 

但是,什么是 “返回DTW [N,M]” 是什么意思?

对于每个draw()我需要阅读所有手势来评估?

请不要只发送工具包链接。谢谢。

谢谢!

+0

返回最有可能意味着DTW @ n,m的值。这是一个int。如伪代码的第二行所述。 –

+0

@ AK4749感谢您的重播。好吧,我明白这是一个整数值,意味着来自DTW的结果。但是,我如何使用这个值来评估很多手势呢? –

+0

那么你很可能会在循环中调用它。免责声明:我什么都不知道,只是在那个wiki页面上知道了即将发表的一切。这给你两个序列s&t之间的距离。我假设其中一个将是您的预编程手势,另一个是您记录的手势。使用这个函数来看看它们有多相似。选择确定“相同”性的阈值。 –

回答

1

amnon.owed刚刚在处理论坛发布了这个伟大的教程。也许它可以帮助你:的post

http://www.creativeapplications.net/processing/kinect-physics-tutorial-for-processing/

这儿的一部分:

我最新的CreativeApplications.net教程刚才离开现场。 这是关于使用Kinect与屏幕上的几何体进行交互。使用几个加工文库(SimpleOpenNI,v3ga,Toxiclibs & PBox2D)来实现这种效果。这是一本教程,所以 主要内容由三个完整注释的代码示例组成。这些 示例还将向您展示如何将轮廓点转成 多边形,这对于很多事情都很有用,即使除了2D物理 交互之外也是如此。