Kinectハッカソンに参加してきました

この前は、「Kinect(など)ハッカソン Vol.3」に参加してきました。

午前中はハンズオンってことで、@kaorun55さんによるKinectのお話などを聞きました。


自分が買ったのはXBox用のKinectセンサーですが、これは商用利用が禁止されているもの。
(と言うか、これしか知らなかった)

Xbox 360 Kinect センサー

Xbox 360 Kinect センサー

これとは別でASUSが販売している「Xtion PRO」というのもあり、中身のセンサー類はXBox用とほとんど同じで、一部の機能がないだけとのこと。
そして、一番の違いは商用利用が可能であることと、MSのKinectSDKは使えない。
詳しくはこちらの記事
12月現在、Xtion PROはMSのKinectセンサーより8千円ほど高いので、勉強程度で遊びたいなら、MS版で十分でしょう。
けど、Xtion PROはUSBだけで駆動することが可能なので、サイズがかなりコンパクト。
AC電源を必要としないので、ちょっとうらやましい。。


午後は自分が作りたいものを作ろうってことだったのですが、分からない事だらけだったので、まずはサンプルをイジってました。
使ったサンプルはNISimpleViewerです。
(サンプルはインストールしたOpenNIの中にあります。 〜/OpenNI/Samples/NiSimpleViewer)

手順としては、
XCodeを開いて新規のプロジェクトを作成します。
利用するプロジェクトのテンプレートは、Mac OS X > Application > Command Line Tool です。

適当にプロダクト名を入力して、保存先を指定します。

次にBuild Settings の編集です
・ヘッダーの追加。
Search Paths > Header Search Paths に
/usr/includes/ni/ (OpenNIのヘッダー)
/usr/includes/nite/ (Niteのヘッダー)
を指定します。
(それぞれインストール時に設定した実際のパスを指定)



・ライブラリの指定。
Linking > Other Linker Flags に
/usr/lib/libOpenNI.dylib (OpenNIのライブラリ)
/usr/lib/libXnVNite_1_4_1.dylib (Niteのライブラリー)
を指定します。
(それぞれインストール時に設定した実際のパスを指定)


次はBuild phases の編集です。
このサンプルでは、
OpenGL
GLUT
を使いますので、それぞれをプロジェクトに追加します。

Kinectセンサーの何を利用するかを指定するためのXMLがあるのですが、それをコピーします。
コピーするファイルは、〜/OpenNI/Data/SampleConfig.xml です。
これを、プロジェクト直下に置きます。

続けて、
NiSimpleViewer/GL
NiSimpleViewer/glh
もプロジェクト内にコピーします。


最後に、NiSimpleViewer/NiSimpleViewer.cpp の中身を main.cpp にコピペします。

後は、ビルドして、エラーが出なければOKです。

実行した結果はこちら。

オーバレイ表示

深度表示

ビデオの表示


なんだか、kinectの勉強だけではなく、OpenCVOpenGLの勉強も必要で、未知の領域なだけに時間がかかりそう(汗)