是否有任何(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之間的距離。我假設其中一個將是您的預編程手勢,另一個是您記錄的手勢。使用這個函數來看看它們有多相似。選擇確定「相同」性的閾值。 –