IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クアルコム,インコーポレイテッドの特許一覧

<>
  • 特表-拡張現実システムのための推奨 図1
  • 特表-拡張現実システムのための推奨 図2
  • 特表-拡張現実システムのための推奨 図3
  • 特表-拡張現実システムのための推奨 図4A
  • 特表-拡張現実システムのための推奨 図4B
  • 特表-拡張現実システムのための推奨 図5
  • 特表-拡張現実システムのための推奨 図6
  • 特表-拡張現実システムのための推奨 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-15
(54)【発明の名称】拡張現実システムのための推奨
(51)【国際特許分類】
   G06F 3/0481 20220101AFI20231108BHJP
   G06T 19/00 20110101ALI20231108BHJP
   G06Q 50/10 20120101ALI20231108BHJP
【FI】
G06F3/0481
G06T19/00 600
G06Q50/10
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023524763
(86)(22)【出願日】2021-10-04
(85)【翻訳文提出日】2023-04-21
(86)【国際出願番号】 US2021053419
(87)【国際公開番号】W WO2022098459
(87)【国際公開日】2022-05-12
(31)【優先権主張番号】17/090,841
(32)【優先日】2020-11-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】メフラド・タバコリ
(72)【発明者】
【氏名】ロバート・ターツ
(72)【発明者】
【氏名】スコット・ベイス
(72)【発明者】
【氏名】ゲルハルト・ライトメイヤー
【テーマコード(参考)】
5B050
5E555
5L049
【Fターム(参考)】
5B050BA09
5B050DA04
5B050DA05
5B050EA04
5B050EA13
5B050EA19
5B050FA05
5B050FA10
5E555AA59
5E555AA72
5E555AA76
5E555BA20
5E555BB20
5E555BC17
5E555BE17
5E555CA42
5E555CA44
5E555CA47
5E555CB69
5E555DA08
5E555DA09
5E555DB41
5E555DD01
5E555DD06
5E555DD08
5E555EA03
5E555EA04
5E555EA05
5E555EA09
5E555EA20
5E555EA22
5E555FA00
5L049CC18
(57)【要約】
拡張現実システムのための推奨を提供するための技法およびシステムが提供される。いくつかの例では、システムが、拡張現実システムの実世界環境に関連付けられた1つまたは複数の環境特徴を判断する。システムは、拡張現実システムのユーザに関連付けられた1つまたは複数のユーザ特徴を判断する。システムはまた、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて、拡張現実システムによってサポートされる少なくとも1つのアプリケーションに関連付けられた通知を出力する。
【特許請求の範囲】
【請求項1】
拡張現実システムのための推奨を提供するための装置であって、
メモリと、
プロセッサであって、
前記装置の実世界環境に関連付けられた1つまたは複数の環境特徴を判断することと、
前記装置のユーザに関連付けられた1つまたは複数のユーザ特徴を判断することと、
前記1つまたは複数の環境特徴および前記1つまたは複数のユーザ特徴に基づいて、前記装置によってサポートされる少なくとも1つのアプリケーションに関連付けられた通知を出力することと
を行うように構成される、プロセッサと
を備える、装置。
【請求項2】
前記少なくとも1つのアプリケーションに関連付けられた前記通知は、前記少なくとも1つのアプリケーションの推奨を含み、前記少なくとも1つのアプリケーションの前記推奨は、前記1つまたは複数の環境特徴および前記1つまたは複数のユーザ特徴に基づいて判断される、請求項1に記載の装置。
【請求項3】
前記少なくとも1つのアプリケーションに関連付けられた前記通知は、前記少なくとも1つのアプリケーションに関連付けられた少なくとも1つの修正の推奨を含む、請求項1に記載の装置。
【請求項4】
前記プロセッサは、
前記ユーザが前記少なくとも1つのアプリケーションと対話していることを検出することと、
前記ユーザが前記少なくとも1つのアプリケーションと対話していることを検出することに基づいて、前記少なくとも1つのアプリケーションに関連付けられた前記少なくとも1つの修正を判断することと
を行うようにさらに構成される、請求項3に記載の装置。
【請求項5】
前記少なくとも1つの修正は前記実世界環境に関連付けられる、請求項3に記載の装置。
【請求項6】
前記少なくとも1つの修正は、前記少なくとも1つのアプリケーションの1つまたは複数の設定に関連付けられる、請求項3に記載の装置。
【請求項7】
前記プロセッサは、複数のユーザに関連付けられた環境特徴および前記複数のユーザに関連付けられたユーザ特徴のうちの少なくとも1つに基づいて前記少なくとも1つの修正を判断するように構成される、請求項3に記載の装置。
【請求項8】
前記プロセッサは、前記実世界環境の走査に基づいて前記1つまたは複数の環境特徴を判断するように構成される、請求項1に記載の装置。
【請求項9】
前記プロセッサは前記実世界環境の前記走査を引き起こすように構成され、前記実世界環境の前記走査は前記装置の画像センサによって実施される、請求項8に記載の装置。
【請求項10】
前記プロセッサは、前記1つまたは複数の環境特徴を示す、あらかじめ記憶されたデータに基づいて前記1つまたは複数の環境特徴を判断するように構成される、請求項1に記載の装置。
【請求項11】
前記実世界環境に関連付けられた画像データを取り込むように構成される画像センサをさらに備え、前記プロセッサは、前記画像データに少なくとも部分的に基づいて前記1つまたは複数の環境特徴を判断するように構成される、請求項1に記載の装置。
【請求項12】
前記プロセッサは、前記画像データに少なくとも部分的に基づいて前記実世界環境内の1つまたは複数の物理オブジェクトのレイアウトを判断するように構成される、請求項11に記載の装置。
【請求項13】
前記プロセッサは、前記画像データに少なくとも部分的に基づいて前記実世界環境内での1人または複数の人々の活動を判断するように構成される、請求項11に記載の装置。
【請求項14】
前記実世界環境に関連付けられたオーディオデータを取り込むように構成されるオーディオセンサをさらに備え、前記プロセッサは、前記オーディオデータに少なくとも部分的に基づいて、前記1つまたは複数の環境特徴を判断するように構成される、請求項1に記載の装置。
【請求項15】
前記プロセッサは、前記オーディオデータに少なくとも部分的に基づいて、前記実世界環境内での1人または複数の人々の活動を判断するように構成される、請求項13に記載の装置。
【請求項16】
前記プロセッサは、1つまたは複数のネットワーク対応デバイスとのネットワーク通信に基づいて前記実世界環境内の前記1つまたは複数のネットワーク対応デバイスを検出することに少なくとも部分的に基づいて、前記1つまたは複数の環境特徴を判断するように構成される、請求項1に記載の装置。
【請求項17】
前記ユーザの精神状態または感情状態に関連付けられたユーザデータを取得するように構成される1つまたは複数の生物学的センサをさらに備え、前記プロセッサは、前記ユーザデータに少なくとも部分的に基づいて前記1つまたは複数のユーザ特徴を判断するように構成される、請求項1に記載の装置。
【請求項18】
前記プロセッサは、前記ユーザの年齢、前記ユーザの性別、前記ユーザの地理的ロケーション、前記ユーザの身長、および前記ユーザの体重のうちの少なくとも1つを示すユーザ入力に基づいて前記1つまたは複数のユーザ特徴を判断するように構成される、請求項1に記載の装置。
【請求項19】
前記プロセッサは、前記ユーザのアプリケーション選好を判断するために前記ユーザのアプリケーション使用パターンを監視することに基づいて前記1つまたは複数のユーザ特徴を判断するように構成される、請求項1に記載の装置。
【請求項20】
前記プロセッサは、
前記少なくとも1つのアプリケーションと、前記1つまたは複数の環境特徴および前記1つまたは複数のユーザ特徴のうちの少なくとも1つとの間の適合性のレベルを示す一致スコアを判断することと、
前記一致スコアが閾一致スコアを超えると判断することと、
前記一致スコアが前記閾一致スコアを超えることに基づいて前記少なくとも1つのアプリケーションを判断することと
を行うように構成される、請求項1に記載の装置。
【請求項21】
前記プロセッサは、
前記少なくとも1つのアプリケーションに関連付けられた1つまたは複数のアプリケーション特徴を判断することと、
前記1つまたは複数のアプリケーション特徴を前記1つまたは複数の環境特徴および前記1つまたは複数のユーザ特徴のうちの少なくとも1つと比較することに基づいて、前記一致スコアを判断することと
を行うように構成される、請求項20に記載の装置。
【請求項22】
前記プロセッサは、サーバからの前記少なくとも1つのアプリケーションに関連付けられたアプリケーションプロファイルにアクセスすることに基づいて、前記1つまたは複数のアプリケーション特徴を判断するように構成され、前記アプリケーションプロファイルは、複数の装置によって判断されたアプリケーション特徴に基づいて生成される、請求項20に記載の装置。
【請求項23】
前記プロセッサは、複数のアプリケーションの推奨を前記ユーザに提供するように構成される、請求項1に記載の装置。
【請求項24】
前記プロセッサは、前記装置のディスプレイ上に複数の一致スコアを前記複数のアプリケーションに関連付けて表示するように構成され、前記複数の一致スコアは、前記複数のアプリケーションと、前記1つまたは複数の環境特徴および前記1つまたは複数のユーザ特徴のうちの少なくとも1つとの間の適合性のレベルを示す、請求項23に記載の装置。
【請求項25】
前記プロセッサは、前記1つまたは複数の環境特徴に少なくとも基づいて前記複数の一致スコアを判断するように構成される、請求項24に記載の装置。
【請求項26】
前記プロセッサは、前記1つまたは複数のユーザ特徴に少なくとも基づいて前記複数の一致スコアを判断するように構成される、請求項24に記載の装置。
【請求項27】
前記装置は拡張現実システムである、請求項1に記載の装置。
【請求項28】
拡張現実システムのための推奨を提供するための方法であって、
拡張現実システムの実世界環境に関連付けられた1つまたは複数の環境特徴を判断するステップと、
前記拡張現実システムのユーザに関連付けられた1つまたは複数のユーザ特徴を判断するステップと、
前記1つまたは複数の環境特徴および前記1つまたは複数のユーザ特徴に基づいて、前記拡張現実システムによってサポートされる少なくとも1つのアプリケーションに関連付けられた通知を出力するステップと
を含む、方法。
【請求項29】
前記少なくとも1つのアプリケーションに関連付けられた前記通知は、前記少なくとも1つのアプリケーションの推奨を含み、前記少なくとも1つのアプリケーションの前記推奨は、前記1つまたは複数の環境特徴および前記1つまたは複数のユーザ特徴に基づいて判断される、請求項28に記載の方法。
【請求項30】
前記少なくとも1つのアプリケーションに関連付けられた前記通知は、前記少なくとも1つのアプリケーションに関連付けられた少なくとも1つの修正の推奨を含む、請求項28に記載の方法。
【請求項31】
前記ユーザが前記少なくとも1つのアプリケーションと対話していることを検出するステップと、
前記ユーザが前記少なくとも1つのアプリケーションと対話していることを検出することに基づいて、前記少なくとも1つのアプリケーションに関連付けられた前記少なくとも1つの修正を判断するステップと
をさらに含む、請求項30に記載の方法。
【請求項32】
前記少なくとも1つの修正は前記実世界環境に関連付けられる、請求項30に記載の方法。
【請求項33】
前記少なくとも1つの修正は、前記少なくとも1つのアプリケーションの1つまたは複数の設定に関連付けられる、請求項30に記載の方法。
【請求項34】
複数のユーザに関連付けられた環境特徴および前記複数のユーザに関連付けられたユーザ特徴のうちの少なくとも1つに基づいて、前記少なくとも1つの修正を判断するステップをさらに含む、請求項30に記載の方法。
【請求項35】
前記1つまたは複数の環境特徴を示す、あらかじめ記憶されたデータに基づいて前記1つまたは複数の環境特徴を判断するステップをさらに含む、請求項28に記載の方法。
【請求項36】
前記拡張現実システムの少なくとも1つの画像センサによって取り込まれた前記実世界環境に関連付けられた画像データに少なくとも部分的に基づいて前記1つまたは複数の環境特徴を判断するステップをさらに含む、請求項28に記載の方法。
【請求項37】
前記画像データに少なくとも部分的に基づいて前記実世界環境内の1つまたは複数の物理オブジェクトのレイアウトを判断するステップをさらに含む、請求項36に記載の方法。
【請求項38】
前記画像データに少なくとも部分的に基づいて、前記実世界環境内での1人または複数の人々の活動を判断するステップをさらに含む、請求項36に記載の方法。
【請求項39】
前記拡張現実システムのオーディオセンサによって取り込まれた前記実世界環境に関連付けられたオーディオデータに少なくとも部分的に基づいて前記1つまたは複数の環境特徴を判断するステップをさらに含む、請求項28に記載の方法。
【請求項40】
前記オーディオデータに少なくとも部分的に基づいて、前記実世界環境内での1人または複数の人々の活動を判断するステップをさらに含む、請求項39に記載の方法。
【請求項41】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
拡張現実システムの実世界環境に関連付けられた1つまたは複数の環境特徴を判断することと、
前記拡張現実システムのユーザに関連付けられた1つまたは複数のユーザ特徴を判断することと、
前記1つまたは複数の環境特徴および前記1つまたは複数のユーザ特徴を使って、前記拡張現実システムによってサポートされる少なくとも1つのアプリケーションを判断することと、
前記少なくとも1つのアプリケーションの推奨を前記ユーザに提供することと
を行わせる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、拡張現実システムのための適応的推奨を提供することに関する。いくつかの例では、本開示の態様は、拡張現実システムが置かれている実世界環境の特性に基づいて、および/または拡張現実システムのユーザの特性に基づいて、拡張現実アプリケーションに関連付けられた推奨を提供することに関する。
【背景技術】
【0002】
拡張現実技術は、ユーザに仮想コンテンツを提示するのに使うことができ、かつ/または物質界からの実環境と仮想環境を組み合わせて、拡張現実体験をユーザに提供することができる。拡張現実という用語は、仮想現実、拡張現実、複合現実などを包含することができる。拡張現実システムは、実世界環境の画像に仮想コンテンツを重ねることによって、ユーザに、拡張現実環境を体験させることができ、この環境は、拡張現実デバイス(たとえば、ヘッドマウントディスプレイ、拡張現実グラス、または他のデバイス)を通してユーザによって閲覧することができる。
【0003】
ユーザの実世界環境の多くの特徴は、拡張現実アプリケーションでのユーザ体験に影響する可能性がある。その結果、ユーザは、どの拡張現実アプリケーションが、自分の現在の環境に適合するかに気づかない場合がある。さらに、ユーザは、どのようにすれば最適な拡張現実体験のために環境を最もよく構成するかについて確信がない場合がある。したがって、実世界環境に基づいて、拡張現実アプリケーションに関連付けられた推奨を適応させるための改良型システムが必要とされる。
【発明の概要】
【課題を解決するための手段】
【0004】
拡張現実システムのための推奨を提供するためのシステムおよび技法について、本明細書において記載する。少なくとも1つの例によると、拡張現実システムのための推奨を提供するための装置が提供される。例示的装置は、メモリおよび1つまたは複数のプロセッサ(たとえば、回路構成で構成される)を含むことができる。1つまたは複数のプロセッサは、装置の実世界環境に関連付けられた1つまたは複数の環境特徴を判断することと、装置のユーザに関連付けられた1つまたは複数のユーザ特徴を判断することと、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて、装置によってサポートされる少なくとも1つのアプリケーションに関連付けられた通知を出力することとを行うように構成される。一例では、装置は、拡張現実システムであることができる。
【0005】
別の例では、拡張現実システムのための推奨を提供するための方法が提供される。例示的方法は、拡張現実システムの実世界環境に関連付けられた1つまたは複数の環境特徴を判断するステップを含むことができる。方法は、拡張現実システムのユーザに関連付けられた1つまたは複数のユーザ特徴を判断するステップも含むことができる。方法は、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて、拡張現実システムによってサポートされる少なくとも1つのアプリケーションに関連付けられた通知を出力するステップをさらに含むことができる。
【0006】
別の例では、拡張現実システム内で仮想コンテンツを調節するための非一時的コンピュータ可読媒体が提供される。例示的な非一時的コンピュータ可読媒体は命令を記憶することができ、命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、拡張現実システムの実世界環境に関連付けられた1つまたは複数の環境特徴を判断することと、拡張現実システムのユーザに関連付けられた1つまたは複数のユーザ特徴を判断することと、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて、拡張現実システムによってサポートされる少なくとも1つのアプリケーションに関連付けられた通知を出力することとを行わせる。
【0007】
別の例では、例示的装置は、拡張現実システムの実世界環境に関連付けられた1つまたは複数の環境特徴を判断するための手段と、拡張現実システムのユーザに関連付けられた1つまたは複数のユーザ特徴を判断するための手段と、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて、拡張現実システムによってサポートされる少なくとも1つのアプリケーションに関連付けられた通知を出力するための手段とを含むことができる。
【0008】
いくつかの態様では、少なくとも1つのアプリケーションに関連付けられた通知は、少なくとも1つのアプリケーションの推奨を含み、少なくとも1つのアプリケーションの推奨は、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて判断される。いくつかの態様では、少なくとも1つのアプリケーションに関連付けられた通知は、少なくとも1つのアプリケーションに関連付けられた少なくとも1つの修正の推奨を含む。いくつかの態様は、ユーザが少なくとも1つのアプリケーションと対話していることを検出することと、ユーザが少なくとも1つのアプリケーションと対話していることを検出することに基づいて、少なくとも1つのアプリケーションに関連付けられた少なくとも1つの修正を判断することとをさらに含むことができる。一例では、少なくとも1つの修正は、実世界環境に関連付けることができる。別の例では、少なくとも1つの修正は、少なくとも1つのアプリケーションの1つまたは複数の設定に関連付けることができる。いくつかの態様は、複数のユーザに関連付けられた環境特徴および複数のユーザに関連付けられたユーザ特徴のうちの少なくとも1つに基づいて、少なくとも1つの修正を判断することをさらに含むことができる。
【0009】
いくつかの態様では、1つまたは複数の環境特徴は、1つまたは複数の環境特徴を示す、あらかじめ記憶されたデータに少なくとも部分的に基づいて判断することができる。追加または代替として、1つまたは複数の環境特徴は、実世界環境の走査に少なくとも部分的に基づいて判断することができる。いくつかの態様は、実世界環境の走査を引き起こすことを含むことができ、実世界環境の走査は、拡張現実システムの画像センサによって実施される。
【0010】
いくつかの態様では、1つまたは複数の環境特徴は、拡張現実システムの少なくとも1つの画像センサによって取り込まれた実世界環境に関連付けられた画像データに少なくとも部分的に基づいて判断することができる。一例では、1つまたは複数の環境特徴を判断することは、画像データに少なくとも部分的に基づいて、実世界環境内の1つまたは複数の物理オブジェクトのレイアウトを判断することを含むことができる。別の例では、1つまたは複数の環境特徴を判断することは、画像データに少なくとも部分的に基づいて、実世界環境内での1人または複数の人々の活動を判断することを含むことができる。
【0011】
いくつかの態様では、1つまたは複数の環境特徴は、拡張現実システムのオーディオセンサによって取り込まれた実世界環境に関連付けられたオーディオデータに少なくとも部分的に基づいて判断することができる。一例では、1つまたは複数の環境特徴を判断することは、オーディオデータに少なくとも部分的に基づいて、実世界環境内での1人または複数の人々の活動を判断することを含むことができる。他の例では、1つまたは複数の環境特徴を判断することは、1つまたは複数のネットワーク対応デバイスとのネットワーク通信に基づいて、実世界環境内の1つまたは複数のネットワーク対応デバイスを検出することを含むことができる。
【0012】
いくつかの態様では、1つまたは複数のユーザ特徴は、拡張現実システムの1つまたは複数の生物学的センサを使って取得されたユーザデータに少なくとも部分的に基づいて判断することができ、ユーザデータは、ユーザの精神状態または感情状態に関連付けられる。いくつかの例では、1つまたは複数のユーザ特徴は、ユーザの年齢、ユーザの性別、ユーザの地理的ロケーション、ユーザの身長、およびユーザの体重のうちの少なくとも1つを示すユーザ入力に少なくとも部分的に基づいて判断することができる。他の例では、1つまたは複数のユーザ特徴は、ユーザのアプリケーション選好を判断するためにユーザのアプリケーション使用パターンを監視することに少なくとも部分的に基づいて判断することができる。
【0013】
いくつかの態様では、拡張現実システムによってサポートされる少なくとも1つのアプリケーションを判断することは、少なくとも1つのアプリケーションと、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴のうちの少なくとも1つとの間の適合性のレベルを示す一致スコアを判断することと、一致スコアが閾一致スコアを超えると判断することと、一致スコアが閾一致スコアを超えることに基づいて、少なくとも1つのアプリケーションを判断することとを含むことができる。いくつかの例では、一致スコアは、少なくとも1つのアプリケーションに関連付けられた1つまたは複数のアプリケーション特徴を判断すること、ならびに1つまたは複数のアプリケーション特徴を、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴のうちの少なくとも1つと比較することに少なくとも部分的に基づいて判断することができる。一例では、1つまたは複数のアプリケーション特徴は、サーバからの少なくとも1つのアプリケーションに関連付けられたアプリケーションプロファイルにアクセスすることに少なくとも部分的に基づいて判断することができ、アプリケーションプロファイルは、複数の拡張現実システムによって判断されたアプリケーション特徴に基づいて生成される。
【0014】
いくつかの態様では、拡張現実システムによってサポートされる複数のアプリケーションは、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴を使って判断することができる。いくつかのケースでは、複数のアプリケーションの推奨を、ユーザに提供することができる。一例では、複数のアプリケーションと少なくとも1つまたは複数の環境特徴との間の適合性のレベルを示す複数の一致スコアを判断することができる。別の例では、複数のアプリケーションと少なくとも1つまたは複数のユーザ特徴との間の適合性のレベルを示す複数の一致スコアを判断することができる。いくつかのケースでは、複数の一致スコアを、複数のアプリケーションに関連付けて、拡張現実システムのディスプレイ上に表示することができる。一例では、拡張現実システムのディスプレイは、複数の一致スコアのうちの最も高い一致スコアを有する、複数のアプリケーションのうちのあるアプリケーションの指示を表示することができる。
【0015】
少なくとも1つの他の例によると、ユーザデバイス上で動作可能な例示的方法が提供される。方法は、拡張現実システムのユーザデバイスが置かれている実世界環境に関連付けられた1つまたは複数の環境特徴を検出するように準備された1つまたは複数の検出器から信号を受信するステップと、ユーザと、拡張現実システムによってサポートされるアプリケーションとの間の対話に関連付けられた1つまたは複数のユーザ特徴に関するデータを、ユーザデータストアから取り出すステップと、1つまたは複数の検出器からの信号およびユーザストアからのデータを使って、実世界環境中のユーザデバイスによる使用に適した、拡張現実システムによってサポートされる少なくとも1つのアプリケーションを判断するステップと、ユーザデバイス上での少なくとも1つのアプリケーションの起動を容易にするステップとを含む。
【0016】
別の例では、例示的装置は、メモリおよび1つまたは複数のプロセッサ(たとえば、回路構成で構成される)を含むことができる。1つまたは複数のプロセッサは、拡張現実システムのユーザデバイスが置かれている実世界環境に関連付けられた1つまたは複数の環境特徴を検出するように準備された1つまたは複数の検出器から信号を受信することと、ユーザと、拡張現実システムによってサポートされるアプリケーションとの間の対話に関連付けられた1つまたは複数のユーザ特徴に関するデータを、ユーザデータストアから取り出すことと、1つまたは複数の検出器からの信号およびユーザストアからのデータを使って、実世界環境中のユーザデバイスによる使用に適した、拡張現実システムによってサポートされる少なくとも1つのアプリケーションを判断することと、ユーザデバイス上での少なくとも1つのアプリケーションの起動を容易にすることとを行うように構成される。
【0017】
別の例では、例示的な非一時的コンピュータ可読媒体は命令を記憶することができ、命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、拡張現実システムのユーザデバイスが置かれている実世界環境に関連付けられた1つまたは複数の環境特徴を検出するように準備された1つまたは複数の検出器から信号を受信することと、ユーザと、拡張現実システムによってサポートされるアプリケーションとの間の対話に関連付けられた1つまたは複数のユーザ特徴に関するデータを、ユーザデータストアから取り出すことと、1つまたは複数の検出器からの信号およびユーザストアからのデータを使って、実世界環境中のユーザデバイスによる使用に適した、拡張現実システムによってサポートされる少なくとも1つのアプリケーションを判断することと、ユーザデバイス上での少なくとも1つのアプリケーションの起動を容易にすることとを行わせる。
【0018】
別の例では、例示的装置は、拡張現実システムのユーザデバイスが置かれている実世界環境に関連付けられた1つまたは複数の環境特徴を検出するように準備された1つまたは複数の検出器から信号を受信するための手段と、ユーザと、拡張現実システムによってサポートされるアプリケーションとの間の対話に関連付けられた1つまたは複数のユーザ特徴に関するデータを、ユーザデータストアから取り出すための手段と、1つまたは複数の検出器からの信号およびユーザストアからのデータを使って、実世界環境中のユーザデバイスによる使用に適した、拡張現実システムによってサポートされる少なくとも1つのアプリケーションを判断するための手段と、ユーザデバイス上での少なくとも1つのアプリケーションの起動を容易にするための手段とを含むことができる。
【0019】
いくつかの態様では、アプリケーションの起動を容易にすることは、ユーザデバイス上でアプリケーションを自動的に起動することを含む。
【0020】
いくつかの態様では、アプリケーションの起動を容易にすることは、デバイスのユーザにアプリケーションの指示を与えるように、ディスプレイを制御することを含む。
【0021】
いくつかの態様では、装置は、カメラ、モバイルデバイス(たとえば、携帯電話、すなわち、いわゆる「スマートフォン」もしくは他のモバイルデバイス)、ウェアラブルデバイス、拡張現実デバイス(たとえば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、もしくは複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、サーバコンピュータ、または他のデバイスを備える。いくつかの態様では、装置は、1つまたは複数の画像を取り込むための1つのカメラまたは複数のカメラを含む。いくつかの態様では、装置はさらに、1つまたは複数の画像、通知、および/または他の表示可能なデータを表示するためのディスプレイを含む。いくつかの態様では、上述した装置は、1つまたは複数のセンサを含むことができる。
【0022】
本概要は、特許請求される主題の主要なまたは必須の特徴を特定することが意図されておらず、特許請求される主題の範囲を決定するために単独で使用されることも意図されていない。本主題は、本特許の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照することによって理解されるべきである。
【0023】
上記のことは、他の特徴および例とともに、以下の明細書、特許請求の範囲、および添付の図面を参照するとより明らかになるであろう。
【0024】
本出願の説明のための例が、以下の図面を参照して以下で詳細に説明される。
【図面の簡単な説明】
【0025】
図1】いくつかの例による、拡張現実システムの例示的アーキテクチャを示すブロック図である。
図2】いくつかの例による、拡張現実環境に関連付けられた適応的推奨を提供するためのシステムの例を示すブロック図である。
図3】いくつかの例による、拡張現実システムが置かれている実世界環境を示す図である。
図4A】いくつかの例による、拡張現実環境に関連付けて提供される適応的推奨を示す図である。
図4B】いくつかの例による、拡張現実環境に関連付けて提供される適応的推奨を示す図である。
図5】いくつかの例による、拡張現実環境に関連付けられた適応的推奨を提供するためのプロセスの例を示す流れ図である。
図6】いくつかの例による、拡張現実環境に関連付けられた適応的推奨を提供するためのプロセスの別の例を示す流れ図である。
図7】本明細書において説明されるいくつかの態様を実装するためのシステムの例を示す図である。
【発明を実施するための形態】
【0026】
本開示のいくつかの態様および例が、以下で提供される。当業者に明らかになるように、これらの態様および例のうちのいくつかは独立して適用されてもよく、それらのうちのいくつかは組み合わせて適用されてもよい。以下の説明では、説明の目的で、本出願の主題の完全な理解をもたらすために、具体的な詳細が記載される。しかしながら、これらの具体的な詳細なしに様々な例が実践されてもよいことは明らかであろう。図および説明は限定的であることが意図されていない。
【0027】
以下の説明は、説明のための例のみを提供し、本開示の範囲、適用可能性、または構成を限定することは意図されない。むしろ、次の記載は、当業者に、説明のための例を実装することを可能にする記載を提供することになる。添付の特許請求の範囲に記載されるような本出願の趣旨および範囲から逸脱することなく、様々な変更が要素の機能および構成に加えられてもよいことを理解されたい。
【0028】
拡張現実(XR)デバイスまたはシステムは、仮想現実(VR)環境、拡張現実(AR)環境、複合現実(MR)環境、および/または他のXR環境を含む、異なるタイプのXR環境との対話を容易にすることができる。XRデバイスまたはシステムは、ユーザによって、XR環境と対話するのに使うことができる。XRデバイスまたはシステムの例は、特に、ヘッドマウントディスプレイ(HMD)、XRグラスを含む。XRデバイスまたはシステムは、仮想コンテンツを実世界環境の画像の上に重ねさせることができ、これは、ユーザによって、XRデバイスまたはシステムを通して閲覧することができる。いくつかのXRデバイスまたはシステムは、付随するオーディオコンテンツを提供する場合がある。実世界環境は、物理オブジェクト、人々、または他の実世界オブジェクトを含むことができる。XRデバイスまたはシステムは、ユーザの体部(たとえば、ユーザの手および/または指先)を追跡して、ユーザを、仮想コンテンツの項目と対話させることができる。
【0029】
XRシステムが置かれている実世界環境の様々な特徴が、XRベースのアプリケーションでのユーザの体験に影響する可能性がある。たとえば、複数のプレーヤ用に設計されたXRベースのゲーム用アプリケーションが、最適なゲームプレイのために大きい空き空間を要する場合がある。ただし、他のXRベースのゲーム用アプリケーション(シングルプレーヤゲーム、または家具および他の物理オブジェクトを使用するゲームなど)は、より狭いおよび/または散らかった環境に、より適している場合がある。別の例では、いくつかのXRベースのアプリケーション(たとえば、公道での使用のために設計されたナビゲーションアプリケーション)は、高レベルの周囲雑音に適合する場合があり、他のXRベースのアプリケーション(たとえば、テレビ会議アプリケーション)は、静かな環境において最もよく体験される場合がある。
【0030】
いくつかのケースでは、ユーザは、どのXRベースのアプリケーションが、自分の現在の実世界環境に最も適しているかに気づいていない場合がある。たとえば、新たなアプリケーションを体験することを望むユーザが、どの新たなアプリケーションが自分の環境に適合するかに気づいていない場合があり、慣れない環境にいるユーザが、どのようにすれば、既知のアプリケーションを最適化するように、慣れない環境を最もよく構成するかに確信がない場合がある。さらに、ユーザは、アプリケーションの使用を強化し、または容易にするために環境に対して、および/またはアプリケーションに対して行うことができる可能な修正に気づかない場合がある。したがって、実世界環境に基づいて、XRベースのアプリケーション向けの推奨を適応させるための改良型システムが必要とされている。
【0031】
本開示は、XRアプリケーション向けの環境ベースの推奨を提供するためのシステム、装置、方法、およびコンピュータ可読媒体(まとめて、「システムおよび技法」と呼ばれる)について記載する。システムおよび技法は、XRシステムが、XRシステムが置かれている現在の実世界環境に基づいて、XRアプリケーションに関連付けられた推奨を適応させるための能力を提供する。いくつかのケースでは、推奨は、ユーザの環境に最も適した1つまたは複数のアプリケーション向けの提案を含むことができる。追加または代替として、推奨は、アプリケーションとのユーザ対話を強化し、または容易にする、ユーザの環境および/または特定のアプリケーションに対する、提案された修正を含むことができる。XRシステムは、ユーザの実世界環境を監視および/または分析することに基づいて、適切な推奨を判断することができる。いくつかのケースでは、XRシステムは、ユーザのアプリケーション使用履歴および/または現在の感情もしくは精神状態など、ユーザの特性に基づいて、推奨を生成することもできる。
【0032】
XRシステムは、ユーザの実世界環境の様々な特徴を監視および/または分析することができる。いくつかの例では、XRシステムは、周囲雑音、照明、温度、におい、XRシステムのロケーションもしくはXRシステムに相対したロケーション、現在の日付、現在時刻、および/または他の特性などの周囲環境特性を判断することができる。さらなる例では、XRシステムは、環境の物理的レイアウトを判断することができる。物理的レイアウトは、ユーザの自宅における部屋のタイプ、ユーザの自宅における部屋の間の区画、ならびに/または部屋の中の家具および他の物理オブジェクトを含むことができる。XRシステムは、環境の青写真を使って、および/または環境を積極的に走査することによって、物理的レイアウトを判断することができる。いくつかのケースでは、XRシステムは、シーン理解のための1つまたは複数の技法を実装することができ、これらは、環境内の背景活動を判断および/または推論することを含むことができる。シーン理解の、説明のための例において、XRシステムは、ユーザの自宅で誰かが現在料理していると判断し、または別の部屋で赤ちゃんが眠っていると判断することができる。いくつかのケースでは、XRシステムは、ユーザの環境の関連特徴を記述し、かつ/または表す環境プロファイルを生成することができる。XRシステムは、あらかじめ判断された環境特徴を、特定のロケーションに関連付けられたプロファイル内に記憶し、ならびにユーザが特定のロケーションにおいてXRシステムと対話するたびに、1つまたは複数の環境特徴を更新することができる。
【0033】
XRシステムは、ユーザに関連付けられた様々な特性を判断することができる。いくつかのケースでは、XRシステムは、ユーザのアプリケーション選好を判断することができる。たとえば、XRシステムは、ユーザが異なるアプリケーションと対話するのに費やす時間量、ユーザが通常選択するアプリケーションのタイプ、異なるタイプのアプリケーションに関連付けられたユーザのスキルレベル、ユーザが特定のアプリケーションを通常選択する環境のタイプ、それらの任意の組合せ、および/または他の情報を追跡することができる。追加または代替として、XRシステムは、ユーザによって使われるXRデバイス(たとえば、入力デバイス、コントローラ、HMDなど)のタイプおよび/または数を判断することができる。さらに、XRシステムは、様々なアプリケーション用に、どのデバイスをユーザが好む(たとえば、履歴上使ったことがある)かを判断することができる。いくつかの例では、XRシステムは、ユーザの年齢、性別、ロケーション、サイズ(たとえば、身長および/もしくは体重)、それらの任意の組合せ、ならびに/または他の情報など、ユーザについての人口統計学的情報を判断することができる。いくつかの例では、XRシステムは、この人口統計学的情報を、1つまたは複数の生体センサ、コンピュータビジョンシステム、および/または他の技法を使って判断することができる。追加または代替として、XRシステムは、ユーザから与えられた入力に基づいて、人口統計学的情報を判断することができる。いくつかのケースでは、XRシステムは、ユーザが特定のアプリケーションと対話するのを妨げる場合がある制約を判断することができる。説明のための例において、XRシステムは、ユーザが可動性を制限していると判断し、またはユーザのアプリケーション使用がペアレンタルコントロールによって制限されていると判断することができる。いくつかの例では、XRシステムは、走る、飛び跳ねる、しゃがむ、および/または他の物理的アクションを伴うアプリケーションをユーザが楽しむか、または適切に対話することを可能にする特定の運動能力をユーザが有すると判断することができる。さらに、いくつかの例では、XRシステムは、ユーザの現在の精神および/または感情状態を(たとえば、生体センサ、コンピュータビジョン、および/または他の技法を使って)判断することができる。たとえば、XRシステムは、ユーザが疲れているか、興奮しているか、くつろいでいるか、動揺しているか、などを検出することができる。いくつかの例では、XRシステムは、特定のアプリケーションを以前使ったときの、ユーザの精神および/または感情状態を示す履歴データを記録することができる。いくつかのケースでは、XRシステムは、XRベースのアプリケーションに関連するユーザの特性を記述し、かつ/または表すユーザプロファイルを生成することができる。
【0034】
ユーザに推奨するべきアプリケーションを識別するために、XRシステムは、ユーザが使うことがわかっている、および/またはXRシステムが稼動することが可能であるアプリケーションについての情報を判断し、まとめることができる。たとえば、XRシステムは、いくつかのアプリケーションを強化し、または容易にする、特定の温度、照明、周囲雑音、部屋サイズ、間取りなどのような、アプリケーションのための環境要件を判断することができる。いくつかの例では、XRシステムは、1人または複数のユーザがいくつかのアプリケーション用に履歴上好んでいる環境のタイプおよび/または環境特性を判断することができる。さらに、XRシステムは、いくつかのアプリケーションを履歴上楽しみ、かつ/または使ったことがあるユーザの特性を判断することができる。たとえば、XRシステムは、複数のユーザによって与えられたアプリケーションのレーティングを記録することができる。別の例では、XRシステムは、アプリケーション用に必要とされる機器(特定のXR入力デバイス、ネットワーク接続のタイプなどのような)を判断することができる。いくつかのケースでは、XRシステムは、アプリケーションのそのような特性を記述し、かつ/または表すアプリケーションプロファイルを生成することができる。
【0035】
XRシステムは、ユーザ向けのアプリケーション推奨を生成するために、環境プロファイル、ユーザプロファイル、および/または1つもしくは複数のアプリケーションプロファイルを使用することができる。たとえば、XRシステムは、ユーザプロファイルおよび/または環境プロファイルの1つまたは複数の特性と一致する特性を含むアプリケーションプロファイルをもつアプリケーションを推奨することができる。このようにして、XRシステムは、ユーザの個人的アプリケーション選好、ユーザの個人的特性、および/またはユーザの現在の環境に適したアプリケーションを推奨することができる。いくつかのケースでは、XRシステムは、アプリケーションのアプリケーションプロファイルとユーザプロファイルおよび/または環境プロファイルとの間の類似および/または適合性のレベルを量子化する一致スコアを生成することによって、ユーザにアプリケーションを推奨するかどうかを判断することができる。XRシステムは、一致スコアを生成するとき、プロファイル内の特性に様々な重みを割り当てることができる。
【0036】
いくつかのケースでは、XRシステムは、推奨されるアプリケーションのリストをユーザに提供することができる。XRシステムは、閾スコアを上回る、すなわち超える一致スコアを有すると判断された各アプリケーションを推奨することができ、かつ/またはXRシステムは、所定の数の最も高い一致のアプリケーションを提供することができる。さらに、XRシステムは、ユーザがすでに所有しているか、もしくはダウンロードしてあるアプリケーションを推奨し、かつ/または新たなアプリケーションを推奨することができる。説明のための例において、XRシステムは、ユーザが現在、比較的狭い部屋にいると判断し、したがって、大幅な動きを要さないアプリケーションを推奨することができる。別の説明のための例では、XRシステムは、ユーザが現在、比較的騒がしい環境にいることを検出することに基づいて、発話もオーディオコンテンツ(たとえば、他のユーザとの会話)も伴わないアプリケーションを推奨することができる。
【0037】
さらに、いくつかのケースでは、XRシステムは、アプリケーションとのユーザ対話を強化し、または容易にする、ユーザの環境に対する1つまたは複数の修正を推奨することができる。たとえば、ユーザがアプリケーションを使うことを選択することを検出することに応答して、XRシステムは、ユーザがアプリケーションを適切に、または最も効果的に使用するために、1つまたは複数の環境特徴(照明、家具の配置、家の中でのユーザの現在の部屋、などのような)が変更されるべきであると判断することができる。説明のための例において、XRシステムは、大きい空き空間を要するアプリケーションを使うことをユーザが選択したと判断することに基づいて、ユーザが家具の一部を異なる部屋に移動することを推奨することができる。その上、XRシステムは、選択されたアプリケーションの設定に対する1つまたは複数の修正を推奨することができる。たとえば、XRシステムは、高レベルの周囲光を検出することに基づいて、XRデバイスのディスプレイの明るさを増すことを推奨することができる。
【0038】
コンテキストアウェアXRシステムに関するさらなる詳細が、ここで様々な図面に関して与えられる。図1は、本開示のいくつかの態様による拡張現実システム100の例を示すブロック図である。拡張現実システム100は、XRアプリケーションを稼動(または実行)し、XR動作を実装することができる。いくつかの例では、拡張現実システム100は、XR体験の一部として、追跡および位置特定、物質界(たとえば、シーン)のマッピング、ならびにディスプレイ(たとえば、スクリーン、可視プレーン/領域、および/または他のディスプレイ)上での仮想コンテンツの位置決めおよびレンダリングを実施することができる。たとえば、拡張現実システム100は、物質界でのシーンのマップ(たとえば、3Dマップ)を生成し、シーンに相対した(たとえば、シーンの3Dマップに相対した)、拡張現実システム100のポーズ(たとえば、ロケーションおよび位置)を追跡し、シーンのマップ上の特定のロケーションに仮想コンテンツを位置決めおよび/または固定し、ディスプレイ上で仮想コンテンツをレンダリングすることができる。拡張現実システム100は、仮想コンテンツが位置決めおよび/または固定されているシーンのマップ上の特定のロケーションに対応するシーン中のロケーションに仮想コンテンツがあるように見えるように、ディスプレイ上で仮想コンテンツをレンダリングすることができる。いくつかの例では、ディスプレイは、グラス、スクリーン、レンズ、および/またはユーザが実世界環境を見ることができるようにするとともにXRコンテンツがその上に表示されるようにもする他の表示機構を含むことができる。
【0039】
図1に示すように、拡張現実システム100は、1つまたは複数の画像センサ102、加速度計104、ジャイロスコープ106、ストレージ108、計算コンポーネント110、XRエンジン120、推奨エンジン122、画像処理エンジン124、およびレンダリングエンジン126を含むことができる。図1に示すコンポーネント102~126は、例示および説明目的で与えられる非限定的例であり、他の例は、図1に示すものよりも多くの、より少ない、または異なるコンポーネントを含むことができることに留意されたい。たとえば、いくつかのケースでは、拡張現実システム100は、図1には示さない1つもしくは複数の他のセンサ(たとえば、1つもしくは複数の慣性測定ユニット(IMU)、レーダ、光検出および測距(LIDAR)センサ、オーディオセンサなど)、1つもしくは複数のディスプレイデバイス、1つもしくは複数の他の処理エンジン、1つもしくは複数の他のハードウェアコンポーネント、ならびに/または1つもしくは複数の他のソフトウェアおよび/もしくはハードウェアコンポーネントを含むことができる。拡張現実システム100によって実装することができる例示的アーキテクチャおよび例示的ハードウェアコンポーネントについては、図7に関して以下でさらに説明する。
【0040】
簡単および説明目的のために、1つまたは複数の画像センサ102は、ここでは画像センサ102と(たとえば、単数形で)呼ばれる。ただし、拡張現実システム100は、単一の画像センサまたは複数の画像センサを含むことができることが、当業者には認識されよう。また、単数または複数形での、拡張現実システム100のコンポーネント(たとえば、102~126)のいずれへの言及も、拡張現実システム100によって実装されるそのようなコンポーネントの数を、1つまたは複数に制限するものと解釈されるべきでない。たとえば、単数形での加速度計104への言及は、拡張現実システム100によって実装される加速度計の数を1に制限するものと解釈されるべきでない。図1に示すコンポーネント102~126のいずれに対しても、拡張現実システム100は、そのようなコンポーネントのうちのただ1つまたはそのようなコンポーネントのうちの複数を含むことができることが当業者には認識されよう。
【0041】
拡張現実システム100は、入力デバイスを含むか、または入力デバイスと(ワイヤードまたはワイヤレスに)通信することができる。入力デバイスは、タッチスクリーン、ペンもしくは他のポインタデバイス、キーボード、マウス、ボタンもしくはキー、ボイスコマンドを受信するためのマイクロフォン、ジェスチャーコマンドを受信するためのジェスチャー入力デバイス、それらの任意の組合せ、および/または他の入力デバイスなど、どの適切な入力デバイスも含むことができる。いくつかのケースでは、画像センサ102は、ジェスチャーコマンドを解釈するために処理することができる画像を取り込むことができる。
【0042】
拡張現実システム100は、単一のコンピューティングデバイスまたは複数のコンピューティングデバイスの一部であるか、またはそれらによって実装することができる。いくつかの例では、拡張現実システム100は、拡張現実ヘッドマウントディスプレイ(HMD)デバイス、拡張現実グラス(たとえば、拡張現実もしくはARグラス)、カメラシステム(たとえば、デジタルカメラ、IPカメラ、ビデオカメラ、セキュリティカメラなど)、電話システム(たとえば、スマートフォン、セルラー電話、会議システムなど)、デスクトップコンピュータ、ラップトップもしくはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、スマートテレビジョン、ディスプレイデバイス、ゲーム機、ビデオストリーミングデバイス、モノのインターネット(IoT)デバイス、および/または任意の他の適切な電子デバイスなど、1つの電子デバイス(または複数のデバイス)の一部であることができる。
【0043】
いくつかの実装形態では、1つまたは複数の画像センサ102、加速度計104、ジャイロスコープ106、ストレージ108、計算コンポーネント110、XRエンジン120、推奨エンジン122、画像処理エンジン124、およびレンダリングエンジン126は、同じコンピューティングデバイスの一部であることができる。たとえば、いくつかのケースでは、1つまたは複数の画像センサ102、加速度計104、ジャイロスコープ106、ストレージ108、計算コンポーネント110、XRエンジン120、推奨エンジン122、画像処理エンジン124、およびレンダリングエンジン126は、HMD、拡張現実グラス、スマートフォン、ラップトップ、タブレットコンピュータ、ゲーム用システム、および/または任意の他のコンピューティングデバイスに統合することができる。ただし、いくつかの実装形態では、1つまたは複数の画像センサ102、加速度計104、ジャイロスコープ106、ストレージ108、計算コンポーネント110、XRエンジン120、推奨エンジン122、画像処理エンジン124、およびレンダリングエンジン126は、2つ以上の別個のコンピューティングデバイスの一部であることができる。たとえば、いくつかのケースでは、コンポーネント102~126のいくつかは、1つのコンピューティングデバイスの一部であるか、またはそれらによって実装することができ、残りのコンポーネントは、1つまたは複数の他のコンピューティングデバイスの一部であるか、またはそれらによって実装することができる。
【0044】
ストレージ108は、データを記憶するための、どの記憶デバイスであることもできる。その上、ストレージ108は、拡張現実システム100のコンポーネントのいずれからのデータも記憶することができる。たとえば、ストレージ108は、画像センサ102からのデータ(たとえば、画像もしくはビデオデータ)、加速度計104からのデータ(たとえば、測定)、ジャイロスコープ106からのデータ(たとえば、測定)、計算コンポーネント110からのデータ(たとえば、処理パラメータ、選好、仮想コンテンツ、レンダリングコンテンツ、シーンマップ、追跡および位置特定データ、オブジェクト検出データ、プライバシーデータ、XRアプリケーションデータ、顔認識データ、オクルージョンデータなど)、XRエンジン120からのデータ、推奨エンジン122からのデータ、画像処理エンジン124からのデータ、ならびに/またはレンダリングエンジン126からのデータ(たとえば、出力フレーム)を記憶することができる。いくつかの例では、ストレージ108は、計算コンポーネント110による処理のためのフレームを記憶するためのバッファを含むことができる。
【0045】
1つまたは複数の計算コンポーネント110は、中央処理ユニット(CPU)112、グラフィックス処理ユニット(GPU)114、デジタル信号プロセッサ(DSP)116、および/または画像信号プロセッサ(ISP)118を含むことができる。計算コンポーネント110は、画像強調、コンピュータビジョン、グラフィックスレンダリング、拡張現実(たとえば、追跡、位置特定、ポーズ推定、マッピング、コンテンツ固定、コンテンツレンダリングなど)、画像/ビデオ処理、センサ処理、認識(たとえば、テキスト認識、顔認識、オブジェクト認識、特徴認識、追跡またはパターン認識、シーン認識、オクルージョン検出など)、機械学習、フィルタリング、および本明細書において記載する様々な動作のいずれかなど、様々な動作を実施することができる。この例では、計算コンポーネント110は、XRエンジン120、推奨エンジン122、画像処理エンジン124、およびレンダリングエンジン126を実装する。他の例では、計算コンポーネント110は、1つまたは複数の他の処理エンジンを実装することもできる。
【0046】
画像センサ102は、どの画像および/またはビデオセンサまたは取込みデバイスも含むことができる。いくつかの例では、画像センサ102は、デュアルカメラアセンブリなどの複数カメラアセンブリの一部であることができる。画像センサ102は、画像および/またはビデオコンテンツ(たとえば、未加工画像および/またはビデオデータ)を取り込むことができ、これらは次いで、本明細書において記載するように、計算コンポーネント110、XRエンジン120、推奨エンジン122、画像処理エンジン124、および/またはレンダリングエンジン126によって処理することができる。
【0047】
いくつかの例では、画像センサ102は、画像データを取り込むことができ、画像データに基づいてフレームを生成することができ、かつ/または画像データもしくはフレームを処理のためにXRエンジン120、推奨エンジン122、画像処理エンジン124、および/もしくはレンダリングエンジン126に提供することができる。フレームは、ビデオシーケンスのビデオフレームまたは静止画像を含むことができる。フレームは、シーンを表すピクセルアレイを含むことができる。たとえば、フレームは、ピクセルごとに赤、緑、および青色成分を有する赤緑青(RGB)フレーム、ピクセルごとにルーマ成分ならびに2つのクロマ(色)成分(赤差および青差)を有するルーマ、赤差、青差(YCbCr)フレーム、または任意の他の適切なタイプのカラーもしくはモノクロピクチャであることができる。
【0048】
いくつかのケースでは、画像センサ102(および/または拡張現実システム100の他の画像センサもしくはカメラ)は、深度情報も取り込むように構成することができる。たとえば、いくつかの実装形態では、画像センサ102(および/または他のカメラ)は、RGB深度(RGB-D)カメラを含むことができる。いくつかのケースでは、拡張現実システム100は、画像センサ102(および/または他のカメラ)とは別個であり、深度情報を取り込むことができる1つまたは複数の深度センサ(図示せず)を含むことができる。たとえば、そのような深度センサは、画像センサ102からは独立して、深度情報を取得することができる。いくつかの例では、深度センサは、画像センサ102と同じ一般的ロケーションに物理的に設置することができるが、画像センサ102とは異なる周波数またはフレームレートで動作してもよい。いくつかの例では、深度センサは、1つまたは複数の狭帯域の光を含む場合がある構造化またはテクスチャード光パターンを、シーン中の1つまたは複数のオブジェクトに投影することができる光源の形をとることができる。深度情報は次いで、オブジェクトの表面形状によって引き起こされた、投影されたパターンの幾何学的歪みを活用することによって取得することができる。一例では、深度情報は、赤外線構造化光プロジェクタと、カメラ(たとえば、RGBカメラ)に登録された赤外線カメラの組合せなどのステレオセンサから取得されてもよい。
【0049】
上述したように、いくつかのケースでは、拡張現実システム100は、画像センサ102以外の1つまたは複数のセンサ(図示せず)も含むことができる。たとえば、1つまたは複数のセンサは、1つもしくは複数の加速度計(たとえば、加速度計104)、1つもしくは複数のジャイロスコープ(たとえば、ジャイロスコープ106)、および/または他のセンサを含むことができる。1つまたは複数のセンサは、速度、配向、および/または他の位置関連情報を計算コンポーネント110に提供することができる。たとえば、加速度計104は、拡張現実システム100による加速度を検出することができ、検出された加速度に基づいて加速度測定を生成することができる。いくつかのケースでは、加速度計104は、拡張現実システム100の位置またはポーズを判断するために使うことができる1つまたは複数の並進ベクトル(たとえば、上/下、左/右、前/後)を提供することができる。ジャイロスコープ106は、拡張現実システム100の配向および角速度を検出し、測定することができる。たとえば、ジャイロスコープ106は、拡張現実システム100のピッチ、ロール、およびヨーを測定するのに使うことができる。いくつかのケースでは、ジャイロスコープ106は、1つまたは複数の回転ベクトル(たとえば、ピッチ、ヨー、ロール)を提供することができる。いくつかの例では、画像センサ102および/またはXRエンジン120は、加速度計104(たとえば、1つもしくは複数の並進ベクトル)および/またはジャイロスコープ106(たとえば、1つもしくは複数の回転ベクトル)によって取得された測定を、拡張現実システム100のポーズを算出するのに使うことができる。前記のように、他の例では、拡張現実システム100は、慣性測定ユニット(IMU)、磁力計、マシンビジョンセンサ、スマートシーンセンサ、音声認識センサ、インパクトセンサ、ショックセンサ、位置センサ、傾斜センサなどのような、他のセンサも含むことができる。
【0050】
いくつかのケースでは、1つまたは複数のセンサは、少なくとも1つのIMUを含むことができる。IMUとは、1つまたは複数の加速度計、1つもしくは複数のジャイロスコープ、および/または1つもしくは複数の磁力計の組合せを使って、拡張現実システム100の特定の力、角速度、および/または配向を測定する電子デバイスである。いくつかの例では、1つまたは複数のセンサは、画像センサ102(および/もしくは拡張現実システム100の他のカメラ)によって取り込まれた画像の取込みに関連付けられた、測定された情報ならびに/または拡張現実システム100の1つもしくは複数の深度センサを使って取得された深度情報を出力することができる。
【0051】
1つまたは複数のセンサ(たとえば、加速度計104、ジャイロスコープ106、1つもしくは複数のIMU、および/または他のセンサ)の出力は、拡張現実エンジン120によって、拡張現実システム100のポーズ(頭部ポーズとも呼ばれる)および/または画像センサ102(もしくは拡張現実システム100の他のカメラ)のポーズを判断するのに使うことができる。いくつかのケースでは、拡張現実システム100のポーズおよび画像センサ102(または他のカメラ)のポーズは同じであることができる。画像センサ102のポーズは、基準フレームに相対した、画像センサ102の位置および配向を指す。いくつかの実装形態では、画像センサ102(または他のカメラ)のポーズは6自由度(6DOF)で判断することができ、この自由度は、3つの並進成分(たとえば、画像プレーンなどの基準フレームに相対したX(水平)、Y(垂直)、およびZ(深度)座標で与えることができる)ならびに3つの角度成分(たとえば、同じ基準フレームに相対したロール、ピッチ、およびヨー)を指す。
【0052】
いくつかのケースでは、デバイス追跡器(図示せず)は、1つまたは複数のセンサからの測定および画像センサ102からの画像データを、拡張現実システム100のポーズ(たとえば、6DOFポーズ)を追跡するのに使うことができる。たとえば、デバイス追跡器は、取り込まれた画像データからの視覚データを慣性測定データと(たとえば、視覚追跡ソリューションを使って)融合して、物質界(たとえば、シーン)および物質界のマップに相対した、拡張現実システム100の位置およびモーションを判断することができる。以下で説明するように、いくつかの例では、拡張現実システム100のポーズを追跡するとき、デバイス追跡器は、シーン(たとえば、実世界)の3次元(3D)マップを生成し、かつ/またはシーンの3Dマップ向けの更新を生成することができる。3Dマップ更新は、たとえば、限定なしで、シーンおよび/もしくはシーンの3Dマップに関連付けられた、新たな、もしくは更新された特徴ならびに/または特徴もしくはランドマーク点、シーンおよび/もしくはシーンの3Dマップ内での拡張現実システム100の位置を識別もしくは更新する位置特定更新、などを含むことができる。3Dマップは、実世界/物質界におけるシーンのデジタル表現を提供することができる。いくつかの例では、3Dマップは、ロケーションベースのオブジェクトおよび/またはコンテンツを、実世界座標および/またはオブジェクトに固定することができる。拡張現実システム100は、マップされたシーン(たとえば、3Dマップによって表される、かつ/またはそれに関連付けられた物質界の中のシーン)を、物質界と仮想世界をマージし、かつ/または仮想コンテンツもしくはオブジェクトを物理的環境とマージするのに使うことができる。
【0053】
いくつかの態様では、全体としての画像センサ102および/または拡張現実システム100のポーズは、画像センサ102(および/または拡張現実システム100の他のカメラ)によって取り込まれた画像に基づいて、視覚追跡ソリューションを使って、計算コンポーネント110によって判断および/または追跡することができる。たとえば、いくつかの例では、計算コンポーネント110は、コンピュータビジョンベースの追跡、モデルベースの追跡、ならびに/または同時位置推定および地図構築(SLAM)技法を使って追跡を実施することができる。たとえば、計算コンポーネント110は、SLAMを実施することができ、またはSLAMエンジン(図示せず)と(ワイヤードもしくはワイヤレス)通信することができる。SLAMは、環境のマップ(たとえば、拡張現実システム100によってモデル化される環境のマップ)が作成され、その間、そのマップに相対した、カメラ(たとえば、画像センサ102)および/または拡張現実システム100のポーズを一斉に追跡する技法のクラスを指す。マップは、SLAMマップと呼ぶことができ、3Dであることができる。SLAM技法は、画像センサ102(および/または拡張現実システム100の他のカメラ)によって取り込まれたカラーまたはグレースケール画像データを使って実施することができ、画像センサ102および/または拡張現実システム100の6DOFポーズ測定の推定値を生成するのに使うことができる。6DOF追跡を実施するように構成される、そのようなSLAM技法は、6DOF SLAMと呼ぶことができる。いくつかのケースでは、1つまたは複数のセンサ(たとえば、加速度計104、ジャイロスコープ106、1つもしくは複数のIMU、および/または他のセンサ)の出力は、推定されたポーズを推定し、訂正し、かつ/またはそうでなければ調節するのに使うことができる。
【0054】
いくつかのケースでは、6DOF SLAM(たとえば、6DOF追跡)は、画像センサ102(および/または他のカメラ)からのいくつかの入力画像から観察された特徴をSLAMマップに関連付けることができる。たとえば、6DOF SLAMは、入力画像からの特徴点関連付けを、入力画像向けの画像センサ102および/または拡張現実システム100のポーズ(位置および配向)を判断するのに使うことができる。6DOFマッピングは、SLAMマップを更新するために実施することもできる。いくつかのケースでは、6DOF SLAMを使って維持されるSLAMマップは、2つ以上の画像から三角測量された3D特徴点を含むことができる。たとえば、観察されたシーンを表すために、入力画像またはビデオストリームから、キーフレームを選択することができる。すべてのキーフレームについて、画像に関連付けられたそれぞれの6DOFカメラポーズを判断することができる。画像センサ102および/または拡張現実システム100のポーズは、3D SLAMマップからの特徴を画像またはビデオフレームに投影し、検証された2D-3D対応からのカメラポーズを更新することによって判断することができる。
【0055】
1つの説明のための例において、計算コンポーネント110は、すべての入力画像から、または各キーフレームから、特徴点を抽出することができる。本明細書で使用する特徴点(登録点とも呼ばれる)とは、特に、手の一部、テーブルのへりなど、画像の特有または識別可能な一部である。取り込まれた画像から抽出された特徴は、3次元空間(たとえば、X、Y、およびZ軸上の座標)に沿った特有の特徴点を表すことができ、すべての特徴点が、関連付けられた特徴ロケーションを有することができる。キーフレーム中の特徴点は、あらかじめ取り込まれた入力画像もしくはキーフレームの特徴点と一致する(同じであるか、もしくは対応する)か、または一致しないかのいずれかである。特徴点を検出するのに、特徴検出を使うことができる。特徴検出は、特定のピクセルに特徴が存在するかどうかを判断するために、画像の1つまたは複数のピクセルを調べるのに使われる画像処理動作を含むことができる。特徴検出は、取り込まれた画像全体または画像のいくつかの部分を処理するのに使うことができる。各画像またはキーフレームに対して、特徴が検出されると、特徴付近の局所的画像パッチを抽出することができる。特徴は、スケール不変特徴変換(SIFT)(特徴を位置特定し、それらの記述を生成する)、Speed Up Robust Features(SURF)、勾配位置配向ヒストグラム(GLOH)、正規化相互相関(NCC)、または他の適切な技法など、どの適切な技法を使って抽出されてもよい。
【0056】
いくつかのケースでは、拡張現実システム100は、ユーザを仮想環境中の仮想コンテンツと対話させ、かつ/または仮想コンテンツを制御させるために、ユーザの手および/または指を追跡することもできる。たとえば、拡張現実システム100は、ユーザの手および/または指先のポーズおよび/または動きを追跡して、仮想環境とのユーザ対話を識別または翻訳することができる。ユーザ対話は、たとえば、限定なしで、仮想コンテンツの項目を動かすこと、仮想コンテンツの項目および/または仮想プライベート空間のロケーションをサイズ変更すること、仮想ユーザインターフェース(たとえば、モバイルフォンの仮想表現、仮想キーボード、および/または他の仮想インターフェース)における入力インターフェース要素を選択すること、仮想ユーザインターフェースを通して入力を与えること、などを含むことができる。
【0057】
XRエンジン120、推奨エンジン122、画像処理エンジン124、およびレンダリングエンジン126(ならびに任意の画像処理エンジン)向けの動作は、計算コンポーネント110のいずれによって実装することもできる。1つの説明のための例において、レンダリングエンジン126の動作はGPU114によって実装することができ、XRエンジン120、推奨エンジン122、および画像処理エンジン124の動作は、CPU112、DSP116、および/またはISP118によって実装することができる。いくつかのケースでは、計算コンポーネント110は、本明細書において記載する様々な動作のいずれをも実施するための、他の電子回路もしくはハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらのどの組合せも含むことができる。
【0058】
いくつかの例では、XRエンジン120は、画像センサ102、加速度計104、ジャイロスコープ106、および/または1つもしくは複数のIMU、レーダなどのような、拡張現実システム100上の1つもしくは複数のセンサからのデータに基づいてXR体験を生成するためにXR動作を実施することができる。いくつかの例では、XRエンジン120は、追跡、位置特定、ポーズ推定、マッピング、コンテンツ固定動作および/またはどの他のXR動作/機能性も実施することができる。XR体験は、仮想セッション中にXRコンテンツ(たとえば、仮想現実コンテンツ、拡張現実コンテンツ、複合現実コンテンツなど)をユーザに対して提示するための、拡張現実システム100の使用を含むことができる。いくつかの例では、XRコンテンツおよび体験は、特に、たとえば、XRゲーム体験、XR教室体験、XR買物体験、XR娯楽体験、XR活動(たとえば、動作、トラブルシューティング活動など)など、特定のXR体験を提供するXRアプリケーション(たとえば、XRエンジン120によって実行または実装される)を通して拡張現実システム100によって提供することができる。XR体験中、ユーザは、拡張現実システム100を使って仮想コンテンツを閲覧および/または仮想コンテンツと対話することができる。いくつかのケースでは、ユーザは、仮想コンテンツを閲覧および/または仮想コンテンツと対話することができるとともに、ユーザの周りの物理的環境を閲覧および/または物理的環境と対話することも可能であり、ユーザが、物理的環境と、物理的環境と混合または統合された仮想コンテンツとの間の没入型体験をもつことを可能にする。
【0059】
推奨エンジン122は、拡張現実システム100に関連して適応的推奨を提供するための様々な動作を実施することができる。本明細書で使用する、拡張現実システムに関連付けられた適応的推奨は、ユーザがXRベースのアプリケーションに関わっている間、ユーザとXRベースのアプリケーションとの間の対話および/またはユーザと実世界環境との間の対話を向上および/または最適化するように構成されるどの推奨も含むことができる。いくつかのケースでは、適応的推奨は、現在の実世界環境内のユーザによる使用に適していると推奨エンジン122が判断する、1つまたは複数のXRベースのアプリケーションの推奨を含むことができる。たとえば、推奨エンジン122は、ユーザのアプリケーション選好、ユーザの現在の感情および/もしくは精神状態、ならびに/または実世界環境の特徴などのコンテキスト要因に適合すると判断される1つまたは複数のXRベースのアプリケーションの指示を提供することができる。いくつかの例では、適応的推奨は、XRベースのアプリケーションおよび/または実世界環境の1つまたは複数の側面を修正するための推奨を含むことができる。たとえば、ユーザが、拡張現実システム100によって起動されるべきアプリケーションを選択した後、推奨エンジン122は、ユーザのXR体験を向上するように構成される、アプリケーションの設定および/または環境の特徴に対する1つまたは複数の調節を判断することができる。
【0060】
図2は、推奨システム200の例を示すブロック図である。いくつかのケースでは、推奨システム200は、図1の拡張現実システム100を含み、かつ/またはその一部であることができる。たとえば、推奨システム200は、推奨エンジン122の全部または一部分に対応することができる。図2に示すように、推奨システム200は、環境特徴エンジン202、ユーザ特徴エンジン204、アプリケーション特徴エンジン206、推奨エンジン208、および修正エンジン209を含む1つまたは複数のエンジンを含むことができる。推奨システム200のエンジンは、推奨222を判断するように構成することができる。推奨222は、拡張現実システム100のユーザのXR体験を向上するように構成される任意の数またはタイプの適応的推奨を含むことができる。
【0061】
いくつかのケースでは、推奨システム200は、実世界環境に関連付けられた1つまたは複数の環境特徴(たとえば、環境特徴210)に少なくとも部分的に基づいて、推奨222を判断することができる。いくつかのケースでは、環境特徴は、ユーザとXRベースのアプリケーションとの間の対話に影響し、かつ/または変える可能性がある実世界環境のどの要素または側面も含むことができる。たとえば、物理オブジェクト(たとえば、壁、家具、一連の階段など)に対応する環境特徴が、ユーザが、動きを伴うXRベースのアプリケーションと対話している間、十分に可動であるのを妨げる可能性がある。いくつかの例では、環境特徴210は、実世界環境内での物理オブジェクトのレイアウトを含むことができる。たとえば、環境特徴210は、推奨システム200が置かれている部屋および/または建物の平面図を含むことができる。平面図は、部屋、壁、ドア、窓、家具などのような特徴のロケーション、サイズ、および/またはタイプを示す情報を含むことができる。いくつかの例では、環境特徴210は、実世界環境の周囲および/または地理的特性を含むことができる。たとえば、環境特徴210は、他の特徴の中でも、環境の温度、環境内のにおい、環境内の照明のレベル、環境のタイプ(たとえば、環境が公共空間であるか、建物の中であるか、など)、および環境の天候または気候を含むことができる。さらなる例では、環境特徴210は、実世界環境内での背景活動を含むことができる。たとえば、環境特徴210は、他の背景活動の中でも、環境内で話し、座り、移動などをする人々、環境内のペット、環境内の音(たとえば、テレビジョン、交通などからの音)を含むことができる。さらなる例では、環境特徴210は、実世界環境内のネットワーク(たとえば、拡張現実システム100が接続されるネットワーク)に接続されたコンピューティングデバイスを含むことができる。たとえば、環境特徴210は、ラップトップ、デスクトップ、タブレット、モバイルフォン、インターネット対応テレビジョン、ゲーム用システム、モノのインターネット(IoT)デバイス(たとえば、サーモスタットなどのインターネット対応器具)、および/またはネットワークに接続されている、どの追加タイプのデバイスも含むことができる。
【0062】
環境特徴エンジン202は、様々な技法および/またはデバイスを使って環境特徴210を判断することができる。いくつかの例では、環境特徴エンジン202は、環境内の物理的レイアウトおよび/または物理オブジェクトを識別するために、実世界環境を走査することができる。たとえば、環境特徴エンジン202は、1つまたは複数のカメラまたは画像センサ(たとえば、拡張現実システム100の画像センサ102)によって取り込まれた画像またはビデオデータを分析することによって、環境を走査することができる。環境特徴エンジン202は、1つまたは複数の画像処理技法および/またはコンピュータビジョン技法を実装することによって、画像またはビデオデータ内の1つまたは複数の環境特徴を検出することができる。画像処理技法は、オブジェクト検出アルゴリズム、オブジェクト認識アルゴリズム、顔認識アルゴリズム、それらの任意の組合せ、および/または他の画像処理技法を含むことができる。いくつかの例では、環境特徴エンジン202は、あらかじめ生成または記憶された環境データに基づいて、1つまたは複数の環境特徴を判断することができる。たとえば、環境特徴エンジン202は、環境に関連付けられた青写真または同様の情報を利用することによって、環境の物理的レイアウトについての情報を判断することができる。別の例では、環境特徴エンジン202は、環境の以前の走査を利用することができる。以前の走査は、環境特徴エンジン202によって、または異なるシステムもしくはデバイスによって実施される可能性がある。いくつかの例では、環境特徴エンジン202は、LIDARセンサ、オーディオセンサ、温度計などのセンサ、それらの任意の組合せ、および/または他のセンサもしくはデバイスを使って、環境の周囲および/または物理的条件を判断することができる。さらなる例では、環境特徴エンジン202は、ネットワーク接続および/または測位システム(たとえば、全地球測位システム(GPS))を使って、拡張現実システム100が置かれている実世界環境のロケーションを判断することができる。環境特徴エンジン202は、任意の適切な技法および/またはデバイスを使って、どの追加または代替のタイプの環境特徴も検出することができる。
【0063】
いくつかのケースでは、環境特徴エンジン202は、環境特徴210に基づいて、環境内で起こる特定のシナリオおよび/またはイベントを判断することができる。そのような判断は、「シーン理解」と呼ばれる場合がある。たとえば、環境特徴エンジン202は、複数の環境要因を分析することによって、環境内の特定のシナリオを推論および/または演繹することができる。説明のための例において、環境特徴エンジン202は、いくつかの要因に基づいて、推奨システム200が置かれている部屋に隣接して位置する台所で、人が料理していると判断することができ、要因は、(1)隣接する台所を示す環境のレイアウト、(2)使われている調理器具(たとえば、平鍋、ミキサー、ブレンダー、オーブンタイマーなど)に対応する、隣接する台所での音、(3)隣接する台所での人の検出、および(4)隣接する台所の温度の上昇、である。
【0064】
図2に示すように、環境特徴エンジン202は、環境特徴210に少なくとも部分的に基づいて、環境プロファイル216を判断することができる。環境プロファイル216は、実世界環境の量的および/または質的要約、評価、および/または記述を表すことができる。環境プロファイル216は、個々の環境要因(たとえば、環境の温度、環境に関連付けられた部屋のタイプ、など)、および/または環境内で起こる特定のイベントを含むことができる。いくつかのケースでは、環境特徴エンジン202は、拡張現実システム100がオンにされたか、またはそうでなければアクティブ化されたことに基づいて、環境プロファイル216を生成および/または更新することができる。たとえば、環境特徴エンジン202は、拡張現実システム100がオンにされるたびに、新たな環境プロファイル216を生成することができる。他の例では、環境特徴エンジン202は、既存の環境プロファイル216を更新することができる。たとえば、環境特徴エンジン202は、特定の実世界環境に関連付けられた、物理的レイアウト、地理的ロケーション、インターネット対応デバイスなどについての情報を保存することができる。特定の実世界環境において拡張現実システム100がオンにされたことを検出することに応答して、環境特徴エンジン202は、1つまたは複数の新たな環境特徴を識別し、新たな環境特徴を環境プロファイルに組み込むことができる。説明のための例において、環境特徴エンジン202は、1つの家具が部屋に追加されたか、もしくは部屋から取り除かれたと判断し、または人が部屋から出たか、もしくは部屋に入ったと判断することができる。さらに、環境特徴エンジン202は、複数の環境に関連した環境プロファイルを記憶することができる。説明のための例において、環境特徴エンジン202は、ユーザのリビングルームに関連した、あるプロファイル、ユーザのオフィスに関連した別のプロファイル、および拡張現実システム100が以前使われていた建物に関連したさらなるプロファイルを記憶することができる。
【0065】
いくつかの例では、環境特徴エンジン202は、ユーザから与えられた入力に少なくとも部分的に基づいて、環境プロファイル216を生成することができる。たとえば、環境特徴エンジン202は、ユーザが様々な環境特徴をそれを介して入れることができるインターフェース(たとえば、グラフィカルユーザインターフェース)を提供することができる。説明のための例において、環境特徴エンジン202は、ユーザに、環境内の部屋のラベルを入力するよう促すことができる(たとえば、ユーザは、リビングルーム、台所、寝室などを識別することができる)。追加または代替として、環境特徴エンジン202は、ユーザに、環境を走査する(たとえば、拡張現実システム100が環境の画像を取り込む間、環境内を移動する)よう指示することができる。いくつかのケースでは、環境特徴エンジン202は、そのようなユーザ入力を初期環境プロファイルとして使い、続いて検出された環境特徴に基づいて、初期環境プロファイルを更新することができる。
【0066】
いくつかの例では、推奨システム200は、ユーザの1つまたは複数の特徴(たとえば、ユーザ特徴212)に少なくとも部分的に基づいて、推奨222を判断することができる。ユーザ特徴212は、ユーザがXRベースのアプリケーションとどのように対話する(または、対話することが可能である)かに関連付けられた、どのタイプまたは形の情報も含むことができる。たとえば、ユーザ特徴212は、現在の実世界環境内でアプリケーションを楽しむか、またはアプリケーションと適切に対話するための、ユーザの能力を示し、かつ/または予測する特徴を含むことができる。いくつかのケースでは、ユーザ特徴212は、ユーザに関連付けられた人口統計学的情報を含むことができる。人口統計学的情報は、他の情報の中でも、ユーザの年齢、性別、国籍、民族性を含むことができる。いくつかの例では、ユーザ特徴212は、ユーザのサイズ(たとえば、ユーザの身長および/または体重)を含むことができる。ユーザ特徴212は、ユーザの身体能力(たとえば、ユーザが、家具を動かし、家具を変え、歩き、走ることなどが可能であるか)も含むことができる。さらなる例では、ユーザ特徴212は、ユーザの空間許可を含むことができる。説明のための例において、ユーザ特徴212は、ユーザが、リビングルームおよびユーザ自身の寝室においてXRベースのアプリケーションを使うことを許可され、台所および他の寝室ではXRベースのアプリケーションを使うことを許可されないことを含むことができる。別の説明のための例において、ユーザ特徴212は、ユーザが、ある公共公園において、XRベースのアプリケーションを使うことを許可され、別の公共公園ではXRベースのアプリケーションを使うことを許可されないことを含むことができる。さらに、ユーザ特徴212は、ユーザに課されるアプリケーション制約を含むことができる。説明のための例において、ユーザ特徴212は、ユーザがペアレンタルコントロールにより使うことを許可されない特定のアプリケーションおよび/または特定のタイプのアプリケーション(たとえば、「十代」を上回るレーティングをもつアプリケーション)を含むことができる。
【0067】
いくつかの例では、ユーザ特徴212は、ユーザの履歴(たとえば、以前の)アプリケーション使用についての情報を含むことができる。たとえば、ユーザ特徴212は、ユーザが以前使ったことがあるアプリケーションのタイプ(たとえば、ゲーム用アプリケーション、エクササイズアプリケーション、テレビ会議アプリケーション、ナビゲーションアプリケーションなど)を含むことができる。一例では、ユーザ特徴212は、ユーザの好んだ(たとえば、最も頻繁に使った)タイプのアプリケーションを含むことができる。ユーザ特徴212は、ユーザが以前使ったことがある特定のアプリケーションを識別することもできる。いくつかのケースでは、ユーザ特徴212は、1つまたは複数のアプリケーションに関連付けられたユーザのスキルレベルを含むことができる。説明のための例において、ユーザがゲーム用アプリケーションをプレイする場合、ユーザ特徴212は、ユーザがプレイする難易度レベル、ユーザが行ったゲーム実績などを含むことができる。いくつかのケースでは、ユーザ特徴212は、特定のアプリケーション(または特定のタイプのアプリケーション)に関連付けられたユーザ固有コンテキスト情報を含むことができる。たとえば、コンテキスト情報は、ユーザが特定のアプリケーションを通常使う時刻および/または曜日を含むことができる。別の例では、コンテキスト情報は、特定のアプリケーション用にユーザによって優先的に使われるXRデバイスのタイプ(たとえば、入力デバイス)を含むことができる。別の例では、コンテキスト情報は、ユーザが特定のアプリケーションを通常使う家の中の部屋を含むことができる。さらに、コンテキスト情報は、特定のアプリケーションに関連付けられたユーザの挙動、精神状態、および/または感情状態を含むことができる。たとえば、ユーザ特徴212は、特定のアプリケーションに関連付けられたユーザの特有の気分および/または気持ちの状態(たとえば、疲れた、目が覚めている、ストレスを感じる、くつろいでいる、満足している、怒っている、など)を含むことができる。ユーザ特徴212は、ユーザの現在の挙動、精神状態、および/または感情状態も含むことができる。
【0068】
ユーザ特徴エンジン204は、様々な技法および/またはデバイスを使ってユーザ特徴212を判断することができる。いくつかの例では、ユーザ特徴エンジン204は、特定のアプリケーション(または特定のタイプのアプリケーション)を使うユーザに関連付けられた環境のエリア(たとえば、個々の部屋)を識別するために、実世界環境を走査することができる。たとえば、ユーザ特徴エンジン204は、1つまたは複数のカメラまたは画像センサ(たとえば、拡張現実システム100の画像センサ102)によって取り込まれた画像またはビデオデータを分析することによって、環境を走査することができる。ユーザ特徴エンジン204は、1つまたは複数の画像処理技法および/またはコンピュータビジョン技法を実装することによって、画像またはビデオデータ内の1つまたは複数のユーザ特性を検出することができる。いくつかの例では、ユーザ特徴エンジン204は、アプリケーションプラットフォーム(たとえば、アプリケーション分散プラットフォーム、クラウドベースのアプリケーションプラットフォーム、ゲーム用プラットフォームなど)上でユーザに関連付けられたアカウントにアクセスすることによって、ユーザ特徴212を判断することができる。たとえば、ユーザ特徴エンジン204は、アカウントから、ユーザのアプリケーション選好および/またはアプリケーション使用履歴についての情報を抽出することができる。いくつかの例では、ユーザ特徴エンジン204は、生体センサを使ってユーザ特徴212を判断することができる。たとえば、ユーザ特徴エンジン204は、ボイス検出センサおよび/またはコンピュータビジョンセンサを、他の情報の中でも、ユーザの性別、年齢、および身体能力などの情報を判断するのに使用することができる。別の例では、ユーザ特徴エンジン204は、精神的センサ(たとえば、ガルバニック皮膚反応(GSR)センサ、脳波(EEG)デバイス、心電図(ECG)デバイス、高電脳波(PPG)センサ、ボイス検出センサ、コンピュータビジョンセンサなど)を、ユーザの感情および/または精神状態を判断するのに使うことができる。ユーザ特徴エンジン204は、任意の適切な技法および/またはデバイスを使って、どの追加または代替タイプのユーザ特徴も検出することができる。
【0069】
図2に示すように、ユーザ特徴エンジン204は、ユーザ特徴212に少なくとも部分的に基づいて、ユーザプロファイル218を判断することができる。ユーザプロファイル218は、ユーザのアプリケーション選好および/または様々なアプリケーションのコンテキスト使用に関連付けられたユーザ特徴の量的および/または質的要約、評価、および/または記述を表すことができる。たとえば、ユーザプロファイル218は、特定のアプリケーションを、アプリケーションのユーザの使用履歴に対応する特定の環境特徴に関連付けることができる。いくつかのケースでは、ユーザプロファイル218は、ユーザの現在の状態も表すことができる。たとえば、拡張現実システム100がアクティブ化されていることを検出することに応答して、ユーザ特徴エンジン204は、ユーザの更新された精神的、感情的、および/または生物学的状態を判断することができる。これらの更新された状態は、ユーザプロファイル218に組み込むことができる。
【0070】
いくつかの例では、ユーザ特徴エンジン204は、ユーザから与えられた入力に少なくとも部分的に基づいて、ユーザプロファイル218を生成することができる。たとえば、ユーザ特徴エンジン204は、ユーザが、他の情報の中でも、人口統計学的情報、身体能力、ペアレンタルコントロール、およびアプリケーション選好などの情報をそれを介して入れることができるインターフェースを提供することができる。非限定的例では、ユーザ特徴エンジン204は、ユーザに、拡張現実システム100を介してアクセスされるアカウントをセットアップしている間にそのような情報を入れるよう促すことができる。いくつかのケースでは、ユーザ特徴エンジン204は、そのようなユーザ入力を初期ユーザプロファイルとして使い、初期ユーザプロファイルを、続いて検出されたユーザ特徴に基づいて更新することができる。
【0071】
いくつかのケースでは、推奨システム200は、拡張現実システム100によってサポートされるXRベースのアプリケーションに関連付けられた1つまたは複数のアプリケーション特徴(たとえば、アプリケーション特徴214)に少なくとも部分的に基づいて、推奨222を判断することができる。拡張現実システム100は、特に、ゲーム用アプリケーション、エクササイズアプリケーション、テレビ会議アプリケーション、およびナビゲーションアプリケーションを含む、様々なタイプのXRベースのアプリケーションをサポートすることができる。いくつかのケースでは、アプリケーション特徴は、XRベースのアプリケーションでのユーザの体験を容易にし、かつ/または最適化する、実世界環境のどの特性も含むことができる。したがって、いくつかの例では、アプリケーション特徴214は、アプリケーション特徴エンジン206が特定のXRベースのアプリケーションにとって有益および/またはそれに関連すると判断する環境特徴を含むことができる。たとえば、環境特徴は、アプリケーションがその中で体験されるべきである部屋の好ましいおよび/または提案されたサイズを含むことができる。説明のための例において、大量の物理的動き(たとえば、ペースの速いゲーム用アプリケーション)を伴うアプリケーションは、広い環境から利益を受ける場合があり、他のアプリケーション(たとえば、テレビ会議アプリケーション、固定型ゲーム用アプリケーションなど)は、様々なサイズの環境に適している場合がある。いくつかの例では、環境特徴は、環境の好ましいおよび/または提案された物理的レイアウトを含むことができる。たとえば、アプリケーション特徴214は、環境内の好ましいおよび/または提案された量の散乱物(たとえば、家具および/または他のオブジェクト)、環境内の好ましいおよび/または提案された数の部屋、などを含むことができる。さらなる例では、環境特徴は、好ましいおよび/または提案されたタイプの環境(たとえば、公共の建物、個室、屋外環境、屋内環境など)を含むことができる。別の例では、環境特徴は、環境の周囲特徴(たとえば、照明の好ましいおよび/または提案されたレベル、音のレベル、温度など)を含むことができる。
【0072】
いくつかのケースでは、アプリケーション特徴は、XRベースのアプリケーションを楽しんでいる、かつ/またはXRベースのアプリケーションと適切に対話することが可能であるユーザに関連付けられたユーザのどの特性も含むことができる。したがって、いくつかの例では、アプリケーション特徴214は、アプリケーション特徴エンジン206が特定のXRベースのアプリケーションにとって有益および/またはそれに関連すると判断するユーザ特徴を含むことができる。たとえば、ユーザ特徴は、アプリケーションが1人のユーザそれとも複数のユーザに最も適しているか(および/または複数のユーザがローカルそれともリモートであるべきか)を含むことができる。別の例では、ユーザ特徴は、特定のアプリケーションと対話するときに有用および/または必要とされる、ユーザのサイズおよび/またはユーザの身体能力(たとえば、歩く、走る、飛び跳ねる、聞く、見る、など)を含むことができる。
【0073】
いくつかの例では、アプリケーション特徴214は、特定のXRベースのアプリケーション用に必要とされ、かつ/または提案されるハードウェアおよび/またはソフトウェアを含むことができる。たとえば、アプリケーション特徴214は、他のソフトウェアまたはハードウェア特性の中でも、必須のおよび/または提案されたXRデバイス(たとえば、コントローラ、ヘッドマウントディスプレイ、入力デバイス、グラスなど)、XRデバイスの必須のおよび/または提案された電力レベル、ネットワーク接続の必須のおよび/または提案されたレイテンシを含むことができる。
【0074】
いくつかのケースでは、特定のXRベースのアプリケーションについてのアプリケーション特徴は、特定のアプリケーションと同様の追加アプリケーションを含むことができる。たとえば、アプリケーション特徴214は、その機能、テーマ、ユーザ体験などが特定のアプリケーションとの少なくとも閾量の類似を有する1つまたは複数のアプリケーションを含むことができる。説明のための例において、一人称シューターアプリケーションに関連付けられたアプリケーション特徴は、別の一人称シューターアプリケーションであることができる。さらなる例では、アプリケーション特徴214は、特定のアプリケーションも楽しんだユーザによって楽しまれた(たとえば、高くレーティングまたはレビューされた)1つまたは複数のアプリケーションを含むことができる。説明のための例において、複数のユーザ(たとえば、閾数のユーザ)が特定のアプリケーションと追加アプリケーションの両方を楽しむ(たとえば、ユーザが、両方のアプリケーションを、閾レーティングを上回るようにレーティングした)場合、アプリケーション特徴エンジン206は、追加アプリケーションが、特定のアプリケーションに関連付けられたアプリケーション特徴であると判断することができる。
【0075】
アプリケーション特徴エンジン206は、様々な技法および/またはデバイスを使ってアプリケーション特徴214を判断することができる。いくつかのケースでは、アプリケーション特徴エンジン206は、特定のアプリケーションを使ったことがある複数のユーザに関連付けられた情報に基づいて、特定のアプリケーションについてのアプリケーション特徴を判断することができる。たとえば、アプリケーション特徴エンジン206は、アプリケーションプロファイルを生成するために構成される、クラウドベースのサービスの一部として実装することができる。説明のための例において、クラウドベースのサービスは、複数のXRシステムとリモートに通信するサーバおよび/またはデータベースのクラスタを含むことができる。この例では、クラウドベースのサービスは、複数のXRシステムによって生成されたユーザプロファイルおよび/または環境プロファイルを収集することができる。たとえば、複数のXRシステムは、ユーザプロファイルおよび/または環境プロファイルを生成すること、ならびにプロファイルをクラウドベースのサービスへ送信することを行うように構成することができる。追加または代替として、アプリケーション特徴エンジン206は、アプリケーション特徴を「クラウドソーシング」することができる。たとえば、アプリケーション特徴エンジン206は、複数のアプリケーションのユーザレビューを分析して、同様のユーザ(たとえば、同様のユーザプロファイルをもつユーザ)によって同様にレビューされたアプリケーションを判断することができる。
【0076】
図2に示すように、アプリケーション特徴エンジン206は、アプリケーション特徴214に少なくとも部分的に基づいて、1つまたは複数のアプリケーションプロファイル220を判断することができる。いくつかのケースでは、アプリケーションプロファイル220内の1つのアプリケーションプロファイルが、単一のアプリケーションに対応することができる。たとえば、アプリケーション特徴エンジン206は、異なるアプリケーションに各々が対応する複数のアプリケーションプロファイルを生成することができる。いくつかのケースでは、アプリケーション特徴エンジン206は、特定のアプリケーションを使ったことがある複数のユーザに関連付けられたユーザプロファイルおよび/または環境プロファイルを処理することによって、特定のアプリケーションについてのアプリケーションプロファイルを生成することができる。アプリケーション特徴エンジン206は、プロファイルを処理するのに、様々なタイプのデータ処理技法を使用することができる。たとえば、アプリケーション特徴エンジン206は、1つまたは複数のデータマイニング技法、分類技法、クラスタ化技法、予測技法、パターン追跡技法、それらの任意の組合せ、および/または他のデータ処理技法を実装することができる。追加または代替として、アプリケーション特徴エンジン206は、畳み込みニューラルネットワーク(CNN)、時間遅延ニューラルネットワーク(TDNN)、ディープフィードフォワードニューラルネットワーク(DFFNN)、再帰ニューラルネットワーク(RNN)、オートエンコーダ(AE)、バリエーションAE(VAE)、雑音除去AE(DAE)、スパースAE(SAE)、マルコフチェーン(MC)、パーセプトロン、またはこれらの何らかの組合せなどの、ニューラルネットワーク(NN)を含む、1つまたは複数の機械学習アルゴリズムを実装することができる。機械学習アルゴリズムは、教師あり学習アルゴリズム、教師なし学習アルゴリズム、半教師あり学習アルゴリズム、敵対的生成ネットワーク(GAN)ベースの学習アルゴリズム、これらの任意の組合せ、または他の学習技法であってもよい。
【0077】
図2に示すように、推奨エンジン208は、環境プロファイル216、ユーザプロファイル218、および1つまたは複数のアプリケーションプロファイル220に少なくとも部分的に基づいて、推奨222を判断することができる。いくつかのケースでは、推奨222は、拡張現実システム100が置かれている実世界環境内で、拡張現実システム100のユーザによる使用に適していると推奨エンジン208が判断する1つまたは複数のアプリケーションを含むことができる。一例では、適切なアプリケーションは、アプリケーションプロファイル220に対応するアプリケーションのサブセットを含むことができる。適切なアプリケーションを判断するために、推奨エンジン208は、環境プロファイル216および/またはユーザプロファイル218をアプリケーションプロファイル220と比較することができる。説明のための例において、推奨エンジン208は、アプリケーションプロファイル220の全部または一部分と、環境プロファイル216および/またはユーザプロファイル218との間の一致スコアを判断することによって、プロファイルを比較することができる。本明細書で使用する限り、アプリケーションプロファイルに関連付けられた一致スコアは、対応するアプリケーションと、ユーザおよび/またはユーザの現在の実世界環境との間の適合性の量的評価を表すことができる。閾値を上回る適合性スコアは、ユーザが、ユーザの現在の実世界環境および現在の状態を与えられると、アプリケーションを楽しみ、かつ/またはアプリケーションと適切に対話することが可能である見込みがあることを示すことができる。いくつかのケースでは、一致スコアは、所定の範囲内の数値スコアを含むことができる。説明のための例において、範囲は、0~1の範囲、1~10の範囲、または0%~100%の範囲を含むことができ、より高いスコアが、より高い量の適合性に関連付けられる。いくつかの例では、推奨エンジン208は、適切なアプリケーションを、閾一致スコアを超える、すなわち上回る一致スコアに対応するアプリケーションとして判断することができる。たとえば、一致スコアが0%~100%の範囲内であると判断された場合、推奨エンジン208は、適切なアプリケーションを、60%を満たすか、または超える一致スコアに対応するアプリケーションとして判断することができる。追加または代替として、推奨エンジン208は、適切なアプリケーションを、最も高い一致スコアの一定の数および/またはパーセンテージに対応するアプリケーションとして判断することができる。説明のための例において、アプリケーションプロファイル220が50個のアプリケーションプロファイルを含む場合、推奨エンジン208は、最も高い5つの一致スコアに対応するアプリケーションを識別することができる。
【0078】
いくつかのケースでは、推奨エンジン208は、アプリケーションプロファイルと環境プロファイル216との間の第1の一致スコアおよびアプリケーションプロファイルとユーザプロファイル218との間の第2の一致スコアに基づいて、アプリケーションプロファイル220のうちの1つに関連付けられた全体的一致スコアを判断することができる。たとえば、推奨エンジン208は、別個の一致スコアを判断し、次いで、一致スコアを組み合わせることができる。いくつかのケースでは、推奨エンジン208は、一致スコアの単純平均を算出することによって、全体的一致スコアを判断することができる。そのような一致スコアは、環境プロファイル216およびユーザプロファイル218を等しく反映し、かつ/またはそれらのプロファイルに影響される場合がある。いくつかのケースでは、推奨エンジン208は、2つの一致スコアを重み付けることによって、全体的一致スコアを判断することができる。一例では、2つの一致スコアを重み付けることは、各一致スコアに数的重みを割り当てる(たとえば、ユーザプロファイル218に関連付けられた一致スコアに0.7の重みを、および環境プロファイル216に関連付けられた一致スコアに0.3の重みを割り当てる)ことを含むことができる。
【0079】
追加または代替として、一致スコアを重み付けることは、一致スコアを判断するとき、プロファイルからの特徴の全部または一部分を無視することを含むことができる。一例では、推奨エンジン208は、環境プロファイル216に基づいて一致スコアを判断することができる。たとえば、推奨エンジン208は、環境プロファイル216の特徴を、1つまたは複数のアプリケーションプロファイルの特徴と比較することができる(ユーザプロファイル218は無視する)。別の例では、推奨エンジン208は、ユーザプロファイル218に基づいて一致スコアを判断することができる。たとえば、推奨エンジン208は、ユーザプロファイル218の特徴を、1つまたは複数のアプリケーションプロファイルの特徴と比較することができる(環境プロファイル216は無視する)。
【0080】
さらなる例では、推奨エンジン208は、1つまたは複数のアプリケーションプロファイルのいくつかの特徴を、環境プロファイル216および/またはユーザプロファイル218の特徴と選択的に比較することができる。上述したように、アプリケーションプロファイルは、ユーザ特性に関連付けられた特徴および環境特性に関連付けられた特徴を含むことができる。一例では、推奨エンジン208は、ユーザプロファイル218の特徴を、環境特性に関連付けられた1つまたは複数のアプリケーションプロファイルの特徴と比較することによって、一致スコアを判断することができる。説明のための例において、そのような選択的比較は、(たとえば、アプリケーションを使う際に伴う、高レベルの活動により)広い環境向けに設計されたアプリケーションが、高度にアクティブなアプリケーションを楽しまないユーザには適さない見込みがある(ユーザが広い部屋にいたとしても)と判断することができる。別の説明のための例では、推奨エンジン208は、広い環境向けに設計されたアプリケーションが、高レベルの運動能力を有するユーザに適する見込みがあると判断することができる。他のケースでは、推奨エンジン208は、環境プロファイル216の特徴を、ユーザ特性に関連付けられた1つまたは複数のアプリケーションプロファイルの特徴と比較することによって、一致スコアを判断することができる。説明のための例において、そのような選択的比較は、背の高いユーザ向けに設計されたアプリケーションが、狭いおよび/または散らかった環境内にいるユーザには適さない見込みがあると判断することができる。別の説明のための例では、推奨エンジン208は、背の高いユーザ向けに設計されたアプリケーションは、背が高く、広い環境にいることの両方であるユーザに適している見込みがあると判断することができる。
【0081】
推奨エンジン208は、様々な要因に基づいて判断されるべき一致スコアのタイプを選択することができる。たとえば、推奨エンジン208は、特定のタイプの一致スコアに対応するユーザ入力を検出することができる。別の例では、推奨エンジン208は、ユーザプロファイル218および/または環境プロファイル216内の情報の量および/またはタイプに基づいて、一致スコアのタイプを選択することができる。たとえば、推奨エンジン208は、十分な量の情報を含まない、プロファイルの部分を無視することができる。
【0082】
実世界環境内でのユーザによる使用に適した1つまたは複数のアプリケーションを判断した後、推奨エンジン208は、アプリケーションの指示を出力することができる。アプリケーションの指示は、推奨222に対応することができる。いくつかのケースでは、推奨222は、適切なアプリケーションに対応する名称のリストを含むことができる。たとえば、名称のリストは、拡張現実システム100のディスプレイ上で、またはディスプレイを通して閲覧することができる。いくつかのケースでは、推奨エンジン208は、各アプリケーションに対応する一致スコアを表示することもできる。
【0083】
いくつかの例では、修正エンジン209は、アプリケーションに関連付けられた1つまたは複数の修正(たとえば、修正224)を判断することができる。アプリケーションは、拡張現実システム100によって起動されるべき、推奨エンジン208によって推奨されるアプリケーションおよび/またはユーザによって選択されたアプリケーションであることができる。修正224は、ユーザが現在の実世界環境内にいる間、ユーザとアプリケーションとの間の対話を向上するように構成される任意の数またはタイプの修正を含むことができる。一例では、修正224は、実世界環境に対する修正を含むことができる。たとえば、修正224は、ユーザが、アプリケーションにより適した、実世界環境の異なる部分に移動することを含むことができる。説明のための例において、修正224は、ユーザが、アプリケーションにより適した、物理的レイアウト、周囲雑音レベル、および/または周囲光レベルを有する異なる部屋に移動することを含むことができる。別の説明のための例では、修正224は、隣接する部屋をつなげて、より広い環境(たとえば、より広い「ゲーム空間」)を形成することを含むことができる。さらなる説明のための例では、修正224は、複数のユーザ用の境界(たとえば、別個の「ゲーム空間」)を作成するために、続き部屋を分ける(または単一の部屋を複数の領域に分ける)ことを含むことができる。別の例では、修正224は、環境内の1つまたは複数の物理オブジェクト(たとえば、家具)を動かす(たとえば、より大きい程度の動きを可能にするために)ことを含むことができる。追加または代替として、修正224は、1つの家具を修正するか、または補う(たとえば、テーブルをたたむか、または広げる)ことを含むことができる。さらに、修正エンジン209は、1つの家具をどのように修正するか、または補うかをユーザに指示する命令を生成し、出力することができる。たとえば、修正エンジン209は、ユーザに、テーブル補助板を追加し、または取り外す際に伴う特定のステップを提供することができる。追加の例では、修正224は、環境の周囲特性を調節することを含むことができる。たとえば、修正224は、オーディオ仮想コンテンツを聞くためのユーザの能力を高めるために周囲雑音のボリュームを下げること、および/または視覚仮想コンテンツを見るためのユーザの能力を高めるために周囲光のレベルを低下することを含むことができる。別の例では、修正224は、アプリケーション内で小道具として使われるべき物理オブジェクトについての推奨を含むことができる。説明のための例において、修正224は、特定の1つの家具を、チームベースのアプリケーション内で「基地」として使うための推奨を含む場合がある。
【0084】
いくつかのケースでは、修正224は、拡張現実システム100および/またはアプリケーションの1つまたは複数の設定に対する修正を含むことができる。たとえば、修正224は、アプリケーションの難易度レベルまたはモードを変えることを含むことができる。たとえば、現在の環境が、マルチプレーヤゲーム用には散らかりすぎている場合、修正224は、シングルプレーヤモードを選択することを含むことができる。いくつかのケースでは、修正エンジン209は、環境プロファイル216、ユーザプロファイル218、および/または選択されたアプリケーションに対応するアプリケーションプロファイルを比較および/または分析することによって、修正224を判断することができる。たとえば、修正エンジン209は、ゲームプロファイル内の特徴と現時点で一致することも、特徴に対応することもない環境プロファイル216および/またはユーザプロファイル218内の特徴を識別することができる。修正エンジン209は次いで、プロファイル内の特徴が一致する程度を増す変更を推奨することができる。
【0085】
いくつかの例では、修正エンジン209は、推奨されるアプリケーションに関連付けられた電力コストに少なくとも部分的に基づいて、修正224を判断することができる。たとえば、修正エンジン209は、ユーザの現在の環境が高レベルの周囲光を有すると判断することができ、この周囲光は、ユーザが、アプリケーションと適切に対話するために、拡張現実システム100の明るさを増すことを要する場合がある。明るさレベルの増大は、拡張現実システム100のバッテリーをすぐに消耗する場合があり、結果として、ユーザは、アプリケーションを短い時間量(たとえば、30分、1時間など)だけ使うことができる。時間量を増やすために、ユーザはアプリケーションと対話することができ、修正エンジン209は、ユーザが、より暗い異なる環境(たとえば、異なる部屋)に移動することを提案することができる。別の例では、修正エンジン209は、ユーザによって所有される様々なXRデバイスの現在のバッテリー状態に基づいて、修正224を判断することができる。たとえば、修正エンジン209は、ユーザが、アプリケーションを稼動することが可能な2つ以上のXRデバイスを有すると判断することができる。修正エンジン209は、デバイスのバッテリーの充電レベルおよび/または枯渇レートに基づいて、どのデバイスがアプリケーション使用の最長持続時間を可能にするかを判断することができる。修正エンジン209は次いで、ユーザが、アプリケーションを稼動するためにそのデバイスを選択することを推奨することができる。
【0086】
いくつかのケースでは、修正エンジン209は、アプリケーションが拡張現実システム100内で起動されるように選択されたことを検出することに基づいて、修正224を判断することができる。たとえば、修正エンジン209は、起動されるべきアプリケーションの選択に対応するユーザ入力を検出し、入力に応答して修正224を判断することができる。追加または代替として、修正エンジン209は、1つまたは複数の推奨されるアプリケーションに関連付けられた修正を判断することができる(たとえば、起動されるべきアプリケーションの選択に対応するユーザ入力を検出する前に)。いくつかのケースでは、修正エンジン209は、拡張現実システム100のディスプレイ上で、またはディスプレイを通して閲覧することができるどの判断された修正の指示も出力することができる。これらのケースでは、ユーザは、修正を実装するかどうかを判断することができる。いくつかのケースでは、修正エンジン209は、環境に対する修正の全部または一部分を自動的および/または自律的に(たとえば、スマートホームデバイスおよび/またはIoTデバイスを介して)実装することができる。説明のための例において、修正エンジン209は、環境に対する変更を伴う可能な修正をユーザに対して示し、アプリケーションおよび/または拡張現実システム100の設定に対する変更を伴う修正を自動的に実施することができる。
【0087】
いくつかの例では、修正224は、環境特徴210のうちの1つまたは複数に影響する可能性がある。たとえば、図2の破線矢印によって示されるように、修正224は環境特徴210に適用することができる。したがって、修正224を実装することにより、環境プロファイル216を変更することができる。いくつかのケースでは、修正224により環境プロファイル216に対する変更が生じた場合、推奨システム200は、変更に基づいて、1つまたは複数の追加修正および/またはアプリケーション推奨を判断することができる。たとえば、推奨システム200は、修正の結果、あらかじめ推奨されたアプリケーションに環境特徴が適合すると判断することができる。追加または代替として、推奨システム200は、実世界環境に対する後続修正が、あらかじめ推奨されるアプリケーションとの適合性の増大に対応する見込みがあると判断することができる。
【0088】
図3は、XRシステム(たとえば、図1の拡張現実システム100)が置かれている例示的環境300を示す。この例では、図2の推奨システム200が、環境300に関連付けられた環境特徴を判断することができる。たとえば、推奨システム200は、壁302、テーブル304、人306、および窓308を検出することができる。推奨システム200は、特に、環境300の地理的ロケーション、環境300内の雑音のレベル、環境300内の照明のレベル、および環境のサイズを含む、任意の数またはタイプの追加環境特徴を判断することができる。説明のための例において、推奨システム200は、環境300が(たとえば、テーブル304および人306の存在により)中程度のレベルの散乱物を有すると判断することができる。推奨システム200は、(たとえば、壁302および窓308のロケーションにより)環境300が大きいサイズを有すると判断することもできる。さらに、推奨システム200は、(たとえば、人306の発話により)環境300が中程度のレベルの背景雑音を有すると判断することができる。推奨システム200は、これらの環境特徴(および任意の追加環境特徴)を、環境300に関連付けられた環境プロファイルに組み込むことができる。
【0089】
いくつかのケースでは、推奨システム200は、環境300に関連付けられた環境プロファイルの少なくとも一部分をあらかじめ判断し、記憶していてもよい。たとえば、推奨システム200は、環境300のサイズおよび/または物理的レイアウトをあらかじめ判断し、記憶していてもよい。この例では、推奨システム200は、新たなおよび/または更新された環境特徴を検出することに基づいて、環境プロファイルを更新することができる。たとえば、推奨システム200は、環境300内の周囲雑音および/または周囲光の現在のレベルを判断することができる。推奨システム200は、新たなおよび/または更新された環境特徴を既存の環境プロファイルに組み込むことができる。
【0090】
いくつかのケースでは、推奨システム200は、拡張現実システム100のユーザに関連付けられたユーザ特徴を判断することができる。たとえば、推奨システム200は、ユーザに関連付けられた人口統計学的情報を判断することができる。推奨システム200は、ユーザに関連付けられたアプリケーション選好および/または履歴アプリケーション使用を判断することもできる。説明のための例において、推奨システム200は、ユーザが25~30才、女性であり、身体障害がなく、週末にマルチプレーヤゲームを楽しみ、くつろいだ状態にあるときに動物を伴うゲームを楽しんだという履歴を有すると判断することができる。推奨システム200は、これらのユーザ特徴(および任意の追加ユーザ特徴)を、ユーザに関連付けられたユーザプロファイルに組み込むことができる。
【0091】
いくつかのケースでは、推奨システム200は、ユーザプロファイルの少なくとも一部分をあらかじめ判断し、記憶していてもよい。たとえば、推奨システム200は、ユーザに関連付けられた人口統計学的情報およびアプリケーション選好をあらかじめ記憶していてもよい。この例では、推奨システム200は、新たなおよび/または更新されたユーザ特性を検出することに基づいて、ユーザプロファイルを更新することができる。たとえば、推奨システム200は、ユーザの現在の精神および/または感情状態を判断することができる。推奨システム200は、新たなおよび/または更新されたユーザ特性を既存のユーザプロファイルに組み込むことができる。
【0092】
図4Aは、図3に示す環境300内での使用に適した1つまたは複数のアプリケーションの推奨を表示する例示的ユーザインターフェース402を示す。1つまたは複数のアプリケーションの推奨は、図2の推奨システム200によって出力された推奨222の例に対応することができる。推奨システム200は、1つまたは複数のアプリケーションプロファイルと、環境300に関連付けられた環境プロファイルおよび/または拡張現実システム100のユーザのユーザプロファイルとの間の比較に少なくとも部分的に基づいて、1つまたは複数の推奨されるアプリケーションを判断することができる。たとえば、推奨システム200は、複数のアプリケーションプロファイルの各々についての一致スコアを判断することができる。この例では、推奨システム200は、拡張現実システム100のディスプレイ上で、またはディスプレイを通して閲覧することができる、推奨されるアプリケーションの名称のリストを出力することができる。図4Aに示すように、推奨システム200は、各アプリケーション名の次に一致スコアを表示することができる。やはり図4Aに示すように、推奨されるアプリケーションは、ユーザが所有する(たとえば、買ったか、もしくはダウンロードした)アプリケーション(たとえば、ゲーム)および/または新たなアプリケーションを含むことができる。ユーザインターフェース402は、拡張現実システム100内で起動されるべき、推奨されるアプリケーションのうちの1つを、ユーザが選択することを可能にすることができる。推奨システム200は、ユーザが(たとえば、ユーザインターフェース402を閉じることによって)代替アプリケーションを選択することを可能にすることもできる。
【0093】
図4Bは、図3に示す環境300に関連付けられた1つまたは複数の修正の推奨を表示する例示的ユーザインターフェース404を示す。1つまたは複数の修正の推奨は、図2の推奨システム200によって出力された修正224の例に対応することができる。この例では、推奨システム200は、図4Aのユーザインターフェース402内に表示されるアプリケーション(すなわち、"Mortal Wombat")をユーザが選択することに基づいて、1つまたは複数の修正を判断することができる。さらに、推奨システム200は、選択されたアプリケーションに関連付けられたアプリケーションプロファイルと、環境300に関連付けられた環境プロファイルおよび/または拡張現実システム100のユーザのユーザプロファイルとの間の比較に少なくとも部分的に基づいて、1つまたは複数の修正を判断することができる。たとえば、推奨システム200は、選択されたアプリケーションに関連付けられた一致スコアを上げるように構成されている修正を判断することができる。
【0094】
図5は、拡張現実システムのための推奨を提供するための例示的プロセス500を示す流れ図である。明快のために、図2に示す推奨システム200を参照して、プロセス500について以下で説明する。本明細書において概説するステップまたは動作は例であり、いくつかのステップまたは動作を除き、追加し、または修正する組合せを含む、それらのどの組合せで実装することもできる。
【0095】
ブロック502において、プロセス500は、拡張現実システムによって起動されるべきアプリケーションを検出することを含む。たとえば、推奨システム200は、ユーザがアプリケーションと対話している(またはアプリケーションと対話することを望む)ことを検出することができる。一例では、推奨システム200は、拡張現実システムのユーザインターフェース内のアプリケーションの選択に対応するユーザ入力を検出することができる。いくつかのケースでは、アプリケーションは、推奨システム200によって(たとえば、アプリケーションに関連付けられたアプリケーションプロファイルと、環境プロファイル216および/またはユーザプロファイル218との間の比較に基づいて)推奨されるアプリケーションであることができる。説明のための例において、推奨システム200は、図4Aに示すユーザインターフェース402内に表示されるアプリケーションの選択に対応するユーザ入力を検出することができる。他の例では、アプリケーションは、推奨システム200によって推奨されないアプリケーションであることができる。
【0096】
ブロック504において、プロセス500は、拡張現実システムの実世界環境に関連付けられた1つまたは複数の環境特徴を判断することを含む。たとえば、推奨システム200は、環境プロファイル216の環境特徴を検出し、かつ/または取り出すことができる。いくつかのケースでは、推奨システム200は、ユーザプロファイル218内のユーザ特徴を検出し、かつ/または取り出すこともできる。さらに、推奨システム200は、アプリケーションに関連付けられたアプリケーションプロファイル内のアプリケーション特徴を検出し、かつ/または取り出すことができる。いくつかの例では、推奨システム200は、複数の追加ユーザ(たとえば、そのアプリケーションもしくは同様のアプリケーションを以前使ったことがあるユーザ)に関連付けられたユーザプロファイルおよび/または複数のユーザに関連付けられた環境プロファイルを判断することもできる。
【0097】
ブロック506において、プロセス500は、任意選択で、1つまたは複数の環境特徴を使って、アプリケーションに関連付けられた修正を判断することを含む。たとえば、推奨システム200は、ユーザおよび/または拡張現実システムによって修正を実装することができる(または実装されるべきである)かどうかを判断することができる。いくつかのケースでは、推奨システム200は、実世界環境および/またはアプリケーションの現在の構成が(たとえば、1つまたは複数のユーザ特徴を鑑みて)適切または理想的であると判断することができる。したがって、推奨システム200は、アプリケーションに関連付けられた修正が不必要な場合があると判断することができる。一例では、推奨システム200が、修正が不必要な場合があると判断した場合、推奨システム200は、ブロック506において修正を判断しなくてよい。別の例では、推奨システム200は、修正を拒否するユーザ入力を検出することに基づいて、ブロック506において修正を判断しなくてよい。推奨システム200が、ブロック506において修正なしを判断した場合、プロセス500はブロック508に進む。ブロック508において、プロセス500は、拡張現実システム内でアプリケーションを起動することを含む。たとえば、推奨システム200は、拡張現実システムに、アプリケーションを稼動および/または実行するよう指示することができる。
【0098】
他のケースでは、推奨システム200は、1つまたは複数の修正によって実世界環境および/またはアプリケーションの現在の構成を改善することができると判断することができる。これらのケースでは、推奨システム200は、ブロック506において修正を判断することができる。一例では、修正は、実世界環境に関連付けることができる。別の例では、修正は、アプリケーションの1つまたは複数の設定に関連付けることができる。いくつかの例では、推奨システム200は、複数のユーザに関連付けられた環境特徴および/または複数のユーザに関連付けられたユーザ特徴に少なくとも部分的に基づいて、修正を判断することができる。たとえば、推奨システム200は、様々な実世界環境内の追加ユーザとアプリケーションとの間の対話に関連付けられた履歴データに基づいて、ユーザ、アプリケーション、および/またはユーザの現在の実世界環境に適した修正を判断することができる。
【0099】
推奨システム200が、ブロック506において修正を判断した場合、プロセス500はブロック510に進む。ブロック510において、修正を実装することができる。修正は、拡張現実システムによって、および/またはユーザによって実装することができる。たとえば、修正が実世界環境に関連付けられる場合、推奨システム200は、修正の指示を(たとえば、拡張現実システムのディスプレイ内で)ユーザに対して出力することができる。説明のための例において、推奨システム200は、どのように修正を実装するかをユーザに指示する命令を表示することができる。このようにして、ユーザは、修正を選択的に実装することができる。別の例では、修正がアプリケーションの設定に関連付けられる場合、推奨システム200は、ユーザに、修正を受け入れるか、または拒否する入力を提供するよう(たとえば、拡張現実デバイスのディスプレイ内で)要求することができる。さらに別の例では、推奨システム200は、修正を自律的および/または自動的に(たとえば、ユーザ入力も関与もなしで)実装することができる。
【0100】
ブロック510から、プロセス500はブロック506に戻ることができる。たとえば、推奨システム200は、追加または代替の修正が、実世界環境内でのユーザとアプリケーションとの間の対話を向上する見込みがあり、かつ/または予想されるかどうかを判断することができる。いくつかのケースでは、推奨システム200は、あらかじめ判断された修正を実装することによって引き起こされた、実世界環境および/またはアプリケーションの構成に対する変更に少なくとも部分的に基づいて、追加修正を判断することができる。たとえば、推奨システム200は、環境プロファイル216および/またはユーザプロファイル218を必要に応じて更新し、更新されたプロファイルに基づいて、新たな修正を判断することができる。他の例では、推奨システム200は、あらかじめ判断された修正とは無関係および/またはそれに影響されない新たな修正を判断することができる。いくつかのケースでは、プロセス500は、ブロック506において修正が判断されなくなるまで、ブロック506および510を循環し続けることができ、修正が判断されなくなった時点で、プロセス500はブロック508に進むことができる。
【0101】
図6は、拡張現実システムのための推奨を提供するための例示的プロセス600を示す流れ図である。明快のために、図2に示す推奨システム200を参照して、プロセス600について以下で説明する。本明細書において概説するステップまたは動作は例であり、いくつかのステップまたは動作を除き、追加し、または修正する組合せを含む、それらのどの組合せで実装することもできる。
【0102】
ブロック602において、プロセス600は、拡張現実システムの実世界環境に関連付けられた1つまたは複数の環境特徴を判断することを含む。たとえば、推奨システム200は、環境プロファイル216を判断することができる。いくつかのケースでは、推奨システム200は、実世界環境の走査に基づいて、1つまたは複数の環境特徴を判断することができる。一例では、推奨システム200は、実世界環境の走査を、拡張現実システムの画像センサによって実施させることができる。他の例では、推奨システム200は、1つまたは複数の環境特徴を示す、あらかじめ記憶されたデータに基づいて、1つまたは複数の環境特徴を判断することができる。さらに、推奨システム200は、実世界環境に関連付けられた画像データに基づいて、1つまたは複数の環境特徴を判断することができる。画像データは、拡張現実システムの画像センサによって取り込むことができる。一例では、推奨システム200は、画像データに少なくとも部分的に基づいて、実世界環境内の1つまたは複数の物理オブジェクトのレイアウトを判断することができる。追加または代替として、推奨システム200は、画像データに少なくとも部分的に基づいて、実世界環境内での1人または複数の人々の活動を判断することができる。いくつかのケースでは、推奨システム200は、拡張現実システムのオーディオセンサによって取り込まれた実世界環境に関連付けられたオーディオデータに基づいて、1つまたは複数の環境特徴を判断することができる。たとえば、推奨システム200は、オーディオデータに少なくとも部分的に基づいて、実世界環境内での1人または複数の人々の活動を判断することができる。さらなる例では、推奨システム200は、1つまたは複数のネットワーク対応デバイスとのネットワーク通信に基づいて、実世界環境内の1つまたは複数のネットワーク対応デバイスを検出することに少なくとも部分的に基づいて、1つまたは複数の環境特徴を判断することができる。
【0103】
ブロック604において、プロセス600は、拡張現実システムのユーザに関連付けられた1つまたは複数のユーザ特徴を判断することを含む。たとえば、推奨システム200は、ユーザプロファイル218を判断することができる。いくつかのケースでは、推奨システム200は、拡張現実システムの1つまたは複数の生物学的センサを使って取得されたユーザデータに少なくとも部分的に基づいて、1つまたは複数のユーザ特徴を判断することができる。ユーザデータは、ユーザの精神状態および/または感情状態に関連付けられることが可能である。いくつかの例では、推奨システム200は、ユーザの年齢、ユーザの性別、ユーザの地理的ロケーション、ユーザの身長、およびユーザの体重のうちの少なくとも1つを示すユーザ入力に基づいて、1つまたは複数のユーザ特徴を判断することができる。さらなる例では、推奨システム200は、ユーザのアプリケーション選好を判断するためにユーザのアプリケーション使用パターンを監視することに基づいて、ユーザ特徴を判断することができる。
【0104】
ブロック606において、プロセス600は、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて、拡張現実システムによってサポートされる少なくとも1つのアプリケーションに関連付けられた通知を出力することを含む。たとえば、推奨システム200は、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて、拡張現実システムの実世界環境におけるユーザによる使用に適した1つまたは複数のアプリケーションを判断することができる。いくつかの例では、少なくとも1つのアプリケーションに関連付けられた通知は、少なくとも1つのアプリケーションの推奨を含む。たとえば、少なくとも1つのアプリケーションの推奨は、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて判断することができる。いくつかの例では、少なくとも1つのアプリケーションに関連付けられた通知は、少なくとも1つのアプリケーションに関連付けられた少なくとも1つの修正の推奨(たとえば、ユーザが選択したアプリケーションを修正すること)を含む。
【0105】
いくつかのケースでは、推奨システム200は、少なくとも1つのアプリケーションと、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴のうちの少なくとも1つとの間の適合性のレベルを示す一致スコアを判断することができる。推奨システム200は次いで、一致スコアが閾一致スコアを超えるかどうかを判断することができる。いくつかの例では、推奨システム200は、一致スコアが閾一致スコアを超えると判断することに基づいて、少なくとも1つのアプリケーションを判断する(たとえば、少なくとも1つのアプリケーションまたは少なくとも1つのアプリケーションに関連付けられた修正を推奨すると判断する)ことができる。いくつかのケースでは、推奨システム200は、少なくとも1つのアプリケーションに関連付けられた1つまたは複数のアプリケーション特徴を判断すること、ならびに1つまたは複数のアプリケーション特徴を、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴のうちの少なくとも1つと比較することに基づいて、一致スコアを判断することができる。一例では、推奨システム200は、サーバからの少なくとも1つのアプリケーションに関連付けられたアプリケーションプロファイルにアクセスすることに基づいて、1つまたは複数のアプリケーション特徴を判断することができる。いくつかのケースでは、アプリケーションプロファイルは、複数の拡張現実システムによって判断されたアプリケーション特徴に基づいて生成することができる。
【0106】
いくつかの例では、推奨システム200は、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴を使って、拡張現実システムによってサポートされる複数のアプリケーションを判断することができる。たとえば、推奨システム200は、複数のアプリケーションと少なくとも1つまたは複数の環境特徴との間の適合性のレベルを示す複数の一致スコアを判断することができる。別の例では、推奨システム200は、複数のアプリケーションと、少なくとも1つまたは複数のユーザ特徴との間の適合性のレベルを示す複数の一致スコアを判断することができる。
【0107】
ステップ608において、プロセス600は、少なくとも1つのアプリケーションの推奨をユーザに提供することを含む。たとえば、推奨システム200は、推奨222を(たとえば、拡張現実システムのディスプレイ内で)出力することができる。いくつかのケースでは、推奨システム200が、拡張現実システムによってサポートされる複数のアプリケーションを判断した場合、推奨システム200は、複数のアプリケーションの推奨をユーザに提供することができる。たとえば、推奨システム200は、拡張現実システムのディスプレイ上で、複数の一致スコアを複数のアプリケーションに関連付けて表示することができる。一例では、推奨システム200は、拡張現実システムのディスプレイ内で、複数の一致スコアのうちの最も高い一致スコアを有する、複数のアプリケーションのうちのあるアプリケーションの指示を表示することができる。
【0108】
いくつかのケースでは、少なくとも1つのアプリケーションの推奨は、少なくとも1つのアプリケーションに関連付けられた少なくとも1つの修正の推奨を含むことができる。たとえば、推奨222は、修正224を含み、かつ/またはそれに対応することができる。一例では、推奨システム200は、ユーザが少なくとも1つのアプリケーションと対話していることを検出することができる。推奨システム200は次いで、ユーザが少なくとも1つのアプリケーションと対話していることを検出することに基づいて、少なくとも1つの修正を判断することができる。一例では、少なくとも1つの修正は、実世界環境に関連付けることができる。別の例では、少なくとも1つの修正は、少なくとも1つのアプリケーションの1つまたは複数の設定に関連付けることができる。さらに、いくつかのケースでは、推奨システム200は、複数のユーザに関連付けられた環境特徴に基づいて、および/または複数のユーザに関連付けられたユーザ特徴に基づいて、少なくとも1つの修正を判断することができる。
【0109】
図7は、本技術のいくつかの態様を実装するためのシステムの例を示す図である。具体的には、図7はコンピューティングシステム700の例を示し、これは、たとえば、内部コンピューティングシステム、リモートコンピューティングシステム、カメラ、またはそれらの任意のコンポーネントを構成する任意のコンピューティングデバイスであることができ、システムのコンポーネントは接続705を使用して互いに通信している。接続705は、バスを使用した物理接続、またはチップセットアーキテクチャなどにおけるプロセッサ710への直接接続であることができる。接続705はまた、仮想接続、ネットワーク接続、または論理接続であることができる。
【0110】
いくつかの例では、コンピューティングシステム700は、本開示において説明された機能が、データセンター、複数のデータセンター、ピアネットワークなどの中で分散されることが可能である分散型システムである。いくつかの例では、説明されたシステムコンポーネントの1つまたは複数は、そのためにコンポーネントが説明される機能の一部またはすべてを各々実施するような多くのコンポーネントを表す。いくつかのケースでは、コンポーネントは物理デバイスまたは仮想デバイスであることができる。
【0111】
例示的コンピューティングシステム700は、少なくとも1つの処理装置(CPUまたはプロセッサ)710と、読取り専用メモリ(ROM)720およびランダムアクセスメモリ(RAM)725などのシステムメモリ715を含む様々なシステムコンポーネントをプロセッサ710に結合する接続705とを含む。コンピューティングシステム700は、プロセッサ710に直接接続される、それに接近している、またはその一部として統合される高速メモリのキャッシュ712を含むことができる。
【0112】
プロセッサ710は、プロセッサ710、ならびにソフトウェア命令が実際のプロセッサ設計へと組み込まれるような専用プロセッサを制御するように構成される、記憶デバイス730に記憶されるサービス732、734、および737などの、任意の汎用プロセッサおよびハードウェアサービスまたはソフトウェアサービスを含むことができる。プロセッサ710は基本的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自己完結型のコンピューティングシステムであってもよい。マルチコアプロセッサは、対称でもまたは非対称でもよい。
【0113】
ユーザ対話を可能にするために、コンピューティングシステム700は入力デバイス745を含み、発話のためのマイクロフォン、ジェスチャー入力またはグラフィカル入力のためのタッチ感知スクリーン、キーボード、マウス、モーション入力、発話などの、任意の数の入力機構を表すことができる。コンピューティングシステム700は出力デバイス735も含むことができ、これはある数の出力機構の1つまたは複数であることができる。いくつかの事例では、マルチモーダルシステムは、ユーザが複数のタイプの入力/出力を提供してコンピューティングシステム700と通信することを可能にできる。コンピューティングシステム700は通信インターフェース740を含むことができ、これは全般に、ユーザ入力およびシステム出力を支配し、管理することができる。通信インターフェースは、オーディオジャック/プラグ、マイクロフォンジャック/プラグ、ユニバーサルシリアルバス(USB)ポート/プラグ、Apple(登録商標)Lightning(登録商標)ポート/プラグ、イーサネットポート/プラグ、光ファイバポート/プラグ、プロプライエタリワイヤードポート/プラグ、BLUETOOTH(登録商標)ワイヤレス信号転送、BLUETOOTH(登録商標)low energy(BLE)ワイヤレス信号転送、IBEACON(登録商標)ワイヤレス信号転送、無線周波数識別(RFID)ワイヤレス信号転送、近距離通信(NFC)ワイヤレス信号転送、専用短距離通信(DSRC)ワイヤレス信号転送、802.11 Wi-Fiワイヤレス信号転送、ワイヤレスローカルエリアネットワーク(WLAN)信号転送、可視光通信(VLC)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)、赤外線(IR)通信ワイヤレス信号転送、公衆交換電話網(PSTN)信号転送、統合サービスデジタルネットワーク(ISDN)信号転送、3G/4G/5G/LTEセルラーデータネットワークワイヤレス信号転送、アドホックネットワーク信号転送、無線波信号転送、マイクロ波信号転送、赤外線信号転送、可視光信号転送、紫外光信号転送、電磁スペクトルに沿ったワイヤレス信号転送、またはこれらの何らかの組合せを利用したものを含む、ワイヤードおよび/またはワイヤレストランシーバを使用したワイヤード通信またはワイヤレス通信の、受信および/または伝送を実施または促進してもよい。通信インターフェース740はまた、1つまたは複数の全地球航法衛星システム(GNSS)システムに関連する1つまたは複数の衛星からの1つまたは複数の信号の受信に基づいて、コンピューティングシステム700の位置を判断するために使われる、1つまたは複数のGNSSレシーバまたはトランシーバを含んでもよい。GNSSシステムは、限定はされないが、米国の全地球測位システム(GPS)、ロシアの全地球航法衛星システム(GLONASS)、中国の北斗航法衛星システム(BDS)、および欧州のGalileo GNSSを含む。いずれの特定のハードウェア構成上で動作することに対し制約がないので、ここではこの基本的な特徴は、開発されるにつれて、改善されたハードウェアまたはファームウェアの構成により容易に置き換えられることがある。
【0114】
記憶デバイス730は、不揮発性の、および/または非一時的な、および/またはコンピュータ可読のメモリデバイスであることができ、ハードディスクであることができ、または、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、磁気ストリップ/ストライプ、任意の他の磁気記憶媒体、フラッシュメモリ、メモリスタメモリ、任意の他のソリッドステートメモリ、コンパクトディスク読取り専用メモリ(CD-ROM)光学ディスク、再書き込み可能コンパクトディスク(CD)光学ディスク、デジタルビデオディスク(DVD)光学ディスク、ブルーレイディスク(BDD)光学ディスク、ホログラフィック光学ディスク、別の光学媒体、セキュアデジタル(SD)カード、マイクロセキュアデジタル(microSD)カード、メモリスティック(登録商標)カード、スマートカードチップ、EMVチップ、加入者識別モジュール(SIM)カード、ミニ/マイクロ/ナノ/ピコSIMカード、別の集積回路(IC)チップ/カード、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、フラッシュEPROM(FLASHEPROM)、キャッシュメモリ(L1/L2/L3/L4/L5/L#)、抵抗性ランダムアクセスメモリ(RRAM/ReRAM)、位相変化メモリ(PCM)、スピントランスファートルクRAM(STT-RAM)、別のメモリチップもしくはカートリッジ、および/またはこれらの組合せなどの、コンピュータによりアクセス可能であるデータを記憶できる他のタイプのコンピュータ可読媒体であることができる。
【0115】
記憶デバイス730は、そのようなソフトウェアを定義するコードがプロセッサ710によって実行されるとシステムに機能を実施させる、ソフトウェアサービス、サーバ、サービスなどを含むことができる。いくつかの例では、特定の機能を実施するハードウェアサービスは、機能を行うために、プロセッサ710、接続705、出力デバイス735などの必要なハードウェアコンポーネントと接続している、コンピュータ可読媒体に記憶されているソフトウェアコンポーネントを含むことができる。
【0116】
本明細書において使われる限り、「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブルの記憶デバイス、光記憶デバイス、ならびに命令および/またはデータを記憶、収容、または搬送することができる様々な他の媒体を含む。コンピュータ可読媒体は、データを記憶することができ、ワイヤレスにまたはワイヤード接続を介して伝搬する搬送波および/または一時的な電子信号を含まない、非一時的媒体を含んでもよい。非一時的媒体の例は、限定はされないが、磁気ディスクもしくは磁気テープ、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ、もしくはメモリデバイスを含んでもよい。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表す場合がある、コードおよび/またはマシン実行可能命令を記憶していてもよい。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を渡すことおよび/または受けることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク伝送などを含む、任意の適切な手段を使用して渡され、転送され、または伝送されてもよい。
【0117】
いくつかの例では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含むケーブルまたはワイヤレス信号を含むことができる。ただし、言及されるとき、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、および信号などの媒体を本来は明確に除く。
【0118】
本明細書で提供される例の完全な理解を与えるために、上記の説明において具体的な詳細が与えられている。しかしながら、例はこれらの具体的な詳細なしに実践されてもよいことが、当業者によって理解されよう。説明を明快にするために、いくつかの事例では、本技術は、デバイスと、デバイスコンポーネントと、ソフトウェア、またはハードウェアとソフトウェアの組合せにおいて具現化された方法におけるステップまたはルーチンとを備える機能ブロックを含む個々の機能ブロックを含むものとして提示される場合がある。図に示されるものおよび/または本明細書で説明されるもの以外の追加のコンポーネントが使用されてもよい。たとえば、不必要な詳細で例を不明瞭にしないように、回路、システム、ネットワーク、プロセス、または他のコンポーネントがブロック図の形態でコンポーネントとして示される場合がある。他の事例では、例を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、および技法は、不必要な詳細なしに示される場合がある。
【0119】
個々の例が、フローチャート、流れ図、データフロー図、構造図、またはブロック図として示されるプロセスまたは方法として上で説明される場合がある。フローチャートは動作を逐次プロセスとして説明する場合があるが、動作の多くは並行してまたは同時に実施されることが可能である。加えて、動作の順序は並べ替えられてもよい。プロセスは、その動作が完了するときに終了するが、図に含まれない追加のステップを有することも可能である。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに相当する場合がある。プロセスが関数に相当するとき、その終了は、その関数が呼出し関数またはメイン関数に戻ることに相当することが可能である。
【0120】
上記で説明された例によるプロセスおよび方法は、記憶されたまたは他の方法でコンピュータ可読媒体から入手可能なコンピュータ実行可能命令を使用して実装されることが可能である。そのような命令は、たとえば、汎用コンピュータ、専用コンピュータ、または処理デバイスに、特定の機能または機能のグループを実施させるか、またはそうでなければ実施するように汎用コンピュータ、専用コンピュータ、または処理デバイスを構成する、命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であることができる。コンピュータ実行可能命令は、たとえば、アセンブリ言語、ファームウェア、ソースコードなどの、バイナリ、中間フォーマット命令であってもよい。命令、使用される情報、および/または説明された例による方法の間に作成される情報を記憶するために使用される場合があるコンピュータ可読媒体の例は、磁気または光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク接続された記憶デバイスなどを含む。
【0121】
これらの開示によるプロセスおよび方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せを含むことができ、様々なフォームファクタのうちのいずれをもとることができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実施されるとき、必要なタスクを実施するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読媒体または機械可読媒体に記憶されてもよい。プロセッサが、必要なタスクを実施してもよい。フォームファクタの典型的な例は、ラップトップ、スマートフォン、携帯電話、タブレットデバイスまたは他の小型フォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどを含む。本明細書に記載する機能性は、周辺装置またはアドインカードにおいて具現化することもできる。そのような機能性は、さらなる例として、異なるチップの中の回路板または単一のデバイス中で実行する異なるプロセス上で実装することもできる。
【0122】
命令、そのような命令を伝えるための媒体、命令を実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本開示で説明される機能を提供するための例示的な手段である。
【0123】
上記の説明では、本出願の態様はそれらの特定の例に関して説明されているが、本出願がそれらに限定されないことが、当業者には認識されよう。したがって、本出願の例示的な例が本明細書で詳細に説明されたが、本発明の概念が他の方法で様々に具現化され採用されてもよいことと、従来技術によって限定される場合を除き、添付の特許請求の範囲がそのような変形を含むものと解釈されることが意図されることとを理解されたい。上で説明された適用例の様々な特徴および態様は、個別または一緒に使用されてもよい。さらに、例は、本明細書のより広い趣旨および範囲から逸脱することなく、本明細書で説明したものを越えた任意の数の環境および適用例において使用されてもよい。したがって、本明細書および図面は、限定的ではなく例示的であると見なされるべきである。例示のために、方法は特定の順序で説明された。代替例では、説明された順序とは異なる順序で方法が実施されてもよいことを諒解されたい。
【0124】
本明細書において使われる、未満(「<」)およびよりも大きい(「>」)という記号または用語は、本記述の範囲から逸脱することなく、それぞれ、以下(「≦」)および以上(「≧」)という記号で置き換えられることが可能であることが、当業者には諒解されよう。
【0125】
コンポーネントがいくつかの動作を実施する「ように構成される」ものとして説明される場合、そのような構成は、たとえば、動作を実施するように電子回路もしくは他のハードウェアを設計することによって、動作を実施するようにプログラマブル電子回路(たとえば、マイクロプロセッサ、もしくは他の好適な電子回路)をプログラムすることによって、またはそれらの任意の組合せで達成されることが可能である。
【0126】
「に結合された」という句は、直接もしくは間接的にのいずれかで別のコンポーネントに物理的に接続された任意のコンポーネント、および/または、直接もしくは間接的にのいずれかで別のコンポーネントと通信している(たとえば、ワイヤードもしくはワイヤレス接続および/または他の好適な通信インターフェースを介して別のコンポーネントに接続された)任意のコンポーネントを指す。
【0127】
セット「の少なくとも1つ」および/またはセットの「1つまたは複数」と記載する請求項の文言または他の文言は、セットの1つの要素またはセットの(任意の組合せでの)複数の要素が請求項を満足することを示す。たとえば、「AおよびBのうちの少なくとも1つ」と記載するクレーム文言は、A、B、またはAおよびBを意味する。別の例では、「A、B、およびCのうちの少なくとも1つ」と具陳するクレーム文言は、A、B、C、またはAおよびB、またはAおよびC、またはBおよびC、またはAおよびBおよびCを意味する。セット「の少なくとも1つ」および/またはセットの「1つまたは複数」という文言は、セットを、セットの中に列挙される項目に限定するものではない。たとえば、「AおよびBのうちの少なくとも1つ」を記載する請求項の文言は、A、B、またはAおよびBを意味することができ、加えて、AおよびBのセットに列挙されていない項目をさらに含むことができる。
【0128】
本明細書で開示した例に関して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装されてもよい。ハードウェアとソフトウェアとのこの互換性を明瞭に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、それらの機能性に関して上記で概略的に説明されている。そのような機能性が、ハードウェアとして実装されるのか、それともソフトウェアとして実装されるのかは、具体的な適用例および全体的なシステムに課される設計制約によって決まる。当業者は、説明された機能性を具体的な適用例ごとに様々な方法で実装してもよいが、そのような実装決定は、本出願の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【0129】
本明細書において説明された技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてもよい。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、またはワイヤレス通信デバイスハンドセットおよび他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのいずれにおいて実装されてもよい。モジュールまたはコンポーネントとして説明された任意の特徴が、集積論理デバイスの中で一緒に、または個別であるが相互動作可能な論理デバイスとして別々に実装されてもよい。ソフトウェアで実装される場合、技法は、実行されると、上で説明された方法のうちの1つまたは複数を実施する命令を含むプログラムコードを備える、コンピュータ可読データ記憶媒体によって少なくとも部分的に実現されてもよい。コンピュータ可読データ記憶媒体は、コンピュータプログラム製品の一部を形成してもよく、これはパッケージング材料を含んでもよい。コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、たとえば同期式ダイナミックランダムアクセスメモリ(SDRAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読取り専用メモリ(EEPROM)、FLASHメモリ、磁気または光学データ記憶媒体などのようなメモリまたはデータ記憶媒体を備えてもよい。技法は、追加または代替として、伝搬される信号または波などの、命令またはデータ構造の形でプログラムコードを搬送または通信し、コンピュータによってアクセスされ、読み取られ、かつ/または実行されることが可能である、コンピュータ可読通信媒体によって少なくとも部分的に実現されてもよい。
【0130】
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路構成もしくは個別論理回路構成などの、1つまたは複数のプロセッサを含んでもよいプロセッサによって実行されてもよい。そのようなプロセッサは、本開示に記載された技法のいずれかを実施するように構成されてもよい。汎用プロセッサはマイクロプロセッサであってもよいが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成としても実装されてもよい。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または本明細書で説明される技法の実装に好適な任意の他の構造もしくは装置のうちのいずれかを指す場合がある。加えて、いくつかの態様では、本明細書において説明された機能性は、符号化および復号のために構成される専用のソフトウェアモジュールもしくはハードウェアモジュール内に設けられてもよく、または複合ビデオエンコーダ/デコーダ(コーデック)に組み込まれてもよい。
【0131】
本開示の説明のための例は、以下を含む。
【0132】
態様1:拡張現実システムのための推奨を提供する方法であって、拡張現実システムの実世界環境に関連付けられた1つまたは複数の環境特徴を判断するステップと、拡張現実システムのユーザに関連付けられた1つまたは複数のユーザ特徴を判断するステップと、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて、拡張現実システムによってサポートされる少なくとも1つのアプリケーションに関連付けられた通知を出力するステップとを含む方法。
【0133】
態様2:少なくとも1つのアプリケーションに関連付けられた通知は、少なくとも1つのアプリケーションの推奨を含み、少なくとも1つのアプリケーションの推奨は、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて判断される、態様1の方法。いくつかのケースでは、少なくとも1つのアプリケーションの指示を出力するステップは、拡張現実システムのディスプレイ上で少なくとも1つのアプリケーションの推奨を提供し、または出力するステップを含む。
【0134】
態様3:少なくとも1つのアプリケーションに関連付けられた通知は、少なくとも1つのアプリケーションに関連付けられた少なくとも1つの修正の推奨を含む、態様1または態様2のいずれかの方法。
【0135】
態様4:ユーザが少なくとも1つのアプリケーションと対話していることを検出するステップと、ユーザが少なくとも1つのアプリケーションと対話していることを検出することに基づいて、少なくとも1つのアプリケーションに関連付けられた少なくとも1つの修正を判断するステップとをさらに含む、態様3の方法。
【0136】
態様5:少なくとも1つの修正は実世界環境に関連付けられる、態様3または態様4のうちのいずれか1つ、の方法。
【0137】
態様6:少なくとも1つの修正は少なくとも1つのアプリケーションの1つまたは複数の設定に関連付けられる、態様3~5のうちのいずれか1つ、の方法。
【0138】
態様7:複数のユーザに関連付けられた環境特徴および複数のユーザに関連付けられたユーザ特徴のうちの少なくとも1つに基づいて、少なくとも1つの修正を判断するステップをさらに含む、態様3~6のうちのいずれか1つ、の方法。
【0139】
態様8:実世界環境の走査に基づいて、1つまたは複数の環境特徴を判断するステップをさらに含む、態様1~7のいずれかの方法。
【0140】
態様9:実世界環境の走査を引き起こすステップをさらに含み、実世界環境の走査は、拡張現実システムの画像センサによって実施される、態様8の方法。
【0141】
態様10:1つまたは複数の環境特徴を示す、あらかじめ記憶されたデータに基づいて、1つまたは複数の環境特徴を判断するステップをさらに含む、態様1~9のいずれかの方法。
【0142】
態様11:拡張現実システムの少なくとも1つの画像センサによって取り込まれた実世界環境に関連付けられた画像データに少なくとも部分的に基づいて、1つまたは複数の環境特徴を判断するステップをさらに含む、態様1~10のいずれかの方法。
【0143】
態様12:画像データに少なくとも部分的に基づいて、実世界環境内の1つまたは複数の物理オブジェクトのレイアウトを判断するステップをさらに含む、態様11の方法。
【0144】
態様13:画像データに少なくとも部分的に基づいて、実世界環境内での1人または複数の人々の活動を判断するステップをさらに含む、態様11または態様12のうちのいずれか1つ、の方法。
【0145】
態様14:拡張現実システムのオーディオセンサによって取り込まれた実世界環境に関連付けられたオーディオデータに少なくとも部分的に基づいて、1つまたは複数の環境特徴を判断するステップをさらに含む、態様1~13のいずれかの方法。
【0146】
態様15:オーディオデータに少なくとも部分的に基づいて、実世界環境内での1人または複数の人々の活動を判断するステップをさらに含む、態様14の方法。
【0147】
態様16:1つまたは複数のネットワーク対応デバイスとのネットワーク通信に基づいて実世界環境内の1つまたは複数のネットワーク対応デバイスを検出することに少なくとも部分的に基づいて、1つまたは複数の環境特徴を判断するステップをさらに含む、態様1~15のいずれかの方法。
【0148】
態様17:拡張現実システムの1つまたは複数の生物学的センサを使って取得されたユーザデータに少なくとも部分的に基づいて、1つまたは複数のユーザ特徴を判断するステップをさらに含み、ユーザデータは、ユーザの精神状態または感情状態に関連付けられる、態様1~16のいずれかの方法。
【0149】
態様18:ユーザの年齢、ユーザの性別、ユーザの地理的ロケーション、ユーザの身長、およびユーザの体重のうちの少なくとも1つを示すユーザ入力に基づいて、1つまたは複数のユーザ特徴を判断するステップをさらに含む、態様1~17のいずれかの方法。
【0150】
態様19:ユーザのアプリケーション選好を判断するためにユーザのアプリケーション使用パターンを監視することに基づいて、1つまたは複数のユーザ特徴を判断するステップをさらに含む、態様1~18のいずれかの方法。
【0151】
態様20:少なくとも1つのアプリケーションと、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴のうちの少なくとも1つとの間の適合性のレベルを示す一致スコアを判断するステップと、一致スコアが閾一致スコアを超えると判断するステップと、一致スコアが閾一致スコアを超えることに基づいて、少なくとも1つのアプリケーションを判断するステップとをさらに含む、態様1~19のいずれかの方法。
【0152】
態様21:少なくとも1つのアプリケーションに関連付けられた1つまたは複数のアプリケーション特徴を判断すること、ならびに1つまたは複数のアプリケーション特徴を、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴のうちの少なくとも1つと比較することに基づいて、一致スコアを判断するステップをさらに含む、態様1~20のいずれかの方法。
【0153】
態様22:サーバからの少なくとも1つのアプリケーションに関連付けられたアプリケーションプロファイルにアクセスすることに基づいて、1つまたは複数のアプリケーション特徴を判断するステップをさらに含み、アプリケーションプロファイルは、複数の拡張現実システムによって判断されたアプリケーション特徴に基づいて生成される、態様21の方法。
【0154】
態様23:複数のアプリケーションの推奨をユーザに提供するステップをさらに含む、態様1~22のいずれかの方法。いくつかのケースでは、方法は、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて、拡張現実システムによってサポートされる複数のアプリケーションを判断するステップを含む。
【0155】
態様24:複数の一致スコアを、複数のアプリケーションに関連付けて、拡張現実システムのディスプレイ上に表示するステップをさらに含み、複数の一致スコアは、複数のアプリケーションと、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴のうちの少なくとも1つとの間の適合性のレベルを示す、態様23の方法。
【0156】
態様25:1つまたは複数の環境特徴に少なくとも基づいて、複数の一致スコアを判断するステップをさらに含む、態様24の方法。
【0157】
態様26:1つまたは複数のユーザ特徴に少なくとも基づいて、複数の一致スコアを判断するステップをさらに含む、態様24または態様25のいずれかの方法。
【0158】
態様27:拡張現実システムのディスプレイ内に、複数の一致スコアのうちの最も高い一致スコアを有する、複数のアプリケーションのうちのあるアプリケーションの指示を表示するステップをさらに含む、態様24~26のいずれかの方法。
【0159】
態様28:推奨を提供するための装置。装置は、メモリ(たとえば、回路構成で実装される)と、メモリに結合されたプロセッサ(または複数のプロセッサ)とを含む。プロセッサ(または複数のプロセッサ)は、装置の実世界環境に関連付けられた1つまたは複数の環境特徴を判断することと、装置のユーザに関連付けられた1つまたは複数のユーザ特徴を判断することと、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて、装置によってサポートされる少なくとも1つのアプリケーションに関連付けられた通知を出力することとを行うように構成される。
【0160】
態様29:少なくとも1つのアプリケーションに関連付けられた通知は、少なくとも1つのアプリケーションの推奨を含み、少なくとも1つのアプリケーションの推奨は、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて判断される、態様28の装置。いくつかのケースでは、少なくとも1つのアプリケーションの指示を出力することは、拡張現実システムのディスプレイ上で少なくとも1つのアプリケーションの推奨を提供し、または出力することを含む。
【0161】
態様30:少なくとも1つのアプリケーションに関連付けられた通知は、少なくとも1つのアプリケーションに関連付けられた少なくとも1つの修正の推奨を含む、態様28または態様29のうちのいずれか1つ、の装置。
【0162】
態様31:プロセッサは、ユーザが少なくとも1つのアプリケーションと対話していることを検出することと、ユーザが少なくとも1つのアプリケーションと対話していることを検出することに基づいて、少なくとも1つのアプリケーションに関連付けられた少なくとも1つの修正を判断することとを行うように構成される、態様30の装置。
【0163】
態様32:少なくとも1つの修正は実世界環境に関連付けられる、態様30または態様31のうちのいずれか1つ、の装置。
【0164】
態様33:少なくとも1つの修正は、少なくとも1つのアプリケーションの1つまたは複数の設定に関連付けられる、態様30~32のうちのいずれか1つ、の装置。
【0165】
態様34:プロセッサは、複数のユーザに関連付けられた環境特徴および複数のユーザに関連付けられたユーザ特徴のうちの少なくとも1つに基づいて、少なくとも1つの修正を判断するように構成される、態様30~33のうちのいずれか1つ、の装置。
【0166】
態様35:プロセッサは、実世界環境の走査に基づいて、1つまたは複数の環境特徴を判断するように構成される、態様28~34のいずれかの装置。
【0167】
態様36:プロセッサは、実世界環境の走査を引き起こすように構成され、実世界環境の走査は装置の画像センサによって実施される、態様35の装置。
【0168】
態様37:プロセッサは、1つまたは複数の環境特徴を示す、あらかじめ記憶されたデータに基づいて、1つまたは複数の環境特徴を判断するように構成される、態様28~36のいずれかの装置。
【0169】
態様38:実世界環境に関連付けられた画像データを取り込むように構成される画像センサをさらに備え、プロセッサは、画像データに少なくとも部分的に基づいて1つまたは複数の環境特徴を判断するように構成される、態様28~37のいずれかの装置。
【0170】
態様39:プロセッサは、画像データに少なくとも部分的に基づいて、実世界環境内の1つまたは複数の物理オブジェクトのレイアウトを判断するように構成される、態様38の装置。
【0171】
態様40:プロセッサは、画像データに少なくとも部分的に基づいて、実世界環境内での1人または複数の人々の活動を判断するように構成される、態様38または態様39のうちのいずれか1つ、の装置。
【0172】
態様41:実世界環境に関連付けられたオーディオデータを取り込むように構成されるオーディオセンサをさらに備え、プロセッサは、オーディオデータに少なくとも部分的に基づいて、1つまたは複数の環境特徴を検出するように構成される、態様28~40のいずれかの装置。
【0173】
態様42:プロセッサは、オーディオデータに少なくとも部分的に基づいて、実世界環境内での1人または複数の人々の活動を判断するように構成される、態様41の装置。
【0174】
態様43:プロセッサは、1つまたは複数のネットワーク対応デバイスとのネットワーク通信に基づいて、実世界環境内の1つまたは複数のネットワーク対応デバイスを検出することに少なくとも部分的に基づいて、1つまたは複数の環境特徴を判断するように構成される、態様28~42のいずれかの装置。
【0175】
態様44:ユーザの精神状態または感情状態に関連付けられたユーザデータを取得するように構成される1つまたは複数の生物学的センサをさらに備え、プロセッサは、ユーザデータに少なくとも部分的に基づいて、1つまたは複数のユーザ特徴を判断するように構成される、態様28~43のいずれかの装置。
【0176】
態様45:プロセッサは、ユーザの年齢、ユーザの性別、ユーザの地理的ロケーション、ユーザの身長、およびユーザの体重のうちの少なくとも1つを示すユーザ入力に基づいて、1つまたは複数のユーザ特徴を判断するように構成される、態様28~44のいずれかの装置。
【0177】
態様46:プロセッサは、ユーザのアプリケーション使用パターンを監視して、ユーザのアプリケーション選好を判断することによって、1つまたは複数のユーザ特徴を判断するように構成される、態様28~45のいずれかの装置。
【0178】
態様47:プロセッサは、少なくとも1つのアプリケーションと、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴のうちの少なくとも1つとの間の適合性のレベルを示す一致スコアを判断することと、一致スコアが閾一致スコアを超えると判断することと、一致スコアが閾一致スコアを超えることに基づいて、少なくとも1つのアプリケーションを判断することとを行うように構成される、態様28~46のいずれかの装置。
【0179】
態様48:プロセッサは、少なくとも1つのアプリケーションに関連付けられた1つまたは複数のアプリケーション特徴を判断すること、ならびに1つまたは複数のアプリケーション特徴を、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴のうちの少なくとも1つと比較することに基づいて、一致スコアを判断するように構成される、態様28~47のいずれかの装置。
【0180】
態様49:プロセッサは、サーバからの少なくとも1つのアプリケーションに関連付けられたアプリケーションプロファイルにアクセスすることに基づいて、1つまたは複数のアプリケーション特徴を判断するように構成され、アプリケーションプロファイルは、複数の拡張現実システムによって判断されたアプリケーション特徴に基づいて生成される、態様48の装置。
【0181】
態様50:プロセッサは、複数のアプリケーションの推奨をユーザに提供するように構成される、態様28~47のいずれかの装置。いくつかのケースでは、プロセッサは、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴に基づいて、拡張現実システムによってサポートされる複数のアプリケーションを判断するように構成される。
【0182】
態様51:プロセッサは、装置のディスプレイ上に、複数の一致スコアを、複数のアプリケーションに関連付けて表示するように構成され、複数の一致スコアは、複数のアプリケーションと、1つまたは複数の環境特徴および1つまたは複数のユーザ特徴のうちの少なくとも1つとの間の適合性のレベルを示す、態様28~50のいずれかの装置。
【0183】
態様52:プロセッサは、1つまたは複数の環境特徴に少なくとも基づいて、複数の一致スコアを判断するように構成される、態様51の装置。
【0184】
態様53:プロセッサは、1つまたは複数のユーザ特徴に少なくとも基づいて、複数の一致スコアを判断するように構成される、態様51または52のいずれか1つの、装置。
【0185】
態様54:プロセッサは、装置のディスプレイ内で、複数の一致スコアのうちの最も高い一致スコアを有する、複数のアプリケーションのうちのあるアプリケーションの指示を表示するようにさらに構成される、態様53の装置。
【0186】
態様55:装置は車両の拡張現実システムである、態様28から54のうちのいずれか1つ、の装置。
【0187】
態様56:命令を記憶するコンピュータ可読記憶媒体であって、命令は、実行されると、1つまたは複数のプロセッサに、態様1~27の動作のいずれかを実施させる、コンピュータ可読記憶媒体。
【0188】
態様57:態様1から27の動作のうちのいずれかを実施するための手段を備える装置。
【0189】
態様58:ユーザデバイス上で動作可能な方法。方法は、拡張現実システムのユーザデバイスが置かれている実世界環境に関連付けられた1つまたは複数の環境特徴を検出するように準備された1つまたは複数の検出器から信号を受信するステップと、ユーザと、拡張現実システムによってサポートされるアプリケーションとの間の対話に関連付けられた1つまたは複数のユーザ特徴に関するデータを、ユーザデータストアから取り出すステップと、1つまたは複数の検出器からの信号およびユーザストアからのデータを使って、実世界環境中のユーザデバイスによる使用に適した、拡張現実システムによってサポートされる少なくとも1つのアプリケーションを判断するステップと、ユーザデバイス上での少なくとも1つのアプリケーションの起動を容易にするステップとを含む。
【0190】
態様59:アプリケーションの起動を容易にするステップは、ユーザデバイス上でアプリケーションを自動的に起動するステップを含む、態様58の方法。
【0191】
態様60:アプリケーションの起動を容易にするステップは、デバイスのユーザにアプリケーションの指示を与えるように、ディスプレイを制御するステップを含む、態様58の方法。
【0192】
態様61:メモリおよび1つまたは複数のプロセッサ(たとえば、回路構成で構成される)を含む装置であって、1つまたは複数のプロセッサは、拡張現実システムのユーザデバイスが置かれている実世界環境に関連付けられた1つまたは複数の環境特徴を検出するように準備された1つまたは複数の検出器から信号を受信することと、ユーザと、拡張現実システムによってサポートされるアプリケーションとの間の対話に関連付けられた1つまたは複数のユーザ特徴に関するデータを、ユーザデータストアから取り出すことと、1つまたは複数の検出器からの信号およびユーザストアからのデータを使って、実世界環境中のユーザデバイスによる使用に適した、拡張現実システムによってサポートされる少なくとも1つのアプリケーションを判断することと、ユーザデバイス上での少なくとも1つのアプリケーションの起動を容易にすることとを行うように構成される、装置。
【0193】
態様62:アプリケーションの起動を容易にすることは、ユーザデバイス上でアプリケーションを自動的に起動することを含む、態様61の装置。
【0194】
態様63:アプリケーションの起動を容易にすることは、デバイスのユーザにアプリケーションの指示を与えるように、ディスプレイを制御することを含む、態様61の装置。
【0195】
態様64:命令を記憶する非一時的コンピュータ可読媒体であって、命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、拡張現実システムのユーザデバイスが置かれている実世界環境に関連付けられた1つまたは複数の環境特徴を検出するように準備された1つまたは複数の検出器から信号を受信することと、ユーザと、拡張現実システムによってサポートされるアプリケーションとの間の対話に関連付けられた1つまたは複数のユーザ特徴に関するデータを、ユーザデータストアから取り出すことと、1つまたは複数の検出器からの信号およびユーザストアからのデータを使って、実世界環境中のユーザデバイスによる使用に適した、拡張現実システムによってサポートされる少なくとも1つのアプリケーションを判断することと、ユーザデバイス上での少なくとも1つのアプリケーションの起動を容易にすることとを行わせる、非一時的コンピュータ可読媒体。
【0196】
態様65:アプリケーションの起動を容易にすることは、ユーザデバイス上でアプリケーションを自動的に起動することを含む、態様64の非一時的コンピュータ可読媒体。
【0197】
態様66:アプリケーションの起動を容易にすることは、デバイスのユーザにアプリケーションの指示を与えるように、ディスプレイを制御することを含む、態様64の非一時的コンピュータ可読媒体。
【0198】
態様67:拡張現実システムのユーザデバイスが置かれている実世界環境に関連付けられた1つまたは複数の環境特徴を検出するように準備された1つまたは複数の検出器から信号を受信するための手段と、ユーザと、拡張現実システムによってサポートされるアプリケーションとの間の対話に関連付けられた1つまたは複数のユーザ特徴に関するデータを、ユーザデータストアから取り出すための手段と、1つまたは複数の検出器からの信号およびユーザストアからのデータを使って、実世界環境中のユーザデバイスによる使用に適した、拡張現実システムによってサポートされる少なくとも1つのアプリケーションを判断するための手段と、ユーザデバイス上での少なくとも1つのアプリケーションの起動を容易にするための手段とを含む装置。
【0199】
態様68:アプリケーションの起動を容易にすることは、ユーザデバイス上でアプリケーションを自動的に起動することを含む、態様67の装置。
【0200】
態様69:アプリケーションの起動を容易にすることは、デバイスのユーザにアプリケーションの指示を与えるように、ディスプレイを制御することを含む、態様67の装置。
【符号の説明】
【0201】
100 拡張現実システム
102 画像センサ、コンポーネント
104 加速度計、コンポーネント
106 ジャイロスコープ、コンポーネント
108 ストレージ、コンポーネント
110 計算コンポーネント、コンポーネント
112 中央処理ユニット(CPU)
114 グラフィックス処理ユニット(GPU)
116 デジタル信号プロセッサ(DSP)
118 画像信号プロセッサ(ISP)
120 XRエンジン、コンポーネント
122 推奨エンジン、コンポーネント
124 画像処理エンジン、コンポーネント
126 レンダリングエンジン、コンポーネント
200 推奨システム
202 環境特徴エンジン
204 ユーザ特徴エンジン
206 アプリケーション特徴エンジン
208 推奨エンジン
209 修正エンジン
402 ユーザインターフェース
404 ユーザインターフェース
700 コンピューティングシステム
705 接続
710 プロセッサ、処理装置、CPU
712 キャッシュ
715 システムメモリ
720 読取り専用メモリ(ROM)
725 ランダムアクセスメモリ(RAM)
730 記憶デバイス
735 出力デバイス
740 通信インターフェース
745 入力デバイス
図1
図2
図3
図4A
図4B
図5
図6
図7
【国際調査報告】