(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】視線を決定するために深層学習を使用すること
(51)【国際特許分類】
G06F 3/01 20060101AFI20241210BHJP
G06N 20/10 20190101ALI20241210BHJP
【FI】
G06F3/01 510
G06F3/01 570
G06N20/10
(21)【出願番号】P 2022521976
(86)(22)【出願日】2020-11-23
(86)【国際出願番号】 US2020061715
(87)【国際公開番号】W WO2021113100
(87)【国際公開日】2021-06-10
【審査請求日】2023-08-31
(32)【優先日】2019-12-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】ザンノリ, マリナ
(72)【発明者】
【氏名】シアオ, レイ
(72)【発明者】
【氏名】エメリー, カラ
【審査官】渡辺 慶人
(56)【参考文献】
【文献】特表2019-531550(JP,A)
【文献】米国特許出願公開第2019/0130622(US,A1)
【文献】米国特許出願公開第2016/0133055(US,A1)
【文献】米国特許出願公開第2018/0227630(US,A1)
【文献】米国特許出願公開第2019/0362557(US,A1)
【文献】米国特許出願公開第2015/0339589(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
3/048- 3/04895
(57)【特許請求の範囲】
【請求項1】
アイトラッカーを含まないコンピューティングシステムによって、
レンダリングされた環境を生成し、ユーザに表示することと、
前記ユーザによって装着されたヘッドセットに関連するヘッドセット追跡データに基づいて前記ユーザの頭部ポーズを決定することと、
手追跡データに基づいて前記ユーザの手ポーズを決定することと、
表示された前記レンダリングされた環境に関連するシーン情報にアクセスすることと、
機械学習モデルを使用して、前記頭部ポーズと、前記手ポーズと、前記シーン情報とを処理することによって、前記レンダリングされた環境内の前記ユーザの予測された焦点を決定することと
を含
み、
前記機械学習モデルが、別のコンピューティングシステムによって前にキャプチャされた、頭部ポーズのデータ、手ポーズのデータ、シーン情報のデータ、および視標追跡データを含むグランドトゥルースデータに基づいてトレーニングされる、方法。
【請求項2】
前記レンダリングされた環境内の前記ユーザの前記予測された焦点に基づいて、前記コンピューティングシステムによって前記ユーザに提示される画像を調整すること
をさらに含む、請求項1に記載の方法。
【請求項3】
前記頭部ポーズが、前記レンダリングされた環境に対して決定される、請求項1に記載の方法。
【請求項4】
前記手ポーズが、前記レンダリングされた環境または前記ユーザによって装着された前記ヘッドセットのうちの一方に対して決定される、請求項1に記載の方法。
【請求項5】
前記ユーザの前記手ポーズを決定することが、
前記ユーザの手を含む複数の画像を分析する、前記コンピューティングシステムに結合された1つまたは複数のカメラに基づいて、前記ユーザの前記手を識別すること
を含む、請求項1に記載の方法。
【請求項6】
前記手追跡データが、前記ユーザの手によって保持または装着されたデバイスに関連する、請求項1に記載の方法。
【請求項7】
前記ユーザの前記手によって保持または装着された前記デバイスによって実施されるアクションを決定すること
をさらに含み、前記予測された焦点を決定することが、前記機械学習モデルを使用して、前記ユーザの前記手によって保持または装着された前記デバイスによって実施される前記アクションを処理することをさらに含む、請求項6に記載の方法。
【請求項8】
前記シーン情報が、色および深度データを含む、または前記シーン情報が、前記レンダリングされた環境内の1つまたは複数の要素の意味論的情報を含む、請求項1に記載の方法。
【請求項9】
前記予測された焦点が、前記レンダリングされた環境内の3次元座標である、請求項1に記載の方法。
【請求項10】
前記レンダリングされた環境がアプリケーションに関連し、前記アプリケーションがカテゴリーに関係し、前記シーン情報が、前記アプリケーションに関係する前記カテゴリーを含む、請求項1に記載の方法。
【請求項11】
前記機械学習モデルを使用して、前記予測された焦点のための1つまたは複数のロケーションの信頼性マップを生成すること
をさらに含み、前記信頼性マップは、前記予測された焦点が前記1つまたは複数のロケーションの各々にある確率を割り当て、前記予測された焦点を決定することが、前記信頼性マップを利用することを含む、請求項1に記載の方法。
【請求項12】
前記予測された焦点が、視標追跡センサーなしに決定される、請求項1に記載の方法。
【請求項13】
前記レンダリングされた環境が、拡張現実環境、仮想現実環境、または複合現実環境のうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項14】
ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアが、実行されたとき、請求項1から13のいずれか一項に記載の方法を実施するよう
に動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項15】
1つまたは複数のプロセッサと、前記プロセッサによって実行可能な命令を含む、前記プロセッサに結合された非一時的メモリとを備えるシステムであって、前記プロセッサが、前記命令を実行したとき、請求項1から13のいずれか一項に記載の方法を実施するよう
に動作可能である、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、仮想現実環境におけるユーザ対話および体験のための制御およびインターフェースに関する。
【背景技術】
【0002】
仮想現実は、一見現実のまたは物理的なやり方でユーザが対話することができる環境(たとえば、3D環境)のコンピュータ生成されたシミュレーションである。単一のデバイスまたはデバイスのグループであり得る仮想現実システムが、たとえば、仮想現実ヘッドセットまたは何らかの他のディスプレイデバイス上で、ユーザに表示するために、このシミュレーションを生成し得る。シミュレーションは、現実のまたは想像上の環境を模倣するために、画像、音、触覚フィードバック、および/または他の感覚を含み得る。仮想現実がますます顕著になるにつれて、仮想現実の、有用な適用例の範囲は急速に広がっている。仮想現実の最も一般的な適用例は、ゲームまたは他の対話型コンテンツを伴うが、そのすぐ後ろに、エンターテインメントまたはトレーニング目的のための視覚メディアアイテム(たとえば、写真、ビデオ)の視聴など、他の適用例がある。現実の会話および他のユーザ対話をシミュレートするために仮想現実を使用することの実現可能性も検討されている。
【発明の概要】
【0003】
したがって、本発明は、添付の特許請求の範囲による、方法、コンピュータ可読非一時的記憶媒体およびシステムを対象とする。仮想(または拡張)現実環境をレンダリングし、仮想(または拡張)現実環境と対話する様々な異なるやり方が本明細書で開示される。仮想現実システムが仮想環境をレンダリングし得、これは、1人または複数のユーザに表示するためにレンダリングされる仮想空間を含み得る。ユーザは、任意の好適な手段を通してこの仮想空間およびより広い仮想環境内で観察し、対話し得る。開示される方法の1つの目的は、ユーザの視線を決定すること、または視標追跡(eye tracking)を実施することである。特定の実施形態では、仮想現実システムは、機械学習モデルを使用することにより、ユーザの視線を決定する方法を提供し得る。仮想現実システムは、ユーザの視線を決定するために、データの中でも、環境に対するユーザが装着しているヘッドセットのポーズ、ヘッドセットまたは環境に対するコントローラのポーズ、シーン情報など、入力データを使用し得る。視線を決定するために機械学習モデルをトレーニングすることによって、仮想現実システムは、ユーザの予測された視線の正確さを改善し得る。現在、仮想現実システムは、ユーザの視線を決定するために、アイトラッカー(eye tracker)など、センサーを必要とする。したがって、必要なセンサーを有しない仮想現実システムは、ユーザの視覚体験と仮想現実システムの処理とを改善する、可変焦点ディスプレイおよび視線追従(gaze-contingent)レンダリングソリューションを利用することができないことがある。機械学習モデルをトレーニングするために、機械学習モデルは、アイトラッカーからのデータを伴う入力データをグランドトゥルースデータとして利用し得る。機械学習モデルがトレーニングされた後に、次いで、機械学習モデルは、アイトラッカーを有しない仮想現実システムが、視標追跡を実施する能力および/またはユーザの視線を決定する能力を有することを可能にするために、これらの仮想現実システムにおいて実装され得る。
【0004】
本発明の実施形態は、人工現実システムを含むか、または人工現実システムに関連して実装され得る。人工現実は、ユーザへの提示の前に何らかの様式で調整された形式の現実であり、これは、たとえば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、あるいはそれらの何らかの組合せおよび/または派生物を含み得る。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(たとえば、現実世界の写真)と組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(観察者に3次元効果をもたらすステレオビデオなど)。さらに、いくつかの実施形態では、人工現実は、たとえば、人工現実におけるコンテンツを作成するために使用される、および/または人工現実において使用される(たとえば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せに関連し得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続されたヘッドマウントディスプレイ(HMD)、スタンドアロンHMD、モバイルデバイスまたはコンピューティングシステム、あるいは、1人または複数の観察者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含む、様々なプラットフォーム上に実装され得る。
【0005】
一態様では、本発明は、コンピューティングシステムによって、
レンダリングされた環境を生成し、ユーザに表示することと、
ユーザによって装着されたヘッドセットに関連するヘッドセット追跡データに基づいてユーザの頭部ポーズ(head pose)を決定することと、
手追跡データに基づいてユーザの手ポーズ(hand pose)を決定することと、
表示されたレンダリングされた環境に関連するシーン情報にアクセスすることと、
機械学習モデルを使用して、頭部ポーズと、手ポーズと、シーン情報とを処理することによって、レンダリングされた環境内のユーザの予測された焦点を決定することと
を含む、方法を対象とする。
【0006】
本発明による方法の一実施形態では、方法は、レンダリングされた環境内のユーザの予測された焦点に基づいて、コンピューティングシステムによってユーザに提示される画像を調整することをさらに含み得る。
【0007】
本発明による方法の一実施形態では、頭部ポーズは、レンダリングされた環境に対して決定され得る。本発明による方法の一実施形態では、手ポーズは、レンダリングされた環境またはユーザによって装着されたヘッドセットのうちの一方に対して決定され得る。
1.本発明による方法の一実施形態では、ユーザの手ポーズを決定することは、ユーザの手を含む複数の画像を分析する、コンピューティングシステムに結合された1つまたは複数のカメラに基づいて、ユーザの手を識別することをさらに含み得る。
【0008】
本発明による方法の一実施形態では、手追跡データは、ユーザの手によって保持または装着されたデバイスに関連し得る。それに加えて、方法は、ユーザの手によって保持または装着されたデバイスによって実施されるアクションを決定することをさらに含み得、予測された焦点を決定することは、機械学習モデルを使用して、ユーザの手によって保持または装着されたデバイスによって実施されるアクションを処理することをさらに含む。
【0009】
本発明による方法の一実施形態では、シーン情報は、色および深度データを含み得、ならびに/またはシーン情報は、レンダリングされた環境内の1つまたは複数の要素の意味論的情報を含み得る。
【0010】
本発明による方法の一実施形態では、予測された焦点は、レンダリングされた環境内の3次元座標であり得る。
【0011】
本発明による方法の一実施形態では、レンダリングされた環境はアプリケーションに関連し得、アプリケーションはカテゴリーに関係し得、シーン情報は、アプリケーションに関係するカテゴリーを含み得る。
【0012】
本発明による方法の一実施形態では、方法は、機械学習モデルを使用して、予測された焦点のための1つまたは複数のロケーションの信頼性マップを生成することをさらに含み得、信頼性マップは、予測された焦点が1つまたは複数のロケーションの各々にある確率を割り当て、予測された焦点を決定することは、信頼性マップを利用することを含む。
【0013】
本発明による方法の一実施形態では、予測された焦点は、視標追跡センサーなしに決定され得る。
【0014】
本発明による方法の一実施形態では、レンダリングされた環境は、拡張現実環境、仮想現実環境、または複合現実環境のうちの1つまたは複数を含み得る。
【0015】
一態様では、本発明は、ソフトウェアを具現する1つまたは複数のコンピュータ可読非一時的記憶媒体であって、ソフトウェアが、実行されたとき、上記で説明された方法を実施するように、あるいは
仮想現実環境を生成し、ユーザに表示することと、
ユーザによって装着されたヘッドセットに関連するヘッドセット追跡データに基づいてユーザの頭部ポーズを決定することと、
ユーザの手によって保持または装着されたデバイスに関連する手追跡データに基づいてユーザの手ポーズを決定することと、
表示された仮想現実環境に関連するシーン情報にアクセスすることと、
機械学習モデルを使用して、頭部ポーズと、手ポーズと、シーン情報とを処理することによって、仮想現実環境内のユーザの予測された焦点を決定することと
を行うように動作可能である、1つまたは複数のコンピュータ可読非一時的記憶媒体を対象とする。
【0016】
一態様では、本発明は、1つまたは複数のプロセッサと、プロセッサによって実行可能な命令を含む、プロセッサに結合された非一時的メモリとを備えるシステムであって、プロセッサが、命令を実行したとき、上記で説明された方法を実施するように、あるいは
仮想現実環境を生成し、ユーザに表示することと、
ユーザによって装着されたヘッドセットに関連するヘッドセット追跡データに基づいてユーザの頭部ポーズを決定することと、
ユーザの手によって保持または装着されたデバイスに関連する手追跡データに基づいてユーザの手ポーズを決定することと、
表示された仮想現実環境に関連するシーン情報にアクセスすることと、
機械学習モデルを使用して、頭部ポーズと、手ポーズと、シーン情報とを処理することによって、仮想現実環境内のユーザの予測された焦点を決定することと
を行うように動作可能である、システムを対象とする。
【0017】
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、上記で開示された実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。本発明による実施形態は、特に、方法、記憶媒体、システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲で開示され、1つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式的理由で選定されるにすぎない。ただし、前の請求項への意図的な参照(特に複数の従属関係)から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された従属関係にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれも、別個の請求項において、ならびに/あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
【0018】
本特許または出願ファイルは、カラーで仕上げられた少なくとも1つの図面を含んでいる。(1つまたは複数の)カラー図面をもつ本特許または特許出願公開のコピーは、要求し、必要な料金を支払うと、特許庁によって提供される。
【図面の簡単な説明】
【0019】
【
図1】ユーザの視線を決定するために機械学習モデルを使用する例示的なプロセスを示す図である。
【
図2】予測された視線が決定される例示的な仮想現実環境を示す図である。
【
図3】ユーザの視線を予測するために機械学習モデルをトレーニングする例示的なプロセスを示す図である。
【
図4】機械学習モデルを使用してユーザの視線を決定するための例示的な方法を示す図である。
【
図5】仮想現実システムに関連する例示的なネットワーク環境を示す図である。
【
図6】例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【0020】
ポータブル、パーソナルディスプレイ上の高品質視覚体験を開発するための技術の多くが、正確な視線追跡に依拠し得る。仮想現実環境内のユーザの視覚体験を改善するのを助け得る視線追従技術は、可変焦点ディスプレイと、中心窩レンダリング(foveated rendering)とを含み得る。いくつかの仮想現実システムは、ユーザの視線を決定するためにアイトラッカーを含み得るが、アイトラッカーは、すべての仮想現実システムにとってアクセス可能である。たとえば、ユーザのスマートフォンを通して仮想現実環境をレンダリングしているユーザが、視標追跡能力を有しないことがある。ユーザのスマートフォンなど、ポータブルおよびパーソナルソリューションを通して仮想現実がユーザにとってよりアクセス可能になるとき、視標追跡/視線決定機能性が削除されることになる。しかしながら、機械学習モデルをトレーニングすることにより、たいていの仮想現実システムにとって利用可能なデータが、ユーザの視線を決定し、および/または視標追跡を実施するために、利用され得る。ユーザが仮想現実環境を探求し、タスクを完了するとき、ユーザの視線の位置は、頭部方向、手ロケーション、シーンのコンテンツ、およびタスクの目的など、情報のソースに対応し得る。視標追跡/視線決定プロセスおよびアプリケーションが、仮想現実システムおよび仮想現実環境のコンテキストにおいて本明細書で説明され得るが、そのプロセスおよびアプリケーションはまた、拡張現実システム、拡張現実環境、複合現実システム、および複合現実環境に適用され得る。限定としてではなく一例として、レンダリングされた環境は、拡張現実要素をもつ現実世界シーンを備える拡張現実環境であり得、入力データは、ユーザの視線を決定するために拡張現実システムによって使用されるデータであり得る。
【0021】
特定の実施形態では、視線を決定するために機械学習モデルをトレーニングするために、ヘッドセットのポーズ、コントローラ情報、およびシーン情報のうちの少なくとも1つに関連する入力データが使用され得る。特定の実施形態では、仮想現実システムは、複数のセンサーからの入力データを取り出すか、またはその入力データにアクセスし得る。限定としてではなく一例として、仮想現実システムは、ヘッドセットに結合された加速度計を通してヘッドセットの加速度を決定し得る。入力データは、ユーザがどこを見ているかの、予測された焦点を決定するために使用され得る。予測された焦点は、ユーザの環境内の3次元座標によって表され得る。たとえば、予測された焦点は、ユーザの環境内のXYZ座標によって表され得る。たとえば、仮想現実環境内で、AR/VRヘッドセットは、ユーザが仮想現実環境内のどこを見ているかを表すために、予測された3次元座標を計算し得る。ヘッドセットのポーズは、ヘッドセットの位置および配向を指示し得る。この位置および配向は、環境に対するものであり得る。入力データはまた、ヘッドセットの速度および加速度も含み得る。コントローラ情報は、ヘッドセットおよび環境に対するコントローラのうちの1つまたは複数に関連するポーズデータと、また、コントローラに対して実施されているアクションがある(たとえば、ピックアップ機能を実施するためにユーザがボタンを押さえている)かどうかとを指示し得る。コントローラ情報はまた、コントローラの各々の速度および加速度を含み得る。シーン情報は、環境のRGBDデータを含み得る。ヘッドセットは、シーンのRGBDデータからのオブジェクト識別を実施し得る。仮想現実環境では、仮想現実システムは、仮想現実環境に関係する追加情報を受信し得る。たとえば、仮想シーンにおけるオブジェクトのオブジェクトデータと、ゲーム情報と、仮想環境の追加情報とが仮想現実システムに送られ得る。環境の情報は、ユーザがどこを見ていることがあるかを予測するために使用され得る。限定としてではなく一例として、ユーザが狙う必要があるターゲットがある場合、ユーザはそのターゲットを見ている可能性が極めて高い。ヘッドセットのポーズに関する情報、コントローラ情報、およびシーン情報のこの蓄積が、ユーザの焦点を予測するために機械学習モデルに供給され得る。特定の実施形態では、予測された焦点は、ユーザの実際の視線のグランドトゥルースと比較され得る。特定の実施形態では、実際の視線は、視標追跡センサーおよびユーザ確認によって最初に決定され得る。機械学習モデルがトレーニングされた後に、視標追跡センサーを有しない他の仮想現実システムが、ユーザの焦点を予測するために機械学習モデルを使用し得る。
【0022】
特定の実施形態では、機械学習モデルの出力は、焦点がどこに位置し得るかの信頼性マップであり得る。信頼性マップは、環境内の様々なXYZロケーションの信頼性スコアを含み得る。これは、焦点がどこに位置し得るかのヒートマップと同様であり得る。限定としてではなく一例として、信頼性マップは、環境内の複数のXYZロケーションについて0から1までの範囲を含み得る。特定の実施形態では、信頼性スコアは、焦点がそのロケーションにある確率を表し得る。特定の実施形態では、予測された焦点は、いくつかのXYZロケーションを備え得る。XYZ焦点として説明されるが、機械学習モデルは、3D空間における特定の焦点ではなく視線軌跡を指示するために、ただ、XY焦点を決定し得る。
【0023】
特定の実施形態では、仮想現実システムは、仮想現実環境を生成し、ユーザに表示し得る。仮想現実システムは、ヘッドセットと、1つまたは複数のコントローラと、プロセッサと、追加のセンサー(たとえば、カメラなど)とを備え得る。特定の実施形態では、ヘッドセットおよびプロセッサが、1つのコンピューティングデバイス内に含まれていることがある。仮想現実ヘッドセットは、仮想現実ヘッドセット上に表示されるべきアプリケーションなど、仮想現実環境をレンダリングし得る。アプリケーションは、カテゴリーおよび/またはサブカテゴリーに関連し得る。限定としてではなく一例として、アプリケーションはゲームであり得、ゲームはスポーツゲームであり得る。仮想現実システムは、レンダリングされた仮想現実環境に関連するアプリケーションに対応する情報にアクセスするか、またはその情報を取り出し得る。限定としてではなく一例として、仮想現実ヘッドセットが仮想現実要素(たとえば、本)を生成する場合、仮想現実システムは、仮想現実環境内の様々なオブジェクトを識別するためにその情報を取り出し得る。特定の実施形態では、仮想現実システムは、仮想現実環境内のオブジェクト検出を実施し得る。
【0024】
特定の実施形態では、仮想現実システムは、ユーザの頭部ポーズを決定し得る。特定の実施形態では、仮想現実システムは、ユーザによって装着されたヘッドセットに関連するヘッドセット追跡データに基づいて頭部ポーズを決定し得る。特定の実施形態では、仮想現実システムは、ヘッドセットのポーズを追跡するためにセンサーデータ(たとえば、ヘッドセットの加速度計/ジャイロスコープデータ、または仮想現実環境内のユーザを監視する別個のカメラ)にアクセスし得る。限定としてではなく一例として、ヘッドセットは、ヘッドセットのポーズを決定するために使用されるべきスタンドアロンセンサーによって検出され得るIR/LEDパターンを有し得る。限定としてではなく別の例として、ヘッドセットは、物理的環境のピクチャをとり、ヘッドセットが物理的環境に対してどこにあるかを決定するために三角測量技法を使用し得る、外向き(external-facing)カメラを有し得る。物理的環境に対するヘッドセットの位置は、仮想現実環境内のユーザのポーズと比較され得る。特定の実施形態では、頭部ポーズは、仮想現実環境に対して決定され得る。
【0025】
特定の実施形態では、仮想現実システムは、ユーザの手ポーズを決定し得る。特定の実施形態では、仮想現実システムは、ユーザの手によって保持または装着されたデバイスに関連する手追跡データに基づいて手ポーズを決定し得る。限定としてではなく一例として、デバイスは、コントローラ、グローブなどであり得る。特定の実施形態では、仮想現実システムは、ユーザの手の手追跡データに基づいて手ポーズを決定し得る。特定の実施形態では、頭部ポーズを決定することと同様に、仮想現実システムは、センサーデータに基づいてユーザの手におけるデバイスのポーズを決定し得る。限定としてではなく一例として、仮想現実システムは、ユーザの手におけるデバイス(たとえば、コントローラ)のポーズを決定するためにIR/LEDパターンを使用し得る。限定としてではなく別の例として、ヘッドセットは、コントローラの画像をキャプチャし、ユーザのヘッドセットに対するデバイスの手ポーズを決定し得る。限定としてではなく別の例として、ヘッドセットは、ユーザの手の画像をキャプチャし、ユーザの手の手ポーズを決定し得る。特定の実施形態では、手ポーズは、仮想現実環境または物理的現実世界環境に対して決定され得る。特定の実施形態では、仮想現実システムは、ユーザの手におけるデバイスのコントローラ情報にもアクセスし得る。コントローラ情報は、デバイスによって実施されているアクションを指示し得る。限定としてではなく一例として、ユーザは、仮想現実環境内のアクションに対応し得る、デバイスのボタン上でクリックし得る。たとえば、アクションは、オブジェクトを保持すること、オブジェクトと対話することなどであり得る。特定の実施形態では、ヘッドセットは、ユーザの手を含む環境のキャプチャされた画像を通してユーザの一方または両方の手によって実施されているジェスチャーを決定し得る。
【0026】
特定の実施形態では、仮想現実システムは、表示された仮想現実環境に関連するシーン情報にアクセスし得る。特定の実施形態では、仮想現実システムは、アプリケーションによって提供されたシーン情報を取り出し得る。限定としてではなく一例として、アプリケーションがゲームであり、ゲームが、ヘッドセットに、仮想現実環境内の仮想現実要素を生成するように命令する場合、仮想現実システムは、仮想現実要素に対応する情報を取り出すことが可能であり得る。たとえば、仮想現実システムは、仮想現実環境内で生成された仮想現実要素に対応するXYZ座標を決定し得る。特定の実施形態では、シーン情報は、色および深度データを含み得る。特定の実施形態では、仮想現実システムは、仮想現実環境に関連するRGBデータまたはRGBDデータのうちの1つまたは複数にアクセスし得る。限定としてではなく一例として、仮想現実システムは、仮想現実環境内の画像をキャプチャし得る。特定の実施形態では、拡張現実コンテキストまたは複合現実コンテキスト内で、ヘッドセットが、現実世界環境の画像をキャプチャし得る。現実世界環境のキャプチャされた画像は、現実世界環境内の物理的オブジェクトを識別するために処理され得る。画像は、物理的オブジェクトの深度測定値を決定するための三角測量技法を適用することによって処理され得る。特定の実施形態では、シーン情報は、仮想現実環境内の仮想現実要素の意味論的情報を含み得る。仮想現実システムは、仮想現実環境内のオブジェクトを識別するための様々な技法を使用してオブジェクト検出を実施し得る。仮想現実環境は、仮想現実環境に対するオブジェクトのXYZ座標および/またはロケーションを決定し得る。特定の実施形態では、シーン情報は、低レベル情報および高レベル情報として分類され得る。低レベル情報は、強度、色、または動きのうちの1つまたは複数を含み得る。高レベル情報は、仮想現実環境における識別された顔と、仮想現実環境内の識別された人間と、識別されたタスクとを含み得る。限定としてではなく一例として、仮想現実システムは、ユーザが仮想現実環境内のオブジェクトをピックアップすることを試みていること、仮想現実環境内で武器を発射していること、およびユーザが仮想現実環境内で行っていることがある他の可能なタスクを決定し得る。
【0027】
特定の実施形態では、仮想現実システムは、ユーザの予測された焦点を決定し得る。特定の実施形態では、仮想現実システムは、機械学習モデルを使用して、頭部ポーズと、手ポーズと、シーン情報とを処理することによって、ユーザの予測された焦点を決定し得る。機械学習モデルは、仮想現実システムによって仮想現実環境に適用されるようにトレーニングされるものとして説明されるが、機械学習モデルはまた、拡張現実システムによって拡張現実環境に適用されるようにトレーニングされるか、または複合現実システムによって複合現実環境に適用されるようにトレーニングされ得る。特定の実施形態では、仮想現実システムは、機械学習モデルを使用して処理するために他のデータを使用し得る。限定としてではなく一例として、仮想現実システムは、機械学習モデルを使用して、ユーザの手によって保持または装着されたデバイスによって実施されているアクションを処理し得る。たとえば、ユーザがオブジェクトをピックアップすることを試みている場合、機械学習モデルは、予測された焦点が、ピックアップされているオブジェクトに向かうものであると決定し得る。特定の実施形態では、予測された焦点は、仮想現実環境内の3次元座標であり得る。特定の実施形態では、仮想現実システムは、信頼性マップを生成し、信頼性マップを使用することによって、予測された焦点を決定し得る。予測された焦点は、視標追跡センサーを使用せずに決定され得る。予測された焦点を決定することが説明されるが、仮想現実システムは、本明細書で説明されるように入力データを使用してユーザ眼調節および/または輻輳を決定するために、機械学習モデルを使用し得る。
【0028】
特定の実施形態では、仮想現実システムは、予測された焦点と機械学習モデルの他の出力とを決定するために、前のフレームデータまたは前のフレーム予測結果のうちの1つまたは複数にアクセスし得る。特定の実施形態では、機械学習モデルは、ユーザに表示される各フレーム間の時間相関を分析し得る。限定としてではなく一例として、1つのフレーム内の予測された焦点が、厳密なロケーション中にあるかまたは前のフレームの予測された焦点に比較的近くなるように決定され得る。特定の実施形態では、前のフレームデータは、それぞれのフレームの入力データを備え得る。限定としてではなく一例として、ユーザに表示されるフレームのシーケンス内で、仮想現実システムは、個別のフレームおよびその対応する入力データにアクセスし得る。特定の実施形態では、前のフレーム予測結果は、前の予測された焦点と機械学習モデルの他の出力とを備え得る。前のフレーム予測結果は、現在の予測された焦点を指示し得る。機械学習モデルは、現在の予測された焦点を決定するために、前のフレームデータおよび/または前のフレーム予測結果に使用するためにトレーニングされ得る。
【0029】
特定の実施形態では、仮想現実システムは、ユーザに提示される画像を調整し得る。特定の実施形態では、仮想現実システムは、仮想現実環境内のユーザの予測された焦点に基づいて、ユーザに提示される画像を調整し得る。仮想現実システムは、決定されたユーザ眼調節および/または決定された輻輳など、他のデータに基づいて、ユーザに提示される画像を調整し得る。限定としてではなく一例として、仮想現実システムは、仮想現実環境を表示するために必要とされる処理を低減するための中心窩レンダリングのために、予測された焦点を使用し得る。中心窩レンダリングを用いて、仮想現実システムは、予測された焦点の外部の不要なレンダリングを低減し得る。特定の実施形態では、予測された焦点の決定は、画像ひずみ補正、任意の必要な画像シフトなどを助け得る。さらに、予測された焦点は、予測された焦点の外部の不要なレンダリングを低減するための中心窩レンダリングを助け得る。予測された焦点は、可変焦点ディスプレイが、予測された焦点に基づいて焦点ディスプレイを調整するためにも使用され得る。特定の実施形態では、仮想現実システムは、ユーザの予測された焦点を連続的に決定し、更新された予測された焦点に基づいて、ユーザに提示される画像を調整し得る。仮想現実環境および仮想現実システムが本明細書で説明されるが、特定の実施形態では、予測された焦点と機械学習モデルの他の出力(たとえば、ユーザ眼調節および/または輻輳)とは、拡張現実環境のための拡張現実システムによって、または複合現実環境のための複合現実システムによって使用され得る。
【0030】
特定の実施形態では、ユーザは、拡張現実システム、仮想現実システム、または複合現実システムのうちの1つまたは複数によるレンダリングされた環境内で対話し得る。レンダリングされた環境は、拡張現実環境、仮想現実環境、または複合現実環境であり得る。特定の実施形態では、拡張現実システム、仮想現実システム、または複合現実システムのうちの1つまたは複数が、ユーザの視線を決定するかまたは視標追跡を実施するために機械学習モデルをトレーニングするために、本明細書で説明される入力データをとり得る。限定としてではなく一例として、拡張現実システムは、ユーザによって装着されたヘッドセットに結合されたセンサーからの入力データにアクセスし得る。特定の実施形態では、拡張現実システムまたは複合現実システムが、ユーザの視線を決定するかまたは視標追跡を実施するために機械学習モデルを使用し得る。特定の実施形態では、拡張現実システムまたは複合現実システムは、可変焦点レンズ、改善された視標追跡、またはユーザインターフェース対話のうちの1つまたは複数のために、決定されたユーザの視線を使用し得る。限定としてではなく一例として、拡張現実システムのレンズが、ユーザの決定された視線に基づいて調整され得る。特定の実施形態では、低fiアイトラッカーが、拡張現実システム、仮想現実システム、または複合現実システムによって使用され得、決定されたユーザの視線は、決定されたユーザの視線の結果を改善し得る。
【0031】
特定の実施形態では、ユーザが、ユーザの視線を通してユーザインターフェースと対話し得る。特定の実施形態では、ユーザインターフェース要素が、拡張現実要素、仮想現実要素、または複合現実要素として生成され得る。ユーザは、自身の視線を対応するレンダリングされた要素に向けることによって、ユーザインターフェースに関連する機能を実施し得る。限定としてではなく一例として、(ユーザのビューの隅など、ユーザのビューに結合され得る、またはレンダリングされた環境に結合され得る)メッセージングアイコンが、ユーザに提示された拡張現実環境内の拡張現実要素としてレンダリングされ得る。拡張現実システムが、ユーザがメッセージングアイコンを見ることを試みていると決定した場合、拡張現実システムは、ユーザが対話するためのメッセージングアプリケーションをアクティブにし得る。特定の実施形態では、決定された視線は、ユーザインターフェースを通してナビゲートするために使用され得る。限定としてではなく一例として、ユーザは、特定の点に対して見上げるかまたは見下ろすことによって、ユーザに提示されたメニュー(ユーザのビューまたはレンダリングされた環境に結合されたメニュー)上でスクロールアップまたはスクロールダウンし得る。特定の実施形態では、決定された視線は、ユーザインターフェース内で選択を実施するために使用され得る。限定としてではなく一例として、ユーザが、(ユーザのビューまたは拡張現実環境に結合され得る)拡張現実要素として内で複数のオプションを提示された場合、ユーザは、オプションのうちの1つを、そのオプションに対応する拡張現実要素を見ることによって選択し得る。特定の実施形態では、ユーザの視線は、ユーザがどんなオプションを選択するかを決定するために、ジェスチャー(たとえば、拡張現実要素におけるユーザポインティング)に関連して使用され得る。
【0032】
特定の実施形態では、機械学習モデルが、個人化された視線プロファイルを展開し得る。限定としてではなく一例として、ユーザが、仮想現実システム上でアカウント(たとえば、ソーシャルネットワーキングアカウント)にサインインし得、これは、そのアカウントを仮想現実システムにリンクする。機械学習モデルは、仮想現実環境とのユーザ対話に基づいて特定のユーザの視線を決定するためにトレーニングされ得る。限定としてではなく一例として、ユーザは、たいていのユーザとはわずかに異なるやり方で仮想現実環境を見ることがあり、機械学習モデルは、特定のユーザの視線を正確に決定し得る。機械学習モデルはまた、視標追跡センサー(たとえば、デバイスがそれらのセンサーを有する場合)に基づいて特定のユーザの視線を決定するためにトレーニングされ得る。特定の実施形態では、ユーザが別の仮想現実システムまたはデバイス(たとえば、拡張現実システムまたは複合現実システム)上で自身のアカウントにサインインする場合、個人化された視線プロファイルは、ユーザの視線を決定するために機械学習モデルによって使用され得る。特定の実施形態では、個人化された視線プロファイルは、特定のユーザのためにトレーニングされた機械学習モデルであり得る。
【0033】
図1を参照すると、ユーザの視線を決定するために機械学習モデルを使用する例示的なプロセス100が示されている。特定の実施形態では、プロセス100は、仮想現実システムまたは他の処理デバイスにおいて入力データ102、104、106を受信することを含み得る。特定の実施形態では、入力データは、ヘッドセット追跡データ102と、手追跡データ104と、シーン情報106とを含み得る。特定の実施形態では、ヘッドセット追跡データ102は、仮想現実システムの仮想現実ヘッドセットからのセンサーデータ、または仮想現実システムのスタンドアロンセンサーからのセンサーデータを含み得る。ヘッドセット追跡データ102は、ユーザの頭部ポーズを決定するために使用され得る。頭部ポーズは、仮想現実環境に対するまたは物理的環境に対する仮想現実ヘッドセットの位置および配向を指示し得る。特定の実施形態では、手追跡データ104は、仮想現実システムの仮想現実コントローラからのセンサーデータ、または仮想現実システムのスタンドアロンセンサーからのセンサーデータを含み得る。手追跡データ104は、ユーザの手ポーズを決定するために使用され得る。手ポーズは、仮想現実環境または仮想現実ヘッドセットに対する仮想現実コントローラの位置および配向を指示し得る。特定の実施形態では、シーン情報106は、アプリケーション(たとえば、仮想現実環境を生成するための仮想現実システム上で実行している現在のアプリケーション)から取り出されるか、または仮想現実環境のデータ(たとえば、RGBDデータ)に基づいて決定され得る。特定の実施形態では、シーン情報106は、仮想現実環境における仮想現実要素の意味論的情報ならびに各仮想現実要素に関連する3次元座標を指示し得る。シーン情報106は、仮想現実環境に関連する色および深度データなど、他の情報をも指示し得る。シーン情報106は、ユーザが仮想現実環境内で完了しつつあるタスクを含み得る。
【0034】
特定の実施形態では、入力データ102、104、106は、予測された3次元視線110を決定する機械学習モデル108に渡され得る。特定の実施形態では、機械学習モデル108は、予測された視線をグランドトゥルースと比較することによって、前にトレーニングされていることがある。特定の実施形態では、機械学習モデルは、いくつかのタスクが、ユーザが仮想現実環境における特定の点を見ることにつながり得ると決定し得る。たとえば、ユーザが仮想現実環境内で料理している場合、仮想現実システムは、他の入力データ102、104とともに機械学習モデル108にシーン情報106を送り得る。機械学習モデル108は、ユーザが料理しているので、ユーザが、調理用具など、仮想現実環境内のいくつかのオブジェクトを見なければならないと決定し得る。この情報は、ユーザが、同じまたは同様のタスクを実施するとき、ユーザが、一般に、同じ視線パターンに従い得るので、ユーザがどこを見ているかの焦点110を予測するために使用され得る。特定の実施形態では、アプリケーションのカテゴリーおよび/またはサブカテゴリーなど、追加情報が、予測された焦点110を決定するために使用され得る。限定としてではなく一例として、アプリケーションのカテゴリー(たとえば、スポーツゲーム)は、ユーザが、カテゴリーに関連するアクションを実施する間一般に従い得る、いくつかのアクションおよび後続の視線パターンを指示し得る。これらのアクションのカテゴリー分類は、アプリケーションの特定のカテゴリーに対応する視線パターンを識別するために機械学習モデルをトレーニングし得る。さらに、特定の実施形態では、機械学習モデルは、より詳細には、ユーザが仮想現実環境内で実施するいくつかのアクションに関連する視線パターンを決定し得る。
【0035】
特定の実施形態では、機械学習モデルは、仮想現実環境内のオブジェクト間の関係を識別し得る。限定としてではなく一例として、ユーザが、ピーナッツバターおよびジャムサンドイッチを作ることなど、料理アクションを実施している場合、機械学習モデルは、アクションのために使用されることになるオブジェクトと、ユーザがサンドイッチを作るタスクを完了するために従い得るイベントのシーケンスとを識別し得る。イベントのシーケンスは、ユーザがサンドイッチを作る間どこを見ることになるかの視線パターンを指示し得る。たとえば、ユーザは、パンまたは用具をつかむことによって開始し得る。したがって、ユーザは、最初にパンを見、プロセスに従い得る。
【0036】
図2は、予測された視線が決定される例示的な仮想現実環境200を示す。仮想現実環境200は、複数のオブジェクト202を備え得る。たとえば、オブジェクト202のうちの1つがクリップボード202aであり得る。仮想現実環境200は、仮想現実環境200内でユーザの手204を表示し得る。特定の実施形態では、ユーザの手204は、ユーザが保持している仮想現実コントローラに対応し得る。特定の実施形態では、仮想現実システムは、本明細書で説明されるセンサーデータに基づいて、頭部ポーズと、手ポーズとを決定し得る。頭部ポーズは、仮想現実環境200内のユーザの頭部の位置、および配向を指示し得る。手ポーズは、仮想現実環境200内のユーザの手位置および配向を指示し得る。仮想現実システムは、仮想現実環境のシーン情報にアクセスし得る。シーン情報は、仮想現実環境200内の様々なオブジェクト202ならびに仮想現実環境内のオブジェクト202の位置を識別し得る。シーン情報は、ユーザが行っている、たとえば、ユーザが命令によりクリップボード202aをピックアップしている、タスクを指示し得る。したがって、ユーザは、クリップボード202aを読み取っていることがある。仮想現実システムは、ユーザの予測された視線を表す予測された焦点206を決定するために、機械学習モデルを使用して、決定された頭部ポーズと、決定された手ポーズと、シーン情報とを処理し得る。機械学習モデルは、ユーザがクリップボード202aを読み取っているので、予測された焦点206がクリップボード202a上にまたはその近くに位置し得ると決定し得る。特定の実施形態では、仮想現実システムは、予測された視線に基づいて仮想現実環境200の表示を変え得る。
【0037】
図3は、ユーザの視線を予測するために機械学習モデルをトレーニングする例示的なプロセス300を示す。特定の実施形態では、プロセス300は、画像302など、複数の画像を機械学習モデルに供給することによって開始し得る。画像302は、関心オブジェクト304を識別するために処理され得る。特定の実施形態では、機械学習モデルは、関心オブジェクトを決定するために、本明細書で説明される入力データを使用し得る。特定の実施形態では、画像302は、ユーザがオブジェクト304a~304hを使用することによって様々なターゲット304i、304j、304k、304lを狙い得る、ターゲットプラクティス仮想現実環境に対応し得る。特定の実施形態では、機械学習モデルは、ユーザの視線の複数の識別された決定された焦点308a~308mを含むグランドトゥルース画像306にアクセスし得る。特定の実施形態では、グランドトゥルース画像306は、視標追跡センサーおよび/またはユーザ確認の使用によって生成され得る。グランドトゥルース画像306内の複数の決定された焦点308は、ハイライトされた緑エリアによって表され得る。特定の実施形態では、機械学習モデルは、複数の予測された焦点312a~312mを含む予測された焦点画像310を生成し得る。特定の実施形態では、予測された焦点312の各々が、予測された焦点312がそのロケーションにある確率を表すヒートマップとして提示され得る。特定の実施形態では、緑のより明るいシェードは、予測された焦点312が位置し得る低い確率を表し得る。赤は、予測された焦点312が位置し得る高い確率を表し得る。予測された焦点312は、グランドトゥルース画像306の決定された焦点308と比較され得る。特定の実施形態では、機械学習モデルは、決定された焦点308と予測された焦点312との比較に基づいてさらに更新され得る。さらに、多数のサンプルの後に、機械学習モデルによって生成された予測された焦点312は、決定された焦点308よりも正確であり得る。たとえば、視標追跡センサーは、常に正確であるとは限らない。特定の実施形態では、機械学習モデルは、予測された焦点312を正確に決定するために入力データをも使用し得る。特定の実施形態では、機械学習モデルは、ユーザが達成しつつあるタスクに基づいて、予測された焦点312を決定し得る。たとえば、オブジェクト304a~304hは、すべて、ユーザがターゲット304j~304lのではなくそれらを見ている、より高い確率を有し得る。限定としてではなく一例として、機械学習モデルは、ユーザが、ターゲット304j~304lに命中させる特定のタスクを完了しつつあり、ターゲット304j~304lに命中させるためにオブジェクト304a~304hを必要とすることになると決定し得る。したがって、ユーザは、最初に、オブジェクト304a~304hを見ている可能性がより高くなり得る。特定の実施形態では、機械学習モデルは、視線シーケンスを識別し得る。視線シーケンスは、ユーザが様々なレンダリングされた環境を見るために従うパターンであり得る。限定としてではなく一例として、ユーザは、最初に、レンダリングされた環境内の最も大きいオブジェクトを見て、次いで、次に大きいオブジェクトを見ることがあり、またはユーザは、最初に、レンダリングされた環境内の最も近いオブジェクトを見て、次いで、次に近いオブジェクトを見ることがある。ターゲットプラクティス仮想現実環境について、ユーザは、ターゲット304j~304lをヒットするタスクを完了しつつあるので、ユーザは、特定の視線シーケンスに従い得る。すなわち、ユーザは、最初に、ターゲット304j~304lに向かって投げるためにピックアップするためにオブジェクト304a~304hを見ることがある。ユーザがオブジェクトを選択した後に、ユーザは、ターゲット304j~304lに自身の注意を向け得る。したがって、機械学習モデルは、オブジェクト304a~304hが、最初に、予測された焦点312がそれらのそれぞれのロケーションに位置する高い確率を有し得、次いで、ターゲット304j~304lが、予測された焦点312がそれらのそれぞれのロケーションに位置する高い確率を有し得、オブジェクト304a~304hが、低減された確率を有し得ることを予測し得る。
【0038】
図4は、機械学習モデルを使用してユーザの視線を決定するための例示的な方法400を示す。特定の実施形態では、仮想現実システムが、ユーザがどこを見ているかの予測された焦点を決定するために使用され得る。方法400は、ステップ410において開始し得、コンピューティングシステム(たとえば、仮想現実システム)が、レンダリングされた環境を生成し、ユーザに表示し得る。ステップ420において、コンピューティングシステムは、ユーザによって装着されたヘッドセットに関連するヘッドセット追跡データに基づいてユーザの頭部ポーズを決定し得る。ステップ430において、コンピューティングシステムは、手追跡データに基づいてユーザの手ポーズを決定し得る。ステップ440において、コンピューティングシステムは、表示されたレンダリングされた環境に関連するシーン情報にアクセスし得る。ステップ450において、コンピューティングシステムは、機械学習モデルを使用して、頭部ポーズと、手ポーズと、シーン情報とを処理することによって、レンダリングされた環境内のユーザの予測された焦点を決定し得る。特定の実施形態は、適切な場合、
図4の方法の1つまたは複数のステップを繰り返し得る。本開示は、
図4の方法の特定のステップを、特定の順序で行われるものとして説明し、示すが、本開示は、
図4の方法の任意の好適なステップが任意の好適な順序で行われることを企図する。その上、本開示は、
図4の方法の特定のステップを含む、機械学習モデルを使用してユーザの視線を決定するための例示的な方法を説明し、示すが、本開示は、適切な場合、
図4の方法のステップのすべてを含むか、いくつかを含むか、またはいずれも含まないことがある、任意の好適なステップを含む、機械学習モデルを使用してユーザの視線を決定する任意の好適な方法を企図する。さらに、本開示は、
図4の方法の特定のステップを行う特定の構成要素、デバイス、またはシステムを説明し、示すが、本開示は、
図4の方法の任意の好適なステップを行う任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【0039】
本開示は、仮想現実システムが様々な機能を実施することのコンテキストにおいてプロセスを説明し、示すが、コンピューティングシステム(たとえば、ソーシャルネットワーキングシステム160またはサードパーティシステム170として具現されたサーバ)が、処理を扱い、結果を仮想現実システムに送り得る。特定の実施形態では、コンピューティングシステムが、画像を受信し、処理のために別のコンピューティングシステムに画像を送り得る。
【0040】
図5は、仮想現実システムに関連する例示的なネットワーク環境500を示す。ネットワーク環境500は、ネットワーク510によって互いに接続された、クライアントシステム530、ソーシャルネットワーキングシステム560、およびサードパーティシステム570と対話するユーザ501を含む。
図5は、ユーザ501、クライアントシステム530、ソーシャルネットワーキングシステム560、サードパーティシステム570、およびネットワーク510の特定の配置を示すが、本開示は、ユーザ501、クライアントシステム530、ソーシャルネットワーキングシステム560、サードパーティシステム570、およびネットワーク510の任意の好適な配置を企図する。限定としてではなく一例として、ユーザ501、クライアントシステム530、ソーシャルネットワーキングシステム560、およびサードパーティシステム570のうちの2つまたはそれ以上が、ネットワーク510をバイパスして、直接互いに接続され得る。別の例として、クライアントシステム530、ソーシャルネットワーキングシステム560、およびサードパーティシステム570のうちの2つまたはそれ以上が、全体的にまたは部分的に、物理的にまたは論理的に互いとコロケートされ得る。その上、
図5は、特定の数のユーザ501、クライアントシステム530、ソーシャルネットワーキングシステム560、サードパーティシステム570、およびネットワーク510を示すが、本開示は、任意の好適な数のクライアントシステム530、ソーシャルネットワーキングシステム560、サードパーティシステム570、およびネットワーク510を企図する。限定としてではなく一例として、ネットワーク環境500は、複数のユーザ501と、クライアントシステム530と、ソーシャルネットワーキングシステム560と、サードパーティシステム570と、ネットワーク510とを含み得る。
【0041】
本開示は、任意の好適なネットワーク510を企図する。限定としてではなく一例として、ネットワーク510の1つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、ワイヤレスLAN(WLAN)、ワイドエリアネットワーク(WAN)、ワイヤレスWAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネットの一部分、公衆交換電話網(PSTN)の一部分、セルラー電話ネットワーク、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。ネットワーク510は、1つまたは複数のネットワーク510を含み得る。
【0042】
リンク550は、クライアントシステム530と、ソーシャルネットワーキングシステム560と、サードパーティシステム570とを、通信ネットワーク510にまたは互いに接続し得る。本開示は、任意の好適なリンク550を企図する。特定の実施形態では、1つまたは複数のリンク550は、1つまたは複数の、(たとえば、デジタル加入者回線(DSL)またはデータオーバーケーブルサービスインターフェース仕様(DOCSIS)などの)ワイヤラインリンク、(たとえば、Wi-Fiまたはワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)などの)ワイヤレスリンク、または(たとえば、同期光ネットワーク(SONET)または同期デジタルハイアラーキ(SDH)などの)光リンクを含む。特定の実施形態では、1つまたは複数のリンク550は、各々、アドホックネットワーク、イントラネット、エクストラネット、VPN、LAN、WLAN、WAN、WWAN、MAN、インターネットの一部分、PSTNの一部分、セルラー技術ベースネットワーク、衛星通信技術ベースネットワーク、別のリンク550、または2つまたはそれ以上のそのようなリンク550の組合せを含む。リンク550は、ネットワーク環境500の全体にわたって必ずしも同じである必要はない。1つまたは複数の第1のリンク550は、1つまたは複数の第2のリンク550とは1つまたは複数の点で異なり得る。
【0043】
特定の実施形態では、クライアントシステム530は、ハードウェア、ソフトウェア、または埋込み論理構成要素、または2つまたはそれ以上のそのような構成要素の組合せを含み、クライアントシステム530によって実装またはサポートされる適切な機能性を行うことが可能な、電子デバイスであり得る。限定としてではなく一例として、クライアントシステム530は、デスクトップコンピュータ、ノートブックまたはラップトップコンピュータ、ネットブック、タブレットコンピュータ、電子ブックリーダー、GPSデバイス、カメラ、携帯情報端末(PDA)、ハンドヘルド電子デバイス、セルラー電話、スマートフォン、仮想現実ヘッドセットおよびコントローラ、他の好適な電子デバイス、あるいはそれらの任意の好適な組合せなど、コンピュータシステムを含み得る。本開示は、任意の好適なクライアントシステム530を企図する。クライアントシステム530は、クライアントシステム530におけるネットワークユーザが、ネットワーク510にアクセスすることを可能にし得る。クライアントシステム530は、クライアントシステム530のユーザが、他のクライアントシステム530における他のユーザと通信することを可能にし得る。クライアントシステム530は、ユーザがコンテンツと対話するための仮想現実環境を生成し得る。
【0044】
特定の実施形態では、クライアントシステム530は、OCULUS RIFTなど、仮想現実(または拡張現実)ヘッドセット532と、仮想現実コントローラなど、(1つまたは複数の)仮想現実入力デバイス534とを含み得る。クライアントシステム530におけるユーザは、仮想現実ヘッドセット532を装着し、仮想現実ヘッドセット532によって生成された仮想現実環境536と対話するために(1つまたは複数の)仮想現実入力デバイスを使用し得る。示されていないが、クライアントシステム530は、別個の処理コンピュータおよび/または仮想現実システムの任意の他の構成要素をも含み得る。仮想現実ヘッドセット532は、ソフトウェアまたはファームウェア更新など、(限定はしないがオペレーティングシステムを含む)システムコンテンツ538を含み、アプリケーションからのコンテンツ、またはインターネットから動的にダウンロードされたコンテンツ(たとえば、ウェブページコンテンツ)など、サードパーティコンテンツ540をも含み得る、仮想現実環境536を生成し得る。仮想現実ヘッドセット532は、ヘッドセットデバイス532のロケーションを追跡するセンサーデータを生成するための、加速度計、ジャイロスコープ、磁力計など、(1つまたは複数の)センサー542を含み得る。ヘッドセット532は、ユーザの眼の位置またはユーザの眼の観察方向を追跡するためのアイトラッカーをも含み得る。クライアントシステムは、ヘッドセットに関する速度、配向、および重力を決定するために、(1つまたは複数の)センサー542からのデータを使用し得る。(1つまたは複数の)仮想現実入力デバイス534は、入力デバイス534のロケーションとユーザの指の位置とを追跡するセンサーデータを生成するための、加速度計、ジャイロスコープ、磁力計、およびタッチセンサーなど、(1つまたは複数の)センサー544を含み得る。クライアントシステム530は、アウトサイドイン追跡(outside-in tracking)を利用し得、ここで、追跡カメラ(図示せず)が、仮想現実ヘッドセット532の外部に、および仮想現実ヘッドセット532の見通し線内に置かれる。アウトサイドイン追跡では、追跡カメラは、(たとえば、仮想現実ヘッドセット532上の1つまたは複数の赤外線LEDマーカーを追跡することによって)仮想現実ヘッドセット532のロケーションを追跡し得る。代替または追加として、クライアントシステム530は、インサイドアウト追跡(inside-out tracking)を利用し得、ここで、追跡カメラ(図示せず)が、仮想現実ヘッドセット532自体の上に、または仮想現実ヘッドセット532自体の内部に置かれ得る。インサイドアウト追跡では、追跡カメラは、現実世界において追跡カメラの周りの画像をキャプチャし得、現実世界の変化するパースペクティブを使用して、空間における追跡カメラ自体の位置を決定し得る。
【0045】
サードパーティコンテンツ540は、MICROSOFT INTERNET EXPLORER、GOOGLE CHROMEまたはMOZILLA FIREFOXなど、ウェブブラウザを含み得、1つまたは複数のアドオン、プラグイン、あるいは、TOOLBARまたはYAHOO TOOLBARなど、他の拡張を有し得る。クライアントシステム530におけるユーザは、ウェブブラウザを(サーバ562、またはサードパーティシステム570に関連するサーバなどの)特定のサーバに向けるユニフォームリソースロケータ(URL)または他のアドレスを入力し得、ウェブブラウザは、ハイパーテキスト転送プロトコル(HTTP)要求を生成し、HTTP要求をサーバに通信し得る。サーバは、HTTP要求を受け入れ、HTTP要求に応答する1つまたは複数のハイパーテキストマークアップ言語(HTML)ファイルをクライアントシステム530に通信し得る。クライアントシステム530は、ユーザへの提示のためにサーバからのHTMLファイルに基づいてウェブインターフェース(たとえば、ウェブページ)をレンダリングし得る。本開示は、任意の好適なソースファイルを企図する。限定としてではなく一例として、ウェブインターフェースは、特定の必要に応じて、HTMLファイル、拡張可能ハイパーテキストマークアップ言語(XHTML)ファイル、または拡張可能マークアップ言語(XML)ファイルから、レンダリングされ得る。そのようなインターフェースは、たとえば、限定はしないが、JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHTで書かれたものなどのスクリプト、AJAX(非同期JAVASCRIPTおよびXML)などのマークアップ言語とスクリプトとの組合せなどをも実行し得る。本明細書では、ウェブインターフェースへの言及は、適切な場合、(ブラウザがウェブインターフェースをレンダリングするために使用し得る)1つまたは複数の対応するソースファイルを包含し、その逆も同様である。
【0046】
特定の実施形態では、ソーシャルネットワーキングシステム560は、オンラインソーシャルネットワークをホストすることができるネットワークアドレス指定可能なコンピューティングシステムであり得る。ソーシャルネットワーキングシステム560は、たとえば、ユーザプロファイルデータ、概念プロファイルデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関係する他の好適なデータなど、ソーシャルネットワーキングデータを生成し、記憶し、受信し、送り得る。ソーシャルネットワーキングシステム560は、直接的にまたはネットワーク510を介してのいずれかで、ネットワーク環境500の他の構成要素によってアクセスされ得る。限定としてではなく一例として、クライアントシステム530は、直接的にまたはネットワーク510を介してのいずれかで、サードパーティコンテンツ540のウェブブラウザ、またはソーシャルネットワーキングシステム560に関連するネイティブアプリケーション(たとえば、モバイルソーシャルネットワーキングアプリケーション、メッセージングアプリケーション、別の好適なアプリケーション、またはそれらの任意の組合せ)を使用して、ソーシャルネットワーキングシステム560にアクセスし得る。特定の実施形態では、ソーシャルネットワーキングシステム560は、1つまたは複数のサーバ562を含み得る。各サーバ562は、単一サーバ、あるいは複数のコンピュータまたは複数のデータセンターにわたる分散型サーバであり得る。サーバ562は、たとえば、限定はしないが、ウェブサーバ、ニュースサーバ、メールサーバ、メッセージサーバ、広告サーバ、ファイルサーバ、アプリケーションサーバ、交換サーバ、データベースサーバ、プロキシサーバ、本明細書で説明される機能またはプロセスを実施するのに好適な別のサーバ、あるいはそれらの任意の組合せなど、様々なタイプのものであり得る。特定の実施形態では、各サーバ562は、サーバ562によって実装またはサポートされる適切な機能性を行うための、ハードウェア、ソフトウェア、または埋込み論理構成要素、または2つまたはそれ以上のそのような構成要素の組合せを含み得る。特定の実施形態では、ソーシャルネットワーキングシステム560は、1つまたは複数のデータストア564を含み得る。データストア564は、様々なタイプの情報を記憶するために使用され得る。特定の実施形態では、データストア564に記憶された情報は、固有のデータ構造に従って編成され得る。特定の実施形態では、各データストア564は、リレーショナルデータベース、列指向データベース、相関データベース、または他の好適なデータベースであり得る。本開示は、特定のタイプのデータベースを説明するかまたは示すが、本開示は任意の好適なタイプのデータベースを企図する。特定の実施形態は、クライアントシステム530、ソーシャルネットワーキングシステム560、またはサードパーティシステム570が、データストア564に記憶された情報を管理する、取り出す、修正する、追加する、または削除することを可能にするインターフェースを提供し得る。
【0047】
特定の実施形態では、ソーシャルネットワーキングシステム560は、1つまたは複数のソーシャルグラフを1つまたは複数のデータストア564に記憶し得る。特定の実施形態では、ソーシャルグラフは、(各々特定のユーザに対応する)複数のユーザノードまたは(各々特定の概念に対応する)複数の概念ノードを含み得る、複数のノードと、ノードをつなげる複数のエッジとを含み得る。ソーシャルネットワーキングシステム560は、オンラインソーシャルネットワークのユーザに、他のユーザと通信および対話する能力を提供し得る。特定の実施形態では、ユーザは、ソーシャルネットワーキングシステム560を介してオンラインソーシャルネットワークに加わり、次いで、ユーザがつなげられることを希望するソーシャルネットワーキングシステム560の何人かの他のユーザへのつながり(たとえば、関係)を追加し得る。本明細書では、「友達」という用語は、ソーシャルネットワーキングシステム560を介してユーザがつながり、関連付け、または関係を形成したソーシャルネットワーキングシステム560の任意の他のユーザを指し得る。
【0048】
特定の実施形態では、ソーシャルネットワーキングシステム560は、ソーシャルネットワーキングシステム560によってサポートされる様々なタイプのアイテムまたはオブジェクトに関するアクションをとる能力をユーザに提供し得る。限定としてではなく一例として、アイテムおよびオブジェクトは、ソーシャルネットワーキングシステム560のユーザが属し得るグループまたはソーシャルネットワーク、ユーザが興味があり得るイベントまたはカレンダーエントリ、ユーザが使用し得るコンピュータベースアプリケーション、ユーザがサービスを介してアイテムを購入または販売することを可能にするトランザクション、ユーザが実施し得る広告との対話、あるいは他の好適なアイテムまたはオブジェクトを含み得る。ユーザは、ソーシャルネットワーキングシステム560において、またはソーシャルネットワーキングシステム560とは別個であり、ネットワーク510を介してソーシャルネットワーキングシステム560に結合された、サードパーティシステム570の外部システムによって、表されることが可能であるものと対話し得る。
【0049】
特定の実施形態では、ソーシャルネットワーキングシステム560は、様々なエンティティをリンクすることが可能であり得る。限定としてではなく一例として、ソーシャルネットワーキングシステム560は、ユーザが、互いと対話し、ならびにサードパーティシステム570または他のエンティティからコンテンツを受信すること、あるいは、ユーザがアプリケーションプログラミングインターフェース(API)または他の通信チャネルを通してこれらのエンティティと対話することを可能にすることを可能にし得る。
【0050】
特定の実施形態では、サードパーティシステム570は、1つまたは複数のタイプのサーバ、1つまたは複数のデータストア、限定はしないがAPIを含む1つまたは複数のインターフェース、1つまたは複数のウェブサービス、1つまたは複数のコンテンツソース、1つまたは複数のネットワーク、またはたとえばサーバが通信し得る任意の他の好適な構成要素を含み得る。サードパーティシステム570は、ソーシャルネットワーキングシステム560を動作させるエンティティとは異なるエンティティによって動作させられ得る。しかしながら、特定の実施形態では、ソーシャルネットワーキングシステム560とサードパーティシステム570とは、互いと連携して動作して、ソーシャルネットワーキングシステム560またはサードパーティシステム570のユーザにソーシャルネットワーキングサービスを提供し得る。この意味で、ソーシャルネットワーキングシステム560は、サードパーティシステム570などの他のシステムが、インターネットにわたってユーザにソーシャルネットワーキングサービスおよび機能性を提供するために使用し得る、プラットフォームまたはバックボーンを提供し得る。
【0051】
特定の実施形態では、サードパーティシステム570は、サードパーティコンテンツオブジェクトプロバイダを含み得る。サードパーティコンテンツオブジェクトプロバイダは、クライアントシステム530に通信され得る、コンテンツオブジェクトの1つまたは複数のソースを含み得る。限定としてではなく一例として、コンテンツオブジェクトは、たとえば、映画の上映時間、映画のレビュー、レストランのレビュー、レストランのメニュー、製品情報およびレビュー、または他の好適な情報など、ユーザにとって興味のある物またはアクティビティに関する情報を含み得る。限定としてではなく別の例として、コンテンツオブジェクトは、クーポン、ディスカウントチケット、ギフト券、または他の好適なインセンティブオブジェクトなど、インセンティブコンテンツオブジェクトを含み得る。
【0052】
特定の実施形態では、ソーシャルネットワーキングシステム560は、ソーシャルネットワーキングシステム560とのユーザの対話を向上させ得る、ユーザ生成されたコンテンツオブジェクトをも含む。ユーザ生成されたコンテンツは、ユーザがソーシャルネットワーキングシステム560に追加するか、アップロードするか、送るか、または「投稿」することができるものを含み得る。限定としてではなく一例として、ユーザは、クライアントシステム530からソーシャルネットワーキングシステム560に投稿を通信する。投稿は、ステータス更新または他のテキストデータ、ロケーション情報、写真、ビデオ、リンク、音楽あるいは他の同様のデータまたはメディアなど、データを含み得る。コンテンツはまた、ニュースフィードまたはストリームなどの「通信チャネル」を通して、サードパーティによってソーシャルネットワーキングシステム560に追加され得る。
【0053】
特定の実施形態では、ソーシャルネットワーキングシステム560は、様々なサーバ、サブシステム、プログラム、モジュール、ログ、およびデータストアを含み得る。特定の実施形態では、ソーシャルネットワーキングシステム560は、ウェブサーバ、アクションロガー、API要求サーバ、関連性およびランキングエンジン、コンテンツオブジェクト分類子、通知コントローラ、アクションログ、サードパーティコンテンツオブジェクト露出ログ、推論モジュール、許可/プライバシーサーバ、検索モジュール、広告ターゲッティングモジュール、ユーザインターフェースモジュール、ユーザプロファイルストア、つながりストア、サードパーティコンテンツストア、またはロケーションストアのうちの1つまたは複数を含み得る。ソーシャルネットワーキングシステム560は、ネットワークインターフェース、セキュリティ機構、ロードバランサ、フェイルオーバサーバ、管理およびネットワーク運用コンソール、他の好適な構成要素、またはそれらの任意の好適な組合せなど、好適な構成要素をも含み得る。特定の実施形態では、ソーシャルネットワーキングシステム560は、ユーザプロファイルを記憶するための1つまたは複数のユーザプロファイルストアを含み得る。ユーザプロファイルは、たとえば、経歴情報、人口統計学的情報、行動情報、ソーシャル情報、あるいは、職歴、学歴、趣味もしくは選好、興味、親和性、またはロケーションなど、他のタイプの記述的情報を含み得る。興味情報は、1つまたは複数のカテゴリーに関係する興味を含み得る。カテゴリーは一般的であるかまたは固有のものであり得る。限定としてではなく一例として、ユーザが、靴のブランドに関する記事に対して「いいね!」を表明した場合、カテゴリーは、ブランド、あるいは「靴」または「衣類」の一般的なカテゴリーであり得る。つながりストアは、ユーザに関するつながり情報を記憶するために使用され得る。つながり情報は、同様のまたは共通の職歴、グループメンバーシップ、趣味、学歴を有するか、あるいはいかなる形でも関係するか、または共通属性を共有する、ユーザを指示し得る。つながり情報は、(内部と外部の両方の)異なるユーザとコンテンツとの間のユーザ定義されたつながりをも含み得る。ウェブサーバは、ネットワーク510を介して、ソーシャルネットワーキングシステム560を、1つまたは複数のクライアントシステム530または1つまたは複数のサードパーティシステム570にリンクするために使用され得る。ウェブサーバは、ソーシャルネットワーキングシステム560と1つまたは複数のクライアントシステム530との間でメッセージを受信およびルーティングするためのメールサーバまたは他のメッセージング機能性を含み得る。API要求サーバは、サードパーティシステム570が、1つまたは複数のAPIを呼び出すことによってソーシャルネットワーキングシステム560からの情報にアクセスすることを可能にし得る。アクションロガーは、ソーシャルネットワーキングシステム560上の、またはソーシャルネットワーキングシステム560から離れた、ユーザのアクションに関するウェブサーバからの通信を受信するために使用され得る。アクションログと併せて、サードパーティコンテンツオブジェクトへのユーザ露出についてのサードパーティコンテンツオブジェクトログが維持され得る。通知コントローラは、クライアントシステム530にコンテンツオブジェクトに関する情報を提供し得る。情報は、通知としてクライアントシステム530にプッシュされ得るか、または、情報は、クライアントシステム530から受信された要求に応答してクライアントシステム530からプルされ得る。許可サーバは、ソーシャルネットワーキングシステム560のユーザの1つまたは複数のプライバシー設定を施行するために使用され得る。ユーザのプライバシー設定は、ユーザに関連する特定の情報がどのように共有され得るかを決定する。許可サーバは、ユーザが、たとえば、適切なプライバシー設定を設定することなどによって、そのユーザのアクションがソーシャルネットワーキングシステム560によってロギングされるか、または他のシステム(たとえば、サードパーティシステム570)と共有されることをオプトインまたはオプトアウトすることを可能にし得る。サードパーティコンテンツオブジェクトストアは、サードパーティシステム570など、サードパーティから受信されたコンテンツオブジェクトを記憶するために使用され得る。ロケーションストアは、ユーザに関連するクライアントシステム530から受信されたロケーション情報を記憶するために使用され得る。広告価格設定モジュールは、ソーシャル情報、現在時間、ロケーション情報、または他の好適な情報を組み合わせて、関連する広告を通知の形態でユーザに提供し得る。
【0054】
図6は、例示的なコンピュータシステム600を示す。特定の実施形態では、1つまたは複数のコンピュータシステム600は、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施する。特定の実施形態では、1つまたは複数のコンピュータシステム600は、本明細書で説明または示される機能性を提供する。特定の実施形態では、1つまたは複数のコンピュータシステム600上で稼働しているソフトウェアは、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施するか、あるいは本明細書で説明または示される機能性を提供する。特定の実施形態は、1つまたは複数のコンピュータシステム600の1つまたは複数の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含し得、その逆も同様である。その上、コンピュータシステムへの言及は、適切な場合、1つまたは複数のコンピュータシステムを包含し得る。
【0055】
本開示は、任意の好適な数のコンピュータシステム600を企図する。本開示は、任意の好適な物理的形態をとるコンピュータシステム600を企図する。限定としてではなく例として、コンピュータシステム600は、組込み型コンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、タブレットコンピュータシステム、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステム600は、1つまたは複数のコンピュータシステム600を含むか、単一または分散型であるか、複数のロケーションにわたるか、複数のマシンにわたるか、複数のデータセンターにわたるか、あるいは1つまたは複数のネットワーク中の1つまたは複数のクラウド構成要素を含み得るクラウド中に常駐し得る。適切な場合、1つまたは複数のコンピュータシステム600は、実質的な空間的または時間的制限なしに、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。限定としてではなく一例として、1つまたは複数のコンピュータシステム600は、リアルタイムでまたはバッチモードで、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。1つまたは複数のコンピュータシステム600は、適切な場合、異なる時間においてまたは異なるロケーションにおいて、本明細書で説明または示される1つまたは複数の方法の1つまたは複数のステップを実施し得る。
【0056】
特定の実施形態では、コンピュータシステム600は、プロセッサ602と、メモリ604と、ストレージ606と、入出力(I/O)インターフェース608と、通信インターフェース610と、バス612とを含む。本開示は、特定の配置において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な配置において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。
【0057】
特定の実施形態では、プロセッサ602は、コンピュータプログラムを作り上げる命令など、命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するために、プロセッサ602は、内部レジスタ、内部キャッシュ、メモリ604、またはストレージ606から命令を取り出し(またはフェッチし)、それらの命令を復号および実行し、次いで、内部レジスタ、内部キャッシュ、メモリ604、またはストレージ606に1つまたは複数の結果を書き込み得る。特定の実施形態では、プロセッサ602は、データ、命令、またはアドレスのための1つまたは複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ602を企図する。限定としてではなく一例として、プロセッサ602は、1つまたは複数の命令キャッシュと、1つまたは複数のデータキャッシュと、1つまたは複数のトランスレーションルックアサイドバッファ(TLB)とを含み得る。命令キャッシュ中の命令は、メモリ604またはストレージ606中の命令のコピーであり得、命令キャッシュは、プロセッサ602によるそれらの命令の取出しを高速化し得る。データキャッシュ中のデータは、プロセッサ602において実行する命令が動作する対象のメモリ604またはストレージ606中のデータのコピー、プロセッサ602において実行する後続の命令によるアクセスのための、またはメモリ604もしくはストレージ606に書き込むための、プロセッサ602において実行された前の命令の結果、あるいは他の好適なデータであり得る。データキャッシュは、プロセッサ602による読取りまたは書込み動作を高速化し得る。TLBは、プロセッサ602のための仮想アドレストランスレーション(virtual-address translation)を高速化し得る。特定の実施形態では、プロセッサ602は、データ、命令、またはアドレスのための1つまたは複数の内部レジスタを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ602を企図する。適切な場合、プロセッサ602は、1つまたは複数の算術論理ユニット(ALU)を含むか、マルチコアプロセッサであるか、または1つまたは複数のプロセッサ602を含み得る。本開示は、特定のプロセッサを説明し、示すが、本開示は任意の好適なプロセッサを企図する。
【0058】
特定の実施形態では、メモリ604は、プロセッサ602が実行するための命令、またはプロセッサ602が動作する対象のデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム600は、ストレージ606または(たとえば、別のコンピュータシステム600などの)別のソースからメモリ604に命令をロードし得る。プロセッサ602は、次いで、メモリ604から内部レジスタまたは内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ602は、内部レジスタまたは内部キャッシュから命令を取り出し、それらの命令を復号し得る。命令の実行中またはその後に、プロセッサ602は、(中間結果または最終結果であり得る)1つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ602は、次いで、メモリ604にそれらの結果のうちの1つまたは複数を書き込み得る。特定の実施形態では、プロセッサ602は、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ606または他の場所とは対照的な)メモリ604中の命令のみを実行し、1つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは(ストレージ606または他の場所とは対照的な)メモリ604中のデータのみに対して動作する。(アドレスバスおよびデータバスを各々含み得る)1つまたは複数のメモリバスが、プロセッサ602をメモリ604に結合し得る。バス612は、以下で説明されるように、1つまたは複数のメモリバスを含み得る。特定の実施形態では、1つまたは複数のメモリ管理ユニット(MMU)が、プロセッサ602とメモリ604との間に常駐し、プロセッサ602によって要求されるメモリ604へのアクセスを容易にする。特定の実施形態では、メモリ604は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適切な場合、揮発性メモリであり得る。適切な場合、このRAMは、ダイナミックRAM(DRAM)またはスタティックRAM(SRAM)であり得る。その上、適切な場合、このRAMは、シングルポートまたはマルチポートRAMであり得る。本開示は、任意の好適なRAMを企図する。メモリ604は、適切な場合、1つまたは複数のメモリ604を含み得る。本開示は、特定のメモリを説明し、示すが、本開示は任意の好適なメモリを企図する。
【0059】
特定の実施形態では、ストレージ606は、データまたは命令のための大容量ストレージを含む。限定としてではなく一例として、ストレージ606は、ハードディスクドライブ(HDD)、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス(USB)ドライブ、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。ストレージ606は、適切な場合、リムーバブルまたは非リムーバブル(または固定)媒体を含み得る。ストレージ606は、適切な場合、コンピュータシステム600の内部または外部にあり得る。特定の実施形態では、ストレージ606は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ606は、読取り専用メモリ(ROM)を含む。適切な場合、このROMは、マスクプログラムROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的書き換え可能ROM(EAROM)、またはフラッシュメモリ、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。本開示は、任意の好適な物理的形態をとる大容量ストレージ606を企図する。ストレージ606は、適切な場合、プロセッサ602とストレージ606との間の通信を容易にする1つまたは複数のストレージ制御ユニットを含み得る。適切な場合、ストレージ606は、1つまたは複数のストレージ606を含み得る。本開示は、特定のストレージを説明し、示すが、本開示は任意の好適なストレージを企図する。
【0060】
特定の実施形態では、I/Oインターフェース608は、コンピュータシステム600と1つまたは複数のI/Oデバイスとの間の通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム600は、適切な場合、これらのI/Oデバイスのうちの1つまたは複数を含み得る。これらのI/Oデバイスのうちの1つまたは複数は、人とコンピュータシステム600との間の通信を可能にし得る。限定としてではなく一例として、I/Oデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なI/Oデバイス、またはこれらのうちの2つまたはそれ以上の組合せを含み得る。I/Oデバイスは1つまたは複数のセンサーを含み得る。本開示は、任意の好適なI/Oデバイスと、それらのI/Oデバイスのための任意の好適なI/Oインターフェース608とを企図する。適切な場合、I/Oインターフェース608は、プロセッサ602がこれらのI/Oデバイスのうちの1つまたは複数を駆動することを可能にする1つまたは複数のデバイスまたはソフトウェアドライバを含み得る。I/Oインターフェース608は、適切な場合、1つまたは複数のI/Oインターフェース608を含み得る。本開示は、特定のI/Oインターフェースを説明し、示すが、本開示は任意の好適なI/Oインターフェースを企図する。
【0061】
特定の実施形態では、通信インターフェース610は、コンピュータシステム600と、1つまたは複数の他のコンピュータシステム600または1つまたは複数のネットワークとの間の(たとえば、パケットベース通信などの)通信のための1つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、通信インターフェース610は、イーサネットまたは他のワイヤベースネットワークと通信するためのネットワークインターフェースコントローラ(NIC)またはネットワークアダプタ、あるいはWI-FIネットワークなどのワイヤレスネットワークと通信するためのワイヤレスNIC(WNIC)またはワイヤレスアダプタを含み得る。本開示は、任意の好適なネットワークと、そのネットワークのための任意の好適な通信インターフェース610とを企図する。限定としてではなく一例として、コンピュータシステム600は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、またはインターネットの1つまたは複数の部分、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。これらのネットワークのうちの1つまたは複数の1つまたは複数の部分は、ワイヤードまたはワイヤレスであり得る。一例として、コンピュータシステム600は、(たとえば、BLUETOOTH WPANなどの)ワイヤレスPAN(WPAN)、WI-FIネットワーク、WI-MAXネットワーク、(たとえば、モバイル通信用グローバルシステム(GSM)ネットワークなどの)セルラー電話ネットワーク、または他の好適なワイヤレスネットワーク、あるいはこれらのうちの2つまたはそれ以上の組合せと通信し得る。コンピュータシステム600は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース610を含み得る。通信インターフェース610は、適切な場合、1つまたは複数の通信インターフェース610を含み得る。本開示は、特定の通信インターフェースを説明し、示すが、本開示は任意の好適な通信インターフェースを企図する。
【0062】
特定の実施形態では、バス612は、コンピュータシステム600の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、バス612は、アクセラレーテッドグラフィックスポート(AGP)または他のグラフィックスバス、拡張業界標準アーキテクチャ(EISA)バス、フロントサイドバス(FSB)、HYPERTRANSPORT(HT)相互接続、業界標準アーキテクチャ(ISA)バス、INFINIBAND相互接続、ローピンカウント(LPC)バス、メモリバス、マイクロチャネルアーキテクチャ(MCA)バス、周辺構成要素相互接続(PCI)バス、PCI-Express(PCIe)バス、シリアルアドバンストテクノロジーアタッチメント(SATA)バス、ビデオエレクトロニクス規格協会ローカル(VLB)バス、または別の好適なバス、あるいはこれらのうちの2つまたはそれ以上の組合せを含み得る。バス612は、適切な場合、1つまたは複数のバス612を含み得る。本開示は、特定のバスを説明し、示すが、本開示は任意の好適なバスまたは相互接続を企図する。
【0063】
本明細書では、1つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、(たとえば、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向けIC(ASIC)などの)1つまたは複数の半導体ベースまたは他の集積回路(IC)、ハードディスクドライブ(HDD)、ハイブリッドハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ(FDD)、磁気テープ、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタルカードまたはドライブ、任意の他の好適なコンピュータ可読非一時的記憶媒体、あるいはこれらのうちの2つまたはそれ以上の任意の好適な組合せを含み得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。
【0064】
本明細書では、「または」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、包括的であり、排他的ではない。したがって、本明細書では、「AまたはB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「A、B、またはその両方」を意味する。その上、「および」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、共同と個別の両方である。したがって、本明細書では、「AおよびB」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「共同でまたは個別に、AおよびB」を意味する。
【0065】
本開示の範囲は、当業者が理解するであろう、本明細書で説明または示される例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または示される例示的な実施形態に限定されない。その上、本開示は、本明細書のそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして説明し、示すが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のどこかに説明または示される構成要素、要素、特徴、機能、動作、またはステップのうちのいずれかの任意の組合せまたは置換を含み得る。さらに、特定の機能を実施するように適応されるか、配置されるか、実施することが可能であるか、実施するように構成されるか、実施することが可能にされるか、実施するように動作可能であるか、または実施するように動作する、装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲における参照は、その装置、システム、または構成要素が、そのように適応されるか、配置されるか、可能であるか、構成されるか、可能にされるか、動作可能であるか、または動作する限り、その装置、システム、構成要素またはその特定の機能が、アクティブにされるか、オンにされるか、またはロック解除されるか否かにかかわらず、その装置、システム、構成要素を包含する。さらに、本開示は、特定の実施形態を、特定の利点を提供するものとして説明するかまたは示すが、特定の実施形態は、これらの利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。