ソフトウエア開発の実際

 Kinect向けソフトウエアの開発に利用できるSDKには、今のところOpenNI注4)とMS SDK注5)の2種類がある。それぞれの利点を図1に簡単にまとめた。本稿では、2011年7月時点での最新バージョンである「OpenNI 1.3.2.1(およびNITE 1.4.0.5)」と「Kinect for Windows SDK beta」を基に解説する。

注4) http://www.openni.org/

注5)http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/

図1 OpenNIとMS SDKのそれぞれの利点
図1 OpenNIとMS SDKのそれぞれの利点
[画像のクリックで拡大表示]

自由に利用できるOpenNI

 OpenNIは、KinectをMicrosoft社と共同開発したPrimeSense社などが中心となって実装しているオープンソースのライブラリ。Kinectを含めたNIデバイス全般を扱うことができる。ライセンスはGPLおよびLGPL。開発環境としては、NIデバイスのドライバやインタフェースを担当するセンサ・モジュール(KinectでOpenNIを利用する場合には、有志がオープンソースで公開している「SensorKinect」)、およびユーザー/スケルトン・トラッキングや各種ジェスチャーを認識できる「NITE」を、OpenNIと併せてインストールするのが一般的である。本稿では、OpenNI、SensorKinect、NITEを合わせた環境をまとめて「OpenNI」と呼ぶことにする。

 動作環境は、Windows XP/Vista/7、Ubuntu、Mac OS X、Android(ARMプラットフォーム向け、OpenNI 1.3.2.1で対応)と多岐にわたる(表1)。クロスプラットフォームでKinectを利用することが可能だ。開発言語はC言語、C++、C#、Java(OpenNI 1.3.2.1で対応)である。加えて、さまざまな環境で利用できるようにするラッパーを有志が開発している。筆者が確認している言語・環境としては、JavaScript、Python、Flashがある。早期からKinectに取り組んでいる技術者にはWeb関連の開発者が多いため、Webブラウザーとの連携事例が多いことも特徴である。

表1 OpenNIとMS SDKの主な仕様
表1 OpenNIとMS SDKの主な仕様
[画像のクリックで拡大表示]