Kinect for Windows SDKによるアプリ開発のポイント特集・NUIアプリケーション開発を始めよう!(2/3 ページ)

» 2011年08月11日 12時16分 公開
[八木沢篤,@IT MONOist]
※本記事はアフィリエイトプログラムによる収益を得ています

Kinect(Kinect for Windows)とは?

 繰り返しになるが、Kinectセンサーはもともとマイクロソフトの家庭用ゲーム機Xbox 360用のシステムとして、2010年11月に発売された。

 従来の家庭用ゲーム機のように、コントローラのボタンで操作させるのではなく、ジェスチャや体の動きでゲーム画面などを操作するという新しいUIを採用しているのが最大の特徴だ。発売以降、Kinect専用のゲームタイトルも幾つかリリースされているので、実際にプレイしたことのある方も多いだろう。

 今回、このXbox 360用に開発されたKinectセンサーをWindows PC環境で操るためのSDKがリリースされた(前述の通り)。ただし、現在、提供されているβ版にはジェスチャ認識APIが(現時点で)提供されていないなどの一部制約がある。「現状、Kinect for Windows SDKは“β版”であり、まだ開発途上。β版に含まれる機能が全てではなく、今後どんどん進化していく(ゲーム向けの認識機能なども提供)予定なので期待してほしい。ちなみに、同SDKではKinectハックで実現されていなかった音声認識やモータ駆動もサポートしている」と千葉氏。なお、β版は“非商用利用”という制限があるが無料でダウンロード可能だ。

Kinect(Kinect for Windows)とは 画像3 Kinect(Kinect for Windows)とは

Kinectセンサーの特徴

 前述の通り、Kinectセンサーには、赤外線レーザー照射レンズ、カラーカメラ、深度カメラ、4つのマイク、上下可動のモータが内蔵されている。照射した赤外線を深度カメラで、可視光をカラーカメラで撮影。深度カメラで撮影した情報を基に、物体(人)との距離を計測し、さらに関節の位置を推定して人間の骨格を形成(骨格追跡)することができる。その他、登録した言葉の認識や雑音除去、4つのマイクによる音源位置追跡、Kinectセンサーの傾斜角度調節も可能だ。

解像度(深度) 320×240(既定)
解像度(カラー) 640×480(既定)
フレームレート 30フレーム/秒
深度センサー (理論範囲):約0.8〜4.0m 
(実用範囲):約1.2〜3.5m
その他機能 4つのマイク、傾斜モータ
表1 Kinectセンサーの主な仕様

 「カメラ解像度は既定(デフォルト)の値なので、これをもう少し大きくするなどの調整は可能。また、深度センサーで骨格認識をする場合、Kinectセンサーと人との距離は約1.2〜3.5mがベストだが、それ以外の範囲でも認識しないわけではない。ただ、精度が低下してしまうだろう」(千葉氏)。

センサーアレイの構成とストリーム

 Kinectセンサーに搭載されている深度カメラから深度ストリームが、カラーカメラからカラーストリームがそれぞれUSBを経由してホストPC(またはXbox 360)に送られる。同じく、マイクからのオーディオストリームもUSBを経由してホストPC(またはXbox 360)に送られる。「実際にKinectセンサーでやっていることは、撮影してデータを送っているだけ、つまり“目”の役割をしているにすぎない。結局、この後の処理は、PCやXbox 360側のソフトウェアで行うことになる」(千葉氏)。

センサーアレイの構成とストリーム 画像4 センサーアレイの構成とストリーム
センサーアレイの構成 画像5 センサーアレイの構成

Kinectセンサー接続時の注意点

 続いて、千葉氏は、KinectセンサーとホストPCとを接続する際に、注意しなければならない点を紹介した。

 1つは、“PCに接続する場合、USB接続と併せてACアダプターを使用しなければならない”という点だ。特に、注意が必要なのは、Xbox 360 S+Kinectセットを所有する方で、こちらのセットだとUSBケーブル/ACアダプターが付属されていない(Kinectセンサー単体で購入した場合は付属している)。そのため、同セットの利用者は別途用意する必要がある。ちなみに入手方法としては、Microsoft Store(米国のオンラインストア)での購入と、Xbox 360カスタマーサポート(月〜土曜/10〜18時)経由での購入(こちらは日本語でOK)が用意されている。

Kinect Sensor Power Supply 画像6 Kinect Sensor Power Supply
Xbox 360カスタマーサポート 
(月〜土曜/10〜18時)
0120-220-340(携帯電話などからは03-5767-4551)
Microsoft Store http://www.microsoftstore.com/store/msstore/ 
en_US/buy/pageType.product/externalRefID.9A4CFC08
表2 USBケーブル/ACアダプターの入手先

 もう1つの注意点としては、“Kinectセンサーの設置場所と温度”だ。いろいろな用途やアプリケーションでの活用が見込めるKinectセンサーだが、本来家庭用ゲーム機向けに作られた精密機器であるため、「極度に高い温度や通気性の悪い場所などでの利用は控えた方がよい」(千葉氏)とのことだ。

Kinect for Windows SDKのインストール

 ではここで、公開されたばかりのKinect for Windows SDK β版のインストールについて簡単に紹介したい。まず、その入手場所だが、Microsoft ResearchのWebサイト(http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/)にダウンロードページが用意されている。

「Kinect for Windows SDK β版」のダウンロードページ

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



 SDKは、32ビット版と64ビット版の2種類が用意されており、API、サンプルコード、ドライバ、ドキュメントなどで構成され、Windows 7(32/64ビット版)での利用が前提となる。もし、ホストPCにOpenNIなどの非公式のドライバなどが既にインストールされている場合は、あらかじめそれらを削除しておくことをお勧めする。また、「将来的に更新版、正式版がリリースされた際も、古いバージョンをアンインストールしてから新しいものをインストールするようにしてほしい」(千葉氏)。

Download Kinect for Windows SDK beta 画像7 Download Kinect for Windows SDK beta

 なお、詳しいインストール方法などについては、@IT Insider.NETの連載記事「Kinect for Windows SDK(ベータ版)開発入門」でまとめられているので参考にしてほしい。


 さらに、インストール時には当然ながらEULA(End User License Agreement:使用許諾契約)に承諾する必要がある。あくまで研究目的などでの利用が前提であり、商用目的での利用は禁止されている。また、ドライバやランタイム、SDKの再頒布もNGだ。許されるのは、「教育目的での利用の他、無償ソフトウェアの開発、製品のプロトタイプ開発での利用など」(千葉氏)だ。

Kinect for Windows SDKのインストール(1) 画像8 Kinect for Windows SDKのインストール(1)
Kinect for Windows SDKのインストール(2) 画像9 Kinect for Windows SDKのインストール(2)

Kinectの特徴的な機能をデモ動画で確認

 ここからもう少し具体的なKinectの特徴について、千葉氏が披露したデモの様子を交えながら紹介する。

  • 深度情報(奥行き情報)を取得できる 
    (X、Y、Z)を取得。X、Yはピクセル座標、Zはmm単位(16ビットデータの上位13ビット)
  • カラー情報を取得できる 
    RGBやYUV、より高い解像度もサポート
  • プレーヤーセグメントを取得できる 
    認識されたプレーヤーのシルエットを取得(16ビットデータの下位3ビット)
  • カメラフレーム内に入った「人」の骨格を追跡できる 
    体重、体形・体格、肌の色、衣服の色、性別に影響されない。なお、全身の関節位置をリアルタイムに追跡する骨格追跡機能が有効なのは、同時に2人までで、人として認識する数としては最大7人まで有効だ。追跡可能な関節は、「頭」「肩の中央」「左肩」「右肩」「左肘」「左手首」「左手のひら」「右肘」「右手首」「右手のひら」「背骨の中心」「腰の中央」「左足の付け根」「右足の付け根」「左ひざ」「左足首」「右ひざ」「右足首」「左足」「右足」の20カ所となる
認識できる骨格情報 画像10 認識できる骨格情報(出典:Tech Fielders セミナー 東京「Kinect for Windows SDK をつかおう!」のセッション資料)
  • 音声認識できる 
    Microsoft Speech Platform」「Kinect for Windows Runtime Language Pack」を利用することで音声認識を実現できる。あらかじめテキストで言葉を登録しておき、その言葉をKinectセンサーのマイクに向かって発することで、アプリケーションなどを操作することが可能(ノイズ除去や音源位置追跡もできる)。披露されたデモでは「PowerPoint Next(パワーポイント ネクスト)」という声で次のスライドを表示させたり、「PowerPoint Back(パワーポイント バック)」で前のスライドに戻したりと、千葉氏は音声のみでPowerPointを操作してみせた。
  • 傾斜モータを動かすことができる 
    Kinectセンサーの設置位置から物体(人)を映すため、±27度の範囲でセンサーの角度を任意に調整できる。ただし、映し出される物体の角度は設置位置によって左右されるため注意が必要だ。例えば、センサーが人の正面にあれば、真っすぐに立っているように映像が映し出されるが、高所から見下ろすような形でセンサーを設置した場合では、上半身から下半身にかけてすぼんでいるような映像になってしまう
  • 複数のKinectセンサーを接続できる 
    1台のホストPCに、Kinectセンサーを複数台接続することが可能(この場合、骨格追跡できるセンサーは現状1台のみ)

Copyright © ITmedia, Inc. All Rights Reserved.