20カ所の動きを検出

 Kinectは,Microsoft社が「3D深度センサ」と呼ぶ距離画像センサや可視光カメラ,4個のマイクなどを本体に内蔵する。

 このうちジェスチャー入力の中核を担うのが,距離画像センサである。同センサを用いることで,距離を含む3次元座標の情報を持った画像データを取得できる。このデータを使って演算処理をし,3次元空間上でのユーザーの動きを推定する。

 距離画像センサが出力するのは,QVGA(320×240画素)で60フレーム/秒のデータとみられる。これを基に,Xbox 360が演算処理を施し,「ジョイント」と呼ぶ人間の腕や足の関節部分,頭やつま先といった部分の動きを追跡する。1ユーザー当たり20カ所のジョイントの動きを検出できる(図2)。このジョイントの動きを基にユーザーの全身の動きを推定して,ゲームのキャラクターの操作に応用しているのだ。

図2 距離画像センサのデータを基に全身の動きを検知
Kinectでは,PrimeSense社の距離画像センサを利用する。このセンサからのデータなどを基にして演算処理を行い,ユーザーの腕や足の関節部分などの検知ポイントを定めて,ユーザーの動作を推定する(a,b)。Kinectは同様の手法を採用する(c)。
[画像のクリックで拡大表示]

 こうした手法でユーザーにとって違和感がないスムーズな操作を実現するには,高性能な距離画像センサに加え,ジョイントの動き検出やその動きからユーザーの動作を推定するアルゴリズム,そして,動き検出時の遅延や,検出範囲の限界などを補うようなソフトウエアの技術が必要になる。

 Kinectは,これまで10万円以上もするような距離画像センサを,販売価格が約150米ドルと安い民生機器に持ち込んだ。さらに,コントローラを不要にすることによって生じる「制約」を“隠す”ソフトウエアの開発によって,製品化に至ったのである。