コントローラを手に持つことなくゲームを操作できる,Microsoft社の「Kinect」。Kinectが示したジェスチャー入力の可能性を探る連載の第2回は,Kinectを分解しその原理と実装を探る。

三角測量を利用

 Kinectは,イスラエルのベンチャー企業PrimeSense社が開発した距離画像センサを使っている(表1)。具体的には,距離画像センサの光源に使う近赤外レーザと近赤外のカメラ,そしてこれらのデバイスを制御し,距離画像データを生成する専用SoC「PS1080」などから成る参照デザインを採用している。

表1 KinectとPrimeSense社の参照デザインの比較。赤字は本誌推定
[画像のクリックで拡大表示]

 PrimeSense社はユーザーの動きを検出する仕組みについて詳細を明かさないが,三角測量を利用した計測法を採用しているもようだ。具体的には以下のように推察できる。まず,Kinectに搭載した近赤外レーザから対象物にスポット光を複数,ランダムに配列したようなパターンを投影し,対象物に映ったパターンをカメラでとらえる(図3)。そして,とらえたパターンのカメラからの見込み角を求める。これに,レーザから対象物にパターンを照射した角度と,レーザとカメラの距離を基にして,対象物までの距離を算出する。パターン内のスポット光を区別できれば,1回の投影によってカメラがとらえた画面内の物体の複数点の距離計測が可能になる。

タイトル
図3 レーザ・パターンを投影して距離測定
PrimeSense社の距離画像センサは,パターンを対象物に照射し,対象物上に映ったそのパターンをカメラで撮影している。カメラからパターンを見込む角度とパターンを照射した角度,そしてレーザとカメラの距離を基にして対象物までの距離を求めているようだ。