【文献】
HUANG, Yinghao et al.,Deep Inertial Poser: Learning to Reconstruct Human Pose from Sparse Inertial Measurements in Real Time,[オンライン],2018年10月,[検索日 2021.09.30], インターネット: <URL: https://arxiv.org/abs/1810.04703>
(58)【調査した分野】(Int.Cl.,DB名)
前記少なくとも1つの位置インジケータは、3次元の頭部位置ベクトルであり、前記少なくとも1つの回転インジケータは、4次元の四元数である、請求項1に記載の方法。
前記RNNは、前記複数の追加的な姿勢予測の各々に対して、平均絶対誤差と、平滑化コストと、姿勢変化コストとを定義する誤差関数を決定するように構成されている、請求項7〜請求項12のいずれか1項に記載の方法。
前記誤差関数は、前記複数の追加的な姿勢予測のうちの1つもしくは複数に関連付けられた、検出された角度誤差もしくは検出された眼の位置誤差に基づいて決定されるか、または、
前記誤差関数は、前記複数の追加的な姿勢予測の一部に基づく、重み付けられた誤差を表す、請求項13に記載の方法。
【発明を実施するための形態】
【0020】
様々な図面における同様または同一の参照番号の使用は、同様もしくは同一の要素または特徴の存在を示すことを意図されている。
【0021】
詳細な説明
本明細書は、仮想現実(VR)体験または拡張現実(AR)体験を利用するユーザに関連付けられた姿勢を予測するための例示的なシステムおよび技法を説明する。特に、本明細書で説明されるシステムおよび技法は、機械学習を採用して、頭部姿勢データ(例えば、逐次の頭部姿勢の変化)、モバイル装置の姿勢データ、手の姿勢データまたは他の姿勢データをモデル化して、来たるべき期間(例えば、未来の時間)に対して予測される姿勢の精度を向上させ得る。本明細書全体にわたって記載される例において、特定の再帰型ニューラルネットワーク(RNN)は、AR/VRアプリケーションに対して改善された精度で姿勢をモデル化して予測するために用いられ得る。当該改善された精度は、ユーザの変化する頭の位置、手の位置、装置の位置などに関して予測誤差を低減するためにRNNを用い、特定の時間間隔で対応する姿勢を評価することによって達成され得る。
【0022】
VR/ARアプリケーションが相互に影響し合うので、ユーザが見るものは、ユーザに関連付けられ決定される姿勢(すなわち、ユーザの頭、またはユーザにより把持されるモバイル装置の並進および回転など)に応答して変化し得る。ユーザの頭および装置の動きと、対応するAR/VRコンテンツがレンダリングされる時間との間の時間は、動きから表示までにかかる待ち時間(MTP:Motion-to-photon latency)として定義される。MTP待ち時間は、任意の数のMTP間隔を含み得る。MTP間隔は、頭部姿勢読み出し時間、コンテンツレンダリング時間、表示/レンダリング時間、伝達時間、および/または処理アクティビティに関連付けられた他の時間を含むがこれらに限定されない任意の数の時間イベントによって定義され得る。MTP待ち時間のために、システムによって検出された頭部姿勢(および一般に姿勢)と、表示時におけるユーザの実際の頭部姿勢とは、一致しないことがあり得る。その不一致は、表現されるコンテンツ、不正確にレンダリングされるコンテンツ、および/またはVR/ARアプリケーションを利用するユーザに対するシミュレータ症において知覚されるラグという結果になり得る。
【0023】
本明細書で説明されるシステムおよび技法は、未来のMTP時間間隔における頭部の姿勢、装置の姿勢、手の姿勢などを予測することによって、改善される精度および認識される誤差の低減の利点を提供し得る。特に、本明細書で説明される、改善された頭部姿勢予測アルゴリズムは、約30から約150ミリ秒の待ち時間を有するアプリケーションに対する精度を改善し得る。いくつかの実施形態において、本明細書で説明される改善された姿勢予測アルゴリズムは、各々が、誤った位置および/または時間においてコンテンツをレンダリングするという結果となり得る、予測される頭部姿勢に対する値をオーバーシュートすること、および/または予測される頭部姿勢に対する値をアンダーシュートすることを低減できる。
【0024】
従来の頭部姿勢予測において、一定速度モデルは、頭部姿勢を予測するために用いられ得る。例えば、位置座標に対して線速度、および回転座標に対して角速度を用いて、速度と待ち時間とに基づいて、未来における頭部姿勢が更新され得る。そのような技法は、待ち時間の値が増加するにつれて、低い精度に悩まされ得る。さらに、VRヘッドセットにおいて、視覚的な情報は、典型的には、空間におけるユーザの頭の位置および向き(例えば、頭の姿勢)に基づいて表示される。しかしながら、ユーザが頭を動かした時点と、視覚的なデータが装置(例えば、VRヘッドセット、モバイル装置など)の画面上にレンダリングされる時点との間に時間遅延がある。この遅延は、慣性測定ユニット(IMU:inertial measurement unit)読み出し時間、6DoFトラッキング時間、コンテンツレンダリング時間、ディスプレイスキャンアウト時間などを含むがこれらに限定されない異なる要因によるものであり得、さらに、レンダリングがヘッドセット上で(またはヘッドセットにつながれる装置上で)なされる従来のVR/ARシステムにおいて、この遅延は、典型的には約20ミリ秒であるかまたはそれより小さい。遅延時間自体の低減は制限され得るが、本明細書で説明される技法は、実際の表示時間またはその近くにユーザの頭部姿勢がどのようになるであろうかを予測することによって、知覚される待ち時間の量を低減させることができる。
【0025】
本明細書で説明されるシステムおよび技法は、過去におけるユーザの頭部姿勢の測定値を用いて、未来の所与の時間間隔においてユーザの頭部姿勢がどのようになるであろうかを予測できる。例えば、本明細書で説明されるシステムおよび技法は、再帰型ニューラルネットワーク(RNN)を用いて、シーケンスデータ(例えば、頭部姿勢の逐次の変化)をモデル化し得る。そのようなシーケンスデータは、来たるべき期間のためのユーザに対する頭部姿勢を予測するために用いられ得る。そうするために、本明細書で説明されるシステムおよび技法は、未来の所与の時間における頭部姿勢を予測する一方で、長・短期記憶(LSTM)アーキテクチャおよびゲート付き回帰型ユニット(GRU:Gated Recurrent Unit)アーキテクチャなどのRNNベースのニューラルネットセルを採用して勾配消失を低減できる。RNNは、特定のVR/ARシステムを利用するユーザの頭部運動ダイナミクスを学習するために訓練(例えば、モデル化および訓練)され得る。訓練されるRNNモデルは、特定のAR/VRコンテンツがユーザへの表示のためにレンダリングされるであろう瞬間における頭部姿勢を予測するために用いられ得る。以下に詳述されるように、未来の時間における頭部姿勢を予測するための2つのアーキテクチャが説明される。
【0027】
姿勢ベクトルは6つの自由度を有するが、姿勢ベクトルは、回転の四元数表現のため7次元ベクトルを用いて表現され、当該7次元ベクトルは、1つの冗長な次元を含む。いくつかの実施形態において、および任意の所与の向きに対して、その向きを表す2つの四元数Qと−Qとがある。本開示全体を通して説明されるように、平均二乗誤差(MSE:Mean Square Error)損失評価と、モデル訓練/推論とに対して、整合的な(すなわち、連続的な)四元数表現は、引き続くサンプル間の四元数表現における大きな変化をシステムが回避することを保証するために用いられ得る。本明細書で説明される例において、座標系の原点は、VR/ARコンテンツを提供する装置のIMUに位置し、偏揺れはY(例えばy軸)周りの回転であり、縦揺れはX(例えばx軸)周りの回転であり、横揺れはZ(例えばz軸)周りの回転である。
【0030】
一般に、姿勢予測アルゴリズム108は、以下で説明されるアルゴリズムのいずれかもしくは全てを、単独でまたは組み合わせて表し得る。本明細書で用いられるとき、用語「頭部姿勢」は、世界空間におけるユーザの頭部の位置および/または向きを表し得る。本明細書で用いられる場合、用語「世界空間」は、ユーザが住む物理的な空間を指す。本明細書で説明されるシステムおよび技法は、物理的な空間と、視覚的なコンテンツ(例えば、ARコンテンツ、MRコンテンツなど)がモデル化され表示される仮想的な空間との間の対応を生成してトラッキングするために、世界空間を活用し得る。本明細書で用いられるとき、MTP待ち時間は、ユーザの動きがディスプレイ画面に十分に反映されるために用いられる時間を表す。例えば、ユーザが動きを行うときにユーザにより使用されるVRヘッドセットの画面上にユーザの動きを反映するための時間が100ミリ秒である場合、そのとき、MTP待ち時間は100ミリ秒である。
【0031】
いくつかの実施形態において、本明細書で説明される実施形態は、非VR環境および非AR環境において用いられ得る。例えば、6−DoF姿勢トラッキングを活用する、任意の電子装置またはトラッキングシステムは、本明細書で説明される、RNN予測法およびネットワークを活用し得る。例えば、少なくとも1つのカメラを用いてコンテンツをキャプチャするモバイル装置を身に付けて歩き回るユーザは、例えばモバイル装置IMUを介してトラッキングされ得る。トラッキングは、ユーザに対するコンテンツの予測表示を可能にできる、履歴の逐次の姿勢または動きとして用いられ得る。
【0032】
図2は、本明細書で説明される実施形態に従う、例示的な頭部姿勢予測システム200のブロックダイアグラムである。システム200は、AR/VR可能な装置202などの電子装置を利用するユーザの頭部姿勢を予測し得る。本明細書で用いられるとき、姿勢は位置、向きまたは両方を指し得る。頭部姿勢予測システム200は、例えば、世界空間においてVR、ARおよび/またはMRコンテンツを利用しながら、ユーザ移動および操作装置202に関して、電子装置202に対する頭部姿勢トラッキングおよび予測を提供し得る。
【0033】
AR/VR装置202は、仮想現実(VR)、拡張現実(AR)および/または複合現実(MR)環境を生成し、仮想コンテンツを適切にレンダリングするために頭部姿勢予測を提供できる例示的な電子装置である。装置202は、例えば、ネットワーク205を通じてコンピューティング装置204(例えば、サーバまたは他の装置)から提供されるコンテンツ(例えば、AR/VR/MRコンテンツ)を利用するユーザによって、世界空間において用いられ得る。AR/VR装置202を用いてコンテンツへアクセスすることは、コンピューティング装置204、AR/VR装置202上のローカルメモリ、もしくはネットワーク205に接続されるかもしくはネットワーク205にアクセスできる別の装置(図示しない)からVR、ARおよび/またはMRコンテンツを生成し、修正し、移動し、および/または選択することを含み得る。
【0034】
図2に示されるように、AR/VR装置202は、ユーザインターフェースシステム206を含む。ユーザインターフェースシステム206は、少なくとも出力装置208と入力装置210とを含む。出力装置208は、例えば、視覚的な出力のためのディスプレイ、音声出力のためのスピーカなどを含み得る。入力装置210は、例えば、触覚のユーザ入力を受け付け得るタッチ入力装置、ハンドコントローラ、モバイル装置、および聞き取り可能なユーザ入力を受け付けることができるマイクロフォンなどを含み得る。
【0035】
AR/VR装置202は、任意の数のセンサおよび/または装置も含み得る。例えば、AR/VR装置202は、トラッキングシステム212を含む。システム212は、例えば、光センサ、慣性測定ユニット(IMU)センサ214、音声センサ216、画像センサ218、頭部姿勢検出器220、正規化器221、カメラ222、距離/近接センサ(図示しない)、位置センサ(図示しない)、ならびに/または他のセンサおよび/もしくはセンサの異なる組み合わせ(複数可)を含み(またはそれらを利用し)得る。システム212によって利用されるセンサのうちのいくつかは、AR/VR装置202の位置の検出およびトラッキングを提供し得る。システム212のセンサのうちのいくつかは、ユーザインターフェースシステム206の構成要素上での表示のための、物理的な環境の画像のキャプチャを提供し得る。
【0036】
IMUセンサ214は、AR/VR装置202またはVR/AR/周辺機器248に対して、角速度と線加速度とを検出または測定するために機能し得る。次いで、システム200は、IMUセンサ214によって得られた測定値に基づいて、3次元の空間における3次元の向きを計算および/または推定できる。IMUセンサ214は、1つまたは複数の加速度計、ジャイロスコープ、磁力計、および他のそのようなセンサを含み得る。一般に、IMUセンサ214は、例えば、AR/VR装置202の運動、動き、速度および/または加速度を検出し得る。いくつかの実施形態において、AR/VR装置202を使用するユーザに関連付けられた姿勢(例えば、頭部の姿勢)は、例えば、IMUセンサ214および/または頭部姿勢検出器220によって提供されるデータに基づいて検出および/または推定され得る。推定される姿勢に基づいて、システム200は、例えば、当該装置が動かされるときに、AR/VR装置202の変化された姿勢を反映するためにAR/VR装置202の画面上に表現されるコンテンツを更新し得る。いくつかの実施形態において、推定される姿勢は、例えば、頭部姿勢予測システム224を用いて、未来の姿勢および/または頭部姿勢を予測するために、アルゴリズムおよび他のデータと組み合わされ得る。
【0037】
画像センサ218は、カメラキャプチャに関連付けられた背景データにおける変化を検出し得る。カメラ222は、後面キャプチャモードと前面キャプチャモードとを含み得る。いくつかの実施形態において、カメラ222は、代わりに、モバイル装置/スマートフォンにおけるように、単一のカメラを含み得る。前面キャプチャモードは、任意の背景シーンを含むユーザをキャプチャし得る。システム200は、ユーザがAR/VR装置202を身に付けて移動するときに姿勢変化を検出し、姿勢変化に対応する位置においてAR/VRコンテンツを適切に表現するために用いられ得る。
【0038】
AR/VR装置202は、頭部姿勢予測システム224も含み得る。システム224は、1つまたは複数の再帰型ニューラルネットワーク(RNN)226と、エンコーダ/デコーダモデル230および状態伝搬モデル232を含むがこれらに限定されない予測アルゴリズム228とを含み得る(またはそれらを利用し得る)。
【0039】
RNN226は、AR/VR体験にあるとき、ユーザの移動および頭部姿勢の変更のシーケンスなど、入力のシーケンスを処理するために内部状態(例えば、メモリ)を活用し得る。いくつかの実施形態において、RNN226は、有限インパルス再帰型ネットワークまたは無限インパルス再帰型ネットワークであり得る。いくつかの実施形態において、RNN226は、複数の層を含む深層RNNであり得る。RNN226は、LSTMアーキテクチャ234もしくはGRUアーキテクチャ236の1つまたは複数を含み得る。いくつかの実施形態において、システム200は、どのアーキテクチャが誤差および/または待ち時間を低減するかを決定することに基づいて、アーキテクチャ234および236の両方を使用し得る。予測アルゴリズム228は、エンコーダ/デコーダモデル230と状態伝搬モデル232とを含むことができ、それらの各々は、
図4〜
図10において以下で詳細に説明される。
【0040】
ニューラルネットワーク226は、画像上で動作する検出器を含み、例えば、頭部姿勢の位置を計算し、頭部が世界空間において移動するときに頭部の予測される位置をモデリングし得る。加えて、ニューラルネットワーク226は、未来のいくつかの時間ステップの頭部姿勢の位置を計算するために動作し得る。
【0041】
AR/VR装置202は、制御システム240も含み得る。制御システム240は、例えば、電力制御装置、音声およびビデオ制御装置、光学制御装置ならびに/または他のそのような装置および/もしくは装置の異なる組合せを含み得る。
【0042】
システム206,212,224および240の各々は、特定の実施形態に応じて、より多いか、またはより少ない装置を含み得る。AR/VR装置202は、1つまたは複数のプロセッサ(例えば、ユーザインターフェースシステム206、システム212および228、制御システム240、メモリ244、カメラ222ならびに通信モジュール246と通信するCPU/GPU242)も含み得る。通信モジュール246は、AR/VR装置202と他の外部の装置との間の通信を提供し得る。プロセッサ242は、特定のタスクを遂行するために(例えば、コンピュータプログラムなどの)指令を実行するように構成されている。いくつかの実施形態において、プロセッサ242の少なくとも1つは、頭部姿勢予測システム224およびトラッキングシステム212から決定されるデータに基づいて、ユーザおよび/またはAR/VR装置に関連付けられた頭部姿勢を識別(例えば、予測)するための指令を実行する。メモリ244は、システム200における要素間の通信および相互作用全体で活用され得る。
【0043】
加えて、AR/VR装置202は、1つまたは複数のVR/AR/MR周辺機器248を用いるか、または利用し得る。例示的な周辺機器248は、任意の数の制御装置、コンピューティング装置、ヘッドマウントディスプレイ装置、カメラ、スピーカ、トラッキングシステム、および/または、AR/VR装置202と通信する他の装置を含み得る。
【0044】
いくつかの実施形態において、本明細書で説明される、予測アルゴリズムおよびRNNは、サーバシステム上で実行および/または活用されてもよく、入力および/または出力は、例えば、姿勢予測を生成する際の使用のために、ネットワーク205を通じてストリーミングされるか、またはそうでなければ提供され得る。いくつかの実施形態において、本明細書において説明される、予測アルゴリズムおよびRNNは、モバイル装置システムにおいて実行および/または活用されてもよく、入力および/または出力は、姿勢予測を生成する際の使用のためにモバイル装置システムによって生成され得る。
【0045】
図3Aおよび
図3Bは、本明細書で説明される実施形態に従う、例示的な再帰型ニューラルネット(RNNs)300Aおよび300Bを示すダイアグラムである。
図3Aに示されるように、RNN300Aは、矢印304によって示されるように、状態がニューラルネットワーク302にフィードバックされる、折り畳まれた形態で示されている。
図3Bに示されるように、
図3AのRNNは、RNN300Bとして広げられた形態で示されている。RNN300Bは、RNN300Aと同じネットワークであるが、代わりに(K)個の時間ステップの間、展開される。したがって、各ニューラルネットワークセル302(または302a,302b,302c)内のパラメータは、全ての時間ステップにわたって同じである。
【0046】
RNNは、ネットワークの固有の再帰性のために、モデル訓練段階中の勾配消失を示し得る。そのため、RNNは、長期間の依存性を学習することが困難であり得る。それゆえ、本明細書で説明されるシステムおよび技法は、長・短期記憶(LSTM)アーキテクチャおよびゲート付き再帰型ユニット(GRU)アーキテクチャなどのRNNベースのニューラルネットセル(例えば、
図4におけるセル410)を活用して、ゲートと呼ばれるユニットを介してセルを通る情報の流れを変調できる。そのようなアーキテクチャは、入力、出力および忘却ゲートを有することができ、その各々は、訓練段階中にも学習されるパラメータを含み得る。LSTM RNNまたはGRU RNNは、頭部姿勢データのシーケンスを処理するためのコンピューティング装置として機能できる。当該シーケンスは、本明細書で説明されるシステムが、特定のユーザに対する頭部運動ダイナミクスを学習することを可能にできる。頭部運動ダイナミクスおよび当該シーケンスは、未来の少なくとも1つのMTP(動作から表示までにかかる時間)間隔(例えば、時間間隔)の、ユーザに対する頭部姿勢を予測するために用いられ得る。
【0047】
いくつかの実施形態において、システム200は、未来の1つまたは複数のMTPの頭部姿勢を予測し得る。システム200は、AR/VR環境における、仮想現実機材を操作するユーザの頭部運動ダイナミクスを学習するためにRNNを活用し得る。いくつかの実施形態において、システム200は、RNNを訓練して、特定のアプリケーションに対する予測情報を学習し得る。いくつかの実施形態において、システム200は、環境に対して利用可能な各AR/VRアプリケーションのための予測情報を学習するようにRNNを訓練し得る。いくつかの実施形態において、システム200は、特定のユーザに対する予測情報を学習するようにRNNを訓練し得る。いくつかの実施形態において、システム200は、各アプリケーションおよび/もしくはゲーム(もしくはアプリケーションおよび/もしくはゲームのクラス)に対して異なる頭部姿勢統計およびネットワークパラメータを有し得る、特定のAR/VRアプリケーションならびに/またはゲームのための予測情報を学習するようにRNNを訓練でき、RNNは、異なる統計とパラメータとを学習できる。
【0048】
図4は、本明細書で説明される実施形態に従う、頭部姿勢予測システムに対する例示的なモデルアーキテクチャ230である。モデルアーキテクチャ230は、エンコーダ/デコーダモデル230に対する推論グラフを表し得る。いくつかの実施形態において、モデルアーキテクチャ230は、LSTM(N
a個)における活性化ユニット(例えば、セル)の数と、履歴サイズ/サンプルの数(H)と、予測ステップの数(K)と、学習レートとを含むがこれらに限定されないモデルハイパーパラメータを活用する。
【0051】
いくつかの実施形態において、システム200は、均一な時間サンプルを用いて履歴の頭部姿勢データを収集し得る。例えば、頭部姿勢検出器220は、ユーザが動くときにユーザの頭部姿勢を検出し得るが、頭部姿勢予測システム224は、頭部姿勢の一部(例えば、サンプリング)を用い得る。次いで、頭部姿勢予測システム224は、均一なサンプリングレートで頭部姿勢をサンプリングできる。例えば、頭部姿勢予測システム224は、サンプル間で約2〜約5ミリ秒でサンプリングをし得る。
【0052】
いくつかの実施形態において、頭部姿勢予測システム224は、不均一なサンプリングレートを用い得る。例えば、頭部姿勢予測システム224は、第1のサンプリングレート(例えば、0.5〜1.5ミリ秒)で頭部姿勢の一部をサンプリングし、第2のサンプリングレート(例えば、90〜110ミリ秒)で非頭部姿勢の第2の部分をサンプリングし得る。そのようなサンプリングレートは、随意の時間入力(t)(例えば、(t)440)によって示されるように、各セルへの時間の入力として提供され得る。いくつかの実施形態において、不均一なサンプリングは、データが均一なレートでサンプリングされるよう試みられているが、ノイズおよび他の要因によって、サンプルが正確には均一に間隔をあけられないときを指す。システムへの入力は、そのとき、均一なタイムスタンプとは異なる、各姿勢に対するタイムスタンプである。
【0054】
(
図2に定義される、ハードウェアとソフトウェアとを使用する)モデルアーキテクチャ230のオペレーションにおいて、ユーザ420は、VR/AR体験中にVRヘッドセット421を移動させることによって頭部姿勢入力(例えば、動き418)を提供し得る。代替的に、または頭部の動きに加えて、ユーザは、動き418に従って、モバイル装置423を動かすか、または用い得る。アーキテクチャ230は、VRヘッドセット421からの頭部姿勢入力および/またはモバイル装置423から取得された姿勢入力を活用し得る。例えば、ユーザ420は、VR/AR装置(例えば、ヘッドマウントディスプレイ、モバイル装置、または仮想現実が可能な他の装置)を利用して、VR/ARコンテンツを体験しながら頭部姿勢を生成できる。(システム200と組み合わせた)モデルアーキテクチャ230は、トラッキング手段または他のセンシング手段によって頭部姿勢データを収集し得る。収集される頭部姿勢データ(または一般に姿勢データ)は、正規化器221によって正規化され、履歴の姿勢データとしての使用のためにエンコーダ部402に提供され得る。一般に、正規化は、特定の時間ウィンドウにわたって収集される多数の履歴姿勢データサンプルの平均および分散をとることを含み得る。そのような正規化は、生のAR/VR体験中に生じる姿勢の変化に姿勢予測が適合可能であることを保証し得る。
【0055】
それゆえ、エンコーダ部は、未来の頭部姿勢を予測するために、特定のVR/AR体験における実際の履歴のユーザ頭部姿勢からの入力頭部姿勢を活用し得る。履歴の頭部姿勢は正規化され、各時間ステップに対して(各セルにおいて)LSTM層406に直接供給され得る。対照的に、デコーダ部404が入力姿勢を有さない(すなわち、入力姿勢がまだ予測されていない)ので、モデルアーキテクチャ230は、フィードバックループ422,424および426によって示されるように、以前の時間ステップからLSTM層の次のセルに、予測された各姿勢をフィードバックする。特定の入力/出力が示されているが、省略符号によって様々な場所において示されるように、任意の数の入力/出力がモデルアーキテクチャ230により用いられ得る。
【0056】
一般に、入力頭部姿勢は、上述されたように、頭部位置と四元数によって表される頭部回転とを含む。位置値の範囲は、AR/VR環境におけるユーザの位置に応じて変わり得る。そのような範囲は、典型的には0と1の間である四元数の値とは異なる。そのため、入力の特徴は、一般に、異なる範囲および異なる統計値を有する。例えば、偏揺れにおける回転は、典型的に、頭部の横揺れよりも大きな分散を有する。それゆえ、システム200が全ての特徴を効率的に近似および/または予測することを学習できることを保証するために、データ特徴が正規化される。
【0058】
訓練損失のために、システム200は、頭部姿勢(例えば、位置および回転)に関して平均二乗誤差(MSE)損失を用い得る。いくつかの実施形態において、システム200は、頭部姿勢(例えば、位置および回転)に関する平均絶対誤差を用い得る。いくつかの実施形態において、システム200は、(異なる待ち時間に対応する)LSTM層408の各出力ステップが異なるように重み付けされ得る加重平均二乗誤差を用い得る。これは、例えば、典型的な待ち時間のヒストグラムが均一でないが、他のものよりも一般的ないくらかの待ち時間があるときに用いられ得る。いくつかの実施形態において、システム200は、位置に対して平均二乗誤差を用い、回転に対して角度誤差を用い得る。いくつかの実施形態において、システム200は、(例えば、目の位置に対応する)仮想カメラの位置に基づいて損失関数を用い得る。この損失値は、当該位置および回転誤差を、1つの3次元の位置測度(例えば、眼の3次元の位置)に組み合わせる。
【0059】
図5は、本明細書で説明される実施形態に従う、
図4のモデル230を用いる、推論中の逐次のサンプル選択を示す例示的なグラフである。グラフ500において示されるサンプリングアプローチは、推論中に用いられ得る。モデル230において、(H)個の履歴の姿勢のウィンドウ502は、未来における姿勢を予測するために用いられる。オペレーションにおいて、LSTMセルの入力状態は、ゼロに初期化される。サンプルの次のセット(この例において、例えば、ウィンドウ504,ウィンドウ506およびウィンドウ508)に対してウィンドウが選択される度に、システム200は、再び状態をゼロに初期化する。状態をゼロに初期化することは、各特定のセルのメモリが、あるウィンドウサンプルから他のウィンドウサンプルに伝搬されないことを保証する。
図4において上述されたように、このアプローチは、サンプルのウィンドウごとに履歴正規化をシステム200が用いることを可能にする。
【0060】
訓練中、システム200は、各反復において訓練データセットの均一なカバレージを達成するために、各反復でデータサンプル(およびそれらのH個の履歴)をランダムに選択できる。
図6は、
図4のモデルの訓練中のランダムなサンプル選択を示す例示的なグラフ600である。例えば、サンプルのランダム選択および/または利用は、各サンプルに対するゼロ状態初期化と共に姿勢トレースからであり得る。サンプルの各ウィンドウは、モデル230を用いて独立して実行され得る。この独立性のために、モデル230は、ランダムにアクセスされる、サンプルのウィンドウ上で実行され得るか、または次々にアクセスされる、サンプルのウィンドウ上で実行され得るが、両方の場合において、状態がゼロに初期化される。
【0061】
グラフ600に示されるように、システム200は、データサンプルのウィンドウ(例えば、データサンプル602のウィンドウ、データサンプル604のウィンドウ、および/またはデータサンプル606のウィンドウ)をランダムに選択し得る。サンプルの各ウィンドウに対して、システム200は、正規化器221を用いてサンプルを正規化し得る。次いで、予測子の状態は、ゼロに設定されることができ、頭部姿勢予測システム224は、エンコーダ/デコーダモデル230または状態伝搬モデル232のいずれかに対してLSTMアーキテクチャ234またはGRUアーキテクチャ236を実施することによって、未来における次の姿勢を予測できる。
【0062】
図7は、本明細書で説明される実施形態に従う、頭部姿勢予測システムに対する例示的なモデルアーキテクチャ232である。モデルアーキテクチャ232は、状態伝搬アルゴリズム232に対する推論グラフを表し得る。いくつかの実施形態において、モデルアーキテクチャ232は、LSTM(N
a個)における活性化ユニット(例えば、セル)の数と、履歴サイズ/サンプルの数(H)と、予測ステップの数(K)と、学習レートとを含むがこれらに限定されないモデルハイパーパラメータを活用する。
【0063】
示されるように、モデルアーキテクチャ232は、エンコーダ部702とデコーダ部704とを含む。エンコーダ部702は、少なくともLSTM層706および全結合層708を含む。LSTM層706は、全結合層708に接続される。各LSTMセル(例えば、セル710)は、RNNにおいてNa個の数の活性化ユニットを含み、添え字「a」は、状態テンソルを表す。
【0065】
いくつかの実施形態において、システム200は、均一な時間サンプルを用いてモデルアーキテクチャ232に対する履歴の頭部姿勢データを収集し得る。例えば、頭部姿勢検出器220は、ユーザ720が移動するとき、ユーザ720の頭部姿勢を検出し得るが、頭部姿勢予測システム224は、頭部姿勢の一部(例えば、サンプリング)を用い得る。次いで、頭部姿勢予測システム224は、均一なサンプリングレートで頭部姿勢をサンプリングし得る。例えば、頭部姿勢予測システム224は、サンプル間で約2〜約15ミリ秒でサンプリングをし得る。
【0066】
いくつかの実施形態において、頭部姿勢予測システム224は、不均一なサンプリングレートを用い得る。例えば、頭部姿勢予測システム224は、第1のサンプリングレート(例えば、0.5〜1.5ミリ秒)で頭部姿勢の一部をサンプリングし、第2のサンプリングレート(例えば、90〜110ミリ秒)で他の姿勢の第2の部分をサンプリングし得る。そのようなサンプリングレートは、随意の時間入力(t)(例えば、(t)724)によって示されるように、各セルへの時間の入力として提供され得る。いくつかの実施形態において、不均一なサンプリングは、データが均一なレートでサンプリングされるよう試みられているが、ノイズおよび他の要因によってサンプルが正確には均一に間隔を空けられないときを指す。そのとき、システムへの入力は、均一なタイムスタンプとは異なる、各姿勢に対するタイムスタンプである。
【0067】
各サンプルに対して状態をゼロにリセットするモデルアーキテクチャ230とは対照的に、モデルアーキテクチャ232は、以前の履歴の頭部姿勢サンプルから状態を考慮する。例えば、モデルアーキテクチャ230において、H個の履歴の頭部姿勢のウィンドウは、収集されて未来における姿勢を予測する。LSTMアーキテクチャの入力状態は、他のサンプルを考慮することなく、各サンプルに対してゼロに初期化される。次のサンプルに対してウィンドウが選択されると、状態はゼロに初期化される。すなわち、セルのメモリは、あるウィンドウサンプルから他のウィンドウサンプルへ伝搬されない。上述されたように、このアプローチは、システム200がサンプルごとに履歴正規化を用いることを可能にする。モデルアーキテクチャ232において、LSTM状態は、代わりに、あるサンプルから次のサンプルに伝搬され、常にゼロに初期化されるとは限らない。そうするために、システム200は、所与の頭部姿勢トレース内でサンプルを次々に選択および/または利用し得る。モデルアーキテクチャ232のこの例示的な使用において、状態は、全体の頭部姿勢トレースの初めにおいてゼロに初期化される。いくつかの実施形態において、本明細書で説明されるモデルアーキテクチャ232およびシステムは、例えば、システムがトラッキングデータを失うときか、またはアプリ/セッションがユーザによって一時停止される場合に、状態をリセットする必要があり得る。
【0069】
(
図2に定義されるハードウェアおよびソフトウェアを用いる)モデルアーキテクチャ232のオペレーションにおいて、ユーザ720は、VR/AR体験中にVRヘッドセット721を動かすことによって頭部姿勢入力(例えば、動き718)を提供し得る。代替的に、または頭の動きに加えて、ユーザは、動き718に従ってモバイル装置723を動かすか、または用い得る。アーキテクチャ232は、VRヘッドセット721からの頭部姿勢入力、および/またはモバイル装置723から取得された姿勢入力を活用し得る。例えば、ユーザ720は、VR/ARコンテンツを体験しながら頭部姿勢を生成するためにVR/AR装置(例えば、ヘッドマウントディスプレイ、モバイル装置、または仮想現実が可能な他の装置)を利用し得る。(システム200と組み合わせた)モデルアーキテクチャ232は、トラッキング手段または他のセンシング手段によって頭部姿勢データを収集し得る。
【0070】
エンコーダ部702は、未来の頭部姿勢を予測するために、特定のVR/AR体験における実際の履歴のユーザの頭部姿勢から入力頭部姿勢を活用し得る。履歴の頭部姿勢は、各時間ステップに対して(例えば、各セル732,734および736などにおける)LSTM層に直接供給され得る。デコーダ部704が入力姿勢を有さない(すなわち、入力姿勢がまだ予測されていない)ので、モデルアーキテクチャ232は、フィードバックループ726,728および730によって示されるように、以前の時間ステップからLSTM層の次のセルに、予測される各姿勢をフィードバックする。特定の入力/出力が示されているが、省略符号によって様々な場所において示されるように、任意の数の入力/出力がモデルアーキテクチャ232によって用いられ得る。
【0071】
デコーダ704は、任意の数のLSTMセル(例えば、セル732)を用いて、頭部姿勢予測を生成し得る。例えば、各LSTMセルは、予測がシステム200によって要求され得る総時間(t)にわたる時間の一部を表し得る。すなわち、予測が要求される時間(例えば、未来の10ミリ秒)を総時間が表し得る場合、予測は、特定の時間ステップで(例えば、3ミリ秒ごとに)各LSTMセルにおいて行われ得る。
【0073】
一般に、入力頭部姿勢は、上述されたように、頭部位置と四元数によって表される頭部回転とを含む。位置の値の範囲は、AR/VR環境におけるユーザの位置に応じて変わり得る。そのような範囲は、典型的には0と1の間である四元数の値とは異なる。それゆえ、入力特徴は、一般に、異なる範囲および異なる統計を有する。
【0074】
同様に、入力姿勢(例えば、手の姿勢、モバイル装置の姿勢)は、上述されたように、位置と四元数によって表される回転とを含み得る。位置の値の範囲は、AR/VR環境におけるユーザの装置または手の位置に応じて変わり得る。そのような範囲は、典型的には0と1の間である四元数の値とは異なる。それゆえ、入力特徴は、一般に、異なる範囲および異なる統計を有する。
【0075】
モデルアーキテクチャ230とは異なり、モデルアーキテクチャ232は、サンプルウィンドウごとに正規化しない。代わりに、モデルアーキテクチャ232は、位置および回転の両方における損失を均衡させる損失関数を用いながら、位置および回転の両方に対する入力を含むモデルを構築し得る。いくつかの実施形態において、モデルアーキテクチャ232は、2つのモデルを構築し得る。例えば、モデルアーキテクチャは、位置に対するモデルと回転に対するモデルとを用い得る。各モデルは、別個に訓練され得る。
【0077】
それゆえ、いくつかの実施形態において、モデルアーキテクチャ232は、一時的な安定性の利点を予測に提供することができ、その利点は、ユーザに対して提示される出力(例えば、画像コンテンツ、カメラフィードなど)における、より少ないジッタにつながり得る。モデルアーキテクチャ232は、モデルアーキテクチャ230よりも計算上の複雑さを低くしても実行され得る。例えば、モデルアーキテクチャ230が新しい各頭部姿勢サンプルに対してH個のエンコーダLSTMステップを実行する一方、モデルアーキテクチャ232は、新たに受信される各頭部姿勢サンプルにおいて1つのエンコーダLSTMステップを実行する。モデルアーキテクチャ230および232の両方は、K個のデコーダLSTMステップを実行する。
【0078】
いくつかの実施形態において、モデルアーキテクチャ230は、より多くのジッタを提供するが、モデルアーキテクチャ232よりも低い平均二乗誤差をもたらす利点を提供する。加えて、モデルアーキテクチャ232は、位置座標などに関して正規化を行わなくてもよいので、VRヘッドセットで収集されたデータからの、座標系の位置における任意の変化は、適切な頭部姿勢を決定するために予め処理される必要があり得る。いくつかの実施形態において、モデルアーキテクチャ232は、同じパラメータを用いて全てのサンプルを正規化することによる正規化(例えば、グローバル正規化)を行い得る。
【0079】
ジッタを低減するために、追加的な項が、モデルアーキテクチャ232に対して損失関数に導入され得る。モデルアーキテクチャ232における損失関数は、予測誤差項と、平滑化項と、姿勢変化項とを含むがこれらに限定されない少なくとも3つの項を含み得る。
【0084】
図8は、本明細書で説明される実施形態に従う、
図7のモデルを用いる、以前の状態を伝搬している間の訓練中の逐次のサンプル選択を示す例示的なグラフ800である。履歴の頭部姿勢データをキャプチャするために、任意の数の、時間のウィンドウが選択され得る。示されるように、システム200は、モデルアーキテクチャ232を訓練する際の使用に対して履歴の頭部姿勢のデータを取得するために、第1の時間ウィンドウ802と、第2の時間ウィンドウ804と、第3の時間ウィンドウ806とを選択した。各ウィンドウは、次々にサンプリングされる、履歴の頭部姿勢データの取り出しを表し得る。それゆえ、各LSTMの状態は、全体の姿勢トレースの初めにおいてゼロに初期化されるが、各サンプリングウィンドウにおいて、初期化されない。
【0086】
システム200は、RNNの訓練中にグラフ800を用い得る。頭部姿勢が予測されるとき、履歴の姿勢データのウィンドウ全体が訓練において活用され、上述された損失関数が、予測される頭部姿勢に基づいて特定のコンテンツの再生を決定することのために計算され活用され得ることを保証する。
【0087】
モデルアーキテクチャ232に対するグラフ800の訓練中、システム200は、モデルアーキテクチャ230を用いて行われ得るように、サンプルのランダム利用を行わない。代わりに、全てのトレース(例えば、あるウィンドウにわたる頭部姿勢サンプル)は、スタックされることができ、そのスタックにわたって訓練が実行され得る。そのような例において、バッチサイズはトレースの数である。各反復は、全てのトレースに関して並列にモデルを実行し得るが、サンプルを通じて順次に当該モデルを実行し得る。訓練は、全てのサンプルが一度収集されると完了するだろう。
【0088】
いくつかの実施形態において、トレースは、各々が等しいサイズの引き続くサンプルの順序付けられた部分に分割され得る。次いで、システム200は、各部分の初めにおいて状態をゼロに初期化し得る。次いで、モデルアーキテクチャ232に対する訓練は、トレースおよび部分にわたるモデル訓練を一緒に並列化し、トレースの数×部分の数のバッチサイズをもたらし得る。
【0090】
いくつかの実施形態において、本明細書で説明されるモデルは、コントローラ姿勢予測に対して適用され、頭部、手、モバイル装置および/もしくはAR/VRコントローラのいずれかまたは全てをユーザがどこに配置し向き付け得るかを決定し得る。いくつかの実施形態において、本明細書で説明されるシステムは、頭部姿勢予測をコントローラ姿勢予測と組み合わせて、頭部の動きとコントローラの動きとの間の既存の相関のために全体の予測における改善を提供し得る。いくつかの実施形態において、本明細書で説明されるモデルは、例えば、拡張現実におけるビデオパススルーに適用され、現実と仮想コンテンツとの間のアラインメントを正し得る。いくつかの実施形態において、頭部姿勢が用いられなくてもよいが、代わりに、モバイル装置の姿勢は、本開示全体にわたって説明される実施形態において姿勢入力として置換され得る。
【0091】
図10は、本明細書で説明される実施形態に従う、予測される頭部姿勢に基づいて、ARまたはVR体験においてコンテンツを提供するためのプロセス1000の実施形態を示すフローチャートである。例えば、プロセス1000は、履歴の頭部姿勢データと、1つまたは複数の再帰型ニューラルネットワークとに基づいて、頭部の姿勢を予測し得る。
【0092】
プロセス1000のオペレーションにおいて、コンピューティング装置202は、ユーザがAR環境におけるコンテンツの適切かつ時間が正確な配置を受け取るように、コンピュータで実施されるプロセスを行い、ユーザに対する頭部姿勢を予測し得る。一般に、コンピューティング装置202は、VRまたはAR環境を定義するデータを受信し得る。VRまたはAR環境は、物理的な環境の表現を含む。データは、VRまたはAR環境において複数のオブジェクトをレンダリングおよび合成/配置するための指令を含み得る。
【0093】
ブロック1002において、プロセス1000は、拡張または仮想現実体験のための頭部姿勢予測に対する要求を受信することを含む。例えば、ユーザは、AR(またはVRまたはMR)環境を利用しているかもしれない。ARまたはVR環境においてユーザによって用いられているシステムは、ユーザの動き、頭部の位置、手の位置、装置の位置(例えば、モバイル装置)、および/または他のトラッキング可能なメトリックを決定することから恩恵を受け得る。例えば、システムは、来たるべき(例えば、未来の)期間において頭部姿勢の予測を受信することから恩恵を受け得る。したがって、プロセス1000は、頭部姿勢予測を行い、ユーザにコンテンツを表示するための適切な配置と時間レンダリングとを保証し得る。
【0094】
ブロック1004において、プロセス1000は、AR/VR体験に関連付けられた、少なくとも1つの位置インジケータと少なくとも1つの回転インジケータとを識別することを含む。当該少なくとも1つの位置インジケータは、
図1の説明において式[1]によって定義されるように、3次元の頭部位置ベクトルであり得る。当該少なくとも1つの回転インジケータは、
図1の説明において式[2]によって定義されるように、4次元の四元数であり得る。例えば、装置202は、ARまたはVRまたはMR体験を用いるユーザの頭部姿勢を定義する姿勢データを取り出すか、決定するか、検出するか、またはそうでなければ利用し得る。姿勢データは、ARまたはVRまたはMR体験を利用するユーザに対する履歴の姿勢データであり得る。いくつかの実施形態において、姿勢データは、ARもしくはVRもしくはMR体験を以前に体験もしくは活用した、他のユーザ、アプリケーション、システムまたはデータベースに関連付けられた履歴の姿勢データであり得る。
【0095】
ブロック1006において、プロセス1000は、当該少なくとも1つの位置インジケータと当該少なくとも1つの回転インジケータとを、RNN226などのRNNに提供することを含む。RNNは、LSTMネットワークにおける複数のLSTMセルの各々に対する、長・短期記憶(LSTM)ネットワークと全結合(FC)ネットワークとを含む。いくつかの実施形態において、各LSTMセルは、履歴の期間に(時系列で)関連付けられ得る。例えば、エンコーダにおいて、各LSTMセルは、履歴の期間にわたって収集される、頭部姿勢に対する位置情報および回転情報を含む履歴の姿勢データを用いる。そのようなデータは、RNNを訓練するために用いられ得る。
【0096】
ブロック1008において、プロセス1000は、少なくとも1つの来たるべき期間のARまたはVRまたはMR体験のための頭部姿勢変化に対する少なくとも1つの予測を生成するためにRNNを用いることを含む。例えば、装置202は、RNN226とエンコーダ/デコーダモデル230または状態伝搬モデル232のいずれかとを用いて、未来の1つまたは複数の時刻における頭部姿勢の予測をし得る。
【0097】
いくつかの実施形態において、プロセス100は、当該少なくとも1つの予測に基づいて追加的な候補予測を生成することを含み得る。例えば、装置202に接続されるか、もしくは装置202から利用可能な装置202(または他のコンピューティング装置)は、ユーザがARまたはVRまたはMR環境を用いるときにリアルタイムで用いられ得る新しい予測を生成し続け得る。当該少なくとも1つの予測および追加的な(例えば、新しい)候補予測は、装置202が当該少なくとも1つの予測と追加的な候補予測との各々に対して平均二乗誤差を決定するエラーチェックを受け得る。平均二乗誤差は、特定の頭部姿勢予測を捨てるべきかどうかを示し得る。例えば、頭部姿勢予測に関連付けられた平均二乗誤差が誤差の閾値レベルを超えると決定される場合、システム200は、頭部姿勢データを歪めないように、またはARもしくはVRもしくはMR環境へ誤った頭部姿勢データを不適切に提供しないように、その頭部姿勢予測を捨て得る。これは、予測される頭部姿勢が、以前の既知の頭部姿勢と予測される頭部姿勢との間の経過時間に基づく、当該以前の既知の頭部姿勢の妥当な距離内に留まることを保証し得る。
【0098】
いくつかの実施形態において、RNNは、当該来たるべき期間内の複数の時間ステップの各々に対して、当該来たるべき期間におけるそれぞれの時間ステップに対応するそれぞれのLSTMセルに対する状態をエンコードするように構成されている。すなわち、システム200は、フィードバックループ(例えば、フィードバックループ422,424,426,726,728および730)を用いて、以前のLSTM状態が、来たるべきLSTM状態と頭部姿勢予測とを計算する際に考慮され得ることを保証し得る。
【0099】
いくつかの実施形態において、RNNは、さらに他の来たるべき期間における頭部姿勢変化に対する追加的な予測を再帰的に決定するように構成されている。例えば、システム200は、モデルアーキテクチャ230またはモデルアーキテクチャ232を採用して、ユーザがARまたはVRまたはMR環境において動くときに頭部姿勢予測を継続的に決定し得る。当該予測は、コンテンツをレンダリングする際に生じ得るMTP遅延なしに、ARまたはVRまたはMR環境においてリアルタイムコンテンツを提供するために活用され得る。
【0100】
ブロック1010において、プロセス1000は、要求に応答して当該少なくとも1つの予測を提供することと、当該少なくとも1つの予測に基づいて、拡張もしくは仮想現実体験における拡張または仮想現実コンテンツの表示をトリガすることとを含む。例えば、予測アルゴリズム228は、RNNの別の状態への入力として、1つまたは複数の予測をRNN226に出力し得る。当該出力は、ARまたはVR環境を利用するユーザに対する適切な時間および場所においてコンテンツの表示をトリガするために用いられ得る。
【0101】
いくつかの実施形態において、頭部姿勢予測に対する要求を受信することは、ネットワークを通じてクライアント装置からの履歴の頭部姿勢データの受け付けを含む。例えば、頭部姿勢予測に対する要求は、ネットワーク205を介して受信され得る。頭部姿勢変化に対して当該少なくとも1つの予測を提供することは、頭部姿勢変化に対する当該少なくとも1つの予測に基づいて、ネットワーク205を通じてクライアント装置(例えば、装置204)に、AR環境またはVR環境においてレンダリングされたコンテンツを提供することを含み得る。いくつかの実施形態において、頭部姿勢変化に対する当該少なくとも1つの予測を提供することは、頭部姿勢変化に対する当該少なくとも1つの予測に基づいて、ネットワークを通じてクライアント装置に、拡張現実体験においてレンダリングされたコンテンツを提供することを含む。
【0102】
いくつかの実施形態において、当該少なくとも1つの位置インジケータは、3次元の頭部位置ベクトルであり、当該少なくとも1つの回転インジケータは、4次元の四元数である。いくつかの実施形態において、当該少なくとも1つの回転インジケータは、偏揺れ、縦揺れ、および横揺れを含む。いくつかの実施形態において、当該少なくとも1つの回転インジケータは、回転の量を表す大きさと回転の軸を表す方向とを伴う3次元ベクトルを含む。
【0103】
いくつかの実施形態において、RNNは、当該少なくとも1つの予測に基づいて追加的な候補予測を生成し、追加的な候補予測の各々に対して平均二乗誤差を決定するように構成されており、平均二乗誤差は、それぞれの追加的な頭部姿勢予測を捨てるべきか否かを示す。
【0104】
いくつかの実施形態において、RNNは、さらに他の来たるべき期間における姿勢変化(例えば、頭部の姿勢変化、装置の姿勢変化など)に対して追加的な予測を再帰的に決定するように構成されている。
【0105】
図11は、本明細書で説明される実施形態に従う、頭部姿勢を予測してARまたはVR体験を提供するためのプロセス1100の実施形態を示すフローチャートである。例えば、プロセス1100は、履歴の頭部姿勢データと1つまたは複数の再帰型ニューラルネットワークとに基づいて、ユーザの頭部の姿勢を予測し得る。いくつかの実施形態において、プロセス1100は、ARまたはVR体験を操作するユーザによって保持されるモバイル装置の姿勢を予測し得る。いくつかの実施形態において、プロセス1100は、ARまたはVR体験を操作するユーザの他の身体部分の姿勢を予測し得る。
【0106】
コンピューティング装置202は、VRまたはAR環境を定義するデータを受信し得る。AR環境は、物理的な環境の表現を含む。当該データは、VRまたはAR環境における複数のオブジェクトをレンダリングおよび合成するための指令を含み得る。
【0107】
ブロック1102において、プロセス1100は、VRまたはAR環境におけるユーザの動きに対応する履歴の頭部姿勢データを取得することを含む。例えば、プロセス1100は、ユーザ、アプリケーションおよび環境などに関連付けられた履歴の姿勢データをトラッキングするか、取り出すか、またはそうでなければ取得し得る。いくつかの実施形態において、履歴の姿勢データは、VRまたはARアプリケーションに関連付けられた逐次の姿勢データである。
【0112】
いくつかの実施形態において、プロセス1100は、当該来たるべき期間を超える対応する期間における追加的な姿勢予測に基づいて、仮想現実コンテンツを表示するための位置を決定することを含む。いくつかの実施形態において、プロセス100は、仮想現実環境における表示のための仮想現実コンテンツのレンダリングをトリガすることを含む。
【0113】
いくつかの実施形態において、プロセス1100は、当該来たるべき期間を超える対応する期間における姿勢予測に基づいて、仮想現実コンテンツを表示する位置を決定することを含み得る。例えば、頭部姿勢予測の候補は、リアルタイムのARまたはVR環境の使用に適合させることができ、コンテンツは、予測およびリアルタイム環境に基づいて、ARまたはVR環境における提供(例えば、表示)のためにトリガされることができる。
【0114】
いくつかの実施形態において、当該複数のLSTMセルにおける各LSTMセルの状態は、次の逐次の姿勢予測とともにRNNへの入力として提供され、当該複数の追加的な姿勢予測は、当該複数のLSTMセルにおける各LSTMセルの状態に少なくとも部分的に基づく。
【0116】
いくつかの実施形態において、第1の履歴ベクトルシーケンスは、計算される平均値と計算される分散値とに少なくとも部分的に基づいて正規化される、RNNへの入力を表す。いくつかの実施形態において、第1の姿勢予測および当該複数の追加的な姿勢予測は、仮想現実コンテンツを表示する位置を決定する前に、計算される平均値と計算される分散値とに基づいて非正規化される。
【0117】
いくつかの実施形態において、当該複数のLSTMセルにおける各LSTMセルの特定の状態は、
図7に示されるように、第1の頭部姿勢予測とともに、RNNへの入力として提供される。この例において、複数の頭部姿勢予測の候補は、頭部姿勢予測を生成するとき、当該複数のLSTMセルにおける各LSTMセルの状態を考慮し得る。
【0118】
いくつかの実施形態において、RNNは、既知の頭部姿勢シーケンスのデータベースに基づいて訓練され、RNNは、次の頭部姿勢の候補の各々に対する確率測度を出力するために、出力ベクトルシーケンスをベクトル埋め込みすることによって当該複数の頭部姿勢の候補を予測するように構成されている。この確率測度は、誤差処理と組み合わせて用いられ、予測される各頭部姿勢が誤差を伴わないことを保証し得る。
【0119】
いくつかの実施形態において、RNNは、
図7の説明で詳細に説明されるように、当該複数の追加的な(例えば、候補の)姿勢予測の各々に対して、平均絶対誤差と、平滑化コストと、姿勢変化コストとを定義する誤差関数を決定するように構成されている。誤差関数は、それぞれの頭部姿勢予測の候補を捨てるべきか否かを示し、仮想現実コンテンツを表示するために当該複数の頭部姿勢予測の候補を用いるときにジッタを低減し得る。いくつかの実施形態において、本明細書で説明されるシステムは、RNNが訓練目的のためにそのようなコストを用いることを可能にし、予測とグラウンドトゥルース値との間の誤差を低減し得る。いくつかの実施形態において、グラウンドトゥルース値が利用できないと決定される場合、推論の間、損失はシステムによって用いられなくてもよい。いくつかの実施形態において、平滑度または姿勢変化の誤差は、本明細書で説明されるシステムによってサンプルを捨てるために用いられ得るが、グラウンドトゥルース値が利用できないと決定される場合、平均絶対誤差は活用されなくてもよい。
【0120】
いくつかの実施形態において、誤差関数は、当該複数の追加的な姿勢予測のうちの1つもしくは複数に関連付けられた、検出された角度誤差または検出された眼の位置誤差に基づいて決定される。いくつかの実施形態において、誤差関数は、当該複数の追加的な姿勢予測の一部に基づく、重み付けられた誤差を表す。
【0121】
いくつかの実施形態において、本明細書で説明されるRNNは、LSTM234の代わりにゲート付き再帰型ユニット(GRU)236を用い得る。いくつかの実施形態において、(例えば、予測において姿勢データと共に速度を用いる)角度誤差関数を含むがこれらに限定されない、異なるまたは追加的な入力データが用いられ得る。
【0122】
いくつかの実施形態において、システム200は、本明細書で説明されるRNNのうちの1つまたは複数を用いて予測を行うことを決定し得る。例えば、システム200は、第1の複数の長・短期記憶(LSTM)セルおよび第1の全結合(FC)層を含む第1の再帰型ニューラルネットワーク(RNN)と、第2の複数の長・短期記憶(LSTM)セルおよび第2の全結合(FC)層を含む第2の再帰型ニューラルネットワーク(RNN)との両方を含み得る。システム200は、少なくとも1つの処理装置と、実行されると当該処理装置に以下の動作を行わせる指令を格納するメモリとを含み得る。当該動作は、拡張現実環境または仮想現実環境を利用するユーザに対して、拡張現実環境におけるユーザによって利用されている最大の移動範囲を、閾値レベル未満の移動が活用されていることを決定することに応答して決定することと、閾値レベル未満の移動が活用されていることを決定することに応答して、来たるべき期間に対する頭部姿勢予測を決定するために第1のRNNを選択することと、第2のRNNにおける次のLSTMセルへの入力として各LSTMセルの状態を提供することによって、当該来たるべき期間に対してジッタが低減された頭部姿勢予測を決定するために第2のRNNを選択することとを含む。いくつかの実施形態において、第1のRNNは、頭部姿勢予測に少なくとも部分的に基づいて、拡張現実環境において用いられるコントローラの姿勢を予測するようにさらに構成されている。
【0123】
図12は、本明細書で説明される技法とともに用いられ得る、例示的なコンピュータ装置1200と例示的なモバイルコンピュータ装置1250とを示す。一般に、本明細書で説明される装置は、仮想現実、拡張現実もしくは複合現実環境のいずれかもしくは全ての態様を生成および/または提供できる。コンピュータ装置1200および/またはモバイルコンピュータ装置1250に関して説明される特徴は、上述されたポータブルコンピューティング装置に含まれ得る。コンピューティング装置1200は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレームおよびその他の適切なコンピュータなどの、様々な形態のデジタルコンピュータを表すことを意図されている。コンピューティング装置1250は、携帯情報端末、携帯電話、スマートフォンおよびその他の同様のコンピューティング装置などの、モバイル装置の様々な形態を表すことが意図されている。本明細書に示される構成要素、それらの接続および関係、ならびにそれらの機能は、例示的であることのみを意図されており、本明細書において請求および/または説明される、システムならびに技法の実施形態を限定することは意図されていない。
【0124】
コンピューティング装置1200は、プロセッサ1202と、メモリ1204と、ストレージ装置1206と、メモリ1204および高速拡張ポート1210に接続する高速インターフェース1208と、低速バス1214およびストレージ装置1206に接続する低速インターフェース1212とを含む。構成要素1202,1204,1206,1208,1210および1212の各々は、様々なバスを用いて相互接続され、共通のマザーボード上に、または適切に他の方法で取り付けられ得る。プロセッサ1202は、高速インターフェース1208に結合されるディスプレイ1216などの外部の入力/出力装置上のグラフィカルユーザーインターフェース(GUI:Graphical User Interface)のためのグラフィカル情報を表示するための、メモリ1204においてまたはストレージ装置1206上に格納された指令を含む、コンピューティング装置1200内での実行のための指令を処理できる。他の実施形態において、多数のメモリおよび多数種類のメモリとともに、多数のプロセッサおよび/または多数のバスが適切に用いられ得る。また、多数のコンピューティング装置400は、(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)必要なオペレーションの一部を提供する各装置と接続され得る。
【0125】
メモリ1204は、コンピューティング装置1200内に情報を格納する。ある実施形態において、メモリ1204は、揮発性メモリユニット(unit or units)であり得る。他の実施形態において、メモリ1204は、不揮発性メモリユニット(unit or units)であり得る。メモリ1204は、磁気または光ディスクなどの、他の形態のコンピュータ読み取り可能な媒体でもあり得る。
【0126】
ストレージ装置1206は、コンピューティング装置1200のための大容量ストレージを提供できる。ある実施形態において、ストレージ装置1206は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光ディスク装置、もしくはテープ装置、フラッシュメモリもしくは他の同様の固体メモリ装置、またはストレージエリアネットワークもしくはその他の構成における装置を含む、装置のアレイなどの、コンピュータ読み取り可能な媒体であり得るか、または当該媒体を含み得る。コンピュータプログラム製品は、情報担体において有形に具現化される。コンピュータプログラム製品は、実行されると上述の方法などの1つまたは複数の方法を行う指令も含む。情報担体は、メモリ1204、ストレージ装置1206もしくはプロセッサ1202上のメモリなどの、コンピュータ読み取り可能な媒体または機械読み取り可能な媒体である。
【0127】
低速コントローラ1212が低帯域幅集約型のオペレーションを管理する一方で、高速コントローラ1208は、コンピューティング装置1200に対する帯域幅集約型のオペレーションを管理する。機能のそのような割り当ては例示的であるにすぎない。ある実施形態において、高速コントローラ1208は、メモリ1204と、(例えば、グラフィックスプロセッサまたはアクセラレータを通じて)ディスプレイ1216と、様々な拡張カード(図示しない)を受け入れ得る高速拡張ポート1210とに結合される。実施形態において、低速コントローラ1212は、ストレージ装置1206と低速拡張ポート1214とに結合される。様々な通信ポート(例えば、USB、ブルートゥース(登録商標)、イーサネット(登録商標)、ワイヤレスイーサネット)を含み得る低速拡張ポートは、キーボード、ポインティング装置、スキャナー、もしくは、例えばネットワークアダプタなどを介した、スイッチもしくはルーターなどのネットワーク装置などの1つまたは複数の入力/出力装置に結合され得る。
【0128】
コンピューティング装置1200は、図示されるように、多数の異なる形態において実現され得る。例えば、それは、標準サーバ1220としてまたはそのようなサーバのグループにおいて複数回実現され得る。それは、ラックサーバシステム1224の一部としても実現され得る。加えて、それは、ラップトップコンピュータ1222などのパーソナルコンピュータにおいて実現され得る。代替的に、コンピューティング装置1200からの構成要素は、装置1250などのモバイル装置(図示しない)における他の構成要素と組み合わされ得る。そのような装置の各々は、コンピューティング装置1200および1250のうちの1つまたは複数を含むことができ、全体のシステムは、互いに通信する複数のコンピューティング装置1200および1250から構成され得る。
【0129】
コンピューティング装置1250は、他の構成要素の中でも、プロセッサ1252と、メモリ1264と、ディスプレイ1254などの入力/出力装置と、通信インターフェース1266と、送受信機1268を含む。装置1250には、追加的なストレージを提供するために、マイクロドライブまたは他の装置などのストレージ装置も設けられ得る。構成要素1250,1252,1264,1254,1266および1268の各々は、様々なバスを用いて相互接続され、当該構成要素のうちいくつかは、共通のマザーボード上に、または他の方法で適切に取り付けられ得る。
【0130】
プロセッサ1252は、メモリ1264において格納される指令を含む、コンピューティング装置1250内で指令を実行できる。プロセッサは、別個かつ複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現され得る。プロセッサは、例えば、ユーザインターフェースの制御、装置1250によって実行されるアプリケーション、および装置1250による無線通信など、装置1250の他の構成要素の連携を提供し得る。
【0131】
プロセッサ1252は、制御インターフェース1258と、ディスプレイ1254に結合されたディスプレイインターフェース1256とを通してユーザと通信し得る。ディスプレイ1254は、例えば、薄膜トランジスタ液晶ディスプレイ(TFT LCD:Thin-Film-Transistor Liquid Crystal Display)、有機発光ダイオード(OLED:Organic Light Emitting Diode)ディスプレイまたは他の適切なディスプレイ技術であり得る。ディスプレイインターフェース1256は、グラフィカルな情報および他の情報をユーザに提示させるようにディスプレイ1254を駆動するための適切な回路を備え得る。制御インターフェース1258は、ユーザからの命令を受信し、プロセッサ1252への送信のためにそれらを変換し得る。加えて、外部インターフェース1262は、装置1250の他の装置との近距離通信を可能にするように、プロセッサ1252と通信して設けられ得る。外部インターフェース1262は、例えば、いくつかの実施形態において有線通信を、または他の実施形態において無線通信を提供してもよく、複数のインターフェースも用いられ得る。
【0132】
メモリ1264は、コンピューティング装置1250内の情報を格納する。メモリ1264は、コンピュータ読み取り可能な媒体(medium or media)、揮発性メモリユニット(unit or units)もしくは不揮発性メモリユニット(unit or units)のうち1つまたは複数として実現され得る。拡張メモリ1274も設けられ、例えばシングルインラインメモリモジュール(SIMM:Single In Line Memory Module)カードインターフェースを含み得る拡張インターフェース1272を通して装置1250に接続され得る。そのような拡張メモリ1274は、装置1250に対する割り増しのストレージ領域を提供し得るか、または装置1250に対するアプリケーションもしくは他の情報も格納し得る。特に、拡張メモリ1274は、上述されたプロセスを遂行または補完するための指令を含むことができ、安全な情報も含み得る。それゆえ、例えば、拡張メモリ1274は、装置1250に対するセキュリティモジュールとして設けられてもよく、装置1250の安全な使用を許可する指令とともにプログラムされ得る。加えて、ハッキング不可能な方法において付す、SIMMカード上の識別情報などの追加的な情報とともに、安全なアプリケーションがSIMMカードを介して提供され得る。
【0133】
メモリは、例えば、以下で論じられるように、フラッシュメモリおよび/またはNVRAMメモリを含み得る。ある実装形態において、コンピュータプログラム製品は、情報担体において有形に具現化される。コンピュータプログラム製品は、実行されると、上述された方法などの1つまたは複数の方法を行う指令を含む。情報担体は、メモリ1264、拡張メモリ1274、もしくは、例えば送受信機1268もしくは外部インターフェース1262を通して受信され得る、プロセッサ1252上のメモリなどの、コンピュータ読み取り可能な媒体または機械読み取り可能な媒体である。
【0134】
装置1250は、必要に応じてデジタル信号処理回路を含み得る通信インターフェース1266を通して無線で通信し得る。通信インターフェース1266は、様々なモードまたはプロトコルの下での通信のために、中でも、GSM(登録商標)音声通話、SMS、EMSもしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000またはGPRSを提供し得る。そのような通信は、例えば、無線周波数の送受信機1268を通じて行われ得る。加えて、ブルートゥース(登録商標)、WiFi(登録商標)、またはそのようなその他の送受信機(図示しない)を使用することなどの短距離通信が行われ得る。さらに、全地球測位システム(GPS:Global Positioning System)受信機モジュール1270は、追加的なナビゲーションおよび位置に関連する無線データを装置1250に提供してもよく、そのデータは、装置1250上で実行されるアプリケーションによって適切に用いられ得る。
【0135】
装置1250は、オーディオコーデック1260を用いて聞こえるように通信することもでき、オーディオコーデック1260は、ユーザから話された情報を受信し、それを使用可能なデジタル情報に変換し得る。オーディオコーデック1260は、同様に、例えば装置1250のハンドセットにおけるスピーカを介すること等により、ユーザに対して聞き取れる音を生成し得る。そのような音は、音声通話からの音を含むことができ、録音された音(例えば、音声メッセージ、音楽ファイルなど)を含むことができ、装置1250上で動作するアプリケーションによって生成される音も含み得る。
【0136】
コンピューティング装置1250は、図に示されるように、多数の異なる形態において実現され得る。例えば、それは、携帯電話1280として実現され得る。それは、スマートフォン1282、携帯情報端末、または他の同様のモバイル装置の一部としても実現され得る。
【0137】
本明細書で説明される様々な技法の実施形態は、デジタル電子回路において、またはコンピュータハードウェア、ファームウェア、ソフトウェアもしくはそれらの組み合わせにおいて実現され得る。実施形態は、例えばプログラムプロセッサ、コンピュータもしくは複数のコンピュータなどのデータ処理機器による実行のための、または当該機器のオペレーションを制御するための、コンピュータプログラム製品として、すなわち、例えば機械読み取り可能なストレージ装置などの情報担体において、または伝搬される信号において有形に具現化されるコンピュータプログラムとして実現され得る。上述されるコンピュータプログラム(複数可)などのコンピュータプログラムは、コンパイル型言語またはインタープリタ型言語を含む任意の形態のプログラミング言語において書かれることができ、独立型プログラムとして、またはモジュールとして、コンポーネント、サブルーチン、もしくはコンピューティング環境における使用に対して好適な他のユニットを含む任意の形態において配備され得る。コンピュータプログラムは、1つのコンピュータ上もしくは1つのサイトにおける複数のコンピュータ上で実行されるように、または複数のサイトにわたって分散され通信ネットワークによって相互接続されるように配備され得る。
【0138】
方法のステップは、入力データ上でオペレーションし出力を生成することによって機能を行うためのコンピュータプログラムを実行する1つまたは複数のプログラマブルプロセッサによって行われ得る。方法のステップは、特定用途向け論理回路、例えばフィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)または特定用途向け集積回路(ASIC:application-specific integrated circuit)によっても行われることができ、機器が当該特定用途向け論理回路として実現され得る。
【0139】
コンピュータプログラムの実行のために好適なプロセッサは、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方と、任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサとを含み得る。一般に、プロセッサは、リードオンリメモリもしくはランダムアクセスメモリまたはその両方から指令およびデータを受信する。コンピュータの要素は、指令を実行するための少なくとも1つのプロセッサと、指令およびデータを格納するための1つまたは複数のメモリ装置とを含み得る。一般に、コンピュータは、例えば磁気ディスク、光磁気ディスクもしくは光ディスクなどの、データを格納するための1つもしくは複数の大容量ストレージ装置も含むか、当該大容量ストレージ装置からデータを受信するかもしくは当該大容量ストレージ装置にデータを転送するよう動作可能にも結合されるか、またはその両方であり得る。コンピュータプログラム指令およびデータを具現化するために好適な情報担体は、半導体メモリ装置、例えばEPROM、EEPROMおよびフラッシュメモリ装置と、磁気ディスク、例えば内部のハードディスクまたはリムーバブルディスクと、光磁気ディスクと、CD−ROMおよびDVD−ROMディスクとを例として含む、全ての形態の不揮発性メモリを含む。プロセッサおよびメモリは、専用の論理回路によって補完され得るか、または当該回路に組み込まれ得る。
【0140】
ユーザとの対話を提供するために、実施形態は、ユーザに情報を表示するためのディスプレイ装置、例えば陰極線管(CRT:cathode ray tube)または液晶ディスプレイ(LCD:liquid crystal display)モニターと、キーボードおよび例えばマウスまたはトラックボールなどのポインティング装置とを有するコンピュータ上で実現され得る。ユーザは、当該キーボードおよびポインティング装置により、コンピュータに入力を与えることができる。他の種類の装置は、同様に、ユーザとの対話を提供するために用いられ得る。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚のフィードバック、一例として、視覚のフィードバック、聴覚のフィードバック、または触覚のフィードバックであり得る。そして、ユーザからの入力は、音響、音声または触覚の入力を含む、任意の形態において受信され得る。
【0141】
実施形態は、例えばデータサーバとしてのバックエンド構成要素を含むか、もしくはミドルウェア構成要素、例えばアプリケーションサーバを含むか、もしくはフロントエンド構成要素、例えばグラフィカルユーザーインターフェースを有するクライアントコンピュータ、もしくはユーザがウェブブラウザを通じて実施形態と対話できる当該ウェブブラウザを、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組み合わせを含むコンピューティングシステムにおいて実現され得る。構成要素は、例えば通信ネットワークなどの、デジタルデータ通信の任意の形態または媒体により相互接続され得る。通信ネットワークの例は、例えばインターネットなどの、ローカルエリアネットワーク(LAN:local area network)およびワイドエリアネットワーク(WAN:wide area network)を含む。
【0142】
本明細書で説明される例示的な実施形態に基づくコンピューティング装置は、ユーザ装置、ユーザインターフェース(UI:user interface)装置、ユーザ端末、クライアント装置、もしくは顧客装置を含む、ユーザとインターフェースするように構成されている、ハードウェアおよび/またはソフトウェアの任意の適切な組合せを用いて実現され得る。コンピューティング装置は、例えばラップトップコンピュータなどのポータブルコンピューティング装置として実施され得る。コンピューティング装置は、例えば、PDA、ノートブックコンピュータ、またはタブレットコンピュータなど、ユーザとインターフェースすることに適した、いくつかの他のタイプのポータブルコンピューティング装置として実現され得る。コンピューティング装置は、例えば、PCなどの、ユーザとインターフェースすることに適した、いくつかの他のタイプのコンピューティング装置として実現され得る。コンピューティング装置は、ユーザとインターフェースすることと、モバイル通信ネットワークを含むネットワークを通じた無線通信とに適したポータブル通信装置(例えば、携帯電話、スマートフォン、ワイヤレス携帯電話など)として実現され得る。
【0143】
コンピュータシステム(例えば、コンピューティング装置)は、無線周波数(RF:radio frequency)、マイクロ波周波数(MWF:microwave frequency)および/または赤外線周波数(IRF:infrared frequency)無線通信技術とネットワークを通じた通信に適したプロトコルとを含む、任意の公知の無線通信技術とプロトコルとを用いてネットワークサーバと確立された通信リンクを介したネットワークを通じてネットワークサーバと無線通信するように構成され得る。
【0144】
本開示の態様に従うと、本明細書で説明される様々な技法の実施形態は、デジタル電子回路において、またはコンピュータハードウェア、ファームウェア、ソフトウェア、もしくはそれらの組み合わせにおいて実現され得る。実施形態は、データ処理機器(例えばプログラマブルプロセッサ、コンピュータまたは複数のコンピュータ)による処理のための、または当該機器のオペレーションを制御するための、コンピュータプログラム製品(例えば、情報担体、機械読み取り可能なストレージ装置、コンピュータ読み取り可能な媒体、およびコンピュータ読み取り可能な有形な媒体において有形に具現化されるコンピュータプログラム)として実現され得る。いくつかの実施形態において、コンピュータ読み取り可能な有形のストレージ媒体は、実行されるとプロセッサにプロセスを行わせる指令を格納するように構成され得る。上述されるコンピュータプログラム(複数可)などのコンピュータプログラムは、コンパイル型言語またはインタープリタ型言語を含む任意の形態のプログラミング言語において書かれることができ、独立型プログラムとして、またはモジュールとして、コンポーネント、サブルーチン、もしくはコンピューティング環境における使用に対して好適な他のユニットを含む任意の形態において配備され得る。コンピュータプログラムは、1つのコンピュータ上でもしくは1つのサイトにおける複数のコンピュータ上で処理されるように、または複数のサイトにわたって分散され通信ネットワークによって相互接続されるように配備され得る。
【0145】
本明細書で開示される特定の構造的および機能的な詳細は、例示的な実施形態を説明する目的のための代表的なものにすぎない。しかしながら、例示的な実施形態は、多くの代替的な形態において具現化されてもよく、本明細書で説明される実施形態のみに限定されると解釈されるべきでない。
【0146】
本明細書で用いられる用語は、特定の実施形態を説明する目的のためにすぎず、実施形態の限定を意図されていない。本明細書で用いられるとき、単数形「a」、「an」および「the」は、文脈が明確にそうでないことを示さない限り、複数形も同様に含むことが意図される。用語「備える(comprises)」、「備える(comprising)」、「含む(includes)」および/または「含む(including)」は、本明細書において用いられるとき、記載される特徴、ステップ、オペレーション、要素および/または構成要素の存在を特定するが、1つもしくは複数の他の特徴、ステップ、オペレーション、要素、構成要素および/もしくはそれについてのグループの存在または追加を排除しないことがさらに理解されるであろう。
【0147】
ある要素が、別の要素に「結合される」か、「接続される」かもしくは「応答する」か、または「上にある」と言及されるとき、当該ある要素は、他の要素に直接的に結合されるか、接続されるかもしくは応答するか、もしくは当該他の要素の上にあるか、または介在する要素も存在し得ることが理解されるであろう。対照的に、ある要素が、別の要素に「直接的に結合される」か、「直接的に接続される」かもしくは「直接応答する」か、または当該別の要素の「直接上にある」と言及されるとき、介在する要素は存在しない。本明細書で用いられるとき、用語「および/または」は、関連付けられ列挙される項目の1つまたは複数の任意の全ての組み合わせを含む。
【0148】
例えば「下(beneath)」、「下(below)」、「下(lower)」、「上(above)」、「上(upper)」などの空間的に相対的な用語は、本明細書において、説明の容易化のために用いられ、図に示されるように、別の要素(複数可)または特徴(複数可)との関係において1つの要素または特徴を説明し得る。空間的に相対的な用語は、図に示される向きに加えて、使用中またはオペレーション中の装置の異なる向きを包含することを意図されていることが理解されるであろう。例えば、図における装置が反転される場合、他の要素もしくは特徴の「下(below)」または「下(lower)」として説明される要素は、当該他の要素または特徴の「上(above)」に方向付けられる。それゆえ、用語「下(below)」は、上(above)および下(below)の向きの両方を包含できる。当該装置は、別の方法で(120度回転されて、または他の方向付けにおいて)向き付けられてもよく、本明細書で用いられる空間的に相対的な記述子は、それに応じて解釈され得る。
【0149】
概念の例示的な実施形態は、例示的な実施形態の理想化される実施形態(および中間の構造)の概略的な例示である断面的な例示を参照して本明細書で説明される。そのため、例えば、製造技術および/または公差の結果としての例示の形状からの変化が予期される。それゆえ、説明される概念の例示的な実施形態は、本明細書で例示される領域の特定の形状に限定されるとして解釈されるべきではなく、例えば製造から結果として生じる、形状における逸脱を含むとして解釈されるべきである。したがって、図に例示される領域は、本質的に概略的であり、それらの形状は、装置の領域の実際の形状を例示すことを意図されておらず、例示的な実施形態の範囲を限定することを意図されていない。
【0150】
「第1」および「第2」などの用語は、様々な要素を説明するために本明細書で用いられ得るが、これらの要素は、これらの用語によって限定されるべきではないことを理解されるであろう。これらの用語は、ある要素を別の要素から区別するために用いられるにすぎない。それゆえ、本実施形態の教示から逸脱することなく、「第1の」要素は、「第2の」要素と呼ばれ得る。
【0151】
他に定義されない限り、本明細書で用いられる全ての用語(技術用語および科学用語を含む)は、これらの概念が属する技術における当業者によって一般に理解されるものと同じ意味を有する。一般に用いられる辞書において定義される用語などの用語は、関連技術および/または本明細書の文脈におけるそれらの意味と整合する意味を有するとして解釈されるべきであり、本明細書において明白にそのように定義されない限り、理想化された意味かまたは過度に形式的な意味において解釈されるべきではないことがさらに理解されるであろう。
【0152】
説明された実施形態のある特徴が、本明細書で説明されるように例示されてきたが、当業者には、多くの修正、置換、変更、および均等物が思い浮かぶであろう。それゆえ、添付される請求の範囲は、実施形態の範囲内に入るそのような全ての修正および変更を網羅することを意図されていることを理解されるであろう。それらは、限定ではなく例としてのみ提示されたものであり、形態および詳細における様々な変更が行われ得ることを理解されるべきである。本明細書で説明される機器および/または方法の任意の部分は、相互に排他的な組み合わせを除き、任意の組み合わせにおいて組み合わせられ得る。本明細書で説明される実施形態は、説明された異なる実施形態の機能、構成要素および/もしくは特徴の、様々な組合せならびに/またはサブコンビネーションを含み得る。