(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-28
(54)【発明の名称】仮想現実における部分パススルー
(51)【国際特許分類】
G06F 3/01 20060101AFI20231221BHJP
G06T 19/00 20110101ALI20231221BHJP
【FI】
G06F3/01 510
G06F3/01 570
G06T19/00 A
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023537489
(86)(22)【出願日】2021-12-21
(85)【翻訳文提出日】2023-08-15
(86)【国際出願番号】 US2021064674
(87)【国際公開番号】W WO2022140432
(87)【国際公開日】2022-06-30
(32)【優先日】2020-12-22
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-10-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】515046968
【氏名又は名称】メタ プラットフォームズ テクノロジーズ, リミテッド ライアビリティ カンパニー
【氏名又は名称原語表記】META PLATFORMS TECHNOLOGIES, LLC
(74)【代理人】
【識別番号】110002974
【氏名又は名称】弁理士法人World IP
(72)【発明者】
【氏名】ルボウ, マイケル ジェームズ
(72)【発明者】
【氏名】ジトコフ, ジョン ニコラス
【テーマコード(参考)】
5B050
5E555
【Fターム(参考)】
5B050AA03
5B050BA09
5B050BA12
5B050BA13
5B050CA07
5B050CA08
5B050DA05
5B050DA07
5B050EA04
5B050EA26
5B050FA02
5B050FA10
5B050FA13
5E555AA27
5E555BA38
5E555BB38
5E555BC04
5E555BE17
5E555CA42
5E555CA44
5E555CA45
5E555CB66
5E555CC01
5E555DA08
5E555DA09
5E555DB57
5E555DC09
5E555EA12
5E555FA00
(57)【要約】
仮想現実デバイスのユーザに部分パススルービデオを提供するためのシステムおよび方法が本明細書で開示される。部分パススルービデオを提供することは、ハンドパススルートリガイベントを検出し、ハンドパススルービデオフィードを識別することを含むことができる。部分パススルービデオを提供することは、仮想環境によってユーザに提示された仮想環境にハンドパススルービデオフィードを位置合わせすることと、仮想環境とのハンドパススルービデオフィードの位置合わせに基づいて、仮想環境にハンドパススルービデオフィードをオーバーレイすることと、をさらに含むことができる。
【選択図】
図6
【特許請求の範囲】
【請求項1】
仮想現実デバイスのユーザに部分パススルービデオを提供するための方法であって、
ハンドパススルートリガイベントの検出することと、
前記ハンドパススルートリガイベントの検出に応答して、前記仮想現実デバイスの1つまたは複数のカメラからのハンドパススルービデオフィードを識別することと、
前記ハンドパススルービデオフィードを、前記仮想現実デバイスによって前記ユーザに提示される仮想環境と位置合わせすることと、
前記ハンドパススルービデオフィードと前記仮想環境との位置合わせに基づいて、前記ハンドパススルービデオフィードを前記仮想環境上にオーバーレイすることと、を含む、方法。
【請求項2】
前記ハンドパススルートリガイベントを検出することが、前記ユーザの手の監視されたポーズに基づいて、前記ユーザが特定のジェスチャを行ったことを識別することを含み、前記ユーザの手の前記ポーズが、A)前記ユーザの手または手首に取り付けられた1つまたは複数のセンサからの入力を使用して、および/またはB)前記仮想現実デバイスによってキャプチャされた画像を分析することによって監視される、請求項1に記載の方法。
【請求項3】
前記ハンドパススルートリガイベントを検出することが、前記ユーザの手が指定領域から出たことを識別することを含む、請求項1に記載の方法。
【請求項4】
前記ハンドパススルートリガイベントを検出することが、前記ユーザの手が現実世界の表面の閾値距離内にあると判定することを含む、請求項1に記載の方法。
【請求項5】
前記ハンドパススルートリガイベントを検出することが、前記ユーザの手が現実世界のオブジェクトの閾値距離内にあると判定することを含み、または前記ハンドパススルートリガイベントを検出することが、判定された現在の手の速度および軌道を用いて前記ユーザの運動学的モデルを分析することによって、前記ユーザの一部と現実世界のオブジェクトとの間の予測される衝突を識別することを含む、請求項1に記載の方法。
【請求項6】
前記ハンドパススルートリガイベントを検出することが、前記ユーザが特定の音声コマンドを発したか、または前記仮想現実デバイスに関連付けられた特定のボタンを押したと判定することを含む、請求項1に記載の方法。
【請求項7】
前記ハンドパススルートリガイベントを検出することが、前記ユーザの手の動作に基づいており、
前記ハンドパススルービデオフィードを識別することが、
前記仮想現実デバイスの前記1つまたは複数のカメラからの1つまたは複数の画像において、前記動作を実行した前記ユーザの手を識別することと、
前記仮想現実デバイスの前記1つまたは複数のカメラからの前記1つまたは複数の画像内の、前記識別された手の周りの領域を識別することと、を含む、請求項1に記載の方法。
【請求項8】
前記ハンドパススルービデオフィードを識別することが、
ユーザの手から延びる特定の直線または曲線が現実世界のオブジェクトまたは現実世界の表面と交差する点を決定することと、
前記仮想現実デバイスの前記1つまたは複数のカメラからの1つまたは複数の画像内で、前記決定された点の周りの領域を識別することと、を含む、請求項1に記載の方法。
【請求項9】
前記ハンドパススルートリガイベントを検出することが、前記仮想現実デバイスの前記1つまたは複数のカメラからの1つまたは複数の画像内のオブジェクトの識別に基づいており、
前記ハンドパススルービデオフィードを識別することが、前記仮想現実デバイスの前記1つまたは複数のカメラからの前記1つまたは複数の画像内の、前記識別されたオブジェクトの周りの領域を識別することを含む、請求項1に記載の方法。
【請求項10】
前記ハンドパススルートリガイベントを検出することが、前記仮想現実デバイスの前記1つまたは複数のカメラからの1つまたは複数の画像内のオブジェクトまたは表面の識別に基づいており、
前記ハンドパススルービデオフィードのサイズが、前記ユーザの手と前記識別されたオブジェクトまたは表面との間の決定された距離に基づいて設定される、請求項1に記載の方法。
【請求項11】
前記ハンドパススルービデオフィードを識別することが、
前記仮想現実デバイスの前記1つまたは複数のカメラからの1つまたは複数の画像において、前記ユーザの第1の手および前記ユーザの第2の手を識別することと、
前記仮想現実デバイスの前記1つまたは複数のカメラからの前記1つまたは複数の画像内の、前記識別された第1の手の周りの領域を識別することであって、前記領域のサイズが、前記第1の手と前記第2の手との間の決定された距離に基づく、識別することと、を含む、請求項1に記載の方法。
【請求項12】
前記ハンドパススルービデオフィードを前記仮想環境と位置合わせすることが、前記ハンドパススルービデオフィードと前記仮想環境との間の、識別された1つまたは複数のオブジェクトおよび/または身体部分の一致に基づいて、前記ハンドパススルービデオフィードに関連付けられた座標を前記仮想環境内の座標に一致させることを含む、請求項1に記載の方法。
【請求項13】
仮想現実デバイスのユーザに部分パススルービデオを提供するためのコンピューティングシステムであって、
1つまたは複数のプロセッサと、
命令を格納する1つまたは複数のメモリと、を含み、前記命令は、前記1つまたは複数のプロセッサによって実行されると、前記コンピューティングシステムに、
ハンドパススルートリガイベントの検出することと、
ハンドパススルートリガイベントの検出に応答して、前記仮想現実デバイスの1つまたは複数のカメラからのハンドパススルービデオフィードを識別することと、
ハンドパススルービデオフィードを、仮想現実デバイスによって前記ユーザに提示される仮想環境と位置合わせすることと、
前記ハンドパススルービデオフィードと前記仮想環境との位置合わせに基づいて、前記ハンドパススルービデオフィードを前記仮想環境にオーバーレイすることと、を含む請求項1から12のいずれか一項に記載の方法またはプロセスを実行させる、コンピューティングシステム。
【請求項14】
前記ハンドパススルートリガイベントを検出することが、前記ユーザの手が現実世界のオブジェクトまたは現実世界の表面の閾値距離内にあると判定することを含む、請求項13に記載のコンピューティングシステム。
【請求項15】
前記ハンドパススルートリガイベントを検出することが、前記ユーザの手の監視されたポーズに基づいて、前記ユーザが特定のジェスチャを行ったことを識別することを含み、前記ユーザの手の前記ポーズが、A)前記ユーザの手、手首、もしくは前腕に取り付けられた1つまたは複数のセンサからの入力を使用して、および/またはB)前記仮想現実デバイスによってキャプチャされた画像を分析することによって監視される、請求項13に記載のコンピューティングシステム。
【請求項16】
前記ハンドパススルートリガイベントを検出することが、前記ユーザの手の動作に基づいており、
前記ハンドパススルービデオフィードを識別することが、
前記仮想現実デバイスの前記1つまたは複数のカメラからの1つまたは複数の画像において、前記動作を実行した前記ユーザの手を識別することと、
前記仮想現実デバイスの前記1つまたは複数のカメラからの前記1つまたは複数の画像内の、前記識別された手の周りの領域を識別することと、を含む、請求項13に記載のコンピューティングシステム。
【請求項17】
前記ハンドパススルートリガイベントを検出することが、前記ユーザの手が指定領域から出たことを識別することを含む、請求項13に記載のコンピューティングシステム。
【請求項18】
命令を格納するコンピュータ可読記憶媒体であって、前記命令は、コンピューティングシステムによって実行されると、前記コンピューティングシステムに、
前記ハンドパススルートリガイベントの検出することと、
前記ハンドパススルートリガイベントの検出に応答して、仮想現実デバイスの1つまたは複数のカメラからのハンドパススルービデオフィードを識別することと、
前記ハンドパススルービデオフィードを、前記仮想現実デバイスによってユーザに提示される仮想環境と位置合わせすることと、
前記ハンドパススルービデオフィードと前記仮想環境との位置合わせに基づいて、前記ハンドパススルービデオフィードを前記仮想環境にオーバーレイすることと、を含む請求項1から12のいずれか一項に記載の方法またはプロセスを実行させる、コンピュータ可読記憶媒体。
【請求項19】
前記ハンドパススルービデオフィードを識別することが、
前記ユーザの手から延びる特定の直線または曲線が現実世界のオブジェクトまたは現実世界の表面と交差する点を決定することと、
前記仮想現実デバイスの前記1つまたは複数のカメラからの1つまたは複数の画像内で、前記決定された点の周りの領域を識別することと、を含む、請求項18に記載のコンピュータ可読記憶媒体。
【請求項20】
コンピューティングシステムによって実行されると、請求項1から12のいずれか一項に記載の方法を前記コンピューティングシステムに実行させる命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、2020年12月22日に出願された「仮想現実における部分パススルー」と題する米国仮特許出願第63/129,486号明細書(代理人整理番号3589-0031PV01)の優先権を主張し、その全体が参照により本明細書に組み込まれる。
【技術分野】
【0002】
本開示は、仮想現実環境における部分ビデオパススルーに関する。
【背景技術】
【0003】
仮想現実システムは、異なる世界を体験し、新しい方法で学習し、他の人とのより良いつながりを作る能力をユーザに提供する。これらの仮想現実システムは、ユーザの移動を追跡し、それらを「仮想オブジェクト」(すなわち、仮想環境に現れるコンピュータ生成オブジェクト表現)との対話に変換することができる。例えば、仮想現実システムは、仮想オブジェクトをピックアップするときにグラブジェスチャを変換して、ユーザの手を追跡することができる。ユーザが仮想オブジェクトを見て対話している間、ユーザの物理的な移動は現実世界で発生する。いくつかの状況では、仮想現実システムは、ユーザが現実世界の一部または全部を見るのを防止することができ、またはユーザが仮想オブジェクトに気を取られ、ユーザが現実世界のオブジェクトと不注意に衝突する可能性がある。他の場合では、ユーザは、現実世界で何が起こっているかを見る必要があり得る。例えば、ユーザは、部屋内の他の人と対話する必要があり得るか、またはオブジェクトと対話する必要があり得る。しかしながら、これには、仮想現実デバイスを停止すること、デバイスを取り外すことなどを含む多くのステップが含まれる可能性がある。
【発明の概要】
【0004】
それ故に、本発明は、仮想現実デバイスのユーザに部分パススルービデオを提供するための方法およびコンピューティングシステム、ならびに添付の特許請求の範囲によるコンピュータ可読記憶媒体およびコンピュータプログラムに関する。
【0005】
一態様では、本発明は、仮想現実デバイスのユーザに部分パススルービデオを提供するための方法であって、
ハンドパススルートリガイベントの検出することと、
ハンドパススルートリガイベントの検出に応答して、仮想現実デバイスの1つまたは複数のカメラからのハンドパススルービデオフィードを識別することと、
ハンドパススルービデオフィードを仮想現実デバイスによってユーザに提示される仮想環境と位置合わせすることと、
ハンドパススルービデオフィードと仮想環境との位置合わせに基づいて、ハンドパススルービデオフィードを仮想環境上にオーバーレイすることと、を含む、方法に関する。
【0006】
本発明による方法の実施形態では、ハンドパススルートリガイベントを検出することは、ユーザの手の監視されたポーズに基づいて、ユーザが特定のジェスチャを行ったことを識別することを含んでもよく、ユーザの手のポーズは、A)ユーザの手または手首に取り付けられた1つまたは複数のセンサからの入力を使用して、および/またはB)仮想現実デバイスによってキャプチャされた画像を分析することによって監視されてもよい。
【0007】
本発明による方法の実施形態では、ハンドパススルートリガイベントを検出することは、ユーザの手が指定領域から出たことを識別することを含んでもよい。
【0008】
本発明による方法の実施形態では、ハンドパススルートリガイベントを検出することは、ユーザの手が現実世界の表面の閾値距離内にあると判定することを含んでもよい。
【0009】
本発明による方法の実施形態では、ハンドパススルートリガイベントを検出することは、ユーザの手が現実世界のオブジェクトの閾値距離内にあると判定することを含んでもよい。
【0010】
本発明による方法の実施形態では、ハンドパススルートリガイベントを検出することは、判定された現在の手の速度および軌道を用いてユーザの運動学的モデルを分析することによって、ユーザの一部と現実世界のオブジェクトとの間の予測される衝突を識別することを含んでもよい。
【0011】
本発明による方法の実施形態では、ハンドパススルートリガイベントを検出することは、ユーザが特定の音声コマンドを発したか、または仮想現実デバイスに関連付けられた特定のボタンを押したと判定することを含んでもよい。
【0012】
本発明による方法の実施形態では、ハンドパススルートリガイベントを検出することは、ユーザの手の動作に基づいてもよく、ハンドパススルービデオフィードを識別することは、
仮想現実デバイスの1つまたは複数のカメラからの1つまたは複数の画像において、動作を実行したユーザの手を識別することと、
仮想現実デバイスの1つまたは複数のカメラからの1つまたは複数の画像内の、識別された手の周りの領域を識別することと、を含んでもよい。
【0013】
本発明による方法の実施形態では、ハンドパススルービデオフィードを識別することは、
ユーザの手から延びる特定の直線または曲線が現実世界のオブジェクトまたは現実世界の表面と交差する点を決定することと、
仮想現実デバイスの1つまたは複数のカメラからの1つまたは複数の画像内で、決定された点の周りの領域を識別することと、を含んでもよい。
【0014】
本発明による方法の実施形態では、ハンドパススルートリガイベントを検出することは、仮想現実デバイスの1つまたは複数のカメラからの1つまたは複数の画像内のオブジェクトの識別に基づき得、ハンドパススルービデオフィードを識別することは、仮想現実デバイスの1つまたは複数のカメラからの1つまたは複数の画像内の、識別されたオブジェクトの周りの領域を識別することを含んでもよい。
【0015】
本発明による方法の実施形態では、ハンドパススルートリガイベントを検出することは、仮想現実デバイスの1つまたは複数のカメラからの1つまたは複数の画像内のオブジェクトまたは表面の識別に基づき得、
ハンドパススルービデオフィードのサイズは、ユーザの手と識別されたオブジェクトまたは表面との間の決定された距離に基づいて設定され得る。
【0016】
本発明による方法の実施形態では、ハンドパススルービデオフィードを識別することは、
仮想現実デバイスの1つまたは複数のカメラからの1つまたは複数の画像において、ユーザの第1の手およびユーザの第2の手を識別することと、
仮想現実デバイスの1つまたは複数のカメラからの1つまたは複数の画像内の、識別された第1の手の周りの領域を識別することであって、領域のサイズは、
【0017】
本発明による方法の実施形態では、ハンドパススルービデオフィードを仮想環境と位置合わせすることは、ハンドパススルービデオフィードと仮想環境との間の、識別された1つまたは複数のオブジェクトおよび/または身体部分の一致に基づいて、ハンドパススルービデオフィードに関連付けられた座標を仮想環境内の座標に一致させることを含んでもよい。
【0018】
一態様では、本発明は、仮想現実デバイスのユーザに部分パススルービデオを提供するためのコンピューティングシステムにさらに関し、コンピューティングシステムは、
1つまたは複数のプロセッサと、
命令を格納する1つまたは複数のメモリと、を含み、命令は、1つまたは複数のプロセッサによって実行されると、コンピューティングシステムに、
ハンドパススルートリガイベントの検出することと、
ハンドパススルートリガイベントの検出に応答して、仮想現実デバイスの1つまたは複数のカメラからのハンドパススルービデオフィードを識別することと、
ハンドパススルービデオフィードを仮想現実デバイスによってユーザに提示される仮想環境と位置合わせすることと、
ハンドパススルービデオフィードと仮想環境との位置合わせに基づいて、ハンドパススルービデオフィードを仮想環境上にオーバーレイすることと、を含む上述の方法またはプロセスを実行させる。
【0019】
本発明によるコンピューティングシステムの実施形態では、ハンドパススルートリガイベントを検出することは、ユーザの手が現実世界のオブジェクトまたは現実世界の表面の閾値距離内にあると判定することを含んでもよい。
【0020】
本発明によるコンピューティングシステムの実施形態では、ハンドパススルートリガイベントを検出することは、ユーザがユーザの手の監視されたポーズに基づいて、特定のジェスチャを行ったことを識別することを含んでもよく、ユーザの手のポーズは、A)ユーザの手、手首、もしくは前腕に取り付けられた1つまたは複数のセンサからの入力を使用して、および/またはB)仮想現実デバイスによってキャプチャされた画像を分析することによって監視されてもよい。
【0021】
本発明によるコンピューティングシステムの実施形態では、ハンドパススルートリガイベントの検出は、ユーザの手の動作に基づき得、ハンドパススルービデオフィードを識別することは、
仮想現実デバイスの1つまたは複数のカメラからの1つまたは複数の画像において、動作を実行したユーザの手を識別することと、
仮想現実デバイスの1つまたは複数のカメラからの1つまたは複数の画像内の、識別された手の周りの領域を識別することと、を含んでもよい。
【0022】
本発明によるコンピューティングシステムの実施形態では、ハンドパススルートリガイベントを検出することは、ユーザの手が指定領域から出たことを識別することを含んでもよい。
【0023】
一態様では、本発明は、命令を格納するコンピュータ可読記憶媒体にさらに関し、命令は、コンピューティングシステムによって実行されると、コンピューティングシステムに、
ハンドパススルートリガイベントの検出することと、
ハンドパススルートリガイベントの検出に応答して、仮想現実デバイスの1つまたは複数のカメラからのハンドパススルービデオフィードを識別することと、
ハンドパススルービデオフィードを、仮想現実デバイスによってユーザに提示される仮想環境と位置合わせすることと、
ハンドパススルービデオフィードと仮想環境との位置合わせに基づいて、ハンドパススルービデオフィードを仮想環境上にオーバーレイすることと、を含む上述の方法またはプロセスを実行させる。
【0024】
本発明によるコンピュータ可読記憶媒体の実施形態では、ハンドパススルービデオフィードを識別することは、
ユーザの手から延びる特定の直線または曲線が現実世界のオブジェクトまたは現実世界の表面と交差する点を決定することと、
仮想現実デバイスの1つまたは複数のカメラからの1つまたは複数の画像内で、決定された点の周りの領域を識別することと、を含んでもよい。
【0025】
一態様では、本発明は、プログラムがコンピューティングシステムによって実行されると、コンピューティングシステムに上述の方法を実行させる命令を含むコンピュータプログラムにさらに関する。
【図面の簡単な説明】
【0026】
【
図1】本技術のいくつかの実装形態が動作可能であるデバイスの全体像を示すブロック図である。
【
図2A】本技術のいくつかの実装形態において使用可能である仮想現実ヘッドセットを示す配線図である。
【
図2B】本技術のいくつかの実装形態において使用可能である複合現実ヘッドセットを示す配線図である。
【
図2C】いくつかの実装形態では、ユーザが人工現実環境と対話するために片手または両手で保持することができるコントローラを示す。
【
図3】本技術のいくつかの実装形態が動作可能である環境の全体像を示すブロック図である。
【
図4】いくつかの実装形態において、開示された技術を用いるシステムで使用可能である構成要素を示すブロック図である。
【
図5】仮想現実デバイスのための部分ビデオパススルーを提供するために本技術のいくつかの実装形態で使用されるプロセスを示すフロー図である。
【
図6】開示された技術を用いるいくつかの実装形態において仮想環境上にオーバーレイされているハロー部分パススルーの例を示す概念図である。
【
図7】開示された技術を用いるいくつかの実装形態において仮想環境上にオーバーレイされているフラッシュライト部分ビデオパススルーの例を示す概念図である。
【発明を実施するための形態】
【0027】
ここで導入された技法は、同様の参照番号が同一のまたは機能的に同様の要素を指示する添付の図面と併せて以下の「発明を実施するための形態」を参照することによって、より良く理解され得る。
【0028】
本開示の態様は、仮想現実ヘッドセットなどの仮想現実デバイスのユーザが、仮想現実デバイスを取り外したり非アクティブ化したり、煩雑な制御をアクティブ化したりする必要なく、自分の環境のビデオを見ることを可能にする部分パススルーシステムに関する。仮想現実環境と対話するユーザが、現実世界の少なくとも一部で何が起こっているかを見る必要があり得るさまざまな状況がある。例えば、ユーザは、現実世界のオブジェクトと衝突しようとしているか、現実世界のオブジェクトまたは人と対話したい場合がある。しかしながら、既存の仮想現実システムは、ユーザが仮想現実デバイスを取り外すか、または現実世界を見るために煩雑な一連のメニューによって制御をアクティブ化する必要があり、仮想現実体験からユーザを不必要に遠ざけている。したがって、仮想環境の一部にオーバーレイされたユーザの環境の部分ビデオフィードを容易におよび/または自動的に表示することができるシステムが必要であり、そのため、ユーザは、仮想現実デバイスを取り外したり、一連のUI制御またはメニューを通過したりする必要なく、現実世界の人々およびオブジェクトと対話することができる。
【0029】
部分パススルーシステムは、トリガイベントが発生して部分ビデオパススルーを開始するときに、ユーザが現実世界のビデオを見ることを可能にする。トリガイベントの例には、ユーザが特定のジェスチャを行ったとき、ユーザの手が指定領域から出たとき、ユーザの手が現実世界のオブジェクトの閾値距離内にあるとき、ユーザの手が物理的表面の閾値距離内にあるとき、およびそれらの組み合わせが含まれる。部分ビデオパススルーは、ユーザが見ている仮想環境にオーバーレイされたユーザの実際の環境の一部のビデオフィードを提供することができる。したがって、ユーザがユーザの近くのオブジェクトまたは領域内の他の人と対話する必要がある場合、ユーザは、トリガイベントにビデオパススルーにアクセスさせて、ユーザの環境をリアルタイムで見ることができる。トリガイベントを識別することに関するさらなる詳細は、
図5のブロック502に関連して下記で提供される。
【0030】
場合によっては、ユーザは、仮想環境における対話のための「タスクゾーン」(例えば、机の上の領域)を指定し得る。このタスクゾーンは、仮想環境におけるユーザの動作が現実世界のオブジェクトと衝突するのを防止するために、現実世界のオブジェクトをクリアすることができる。これは、オブジェクトをタスクゾーンの外側に置くことを含むことができる。しかしながら、ユーザは、これらのオブジェクト(例えば、コーヒーを一杯飲む)と時折対話したい場合がある。この状況では、トリガイベントは、ユーザがタスクゾーンを定義する仮想バリアに手を通すこと、または机の表面または別の現実世界のオブジェクトの閾値距離内で手を動かすことを含むことができる。このトリガイベントに応答して、部分パススルーシステムは、部分ビデオパススルーを自動的にアクティブ化することができ、そうでなければ仮想現実環境でのユーザの体験を維持しながら、ユーザが現実世界の一部を見て対話することを可能にする。タスクゾーンを使用する実装形態に関するさらなる詳細は、
図6に関連して以下に提供される。
【0031】
部分ビデオパススルーは、仮想環境にオーバーレイされるビデオをキャプチャするために、仮想現実デバイス上および/またはユーザ環境内のカメラを使用して提供することができる。さまざまな実装形態では、部分パススルーシステムはまた、ユーザの手に取り付けられた1つまたは複数のセンサからの入力を使用して、および/またはキャプチャされたビデオを分析して環境内の手の位置を判定することによって、ユーザの手の位置を判定することができる。次いで、部分パススルーシステムは、キャプチャされたビデオの一部を選択し、ユーザの手の位置に基づいてその部分を仮想環境にオーバーレイする(overlay、重ねる)ことができる。ビデオフィードをキャプチャし、部分を識別し、その部分を仮想現実環境の一部と位置合わせし、位置合わせに従ってオーバーレイとしてその部分を追加することに関するさらなる詳細は、
図5のブロック504~508に関連して以下に提供される。
【0032】
さまざまな実装形態では、キャプチャされたビデオの選択された部分、および仮想現実環境の対応するオーバーレイ領域は、さまざまな形態をとることができる。本明細書で「ハロー」実装形態と呼ばれるいくつかの実装形態では、選択された部分は、トリガイベントを引き起こしたユーザの手の周りの領域とすることができる。ハローの実装形態に関するさらなる詳細は、
図6に関連して以下に提供される。本明細書で「フラッシュライト」実装形態と呼ばれる他の実装形態では、選択された部分は、ユーザの手から現実世界の表面に線を投影することによって決定された領域とすることができる。フラッシュライトの実装形態に関するさらなる詳細は、
図7に関連して以下に提供される。
【0033】
開示された技術の実施形態は、人工現実システムを含むことができる、または人工現実システムと併せて実装され得る。人工現実またはextra reality(XR)は、ユーザに提示する前に何らかのやり方で調節されている現実の形態であり、これは例えば、仮想現実(VR)、拡張現実(AR)、複合現実(MR)、ハイブリッド現実、またはこれらの何らかの組み合わせおよび/もしくは派生物を含んでもよい。人工現実コンテンツは、完全に生成されたコンテンツ、またはキャプチャされたコンテンツ(たとえば、現実世界の写真)と組み合わせられた生成されたコンテンツを含み得る。人工現実コンテンツは、ビデオ、オーディオ、触覚フィードバック、またはそれらの何らかの組合せを含み得、それらのいずれも、単一のチャネルまたは複数のチャネルにおいて提示され得る(観察者に3次元効果をもたらすステレオビデオなど)。さらに、いくつかの実施形態では、人工現実は、例えば、人工現実におけるコンテンツを作り出すために使用される、および/または人工現実において使用される(例えば、人工現実におけるアクティビティを実施する)アプリケーション、製品、アクセサリ、サービス、またはそれらの何らかの組合せに関連付けられ得る。人工現実コンテンツを提供する人工現実システムは、ホストコンピュータシステムに接続される頭部装着型ディスプレイ(HMD)、独立型HMD、モバイルデバイスもしくはコンピューティングシステム、「洞穴」式環境もしくは他の投影システム、または、1または複数の視聴者に人工現実コンテンツを提供することが可能な任意の他のハードウェアプラットフォームを含むさまざまなプラットフォーム上に実装されてよい。
【0034】
本明細書で使用される「仮想現実」または「VR」は、ユーザの視覚的入力がコンピュータシステムによって制御される没入型体験を指す。「拡張現実」または「AR」は、ユーザが現実世界の画像を見る前にこれらの画像がコンピュータシステムを通過しているシステムを指す。例えば、裏にカメラがあるタブレットは、現実世界の画像をキャプチャした後、カメラからタブレットの反対側の画面上にその画像を表示することができる。タブレットは、仮想オブジェクトを追加することなどによって、画像がシステムを通過する際にこの画像を処理し、かつ調節または「拡張」することができる。「複合現実」または「MR」は、ユーザの眼に入る光がコンピューティングシステムによって部分的に生成され、かつ現実世界におけるオブジェクトに反射した光を部分的に構成するシステムを指す。例えば、MRヘッドセットは、パススルーディスプレイを有する眼鏡のように成形可能であり、これによって、現実世界からの光がMRヘッドセットにおけるプロジェクタから同時に光を発する導波路を通過することができることで、MRヘッドセットはユーザが見ることができる実物体と混合させた仮想オブジェクトを提示することができる。本明細書で使用される「人工現実」、「extra reality」、または「XR」は、VR、AR、MRのいずれか、またはこれらの任意の組み合わせもしくは混成物を指す。
【0035】
仮想空間を提供する、実在するXRシステムが存在する。しかしながら、現在のXRシステムは、仮想環境の一部にオーバーレイされたビデオパススルーを提供するための機構を有していない。代わりに、ユーザは、一連のメニューまたはオプションを使用して、仮想環境のフルビデオパススルーにアクセスする(例えば、ユーザにビデオのみを表示する)か、仮想現実デバイスを非アクティブ化するか、または仮想現実デバイスを取り外す必要がある。これにより、ユーザは、完了した作業の進捗を失ったり、ユーザの作業の邪魔になったりして、非生産性を引き起こす場合がある。ユーザはまた、仮想環境内で作業している間に、現実世界の環境(「ユーザの環境」)内のオブジェクトと衝突する危険性がある。例えば、ユーザが仮想環境内で作業している間に、ユーザが誤って水のボトルまたはコーヒーカップに衝突し、こぼれを引き起こす可能性があり、これにより、仮想現実コンピューティングシステムを含むコンピューティング機器が損傷する場合がある。別の例では、ユーザは、部屋に入る人と緊急に話す必要があり、ユーザは、フルビデオパススルーにアクセスしたり、仮想現実デバイスを非アクティブ化したり、仮想現実デバイスを取り外したりするためにメニューを通過する時間がない場合がある。
【0036】
本発明の態様は、既存の仮想現実コンピューティングシステムの機能の改善を提供する。カメラおよび/またはセンサは、ユーザの手によって指示されるユーザの環境内の領域を識別するために使用される。次に、指示された領域のビデオストリームが、ユーザが見ている仮想環境上のオーバーレイ(overlay)として仮想現実デバイスを介してユーザに提供され、ユーザが仮想環境と現実世界の指示された領域の両方を同時に見ることを可能にする。ビデオストリームをオーバーレイとして表示することにより、ユーザは、仮想現実デバイスを非アクティブ化および/または取り外す必要なく、仮想環境と仮想環境外(例えば、ユーザの環境内のオブジェクトまたは他の人と対話する)の両方でタスクを達成することができる。
【0037】
開示された技術の一実施形態は、カメラおよび/またはセンサを利用して、ユーザ環境内の専用の作業スペース内のユーザの手の位置を検出する。ユーザの手が専用の作業スペースから出ると、カメラおよび/またはセンサは、ユーザ環境内のユーザの手の場所を検出する。次いで、ユーザの手の周りの領域のビデオは、仮想現実デバイス内でユーザによって見られている仮想環境のオーバーレイとして提供され、ユーザがユーザの環境内の専用作業空間の外側のオブジェクトを見て対話することを可能にする。
【0038】
開示された技術の第2の実施形態は、カメラおよび/またはセンサを利用してユーザの手を検出する。次いで、例えば画像認識技術または他の何らかの技術を使用して、ユーザのハンドジェスチャが検出される。ハンドジェスチャが検出されると、カメラおよび/またはセンサは、ジェスチャが指しているユーザ環境内の領域を検出する。その領域のビデオは、仮想現実デバイスを介して仮想環境のオーバーレイとして提供される。
【0039】
いくつかの実装形態について、図を参照してより詳細に以下に論じる。
図1は、開示された技術のいくつかの実装形態が動作可能であるデバイスの全体像を示すブロック図である。デバイスは、仮想現実デバイスに部分パススルービデオフィードを提供するコンピューティングシステム100のハードウェア構成要素を含むことができる。さまざまな実装形態では、コンピューティングシステム100は、処理を分散し、かつ入力データを共有するために有線または無線チャネル上で通信する単一のコンピューティングデバイス103または複数のコンピューティングデバイス(例えば、コンピューティングデバイス101、コンピューティングデバイス102、およびコンピューティングデバイス103)を含むことができる。いくつかの実装形態では、コンピューティングシステム100は、外部の処理またはセンサを必要とせずにユーザにコンピュータ作成または拡張体験を提供することが可能な独立型ヘッドセットを含むことができる。他の実装形態では、コンピューティングシステム100は、いくつかの処理動作がヘッドセット上で行われ、他の処理動作がコア処理構成要素にオフロードされる、ヘッドセットおよびコア処理構成要素(コンソール、モバイルデバイス、またはサーバシステムなど)などの複数のコンピューティングデバイスを含むことができる。例示のヘッドセットについて、
図2Aおよび
図2Bに関して後述する。いくつかの実装形態では、位置および環境データは、ヘッドセットに組み込まれたセンサによってのみ収集可能であるが、他の実装形態では、ヘッドセット無しのコンピューティングデバイスの1つまたは複数は、環境または位置データを追跡可能であるセンサ構成要素を含むことができる。
【0040】
コンピューティングシステム100は、1つまたは複数のプロセッサ110(例えば、中央処理装置(CPU)、グラフィック処理ユニット(GPU)、ホログラフィック処理ユニット(HPU)など)を含み得る。プロセッサ110は、デバイスにおける単一の処理ユニットまたは複数の処理ユニットとすることができる、または複数のデバイスにわたって分散させる(例えば、コンピューティングデバイス101~103の2つ以上にわたって分散させる)ことができる。
【0041】
コンピューティングシステム100は、プロセッサ110に入力をもたらしてこれらに動きを通知する1つまたは複数の入力デバイス120を含むことができる。動きは、入力デバイスから受信される信号を解釈し、かつ通信プロトコルを使用して情報をプロセッサ110に通信するハードウェアコントローラによって仲介される。それぞれの入力デバイス120は、例えば、マウス、キーボード、タッチスクリーン、タッチパッド、ウェアラブル入力デバイス(例えば、触覚グローブ、ブレスレット、指輪、イヤリング、ネックレス、腕時計など)、カメラ(または、他の光ベースの入力デバイス、例えば、赤外線センサ)、マイクロホン、または、他のユーザ入力デバイスを含むことができる。
【0042】
プロセッサ110は、例えば、PCIバス、SCSIバス、または無線接続などの内部または外部バスを用いて他のハードウェアデバイスに結合可能である。プロセッサ110は、ディスプレイ130などのデバイスに対するハードウェアコントローラと通信可能である。ディスプレイ130は、テキストおよびグラフィックを表示するために使用可能である。いくつかの実装形態では、ディスプレイ130は、入力デバイスがタッチスクリーンである、または視線方向監視システムを備えるときなど、ディスプレイの一部としての入力デバイスを含む。いくつかの実装形態では、ディスプレイは入力デバイスから分離している。表示デバイスの例には、LCDディスプレイ画面、LEDディスプレイ画面、投影、ホログラフィック、または(ヘッドアップ表示装置または頭部装着型デバイスなどの)拡張現実ディスプレイなどがある。ネットワークチップまたはカード、ビデオチップまたはカード、オーディオチップまたはカード、USB、ファイヤーワイヤーまたは他の外部デバイス、カメラ、プリンタ、スピーカ、CD-ROMドライブ、DVDドライブ、ディスクドライブなどの他のI/Oデバイス140も、プロセッサに結合可能である。
【0043】
コンピューティングシステム100は、他のローカルコンピューティングデバイスまたはネットワークノードと無線でまたは有線ベースで通信することが可能な通信デバイスを含むことができる。通信デバイスは、例えば、TCP/IPプロトコルを使用するネットワークを通して別のデバイスまたはサーバと通信できる。コンピューティングシステム100は、複数のネットワークデバイスにわたって動作を分散するために通信デバイスを利用できる。
【0044】
コンピューティングシステム100のコンピューティングデバイスのうちの1つにおいて含まれ得る、またはコンピューティングシステム100の複数のコンピューティングデバイスまたは他の外部デバイスにわたって分散可能であるプロセッサ110は、メモリ150にアクセス可能である。メモリは、揮発性または不揮発性ストレージに対する1つまたは複数のハードウェアデバイスを含み、かつ読み出し専用メモリおよび書き込み可能メモリ両方を含むことができる。例えば、メモリは、ランダムアクセスメモリ(RAM)、さまざまなキャッシュ、CPUレジスタ、読み出し専用メモリ(ROM)、および書き込み可能な不揮発性メモリ、例えば、フラッシュメモリ、ハードドライブ、フロッピーディスク、CD、DVD、磁気記憶装置、およびテープドライブなどのうちの1つまたは複数を含むことができる。メモリは、基盤となるハードウェアから切り離されて伝播する信号ではないため、メモリは非一時的なものである。メモリ150は、オペレーティングシステム162、部分パススルーシステム164、および他のアプリケーションプログラム166などのプログラムおよびソフトウェアを格納するプログラムメモリ160を含むことができる。メモリ150はまた、プログラムメモリ160またはコンピューティングシステム100の任意の要素に提供することができる仮想現実環境データ、構成データ、設定、ユーザオプションまたは好みなどを含むことができるデータメモリ170を含むことができる。
【0045】
いくつかの実装形態は、多数の他のコンピューティングシステム環境または構成で動作可能とすることができる。当該技術で使用するのに適し得るコンピューティングシステム、環境、および/または構成の例は、XRヘッドセット、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドもしくはラップトップデバイス、携帯電話、ウェアラブル電子機器、ゲーム機、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットトップボックス、プログラム可能家庭電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、または上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などを含むが、これらに限定されない。
【0046】
図2Aは、いくつかの実装形態による仮想現実頭部装着型ディスプレイ(HMD)200の配線図である。HMD200は前部剛体205およびバンド210を含む。前部剛体205は、電子ディスプレイ245の1つまたは複数の電子ディスプレイ要素、慣性運動装置(IMU)215、1つまたは複数の位置センサ220、ロケータ225、および1つまたは複数の算出部230を含む。位置センサ220、IMU215、および算出部230は、HMD200に内蔵されてよくユーザには不可視である場合がある。さまざまな実装形態では、IMU215、位置センサ220、およびロケータ225は、3自由度(3DoF)または6自由度(6DoF)での現実世界および仮想環境におけるHMD200の移動および場所を追跡可能である。例えば、ロケータ225は、HMD200の周りの実物体上の光点を生じさせる赤外光ビームを発することができる。別の例として、IMU 215は、例えば、1つまたは複数の加速度計、ジャイロスコープ、磁力計、他の非カメラベースの位置、力、もしくは向きセンサ、またはそれらの組み合わせを含むことができる。HMD200と一体化された1つまたは複数のカメラ(図示せず)は光点を検出できる。HMD200における算出部230は、HMD200の位置および移動を推定するために、およびHMD200を取り囲む実物体の形状および位置を識別するために、検出された光点を使用することができる。
【0047】
電子ディスプレイ245は、前部剛体205と一体化可能であり、かつ算出部230によって命令されるとユーザに画像光を提供可能である。さまざまな実施形態では、電子ディスプレイ245は単一の電子ディスプレイまたは複数の電子ディスプレイ(例えば、それぞれのユーザの眼に対するディスプレイ)であり得る。電子ディスプレイ245の例には、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、アクティブマトリックス式有機発光ダイオードディスプレイ(AMOLED)、1つまたは複数の量子ドット発光ダイオード(QOLED)サブピクセル、プロジェクタ装置(例えば、マイクロLED、LASERなど)、その他のディスプレイ、またはこれらの何らかの組み合わせが含まれる。
【0048】
いくつかの実装形態では、HMD200は、パーソナルコンピュータ(PC)(図示せず)などのコア処理構成要素および/または1つもしくは複数の外部センサ(図示せず)に結合可能である。PCが、HMD200の場所および移動を判断するためにIMU215および位置センサ220からの出力と組み合わせて使用することができる外部センサは、(例えば、HMD200から発した光によって)HMD200を監視することができる。
【0049】
図2Bは、複合現実HMD252およびコア処理構成要素254を含む複合現実HMDシステム250の配線図である。複合現実HMD252およびコア処理構成要素254は、リンク256によって指示されるように無線接続(例えば、60GHzのリンク)を介して通信可能である。他の実装形態では、複合現実システム250は、外部の計算装置はなくヘッドセットのみを含む、または複合現実HMD252とコア処理構成要素254との間の他の有線または無線接続を含む。複合現実HMD252はパススルーディスプレイ258およびフレーム260を含む。フレーム260は、さまざまな電子コンポーネント(図示せず)、例えば、光プロジェクタ(例えば、LASER、LED等)、カメラ、目追跡センサ、MEMSコンポーネント、ネットワーキングコンポーネント等を格納することができる。
【0050】
プロジェクタは、ユーザに媒体を表示するために、例えば、光学素子を介して、パススルーディスプレイ258に結合可能である。光学素子は、プロジェクタからユーザの眼に光を導くための、1つまたは複数の導波路アセンブリ、反射器、レンズ、鏡、コリメータ、格子などを含むことができる。画像データは、コア処理構成要素254からリンク256を介してHMD252に送信可能である。HMD252におけるコントローラは、プロジェクタから画像データを光パルスに変換可能であり、これは光学素子を介して出力光としてユーザの眼に送信可能である。出力光は、ディスプレイ258を通過する光と混合させることができることで、出力光によって現実世界に存在するかのように現れる仮想オブジェクトを提示することができる。
【0051】
HMD200と同様に、HMDシステム250は、HMDシステム250が、例えば、これ自体を3DoFまたは6DoFで追跡すること、ユーザの一部分(例えば、手、脚、頭部、または他の身体部分)を追跡すること、HMD252が移動すると静止しているように現れるように仮想オブジェクトをマッピングすること、および、ジェスチャおよび他の現実世界のオブジェクトに対して仮想オブジェクトを反応させることを可能にする、運動および位置追跡装置、カメラ、光源なども含むことができる。
【0052】
図2Cは、いくつかの実装形態では、ユーザが片手または両手で保持して、HMD 200および/またはHMD 250によって提示される人工現実環境と対話することができるコントローラ270を示す。コントローラ270は、直接または外部デバイス(例えば、コア処理構成要素254)を介してHMDと通信することができる。コントローラは、これ自体のIMU装置、位置センサを有することができる、および/またはさらなる光点を発することができる。HMD 200または250、外部センサ、またはコントローラ内のセンサは、これらのコントローラ光点を追跡して、コントローラの位置および/または向きを(例えば、3DoFまたは6DoFのコントローラを追跡するために)決定することができる。HMD200における算出部230またはコア処理構成要素254は、ユーザの手の位置および運動を監視するために、IMUおよび位置出力と組み合わせてこの追跡を使用することができる。コントローラはまた、ユーザが入力を提供し、オブジェクトと対話するために作動することができるさまざまなボタン(例えば、ボタン272A~F)および/またはジョイスティック(例えば、ジョイスティック274A~B)を含むことができる。
【0053】
さまざまな実装形態では、HMD 200またはHMD 250はまた、ユーザの対話および意図の指示を監視するために、視線追跡装置、オーディオシステム、さまざまなネットワークコンポーネントなどのさらなるサブシステムを含むことができる。例えば、いくつかの実装形態では、コントローラの代わりに、またはコントローラに加えて、HMD 200またはHMD 250に含まれる、または外部カメラからの1つまたは複数のカメラは、ジェスチャならびに他の手および身体の動作を決定するためにユーザの手の位置およびポーズを監視することができる。
【0054】
図3は、開示された技術のいくつかの実装形態が動作可能である環境300の全体像を示すブロック図である。環境300は、1つまたは複数のクライアントコンピューティングデバイス305A~Dを含むことができ、これらの例として、コンピューティングシステム100を挙げることができる。いくつかの実装形態では、クライアントコンピューティングデバイスのいくつか(例えば、クライアントコンピューティングデバイス305B)は、HMD200またはHMDシステム250とすることができる。クライアントコンピューティングデバイス305は、ネットワーク330を通した、サーバコンピューティングデバイスなどの1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク化された環境で動作可能である。
【0055】
いくつかの実装形態では、サーバ310は、サーバ320A~Cなどの他のサーバを通してクライアント要求を受信し、かつこれらの要求の達成を調整するエッジサーバとすることができる。サーバコンピューティングデバイス310および320は、コンピューティングシステム100などのコンピューティングシステムを含むことができる。それぞれのサーバコンピューティングデバイス310および320は単一のサーバとして論理的に表示されるが、サーバコンピューティングデバイスはそれぞれ、同じまたは地理的に異なる物理的場所に位置する複数のコンピューティングデバイスを包含する分散コンピューティング環境とすることができる。
【0056】
クライアントコンピューティングデバイス305ならびにサーバコンピューティングデバイス310および320はそれぞれ、他のサーバ/クライアントデバイスに対するサーバまたはクライアントの機能を果たすことができる。サーバ310はデータベース315に接続することができる。サーバ320A~Cはそれぞれ、対応するデータベース325A~Cに接続できる。上で論じられるように、それぞれのサーバ310または320はサーバのグループに対応することができ、これらのサーバのそれぞれは、データベースを共有できるまたはこれら自体のデータベースを有することができる。データベース315および325は単一のユニットとして論理的に表示されるが、データベース315および325はそれぞれ、複数のコンピューティングデバイスを包含する分散コンピューティング環境とすることができる、これらの対応するサーバ内に位置することができる、または同じまたは地理的に異なる物理的場所に位置することができる。
【0057】
ネットワーク330は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、メッシュネットワーク、ハイブリッドネットワーク、または他の有線もしくは無線ネットワークとすることができる。ネットワーク330は、インターネット、またはいくつかの他のパブリックもしくはプライベートネットワークであり得る。クライアントコンピューティングデバイス305は、有線または無線通信などによって、ネットワークインターフェースを通してネットワーク330に接続可能である。サーバ310とサーバ320との間の接続は別個の接続として示されるが、これらの接続は、ネットワーク330または別個のパブリックもしくはプライベートネットワークを含む、任意の種類のローカル、広域、有線、または無線ネットワークとすることができる。
【0058】
図4は、いくつかの実装形態において、開示された技術を用いるシステムで使用可能である構成要素400を示すブロック図である。構成要素400は、コンピューティングシステム100の1つのデバイスに含まれ得る、またはコンピューティングシステム100のデバイスの複数にわたって分散され得る。構成要素400は、ハードウェア410、メディエータ420、および専用構成要素430を含む。上で論じられるように、開示された技術を実装するシステムは、処理ユニット412、ワーキングメモリ414、入力および出力デバイス416(例えば、カメラ、ディスプレイ、IMU装置、ネットワーク接続など)、およびストレージメモリ418を含むさまざまなハードウェアを使用できる。さまざまな実装形態では、ストレージメモリ418は、ローカルデバイス、リモート記憶装置へのインターフェース、またはこれらの組み合わせの1つまたは複数とすることができる。例えば、ストレージメモリ418は、システムバスを通してアクセス可能な1つまたは複数のハードドライブもしくはフラッシュドライブとすることができる、または(ストレージ315または325などにおける)クラウドストレージプロバイダ、または1つまたは複数の通信ネットワークを介してアクセス可能な他のネットワークストレージとすることができる。さまざまな実装形態では、構成要素400は、クライアントコンピューティングデバイス305などのクライアントコンピューティングデバイスにおいて、またはサーバコンピューティングデバイス310または320などのサーバコンピューティングデバイス上に実装可能である。
【0059】
メディエータ420は、ハードウェア410と専用構成要素430との間のリソースを仲介する構成要素を含むことができる。例えば、メディエータ420は、オペレーティングシステム、サービス、ドライブ、基本入出力システム(BIOS)、コントローラ回路、または他のハードウェアもしくはソフトウェアシステムを含むことができる。
【0060】
専用構成要素430は、仮想現実環境で部分ビデオパススルーを提供するための動作を実行するように構成されたソフトウェアまたはハードウェアを含むことができる。専用構成要素430は、センサおよびカメラモジュール434、仮想環境モジュール436、画像認識モジュール438、部分パススルーモジュール440、ならびにユーザインターフェースの提供、データの転送、およびインターフェース432などの専用構成要素の制御に使用することができる構成要素およびAPIを含むことができる。いくつかの実装形態では、構成要素400は、複数のコンピューティングデバイスにわたって分散されるコンピューティングシステムにある可能性がある、または専用構成要素430の1つまたは複数を実行するサーバベースアプリケーションに対するインターフェースである可能性がある。別個の構成要素として示されているが、専用構成要素430は、機能の論理的または他の非物理的な区別であってもよく、および/または1つまたは複数のアプリケーションのサブモジュールまたはコードブロックであってもよい。
【0061】
センサおよびカメラモジュール434は、レーダセンサ、LIDARセンサ、超音波センサ、他の形態の測距センサ、深度センサ、および他の種類のセンサ、ならびに/または1つまたは複数のカメラなどの、1つまたは複数のセンサからデータを受信することができる。次いで、このデータは、専用構成要素430の1つまたは複数の他のモジュールに提供される。いくつかの実装形態では、センサおよびカメラモジュール434は、1つまたは複数の機能を実行して、1つまたは複数のセンサおよび/またはカメラからの生の受信データに対して、他の専用構成要素430がそれぞれ構成要素のそれぞれの機能を実行するために使用できるフォーマットにフォーマットすることができる。センサおよび/またはカメラからのデータをキャプチャすることに関するさらなる詳細は、
図5のブロック502に関連して以下に提供される。
【0062】
仮想環境モジュール436は、仮想環境をユーザ(例えば、HMD 200などの仮想現実デバイスのユーザ)に提供することができる。さまざまな実装形態において、仮想環境は仮想オブジェクトを示す。例えば、仮想環境は、製品またはロゴデザイン、設計図、社会的交流プラットフォーム、ゲーム、業務アプリケーション、または任意の他の種類のコンテンツを含むことができる。仮想環境モジュールはまた、仮想オブジェクトの操作を可能にし得る。例えば、さまざまな実装形態において、ユーザは、仮想環境を拡大または縮小してもよく、同じ仮想環境または異なる仮想環境の複数の異なるビュー間を遷移してもよく、仮想環境内の仮想オブジェクトを選択および操作(例えば、位置、サイズ、修正など)をしてもよく、仮想環境を操作するための他の動作を実行し得る。いくつかの実装形態では、仮想環境モジュール436は、仮想環境へのアクセスを部分パススルーモジュール440に提供し、部分パススルーモジュール440から、部分パススルーモジュール440によって定義された場所で仮想環境にオーバーレイするためのビデオデータを受信する。
【0063】
画像認識モジュール438は、センサおよびカメラモジュール434からビデオデータを受信することができ、ユーザの手および/またはユーザの現実世界環境内の他のオブジェクトを検出するために、1つまたは複数の画像認識アルゴリズムおよび/または機械学習モデルを使用してビデオデータを分析することができる。画像認識モジュール438は、任意の認識されたオブジェクトおよびユーザの現実世界環境における認識されたオブジェクトの場所を部分パススルーモジュール440に提供することができる。センサおよびビデオデータからのオブジェクトの認識に関するさらなる詳細は、
図5のブロック502~504に関連して以下に提供される。
【0064】
部分パススルーモジュール440は、仮想環境モジュール436からの仮想環境へのアクセス、画像認識モジュール438からのユーザの現実世界環境における任意の認識されたオブジェクトの場所、ならびにセンサおよびカメラモジュール434からのセンサおよび/またはカメラデータを受信することができる。これらの入力を使用して、部分パススルーモジュール440は、部分パススルービデオフィードとしてどのビデオデータを表示すべきかを判定することができる。部分パススルービデオフィードとして表示されるビデオデータは、認識されたオブジェクト(手、人、または別のオブジェクト)およびパススルー領域の所望のサイズ(
図5のブロック504に関して後述するように決定される)に基づいて決定される。ハンドパススルービデオフィードが決定されると、部分パススルーモジュール440は、ユーザの現実世界環境におけるハンドパススルービデオフィードの場所に対応する仮想環境内の場所を決定する。次いで、部分パススルーモジュール440は、ハンドパススルービデオフィードを仮想環境モジュール436に渡し、仮想環境モジュールは、ユーザの現実世界環境における識別されたオブジェクトの場所に対応する仮想環境内の場所で仮想環境上にハンドパススルービデオフィードを表示する。部分ビデオパススルーを提供することに関するさらなる詳細は、
図5のブロック504~508に関連して下記で提供される。
【0065】
上述される
図1~
図4においておよび以下に論じられるフロー図のそれぞれにおいて示される構成要素がさまざまなやり方で変えられる場合があることを、当業者は理解するであろう。例えば、論理の順序は再配置構成され得る、サブステップは並列に遂行され得る、例示される論理は省略され得る、他の論理が含まれ得る、その他である。いくつかの実装形態では、上述された構成要素のうちの1つまたは複数は、後述するプロセスのうちの1つまたは複数を実行できる。
【0066】
図5は、仮想現実デバイスのための部分ビデオパススルーを提供するためにいくつかの実装形態で使用されるプロセス500を示すフロー図である。いくつかの実装形態では、プロセス500は、仮想現実デバイスの起動時に開始され、ユーザが仮想現実デバイスを操作している間にバックグラウンドプロセスとして実行することができる。他の実装形態では、プロセス500は、特定のコンテキストに基づいて開始される。例えば、プロセス500は、ユーザが机または他の仕事場に座っているとき、またはユーザが入力機構を作動させるときにのみ開始し得る。いくつかの実装形態では、入力機構は、HMD 200上のボタンまたはスイッチなどの物理的入力機構であってもよい。他の実装形態では、入力機構は、グラフィカルユーザインターフェースの要素の選択または一連のメニューからのオプションの選択などのソフトウェア入力機構であってもよい。
【0067】
ブロック502において、プロセス500は、ハンドパススルートリガイベントを検出する。本技術のいくつかの実装形態では、ハンドパススルートリガイベントは、1つまたは複数のカメラおよび/またはセンサ(深度センサ、赤外線センサ、LIDARセンサ、および他の形態のセンサなど)からの入力に基づいて検出される。ハンドパススルートリガイベントは、本技術のいくつかの実装形態では、デスクトップ上の定義された領域、ユーザの前の定義された3次元空間、または別の作業スペースなどの専用の作業スペースを離れるユーザの手の検出であってもよい。例えば、作業スペースは、長さ3フィート、幅2フィート、および高さ1フィートなど、ユーザのデスクトップ上の特定の寸法を有するボリュームとして定義されてもよい。ユーザの手が作業スペース内にある間、仮想現実システムは仮想環境を表示する。カメラおよび/または1つもしくは複数のセンサによって検出されるように、ユーザの一方の手がこの定義された作業スペースを離れると、プロセス500はこれをハンドパススルートリガイベントとして検出する。他の実装形態では、手が作業スペースを離れ、机の表面の閾値距離(例えば、3インチ、6インチ、1フィートなど)内にある場合、ハンドパススルートリガイベントが検出されるが、ユーザの手が作業スペースを作業スペースの表面から閾値距離を超えて離れる場合、ハンドパススルーイベントトリガは検出されない。
【0068】
本技術の他の実装形態では、ハンドパススルートリガイベントは、ユーザによって行われるハンドジェスチャである。例えば、ユーザは、握りこぶしを自分の身体から外方に向ける、開いた手のひらを自分の身体から外方に向ける、手を閉じてそれを自分の身体から外方に向ける、あたかもフラッシュライトを保持しているかのようにする、人差し指をある方向に向ける、親指を上に向ける(「ハンドガン」ジェスチャ)、2本以上の指および/または親指でつまむ動作を行う、ある場所で1本の指または親指のみを指す、または別の手のジェスチャなどのジェスチャを行ってもよい。カメラが画像認識技術を使用してこのハンドジェスチャを検出すると、ハンドパススルートリガイベントが検出される。
【0069】
本技術のさらに他の実装形態では、プロセス500は、ユーザの手(または他の身体部分)とユーザの環境内のオブジェクトとの間で衝突が発生するという予測に基づいて、ハンドパススルートリガを検出することができる。例えば、カメラおよび/またはセンサのうちの1つまたは複数は、ユーザの手がデスクトップ上の水のボトルに衝突しようとしていることを識別し得る。1つまたは複数のカメラおよび/またはセンサは、手がオブジェクトと衝突しようとしているかどうかを判定するために、手の速度および軌道を追跡するために運動学的モデルを使用し得る。潜在的な衝突が検出された場合、プロセス500は、ハンドパススルートリガイベントを検出することができる。
【0070】
本技術のいくつかの実装形態では、プロセス500は、現実世界のオブジェクトの閾値距離(例えば、2インチ、6インチ、8インチなど)内にあるユーザの手に基づいてハンドパススルートリガを検出することができる。例えば、カメラおよび/またはセンサのうちの1つまたは複数は、ユーザの手がコーヒーマグの6インチ以内に移動したことを識別し、プロセス500にトリガイベントを検出させてもよい。
【0071】
本技術のさらなる実装形態では、ハンドパススルートリガイベントは、仮想現実デバイスまたは関連するコントローラ上のボタンまたはスイッチなどの制御をアクティブ化するユーザであってもよく、または1つまたは複数のマイクロホンによって検出されるユーザからの音声コマンドに応答して検出されてもよい。
【0072】
ブロック504において、プロセス500は、ハンドパススルービデオフィードを識別する。本技術のいくつかの実装形態では、プロセス500は、部分ビデオパススルーを可能にするために、ユーザの手を取り囲むパススルー領域を識別する。例えば、ユーザの手を取り囲むパススルー領域は、手を囲む「ハロー」または他の円形もしくは楕円形、またはユーザの手の外側輪郭からのオフセットによって定義された領域であってもよく、ユーザは手のすぐ近くのオブジェクトを見ることができる。他の実装形態では、パススルー領域は、ユーザが手を指している場所に基づいてユーザがユーザ環境内のオブジェクトを見ることを可能にする「フラッシュライト」または投影された円もしくは楕円であってもよい。さらなる実装形態では、プロセス500は、ユーザの手が潜在的に衝突する可能性があるか、またはユーザの環境内のユーザの手の近くにあるオブジェクトなど、仮想環境にオーバーレイする特定のオブジェクトのみを識別し得る。
【0073】
プロセス500は、画像認識技術を使用して、制御手および/またはトリガオブジェクトを識別することによって、ハンドパススルービデオフィードを識別する。手またはオブジェクトが識別されると、プロセス500は、パススルー領域のサイズを決定する。パススルー領域のサイズは固定であってもよいし、可変であってもよい。サイズが固定されている場合、サイズは「初期状態」で事前設定されてもよいし、ユーザが初めて仮想現実システムを操作する前に設定されてもよいし、ユーザオプションとして設定されてもよい。サイズが可変である場合、環境コンテキストを使用してサイズを設定し得る。例えば、パススルー領域のサイズは、手とパススルー領域に示される1つまたは複数のオブジェクトとの間の距離に基づいて決定されてもよく、ユーザの手がオブジェクトに近づくにつれてサイズが拡大または縮小してもよい。例えば、現実世界の表面上に投影されたフラッシュライトパススルーサークルの半径は、ユーザの手とその表面との間の距離に比例し得る。パススルー領域のサイズはまた、1つまたは複数のハンドジェスチャを使用して制御可能であってもよい。例えば、ユーザは、2本の手を使用して伸張または拡大ジェスチャを行って、フラッシュライトパススルーサークルの領域のサイズまたは半径を大きくしてもよく、あるいはユーザの手の周りのハロー領域のサイズは、ユーザの手の間の距離に比例し得る。
【0074】
ハンドパススルービデオフィードがフラッシュライトパススルービデオフィードである場合、プロセス500は、ユーザの手から直線状、湾曲状、下方、または真下などの方向に光線を投影する。接触点は、コーヒーカップまたは人などの現実世界のオブジェクトで識別され、ハンドパススルービデオフィードは、接触点の周りの領域から取得される。ユーザの手がオブジェクトとの接触に近づいているときにハンドパススルービデオフィードがトリガされる場合、ハンドパススルービデオフィードは、オブジェクトのビデオ、および任意選択的に、オブジェクトの周囲の閾値距離内の領域から取得することができる。
【0075】
ブロック506において、プロセス500は、パススルー領域のハンドパススルービデオフィードを仮想環境と位置合わせする。プロセス500は、ハンドパススルービデオフィードに関連付けられた座標を仮想環境内の座標に一致させることによってこれを達成することができる。いくつかの実装形態では、これは、ハンドパススルービデオフィードを仮想環境内のユーザの手の決定された場所に一致させることを含む。プロセス500は、1つまたは複数のカメラと1つまたは複数のセンサとの組み合わせからのデータを使用して、ユーザ環境内のユーザの手の場所を決定することができる。次に、プロセス500は、ユーザ環境内の手またはオブジェクトの位置に対応する仮想環境内の場所を決定することができる。他の実装形態では、プロセス500は、仮想環境へのオーバーレイのために通過するユーザの環境内のオブジェクトの場所を、仮想環境内の対応する場所と一致させることができる。ユーザ環境内のユーザの手またはオブジェクトの場所の仮想環境内の場所への一致に基づいて、プロセス500は、仮想環境内でハンドパススルービデオフィードを正確に位置合わせすることができる。ハンドパススルービデオフィードを仮想環境と位置合わせすることにより、ハンドパススルービデオフィードは、ユーザがユーザ環境の深度精度のビューを得て、オブジェクトとの対話を支援することを可能にする。プロセス500は、手および/またはオブジェクトの場所を追跡し続け、仮想環境の異なる部分でハンドパススルービデオフィードを常に提供する。
【0076】
ブロック508において、プロセス500は、ブロック506で実行された位置合わせに基づいて、(ブロック504で決定された)ハンドパススルービデオフィードを仮想環境にオーバーレイする。ハンドパススルービデオフィードは、ユーザがオブジェクトおよび/または他の人と対話し得るように、パススルー領域内に提供される。パススルー領域の場所に通常表示される仮想環境の部分は、ハンドパススルービデオフィードに置き換えられる。ハンドパススルービデオフィードは、変更されずに、または部分的に不透明に提示することができ、ユーザは、現実世界の一部を見ることができる一方で、仮想環境を「見通す」ことができる。いくつかの実装形態では、ハンドパススルービデオフィードのエッジは、ビデオ効果を使用して仮想環境に「フェード」または徐々に遷移することができる。
【0077】
図6は、開示された技術を用いるいくつかの実装形態における、仮想環境610上にオーバーレイされているハロー部分パススルーの例600を示す概念図である。例600では、ユーザの手615は、定義された閾値高さ625を下回る仮想環境610の仮想壁620を通過する。手615が、定義された閾値高さ625を下回る仮想環境の仮想壁620を通過すると、ブロック502で説明したように、ハンドパススルーイベントトリガが検出される。次に、プロセス500は、ブロック504で説明したように、パススルー605のハローのサイズなど、ハンドパススルービデオフィードに含まれるものを判定する。例600では、ハローのサイズは、A)手615の輪郭、およびB)手615が閾値距離内にあるオブジェクト630の両方からオフセットされた領域として定義される。プロセス500は、図のブロック506に関して説明したように、1つまたは複数のカメラおよび/またはセンサからデータを受信することによって、仮想環境内でハンドパススルービデオフィードを位置合わせする。次いで、プロセス500は、コーヒーカップなどのオブジェクト630を、部分パススルー605のハローで仮想環境610にオーバーレイされたユーザの現実世界環境に表示する。
【0078】
図7は、開示された技術を用いるいくつかの実装形態では、仮想環境715上にオーバーレイされているフラッシュライト部分ビデオパススルー705の例700を示す概念図である。例700では、1つまたは複数のセンサおよび/またはカメラは、ユーザの手710のハンドジェスチャを検出する。ユーザの手710のハンドジェスチャは、ハンドパススルーイベントとして検出される。ハンドジェスチャが検出されると、プロセス500は、ハンドジェスチャが指しているユーザの現実世界環境内の(フラッシュライト部分パススルー705によって示される)場所を判定する。例えば、
図5のブロック504に関して説明したように、プロセス500は、ユーザの手710から延びる「光線」の接触点を識別し、接触点の場所および接触点の周りの領域のビデオフィードをハンドパススルービデオフィードとして提供することができる。例700では、ユーザが指している領域に現実世界の人がいる。プロセス500は、ハンドパススルービデオフィードを仮想環境内の対応する場所と位置合わせする。
図5のブロック506に関して説明したように、プロセス500は、ユーザの環境内の接触点の場所を識別し、次いで接触点の場所に対応する仮想環境内の場所を決定することによって、ハンドパススルービデオフィードを位置合わせする。例えば、ユーザの環境内の接触点の場所は、仮想環境715内の仮想壁上の点に対応することができる。次いで、プロセス500は、仮想環境715内の接触点の対応する場所にハンドパススルービデオフィードをオーバーレイし、フラッシュライト部分パススルー705内でユーザが指しているユーザの環境の部分を表示する。
【0079】
本明細書における、「実装形態」(例えば、「いくつかの実装形態」、「さまざまな実装形態」、「1つの実装形態」、「一実装形態」など)への言及は、実装形態に関連して説明される特定の特徴、構造、または特性が、本開示の少なくとも1つの実装形態に含まれることを意味する。本明細書におけるさまざまな場所にこれらの語句が現れることは、全てが必ずしも同じ実装形態に言及しているわけでもないし、他の実装形態を相互に除外する別個のまたは代替的な実装形態であるわけでもない。さらに、一部の実装形態によって示されるが他の実装形態によって示されない場合があるさまざまな特徴が記載される。同様に、一部の実装形態にとっては必要条件であるが、他の実装形態にとってはそうでないさまざまな必要条件が記載される。
【0080】
本明細書で使用される際、閾値を上回ることは、比較中の項目に対する値が指定された他の値を上回ること、比較中の項目がある特定の指定された数の項目の中で最も大きい値を有すること、または比較中の項目が指定された最高のパーセンテージ値内の値を有することを意味する。本明細書で使用される際、閾値を下回ることは、比較中の項目に対する値が指定された他の値を下回ること、比較中の項目がある特定の指定された数の項目の中で最も小さい値を有すること、または比較中の項目が指定された最低のパーセンテージ値内の値を有することを意味する。本明細書で使用される際に、閾値内であることは、比較中の項目に対する値が2つの指定された他の値の間にあること、比較中の項目が指定された数の項目の中間にあること、または比較中の項目が中間の指定されたパーセンテージ範囲内の値を有することを意味する。高いまたは重要ではないなどの相対的な用語は、別段定義されないとき、値を割り当て、かつその値が確立された閾値とどのように比較されるかを判断するものと理解可能である。例えば、語句「速い接続を選択すること」は、その接続速度に対応して割り当てられた値を有し、その割り当てられた値が閾値を超える接続を選択することを意味するように理解可能である。
【0081】
本明細書で使用される際、「または」という語は、一連の項目の任意の可能な置換を指す。例えば、「A、BまたはC」という語句は、A、B、C、AおよびB、AおよびC、BおよびC、A、B、およびC、またはAおよびA、B、B、およびC、A、A、B、C、およびCなどの複数の任意の項目のいずれかなど、A、B、Cの少なくとも1つ、またはこれらの任意の組み合わせを指す。
【0082】
構造上の特徴および/または方法論的動作に特有の言語で主題について説明してきたが、添付の特許請求の範囲で定義される主題が必ずしも上述される具体的な特徴または動作に限定されないことは理解されたい。具体的な実施形態および実装形態が例示の目的で本明細書に説明されているが、実施形態および実装形態の範囲から逸脱することなく、さまざまな修正がなされ得る。上述される具体的な特徴および動作は、以下に続く特許請求の範囲を満たす例示の形態として開示される。それ故に、実施形態および実装形態は、添付の特許請求の範囲によって限定される場合を除いて限定されない。
【0083】
上で述べられるいずれの特許、特許出願、および他の参考文献も、参照により本明細書に組み込まれる。必要に応じて、上述されるさまざまな参考文献のシステム、機能、および概念を用いてさらなる実装形態を提供するために態様が修正され得る。参照により組み込まれる文献の記述または主題が本出願の記述または主題と矛盾する場合、本出願が優先されるものとする。
【国際調査報告】