robo8080のブログ

ロボット製作や電子工作など。

Kinect + ProcessingでFingerTrackingの実験

2012年12月10日 | Processing

KinectとProcessingを使ってFingerTrackingができないか調べていたところ、これを見つけたので試してみた。  

Kinect + Processing + SimpleOpenNI を使ったFingerTracking  

FingerTracker

私は通常 Kinect SDK を使用しているので、Kinect SDKとOpenNIを共存させることができるこれを使用した。

kinect-mssdk-openni-bridge

(Kinect SDKもProcessing から使えるようになったようだ。ただ、OpenNIのNiteに相当するものがないのが残念。追記2012.12.12)

ということで、

 Kinect SDK v1.6 + kinect-mssdk-openni-bridge + OpenNI + SimpleOpenNI + Processing

という構成で ”FingerTracker” を試してみたら、ちゃんと動いた。

この構成で動くというのが逆にすごい... (^^;)

 

 

◆動かしてみてわかった問題点

・Depthを二値化して指を検出するための閾値が固定であるため、認識しやすい位置に手を固定しておかなければならない。

・手の動きの自由度を上げるために閾値を大きくすると、体の一部や周囲のものを誤検出する。 

 

動的に閾値を変える良い手が無いか考えていたところ、いい案を思いついた。

OpenNIには手の平を検出するHandTrackingの機能がある。

SimpleOpenNI Niteのサンプルプログラム"Hands"

 

これで手の平の座標を求め、その周囲のDepthデータだけを”FingerTracker”へ喰わせてやれば...

実験してみたところうまく行った。

動画はこちら。 

KinectでFingerTrackingの実験

 

◆使用した環境

・Windows 7 64ビット版

・Kinect Xbox版

・Kinect for Windows SDK v1.6

・OpenNI 1.5.2.23 32ビット版

・Processing 1.5.1

・SimpleOpenNI 0.27

・kinect-mssdk-openni-bridge-v1.6.0.0-for-1.5.2.23

 

―以上―


 

ここを参考にさせていただいた。

Kinect for Windows を OpenNI で使う(Windows 7 限定)

関連するリンク

Kinect for Processing Library (Kinect for Windows SDKをProcessingから使えるようにするライブラリ)


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。