2012-09-20 27 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物理 交互之外也是如此。