最近、様々な場面で 『Kinect』 というものをよく耳にします。
Kinect(キネクト)は元々、マイクロソフトがXbox 360向けに開発したコントローラを用いずに操作ができる体感型のゲームシステムで、ジェスチャーや音声認識によって直観的で自然なプレイを実現しました。
何故なら、3次元姿勢推定の技術はまだまだ発展途上であり、オフラインであとで時間をかけて出来るものは
ありましたが、リアルタイムにトラッキングできるものはこれまで無かったからです。
したがって、ゲーム界に留まらず3次元姿勢推定を研究する様々な技術分野から高い関心を集めています。
などはハッキングとして扱う事を条件に、それ以外の動き(独自のプログラムなど)については容認する姿勢を明らかにしました。このKinectを利用しゲームに限らず医療や障害者への支援などに活用されています。
そんな注目されるKinectですが、距離画像取得後にプレイヤーの3次元姿勢を取得する仕組みについて
日本語で書かれてある記事が意外にも少なかったので、Webで得られた情報を基に、簡素ながらまとめました。
■仕様
RGBカメラ、深度センサー、マルチアレイマイクロフォン、および専用ソフトウェアを動作させるプロセッサを内蔵したセンサーがあり、プレイヤーの位置、動き、声、顔を認識することができる。これにより、プレイヤーは自分自身の体を使って、直観的にビデオゲームをプレイすることができる。
常にプレイヤーの位置、身長を測定し、最適なプレイができるよう上下の角度の自動調整が行われる。
本体前面にKinectセンサー
(動作中に青白く光るRGBカラー映像認識用カメラ1基、奥行き測定用赤外線カメラ1基、赤外線照射発光部(IRエミッタ)1基の三つの光学系センサーと音響センサーとして、4本のマルチアレイマイク) が並ぶが、
このうち、三つの光学系センサーによってユーザーの奥行き検出を行う。
奥行きの検出方法は1.のとおりである。
1. 距離画像の取得
Kinectのカメラから、毎フレームごとの距離画像を取得する。
Kinectのカメラは以下の3つの素子が外界と光のやりとりを行う。
1. 赤外線のStructured light照射素子
2. 赤外線カメラ
3. RGBカメラ
Structured Lightとは、赤外線の点パターンを照射しそれを撮影することで、
対象の形状変化をそのパターン変化から取得するというもの。「パターン照射方式」と呼ばれる。
3次元スキャナなどで使われている方法で、あるパターンをもったレーザー光線を対象にあて、
反射する光のパターンのひずみで、距離を測定する。
これにより、深度(各点の奥行き)を含めた画像である「距離画像」を取得する。
2. 体の各部位の推定(各フレームごと)
1.で取得した距離画像を用いて、先に用意してある決定木により各部位のどこに相当するかの識別を行う。
ここでも1.と同様1フレームごとの処理であり、時間情報はまだ一切使っていないことに注意します。
窓ごとにその窓が体のどの部位に相当するかの計算を、
予め用意した識別器(決定木とのこと。恐らくRandomised Decision Forest)により高速で行います。
3. スケルトンの仮説作成
2.で得られた毎フレームごとに検出された各部位を用いて、運動力学的な拘束と、
時間的な一貫性が保たれるように、3Dでの部位の配置(関節結合)を抽出する。
これはオクルージョンして見えていない部分は考慮されていないので完全な骨組み(スケルトン)ではなく、
あくまで距離画像から識別できた表面に見えている部位のみ集めた仮説なもの。
また、複数プレイヤーの場合、この時点ではプレイヤーごとの区別はついていない。
3.で得られた関節結合の仮説から、最後に実際の人間の骨組み(スケルトン)の動きを推定する。
各仮説から確率的に一番もっともらしい3D配置を計算し(詳細は不明)、プレイヤーごとのスケルトンの推定が
信号処理専用プロセッサが内臓されている。
kinectは、主にプレイヤーの動きを読み取って合成するモーションキャプチャという技術を使用しているが、
一般的なモーションキャプチャとは異なり、通常のモーションキャプチャ時に着用する特殊なマーカー付き
スーツと、マーカー検出時に使用するトラッカーは必要としない。カメラに被写体を映す事でプレイヤーから
動きにリアルタイムに反映させることが可能となる。多人数による同時マルチプレイにも対応しており、
プレイ人数はソフトによって異なる。
Kinect センサーを使用する際にはデータ保存機器の空き容量が約256MB必要となる。
Kinectの当初の仕様は内部に認識した情報を処理するプロセッサを内蔵しないものであった。
これは、Kinectが単なるセンサーに近いものであったことを意味する。
非常に大きいものだと判明する。具体的にはメインCPU3コアのうち1コアをほとんど占有してしまうほどであり、
その後の改良で占有率は下がったもののまだXbox360側の負担は大きく、
結果としてKinect側にプロセッサを搭載する運びとなった。
このプロセッサは認識に必要なすべての処理をするのではないが、そのほとんどを行うものである。
コンシューマゲーム機の付加物の限界相場といわれる100ドル/1万円以内というこれまでのセオリーに
外れることとなる。
だが、しかしマイクロソフトは
以上、Kinectに関して、距離画像取得後にプレイヤーの3次元姿勢を取得する仕組みについて
Webで得られた情報を基に、一通りまとめてみました。
3次元姿勢推定の技術がまだまだ発展途上の中、このKinectの登場は
Human-Computer-Interactionの世界に起こった一大革命と言っても過言ではないはずです。
そんな中、約一か月前の2013年5月21日、マイクロソフトは新たに
家庭用ゲーム機『Xbox One』を2013年11月に発売する事を発表しました。
(欧米など21の国・地域で2013年11月に発売予定。日本でも発売される予定だが、発売時期等は未定。)
ゲームと並行して各エンターテインメントを同時に行えるようになっています。
ゲームパッドは「フォースフィードバック」機能(インパルストリガー)など40以上の改良がされました。
「Twitch」によるライブストリーミングや「UPLOAD STUDIO」を使い、録画・編集・公開も可能とのことです。
使われています。このKinectには赤外線パターンを人体に照射して赤外線カメラで撮影する機能が搭載され、
通常のカメラの情報と組み合わせることで 人体の心拍数を測定できるようになった上、暗闇でも認識できるようになり、奥行きを高精度に認識できるようになった。奥行き認識は変調された赤外線が照射され物体に反射して撮影されるまでの時差を利用したTime of Flight法で従来のドットパターンの赤外線とは異なるそうです。
通常のカメラも解像度1080pと性能がアップしており、従来比6割アップの広角化となったことで、
6名までの同時認識が可能となりました。スタンバイ状態でも24時間会話を認識しており、話しかけるだけで
本体を起動させることができます。コントローラー正面にも赤外線LEDがあり、それを赤外線カメラで撮影して
Xbox Oneの名前の由来は、
「全てのエンターテインメントをこの1台に集約させる」ことを意味するとされています。
多方面の技術分野から再びKinectに注目が集まっています。
今後の動きに注目したいところですね。