LoginSignup
4
2

More than 3 years have passed since last update.

みんな大好きOpenNI2でAzure Kinectを動かしてみる

Last updated at Posted at 2019-12-03

3D Sensor Advent Calendar 2019の4日目の記事です。

この記事ではOpenNI2でAzure Kinectを動かすためのOpenNI2 Driverを作ったので紹介します。

OpenNI2とは

OpenNI2とはKinectなどの3Dセンサーを利用するためのオープンソースのソフトウェア開発キットです。
OpenNI2はKinect v1のセンサーを作っていたPrimeSenseなどが中心となり開発していましたが、PrimeSenseがAppleに買収され現在は開発がストップしています。しかしながら、クロスプラットフォームで動作して様々な3Dセンサーで使用できることから今なお広く利用されています。

OpenNI_Logo4.png

OpenNI2 Driverとは

OpenNI2はDriverと呼ばれる規定の入力処理をセンサーごとに実装することで、デフォルトではサポートしていないセンサーであってもOpenNI2で扱うことができます。最近ではIntel RealSenseやASUS Xtion 2、Orbbec Astraのような最新のデバイスでもOpenNI2 Driverが提供されています。

OpenNI2 Driver for Azure Kinect

OpenNI2でAzure Kinectを扱うためのOpenNI2 Driverを実装しました。
以下のリポジトリからダウンロードして利用することができます。
ライセンスはMIT Licenseなので商用・非商用を問わず自由に利用できます。

How to use K4ADriver?

  1. 以下のファイルをOpenNI2のインストールディレクトリのRedist/OpenNI2/Drivers、およびTools/OpenNI2/Dirversにコピーする。

    • k4adriver.dll ... OpenNI2 Driver for Azure Kinect
  2. 以下のファイルをパスの通っている場所にコピーする。(Azure Kinect Sensor SDKにパスが通っていれば不要?)

    • k4a.dll ... Azure Kinect SDK Runtime
    • depthengine_2_0.dll ... Depth Engine for Azure Kinect SDK
  3. NiViewerを起動して動作を確認する。Azure Kinectから取得したデータが表示さます。
    image.jpg

OpenNI2 Sample

このOpenNI2 Driverは以下のサンプルプログラムで動作することが確認されています。

Need Help

まだすべての機能を完全に実装できていません。いくつかの課題があります。
もし実装できたらプルリクエストを送っていただけると嬉しいです。(上から優先順)

  • ImageRegistrationMode
    ColorとDepthの位置を合わせるImageRegistrationModeの実装が不完全です。
    現状では、Streamを作成する前にImageRegistrationModeを設定しなければ正しく動作しません。
    本来、このモードはいつでも切り替えることができないといけません。*1

  • Video Mode (Resolution, FPS, Pixel Format)
    ColorやDepthなどの解像度、フレームレート、フォーマットの設定ができません。
    現状では、これらの設定は固定になっています。

  • Multi Device
    現状では、このOpenNI2 Driverで複数のデバイスをサポートすることができていません。

  • NiTE2 Support
    これはおまけですが、NiTE2をサポートすることができていません。
    RealSenseのOpenNI2 Driverではサポートできているため、実装できないわけではなさそうです。
    しかし、NiTE2はクローズドソースのため不明な点が多く難しいです。

まとめ

OpenNI2でAzure Kinectを動かすためのOpeNI2 Driverを実装して公開しました。
新規開発に利用するには勧めませんが、様々な過去の資産を動かす用途には適していると思います。

明日12/5(木)は…誰が書くか決まってません(´・ω・`)


*1 そのため、PCLのOpenNI2GrabberはImageRegistrationModeが正しく動作しない。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2