後藤弘茂のWeekly海外ニュース

3DカメラがXbox 360を「マイノリティ・リポート」の世界へ近づける



●Project Natalのカギとなる深度センサー技術

 Microsoftは、Xbox 360にナチュラルユーザーインターフェイスを採用する計画を明らかにした。人間のジェスチャや音声、顔などを認識することで、コントローラを使わずにマシンをコントロールできるインターフェイスだ。同社は、この計画を「Project Natal(プロジェクトナタル)」と呼んでいる。Xbox 360本体に、Project Natalのためのハードウェアを付加することで実現する。特に、Project Natalでは、これまで難しかったジェスチャ認識を高精度で行なうことで、ユーザーインターフェイスの革新を目指す。

 Project Natalのハードウェアとしての実体は、専用センサーだ。Project Natalセンサーは、RGBカメラ、深度(Depth)センサー、マルチアレイマイクロフォン、および専用ソフトウェアを走らせるカスタムプロセッサを内蔵するという。重要なポイントは、深度(Depth)を高精度に測ることができることで、それによって3次元的な位置特定がかなり高い精度で可能になる。

 3Dセンサー技術にはいくつか種類がある。三角測量を行なう方法や、レーザ光などでのスキャニングを行なう方法などだ。Microsoftはイスラエルの3Dセンサーベンチャー3DV Systemsの技術を買収したが、同社の技術か、それと類似の技術を採用すると言われている。3DV Systemsの技術は、「Time of Flight(TOF:飛行時間)」と呼ばれる手法を使う。これも、3Dセンサーでは有望視されている手段の1つだ。

 深度センサーを備えることでProject Natalでは「RGBD」、つまりRGBの3原色のカラーデータとともに、D=深度(Depth)、つまりカメラ位置から物体までの距離のデータを得ることが可能になる。真の意味での立体視の3Dカメラが実現する。

Project Natalのプレイ例

●レーダーと類似の技術を使ったNatalの深度センサー

 3DV Systemsの技術の場合はセンサーデバイスから光のパルス(実際の製品での波長は赤外線光)を投射する。光はセンサーから球形の光の壁となって広がって行く。そして投射した光は、物体表面に当たると反射してセンサーに戻ってくる。センサーは180度反転したベクトルで入ってくる反射光によって、カメラ位置から見た物体のシェイプを検知できる。さらに、光が戻ってくるまでの飛行時間(Time of Flight)によって、カメラから物体までの位置を計算できる。

 カメラに戻ってきた光はゲーティングされて必要な光だけがセンサーに届くようにする。最終的に、センサーにはカメラ正面の物体の位置情報が、グレースケールのデータとして捕らえられる。カメラに近い物体は明るく、遠い物体は暗くなる。例えば、下の図のように、突き出した手はカメラに近いので明るく、胴体は手より遠いのでやや暗くなる。この明暗で表される深度のダイナミックレンジは動的に変えることができる。例えば、ユーザーがいる位置に焦点を合わせたフォーカスできると推測される。

光を使うTOF方式の深度センサー

 3DV Systemsの場合だと、現行の製品で、1~2cm単位のデプス解像度のデータを、60fpsでキャプチャできるとされている。そして、最終的にカメラで捕らえたRGB画像にD深度情報を加えれば、RGBDのデータができあがるというわけだ。

 電磁波(電波/光など)の反射によるTOFを使うこの方法は、基本的にはアクティブレーダーと同じだ。生物の知覚では、コウモリやイルカが音波の反射によって空間位置の同定をしている方法と似ている。そのため、この方式では、コウモリやイルカが持つ立体感覚を、マシンも持つことができるようになる。

 Microsoftが採用する手法も、これとほぼ同種のものだと推測される。ちなみに、TOFを使った深度センサーでは、この他に米国のCanestaというメーカーがよく知られている。TOF以外のローコストな3Dセンサー技術では、イスラエルのPrime Senseがある。

●コンピュータには負担の多い現実世界の認識

 3Dセンサーの技術が、なぜナチュラルユーザーインターフェイスにとって重要なのか。それには、まず人間と機械の、視覚による認識の違いを考える必要がある。

 人間は知識で視覚を補完することで、優れた認識を可能にしていると言われている。例えば、人間がクルマの運転をしている場合、前方の道の物体のどれが人間で、どのくらいの距離があって、どちらに向かって動いているかを、つかむことができる。これは、人間という特定のシェイプを、視覚で捕らえた画像の中から識別し、その3D空間上の位置を推定し、時間軸での移動を予測できることを意味する。

 人間は数cm離れた2つの眼の網膜で捕らえた画像のズレから、立体視を行なっている。しかし、実際には、眼の立体視だけでは不完全であるため、知識や推測を使って脳による補完を行なっていると言われる。例えば、道路上の人間までの距離は、人間のシェイプの大きさやパースペクティブのかかった道路上の位置などで、推し量ったりしている。逆を言えば、そうした方法で補完しているから、エッシャーのようなだまし絵が可能になる。

 ところが、コンピュータで人間と同じような、知識や推測を使った認識を行なおうとすると、これが難しい。まず、2D画像の中で、人間のシェイプを紛らわしい背景の中から抽出する必要がある。それがどの程度の距離にあるのかを測り、さらにフレーム比較でどちらへ動いているかを調べる必要がある。

 これをピクセル単位の画像処理として行なおうとすると、膨大な量の計算処理になる。スカラプロセッサなら途方もない数のループを回さなければならない。だから、ナチュラルユーザーインターフェイスには、高度に並列化されたプロセッサを使おうというのが最近のCPUの流れとなっている。ゲーム機の場合には、演算量はディレイとなるため、ゲームにとって重要なリアルタイム性で大きな問題となる。

●深度センサーを使えば現実世界の認識が容易に

 しかし、この問題は、そもそも人間の不完全な知覚を模倣するから生じてると考えることもできる。機械なら、そんな面倒なことをしないで、センサーハードウェア自体を拡張すればいいという発想もできる。人間の眼にはできない、深度を直接データとして検知できるハードウェアを作れば、話はずっと簡単になる。Microsoftが取ったのは、まさにそうした方法だ。

 深度センサーがあれば、コンピュータによる認識は格段に容易になる。例えば、深度センサーがあれば人間は、センサー上にくっきりと白い人型として映る。そのため、人型のシェイプを識別することが容易になる。これまでのように、紛らわしい背景から、カラー情報だけで人間のシェイプを抽出する必要がない。また、これまでは推測するしかなかった3D空間での位置と運動の検知も、深度センサーを使えば比較的簡単にできる。

 位置はTOFなどのセンシング手法で測定できる。3D空間での位置を捕らえ続けることができれば、運動の検出も容易になる。例えば、斜めに歩いている人間の運動を正確に捉えることができる。Project Natalでのゲームのコントロールの例に戻ると、下の図のように、突き出した手にフォーカスして、そのモーションをトラックするといったことが容易になると推定される。映画「マイノリティ・リポート」に出てきたような、ジェスチャでの操作が簡単に実現できるようになる。

Project Natalのセンサーで検出される深度の例

 このように、深度センサーを使えば、現実の3D世界の認識に必要な演算能力を大きくセーブしつつ、ずっと精度の高いシェイプやモーションの認識を実現できる。つまり、精度を上げると同時に、認識処理に必要なプロセッシングパフォーマンスを減らす、一挙両得の手段だと言える。処理が軽くなれば、ゲーム機にとって最もやっかいなディレイも少なくなる。コンピューティングパワーが限られるゲーム機で、ナチュラルユーザーインターフェイスを実現するには向いている。

●3Dグラフィックスと親和性の高い深度センサー技術

 ここでもう1つ興味深いことは、深度センサーを使う手法は、現在の3Dグラフィックス技術と親和性が高いことだ。2Dイメージセンサーで捕らえたRGBのカラーデータに、深度センサーからのD(深度)データを加えると、RGBDのデータフォーマットになる。これは、3Dグラフィックスで、最終イメージのRGBフレームバッファに、視点からの深度データであるZ値(Zバッファに納められている)を加えた情報と等価だ。

 このことは、Natalセンサーで取り込んだRGB+Dデータと、Xbox 360内で生成するRGB+Zデータを容易にミックスできることを意味する。例えば、Natalセンサーで取り込んだユーザーの画像の回りを取り囲むように3Dオブジェクトを配置したグラフィックスを生成することが容易になる。RGBDのDデータをZ値として使えば、ユーザーの身体や手足を構成するピクセルの深度を特定できるからだ。プログラマブルGPU上の、グラフィックスパイプラインに、そのまま流し込むこともできそうだ。

 同様に、取り込んだ画像からの3Dモデリングも容易になる。深度センサーによって現実のオブジェクトの正面の3D形状はキャプチャできているからだ。Z値のあるカラーデータとなるため、例えば、そこから頂点を生成してポリゴン化することも容易になるだろう。

 こうやって概観すると、深度センサーを組み合わせた3Dカメラがゲームチェンジャーであることがわかってくる。もっとも、コンピュータの認識能力のために3Dセンサー技術を使うという方向性自体は、珍しいものではない。それどころか、大きな潮流となっている。例えば、下はスタンフォード大学の自動運転ロボットカーだが、このマシンではレーザーセンサー技術とレーダー技術を使っている。

スタンフォード大学で研究中の自動運転ロボットカー

 このクルマはDARPA(Defense Advanced Research Projects Agency:国防高等研究計画局)の主催した無人自動車レース「DARPA Grand Challenge」で優勝したもので、予算規模も大きいため装備もリッチだ。しかし、コンピュータに現在世界を認識させる技術の流れは、少なくともその一部は3Dセンサー技術に向かっていることは確かだ。

 そうして見ると、Project Natalは決してMicrosoftの奇抜な思いつきでも何でもなく、自然な技術の流れから産まれてきたものと言うことになる。Microsoftは、時流に乗っているとも言える。