如何解決kinect在動態動作識別開發的問題?

作為一個kinect開發新手, 想和大家求討寫建議... 我在用Kinect在Processing 環境下 製作一個通過動作識別來完成一個多視窗的視頻轉換的界面. 可是在動作識別環節中 遇到了很大的問題. 剛開始想打算通過 機器學習, 可是沒有找到可用的SDK, 外加自己技術有限, 無法開始.... 然後又打算開始 動態動作識別的環節, 大家能指點下 對在Processing環境下使用kinect 可用使用哪些Library 或者 要往哪個方向展開 動態動作識別呢?


以下是我實踐過的一個方案:

把Kinect骨骼幀提供的25個節點的X,Y坐標與頭部X,Y坐標做減法,將50個差值看做是一個向量,它表示了一個Pose。然後記錄某個標準的Pose序列作為一個Action模板,使用DTW演算法將模板和你的實時動作進行匹配(向量間距離測量我用的是餘弦相似度,這樣可以消除近大遠小及人體高矮胖瘦不同帶來的差異)。

DTW演算法運行效率比較高,而且簡單易學,想學的話可以看下面這個教程:

HMM學習筆記_1(從一個實例中學習DTW演算法)


謝。以前見過一個p5的動作學習的庫,名字忘了,搜關鍵字時候帶上pose應該能搜得到,因為很久不用p5了所以不太關注這方面的資源了。


Kinect v1, Kinect v2的SDK都自帶人體Pose Recognition的,Intel RealSense的SDK有人手的Motion Capture。它們的實現方法的確是Machine Learning,參考http://research.microsoft.com/pubs/145347/BodyPartRecognition.pdf。自己訓練需要大量標記過的數據,如果沒有積累很難完成。當然還有一個流派是通過Optimization或者Inverse Kinematics來實現Motion Capture,使用這種方法的第三方的庫我沒有見到過,只能自己擼了,前提是了解常見Optimization方法,ICP,forward and inverse kinematics,可以參考Carnegie Mellon University和Jin-Xiang Chai。Processing我不了解,似乎是一個Rendering和Visualization的框架,這和你使用什麼方法做Pose Recognition或者Motion Capture是沒有關係的,所以你在做系統設計的時候,可以將這兩部分分開考慮。


推薦閱讀:

有人了解kinect的銷售渠道么?
微軟自主研發的 Xbox One Kinect 2.0 體感技術跟上代機型所使用 PrimeSense 的方案有何不同?
Kinect 會發展成為新的人機界面嗎?

TAG:Kinect | 交互設計 | 機器學習 | Processing編程語言 | kinect編程 |