JP6828189B2 - 混合現実環境でのコンテキストアプリケーション - Google Patents

混合現実環境でのコンテキストアプリケーション Download PDF

Info

Publication number
JP6828189B2
JP6828189B2 JP2019560385A JP2019560385A JP6828189B2 JP 6828189 B2 JP6828189 B2 JP 6828189B2 JP 2019560385 A JP2019560385 A JP 2019560385A JP 2019560385 A JP2019560385 A JP 2019560385A JP 6828189 B2 JP6828189 B2 JP 6828189B2
Authority
JP
Japan
Prior art keywords
context
application
user
real
mixed reality
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019560385A
Other languages
English (en)
Other versions
JP2020520000A (ja
JP2020520000A5 (ja
Inventor
エルヴェ ドルーアン、シルヴィオ
エルヴェ ドルーアン、シルヴィオ
リオネル グザヴィエ ジャン パルマロ、グレゴリー
リオネル グザヴィエ ジャン パルマロ、グレゴリー
ロシロ、ディオセリン アレハンドラ ゴンザレス
ロシロ、ディオセリン アレハンドラ ゴンザレス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unity IPR ApS
Original Assignee
Unity IPR ApS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Unity IPR ApS filed Critical Unity IPR ApS
Publication of JP2020520000A publication Critical patent/JP2020520000A/ja
Publication of JP2020520000A5 publication Critical patent/JP2020520000A5/ja
Application granted granted Critical
Publication of JP6828189B2 publication Critical patent/JP6828189B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B2027/0178Eyeglass type
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Optics & Photonics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Analysis (AREA)

Description

本明細書に開示される主題は、概して、コンピュータシステムの技術分野に関し、より具体的には、仮想現実環境または混合現実環境におけるコンテキストアプリケーションを実行するためのコンピュータシステムおよび方法に関する。
仮想現実(VR)と拡張現実(AR)とその周辺の技術は急速に成長し成熟している。VRおよびARは、主にヘッドマウントディスプレイ(head mounted display:HMD)を装着し、任意選択でハンドトラッキングおよび入力デバイスを装着することで経験される。たとえば、ARを使用すると、HMDは、装着者を取り巻く現実世界の環境と連動して仮想オブジェクトを統合するように構成され得る。いくつかの既知のARシステムは、HMDを介して環境に関する情報を装着者に提供するソフトウェアツールも含む。
添付の図面の様々なものは、本開示の例示的な実施形態を単に示すものであり、その範囲を限定すると見なすことはできない。
本明細書で提供される見出しは単に便宜上のものであり、使用される用語の範囲または意味に必ずしも影響を与えるわけではない。図中の類似の番号は類似の構成要素を示す。
ユーザにMRコンテキストアプリケーション機能を提供するように構成された例示的なMRコンテキストアプリケーション(アプリ)システムおよび関連するデバイスの図である。 ユーザ(または「装着者」)によって装着され、MRシステムのユーザデバイスとして機能するように構成された例示的なHMDの図である。 ユーザがMRシステムにより提供されるMR環境を経験するときにコンテキストアプリケーションをユーザに提供するための例示的な方法のフローチャートである。 MRシステムによって評価される現実世界環境の一例を示す。 ユーザデバイスを介してMRシステムによりユーザに提示されるMR環境を示す。 ユーザデバイスを介してMRシステムによりユーザに提示されるMR環境を示す。 ユーザデバイスを介してMRシステムによりユーザに提示される現実世界環境内のMRシステムにより検出された調理用鍋の一例を示す。 異なるコンテキストアプリケーションを提供する2つの例示的な層を示す。 異なるコンテキストアプリケーションを提供する2つの例示的な層を示す。 一実施形態による、MRシステムによってユーザデバイスを介してユーザに提示されるシリアルボックスのゲームを示すMR環境の一例を示す図である。 一実施形態による、名刺によって制御されるコンテキストアプリケーションを示すユーザデバイスを介してMRシステムによってユーザに提示されるMR環境の一例を示す。 一実施形態による、名刺によって制御されるコンテキストアプリケーションを示すユーザデバイスを介してMRシステムによってユーザに提示されるMR環境の一例を示す。 一実施形態による、名刺によって制御されるコンテキストアプリケーションを示すユーザデバイスを介してMRシステムによってユーザに提示されるMR環境の一例を示す。 一実施形態による、名刺によって制御されるコンテキストアプリケーションを示すユーザデバイスを介してMRシステムによってユーザに提示されるMR環境の一例を示す。 本明細書に記載されるVRツールおよび開発環境を提供するために、本明細書に記載される様々なハードウェアアーキテクチャと併せて使用され得る代表的なソフトウェアアーキテクチャを示すブロック図である。 マシン可読媒体(例えば、マシン可読記憶媒体)から命令を読み取り、本明細書で論じるVR方法の任意の1つまたは複数を実行することができる、ある例示的な実施形態によるマシンの構成要素を示すブロック図である。
以下の説明は、本開示の例示的な実施形態を構成するシステム、方法、技術、命令シーケンス、および計算機プログラム製品を記載する。以下の説明では、説明の目的で、本発明の主題の様々な実施形態の理解を促すために、多数の具体的な詳細が述べられている。しかしながら、本発明の主題の実施形態がこれらの具体的な詳細なしで実施されてもよいことは当業者には明らかであろう。
本明細書では、混合現実(mixed reality:MR)システムおよびそれに関連する方法について説明される。MRシステムは、MR環境内のコンテキストアプリケーション(contextual application)を検出してユーザに提示するように構成されている。例示的な実施形態では、ユーザ(例えば、HMDの装着者、またはスマートフォン、タブレット、または他のMR対応デバイスを保持している人)は、MRデバイスを介してMRシステムによって提示されるMR環境を経験する。MR環境は、MRシステムによって提示される仮想コンテンツとともに、現実世界(例えば、周囲の環境)のビュー(view)を含む。MRデバイスは、いくつかの実施形態では、任意選択で深さデータを含む、ユーザの周囲の現実世界のデジタルの映像または画像を取得するように構成された前方カメラを含み、MRシステムは、本明細書に記載されるMRの特徴のいくつかを提供するために解析する。
動作中、MRシステムは、さまざまなコンテキスト基準(contextual criteria)に基づいてコンテキストアプリケーションをトリガーする。より具体的には、一実施形態では、MRシステムは、MRシステムによって満足されていると認識されると、MRシステムにMR環境内のユーザに対するコンテキストアプリケーションの実行および提示を開始させるコンテキスト基準(本明細書では、「トリガー条件」または「コンテキストトリガー」ともいう)を識別する。
例えば、アプリケーショントリガーの一例は、MRシステムによってユーザが台所または食料品店にいると判断したとき、および調理材料が近くで認識されたとき(例えば、ユーザが食器棚や棚の上の缶詰を見ているとき)に、レシピアプリケーションを開始するように構成され得る。言い換えれば、コンテキスト基準は、ユーザの周囲からの情報に依存する1組の基準である。このような基準は、たとえば、ユーザの位置、ユーザに対する現実世界のオブジェクトの近接度、ユーザアクションの特定の状態、絶対時間または相対時間、またはそれらの組み合わせを含む。そのため、アプリケーショントリガーのコンテキスト基準は、ユーザが自分自身を見つけるリアルタイムコンテキスト(例えば、周囲)を見る。そのような例では、缶詰上に提示される見込みのあるレシピを示すアイコンなど、特定の現実世界のオブジェクトに近接する仮想オブジェクトをMRシステムに提示させるように、コンテキストアプリケーションは構成され得る。そのため、ユーザは、仮想オブジェクト、つまりコンテキストアプリケーションと対話して、コンテキストアプリケーションによって識別されるレシピを確認できる。
様々なアプリケーショントリガーに関連し得る様々な実世界オブジェクトの存在を検出するために、いくつかの実施形態では、MRシステムは、MRデバイス(例えば、MRデバイスからのライブデジタルビデオフィード上の画像処理)からのセンサデータを使用してオブジェクト検出を実行する。MRシステムは、例えば、家具(例えば、椅子、テーブル、家具)、構造的建築構成要素(例えば、ドア、窓、屋根)、または家庭用品(例えば、食料品、電化製品)などの三次元オブジェクトを認識するように構成され得る。MRシステムは、これらのサイズ、形状、テクスチャ、場所、およびオブジェクトに現れる可能性のある様々な視覚的マーキングに基づいて、オブジェクトを識別し得る。例えば、円筒形オブジェクトは、ユーザのキッチン内の位置に基づいて缶詰であると判定され、さらに缶詰のラベルの部分画像に基づいてキノコのスープの缶であると判定されてもよい。いくつかの実施形態では、訓練されたニューラルネットワークによってカメラ深度感知情報を3次元モデルにマッチングさせることが、トリガーを検出するために使用される。
MRシステムがユーザの近くのさまざまなオブジェクトを決定すると、MRシステムは、検出されたオブジェクトをさまざまなアプリケーショントリガー(たとえば、各トリガーの基準)と比較する。MRシステムが、アプリケーショントリガーが(例えば、基準例の1つとして)近くのオブジェクトの1つと関連し、そうでなければ、アプリケーショントリガーのすべてのコンテキスト基準を満たすと判断すると、MRシステムは、アプリケーショントリガーによって識別されるコンテキストアプリケーションを開始する。さらに、いくつかの実施形態では、アプリケーショントリガーは、トリガーされたアプリケーションにおいてさまざまなアクションを開始するように構成されてもよい。例えば、上記の例示的なアプリケーショントリガーは、検出された調理材料の1つまたは複数が使用されるレシピを提示するレシピアプリケーションを開始するように構成されてもよい。そのため、MRシステムは、MR環境においてアプリケーションのコンテキストベースのトリガーを提示する。
例示的な実施形態では、ユーザのMR対応デバイス上の混合現実(MR)環境において複数のコンテキストアプリケーションを実装する方法が開示される。少なくとも1つの現実世界のオブジェクトは、MR対応デバイスのセンサによって取得された少なくとも1つの現実世界のオブジェクトの1つ以上の属性にオブジェクト認識アルゴリズムを適用することにより、MR環境で識別される。複数のコンテキストアプリケーションの第1のコンテキストアプリケーションは、第1の組のコンテキストトリガーと、複数のコンテキストアプリケーションのうちの第2のコンテキストアプリケーションとの間の関連付けを決定するために使用される。第2のコンテキストアプリケーションは、少なくとも1つのコンテキストトリガーが満たされたことに基づいて開始される。機能は、第2のコンテキストアプリケーションに関連付けられた第2の組のコンテキストトリガーを満たす少なくとも1つの仮想オブジェクトとのユーザの対話に基づいて、第2のコンテキストアプリケーションにおいて呼び出される。
以下の説明では、「モジュール」という用語は、ソフトウェア、ハードウェア、またはファームウェア(またはそれらの任意の組み合わせ)コンポーネントを広く指す。モジュールは典型的には、指定された入力を使用して有用なデータまたはその他の出力を生成できる機能コンポーネントである。モジュールは自己完結型である場合とそうでない場合がある。アプリケーションプログラム(「アプリケーション」とも呼ばれる)は、1つ以上のモジュールを含むか、または、モジュールは、1つ以上のアプリケーションプログラムを含み得る。例示的な実施形態では、本明細書に記載される様々なモジュールのそれぞれは、単に一般的なコンピューティングコンポーネントではなく、その代わりに、本明細書に記載されている一つ以上の特殊化された機能または動作(または機能や動作の組み合わせ)を実施する(例えば、特化されたプログラミングロジック)コンポーネントである。
図1は、ユーザ102にMRコンテキストアプリケーション機能を提供するように構成された例示的なMRコンテキストアプリケーション(アプリ)システム100および関連するデバイスの図である。例示的な実施形態では、MRコンテキストアプリシステム100は、ユーザ102によって操作されるユーザデバイス104と、ネットワーク150(例えば、セルラーネットワーク、Wi−Fiネットワーク、インターネットなど)を介してユーザデバイス104とネットワーク通信するように結合されたサーバ130とを含む。ユーザデバイス104は、混合現実経験をユーザ102に提供できるコンピューティングデバイスである。いくつかの実施形態では、ユーザデバイス104は、(例えば、Google Glass(登録商標)、HTC Vive(登録商標)、Microsoft HoloLens(登録商標)などの)拡張現実(AR)または仮想現実(VR)バイザー(visor)など、ユーザ102によって装着される頭部装着型ディスプレイ(head-mounted display:HMD)デバイスである。他の実施形態では、ユーザデバイス104は、スマートフォンまたはタブレットコンピュータなどのモバイルコンピューティングデバイスである。
例示的な実施形態では、ユーザデバイス104は、1つまたは複数の中央処理部(CPU)106、グラフィック処理装置(GPU)108、およびホログラフィック処理装置(holographic processing units:HPU)110を含む。また、ユーザデバイス104は、ネットワーク150を介して通信するための1つまたは複数のネットワークデバイス112(たとえば、有線または無線ネットワークアダプタ)を含む。ユーザデバイス104はさらに、動作中にユーザ102の近くの現実世界のデジタルの映像を取得するように構成され得る1つ以上のカメラデバイス114を含む。ユーザデバイス104はまた、(例えば、ユーザデバイス104のGPSの場所を判定するための)全地球測位システム(GPS)受信機、(例えば、ユーザ102の生体認証データを捕捉するための)生体認証センサ、(例えば、ユーザ102もしくは他のオブジェクトの位置データを捕捉するための)運動もしくは位置センサ、または(例えば、音声データを捕捉するための)音声マイクなど、1つ以上のセンサ116を含み得る。いくつかのセンサ116は、(例えば、Microsoft Kinect(登録商標)、Vive Tracker(商標)、MITのLidarセンサ、またはMITの無線感情検出器で使用されるものなどの)ユーザデバイス104の外部にあり、ユーザデバイス104と無線通信するように構成され得る。
ユーザデバイス104はまた、例えば、キーボードまたはキーパッド、マウス、ポインティングデバイス、タッチスクリーン、またはハンドヘルドデバイス(例えば、ハンドモーショントラッキングデバイス(hand motion tracking device))などの1つ以上の入力デバイス118を含む。ユーザデバイス104はさらに、タブレットまたはスマートフォンのタッチスクリーン、VRまたはAR HMDのレンズまたはバイザーなどの一つ以上のディスプレイデバイス120を含み、これらは現実世界のビューに関連して仮想オブジェクトをユーザ102に表示するように構成され得る。
また、ユーザデバイス104は、クライアントMRコンテキストアプリモジュール(「クライアントモジュール」)124を格納するように構成されたメモリ122を含む。さらに、サーバ130は、サーバMRコンテキストアプリモジュール(「サーバモジュール」)134を格納するメモリ132を含む。動作中、クライアントMRコンテキストアプリモジュール124およびサーバMRコンテキストアプリモジュール134は、本明細書で説明される様々なコンテキストアプリ機能を実行する。より具体的には、いくつかの実施形態では、いくつかの機能がクライアントモジュール124内に実装され、他の機能がサーバモジュール134内に実装され得る。
例えば、ユーザデバイス104(例えば、HMD)上で実行されるクライアントモジュール124は、カメラデバイス114またはセンサ116からデータを取得して、アプリケーショントリガーに関連するトリガー条件を満足したことを検出するように構成され得る。他の実施形態では、サーバモジュール134は、取得されたデータを処理して、トリガー条件を満足していることを検出し得る。例示的な実施形態では、カメラデバイス114およびセンサ116は、映像、音声、深度情報、GPS位置などの周囲の環境からデータを取得する。クライアントモジュール124は、センサデータを直接分析するか、または処理されたセンサデータ(例えば、検出および識別されたオブジェクト、オブジェクト形状データ、深度マップなどのリアルタイムリスト)を分析するように構成され得る。クライアントモジュール124は、例えば、ユーザデバイス104の近くのオブジェクト、位置、シンボル、ロゴ、画像、音、または基準マーカーを含む特定の物理的オブジェクトまたは表面の識別子の存在を含む、データ内の特定のトリガー条件を検索し得る。
例示的な実施形態では、各アプリケーショントリガー構成は、1つまたは複数のトリガー条件、アプリケーションがユーザと対話する方法のためのアプリケーションロジックまたは対話メカニズム、および、例えば、MRエクスペリエンスを提供するためにユーザに表示される2D/3Dビジュアルおよび音声を含むアセットバンドル(asset bundle)を含む。アプリケーショントリガー構成は、クライアントモジュール124内、またはサーバ130またはデータベース140内に格納されてもよい。いくつかの実施形態では、トリガー条件は、時間制限(例えば、特定の時刻または過去の出来事からの相対的な時間)、位置または位置制限(例えば、ユーザ装置104が、特定の位置内にあるか、または特定タイプのオブジェクトの特定の距離内にあるか、または別のオブジェクトまたは音の特定の距離内にある特定のオブジェクトを検出する)、またはそれらの様々な組み合わせを含み得る。
トリガー条件を検出すると、MRシステム100は、関連するアプリケーショントリガーによって識別されたコンテキストアプリケーションを開始する。たとえば、コーヒーマシンでシリアル番号を検出すると、コーヒーアプリが起動したり、またはテーブルでマーカーを検出すると、コンピューターゲームが起動する。いくつかの実施形態では、MRシステム100は、コンテキストアプリケーションおよび関連データを格納するように構成され得るアプリデータベース140も含み得る。そのようなコンテキストアプリケーションの実行は、(たとえば、ユーザ102の視野内の関連する現実世界のオブジェクトに関連して)仮想オブジェクトを作成してユーザ102に表示することを含み得る。これらの仮想オブジェクトは、コンテキストアプリケーションに関連付けられ、仮想オブジェクトとのユーザの対話により、以下でさらに詳しく説明するように、関連付けられたコンテキストアプリケーションによるさらなるアクションを発生させる。
図2は、ユーザ(または「装着者」)210によって装着され、MRシステム100のユーザデバイス104として機能するように構成された例示的なHMD220の図である。いくつかの実施形態では、HMD220は、ユーザデバイス104に類似しており、図2ではすべてが別個に識別されているわけではないが、ユーザデバイス104のコンポーネントのいずれかまたはすべてを含み得る。この例示的な実施形態では、HMDデバイス220は、透明または半透明のバイザー(「レンズ」または「複数のレンズ」)222を含み、このバイザーを通して装着者210は周囲(また、本明細書では「現実世界」とも呼ばれる)を見る。他の実施形態では、HMDデバイス220は、装着者210の現実世界の視界を覆い隠し得る不透明なバイザー222を含み得るが、デジタルカメラデバイス230からの入力を介して装着者210の周囲のビューを提示し得る。
例示的な実施形態では、HMD220はまた、バイザー222上にグラフィックス(例えば、仮想オブジェクト)をレンダリングするディスプレイデバイス228を含む。そのようなものとして、バイザー222は、ディスプレイデバイス228の出力が現れる「スクリーン」または表面として働き、それを通して装着者210は仮想コンテンツを経験する。ディスプレイデバイス228は、1つまたは複数のGPU226またはHPUによって駆動または制御される。GPU226は、ディスプレイデバイス228を通じた出力のレンダリングの高速化を支援するグラフィカル出力のアスペクト(aspect)を処理する。いくつかの実施形態では、バイザー222およびディスプレイプロセッサ228は、ディスプレイデバイス120およびGPU108またはHPU110と同様であってもよい。
例示的な実施形態では、HMDデバイス220は、本明細書で説明する動作および方法のいくつかを実行する(例えば、クライアントモジュール124を実行する)中央プロセッサ224も含む。HMDデバイス220はまた、(例えば、耳216を介して)装着者210に音声出力を提示するように構成されたオーディオデバイス250を含む。別個に示されていないが、HMDデバイス220は、ネットワークデバイス112と同様のネットワークデバイスも含み、動作中にサーバ130またはアプリデータベース140と通信してもよい。
いくつかの実施形態では、HMDデバイス220は、デジタルカメラデバイス230を含む。デジタルカメラデバイス(または単に「カメラ」)230は、装着者210の視野(field of view:FOV)の少なくとも一部をカバーするように配向された正面映像入力デバイスである。言い換えれば、カメラ230は、HMDデバイス220の向きに基づいて(例えば、バイザー222を通して見るときに装着者210が装着者210のFOVで見るものに類似する)現実世界の視野角を撮像するかまたは見る(see)。カメラデバイス230からのデジタル映像が分析されて、装着者210の近くのオブジェクトのタイプを検出するか、またはそれらのオブジェクトまでの距離を決定するなど、様々なトリガー条件を検出し得る。いくつかの実施形態では、デジタルカメラデバイス230からの出力は、(例えば、不透明なバイザーの実施形態において)バイザー222に投影され、(例えば、カメラ出力に追加される)追加の仮想コンテンツも含み得る。
いくつかの実施形態では、HMDデバイス220は、(図2に別々に示されていない)一つ以上のセンサ116を含んでもよく、またはセンサ112との有線または無線通信(例えば、装着者210が装着される手首装着型デバイスとの近距離通信(near-field communication:NFC))で結合されてもよい。例えば、HMD220は、HMD220の位置または向きを決定するように構成された運動または位置センサを含み得る。
動作中、図2に示すように、HMD220は、装着者210の両目214を覆って取り付けられる。HMD220が映像およびセンサデータを取得および分析すると、クライアントモジュール124は、様々なアプリケーショントリガーに関連するトリガー条件を検出する。特定のアプリケーショントリガーのトリガー条件が満足されると、HMD220は、関連するコンテキストアプリケーションを実行する。いくつかのコンテキストアプリケーションは、HMD220に追加の仮想コンテンツ(例えば、仮想オブジェクト)を装着者210に表示させ、装着者210がそれらの仮想オブジェクトと対話することを可能にし得る。そのような対話は、仮想オブジェクトに関連付けられた追加の機能処理のためにコンテキストアプリケーションをさらに関与させることができる。そのようなものとして、HMD220は、装着者210が混合現実環境を経験する場合、装着者210にコンテキストアプリケーション機能を提供する。
いくつかの実施形態では、HMD220は、完全没入型のVR環境を提供してもよい。そのようなものとして、MRシステム100は、コンテキスト基準が満足されたときに仮想環境内でユーザ210にコンテキストアプリケーションを提示させるアプリケーショントリガーを起動することができる仮想オブジェクトを検出する。例えば、ユーザ210は、道路(street)ならびに一連の店およびレストランを含む仮想環境を経験している場合がある。ユーザ210は、仮想ピザハット(登録商標)レストランを通過し、それにより、クライアントモジュール124は、仮想レストランの存在を検出し、実際のピザハットの会社に関連するコンテキストアプリケーションをダウンロードし、ユーザ210にアプリを提供することができる。それにより、ユーザ210は、仮想環境内に提示されたコンテキストアプリケーションを通じて、本物のレストランから本物のピザを注文することができる。
一実施形態では、クライアントモジュール124は、継続的に実行され、サーバ130と通信し、例えば、GPS座標、時刻、環境内の認識されたオブジェクト、認識された基準マーカー(例:イメージ)、または生の映像などのコンテキストデータを送信する。サーバ130は、例えば、クライアントモジュール124が物理オブジェクトによってトリガーされるMRアプリを含まない特定の地理的エリアの3Dオブジェクト検出を無効するなど、クライアントモジュール124の性能を最適化するためのルールを含み得る。クライアントモジュール124は、コンテキストアプリランチャー(contextual app launcher)およびスケジューラとして動作することができ、したがって、本明細書では「MRオペレーティングシステム」と呼称され得る。クライアントモジュール124は、コンテキストアプリの圧縮パッケージを(例えば、サーバ130から)ストリーミングし、アプリをローカルで解凍および実行し得る。クライアントモジュール124は、アプリのルール(たとえば、対話およびレンダリングルールを規定するスクリプト)を実行し、それに応じてオーディオおよびビジュアルアセットをレンダリングする。ビジュアルアセットは、たとえば、ユーザが潜在的に対話できる仮想オブジェクトになる人工的な(synthetic)3Dモデルまたは2D画像である。オーディオアセットは、空間化された3Dサウンドエフェクトまたは音楽、またはモノラルサウンドである。アプリケーション対話ルールの一部として、触覚応答も開始されてもよい。
いくつかの実施形態では、クライアントモジュール124は、同時に2つ以上のコンテキストアプリを実行し得る。たとえば、コーヒーマグカップがユーザの視界にあり、午後6時であると仮定する。それにより、特定のアプリは、マグカップによってトリガーされ(たとえば、マグカップの周囲に3Dのアニメートされた複数のパーティクル、およびマグカップの中に飛び込むイルカやマグカップの外に飛び出すイルカを表示する)、別のアプリは、現在の時間によってトリガーされる(例えば、ローカルニュースを再生する仮想テレビ画面を表示する)。クライアントモジュール124は、複数のアプリをスケジューリングし、起動し、停止し、該当する場合はそれらを同時に実行する。
対話ルールは、アプリが複数のユーザアクションに応答する方法を定義する。複数のユーザアクションは、例えば、音声コマンド、物理的ジェスチャ(腕または体の動き、視線の動き、まばたきなど)、入力デバイス118との対話(例えば、コントローラ、3Dマウスなど)、または対話式ディスプレイデバイス120上のアクションであってもよい。複数のユーザアクションに対する応答は、たとえば、レンダリングされたビジュアル(例えば、2D/3Dオブジェクト)、音声、または触覚フィードバックの変更である。
図3は、ユーザ102がMRシステム100によって提供されるMR環境を経験するときにコンテキストアプリケーションをユーザ102に提供するための例示的な方法300のフローチャートである。例示的な実施形態では、ユーザ102は、現実世界環境を移動する(例えば、部屋の中を歩き回ったり、道路を歩いたりする)ときに図2に示されるHMD220を装着する。ユーザ102が現実世界環境を経験すると、HMD220上の様々なセンサ116(例えば、カメラデバイス230)は、その環境の入力データを取得する(動作310を参照)。動作320で、クライアントモジュール124は、入力データを分析して、アプリケーショントリガーのトリガー条件302を検出する(動作320を参照)。トリガー条件302は、特定のアプリケーショントリガーを監視する前に、トリガーおよびアプリデータベース140に格納され、そこから検索されてもよい。
いくつかの実施形態では、1つ以上のトリガー条件302は、環境内の特定のタイプの現実世界のオブジェクトの検出を含み得る。例えば、クライアントモジュール124は、カメラビデオを分析して、椅子またはボックス(box)などの3次元(3D)オブジェクトを検出し得る。したがって、動作310は、現実世界環境内の3Dオブジェクトを識別して、そのようなトリガー条件302を検出することを含み得る。動作310は、人工知能オブジェクト認識アルゴリズムを使用して、ユーザの環境内の複数のオブジェクトを識別することを含むことができる。これらのオブジェクト(例えば、オブジェクト上に表示されるロゴや情報、ユーザ102からの距離)に関する3Dオブジェクトおよび他の情報が識別されると、これらの3Dオブジェクトのオブジェクト情報がトリガー条件302と比較され、特定のアプリケーショントリガーに対するすべてのトリガー条件が満たされるかどうかが検出される。
いくつかの実施形態では、アプリケーショントリガーのトリガー条件302は、(例えば、先験的に(a priori))HMD220に事前ロードされてもよく、クライアントモジュール124は、それらの特定のトリガー条件を検出するように構成されてもよい(例えば、動作320で)。他の実施形態では、アプリケーショントリガーの特定のトリガー条件を事前にロードすることなくさまざまな現在の状態が検出され、MRシステム100は、(例えば、帰納的に(a posteriori))現在の条件がアプリケーショントリガーに関連する1組のトリガー条件に一致し、満たすと判定し得る。
クライアントモジュール124が、特定のアプリケーショントリガーのトリガー条件302が満たされたことを検出すると、クライアントモジュール124は、アプリケーショントリガーのアプリデータをダウンロードし(動作330を参照)、そのアプリケーショントリガーに関連付けられたコンテキストアプリケーションの実行を開始する(動作340を参照)。たとえば、コンテキストアプリケーションは、特定の現実世界のオブジェクトに関連して表示されるビジュアルまたはサウンドを識別し得る。いくつかの実施形態では、動作340でコンテキストアプリケーションを実行することは、(例えば、図5〜図10Dに示すように)アプリに関連付けられた1つ以上の仮想オブジェクトを作成し、それらの仮想オブジェクトをMR環境内のユーザ102に提示することを含み得る。そのような仮想オブジェクトは、(たとえば、トリガー条件で識別されたオブジェクトの1つの上または近くで)特定の現実世界のオブジェクトに関連して表示されてもよい。これらの仮想オブジェクトは、様々な対話動作で(例えば、アプリデータ304に基づいて)構成され、ユーザ102は、それを介して、アプリによって提供される機能をさらに起動し得る。
動作350で、クライアントモジュール124は、アプリの実行中にトリガー条件を検出し続ける。いくつかの実施形態では、アクティブなアプリケーショントリガーとは独立して、またはアクティブなトリガーに関連する追加の(例えば、ネストされた(nested))アプリケーショントリガーとして、追加のアプリケーショントリガーが、ロードおよび/または検出され得る。たとえば、第1のトリガーがアクティブ化される(たとえば、第1の仮想オブジェクトが作成および表示される)と、その親アプリケーショントリガーは、第2の子アプリケーショントリガーの監視を開始し得る。つまり、子アプリケーショントリガーは、親アプリケーショントリガーがアクティブになった後にのみ、監視および検出されるように構成され得る。
動作360で、クライアントモジュール124は、既存または変化するトリガー条件に基づいて、アプリの実行を調整し得る。たとえば、「Carte Blancheアプリ」は、プライベートリアリティ層でアクティブであり、ユーザ100の家、および家の延長部分またはおそらくリビングルームのみを含む容積の範囲内のGPS座標というトリガー条件を含み得る。複数の対話アクションは、(1)スタートアップ時に、テーブルの表面にカードのデッキをレンダリングすること、(2)スタートアップ時に、複数の他のユーザ100が参加することを許可し、その後、近くのユーザ100にセッションに参加するように通知をトリガーすること、(3)任意のユーザ100が任意のカードをタップした(たとえば、テーブルに物理的に触れるか、またはカードが空中に浮いている場合、仮想カードが表示されている場所を指で検出した)ときに、カードを裏返しにするアニメーションを設定すること、(4)任意のユーザがカードを拾う(例えば、カードが表示されている場所に手で拾うジェスチャを実行する)とき、カードを動かし始めて、ユーザ100の手に追従させること、(5)任意のユーザがカードを落とすとき、仮想3Dオブジェクトをレンダリングしてサウンドを再生すること、を含み得る。
図4は、MRシステム100によって評価され得る現実世界環境400の一例を示す。例示的な実施形態では、現実世界環境400は、キッチンキャビネット410を含む。キッチンキャビネットの内部には、シリアルボックス412と2つの缶のスープ414A、414Bがある。ここに示す例では、図4は、キッチンキャビネット410の正面図を示す。動作において、ユーザ102は、ユーザデバイス104を動作させながら、示されているようにキッチンキャビネット410およびその内容物を見ることができる。いくつかの実施形態では、ユーザ102は、HMD220を装着していてもよい。他の実施形態では、ユーザ102は、スマートフォンまたはタブレットを保持していてもよい。したがって、図5および図6にさらに示されるように、ユーザデバイス104は、キャビネット410のデジタルビデオおよびカメラデバイス114を介したコンテンツなどの現実世界環境400からセンサデータを収集する。
図5および図6は、ユーザデバイス104を介してMRシステム100によってユーザ102に提示されるようなMR環境500を示す。例示的な実施形態では、ユーザ102は、現実世界環境400を見ながら、HMD220を装着する。さらに、図5および図6に示すように、MRシステム100(たとえば、クライアントモジュール124)は、MR環境500内の様々な仮想オブジェクトを提示する。したがって、MR環境500は、現実世界の環境400のビューと様々な仮想オブジェクトとの両方を含むことを理解されたい。
第1の時点で、図5に示すように、MR環境500は、いくつかのレシピインジケータオブジェクト510A、510B、510C(集合的に、複数のオブジェクト510)を含む。例示的な実施形態では、複数のオブジェクト510は、HMD220によって提示される複数の仮想オブジェクトであり、それらが関係する特定の現実世界のオブジェクト(例えば、シリアルボックス412およびスープの缶414)上に位置する「星」として現れる。
動作中、オブジェクト510を表示する前に、クライアントモジュール124は、HMD220から入力データ(例えば、カメラ230からのデジタル映像)をリアルタイムで取得し、(例えば、3Dオブジェクト検出技術を使用して)三つの現実世界のオブジェクト412、414A、414Bの存在を検出する。さらに、クライアントモジュール124は、(例えば、円柱としてのオブジェクトの形状、およびスープ414Aの缶に現れるラベルの分析に基づいて)スープ414Aの2つの缶のうちの1つがキノコスープの缶であることも決定する。クライアントモジュール124は、トリガーおよびアプリデータベースを検索し、このタイプのオブジェクト(例えば、缶詰、マッシュルームスープの缶、調理材料)が特定のコンテキストアプリケーション(例えば、レシピアプリケーション)に関連付けられていることを決定する。さらに、クライアントモジュール124は、コンテキストアプリケーションを実行して、この特定の調理材料がレシピに関連付けられているかどうか、およびそのようなレシピがいくつあるか(例えば、調理材料の種類に基づいて、マッシュルームスープを含むレシピ)を決定することができる。
図5に示す例では、コンテキストアプリケーションは、スープ414Aの缶を含む3つのレシピを識別する。したがって、クライアントモジュール124は、仮想オブジェクト510B(例えば、アプリが見つけた3つのレシピを表す「3枚のカード」というテキストを含む星形オブジェクト)を生成し、関連付けられた現実世界のオブジェクト(例えば、スープ414Aの缶)の位置にその仮想オブジェクト510Bを表示する。
同様に、MRシステム100は、シリアルボックス412およびスープの他の缶414Bに関連付けられたレシピの数を判定し、それらの現実世界のオブジェクト412、414Bのための仮想オブジェクト510A、510Cを生成し、それらの仮想オブジェクト510A、510Cを、関連付けられた現実世界のオブジェクトの複数の位置にそれぞれ表示する。この例では、コンテキストアプリは、シリアルボックス412に関連付けられた1つのレシピと、スープの他の缶414Bに関連付けられた2つのレシピを識別する。
例示的な実施形態では、複数の仮想オブジェクト510の各々は、1つまたは複数の事前定義された対話アクションを含む。各対話アクションは、ユーザアクション(例えば、手のジェスチャ、注視フォーカス)を識別し、ユーザが実行すると、相互のアプリケーション応答(例えば、ビジュアルレンダリング、オーディオ再生、触覚フィードバック)を生じさせる。この例では、各レシピオブジェクト510は、仮想オブジェクト510がユーザ102の手502によってタッチされたときに、関連するレシピを表示するためにコンテキストアプリと連動する「タッチ(touch)」対話アクションを含む。いくつかの実施形態では、複数の仮想オブジェクト510は、(例えば、現実世界のオブジェクト上に重ねられる)3D座標空間内の静的な位置に配置されて、ユーザ100は、仮想オブジェクト510に関連する任意のタッチジェスチャをアクティブにするために、そのオブジェクト自体にタッチするかまたはほぼ物理的にタッチしなければならない。いくつかの実施形態では、複数の仮想オブジェクト510は、ユーザ100と、関連する現実世界のオブジェクトとの間に配置され、現実世界のオブジェクトの視線において、仮想オブジェクト510は、ユーザ100の視点から物理オブジェクトに「接触(on)」しているように見え、複数の仮想オブジェクト510がユーザ100の腕の届くところでは、ユーザ100は、現実世界のオブジェクトの腕の届くところにいなくても仮想オブジェクト510と対話できる。このため、ユーザ100が移動すると、仮想オブジェクト510を再配置して、ユーザ100が見る現実世界のオブジェクトと一直線上に仮想オブジェクト510を維持してもよい。
例示的な実施形態では、ユーザ102は、スープの缶414Aに関連付けられた仮想オブジェクト510Bにタッチして、マッシュルームスープに関連付けられた複数のレシピの表示をアクティブ化する。図6は、MR環境500内でのこのタッチ動作に対する相互応答を示す。例示的な実施形態では、タッチ動作に応答して、MRシステム100は、3つのレシピカードオブジェクト610A、610B、610C(まとめて、複数のレシピカード610)を表示し、各レシピのレシピカードオブジェクト610A、610B、610Cは、コンテキストアプリケーションによって識別される。各レシピカード610は仮想オブジェクトであり、関連する現実世界のオブジェクト(例えば、スープの缶414A)または親仮想オブジェクト(例えば、レシピインジケータオブジェクト510B)の上または近くに表示され得る。いくつかの実施形態では、レシピカードオブジェクト610は、ユーザ102がレシピに関する重要な情報を迅速に見ることができるように、レシピのタイトル、調理時間、または必要な他の主要な材料など、基本的なレシピに関する要約情報を識別してもよい。
レシピインジケータオブジェクト510と同様に、複数のレシピカードオブジェクト610のそれぞれは、(たとえば、コンテキストアプリケーションの機能に対応する)1つまたは複数の対話アクションおよび関連する相互応答を含み得る。レシピカードオブジェクト610上で実行された対話アクションに対する相互応答の複数の例は、関連したレシピに関する詳細なレシピ情報(例えば、材料のリスト、調理方法、提供される人数、調理時間、必要な調理器具、皿など)を表示すること、(例えば、現在の在庫に基づいて、又は、近くにあると特定された他の材料に基づいて)材料のリストと、存在する材料のリストとを比較して不足している材料を判定すること、又は段階的な調理指示を開始すること、を含む。例示的な実施形態では、ユーザ102はレシピカード610Cを選択し、コンテキストアプリケーションは、MRシステム100およびMR環境500を介して段階的な調理指示をユーザ102に提供する。別の実施形態によれば、レシピカードオブジェクト610は、オブジェクト自体の仮想コピーとして(例えば、異なるレシピをそれぞれ示す複数のスープ缶として)現れてもよく、事前定義された対話アクションは、複数のオブジェクト610から選択するため、ユーザが物理的な缶を利用すること(例えば、缶を移動させること)を含む。この例では、各レシピオブジェクト610は、缶の物理的オブジェクトが複数の仮想オブジェクト610のうちの1つと同じ位置及び向きに配置されたときに、関連するレシピを表示するためにコンテキストアプリと連動する「タッチ」対話アクションを含む。缶の物理的オブジェクトは、コントローラとして使用され、具体的にはこの場合、セレクタとして使用される。
この段階的な調理指示の例では、MRシステム100は、(例えば、GPS位置、部屋の視覚的画像認識、またはストーブ、冷蔵庫などの現実世界のオブジェクト検出に基づいて)ユーザ102が自宅の台所にいると判定する。さらに、MRシステム100は、レシピによって特定される他の調理材料、器具、皿、鍋、平鍋、または調理器具など、レシピに関連する近くの現実世界のオブジェクトを同様に検出することができる。コンテキストアプリケーションは、このようなオブジェクトに関連付けられている追加のアプリケーショントリガーを識別してアクティブにすることができる。
いくつかの実施形態では、コンテキストアプリケーションは、経時的に達成するための一組のステップまたは目標を含み得る。たとえば、コンテキストアプリケーションは3つの層を有し、第1の層は、複数のプロセスを開始する複数のトリガー条件を含み、第2の層は、(例えば、ネストされた複数のコンテキストアプリケーションを用いて)経時的に達成する複数の目標を含み、第3の層は、完了(例えば、親コンテキストアプリケーションを終了するための一組の完了基準)を識別する。
いくつかの実施形態では、ユーザを取り囲む位置の画像ベースの照合が、トリガーを検出するために使用される。実施形態では、その位置に物理的に存在する会社(例えば、レンガとモルタルの建物または店)などのエンティティは、画像マッチングで使用される位置の画像を作成する。エンティティによって作成された画像(または画像から抽出された任意の画像照合情報)は、トリガー条件を検出するプロセス320において画像照合で使用する複数のトリガー条件302の一部としてサーバに保存できる。画像は、建物または店舗の外観画像、建物または店舗の内部からの画像、店舗内の製品の画像を含み得る。動作において、ユーザがその位置でMRデバイス104を移動させると、デバイスからの映像データ(例えば、映像の複数のフレーム)が、エンティティによって作成された複数の画像と比較され、比較は、(例えば、トリガーの一部として)マッチングするものを見つけて、1つ以上のコンテキストアプリケーションの実行を開始するために、画像照合技術を用いる。一実施形態によれば、複数の検出トリガー条件320は、画像認識/照合のための人工知能を使用して画像照合プロセスを完了する人工知能エージェントを含む。例示的な実施形態では、人工知能は、(例えば、3次元オブジェクトに関連付けられた1つ以上の属性に基づいて)3次元の現実世界の環境で3次元オブジェクトを識別する機械学習技術の適用を含む。例示的な実施形態では、機械学習技術に組み込まれる1つ以上の属性は、サイズ、形状、色、テクスチャ、位置、向き、(例えば、現実世界の環境における他の仮想オブジェクトに関連する)コンテキスト、位置(例えば、GPSまたは他の位置情報)、寸法(高さ、幅、奥行きなど)などを含み得る。
いくつかの実施形態では、トリガーにリンクされたコンテキストアプリケーションは、そのトリガーに関連付けられた広告またはゲームを起動するように構成され得る。この実施形態では、アプリケーションデータ304は、広告データまたはゲームデータを含み得る。例として、スターバックス社などの会社を検討し、さらに、第1の場所にある特定の第1のコーヒーショップと、第2の場所にある第2のコーヒーショップを検討する。個人(例えば、従業員または請負業者)は、第1のコーヒーショップ(例えば、屋内、屋外、製品のショット(shot))の写真と、第2のコーヒーショップの写真を撮影し、トリガー条件302の一部として写真を含む。動作において、ユーザは、第1のコーヒーショップの外装に近づき、ユーザデバイス104は、第1のコーヒーショップの外装の映像データを収集する。トリガー条件を検出するための動作320の間、映像データは、(例えば、トリガー条件302で)第1のコーヒーショップの写真と比較され、トリガーが発見された場合、第1のコーヒーショップのコンテキストアプリケーション(例えば、広告)がデバイス104上で実行され、たとえば、ユーザにポイントを提供したり、第1のコーヒーショップに入ったユーザに割引を提供したりすることが考えられる。さらに、ユーザが第1のコーヒーショップに入った場合、ユーザデバイス104は、第1のコーヒーショップの内部の映像データを収集して、ユーザが入ってコンテキストアプリケーションの要件(例えば、コーヒーショップに入るという条件)を満たしたことを確認する。第1のコーヒーショップ内に入ると、コンテキストアプリは、ユーザデバイス104からのデータを監視し続けて、内部の映像データに基づいてさらなるトリガーを検出し、さらに追加のポイントまたは店舗内の商品の割引をユーザに提供する。エンティティのすべての位置に対して単一のコンテキストアプリケーションが存在し、たとえば、第1のコーヒーショップのコンテキストアプリケーションと、第2のコーヒーショップのコンテキストアプリケーションは同じにすることができる。エンティティの個々の位置ごとに1つのコンテキストアプリケーションが存在し、たとえば、第1のコーヒーショップのコンテキストアプリケーションは、第2のコーヒーショップのコンテキストアプリケーションとは異なる場合がある。
いくつかの実施形態では、訓練されたニューラルネットワークによってカメラ深度感知情報を3次元モデルにマッチングしたユーザが、トリガーを検出するために使用される。
図7は、現実世界の環境400内でMRシステム100によって検出された例示的な調理用平鍋710を示す。例示的な実施形態では、図6に関して上述したようにアクティブにされた例示的なレシピは、レシピの準備指示の「ステップ1」における平鍋の使用を示す。したがって、段階的指示のコンテキストアプリケーションが起動されると、コンテキストアプリケーションは、準備指示の「ステップ1」のための平鍋オブジェクトの検出を含むアプリケーショントリガーを識別し得る。
平鍋710は、例えば、ユーザ102のキッチンのコンロに置いていてあり、MRシステム100によって現実世界の環境400の3Dオブジェクトとして認識されてもよい。MRシステム100が平鍋710を検出すると、「ステップ1」の調理指示が開始される。例示的な実施形態では、MRシステム100は、この調理ステップおよびMR環境500内の平鍋710に関連する追加の仮想オブジェクトを提示する。より具体的には、MRシステム100は、平鍋710に対して仮想タイマー712を表示する。仮想タイマー712は、平鍋712の周囲の(例えば、60秒または60分を表す)ダイヤルマーカー(dial marker)と、平鍋712の中心にある1つ以上のアーム(arm)716とを含む。
動作中、「ステップ1」は、平鍋710を60秒間予熱することを特定してもよく、または平鍋710内のマッシュルームスープを弱火で15分間加熱することを特定してもよい。したがって、仮想タイマー712は、示された時間に基づいてカウントダウンまたはカウントアップするように構成され、それにより、「ステップ1」によって要求される時間の視覚的表示を提供し、ユーザ102がそのステップの完了まで追跡できる。同様に、コンテキストアプリケーションに関連して、MRシステム100は、ユーザ102がアプリケーションを終了させるか、またはコンテキストアプリケーションが完了するまで、トリガー条件を検出し、ユーザ102と対話し続ける。
図8Aおよび8Bは、異なるコンテキストアプリケーションを提供する2つの例の層を示す。図8Aでは、MRシステム100は、スポンサー層に関連付けられた仮想オブジェクトと現実世界のオブジェクトとの両方を含むMR環境800を提示する。例示的な実施形態では、ユーザ102は、エッフェル塔802(例えば、環境800内の現実世界のオブジェクト)を見ながら、HMD220を装着する。さらに、エッフェル塔のスポンサー(例えば、パリ議会)は、仮想ツアーオブジェクト804によって表されるエッフェル塔(例えば、観光MRアプリケーション)のツアーアプリケーションに関連するコンテキストアプリケーションを作成した。
動作中、ユーザ102がエッフェル塔802を見ると、MRシステム100は、(例えば、画像認識を用いて、またはユーザ装置104の位置および視野に基づいて)ユーザ102が塔802を見ていることを検出する。さらに、MRシステム100は、クライアントモジュール124が現在スポンサー層を提示するように構成されること、およびスポンサー層がエッフェル塔802に関連付けられたコンテキストアプリケーションを含むことを決定する。したがって、MRシステム100は、塔802の近くのHMD220内に仮想ツアーオブジェクト804(例えば、花火)を作成および表示し、ユーザ102がコンテキストアプリケーションを起動できるようにする。
図8Bでは、クライアントモジュール124は、ユーザ生成層を提示するように構成されている。例示的な実施形態では、ユーザ生成層は、他のユーザ102によって公開されたコンテキストアプリケーションを含み得る。例えば、ローカルアーティストは、仮想オブジェクト806によって表されるように、塔802の近くのユーザ102のためにMRアートワークビューイング(MR art work viewing)を利用可能にするコンテキストアプリケーションを作成してもよい。動作中、ユーザ102がエッフェル塔802を見るとき、またはユーザ102が(例えば、アーティストによって設定された)特定の場所の近くにいるとき、MRシステム100は、クライアントモジュール124が現在ユーザ生成層を提示するように構成されること、およびユーザ生成層がエッフェル塔802またはその特定の場所に関連するコンテキストアプリケーションを含むことを決定する。したがって、MRシステム100は、仮想オブジェクト806を作成および表示し、ユーザ102が関連するユーザ生成コンテキストアプリケーションを起動できるようにする。
一実施形態に従って、再び図3を参照すると、動作340でコンテキストアプリケーションを実行することは、表示されたアプリケーションをユーザ102の環境内のオブジェクト(例えば、トリガーオブジェクト)の物理的寸法にモーフィングすること(morphing)、およびコンテキストアプリケーション内のアスペクトを制御するために(たとえば、ゲームキャラクタのモーションを制御するために)オブジェクトのリアルタイムの(例えば、物理的)動作を使用することを含む。モーフィングは、オブジェクトのタイプ、形状、寸法、および動作のいずれかを検出すること、およびオブジェクトが環境内を移動するときに、オブジェクトのサイズおよび向きに適合するようにコンテキストアプリケーションの表示を調整することを含む。この動作は、3次元の回転と3次元の移動とを含む。例えば、動作310において、クライアントモジュール124は、ユーザが長方形のシリアルボックスを保持していることを検出し、その特定のボックスのために設計された特定のゲーム、または任意のシリアルボックス上でプレイすることができる汎用シリアルボックスゲームのいずれかに対するコンテキストトリガーとして作用する。図9は、ユーザ102が彼の手(902Aおよび902B)の間でシリアルボックス900を保持している一例を示す環境の一人称斜視図である。この例では、静的な従来の迷路ゲーム904(例えば、伝統的に鉛筆で完成するもの)がボックス900の裏面に印刷される。シリアルボックス900は、混合現実のゲームコンテキストアプリケーションのトリガーとして機能し、クライアントモジュール124は、静的に印刷されたゲームバージョンの上に、迷路ゲームの混合現実バージョンを表示する(ゲームの混合現実バージョンは、図9に別々に示されていない)。クライアントモジュール124は、(例えば、図3に関連して説明した動作330による)アプリケーションデータをダウンロードし、検出されたオブジェクトの形状、寸法および向きを用いて、ユーザの手にあるボックスの寸法および向きにゲームをモーフィングしてゲームを表示する。クライアントモジュール124は、カメラによる物体検出を含む任意の好適な方法を用いて、または物体を追跡するために奥行きカメラを用いてもしくは手の追跡情報を用いて、ボックス900の動きを追跡する。クライアントモジュール124は、ボックス900の動きを取得し、ボックス900の背面に配置される拡張現実表示(例えば、仮想オブジェクト)を生成するために、コンテキストアプリケーションから物理特性および挙動を適用する。この例では、ボックス900の検出された動きが使用されて、迷路を横断する第1のキャラクタ906Aを制御する。ユーザがシリアルボックス900を手(902Aおよび902B)で動かすと、クライアントモジュール124は、ゲームキャラクタ906Aを、ボックス900の動きにリンクされたコンテキストアプリケーション内でプログラムされたキャラクタの行動に従って動かす。6自由度すべてに対するボックス900の正確な動きは、ゲーム内の経路に沿って第1のキャラクタ906A(およびその後に第2のキャラクタ906B)を動かすために使用される。ボックス900を右にジャークする(jerking)などのボックス900の特別な動きが使用されて、キャラクタの動きを開始するなど、キャラクタ906Aに特定のアクションを生じさせることができ、またボックス900を垂直にジャークすると、キャラクタ906Aが迷路904を横断するときにジャンプさせることができる。一実施形態によれば、アプリケーションの動的命令は、アプリケーションの表示にしたがって表示され得る。例えば、図9に示すボックスでは、2つの動的アニメーション908Aおよび908Bが、第1のキャラクタ906Aに(908Aに示す)移動および(908Bに示す)ジャンプをさせるためにボックス900をどのように動かすのかをユーザ102に教示する。一実施形態によれば、コンテキストアプリケーションは、複数のアプリケーショントリガーに従って時間とともに変化するようにプログラムされ得る。アプリケーショントリガーには、ゲームの仕組み(例えば、迷路の経路、迷路のタイプ、キャラクタのスキン/アニメーション)が毎日変わるように日付を含み、またゲームの種類も(例えば、迷路ゲームからパズルゲームへ)変更され得る。
一実施形態によれば、ユーザを取り囲む環境内の特定のタイプまたは形状(例えば、シリアルボックス、スープ缶、牛乳パック、ポストカード、名刺など)のオブジェクトに適用され得る変形可能メッシュコントローラ(deformable mesh controller)を作成して使用する方法が提供される。変形可能メッシュコントローラは、MRコンテキストアプリモジュール124によって、ユーザを取り巻く環境内で検出された(たとえば、トリガーとして)オブジェクトに適用される。変形可能メッシュコントローラは、変形可能メッシュコントローラが適用されるオブジェクトの動きと状態によって開始および変更(制御など)される動作を有することができる。変形可能メッシュコントローラのサイズおよび形状がクライアントモジュール124によって修正され、変形可能メッシュコントローラが適用されるオブジェクトの正確なサイズおよび形状にモーフィングされるように、変形可能メッシュコントローラを動的に(例えば、MRコンテキストアプリケーションモジュール124が動作している間)修正され得る。オブジェクトの正確なサイズと形状への変形可能メッシュコントローラのモーフィング(たとえば、変形)は、HMD220からのセンサデータを含むデータから得られるオブジェクトを記述するデータを使用して実施される。オブジェクトによってトリガーされるMRコンテキストアプリケーションは、デジタルオブジェクトを表示するプラットフォームとして、オブジェクトに適用される変形可能メッシュコントローラを使用できる。たとえば、シリアルボックスゲームの汎用コントロールを備えた(たとえば、ビデオゲーム開発者によって作成される)変形可能メッシュコントローラは、サイズやブランドに関係なく、シリアルボックスに適用され得る。同様に、スープ缶などの円筒形オブジェクト用に作成された変形可能メッシュコントローラは、ソフトドリンク缶にも適用され得る。
一実施形態によれば、変形可能メッシュコントローラを定義するデータは、アプリデータ304に含まれる。方法300からのプロセス320は、変形可能メッシュコントローラがモジュール124によって適用される制御オブジェクトとして機能することができる少なくとも1つのオブジェクトを検出することを含み得る。方法300からのプロセス330は、データベース140から変形可能メッシュコントローラのデータを(例えば、ネットワーク150を介して)ダウンロードすることを含むことができる。方法300からのプロセス340は、モジュール124に、制御オブジェクトの正確なサイズおよび形状に変形可能メッシュコントローラをモーフィングする(例えば、変形させる)ことを含み得る。方法300からのプロセス350は、制御オブジェクトの動きおよび向きを経時的に監視し、それとともに変形可能メッシュコントローラを移動させる(たとえば、変形可能メッシュコントローラをオブジェクトに取り付ける)モジュール124を含む。プロセス350は、ユーザと制御オブジェクトとの対話を監視することも含む。方法300のプロセス360において、モジュール124は、この対話に基づいてトリガーされたアプリケーションの実行を調整する。
一実施形態によれば、図10A、10B、10Cおよび10Dに示されているものは、混合現実のためのコンテキストアプリケーションのコントローラとして使用される特定の物理オブジェクトを示す一例である。この例では、コンテキストアプリケーションは、第1の人物が操作する名刺1006によってトリガーされて制御される。この例では、名刺は、第2の人物に属し、サーバMRコンテキストアプリケーションモジュール134をトリガーして(例えば、名刺および第2の人物に関連している)特定のアプリケーションをクライアントMRコンテキストアプリケーションモジュール124に送信して実行させる特定のアプリケーショントリガーである。この例では、特定のアプリケーションは、第2の人物のLinkedIn(登録商標)データにアクセスできるLinkedIn(登録商標)アプリケーションの混合現実バージョンである。この名刺は、アプリケーションのコントローラとして(第1の人物との対話を介して)使用される。特定の方向および特定の方法での名刺の移動、名刺のタップ、名刺のスワイプ、および名刺の注視を含む、名刺との特定の対話が用いられて、アプリケーションを制御する。対話の一部は、アイ・トラッキングテクノロジとハンド・トラッキングテクノロジを使用して決定され得る。たとえば、対話は、(例えば、メニューおよび機能の)アプリケーション内でのスクロール、選択、開閉コントロール(opening and closing control)の開始に用いられる。たとえば、図10A〜10Dに示すように、第1の人物が、名刺を手に取ってLinkedIn(登録商標)アプリケーションを開始する。図10A〜10Dは、第1の人物の視点で示され、たとえば、混合現実HMD220を装着して見る。図10Aに示されるように、第1の人物は、ランプ1002および名刺1006が載ったテーブル1000の前に立って見ている。第1の人物の手1010は、名刺1006に手を伸ばしている。HMD220上で(バックグラウンドで)実行されているMRコンテキストアプリで、クライアントMRコンテキストアプリモジュール124は、オブジェクト認識を使用して、少なくとも第1の人物の手1010および第2の人物の名刺1006を検出する。MRコンテキストアプリモジュール124は、オブジェクトが認識されたことをユーザに確認するために、オブジェクトの周りに破線のボックスを表示する。幾つかの実施形態では、破線のボックスは、認識されたオブジェクトの説明ラベルと信頼度を含み得る。例えば、破線のボックス1012は、ユーザの手1010の周りに表示され、認識されたオブジェクトが手であるという98%の信頼度を示し、破線のボックス1004は、ランプ1002の周りに表示され、認識されたオブジェクトがランプであるという97%の信頼度を示し、破線のボックス1008は、名刺1006の周りに表示され、認識されたオブジェクトが名刺であるという94%の信頼度を示す。図10Bは、MRコンテキストモジュール124が名刺1006上の記載および画像を認識できるように、ユーザHMD220に十分近い位置に名刺1006を保持する第1の人物の手1010を示す。図10Bに示すように、クライアントMRコンテキストアプリケーションモジュール124は、インスタンスセグメンテーションを使用して、名刺1006に関連する会社名1020、ユーザ名1022、および連絡先詳細1024を判定し、複数のセグメント(例えば、着色された半透明のボックス1014、1016及び1918)を強調表示する。MRコンテキストアプリケーションモジュール124は、互いに近接した名刺1006および手1010(例えば、名刺1006が、手1010によって保持されている)を、(例えば、図3に関して説明したプロセス320にしたがって)名刺アプリケーションに対するトリガーとして判定する。次いで、MRコンテキストアプリモジュール124は、(例えば、図3に記載の方法300のプロセス330および340に従って)名刺アプリケーションのデータをダウンロードして実行するであろう。ダウンロードされた名刺アプリケーションに応じて、HMD220を使用してオプションを選択するか、または混合現実で表示されるメニューを開いたりするために、名刺1006はピッチングされ得る(pitched)(例えば、名刺の表面に対して上下に動かされる)。例示的な実施形態によれば、図10Cは、名刺アプリケーションの実行中にHMD220を通して見た名刺1006を示す。図10Cに示される例示的な実施形態において、MRコンテキストアプリケーションモジュール124によって実行される名刺アプリケーションは、減損現実(diminished reality)を使用して名刺上のコンテンツ(例えば、会社名1020、ユーザ名1022、および連絡先詳細1024)を消去し(例えば、覆う)、それらをユーザ名1022、LinkedIn(登録商標)オプションリンク1026および「Connect」オプションリンク1028のデジタル表示で置き換える(例えば、連絡先詳細1024を使用して第2の人物に電話をかけるための電話アプリにリンクする)。図10Cにおいて、名刺は、「Connect」1028を有する下向き矢印と、「LinkedIn profile」1026を有する上向き矢印とを示す。MRコンテキストアプリモジュール124は、名刺アプリケーションによる応答を開始する新しいトリガーを検出するために、名刺1006および手1010を(例えば、図3に記載の方法300のプロセス350の一部として)監視し続ける。例えば、図10Dに示すように、(例えば、素早い動きで)名刺を上方にピッチングすることは、名刺アプリケーション内のトリガーとして認識されて第2の人物のLinkedIn(登録商標)アカウント詳細1030に接続して表示し、LinkedIn(登録商標)アカウント詳細1030は、(例えば、図3に関して記載される方法300からのプロセス360の一部として)名刺1006の上部から飛び出しているように表示される。名刺アプリケーション内で説明されている他の動きは、MRコンテキストアプリモジュール124に他のアクションを実行させる。たとえば、名刺を素早く上下に振ると、名刺アプリケーションが終了され、すべてのデジタル表示されたオブジェクトが削除され、名刺1006の現実世界の表示に戻る。別例として、下方への動きにより、HMD220は、連絡先詳細1024を使用して、(たとえば、適切に装着されている場合)第2の人物への携帯電話通話を開始してもよい。
図9および10に示す例では、減損現実技術が使用されて、表面を視覚的にクリアにし、ユーザの視点から既存の物理的アイテムを除去する。その後、拡張現実技術が使用されて、物理的なオブジェクトの上部にあるユーザの視界に仮想オブジェクトを追加する。例えば、図9では、減損現実が使用されてシリアルボックスの背面をクリアし、動的仮想迷路ゲームをボックス上に表示させることができる。
いくつかの実施形態では、MRシステム100は、階層化されたコンテキストアプリケーションをユーザ102に提供してもよい。より具体的には、MRシステム100は、コンテキストアプリケーションの様々な「現実層(reality layer)」を提供し、異なるユーザ102は、同じ物理的環境において同じかまたは異なるコンテキストアプリケーションを経験することができる。例えば、いくつかの実施形態では、「共有層(shared layer)」(または「共有公開フィード(shared public feed)」)である。いくつかの実施形態では、共有層は、現実世界の位置の「スポンサー」(例えば、所有者、管理者)によって提供されるコンテンツを含み、その前提(例えば、店舗やレストランの物理的境界、ジオフェンスエリア(geo-fenced area)、ローカルWi−Fiネットワークの範囲内、または法的所有権の境界内)において起動されるMRコンテキストアプリケーションを作成することができる。いくつかの実施形態では、共有層は、ユーザがスポンサーとなっているコンテンツを含み得る。このように、すべてのユーザ102は、(例えば、場合によりオプトアウトまたはオプトインの現実(opt-out or opt-in reality)として特定の場所を訪問する場合)共有層を介して様々なスポンサーのコンテキストアプリケーションを経験することができ、スポンサーが、提示されるコンテンツをコントロールする。
いくつかの実施形態では、MRシステム100は、コンテキストアプリケーションの追加の層を提供し得る。例えば、MRシステム100は、ユーザ102に、自身の「プライベート層」内または「ユーザ生成層(user-generated layer)」(例えば、ユーザ生成コンテンツを含む)内でコンテキストアプリケーションを作成および公開させてもよい。したがって、ユーザ102は、他の層のコンテキストアプリケーションの代わりに、またはそれに加えて、プライベート層のコンテキストアプリケーションを経験し得る。いくつかの実施形態では、MRシステム100は、スポンサーがコンテキストアプリケーションの階層化された層を提供することを可能にしてもよい。例えば、特定のスポンサーは、(例えば、上記したように)その場所を訪れるすべての人に「パブリック層」を提供し、また、(例えば、サービスへの加入に基づいて、または購入したコンテンツに基づいて)スポンサーの従業員またはメンバーのみが経験する「従業員層」または「メンバー限定層」を提供し得る。
いくつかの実施形態では、複数の層が同時に経験されてもよい。例えば、MRシステム100は、共有層のコンテンツとユーザ自身のプライベート層のコンテンツの両方を、任意の場所のユーザに同時に提供してもよい。いくつかの実施形態では、MRシステム100は、特定の場所または特定の時間にユーザ102が利用可能な層の選択をユーザ102に提示し得る。
本明細書では、ある特定の実施形態が、ロジックまたはいくつかの構成要素、モジュール、または機構を含むものとして記載されている。モジュールは、ソフトウェアモジュール(例えば、機械可読記体において具体化されるコード)またはハードウェアモジュールのいずれかを構築し得る。「ハードウェアモジュール」は、ある特定の動作を実施することができる有形のユニットであり、ある特定の物理的な方法で構成または配置され得る。様々な例示的な実施形態では、1つ以上のコンピュータシステム(例えば、スタンドアロンコンピュータシステム、クライアントコンピュータシステム、もしくはサーバコンピュータシステム)またはコンピュータシステムの1つ以上のハードウェアモジュール(例えば、プロセッサもしくは一群のプロセッサ)は、本明細書に記載される、ある特定の動作を実施するように動作するハードウェアモジュールとして、ソフトウェア(例えば、アプリケーションまたはアプリケーション部分)によって構成され得る。
いくつかの実施形態では、ハードウェアモジュールは、機械的に、電子的に、またはこれらの任意の好適な組み合わせで実装され得る。例えば、ハードウェアモジュールは、ある特定の動作を実施するように永続的に構成された専用の回路または論理を含み得る。例えば、ハードウェアモジュールは、フィールドプログラム可能なゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)などの専用プロセッサであり得る。ハードウェアモジュールはまた、ある特定の動作を実施するために、ソフトウェアによって一時的に構成されたプログラム可能な論理または回路を含み得る。例えば、ハードウェアモジュールは、汎用プロセッサまたは他のプログラム可能なプロセッサによって実行されるソフトウェアを含み得る。このようなソフトウェアによって構成されると、ハードウェアモジュールは、構成された機能を実行するために独自に調整された特定のマシン(またはマシンの特定の部品を)となり、汎用プロセッサではない。ハードウェアモジュールを、専用および永続的に構成された回路、または一時的に構成された(例えば、ソフトウェアによって構成された)回路に機械的に実装する決定は、コストおよび時間の考慮によって進められ得ることが理解されよう。
したがって、「ハードウェアモジュール」という表現は、ある特定の方法で動作するか、または本明細書に記載されるある特定の動作を実施するように、物理的に構築されるか、永続的に構成される(例えば、配線で接続される)か、または一時的に構成される(例えば、プログラムされる)実体である有形の実体を包含するように理解されるべきである。
本明細書で使用される場合、「ハードウェア実装モジュール」とは、ハードウェアモジュールを指す。ハードウェアモジュールが一時的に構成される(例えば、プログラムされる)実施形態を考慮すると、ハードウェアモジュールの各々は、時間内の任意の1つのインスタンスにおいて構成またはインスタンス化される必要はない。例えば、ハードウェアモジュールが、特定用途向けプロセッサになるように、ソフトウェアによって構成された汎用プロセッサを含む場合、汎用プロセッサは、異なる時間にそれぞれ異なる特定用途向けプロセッサ(例えば、異なるハードウェアモジュールを含む)として構成され得る。したがって、ソフトウェアは、例えば、時間の1つのインスタンスにおいて特定のハードウェアモジュールを構築し、時間の異なるインスタンスにおいて異なるハードウェアモジュールを構築するように、特定のプロセッサ(複数可)を構成する。
ハードウェアモジュールは、他のハードウェアモジュールに情報を提供し、他のハードウェアモジュールから情報を受信することができる。
したがって、記載されるハードウェアモジュールは、通信可能に連結されていると見なされ得る。複数のハードウェアモジュールが同時に存在する場合、通信は、ハードウェアモジュールのうちの2つ以上の間で、またはそれらの中で信号伝送を介して(例えば、適切な回路およびバスを介して)達成され得る。複数のハードウェアモジュールが異なる時間において構成またはインスタンス化される実施形態では、かかるハードウェアモジュール間の通信は、例えば、複数のハードウェアモジュールがアクセス権を有するメモリ構造内の情報の記憶および検索を通じて達成され得る。例えば、1つのハードウェアモジュールは、動作を実施し、その動作の出力を通信可能に連結されたメモリデバイスに記憶することができる。次いで、さらなるハードウェアモジュールが、その後になって、メモリデバイスにアクセスして、記憶された出力を検索および処理することができる。ハードウェアモジュールはまた、入力デバイスまたは出力デバイスとの通信を開始することができ、リソースに対して動作(例えば、情報の収集)することができる。
本明細書に記載される例示的な方法の様々な動作は、少なくとも部分的に、関連する動作を実施するように(例えば、ソフトウェアによって)一時的に構成されるか、または永続的に構成される1つ以上のプロセッサによって実施され得る。
一時的または永続的に構成されるかどうかにかかわらず、かかるプロセッサは、本明細書に記載される1つ以上の動作または機能を実施するように動作するプロセッサ実装モジュールを構築し得る。本明細書で使用される場合、「プロセッサ実装モジュール」とは、1つ以上のプロセッサを使用して実装されるハードウェアモジュールを指す。
同様に、本明細書に記載される方法は、少なくとも部分的にプロセッサ実装型であり得、特定のプロセッサ(複数可)は、ハードウェアの一例である。例えば、ある方法の動作のうちの少なくともいくつかを、1つ以上のプロセッサまたはプロセッサ実装モジュールによって実施することができる。さらに、1つ以上のプロセッサはまた、「クラウドコンピューティング」環境で、または「サービスとしてのソフトウェア」(SaaS)として関連する動作の性能をサポートするように動作し得る。例えば、動作のうちの少なくともいくつかを、(プロセッサを含むマシンの例として)一群のコンピュータによって実施することができ、これらの動作は、ネットワーク(例えば、インターネット)、および1つ以上の適切なインタフェース(例えば、アプリケーションプログラムインタフェース(API))を介してアクセス可能である。
ある特定の動作の性能を、単一のマシン内にあるだけでなく、いくつかのマシンにわたって展開されるプロセッサ間で分散させることができる。いくつかの例示的な実施形態では、プロセッサまたはプロセッサ実装モジュールは、単一の地理的な場所(例えば、家庭環境、オフィス環境、またはサーバファーム内)に位置し得る。他の例示的な実施形態では、プロセッサまたはプロセッサ実装モジュールを、いくつかの地理的な場所にわたって分散させることができる。
図1〜図10Dに関連して説明されたモジュール、方法、アプリケーションなどは、マシンおよび関連するソフトウェアアーキテクチャのコンテキストでいくつかの実施形態で具体化される。以下のセクションでは、開示された実施形態での使用に適した代表的な1つまたは複数のソフトウェアアーキテクチャおよびマシン(たとえば、ハードウェア)アーキテクチャについて説明する。
ソフトウェアアーキテクチャは、ハードウェアアーキテクチャと組み合わせて使用されて、特定の目的に合わせたデバイスおよびマシンを作成する。たとえば、特定のソフトウェアアーキテクチャと組み合わせた特定のハードウェアアーキテクチャは、携帯電話、タブレットデバイスなどのモバイルデバイスを作成する。わずかに異なるハードウェアとソフトウェアのアーキテクチャによって、「物のインターネット」で使用するスマートデバイスが得られる。さらに別の組み合わせでは、クラウドコンピューティングアーキテクチャ内で使用するサーバコンピュータが生成される。当業者であれば、本明細書に記載のシステムおよび方法を本開示とは異なるコンテキストで実施する方法を容易に理解できるため、このようなソフトウェアおよびハードウェアアーキテクチャのすべての組み合わせが本明細書に提示されるわけではない。
図11は、本明細書に記載されるVRツールおよび開発環境を提供するために、本明細書に記載される様々なハードウェアアーキテクチャ1102と併せて使用され得る代表的なソフトウェアアーキテクチャを示すブロック図1100である。図11は、ソフトウェアアーキテクチャの非限定的な例であり、本明細書に記載の機能を容易にするために他の多くのアーキテクチャが実装され得ることが理解されよう。ソフトウェアアーキテクチャ1102は、とりわけ、プロセッサ1210、メモリ1230、およびI/Oコンポーネント1250を含む、図12のマシン1200のようなハードウェア上で実行することができる。代表的なハードウェア層1104が示されており、これは、例えば、図12のマシン1200を表すことができる。代表的なハードウェア層1104は、関連する実行可能命令1108を有する1つ以上の処理ユニット1106を含む。実行可能な命令1108は、図1〜10Dの方法、モジュールなどの実装形態を含む、ソフトウェアアーキテクチャ1102の実行可能な命令を表す。ハードウェア層1104は、実行可能命令1108を有するメモリまたは記憶装置モジュール1110も含む。ハードウェア層904は、マシン1200の一部として示される他のハードウェアなど、ハードウェア層1104の他のハードウェアを示す1112によって示されるような他のハードウェアも含み得る。
図11の例示的アーキテクチャでは、ソフトウェア1102は、各層が特定の機能を提供する層のスタックとして概念化することができる。例えば、ソフトウェア1102は、オペレーティングシステム1114、ライブラリ1116、フレームワークまたはミドルウェア1118、アプリケーション1120、およびプレゼンテーション層1122などの層を含むことができる。動作上、アプリケーション1120または層内の他のコンポーネントは、ソフトウェアスタックを介してアプリケーションプログラミングインタフェース(API)コール(call)1124を呼び出し、APIコール1124に応答してメッセージ1126として示される応答、戻り値などを受信することができる。示された層は本質的に代表的なものであり、全てのソフトウェアアーキテクチャが全ての層を有するわけではない。例えば、いくつかのモバイルまたは特殊用途のオペレーティングシステムは、フレームワーク/ミドルウェア層918を提供しないかもしれないが、他のものはそのような層を提供するかもしれない。他のソフトウェアアーキテクチャは、追加の層または異なる層を含み得る。
オペレーティングシステム1114は、ハードウェアリソースを管理し、共通のサービスを提供することができる。オペレーティングシステム1114は、例えば、カーネル1128、サービス1130、およびドライバ1132を含み得る。カーネル1128は、ハードウェア層と他のソフトウェア層との間の抽象化層として機能することができる。例えば、カーネル1128は、メモリ管理、プロセッサ管理(例えば、スケジューリング)、コンポーネント管理、ネットワーキング、セキュリティ設定などを担当してもよい。サービス1130は、他のソフトウェア層に他の共通サービスを提供することができる。ドライバ1132は、基礎となるハードウェアを制御またはインタフェースすることを担当し得る。例えば、ドライバ1132は、ハードウェア構成に応じて、ディスプレイドライバ、カメラドライバ、ブルートゥース(登録商標)ドライバ、フラッシュメモリドライバ、シリアル通信ドライバ(例えば、ユニバーサルシリアルバス(USB)ドライバなど)、Wi−Fi(登録商標)ドライバ、オーディオドライバ、電源管理ドライバなどを含み得る。
ライブラリ1116は、アプリケーション1120または他のコンポーネントまたは層によって利用され得る共通のインフラストラクチャを提供することができる。ライブラリ1116は、典型的には、他のソフトウェアモジュールが、基礎となるオペレーティングシステム1114の機能(例えば、カーネル1128、サービス1130、またはドライバ1132)と直接インタフェースするよりも簡単な方法でタスクを実行することを可能にする機能を提供し得る。ライブラリ916は、メモリ割り当て機能、文字列操作機能、数学的機能などの機能を提供することができるシステムライブラリ1134(例えば、C標準ライブラリ)を含むことができる。さらに、ライブラリ1116は、メディアライブラリ(例えば、MPREG4、H.264、MP3、AAC、AMR、JPG、PNGなどの様々なメディアフォーマットの提示および操作をサポートするためのライブラリ)、グラフィックライブラリ(例えば、ディスプレイ上の2Dおよび3Dグラフィックコンテンツをレンダリングするために使用できるOpenGLフレームワーク)、データベースライブラリ(例えば、様々なリレーショナルデータベース機能を提供できるSQLite)、ウェブライブラリ(例えば、ウェブブラウジング機能を提供することができるWebKit)などのAPIライブラリ1136を含むことができる。ライブラリ916は、アプリケーション920および他のソフトウェアコンポーネント/モジュールに、他の多くのAPIを提供するための多種多様な他のライブラリ1138も含み得る。
フレームワーク1118(ミドルウェアとも呼ばれる)は、アプリケーション1120または他のソフトウェアコンポーネント/モジュールによって使用され得るより高いレベルの共通インフラストラクチャを提供する。例えば、フレームワーク1118は、様々なグラフィックユーザインタフェース(GUI)機能、高レベルのリソース管理、高レベルの位置識別サービスなどを提供することができる。フレームワーク1118は、アプリケーション1120または他のソフトウェアコンポーネント/モジュール(それらのうちのいくつかは特定のオペレーティングシステムまたはプラットフォームに固有のもの)によって使用され得る広範囲の他のAPIを提供し得る。
アプリケーション1120は、ビルトインアプリケーション1140またはサードパーティアプリケーション1142を含む。代表的なビルトインアプリケーション940の例は、連絡先アプリケーション、ブラウザアプリケーション、ブックリーダーアプリケーション、ロケーションアプリケーション、メディアアプリケーション、メッセージングアプリケーション、MRアプリケーション1101、またはゲームアプリケーションを含み得るが、それらに限定されない。サードパーティアプリケーション1142は、組み込みアプリケーションのいずれか、ならびに他の広範なアプリケーションを含み得る。特定の例では、サードパーティアプリケーション1142(例えば、特定のプラットフォームのベンダ以外のエンティティによるAndroid(登録商標)またはiOS(登録商標)ソフトウェア開発キット(SDK)を用いて開発されたアプリケーション)は、iOS(登録商標)、Android(登録商標)、Windows(登録商標)フォン、または他のモバイルオペレーティングシステムなどのモバイルオペレーティングシステム上で実行されるモバイルソフトウェアであり得る。特定の例では、サードパーティアプリケーション1142は、本明細書に記載の機能を容易にするために、オペレーティングシステム1114などのモバイルオペレーティングシステムによって提供されるAPIコール1124を呼び出すことができる。
アプリケーション1120は、ビルトインオペレーティングシステム機能(例えば、カーネル1128、サービス1130、またはドライバ1132)、ライブラリ416(例えば、システム1134、API1136、および他のライブラリ1138)、またはフレームワーク/ミドルウェア1118を使用して、システムのユーザと対話するためのユーザインタフェースを作成することができる。代替的に、または追加的に、いくつかのシステムでは、ユーザとの対話は、プレゼンテーション層1144などのプレゼンテーション層を介して行われ得る。これらのシステムでは、アプリケーション/モジュールの「ロジック」は、ユーザと対話するアプリケーション/モジュールの態様から切り離すことが可能である。
あるソフトウェアアーキテクチャは、仮想マシンを使用する。図11の例では、これは仮想マシン1148によって示されている。仮想マシンは、アプリケーション/モジュールがハードウェアマシン(例えば、図12のマシンなど)上で実行されているかのように実行することができるソフトウェア環境を作成する。仮想マシン1148は、ホストオペレーティングシステム(図11のオペレーティングシステム1114)によってキャストされ、通常、必ずというわけではないが、仮想マシンの動作ならびにホストオペレーティングシステム(つまり、オペレーティングシステム1114)とのインタフェースを管理する仮想マシンモニタ1146を有する。オペレーティングシステム1150、ライブラリ1152、フレームワークまたはミドルウェア1154、アプリケーション1156、プレゼンテーション層1158などのソフトウェアアーキテクチャが仮想マシン内で実行される。仮想マシン1148内で実行されるソフトウェアアーキテクチャのこれらの層は、前述の対応する層と同じでもよく、または異なっていてもよい。
例示的な実施形態では、MRアプリケーション1101は、アプリケーション1120層内のアプリケーションとして動作する。しかし、いくつかの実施形態では、MRアプリケーション1101は、他のソフトウェア層、または複数のソフトウェア層(例えば、フレームワーク1118およびアプリケーション1120)、または本明細書に記載のシステムおよび方法を可能にする任意のアーキテクチャで動作し得る。
図12は、マシン可読媒体1238(例えば、マシン可読記憶媒体)から命令を読み取り、本明細書で論じるVR方法の任意の1つまたは複数を実行することができる、ある例示的な実施形態によるマシン1000の構成要素を示すブロック図である。具体的には、図12は、その中でマシン1200に本明細書で論じられる方法またはオペレーションのうちの任意の1つまたは複数を実行させるための命令1216(例えば、ソフトウェア、ソフトウェアモジュール、プログラム、アプリケーション、アプレット、アプリ、または他の実行可能なコード)が実行され得るコンピュータシステムの例示の形態におけるマシン1200の概略図を示す。たとえば、複数の命令により、マシンは、図3で説明した1つ以上のオペレーションを実行し得る。命令は、一般的なプログラムされていないマシンを、説明された方法で説明され示された機能を実行するようにプログラムされた特定のマシンに変換する。代替の実施形態では、マシン1200は、スタンドアロンデバイスとして動作するか、または他のマシンに結合されてもよい(例えばネットワーク接続されてもよい)。ネットワーク化されたデプロイメントでは、マシン1200は、サーバ−クライアントネットワーク環境ではサーバ機器またはクライアント機器のキャパシティで、またはピアツーピア(または分散)ネットワーク環境ではピア機器として動作することができる。マシン1200は、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットコンピュータ、ラップトップコンピュータ、ネットブック、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、エンターテイメントメディアシステム、携帯電話、スマートフォン、モバイルデバイス、ウェアラブルデバイス(例えばスマートウォッチ)、スマートホームデバイス(例えばスマート電化製品)、その他のスマートデバイス、ウェブ電化製品、ネットワークルータ、ネットワークスイッチ、ネットワークブリッジ、またはマシン1200によってとられるべき動作を指定する命令1216を順次または他の方法で実行することができる任意のマシンを含み得るが、これに限定されない。さらに、単一のマシン1200のみが示されているが、「マシン」という用語は、命令1216を個別にまたは共同で実行して本明細書で論じる方法のうちの任意の1つまたは複数を実行するマシン1200の集合も含むものと解釈されるべきである。
マシン1200は、バス1202を介するなどして互いに通信するように構成され得るプロセッサ1210、メモリ1230、およびI/Oコンポーネント1250を含み得る。例示の実施形態では、プロセッサ1210(例えば、中央処理装置(CPU)、縮小命令セット計算(RISC)プロセッサ、複合命令セット計算(CISC)プロセッサ、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、無線周波数集積回路(RFIC)、他のプロセッサ、またはそれらの任意の適切な組み合わせ)は、例えば、命令1216を実行することができるプロセッサ1212およびプロセッサ1214を含み得る。用語「プロセッサ」は、同時に命令を実行することができる2つ以上の独立したプロセッサ(時に「コア」と呼ばれる)を含むことができるマルチコアプロセッサを含むことを意図している。図12は、複数のプロセッサを示すが、マシン1200は、単一のコアを有する単一のプロセッサ、複数のコアを有する単一のプロセッサ(例えば、マルチコアプロセッサ)、単一のコアを有する複数のプロセッサ、複数のコアを有する複数のプロセッサ、またはそれらの任意の組み合わせを含み得る。
メモリまたは記憶装置1230は、メインメモリ、または他のメモリ記憶装置などのメモリ1232、ならびに記憶装置ユニット1236を含むことができ、両方ともバス1202を介するなどして、プロセッサ1210にアクセス可能である。記憶装置ユニット1236およびメモリ1232は、本明細書に記載の方法または機能のうちの任意の1つまたは複数を具体化する命令1216を格納する。命令1216は、マシン1200によるその実行中、メモリ1232内、記憶装置ユニット1236内、プロセッサ1210のうちの少なくとも一つ内(例えば、プロセッサのキャッシュメモリ内)、またはそれらの任意の適切な組合せ内に、完全にまたは部分的に存在し得る。従って、メモリ1232、記憶装置ユニット1236、およびプロセッサ1210のメモリは、マシン可読媒体の例である。
本明細書で使用される「マシン可読媒体」は、命令およびデータを一時的または恒久的に格納することができるデバイスを意味し、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、バッファメモリ、フラッシュメモリ、光学メディア、磁気メディア、キャッシュメモリ、他の種類の記憶装置(例えば、消去可能プログラマブルリードオンリーメモリ(EEPROM))またはそれらの任意の適切な組み合わせを含み得るが、これらに限定されない。「マシン可読媒体」という用語は、命令1216を格納することができる単一の媒体または複数の媒体(例えば、集中型または分散型データベース、または関連するキャッシュおよびサーバ)を含むと解釈されるべきである。「マシン可読媒体」という用語は、マシン(例えば、マシン1200)による実行のための命令(例えば、命令1216)を格納することができる任意の媒体、または複数の媒体の組み合わせを含むものとし、命令は、マシン1200の1つまたは複数のプロセッサ(例えば、プロセッサ1210)により実行されると、マシン1200に本明細書に記載の方法のうちの任意の1つまたは複数を実行させる。したがって、「マシン可読媒体」は、単一の記憶装置またはデバイス、ならびに複数の記憶装置またはデバイスを含む「クラウドベースの」記憶システムまたは記憶ネットワークを指す。「機械可読媒体」という用語は、一時的な信号自体を除く。
I/Oコンポーネント1250は、入力を受信し、出力を提供し、出力を生成し、情報を送信し、情報を交換し、測定値を捕捉するなどのための多種多様な構成要素を含み得る。特定のマシンに含まれる特定のI/Oコンポーネント1250は、マシンの種類に依存する。例えば、携帯電話などの携帯機器は、タッチ入力デバイスまたは他のそのような入力機構を含む可能性があり、ヘッドレスサーバ機器は、そのようなタッチ入力デバイスを含まない可能性が高いであろう。I/Oコンポーネント1250は、図12には示されていない他の多くの構成要素を含み得ることが理解されよう。I/Oコンポーネント1250は、単に以下の説明を単純化するために機能に従ってグループ化されており、そのグループ化は決して限定的なものではない。様々な例示的実施形態では、I/Oコンポーネント1250は、出力コンポーネント1252および入力コンポーネント1254を含み得る。出力コンポーネント1252は、視覚的構成要素(例えば、プラズマディスプレイパネル(PDP)、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プロジェクタ、陰極線管(CRT))、またはヘッドマウントディスプレイ(HMD)デバイスのようなウェアラブルデバイス、音響部品(例えばスピーカ)、触覚部品(例えば振動モータ、抵抗機構)、その他の信号発生器などを含み得る。入力コンポーネント1254は、英数字入力構成要素(例えば、キーボード、英数字入力を受け取るように構成されたタッチスクリーン、フォトオプティカルキーボード、または他の英数字入力構成要素)、ポイントベースの入力構成要素(例えば、マウス、タッチパッド、トラックボール、ジョイスティック、モーションセンサ、またはその他のポインティングデバイス)、触覚入力コンポーネント(例えば、物理ボタン、タッチまたはタッチジェスチャの位置または力を提供するタッチスクリーン、またはその他の触覚入力構成要素)、モーション感知入力コンポーネント(例えば、ハンドコントローラ)、音声入力部品(例えば、マイク)などを含み得る。
さらなる例示的実施形態では、I/Oコンポーネント1250は、他の様々なコンポーネントの中で、バイオメトリックコンポーネント1256、モーションコンポーネント1258、環境コンポーネント1260、または位置コンポーネント1262を含み得る。例えば、バイオメトリックコンポーネント1256は、表情(例えば、手の表情、顔の表情、声の表情、身体のジェスチャ、または目の動き)を検出し、生体信号(例えば、血圧、心拍数、体温、発汗、または脳波)を測定し、人物を識別(例えば、音声識別、網膜識別、顔識別、指紋識別、または脳波に基づく識別)する等のための構成要素を含み得る。モーションコンポーネント1258は、加速度センサ構成要素(例えば、加速度計)、重力センサ構成要素、回転センサ構成要素(例えば、ジャイロスコープ)、位置検出構成要素などを含み得る。環境コンポーネント1260は、例えば、照明センサ構成要素(例えば、光度計)、温度センサ構成要素(例えば、周囲温度を検出する1つまたは複数の温度計)、湿度センサ構成要素、圧力センサ構成要素(例えば、気圧計)、音響センサ構成要素(例えば、背景雑音を検出する1つまたは複数のマイクロフォン)、近接センサ構成要素(例えば、近くの物体を検出する赤外線センサ)、ガスセンサ(例えば、安全のために有害ガスの濃度を検出するための、または大気中の汚染物質を測定するためのガス検出センサ)、または周囲の物理的環境に対応する標示、測定値、または信号を提供することができる他の構成要素を含み得る。位置コンポーネント1262は、位置センサ構成要素(例えば、全地球測位システム(GPS)受信機部品)、高度センサ構成要素(例えば、高度が導出され得る気圧を検出する高度計または気圧計)、方位センサ構成要素(例えば、磁力計)などを含み得る。
通信は、多種多様な技術を使用して実施することができる。I/Oコンポーネント1250は、カップリング(coupling)1282およびカップリング1272を介してそれぞれマシン1200をネットワーク1280またはデバイス1270に結合するように動作可能な通信コンポーネント1264を含み得る。例えば、通信コンポーネント1264は、ネットワーク1280とインタフェースするためのネットワークインタフェース構成要素または他の適切なデバイスを含み得る。さらなる例では、通信コンポーネント1264は、有線通信構成要素、無線通信構成要素、セルラ通信構成要素、近距離無線通信(NFC)構成要素、Bluetooth(登録商標)構成要素(例えば、Bluetooth(登録商標)LowEnergy)、Wi−Fi(登録商標)構成要素、および他のモダリティを介して通信を提供するための他の通信構成要素を含み得る。デバイス1270は、他のマシンまたは多種多様な周辺デバイス(例えば、ユニバーサルシリアルバス(USB)を介して結合された周辺デバイス)のうちのいずれかであり得る。
様々な実施形態では、ネットワーク1080の一つ以上の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク(LAN)、無線LAN(無線LAN)、ワイドエリアネットワーク(WAN)、無線WAN(WWAN)、メトロポリタンエリアネットワーク(MAN)、インターネット、インターネットの一部、公衆交換電話ネットワーク(PSTN)の一部、POTS(Plain Old Telephone Service)ネットワークの一部、セルラ電話ネットワーク、無線ネットワーク、Wi−Fi(登録商標)ネットワーク、他のタイプのネットワーク、または二つ以上のそのようなネットワークの組み合わせであってもよい。例えば、ネットワーク1280又はネットワーク1280の一部は、無線又はセルラーネットワークを含んでもよく、カップリング1282は、CDMA(Code Division Multiple Access)接続、GSM(Global System for Mobile communications)接続、又は他のタイプのセルラ又は無線カップリングであってもよい。この例では、カップリング1282は、シングルキャリア無線伝送技術(1xRTT)、EVDO(Evolution-Data Optimized)技術、汎用パケット無線サービス(General Packet Radio Service)技術、EDGE(Enhanced Data rates for GSM Evolution)技術、3Gを含む3GPP(third Generation Partnership Project)、第4世代無線(4G)ネットワーク、UMTS(Universal Mobile Telecommunications System)、HSPA(High Speed Packet Access)、WiMAX(Worldwide Interoperability for Microwave Access)、LTE(Long Term Evolution)標準、様々な標準設定組織によって定義された他の規格、他の長距離プロトコル、または他のデータ転送技術のいずれかのタイプのデータ転送技術を実施してもよい。
複数の命令1216は、ネットワークインタフェースデバイス(例えば、通信コンポーネント1264に含まれるネットワークインタフェースコンポーネント)を介した伝送媒体を使用し、かつ多数の転送プロトコル(例えば、ハイパーテキスト転送プロトコル(HTTP))のうちの任意のものを利用して、ネットワーク1280を介して送信または受信され得る。同様に、複数の命令1216は、デバイス1270へのカップリング1272(例えば、ピアツーピアカップリング)を介して、伝送媒体を使用して送信または受信され得る。「伝送媒体(transmission medium)」という用語は、マシン1200による実行のための複数の命令1216を記憶し、符号化し、又は運ぶことができる任意の無形媒体(intangible medium)を含むものとし、このようなソフトウェアの通信を可能とするためのデジタル又はアナログの通信信号又は他の無形媒体を含む。
この明細書全体を通して、複数のインスタンスは、単一のインスタンスとして記述された構成要素、動作、または構造を実装することができる。
1つ以上の方法の個々の動作は別個の動作として図示および説明されているが、個々の動作の1つ以上を同時に実施することができ、図示の順序で動作を実施する必要はない。例示的な構成で個別の構成要素として提示される構造および機能性は、組み合わせた構造または構成要素として実装され得る。同様に、単一の構成要素として提示されている構造および機能性は、個別の構成要素として実装され得る。これらおよび他の変形、修正、追加および改良は、本明細書中の主題の範囲内に入る。
本発明の主題の概要を特定の例示的な実施形態を参照して説明したが、本開示のより広い範囲の実施形態から逸脱することなく、これらの実施形態に対して様々な修正および変更を加えることができる。本発明の主題のそのような実施形態は、単に便宜上、個々にまたは集合的に「発明」という用語によって本明細書において言及され得るが、これは、本出願の範囲を、任意の単一の開示または発明概念(もし実際に複数が開示されているならば)に自発的に限定することを意図するものではない。
本明細書に示された実施形態は、当業者が開示された教示を実施することを可能にするために十分に詳細に記載されている。本開示の範囲から逸脱することなく、構造的および論理的な置換および変更を行うことができるように、他の実施形態が使用され、かつそこから導出されることが可能である。従って、詳細な説明は限定的な意味で解釈されるべきではなく、様々な実施形態の範囲は添付の特許請求の範囲とそのような特許請求の範囲が権利を与える等価物の全範囲によってのみ定義される。
本明細書で使用されるとき、用語「または」は、包括的または排他的な意味で解釈され得る。さらに、本明細書で単一のインスタンスとして説明されているリソース、動作、または構造のために複数のインスタンスを提供することができる。さらに、様々なリソース、動作、モジュール、エンジン、およびデータストア間の境界はいくぶん任意であり、特定の動作は特定の例示的な構成のコンテキストで示される。機能の他の割り当ても想定されており、本開示の様々な実施形態の範囲内にあり得る。一般に、例示的な構成において別々のリソースとして提示された構造および機能は、組み合わされた構造またはリソースとして実装され得る。同様に、単一のリソースとして提示された構造および機能は、別々のリソースとして実装されてもよい。これらおよび他の変形、修正、追加、および改良は、添付の特許請求の範囲によって表される本開示の実施形態の範囲内に含まれる。従って、本明細書および図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。

Claims (20)

  1. システムであって、
    1つまたは複数のコンピュータプロセッサと、
    1つまたは複数のコンピュータメモリと、
    前記1または複数のコンピュータメモリに組み込まれた一組の命令であって、ユーザの混合現実対応デバイス上の混合現実環境内で複数のコンテキストアプリケーションを実施するための複数の動作を実行させるように前記1つまたは複数のコンピュータプロセッサを設定する前記1つまたは複数の命令と、を備え、
    前記複数の動作は、
    前記混合現実対応デバイスのセンサによって捕捉される少なくとも1つの現実世界のオブジェクトの1つまたは複数の属性にオブジェクト認識アルゴリズムを適用することにより、前記混合現実環境内の少なくとも1つの現実世界のオブジェクトを識別すること、
    前記複数のコンテキストアプリケーションの第1のコンテキストアプリケーションを使用して、第1の組のコンテキストトリガーと前記複数のコンテキストアプリケーションのうちの第2のコンテキストアプリケーションとの間の関連付けを決定することであって、前記第1のコンテキストアプリケーションはランチャーアプリケーションである、前記関連付けを決定すること、
    前記第1の組のコンテキストトリガーのうちの少なくとも1つが満足されたとの判定に基づいて前記第2のコンテキストアプリケーションを開始することであって、前記第1の組のコンテキストトリガーのうちの少なくとも1つが満足されたとの判定は、前記混合現実対応デバイスのセンサによって捕捉された周囲に対応するリアルタイムデータの分析に基づくものであり、前記混合現実環境において前記第2のコンテキストアプリケーションに関連する少なくとも1つの仮想オブジェクトを提示することを含む前記第2のコンテキストアプリケーションを開始すること、
    前記少なくとも1つの仮想オブジェクトとのユーザの対話が、前記第2のコンテキストアプリケーションに関連付けられた第2の組のコンテキストトリガーを満足するとの判定に基づいて前記第2のコンテキストアプリケーション内で機能を呼び出すことであって、前記少なくとも1つの仮想オブジェクトとのユーザの対話が、前記第2のコンテキストアプリケーションに関連付けられた第2の組のコンテキストトリガーを満足するとの判定は、前記第2のコンテキストアプリケーションによって定義された対話ルールに基づくものである、前記呼び出すこと、を備える、システム。
  2. 前記オブジェクト認識アルゴリズムを適用することは、
    人工知能を使用して、前記混合現実環境内の前記少なくとも1つの現実世界のオブジェクトの識別を実行することを含む、請求項1に記載のシステム。
  3. 前記第2のコンテキストアプリケーションによる前記少なくとも1つの仮想オブジェクトを提示することは、
    前記ユーザと、第2の混合現実対応デバイス上で実行される前記第2のコンテキストアプリケーションに関連付けられた共有表示層との間の対応に基づく、請求項1に記載のシステム。
  4. 前記ユーザの対話は、前記少なくとも1つの現実世界のオブジェクトをコントローラとして使用することを含む、請求項1に記載のシステム。
  5. 前記第2のコンテキストアプリケーションを開始することは、
    減損現実技術を適用して前記混合現実対応デバイス上の前記少なくとも1つの現実世界のオブジェクトの描写を変更することを含む、請求項1に記載のシステム。
  6. 前記少なくとも1つの現実世界のオブジェクトをコントローラとして使用することは、
    前記現実世界のオブジェクトを3次元で操作して、前記第2のコンテキストアプリケーション内のアクションを制御することを含み、
    前記アクションは、前記第2のコンテキストアプリケーションのアプリケーションプログラムインタフェースを使用して定義される、請求項4に記載のシステム。
  7. 前記第1の組のコンテキストトリガーは、前記識別することの時刻に関するデータ、前記混合現実対応デバイスの位置に関するデータ、および前記混合現実環境内で識別される追加の一組の現実世界のオブジェクトに関するデータのうちの少なくとも2つを含む複数の要素の組み合わせを含む、請求項1に記載のシステム。
  8. 方法であって、
    一組の命令を1または複数のコンピュータメモリに組み込むことであって、前記一組の命令は、ユーザの混合現実対応デバイス上の混合現実環境内で複数のコンテキストアプリケーションを実施するための複数の動作を実行させるように1つまたは複数のコンピュータプロセッサを設定する、前記組み込むこと
    前記一組の命令を実行して前記1つまたは複数のコンピュータプロセッサに前記複数の動作を実行させること、を備え、
    前記複数の動作は、
    前記混合現実対応デバイスのセンサによって捕捉される少なくとも1つの現実世界のオブジェクトの1つまたは複数の属性にオブジェクト認識アルゴリズムを適用することにより、前記混合現実環境内の少なくとも1つの現実世界のオブジェクトを識別すること、
    前記複数のコンテキストアプリケーションの第1のコンテキストアプリケーションを使用して、第1の組のコンテキストトリガーと前記複数のコンテキストアプリケーションのうちの第2のコンテキストアプリケーションとの間の関連付けを決定することであって、前記第1のコンテキストアプリケーションはランチャーアプリケーションである、前記関連付けを決定すること、
    前記第1の組のコンテキストトリガーのうちの少なくとも1つが満足されたとの判定に基づいて前記第2のコンテキストアプリケーションを開始することであって、前記第1の組のコンテキストトリガーのうちの少なくとも1つが満足されたとの判定は、前記混合現実対応デバイスのセンサによって捕捉された周囲に対応するリアルタイムデータの分析に基づくものであり、前記混合現実環境において前記第2のコンテキストアプリケーションに関連する少なくとも1つの仮想オブジェクトを提示することを含む前記第2のコンテキストアプリケーションを開始すること、
    前記少なくとも1つの仮想オブジェクトとのユーザの対話が、前記第2のコンテキストアプリケーションに関連付けられた第2の組のコンテキストトリガーを満足するとの判定に基づいて前記第2のコンテキストアプリケーション内で機能を呼び出すことであって、前記少なくとも1つの仮想オブジェクトとのユーザの対話が、前記第2のコンテキストアプリケーションに関連付けられた第2の組のコンテキストトリガーを満足するとの判定は、前記第2のコンテキストアプリケーションによって定義された対話ルールに基づくものである、前記呼び出すこと、を備える、方法。
  9. 前記オブジェクト認識アルゴリズムを適用することは、
    人工知能を使用して、前記混合現実環境内の前記少なくとも1つの現実世界のオブジェクトの識別を実行することを含む、請求項8に記載の方法。
  10. 前記第2のコンテキストアプリケーションによる前記少なくとも1つの仮想オブジェクトを提示することは、
    前記ユーザと、第2の混合現実対応デバイス上で実行される前記第2のコンテキストアプリケーションに関連付けられた共有表示層との間の対応に基づく、請求項8に記載の方法。
  11. 前記ユーザの対話は、前記少なくとも1つの現実世界のオブジェクトをコントローラとして使用することを含む、請求項8に記載の方法。
  12. 前記第2のコンテキストアプリケーションを開始することは、
    減損現実技術を適用して前記混合現実対応デバイス上の前記少なくとも1つの現実世界のオブジェクトの描写を変更することを含む、請求項8に記載の方法。
  13. 前記少なくとも1つの現実世界のオブジェクトをコントローラとして使用することは、
    前記現実世界のオブジェクトを3次元で操作して、前記第2のコンテキストアプリケーション内のアクションを制御することを含み、
    前記アクションは、前記第2のコンテキストアプリケーションのアプリケーションプログラムインタフェースを使用して定義される、請求項11に記載の方法。
  14. 前記第1の組のコンテキストトリガーは、前記識別することの時刻に関するデータ、前記混合現実対応デバイスの位置に関するデータ、および前記混合現実環境内で識別される追加の一組の現実世界のオブジェクトに関するデータのうちの少なくとも2つを含む複数の要素の組み合わせを含む、請求項8に記載の方法。
  15. 一組の命令を備える非一時的マシン可読媒体であって、
    前記一組の命令は、ユーザの混合現実対応デバイス上の混合現実環境内で複数のコンテキストアプリケーションを実施するための複数の動作を実行させるように1つまたは複数のコンピュータプロセッサを設定し、
    前記複数の動作は、
    前記混合現実対応デバイスのセンサによって捕捉される少なくとも1つの現実世界のオブジェクトの1つまたは複数の属性にオブジェクト認識アルゴリズムを適用することにより、前記混合現実環境内の少なくとも1つの現実世界のオブジェクトを識別すること、
    前記複数のコンテキストアプリケーションの第1のコンテキストアプリケーションを使用して、第1の組のコンテキストトリガーと前記複数のコンテキストアプリケーションのうちの第2のコンテキストアプリケーションとの間の関連付けを決定することであって、前記第1のコンテキストアプリケーションはランチャーアプリケーションである、前記関連付けを決定すること、
    前記第1の組のコンテキストトリガーのうちの少なくとも1つが満足されたとの判定に基づいて前記第2のコンテキストアプリケーションを開始することであって、前記第1の組のコンテキストトリガーのうちの少なくとも1つが満足されたとの判定は、前記混合現実対応デバイスのセンサによって捕捉された周囲に対応するリアルタイムデータの分析に基づくものであり、前記混合現実環境において前記第2のコンテキストアプリケーションに関連する少なくとも1つの仮想オブジェクトを提示することを含む前記第2のコンテキストアプリケーションを開始すること、
    前記少なくとも1つの仮想オブジェクトとのユーザの対話が、前記第2のコンテキストアプリケーションに関連付けられた第2の組のコンテキストトリガーを満足するとの判定に基づいて前記第2のコンテキストアプリケーション内で機能を呼び出すことであって、前記少なくとも1つの仮想オブジェクトとのユーザの対話が、前記第2のコンテキストアプリケーションに関連付けられた第2の組のコンテキストトリガーを満足するとの判定は、前記第2のコンテキストアプリケーションによって定義された対話ルールに基づくものである、前記呼び出すこと、を備える、非一時的マシン可読媒体。
  16. 前記オブジェクト認識アルゴリズムを適用することは、
    人工知能を使用して、前記混合現実環境内の前記少なくとも1つの現実世界のオブジェクトの識別を実行することを含む、請求項15に記載の非一時的マシン可読媒体。
  17. 前記第2のコンテキストアプリケーションによる前記少なくとも1つの仮想オブジェクトを提示することは、
    前記ユーザと、第2の混合現実対応デバイス上で実行される前記第2のコンテキストアプリケーションに関連付けられた共有表示層との間の対応に基づく、請求項15に記載の非一時的マシン可読媒体。
  18. 前記ユーザの対話は、前記少なくとも1つの現実世界のオブジェクトをコントローラとして使用することを含む、請求項15に記載の非一時的マシン可読媒体。
  19. 前記第2のコンテキストアプリケーションを開始することは、
    減損現実技術を適用して前記混合現実対応デバイス上の前記少なくとも1つの現実世界のオブジェクトの描写を変更することを含む、請求項15に記載の非一時的マシン可読媒体。
  20. 前記少なくとも1つの現実世界のオブジェクトをコントローラとして使用することは、
    前記現実世界のオブジェクトを3次元で操作して、前記第2のコンテキストアプリケーション内のアクションを制御することを含み、
    前記アクションは、前記第2のコンテキストアプリケーションのアプリケーションプログラムインタフェースを使用して定義される、請求項18に記載の非一時的マシン可読媒体。
JP2019560385A 2017-05-05 2018-05-04 混合現実環境でのコンテキストアプリケーション Active JP6828189B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762502349P 2017-05-05 2017-05-05
US62/502,349 2017-05-05
US201762561017P 2017-09-20 2017-09-20
US62/561,017 2017-09-20
PCT/US2018/031245 WO2018204879A1 (en) 2017-05-05 2018-05-04 Contextual applications in a mixed reality environment

Publications (3)

Publication Number Publication Date
JP2020520000A JP2020520000A (ja) 2020-07-02
JP2020520000A5 JP2020520000A5 (ja) 2020-08-13
JP6828189B2 true JP6828189B2 (ja) 2021-02-10

Family

ID=64014833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019560385A Active JP6828189B2 (ja) 2017-05-05 2018-05-04 混合現実環境でのコンテキストアプリケーション

Country Status (7)

Country Link
US (3) US10360734B2 (ja)
EP (1) EP3639261B1 (ja)
JP (1) JP6828189B2 (ja)
KR (1) KR102220949B1 (ja)
CN (1) CN111033605A (ja)
CA (1) CA3062541C (ja)
WO (1) WO2018204879A1 (ja)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104740869B (zh) * 2015-03-26 2018-04-03 北京小小牛创意科技有限公司 一种融合真实环境的虚实结合的交互方法及***
JP2018005091A (ja) * 2016-07-06 2018-01-11 富士通株式会社 表示制御プログラム、表示制御方法および表示制御装置
US10867445B1 (en) * 2016-11-16 2020-12-15 Amazon Technologies, Inc. Content segmentation and navigation
WO2018204879A1 (en) 2017-05-05 2018-11-08 Unity IPR ApS Contextual applications in a mixed reality environment
US10559133B2 (en) * 2018-02-07 2020-02-11 Dell Products L.P. Visual space management across information handling system and augmented reality
CN108769814B (zh) * 2018-06-01 2022-02-01 腾讯科技(深圳)有限公司 视频互动方法、装置、终端及可读存储介质
WO2019237085A1 (en) 2018-06-08 2019-12-12 Vulcan Inc. Session-based information exchange
US20190378334A1 (en) * 2018-06-08 2019-12-12 Vulcan Inc. Augmented reality portal-based applications
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
US10712901B2 (en) 2018-06-27 2020-07-14 Facebook Technologies, Llc Gesture-based content sharing in artificial reality environments
US10635895B2 (en) 2018-06-27 2020-04-28 Facebook Technologies, Llc Gesture-based casting and manipulation of virtual content in artificial-reality environments
US10783712B2 (en) * 2018-06-27 2020-09-22 Facebook Technologies, Llc Visual flairs for emphasizing gestures in artificial-reality environments
US10996831B2 (en) 2018-06-29 2021-05-04 Vulcan Inc. Augmented reality cursors
WO2020152828A1 (ja) 2019-01-24 2020-07-30 マクセル株式会社 表示端末、アプリケーション制御システムおよびアプリケーション制御方法
US11054896B1 (en) * 2019-02-07 2021-07-06 Facebook, Inc. Displaying virtual interaction objects to a user on a reference plane
JP7157871B2 (ja) * 2019-03-08 2022-10-20 株式会社Nttドコモ 関連情報出力装置
US11804014B1 (en) * 2019-04-22 2023-10-31 Apple Inc. Context-based application placement
US11163997B2 (en) * 2019-05-05 2021-11-02 Google Llc Methods and apparatus for venue based augmented reality
US10897564B1 (en) 2019-06-17 2021-01-19 Snap Inc. Shared control of camera device by multiple devices
DE112020003104T5 (de) * 2019-06-25 2022-03-17 Semiconductor Energy Laboratory Co., Ltd. Datenverarbeitungssystem und Verfahren zur Datenverarbeitung
US11100715B2 (en) * 2019-06-26 2021-08-24 International Business Machines Corporation Establishment of positional timers in an augmented reality environment
US11340857B1 (en) 2019-07-19 2022-05-24 Snap Inc. Shared control of a virtual object by multiple devices
US11176744B2 (en) * 2019-07-22 2021-11-16 Microsoft Technology Licensing, Llc Mapping sensor data using a mixed-reality cloud
US11461867B2 (en) * 2019-09-19 2022-10-04 Sanctuary Cognitive Systems Corporation Visual interface and communications techniques for use with robots
CN110716645A (zh) * 2019-10-15 2020-01-21 北京市商汤科技开发有限公司 一种增强现实数据呈现方法、装置、电子设备及存储介质
US11270115B2 (en) * 2019-11-18 2022-03-08 Lenovo (Singapore) Pte. Ltd. Presentation of augmented reality content based on identification of trigger accompanying video content
US11461115B2 (en) * 2020-01-28 2022-10-04 Sap Se Third party executable asset bundle deployment
US11354867B2 (en) * 2020-03-04 2022-06-07 Apple Inc. Environment application model
US11985175B2 (en) 2020-03-25 2024-05-14 Snap Inc. Virtual interaction session to facilitate time limited augmented reality based communication between multiple users
US11593997B2 (en) * 2020-03-31 2023-02-28 Snap Inc. Context based augmented reality communication
CN111462663B (zh) * 2020-06-19 2020-10-27 南京新研协同定位导航研究院有限公司 一种基于mr眼镜的导游方法
CN111539662A (zh) * 2020-07-10 2020-08-14 南京新研协同定位导航研究院有限公司 基于mr眼镜租赁业务的动态库存分配方法
US11617953B2 (en) 2020-10-09 2023-04-04 Contact Control Interfaces, Llc. Virtual object interaction scripts
EP3995191A1 (en) * 2020-11-04 2022-05-11 Unity IPR APS Method and system for merging distant spaces
JP6975489B1 (ja) * 2020-12-18 2021-12-01 株式会社Gatari 情報処理システム、情報処理方法および情報処理プログラム
KR20220121990A (ko) * 2021-02-26 2022-09-02 삼성전자주식회사 증강 현실 장치 및 증강 현실 장치와 상호작용하는 전자 장치
CN117413290A (zh) * 2021-03-12 2024-01-16 C·法拉古纳 用于在增强现实游戏内用户数据收集的***和方法
US11935199B2 (en) * 2021-07-26 2024-03-19 Google Llc Augmented reality depth detection through object recognition
EP4396649A1 (en) * 2021-09-02 2024-07-10 Snap Inc. Augmented reality prop interactions
US11969650B2 (en) 2021-11-18 2024-04-30 Sony Interactive Entertainment Inc. Feature similarity scoring of physical environment for augmented reality gameplay
US11568616B1 (en) * 2021-11-29 2023-01-31 Varjo Technologies Oy Display apparatuses and methods for facilitating location-based virtual content
CN114971764A (zh) * 2022-04-08 2022-08-30 浙江赟燊商业信息***科技有限公司 一种基于HoloLens的存储和匹配***及方法
JP7482943B2 (ja) 2022-06-17 2024-05-14 ソフトバンク株式会社 情報処理装置、プログラム、システム、及び情報処理方法
US12020388B2 (en) * 2022-07-29 2024-06-25 Maplebear Inc. Displaying an augmented reality element that provides a personalized enhanced experience at a warehouse

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110213664A1 (en) * 2010-02-28 2011-09-01 Osterhout Group, Inc. Local advertising content on an interactive head-mounted eyepiece
US9285589B2 (en) 2010-02-28 2016-03-15 Microsoft Technology Licensing, Llc AR glasses with event and sensor triggered control of AR eyepiece applications
JP2013004001A (ja) * 2011-06-21 2013-01-07 Sony Corp 表示制御装置、表示制御方法、およびプログラム
US10019962B2 (en) * 2011-08-17 2018-07-10 Microsoft Technology Licensing, Llc Context adaptive user interface for augmented reality display
KR101874895B1 (ko) * 2012-01-12 2018-07-06 삼성전자 주식회사 증강 현실 제공 방법 및 이를 지원하는 단말기
GB2501929B (en) * 2012-05-11 2015-06-24 Sony Comp Entertainment Europe Apparatus and method for augmented reality
KR102062763B1 (ko) * 2012-12-07 2020-01-07 삼성전자주식회사 상황 정보 기반의 정보 제공 방법 및 시스템과 그 기록 매체
US9924102B2 (en) * 2013-03-14 2018-03-20 Qualcomm Incorporated Image-based application launcher
US9240075B2 (en) * 2013-03-15 2016-01-19 Daqri, Llc Campaign optimization for experience content dataset
CN203250508U (zh) * 2013-04-24 2013-10-23 苏州创捷传媒展览股份有限公司 3d混合现实展示装置
US10025375B2 (en) * 2015-10-01 2018-07-17 Disney Enterprises, Inc. Augmented reality controls for user interactions with a virtual world
US9536355B1 (en) * 2016-03-24 2017-01-03 Daqri, Llc Thermal detection in an augmented reality system
CN105912130A (zh) * 2016-07-06 2016-08-31 深圳云戈科技有限公司 一种基于混合现实的通信方法、装置及***
WO2018204879A1 (en) 2017-05-05 2018-11-08 Unity IPR ApS Contextual applications in a mixed reality environment

Also Published As

Publication number Publication date
KR20190141777A (ko) 2019-12-24
US20180322706A1 (en) 2018-11-08
CN111033605A (zh) 2020-04-17
US10769857B2 (en) 2020-09-08
EP3639261A1 (en) 2020-04-22
JP2020520000A (ja) 2020-07-02
CA3062541A1 (en) 2018-11-08
US10984604B2 (en) 2021-04-20
US10360734B2 (en) 2019-07-23
KR102220949B1 (ko) 2021-03-02
US20190392645A1 (en) 2019-12-26
US20200357187A1 (en) 2020-11-12
CA3062541C (en) 2022-01-11
WO2018204879A1 (en) 2018-11-08
EP3639261A4 (en) 2020-05-13
EP3639261B1 (en) 2023-08-30

Similar Documents

Publication Publication Date Title
JP6828189B2 (ja) 混合現実環境でのコンテキストアプリケーション
US11750767B2 (en) Selective identification and order of image modifiers
CN111886058B (zh) 基于位置信息生成可收集项
US10904374B2 (en) Systems, methods and apparatuses to facilitate gradual or instantaneous adjustment in levels of perceptibility of virtual objects or reality object in a digital scene
KR102515040B1 (ko) 컨텍스트 기반 증강 현실 통신
KR20230011349A (ko) 디바이스의 후면 부분 상의 트랙패드
KR20230017348A (ko) 컨텍스트 애플리케이션 메뉴
WO2023211891A1 (en) Ar/vr enabled contact lens
US20230244310A1 (en) Systems and methods for dynamic continuous input in mixed reality environments
CN118355646A (zh) 共享增强现实会话创建

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20191128

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200527

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200527

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200804

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210120

R150 Certificate of patent or registration of utility model

Ref document number: 6828189

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250