VR

VR・AR機器のトラッキング その2 – Outside-In方式のトラッキング

前回は3DoFと6DoF、IMUと言った基本事項を押さえました。

基本事項を理解したところで、今回は6DoFのひとつであるOutside-In方式のトラッキングについて勉強して行きましょう。

はじめに

まずビデオを見てトラッキングの意味をイメージしましょう。SHARK ATTACK! – Playstation VR “Shark Encounter” Gameplay はユーザーが周囲を見回すシーンが多いので、イメージがわきやすいと思います。

前回の記事で書きましたが、現実世界では、右を向いたら連続的に景色は左に流れ最終的に右の風景が見えますが、それと同じことをVR機器で実現するために、バーチャルな世界では、右を向いたらその角度に応じた風景を継続的にレンダリングしてディスプレイ表示することになります。

これに遅延があると、人はバランスを失って倒れます。トラッキング精度が悪くて見える風景がカクつくと、不快感につながります。特に遅延はVR酔いに直結するので、各社遅延削減には非常に力を入れています。

ちなみに、遅延削減のアプローチとしては、トラッキング系の努力とともにグラフィックス系の援護もあるのですが、このあたりの詳細についてはグラフィックスの回で説明する予定です。(VRの核となる部分です ! )

ビデオの内容に戻ると、実際サメを目で追っているのに、追従が悪かったりガタガタ世界が揺れたら興ザメ (!?) ですよね。没入感が大きく削がれることになり、このビデオのようにバーチャルな世界に完全に入り込んで楽しむことは難しくなります。

逆に言うと、このユーザーは頻繁に振り返ったりさまざまな方向に視線を向けていますが、これだけレイテンシー(遅延)やカクツキがなくスムーズな画像提示ができているのは、開発者の努力の結晶と言っても過言ではありません。また、ビデオの最後の方でユーザーがとても感動している姿が見られますが、開発者冥利に尽きると言えます。

トラッキングの重要性について、少しイメージはわきましたでしょうか !? ではあらためて、Outside-In方式のトラッキングについて勉強して行きましょう。

トラッキング手法概要

カメラ

Outside-In方式は、一般的には1台以上の外部カメラがあって、HMDの表面に装備された光源を撮影した画像からHMDの位置と姿勢を推定するものです。

これはどういう問題を解くことになるかと言うと、2Dカメラ画像からHMDの3次元空間位置と姿勢を推定する問題になるわけですが、HMD上の光源配置は既知ですから、対応の取れた点群のモデルマッチング問題に帰着します。ただし、3Dモデルと2D点群のマッチングになります。

すなわち、モデルを平行移動して回転してスケーリングして2次元座標に変換する変換行列を求める、ということです。これ自体はそれほど難しい問題ではありません。ただし、ノイズや有限解像度の影響から、一定以上の精度を出すことは実際簡単ではありません。

例えばカメラから2m以上離れたところで前後に10cm動いても点群の変化はとても微小です。このような状況でもトラッキング精度を担保するために、カメラ台数を増やしたり、HMD上の光源数を多く確保したり、光源を見分ける工夫を入れるなど、各社各プラットフォームで努力をしています。

IMUとのセンサーフュージョン

IMUすなわち加速度センサーとジャイロセンサーのデータ取得は通常100Hz~1kHzなので、比較的速い動きにも精度良く対応可能です。ただし前回勉強したとおり、原理的にYAW方向のドリフトが発生しますので、カメラ画像による補正が必要です。

一方カメラ画像の取得は通常30~60Hzで、奥行方向の位置推定は精度が出にくいので、複数台のカメラでカバーするのが主流です。回転方向の姿勢推定は静止時の精度は悪くないと考えられますが、比較的速い動きに対しては画像ブレなどによる精度劣化の問題があり、IMUによる補間が重要になります。

このように、カメラとIMUはお互いに得手不得手があり、うまく補完する関係になっています。この状態をセンサーフュージョン(複合)と言います。

全く異なる二つの系統由来のデータを複合してHMDの位置と姿勢を推定するわけですが、双方共にノイズや誤差を持つため、うまく融合する必要があります。これによく用いられるのがカルマンフィルターです。

カルマンフィルター

一般にHMDでは、拡張カルマンフィルターやパーティクルフィルターなどを利用し、常にHMDの位置と姿勢を推定することにより、スムーズなトラッキングを実現しています。

このあたりを簡単に説明するのは非常に難しいのですが、初心者の、初心者による、初心者のためのカルマンフィルタ は(これでも)比較的シンプルに説明してくれています。予測器の出力に対して、誤差共分散から更新されたカルマンゲインと観測値をベースに推定値を更新し、その推定値をベースに予測器を回して行きます。

端的に言うと、観測値にはノイズや誤差があることを前提に、モデル化誤差を補正しながら推定値を更新して行くわけです。

必ずしも正しい説明ではありませんが、わかりやすく説明してしまうと、車を運転していて交差点を曲がるとします。古典的な制御方法だと、行くべき方向に対してハンドルを切っていくわけですが、行きすぎたなと思ったらハンドルを戻し、戻しすぎたなと思ったら切っていく、となります。

それに対して予測器を回しモデルを修正していくというのは、ハンドルを切る -> タイヤの角度が変わる -> 車の進む方向が変わる、という一連の関係を頭の中でモデル化し、車が進んでいる軌跡が想定と違ってきた場合に、この一連の関係が想定と少し違っていたようだとモデルを修正しながら車の軌道を制御して行くことになります。

わかったようなわからないようなかも知れませんが、何となく後者のほうがスムーズな運転で安定した乗り心地になる気がしますよね !?

ということでわかったつもりになったところで、実際の機器の例を見ながら理解を深めて行きましょう。

PS VR

可視光源でわかりやすいPS VRから見てみましょう。スタイリッシュなデザインを重視されている影響か、光源の数が非常に少ないです。その分面積を確保して、光っているエリアの形状の変化も利用して、HMDの姿勢推定を行っていると考えられます。

並行してIMUのサポートもありますので、回転方向の検出精度はそれほど悪くないのではないかと想像します。

一方並進方向は、1台のステレオカメラが前提ですから、精度の良いHMDの位置推定はかなり難しいと思われます。ステレオ視差は、カメラから離れるほど指数関数的に減衰しますから、一定の空間を歩き回るようなルームスケールVRの実現は厳しい方向でしょう。

実際PS VRでは、座ってプレイすることが強く推奨され、ステレオカメラがある方向を正面として、プレイエリアはホームベース状の決まった範囲に指定されています。背面の光源のシンプルさを見ても、カメラに対して後頭部を向け続けることを想定していないシステムであることを物語っています。

また可視光の光源ですので、環境光の影響を受けやすく、例えばPCなどが青く光っていると、少なからず悪影響を受けることが予想されます。

とは言え好調なPS4の下支えもあり、比較的高価な新規デバイスにも関わらず幅広いゲームユーザーに浸透し、VR元年と言われた時期を大きく支えた功績はとても大きいと言えます。

ではトラッキング手法をまとめます。

  • 青色可視光源が点灯するHMDをステレオカメラで撮影
  • 青く光っている部分を抽出し、面積、形状、座標、両眼視差情報などを取得 – ①
  • 並行してIMUから3軸加速度情報と3軸角速度情報を取得 – ②
  • ①と②の時系列データをセンサーフュージョン(複合)データとして推定器に入力
  • HMDの位置と姿勢をカルマンフィルターなどにより推定

Oculus Rift


次に初代Oculus Riftも見てみましょう。赤外線カメラで見るとRiftやTouchはこんな風に光って見えます。この動画は、Oculus QuestのHMD前面のカメラでRiftやTouchを撮影した映像ですが、Questのカメラが赤外線カメラであることも示していて、面白いビデオです。

さて、PS VRに比べるとLED光源の数が格段に多いですね。Riftは44個の赤外線LEDを備えています。しかもこれらが瞬いていて、その瞬きを観測するだけでどの場所のLEDかが特定できるようになっています。(今もこの方式なのか定かではありませんが、DK2当初は点滅を利用していたと思われます)

それをOculus Sensor(これは普通の赤外線カメラですが)で観測して位置姿勢推定を行います。赤外線LEDを使っているので環境光の影響は受けにくいですし、数多くのLEDを備えることによって、2D座標から3D座標を推定するモデルマッチングには有利であり、結果トラッキング精度の向上を図る、とてもわかりやすい王道なシステムと言えます。さすがVR元年の立役者です。

PS VRよりはトラッキング精度の確保は有利と考えられますが、それでもOculus Sensor 1台でルームスケールVRを実現するのはかなり厳しいようで、先ほどのページにも「注: センサー2台による360度トラッキングは試験的な機能です。すべての機能が正常には動作しない場合があります。センサー3台による360度トラッキングは完全にサポートされています。」という記述があります。

もちろん複数台のカメラによってオクルージョン耐性を上げることも重要な要件ですが、奥行方向のトラッキング精度を確保することの難しさも物語っています。

ではトラッキング手法をまとめて行きましょう。

  • 赤外線LEDが点灯するHMDを赤外線カメラで撮影
  • 白く光るドットを抽出し、その2D座標から3D座標を推定 – ①
  • 並行してIMUから3軸加速度情報と3軸角速度情報を取得 – ②
  • ①と②の時系列データをセンサーフュージョン(複合)データとして推定器に入力
  • HMDの位置と姿勢をカルマンフィルターなどにより推定

HTC Vive


さて、最後はHTC Viveですがこれは大きくしくみが異なります。この動画は、HTC Viveの特異なトラッキング方式の生みの親であるAlan Yatesの講演で、非常によく説明されているものです。難解な部分もありますが、できれば目を通してみましょう。

Lighthouse(灯台)とうたわれていますが、要は光源はベースステーション側にあります。一方HMD側には独特の凹凸がありますが、こちら側に32個のフォトディテクター(赤外線受光部)があります。

灯台とうたうだけあって、ベースステーションの中身は写真右下のような構造になっているのですが、フラッシュするLED群+水平方向にスキャンするLED+垂直方向にスキャンするLEDで構成されていて(つまりグルグル回っている)、フラッシュしてからスキャンの光が検出されるまでの時間を計測することにより、各フォトダイオードの2次元の角度情報が分かるので、そこからHMDの位置と姿勢を推定するしくみです。イメージするためにビデオを見てみましょう。


ビデオだとLEDは光源としか表現されていませんが、実は各LEDの信号には別々のIDや時間情報を載せることができ、さらに周波数も変えることができます。つまり光源というよりはテレビのリモコンがいっぱいついているようなイメージですね。

2方向のスウィープスキャンだと2次元の角度しかわからないので、カメラから見た時のフォトダイオードの方向はわかりますが距離はわかりません。しかし、隣り合うフォトダイオードがスウィープする同一光源からの信号を受信するタイミングの微小な差異から構成される多数のフォトダイオードの2次元角度情報から、最終的にはモデルマッチングを行ってHMDの距離を割り出すことが可能になっていると考えられます。

基本的に2台のベースステーションを設置することが前提になっているので、2台分の情報からの補完効果はもちろんありますが、1台でも動作することから、上記のようなしくみであると考えます。また、IMUの援護も忘れてはいけません。

尚、Lighthouseのハッキング映像があるのですが、これは非常に勉強になるので、是非見ておきましょう。


ということで、HTC Viveは非常に独特なトラッキング手法を導入していることがわかりますが、この独特の手法により、ここで紹介した3機種の中で最も高いトラッキング精度を達成しています。

最後にトラッキング手法をまとめましょう。

  • ベースステーションから発信される赤外線信号をHMD上の各赤外線受光部が受信
  • 各受光部の受信時間情報から、ベースステーションから見たときの水平垂直方向の角度を算出 – ①
  • 並行してIMUから3軸加速度情報と3軸角速度情報を取得 – ②
  • ①と②の時系列データをセンサーフュージョン(複合)データとして推定器に入力
  • HMDの位置と姿勢をカルマンフィルターなどにより推定

おわりに

以上Outside-In方式の代表格として、3機種のトラッキング手法をご紹介しました。

PS VRとOculus Riftは比較的真っ当な手法でわかりやすかったと思いますが、HTC Viveは異端な感じでしたね。しかしその独自の手法により高いトラッキング精度が得られています。

この記事(これは位置トラッキング革命だ Oculus創業者が手がける新システムがVRの未来を変える!? )にOculus創業者の一人であるJack Mccauleyのコメント「Viveのトラッキングシステムは非常に手強い(Tracking system on Vive is hard to beat.)もので、発明者であるAlan Yatesに大いなる敬意を払っている」があります。この内容からもその発想のすばらしさを垣間見ることができます。

ちなみにこの記事の中心的話題であるMEMS Mirrorによるトラッキング技術も大変興味深い内容になっているので、是非目を通して欲しいと思います。VR・AR機器の構造 その4 – 実際のAR機器を見てみよう ! で取り上げたHololens 2のディスプレイ技術も類似の技術でしたね。

今回はコントローラーのトラッキングについては説明していませんが、基本的にはHMDと類似の手法によりその位置と姿勢が推定されます。コントローラーにもIMUは搭載されているので、カルマンフィルターによるセンサーフュージョンについてもほぼ同じ構成になります。

さて、次回はInside-Out方式のトラッキングについて勉強して行きます。お楽しみに !


   
関連記事
  • VR・AR機器の臨場感向上へのアプローチ その5 – 嗅覚と体感系
  • VR・AR機器の構造 その2 – 実際のVR機器を見てみよう !
  • VR・AR機器の臨場感向上へのアプローチ その4 – 手での操作 足での操作
  • VR・ARをささえる技術
  • VR機器のグラフィックス その3
  • VR・AR機器の臨場感向上へのアプローチ その3 – 聴覚・前庭感覚

    コメントを残す

    *

    CAPTCHA