ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

Kinect for Windows SDK beta で遊んでみた 〜 MS Kinect SDK のドライバで OpenNIを動かす 〜 #shibuya_ni

MSの公式Kinect SDKを導入するにあたって、一つ注意したい点が「OpenNIと共存できないこと」です。
理由は公式SDKとOpenNIのドライバが競合するためで、これを解消する動きが本家のMLで議論されていました。
この問題が今朝ほど解決されたようなので、さっそく試してみました


なぜか、日本語のReadmeがあるので、Authorを調べてみたら、「なりきりウルトラマンセブン」や「なりきりかめはめ波」を公開している@さんのモジュールなんですね。すばらしいモジュールにただただ感謝です。。。

README_ja

1. これは何?

先日Microsoftから公式Kinect SDKのBeta版がリリースされました。
これはKinectハッカーにはうれしいニュースですが、残念ながら、
公式SDKをインストールすると、ドライバの衝突のため、OpenNI上で
作られた従来のKinectハックが動かなくなってしまいます。

この残念な状況を打開するため、公式SDKのドライバをOpenNI上から
使えるようにする実験モジュールがこのkinect-mssdk-openni-bridgeです。

このモジュールをインストールすると、Depthノード、Imageノード、
Userノードが公式SDK上で(なんとなく)動作するようになります。

2. インストールとアンインストール

2.1 ダウンロード

既にバイナリパッケージまたはソースコードリポジトリのコピーを
入手しているならば、本節を飛ばしてインストールに進んでください。

そうでなければ、バイナリパッケージを次のURLからダウンロードし、
どこかに展開してください。
https://www.assembla.com/code/kinect-mssdk-openni-bridge/git/nodes/release/

もしソースコードに興味があるならば、次のURLにあるソースコード
リポジトリにgitでアクセスすることができます。
https://www.assembla.com/code/kinect-mssdk-openni-bridge/git/nodes

2.2 インストール

OpenNIをインストールした上で、install.batを実行してください。
Windowsのユーザーアカウント制御(UAC)が有効になっている場合、
バッチファイルを右クリックして「管理者として実行」してください。

デバッグ版をインストールするには代わりにinstall-debug.batを
実行してください。

正しくインストールされたかどうかはOpenNIのユーティリティniRegを
-lオプションをつけて呼び出すことで確認できます。本モジュールの
名前が表示されていれば成功です。

なお、この手順をわかりやすく説明した記事をkaorun55さんに
書いていただきました。合わせて参照してください。
http://d.hatena.ne.jp/kaorun55/20110627/1309193339

2.3. アンインストール

uninstall.batを実行してください。UACが有効になっている場合、
上と同様に「管理者として実行」してください。

3. 使い方

DepthノードとImageノードは何もしなくても自動的に動作します。
Userノードは設定XMLファイルに次のように<Query>を記述してください。

<OpenNI>
    ...
    <ProductionNodes>
        ...
        <Node type="User" name="User1">
            <Query>
                <Name>MSRKinectUserSkeletonGenerator</Name>
            </Query>
        </Node>
        ...
    </ProductionNodes>
</OpenNI>

4. ライセンス

LICENSE.TXTを見てください。

Enjoy!
Tomoto

さっそく試してみる

必要なもの
インストール
  1. Visual C++ Expressをインストール
  2. MS 公式 SDKをインストール
  3. MS 公式 SDKのサンプル「SkeletalViewer」を実行する
  4. OpenNIをインストール
  5. kinect-mssdk-openni-bridge-0.0.zipを解凍したフォルダにあるinstall.batを管理者権限で実行する
  6. OpenNIのサンプル「NiViewer」を実行する

まとめ

というわけで、あっさり公式SDK環境でOpenNIが動いてしまいました。
次回は公式SDKとOpenNIをまぜたプログラムを作ってみようと思います