特集:Kinect開発の選択指針(前編)Kinectハック最新動向と、Kinect/Xtionの比較 中村 薫2011/12/20 |
Page1
Page2
|
マイクロソフト社のXbox360用コントローラであるKinectセンサー(以降、「Kinect」とする)が発売されて1年が経った。この1年で、Kinectは単なるゲーム・コントローラにとどまらず、さまざまな用途に活躍の幅を広げようとしている。その中心となるのがKinectハックだ。Kinectハックとは、KinectをPCやMacなどのコンピュータに接続し、開発者がKinect用のライブラリを通してさまざまなアプリケーションを開発することだ。
本稿では、現在、ソフトウェア・ライブラリとしてKinectハックに利用でき、活動や情報量が多い「Kinect for Windows SDKベータ2」と「OpenNI」の比較、また、ハードウェアとして「Kinect」およびKinect互換のデバイスである「Xtion(エクシオン)」の比較を行う。それぞれの特徴を把握し、自身に最適な選択をするための一助としていただければ幸いだ。
これらの情報は移り変わりがとても早いが、本記事の内容は執筆時点(2011年12月上旬)での最新情報である。
■Kinectハックに関するキーワード
現在のKinectハックで中心となるキーワードと、その概要を挙げる。本稿では、これらについての比較を行う。
●ハードウェア
○Kinect
「Kinectハック」というくらいなので、Kinectが真っ先に挙がる。Kinectはハードウェアとして、RGBカメラ、距離カメラ、4つのマイク・アレイ(=横に4つ並んだマイクのこと)、チルト・モーター(=首を上下に振るためのもの)を装備している。また、距離カメラを利用して、人の認識や、人の骨格の認識、ジェスチャの認識など、今までは高価なハードウェアを購入しないとできなかったことが、Kinectという1万数千円のデバイスでできるようになった点が革新的だ。
Kinect |
○Xtion
まだご存じない読者も多いかもしれないが、Kinectハック界隈(かいわい)で注目を集めているデバイスである。「Xtion」には、Xtion PROおよびXtion PRO LIVEの2種類があるが、本稿ではそれぞれ固有の性能について述べるとき以外はXtion PRO/Xtion PRO LIVEをまとめて「Xtion」と記載する。
Xtionは台湾ASUS社から販売されているデバイスで、OpenNIの公式デバイスという位置付けだ。Kinectとほぼ同じPrimeSense社のチップが搭載されており、RGBカメラ(Xtion PRO LIVEのみ)や距離カメラを装備し、距離カメラを利用したユーザーの認識や骨格の認識が可能となっている。
Xtion PRO |
Xtion PRO LIVE |
●ソフトウェア
○Kinect for Windows SDKベータ2(Beta 2)
Kinectハックの盛り上がりを受けて、マイクロソフト社がリリースしたWindows用のSDK(ソフトウェア開発キット。現在はベータ版)である。「Kinect for Windows SDKベータ2」(以降、Kinect SDK)はその名のとおり、Windows専用のSDKであり、マイクロソフト社が提供していることから、Kinectのハードウェアとしての機能をすべて使用できる。「Kinect SDK」についての詳細は、下記の記事を参照のこと(記事はKinect SDKのベータ1を対象としている)。
・ベータ1からベータ2での変更点
ベータ1からベータ2では商用化を見据えてか、Kinectの挿抜(=コンピュータに接続しているUSBプラグを差したり、抜いたりすること)や複数接続されたときの動作が改善されている。
ベータ1ではKinectのインスタンスを直接生成していたが、ベータ2では現在接続されているKinectの中からインスタンスを選択するようになっている。また、Kinectが挿抜されたときにイベントが発生するようになっており、正しく実装すればアプリケーション実行中に、接続されているKinectの数が変更されても正常に動作するようになった。また、Kinectが接続されていない状態で起動してもアプリケーションを動作させられるようになった。
○OpenNI
当初からKinectハックの中心的な位置にあるソフトェア・ライブラリ(SDK)である。Kinectに搭載されているチップの製造元であるPrimeSense社、OpenCVのWillow Garage社、ASUS社などが協力して提供している。Kinectを制御できるライブラリではあるが、Kinectは公式に対応したデバイスではない。OpenNIの公式対応デバイスはXtionである。
一般的に「OpenNI」といった場合には、オープンソース・ソフトウェアであるAPIとしての「OpenNI」、骨格検出などを行うミドルウェア「NITE(ナイト:クロースド・ソース)」、KinectやXtionをコンピュータから利用するためのドライバである「Sensor」の3つを合わせたものを指すことが多い。本記事でも特に断りがない場合の「OpenNI」は、その3つを組み合わせたものを指す。
OpenNIの導入についてはこちらの記事を参照のこと。
○本稿のSDKのバージョン
本稿の対象バージョンは、Kinect SDKが「ベータ2(1.0.0.45)」、OpenNIが「1.4.0.2」とする。
■この数カ月のKinectハック界隈の動き
Kinect関連の情報は、現在どんどん更新されているので、ここで一度、最新のKinect関連情報を整理する。
●OpenNI Arenaがオープン
OpenNIを用いて開発されたアプリケーションの発表場所として「OpenNI Arena」がオープンした。OpenNIのサイトからたどることができ、さまざまなアプリケーションが登録されている(2011年12月現在で50以上)。バイナリ・ファイルだけでなく、ソース・コードも併せてダウンロードできるものも多く、自分が開発したいアプリケーションを探して、参考にすることもできそうだ。登録されているアプリケーションはUnityとC#で開発されたゲームが多いが、中にはPrimeSense社の社員が開発した、学習用の入門アプリケーションもあるので、ぜひ一度目を通すことをお勧めする。
筆者もアプリケーションを1つ登録してみたが、レートを付けてもらったり、アプリケーションに対する問い合わせが来たりと、開発者として登録するメリットもありそうだ。
また、このサイトにある「NI Apps Guidelines」(英語)は、OpenNIアプリケーションを開発する際に気を付けるポイントが書かれているので、開発者であれば一度は目を通しておきたいドキュメントだ。
●Xtion PRO LIVEが日本で発売
2011年8月に発表、発売されたXtion PRO LIVEであるが、購入はアメリカとカナダに限られていた。しかし2011年11月に日本でも発売することがアナウンスされ、多くのOpenNI開発者がXtion PRO LIVEを購入している様子がTwitter上で伺えた。
Xtion PRO LIVEはOpenNIで実装されているすべてのAPIを最大限に利用できるデバイスだ。今まで動作報告の無かった音声も含め、RGBカメラ、距離カメラ、ユーザー・トラッキング(=ユーザーの追跡)、スケルトン・トラッキング(=骨格の追跡)、各種ジェスチャ機能、すべてが利用できる。
また、USBバス・パワーで動作し、サイズもKinectと比べてかなり小さいので、持ち運びにはとても重宝している。
●OpenNIでスケルトン・トラッキングを行う際に、キャリブレーション・ポーズが不要に
OpenNI開発者にとって、待ちに待ったリリースである。今までのOpenNIではスケルトン・トラッキングの際に「Psi」ポーズをとってキャリブレーション(=トラッキングのための調整)する必要があったが、2011年11月にリリースされた「OpenNI 1.4.0.2」でこのポーズなしにスケルトン・トラッキングが可能になった。この更新によって、また1つ、Kinect SDKとの差がなくなったのである。
さらに、「上半身のみ」「下半身のみ」「頭部と手のみ」のトラッキングも選択することができ、座ったままでのスケルトン・トラッキングも可能になっている。
●商用版のKinect for Windows SDK
現在のKinect SDKは「非商用に限る」という制約があるが、商用可能なKinect SDKがいよいよ2012年早々にリリースされる予定とのこと。すでに200社ほどでパイロット・プロジェクトが始まっているようで、12月に入ってその成果のようなアウトプットがいくつか見えてきている。
【筆者の予想】
- ベータ1からベータ2での変更点を見る限り、今の状態から大幅に変わることは考えにくいので、ジェスチャの認識機能などは提供されず、デバイスの機能+αを扱えるライブラリになるのだろう
- 技術サポートなどが付加されるようなコメントもあるため有償となり、後述するPC用Kinectと同時にリリースされるのではないか
- ベータ1からベータ2および後述するスタートアップ支援のスケジュールから、リリース時期は2012年4〜5月くらいではないか
●Windows PCに最適化された、新しいKinect
Windows PCに最適化された、新しいKinectのアナウンスもある。現在のKinectは、そもそもXbox以外に接続してはならないというライセンス制限があるので、これに対処する一環でもあると考えている。またKinectのUSB接続は、本来であれば旧Xboxのためであるので、USBも一体化されたデバイスになるのではないか。
【筆者の予想】
- サイズはXtion PRO LIVEと同等
- 外部電源は不要になる(=USBバス・パワーを採用)
- 現在のKinectで、外部電源の要因になっていたチルト・モーターの削除
- 商用版SDKとのセット販売
●Kinectアプリケーションのスタートアップ支援
マイクロソフト社が、Kinectを使用したアプリケーションのスタートアップを支援するというもの。2012年1月まで応募が行われ、選考を経て優秀なスタートアップには、3カ月間のマイクロソフト本社での技術、法務などの支援が行われる。この支援の後には有償製品としてのリリースが行われるので、遅くとも3カ月経過した5月までにはKinectの有償プログラムがリリースされているだろうというのが筆者の考えだ。
それでは次のページから、ハードウェア・デバイスが持つ機能の比較をしていこう。
INDEX | ||
特集:Kinect開発の選択指針(前編) | ||
Kinectハック最新動向と、Kinect/Xtionの比較 | ||
1.Kinectハックに関するキーワード/この数カ月のKinectハック界隈の動き | ||
2.デバイスの比較 | ||
特集:Kinect開発の選択指針(後編) | ||
Kinect for Windows SDKベータ2とOpenNIの比較 | ||
1.ライブラリの比較 | ||
2.機能の比較 | ||
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|