kinectの骨格追跡データで行動を認識する
概要
- Kinect for Windows SDK 入門4:骨格トラッキングと3D表示で、骨格追跡データの扱い方は分かったので、kinectとk近傍法で物体認識で作ったコードを使い回して、物体認識ならぬ行動認識みたいな事をしてみた。
方法
- 10秒間、kinectの前で歩く、走る、スキップする、などの行動を行い、0.1秒ごとの骨格の動きを学習させる。
- それぞれのjoint同士の距離で学習させ、少しだけ汎用性を効かせる。
- タイマーの使い方
- タイマーはDispatcherTimerを利用。
DispatcherTimer timer; timer = new DispatcherTimer(DispatcherPriority.Normal); timer.Interval = new TimeSpan(0, 0, 0, 0, 100); timer.Tick += new EventHandler(timer_Tick);
- このように宣言、初期化し、0.1秒ごとに呼ばれるtimer_Tick関数も作る。
private void timer_Tick(object sender, EventArgs e) { actionTimeRemain -= 1; if (actionTimeRemain <= 0) { timer.Stop(); } }
デモ
- 歩き×2、走り×2、スキップ×2と学習させ、それぞれを正しく認識できるかテストした。