特集:Kinect開発の選択指針(前編)

Kinectハック最新動向と、Kinect/Xtionの比較

中村 薫
2011/12/20
Page1 Page2

デバイスの比較

 それでは本題に入ろう。まずはデバイスの比較を行う。

 基本的な性能は大差ないが、細かい部分が少しずつ異なる。それぞれの違いを、機能別に表にまとめた。

項目 Kinect Xtion PRO LIVE Xtion PRO
RGBカメラ ×
距離カメラ(ユーザー・トラッキング、
スケルトン・トラッキングなど含む)
マイク ○(4つ) ○(2つ) ×
音声方向の取得 × ×
チルト・モーター × ×
外部電源 不要 不要
対応ライブラリ Kinect SDK
OpenNI(非公式)
OpenNI OpenNI
商用利用 ×
表 1 デバイスの比較

 それぞれの機能の差異について、簡単に説明しよう。

RGBカメラ

 RGBの画像データを取得できるカメラだ。KinectおよびXtion PRO LIVEに搭載されている。ユーザーの動きをそのまま表示するための用途に利用する。

 Xtion PROにはRGBカメラが搭載されていないが、アプリケーションを開発するうえで、搭載されているRGBカメラの限界に当たることが多いので、最初から非搭載という選択肢は筆者にとってはうなずける。

距離カメラ

 距離を認識するためのカメラで、Kinectなどの特長となる機能であるため、比較するすべてのデバイスに搭載されている。この距離カメラから取得されるデータを利用して、ユーザー/スケルトンのトラッキングを行い、ジェスチャを認識する。また、距離カメラのデータは3次元で取得できるため、距離だけでなく幅や高さを測ることもできる。

 距離カメラでユーザーを認識する利点は、RGBカメラでの認識で多い色での判別に比べて、距離で判別するために精度がより向上することだ。

マイク

 KinectおよびXtion PRO LIVEに搭載されている。ただしKinectは4つ、Xtion PRO LIVEは2つとなっている。音声を取得して処理することが可能で、音声認識などに利用できる。

音声方向の取得

 Kinectのみ、利用可能。Kinectに搭載されている4つのマイク・アレイを利用して、音声の方向を10度ごと、全体で110度の音声方向を取得できる。音声方向を取得できることで、ユーザーの認識、音声認識から、「誰が」「何を」話しているのかを認識することができる。

 音声方向の取得という機能は、既存のデバイスではなかなか見かけない機能であるため、これを生かしたアプリケーションの登場が期待される。

チルト・モーター

 Kinectのみ、利用可能。Xboxでゲームをする際に、ユーザーの調整で使用される。アプリケーションで利用する局面は多くないと思われるが、Kinect独自の機能として挙げられる。

外部電源

 Kinectのみ、外部電源が必要。Xtionは外部電源が不要でUSBバス・パワー動作する。サイズや重量ではXtionがKinectに対して優位に挙げられることが多いが、それは外部電源が不要だからだ。Kinectはチルト・モーターの動作のために外部電源が必要とのこと。

対応ライブラリ

 OpenNIは基本的にどのデバイスでも利用が可能だ。ただしKinectでOpenNIを使う場合は、別途、OSS(=オープンソース・ソフトウェア)で公開されているドライバをインストールする必要がある。

 またKinectでは、もちろんKinect SDKの利用が可能だ。

商用利用

 Kinectのみ、商用利用が不可。Xtionは商用利用可能であるため、現在、商用利用する場合にはXtionを選択する必要がある。ただし、Kinect SDKの商用版がリリースされれば、Kinectの商用利用についても言及されると考えている(前述のとおり、PC Kinectが商用可能で、現在のKinectは商用不可のままの可能性もあるが)。

【コラム】環境の組み合わせについて

 移り変わりが早い今年のKinect関連。環境もさまざまあるので、筆者がKinectを追ううえで構築している環境を紹介する。

Kinect + Kinect for Windows SDK ベータ2: Kinect開発には必須。仮想環境に構築できないのが残念。
Xtion PRO LIVE + OpenNI 1.2.0.7: Xtion PRO LIVEと同梱されているOpenNIの組み合わせ。Xtion PRO LIVEの動作確認用。
Xtion PRO LIVE + OpenNI 最新版: OpenNIの動作確認用。バージョン1.4.0.2から骨格の追跡にポーズが不要になったため、1.2.0.7の環境と併用している。
Kinect + OpenNI 最新版: 非公式ではあるが、必要な環境。


【コラム】描画関係のライブラリ

 筆者は現在、さまざまな環境での事例を作っている最中であるが、そこで試したことのあるKinect SDKおよびOpenNI回りの描画ライブラリをまとめておこう。

OpenCV: C++開発者向け。筆者が最もよく使用するライブラリ。筆者自身は描画回りしか今のところ利用できていないが、画像処理を行う機能が豊富にそろっている。
OpenGL: C++開発者向け。OpenNIのサンプルで使用されているライブラリ。高度なグラフィック処理を行える。初心者には敷居が高いと感じている。
Windowsフォーム: C#開発者向け。筆者の著書のC#サンプルでは、この技術を利用している。旧来のC#のWindowsアプリケーション開発手法。OpenNIのC#サンプルは、Windowsフォームをベースにしている。
WPF: C#開発者向け。現在取り組んでいる。次の世代の標準になるWindowsアプリケーション開発手法。Kinect SDKのC#サンプルは、WPFをベースにしている。
XNA: C#開発者向け。ゲーム向きのライブラリ。音声を扱うときに重宝した。

 後編では、ライブラリの比較を行う。end of article


 INDEX
  特集:Kinect開発の選択指針(前編)
  Kinectハック最新動向と、Kinect/Xtionの比較
    1.Kinectハックに関するキーワード/この数カ月のKinectハック界隈の動き
  2.デバイスの比較
 
  特集:Kinect開発の選択指針(後編)
  Kinect for Windows SDKベータ2とOpenNIの比較
    1.ライブラリの比較
    2.機能の比較


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間