Kinect for Windowsで機器を作るヒント(2) ―― Kinect for Windows SDK 1.5を試す
●Kinect を使ってできること
前回の記事では,ジェスチャや音声などの人間の動作で直感的に操作できるデバイスがKinect(写真1)であると説明しました.
写真1 Kinect
ここで,Kinectから具体的にどのような情報が得られるのかを理解しておきましょう.Kinectセンサ本体から得られる情報は,その心臓部である3D深度センサのデータ,カラーカメラ,アレイマイクのデータです.深度センサからはVGA粒度の距離データが得られますが,そのままでは簡単にはジェスチャを判別できません.Microsoftが提供するKinectドライバとライブラリはこれらのデータを加工して使いやすい人間の骨格データとして抽出してくれます.
図1は,その骨格データであり,スケルトン・データと呼ばれる20ケ所の関節部分を三次元座標値として返してくれます.それぞれの点を線で結んで表示させれば認識された人物の動作がそのまま画面に再生されます.
図1 スケルトン・データ(Kinect for Windows SDKより引用)
なお,ジェスチャについては特に特定の動作を想定して認識するような機能は含まれていません.判別はユーザアプリ側にゆだねられており,たとえば「手を振る」というジェスチャの判別はアプリケーション側で関節の座標の動きを判別して実現しなければなりません.最新のSDKにはジェスチャ判別のサンプルコードが含まれており,新たに用意されたHuman Interface Guidelinesには,どのような点に注意してジェスチャによるUIを構築すればよいのかというヒントが述べられています.
SDKで提供されるライブラリを使うと,同時に2名までのスケルトン・データの抽出,最大6名までの人物の認識(注)が可能です.これらはKinectのセンサ・デバイスの制限ではなく,あくまでも認識ライブラリとしての制限なので,さらに多くのスケルトン・データの抽出や,人間以外の形状の物体の抽出などもソフトウェアの拡充によって可能になると考えられます.
(注:同時に人が何人いるかということ)
●Kinect for Windows SDK 1.5
Kinectのソフトウェア開発キット(SDK)は,早い段階からベータ版として提供され,Kinect for Windowsの発売と同時に正式にSDK version 1.0が公開されました.そして,大幅に機能強化されたSDK version 1.5(以下,SDK1.5)が2012年5月21日より利用できます.
ここでは早速,SDK1.5について,その入手から簡単な使い方までを説明します.SDKには多くの興味深いサンプル・プログラムが含まれています.Kinectを接続して,その機能をすぐに試せます.
・Kinect SDKを使用するための条件
3D深度データから物体(人間)の形状を識別し,その骨格情報を抽出するためには相応のソフトウェア処理が必要となります.従ってKinectを使用するためのハードウェア条件としては表1のように高スペックなものが要求されています.
表1 Kinectを使用するためのハードウェア条件
CPU | 32ビットまたは64ビット 2.6GHz DualCore 以上のCPU |
メモリ | 2GB |
グラフィック | DirectX9.0c 以上をサポートするグラフィック・アクセラレータ |
そのほか | Kinectに占有可能なUSB2.0ポート |
なお,人の有無だけを計測するなどの簡単な用途であればこれよりも低いスペックのPCでも動作するようですし,グラフィック・アクセラレータも必須ではありません.OSは,Windows7以降で動作します.32ビットと64ビット版のそれぞれに対応可能です(Windows8のプレビュー版でも動作します).通常のWindows7以外にも組み込み用のWindows Embedded Standard 7(WES7)でも動作可能です.
この他に,Kinectアプリケーションを開発するにはVisual Studio 2010の環境が必要となります.ちょっとアプリ開発を試してみたいのであれば,無償で入手できるVisual Studio 2010 Expressも利用可能です.
Visual Studio 2010 Expressの入手先: