How to Track Fingers in V2
KINECTでHandGestureをやりたいんだが…
KINECTv2ではVisual Gesture Builderという仕組みが導入されたことで体を使ったジェスチャの検知が非常に簡単に行えるようになりました。 一方で、手のジェスチャに関してはグーチョキパーが組み込みの機能として判別できるものの、それよりも細かいジェスチャを検知しようとすると自分で組み込む必要があります。
Visual Gesture Builderで手のジェスチャを検知しようとしたけれどもできない。どうしたらいいだろう?というのが今回の質問です。
実は幾つか方法がある
「KINECTで手のジェスチャ」というのは結構前から話題になっていまして、実はいくつか実現のための選択肢があります。
- Aiolos for Kinect v2を利用する
Aiolos for Kinect v2はKinect Hachathonで開発されたライブラリで、Metrilus社が開発を行っています。 以下の様な機能が提供されているとともにデモビデオではOKサインを識別するなどのデモを行っています。
- それぞれの指を別々に認識できる
- 指の第1〜第3関節を識別できる
現在はalphaリリースということであくまで experimental 品質であること、 60日 の限定ライセンスであることに同意すればtrial versionを利用することができます。 申し込みページはこちら
- MS Researchの論文を利用する
当然といえば当然ですが、MicrosoftもKINECT(というか深度センサー)を利用してHand Detectionを実現できないか研究しています。 実際に幾つか論文や実装が出ており、以下のようなリソースが利用可能です。
- Realtime and Robust Hand Tracking from Depth (2014)
- Fully Articulated Hand Tracking (2015)
- こちらはまだpaperが出されていない
Realtime and Robust Hand Tracking from Depth (2014)のデモ
デモの見た目としては2015年の論文の方が洗練されていますが、原理的にはどちらも深度センサーを利用したHand Detectionであることが伺えます。 2014年のものは論文も出ていますので、時間が許すのであれば自分で実装してみるのもいいような気がします。 *1
KINECTを利用した手のジェスチャについて調べました。製品レベルのものはまだ存在しないようなのでOSSとかで開発できればバズりそうな感じがしますね :)
*1:2015年の論文は4月頃に公開されるようです