是否有任何(noob)文档(举例)解释如何使用DTW(Dynamic time warping)和使用Kinect处理?我需要在Simple Open-NI中记录(like this)手势和使用后记录的手势。我下载了KinectSpace code (pde file),但我不明白它是如何工作的。如何使用DTW技术和Kinect处理?
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()我需要阅读所有手势来评估?
请不要只发送工具包链接。谢谢。
谢谢!
返回最有可能意味着DTW @ n,m的值。这是一个int。如伪代码的第二行所述。 –
@ AK4749感谢您的重播。好吧,我明白这是一个整数值,意味着来自DTW的结果。但是,我如何使用这个值来评估很多手势呢? –
那么你很可能会在循环中调用它。免责声明:我什么都不知道,只是在那个wiki页面上知道了即将发表的一切。这给你两个序列s&t之间的距离。我假设其中一个将是您的预编程手势,另一个是您记录的手势。使用这个函数来看看它们有多相似。选择确定“相同”性的阈值。 –