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

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

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

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-06
(54)【発明の名称】遠隔デバイスとのユーザ相互作用
(51)【国際特許分類】
   G06F 3/01 20060101AFI20241029BHJP
【FI】
G06F3/01 510
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024519903
(86)(22)【出願日】2022-10-07
(85)【翻訳文提出日】2024-04-01
(86)【国際出願番号】 US2022077812
(87)【国際公開番号】W WO2023064719
(87)【国際公開日】2023-04-20
(31)【優先権主張番号】17/450,680
(32)【優先日】2021-10-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLU―RAY DISC
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】ジョナサン・キース
(72)【発明者】
【氏名】レオニード・シェインブラット
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA07
5E555BA02
5E555BB02
5E555BB08
5E555BC04
5E555BE17
5E555CA42
5E555CB66
5E555DA08
5E555DB16
5E555DB51
5E555DC09
5E555DC61
5E555EA03
5E555EA20
5E555EA22
5E555FA00
(57)【要約】
少なくとも1つの入力オプションに関連付けられている情報を提示するためのシステム、方法、及び非一時的媒体が提供される。例示的な方法は、シーン内の第1のデバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信することと、少なくとも1つのメモリを用いることを含めて、シーン、第1のデバイス、及び第2のデバイスと関連付けられているユーザのうちの少なくとも1つに関連性のある情報を決定することとを含み、1つ又は複数の入力オプションと情報とに基づいて、関連性のあるコンテキスト情報が決定された入力オプションに対応するユーザガイダンスデータを出力することができる。
【特許請求の範囲】
【請求項1】
少なくとも1つの入力オプションに関連付けられている情報を出力するための装置であって、
少なくとも1つのメモリと、
前記少なくとも1つのメモリに結合された少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサは、
シーン内のデバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信し、
少なくとも1つのメモリを使用することを含めて、前記シーン、前記デバイス、及び前記装置と関連付けられているユーザのうちの少なくとも1つに関連性のある情報を決定し、
前記1つ又は複数の入力オプション及び前記情報に基づいて、関連性のあるコンテキスト情報が決定された入力オプションに対応するユーザガイダンスデータを出力する、
ように構成されている、装置。
【請求項2】
前記ユーザガイダンスデータは、前記入力オプションに関連付けられているユーザ入力要素、前記入力オプションに関連付けられている物理オブジェクト上の仮想オーバーレイ、及び前記入力オプションに関連付けられている入力を提供する方法を示すキューのうちの少なくとも1つを含む、請求項1に記載の装置。
【請求項3】
前記少なくとも1つのプロセッサが、
前記情報に基づいて、前記デバイスとのユーザ相互作用を予測し、
前記1つ又は複数の入力オプションと前記予測されたユーザ相互作用とに基づいて、前記入力オプションに対応する前記ユーザガイダンスデータを提示する、
ように構成されている、請求項1に記載の装置。
【請求項4】
前記デバイスは、ネットワーク通信能力を伴う接続されたデバイスを備え、前記少なくとも1つのプロセッサは、
前記情報と前記1つ又は複数の入力オプションとに基づいて、前記デバイスへの予測されたユーザ入力を含む予測されたユーザ相互作用を表わすハンドジェスチャを決定し、
検出されると、前記デバイスで実際のユーザ入力を呼び出す前記ハンドジェスチャの指示を含む、前記ユーザガイダンスデータを提示する、
ように構成されている、請求項1に記載の装置。
【請求項5】
前記ユーザガイダンスデータを提示するために、前記少なくとも1つのプロセッサは、
前記装置と関連付けられているディスプレイにおいて、前記デバイスの表面上に置かれているように見えるべく構成される仮想オーバーレイをレンダリングするように構成され、前記仮想オーバーレイは、前記入力オプションと関連付けられているユーザインタフェース要素を含み、前記ユーザインタフェース要素は、前記入力オプションと関連付けられている仮想ユーザ入力オブジェクト、及び前記入力オプションに対応する前記入力を受信するように構成された前記デバイス上の物理制御オブジェクトの視覚的指示のうちの少なくとも一方を含む、
請求項1に記載の装置。
【請求項6】
前記情報は、前記ユーザの視線及び前記ユーザの姿勢のうちの少なくとも一方を含み、前記少なくとも1つのプロセッサは、
前記ユーザの前記視線及び前記ユーザの前記姿勢のうちの少なくとも一方に基づいて前記デバイスとのユーザ相互作用を予測し、
前記ユーザガイダンスデータを提示した後に、前記入力オプションと関連付けられている実際のユーザ入力であって、前記予測されたユーザ相互作用を表わす実際のユーザ入力を検出し、
前記入力オプションと関連付けられている前記実際のユーザ入力に対応するコマンドを前記デバイスに送信する、
ように構成されている、請求項1に記載の装置。
【請求項7】
前記入力オプションに対応する前記ユーザガイダンスデータを出力するために、前記少なくとも1つのプロセッサは、
前記ユーザガイダンスデータを表示する、
ように構成されている、請求項1に記載の装置。
【請求項8】
前記入力オプションに対応する前記ユーザガイダンスデータを出力するために、前記少なくとも1つのプロセッサは、
前記ユーザガイダンスデータを表わす音声データを出力する、
ように構成されている、請求項1に記載の装置。
【請求項9】
前記入力オプションに対応する前記ユーザガイダンスデータを出力するために、前記少なくとも1つのプロセッサは、
前記ユーザガイダンスデータを表示し、
前記表示されたユーザガイダンスデータに関連付けられている音声データを出力する、
ように構成されている、請求項1に記載の装置。
【請求項10】
前記少なくとも1つのプロセッサが、
前記デバイスから、前記デバイスと関連付けられている前記1つ又は複数の入力オプションを識別するデータを受信する、
ように構成されている、請求項1に記載の装置。
【請求項11】
前記少なくとも1つのプロセッサが、
サーバから、前記デバイスと関連付けられている前記1つ又は複数の入力オプションを識別する前記データを受信する、
ように構成されている、請求項1に記載の装置。
【請求項12】
前記デバイスは、1つ又は複数のユーザ入力を受信するための外部ユーザインタフェースを有さない、請求項1に記載の装置。
【請求項13】
前記少なくとも1つのプロセッサが、
前記情報に基づいて、前記デバイスと関連付けられている更なるユーザガイダンスデータを提示することを控える、
ように構成されている、請求項1に記載の装置。
【請求項14】
前記装置がエクステンデッドリアリティデバイスである、請求項1に記載の装置。
【請求項15】
ディスプレイを更に備える、請求項1に記載の装置。
【請求項16】
前記ディスプレイは、少なくとも前記ユーザガイダンスデータを表示するように構成されている、請求項15に記載の装置。
【請求項17】
前記少なくとも1つのプロセッサが、
前記ユーザガイダンスデータを提示した後に、前記入力オプションと関連付けられているユーザ入力を取得し、
前記ユーザ入力に対応する命令であって、前記デバイスの1つ又は複数の動作を制御するように構成されている命令を前記デバイスに送信する、
ように構成されている、請求項1に記載の装置。
【請求項18】
少なくとも1つの入力オプションに関連付けられている情報を出力するための方法であって、
シーン内のデバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信することと、
少なくとも1つのメモリを使用することを含めて、前記シーン、前記デバイス、及び電子デバイスと関連付けられているユーザのうちの少なくとも1つに関連性のある情報を決定することと、
前記1つ又は複数の入力オプションと前記情報とに基づいて、関連性のあるコンテキスト情報が決定された入力オプションに対応するユーザガイダンスデータを出力する
ことと、を含む方法。
【請求項19】
前記ユーザガイダンスデータは、前記入力オプションに関連付けられているユーザ入力要素、前記入力オプションに関連付けられている物理オブジェクト上の仮想オーバーレイ、及び前記入力オプションに関連付けられている入力を提供する方法を示すキューのうちの少なくとも1つを含む、請求項18に記載の方法。
【請求項20】
前記情報に基づいて、前記デバイスとのユーザ相互作用を予測することと、
前記1つ又は複数の入力オプションと前記予測されたユーザ相互作用とに基づいて、前記入力オプションに対応する前記ユーザガイダンスデータを提示することと、を更に含む、請求項18に記載の方法。
【請求項21】
前記デバイスがネットワーク通信能力を伴う接続されたデバイスを備え、前記方法は、
前記情報と前記1つ又は複数の入力オプションとに基づいて、前記デバイスへの予測されたユーザ入力を含む予測されたユーザ相互作用を表わすハンドジェスチャを決定することと、
検出されると、前記デバイスで実際のユーザ入力を呼び出す前記ハンドジェスチャの指示を含む、前記ユーザガイダンスデータを提示することと、を更に含む、請求項20に記載の方法。
【請求項22】
前記ユーザガイダンスデータを提示することは、
前記電子デバイスと関連付けられているディスプレイにおいて、前記デバイスの表面上に置かれているように見えるべく構成される仮想オーバーレイをレンダリングすることを含み、前記仮想オーバーレイは、前記入力オプションと関連付けられているユーザインタフェース要素を含み、前記ユーザインタフェース要素は、前記入力オプションと関連付けられている仮想ユーザ入力オブジェクト、及び前記入力オプションに対応する前記入力を受信するように構成された前記デバイス上の物理制御オブジェクトの視覚的指示のうちの少なくとも一方を含む、
請求項18に記載の方法。
【請求項23】
前記情報は、前記ユーザの視線及び前記ユーザの姿勢のうちの少なくとも一方を含み、前記方法は、
前記ユーザの前記視線及び前記ユーザの前記姿勢のうちの少なくとも一方に基づいて前記デバイスとのユーザ相互作用を予測することと、
前記ユーザガイダンスデータを提示した後に、前記入力オプションと関連付けられている実際のユーザ入力であって、前記予測されたユーザ相互作用を表わす実際のユーザ入力を検出することと、
前記入力オプションと関連付けられている前記実際のユーザ入力に対応するコマンドを前記デバイスに送信することと、を更に含む、請求項18に記載の方法。
【請求項24】
前記入力オプションに対応する前記ユーザガイダンスデータを出力することは、
前記ユーザガイダンスデータを表示することを含む、請求項18に記載の方法。
【請求項25】
前記入力オプションに対応する前記ユーザガイダンスデータを出力することは、
前記ユーザガイダンスデータを表わす音声データを出力することを含む、請求項18に記載の方法。
【請求項26】
前記入力オプションに対応する前記ユーザガイダンスデータを出力することは、
前記ユーザガイダンスデータを表示することと、
前記表示されたユーザガイダンスデータと関連付けられている音声データを出力することと、を含む、請求項18に記載の方法。
【請求項27】
前記デバイスから、前記デバイスと関連付けられている前記1つ又は複数の入力オプションを識別するデータを受信することを更に含む、請求項18に記載の方法。
【請求項28】
サーバから、前記デバイスと関連付けられている前記1つ又は複数の入力オプションを識別する前記データを受信することを更に含む、請求項18に記載の方法。
【請求項29】
前記デバイスは、1つ又は複数のユーザ入力を受信するための外部ユーザインタフェースを有さない、請求項18に記載の方法。
【請求項30】
前記情報に基づいて、前記デバイスと関連付けられている更なるユーザガイダンスデータを提示することを控えることを更に含む、請求項18に記載の方法。
【請求項31】
前記ユーザガイダンスデータを提示した後に、前記入力オプションと関連付けられているユーザ入力を取得することと、
前記ユーザ入力に対応する命令であって、前記デバイスの1つ又は複数の動作を制御するように構成されている命令を前記デバイスに送信することと、を更に含む、請求項18に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、遠隔デバイスとの相互作用に関する。例えば、本開示の態様は、遠隔デバイスとのユーザ相互作用のための仮想コンテンツをフィルタリング及び/又は提案することを含む。
【背景技術】
【0002】
エクステンデッドリアリティ技術は、ユーザに仮想コンテンツを提示するのに使うことができ、かつ/又は物質界からの実環境と仮想環境を組み合わせて、エクステンデッドリアリティ体験をユーザに提供することができる。エクステンデッドリアリティという用語は、仮想現実、拡張現実、複合現実などを包含することができる。これらの形態のエクステンデッドリアリティの各々により、ユーザは、没入型の仮想環境又はコンテンツを経験するか又はそれと相互作用することが可能になる。例えば、エクステンデッドリアリティ体験により、ユーザは、仮想コンテンツで増強又は拡張された現実環境又は物理環境と相互作用することが可能になり得る。
【0003】
エクステンデッドリアリティ技術は、特に、エンターテイメント、ヘルスケア、小売、教育、ソーシャルメディアなどの広範囲のコンテキストにおいてユーザエクスペリエンスを増強するために実装され得る。
【発明の概要】
【0004】
開示されるのは、遠隔デバイス相互作用(例えば、エクステンデッドリアリティ(XR)デバイスとモノのインターネット(Internet-of-Things)デバイスなどの1つ又は複数の遠隔デバイスとの間の相互作用)のためのユーザ相互作用データを決定するためのシステム、装置、方法、及びコンピュータ可読媒体である。少なくとも1つの例によれば、少なくとも1つの入力オプションに関連付けられている情報を提示するための方法が提供される。方法は、シーン内のデバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信することと、少なくとも1つのメモリを使用することを含めて、シーン、デバイス、及び電子デバイスと関連付けられているユーザのうちの少なくとも1つに関連性のある情報を決定することと、1つ又は複数の入力オプションと情報とに基づいて、関連性のあるコンテキスト情報が決定された入力オプションに対応するユーザガイダンスデータを出力することと、を含む。
【0005】
他の例では、少なくとも1つのメモリと、少なくとも1つのメモリに結合される少なくとも1つのプロセッサ(例えば、回路に実装される)とを含む、少なくとも1つの入力オプションに関連付けられている情報を提示するための装置が提供される。少なくとも1つのプロセッサは、シーン内のデバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信し、少なくとも1つのメモリを使用することを含めて、シーン、デバイス、及び電子デバイスと関連付けられているユーザのうちの少なくとも1つに関連性のある情報を決定し、1つ又は複数の入力オプションと情報とに基づいて、関連性のあるコンテキスト情報が決定された入力オプションに対応するユーザガイダンスデータを出力するように構成されてそのようにすることができる。
【0006】
他の例では、命令を記憶した非一時的コンピュータ可読媒体が提供され、命令は、1つ又は複数のプロセッサによって実行されるときに、1つ又は複数のプロセッサに、シーン内のデバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信させ、少なくとも1つのメモリを使用することを含めて、シーン、デバイス、及び電子デバイスと関連付けられているユーザのうちの少なくとも1つに関連性のある情報を決定させ、1つ又は複数の入力オプションと情報とに基づいて、関連性のあるコンテキスト情報が決定された入力オプションに対応するユーザガイダンスデータを出力させる。
【0007】
他の例では、少なくとも1つの入力オプションに関連性のある情報を提示するための装置が提供される。装置は、シーン内のデバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信するための手段と、少なくとも1つのメモリを使用することを含めて、シーン、デバイス、及び電子デバイスと関連付けられているユーザのうちの少なくとも1つに関連性のある情報を決定するための手段と、1つ又は複数の入力オプションと情報とに基づいて、関連性のあるコンテキスト情報が決定された入力オプションに対応するユーザガイダンスデータを出力するための手段とを含む。
【0008】
幾つかの態様において、前述した方法、非一時的コンピュータ可読媒体、及び装置は、情報に基づいて、デバイスとのユーザ相互作用を予測し、1つ又は複数の入力オプションと予測されたユーザ相互作用とに基づいて、入力オプションに対応するユーザガイダンスデータを提示することを含むことができる。
【0009】
幾つかの例において、ユーザガイダンスデータは、入力オプションに関連付けられているユーザ入力要素、入力オプションに関連付けられている物理オブジェクト上の仮想オーバーレイ、及び/又は入力オプションに関連付けられている入力を提供する方法を示すキューのうちの少なくとも1つを含むことができる。
【0010】
幾つかの例において、デバイスは、ネットワーク通信能力を伴う接続されたデバイスを含むことができ、前述の方法、非一時的コンピュータ可読媒体、及び装置は、情報と1つ又は複数の入力オプションとに基づいて、予測されたユーザ相互作用を表すハンドジェスチャを決定し、ユーザガイダンスデータを提示することを含むことができる。幾つかの例において、予測されたユーザ相互作用は、デバイスへの予測されたユーザ入力を含むことができる。場合によっては、ユーザガイダンスデータは、検出されると、デバイスで実際のユーザ入力を呼び出すハンドジェスチャの指示を含むことができる。
【0011】
幾つかの態様において、ユーザガイダンスデータを提示することは、電子デバイスと関連付けられているディスプレイにおいて、デバイスの表面上に位置されるように見えるべく構成される仮想オーバーレイをレンダリングすることを含むことができる。幾つかの例において、仮想オーバーレイは、入力オプションと関連付けられているユーザインタフェース要素を含むことができる。場合によっては、ユーザインタフェース要素は、入力オプションと関連付けられている仮想ユーザ入力オブジェクト、及び入力オプションに対応する入力を受信するように構成されたデバイス上の物理制御オブジェクトの視覚的指示のうちの少なくとも1つを含むことができる。
【0012】
幾つかの例において、情報は、ユーザの視線及びユーザの姿勢のうちの少なくとも一方を含み、前述の方法、非一時的コンピュータ可読媒体、及び装置は、ユーザの視線及びユーザの姿勢のうちの少なくとも一方に基づいてデバイスとのユーザ相互作用を予測することと、ユーザガイダンスデータを提示した後に、入力オプションと関連付けられている実際のユーザ入力であって、予測されたユーザ相互作用を表わす実際のユーザ入力を検出することと、入力オプションと関連付けられている実際のユーザ入力に対応するコマンドをデバイスに送信することと、を含むことができる。
【0013】
幾つかの例において、入力オプションに対応するユーザガイダンスデータを出力することは、ユーザガイダンスデータを表示することを含むことができる。幾つかの例において、入力オプションに対応するユーザガイダンスデータを出力することは、ユーザガイダンスデータを表わす音声データを出力することを含むことができる。
【0014】
幾つかの例において、入力オプションに対応するユーザガイダンスデータを出力することは、ユーザガイダンスデータを表示し、表示されたユーザガイダンスデータと関連付けられている音声データを出力することを含むことができる。
【0015】
幾つかの態様において、前述した方法、非一時的なコンピュータ読取可能な媒体、及び装置は、デバイスから、デバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信することを含むことができる。幾つかの態様において、前述した方法、非一時的なコンピュータ読取可能な媒体、及び装置は、サーバから、デバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信することを含むことができる。
【0016】
場合によっては、デバイスは、1つ又は複数のユーザ入力を受信するための外部ユーザインタフェースを有さない。
【0017】
幾つかの態様において、前述した方法、非一時的コンピュータ可読媒体、及び装置は、情報に基づいて、デバイスに関連付けられている更なるユーザガイダンスデータを提示することを控えることを含むことができる。
【0018】
幾つかの態様において、前述の方法、非一時的コンピュータ可読媒体、及び装置は、ユーザガイダンスデータを提示した後に、入力オプションに関連付けられているユーザ入力を取得し、ユーザ入力に対応する命令をデバイスに送信することを含むことができる。場合によっては、命令は、デバイスの1つ又は複数の動作を制御するように構成され得る。
【0019】
幾つかの態様では、装置は、カメラ、モバイルデバイス(例えば、携帯電話、すなわち、いわゆる「スマートフォン」若しくは他のモバイルデバイス)、ウェアラブルデバイス、エクステンデッドリアリティデバイス(例えば、仮想現実(VR)デバイス、拡張現実(AR)デバイス、若しくは複合現実(MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、サーバコンピュータ、又は他のデバイスを備える。幾つかの態様では、装置は、1つ又は複数の画像を捕捉するための1つのカメラ又は複数のカメラを含む。幾つかの態様では、装置は、1つ又は複数の画像、通知、及び/又は他の表示可能なデータを表示するためのディスプレイを更に含む。幾つかの態様では、上記で説明した装置は、1つ又は複数のセンサを含んでもよい。
【0020】
本概要は、特許請求される主題の主要な又は必須の特徴を特定することは意図されず、特許請求される主題の範囲を決定するために独立して使用されることも意図されない。本主題は、この特許の明細書全体、いずれか又は全ての図面、及び各請求項の適切な部分を参照することによって理解されるはずである。
【0021】
上記については、他の特徴及び実施形態と共に、以下の明細書、特許請求の範囲、及び添付図面を参照すると、より明らかになろう。
【0022】
本出願の例示的な実施形態について、以下の図面を参照して以下で詳細に説明する。
【図面の簡単な説明】
【0023】
図1】本開示の幾つかの例に係る、例示的なエクステンデッドリアリティ(XR)システムを示すブロック図である。
図2】本開示の幾つかの例による、手の位置と仮想環境との手による相互作用とを追跡するために使用され得る手の例示的なランドマークポイントを示す図。
図3】本開示の幾つかの例に係る、ユーザによって装着されているXRシステムの一例を示す図である。
図4A】本開示の幾つかの例に係る、エレベータの制御パネルと相互作用するためにXRシステムを使用するユーザの一例を示す図である。
図4B】本開示の幾つかの例に係る、エレベータの制御パネルと相互作用するためにXRシステムを使用するユーザの一例を示す図である。
図4C】本開示の幾つかの例に係る、エレベータの制御パネルと相互作用するためにXRシステムを使用するユーザの一例を示す図である。
図5A】本開示の幾つかの例に係る、テレビを制御することができるリモコンと相互作用するためにXRシステムを使用するユーザの一例を示す図である。
図5B】本開示の幾つかの例に係る、テレビを制御することができるリモコンと相互作用するためにXRシステムを使用するユーザの一例を示す図である。
図6A】本開示の幾つかの例に係る、サーモスタットと相互作用するためにXRシステムを使用するユーザの一例を示す図である。
図6B】本開示の幾つかの例に係る、サーモスタットと相互作用するためにXRシステムを使用するユーザの一例を示す図である。
図7A】本開示の幾つかの例に係る、画像フレームと相互作用するためのユーザインタフェース入力オプションを提供するかどうかを決定することができるXRシステムを使用するユーザの一例を示す図である。
図7B】本開示の幾つかの例に係る、画像フレームと相互作用するためのユーザインタフェース入力オプションを提供するかどうかを決定することができるXRシステムを使用するユーザの一例を示す図である。
図8A】本開示の幾つかの例に係る、シーン内に複数のデバイスがあるときに1つ又は複数のデバイスと相互作用するためにエクステンデッドリアリティシステムを使用するユーザの例を示す図である。
図8B】本開示の幾つかの例に係る、シーン内に複数のデバイスがあるときに1つ又は複数のデバイスと相互作用するためにエクステンデッドリアリティシステムを使用するユーザの例を示す図である。
図8C】本開示の幾つかの例に係る、シーン内に複数のデバイスがあるときに1つ又は複数のデバイスと相互作用するためにエクステンデッドリアリティシステムを使用するユーザの例を示す図である。
図8D】本開示の幾つかの例に係る、シーン内に複数のデバイスがあるときに1つ又は複数のデバイスと相互作用するためにエクステンデッドリアリティシステムを使用するユーザの例を示す図である。
図9】本開示の幾つかの例に係る、少なくとも1つの入力オプションに関連付けられている情報を提示するためのプロセスの一例を示すフロー図である。
図10】本開示の幾つかの例に係る、例示的なコンピューティングシステムを示す。
【発明を実施するための形態】
【0024】
本開示の特定の態様及び実施形態が、以下で提供される。当業者に明らかになるように、これらの態様及び実施形態のうちの幾つかは独立して適用されてもよく、それらのうちの幾つかは組み合わせて適用されてもよい。以下の説明では、説明のために、本出願の実施形態の完全な理解をもたらすために具体的な詳細が記載される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実践され得ることは明らかであろう。図及び説明は限定的であることが意図されていない。
【0025】
以下の説明は、例示的な実施形態を提供するにすぎず、本開示の範囲、適用可能性、又は構成を限定することを意図しない。むしろ、例示的な実施形態の以下の説明は、例示的な実施形態を実装することを可能にする説明を当業者に提供する。添付の特許請求の範囲に記載されるような本出願の趣旨及び範囲から逸脱することなく、要素の機能及び配列において様々な変更が加えられてよいことを理解されたい。
【0026】
ユーザは、ユーザに関心のある特定の機能を提供することができる異なるデバイスと相互作用することが多い。例えば、ユーザは、スマートデバイス(例えば、モノのインターネット(IoT)又は他のネットワーク接続デバイス)、モバイルデバイス、制御デバイス(例えば、テレビ、機器、スピーカなどのためのリモコン)、システム制御パネル、機器などと相互作用することができる。様々な例示的な例では、ユーザは、コンテンツの視聴を管理するため、又はネットワーク接続テレビの電力設定を変更するためにネットワーク接続テレビと相互作用することができ、ネットワーク接続電球によって放射される光又はネットワーク接続電球の動作を制御するためにネットワーク接続電球と相互作用することができ、ネットワークルータの動作及び設定を構成するためにネットワークルータと相互作用することができ、ネットワーク接続サーモスタットの温度又は構成設定を制御するためにネットワーク接続サーモスタットと相互作用することができるなどといった具合である。
【0027】
場合によっては、デバイスは、ハードウェアユーザインタフェースを含むことができ、又はユーザがデバイスと相互作用するために使用することができるグラフィカルユーザインタフェース(例えば、ディスプレイ又は他の技術を使用してユーザインタフェースを表示することによって)を提示することができる。しかしながら、場合によっては、ユーザは、デバイスのユーザインタフェースを介してデバイスと相互作用することが困難な場合がある。一例では、ユーザインタフェースはユーザの手が届かない可能性があり、ユーザがデバイスと関連付けられているユーザインタフェースと相互作用するのを妨げる(又は困難にする)可能性がある。別の例として、ユーザインタフェースによって表示されるコンテンツは、ユーザが理解しない言語であってもよく、ユーザが認識するには小さすぎてもよく、そうでなければユーザがユーザインタフェースを使用するのが面倒であってもよい。幾つかの例では、デバイスと関連付けられている入力オプション(例えば、サポートされる入力、サポートされる入力方法などである)は、ユーザによって容易に明らかにされないか、又は容易に理解されない可能性があり(例えば、ユーザインタフェース入力などとは対照的に、ジェスチャ又は音声コマンドなど)、ユーザがデバイスと相互作用することを困難にする可能性がある。他の例では、ユーザインタフェースは、視覚、音声、及び/又は聴覚障害でユーザを支援するためのアクセシビリティ設定(又は適切なアクセシビリティ設定)を有していない場合がある。場合によっては、デバイスは、ユーザが見ることができる、そうでなければアクセス可能な外向き/外部制御を有さなくてもよく、及び/又はユーザがデバイスと相互作用するために使用できるユーザインタフェースを提示するためのディスプレイを含まなくてもよい。更に、多くの場合、シーンは、例えば、接続された電球、テレビ、接続されたプラグ、接続されたスピーカなどの複数の遠隔デバイスを含むことができる。シーン内に複数のデバイスがある場合、ユーザデバイスがシーン内の複数のデバイスから特定の遠隔デバイスと相互作用し、及び/又は特定の遠隔デバイスとの相互作用を管理することは困難であり得る。
【0028】
例えば、部屋(例えば、キッチン、寝室、オフィス、リビングルームなど)は、接続性及び/又は相互作用能力を有する複数のデバイスを有することができる。複数のデバイスのうちの1つとの通信及び/又は相互作用を開始及び/又は管理するために、ユーザデバイスは、複数のデバイスから特定のデバイスを識別すること、ユーザ相互作用及び/又はその特定のデバイスに関連付けられているデータを管理及び/又は単純化すること、その特定のデバイスに関連性のあるコンテンツを管理することなどが困難な場合がある。場合によっては、ユーザデバイスは、シーン内の複数のデバイスから相互作用データ(例えば、入力オプション/能力、入力、出力、グラフィカルユーザインタフェース、ユーザ相互作用支援データなど)を取得することができる。ユーザデバイスがシーン及び/又は現在のコンテキストの十分な知識及び/又は理解を有していない場合、及び/又はユーザから明確な命令を受信しない場合、ユーザデバイスはデータ(例えば、相互作用データ、デバイスデータなど)で過負荷になる可能性がある。幾つかの例では、ユーザデバイスは、シーン内の複数のデバイスのうちの1つ又は複数とのコンテンツ及び/又は相互作用を管理することが困難であり得る。しかしながら、本明細書に記載されたシステム及び技術は、ユーザデバイスが、コンテキスト情報に基づいて、シーン内の遠隔デバイスと関連付けられている仮想コンテンツを制限、制限、フィルタ、デクラッタ等することを可能にし得る。場合によっては、本明細書に記載のシステム及び技術を使用して、ユーザデバイスは、シーン内の遠隔デバイスとの通信/相互作用のために処理及び/又は提示されるコンテンツを改良することができ、及び/又はコンテキストに最もよく合う/適合する方法でコンテンツを提示することができる(例えば、大型、小型、オーバーレイ、ワールドロック、ヘッド又はデバイスロックなど)。幾つかの例では、ユーザデバイスは、コンテキスト情報を使用して、シーン内の特定の遠隔デバイスと相互作用する方法、その特定の遠隔デバイスに関連する相互作用データ及び/又は仮想コンテンツ、シーン内の遠隔デバイスのいずれかとの相互作用を管理する方法などを理解することができる。
【0029】
本明細書で更に説明するように、多くの場合、本明細書で説明するシステム及び技術は、デバイスがシーン内の遠隔デバイスとのユーザ相互作用を統合及び/又は単純化することを可能にすることができる。上記の場合、デバイスは、シーン内の遠隔デバイスとの通信及び/又は相互作用をより良好に管理、統合、単純化、及び/又は容易にすることができる。場合によっては、デバイスは、より困難なシーン及び/又は状況においてさえも、1つ又は複数の遠隔デバイスとのユーザ相互作用を容易にし、及び/又はサポートすることができる。例示すると、ユーザ及び/又はユーザと関連付けられているデバイスは、デバイスと相互作用することが困難であり得る。例えば、ユーザは、劣悪な照明条件下で、リモコンがユーザの手の届かないところにあるとき、又はリモコンのボタンがユーザにとって見る/理解することが困難である(例えば、ユーザの障害、ボタンのサイズ、ボタンのラベルの言語などが原因である)ときに、テレビリモコンと相互作用するのに苦労することがある。別の例として、ユーザは、特にユーザがネットワークルータ又はIoTデバイスと相互作用するためのユーザインタフェースにアクセスすることができない場合、外部制御を持たないネットワークルータ又は接続デバイス(例えば、ネットワーク接続サーモスタット、電球、スピーカ、カメラ、電気器具、スイッチなど)と相互作用するのに苦労する可能性がある。更に別の例として、制御パネル(又は制御パネルの特定の制御部)がユーザの手の届かないところにある場合、又はユーザが所望の操作/相互作用のためにどの制御部を使用すべきか分からない場合、ユーザは車両又はエレベータ制御パネルなどの制御パネルと相互作用するのに苦労する可能性がある。
【0030】
本明細書でより詳細に説明するように、システム、装置、方法(プロセスとも呼ばれ、コンピュータ可読媒体(本明細書では集合的に「システム及び技術」と呼ばれる)は、遠隔デバイスとのユーザ相互作用を改善、統合、単純化、及び/又は促進するために本明細書で説明される。幾つかの例では、電子デバイスは、例えば、接続されたデバイス(例えば、ネットワーク接続デバイス)、モバイルデバイス、外向き/外部制御を欠くデバイス、ディスプレイ及び/又はユーザインタフェースを欠くデバイス、そのようなデバイスと相互作用することを望むユーザに1つ又は複数の課題(例えば、ユーザによって認識/理解されていない異なる言語のインタフェースを有するデバイス、限定されたアクセシビリティオプションなど)を提示する特定の特性を有するデバイス、ユーザの手の届かない制御/インタフェースを有するデバイス、及び/又は任意の他のデバイスなどの他のデバイスとの相互作用を統合、単純化、及び/又は容易にすることができる。幾つかの例では、他のデバイスとの相互作用を容易にするように構成された電子デバイスは、スマートフォン、スマートウェアラブルデバイス(例えば、スマートウォッチ、スマートイヤホンなどで)、エクステンデッドリアリティ(XR)システム又はデバイス(例えば、スマートグラス、ヘッドマウントディスプレイ(HMD)など)などを含むことができる。本明細書では、本明細書に記載の技法を実装することができる電子デバイスの例としてXRシステムを使用して例を説明しているが、技法は、他の電子デバイス(例えば、モバイルデバイス、スマートウェアラブルデバイスなど)を使用して実行することができる。
【0031】
一般に、XRシステム又はデバイスは、仮想コンテンツをユーザに提供することができ、及び/又は現実世界又は物理環境と仮想環境(仮想コンテンツで構成される)とを組み合わせて、ユーザにXR体験を提供することができる。現実世界の環境は、書籍、人物、車両、建物、テーブル、椅子、及び/又は他の現実世界又は物理オブジェクトなどの現実世界のオブジェクト(物理オブジェクトとも呼ばれる)を含むことができる。XRシステム又はデバイスは、異なるタイプのXR環境(例えば、ユーザは、XR環境と相互作用するために、XRシステム又はデバイスを使用し得る)との相互作用を容易にすることができる。XRシステムは、VR環境との相互作用を容易にする仮想現実(VR)システム、AR環境との相互作用を容易にする拡張現実(AR)システム、MR環境との相互作用を容易にする複合現実(MR)システム、及び/又は他のXRシステムを含むことができる。本明細書で使用される場合、XRシステム及びXRデバイスという用語は互換的に使用される。XRシステム又はデバイスの例としては、とりわけ、HMD、スマートグラス(例えば、通信ネットワークを使用して通信することができるネットワーク接続グラス)が挙げられる。
【0032】
ARは、物理的な現実世界のシーン又は環境のユーザのビューを介して仮想又はコンピュータ生成コンテンツ(ARコンテンツと呼ばれる)を提供する技術である。ARコンテンツは、ビデオ、画像、グラフィックコンテンツ、位置データ(例えば、全地球測位システム(GPS)データ又は他の位置データ)、音、それらの任意の組合せ、及び/又は他の拡張コンテンツなどの仮想コンテンツを含むことができる。ARシステム又はデバイスは、現実の人の現在の知覚を置き換えるのではなく、強化する(又は増強する)ように設計される。例えば、ユーザは、ARデバイスディスプレイ(例えば、ARグラスのレンズ)を介して実際の静止又は移動する物理的なオブジェクトを見ることができるが、物理的なオブジェクトのユーザの視覚的認識は、そのオブジェクトの仮想画像(例えば、デローリアンの仮想画像によって置き換えられた現実世界の車)によって、物理的なオブジェクトに追加されたARコンテンツ(例えば、生きている動物に追加された仮想ウィング)によって、物理的なオブジェクトに対して表示されたARコンテンツ(例えば、建物上の標識の近くに表示される情報仮想コンテンツ、1つ又は複数の画像内の現実世界のテーブルに仮想的に固定された(例えば、)仮想コーヒーカップなど)によって、及び/又は他のタイプのARコンテンツを表示することによって拡張又は強化され得る。様々なタイプのARシステムを、ゲーム、娯楽、及び/又は他の用途に使用することができる。
【0033】
場合によっては、ARコンテンツを提供するために使用することができる2つのタイプのARシステムは、ビデオシースルー(ビデオパススルーとも呼ばれる)ディスプレイ及び光学シースルーディスプレイを含む。ビデオシースルー及び光学シースルーディスプレイを使用して、現実世界又は物理オブジェクトのユーザの視覚的知覚を向上させることができる。ビデオシースルーシステムでは、現実世界のシナリオのライブビデオが表示される(例えば、ライブビデオ上で拡張又は拡張された1つ又は複数のオブジェクトを含む)。ビデオシースルーシステムは、モバイルデバイス(例えば、携帯電話ディスプレイ上のビデオ)、HMD、又はビデオ及びビデオ上のコンピュータ生成オブジェクトを表示することができる他の適切なデバイスを使用して実装することができる。
【0034】
AR機能を備えた光学シースルーシステムは、現実世界シーンのビュー上にARコンテンツを直接表示することができる(例えば、現実世界シーンのビデオコンテンツを表示せずに)。例えば、ユーザは、ディスプレイ(例えば、グラス又はレンズ)を介して現実世界のシーン内の物理的なオブジェクトを見ることができ、ARシステムは、ディスプレイ上にARコンテンツ(例えば、投影又は他の方法で表示される)を表示して、1つ又は複数の現実世界のオブジェクトの強化された視覚的知覚をユーザに提供することができる。光学シースルーARシステム又はデバイスの例は、ARグラス、HMD、別のARヘッドセット、又は各眼の前にレンズ又はガラス(又は両眼の上の単一のレンズ又はガラス)を含むことができる他の同様のデバイスであり、ユーザが物理的なオブジェクトを有する現実世界のシーンを直接見ることを可能にする一方で、そのオブジェクトの拡張画像又は更なるARコンテンツをディスプレイに投影して、現実世界のシーンのユーザの視覚的知覚を増強することも可能にする。
【0035】
VRは、現実世界環境の仮想バージョンを描写する3次元コンピュータ生成VR環境又はビデオにおける完全な没入体験を提供する。VR環境は、見かけ上現実的又は物理的な方法で相互作用することができる。VR環境を体験しているユーザが現実世界で動くと、仮想環境でレンダリングされる画像も変化し、ユーザがVR環境内で動いているという知覚をユーザに与える。例えば、ユーザは、左又は右に曲がり、上又は下を見上げ、及び/又は前方又は後方に移動することができ、したがってVR環境のユーザの視点を変更することができる。ユーザに提示されるVRコンテンツはそれに応じて変化することができるため、ユーザの体験は現実世界と同様にシームレスである。VRコンテンツは、幾つかの場合には、VRビデオを含むことができ、VRビデオは、極めて高い品質でキャプチャ及びレンダリングされ、真に没入型の仮想現実エクスペリエンスを潜在的に提供することができる。仮想現実アプリケーションは、とりわけ、ゲーム、トレーニング、教育、スポーツビデオ、オンラインショッピングを含むことができる。VRコンテンツは、VR体験中にユーザの目を完全にカバーするVRHMD又は他のVRヘッドセットなどのVRシステム又はデバイスを使用してレンダリング及び表示することができる。
【0036】
MR技術は、VR及びARの態様を組み合わせて、ユーザに没入体験を提供することができる。例えば、MR環境では、現実世界及びコンピュータ生成オブジェクトが相互作用することができる(例えば、現実の人物は、あたかも仮想の人物が現実の人物であるかのように仮想の人物と相互作用することができる。)。
【0037】
場合によっては、XRシステムは、ユーザが仮想コンテンツのアイテムと相互作用することを可能にするために、ユーザの一部(例えば、ユーザの手及び/又は指先)を追跡することができる。スマートグラス又はHMDなどのXRシステムは、カメラ及び/又は1つ又は複数のセンサを実装して、XRシステム及びXRシステムが位置する物理的環境内の他のオブジェクトの位置を追跡することができる。XRシステムは、このようなトラッキング情報を使用して、XRシステムのユーザに現実的なXR体験を提供することができる。例えば、XRシステムは、ユーザが没入型仮想環境又はコンテンツを体験又は相互作用することを可能にすることができる。現実的なXR体験を提供するために、幾つかのXRシステム又はデバイスは、仮想コンテンツを物理世界と統合することができる。場合によっては、XRシステム又はデバイスは、オブジェクト及びデバイスの相対的な姿勢及び動きにマッチし得る。例えば、XRシステムは、デバイス、オブジェクト、及び/又は現実世界環境の他の部分の相対位置及び移動を一致させるために、追跡情報を使用して、デバイス、オブジェクト、及び/又は現実世界環境のマップの相対姿勢を計算することができる。1つ又は複数のデバイス、オブジェクト、及び/又は現実世界環境の他の部分の姿勢及び動きを使用して、XRシステムは、XRシステムのユーザに現実に見える方法でコンテンツを現実世界環境に固定することができる。相対姿勢情報を使用して、仮想コンテンツをユーザの知覚された動き、並びにデバイス、オブジェクト、及び現実世界環境の他の部分の時空間状態と一致させることができる。
【0038】
幾つかの例では、XRシステムを使用して、1つ又は複数の接続されたデバイス、リモコン、制御パネル、モバイルデバイスなどの1つ又は複数の他のデバイスと相互作用するためのユーザガイダンスデータを提供することができる。本明細書に記載のシステム及び技術によれば、XRシステムを活用して、より直感的で自然なコンテンツ及び/又は他のデバイスとの相互作用を可能にすることができる。幾つかの例では、XRシステムは、シーン内の他のデバイスを検出し、他のデバイスとの相互作用を容易にし、及び/又は管理することができる。場合によっては、XRシステムは、他のデバイスとの事前に確立された接続(例えば、ペアリングなど)を有することができ、これにより、XRシステムは、シーン内の他のデバイスを検出することができる。他の例では、XRシステムは、シーン内に位置する他のデバイスを含むシーンのマップを維持することができ、これを、XRシステムがシーン内にあるときに他のデバイスを検出するために使用することができる。幾つかの例では、XRシステムは、画像センサ、音声センサ、レーダセンサ、LIDARセンサなどの1つ又は複数のセンサを使用することができ、これらをXRシステムはシーン内の他のデバイスを検知するために使用することができる。場合によっては、XRシステムは、シーンと関連付けられているコンテキスト情報を使用して、他のデバイスがシーン内にあると決定することができる。例えば、XRシステムは、他のデバイスがシーン内に存在することをXRデバイスに示す、シーン及び/又は他のデバイスに関するコンテキスト情報を含み得る。XRシステムがシーン内にあるとき、XRシステムは、コンテキスト情報に基づいて、他方のデバイスがシーン内にあると決定することができる。XRシステムは、シーン内で検出された他のデバイスからの情報を取得して、他のデバイスとの相互作用を容易にし、管理するなどすることができる。
【0039】
例えば、XRシステムは、シーン内で検出された他のデバイスから、他のデバイスのための1つ又は複数の入力オプションを表示又は識別する入力データ、並びに/或いはシーン、他のデバイス、及び/又はXRシステムと関連付けられているコンテキスト情報を取得することができる。XRシステムは、入力データ及び/又はコンテキスト情報を処理し、XRシステムを使用して(例えば、着用して)ユーザに、ユーザインタフェース、仮想コンテンツ、及び/又はデバイスと相互作用する(例えば、制御、コンテンツへのアクセス、ステータス情報へのアクセス、出力へのアクセスなど)ための入力オプションを提示することができる。場合によっては、本明細書で更に説明するように、入力データ及び/又はコンテキスト情報に基づいてシーン内の他のデバイスを制御するためにXRシステムを使用することもできる。
【0040】
幾つかの例では、XRシステムは、他のデバイスから、サーバ(例えば、他のデバイスの動作に関与するクラウドベースのサーバ)から、及び/又は別のソースから、1つ又は複数の入力オプションを示す入力データを取得又は受信することができる。入力データは、他の情報の中でも、入力タイプ(例えば、ジェスチャベース、音声ベース、タッチベースなど)、特定の入力に基づく機能(例えば、右へのスワイプは、サーモスタットに温度を上昇させることなどを引き起こすことができる)など、他のデバイスと相互作用するために使用できる幾つか又は全ての入力オプションを示すことができる。幾つかの例では、デバイスが入力データをXRシステムに通信しない場合(例えば、XRシステムがデバイスへ要求を送信した後で)、XRシステムは、デバイスがXRシステムと通信する能力を有していないと決定又は推論することができる(例えば、無線ネットワークを介して)。そのような例では、XRシステムは、ユーザがデバイスと相互作用する方法を決定するのを助けるための命令又は他の情報を提示する(例えば、デバイス上の特定のボタンを強調表示する)ことができる。
【0041】
XRシステムは、コンテキスト情報を使用して、コンテンツ、入力オプション、ユーザインタフェース、及び/又はユーザが他のデバイスと相互作用するために使用するために出力するモダリティを決定することができる。幾つかの例では、XRシステムは、ローカルに(例えば、1つ又は複数のカメラ、1つ又は複数の慣性測定ユニット(IMU)などのXRシステムの1つ又は複数のセンサを使用する)及び/又は1つ又は複数のリモートソースから(例えば、サーバ、クラウド、インターネット、他のデバイス、1つ又は複数のセンサなど)コンテキスト情報を取得又は受信することができる。コンテキスト情報は、他のデバイス(ユーザがXRシステムを使用して相互作用することができる)、XRシステム及び/又は他のデバイスが配置されているシーン又は環境、他のデバイスと相互作用しようと試みるXRシステムのユーザ、及び/又は任意の所与の時点における他のコンテキストに関連することができる。例えば、コンテキスト情報は、他のデバイスとの意図されたユーザ相互作用、シーン内のユーザの1つ又は複数の動作、ユーザに関連付けられている特性又は個人情報、ユーザ及び他のデバイスに関連付けられている履歴情報(例えば、ユーザによるデバイスの過去の使用など)、他のデバイスのユーザインタフェース能力(例えば、ユーザが見ることができるか、そうでなければアクセス可能な外向き/外部制御を有するかどうか)、他のデバイスに関連付けられている情報(例えば、他のデバイスがXRシステムからどれだけ離れているか)、シーンに関連付けられている情報(例えば、照明、ノイズなど)、及び/又は他の情報を含むことができる。
【0042】
コンテキスト情報は、ユーザ、XRシステム、他のデバイス、シーンなどと関連付けられている状況/コンテキストのコンテキスト認識をXRシステムに提供することができる。コンテキスト情報及び他のデバイスと関連付けられている入力オプションを識別するデータを使用して、XRシステムは、他のデバイスとのユーザ相互作用を可能にする1つ又は複数の入力オプションに対応するユーザ相互作用データを出力(例えば、存在する、提供する、生成するなど)することができる。場合によっては、XRシステムは、1つ又は複数の入力オプションに対応する視覚コンテンツ/データを提示することができる。例えば、ユーザ相互作用データは、入力オプションと関連付けられている1つ又は複数のユーザインタフェース要素、入力オプションと関連付けられている入力を提供する方法を示すキュー、及び/又は他のデータを含むことができる。場合によっては、XRシステムは、これに加えて又は代えて、1つ又は複数の入力オプションに対応する非視覚データを出力することができる。例えば、XRシステムは、1つ又は複数の入力オプションに対応する音声キュー又は命令などの触覚及び/又は音声情報を出力することができる。
【0043】
コンテキスト情報は、XRシステムが、ユーザ、XRシステム、他のデバイス、シーンに関連付けられる状況/コンテキストを考慮してコンテキスト的に適切である、及び/又は他のデバイスとの相互作用を容易にするコンテンツ(例えば、ビジュアルバーチャルコンテンツ、音声コンテンツ、触覚フィードバックなど)を出力することを可能にし得る。幾つかの例では、XRシステムは、ユーザ相互作用及び/又は関連するデータ/コンテンツを単純化するためにコンテキスト情報を使用することができる。例えば、場合によっては、他のデバイスは、多数の入力機能/能力を有してもよい。XRシステムは、コンテキスト情報を使用して、XRシステム及び/又は現在のコンテキストに関連性のあるデバイスと関連付けられている入力オプションをフィルタリングすることができる。XRシステムは、ユーザ相互作用、ユーザ相互作用データ/コンテンツなどを単純化するために、フィルタリングされた/低減された数の入力オプションを出力することができる。
【0044】
前述したように、XRシステムは、入力データ及びコンテキスト情報を使用して、ユーザインタフェース及び/又はユーザがXRシステムから他のデバイスと相互作用するための入力オプションをレンダリングすることができる。場合によっては、XRシステムは、他のデバイスと通信して、XRシステムによってレンダリングされるユーザインタフェースとのユーザ相互作用に基づいて他のデバイスに入力/コマンドを提供することができる。例えば、XRシステムは、他のデバイスとのユーザ相互作用を容易にするために、他のデバイス又は他のデバイスの一部(例えば、制御装置、表面、ディスプレイ、パネルなど)上のオーバーレイとしてユーザに見えるようにユーザインタフェースを表示することができる。XRシステムは、ユーザインタフェースとのユーザ相互作用を検出及び変換して、制御コマンド及び/又はユーザ相互作用命令を生成することができる。例えば、XRシステムは、デバイス(例えば、XRシステム及び/又はコントローラを介して、)を介してユーザジェスチャ及び/又は入力を検出し、そのようなユーザジェスチャ及び/又は入力をユーザインタフェースとの相互作用として解釈/変換することができる。次いで、XRシステムは、解釈/翻訳されたユーザジェスチャ及び/又は入力に基づいて、他のデバイスを制御するためのコマンド/命令を生成することができる。オーバーレイされたユーザインタフェースとの相互作用は、ユーザ入力に基づいて他のデバイスを制御し、及び/又は他のデバイスからのデータ/出力にアクセスするために、XRシステムによって使用され得る。場合によっては、他のデバイスとのユーザ相互作用を促進及び/又は改善するために、XRシステムは、他のデバイス又は他のデバイスの一部に対してユーザインタフェースを正確にレンダリングできるように、他のデバイスを位置特定及び/又はマッピングすることができる。
【0045】
幾つかの例では、XRシステムは、ユーザインタフェースを介してユーザにユーザ相互作用ガイダンスデータ及び/又は入力オプションを提供するために、ワールドロック又はスクリーンロック方式でシーン上にオーバーレイされたユーザインタフェースを提示することができる。場合によっては、オーバーレイは、1つ又は複数のグラフィカルユーザインタフェース要素と相互作用する方法をユーザに示すガイダンス情報を有する1つ又は複数のグラフィカルユーザインタフェース要素を含むことができる。
【0046】
仮想プライベート空間の生成に関する更なる詳細が、様々な図に関して本明細書で提供される。図1は、本開示の幾つかの態様にしたがう、例示的なエクステンデッドリアリティ(XR)システム100を例示する図解である。XRシステム100は、XRアプリケーションを実行し(又は実行し)、XR動作を実施することができる。幾つかの例では、XRシステム100は、XR体験の一部として、物理世界(例えば、シーン)の追跡及び位置特定、マッピング、並びにディスプレイ109上の仮想コンテンツの位置決め及びレンダリングを実行することができる。例えば、XRシステム100は、物理世界におけるシーンのマップ(例えば、3次元(3D)マップ)を生成し、シーンに対する(例えば、シーンの3Dマップに対する)XRシステム100の姿勢(例えば、位置及び位置)を追跡し、仮想コンテンツをシーンのマップ上の特定の位置に配置及び/又は固定し、仮想コンテンツが、仮想コンテンツが配置及び/又は固定されるシーンのマップ上の特定の位置に対応するシーン内の位置にあるように見えるように、仮想コンテンツをディスプレイ109上にレンダリングすることができる。ディスプレイ109は、ガラス、スクリーン、1つ又は複数のレンズ、プロジェクタ、及び/又はユーザが現実世界の環境を見ることを可能にし、更にその上にXR仮想コンテンツを表示することを可能にする他の表示機構を含むことができる。
【0047】
この例示的な例では、XRシステム100は、1つ又は複数の画像センサ102、加速度計104、ジャイロスコープ106、記憶装置107、コンピュート構成要素110、XRエンジン120、入力オプションエンジン122、コンテキスト管理エンジン123、画像処理エンジン124、及びレンダリングエンジン126を含む。図1に示す構成要素102~126は、例示及び説明目的で与えられる非限定的例であり、他の例は、図1に示すものよりも多くの、より少ない、又は異なる構成要素を含むことができることに留意されたい。例えば、場合によっては、XRシステム100は、1つ又は複数の他のセンサ(例えば、加速度計104及びジャイロスコープ106以外の1つ又は複数の慣性測定ユニット(IMU)、レーダ、光検出及び測距(LIDAR)センサ、音声センサなど)、1つ又は複数の表示デバイス、1つ又は複数の他の処理エンジン、1つ又は複数の他のハードウェア構成要素、並びに/又は図1に示されていない1つ又は複数の他のソフトウェア及び/若しくはハードウェア構成要素を含むことができる。XRシステム100によって実施され得る例示的なアーキテクチャ及び例示的なハードウェア構成要素は、図9に関連して以下で更に説明される。
【0048】
更に、簡単及び説明目的のために、1つ又は複数の画像センサ102は、本明細書では(例えば、単数形で)画像センサ102と言及されることになる。しかしながら、当業者であれば分かるように、XRシステム100は単一の画像センサ又は複数の画像センサを含むことができる。また、XRシステム100の構成要素(例えば、102~126)のいずれかへの単数形又は複数形での言及は、XRシステム100によって実施されるこのような構成要素の数を1つ又は2つ以上に限定するものとして解釈されるべきではない。例えば、単数形の加速度計104への言及は、XRシステム100によって実装される加速度計の数を1つに限定するものとして解釈されるべきではない。当業者であれば分かるように、図1に示す構成要素102~126のいずれかについて、XRシステム100がそのような構成要素のうちの1つのみ又はそのような構成要素のうちの2つ以上を含むことができる。
【0049】
XRシステム100は、(有線又は無線で)入力デバイス108を含むか、又はこれと通信している。入力デバイス108は、タッチスクリーン、ペン若しくは他のポインタデバイス、キーボード、マウス、ボタン若しくはキー、音声コマンドを受信するためのマイクロフォン、ジェスチャコマンドを受信するためのジェスチャ入力デバイス、それらの任意の組合せ、及び/又は他の入力デバイスなどの任意の適切な入力デバイスを含むことができる。場合によっては、画像センサ102は、ジェスチャコマンドを解釈するために処理することができる画像を捕捉することができる。
【0050】
XRシステム100は、単一のコンピューティングデバイス又は複数のコンピューティングデバイスの一部であり得る、又はそれらによって実装され得る。幾つかの例では、XRシステム100は、エクステンデッドリアリティヘッドマウントディスプレイ(HMD)デバイス、エクステンデッドリアリティグラス(例えば、エクステンデッドリアリティグラス又はARグラス)、カメラシステム(例えば、デジタルカメラ、IPカメラ、ビデオカメラ、セキュリティカメラなど)、電話システム(例えば、スマートフォン、携帯電話、会議システムなど)、デスクトップコンピュータ、ラップトップ又はノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、スマートテレビ、表示デバイス、ゲームコンソール、ビデオストリーミングデバイス、IoT(モノのインターネット)デバイス、及び/又は任意の他の適切な電子デバイスなどの電子デバイスの一部となり得る。
【0051】
幾つかの実装形態では、1つ又は複数の画像センサ102、加速度計104、ジャイロスコープ106、記憶装置107、コンピュート構成要素110、XRエンジン120、入力オプションエンジン122、コンテキスト管理エンジン123、画像処理エンジン124、及びレンダリングエンジン126は、同じコンピューティングデバイスの一部となり得る。例えば、場合によっては、1つ又は複数の画像センサ102、加速度計104、ジャイロスコープ106、記憶装置107、コンピュート構成要素110、XRエンジン120、入力オプションエンジン122、コンテキスト管理エンジン123、画像処理エンジン124、及びレンダリングエンジン126は、HMD、エクステンデッドリアリティグラス、スマートフォン、ラップトップ、タブレットコンピュータ、ゲームシステム、及び/又は任意の他のコンピューティングデバイスに組み込むことができる。しかしながら、幾つかの実装形態では、1つ又は複数の画像センサ102、加速度計104、ジャイロスコープ106、記憶装置107、コンピュート構成要素110、XRエンジン120、入力オプションエンジン122、コンテキスト管理エンジン123、画像処理エンジン124、及びレンダリングエンジン126は、2つ以上の別個のコンピューティングデバイスの一部となり得る。例えば、場合によっては、構成要素102~126のうちの幾つかは、1つのコンピューティングデバイスの一部であってもよく、又は1つのコンピューティングデバイスによって実装されてもよく、残りの構成要素は、1つ又は複数の他のコンピューティングデバイスの一部であってもよく、又は1つ又は複数の他のコンピューティングデバイスによって実装されてもよい。
【0052】
記憶装置107は、データを記憶するための任意の記憶デバイスとすることができる。更に、記憶装置107は、XRシステム100の任意の構成要素からのデータを記憶することができる。例えば、記憶装置107は、画像センサ102からのデータ(例えば、画像又はビデオデータ)、加速度計104からのデータ(例えば、測定値)、ジャイロスコープ106からのデータ(例えば、測定値)、コンピュート構成要素110からのデータ(例えば、処理パラメータ、好み、仮想コンテンツ、レンダリングコンテンツ、シーンマップ、追跡及び位置特定データ、オブジェクト検出データ、プライバシーデータ、XRアプリケーションデータ、顔認識データ、遮蔽データなど)、XRエンジン120からのデータ、入力オプションエンジン122からのデータ、コンテキスト管理エンジン123からのデータ、画像処理エンジン124からのデータ、及び/又はレンダリングエンジン126からのデータ(例えば、出力フレーム)を記憶することができる。幾つかの例では、記憶装置107は、コンピュート構成要素110による処理のためにフレームを記憶するためのバッファを含むことができる。
【0053】
1つ又は複数のコンピュート構成要素110は、中央処理ユニット(CPU)112、グラフィックス処理ユニット(GPU)114、デジタル信号プロセッサ(DSP)116、及び/又は画像信号プロセッサ(ISP)118を含むことができる。コンピュート構成要素110は、画像強調、コンピュータビジョン、グラフィックスレンダリング、エクステンデッドリアリティ(例えば、追跡、位置特定、ポーズ推定、マッピング、コンテンツ固定、コンテンツレンダリングなど)、画像/ビデオ処理、センサ処理、認識(例えば、テキスト認識、顔認識、オブジェクト認識、特徴認識、追跡又はパターン認識、シーン認識、オクルージョン検出など)、機械学習、フィルタリング、及び本明細書において記載する様々な動作のいずれかなど、様々な動作を実施することができる。この例では、コンピュート構成要素110は、XRエンジン120、入力オプションエンジン122、コンテキスト管理エンジン123、画像処理エンジン124、及びレンダリングエンジン126を実装する。他の例では、コンピュート構成要素110は、1つ又は複数の他の処理エンジンを実装することもできる。
【0054】
画像センサ102は、どの画像及び/又はビデオセンサ又は取込みデバイスも含むことができる。幾つかの例では、画像センサ102は、デュアルカメラアセンブリ、三カメラアセンブリ、四カメラアセンブリ、又は他の数のカメラなどのマルチカメラアセンブリの一部となり得る。幾つかの例では、画像センサ102は、1つ又は複数の可視光カメラ(例えば、赤緑青又はRGB画像などのモノクロ又はカラー画像を捕捉するように構成される)、1つ又は複数の赤外線(IR)カメラ及び/又は近赤外(NIR)カメラ、1つ又は複数の深度センサ、及び/又は他のタイプの画像センサ又はカメラの任意の組合せを含むことができる。
【0055】
画像センサ102は、画像及び/又はビデオコンテンツ(例えば、生画像及び/又はビデオデータ)を捕捉することができ、これは、本明細書で説明するように、コンピュート構成要素110、XRエンジン120、入力オプションエンジン122、コンテキスト管理エンジン123、画像処理エンジン124、及び/又はレンダリングエンジン126によって処理することができる。例えば、画像センサ102は、画像データを捕捉することができ、画像データに基づいてフレームを生成することができ、及び/又は処理のために画像データ若しくはフレームをコンピュート構成要素110、XRエンジン120、入力オプションエンジン122、コンテキスト管理エンジン123、画像処理エンジン124、及び/又はレンダリングエンジン126に提供することができる。フレームは、ビデオシーケンスのビデオフレーム又は静止画像を含むことができる。フレームは、シーンを表すピクセルアレイを含むことができる。例えば、フレームは、ピクセルごとに赤、緑、及び青の色成分を有する赤-緑-青(RGB)フレーム、ピクセルごとに1つの輝度成分及び2つの色差(色)成分(赤の色差及び青の色差)を有する、輝度、赤の色差、青の色差(YCbCr)フレーム、又は任意の他の適切なタイプのカラー又はモノクロ画像、であり得る。
【0056】
場合によっては、画像センサ102(及び/又はXRシステム100の他のカメラ)は、深度情報も捕捉するように構成することができる。例えば、幾つかの実装形態では、画像センサ102(及び/又は他のカメラ)は、RGB深度(RGB-D)カメラを含むことができる。幾つかの例では、XRシステム100は、画像センサ102(及び/又は他のカメラ)とは別個であり、深度情報を捕捉することができる1つ又は複数の深度センサ(図示せず)を含むことができる。例えば、そのような深度センサは、画像センサ102からは独立して、深度情報を取得することができる。幾つかの例では、深度センサは、画像センサ102と同じ一般的なロケーション中に物理的に設置され得るが、画像センサ102とは異なる周波数又はフレームレートで動作し得る。幾つかの例では、深度センサは、1つ又は複数の狭帯域の光を含む場合がある構造化又はテクスチャード光パターンを、シーン内の1つ又は複数のオブジェクトに投影することができる光源の形をとることができる。深度情報は次いで、オブジェクトの表面形状によって引き起こされた、投影されたパターンの幾何学的歪みを活用することによって取得することができる。一例では、深度情報は、赤外線構造化光プロジェクタと、カメラ(例えば、RGBカメラ)に登録された赤外線カメラの組合せなどのステレオセンサから取得されてもよい。
【0057】
XRシステム100はまた、画像センサ102以外の1つ又は複数のセンサを含む。1つ又は複数のセンサは、1つ又は複数の加速度計(例えば、加速度計104)、1つ又は複数のジャイロスコープ(例えば、ジャイロスコープ106)、及び/又は他のセンサを含むことができる。1つ又は複数のセンサは、速度、配向、及び/又は他の位置関連情報をコンピュート構成要素110に提供することができる。例えば、加速度計104は、XRシステム100によって加速度を検出することができ、検出された加速度に基づいて加速度測定値を生成することができる。場合によっては、加速度計104は、XRシステム100の位置又は姿勢を決定するために使用することができる1つ又は複数の並進ベクトル(例えば、上/下、左/右、前/後)を提供することができる。ジャイロスコープ106は、XRシステム100の向き及び角速度を検出及び測定することができる。例えば、ジャイロスコープ106は、XRシステム100のピッチ、ロール、及びヨーを測定するために使用することができる。場合によっては、ジャイロスコープ106は、(例えば、ピッチ、ヨー、ロール)1つ又は複数の回転ベクトルを提供することができる。幾つかの例では、画像センサ102及び/又はXRエンジン120は、加速度計104(例えば、1つ又は複数の並進ベクトル)及び/又はジャイロスコープ106(例えば、1つ又は複数の回転ベクトル)によって取得された測定値を使用して、XRシステム100の姿勢を計算することができる。前述したように、他の例では、XRシステム100はまた、慣性測定ユニット(IMU)、磁力計、視線及び/又は視線追跡センサ(例えば、視線追跡カメラ)、マシンビジョンセンサ、スマートシーンセンサ、音声認識センサ、衝撃センサ、ショックセンサ、位置センサ、傾斜センサなどの他のセンサを含むことができる。
【0058】
場合によっては、1つ又は複数のセンサは、少なくとも1つのIMUを含むことができる。IMUは、1つ又は複数の加速度計、1つ又は複数のジャイロスコープ、及び/又は1つ又は複数の磁力計の組合せを使用して、XRシステム100の特定の力、角速度、及び/又は向きを測定する電子デバイスである。幾つかの例では、1つ又は複数のセンサは、画像センサ102(及び/又はXRシステム100の他のカメラ)によって捕捉された画像の捕捉に関連付けられている測定情報及び/又はXRシステム100の1つ又は複数の深度センサを使用して取得された深度情報を出力することができる。
【0059】
1つ又は複数のセンサ(例えば、加速度計104、ジャイロスコープ106、1つ又は複数の他のタイプのIMU、及び/又は他のセンサ)の出力は、XRシステム100の姿勢(頭部姿勢とも呼ばれる)及び/又は画像センサ102の姿勢(又はXRシステム100の他のカメラ)を決定するためにエクステンデッドリアリティエンジン120によって使用され得る。場合によっては、XRシステム100の姿勢と画像センサ102(又は他のカメラ)の姿勢とは同じであり得る。画像センサ102の姿勢は、基準系に対する(例えば、オブジェクト202に関する)画像センサ102の位置及び向きを指す。幾つかの実装形態では、カメラのポーズは、6自由度(6DOF)で判断することができ、この自由度は、3つの並進成分(例えば、画像プレーンなどの基準フレームに相対したX(水平)、Y(垂直)、及びZ(深度)座標で与えることができる)並びに3つの角度成分(例えば、同じ基準フレームに相対したロール、ピッチ、及びヨー)を指す。
【0060】
場合によっては、デバイストラッカ(図示せず)は、1つ又は複数のセンサからの測定値及び画像センサ102からの画像データを使用して、XRシステム100の姿勢(例えば、6DOF姿勢)を追跡することができる。例えば、デバイストラッカは、画像データからの視覚データ(例えば、視覚追跡ソリューションを使用する)を測定値からの慣性データと融合して、物理世界(例えば、シーン)に対するXRシステム100の位置及び動き並びに物理世界のマップを決定することができる。以下に説明するように、幾つかの例では、XRシステム100の姿勢を追跡するとき、デバイストラッカは、シーンの三次元(3D)マップ(例えば、実世界)を生成し、及び/又はシーンの3Dマップの更新を生成することができる。3Dマップ更新は、例えば、限定ではないが、シーン及び/又はシーンの3Dマップに関連付けられている新しい又は更新された特徴及び/又は特徴又はランドマーク点、シーン内のXRシステム100の位置及びシーンの3Dマップを識別又は更新する位置特定更新などを含むことができる。3Dマップは、現実/物理世界におけるシーンのデジタル表現を提供することができる。幾つかの例では、3Dマップは、ロケーションベースのオブジェクト及び/又はコンテンツを、実世界座標及び/又はオブジェクトに固定することができる。XRシステム100は、マッピングされたシーン(例えば、3Dマップによって表される、及び/又は3Dマップと関連付けられている物理的世界のシーン)を使用して、物理世界及び仮想世界をマージし、及び/又は仮想コンテンツ若しくはオブジェクトを物理環境とマージすることができる。
【0061】
幾つかの態様では、画像センサ102及び/又はXRシステム100全体の姿勢は、画像センサ102(及び/又はXRシステム100の他のカメラ)によって捕捉された画像に基づく視覚追跡ソリューションを使用してコンピュート構成要素110によって決定及び/又は追跡することができる。例えば、幾つかの例では、コンピュート構成要素110は、コンピュータビジョンベースの追跡、モデルベースの追跡、並びに/又は同時位置推定及び地図構築(SLAM)技法を使って追跡を実施することができる。例えば、コンピュート構成要素110は、SLAMを実施することができ、又はSLAMエンジン(図示せず)と(ワイヤード若しくはワイヤレス)通信することができる。SLAMは、カメラ(例えば、画像センサ102)及び/又はXRシステム100の姿勢をそのマップに対して同時に追跡しながら、環境(例えば、XRシステム100によってモデル化されている環境のマップ)のマップが作成される技術のクラスを指す。マップは、SLAMマップと呼ばれることがあり、3次元(3D)であり得る。SLAM技術は、画像センサ102(及び/又はXRシステム100の他のカメラ)によって捕捉されたカラー又はグレースケール画像データを使用して実行することができ、画像センサ102及び/又はXRシステム100の6DOF姿勢測定値の推定値を生成するために使用することができる。6DOF追跡を実施するように構成された、そのようなSLAM技法は、6DOF SLAMと呼ぶことができる。場合によっては、1つ又は複数のセンサ(例えば、加速度計104、ジャイロスコープ106、1つ又は複数のIMU、及び/又は他のセンサ)の出力を使用して、推定姿勢を推定、補正、及び/又は調整することができる。
【0062】
場合によっては、6DOFSLAM(例えば、6DOF追跡)は、画像センサ102(及び/又は他のカメラ)からの特定の入力画像から観測された特徴をSLAMマップに関連付けることができる。例えば、6DOFSLAMは、入力画像からの特徴点の関連付けを使用して、入力画像に対する画像センサ102及び/又はXRシステム100の姿勢(位置及び向き)を決定することができる。6DOFマッピングは、SLAMマップを更新するために実施することもできる。場合によっては、6DOF SLAMを使って維持されるSLAMマップは、2つ以上の画像から三角測量された3D特徴点を含むことができる。例えば、観察されたシーンを表すために、入力画像又はビデオストリームから、キーフレームを選択することができる。全てのキーフレームについて、画像に関連付けられたそれぞれの6DOFカメラポーズを判断することができる。画像センサ102及び/又はXRシステム100の姿勢は、三次元SLAMマップからの特徴を画像又はビデオフレームに投影し、検証された二次元-三次元対応からカメラ姿勢を更新することによって決定することができる。
【0063】
1つの説明のための例において、コンピュート構成要素110は、全ての入力画像から、又は各キーフレームから、特徴点を抽出することができる。本明細書で使用する特徴点(登録点とも呼ばれる)とは、特に、手の一部、テーブルのへりなど、画像の特有又は識別可能な一部である。取り込まれた画像から抽出された特徴は、3次元空間(例えば、X、Y、及びZ軸上の座標)に沿った特有の特徴点を表すことができ、全ての特徴点が、関連付けられた特徴ロケーションを有することができる。キーフレーム中の特徴ポイントは、前にキャプチャされた入力画像又はキーフレームの特徴ポイントに一致する(それと同じであるか又はそれに対応する)か又はそれに一致するのに失敗する。特徴点を検出するのに、特徴検出を使うことができる。特徴検出は、特定のピクセルに特徴が存在するかどうかを判断するために、画像の1つ又は複数のピクセルを調べるのに使われる画像処理動作を含むことができる。特徴検出は、取り込まれた画像全体又は画像の幾つかの部分を処理するのに使うことができる。各画像又はキーフレームに対して、特徴が検出されると、特徴付近の局所的画像パッチを抽出することができる。特徴は、スケール不変特徴変換(SIFT)(特徴を位置特定し、それらの記述を生成する)、Speed Up Robust Features(SURF)、勾配位置配向ヒストグラム(GLOH)、正規化相互相関(NCC)、又は他の適切な技法など、どの適切な技法を使って抽出されてもよい。
【0064】
場合によっては、XRシステム100はまた、ユーザの手及び/又は指を追跡して、ユーザが仮想環境(例えば、仮想プライベート空間に表示される仮想コンテンツ)内の仮想コンテンツと相互作用及び/又は制御することを可能にすることもできる。例えば、XRシステム100は、仮想環境とのユーザ相互作用を識別又は変換するために、ユーザの手及び/又は指先の姿勢及び/又は動きを追跡することができる。ユーザ相互作用は、例えば、限定なしで、仮想コンテンツの項目を動かすこと、仮想コンテンツの項目及び/又は仮想プライベート空間のロケーションをサイズ変更すること、仮想ユーザインタフェース(例えば、モバイルフォンの仮想表現、仮想キーボード、及び/又は他の仮想インタフェース)における入力インタフェース要素を選択すること、仮想ユーザインタフェースを通して入力を与えること、などを含むことができる。
【0065】
図2は、本明細書で説明されるように仮想プライベート空間内に表示された仮想コンテンツなど、手200の位置と仮想環境との手200による相互作用とを追跡するために使用され得る手200の例示的なランドマークポイントを示す図である。図2に示されているランドマークポイントは、手200の手のひらの上のランドマークポイント235と、手200の親指230上のランドマークポイントと、手200の人さし指232上のランドマークポイントと、手200の中指234上のランドマークポイントと、手200の薬指236上のランドマークポイントと、手200の小指238上のランドマークポイントとを含む手200の異なる部分に対応する。手200の手のひらは、(例えば、画像平面などの平面に対してX、Y、及びZ方向で測定される)3つの並進方向で、及び(例えば、平面に対してヨー、ピッチ、及びロールで測定される)3つの回転方向で移動することができ、したがって、登録及び/又は追跡のために使用され得る6自由度(6DOF)を与える。手のひらの6DOFの移動は、凡例240に示されているように、図2の正方形として示されている。
【0066】
手200の指の異なる関節は、凡例240に示されるように、移動の異なる程度を可能にする。図2のダイヤモンド形状(例えば、ダイヤモンド233)によって示されるように、(基節骨と中手骨との間の中手指節関節(MCP)に対応する)各指の付け根は、屈曲及び伸長並びに外転及び内転に対応する2つの自由度(2DOF)を有する。図2の円の形状(例えば、円231)に示すように、各指(遠位、中、及び近位の指骨の間の指節間関節に対応する)の上部関節は、屈曲及び伸展に対応した1自由度(1DOF)を有する。結果として、手200は、そこから手200を追跡するための26自由度(26DOF)と、XRシステム100によってレンダリングされる仮想コンテンツとの手200による相互作用とを提供する。
【0067】
XRシステム100は、手200上のランドマーク点のうちの1つ又は複数を使用して、手200(例えば、ハンド200の姿勢及び/又は動きを追跡する)を追跡し、XRシステム100によってレンダリングされる仮想環境との相互作用を追跡することができる。前述したように、手200上の1つ又は複数のランドマーク点の検出の結果として、XRシステム100に対する相対的な物理的位置におけるランドマーク(したがって、手及び指)の姿勢を確立することができる。例えば、手200の手のひらの上のランドマーク点(例えば、ランドマーク点235)を画像内で検出することができ、ランドマーク点の位置は、XRシステム100の画像センサ102に対して決定することができる。XRシステム100によってレンダリングされる仮想コンテンツのアイテムの点(例えば、重心又は他の中心点などの中心点)は、手200の手のひら上のランドマーク点について決定された位置に対して、XRシステム100のディスプレイ(例えば、図1のディスプレイ109)上の位置(またはディスプレイ上のレンダリング)に変換されることが可能である。
【0068】
後述するように、XRシステム100はまた、仮想コンテンツ及び/又は手200を、(1つ又は複数の画像において検出されるような)現実世界におけるポイント及び/又はユーザの他の部分に登録することができる。例えば、幾つかの実装形態では、XRシステム100(又はXRシステム100)及び/又は仮想コンテンツのアイテムに対する手200の物理的姿勢を決定することに加えて、XRシステム100は、とりわけ、壁上の他と異なる点(特徴点と呼ばれる)、オブジェクトの1つ又は複数の角、フロア上の特徴、人間の顔上の点、近くのデバイス上の点などの他のランドマークの位置を決定することができる。場合によっては、XRシステム100は、例えば、環境内の検出されたオブジェクト及び/又は人間に対応することができる、環境内で検出された特徴点に関して特定の位置内に仮想コンテンツを配置することができる。
【0069】
幾つかの例では、XRシステム100(及び/又はユーザの頭部)の姿勢は、例えば、画像センサ102からの画像データ及び/又は加速度計104、ジャイロスコープ106、及び/又は1つ又は複数の他のセンサ(例えば、1つ又は複数の磁力計、1つ又は複数の慣性測定ユニット(IMU)など)などの1つ又は複数のセンサからの測定値を使用して決定することができる。頭の姿勢は、環境中の仮想コンテンツ、手200、並びに/又はオブジェクト及び/若しくは人間の位置を決定するために使用され得る。
【0070】
XRエンジン120、入力オプションエンジン122、コンテキスト管理エンジン123、画像処理エンジン124、及びレンダリングエンジン126(及び任意の画像処理エンジン)の動作は、コンピュート構成要素110のいずれかによって実施することができる。例示的な一例では、レンダリングエンジン126の動作をGPU114によって実現することができ、XRエンジン120、入力オプションエンジン122、コンテキスト管理エンジン123、及び画像処理エンジン124の動作をCPU112、DSP116、及び/又はISP118によって実現することができる。場合によっては、コンピュート構成要素110は、本明細書に記載の様々な動作のいずれかを実行するために、他の電子回路又はハードウェア、コンピュータソフトウェア、ファームウェア、又はそれらの任意の組合せを含むことができる。
【0071】
幾つかの例では、XRエンジン120は、画像センサ102、加速度計104、ジャイロスコープ106、及び/又は1つ又は複数のIMU、レーダなどのXRシステム100上の1つ又は複数のセンサからのデータに基づいてXR体験を生成するためにXR動作を実行することができる。幾つかの例では、XRエンジン120は、トラッキング、位置特定、姿勢推定、マッピング、コンテンツ固定動作及び/又は任意の他のXR動作/機能を実行することができる。XR体験は、仮想セッション中にユーザにXRコンテンツ(例えば、仮想現実コンテンツ、拡張現実コンテンツ、複合現実コンテンツなど)を提示するためのXRシステム100の使用を含み得る。幾つかの例では、XRコンテンツ及び体験は、例えばとりわけ、XRゲーム体験、XR教室体験、XRショッピング体験、XRエンターテイメント体験、XRアクティビティ(例えば、動作、トラブルシューティング動作など)などの特定のXR体験を提供するXRアプリケーション(例えば、XRエンジン120によって実行又は実施される)を介してXRシステム100によって提供され得る。XR体験の間、ユーザは、XRシステム100を使用して仮想コンテンツを視聴及び/又は相互作用することができる。場合によっては、ユーザは、仮想コンテンツを閲覧及び/又は仮想コンテンツと相互作用することができると共に、ユーザの周りの物理的環境を閲覧及び/又は物理的環境と相互作用することも可能であり、ユーザが、物理的環境と、物理的環境と混合又は統合された仮想コンテンツとの間の没入型体験をもつことを可能にする。
【0072】
XRエンジン120、入力オプションエンジン122、及びコンテキスト管理エンジン123は、様々な動作を実行して、1つ又は複数の他のデバイスに対して特定の仮想コンテンツをレンダリングする方法、場所、及び/又は時期を決定(及び管理)することができる。例えば、XRエンジン120、入力オプションエンジン122、及びコンテキスト管理エンジン123は、他のデバイス、例えば、接続されたデバイス(例えば、ネットワーク接続カメラ、スピーカ、電球、ハブ、ロック、プラグ、サーモスタット、ディスプレイ、アラームシステム、テレビ(TV)、ガジェット、電気製品など)、モバイルデバイス、外向き/外部制御を欠くデバイス、ディスプレイ及び/又はユーザインタフェースを欠くデバイス、そのようなデバイスと相互作用したいユーザに1つ又は複数の課題(例えば、ユーザによって理解されない言語のコントロール/インタフェース、ユーザによって認識/理解されないコントロール/インタフェース、制限されたアクセシビリティオプション、ユーザによって容易に認識/理解されない入力オプションなどを有するデバイス)を提示する特定の特性を有するデバイス、ユーザの手の届かない制御/インタフェースを有するデバイス、及び/又は任意の他のデバイスとの相互作用を容易にすることができる。例えば、入力オプションエンジン122は、別のデバイスの1つ又は複数の入力オプションを示す又は識別する入力データを取得又は受信することができる。入力オプションエンジン122は、入力データをXRエンジン120に送信することができる。コンテキスト管理エンジン123は、(ユーザがXRシステム100を使用して相互作用することができる)他のデバイス、XRシステム及び/又は他のデバイスが配置されるシーン又は環境、他のデバイスと相互作用しようとするXRシステムのユーザ、及び/又は他のコンテキストに関する情報(例えば、コンテキスト情報など)を取得又は受信することができる。コンテキスト管理エンジン123は、コンテキスト情報をXRエンジン120に送信することができる。
【0073】
XRエンジン120は、デバイスのための1つ又は複数の入力オプションを示す入力データを使用して、及び/又はコンテキスト情報を使用して、レンダリングエンジン126に関連性のある情報をユーザへ提示させることができる。例えば、XRエンジン120は、レンダリングエンジン126に、関連性のあるコンテキスト情報が決定された入力オプションに対応するガイダンスデータを出力させることができる。ガイダンスデータは、他のデバイスにどの入力オプションが利用可能か、そのような入力をどのように提供するかなどをユーザに通知することができる。幾つかの例では、ガイダンスデータは、現在のコンテキストを考慮すると(例えば、XRシステム100、シーン、他のデバイス、及び/又は、XRシステム100と関連付けられているユーザに関連性のある情報を考慮して)、関連性が低いか利用できない可能性がある入力オプション(及び/又は関連情報)を除外することができる。幾つかの例では、デバイスに対する1つ又は複数の入力オプションを示す入力データを使用して、及び/又はコンテキスト情報を使用して、XRエンジン120はレンダリングエンジン126に、デバイスと相互作用する(例えば、制御、コンテンツへのアクセス、ステータス情報へのアクセス、出力へのアクセスなど)ためのユーザインタフェース及び/又は入力オプションを提示させることができる。
【0074】
例えば、コンテキスト情報及び他のデバイスと関連付けられている入力オプションを識別する入力データに基づいて、XRエンジン120は、レンダリングエンジン126に、他のデバイスとのユーザ相互作用を可能にする1つ又は複数の入力オプションに対応するユーザ相互作用データを提示させることができる。例えば、ユーザ相互作用データは、入力オプションと関連付けられている1つ又は複数のユーザインタフェース要素(例えば、選択可能な制御オプションなど)、入力オプションと関連付けられている入力を提供する方法を示すキュー(例えば、ハイライト、矢印、テキストなど)、及び/又は他のデータを含むことができる。コンテキスト情報は、XRエンジン120が、ユーザ、XRシステム100、その他のデバイス、シーンと関連付けられている状況/コンテキストを考慮してコンテキスト的に適切である、及び/又はその他の方法でその他のデバイスとの相互作用を容易にするコンテンツ(例えば、仮想コンテンツ、音声コンテンツ、ユーザインタフェースコンテンツなど)を提示することを可能にし得る。場合によっては、XRエンジン120は、(例えば、ユーザインタフェースオプションのサブセットを表示するために)、レンダリングエンジン126に、コンテンツを提示させずに、又はコンテキストに基づいて表示すべき仮想コンテンツの量を低減若しくはフィルタリングさせることができる。
【0075】
場合によっては、XRエンジン120は、そのXR能力を活用して、他のデバイスとの相互作用を容易にすることができる。例えば、XRシステム100は、ユーザがディスプレイを介して現実世界環境を眺めることも可能にしながら、XRシステム100のディスプレイ上に仮想コンテンツを表示する能力などのAR能力を有することができる。XRエンジン120は、AR能力を活用して、ユーザが他のデバイスと直接相互作用するためのユーザインタフェースをレンダリングすることができ、或いは(例えば、入力デバイス108を使用して)XRエンジン120に入力を提供することによってユーザインタフェースをレンダリングすることができる。例えば、レンダリングエンジン126は、ユーザインタフェースが他のデバイス又は他のデバイスの一部(例えば、制御装置、表面、ディスプレイ、パネルなど)上のオーバーレイとしてユーザに見えるようにユーザインタフェースをディスプレイ上にレンダリングして、他のデバイスとのユーザ相互作用を容易にすることができる。オーバーレイされたユーザインタフェースとの相互作用は、ユーザ入力に基づいて他のデバイスを制御し、及び/又は他のデバイスからのデータ/出力にアクセスするために、XRエンジン120(又はXRシステム100の他の構成要素)によって使用され得る。場合によっては、他のデバイスとのユーザ相互作用を促進及び/又は改善するために、XRシステム100は、他のデバイスを位置特定及び/又はマッピングすることができる。例えば、XRシステム100は、他のデバイスを位置特定し、位置特定情報を使用して、他のデバイス又は他のデバイスの一部にオーバーレイされたユーザインタフェースをレンダリングすることができる。
【0076】
XRシステム100は、仮想コンテンツのアイテムをシーン内の検出された特徴点に登録又は固定することができる(例えば、検出された特徴点に対して位置される)。例えば、入力オプションエンジン122、コンテキスト管理エンジン123、及び/又は画像処理エンジン124は、XRエンジン120及び/又はレンダリングエンジン126と連携して、ユーザインタフェースの仮想コンテンツを、仮想コンテンツが表示されることになる表面の特徴点に固定することができる。
【0077】
幾つかの例では、XRシステム100は、レンダリングエンジン126によってレンダリングされるユーザインタフェースとのユーザ相互作用に基づいて他のデバイスに入力/コマンドを提供するために、1つ又は複数の他のデバイスと通信することができる。例えば、XRエンジン120は、XRシステム100に、レンダリングされたユーザインタフェース及び/又は入力オプションを介して受信されたユーザ入力に基づいて(送信機又はトランシーバを使用して)コマンドをデバイスへ送信させることができる。コマンドは、ユーザ入力に基づいてデバイスに1つ又は複数の機能を実行させることができる。
【0078】
他の例では、XRエンジン120は、他のデバイスとのユーザ相互作用を容易にするために、1つ又は複数の相互作用モードを活用することができる(例えば、視覚、音声/音声、ジェスチャベース、動きベースなど)。例えば、XRエンジン120は、ユーザがジェスチャ及び他の相互作用を使用して他のデバイスと相互作用(例えば、制御、アクセスなど)することを可能にするために、ハンドトラッキング及び/又はジェスチャ認識能力を使用することができる。別の例として、XRエンジン120は、ユーザが他のデバイスと相互作用するために音声コマンドを使用することを可能にするために音声認識を使用することができる。
【0079】
前述したように、入力データは、他のデバイスと相互作用するために使用することができる幾つか又は全ての入力オプションを示すことができる。例えば、入力オプションは、他の情報の中でも、デバイスによってサポートされる入力の種類(例えば、ジェスチャベース、音声ベース、タッチベースなど)、デバイスが特定の入力に基づいて実行できる機能(例えば、右へのスワイプは、サーモスタットに温度を上昇させることなどを引き起こすことができる)を含むことができる。
【0080】
幾つかの例では、入力オプションエンジン122は、他のデバイスから、サーバ(例えば、他のデバイスの動作に関与するクラウドベースのサーバ)から、及び/又は別のソースから、別のデバイスの1つ又は複数の入力オプションを示す入力データを取得又は受信することができる。例えば、入力オプションエンジン122は、入力オプションの要求をデバイスに送信する(又は送信機又はトランシーバに送信させる)ことができる。一例では、XRシステム100は、デバイスとの以前のネットワークペアリングに基づいて、その存在を示すデバイスによって送信された(例えば、ブロードキャスト)周期的ビーコン信号に基づいて、画像センサ102によって提供される1つ又は複数の画像内のデバイスの検出に基づいてなど、デバイスを検出又は感知することができる。デバイスの検出又は感知に応じて、XRシステム100は、デバイスから入力データを要求することができる。要求に応じて、デバイスは、デバイスに関連付けられている任意の入力オプションを示す入力データで応答することができる。別の例では、入力オプションエンジン122は、デバイスと関連付けられているサーバ(例えば、GoogleHome(商標)デバイスと関連付けられているGoogle(商標)サーバ)から所与のデバイスの入力オプションを要求することができる。サーバは、デバイスと関連付けられている入力オプションを示す入力データで応答することができる。
【0081】
場合によっては、入力オプションエンジン122は、画像センサ102によって取り込まれた他のデバイスの1つ又は複数の画像を処理することによって、他のデバイスの1つ又は複数の入力オプションを決定することができる。例えば、デバイス(エレベータ)のユーザインタフェースの例示的な例としてエレベータ制御パネルを使用すると、入力オプションエンジン122は、画像センサ102からエレベータ制御パネルの画像を受信することができる。機械学習(例えば、1つ又は複数のニューラルネットワークベースのオブジェクト検出器又は分類器を使用する)、コンピュータビジョン(例えば、コンピュータビジョンベースのオブジェクト検出器又は分類器を使用する)、又は他の画像解析技術を使用して、入力オプションエンジン122は、制御パネルが、建物のフロア、ドア開ボタン、ドア閉ボタン、緊急ボタン、及び/又は他の物理的又は仮想的なボタンに対応する15個の数字を含むと決定することができる。
【0082】
幾つかの例では、デバイスが入力データをXRシステムに通信しない場合(例えば、XRシステムがデバイスへ要求を送信した後で)、XRシステムは、デバイスがXRシステムと通信する能力を有していないと決定又は推論することができる(例えば、無線ネットワークを介して)。そのような例では、XRシステムは、ユーザがデバイスと相互作用する方法を決定するのを助けるための命令又は他の情報を提示する(例えば、デバイス上の特定のボタンを強調表示する)ことができる。例えば、上記のエレベータの例では、エレベータは、(例えば、通信ネットワークを介して)XRシステムと通信する能力を有していなくてもよい。そのような例では、XRシステムは、受信したユーザ入力に基づいてエレベータを制御するための1つ又は複数のコマンドを送信する代わりに、ユーザがエレベータと相互作用するのを助ける仮想コンテンツを提示することができる。
【0083】
コンテキスト管理エンジン123は、コンテキスト情報をXRエンジン120に送信することができる。コンテキスト情報は、ユーザ、XRシステム100、他のデバイス、シーンなどに関連付けられている状況/コンテキストのコンテキスト認識をXRエンジン120に提供する。XRエンジン120は、コンテキスト情報を使用して、他のデバイスと相互作用するためにユーザに提示するコンテンツ、入力オプション、ユーザインタフェース、及び/又はモダリティを管理、調整、及び/又は決定することができる。例えば、前述したように、コンテキスト情報は、ユーザ、XRシステム100、他のデバイス、シーンと関連付けられている状況/コンテキストにコンテキスト的に関連する、及び/又は他のデバイスとの相互作用を容易にするコンテンツ(例えば、仮想コンテンツ、音声コンテンツ、ユーザインタフェースコンテンツなど)を提示するために、XRエンジン120によって使用され得る。
【0084】
コンテキスト情報は、他のデバイス(ユーザがXRシステム100を使用して相互作用することができる)、XRシステム100及び/又は他のデバイスが配置されているシーン又は環境、他のデバイスと相互作用しようと試みるXRシステム100のユーザ、及び/又は任意の所与の時点における他のコンテキストに関連することができる。幾つかの例では、コンテキスト情報は、デバイスと相互作用する意図、デバイスのユーザインタフェースの特定の入力オプションと相互作用する意図(例えば、特定のユーザインタフェース制御要素)、及び/又は他の意図されたユーザ相互作用などの、ユーザと他のデバイスとの意図された相互作用を含むことができる。コンテキスト管理エンジン123は、視線、実行されている特定のジェスチャ、他のデバイスを保持しているユーザ、デバイスに向かって歩いているユーザ、及び/又は他の情報などに基づいて、意図されたユーザ相互作用を推定することができる。例えば、コンテキスト管理エンジン123は、ユーザがサーモスタットを注視していると決定し、決定された視線に基づいて、ユーザがサーモスタットと相互作用しようとしていると決定することができる。別の例では、コンテキスト情報は、シーン内のユーザの1つ又は複数のアクションを含むことができる。例えば、1つ又は複数のアクションは、とりわけ、ユーザがデバイスに向かって歩いていること、シーン内のドアに向かって歩いていること、ユーザが典型的にテレビを見る椅子に座っていることを含むことができる。コンテキスト情報の他の例は、ユーザに関連付けられている特性(例えば、視覚品質、話し言葉など)、ユーザ及び他のデバイスに関連付けられている履歴情報(例えば、ユーザによるデバイスの過去の使用、デバイス又は同様のデバイスを用いたユーザの経験レベルなど)、他のデバイスのユーザインタフェース能力(例えば、ユーザが見ることができるか、そうでなければアクセス可能な外向き/外部制御を有するかどうか)、他のデバイスに関連付けられている情報(例えば、他のデバイスがXRシステム100からどれだけ離れているか)、シーンに関連付けられている情報(例えば、照明、周囲音などのノイズレベル、XRシステム100とデバイスとの間のオブジェクト又は他の障害物、シーン内に他のユーザが存在するかどうかなど)、及び/又は他の情報を含む。
【0085】
幾つかの例では、コンテキスト管理エンジン123は、ローカルにコンテキスト情報を決定、取得、又は受信することができる。例えば、コンテキスト管理エンジン123は、(例えば、画像センサ102、加速度計104、ジャイロスコープ106、及び/又はXRシステム100の他のセンサ)XRシステム100の1つ又は複数のセンサからセンサ情報を取得することができる。コンテキスト管理エンジン123は、センサ情報を処理して、ユーザと他のデバイスとの1つ又は複数の意図された相互作用、シーン内のユーザの1つ又は複数のアクション、他のデバイスのユーザインタフェース能力、他のデバイスと関連付けられている情報(例えば、XRシステム100、したがってユーザからのデバイスの距離)、シーンと関連付けられている情報(例えば、照明、ノイズ、XRシステム100とデバイスとの間のオブジェクト又は障害物など)、及び/又は他のコンテキスト情報などのコンテキスト情報を決定することができる。例示的な一例では、コンテキスト管理エンジン123は、ユーザがオーブンを見ていることを示す画像センサ102から画像を受信することができ、ユーザがオーブンに向かって歩いていることを示すセンサデータを加速度計104及び/又はジャイロスコープ106から受信することもできる。画像及びセンサデータに基づいて、コンテキスト管理エンジン123は、ユーザがオーブンと相互作用しようとしていると決定することができる。
【0086】
幾つかの例では、コンテキスト管理エンジン123は、1つ又は複数のリモートソース(例えば、サーバ、クラウド、インターネット、他のデバイス、1つ又は複数のセンサなどである。)からコンテキスト情報を取得又は受信することができる。例えば、コンテキスト管理エンジン123は、ユーザに関連付けられている特性(例えば、ユーザの視覚品質、ユーザが話す言語など)及び/又はユーザ及び他のデバイスに関連付けられている履歴情報(例えば、1つ又は複数のデバイスに関するユーザの経験レベル、ユーザが1つ又は複数のデバイスを所有していた期間など)を示す、ユーザに関連付けられているネットワークベース又はクラウドベースのシステムに記憶されたユーザプロファイルへのアクセスを有することができる。場合によっては、ユーザプロファイルは、XRシステム100上にローカルに記憶することができる。
【0087】
前述したように、コンテキスト情報は、XRシステム100が、XRシステム100が使用されている特定の状況にコンテキスト的に関連するコンテンツを提示することができるように、XRエンジン120にコンテキスト認識を提供する。例えば、どのARコンテンツが他のデバイスとのユーザ相互作用を案内及び/又は支援するためにユーザに提示するか、及び/又はARコンテンツをどのように提示するかを決定するとき、XRエンジン120は、ユーザ、他のデバイスなどの特性を含むコンテキスト情報を使用することができる。一例では、XRエンジン120は、提示されるARコンテンツがユーザによって理解/発話される言語であることを保証するために、ユーザによって理解/発話される言語を考慮することができる。別の例として、XRエンジン120は、ユーザインタフェースガイダンスを、デバイスに関するユーザの知識に関する期待に合わせることができる。例示的な一例では、ユーザがデバイスの使用において初心者であると推定される場合(例えば、ユーザがデバイスを所有した時間量、ユーザがデバイスを使用した回数に基づいて、及び/又は他の要因に基づいて)、XRエンジン120は、ユーザに対する更なるサポートを出力することができる(例えば、入力を使用してデバイスを制御することができる命令を提示することによって)。別の例では、ユーザがデバイスの使用における専門家であると推定される場合(例えば、ユーザは、少なくとも閾値量の経験/精通度を有すると推定される)、XRエンジン120は、ユーザのための更なるサポートを提示しなくてもよく、又はそのようなサポートを低減/最小化してもよい。別の例として、ユーザが他のデバイスとの相互作用に影響を及ぼし得る1つ又は複数のアイテムを着用している場合、XRエンジン120は、ユーザが着用しているものを考慮して、どのユーザインタフェース、制御、及び/又はガイダンスがユーザに出力されるかを調整することができる。例示的な一例では、XRエンジン120は、ユーザが制御を選択/タッチするユーザの能力を妨げる可能性がある手袋を着用している場合、ユーザが視認性を妨げる可能性があるグラス(又はグラスを着用していない)又はサングラスを着用している場合、ユーザが特定の制御と相互作用するユーザの動き及び能力を制限する医療デバイスを有する場合などに、それが提供するユーザインタフェース、制御、及び/又はガイダンスを調整することができる。
【0088】
別の例として、XRエンジン120は、ARコンテンツをどのように提示するか、及び/又はどのARコンテンツをユーザに提示するかを決定するときに、シーンと関連付けられているコンテキスト情報(例えば、環境要因)を使用することができる。例えば、XRエンジン120は、不十分な照明又は明るい照明条件(例えば、音声キュー及び/又は視覚キューの使用を提案することができる)、周囲音(例えば、音声キューよりも視覚的キューを使用することを提案することができる)、他の人々の存在(例えば、これは、音声出力を提供しないこと、手又はジェスチャの動きを含む入力オプションを提示しないことなど、慎重又はプライベートである必要性を示唆し得る)などの照明条件を考慮することができる。
【0089】
幾つかの例では、XRエンジン120は、ユーザとの複数のデバイスのうちのどれが相互作用を意図しているかを決定することができる。場合によっては、XRエンジン120は、レンダリングエンジン126に、ユーザが相互作用しようとする特定のデバイスとユーザが相互作用することを可能にするユーザインタフェースを提示させることができる。場合によっては、XRエンジン120は、特定のデバイスとの相互作用及び/又は制御方法に関するガイダンスを(例えば、ビジュアルコンテンツ又は音声コンテンツとして)出力することができる。例えば、音楽を再生するスマートホームアシスタント、接続された冷蔵庫、及び接続されたストーブを有するキッチンでは、ユーザは、ストーブの温度を変更することに関心があるかもしれない。コンテキスト管理エンジン123から受信したコンテキスト情報に基づいて、XRエンジン120は、ユーザが、スマートホームアシスタント又は接続された冷蔵庫ではなく、接続されたストーブと相互作用しようとしていると決定することができる。例えば、コンテキスト情報に基づいて、XRエンジン120は、ユーザの視線、姿勢、及び/又は動きを決定し、ユーザがスマートホームアシスタント又は接続された冷蔵庫とは対照的に接続されたストーブと相互作用しようとしていると決定することができる。幾つかの例では、XRエンジン120は、接続されたストーブと相互作用するためにユーザが実行することができる可能なジェスチャの数を決定することができる。例えば、XRエンジン120は、ユーザがノブ回転ジェスチャを使用してストーブの温度を変更することができると決定することができる。XRエンジン120は、ユーザがノブ回転ジェスチャを使用してストーブの温度を変化させることができることをユーザ(例えば、視覚的キュー、音声的キューなどを介して)に知らせる出力を提供することができる。場合によっては、XRエンジン120は、ユーザからのノブ回転ジェスチャを検出し、関連する入力を接続されたストーブに通信することができる。場合によっては、接続されたストーブはノブ回転ジェスチャを直接検出することができる。
【0090】
画像処理エンジン124は、提示されている仮想ユーザインタフェースコンテンツに関連する1つ又は複数の画像処理動作を実行することができる。例えば、画像処理エンジン124は、画像センサ102からのデータに基づいて画像処理動作を実施することができる。場合によっては、画像処理エンジン124は、例えば、フィルタリング、デモザイク処理、スケーリング、色補正、色変換、セグメンテーション、ノイズ低減フィルタリング、空間フィルタリング、アーチファクト補正などの画像処理動作を実行することができる。レンダリングエンジン126は、コンピュート構成要素110、画像センサ102、XRエンジン120、入力オプションエンジン122、コンテキスト管理エンジン123、及び/又は画像処理エンジン124によって生成及び/又は処理された画像データを取得することができ、表示デバイス上に提示するためにビデオ及び/又は画像フレームをレンダリングすることができる。
【0091】
XRシステム100は、特定の構成要素を含むように示されているが、当業者であれば分かるように、XRシステム100は、図1に示されている構成要素よりも多い又は少ない構成要素を含み得る。例えば、XRシステム100は、場合によっては、1つ又は複数のメモリデバイス(例えば、RAM、ROM、キャッシュなど)、1つ又は複数のネットワークインタフェース(例えば、有線及び/又は無線通信インタフェースなど)、1つ又は複数の表示デバイス、及び/又は図1に示されていない他のハードウェア若しくは処理デバイスを含むこともできる。XRシステム100を用いて実装することができるコンピューティングシステム及びハードウェア構成要素の例示的な例を、図9に関して以下に説明する。
【0092】
図3は、ユーザ301が装着しているエクステンデッドリアリティシステム300の一例を示す図である。場合によっては、エクステンデッドリアリティシステム300は、図1のXRシステム100と同様であり、同様の動作を実行することができる。エクステンデッドリアリティシステム300は、AR又はMRグラス、AR、VR、又はMRHMD、又は他のXRデバイスなどの任意の適切なタイプのXRデバイス又はシステムを含むことができる。以下に説明する幾つかの例は、例示目的のためにARを使用して説明することができる。しかしながら、以下で説明される態様は、VR及びMRなどの他のタイプのXRに適用され得る。図3に示されているエクステンデッドリアリティシステム300は、光シースルーARデバイスを含むことができ、これは、ユーザ301がエクステンデッドリアリティシステム300を装着しながら現実世界を閲覧することを可能にする。
【0093】
例えば、ユーザ301は、ユーザ301からある距離を隔てて平面304上で現実世界の環境中のオブジェクト303を閲覧することができる。図3に示すように、エクステンデッドリアリティシステム300は、画像センサ302及びディスプレイ309を有する。上記で説明されたように、ディスプレイ309は、ユーザ301が現実世界の環境を見ることを可能にし、ARコンテンツがその上に表示されることも可能にするグラス、画面、レンズ、及び/又は他の表示機構を含むことができる。ARコンテンツ(例えば、画像、ビデオ、グラフィック、仮想若しくはARオブジェクト、又は他のARコンテンツ)は、ディスプレイ309上に投影或いは表示され得る。一例では、ARコンテンツは、オブジェクト303の拡張バージョンを含むことができる。別の例では、ARコンテンツは、オブジェクト303に関係する及び/又は現実世界の環境中の1つ又は複数の他のオブジェクトに関係する更なるARコンテンツを含むことができる。1つの画像センサ302と1つのディスプレイ309とが図3に示されているが、エクステンデッドリアリティシステム300は、幾つかの実装形態では、複数のカメラ及び/又は複数のディスプレイ(例えば、右眼のためのディスプレイ及び左眼のためのディスプレイ)を含むことができる。
【0094】
図1に関して前述したように、XRエンジン122は、レンダリングエンジン126にユーザインタフェース及び/又はデバイスと相互作用する(例えば、制御、コンテンツへのアクセス、ステータス情報へのアクセス、出力へのアクセスなど)ための入力オプションを提示させるために、デバイスについての1つ又は複数の入力オプションを示す入力データ及びコンテキストデータを利用することができる。例示的な一例では、XRシステム100は、エレベータ制御パネル、車両の制御パネルなどの制御パネルとの相互作用でユーザを支援することができる。図4A図4B、及び図4Cは、エレベータの制御パネル410と相互作用するためにXRシステム400を使用するユーザの一例を示す図である。例えば、XRシステム400を着用しているユーザがエレベータに入ると、XRシステム400は、ユーザの視線(例えば、視線走査を介して、視線カメラに基づいてなど)及び/又はユーザの手405を使用して実行されるジェスチャなどの1つ又は複数のジェスチャを決定することができる。視線及び/又はジェスチャに基づいて、XRシステム400は、ユーザがエレベータ制御パネル410上で押すフロア番号を見つけることができないか、又は見つけることが困難であると決定することができる。例えば、XRシステム400は、(ユーザが正しい数を探しているかのように)ユーザの視線が前後に移動していると決定することができる。
【0095】
XRシステム400は、XRシステム400によって取得されたコンテキスト情報に基づいて、ユーザが特定のフロアと関連付けられている制御ボタンを検索していると決定することができる。例えば、コンテキスト情報は、ホテルでのチェックイン情報(例えば、ホテルと関連付けられているサーバからXRシステム400によって取得される)、ユーザによってXRシステム400に提供される音声コマンド、ユーザの嗜好/入力(例えば、ユーザは、XRシステム100にフロア番号を入力し得る)、ユーザから検出された認識された音声(例えば、XRシステム400は、常時オンの音声を使用するなど、「フロア16」という言葉を発しているユーザを認識する)、検出された部屋番号(例えば、画像センサ102などによって取り込まれた1つ又は複数の画像から検出される)を含むことができる。
【0096】
XRシステム400は、エレベータ制御パネル上の特定の階の制御ボタンと関連付けられているキューを提示して、ユーザを正しいボタンに誘導することができる。例えば、XRシステム400は、ユーザがフロア16(図4A及び図4Bにおいて番号「16」のボタンに関連付けられている)に対応する制御ボタンを探していると決定することができる。図4Bに示すように、XRシステム400は、フロア16に対応する制御ボタンを強調表示する仮想コンテンツ412を表示することができる。仮想コンテンツ412は、フロア16に対応する実際の制御ボタン上にオーバーレイされているかのように見え、ユーザが検索している制御ボタンを容易に識別するのを助ける。図4Cに示すように、XRシステム400は、フロア16に対応する制御ボタンを強調表示する仮想コンテンツ412を表示することができ、また、テキスト414(「フロア16のボタンはここにあります」)及びユーザが正しい制御ボタンを識別するのを助けるための更なる情報を提供する矢印アイコンを提示することもできる。図4B及び図4Cは視覚的キューの例として強調表示及びテキストを示しているが、キューは、これに加えて又は代えてに、他のタイプの視覚的キュー、正しいボタンの識別又は位置をユーザに示す音声キュー(例えば、手追跡に基づいてユーザの手を案内するために)、及び/又は他のタイプのキューを含むことができる。これは、障害のあるユーザ、又は正しいボタンを覚えたり学習したりすることが困難なユーザにとって特に有用であり得る。
【0097】
場合によっては、エレベータ内で複数回トリップした後、XRシステム400は、ユーザが正しいボタンを迅速に及び/又は助けなしで見つけることができることを知ることができる。それに応じて、XRシステム400は、制御ボタンを識別するのを助けるために仮想コンテンツの提供を停止することを決定することができる。他の場合には、XRシステム400は、そのような支援をユーザに提供し続けることができる(例えば、ユーザの特性を有するコンテキスト情報が、ユーザが障害を有することを示す場合)。場合によっては、XRシステム400は、他の制御パネル、デバイス、産業機械などとのユーザ相互作用を同様に支援することができる。
【0098】
別の例示的な例では、XRシステム100は、ユーザがデバイスを制御するために使用することができるリモコンと相互作用するのを助けることができる。図5A及び図5Bは、テレビ511を制御することができるリモコン510と相互作用するためにXRシステム500を使用するユーザの一例を示す図である。XRシステム500は、様々な要因に基づいて、ユーザがリモコン510を使用することが困難である可能性が高いと決定することができる。例えば、XRシステム500は、テレビ受像機511及びユーザが位置する部屋の照明条件が悪い(例えば、画像センサ102を使用して取得された部屋の1つ又は複数の画像に基づいて、XRシステム500の周囲光センサに基づいてなど)と決定することができる。更に、ユーザの特性を示す、XRシステム500によって取得されたコンテキスト情報に基づいて、XRシステム500は、ユーザの近視が悪いと決定することができる。これに加えて又は代えて、XRシステム500は、リモコン510上のラベル又はボタンが読み取りにくいこと、ユーザが理解していない言語であること、及び/又はユーザがリモコン510と相互作用することを困難にすることを決定することができる。このコンテキスト情報に基づいて、XRシステム500は、ユーザがリモコン510の制御/ラベルを見ることが困難である可能性が高いと決定することができる。場合によっては、XRシステム500は、これに加えて又は代えてに、ユーザがリモコンと相互作用することが困難であることを検出することができる。例えば、XRシステム500は、アイトラッキングを使用して、ユーザが目を細めていること、及び/又は正しいボタンを求めてリモコンをスキャンしていることを決定することができる。
【0099】
XRシステム500は、ユーザがユーザにとって関心のあるイベントを再生している特定のチャネル(チャネル34)に切り替えることを意図していることを示す更なるコンテキスト情報を取得することができる。例えば、XRシステム500は、ユーザがユーザのデジタルカレンダー上でスポーツゲームをスケジュールしたと決定することができる。別の例では、XRシステム500は、ユーザがある特定の夜間に特定のチャネルを常に見ていると決定し得る。リモコン510が相互作用することが困難である可能性が高く、ユーザが特定のチャネル(例えば、ユーザは現在時刻に特定のチャネルでイベントを頻繁に見るため)に切り替えることを意図しているというコンテキストの知識により、XRシステム500は、ユーザがボタンを識別し、ボタンを選択して特定のチャネル34に切り替えるのを助けるために、リモコン510上の正しい「3」及び「4」ボタンを強調表示する仮想データ512を表示することができる。幾つかの例では、XRシステム500は、ユーザがボタン「4」を押す前にボタン「3」を押すことが分かるように、ボタン「3」、次いでボタン「4」を順次強調表示することができる。
【0100】
場合によっては、前述したように数字を強調表示又は強調することに加えて又は代えて、XRシステム500は、音声を使用して、XRシステム500によって決定されたオプション(例えば、イベント及び/又は関連するボタン/チャネル)を確認することができる。例えば、XRシステム500は、ユーザがイベントを再生している特定のチャネルへの切り替えを希望していることを確認するようにユーザに求める音声プロンプトを提供することができる。XRシステム500は、ユーザからの確認を受信し(例えば、入力デバイス108などの入力デバイスを介して提供されるユーザ入力に基づいて)、支援を継続することができる。一例では、確認の受信に応じて、XRシステム500は、チャンネル(例えば、チャネル34)に対応するリモートコントローラ510上の正しいボタン(例えば、「3」及び「4」ボタン)を強調表示することができる。別の例では、確認の受信に応じて、XRシステム500は、テレビ511及び/又はリモコン510に、テレビ511をチャンネル(例えば、チャネル34)に変更させるコマンドを自動的に送信し得る。
【0101】
別の例示的な例では、XRシステム100は、ユーザがサーモスタットと相互作用するのを助けることができる。図6A及び図6Bは、サーモスタット610と相互作用するためにXRシステム600を使用するユーザの一例を示す図である。例えば、サーモスタット610は、ジェスチャ認識を使用して1つ又は複数のジェスチャを解釈するように構成されることができ、検出されたジェスチャに基づいて1つ又は複数の機能を実行することができる。しかしながら、ユーザは、サーモスタット610に特定の機能を実行させるために使用することができる正しいジェスチャコマンドを知らない場合がある。前述したものと同様に、XRシステム600は、取得したコンテキスト情報を使用して、ユーザがサーモスタット610との相互作用に問題を抱えていると決定する。例えば、XRシステム600は、ユーザがサーモスタット610を凝視していることを決定するために視線追跡を使用することができ、及び/又は、ユーザがジェスチャを(例えば、手605を使用して)実行しているがサーモスタットがジェスチャに基づいていかなる機能も実行していないことを決定するために1つ又は複数の画像を処理することができる。XRシステム600は、任意の他のコンテキスト情報を使用して、ユーザがサーモスタット610と相互作用することが困難であると決定することができる。
【0102】
場合によっては、ユーザは、サーモスタット610を用いて行いたい相互作用を識別する音声コマンド又は他の入力を発することができる。例えば、ユーザは「温度を68度に設定して」と述べることができ、XRシステム600は音声コマンドを認識することができる。XRシステム600は、サーモスタット610が、例えばサーモスタット610から、サーモスタット610と関連付けられているサーバ(例えば、Nest(商標)サーモスタットと関連付けられているNest(商標)サーバ)から解釈するように構成されているジェスチャコマンドを決定することができる。
【0103】
図6Bに示されるように、音声コマンドの認識、ユーザの所望の設定を示す別の入力の受信、及び/又は、ユーザがサーモスタット610との相互作用を困難にしているとの決定に応じて、XRシステム600は、サーモスタット610に所望の機能を実行させるために(例えば、音声コマンドあり又はなし)適用され得るジェスチャコマンドのセット(ジェスチャコマンド612、ジェスチャコマンド614、及びジェスチャコマンド616を含む)をユーザに提示することができる。場合によっては、図6Bに示すように、ジェスチャコマンドは、サーモスタット610に所望の機能を実行させるためにジェスチャコマンド612,614、616が実行されるべき順序を示す対応する番号を有することができる。例えば、ユーザは、ジェスチャコマンド612を実行して、サーモスタット610を温度調整モードに入らせることができる。次いで、ユーザは、ジェスチャコマンド614を実行してサーモスタット610に温度を上昇させることができる。例えば、ユーザが「サムズアップ」ジェスチャコマンド614を実行するたびに、サーモスタット610は温度を華氏一度だけ上昇させることができる。次いで、ユーザは、ジェスチャコマンド616を実行してサーモスタット610に温度調整モードを終了させることができる。
【0104】
別の例示的な例では、XRシステム100は、ユーザがデジタル画像フレームと相互作用するのを支援することができる。図7A及び図7Bは、デジタルピクチャフレーム710と相互作用するためのユーザインタフェース入力オプションを提供するかどうかを決定することができるXRシステム700を使用するユーザ701の一例を示す図である。例えば、デジタルピクチャフレーム710は、デジタルピクチャフレーム710によって表示されているコンテンツに関連するメタデータ(例えば、表示された技術の説明、背景、人物など)を表示するように構成することができる。例えば、図7Bに示すように、デジタルピクチャフレーム710は、二人が踊る写真の隣に、「これは彼女の誕生日におけるNancy and Bob」というキャプションと共にメタデータ712を表示することができる。
【0105】
ユーザ701がデジタルピクチャフレーム710を注視していない場合、ユーザがデジタルピクチャフレーム710のそばを急いで歩いている場合、及び/又はそうでなければメタデータ712に関心がない可能性が高い場合、メタデータはユーザ701にとって関心がない可能性がある。XRシステム700は、ユーザがデジタル画像フレーム710を見ていないことを示す検出された視線、ユーザが歩いていることを示す検知された動き、ユーザ701のカレンダー(例えば、ユーザが別の場所で次の約束をしていることを示す)、ユーザ701の好み、ユーザ履歴データ、ユーザ通信、及び/又は他のコンテキスト情報などのコンテキスト情報を取得することができる。XRシステム700によって取得されたコンテキスト情報に基づいて、XRシステム700は、ユーザがデジタルピクチャフレーム710のそばを歩いている、ユーザがデジタルピクチャフレーム710を見ていない、及び/又はユーザがメタデータ712に関心がない可能性が高いと決定することができる。次いで、XRシステム700は、デジタルピクチャフレーム710にコマンドを送信して、デジタルピクチャフレーム710がメタデータ712(潜在的にユーザの注意を逸らす可能性がある)を提示するのを防止することができる。
【0106】
図8Aは、シーン内に複数のデバイスが存在する場合に、1つ又は複数のデバイスと相互作用するためにXRシステム800を使用するユーザ802の例を例示する図である。この例では、シーンは、デジタルピクチャフレーム810と、リモコン812と、デジタルサーモスタット814とを含む。ユーザ802は、XRシステム800を使用して、デジタルピクチャフレーム810、リモコン812、及び/又はデジタルサーモスタット814を含むシーン内のデバイスのいずれかと相互作用することができる。XRシステム800は、デジタルピクチャフレーム810、リモコン812、及びデジタルサーモスタット814から入力オプション及び/又は関連データを受信することができ、デジタルピクチャフレーム810、リモコン812、及び/又はデジタルサーモスタット814に対応する入力オプションに関連付けられているユーザガイダンスデータを提示することができる。
【0107】
場合によっては、図8Aに示すようにシーンが複数の遠隔デバイスを含む場合、XRシステム800は、ユーザ802がシーン内の複数のデバイスのうちのどれと相互作用したいか、及び/又はXRシステム800がガイダンスデータを提示すべきかを決定することが困難な場合がある。幾つかの例では、XRシステム800は、デジタルピクチャフレーム810、リモコン812、及びデジタルサーモスタット814から入力オプションを受信することができる。入力オプションは、デジタルピクチャフレーム810、リモコン812、及びデジタルサーモスタット814で利用可能/許容可能な入力のタイプに関する情報を含むことができる。しかしながら、シーン内の複数のデバイスからそのようなデータを受信する場合、XRシステム800は、複数のデバイスからのデータで過負荷になり得る。データ過負荷は、XRシステム800が関連性のある情報をユーザ802に提示すること、情報をユーザに重大な混乱なく提示すること、データ及び/又はデバイスとの相互作用を管理することなどを困難にする可能性がある。
【0108】
例えば、図8Bを参照すると、XRシステム800は、デジタルピクチャフレーム810に関するデータ820、リモコン812に関するデータ822、及びデジタルサーモスタット814に関するデータ824を表示することができる。データ820、822、及び824は、XRシステム800及び/又はユーザ802にとって手に負えなくなる可能性がある。例えば、図8Bに示すように、XRシステム800によって提示されると、データ820、822、及び824が乱雑になる可能性があり、XRシステム800によってレンダリングされた情報が過負荷になり、解析、管理、理解などが困難になる可能性がある。幾つかの例では、XRシステム800は、デジタルピクチャフレーム810、リモコン812、及びデジタルサーモスタット814からデータをフィルタリングして、デジタルピクチャフレーム810、リモコン812、及びデジタルサーモスタット814のためにXRシステム800によって提示されるデータを単純化及び/又は統合することができる。場合によっては、XRシステム800は、提示されるデータを、関連性のある特定のデバイスに対応するデータに制限することができる。
【0109】
例示すると、図8Cを参照すると、XRシステム800は、ユーザが遠隔デバイス812と相互作用することを望むか、又は相互作用することになることを予測することができる。XRシステム800は、この情報を使用して、XRシステム800によって提示されるデータを単純化するために、デジタルピクチャフレーム810に関連付けられるデータ820及びデジタルサーモスタット814に関連付けられるデータ824を除外することができる。XRシステム800は、ユーザ802及び/又は現在のコンテキストに関連性がある予測される、遠隔デバイス812と関連付けられているデータ822を提示することができる。幾つかの例では、データ822は、ユーザがリモコン812と相互作用するために使用できる入力オプション及び/又はリモコン812と相互作用する方法をユーザに知らせる入力オプションの指示を含むことができる。場合によっては、データ822は、遠隔デバイス812とのユーザ相互作用を容易にするためのユーザガイダンスデータを含むことができる。幾つかの例では、図8Cに示された提示は、XRシステム800によって提示されたデータをデクラッタ及び/又は簡略化することができる。
【0110】
場合によっては、XRシステム800は、コンテキスト情報を使用して、ユーザ802が相互作用するデジタルピクチャフレーム810、リモコン812、及びデジタルサーモスタット814のいずれが、ユーザ802と関連性があるかなど、及び/又はデジタルピクチャフレーム810、リモコン812、及び/又はデジタルサーモスタット814からのどのデータをユーザに提示するかを予測することができる。場合によっては、XRシステム800は、デジタルピクチャフレーム810、リモコン812、及びデジタルサーモスタット814に関連する簡略化された情報を提示することができ、XRシステム800及びユーザ802は、あまり関連性のない情報を除外し、ユーザ802に提示される情報量をユーザ802に最も関連性のある情報に低減するために使用することができる。
【0111】
例えば、図8Dを参照すると、XRシステム800は、入力オプションのメニュー840を提示することができる。メニュー840は、ユーザ相互作用に利用可能な様々なデバイスを示し、ユーザ802にユーザにとって関心のある特定のデバイスを選択する能力を提供することができる。ユーザが特定のデバイスを選択した場合、XRシステム800は、その特定のデバイスに対応する入力オプションなどのデータを提示することができる。例えば、ユーザ802がメニュー840からデジタルフレーム810を選択した場合、XRシステム800は、デジタルフレーム810に関連性のあるデータを提示し、リモコン812及び/又はサーモスタット814に関連性のある他のデータを除外することができる。
【0112】
別の例示的な例では、XRシステム100は、ユーザが自動車制御装置を使用するのを支援することができる。例えば、車両を運転しているユーザは、道路の脇に車を止めることができる。XRシステム100は、ユーザが道路の脇に引きつけられたことを検出することができる(例えば、動き情報、ユーザからの音声データ、車両からのデータなどに基づく)。ユーザが車両を道路の脇に引っ張ったと決定したことに基づいて、XRシステム100は、ユーザが車両のハザードランプを作動させるべきであると決定することができる。ユーザは、ハザードライトボタンについて車両のダッシュボードをスキャンすることができる。XRシステム100は、ユーザがハザードライトボタンを見つけることができないか、又は見つけることが困難であると決定するために、視線追跡、画像解析、及び/又は他の技術を使用することができる。XRシステム100は、そのようなコンテキスト情報を使用して、ユーザがハザードライトボタンを見つけるのを助ける必要があると決定することができる。XRシステム100は、ハザードボタンを位置特定/識別し、ハザードボタンの周りにARコンテンツをオーバーレイして、ユーザがハザードボタンを位置特定するのを案内/支援することができる。
【0113】
ユーザに提示する入力オプションを決定するために入力データ及びコンテキスト情報を使用するXRシステム100(及び他のXRシステム)の特定の例示的な例が前述されているが、XRシステム100は、入力データ及びコンテキスト情報に基づいて任意の他の機能を実行して、XRシステム100のユーザが1つ又は複数の他のデバイスと相互作用するのを支援することができる。
【0114】
図9は、本明細書に記載の技術のうちの1つ又は複数を使用して、少なくとも1つの入力オプションに関連付けられている情報を提示するためのプロセス900の一例を示すフローチャートである。ブロック802において、プロセス900は、シーン内のデバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信することを含むことができる。例えば、XRシステム(例えば、XRシステム100)は、シーン内の1つ又は複数の遠隔デバイスにおいてどの入力オプションが利用可能であるかを識別するデータを受信することができる。
【0115】
ブロック904において、プロセス900は、シーン、デバイス、及び電子デバイスと関連付けられているユーザ(例えば、XRシステム100)のうちの少なくとも1つに関連性のある情報を、少なくとも1つのメモリを使用することを含めて決定することを含むことができる。幾つかの例では、情報はコンテキスト情報を含むことができる。コンテキスト情報は、例えば、シーン、ユーザ、デバイス、及び/又は電子デバイスに関する情報を提供することができる。
【0116】
ブロック906において、プロセス900は、1つ又は複数の入力オプション及び情報に基づいて、関連性のあるコンテキスト情報が決定された入力オプションに対応するユーザガイダンスデータを出力することを含むことができる。幾つかの例において、ユーザガイダンスデータは、入力オプションに関連付けられているユーザ入力要素、入力オプションに関連付けられている物理オブジェクト上の仮想オーバーレイ、及び/又は入力オプションに関連付けられている入力を提供する方法を示すキューのうちの少なくとも1つを含むことができる。
【0117】
幾つかの態様では、プロセス900は、情報に基づいて、デバイスとのユーザ相互作用を予測し、1つ又は複数の入力オプションと予測されたユーザ相互作用とに基づいて、入力オプションに対応するユーザガイダンスデータを提示することを含むことができる。
【0118】
幾つかの例では、デバイスは、ネットワーク通信能力を有する接続されたデバイスを含むことができ、プロセス900は、情報と1つ又は複数の入力オプションとに基づいて、予測されたユーザ相互作用を表すハンドジェスチャを決定し、ユーザガイダンスデータを提示することを含むことができる。幾つかの例において、予測されたユーザ相互作用は、デバイスへの予測されたユーザ入力を含むことができる。場合によっては、ユーザガイダンスデータは、検出されると、デバイスで実際のユーザ入力を呼び出すハンドジェスチャの指示を含むことができる。
【0119】
幾つかの態様において、ユーザガイダンスデータを提示することは、電子デバイスと関連付けられているディスプレイにおいて、デバイスの表面上に置かれているように見えるべく構成される仮想オーバーレイをレンダリングすることを含むことができる。幾つかの例において、仮想オーバーレイは、入力オプションと関連付けられているユーザインタフェース要素を含むことができる。場合によっては、ユーザインタフェース要素は、入力オプションと関連付けられている仮想ユーザ入力オブジェクト、及び入力オプションに対応する入力を受信するように構成されたデバイス上の物理制御オブジェクトの視覚的指示のうちの少なくとも1つを含むことができる。
【0120】
幾つかの例では、情報は、ユーザの視線及びユーザの姿勢のうちの少なくとも一方を含み、プロセス900は、ユーザの視線及びユーザの姿勢のうちの少なくとも一方に基づいてデバイスとのユーザ相互作用を予測することと、ユーザガイダンスデータを提示した後に、入力オプションと関連付けられている実際のユーザ入力であって、予測されたユーザ相互作用を表わす実際のユーザ入力を検出することと、入力オプションと関連付けられている実際のユーザ入力に対応するコマンドをデバイスに送信することと、を含むことができる。
【0121】
幾つかの例において、入力オプションに対応するユーザガイダンスデータを出力することは、ユーザガイダンスデータを表示することを含むことができる。幾つかの例において、入力オプションに対応するユーザガイダンスデータを出力することは、ユーザガイダンスデータを表わす音声データを出力することを含むことができる。
【0122】
幾つかの例において、入力オプションに対応するユーザガイダンスデータを出力することは、ユーザガイダンスデータを表示し、表示されたユーザガイダンスデータと関連付けられている音声データを出力することを含むことができる。
【0123】
幾つかの態様では、プロセス900は、デバイスから、デバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信することを含むことができる。幾つかの態様では、プロセス900は、サーバから、デバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信することを含むことができる。
【0124】
場合によっては、デバイスは、1つ又は複数のユーザ入力を受信するための外部ユーザインタフェースを有さない。幾つかの態様では、プロセス900は、情報に基づいて、デバイスに関連付けられている更なるユーザガイダンスデータを提示することを控えることを含むことができる。
【0125】
幾つかの態様では、プロセス900は、ユーザガイダンスデータを提示した後に、入力オプションに関連付けられているユーザ入力を取得し、ユーザ入力に対応する命令をデバイスに送信することを含むことができる。場合によっては、命令は、デバイスの1つ又は複数の動作を制御するように構成され得る。
【0126】
幾つかの実施例では、本明細書に記載するプロセス(例えば、プロセス900及び/又は本明細書に記載する他のプロセス)は、コンピューティングデバイス又は装置によって実行することができる。一実施例では、プロセス900は、図1のXRシステム100によって実行することができる。別の実施例では、プロセス900は、図10に示されるコンピューティングシステム1000を有するコンピューティングデバイスによって実行され得る。例えば、図10に示すコンピューティングアーキテクチャを有するコンピューティングデバイスは、図1のXRシステム100の構成要素を含むことができ、図9の動作を実施することができる。
【0127】
コンピューティングデバイスは、プロセス800を含む本明細書に記載されるプロセスを実行するためのリソース能力を有する、モバイルデバイス(例えば、携帯電話)、デスクトップコンピューティングデバイス、タブレットコンピューティングデバイス、ウェアラブルデバイス(例えば、VRヘッドセット、ARヘッドセット、ARグラス、ネットワーク接続されたウォッチ若しくはスマートウォッチ、又は他のウェアラブルデバイス)、サーバコンピュータ、自律ビークル若しくは自律ビークルのコンピューティングデバイス、ロボットデバイス、テレビ、及び/又は任意の他のコンピューティングデバイスなどの任意の好適なデバイスを含むことができる。場合によっては、コンピューティングデバイス又は装置は、1つ又は複数の入力デバイス、1つ又は複数の出力デバイス、1つ又は複数のプロセッサ、1つ又は複数のマイクロプロセッサ、1つ又は複数のマイクロコンピュータ、1つ又は複数のカメラ、1つ又は複数のセンサ、及び/又は本明細書で説明するプロセスのステップを実行するように構成される他の構成要素などの、様々な構成要素を含み得る。幾つかの例では、コンピューティングデバイスは、ディスプレイ、データを通信及び/又は受信するように構成されたネットワークインタフェース、それらの任意の組合せ、及び/又は他の構成要素を含んでよい。ネットワークインタフェースは、インターネットプロトコル(IP)ベースのデータ又は他のタイプのデータを通信及び/又は受信するように構成され得る。
【0128】
コンピューティングデバイスの構成要素は、回路内で実装され得る。例えば、構成要素は、1つ又は複数のプログラマブル電子回路(例えば、マイクロプロセッサ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、中央処理ユニット(CPU)、及び/又は他の好適な電子回路)を含み得る、電子回路若しくは他の電子ハードウェアを含み得、かつ/若しくはそれらを使用して実装され得、かつ/又は本明細書で説明する様々な動作を実施するために、コンピュータソフトウェア、ファームウェア、若しくはそれらの任意の組合せを含み得、かつ/若しくはそれらを使用して実装され得る。
【0129】
プロセス900は、論理フロー図として示され、その動作は、ハードウェア、コンピュータ命令、又はそれらの組合せに実装することができる一連の動作を表す。コンピュータ命令の文脈で、動作は、1つ又は複数のプロセッサによって実行されると、記載された動作を実施する、1つ又は複数のコンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を表す。概して、コンピュータ実行可能命令は、特定の機能を実施するか又は特定のデータタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が説明される順序は、限定として解釈されることを意図せず、説明する任意の数の動作は、プロセスを実装するために任意の順序で、かつ/又は並列に組み合わされてよい。
【0130】
加えて、プロセス900及び/又は本明細書に記載する他のプロセスは、実行可能命令を用いて構成された1つ又は複数のコンピュータシステムの制御下で実行されてもよく、1つ又は複数のプロセッサ上で、ハードウェアによって、又はそれらの組合せで、集合的に実行するコード(例えば、実行可能命令、1つ又は複数のコンピュータプログラム、又は1つ又は複数のアプリケーション)として実装されてもよい。上述のように、コードは、例えば、1つ又は複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体又は機械可読記憶媒体上に記憶されてもよい。コンピュータ可読記憶媒体又は機械可読記憶媒体は、非一時的であってもよい。
【0131】
図10は、本技術の幾つかの態様を実装するためのシステムの一例を示す図である。詳細には、図10は、例えば、システムの構成要素が接続1005を使用して互いに通信している、内部コンピューティングシステム、リモートコンピューティングシステム、カメラ、又はそれらの任意の構成要素を構成する、任意のコンピューティングデバイスであり得るコンピューティングシステム1000の一例を示す。接続1005は、バスを使用した物理接続、又はチップセットアーキテクチャなどにおけるプロセッサ1010への直接接続であってよい。接続1005はまた、仮想接続、ネットワーク接続、又は論理接続であってもよい。
【0132】
幾つかの実施形態では、コンピューティングシステム1000は、本開示において説明する機能が、1つのデータセンター、複数のデータセンター、ピアネットワークなどに分散され得る分散型システムである。幾つかの実施形態では、説明するシステム構成要素の1つ又は複数は、構成要素の説明の対象である機能のうちの幾つか又は全てを各々実施するような多くの構成要素を表す。幾つかの実施形態では、構成要素は物理デバイス又は仮想デバイスとすることができる。
【0133】
例示的なシステム1000は、少なくとも1つの処理ユニット(CPU又はプロセッサ)1010と、読取り専用メモリ(ROM)1020及びランダムアクセスメモリ(RAM)1025などのシステムメモリ1015を含む様々なシステム構成要素をプロセッサ1010に結合する接続1005とを含む。コンピューティングシステム1000は、プロセッサ1010と直接接続されるか、プロセッサ1010に極めて近接しているか、又はプロセッサ1010の一部として統合される、高速メモリのキャッシュ1012を含み得る。
【0134】
プロセッサ1010は、任意の汎用プロセッサと、記憶デバイス1030内に記憶され、プロセッサ1010、並びにソフトウェア命令が実際のプロセッサ設計に組み込まれた専用プロセッサを制御するように構成された、サービス1032、1034、及び1036などのハードウェアサービス又はソフトウェアサービスとを含み得る。プロセッサ1010は基本的に、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自己完結型のコンピューティングシステムであってもよい。マルチコアプロセッサは、対称であってもよく又は非対称であってもよい。
【0135】
ユーザ相互作用を可能にするために、コンピューティングシステム1000は、発話のためのマイクロフォン、ジェスチャ入力又はグラフィカル入力のためのタッチ感知画面、キーボード、マウス、モーション入力、発話などの、任意の数の入力機構を表すことができる、入力デバイス1045を含む。コンピューティングシステム1000は、幾つかの出力機構の1つ以上であり得る出力デバイス1035を含んでもよい。場合によっては、多モードのシステムは、コンピューティングシステム1000と通信するためにユーザが複数のタイプの入力/出力を提供することを可能にし得る。コンピューティングシステム1000は、一般に、ユーザ入力及びシステム出力を支配し管理することができる通信インタフェース1040を含み得る。通信インタフェースは、オーディオジャック/プラグ、マイクロフォンジャック/プラグ、ユニバーサルシリアルバス(universal serial bus、USB)ポート/プラグ、Apple(登録商標)Lightning(登録商標)ポート/プラグ、Ethernetポート/プラグ、光ファイバーポート/プラグ、プロプライエタリ有線ポート/プラグ、BLUETOOTH(登録商標)ワイヤレス信号転送、BLUETOOTH(登録商標)低エネルギー(low energy、BLE)ワイヤレス信号転送、IBEACON(登録商標)ワイヤレス信号転送、無線周波識別(radio-frequency identification、RFID)ワイヤレス信号転送、近距離通信(near-field communications、NFC)ワイヤレス信号転送、専用短距離通信(dedicated short range communication、DSRC)ワイヤレス信号転送、802.11 Wi-Fiワイヤレス信号転送、ワイヤレスローカルエリアネットワーク(WLAN)信号転送、可視光通信(Visible Light Communication、VLC)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(Worldwide Interoperability for Microwave Access、WiMAX)、赤外線(infrared、IR)通信ワイヤレス信号転送、公衆交換電話網(Public Switched Telephone Network、PSTN)信号転送、統合サービスデジタルネットワーク(Integrated Services Digital Network、ISDN)信号転送、3G/4G/5G/LTEセルラーデータネットワークワイヤレス信号転送、アドホックネットワーク信号転送、電波信号転送、マイクロ波信号転送、赤外線信号転送、可視光信号転送、紫外光信号転送、電磁スペクトルに沿ったワイヤレス信号転送、又はそれらの何らかの組合せを利用するものを含む、有線及び/又はワイヤレスのトランシーバを使用する有線通信又はワイヤレス通信の受信及び/又は送信を実施し得るか、又は容易にし得る。通信インタフェース1040は、1つ以上の全地球航法衛星システム(Global Navigation Satellite System、GNSS)システムに関連付けられている1つ又は複数の衛星からの1つ又は複数の信号の受信に基づいて、コンピューティングシステム1000の位置を決定するために使用される、1つ又は複数のGNSS受信機又はトランシーバを含んでもよい。GNSSシステムは、限定はしないが、米国の全地球測位システム(GPS)、ロシアの全地球航法衛星システム(Global Navigation Satellite System、GLONASS)、中国の北斗航法衛星システム(BeiDou Navigation Satellite system、BDS)、及び欧州のGalileo GNSSを含む。任意の特定のハードウェア配列で動作することに対して制約がなく、したがって、ここでの基本的な特徴は、それらが開発されるにつれて、改善されたハードウェア配列又はファームウェア配列のために容易に置き換えられてよい。
【0136】
記憶デバイス1030は、不揮発性の及び/又は非一時的な及び/又はコンピュータ可読のメモリデバイスであってもよく、磁気カセット、フラッシュメモリカード、固体メモリデバイス、デジタル多用途ディスク、カートリッジ、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、磁気ストリップ/ストライプ、任意の他の磁気記憶媒体、フラッシュメモリ、メモリスタメモリ、任意の他の固体メモリ、コンパクトディスク読取り専用メモリ(compact disc read only memory、CD-ROM)光ディスク、再書き込み可能コンパクトディスク(compact disc、CD)光ディスク、デジタルビデオディスク(digital video disk、DVD)光ディスク、ブルーレイディスク(blu-ray disc、BDD)光ディスク、ホログラフィック光ディスク、別の光媒体、セキュアデジタル(secure digital、SD)カード、マイクロセキュアデジタル(micro secure digital、microSD)カード、メモリスティック(登録商標)カード、スマートカードチップ、EMVチップ、加入者識別モジュール(subscriber identity module、SIM)カード、ミニ/マイクロ/ナノ/ピコSIMカード、別の集積回路(integrated circuit、IC)チップ/カード、ランダムアクセスメモリ(RAM)、スタティックRAM(static RAM、SRAM)、ダイナミックRAM(dynamic RAM、DRAM)、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(programmable read-only memory、PROM)、消去可能プログラマブル読取り専用メモリ(erasable programmable read-only memory、EPROM)、電気的消去可能プログラマブル読取り専用メモリ(electrically erasable programmable read-only memory、EEPROM)、フラッシュEPROM(flash EPROM、FLASHEPROM)、キャッシュメモリ(L1/L2/L3/L4/L5/L#)、抵抗性ランダムアクセスメモリ(resistive random-access memory、RRAM/ReRAM)、位相変化メモリ(phase change memory、PCM)、スピン転送トルクRAM(spin transfer torque RAM、STT-RAM)、別のメモリチップ若しくはカートリッジ、及び/又はそれらの組合せなどの、コンピュータによってアクセス可能であるデータを記憶できるハードディスク又は他のタイプのコンピュータ可読媒体であってよい。
【0137】
記憶デバイス1030は、そのようなソフトウェアを定義するコードがプロセッサ1010によって実行されると、システムに機能を実施させる、ソフトウェアサービス、サーバ、サービスなどを含み得る。幾つかの実施形態では、特定の機能を実施するハードウェアサービスは、機能を実行するために、プロセッサ1010、接続部1005、出力デバイス1035などの必要なハードウェア構成要素に関してコンピュータ可読媒体内に記憶された、ソフトウェア構成要素を含み得る。「コンピュータ可読媒体」という用語は、限定はしないが、ポータブル又は非ポータブルの記憶デバイス、光記憶デバイス、並びに命令(複数可)及び/又はデータを記憶、格納、又は搬送できる様々な他の媒体を含む。コンピュータ可読媒体は、データが記憶され、かつワイヤレスで若しくは有線接続を介して伝搬する搬送波及び/又は一時的な電子信号を含まない、非一時的媒体を含んでもよい。非一時的媒体の例としては、限定はしないが、磁気ディスク若しくはテープ、コンパクトディスク(CD)若しくはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ、又はメモリデバイスが挙げられ得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、又は命令、データ構造、若しくはプログラムステートメントの任意の組合せを表し得る、コンピュータ可読媒体上に記憶されたコード及び/又は機械実行可能命令を有してもよい。コードセグメントは、情報、データ、引数、パラメータ、又はメモリコンテンツを渡すこと及び/又は受けることによって、別のコードセグメント又はハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の好適な手段を介して渡され、転送され、又は送信されてもよい。
【0138】
幾つかの実施形態では、コンピュータ可読記憶デバイス、媒体、及びメモリは、ビットストリームなどを含むケーブル又はワイヤレス信号を含み得る。しかしながら、言及する場合、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、及び信号自体などの媒体を明確に除外する。
【0139】
本明細書で提供する実施形態及び例の完全な理解を与えるために、上記の説明で具体的な詳細が提供されている。しかしながら、実施形態がこれらの具体的な詳細なしに実践され得ることが当業者によって理解されよう。説明を明快にするために、幾つかの事例では、本技術は、デバイスと、デバイスコンポーネントと、ソフトウェア、又はハードウェアとソフトウェアの組合せにおいて具現化された方法におけるステップ又はルーチンと、を備える個々の機能ブロックを含むものとして提示されてもよい。図中に示され、及び/又は本明細書で説明した構成要素以外の、追加の構成要素が使用されてもよい。例えば、不必要な詳細で実施形態を不明瞭にしないように、回路、システム、ネットワーク、プロセス、及び他の構成要素がブロック図の形態で構成要素として示されることがある。他の事例では、実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、及び技法は、不必要な詳細なしに示されることもある。
【0140】
個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、又はブロック図として示されるプロセス又は方法として上記で説明されることがある。フローチャートは、動作を逐次プロセスとして説明されることがあるが、動作の多くは並列に又は同時に実施され得る。加えて、動作の順序は並べ替えられてもよい。プロセスは、その動作が完了するときに終結するが、図に含まれていない追加のステップを有し得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応してもよい。プロセスが関数に対応するとき、その終結は、その関数が呼出し関数又はメイン関数に戻ることに対応し得る。
【0141】
上記で説明した例によるプロセス及び方法は、コンピュータ可読媒体から記憶されているか、又はそうでなければコンピュータ可読媒体から入手可能なコンピュータ実行可能命令を使用して実装され得る。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、若しくは処理デバイスに幾つかの機能若しくは機能の群を実施させるか、又は場合によっては、幾つかの機能若しくは機能の群を実施するように汎用コンピュータ、専用コンピュータ、若しくは処理デバイスを構成する、命令及びデータを含み得る。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、例えば、アセンブリ言語、ファームウェア、ソースコードなどのバイナリ、中間フォーマット命令であってもよい。命令、使用される情報、及び/又は記載した例による方法中に作成される情報を記憶するのに使用され得るコンピュータ可読媒体の例は、磁気又は光ディスク、フラッシュメモリ、不揮発性メモリが設けられたUSBデバイス、ネットワーク接続された記憶デバイスなどを含む。
【0142】
これらの開示に従ってプロセス及び方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、又はそれらの任意の組合せを含んでよく、様々なフォームファクタのうちのいずれかをとることができる。ソフトウェア、ファームウェア、ミドルウェア、又はマイクロコードにおいて実装されるとき、必要なタスクを実施するためのプログラムコード又はコードセグメント(例えば、コンピュータプログラム製品)は、コンピュータ可読媒体又は機械可読媒体内に記憶されてもよい。プロセッサは、必要なタスクを実施してもよい。フォームファクタの典型的な例としては、ラップトップ、スマートフォン、携帯電話、タブレットデバイス又は他の小型フォームファクタパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが挙げられる。本明細書で説明した機能は、周辺装置又はアドインカードで具現されてもよい。そのような機能は、更なる例として、異なるチップのうちの回路基板上、又は単一のデバイスにおいて実行する異なるプロセス上で実施されてもよい。
【0143】
命令、そのような命令を伝えるための媒体、命令を実行するためのコンピューティングリソース、及びそのようなコンピューティングリソースをサポートするための他の構造は、本開示で説明した機能を提供するための例示的な手段である。
【0144】
上記の説明では、本出願の態様はそれらの特定の実施形態を参照しながら説明されるが、本出願がそれらに限定されないことを当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されているが、本発明の概念が別のやり方で様々に具現及び採用され得ること、並びに従来技術によって限定される場合を除き、添付の特許請求の範囲がそのようなバリエーションを含むものと解釈されることが意図されることを理解されたい。上記で説明した本出願の様々な特徴及び態様は、個別に又は共同で使用され得る。更に、実施形態は、本明細書のより広い趣旨及び範囲から逸脱することなく、本明細書で説明したもの以外の任意の数の環境及び適用例において利用され得る。したがって、本明細書及び図面は、限定的ではなく例示的と見なされるべきである。例示の目的のために、方法は特定の順序で説明された。代替実施形態では、方法は、説明された順序とは異なる順序で実施されてもよいことを理解されたい。
【0145】
本明細書で使用される、よりも小さい(「<」)及びよりも大きい(「>」)という記号又は専門用語は、本明細書の範囲から逸脱することなく、以下(「≦」)及び以上(「≧」)という記号それぞれと置き換えることができることを、当業者は理解されよう。
【0146】
構成要素が特定の動作を実施する「ように構成されている」ものとして説明される場合、そのような構成は、例えば、動作を実施するように電子回路若しくは他のハードウェアを設計することによって、動作を実施するようにプログラマブル電子回路(例えば、マイクロプロセッサ、又は他の適切な電子回路)をプログラムすることによって、又はそれらの任意の組合せで達成され得る。
【0147】
「に結合された」という句は、直接的若しくは間接的のいずれかで別の構成要素に物理的に接続されている任意の構成要素、及び/又は直接的若しくは間接的のいずれかで別の構成要素と通信している(例えば、有線接続若しくはワイヤレス接続及び/又は他の好適な通信インタフェースを介して他の構成要素に接続されている)任意の構成要素を指す。
【0148】
集合「のうちの少なくとも1つ」及び/又は集合のうちの「1つ又は複数」と記載する請求項の文言又は他の文言は、集合の1つのメンバー又は集合の(任意の組合せでの)複数のメンバーが請求項を満たすことを示す。例えば、「A及びBのうちの少なくとも1つ」又は「A又はBのうちの少なくとも1つ」を記載する請求項の文言は、A、B、又はA及びBを意味する。別の例では、「A、B、及びCのうちの少なくとも1つ」又は「A、B、又はCのうちの少なくとも1つ」を記載する請求項の文言は、A、B、C、又はA及びB、又はA及びC、又はB及びC、又はA及びB及びCを意味する。集合「のうちの少なくとも1つ」及び/又は集合のうちの「1つ又は複数」という文言は、集合の中で列挙される項目にその集合を限定しない。例えば、「A及びBのうちの少なくとも1つ」又は「A又はBのうちの少なくとも1つ」と記載する請求項の文言は、A、B、又はA及びBを意味することができ、追加として、A及びBの集合の中で列挙されない項目を含むことができる。
【0149】
本明細書で開示した例に関して説明した様々な例示的な論理ブロック、モジュール、回路、及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、又はそれらの組合せとして実装されてもよい。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、及びステップについて、それらの機能に関して概略的に上記で説明した。そのような機能がハードウェアとして実装されるのか又はソフトウェアとして実装されるのかは、特定の適用例及びシステム全体に課される設計上の制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本出願の範囲から逸脱する原因として解釈されるべきではない。
【0150】
本明細書で説明した技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、又はそれらの任意の組合せにおいて実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、又はワイヤレス通信デバイスハンドセット及び他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのうちのいずれかにおいて実装されてもよい。モジュール又は構成要素として説明した任意の特徴は、集積論理デバイスの中で一緒に、又は個別であるが相互動作可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装される場合、技術は、命令を含むプログラムコードを含むコンピュータ可読データ記憶媒体によって少なくとも部分的に実現されてもよく、命令が、実行されたときに、上記で説明した方法、アルゴリズム、及び/又は動作のうちの1つ又は複数を実行する。コンピュータ可読データ記憶媒体は、コンピュータプログラム製品の一部を形成してもよく、これはパッケージ材料を含んでもよい。コンピュータ可読媒体は、同期ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(non-volatile random access memory、NVRAM)、電気的消去可能プログラマブル読取り専用メモリ(electrically erasable programmable read-only memory、EEPROM)、FLASHメモリ、磁気又は光データ記憶媒体などの、メモリ又はデータ記憶媒体を備えてもよい。技法は、追加又は代替として、命令又はデータ構造の形態でのプログラムコードを搬送又は通信し得る、かつコンピュータによってアクセスされ、読み取られ、及び/又は実行され得る、伝搬される信号又は波などの、コンピュータ可読通信媒体によって少なくとも部分的に、実現されてもよい。
【0151】
プログラムコードは、1つ又は複数又は複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、又は他の同等の集積論理回路若しくは個別論理回路などの1つ又は複数のプロセッサを含み得る、プロセッサによって実行されてもよい。そのようなプロセッサは、本開示で説明した技法のいずれかを実施するように構成されてもよい。汎用プロセッサは、マイクロプロセッサであってもよい代わりに、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンでもあってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、例えば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つ又は複数のマイクロプロセッサ、又は任意の他のそのような構成として実装されてもよい。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、又は本明細書で説明した技法の実装に適した任意の他の構造若しくは装置のうちのいずれかを指すことがある。
【0152】
本開示の説明のための態様は、以下を含む。
態様1.少なくとも1つの入力オプションに関連付けられている情報を出力するための装置であって、少なくとも1つのメモリと、少なくとも1つのメモリに結合される少なくとも1つのプロセッサとを備え、少なくとも1つのプロセッサは、シーン内のデバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信し、少なくとも1つのメモリを使用することを含めて、シーン、デバイス、及び装置と関連付けられているユーザのうちの少なくとも1つに関連性のある情報を決定し、1つ又は複数の入力オプションと情報とに基づいて、関連性のあるコンテキスト情報が決定された入力オプションに対応するユーザガイダンスデータを出力するように構成されている、装置。
【0153】
態様2.1つ又は複数の入力オプションを識別するデータを受信するために、少なくとも1つのプロセッサは、オブジェクトを動作させるための1つ又は複数の入力オプションを識別するためにシーン内のオブジェクト認識を実行するように構成されている、態様1の装置。
【0154】
態様3.オブジェクトは、ユーザへの閾値近接内及びユーザの視野(FOV)内の少なくとも一方にある、態様2の装置。
【0155】
態様4.少なくとも1つのプロセッサは、シーン内の1つ又は複数の更なるデバイスを検出し、情報に基づいて、ユーザがデバイス又は1つ又は複数の更なるデバイスと相互作用するかどうかを予測する信頼値を決定し、決定された信頼値が閾値を超えることに応じて、デバイスとのユーザ相互作用を予測するように構成されている、態様1~3のいずれかの装置。
【0156】
態様5.少なくとも1つのプロセッサは、デバイスとのユーザ相互作用の予測に応じて、1つ又は複数の更なるデバイスと関連付けられているコンテンツをフィルタリングし、デバイスと関連付けられているコンテンツを出力するように構成されている、態様4の装置。
【0157】
態様6.少なくとも1つのプロセッサは、ユーザが相互作用すると予測されるデバイス及び1つ又は複数の更なるデバイスのいずれかを識別するように構成されている、態様4又は5のいずれかの装置。
【0158】
態様7.少なくとも1つのプロセッサは、コンテンツの過負荷、混乱、及びコンテンツクラッタのうちの少なくとも1つを回避するためにユーザインタフェースコンテンツの提示を単純化するように構成されている、態様4~6のいずれかの装置。
【0159】
態様8.デバイスは、ネットワーク通信能力を伴う接続されたデバイスを備え、少なくとも1つのプロセッサは、情報と1つ又は複数の入力オプションとに基づいて、デバイスへの予測されたユーザ入力を含む予測されたユーザ相互作用を表わすハンドジェスチャを決定し、検出されると、デバイスで実際のユーザ入力を呼び出すハンドジェスチャの指示を含む、ユーザガイダンスデータを提示するように構成されている、態様1~7のいずれかの装置。
【0160】
態様9.ユーザガイダンスデータは、入力オプションに関連付けられているユーザ入力要素、入力オプションに関連する物理オブジェクト上の仮想オーバーレイ、及び入力オプションに関連する入力を提供する方法を示すキューのうちの少なくとも1つを含む、態様1~8のいずれかの装置。
【0161】
態様10.少なくとも1つのプロセッサは、情報に基づいて、デバイスとのユーザ相互作用を予測し、1つ又は複数の入力オプションと予測されたユーザ相互作用とに基づいて、入力オプションに対応するユーザガイダンスデータを提示するように構成されている、態様7の装置。
【0162】
態様11.ユーザガイダンスデータを提示するために、少なくとも1つのプロセッサは、装置と関連付けられているディスプレイにおいて、デバイスの表面上に置かれているように見えるべく構成される仮想オーバーレイをレンダリングするように構成され、仮想オーバーレイは、入力オプションと関連付けられているユーザインタフェース要素を含み、ユーザインタフェース要素は、入力オプションと関連付けられている仮想ユーザ入力オブジェクト、及び入力オプションに対応する入力を受信するように構成されたデバイス上の物理制御オブジェクトの視覚的指示のうちの少なくとも一方を含む、態様1~10のいずれかの装置。
【0163】
態様12.情報は、ユーザの視線及びユーザの姿勢のうちの少なくとも一方を含み、少なくとも1つのプロセッサは、ユーザの視線及びユーザの姿勢のうちの少なくとも一方に基づいてデバイスとのユーザ相互作用を予測し、ユーザガイダンスデータを提示した後に、入力オプションと関連付けられている実際のユーザ入力であって、予測されたユーザ相互作用を表わす実際のユーザ入力を検出し、入力オプションと関連付けられている実際のユーザ入力に対応するコマンドをデバイスに送信するように構成されている、態様1~11のいずれかの装置。
【0164】
態様13.入力オプションに対応するユーザガイダンスデータを出力するために、少なくとも1つのプロセッサは、ユーザガイダンスデータを表示するように構成されている、態様1~12のいずれかの装置。
【0165】
態様14.入力オプションに対応するユーザガイダンスデータを出力するために、少なくとも1つのプロセッサは、ユーザガイダンスデータを表わす音声データを出力するように構成されている、態様1~13のいずれかの装置。
【0166】
態様15.入力オプションに対応するユーザガイダンスデータを出力するために、少なくとも1つのプロセッサは、ユーザガイダンスデータを表示し、表示されたユーザガイダンスデータと関連付けられている音声データを出力するように構成されている、態様1~14のいずれかの装置。
【0167】
態様16.少なくとも1つのプロセッサは、デバイスから、デバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信するように構成されている、態様1~15のいずれかの装置。
【0168】
態様17.少なくとも1つのプロセッサは、サーバから、デバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信するように構成されている、態様1~16のいずれかの装置。
【0169】
態様18.デバイスは、1つ又は複数のユーザ入力を受信するための外部ユーザインタフェースを有さない、態様1~17のいずれかの装置。
【0170】
態様19.少なくとも1つのプロセッサは、情報に基づいて、デバイスに関連付けられている更なるユーザガイダンスデータを提示することを控えるように構成されている、態様1~18のいずれかの装置。
【0171】
態様20.装置がエクステンデッドリアリティデバイスである、態様1~19のいずれかの装置。
【0172】
態様21.ディスプレイを更に備える、態様1~20のいずれかの装置。
【0173】
態様22.ディスプレイは、少なくともユーザガイダンスデータを表示するように構成されている、態様21の装置。
【0174】
態様23.少なくとも1つのプロセッサは、ユーザガイダンスデータを提示した後に、入力オプションに関連付けられているユーザ入力を取得し、ユーザ入力に対応する命令であって、デバイスの1つ又は複数の動作を制御するように構成される命令をデバイスに送信するように構成されている、態様1~22のいずれかの装置。
【0175】
態様24.シーン、デバイス、及びユーザのうちの少なくとも1つに関連性のある情報は、デバイスとの予測されるユーザ相互作用、シーン内のユーザの1つ又は複数のアクション、ユーザに関連付けられている特性、ユーザ及びデバイスに関連付けられている履歴情報、デバイスのユーザインタフェース能力、デバイスに関連付けられている情報、及びシーンに関連付けられている情報のうちの少なくとも1つを含む、態様1~23のいずれかの装置。
【0176】
態様25.少なくとも1つのプロセッサは、シーン内の1つ又は複数の更なるデバイスを検出し、コンテキスト情報に基づいて、ユーザがデバイス又は1つ又は複数の更なるデバイスと相互作用する可能性を示す信頼値を決定し、決定された信頼値が閾値を超えることに応じて、ユーザ相互作用を予測するように構成されている、態様1~24のいずれかの装置。
【0177】
態様26.少なくとも1つのプロセッサは、ユーザ相互作用データに関してユーザからの確認を受信し、ユーザからの確認に応じてデバイスと相互作用するように更に構成されている、態様1~25のいずれかの装置。
【0178】
態様27.確認が音声確認である、態様26の装置。
【0179】
態様28.確認は、装置で受信されるユーザ入力である、態様26又は27のいずれかの装置。
【0180】
態様29.少なくとも1つの入力オプションと関連付けられている情報を出力するための方法であって、シーン内のデバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信することと、少なくとも1つのメモリを使用することを含めて、シーン、デバイス、及び電子デバイスと関連付けられているユーザのうちの少なくとも1つに関連性のある情報を決定することと、1つ又は複数の入力オプションと情報とに基づいて、関連性のあるコンテキスト情報が決定された入力オプションに対応するユーザガイダンスデータを出力することとを含む。
【0181】
態様30.1つ又は複数の入力オプションを識別するデータを受信することは、オブジェクトを動作させるための1つ又は複数の入力オプションを識別するべくシーン内でオブジェクト認識を実行することを含む、態様29の方法。
【0182】
態様31.オブジェクトは、ユーザへの閾値近接内及びユーザの視野(FOV)内の少なくとも一方にある、態様30の方法。
【0183】
態様32.シーン内の1つ又は複数の更なるデバイスを検出することと、情報に基づいて、ユーザがデバイス又は1つ又は複数の更なるデバイスと相互作用するかどうかを予測する信頼値を決定することと、決定された信頼値が閾値を超えることに応じて、デバイスとのユーザ相互作用を予測することと、を更に含む、態様29~31のいずれかの方法。
【0184】
態様33.デバイスとのユーザ相互作用の予測に応じて、1つ又は複数の更なるデバイスと関連付けられているコンテンツをフィルタリングすることと、デバイスと関連付けられているコンテンツを出力することと、を更に含む、態様29~32のいずれかの方法。
【0185】
態様34.ユーザが相互作用すると予測されるデバイス及び1つ又は複数の更なるデバイスのいずれかを識別することを更に含む、態様29~33のいずれかの方法。
【0186】
態様35.コンテンツの過負荷、混乱、及びコンテンツクラッタのうちの少なくとも1つを回避するためにユーザインタフェースコンテンツの提示を単純化することを更に含む、態様34の方法。
【0187】
態様36.ユーザガイダンスデータは、入力オプションに関連付けられているユーザ入力要素、入力オプションに関連付けられている物理オブジェクト上の仮想オーバーレイ、及び入力オプションに関連付けられている入力を提供する方法を示すキューのうちの少なくとも1つを含む、態様29~35のいずれかの方法。
【0188】
態様37.情報に基づいて、デバイスとのユーザ相互作用を予測することと、1つ又は複数の入力オプションと予測されたユーザ相互作用とに基づいて、入力オプションに対応するユーザガイダンスデータを提示することと、を更に含む、態様29~36のいずれかの方法。
【0189】
態様38.デバイスは、ネットワーク通信能力を伴う接続されたデバイスを備え、方法は、情報と1つ又は複数の入力オプションとに基づいて、デバイスへの予測されたユーザ入力を含む予測されたユーザ相互作用を表わすハンドジェスチャを決定することと、検出される、デバイスで実際のユーザ入力を呼び出すハンドジェスチャの指示を含む、ユーザガイダンスデータを提示することと、を更に含む、態様37の装置。
【0190】
態様39.ユーザガイダンスデータを提示することは、電子デバイスと関連付けられているディスプレイにおいて、デバイスの表面上に置かれているように見えるべく構成される仮想オーバーレイをレンダリングすることを含み、仮想オーバーレイは、入力オプションと関連付けられているユーザインタフェース要素を含み、ユーザインタフェース要素は、入力オプションと関連付けられている仮想ユーザ入力オブジェクト、及び入力オプションに対応する入力を受信するように構成されたデバイス上の物理制御オブジェクトの視覚的指示のうちの少なくとも一方を含む、態様29~38のいずれかの方法。
【0191】
態様40.情報は、ユーザの視線及びユーザの姿勢のうちの少なくとも一方を含み、方法は、ユーザの視線及びユーザの姿勢のうちの少なくとも一方に基づいてデバイスとのユーザ相互作用を予測することと、ユーザガイダンスデータを提示した後に、入力オプションと関連付けられている実際のユーザ入力であって、予測されたユーザ相互作用を表わす実際のユーザ入力を検出することと、入力オプションと関連付けられている実際のユーザ入力に対応するコマンドをデバイスに送信することと、を含む、態様29~39のいずれかの方法。
【0192】
態様41.入力オプションに対応するユーザガイダンスデータを出力することは、ユーザガイダンスデータを表示することを含む、態様29~40のいずれかの方法。
【0193】
態様42.入力オプションに対応するユーザガイダンスデータを出力することは、ユーザガイダンスデータを表わす音声データを出力することを含む、態様29~41のいずれかの方法。
【0194】
態様43.入力オプションに対応するユーザガイダンスデータを出力することは、ユーザガイダンスデータを表示することと、表示されたユーザガイダンスデータと関連付けられている音声データを出力することと、を含む、態様29~42のいずれかの方法。
【0195】
態様44.デバイスと関連付けられている1つ又は複数の入力オプションを識別するデータをデバイスから受信することを更に含む、態様29~43のいずれかの方法。
【0196】
態様45.サーバから、デバイスと関連付けられている1つ又は複数の入力オプションを識別するデータを受信することを更に含む、態様29~44のいずれかの方法。
【0197】
態様46.デバイスは、1つ又は複数のユーザ入力を受信するための外部ユーザインタフェースを有さない、態様29~45のいずれかの方法。
【0198】
態様47.情報に基づいて、デバイスに関連付けられている更なるユーザガイダンスデータを提示することを控えることを更に含む、態様29~46のいずれかの方法。
【0199】
態様48.ユーザガイダンスデータを提示した後に、入力オプションと関連付けられているユーザ入力を取得することと、ユーザ入力に対応する命令であって、デバイスの1つ又は複数の動作を制御するように構成される命令をデバイスに送信することと、を更に含む、態様29~47のいずれか方法。
【0200】
態様49.シーン、デバイス、及びユーザのうちの少なくとも1つに関連性のある情報は、デバイスとの予測されるユーザ相互作用、シーン内のユーザの1つ又は複数のアクション、ユーザに関連付けられている特性、ユーザ及びデバイスに関連付けられている履歴情報、デバイスのユーザインタフェース能力、デバイスに関連付けられている情報、及びシーンに関連付けられている情報のうちの少なくとも1つを含む、態様29~48のいずれかの方法。
【0201】
態様50.シーン内の1つ又は複数の更なるデバイスを検出することと、コンテキスト情報に基づいて、ユーザがデバイス又は1つ又は複数の更なるデバイスと相互作用する可能性を示す信頼値を決定することと、決定された信頼値が閾値を超えることに応じて、ユーザ相互作用を予測することと、を更に含む、態様29~49のいずれかの方法。
【0202】
態様51.ユーザ相互作用データに関するユーザからの確認を受信し、ユーザからの確認に応じてデバイスと相互作用することを更に含む、態様29~50のいずれかの方法。
【0203】
態様52.確認が音声確認である、態様51の方法。
【0204】
態様53.確認は、装置で受信されるユーザ入力である、態様51又は52のいずれかの方法。
【0205】
態様54.1つ又は複数のプロセッサによって実行されるときに1つ又は複数のプロセッサに態様29~53のいずれかの方法を実行させる命令を記憶した非一時的コンピュータ可読媒体。
【0206】
態様55.態様29~53のいずれかの方法を実行するための手段を備える装置。
図1
図2
図3
図4A
図4B
図4C
図5A
図5B
図6A
図6B
図7A
図7B
図8A
図8B
図8C
図8D
図9
図10
【国際調査報告】