(57)【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、前記方法は、
仮想現実体験のための頭部姿勢予測に対する要求を受信することと、
前記仮想現実体験に関連付けられた、少なくとも１つの位置インジケータと少なくとも１つの回転インジケータとを識別することと、
前記少なくとも１つの位置インジケータと前記少なくとも１つの回転インジケータとを、複数のセルを備える再帰型ニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）に提供することとを含み、前記ＲＮＮは、複数の再帰的なステップを含み、前記複数の再帰的なステップは、各々、前記複数のセルのうちの少なくとも１つと、少なくとも１つの全結合（ＦＣ：fully connected）層とを含み、前記複数のセルのうちの少なくともいくつかは、履歴の期間に関連付けられており、
前記方法は、さらに、
前記ＲＮＮを用いて、少なくとも１つの来たるべき期間のための前記仮想現実体験に対する頭部姿勢変化に対応する少なくとも１つの姿勢予測を生成することと、
前記要求に応答して前記少なくとも１つの姿勢予測を提供し、前記少なくとも１つの姿勢予測に基づいて、前記仮想現実体験における仮想現実コンテンツの表示をトリガすることとを含む、方法。
【請求項２】
前記少なくとも１つの位置インジケータは、３次元の頭部位置ベクトルであり、前記少なくとも１つの回転インジケータは、４次元の四元数である、請求項１に記載の方法。
【請求項３】
前記少なくとも１つの回転インジケータは、
偏揺れ、縦揺れ、および横揺れを含むか、または、
回転の量を表す大きさと、回転の軸を表す方向とを有する３次元ベクトルを含む、請求項１または請求項２に記載の方法。
【請求項４】
前記ＲＮＮは、
前記少なくとも１つの姿勢予測に基づいて追加的な候補予測を生成し、
前記追加的な候補予測の各々に対して平均二乗誤差を決定するように構成されており、
前記平均二乗誤差は、それぞれの追加的な候補予測を捨てるべきか否かを示す、請求項１〜請求項３のいずれか１項に記載の方法。
【請求項５】
前記ＲＮＮは、さらに他の来たるべき期間における頭部姿勢変化に対して追加的な候補予測を再帰的に決定するように構成されている、請求項１〜請求項４のいずれか１項に記載の方法。
【請求項６】
頭部姿勢予測に対する前記要求を受信することは、ネットワークを通じたクライアント装置からの履歴の頭部姿勢データの受け付けを含み、
頭部姿勢変化に対する前記少なくとも１つの姿勢予測を提供することは、頭部姿勢変化に対する前記少なくとも１つの姿勢予測に基づいて、前記ネットワークを通じて前記クライアント装置に、前記仮想現実体験においてレンダリングされるコンテンツを提供することを含む、請求項１〜請求項５のいずれか１項に記載の方法。
【請求項７】
拡張現実環境において姿勢を予測するためのコンピュータで実施される方法であって、前記方法は、
前記拡張現実環境におけるユーザの動きに対応する履歴の姿勢データを取得することと、
前記履歴の姿勢データから決定される姿勢特徴を含む第１の履歴ベクトルシーケンスを生成することと、
前記第１の履歴ベクトルシーケンスを用いて再帰型ニューラルネットワーク（ＲＮＮ）を実行して、来たるべき期間に対する第１の姿勢予測を決定することとを含み、前記ＲＮＮは、複数の長・短期記憶（ＬＳＴＭ：long short-term memory）セルと少なくとも１つの全結合ニューラルネットワーク層とを含み、
前記方法は、さらに、
前記ＲＮＮを用いて、前記第１の姿勢予測と前記複数のＬＳＴＭセルのうちの少なくとも１つの状態とを受信することに応答して後続の期間に対する複数の追加的な姿勢予測を再帰的に生成することを含む、方法。
【請求項８】
前記拡張現実環境におけるユーザの動きに対応する前記履歴の姿勢データは、前記ユーザの動きに関連付けられた、速度または加速度の測定値を含む、請求項７に記載の方法。
【請求項９】
前記来たるべき期間を超える対応する期間における前記追加的な姿勢予測に基づいて、拡張現実コンテンツを表示する位置を決定することと、
前記拡張現実環境における表示のための前記拡張現実コンテンツのレンダリングをトリガすることとをさらに含む、請求項７または請求項８に記載の方法。
【請求項１０】
前記第１の履歴ベクトルシーケンスは、計算される平均値と計算される分散値とに少なくとも部分的に基づいて正規化される前記ＲＮＮへの入力を表し、
前記第１の姿勢予測および前記複数の追加的な姿勢予測は、拡張現実コンテンツを表示する位置を決定する前に、前記計算される平均値と前記計算される分散値とに基づいて非正規化される、請求項７〜請求項９のいずれか１項に記載の方法。
【請求項１１】
前記複数のＬＳＴＭセルにおける各ＬＳＴＭセルの状態は、次の逐次の姿勢予測とともに前記ＲＮＮへの入力として提供され、
前記複数の追加的な姿勢予測は、前記複数のＬＳＴＭセルにおける各ＬＳＴＭセルの前記状態に少なくとも部分的に基づく、請求項７〜請求項１０のいずれか１項に記載の方法。
【請求項１２】
前記ＲＮＮは、既知の姿勢シーケンスのデータベースに基づいて訓練され、
前記履歴の姿勢データは、拡張現実アプリケーションを実行するモバイル装置に関連付けられた逐次の姿勢データである、請求項７〜請求項１１のいずれか１項に記載の方法。
【請求項１３】
前記ＲＮＮは、前記複数の追加的な姿勢予測の各々に対して、平均絶対誤差と、平滑化コストと、姿勢変化コストとを定義する誤差関数を決定するように構成されている、請求項７〜請求項１２のいずれか１項に記載の方法。
【請求項１４】
前記誤差関数は、前記複数の追加的な姿勢予測のうちの１つもしくは複数に関連付けられた、検出された角度誤差もしくは検出された眼の位置誤差に基づいて決定されるか、または、
前記誤差関数は、前記複数の追加的な姿勢予測の一部に基づく、重み付けられた誤差を表す、請求項１３に記載の方法。
【請求項１５】
コンピュータの少なくとも１つのプロセッサによって実行されることにより、前記コンピューターに請求項１〜請求項１４のいずれか１項に記載の方法を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
技術分野
本開示は、仮想現実（ＶＲ：Virtual Reality）および／または拡張現実（ＡＲ：Augmented Reality）体験および／または混合現実（ＭＲ：Mixed Reality）に関し、そのような体験を利用するユーザに関連付けられた姿勢を予測することに関する。
【背景技術】
【０００２】
背景
仮想現実（ＶＲ）システムまたは拡張現実（ＡＲ）システムによって生成される体験などの、没入型の体験において、トラッキングは、ＶＲ／ＡＲ体験の間のユーザの未来の動きに見通しを提供し得る。トラッキングは、ユーザが次にどこに動き得るかの予測によって補われ得る。ＶＲ／ＡＲコンテンツが、ＶＲ／ＡＲ可能な装置の位置と同じ位置における基地局上などで、遠隔でトラッキングおよび／またはレンダリングされるとき、装置からレンダリングサーバへ、および当該サーバから装置に戻る往復時間によって待ち時間がもたらされ得る。もたらされる待ち時間は、ユーザの動きを予測する精度において誤差を引き起こし得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
概要
１つまたは複数のコンピュータのシステムは、オペレーション中に当該システムに動作を行わせる、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせがシステム上にインストールされるようにすることによって特定のオペレーションまたは動作を行うように構成され得る。１つまたは複数のコンピュータプログラムは、データ処理機器によって実行されると当該機器に当該動作を行わせる指令を含むことによって、特定のオペレーションまたは動作を行うように構成され得る。
【０００４】
ある一般的な態様において、コンピュータで実施される方法が説明される。当該コンピュータで実施される方法は、拡張現実体験のための頭部姿勢予測に対する要求を受信することと、拡張現実体験に関連付けられた、少なくとも１つの位置インジケータと少なくとも１つの回転インジケータとを識別することと、当該少なくとも１つの位置インジケータと当該少なくとも１つの回転インジケータとを、複数のセルを含む再帰型ニューラルネットワーク（ＲＮＮ：Recurrent Neural Network）に提供することとを含む。ＲＮＮは、複数の再帰的ステップを含むことができ、当該複数の再帰的ステップは、各々、当該複数のセルのうちの少なくとも１つと少なくとも１つの全結合（ＦＣ：fully connected）層とを含む。当該複数のセルのうちの少なくともいくつかは、履歴の期間に関連付けられ得る。当該コンピュータで実施される方法は、ＲＮＮを用いて、少なくとも１つの来たるべき期間のための拡張現実体験に対する頭部姿勢変化に対応する少なくとも１つの姿勢予測を生成することと、要求に応答して当該少なくとも１つの姿勢予測を提供することと、当該少なくとも１つの姿勢予測に基づいて、拡張現実体験における拡張現実コンテンツの表示をトリガすることとをも含み得る。
【０００５】
当該コンピュータで実施される方法の特定の実施形態は、以下の特徴のいずれかまたは全てを含み得る。当該少なくとも１つの位置インジケータは、３次元の頭部位置ベクトルであり得、当該少なくとも１つの回転インジケータは、４次元の四元数であり得る。いくつかの実施形態において、当該少なくとも１つの回転インジケータは、偏揺れ、縦揺れ、および横揺れを含む。いくつかの実施形態において、当該少なくとも１つの回転インジケータは、回転の量を表す大きさと回転の軸を表す方向とを有する３次元ベクトルであり得る。
【０００６】
いくつかの実施形態において、ＲＮＮは、当該少なくとも１つの姿勢予測に基づいて追加的な候補予測を生成し、追加的な候補予測の各々に対する平均二乗誤差を決定するように構成されており、平均二乗誤差は、それぞれの追加的な頭部姿勢予測を捨てるべきか否かを示す。いくつかの実施形態において、ＲＮＮは、さらに他の来たるべき期間中における頭部姿勢変化に対する追加的な予測を再帰的に決定するように構成されている。
【０００７】
いくつかの実施形態において、頭部姿勢予測に対する要求を受信することは、ネットワークを通じたクライアント装置からの、履歴の頭部姿勢データの受け付けを含む。いくつかの実施形態において、頭部姿勢変化に対して当該少なくとも１つの姿勢予測を提供することは、頭部姿勢変化に対する当該少なくとも１つの姿勢予測に基づいて、ネットワークを通じてクライアント装置に、拡張現実体験においてレンダリングされるコンテンツを提供することを含む。
【０００８】
別の一般的な態様において、仮想現実環境における姿勢を予測するためのコンピュータで実施される方法は、仮想現実環境におけるユーザの動きに対応する履歴の姿勢データを取得することと、履歴の姿勢データから決定される姿勢特徴を含む第１の履歴ベクトルシーケンスを生成することと、第１の履歴ベクトルシーケンスを用いて再帰型ニューラルネットワーク（ＲＮＮ）を実行して、来たるべき期間に対する第１の姿勢予測を決定することとを含む。ＲＮＮは、複数の長・短期記憶（ＬＳＴＭ：Long short-term memory）セルと、少なくとも１つの全結合ニューラルネットワーク層とを含み得る。当該コンピュータで実施される方法は、ＲＮＮおよび第１の履歴ベクトルシーケンスを用いて、来たるべき期間のための第１の姿勢予測を生成することと、ＲＮＮを用いて、第１の姿勢予測と当該複数のＬＳＴＭセルのうちの少なくとも１つの状態とを受信することに応答して、後続の期間に対する複数の追加的な姿勢予測を再帰的に生成することとをさらに含み得る。
【０００９】
当該コンピュータで実施される方法の特定の実施形態は、以下の特徴のいずれかまたは全てを含み得る。例えば、仮想現実環境におけるユーザの動きに対応する履歴の姿勢データは、ユーザの動きに関連付けられた、速度または加速度の測定値を含み得る。いくつかの実施形態において、当該方法は、当該来たるべき期間を超える対応する期間における追加的な姿勢予測に基づいて仮想現実コンテンツを表示する位置を決定することと、仮想現実環境における表示のための仮想現実コンテンツのレンダリングをトリガすることとをさらに含み得る。
【００１０】
いくつかの実施形態において、第１の履歴ベクトルシーケンスは、計算される平均値と計算される分散値とに少なくとも部分的に基づいて正規化されるＲＮＮへの入力を表し、第１の姿勢予測および当該複数の追加的な姿勢予測は、仮想現実コンテンツを表示する位置を決定する前に、計算される平均値と計算される分散値とに基づいて非正規化される。いくつかの実施形態において、当該複数のＬＳＴＭセルにおける各ＬＳＴＭセルの状態は、次の逐次的な姿勢予測とともにＲＮＮへの入力として提供され、当該複数の追加的な姿勢予測は、当該複数のＬＳＴＭセルにおける各ＬＳＴＭセルの状態に少なくとも部分的に基づく。
【００１１】
いくつかの実施形態において、ＲＮＮは、既知の姿勢シーケンスのデータベースに基づいて訓練され、履歴の姿勢データは、仮想現実アプリケーションを実行するモバイル装置に関連付けられた逐次的な姿勢データである。いくつかの実施形態において、ＲＮＮは、当該複数の追加的な姿勢予測の各々に対して、平均絶対誤差と平滑化コストと姿勢変化コストとを定義する誤差関数を決定するように構成されている。
【００１２】
いくつかの実施形態において、誤差関数は、当該複数の追加的な姿勢予測のうちの１つもしくは複数に関連付けられた、検出された角度誤差または検出された眼の位置の誤差に基づいて決定される。いくつかの実施形態において、誤差関数は、当該複数の追加的な姿勢予測の一部に基づく、重み付けられた誤差を表す。
【００１３】
別の一般的な態様において、非一時的なコンピュータ読み取り可能な媒体上に有形に具体化されるコンピュータプログラム製品であって、実行されると、少なくとも１つのプロセッサに、拡張現実体験のための姿勢予測に対する要求を受信させ、拡張現実体験に関連付けられた、少なくとも１つの位置インジケータおよび少なくとも１つの回転インジケータを識別させ、当該少なくとも１つの位置インジケータおよび当該少なくとも１つの回転インジケータを、複数のセルを含む再帰的ニューラルネットワーク（ＲＮＮ）に提供させるように構成されている指令を備えるコンピュータプログラム製品。ＲＮＮは、複数の再帰的なステップを含み、当該複数の再帰的なステップは、各々、当該複数のセルの少なくとも１つと少なくとも１つの全結合（ＦＣ）層とを含み、当該複数のセルの少なくともいくつかは、履歴の期間に関連付けられる。当該方法は、少なくとも１つの来たるべき期間の拡張現実体験に対する姿勢変化に対応する少なくとも１つの姿勢予測を生成するためにＲＮＮを用いることと、要求に応答して当該少なくとも１つの姿勢予測を提供することと、当該少なくとも１つの姿勢予測に基づいて、拡張現実体験における拡張現実コンテンツの表示をトリガすることとをも含み得る。
【００１４】
当該コンピュータで実施される方法の特定の実施形態は、以下の特徴のいずれかまたは全てを含み得る。例えば、ＲＮＮは、当該少なくとも１つの予測に基づいて追加的な候補予測を生成し、追加的な候補予測の各々に対して平均二乗誤差を決定するように構成され得る。平均二乗誤差は、それぞれの追加的な姿勢予測を捨てるべきか否かを示し得る。
【００１５】
いくつかの実施形態において、当該少なくとも１つの回転インジケータは、回転の量を表す大きさと回転の軸を表す方向とを有する３次元ベクトルを備える。いくつかの実施形態において、当該少なくとも１つの位置インジケータは、３次元の頭部位置ベクトルであり、当該少なくとも１つの回転インジケータは、４次元の四元数である。
【００１６】
いくつかの実施形態において、当該複数のセルは、長・短期記憶（ＬＳＴＭ）セルであり、ＲＮＮは、さらに他の来たるべき期間における姿勢変化に対する追加的な予測を再帰的に決定するように構成されている。いくつかの実施形態において、ＲＮＮは、入力として、および当該来たるべき期間内の複数の時間ステップの各々に対して、当該来たるべき期間内のそれぞれの時間ステップに対応する、当該複数のＬＳＴＭセルにおけるそれぞれのＬＳＴＭセルに対する状態をエンコードするように構成されている。
【００１７】
説明される技法の実施形態は、ハードウェア、方法もしくはプロセス、またはコンピュータアクセス可能な媒体上のコンピュータソフトウェアを含み得る。
【００１８】
１つまたは複数の実施形態の詳細は、添付の図面および以下の説明において記述される。他の特徴は、説明および図面ならびに請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【００１９】
【図１】本明細書で説明される実施形態に従う、仮想現実（ＶＲ）、拡張現実（ＡＲ）環境または複合現実（ＭＲ）を利用するユーザによって体験される姿勢データの連続的なストリームを示す例示的なグラフである。
【図２】本明細書で説明される実施形態に従う、ＶＲおよび／またはＡＲおよび／またはＭＲ体験を提供するための例示的な頭部姿勢予測システムのブロックダイアグラムである。
【図３Ａ】本明細書で説明される実施形態に従う、再帰型ニューラルネットを示す例示的なダイアグラムである。
【図３Ｂ】本明細書で説明される実施形態に従う、再帰型ニューラルネットを示す例示的なダイアグラムである。
【図４】本明細書で説明される実施形態に従う、頭部姿勢予測システムに対する例示的なモデルアーキテクチャである。
【図５】本明細書で説明される実施形態に従う、図４のモデルを用いる推論中の逐次のサンプル選択を示す例示的なグラフである。
【図６】本明細書で説明される実施形態に従う、図４のモデルの訓練中のランダムなサンプル選択を示す例示的なグラフである。
【図７】本明細書で説明される実施形態に従う、頭部姿勢予測システムに対する例示的なモデルアーキテクチャである。
【図８】本明細書で説明される実施形態に従う、図７のモデルを用いる、前の状態を伝搬している間の訓練中の逐次のサンプル選択を示す例示的なグラフである。
【図９】本明細書で説明される実施形態に従う、図７のモデルを用いる、前の状態を伝搬している間の推論中の逐次のサンプル選択を示す例示的なグラフである。
【図１０】本明細書で説明される実施形態に従う、予測される頭部姿勢に基づいて、ＡＲまたはＶＲまたはＭＲ体験においてコンテンツを提供するためのプロセスの実施形態を示すフローチャートである。
【図１１】本明細書で説明される実施形態に従う、ＡＲまたはＶＲまたはＭＲ体験を提供するために頭部姿勢を予測するプロセスの実施形態を示すフローチャートである。
【図１２】本明細書で説明される実施形態に伴って用いられ得る、コンピュータ装置およびモバイルコンピュータ装置の例を示す。
【発明を実施するための形態】
【００２０】
様々な図面における同様または同一の参照番号の使用は、同様もしくは同一の要素または特徴の存在を示すことを意図されている。
【００２１】
詳細な説明
本明細書は、仮想現実（ＶＲ）体験または拡張現実（ＡＲ）体験を利用するユーザに関連付けられた姿勢を予測するための例示的なシステムおよび技法を説明する。特に、本明細書で説明されるシステムおよび技法は、機械学習を採用して、頭部姿勢データ（例えば、逐次の頭部姿勢の変化）、モバイル装置の姿勢データ、手の姿勢データまたは他の姿勢データをモデル化して、来たるべき期間（例えば、未来の時間）に対して予測される姿勢の精度を向上させ得る。本明細書全体にわたって記載される例において、特定の再帰型ニューラルネットワーク（ＲＮＮ）は、ＡＲ／ＶＲアプリケーションに対して改善された精度で姿勢をモデル化して予測するために用いられ得る。当該改善された精度は、ユーザの変化する頭の位置、手の位置、装置の位置などに関して予測誤差を低減するためにＲＮＮを用い、特定の時間間隔で対応する姿勢を評価することによって達成され得る。
【００２２】
ＶＲ／ＡＲアプリケーションが相互に影響し合うので、ユーザが見るものは、ユーザに関連付けられ決定される姿勢（すなわち、ユーザの頭、またはユーザにより把持されるモバイル装置の並進および回転など）に応答して変化し得る。ユーザの頭および装置の動きと、対応するＡＲ／ＶＲコンテンツがレンダリングされる時間との間の時間は、動きから表示までにかかる待ち時間（ＭＴＰ：Motion-to-photon latency）として定義される。ＭＴＰ待ち時間は、任意の数のＭＴＰ間隔を含み得る。ＭＴＰ間隔は、頭部姿勢読み出し時間、コンテンツレンダリング時間、表示／レンダリング時間、伝達時間、および／または処理アクティビティに関連付けられた他の時間を含むがこれらに限定されない任意の数の時間イベントによって定義され得る。ＭＴＰ待ち時間のために、システムによって検出された頭部姿勢（および一般に姿勢）と、表示時におけるユーザの実際の頭部姿勢とは、一致しないことがあり得る。その不一致は、表現されるコンテンツ、不正確にレンダリングされるコンテンツ、および／またはＶＲ／ＡＲアプリケーションを利用するユーザに対するシミュレータ症において知覚されるラグという結果になり得る。
【００２３】
本明細書で説明されるシステムおよび技法は、未来のＭＴＰ時間間隔における頭部の姿勢、装置の姿勢、手の姿勢などを予測することによって、改善される精度および認識される誤差の低減の利点を提供し得る。特に、本明細書で説明される、改善された頭部姿勢予測アルゴリズムは、約３０から約１５０ミリ秒の待ち時間を有するアプリケーションに対する精度を改善し得る。いくつかの実施形態において、本明細書で説明される改善された姿勢予測アルゴリズムは、各々が、誤った位置および／または時間においてコンテンツをレンダリングするという結果となり得る、予測される頭部姿勢に対する値をオーバーシュートすること、および／または予測される頭部姿勢に対する値をアンダーシュートすることを低減できる。
【００２４】
従来の頭部姿勢予測において、一定速度モデルは、頭部姿勢を予測するために用いられ得る。例えば、位置座標に対して線速度、および回転座標に対して角速度を用いて、速度と待ち時間とに基づいて、未来における頭部姿勢が更新され得る。そのような技法は、待ち時間の値が増加するにつれて、低い精度に悩まされ得る。さらに、ＶＲヘッドセットにおいて、視覚的な情報は、典型的には、空間におけるユーザの頭の位置および向き（例えば、頭の姿勢）に基づいて表示される。しかしながら、ユーザが頭を動かした時点と、視覚的なデータが装置（例えば、ＶＲヘッドセット、モバイル装置など）の画面上にレンダリングされる時点との間に時間遅延がある。この遅延は、慣性測定ユニット（ＩＭＵ：inertial measurement unit）読み出し時間、６ＤｏＦトラッキング時間、コンテンツレンダリング時間、ディスプレイスキャンアウト時間などを含むがこれらに限定されない異なる要因によるものであり得、さらに、レンダリングがヘッドセット上で（またはヘッドセットにつながれる装置上で）なされる従来のＶＲ／ＡＲシステムにおいて、この遅延は、典型的には約２０ミリ秒であるかまたはそれより小さい。遅延時間自体の低減は制限され得るが、本明細書で説明される技法は、実際の表示時間またはその近くにユーザの頭部姿勢がどのようになるであろうかを予測することによって、知覚される待ち時間の量を低減させることができる。
【００２５】
本明細書で説明されるシステムおよび技法は、過去におけるユーザの頭部姿勢の測定値を用いて、未来の所与の時間間隔においてユーザの頭部姿勢がどのようになるであろうかを予測できる。例えば、本明細書で説明されるシステムおよび技法は、再帰型ニューラルネットワーク（ＲＮＮ）を用いて、シーケンスデータ（例えば、頭部姿勢の逐次の変化）をモデル化し得る。そのようなシーケンスデータは、来たるべき期間のためのユーザに対する頭部姿勢を予測するために用いられ得る。そうするために、本明細書で説明されるシステムおよび技法は、未来の所与の時間における頭部姿勢を予測する一方で、長・短期記憶（ＬＳＴＭ）アーキテクチャおよびゲート付き回帰型ユニット（ＧＲＵ：Gated Recurrent Unit）アーキテクチャなどのＲＮＮベースのニューラルネットセルを採用して勾配消失を低減できる。ＲＮＮは、特定のＶＲ／ＡＲシステムを利用するユーザの頭部運動ダイナミクスを学習するために訓練（例えば、モデル化および訓練）され得る。訓練されるＲＮＮモデルは、特定のＡＲ／ＶＲコンテンツがユーザへの表示のためにレンダリングされるであろう瞬間における頭部姿勢を予測するために用いられ得る。以下に詳述されるように、未来の時間における頭部姿勢を予測するための２つのアーキテクチャが説明される。
【００２６】
【数１】
0006971359.tif 000002
【００２７】
姿勢ベクトルは６つの自由度を有するが、姿勢ベクトルは、回転の四元数表現のため７次元ベクトルを用いて表現され、当該７次元ベクトルは、１つの冗長な次元を含む。いくつかの実施形態において、および任意の所与の向きに対して、その向きを表す２つの四元数Ｑと−Ｑとがある。本開示全体を通して説明されるように、平均二乗誤差（ＭＳＥ：Mean Square Error）損失評価と、モデル訓練／推論とに対して、整合的な（すなわち、連続的な）四元数表現は、引き続くサンプル間の四元数表現における大きな変化をシステムが回避することを保証するために用いられ得る。本明細書で説明される例において、座標系の原点は、ＶＲ／ＡＲコンテンツを提供する装置のＩＭＵに位置し、偏揺れはＹ（例えばｙ軸）周りの回転であり、縦揺れはＸ（例えばｘ軸）周りの回転であり、横揺れはＺ（例えばｚ軸）周りの回転である。
【００２８】
【数２】
0006971359.tif 000003
【００２９】
【数３】
0006971359.tif 000004
【００３０】
一般に、姿勢予測アルゴリズム１０８は、以下で説明されるアルゴリズムのいずれかもしくは全てを、単独でまたは組み合わせて表し得る。本明細書で用いられるとき、用語「頭部姿勢」は、世界空間におけるユーザの頭部の位置および／または向きを表し得る。本明細書で用いられる場合、用語「世界空間」は、ユーザが住む物理的な空間を指す。本明細書で説明されるシステムおよび技法は、物理的な空間と、視覚的なコンテンツ（例えば、ＡＲコンテンツ、ＭＲコンテンツなど）がモデル化され表示される仮想的な空間との間の対応を生成してトラッキングするために、世界空間を活用し得る。本明細書で用いられるとき、ＭＴＰ待ち時間は、ユーザの動きがディスプレイ画面に十分に反映されるために用いられる時間を表す。例えば、ユーザが動きを行うときにユーザにより使用されるＶＲヘッドセットの画面上にユーザの動きを反映するための時間が１００ミリ秒である場合、そのとき、ＭＴＰ待ち時間は１００ミリ秒である。
【００３１】
いくつかの実施形態において、本明細書で説明される実施形態は、非ＶＲ環境および非ＡＲ環境において用いられ得る。例えば、６−ＤｏＦ姿勢トラッキングを活用する、任意の電子装置またはトラッキングシステムは、本明細書で説明される、ＲＮＮ予測法およびネットワークを活用し得る。例えば、少なくとも１つのカメラを用いてコンテンツをキャプチャするモバイル装置を身に付けて歩き回るユーザは、例えばモバイル装置ＩＭＵを介してトラッキングされ得る。トラッキングは、ユーザに対するコンテンツの予測表示を可能にできる、履歴の逐次の姿勢または動きとして用いられ得る。
【００３２】
図２は、本明細書で説明される実施形態に従う、例示的な頭部姿勢予測システム２００のブロックダイアグラムである。システム２００は、ＡＲ／ＶＲ可能な装置２０２などの電子装置を利用するユーザの頭部姿勢を予測し得る。本明細書で用いられるとき、姿勢は位置、向きまたは両方を指し得る。頭部姿勢予測システム２００は、例えば、世界空間においてＶＲ、ＡＲおよび／またはＭＲコンテンツを利用しながら、ユーザ移動および操作装置２０２に関して、電子装置２０２に対する頭部姿勢トラッキングおよび予測を提供し得る。
【００３３】
ＡＲ／ＶＲ装置２０２は、仮想現実（ＶＲ）、拡張現実（ＡＲ）および／または複合現実（ＭＲ）環境を生成し、仮想コンテンツを適切にレンダリングするために頭部姿勢予測を提供できる例示的な電子装置である。装置２０２は、例えば、ネットワーク２０５を通じてコンピューティング装置２０４（例えば、サーバまたは他の装置）から提供されるコンテンツ（例えば、ＡＲ／ＶＲ／ＭＲコンテンツ）を利用するユーザによって、世界空間において用いられ得る。ＡＲ／ＶＲ装置２０２を用いてコンテンツへアクセスすることは、コンピューティング装置２０４、ＡＲ／ＶＲ装置２０２上のローカルメモリ、もしくはネットワーク２０５に接続されるかもしくはネットワーク２０５にアクセスできる別の装置（図示しない）からＶＲ、ＡＲおよび／またはＭＲコンテンツを生成し、修正し、移動し、および／または選択することを含み得る。
【００３４】
図２に示されるように、ＡＲ／ＶＲ装置２０２は、ユーザインターフェースシステム２０６を含む。ユーザインターフェースシステム２０６は、少なくとも出力装置２０８と入力装置２１０とを含む。出力装置２０８は、例えば、視覚的な出力のためのディスプレイ、音声出力のためのスピーカなどを含み得る。入力装置２１０は、例えば、触覚のユーザ入力を受け付け得るタッチ入力装置、ハンドコントローラ、モバイル装置、および聞き取り可能なユーザ入力を受け付けることができるマイクロフォンなどを含み得る。
【００３５】
ＡＲ／ＶＲ装置２０２は、任意の数のセンサおよび／または装置も含み得る。例えば、ＡＲ／ＶＲ装置２０２は、トラッキングシステム２１２を含む。システム２１２は、例えば、光センサ、慣性測定ユニット（ＩＭＵ）センサ２１４、音声センサ２１６、画像センサ２１８、頭部姿勢検出器２２０、正規化器２２１、カメラ２２２、距離／近接センサ（図示しない）、位置センサ（図示しない）、ならびに／または他のセンサおよび／もしくはセンサの異なる組み合わせ（複数可）を含み（またはそれらを利用し）得る。システム２１２によって利用されるセンサのうちのいくつかは、ＡＲ／ＶＲ装置２０２の位置の検出およびトラッキングを提供し得る。システム２１２のセンサのうちのいくつかは、ユーザインターフェースシステム２０６の構成要素上での表示のための、物理的な環境の画像のキャプチャを提供し得る。
【００３６】
ＩＭＵセンサ２１４は、ＡＲ／ＶＲ装置２０２またはＶＲ／ＡＲ／周辺機器２４８に対して、角速度と線加速度とを検出または測定するために機能し得る。次いで、システム２００は、ＩＭＵセンサ２１４によって得られた測定値に基づいて、３次元の空間における３次元の向きを計算および／または推定できる。ＩＭＵセンサ２１４は、１つまたは複数の加速度計、ジャイロスコープ、磁力計、および他のそのようなセンサを含み得る。一般に、ＩＭＵセンサ２１４は、例えば、ＡＲ／ＶＲ装置２０２の運動、動き、速度および／または加速度を検出し得る。いくつかの実施形態において、ＡＲ／ＶＲ装置２０２を使用するユーザに関連付けられた姿勢（例えば、頭部の姿勢）は、例えば、ＩＭＵセンサ２１４および／または頭部姿勢検出器２２０によって提供されるデータに基づいて検出および／または推定され得る。推定される姿勢に基づいて、システム２００は、例えば、当該装置が動かされるときに、ＡＲ／ＶＲ装置２０２の変化された姿勢を反映するためにＡＲ／ＶＲ装置２０２の画面上に表現されるコンテンツを更新し得る。いくつかの実施形態において、推定される姿勢は、例えば、頭部姿勢予測システム２２４を用いて、未来の姿勢および／または頭部姿勢を予測するために、アルゴリズムおよび他のデータと組み合わされ得る。
【００３７】
画像センサ２１８は、カメラキャプチャに関連付けられた背景データにおける変化を検出し得る。カメラ２２２は、後面キャプチャモードと前面キャプチャモードとを含み得る。いくつかの実施形態において、カメラ２２２は、代わりに、モバイル装置／スマートフォンにおけるように、単一のカメラを含み得る。前面キャプチャモードは、任意の背景シーンを含むユーザをキャプチャし得る。システム２００は、ユーザがＡＲ／ＶＲ装置２０２を身に付けて移動するときに姿勢変化を検出し、姿勢変化に対応する位置においてＡＲ／ＶＲコンテンツを適切に表現するために用いられ得る。
【００３８】
ＡＲ／ＶＲ装置２０２は、頭部姿勢予測システム２２４も含み得る。システム２２４は、１つまたは複数の再帰型ニューラルネットワーク（ＲＮＮ）２２６と、エンコーダ／デコーダモデル２３０および状態伝搬モデル２３２を含むがこれらに限定されない予測アルゴリズム２２８とを含み得る（またはそれらを利用し得る）。
【００３９】
ＲＮＮ２２６は、ＡＲ／ＶＲ体験にあるとき、ユーザの移動および頭部姿勢の変更のシーケンスなど、入力のシーケンスを処理するために内部状態（例えば、メモリ）を活用し得る。いくつかの実施形態において、ＲＮＮ２２６は、有限インパルス再帰型ネットワークまたは無限インパルス再帰型ネットワークであり得る。いくつかの実施形態において、ＲＮＮ２２６は、複数の層を含む深層ＲＮＮであり得る。ＲＮＮ２２６は、ＬＳＴＭアーキテクチャ２３４もしくはＧＲＵアーキテクチャ２３６の１つまたは複数を含み得る。いくつかの実施形態において、システム２００は、どのアーキテクチャが誤差および／または待ち時間を低減するかを決定することに基づいて、アーキテクチャ２３４および２３６の両方を使用し得る。予測アルゴリズム２２８は、エンコーダ／デコーダモデル２３０と状態伝搬モデル２３２とを含むことができ、それらの各々は、図４〜図１０において以下で詳細に説明される。
【００４０】
ニューラルネットワーク２２６は、画像上で動作する検出器を含み、例えば、頭部姿勢の位置を計算し、頭部が世界空間において移動するときに頭部の予測される位置をモデリングし得る。加えて、ニューラルネットワーク２２６は、未来のいくつかの時間ステップの頭部姿勢の位置を計算するために動作し得る。
【００４１】
ＡＲ／ＶＲ装置２０２は、制御システム２４０も含み得る。制御システム２４０は、例えば、電力制御装置、音声およびビデオ制御装置、光学制御装置ならびに／または他のそのような装置および／もしくは装置の異なる組合せを含み得る。
【００４２】
システム２０６，２１２，２２４および２４０の各々は、特定の実施形態に応じて、より多いか、またはより少ない装置を含み得る。ＡＲ／ＶＲ装置２０２は、１つまたは複数のプロセッサ（例えば、ユーザインターフェースシステム２０６、システム２１２および２２８、制御システム２４０、メモリ２４４、カメラ２２２ならびに通信モジュール２４６と通信するＣＰＵ／ＧＰＵ２４２）も含み得る。通信モジュール２４６は、ＡＲ／ＶＲ装置２０２と他の外部の装置との間の通信を提供し得る。プロセッサ２４２は、特定のタスクを遂行するために（例えば、コンピュータプログラムなどの）指令を実行するように構成されている。いくつかの実施形態において、プロセッサ２４２の少なくとも１つは、頭部姿勢予測システム２２４およびトラッキングシステム２１２から決定されるデータに基づいて、ユーザおよび／またはＡＲ／ＶＲ装置に関連付けられた頭部姿勢を識別（例えば、予測）するための指令を実行する。メモリ２４４は、システム２００における要素間の通信および相互作用全体で活用され得る。
【００４３】
加えて、ＡＲ／ＶＲ装置２０２は、１つまたは複数のＶＲ／ＡＲ／ＭＲ周辺機器２４８を用いるか、または利用し得る。例示的な周辺機器２４８は、任意の数の制御装置、コンピューティング装置、ヘッドマウントディスプレイ装置、カメラ、スピーカ、トラッキングシステム、および／または、ＡＲ／ＶＲ装置２０２と通信する他の装置を含み得る。
【００４４】
いくつかの実施形態において、本明細書で説明される、予測アルゴリズムおよびＲＮＮは、サーバシステム上で実行および／または活用されてもよく、入力および／または出力は、例えば、姿勢予測を生成する際の使用のために、ネットワーク２０５を通じてストリーミングされるか、またはそうでなければ提供され得る。いくつかの実施形態において、本明細書において説明される、予測アルゴリズムおよびＲＮＮは、モバイル装置システムにおいて実行および／または活用されてもよく、入力および／または出力は、姿勢予測を生成する際の使用のためにモバイル装置システムによって生成され得る。
【００４５】
図３Ａおよび図３Ｂは、本明細書で説明される実施形態に従う、例示的な再帰型ニューラルネット（ＲＮＮｓ）３００Ａおよび３００Ｂを示すダイアグラムである。図３Ａに示されるように、ＲＮＮ３００Ａは、矢印３０４によって示されるように、状態がニューラルネットワーク３０２にフィードバックされる、折り畳まれた形態で示されている。図３Ｂに示されるように、図３ＡのＲＮＮは、ＲＮＮ３００Ｂとして広げられた形態で示されている。ＲＮＮ３００Ｂは、ＲＮＮ３００Ａと同じネットワークであるが、代わりに（Ｋ）個の時間ステップの間、展開される。したがって、各ニューラルネットワークセル３０２（または３０２ａ，３０２ｂ，３０２ｃ）内のパラメータは、全ての時間ステップにわたって同じである。
【００４６】
ＲＮＮは、ネットワークの固有の再帰性のために、モデル訓練段階中の勾配消失を示し得る。そのため、ＲＮＮは、長期間の依存性を学習することが困難であり得る。それゆえ、本明細書で説明されるシステムおよび技法は、長・短期記憶（ＬＳＴＭ）アーキテクチャおよびゲート付き再帰型ユニット（ＧＲＵ）アーキテクチャなどのＲＮＮベースのニューラルネットセル（例えば、図４におけるセル４１０）を活用して、ゲートと呼ばれるユニットを介してセルを通る情報の流れを変調できる。そのようなアーキテクチャは、入力、出力および忘却ゲートを有することができ、その各々は、訓練段階中にも学習されるパラメータを含み得る。ＬＳＴＭ ＲＮＮまたはＧＲＵ ＲＮＮは、頭部姿勢データのシーケンスを処理するためのコンピューティング装置として機能できる。当該シーケンスは、本明細書で説明されるシステムが、特定のユーザに対する頭部運動ダイナミクスを学習することを可能にできる。頭部運動ダイナミクスおよび当該シーケンスは、未来の少なくとも１つのＭＴＰ（動作から表示までにかかる時間）間隔（例えば、時間間隔）の、ユーザに対する頭部姿勢を予測するために用いられ得る。
【００４７】
いくつかの実施形態において、システム２００は、未来の１つまたは複数のＭＴＰの頭部姿勢を予測し得る。システム２００は、ＡＲ／ＶＲ環境における、仮想現実機材を操作するユーザの頭部運動ダイナミクスを学習するためにＲＮＮを活用し得る。いくつかの実施形態において、システム２００は、ＲＮＮを訓練して、特定のアプリケーションに対する予測情報を学習し得る。いくつかの実施形態において、システム２００は、環境に対して利用可能な各ＡＲ／ＶＲアプリケーションのための予測情報を学習するようにＲＮＮを訓練し得る。いくつかの実施形態において、システム２００は、特定のユーザに対する予測情報を学習するようにＲＮＮを訓練し得る。いくつかの実施形態において、システム２００は、各アプリケーションおよび／もしくはゲーム（もしくはアプリケーションおよび／もしくはゲームのクラス）に対して異なる頭部姿勢統計およびネットワークパラメータを有し得る、特定のＡＲ／ＶＲアプリケーションならびに／またはゲームのための予測情報を学習するようにＲＮＮを訓練でき、ＲＮＮは、異なる統計とパラメータとを学習できる。
【００４８】
図４は、本明細書で説明される実施形態に従う、頭部姿勢予測システムに対する例示的なモデルアーキテクチャ２３０である。モデルアーキテクチャ２３０は、エンコーダ／デコーダモデル２３０に対する推論グラフを表し得る。いくつかの実施形態において、モデルアーキテクチャ２３０は、ＬＳＴＭ（Ｎａ個）における活性化ユニット（例えば、セル）の数と、履歴サイズ／サンプルの数（Ｈ）と、予測ステップの数（Ｋ）と、学習レートとを含むがこれらに限定されないモデルハイパーパラメータを活用する。
【００４９】
【数４】
0006971359.tif 000005
【００５０】
【数５】
0006971359.tif 000006
【００５１】
いくつかの実施形態において、システム２００は、均一な時間サンプルを用いて履歴の頭部姿勢データを収集し得る。例えば、頭部姿勢検出器２２０は、ユーザが動くときにユーザの頭部姿勢を検出し得るが、頭部姿勢予測システム２２４は、頭部姿勢の一部（例えば、サンプリング）を用い得る。次いで、頭部姿勢予測システム２２４は、均一なサンプリングレートで頭部姿勢をサンプリングできる。例えば、頭部姿勢予測システム２２４は、サンプル間で約２〜約５ミリ秒でサンプリングをし得る。
【００５２】
いくつかの実施形態において、頭部姿勢予測システム２２４は、不均一なサンプリングレートを用い得る。例えば、頭部姿勢予測システム２２４は、第１のサンプリングレート（例えば、０．５〜１．５ミリ秒）で頭部姿勢の一部をサンプリングし、第２のサンプリングレート（例えば、９０〜１１０ミリ秒）で非頭部姿勢の第２の部分をサンプリングし得る。そのようなサンプリングレートは、随意の時間入力（ｔ）（例えば、（ｔ）４４０）によって示されるように、各セルへの時間の入力として提供され得る。いくつかの実施形態において、不均一なサンプリングは、データが均一なレートでサンプリングされるよう試みられているが、ノイズおよび他の要因によって、サンプルが正確には均一に間隔をあけられないときを指す。システムへの入力は、そのとき、均一なタイムスタンプとは異なる、各姿勢に対するタイムスタンプである。
【００５３】
【数６】
0006971359.tif 000007
【００５４】
（図２に定義される、ハードウェアとソフトウェアとを使用する）モデルアーキテクチャ２３０のオペレーションにおいて、ユーザ４２０は、ＶＲ／ＡＲ体験中にＶＲヘッドセット４２１を移動させることによって頭部姿勢入力（例えば、動き４１８）を提供し得る。代替的に、または頭部の動きに加えて、ユーザは、動き４１８に従って、モバイル装置４２３を動かすか、または用い得る。アーキテクチャ２３０は、ＶＲヘッドセット４２１からの頭部姿勢入力および／またはモバイル装置４２３から取得された姿勢入力を活用し得る。例えば、ユーザ４２０は、ＶＲ／ＡＲ装置（例えば、ヘッドマウントディスプレイ、モバイル装置、または仮想現実が可能な他の装置）を利用して、ＶＲ／ＡＲコンテンツを体験しながら頭部姿勢を生成できる。（システム２００と組み合わせた）モデルアーキテクチャ２３０は、トラッキング手段または他のセンシング手段によって頭部姿勢データを収集し得る。収集される頭部姿勢データ（または一般に姿勢データ）は、正規化器２２１によって正規化され、履歴の姿勢データとしての使用のためにエンコーダ部４０２に提供され得る。一般に、正規化は、特定の時間ウィンドウにわたって収集される多数の履歴姿勢データサンプルの平均および分散をとることを含み得る。そのような正規化は、生のＡＲ／ＶＲ体験中に生じる姿勢の変化に姿勢予測が適合可能であることを保証し得る。
【００５５】
それゆえ、エンコーダ部は、未来の頭部姿勢を予測するために、特定のＶＲ／ＡＲ体験における実際の履歴のユーザ頭部姿勢からの入力頭部姿勢を活用し得る。履歴の頭部姿勢は正規化され、各時間ステップに対して（各セルにおいて）ＬＳＴＭ層４０６に直接供給され得る。対照的に、デコーダ部４０４が入力姿勢を有さない（すなわち、入力姿勢がまだ予測されていない）ので、モデルアーキテクチャ２３０は、フィードバックループ４２２，４２４および４２６によって示されるように、以前の時間ステップからＬＳＴＭ層の次のセルに、予測された各姿勢をフィードバックする。特定の入力／出力が示されているが、省略符号によって様々な場所において示されるように、任意の数の入力／出力がモデルアーキテクチャ２３０により用いられ得る。
【００５６】
一般に、入力頭部姿勢は、上述されたように、頭部位置と四元数によって表される頭部回転とを含む。位置値の範囲は、ＡＲ／ＶＲ環境におけるユーザの位置に応じて変わり得る。そのような範囲は、典型的には０と１の間である四元数の値とは異なる。そのため、入力の特徴は、一般に、異なる範囲および異なる統計値を有する。例えば、偏揺れにおける回転は、典型的に、頭部の横揺れよりも大きな分散を有する。それゆえ、システム２００が全ての特徴を効率的に近似および／または予測することを学習できることを保証するために、データ特徴が正規化される。
【００５７】
【数７】
0006971359.tif 000008
【００５８】
訓練損失のために、システム２００は、頭部姿勢（例えば、位置および回転）に関して平均二乗誤差（ＭＳＥ）損失を用い得る。いくつかの実施形態において、システム２００は、頭部姿勢（例えば、位置および回転）に関する平均絶対誤差を用い得る。いくつかの実施形態において、システム２００は、（異なる待ち時間に対応する）ＬＳＴＭ層４０８の各出力ステップが異なるように重み付けされ得る加重平均二乗誤差を用い得る。これは、例えば、典型的な待ち時間のヒストグラムが均一でないが、他のものよりも一般的ないくらかの待ち時間があるときに用いられ得る。いくつかの実施形態において、システム２００は、位置に対して平均二乗誤差を用い、回転に対して角度誤差を用い得る。いくつかの実施形態において、システム２００は、（例えば、目の位置に対応する）仮想カメラの位置に基づいて損失関数を用い得る。この損失値は、当該位置および回転誤差を、１つの３次元の位置測度（例えば、眼の３次元の位置）に組み合わせる。
【００５９】
図５は、本明細書で説明される実施形態に従う、図４のモデル２３０を用いる、推論中の逐次のサンプル選択を示す例示的なグラフである。グラフ５００において示されるサンプリングアプローチは、推論中に用いられ得る。モデル２３０において、（Ｈ）個の履歴の姿勢のウィンドウ５０２は、未来における姿勢を予測するために用いられる。オペレーションにおいて、ＬＳＴＭセルの入力状態は、ゼロに初期化される。サンプルの次のセット（この例において、例えば、ウィンドウ５０４，ウィンドウ５０６およびウィンドウ５０８）に対してウィンドウが選択される度に、システム２００は、再び状態をゼロに初期化する。状態をゼロに初期化することは、各特定のセルのメモリが、あるウィンドウサンプルから他のウィンドウサンプルに伝搬されないことを保証する。図４において上述されたように、このアプローチは、サンプルのウィンドウごとに履歴正規化をシステム２００が用いることを可能にする。
【００６０】
訓練中、システム２００は、各反復において訓練データセットの均一なカバレージを達成するために、各反復でデータサンプル（およびそれらのＨ個の履歴）をランダムに選択できる。図６は、図４のモデルの訓練中のランダムなサンプル選択を示す例示的なグラフ６００である。例えば、サンプルのランダム選択および／または利用は、各サンプルに対するゼロ状態初期化と共に姿勢トレースからであり得る。サンプルの各ウィンドウは、モデル２３０を用いて独立して実行され得る。この独立性のために、モデル２３０は、ランダムにアクセスされる、サンプルのウィンドウ上で実行され得るか、または次々にアクセスされる、サンプルのウィンドウ上で実行され得るが、両方の場合において、状態がゼロに初期化される。
【００６１】
グラフ６００に示されるように、システム２００は、データサンプルのウィンドウ（例えば、データサンプル６０２のウィンドウ、データサンプル６０４のウィンドウ、および／またはデータサンプル６０６のウィンドウ）をランダムに選択し得る。サンプルの各ウィンドウに対して、システム２００は、正規化器２２１を用いてサンプルを正規化し得る。次いで、予測子の状態は、ゼロに設定されることができ、頭部姿勢予測システム２２４は、エンコーダ／デコーダモデル２３０または状態伝搬モデル２３２のいずれかに対してＬＳＴＭアーキテクチャ２３４またはＧＲＵアーキテクチャ２３６を実施することによって、未来における次の姿勢を予測できる。
【００６２】
図７は、本明細書で説明される実施形態に従う、頭部姿勢予測システムに対する例示的なモデルアーキテクチャ２３２である。モデルアーキテクチャ２３２は、状態伝搬アルゴリズム２３２に対する推論グラフを表し得る。いくつかの実施形態において、モデルアーキテクチャ２３２は、ＬＳＴＭ（Ｎａ個）における活性化ユニット（例えば、セル）の数と、履歴サイズ／サンプルの数（Ｈ）と、予測ステップの数（Ｋ）と、学習レートとを含むがこれらに限定されないモデルハイパーパラメータを活用する。
【００６３】
示されるように、モデルアーキテクチャ２３２は、エンコーダ部７０２とデコーダ部７０４とを含む。エンコーダ部７０２は、少なくともＬＳＴＭ層７０６および全結合層７０８を含む。ＬＳＴＭ層７０６は、全結合層７０８に接続される。各ＬＳＴＭセル（例えば、セル７１０）は、ＲＮＮにおいてＮａ個の数の活性化ユニットを含み、添え字「ａ」は、状態テンソルを表す。
【００６４】
【数８】
0006971359.tif 000009
【００６５】
いくつかの実施形態において、システム２００は、均一な時間サンプルを用いてモデルアーキテクチャ２３２に対する履歴の頭部姿勢データを収集し得る。例えば、頭部姿勢検出器２２０は、ユーザ７２０が移動するとき、ユーザ７２０の頭部姿勢を検出し得るが、頭部姿勢予測システム２２４は、頭部姿勢の一部（例えば、サンプリング）を用い得る。次いで、頭部姿勢予測システム２２４は、均一なサンプリングレートで頭部姿勢をサンプリングし得る。例えば、頭部姿勢予測システム２２４は、サンプル間で約２〜約１５ミリ秒でサンプリングをし得る。
【００６６】
いくつかの実施形態において、頭部姿勢予測システム２２４は、不均一なサンプリングレートを用い得る。例えば、頭部姿勢予測システム２２４は、第１のサンプリングレート（例えば、０．５〜１．５ミリ秒）で頭部姿勢の一部をサンプリングし、第２のサンプリングレート（例えば、９０〜１１０ミリ秒）で他の姿勢の第２の部分をサンプリングし得る。そのようなサンプリングレートは、随意の時間入力（ｔ）（例えば、（ｔ）７２４）によって示されるように、各セルへの時間の入力として提供され得る。いくつかの実施形態において、不均一なサンプリングは、データが均一なレートでサンプリングされるよう試みられているが、ノイズおよび他の要因によってサンプルが正確には均一に間隔を空けられないときを指す。そのとき、システムへの入力は、均一なタイムスタンプとは異なる、各姿勢に対するタイムスタンプである。
【００６７】
各サンプルに対して状態をゼロにリセットするモデルアーキテクチャ２３０とは対照的に、モデルアーキテクチャ２３２は、以前の履歴の頭部姿勢サンプルから状態を考慮する。例えば、モデルアーキテクチャ２３０において、Ｈ個の履歴の頭部姿勢のウィンドウは、収集されて未来における姿勢を予測する。ＬＳＴＭアーキテクチャの入力状態は、他のサンプルを考慮することなく、各サンプルに対してゼロに初期化される。次のサンプルに対してウィンドウが選択されると、状態はゼロに初期化される。すなわち、セルのメモリは、あるウィンドウサンプルから他のウィンドウサンプルへ伝搬されない。上述されたように、このアプローチは、システム２００がサンプルごとに履歴正規化を用いることを可能にする。モデルアーキテクチャ２３２において、ＬＳＴＭ状態は、代わりに、あるサンプルから次のサンプルに伝搬され、常にゼロに初期化されるとは限らない。そうするために、システム２００は、所与の頭部姿勢トレース内でサンプルを次々に選択および／または利用し得る。モデルアーキテクチャ２３２のこの例示的な使用において、状態は、全体の頭部姿勢トレースの初めにおいてゼロに初期化される。いくつかの実施形態において、本明細書で説明されるモデルアーキテクチャ２３２およびシステムは、例えば、システムがトラッキングデータを失うときか、またはアプリ／セッションがユーザによって一時停止される場合に、状態をリセットする必要があり得る。
【００６８】
【数９】
0006971359.tif 000010
【００６９】
（図２に定義されるハードウェアおよびソフトウェアを用いる）モデルアーキテクチャ２３２のオペレーションにおいて、ユーザ７２０は、ＶＲ／ＡＲ体験中にＶＲヘッドセット７２１を動かすことによって頭部姿勢入力（例えば、動き７１８）を提供し得る。代替的に、または頭の動きに加えて、ユーザは、動き７１８に従ってモバイル装置７２３を動かすか、または用い得る。アーキテクチャ２３２は、ＶＲヘッドセット７２１からの頭部姿勢入力、および／またはモバイル装置７２３から取得された姿勢入力を活用し得る。例えば、ユーザ７２０は、ＶＲ／ＡＲコンテンツを体験しながら頭部姿勢を生成するためにＶＲ／ＡＲ装置（例えば、ヘッドマウントディスプレイ、モバイル装置、または仮想現実が可能な他の装置）を利用し得る。（システム２００と組み合わせた）モデルアーキテクチャ２３２は、トラッキング手段または他のセンシング手段によって頭部姿勢データを収集し得る。
【００７０】
エンコーダ部７０２は、未来の頭部姿勢を予測するために、特定のＶＲ／ＡＲ体験における実際の履歴のユーザの頭部姿勢から入力頭部姿勢を活用し得る。履歴の頭部姿勢は、各時間ステップに対して（例えば、各セル７３２，７３４および７３６などにおける）ＬＳＴＭ層に直接供給され得る。デコーダ部７０４が入力姿勢を有さない（すなわち、入力姿勢がまだ予測されていない）ので、モデルアーキテクチャ２３２は、フィードバックループ７２６，７２８および７３０によって示されるように、以前の時間ステップからＬＳＴＭ層の次のセルに、予測される各姿勢をフィードバックする。特定の入力／出力が示されているが、省略符号によって様々な場所において示されるように、任意の数の入力／出力がモデルアーキテクチャ２３２によって用いられ得る。
【００７１】
デコーダ７０４は、任意の数のＬＳＴＭセル（例えば、セル７３２）を用いて、頭部姿勢予測を生成し得る。例えば、各ＬＳＴＭセルは、予測がシステム２００によって要求され得る総時間（ｔ）にわたる時間の一部を表し得る。すなわち、予測が要求される時間（例えば、未来の１０ミリ秒）を総時間が表し得る場合、予測は、特定の時間ステップで（例えば、３ミリ秒ごとに）各ＬＳＴＭセルにおいて行われ得る。
【００７２】
【数１０】
0006971359.tif 000011
【００７３】
一般に、入力頭部姿勢は、上述されたように、頭部位置と四元数によって表される頭部回転とを含む。位置の値の範囲は、ＡＲ／ＶＲ環境におけるユーザの位置に応じて変わり得る。そのような範囲は、典型的には０と１の間である四元数の値とは異なる。それゆえ、入力特徴は、一般に、異なる範囲および異なる統計を有する。
【００７４】
同様に、入力姿勢（例えば、手の姿勢、モバイル装置の姿勢）は、上述されたように、位置と四元数によって表される回転とを含み得る。位置の値の範囲は、ＡＲ／ＶＲ環境におけるユーザの装置または手の位置に応じて変わり得る。そのような範囲は、典型的には０と１の間である四元数の値とは異なる。それゆえ、入力特徴は、一般に、異なる範囲および異なる統計を有する。
【００７５】
モデルアーキテクチャ２３０とは異なり、モデルアーキテクチャ２３２は、サンプルウィンドウごとに正規化しない。代わりに、モデルアーキテクチャ２３２は、位置および回転の両方における損失を均衡させる損失関数を用いながら、位置および回転の両方に対する入力を含むモデルを構築し得る。いくつかの実施形態において、モデルアーキテクチャ２３２は、２つのモデルを構築し得る。例えば、モデルアーキテクチャは、位置に対するモデルと回転に対するモデルとを用い得る。各モデルは、別個に訓練され得る。
【００７６】
【数１１】
0006971359.tif 000012
【００７７】
それゆえ、いくつかの実施形態において、モデルアーキテクチャ２３２は、一時的な安定性の利点を予測に提供することができ、その利点は、ユーザに対して提示される出力（例えば、画像コンテンツ、カメラフィードなど）における、より少ないジッタにつながり得る。モデルアーキテクチャ２３２は、モデルアーキテクチャ２３０よりも計算上の複雑さを低くしても実行され得る。例えば、モデルアーキテクチャ２３０が新しい各頭部姿勢サンプルに対してＨ個のエンコーダＬＳＴＭステップを実行する一方、モデルアーキテクチャ２３２は、新たに受信される各頭部姿勢サンプルにおいて１つのエンコーダＬＳＴＭステップを実行する。モデルアーキテクチャ２３０および２３２の両方は、Ｋ個のデコーダＬＳＴＭステップを実行する。
【００７８】
いくつかの実施形態において、モデルアーキテクチャ２３０は、より多くのジッタを提供するが、モデルアーキテクチャ２３２よりも低い平均二乗誤差をもたらす利点を提供する。加えて、モデルアーキテクチャ２３２は、位置座標などに関して正規化を行わなくてもよいので、ＶＲヘッドセットで収集されたデータからの、座標系の位置における任意の変化は、適切な頭部姿勢を決定するために予め処理される必要があり得る。いくつかの実施形態において、モデルアーキテクチャ２３２は、同じパラメータを用いて全てのサンプルを正規化することによる正規化（例えば、グローバル正規化）を行い得る。
【００７９】
ジッタを低減するために、追加的な項が、モデルアーキテクチャ２３２に対して損失関数に導入され得る。モデルアーキテクチャ２３２における損失関数は、予測誤差項と、平滑化項と、姿勢変化項とを含むがこれらに限定されない少なくとも３つの項を含み得る。
【００８０】
【数１２】
0006971359.tif 000013
【００８１】
【数１３】
0006971359.tif 000014
【００８２】
【数１４】
0006971359.tif 000015
【００８３】
【数１５】
0006971359.tif 000016
【００８４】
図８は、本明細書で説明される実施形態に従う、図７のモデルを用いる、以前の状態を伝搬している間の訓練中の逐次のサンプル選択を示す例示的なグラフ８００である。履歴の頭部姿勢データをキャプチャするために、任意の数の、時間のウィンドウが選択され得る。示されるように、システム２００は、モデルアーキテクチャ２３２を訓練する際の使用に対して履歴の頭部姿勢のデータを取得するために、第１の時間ウィンドウ８０２と、第２の時間ウィンドウ８０４と、第３の時間ウィンドウ８０６とを選択した。各ウィンドウは、次々にサンプリングされる、履歴の頭部姿勢データの取り出しを表し得る。それゆえ、各ＬＳＴＭの状態は、全体の姿勢トレースの初めにおいてゼロに初期化されるが、各サンプリングウィンドウにおいて、初期化されない。
【００８５】
【数１６】
0006971359.tif 000017
【００８６】
システム２００は、ＲＮＮの訓練中にグラフ８００を用い得る。頭部姿勢が予測されるとき、履歴の姿勢データのウィンドウ全体が訓練において活用され、上述された損失関数が、予測される頭部姿勢に基づいて特定のコンテンツの再生を決定することのために計算され活用され得ることを保証する。
【００８７】
モデルアーキテクチャ２３２に対するグラフ８００の訓練中、システム２００は、モデルアーキテクチャ２３０を用いて行われ得るように、サンプルのランダム利用を行わない。代わりに、全てのトレース（例えば、あるウィンドウにわたる頭部姿勢サンプル）は、スタックされることができ、そのスタックにわたって訓練が実行され得る。そのような例において、バッチサイズはトレースの数である。各反復は、全てのトレースに関して並列にモデルを実行し得るが、サンプルを通じて順次に当該モデルを実行し得る。訓練は、全てのサンプルが一度収集されると完了するだろう。
【００８８】
いくつかの実施形態において、トレースは、各々が等しいサイズの引き続くサンプルの順序付けられた部分に分割され得る。次いで、システム２００は、各部分の初めにおいて状態をゼロに初期化し得る。次いで、モデルアーキテクチャ２３２に対する訓練は、トレースおよび部分にわたるモデル訓練を一緒に並列化し、トレースの数×部分の数のバッチサイズをもたらし得る。
【００８９】
【数１７】
0006971359.tif 000018
【００９０】
いくつかの実施形態において、本明細書で説明されるモデルは、コントローラ姿勢予測に対して適用され、頭部、手、モバイル装置および／もしくはＡＲ／ＶＲコントローラのいずれかまたは全てをユーザがどこに配置し向き付け得るかを決定し得る。いくつかの実施形態において、本明細書で説明されるシステムは、頭部姿勢予測をコントローラ姿勢予測と組み合わせて、頭部の動きとコントローラの動きとの間の既存の相関のために全体の予測における改善を提供し得る。いくつかの実施形態において、本明細書で説明されるモデルは、例えば、拡張現実におけるビデオパススルーに適用され、現実と仮想コンテンツとの間のアラインメントを正し得る。いくつかの実施形態において、頭部姿勢が用いられなくてもよいが、代わりに、モバイル装置の姿勢は、本開示全体にわたって説明される実施形態において姿勢入力として置換され得る。
【００９１】
図１０は、本明細書で説明される実施形態に従う、予測される頭部姿勢に基づいて、ＡＲまたはＶＲ体験においてコンテンツを提供するためのプロセス１０００の実施形態を示すフローチャートである。例えば、プロセス１０００は、履歴の頭部姿勢データと、１つまたは複数の再帰型ニューラルネットワークとに基づいて、頭部の姿勢を予測し得る。
【００９２】
プロセス１０００のオペレーションにおいて、コンピューティング装置２０２は、ユーザがＡＲ環境におけるコンテンツの適切かつ時間が正確な配置を受け取るように、コンピュータで実施されるプロセスを行い、ユーザに対する頭部姿勢を予測し得る。一般に、コンピューティング装置２０２は、ＶＲまたはＡＲ環境を定義するデータを受信し得る。ＶＲまたはＡＲ環境は、物理的な環境の表現を含む。データは、ＶＲまたはＡＲ環境において複数のオブジェクトをレンダリングおよび合成／配置するための指令を含み得る。
【００９３】
ブロック１００２において、プロセス１０００は、拡張または仮想現実体験のための頭部姿勢予測に対する要求を受信することを含む。例えば、ユーザは、ＡＲ（またはＶＲまたはＭＲ）環境を利用しているかもしれない。ＡＲまたはＶＲ環境においてユーザによって用いられているシステムは、ユーザの動き、頭部の位置、手の位置、装置の位置（例えば、モバイル装置）、および／または他のトラッキング可能なメトリックを決定することから恩恵を受け得る。例えば、システムは、来たるべき（例えば、未来の）期間において頭部姿勢の予測を受信することから恩恵を受け得る。したがって、プロセス１０００は、頭部姿勢予測を行い、ユーザにコンテンツを表示するための適切な配置と時間レンダリングとを保証し得る。
【００９４】
ブロック１００４において、プロセス１０００は、ＡＲ／ＶＲ体験に関連付けられた、少なくとも１つの位置インジケータと少なくとも１つの回転インジケータとを識別することを含む。当該少なくとも１つの位置インジケータは、図１の説明において式［１］によって定義されるように、３次元の頭部位置ベクトルであり得る。当該少なくとも１つの回転インジケータは、図１の説明において式［２］によって定義されるように、４次元の四元数であり得る。例えば、装置２０２は、ＡＲまたはＶＲまたはＭＲ体験を用いるユーザの頭部姿勢を定義する姿勢データを取り出すか、決定するか、検出するか、またはそうでなければ利用し得る。姿勢データは、ＡＲまたはＶＲまたはＭＲ体験を利用するユーザに対する履歴の姿勢データであり得る。いくつかの実施形態において、姿勢データは、ＡＲもしくはＶＲもしくはＭＲ体験を以前に体験もしくは活用した、他のユーザ、アプリケーション、システムまたはデータベースに関連付けられた履歴の姿勢データであり得る。
【００９５】
ブロック１００６において、プロセス１０００は、当該少なくとも１つの位置インジケータと当該少なくとも１つの回転インジケータとを、ＲＮＮ２２６などのＲＮＮに提供することを含む。ＲＮＮは、ＬＳＴＭネットワークにおける複数のＬＳＴＭセルの各々に対する、長・短期記憶（ＬＳＴＭ）ネットワークと全結合（ＦＣ）ネットワークとを含む。いくつかの実施形態において、各ＬＳＴＭセルは、履歴の期間に（時系列で）関連付けられ得る。例えば、エンコーダにおいて、各ＬＳＴＭセルは、履歴の期間にわたって収集される、頭部姿勢に対する位置情報および回転情報を含む履歴の姿勢データを用いる。そのようなデータは、ＲＮＮを訓練するために用いられ得る。
【００９６】
ブロック１００８において、プロセス１０００は、少なくとも１つの来たるべき期間のＡＲまたはＶＲまたはＭＲ体験のための頭部姿勢変化に対する少なくとも１つの予測を生成するためにＲＮＮを用いることを含む。例えば、装置２０２は、ＲＮＮ２２６とエンコーダ／デコーダモデル２３０または状態伝搬モデル２３２のいずれかとを用いて、未来の１つまたは複数の時刻における頭部姿勢の予測をし得る。
【００９７】
いくつかの実施形態において、プロセス１００は、当該少なくとも１つの予測に基づいて追加的な候補予測を生成することを含み得る。例えば、装置２０２に接続されるか、もしくは装置２０２から利用可能な装置２０２（または他のコンピューティング装置）は、ユーザがＡＲまたはＶＲまたはＭＲ環境を用いるときにリアルタイムで用いられ得る新しい予測を生成し続け得る。当該少なくとも１つの予測および追加的な（例えば、新しい）候補予測は、装置２０２が当該少なくとも１つの予測と追加的な候補予測との各々に対して平均二乗誤差を決定するエラーチェックを受け得る。平均二乗誤差は、特定の頭部姿勢予測を捨てるべきかどうかを示し得る。例えば、頭部姿勢予測に関連付けられた平均二乗誤差が誤差の閾値レベルを超えると決定される場合、システム２００は、頭部姿勢データを歪めないように、またはＡＲもしくはＶＲもしくはＭＲ環境へ誤った頭部姿勢データを不適切に提供しないように、その頭部姿勢予測を捨て得る。これは、予測される頭部姿勢が、以前の既知の頭部姿勢と予測される頭部姿勢との間の経過時間に基づく、当該以前の既知の頭部姿勢の妥当な距離内に留まることを保証し得る。
【００９８】
いくつかの実施形態において、ＲＮＮは、当該来たるべき期間内の複数の時間ステップの各々に対して、当該来たるべき期間におけるそれぞれの時間ステップに対応するそれぞれのＬＳＴＭセルに対する状態をエンコードするように構成されている。すなわち、システム２００は、フィードバックループ（例えば、フィードバックループ４２２，４２４，４２６，７２６，７２８および７３０）を用いて、以前のＬＳＴＭ状態が、来たるべきＬＳＴＭ状態と頭部姿勢予測とを計算する際に考慮され得ることを保証し得る。
【００９９】
いくつかの実施形態において、ＲＮＮは、さらに他の来たるべき期間における頭部姿勢変化に対する追加的な予測を再帰的に決定するように構成されている。例えば、システム２００は、モデルアーキテクチャ２３０またはモデルアーキテクチャ２３２を採用して、ユーザがＡＲまたはＶＲまたはＭＲ環境において動くときに頭部姿勢予測を継続的に決定し得る。当該予測は、コンテンツをレンダリングする際に生じ得るＭＴＰ遅延なしに、ＡＲまたはＶＲまたはＭＲ環境においてリアルタイムコンテンツを提供するために活用され得る。
【０１００】
ブロック１０１０において、プロセス１０００は、要求に応答して当該少なくとも１つの予測を提供することと、当該少なくとも１つの予測に基づいて、拡張もしくは仮想現実体験における拡張または仮想現実コンテンツの表示をトリガすることとを含む。例えば、予測アルゴリズム２２８は、ＲＮＮの別の状態への入力として、１つまたは複数の予測をＲＮＮ２２６に出力し得る。当該出力は、ＡＲまたはＶＲ環境を利用するユーザに対する適切な時間および場所においてコンテンツの表示をトリガするために用いられ得る。
【０１０１】
いくつかの実施形態において、頭部姿勢予測に対する要求を受信することは、ネットワークを通じてクライアント装置からの履歴の頭部姿勢データの受け付けを含む。例えば、頭部姿勢予測に対する要求は、ネットワーク２０５を介して受信され得る。頭部姿勢変化に対して当該少なくとも１つの予測を提供することは、頭部姿勢変化に対する当該少なくとも１つの予測に基づいて、ネットワーク２０５を通じてクライアント装置（例えば、装置２０４）に、ＡＲ環境またはＶＲ環境においてレンダリングされたコンテンツを提供することを含み得る。いくつかの実施形態において、頭部姿勢変化に対する当該少なくとも１つの予測を提供することは、頭部姿勢変化に対する当該少なくとも１つの予測に基づいて、ネットワークを通じてクライアント装置に、拡張現実体験においてレンダリングされたコンテンツを提供することを含む。
【０１０２】
いくつかの実施形態において、当該少なくとも１つの位置インジケータは、３次元の頭部位置ベクトルであり、当該少なくとも１つの回転インジケータは、４次元の四元数である。いくつかの実施形態において、当該少なくとも１つの回転インジケータは、偏揺れ、縦揺れ、および横揺れを含む。いくつかの実施形態において、当該少なくとも１つの回転インジケータは、回転の量を表す大きさと回転の軸を表す方向とを伴う３次元ベクトルを含む。
【０１０３】
いくつかの実施形態において、ＲＮＮは、当該少なくとも１つの予測に基づいて追加的な候補予測を生成し、追加的な候補予測の各々に対して平均二乗誤差を決定するように構成されており、平均二乗誤差は、それぞれの追加的な頭部姿勢予測を捨てるべきか否かを示す。
【０１０４】
いくつかの実施形態において、ＲＮＮは、さらに他の来たるべき期間における姿勢変化（例えば、頭部の姿勢変化、装置の姿勢変化など）に対して追加的な予測を再帰的に決定するように構成されている。
【０１０５】
図１１は、本明細書で説明される実施形態に従う、頭部姿勢を予測してＡＲまたはＶＲ体験を提供するためのプロセス１１００の実施形態を示すフローチャートである。例えば、プロセス１１００は、履歴の頭部姿勢データと１つまたは複数の再帰型ニューラルネットワークとに基づいて、ユーザの頭部の姿勢を予測し得る。いくつかの実施形態において、プロセス１１００は、ＡＲまたはＶＲ体験を操作するユーザによって保持されるモバイル装置の姿勢を予測し得る。いくつかの実施形態において、プロセス１１００は、ＡＲまたはＶＲ体験を操作するユーザの他の身体部分の姿勢を予測し得る。
【０１０６】
コンピューティング装置２０２は、ＶＲまたはＡＲ環境を定義するデータを受信し得る。ＡＲ環境は、物理的な環境の表現を含む。当該データは、ＶＲまたはＡＲ環境における複数のオブジェクトをレンダリングおよび合成するための指令を含み得る。
【０１０７】
ブロック１１０２において、プロセス１１００は、ＶＲまたはＡＲ環境におけるユーザの動きに対応する履歴の頭部姿勢データを取得することを含む。例えば、プロセス１１００は、ユーザ、アプリケーションおよび環境などに関連付けられた履歴の姿勢データをトラッキングするか、取り出すか、またはそうでなければ取得し得る。いくつかの実施形態において、履歴の姿勢データは、ＶＲまたはＡＲアプリケーションに関連付けられた逐次の姿勢データである。
【０１０８】
【数１８】
0006971359.tif 000019
【０１０９】
【数１９】
0006971359.tif 000020
【０１１０】
【数２０】
0006971359.tif 000021
【０１１１】
【数２１】
0006971359.tif 000022
【０１１２】
いくつかの実施形態において、プロセス１１００は、当該来たるべき期間を超える対応する期間における追加的な姿勢予測に基づいて、仮想現実コンテンツを表示するための位置を決定することを含む。いくつかの実施形態において、プロセス１００は、仮想現実環境における表示のための仮想現実コンテンツのレンダリングをトリガすることを含む。
【０１１３】
いくつかの実施形態において、プロセス１１００は、当該来たるべき期間を超える対応する期間における姿勢予測に基づいて、仮想現実コンテンツを表示する位置を決定することを含み得る。例えば、頭部姿勢予測の候補は、リアルタイムのＡＲまたはＶＲ環境の使用に適合させることができ、コンテンツは、予測およびリアルタイム環境に基づいて、ＡＲまたはＶＲ環境における提供（例えば、表示）のためにトリガされることができる。
【０１１４】
いくつかの実施形態において、当該複数のＬＳＴＭセルにおける各ＬＳＴＭセルの状態は、次の逐次の姿勢予測とともにＲＮＮへの入力として提供され、当該複数の追加的な姿勢予測は、当該複数のＬＳＴＭセルにおける各ＬＳＴＭセルの状態に少なくとも部分的に基づく。
【０１１５】
【数２２】
0006971359.tif 000023
【０１１６】
いくつかの実施形態において、第１の履歴ベクトルシーケンスは、計算される平均値と計算される分散値とに少なくとも部分的に基づいて正規化される、ＲＮＮへの入力を表す。いくつかの実施形態において、第１の姿勢予測および当該複数の追加的な姿勢予測は、仮想現実コンテンツを表示する位置を決定する前に、計算される平均値と計算される分散値とに基づいて非正規化される。
【０１１７】
いくつかの実施形態において、当該複数のＬＳＴＭセルにおける各ＬＳＴＭセルの特定の状態は、図７に示されるように、第１の頭部姿勢予測とともに、ＲＮＮへの入力として提供される。この例において、複数の頭部姿勢予測の候補は、頭部姿勢予測を生成するとき、当該複数のＬＳＴＭセルにおける各ＬＳＴＭセルの状態を考慮し得る。
【０１１８】
いくつかの実施形態において、ＲＮＮは、既知の頭部姿勢シーケンスのデータベースに基づいて訓練され、ＲＮＮは、次の頭部姿勢の候補の各々に対する確率測度を出力するために、出力ベクトルシーケンスをベクトル埋め込みすることによって当該複数の頭部姿勢の候補を予測するように構成されている。この確率測度は、誤差処理と組み合わせて用いられ、予測される各頭部姿勢が誤差を伴わないことを保証し得る。
【０１１９】
いくつかの実施形態において、ＲＮＮは、図７の説明で詳細に説明されるように、当該複数の追加的な（例えば、候補の）姿勢予測の各々に対して、平均絶対誤差と、平滑化コストと、姿勢変化コストとを定義する誤差関数を決定するように構成されている。誤差関数は、それぞれの頭部姿勢予測の候補を捨てるべきか否かを示し、仮想現実コンテンツを表示するために当該複数の頭部姿勢予測の候補を用いるときにジッタを低減し得る。いくつかの実施形態において、本明細書で説明されるシステムは、ＲＮＮが訓練目的のためにそのようなコストを用いることを可能にし、予測とグラウンドトゥルース値との間の誤差を低減し得る。いくつかの実施形態において、グラウンドトゥルース値が利用できないと決定される場合、推論の間、損失はシステムによって用いられなくてもよい。いくつかの実施形態において、平滑度または姿勢変化の誤差は、本明細書で説明されるシステムによってサンプルを捨てるために用いられ得るが、グラウンドトゥルース値が利用できないと決定される場合、平均絶対誤差は活用されなくてもよい。
【０１２０】
いくつかの実施形態において、誤差関数は、当該複数の追加的な姿勢予測のうちの１つもしくは複数に関連付けられた、検出された角度誤差または検出された眼の位置誤差に基づいて決定される。いくつかの実施形態において、誤差関数は、当該複数の追加的な姿勢予測の一部に基づく、重み付けられた誤差を表す。
【０１２１】
いくつかの実施形態において、本明細書で説明されるＲＮＮは、ＬＳＴＭ２３４の代わりにゲート付き再帰型ユニット（ＧＲＵ）２３６を用い得る。いくつかの実施形態において、（例えば、予測において姿勢データと共に速度を用いる）角度誤差関数を含むがこれらに限定されない、異なるまたは追加的な入力データが用いられ得る。
【０１２２】
いくつかの実施形態において、システム２００は、本明細書で説明されるＲＮＮのうちの１つまたは複数を用いて予測を行うことを決定し得る。例えば、システム２００は、第１の複数の長・短期記憶（ＬＳＴＭ）セルおよび第１の全結合（ＦＣ）層を含む第１の再帰型ニューラルネットワーク（ＲＮＮ）と、第２の複数の長・短期記憶（ＬＳＴＭ）セルおよび第２の全結合（ＦＣ）層を含む第２の再帰型ニューラルネットワーク（ＲＮＮ）との両方を含み得る。システム２００は、少なくとも１つの処理装置と、実行されると当該処理装置に以下の動作を行わせる指令を格納するメモリとを含み得る。当該動作は、拡張現実環境または仮想現実環境を利用するユーザに対して、拡張現実環境におけるユーザによって利用されている最大の移動範囲を、閾値レベル未満の移動が活用されていることを決定することに応答して決定することと、閾値レベル未満の移動が活用されていることを決定することに応答して、来たるべき期間に対する頭部姿勢予測を決定するために第１のＲＮＮを選択することと、第２のＲＮＮにおける次のＬＳＴＭセルへの入力として各ＬＳＴＭセルの状態を提供することによって、当該来たるべき期間に対してジッタが低減された頭部姿勢予測を決定するために第２のＲＮＮを選択することとを含む。いくつかの実施形態において、第１のＲＮＮは、頭部姿勢予測に少なくとも部分的に基づいて、拡張現実環境において用いられるコントローラの姿勢を予測するようにさらに構成されている。
【０１２３】
図１２は、本明細書で説明される技法とともに用いられ得る、例示的なコンピュータ装置１２００と例示的なモバイルコンピュータ装置１２５０とを示す。一般に、本明細書で説明される装置は、仮想現実、拡張現実もしくは複合現実環境のいずれかもしくは全ての態様を生成および／または提供できる。コンピュータ装置１２００および／またはモバイルコンピュータ装置１２５０に関して説明される特徴は、上述されたポータブルコンピューティング装置に含まれ得る。コンピューティング装置１２００は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレームおよびその他の適切なコンピュータなどの、様々な形態のデジタルコンピュータを表すことを意図されている。コンピューティング装置１２５０は、携帯情報端末、携帯電話、スマートフォンおよびその他の同様のコンピューティング装置などの、モバイル装置の様々な形態を表すことが意図されている。本明細書に示される構成要素、それらの接続および関係、ならびにそれらの機能は、例示的であることのみを意図されており、本明細書において請求および／または説明される、システムならびに技法の実施形態を限定することは意図されていない。
【０１２４】
コンピューティング装置１２００は、プロセッサ１２０２と、メモリ１２０４と、ストレージ装置１２０６と、メモリ１２０４および高速拡張ポート１２１０に接続する高速インターフェース１２０８と、低速バス１２１４およびストレージ装置１２０６に接続する低速インターフェース１２１２とを含む。構成要素１２０２，１２０４，１２０６，１２０８，１２１０および１２１２の各々は、様々なバスを用いて相互接続され、共通のマザーボード上に、または適切に他の方法で取り付けられ得る。プロセッサ１２０２は、高速インターフェース１２０８に結合されるディスプレイ１２１６などの外部の入力／出力装置上のグラフィカルユーザーインターフェース（ＧＵＩ：Graphical User Interface）のためのグラフィカル情報を表示するための、メモリ１２０４においてまたはストレージ装置１２０６上に格納された指令を含む、コンピューティング装置１２００内での実行のための指令を処理できる。他の実施形態において、多数のメモリおよび多数種類のメモリとともに、多数のプロセッサおよび／または多数のバスが適切に用いられ得る。また、多数のコンピューティング装置４００は、（例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして）必要なオペレーションの一部を提供する各装置と接続され得る。
【０１２５】
メモリ１２０４は、コンピューティング装置１２００内に情報を格納する。ある実施形態において、メモリ１２０４は、揮発性メモリユニット（unit or units）であり得る。他の実施形態において、メモリ１２０４は、不揮発性メモリユニット（unit or units）であり得る。メモリ１２０４は、磁気または光ディスクなどの、他の形態のコンピュータ読み取り可能な媒体でもあり得る。
【０１２６】
ストレージ装置１２０６は、コンピューティング装置１２００のための大容量ストレージを提供できる。ある実施形態において、ストレージ装置１２０６は、フロッピー（登録商標）ディスク装置、ハードディスク装置、光ディスク装置、もしくはテープ装置、フラッシュメモリもしくは他の同様の固体メモリ装置、またはストレージエリアネットワークもしくはその他の構成における装置を含む、装置のアレイなどの、コンピュータ読み取り可能な媒体であり得るか、または当該媒体を含み得る。コンピュータプログラム製品は、情報担体において有形に具現化される。コンピュータプログラム製品は、実行されると上述の方法などの１つまたは複数の方法を行う指令も含む。情報担体は、メモリ１２０４、ストレージ装置１２０６もしくはプロセッサ１２０２上のメモリなどの、コンピュータ読み取り可能な媒体または機械読み取り可能な媒体である。
【０１２７】
低速コントローラ１２１２が低帯域幅集約型のオペレーションを管理する一方で、高速コントローラ１２０８は、コンピューティング装置１２００に対する帯域幅集約型のオペレーションを管理する。機能のそのような割り当ては例示的であるにすぎない。ある実施形態において、高速コントローラ１２０８は、メモリ１２０４と、（例えば、グラフィックスプロセッサまたはアクセラレータを通じて）ディスプレイ１２１６と、様々な拡張カード（図示しない）を受け入れ得る高速拡張ポート１２１０とに結合される。実施形態において、低速コントローラ１２１２は、ストレージ装置１２０６と低速拡張ポート１２１４とに結合される。様々な通信ポート（例えば、ＵＳＢ、ブルートゥース（登録商標）、イーサネット（登録商標）、ワイヤレスイーサネット）を含み得る低速拡張ポートは、キーボード、ポインティング装置、スキャナー、もしくは、例えばネットワークアダプタなどを介した、スイッチもしくはルーターなどのネットワーク装置などの１つまたは複数の入力／出力装置に結合され得る。
【０１２８】
コンピューティング装置１２００は、図示されるように、多数の異なる形態において実現され得る。例えば、それは、標準サーバ１２２０としてまたはそのようなサーバのグループにおいて複数回実現され得る。それは、ラックサーバシステム１２２４の一部としても実現され得る。加えて、それは、ラップトップコンピュータ１２２２などのパーソナルコンピュータにおいて実現され得る。代替的に、コンピューティング装置１２００からの構成要素は、装置１２５０などのモバイル装置（図示しない）における他の構成要素と組み合わされ得る。そのような装置の各々は、コンピューティング装置１２００および１２５０のうちの１つまたは複数を含むことができ、全体のシステムは、互いに通信する複数のコンピューティング装置１２００および１２５０から構成され得る。
【０１２９】
コンピューティング装置１２５０は、他の構成要素の中でも、プロセッサ１２５２と、メモリ１２６４と、ディスプレイ１２５４などの入力／出力装置と、通信インターフェース１２６６と、送受信機１２６８を含む。装置１２５０には、追加的なストレージを提供するために、マイクロドライブまたは他の装置などのストレージ装置も設けられ得る。構成要素１２５０，１２５２，１２６４，１２５４，１２６６および１２６８の各々は、様々なバスを用いて相互接続され、当該構成要素のうちいくつかは、共通のマザーボード上に、または他の方法で適切に取り付けられ得る。
【０１３０】
プロセッサ１２５２は、メモリ１２６４において格納される指令を含む、コンピューティング装置１２５０内で指令を実行できる。プロセッサは、別個かつ複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実現され得る。プロセッサは、例えば、ユーザインターフェースの制御、装置１２５０によって実行されるアプリケーション、および装置１２５０による無線通信など、装置１２５０の他の構成要素の連携を提供し得る。
【０１３１】
プロセッサ１２５２は、制御インターフェース１２５８と、ディスプレイ１２５４に結合されたディスプレイインターフェース１２５６とを通してユーザと通信し得る。ディスプレイ１２５４は、例えば、薄膜トランジスタ液晶ディスプレイ（ＴＦＴ  ＬＣＤ：Thin-Film-Transistor Liquid Crystal Display）、有機発光ダイオード（ＯＬＥＤ：Organic Light Emitting Diode）ディスプレイまたは他の適切なディスプレイ技術であり得る。ディスプレイインターフェース１２５６は、グラフィカルな情報および他の情報をユーザに提示させるようにディスプレイ１２５４を駆動するための適切な回路を備え得る。制御インターフェース１２５８は、ユーザからの命令を受信し、プロセッサ１２５２への送信のためにそれらを変換し得る。加えて、外部インターフェース１２６２は、装置１２５０の他の装置との近距離通信を可能にするように、プロセッサ１２５２と通信して設けられ得る。外部インターフェース１２６２は、例えば、いくつかの実施形態において有線通信を、または他の実施形態において無線通信を提供してもよく、複数のインターフェースも用いられ得る。
【０１３２】
メモリ１２６４は、コンピューティング装置１２５０内の情報を格納する。メモリ１２６４は、コンピュータ読み取り可能な媒体（medium or media）、揮発性メモリユニット（unit or units）もしくは不揮発性メモリユニット（unit or units）のうち１つまたは複数として実現され得る。拡張メモリ１２７４も設けられ、例えばシングルインラインメモリモジュール（ＳＩＭＭ：Single In Line Memory Module）カードインターフェースを含み得る拡張インターフェース１２７２を通して装置１２５０に接続され得る。そのような拡張メモリ１２７４は、装置１２５０に対する割り増しのストレージ領域を提供し得るか、または装置１２５０に対するアプリケーションもしくは他の情報も格納し得る。特に、拡張メモリ１２７４は、上述されたプロセスを遂行または補完するための指令を含むことができ、安全な情報も含み得る。それゆえ、例えば、拡張メモリ１２７４は、装置１２５０に対するセキュリティモジュールとして設けられてもよく、装置１２５０の安全な使用を許可する指令とともにプログラムされ得る。加えて、ハッキング不可能な方法において付す、ＳＩＭＭカード上の識別情報などの追加的な情報とともに、安全なアプリケーションがＳＩＭＭカードを介して提供され得る。
【０１３３】
メモリは、例えば、以下で論じられるように、フラッシュメモリおよび／またはＮＶＲＡＭメモリを含み得る。ある実装形態において、コンピュータプログラム製品は、情報担体において有形に具現化される。コンピュータプログラム製品は、実行されると、上述された方法などの１つまたは複数の方法を行う指令を含む。情報担体は、メモリ１２６４、拡張メモリ１２７４、もしくは、例えば送受信機１２６８もしくは外部インターフェース１２６２を通して受信され得る、プロセッサ１２５２上のメモリなどの、コンピュータ読み取り可能な媒体または機械読み取り可能な媒体である。
【０１３４】
装置１２５０は、必要に応じてデジタル信号処理回路を含み得る通信インターフェース１２６６を通して無線で通信し得る。通信インターフェース１２６６は、様々なモードまたはプロトコルの下での通信のために、中でも、ＧＳＭ（登録商標）音声通話、ＳＭＳ、ＥＭＳもしくはＭＭＳメッセージング、ＣＤＭＡ、ＴＤＭＡ、ＰＤＣ、ＷＣＤＭＡ（登録商標）、ＣＤＭＡ２０００またはＧＰＲＳを提供し得る。そのような通信は、例えば、無線周波数の送受信機１２６８を通じて行われ得る。加えて、ブルートゥース（登録商標）、ＷｉＦｉ（登録商標）、またはそのようなその他の送受信機（図示しない）を使用することなどの短距離通信が行われ得る。さらに、全地球測位システム（ＧＰＳ：Global Positioning System）受信機モジュール１２７０は、追加的なナビゲーションおよび位置に関連する無線データを装置１２５０に提供してもよく、そのデータは、装置１２５０上で実行されるアプリケーションによって適切に用いられ得る。
【０１３５】
装置１２５０は、オーディオコーデック１２６０を用いて聞こえるように通信することもでき、オーディオコーデック１２６０は、ユーザから話された情報を受信し、それを使用可能なデジタル情報に変換し得る。オーディオコーデック１２６０は、同様に、例えば装置１２５０のハンドセットにおけるスピーカを介すること等により、ユーザに対して聞き取れる音を生成し得る。そのような音は、音声通話からの音を含むことができ、録音された音（例えば、音声メッセージ、音楽ファイルなど）を含むことができ、装置１２５０上で動作するアプリケーションによって生成される音も含み得る。
【０１３６】
コンピューティング装置１２５０は、図に示されるように、多数の異なる形態において実現され得る。例えば、それは、携帯電話１２８０として実現され得る。それは、スマートフォン１２８２、携帯情報端末、または他の同様のモバイル装置の一部としても実現され得る。
【０１３７】
本明細書で説明される様々な技法の実施形態は、デジタル電子回路において、またはコンピュータハードウェア、ファームウェア、ソフトウェアもしくはそれらの組み合わせにおいて実現され得る。実施形態は、例えばプログラムプロセッサ、コンピュータもしくは複数のコンピュータなどのデータ処理機器による実行のための、または当該機器のオペレーションを制御するための、コンピュータプログラム製品として、すなわち、例えば機械読み取り可能なストレージ装置などの情報担体において、または伝搬される信号において有形に具現化されるコンピュータプログラムとして実現され得る。上述されるコンピュータプログラム（複数可）などのコンピュータプログラムは、コンパイル型言語またはインタープリタ型言語を含む任意の形態のプログラミング言語において書かれることができ、独立型プログラムとして、またはモジュールとして、コンポーネント、サブルーチン、もしくはコンピューティング環境における使用に対して好適な他のユニットを含む任意の形態において配備され得る。コンピュータプログラムは、１つのコンピュータ上もしくは１つのサイトにおける複数のコンピュータ上で実行されるように、または複数のサイトにわたって分散され通信ネットワークによって相互接続されるように配備され得る。
【０１３８】
方法のステップは、入力データ上でオペレーションし出力を生成することによって機能を行うためのコンピュータプログラムを実行する１つまたは複数のプログラマブルプロセッサによって行われ得る。方法のステップは、特定用途向け論理回路、例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ：field programmable gate array）または特定用途向け集積回路（ＡＳＩＣ：application-specific integrated circuit）によっても行われることができ、機器が当該特定用途向け論理回路として実現され得る。
【０１３９】
コンピュータプログラムの実行のために好適なプロセッサは、例として、汎用マイクロプロセッサおよび専用マイクロプロセッサの両方と、任意の種類のデジタルコンピュータの任意の１つまたは複数のプロセッサとを含み得る。一般に、プロセッサは、リードオンリメモリもしくはランダムアクセスメモリまたはその両方から指令およびデータを受信する。コンピュータの要素は、指令を実行するための少なくとも１つのプロセッサと、指令およびデータを格納するための１つまたは複数のメモリ装置とを含み得る。一般に、コンピュータは、例えば磁気ディスク、光磁気ディスクもしくは光ディスクなどの、データを格納するための１つもしくは複数の大容量ストレージ装置も含むか、当該大容量ストレージ装置からデータを受信するかもしくは当該大容量ストレージ装置にデータを転送するよう動作可能にも結合されるか、またはその両方であり得る。コンピュータプログラム指令およびデータを具現化するために好適な情報担体は、半導体メモリ装置、例えばＥＰＲＯＭ、ＥＥＰＲＯＭおよびフラッシュメモリ装置と、磁気ディスク、例えば内部のハードディスクまたはリムーバブルディスクと、光磁気ディスクと、ＣＤ−ＲＯＭおよびＤＶＤ−ＲＯＭディスクとを例として含む、全ての形態の不揮発性メモリを含む。プロセッサおよびメモリは、専用の論理回路によって補完され得るか、または当該回路に組み込まれ得る。
【０１４０】
ユーザとの対話を提供するために、実施形態は、ユーザに情報を表示するためのディスプレイ装置、例えば陰極線管（ＣＲＴ：cathode ray tube）または液晶ディスプレイ（ＬＣＤ：liquid crystal display）モニターと、キーボードおよび例えばマウスまたはトラックボールなどのポインティング装置とを有するコンピュータ上で実現され得る。ユーザは、当該キーボードおよびポインティング装置により、コンピュータに入力を与えることができる。他の種類の装置は、同様に、ユーザとの対話を提供するために用いられ得る。例えば、ユーザに提供されるフィードバックは、任意の形態の感覚のフィードバック、一例として、視覚のフィードバック、聴覚のフィードバック、または触覚のフィードバックであり得る。そして、ユーザからの入力は、音響、音声または触覚の入力を含む、任意の形態において受信され得る。
【０１４１】
実施形態は、例えばデータサーバとしてのバックエンド構成要素を含むか、もしくはミドルウェア構成要素、例えばアプリケーションサーバを含むか、もしくはフロントエンド構成要素、例えばグラフィカルユーザーインターフェースを有するクライアントコンピュータ、もしくはユーザがウェブブラウザを通じて実施形態と対話できる当該ウェブブラウザを、またはそのようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組み合わせを含むコンピューティングシステムにおいて実現され得る。構成要素は、例えば通信ネットワークなどの、デジタルデータ通信の任意の形態または媒体により相互接続され得る。通信ネットワークの例は、例えばインターネットなどの、ローカルエリアネットワーク（ＬＡＮ：local area network）およびワイドエリアネットワーク（ＷＡＮ：wide area networｋ）を含む。
【０１４２】
本明細書で説明される例示的な実施形態に基づくコンピューティング装置は、ユーザ装置、ユーザインターフェース（ＵＩ：user interface）装置、ユーザ端末、クライアント装置、もしくは顧客装置を含む、ユーザとインターフェースするように構成されている、ハードウェアおよび／またはソフトウェアの任意の適切な組合せを用いて実現され得る。コンピューティング装置は、例えばラップトップコンピュータなどのポータブルコンピューティング装置として実施され得る。コンピューティング装置は、例えば、ＰＤＡ、ノートブックコンピュータ、またはタブレットコンピュータなど、ユーザとインターフェースすることに適した、いくつかの他のタイプのポータブルコンピューティング装置として実現され得る。コンピューティング装置は、例えば、ＰＣなどの、ユーザとインターフェースすることに適した、いくつかの他のタイプのコンピューティング装置として実現され得る。コンピューティング装置は、ユーザとインターフェースすることと、モバイル通信ネットワークを含むネットワークを通じた無線通信とに適したポータブル通信装置（例えば、携帯電話、スマートフォン、ワイヤレス携帯電話など）として実現され得る。
【０１４３】
コンピュータシステム（例えば、コンピューティング装置）は、無線周波数（ＲＦ：radio frequency）、マイクロ波周波数（ＭＷＦ：microwave frequency）および／または赤外線周波数（ＩＲＦ：infrared frequency）無線通信技術とネットワークを通じた通信に適したプロトコルとを含む、任意の公知の無線通信技術とプロトコルとを用いてネットワークサーバと確立された通信リンクを介したネットワークを通じてネットワークサーバと無線通信するように構成され得る。
【０１４４】
本開示の態様に従うと、本明細書で説明される様々な技法の実施形態は、デジタル電子回路において、またはコンピュータハードウェア、ファームウェア、ソフトウェア、もしくはそれらの組み合わせにおいて実現され得る。実施形態は、データ処理機器（例えばプログラマブルプロセッサ、コンピュータまたは複数のコンピュータ）による処理のための、または当該機器のオペレーションを制御するための、コンピュータプログラム製品（例えば、情報担体、機械読み取り可能なストレージ装置、コンピュータ読み取り可能な媒体、およびコンピュータ読み取り可能な有形な媒体において有形に具現化されるコンピュータプログラム）として実現され得る。いくつかの実施形態において、コンピュータ読み取り可能な有形のストレージ媒体は、実行されるとプロセッサにプロセスを行わせる指令を格納するように構成され得る。上述されるコンピュータプログラム（複数可）などのコンピュータプログラムは、コンパイル型言語またはインタープリタ型言語を含む任意の形態のプログラミング言語において書かれることができ、独立型プログラムとして、またはモジュールとして、コンポーネント、サブルーチン、もしくはコンピューティング環境における使用に対して好適な他のユニットを含む任意の形態において配備され得る。コンピュータプログラムは、１つのコンピュータ上でもしくは１つのサイトにおける複数のコンピュータ上で処理されるように、または複数のサイトにわたって分散され通信ネットワークによって相互接続されるように配備され得る。
【０１４５】
本明細書で開示される特定の構造的および機能的な詳細は、例示的な実施形態を説明する目的のための代表的なものにすぎない。しかしながら、例示的な実施形態は、多くの代替的な形態において具現化されてもよく、本明細書で説明される実施形態のみに限定されると解釈されるべきでない。
【０１４６】
本明細書で用いられる用語は、特定の実施形態を説明する目的のためにすぎず、実施形態の限定を意図されていない。本明細書で用いられるとき、単数形「a」、「an」および「the」は、文脈が明確にそうでないことを示さない限り、複数形も同様に含むことが意図される。用語「備える（comprises）」、「備える（comprising）」、「含む（includes）」および／または「含む（including）」は、本明細書において用いられるとき、記載される特徴、ステップ、オペレーション、要素および／または構成要素の存在を特定するが、１つもしくは複数の他の特徴、ステップ、オペレーション、要素、構成要素および／もしくはそれについてのグループの存在または追加を排除しないことがさらに理解されるであろう。
【０１４７】
ある要素が、別の要素に「結合される」か、「接続される」かもしくは「応答する」か、または「上にある」と言及されるとき、当該ある要素は、他の要素に直接的に結合されるか、接続されるかもしくは応答するか、もしくは当該他の要素の上にあるか、または介在する要素も存在し得ることが理解されるであろう。対照的に、ある要素が、別の要素に「直接的に結合される」か、「直接的に接続される」かもしくは「直接応答する」か、または当該別の要素の「直接上にある」と言及されるとき、介在する要素は存在しない。本明細書で用いられるとき、用語「および／または」は、関連付けられ列挙される項目の１つまたは複数の任意の全ての組み合わせを含む。
【０１４８】
例えば「下（beneath）」、「下（below）」、「下（lower）」、「上（above）」、「上（upper）」などの空間的に相対的な用語は、本明細書において、説明の容易化のために用いられ、図に示されるように、別の要素（複数可）または特徴（複数可）との関係において１つの要素または特徴を説明し得る。空間的に相対的な用語は、図に示される向きに加えて、使用中またはオペレーション中の装置の異なる向きを包含することを意図されていることが理解されるであろう。例えば、図における装置が反転される場合、他の要素もしくは特徴の「下（below）」または「下（lower）」として説明される要素は、当該他の要素または特徴の「上（above）」に方向付けられる。それゆえ、用語「下（below）」は、上（above）および下（below）の向きの両方を包含できる。当該装置は、別の方法で（１２０度回転されて、または他の方向付けにおいて）向き付けられてもよく、本明細書で用いられる空間的に相対的な記述子は、それに応じて解釈され得る。
【０１４９】
概念の例示的な実施形態は、例示的な実施形態の理想化される実施形態（および中間の構造）の概略的な例示である断面的な例示を参照して本明細書で説明される。そのため、例えば、製造技術および／または公差の結果としての例示の形状からの変化が予期される。それゆえ、説明される概念の例示的な実施形態は、本明細書で例示される領域の特定の形状に限定されるとして解釈されるべきではなく、例えば製造から結果として生じる、形状における逸脱を含むとして解釈されるべきである。したがって、図に例示される領域は、本質的に概略的であり、それらの形状は、装置の領域の実際の形状を例示すことを意図されておらず、例示的な実施形態の範囲を限定することを意図されていない。
【０１５０】
「第１」および「第２」などの用語は、様々な要素を説明するために本明細書で用いられ得るが、これらの要素は、これらの用語によって限定されるべきではないことを理解されるであろう。これらの用語は、ある要素を別の要素から区別するために用いられるにすぎない。それゆえ、本実施形態の教示から逸脱することなく、「第１の」要素は、「第２の」要素と呼ばれ得る。
【０１５１】
他に定義されない限り、本明細書で用いられる全ての用語（技術用語および科学用語を含む）は、これらの概念が属する技術における当業者によって一般に理解されるものと同じ意味を有する。一般に用いられる辞書において定義される用語などの用語は、関連技術および／または本明細書の文脈におけるそれらの意味と整合する意味を有するとして解釈されるべきであり、本明細書において明白にそのように定義されない限り、理想化された意味かまたは過度に形式的な意味において解釈されるべきではないことがさらに理解されるであろう。
【０１５２】
説明された実施形態のある特徴が、本明細書で説明されるように例示されてきたが、当業者には、多くの修正、置換、変更、および均等物が思い浮かぶであろう。それゆえ、添付される請求の範囲は、実施形態の範囲内に入るそのような全ての修正および変更を網羅することを意図されていることを理解されるであろう。それらは、限定ではなく例としてのみ提示されたものであり、形態および詳細における様々な変更が行われ得ることを理解されるべきである。本明細書で説明される機器および／または方法の任意の部分は、相互に排他的な組み合わせを除き、任意の組み合わせにおいて組み合わせられ得る。本明細書で説明される実施形態は、説明された異なる実施形態の機能、構成要素および／もしくは特徴の、様々な組合せならびに／またはサブコンビネーションを含み得る。
【図１】
0006971359.tif 000024
【図２】
0006971359.tif 000025
【図３Ａ】
0006971359.tif 000026
【図３Ｂ】
0006971359.tif 000027
【図４】
0006971359.tif 000028
【図５】
0006971359.tif 000029
【図６】
0006971359.tif 000030
【図７】
0006971359.tif 000031
【図８】
0006971359.tif 000032
【図９】
0006971359.tif 000033
【図１０】
0006971359.tif 000034
【図１１】
0006971359.tif 000035
【図１２】
0006971359.tif 000036