VR

VR・AR機器のトラッキング その3 – Inside-Out方式のトラッキング

前回はOutside-In方式のトラッキングについて勉強しました。トラッキング第3回の今回は、Inside-Out方式のVRヘッドセットのトラッキングについて勉強して行きましょう。

はじめに

前回と同様まずビデオを見てトラッキングの意味をイメージしましょう。この動画はユーザーが周囲を見回すシーンが多いので、回転方向のトラッキング精度のイメージはわきやすいと思います。ただ、歩いてプレイするゲームではありません


一方Inside-Out方式の利点は、外部カメラが不要なことです。これによってルームスケールVRどころか、地球スケールVRが可能になるわけですが、これに挑んだ動画がありましたので見てみましょう。


芝生というあまり強い特徴点のなさそうな空間ですが、並進方向もスムーズにトラッキングできているように見えます。実空間とVR空間のフロアー形状があまりに違うので、酔いやすい状況に見えますが、走り回っている映像もありますので、非常にVR体験に慣れているユーザーなのでしょう。

これらのビデオにあるように、Oculus Quest 2はスタンドアローンで動作するHMDで、オールインワンと言われますが、トラッキングから描画まで全ての機能がHMD上のプロセッサーで賄われています。コストダウンも少しずつ進んできているVR機器において、有限のCPU/GPUリソースでスムーズで精度の良いトラッキングとレイテンシーの少ない高精細なグラフィックスを同時に提供するのはかなり厳しい条件になりますが、VRのブレイクPhase 2はこの領域をどう乗り越えて行くかが重要なテーマと言えます。

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

トラッキング手法概要

Outside-In方式では、HMD上の光源を外部カメラで追従することによるHMDの位置姿勢推定とIMUによる回転運動および並進運動の推定をカルマンフィルターなどによってセンサーフュージョンして、リアルタイムかつスムーズにHMDの位置と姿勢を推定していることは、前回勉強しました。

また、Inside-Out方式のHMDでは、前面に1台あるいはそれ以上のカメラがHMD上に装備されていることも、VR・AR機器の構造 その2 – 実際のVR機器を見てみよう ! で勉強しましたね。

ということは、Inside-Out方式では、HMD上のカメラ映像とIMUのセンサーフュージョンによってHMDの位置と姿勢を推定するのだろうという想像はつきます。ではどうやって ? というのが今回の肝になります。

SLAM

Inside-Out方式では、HMDの前面に1台あるいはそれ以上のカメラが搭載されていて、外界風景を観測してトラッキングを行います。具体的には、SLAMという技術を利用して、外部風景の特徴点や輝度分布の動きを検出してHMDの動きを逆算することによって、HMDの位置と姿勢を推定します。

SLAMというのは、Simultaneous Localization and Mapping の略で、訳すと「自己位置推定と環境地図作成の同時実行」という意味になります。要はカメラ的なデバイスで外界を観測しながら移動するときに、自分の位置や姿勢の変化を把握推定しながら環境マップを作成することによって、矛盾のない1枚絵のマップを獲得する、ということですね。

わかりやすい例で言うと、お掃除ロボットが挙げられます。自分で環境マップを作りながら掃除移動することによって、効率の良いコース選択が可能になります。それ以外でもドローンやXR系に活用が進んでいる技術です。

MathWorksさんの SLAMとは?- これだけは知っておきたい3つのこと は、非常によくまとまった記事ですので、是非目を通しておきましょう。後半部ではセンサーフュージョンの話しも出て来ますので、最後まで読みましょうね !

この記事にも書かれていますが、仕組みは2段構成で、移動しながら特徴点マップを作成していく部分と、キーとなるポイントを記憶したり重複情報によって位置精度を向上することによって環境マップの最適化を行う部分から成ります。

VRだと使用デバイスはカメラ、ARだと加えてデプスカメラも搭載されるものがありますが、そういった映像情報を利用したSLAMをVisual SLAMと言います。大きく2種類の手法がありますが、映像中の特徴点を用いた手法と輝度情報を用いた手法です。イメージを持つために、ビデオを見てみましょう。


SLAMによって環境マップが作成できることはわかったと思いますが、これとHMDの位置姿勢推定はどう関係があるのかと言うと、前記の通り、自分の位置や姿勢の変化を把握推定しながら環境マップを作成するわけです。

たとえば目の前にお茶のペットボトルがあるとして、HMDを動かすことによってHMD前面のカメラ映像中のペットボトルの位置も変化します。その動きからHMDの動きを逆算して位置と姿勢を推定するというわけです。

逆に言うと、何も目印がないような真っ黒な壁に囲まれた空間だと、トラッキング精度が落ちる可能性は高まります。なので、トラッキング精度が良くないなと思ったら、目覚まし時計など特徴点が豊富なものを近くに置くと、安定する可能性が高まります。

また、SLAMは単眼カメラで成立するシステムです。単眼カメラが動くことによって奥行方向の情報が得られるからです。しかし単眼カメラで正確な奥行情報を獲得するには十分動く必要があるので時間がかかります。なので、通常VR機器のHMDでは2台以上のカメラが搭載されます。

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

Outside-In方式の場合、外部カメラからの距離が離れるほど奥行方向の位置推定は精度が出にくいと前回説明しました。一方Inside-Out方式の場合、HMD上のカメラで位置推定を行うため、十分な特徴点情報や輝度のばらつき情報があれば、その制限は事実上皆無となります。

しかしながら、カメラ画像の取得はせいぜい60Hzなので、比較的速い動きに対しては画像ブレなどによるトラッキング精度劣化への懸念は依然として存在するため、IMUすなわち加速度センサーとジャイロセンサーによる補間が重要になります。

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

繰り返しになりますが、カメラとIMUはお互いに得手不得手があり、うまく補完する関係になっています。この状態をセンサーフュージョン(複合)と言います。全く異なる二つの系統由来のデータを複合(フュージョン)し、そしてカルマンフィルターなどを用いてHMDの位置と姿勢を推定するというわけです。

コントローラーのトラッキング

ではコントローラーのトラッキングはどうやっているのでしょう ?

Outside-In方式の場合は、コントローラー上にも光源があり、HMDのトラッキングと同様外部カメラによって光源の動きを追従しました。

HMDがInside-Out方式なのだからコントローラーもInside-Out方式にして、カメラを搭載して自己トラッキングすることも技術的には可能ですが、コストとのバランスから今のところはOutside-In方式を踏襲しています。すなわち、コントローラー上に光源があり、それをHMD上のカメラで追従します。

もちろんコントローラーにもIMUは搭載されているので、最終的にセンサーフュージョンしてコントローラーの位置と姿勢が推定されます。そしてその演算は、オールインワンの場合全てHMD上のプロセッサーで行われるというわけです。

計算資源が制限されるHMD上のプロセッサーに全てが任されるこの状況は、遅延が致命的な(酔いや不快感に直結する)VR機器では非常に厳しい状況と言えますが、まさに各社工夫を凝らしてこの壁に挑んでいっている状況です。

ここで気になるのが、コントローラーの可動範囲(検出範囲)です。多くの場合はHMDの前面の空間で操作されることにはなりますが、物を投げるなどの動作の際にはHMDの上面や側面のやや後方におよぶ場合があります。この状況をできる限り拾うため、HMDの上面や側面にもカメラが搭載される場合が多いです。

VR・AR機器の構造 その2 – 実際のVR機器を見てみよう ! でやりましたが、HTC Vive Cosmosで6基、Oculus Questで4基のカメラがHMD上に搭載されています。これはもちろん自己トラッキングのためでもありますが、コントローラのオクルージョン耐性を向上し、検出可能範囲を広げる側面も強くあります。

ということで、実際の機器の例を見ながら理解を深めて行きましょう。

Oculus Quest


まずこの動画を見て欲しいです。これまで説明してきた内容が、見事にそしてコンパクトに纏められています。項目をリストアップすると、

  • Computer visionを駆使したrealtime room mappingとheadset tracking
  • Visual inertial SLAMによるHMDの姿勢と位置推定
  • Constellation trackingによるコントローラーの姿勢と位置推定
  • HMD上のカメラは30 fpsで動作
  • IMUは1 kHzで動作
  • Kinematic predictionによる遅延補償

という感じですね(意訳になってますが)。Conceptualな映像なので美化されている点は否めませんが、ポイントが非常によく纏められているので、頑張って聞き取ってみましょう。

Constellation(星座)はOculusのVR機器に赤外線LEDが散りばめられている様を表現したものですが、これをトラッキングするためには赤外線カメラが必要です。

なのでOculus QuestのHMDに搭載されたカメラも赤外線カメラであり、そのためガーディアン設定などで使用するpass-through (video see-through) モードでは実世界が白黒映像になります。

ところで、従来のRift用のコントローラー(Touch)は左のような形でしたが、Quest用のTouchは右のように変化しました。この理由がわかりますか ?

そうです、Touchのリング上に散りばめられた赤外線LEDが、カメラから検出されやすくするためです。Outside-In方式では外部カメラから検出されやすくするためにリングが外側を向いていましたが、Inside-Out方式ではHMD上のカメラから検出されやすくするためにリングが内側を向いているというわけです。

Quest 2もトラッキングシステムとしては基本的に同じものです。

HTC Vive Cosmos


次にHTC Vive Cosmosも見てみましょう。基本的なトラッキングシステムのしくみはOculus Questと同様ですが、コントローラーは可視光で光ります。ここは大きな違いですね。

つまりCosmosのHMDに搭載されたカメラはRGBカメラであり、よってシャペロン設定などで使用するpass-through (video see-through) モードでは実世界がカラー映像になります。これはAR的な用途を考えると利点と言えます。

また、Oculus Touch同様コントローラーの形状が変わりました。従来のVive用のWandコントローラーは左のようにリングが外側に向いていましたが、Vive Cosmos用のコントローラーはHMD上のカメラから検出されやすくするために、リングが内側を向いていることがわかります。

Vive CosmosはPC接続前提であることや、フェイスプレートを換装することにより従来のベースステーションを使用できたり、XRオプションがあったりと、なかなか一言でその特徴や用途を語るのが難しい機種ではあるのですが、ユーザーにとってもベンダーにとってもVRのさまざまな可能性を模索する機種という側面を感じさせます。

HTC Vive Focus Plus


こちらはHTCのオールインワンヘッドセットとして主に商用利用向けとして売り出されたVive Focusの進化版Focus Plusです。前面にカメラが2基しか見えませんね。

そうなんです。そもそもHMDのトラッキング用途にはカメラが2基あれば十分と言えます。もちろん多ければ多いほど情報量は増えますので安定したトラッキングには有利ですが、その分演算処理量も増えますから、特にオールインワンのヘッドセットでは落としどころが重要です。

また、3Dの video see-through 用途を考えると、HMD前面にステレオカメラが欲しいですから、まさにその形状となっており、最小限の構成と言えます。

一方Oculus QuestやHTC Vive CosmosでHMDの側面や上面にもカメラが搭載されているのは、コントローラーのトラッキング検出範囲を広げるためという側面が強かったわけですが、ではVive Focus Plusでは大丈夫なのでしょうか ?

なんと、Focus Plusのコントローラーは、超音波トラッキングなのです ! TDK製のチップをつかっているようですが、「Chirp SonicTrack™6DoF超音波 + IMU融合トラッキング」と謳われています。

コストとのバランスはありますが、このようなソリューションもあるということですね。イメージセンサーよりも高価な選択ではありますが、それこそコントローラーを背中側に持って行ってもトラッキングが継続できるというのは利点になります。

またVive Focus PlusではPCとの無線接続によるVIVEPORT Streamingサポートもあり、スタンドアローン型のVRヘッドセットとしてはバランスの取れた仕様になっています。

Magic Leap One


Magic Leap Oneでは、コントローラーのトラッキングに磁気フィールドが用いられています。超音波同様オクルージョンに強いことがあげられます。(金属の影響を受けやすいというのはありますが)NEOSIDの3D Cube AntennaをHMDとコントローラの双方に持つことにより、6DFセンシングを可能にしました。

このあたりは用途とコストのバランスもあり、各社各様ですね。

おわりに

以上Inside-out方式のVRヘッドセットのトラッキング手法をご紹介しました。

基本的にはHMD上に搭載されたカメラで外界を観測し、SLAMという技術を用いて外界映像の動きからHMDの動きを逆算してトラッキングを行いますが、高速な頭の動きに追従するためにIMUも搭載され、センサーフュージョンデータをカルマンフィルターなどで処理することによって、最終的にHMDの位置と姿勢を推定します。

特にSLAMはこれからもさまざまな分野で活躍する技術ですので、是非覚えておいて下さい。

また、コントローラーのトラッキングについても触れ、さまざまなソリューションがあることも勉強しました。機能とコストのバランスが各社各様でとてもセンシティブな状況と言えますが、各社の技術的背景や戦略の駆け引きが垣間見えて面白いところでもあります。

冒頭にも書きましたが、Inside-Out方式の利点は外部カメラが不要な点であり、その利点を十分生かすためにはワイヤレスであることは重要なポイントになります。

オールインワン前提のVRヘッドセットでもPC接続をオプショナルに可能にしているケースが多く見られますが、その場合でも無線化できるかどうかはルームスケールを超えられるかどうかに直接影響します。

VRゲームを楽しむ範疇であればルームスケールで十分なのかも知れませんが、AR的な研究用途では家中にさまざまなバーチャルオブジェクトを配置して歩き回るような試みは行われていますから、video see-throughのAR的な用途ではオールインワンかあるいはPCへの無線接続というのは欲しい機能と言えます。

最後になりますが、Inside-Out方式のVRヘッドセットは現状Oculus Questシリーズが独り勝ちの様相ですが、SteamやPlayStationと言った強大なプラットフォームを持つ競合他社も黙ってはいないでしょうから、今後も目が離せないですね !


   
関連記事
  • VR・AR技術の適用事例
  • VRとは ? ARとは ?
  • VR・ARの歴史
  • VR機器のグラフィックス その3
  • Outside-InとInside-Out その2
  • VR・AR機器の構造 その3 – AR機器の着目ポイント

    コメントを残す

    *

    CAPTCHA