WisdomSoft - for your serial experiences.

Kinect 概要

Microsoft Kinect の機能と、Kinect 開発のために必要な Kinect for Windows SDK を紹介します。

Kinect センサー

Microsoft Kinect は Xbox 360 専用のデバイスとして開発された入力装置の一種です。従来のゲームコントローラではなく、RGB カメラ、3次元深度センサー、マイクアレイからなるモーション入力装置で、装置の前にいる人間の動きや音声を感知します。手で操作するゲームコントローラとは違い、人間の動作(ジェスチャー)でソフトウェアとの対話を可能とします。

B003T9VDJQ

RGB カメラは、いわゆる一般的な Web カメラと同等の機能で 640x480 解像度のカラー映像を秒 30 回の精度で入力できます。3次元深度センサーは映像に移る物の距離を取得できます。マイクアレイは Kinect センサーの下部に水平に並べられた 4 つのマイクからなり、単に音声を入力するだけではなく、入力された音の空間的な位置を把握できます。

表1 Kinect センサー仕様
センサー 詳細
視野角 垂直43°
水平57°
チルト範囲 ±28°
フレームレート 30フレーム/秒
深度カメラ解像度 QVGA(320 x 240)
RGBカメラ解像度 VGA (640 x 480)
音声フォーマット 16kHz、16bit モノラル PCM

そして、最大の特徴は上記のセンサーから得られた情報によって、センサーの前に立っている人間のモーションを入力できることです。モーションは、スケルトンと呼ばれる人間の骨格に基づいた関節の位置情報から、対象人物のおよその姿勢を判断します。

Natural User Interface と Kinect

元々は 2009 年中ごろに Xbox 360 専用の次世代ゲームコントローラとして公表され、当時は コードネーム Project Natal と呼ばれていました。その後 2010 の年末商戦に合わせる形で発売され、合わせて Xbox 360 のシステムも Kinect に最適化された UI に更新されました。このように Kinect そのものは Xbox 360 と深い関係があり、現在も公式には Xbox 360 専用の「ゲームコントローラ」とされています。

Kinect が目指すのは NUI (Natural User Interface)という、人間とコンピュータの新しい対話方法です。これまで、コマンドによる文字ベースの対話方法である CUI (Chacacter User Interface)、Windows PC や Mac OS などを代表するウィンドウとアイコンをベースとした対話方法である GUI (Grahpical User Interface) などが使われてきました。NUI は CUI や GUI に次ぐ、より人間的でコンピュータとの距離を感じさせない新しい体験をもたらすものとして 2000 年代中ごろから積極的に研究され始めました。

まだまだ Kinect は、従来のキーボードやマウス、ゲームコントローラを置き換えられるほどの完成度ではありません。Kinect を活用するには NUI に最適化された新しいシステムが必要であり、現在の GUI を前提とするハードウェアとシステムの上では、Kinect による NUI の体験は限定的です。しかし Kinect が NUI の可能性を感じさせる新しい入力装置であることは間違いありません。

Kinect が発売されると、個人が安価で購入できるモーション入力装置という意味では Kinect 以外に類似品が存在しないため、多くの技術者や研究者がゲーム以外の応用を考え始めました。そして、さっそく Kinect を PC に接続して利用できるように解析する人々が現れ、その成果物として OpenNI (Open Natural Interaction)が登場します。OpenNI は Microsoft 非公式の Kinect 対応開発ツールで LGPL の元に公開されています。

あくまで Kinect は Xbox 360 専用のデバイスであり Windows PC 等での多様な Kinect の応用には否定的だった Microsoft も、その後 Kinect の人気を受けて方針を変更し、Microsoft 公式の Kinect 開発ツールを提供することを決定します。それが、本稿で解説する Kinect for Windows SDK です。

Kinect for Windows SDK と OpenNI の住み分けは明確です。Kinect for Windows SDK は Microsoft 公式の開発ツールであり Kinect のデバイスドライバも含め、その機能は最新の Windows PC 上でのみ動作します。Kinect を販売する Microsoft が公式に提供する開発ツールなので、ドライバの安定性や完成度の高さなどで期待できます。

一方 OpenNI はオープンソースで開発されるクロスプラットフォームの NUI (OpenNI の用語に従うなら Natural Interaction)フレームワークであり、その用途は Microsoft プラットフォームに限定されません。また Kinect の開発ツールとして知られているものの、ハードウェア層が抽象化されているため Kinect 以外の OpenNI 対応デバイスを利用できるという利点があります。