Windows用のKinectはXbox用と何が違うの?

2012年7月3日(火)
薬師寺 国安

こんにちは。薬師寺国安@PROJECT KySSです。今回から、Kinect for Windowsのプログラミング解説(基本編)をはじめます。どうかよろしくお願いいたします。

突然ですが、皆さんはKinectをご存じですか?知らない方はあまりいないと思いますが、はじめにKinectの概要からお話ししていきましょう。

図1:Kinect for Windows

画期的なセンサーデバイスのKinect

Kinect(キネクト)は2010年にマイクロソフトから発売されたセンサーデバイスです。当初はゲーム機であるXbox 360向けの「Kinect for Xbox 360」として、本体やゲームとともにリリースされましたが、 2012年2月には、Windows PCで自由に開発ができる、商用利用が可能な「Kinect for Windows」が発売されました。

今回は、このKinect for Windowsを使って、センサーを使ったアプリの開発について解説していきます。以下、特に断り書きがない場合、KinectとはKinect for Windowsのことを指します。

Kinectには、RGBカメラ・深度センサー・マルチアレイマイクロフォンと、専用ソフトを動作させるプロセッサ内臓のセンサーから構成されています。このことにより、最も大きな特徴である人体のモーションキャプチャーの他、カメラ画像の撮影や距離画像の取得、音源位置を推定したりすることができます。

ハードウェア要件は以下の通りです。

  • OSはWindows 7/Embedded Standard 7となっております。
  • CPUは、デュアル・コア 2.66 GHz 以上のプロセッサ。
  • USB 2.0 の専用バス(USB 2.0、ポートを他の機器と共有せず、本製品がバスを専有するようにする)。
  • 2GB RAM。
  • Microsoft Kinect Windows センサー。

また、1台のPCに最大4台のKinectセンサーの接続が可能です。

Microsoft Storeでの直販価格は24,800円、現在ではAmazonでも購入が可能です。

(*)開発時には通常、Kinect for Xbox 360を使うこともできますが、新たに提供されるSDKおよびランタイムの利用には、Kinect for Windowsに含まれるKinectハードウェアが必要であり、非商用利用であっても、Kinect for Xbox 360との組み合わせで実装することは認められておりません。新しいソフトウェアを実装したい場合は、非商用利用の場合も、商用向けパッケージのKinect for Windowsを利用する必要がありますので、注意してください。

Kinect for Windows SDKでできること

Kinectセンサーは、図1のようなデバイスを内蔵しています。深度センサーはKinectの重要な部分で、その名の通り、「深度情報」(深度画像)を取得します。赤外線を使って深度(センサーからの距離)を測定しています。

「RGBカメラ」は一般のビデオカメラと同じようなRGBカラー画像(実写)のカメラです。

Kinectセンサーから得た各種の生データをプログラマが使いやすい形に加工し、提供するのがSDKの役割です。プログラムでは以下のデータを取得できます。

  • RGBカラー画像(実写画像)
  • 深度画像
  • プレイヤー(人間)のインデックス
  • 人間の関節
  • 音声
  • 音源位置

「プレイヤー(人間)のインデックス」とは、Kinectセンサーが認識した人間に振った番号のことです。Kinectセンサーは最大6人までを同時に識別することができます。そのうち2人の関節を同時に追跡できます。

このSDKを使うと、わずかなコードで、手を使って3Dの地球を自由に回転させたり、実写と画像を同時に表示して、実写の人間が画像のオブジェクトに触れられるような処理を実現することができます。また、図8の動画のように、実写上に楕円を描いてその中をくぐるといった処理も可能です。このような動作には演者の演技力も必要ですが・・・(笑)。これらは開発者にとって大変に魅力的なことだと思います。

XBOX版との相違点

Windows用のKinectとXbox用のKinectでは何が違うのでしょうか。下の表をご覧ください。

表1:Windows用KinectとXbox用Kinectの違い

  Kinect for Windows Kinect for Xbox
商用利用 不可
Kinect for Windows SDK
Kinect for Windows SDK User Runtime 不可
Xbox360での利用 不可
Nearモード 不可

(*)Kinect for Windows センサーには、深度情報の計測範囲に2つのモードが用意されています。
1つは、Xbox版 Kinect センサーと同じ計測可能範囲(80cm~4m)の「Defaultモード」、もう1つは、近距離での操作を可能にするために、40cmからの計測が可能な「Nearモード」です。Nearモードに設定した場合、追跡可能なスケルトンは、6人全て「腰の位置(HIP_CENTER)」のみとなり、身体全体のジョイント情報は取得できなくなります。
Defaultモードではスケルトンジョイントの20点全て取得可能ですが、Nearモードでは「腰の位置(HIP_CENTER)」のみの取得しかできません。各ジョイントの位置は図2のようになります。
Defaultモード、NearモードのKinect センサーからの距離に付いては、図3を、DefaultモードとNearモードについては図4を参照してください。

 図2:人間の身体に対応したスケルトンジョイントの位置と名称(クリックで拡大)
 図3:Kinect センサーからの距離(m)(クリックで拡大)
 図4:DefaultモードとNearモード(クリックで拡大)

※図2~図4はKinect for Windowsのヘルプより抜粋

薬師寺国安事務所

薬師寺国安事務所代表。Visual Basic プログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。
1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。1997年に薬師寺聖とコラボレーション・ユニット PROJECT KySS を結成。2003年よりフリーになり、PROJECT KySS の活動に本格的に参加、.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。Windows Phoneアプリ開発を経て、現在はWindows ストア アプリを多数公開中

Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています