2012-01-31 65 views
6

我正在爲iPhone和Android平臺開發簡單的移動應用程序,我正在尋找能夠在我們使用內部加速度計檢測到某個手勢時觸發某些事件(函數)的算法。我使用的是使用HTML5和JavaScript的Phonegap,它在預設時間間隔(例如,每隔0.04秒)從加速計讀取三個座標(x,y和z)。我寫了一個簡單的函數,它檢測到一個抖動動作,它工作的很好,但它是原始的(它只能檢測抖動,而不是方向) - 我想檢測一些其他的手勢,如: - tilt(to左/右) - 搖向上/向下 - 搖左/右 - 圓周運動 - 上下顛倒 - 等....智能手機加速度計手勢algorightms

是否有人有算法(或至少數學公式/功能)可以根據輸入值(x,y,z和每次調用的時間間隔)計算(檢測)這種手勢?

我要尋找一個在任何編程語言中的任何代碼(我將它改寫成JavaScript自己。在此先感謝!

+0

我知道這個問題是舊的,但你可能要採取從MIT實驗室看看GRT(手勢識別工具包):https://github.com/nickgillian/grt – 2017-05-12 16:26:24

回答

1

你可能想嘗試動態時間規整。示例是here

+1

我檢查了你的例子 - 這隻解釋瞭如何比較兩個一維數組,但在我們的例子中,我們有一個3D數組(x,y,z)以及時間。如果用戶做出一個緩慢的「圓形」手勢,它應該被檢測到相同,如果他使它快2到3倍... – j99 2012-02-01 08:27:09

+0

@ j99我說的例子是說明性的。如果你閱讀鏈接文件,你會發現你可以將DTW擴展到3D數組,沒問題。手勢的速度不應該引起任何問題,翹曲會照顧到這一點。 - – Ali 2012-02-01 08:51:38

+0

@Ali有可能我們有私人聊天嗎?我想問你一些事情,可能是爲了換取水貨。非常感謝。 – 2015-10-21 11:04:15

4

動態時間扭曲(DTW)做得很好,但我建議使用快速動態時間扭曲(Fast DTW)。特別是對於移動場景,FastDTW非常適用! 有關詳細版本,請參閱此研究論文:http://cs.fit.edu/~pkc/papers/tdm04.pdf

編輯:前段時間,我寫了關於在智能家居環境中控制設備的3D手勢的論文。看到它在行動here(也有鏈接到PDF)。我使用FastDTW來識別iPhone上的手勢。

+0

你知道我在哪裏可以找到快速DTW實際應用的實例嗎?我GOOGLE了它,但似乎無法找到任何示例 - 尤其是對於3D數據(x,y,z)與時間相結合。 – j99 2012-02-01 08:32:04

+0

@tilo如果您檢查我給出的鏈接,您會看到我鏈接了本文。 – Ali 2012-02-01 08:35:19

+0

@ j99如果你檢查我給的鏈接,你會發現我也鏈接了這篇論文。 – Ali 2012-02-01 08:35:47

0

如果我可能如此大膽,快速DTW(和相關的,但不同的FTW的櫻井和Faloutsos)不是很好的解決方案。

如果限制翹曲的(a):使用下界DTW儘可能快歐幾里得距離並[b] [C]

  • 精度將提高

    1. 然後(A,B)

    對於約束翹曲FTW和快速DTW比蠻力由於開銷慢(艾拉等人已經表明了這一點)。

    a)Ratanamahatana,C.A。和Keogh。 E.(2004)。關於動態時間翹曲的所有知識都是錯誤的

    b)Xiaoyue Wang,Hui Ding,Goce Trajcevski,Peter Scheuermann,Eamonn J. Keogh:時間序列數據表示方法和距離測量的實驗比較CoRR abs/1012.2789: 2010)

    C)http://www.cs.ucr.edu/~eamonn/LB_Keogh.htm