ブログ@kaorun55

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

「Kinectセンサープログラミング」のサンプルをOpenNI1.3.2.1+NITE1.4.0.5に対応しました #openni_book

KINECTセンサープログラミング

KINECTセンサープログラミング

今朝方、OpenNI 1.3.2.1 と NITE 1.4.0.5がリリースされましたので、「Kinectセンサープログラミング」のサンプルをこのバージョンで動作するように確認しました。


また、例によってバイナリ一式はBitBucketにまとめてあります。今回のアップデート用のavin2/SensorKinectはまだありませんが、以前のバージョンで問題なく動作しています。

OpenNI 1.3.2.1 の主な変更点

  • JavaからKinectを操作するラッパーとサンプルが追加された
  • AndroidとARMプラットフォームのサポート
  • NITEのインストール時に、ライセンスの入力がなくなった(Windowsのみ)
  • Contextの生成方法の変更(参照カウンタ方式?)
  • 各種コールバックの名称や型の変更
  • その他、たくさんのバグフィックスメモリリークや速度の改善

コードの主な変更点

変更履歴はこちらです。

おもな変更点は

  • C#でいくつかのdeligateの名前や方が変わった
  • C#でコンテキストの初期化方法が変わった
       // コンテキストの初期化
-      context = new Context(CONFIG_XML_PATH);
+      ScriptNode scriptNode;
+      context = Context.CreateFromXmlFile( CONFIG_XML_PATH, out scriptNode );

まとめ

OpenNIのアップデートは1,4,7月なので、ペース的には3か月周期で、次回は10月でしょうか。
今回の変更確認にあたって、C#キャリブレーションがほぼ一瞬で終わるようになりました。1.1.0.41をあまり触ってないので、今回の更新によるものかは不明ですが、キャリブレーヨンポーズという、MS SDKに対してのデメリットが多少なりとも改善されているようです。


また、AndroidとARMプラットフォームのサポートはXtionを見据えてのことで、JavaラッパーはAndroid用のように感じました。OpenNIの強みはKinectよりも組み込みLinux(Android含む)+Xtionだと思っているので順当なアップデートだと思います。
Javaのコードについては、ざっくり見た感じC#と同じような作りになっているので、C#のサンプルが参考になるかと思います。
Java対応したことで、@さんが楽しいものを作ってくれないかなー、とちょっと期待してます。astah*をKinectで操作するとか:-)