(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-29
(45)【発行日】2024-12-09
(54)【発明の名称】パススルー画像処理によるヘッドマウントディスプレイ
(51)【国際特許分類】
G06T 19/00 20110101AFI20241202BHJP
G06F 3/01 20060101ALI20241202BHJP
G06F 3/0346 20130101ALI20241202BHJP
G06F 3/04815 20220101ALI20241202BHJP
【FI】
G06T19/00 300B
G06F3/01 510
G06F3/0346 421
G06F3/0346 422
G06F3/04815
(21)【出願番号】P 2021562835
(86)(22)【出願日】2020-04-22
(86)【国際出願番号】 US2020029398
(87)【国際公開番号】W WO2020219601
(87)【国際公開日】2020-10-29
【審査請求日】2023-03-29
(32)【優先日】2019-04-23
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-04-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】517160525
【氏名又は名称】バルブ コーポレーション
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】ロアー、チャールズ・エヌ
(72)【発明者】
【氏名】ストール、ゴードン・ウェイン
【審査官】渡部 幸和
(56)【参考文献】
【文献】特表2016-532178(JP,A)
【文献】特開2001-211403(JP,A)
【文献】国際公開第2019/072483(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G06F 3/01
G06F 3/048 - 3/04895
(57)【特許請求の範囲】
【請求項1】
ディスプレイ、
第1のカメラ、および
第2のカメラ、を含む、ヘッドマウントディスプレイと、
1つ以上のプロセッサと、
コンピュータ実行可能命令を記憶する1つ以上の非一時的なコンピュータ可読媒体と、
を具備し、前記コンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに行為を実施させ、前記行為が、
1つ以上のトリガ事象に応じて、
前記第1のカメラを介して、現実世界の環境の第1の部分を表す第1の画像データをキャプチャすることと、
前記第2のカメラを介して、前記現実世界の環境の第2の部分を表す第2の画像データをキャプチャすることと、
ユーザの第1の目に対する前記第1のカメラの第1のオフセット、および前記ユーザの第2の目に対する前記第2のカメラの第2のオフセットを決定することと、
前記第1のオフセット、および前記第2のオフセットに少なくとも部分的に基づいて、深度マップを生成することと、
前記第1の画像データ、および前記第2の画像データ
を前記深度マップに投影することに少なくとも部分的に基づいて、第3の画像データを生成することと、
前記ディスプレイを介して、前記現実世界の環境の少なくとも一部を示す前記第3の画像データを表示することと、を含む、システム。
【請求項2】
前記ヘッドマウントディスプレイが、ボタンをさらに具備し、
前記1つ以上のトリガ事象は、前記ボタンの押し込みを検出すること、を含む、請求項1に記載のシステム。
【請求項3】
前記1つ以上のトリガ事象は、前記ユーザが前記現実世界の環境の境界に近付いているという指示を受信することを含む、請求項1に記載のシステム。
【請求項4】
前記ユーザが、第1のユーザを含み、前記1つ以上のトリガ事象は、第2のユーザが前記現実世界の環境内にいるという指示を受信することを含む、請求項1に記載のシステム。
【請求項5】
前記第3の画像データが、前記ディスプレイ上に提示される仮想コンテンツと組み合わせて表示されるか、または
前記第3の画像データが、前記ディスプレイの所定の部分上に表示されるかのうちの少なくとも1つである、請求項1に記載のシステム。
【請求項6】
前記第1のオフセットは、前記第1の目に対する前記第1のカメラの水平位置、前記第1の目に対する前記第1のカメラの垂直位置、または前記第1の目に対する前記第1のカメラの深度方向位置、の少なくとも1つに対応し、
前記第2のオフセットは、前記第2の目に対する前記第2のカメラの水平位置、前記第2の目に対する前記第2のカメラの垂直位置、または前記第2の目に対する前記第2のカメラの深度方向位置、の少なくとも1つに対応する、請求項1に記載のシステム。
【請求項7】
前記第3の画像データを生成することは、
1つ以上のコンピューティングデバイスに、前記深度マップ、前記第1の画像データ、および前記第2の画像データを送信することと、
前記1つ以上のコンピューティングデバイスから、前記第3の画像データを受信することと、を含む、請求項1に記載のシステム。
【請求項8】
1つ以上のトリガ事象に応じて、
プロセッサによって、ヘッドマウントディスプレイの第1のカメラによってキャプチャされ、現実世界の環境の第1の部分を示す、第1の画像データを受信することと、
前記プロセッサによって、前記ヘッドマウントディスプレイの第2のカメラによってキャプチャされ、前記現実世界の環境の第2の部分を示す、第2の画像データを受信することと、
前記プロセッサによって、ユーザの第1の目に対する前記第1のカメラの第1のオフセットと、前記ユーザの第2の目に対する前記第2のカメラの第2のオフセットと、を決定することと、
前記プロセッサによって、前記第1のオフセットおよび前記第2のオフセットに少なくとも部分的に基づいて深度マップを生成することと、
前記プロセッサによって
、前記第1の画像データ、および前記第2の画像データ
を前記深度マップに投影することに少なくとも部分的に基づいて、第3の画像データを生成することと、
前記ヘッドマウントディスプレイ上に、前記現実世界の環境の少なくとも一部を示す前記第3の画像データを表示することと、を含む、方法。
【請求項9】
前記1つ以上のトリガ事象は、
前記ヘッドマウントディスプレイのボタンの押し込みを検出すること、
前記ヘッドマウントディスプレイを仮想現実モードからパススルーモードに移行させるための音声コマンドを検出すること、
前記ユーザが前記現実世界の環境の境界に近づいていることを検出すること、または
訪問者が前記現実世界の環境内にいることを検出すること、を含む、請求項
8に記載の方法。
【請求項10】
前記第3の画像データは、前記ヘッドマウントディスプレイ上に提示された仮想コンテンツと組み合わせて表示される、請求項
8に記載の方法。
【請求項11】
前記第1のオフセットは、前記第1の目に対する前記第1のカメラの水平位置、前記第1の目に対する前記第1のカメラの垂直位置、または前記第1の目に対する前記第1のカメラの深度方向位置、の少なくとも1つに対応し、
前記第2のオフセットは、前記第2の目に対する前記第2のカメラの水平位置、前記第2の目に対する前記第2のカメラの垂直位置、または前記第2の目に対する前記第2のカメラの深度方向位置、の少なくとも1つに対応する、請求項
8に記載の方法。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
これは、2019年4月23日に出願された米国仮特許出願第62/837,668号の優先権を主張する、2020年4月14日に出願された米国特許出願第16/848,332号の優先権を主張するPCT出願である。出願第16/848,332号および同第62/837,668号は、参照により全体が本明細書に組み込まれる。
【技術分野】
【0002】
[背景技術]
ヘッドマウントディスプレイは、エンジニアリング、医療、軍事、およびビデオゲームを含む、様々な用途で使用されている。場合によっては、ヘッドマウントディスプレイは、仮想現実または拡張現実環境の一部としてユーザに情報または画像を提示し得る。例えば、ビデオゲームをプレーしている間に、ユーザが、ヘッドマウントディスプレイを着用して、仮想環境内にユーザを没入させることができる。ヘッドマウントディスプレイは、没入型の体験を提供するが、物理的なまたは現実世界の視界を遮断する。結果として、ユーザは、物体(例えば、コントローラ)を拾い上げること、および/または現実世界の中の他の個人を認識することが困難であると感じる場合がある。加えて、ユーザは、現実世界(例えば、壁)の中の物理的な境界に気付かない場合がある。ヘッドマウントディスプレイを取り外すことにより、ユーザは見ることができる場合があるが、ヘッドマウントディスプレイを絶えず脱いだり身に着け直したりすることは面倒な場合があり、仮想環境と現実世界との間でユーザ自身を再向き付けすることを必要とする場合があり、かつ/または別様に仮想現実体験からそらされる場合がある。
【図面の簡単な説明】
【0003】
詳細な説明を、添付の図を参照して説明する。図において、参照番号の左端の数字は、参照番号が最初に現れる図を識別する。異なる図における同じ、または同様の参照番号は、同様または同一の項目を示す。
【0004】
【
図1】本開示の例示的な実施形態による、例示的な環境において例示的なヘッドマウントディスプレイを着用しているユーザを説明する。
【0005】
【
図2】本開示の一実施形態による、
図1のヘッドマウントディスプレイの斜視図である。
【0006】
【
図3】本開示の一実施形態による、
図1のヘッドマウントディスプレイを着用しているユーザ、およびパススルー画像を提示しているヘッドマウントディスプレイを説明する。
【0007】
【
図4】本開示の一実施形態による、
図1のヘッドマウントディスプレイを着用しているユーザ、およびパススルー画像を提示しているヘッドマウントディスプレイを説明する。
【0008】
【
図5】本開示の一実施形態による、
図1のヘッドマウントディスプレイを使用してパススルー画像を提示するための例示的なプロセスを説明する。
【0009】
【
図6】本開示の一実施形態による、
図1のヘッドマウントディスプレイを使用してパススルー画像を提示するための例示的なプロセスを説明する。
【発明を実施するための形態】
【0010】
ヘッドマウントディスプレイは、仮想現実環境でコンテンツを視認すること、およびコンテンツと相互作用するために、ユーザによって着用される。没入型の体験を提供するために、ヘッドマウントディスプレイは、ユーザの視野の大部分またはさらにすべてを網羅し得る。したがって、ヘッドマウントディスプレイは、現実世界からユーザの視覚を遮断し得、これにより、ユーザが物体につまずく、家具に衝突する、現実世界の中の個人を認めることができないなどの結果をもたらす場合がある。ヘッドマウントディスプレイを取り外すことにより、ユーザは現実世界を見ることができるが、ユーザが仮想現実環境と現実世界との間でユーザ自身をそれぞれ再向き付けする必要がある。いくつかのヘッドマウントディスプレイは、例えば、ユーザが現実世界をのぞき込むことを可能にするために開いているバイザを含み得る。しかしながら、かかる解決策は、仮想現実環境内へのユーザの没入を邪魔する。
【0011】
これらの不備を克服しようとする試みにおいて、いくつかのヘッドマウントディスプレイは、それぞれのユーザがユーザ自身のそれぞれのヘッドマウントディスプレイを取り外すことなく、現実世界を視認することを可能にするパススルー画像処理を可能にし得る。しかしながら、既存のパススルー画像処理は、かなり粗い応答時間を呈する傾向があり、ユーザの観点または視点からの現実世界を描写することができない場合があり、かつ/または歪む場合がある。結果として、ユーザはバランスを失うか、めまいを起こすか、方向がわからなくなるか、または病気になる可能性がある。
【0012】
本出願は、仮想現実(VR)環境で使用するためのヘッドマウントディスプレイ(HMD)について部分的に説明する。本明細書に記載のシステムおよび方法は、ユーザを取り囲む現実世界の環境、現実世界の環境内でのユーザの場所、および/または現実世界の環境内でのユーザの姿勢に関する情報を決定し得る。かかる情報により、HMDは、パススルー方式で現実世界の環境の画像を、しかも、ユーザをVR環境からそらさずに、表示することができる場合がある。場合によっては、HMDは、1つ以上のトリガ事象に基づいて、現実世界の環境の画像をパススルーすることができる。例えば、HMDを着用し、ユーザがVR環境内に没入している間に、ユーザは、ユーザが現実世界の環境内を見回すことを可能にするボタンを作動させることができる。追加の例として、ユーザが疑わしい、または対象となる何かを聞いた場合、ユーザが現実世界の環境内で、あるアイテム(例えば、コントローラ)を位置特定することを望む場合、および/または訪問者がユーザの近傍に入った場合に、HMDは、現実世界の環境に関連付けられたコンテンツを表示し得る。場合によっては、コンテンツは、ユーザをVR環境からそらすことを制限するための審美的な方法でユーザに提供され得る。例えば、コンテンツは、VR環境に関連付けられた仮想コンテンツへのオーバーレイとして提供され得る。かかる例では、ユーザは、HMDを着用し続けながら、VR環境内に没入したままでいることができる。したがって、本出願によるHMDは、現実世界の環境とVR環境との間でコンテンツを移送または表示するときにユーザ体験を増加させることができる。
【0013】
HMDは、ユーザの目に隣接して顔の上に着用されたディスプレイを有する前方を含み得る。ディスプレイは、ユーザが視認するための画像(または他のコンテンツ)を出力し得る。一実施例として、ユーザは、HMDを着用して、ゲームをプレーするか、または媒体コンテンツ(例えば、映画)を視認することができる。
【0014】
HMDは、現実世界の環境の画像をキャプチャするカメラを含み得る。場合によっては、カメラは、ディスプレイに装着することができ、かつ/またはHMDの前方内に組み込まれ得る。さらに、または代替的に、カメラは、HMDの外部およびユーザの前方で画像をキャプチャするように前向きに面していてもよい。さらに、場合によっては、カメラは、HMDとは別個であり、環境全体に、またはユーザの他の部分(例えば、腰)に設置され得る。
【0015】
場合によっては、カメラは、カメラの光軸が平行であり、既知の距離だけ分離しているように、空間的に分離され得る。したがって、カメラは、わずかに異なる視認点から現実世界の環境の画像をキャプチャし得る。視認点間の情報の多様性を使用して、現実世界の環境の深度情報(すなわち、ステレオカメラ画像処理)を計算することができる。例えば、HMDおよび/または通信可能に連結されたコンピューティングデバイス(例えば、ゲームコンソール、パーソナルコンピュータなど)は、カメラによってキャプチャされた画像データを使用して、現実世界の環境に関連付けられた深度情報を生成することができる。
【0016】
例えば、カメラは、HMDの前方上で互いに水平方向および/または垂直方向に変位した、第1のカメラおよび第2のカメラを含み得る。場合によっては、第1のカメラは、HMDの第1の側面で前方上に位置し得、第2のカメラは、HMDの第2の側面で前方上に位置し得る。しかしながら、上述のように、第1のカメラおよび第2のカメラは、環境内の他の場所、および/またはユーザの他の部分の上に位置し得る。
【0017】
第1のカメラおよび/または第2のカメラによってキャプチャされた画像データは、現実世界の環境(例えば、部屋)の異なる視界を表し得る。第1のカメラおよび/または第2のカメラによってキャプチャされた画像(または画像データ)を比較することによって、HMD(および/または別の通信可能に連結されたコンピューティングデバイス)は、(例えば、視差マッピングアルゴリズムを使用して)差異または視差を決定することができる。視差は、2つの画像内の対応する画像点の座標の差異を表し得る。視差(または視差値)は現実世界の環境内の深度に反比例するため、HMD、および/またはゲームコンソールなどの別の通信可能に連結されたコンピューティングデバイスは、現実世界の環境(またはその一部分)に関連付けられた深度情報を決定し得る。場合によっては、深度情報は、ユーザの観点(すなわち、ユーザの視線)からであってもよい。
【0018】
深度情報を使用して、HMD、および/またはゲームコンソールなどの別の通信可能に連結されたコンピューティングデバイスは、現実世界の環境(またはその一部分)の、深度マップまたは三次元(3D)メッシュを生成し得る。例えば、深度マップは、ユーザと現実世界の環境内の物体(例えば、部屋の壁、家具など)との間の距離を表し得る。さらに、または代替的に、HMDは、深度マップおよび/または3Dを生成するために利用される他のセンサを含み得る。例えば、HMDは、ユーザと現実世界の環境内の物体との間の距離を決定するための深度センサを含み得、ユーザが現実世界の環境の物体または境界に近接している(例えば、所定の近接または閾値の近接)ことを決定し得る。しかしながら、HMDまたはゲームコンソールは、深度マップおよび/または3Dメッシュを生成する際に使用するために、さらに、または代替的に、ライト検出および測距(LIDAR)、超音波測距、立体視的な測距、構造化されたライトの分析、ドット投影、粒子投影、飛行時間の観測などを使用することができる。
【0019】
現実世界の環境の深度マップおよび/または3Dメッシュを生成すると、HMD、および/またはゲームコンソールなどの別の通信可能に連結されたコンピューティングデバイスは、画像データを、深度マップおよび/または3Dメッシュに投影し得る。この意味で、画像データは、最初に、深度マップおよび/または3Dメッシュを生成するために利用され得、従属的に、深度マップおよび/または3Dメッシュに重ね合わされ得るか、オーバーレイされ得るか、または投影され得る。そうすることによって、HMDは、ユーザに対して現実世界の環境を描写するように、コンテンツを表示し得る。
【0020】
場合によっては、深度マップ、3Dメッシュ、ならびに/または第1のカメラおよび/もしくは第2のカメラによってキャプチャされた画像は、ユーザの姿勢または視点を考慮に入れるように修正され得る。例えば、カメラは、ユーザの目と(例えば、水平方向、垂直方向、および深度方向に)整列しない(すなわち、カメラはユーザの目の正確な位置にない)場合があるため、深度マップおよび/または3Dメッシュは、この矛盾を考慮に入れることができる。言い換えれば、第1のカメラおよび第2のカメラによってキャプチャされた画像データは、ユーザの視点とは異なる視点を表し得る。この矛盾を考慮に入れることができないと、不完全な現実世界の環境を説明する場合があり、ユーザは、深度値または画像データがユーザの視点からではないため、物体を拾い上げることが困難であると感じる場合がある。例えば、カメラは、ユーザの目の観点および/または深度とは異なる観点および/または深度から画像データをキャプチャする(すなわち、カメラは、ユーザの目と同じ水平方向、垂直方向、および/または深度方向の位置にない)ため、3Dメッシュは、このオフセットを考慮に入れて、ユーザに対して、現実世界の環境の歪んでいない視界を正確に描き、提示することができる。つまり、深度マップ、3Dメッシュ、および/または画像データは、第1のカメラおよび第2のカメラ、ならびにユーザの目(例えば、第1の目および/もしくは第2の目)または視野の座標位置(または場所)の差異(またはオフセット)に少なくとも部分的に基づいて修正され得る。したがって、ユーザに対して表示される現実世界の環境の画像は、ユーザの観点から現実世界の環境内の物体を正確に表現し得る。
【0021】
さらに、または代替的に、場合によっては、HMDおよび/または現実世界の環境は、ユーザの視線、視点、および/または視野を追跡するセンサを含み得る。例えば、HMDは、ユーザの目の瞳孔間の距離を測定するための瞳孔間距離(IPD)センサ、および/またはユーザの目の視線の方向を検出する他のセンサを含み得る。かかるセンサを利用して、ユーザに対して現実世界の環境の画像を正確に描くように、ユーザの視点を決定することができる。
【0022】
パススルー画像処理により、ユーザは、同僚、コンピュータスクリーン、モバイルデバイスなどのような、現実世界の環境内の物体と相互作用し、物体を視認することができる場合がある。場合によっては、ユーザは、VR環境と現実世界の環境との間をトグルもしくはスイッチすることができるか、またはHMDは、1つ以上のトリガ事象に応答して、VR環境と現実世界の環境との間を自動的にスイッチすることができる。つまり、HMDは、現実世界の環境がユーザに提示されるパススルーモードおよび/またはVR環境がユーザに提示される仮想現実モードなどの1つ以上のモードを含み得る。一実施例として、HMDを着用している間に、ユーザが水を飲むことを望む場合がある。HMDを取り外すのではなく、ユーザは、現実世界の環境を表示させる、HMD上のボタンを作動させる(例えば、二度押しする)ことができる。次に、ディスプレイは、現実世界の環境の画像を提示して、ユーザがユーザ自身のグラスの水を、しかも、HMDを脱がずに、位置特定することを可能にすることができる。その後、グラスの水を位置特定した後、ユーザは、ディスプレイにVR環境の仮想コンテンツを提示させるように、ボタンを作動させる(例えば、一回押しする)ことができる。したがって、現実世界の環境を表すパススルー画像により、ユーザは、現実世界の環境をあちこち移動して、物体を、しかも、物体(例えば、家具)にぶつかることなく、位置特定することができる場合がある。さらなる実施例として、パススルー画像は、ユーザの現実世界の環境内に入ってくる別の個人を表し得る。ここで、HMDは、他の個人を検出し得、ユーザが他の個人を認識することができるか、または他の個人に気付かせることができるように、ディスプレイ上に画像を提示し得る。
【0023】
場合によっては、ユーザに表示される現実世界の環境に関連付けられたコンテンツは、VR環境内にあるものというユーザの感覚を維持するために部分的に透明であり得る。場合によっては、現実世界の環境に関連付けられたコンテンツは、仮想コンテンツと組み合わされ得るか、または現実世界の環境に関連付けられたコンテンツのみが提示され得る(例えば、100パーセントのパススルー画像処理)。さらに、または代替的に、場合によっては、カメラによってキャプチャされた画像は、ディスプレイの全体上に提示され得るか、または特定の部分内に提示され得る。さらに、場合によっては、現実世界の環境に関連付けられたコンテンツは、どのコンテンツが現実世界の環境の一部であり、どのコンテンツがVR環境の一部であるかをユーザに指示するように、点線で表示され得る。かかる提示により、ユーザは、近付く個人、騒動、および/またはユーザを取り囲む物体を見ることができる場合がある。特定の実装例または構成にかかわらず、HMDは、現実世界の環境に関連付けられたコンテンツを表示して、ユーザの視野内に入ってくる物体を警告、検出、または別様に認識するように機能し得る。
【0024】
場合によっては、HMD、および/またはゲームコンソールなど、VR環境に関連付けられた他のコンピューティングデバイスは、現実世界の環境内の追跡システムと連動して動作し得る。追跡システムは、現実世界の環境内のユーザの位置を追跡するセンサを含み得る。かかる追跡を使用して、ユーザがVR環境に没入している間に、環境内のユーザの場所および/またはユーザの姿勢もしくは視点など、ユーザを取り囲む現実世界の環境に関する情報を決定することができる。現実世界の環境内では、追跡システムは、ユーザの場所および/または姿勢を決定し得る。場合によっては、追跡システムは、現実世界の環境の中心に対するユーザの場所および/または姿勢を決定し得る。
【0025】
場合によっては、追跡システムは、現実世界の環境内に(例えば、可視または非可視の)ライトを発するライティング要素と、入射ライトを検出するセンサと、を含み得る。場合によっては、ユーザの場所および/または姿勢を検出するために、HMDは、マーカを含み得る。ライトを現実世界の環境に投影すると、マーカはライトを反射し得、センサはマーカによって反射された入射ライトをキャプチャし得る。キャプチャされた入射ライトを使用して、環境内のマーカの場所を追跡および/または決定することができ、これを使用して、ユーザの場所および/または姿勢を決定することができる。
【0026】
場合によっては、現実世界の環境内のユーザの場所および/または姿勢を利用して、ユーザに対して警告、指示、またはコンテンツを提示することができる。例えば、ユーザが現実世界の環境の壁に近付いて、(追跡システムを介して)ユーザおよび壁の場所を知る場合、HMDは、現実世界の環境内の壁を表す画像を表示し得る。つまり、カメラによってキャプチャされた画像を使用して(すなわち、深度値を介して)、ユーザが壁に近付いていることを決定することに加えて、またはそれに代わって、追跡システムは、現実世界の環境内のユーザの相対的な場所を決定することができる。かかる追跡は、現実世界の環境内の物体の深度(または設置)に正確に対応する画像を提示することを支援し得る。
【0027】
さらに、追跡システムから取得された画像またはデータを使用して、現実世界の環境の3Dモデル(またはメッシュ)を生成することができる。例えば、ユーザ、HMD、追跡システム、ゲームコンソール、ならびに/または別の通信可能に連結されたコンピューティングデバイスの場所および/もしくは姿勢を知ることにより、現実世界の環境内のユーザの相対的な場所を決定することができる。この、ユーザの場所および/または姿勢を利用して、ユーザが見ている現実世界の環境の3Dモデルの対応する部分(すなわち、ユーザの視野)を決定することができる。例えば、カメラがユーザの視点に関連付けられていない画像をキャプチャすると、追跡システムは、ユーザの視線、姿勢、または視点を決定し得る。かかる情報を使用して、ユーザが現実世界の環境内のどこを見ているかを決定することができる。ユーザが現実世界の環境内のどこを見ているかを知ることを使用して、カメラによってキャプチャされた画像を修正することができる。そうすることで、HMDは、現実世界の環境を正確に表示し得る。
【0028】
HMD、追跡システム、ゲームコンソール、および/または別の通信可能に連結されたコンピューティングデバイスは、カメラの画像データを使用して生成された深度マップおよび/または3Dメッシュを3Dモデルと比較して、現実世界の環境内のユーザの相対的な場所を決定することもできる。特定の実装例にかかわらず、現実世界の環境内のユーザの場所および/または姿勢を知ることで、HMDおよび/または別の通信可能に連結されたコンピューティングデバイスは、深度マップの点および/または3Dメッシュの点を現実世界の環境の3Dモデルに変換し得る。次に、カメラによってキャプチャされた画像は、ユーザの視点に対応する3Dモデル上に投影され得る。
【0029】
したがって、上記に鑑みて、本出願は、パススルー画像処理を提供してVR体験を増強する、HMDについて考察する。パススルー画像処理は、VR環境のコンテンツおよび現実世界の環境に関連付けられたコンテンツを表示するときに、比較的シームレスな体験を提供し得る。かかるパススルー画像処理は、現実世界の環境に関連付けられたコンテンツを視認するための侵入性が低き、邪魔にならない解決策を提供する。場合によっては、現実世界の環境に関連付けられた情報またはコンテンツは、動き、音、ジェスチャ、事前構成された事象、ユーザの運動の変化などを含むが、これらに限定されない、トリガに応答して、ユーザに選択的に提供され得る。さらに、場合によっては、本出願によるHMDは、ヘルメット、バイザ、ゴーグル、マスク、眼鏡、およびユーザの頭の上に着用される他のヘッドまたはアイウェアを含む、多くの形態をとり得る。
【0030】
本開示は、本明細書に開示される構造、機能、デバイス、およびシステムの原理の全体的な理解を提供する。本開示の1つ以上の実施例を、添付の図面において説明する。当業者は、本明細書に具体的に記載され、添付の図面において説明される、デバイスおよび/またはシステムが非限定的な実施形態であることを理解されよう。システムと方法との間のものを含む、1つの実施形態に関連して説明または記載される特徴を、他の実施形態の特徴と組み合わせることができる。かかる修正例および変形例は、添付の特許請求の範囲内に含まれることが意図される。
【0031】
図1は、環境102内に存在し、HMD104を着用している、ユーザ100を説明する。場合によっては、ユーザ100は、HMD104を着用して、ユーザ100をVR環境内に没入させることができる。場合によっては、ユーザ100は、1つ以上のコントローラ106を使用してVR環境内で相互作用し得る。HMD104は、ユーザ100、ならびに場合によっては、第1のカメラ110および/または第2のカメラ112などの画像キャプチャデバイスに、仮想コンテンツおよび/または画像を提供するためのディスプレイ108を含む。
【0032】
第1のカメラ110および/または第2のカメラ112は、環境102の画像をキャプチャし、環境102の画像を、ディスプレイ108上で視認するためにユーザ100にパススルーすることができる。つまり、本明細書で詳細に考察されるように、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像は、ユーザ100がVR環境から離れ、かつ/またはHMD104を取り外す必要なしに、環境102を視認することを可能にするように、パススルー方式でユーザ100に提示され得る。
【0033】
場合によっては、第1のカメラ110および/または第2のカメラ112は、HMD104の前方内または前方近くに配設され得る。場合によっては、第1のカメラ110および/または第2のカメラ112は、ステレオカメラ、赤外線(IR)カメラ、深度カメラ、および/またはこれらの任意の組み合わせを表し得る。第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像は、ユーザ100を取り囲む環境102を表し得る。場合によっては、第1のカメラ110および/または第2のカメラ112は、ユーザ100の前方で環境102の画像をキャプチャするように前向きに面していてもよい。場合によっては、第1のカメラ110および/または第2のカメラ112は、これらのカメラの光軸が平行であるように空間的に分離され得る。したがって、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像は、異なる視認点から環境102を表し得、環境102に関連付けられた深度情報を決定するように使用され得る(すなわち、ステレオカメラ画像処理)。しかしながら、場合によっては、第1のカメラ110および/または第2のカメラ112は、環境102内の他の場所に位置し得る。例えば、第1のカメラ110および/または第2のカメラ112は、環境102の床の上に位置し得、環境102内の机などの上に位置し得る。
【0034】
説明されるように、HMD104は、HMD104に関連付けられた動作を行うか、または別様に実施する、プロセッサ(複数可)114を含み得る。例えば、プロセッサ(複数可)114は、第1のカメラ110および/または第2のカメラ112に画像をキャプチャさせ、その後、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像を受信し、画像(または画像データ)を比較し、画像(または画像データ)間の差異を決定することができる。差異が環境102内の物体の深度に反比例する場合、プロセッサ(複数可)114は、環境102に関連付けられた深度情報を決定し得る(例えば、壁、家具、TVなど)。
【0035】
場合によっては、深度情報を使用して、プロセッサ(複数可)114は、環境102の深度マップまたは3Dメッシュを生成し得る。例えば、説明されるように、HMD104は、環境102の深度マップ118および/または環境102の3Dメッシュ120を記憶するか、または別様に環境102の深度マップ118および/または環境102の3Dメッシュ120へのアクセスを有する、メモリ116を含む。第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像データが環境102の一部分を表す場合、それに応じて、深度マップ118および/または3Dメッシュ120は、環境102の一部分を表し得る。場合によっては、深度マップ118および/または3Dメッシュ120を生成すると、プロセッサ(複数可)114は、深度マップ118および/または3Dメッシュ120をメモリ116内に記憶し得る。
【0036】
第1のカメラ110および/もしくは第2のカメラ112によってキャプチャされた画像データ、深度マップ、ならびに/または3Dメッシュが、ユーザ100の観点(すなわち、ユーザ100の視点)からではない場合、HMD104(および/または別の通信可能に連結されたコンピューティングデバイス)は、ユーザ100の観点に対する(例えば、それぞれ第1の目および/または第2の目に対する)第1のカメラ110および/または第2のカメラ112の配置を考慮に入れることができる。つまり、HMD104上に位置しようが、環境内の他の場所に位置しようが、第1のカメラ110および/または第2のカメラ112は、ユーザ100の視点および/またはユーザ100の観点に対応する画像をキャプチャしない。したがって、画像データ、または深度マップおよび/もしくは3Dメッシュ内の点は、この変位を考慮に入れるように、修正またはオフセットされ得る。
【0037】
場合によっては、HMD104は、追跡システム122と関連して動作し得る。場合によっては、HMD104は、ネットワーク124を介して追跡システム122に通信可能に連結し得る。例えば、HMD104および追跡システム122は、ネットワーク124への無線接続を容易にするように、それぞれネットワークインターフェイス126および/またはネットワークインターフェイス128などの1つ以上のインターフェイスを含み得る。ネットワーク124は、データおよび/または音声ネットワークを含む、任意のタイプの通信ネットワークを表し、有線インフラストラクチャ(例えば、ケーブル、CAT5、光ファイバケーブルなど)、無線インフラストラクチャ(例えば、RF、セルラー、マイクロ波、衛星、BluetoothTMなど)、および/または他の接続技術を使用して実装され得る。
【0038】
追跡システム122は、環境102内のユーザ100、HMD104、第1のカメラ110、および/または第2のカメラ112の姿勢を決定もしくは追跡する、構成要素を含み得る。この意味で、追跡システム122は、第1のカメラ110および/または第2のカメラ112が、ユーザ100に対してパススルーするために、環境102の画像をキャプチャした時点における、ユーザ100、HMD104、第1のカメラ110、および/もしくは第2のカメラ112の場所、向き、ならびに/または姿勢を決定することができる。例えば、追跡システム122(および/または別のコンピューティングデバイス)は、追跡システム122によってキャプチャされた画像を分析および解析して、環境102内のユーザ100および/またはユーザ100の姿勢を識別することができる。例えば、場合によっては、追跡システム122は、ユーザ100の場所、向き、および/または姿勢を決定するように動作する、プロジェクタ(複数可)130および/またはセンサ(複数可)132を含み得る。示されるように、場合によっては、追跡システム122は、環境102の壁に装着することができる。さらに、または代替的に、追跡システム122は、環境102内の他の場所(例えば、天井、床など)に装着することができる。
【0039】
プロジェクタ(複数可)130は、ライトおよび/または画像を生成し、環境102に投影するように構成されている。場合によっては、画像は、ユーザ100に知覚可能な可視ライトの画像、ユーザ100に知覚不可能な可視ライトの画像、非可視ライトを有する画像、またはこれらの組み合わせを含み得る。プロジェクタ(複数可)130は、画像を生成し、環境102内/環境102に投影することができる任意の数の技術とともに実装され得る。好適な技術としては、デジタルマイクロミラーデバイス(DMD)、液晶オンシリコンディスプレイ(LCOS)、液晶ディスプレイ、3LCDなどが挙げられる。
【0040】
センサ(複数可)132としては、高解像度カメラ、赤外線(IR)検出器、センサ、3Dカメラ、IRカメラ、RGBカメラなどが挙げられ得る。センサ(複数可)132は、可視ライトの波長、非可視ライトの波長、またはこれらの両方で環境102を画像処理するように構成されている。センサ(複数可)132は、環境102内の物体の深度、場所、向き、および/または姿勢を検出するための情報をキャプチャするように構成され得る。例えば、ユーザ100が環境102のあちこちへ操縦するにつれて、センサ(複数可)132は、ユーザ100の場所、向き、および/または姿勢を検出し得る。場合によっては、センサ(複数可)132は、環境102内のいくつかまたはすべての角度および場所をキャプチャし得る。代替的に、センサ(複数可)132は、環境102の規定の区域内で画像に焦点を合わせるか、または画像をキャプチャすることができる。
【0041】
プロジェクタ(複数可)130および/またはセンサ(複数可)132は、HMD104のマーカ(複数可)134と連動して動作し得る。例えば、追跡システム122は、プロジェクタ(複数可)130を介して、環境102にライトを投影することができ、センサ(複数可)132は、マーカ(複数可)134の反射画像をキャプチャすることができる。キャプチャされた画像を使用して、追跡システム122のプロセッサ(複数可)136などの追跡システム122は、マーカ(複数可)134までの距離情報を決定し得る。さらに、または代替的に、追跡システム122は、環境102内のユーザ100の姿勢(例えば、向き)を検出し得る。場合によっては、マーカ(複数可)134を使用して、ユーザ100の視点を決定することができる。例えば、マーカ(複数可)134とユーザ100の目との間の距離は、既知であってもよい。マーカ(複数可)134の画像データをキャプチャする際に、追跡システム122(および/または他の通信可能に連結されたコンピューティングデバイス)は、ユーザ100の相対的な視点を決定し得る。したがって、追跡システム122は、HMD104のマーカ(複数可)134を利用して、環境102内のユーザ100の相対的な場所および/または姿勢を決定することができる。
【0042】
環境102についての特性を定義または決定するために、ゲームアプリケーションを開始すると、HMD104は、ユーザ100がVR環境に没入している間に中で操縦することができる環境102の境界、周囲、または区域を定義するようにユーザ100に要求し得る。一実施例として、プロセッサ(複数可)114は、ディスプレイ108に、環境102を歩き回り、環境102の境界(またはユーザ100がVR環境に没入している間に中で操縦する区域)を定義するように、ユーザ100に命令を提示させ得る。ユーザ100が環境102の周りを歩く際に、HMD104は、第1のカメラ110および/または第2のカメラ112を介して環境102の画像をキャプチャすることができ、追跡システム122は、ユーザ100を追跡することができる。その点で、環境102の境界を決定すると、追跡システム122は、区域の中央の場所(例えば、起点)を決定することができる。区域の中央の場所を知ることにより、HMD104は、環境102内の物体またはシーンの相対的な場所を適切に表示することができる場合がある。場合によっては、中央の場所は、(X、Y、Z)デカルト座標系において(0、0、0)として表され得る。
【0043】
場合によっては、追跡システム122は、境界および/または中央の場所をHMD104に伝送し得る。例えば、HMD104のプロセッサ(複数可)114は、境界138によって指示されるように、境界および/または中央の起点をメモリ116に記憶し得る。さらに、または代替的に、場合によっては、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像は、追跡システム122によってキャプチャされた画像に関連付けられ得る。例えば、区域を定義しながら、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像を使用して、環境102の深度マップを生成することができる。それに応じて、これらの深度マップを、環境102全体を通してユーザ100を追跡することによって決定されるように、環境102内の特定の場所/姿勢に関連付けることができる。場合によっては、これらの深度マップを組み合わせて、または別様に使用して、環境102の3Dモデルまたはメッシュを生成することができる。HMD104および/または追跡システム122から後続の画像データを受信する際に、環境102内のユーザ100の場所を決定することができ、これは、環境102内、およびユーザの観点、場所、または姿勢からの深度情報を決定するのに役立つ場合がある。例えば、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像データがユーザ100の視点に対応していない場合、追跡システム122は、マーカ(複数可)134からキャプチャされた画像を介してユーザ100の視点を決定することができる。この視点を使用して、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像データを、ユーザ100の視点を表すように修正することができる。
【0044】
例えば、ユーザ100がVR環境に従事し、環境102のあちこちへ操縦するにつれて、追跡システム122は、マーカ(複数可)134からの反射ライトを中央の場所と比較することによって、環境102内のHMD104の相対的な場所を決定し得る。この情報を使用して、HMD104、追跡システム122、および/または別の通信可能に連結されたコンピューティングデバイス(例えば、ゲームコンソール)は、中央の場所からのHMD104の距離、または中央の場所に対するHMD104の場所を決定することができる。さらに、HMD104、追跡システム122、および/または別の通信可能に連結されたコンピューティングデバイスは、環境102内のユーザ100の視点などの姿勢を決定し得る。例えば、追跡システム122は、ユーザ100が環境102の天井、壁、または床に向かって見ていることを決定し得る。かかる情報を使用して、ユーザの目または視点に対する、第1のカメラ110および/または第2のカメラ112の位置を修正するか、または別様に位置を考慮に入れることができる。
【0045】
場合によっては、追跡システム122は、固定された向きを有するシャーシに連結し得るか、またはシャーシが移動し得るように、シャーシがアクチュエータ(複数可)140に連結し得る。アクチュエータ140は、圧電アクチュエータ、モータ、リニアアクチュエータ、ならびにプロジェクタ(複数可)130および/またはセンサ(複数可)132などの追跡システム122のシャーシもしくは構成要素を変位または移動させるように構成された他のデバイスを含み得る。
【0046】
HMD104は、さらに、または代替的に、リモートコンピューティングリソース142と連動して動作し得る。追跡システム122はまた、リモートコンピューティングリソース142に通信可能に連結し得る。いくつかの実施例では、HMD104および/または追跡システム122は、リモートコンピューティングリソース142が、HMD104および/または追跡システム122のコンピュータ処理能力をはるかに上回るコンピュータ処理能力を有し得ることを考慮して、リモートコンピューティングリソース142に通信可能に連結し得る。したがって、HMD104および/または追跡システム122は、環境102の比較的複雑な分析を実施するため、および/または環境102の画像データのモデル(もしくはメッシュ)を生成するために、リモートコンピューティングリソース142を利用し得る。例えば、第1のカメラ110および/または第2のカメラ112は、HMD104が、分析および処理のためにネットワーク124を介してリモートコンピューティングリソース142に提供し得る、画像データをキャプチャすることができる。場合によっては、リモートコンピューティングリソース142は、表示するためにコンテンツをHMD104に伝送し得る。例えば、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像をパススルーするようにHMD104を構成するトリガ事象(例えば、ボタンの押し込み)に応答して、リモートコンピューティングリソース142は、上にHMD104が第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像を投影する、深度マップ、3Dメッシュ、および/または3Dモデルを伝送し得る。したがって、ユーザ100に渡すために第1のカメラ110および/または第2のカメラ112によって取り込まれた画像は、処理するためにリモートコンピューティングリソース142に伝送され得、HMD104は、ディスプレイ108上に表示されるコンテンツを受信し得る。
【0047】
説明されるように、リモートコンピューティングリソース142は、プロセッサ(複数可)144およびメモリ146を含み、メモリ146は、HMD104のメモリ116に関して記載された構成要素のうちのいくつかもしくはすべてを記憶し得るか、または別様に当該構成要素へのアクセスを有し得る。例えば、メモリ146は、深度マップ118、3Dメッシュ120、および/または境界138へのアクセスを有し、深度マップ118、3Dメッシュ120、および/または境界138を利用することができる。リモートコンピューティングリソース142は、さらに、または代替的に、追跡システム122のメモリ148を記憶し得るか、または別様にメモリ148へのアクセスを有し得る。
【0048】
場合によっては、リモートコンピューティングリソース142は、環境102からリモートであってもよく、HMD104は、ネットワークインターフェイス126を介して、およびネットワーク124上で、リモートコンピューティングリソース142に通信可能に連結し得る。リモートコンピューティングリソース142は、1つ以上のサーバとして実装され得、場合によっては、インターネットなどのネットワークを介して維持され、アクセス可能である、プロセッサ、ストレージ、ソフトウェア、データアクセスなどのコンピューティングインフラストラクチャとして実装されたネットワークアクセス可能なコンピューティングプラットフォームの一部分を形成し得る。リモートコンピューティングリソース142は、サービスを配信するシステムの物理的な場所および構成に関するエンドユーザの知識を必要としない。これらのリモートコンピューティングリソース142に関連付けられた一般的な表現としては、「オンデマンドコンピューティング」、「サービスとしてのソフトウェア(SaaS)」、「プラットフォームコンピューティング」、「ネットワークアクセス可能なプラットフォーム」、「クラウドサービス」、「データセンタ」などが挙げられ得る。
【0049】
場合によっては、環境102は、ネットワーク124および/または有線技術を介して、HMD104、コントローラ106、追跡システム122、および/またはリモートコンピューティングリソース142に通信可能に連結するコンピュータ150(またはゲームアプリケーション、ゲームコンソール、ゲームシステム)を含み得る。場合によっては、コンピュータ150は、HMD104、コントローラ106、追跡システム122、および/またはリモートコンピューティングリソース142によって実施可能なものなど、本明細書に記載のプロセスのうちのいくつかまたはすべてを実施し得る。例えば、コンピュータ150は、ユーザ100の視点を考慮に入れるように、第1のカメラ110および/もしくは第2のカメラ112から受信した画像データ、または当該カメラに関連する深度マップを修正することができる。かかる例では、コンピュータ150は、ユーザ100の視点、ならびに/またはユーザが位置する区域の起点(例えば、現実世界の環境の起点)および/もしくは仮想世界の起点に関する、指示を追跡システム122により決定するか、または追跡システム122から受信することができる。したがって、コンピュータは、追跡システム122から受信した指示に基づいて、第1のカメラ110および/または第2のカメラ112から受信した画像データ、または当該カメラに関連する深度マップを修正することができる。いくつかの実施形態では、画像データがカメラ110、112のうちの一方または両方によってキャプチャされた時間(複数可)(例えば、タイムスタンプ(複数可))を使用して、画像データをキャプチャする時間と、キャプチャされた画像データを表示する時間との間の時間の差異を決定することができる。例えば、最終的にユーザに表示される画像データは、画像データがカメラ(複数可)110および/または112によってキャプチャされた後、数十ミリ秒だけ遅延し得る。画像がHMD上に表示された時点で画像が物理的な世界に現れるように画像を提示するために、ピクセルデータを(例えば、回転方向の調節および/または並進方向の調節を通じて)修正することなどによって、この時間的な視差または不一致を考慮に入れるように画像データに調節を行うことができ、これにより、ユーザの頭の動きよりも遅れているように現れる画像の提示を回避する。いくつかの実施形態では、カメラ(複数可)110および/または112を追跡してタイムスタンプ情報を維持することができ、その結果、画像(複数可)をキャプチャする時点のカメラ(複数可)の姿勢は既知であり、またその結果、結果として生じる画像データが受信および処理される時点のカメラ(複数可)の姿勢を使用して、カメラの動きに依存する代わりに、空間的に画像を正確に表すことができる。さらに、コンピュータ150は、メモリ116、146、および/または148に関して記載された構成要素のうちのいくつかまたはすべてを記憶し得るか、または別様に当該構成要素へのアクセスを有し得る。
【0050】
本明細書で使用される場合、プロセッサ(複数可)114、136、144、および/またはコンピュータのプロセッサなどのプロセッサは、複数のプロセッサ、および/または複数のコアを有するプロセッサを含み得る。さらに、プロセッサ(複数可)は、異なるタイプの1つ以上のコアを備え得る。例えば、プロセッサ(複数可)は、アプリケーションプロセッサユニット、グラフィック処理ユニットなどを含み得る。1つの実装例では、プロセッサ(複数可)は、マイクロコントローラおよび/またはマイクロプロセッサを含み得る。プロセッサ(複数可)は、グラフィック処理ユニット(GPU)、マイクロプロセッサ、デジタル信号プロセッサ、または当該技術分野で知られている他の処理ユニットもしくは構成要素を含んでもよい。代替的に、またはさらに、本明細書で機能的に説明されるのは、1つ以上のハードウェア論理構成要素によって少なくとも部分的に実施され得る。例えば、非限定的に、使用され得るハードウェア論理構成要素の例示的なタイプとしては、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SOC)、複合プログラマブル論理デバイス(CPLD)などが挙げられる。加えて、プロセッサ(複数可)の各々は、プログラム構成要素、プログラムデータ、および/または1つ以上のオペレーティングシステムを記憶することもできる、プロセッサ独自のローカルメモリを保有し得る。
【0051】
本明細書で使用される場合、メモリ116、146、148、および/またはコンピュータ150のメモリなどのメモリは、コンピュータ可読命令、データ構造、プログラム構成要素、または他のデータなどの情報の記憶のための任意の方法もしくは技術で実装される、揮発性および不揮発性メモリ、取り外し可能な媒体および取り外し不可能な媒体を含んでもよい。かかるメモリとしては、RAM、ROM、EEPROM、フラッシュメモリもしくは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)もしくは他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、RAIDストレージシステム、または所望の情報を記憶するために使用することができ、かつコンピューティングデバイスからアクセスすることができる任意の他の媒体が挙げられ得るが、これらに限定されない。メモリは、コンピュータ可読記憶媒体(「CRSM」)として実装され得、これは、メモリに記憶された命令を実行するためにプロセッサ(複数可)によってアクセス可能な任意の利用可能な物理媒体であり得る。1つの基本的な実装例では、CRSMは、ランダムアクセスメモリ(「RAM」)およびフラッシュメモリを含み得る。他の実装例では、CRSMは、読み出し専用メモリ(「ROM」)、電気的に消去可能なプログラマブル読み出し専用メモリ(「EEPROM」)、または所望の情報を記憶するために使用され得、かつプロセッサ(複数可)によってアクセスされ得る、任意の他の有形媒体を含み得るが、これらに限定されない。
【0052】
図2は、HMD104の斜視図を説明する。HMD104は、ユーザ100の頭に固設される、前方200および後方202を含み得る。例えば、HMD104は、HMD104の前方200およびHMD104の後方202を動作可能に連結する、ストランド、コード、セクション、ストラップ、バンド、または他の部材を含み得る。前方200は、アプリケーション(例えば、ビデオゲーム)によって出力された画像をレンダリングするように、ユーザ100の目の前方または上に位置付けられるディスプレイ108を含む。上で考察されるように、ディスプレイ108は、ユーザ100が視認する画像(フレーム)を出力して、ユーザ100に、VR環境に没入したかのように画像を知覚させることができる。
【0053】
場合によっては、HMD104の前方200は、第1のカメラ110および/または第2のカメラ112を含み得る。第1のカメラ110および/または第2のカメラ112は、ユーザ100がディスプレイ108上で視認するために、HMD104の外部の(すなわち、環境102の)画像をキャプチャし得る。上記のように、第1のカメラ110および第2のカメラ112の光軸は、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像を使用して環境102の少なくとも一部分の深度情報を生成するように、平行であり、かつ所定の距離だけ分離していてもよい。しかしながら、場合によっては、上で考察されるように、HMD104は、第1のカメラ110および/または第2のカメラ112を含まない場合がある。例えば、第1のカメラ110および/または第2のカメラ112は、環境102内の他の場所に位置し得る。
【0054】
いずれのシナリオでも、第1のカメラ110および/または第2のカメラ112は、ユーザ100の視点に対応し得ない(すなわち、第1のカメラ110および/または第2のカメラ112がユーザ100の目の実際の位置にないときの)画像をキャプチャする。しかしながら、本明細書に記載の技術を使用して、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像データを、ユーザ100の視点に対する第1のカメラ110および/または第2のカメラ112の変位を考慮に入れるように修正することができる。
【0055】
例えば、ユーザ100の視点を決定するために、HMD104は、マーカ(複数可)134を含み得る。
図2に示されるように、場合によっては、マーカ(複数可)134は、前方200の角に、縁に、または周囲に沿って配設された、第1のマーカ204(1)、第2のマーカ204(2)、第3のマーカ204(3)、および/または第4のマーカ204(4)を含み得る。しかしながら、マーカ(複数可)134は、頂部、側面、または後方202などに沿って、HMD104上の他の場所に位置し得る。場合によっては、マーカ(複数可)134は、追跡システム122のプロジェクタ(複数可)130が発した電磁放射線(例えば、赤外線)に応答する、赤外線要素、反射器、デジタルウォーターマーク、および/または画像を含み得る。さらに、または代替的に、マーカ(複数可)134は、追跡システム122のセンサ(複数可)132によってキャプチャされる電磁放射線(例えば、赤外線ライト)を発する追跡ビーコンを含み得る。つまり、プロジェクタ(複数可)130は、ライトを環境102に投影し、マーカ(複数可)134は、ライトを反射し得る。センサ(複数可)132が、マーカ(複数可)134および追跡システム122が反射する入射ライトをキャプチャし得るか、またはリモートコンピューティングリソース142などの別の通信可能に連結されたコンピューティングデバイスが、環境102内のマーカ(複数可)134の場所を追跡およびプロットして、ユーザ100の運動、位置、姿勢、および/または向きを決定し得る。したがって、マーカ(複数可)134を使用して、ユーザ100に表示される前に、第1のカメラ110および/または第2のカメラ112からの画像データを修正するか、調節するか、または別様に当該画像データに適合させる際に使用するようにユーザ100の視点を指示することができる。
【0056】
図3は、環境300内でHMD104を着用しているユーザ100を説明する。
図3は、ユーザ100がHMD104を着用している間に仮想コンテンツ302を表示し、VR環境内で相互作用する、HMD104のディスプレイ108を説明する。上で考察されるように、HMD104は、ユーザ100が環境102のあちこちに移動するにつれて、仮想コンテンツ302を表示し得る。
【0057】
追跡システム122を環境300内に位置付けて、ユーザ100を1つの場所から別の場所まで追跡し、環境内のユーザ100の視点を決定することができる。例えば、追跡システム122は、HMD104上のマーカ(複数可)134を利用して、ユーザ100の姿勢(例えば、場所および向き)を決定することができる。場合によっては、ユーザ100の姿勢は、環境300の中央の場所に対して相対的であってもよい。例えば、中央の場所は、座標(0、0、0)を有し得、マーカ(複数可)134からの反射ライトを使用して、追跡システム122(またはリモートコンピューティングリソース142)は、座標空間(例えば、(X、Y、Z))内のユーザ100の姿勢を決定し得る。追跡システム122は、ユーザ100の観点または視点から環境300内の物体の深度を決定することもできる。さらに、または代替的に、第1のカメラ110および/または第2のカメラ112から受信した画像データを使用して、環境300内の深度を決定することができる。
【0058】
HMD104は、環境300内、ならびに/またはユーザ100の視点内および/もしくはユーザ100の前方にある、物体(例えば、家具、壁など)を用いて、仮想コンテンツ302の表示を調整し得る。言い換えれば、ユーザ100に表示される環境300(または現実世界)の物体は、環境300内のユーザ100の視点に対応し得る。例えば、HMD104は、1つ以上のトリガ事象に少なくとも部分的に基づいて、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像データ(例えば、パススルー画像)を使用して、環境300内の物体を表示し得る。つまり、HMD104は、環境300内の物体の実際の設置に対応する、ディスプレイ108上の場所に画像を表示するように構成され得る。第1のカメラ110および/または第2のカメラ112の画像データから生成された深度マップ、ならびに環境300の3Dモデルまたはメッシュを利用して、ユーザ100に提示されるパススルー画像は、環境300内の実際の設置(すなわち、適切な深度値)に位置する物体を、ユーザ100の視点から説明し、それによって、ユーザ100が物体(例えば、コントローラ、グラスの水など)を拾い上げることを可能にすることができる。しかしながら、場合によっては、第1のカメラ110および/または第2のカメラ112からの画像データを継続的にキャプチャすることができ、トリガ事象を検出すると、HMD104は、環境300に関連付けられたコンテンツをユーザ100に表示し得る。
【0059】
図3に示されるように、トリガ事象は、ユーザ100が環境300の境界に近付いている、または境界に迫っていることを決定することを含み得る。例えば、ユーザ100は、環境300の2つの壁306と308との間の角304に近付く場合がある。追跡システム122を介してユーザ100の場所を知ることにより、HMD104は、ユーザ100が角304に迫っていることを指示するように、コンテンツをディスプレイ108上に表示することができる。例えば、示されるように、角304、および壁306、308の指示は、ディスプレイ108上に破線または点線として表示され得る。そうすることで、ユーザ100には、ユーザ100が壁にぶつかろうとしているという指示が提示される。場合によっては、
図3に示されるように、角304、および壁306、308に関する指示またはコンテンツは、(HMD104のディスプレイ108上に表示される仮想コンテンツと組み合わせて)オーバーレイされ得るか、または仮想コンテンツ302上に(または仮想コンテンツ302と組み合わせて)提示され得る。
【0060】
上記のように、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像データを、ユーザ100の視点を考慮に入れるように修正することができる。さらに、または代替的に、深度マップ、3Dメッシュ、もしくは環境のモデルは、ユーザ100の目または視点に対する、第1のカメラ110および/もしくは第2のカメラ112の場所を考慮に入れるか、または考慮することができる。したがって、第1のカメラ110および/または第2のカメラ112が、ユーザ100とは異なり得る視点を有する場合、HMD104上に提示する前に、画像データを修正して、ユーザの視点に調節することができる。
【0061】
図3は、角304、および/または壁306、308をディスプレイ108上に表示する特定の実装例を説明しているが、コンテンツは、没入型の仮想体験を中断することなくユーザ100に適切に提供されるように、修正なしで、表示用に修正されるか、埋め込まれるか、マージされるか、積み重ねられるか、分割されるか、再レンダリングされるか、または別様に操作されるなど、異なる方法で提示され得る。例えば、場合によっては、コンテンツは、ディスプレイ108の特定の領域(例えば、上部右手角)に表示され得る。さらに、または代替的に、ディスプレイ108は、100パーセントのパススルーを有するように、角304、および壁306、308に関連付けられたコンテンツのみを提示し得る。場合によっては、HMD104は、ディスプレイ108上に、環境300に関連付けられたコンテンツをフェードインさせ得る。
【0062】
図4は、環境400内でHMD104を着用しているユーザ100を説明する。場合によっては、HMD104は、1つ以上のトリガ事象に少なくとも部分的に基づいて、パススルー画像を表示し得る。場合によっては、トリガ事象は、訪問者402が環境400および/または環境400内の規定の領域に入ったことを判定することを含み得る。
図4に示されるように、ディスプレイ108は、HMD104を着用しているユーザ100に近付く訪問者402を描写する。ここで、訪問者402は、ユーザ100に近付いているように現れ、したがって、ディスプレイ108は、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像を表示し得る。しかしながら、しかしながら、画像は、第1のカメラ110および/または第2のカメラ112とユーザ100の視点との間の視点の差異を考慮に入れるように最初に修正され得る。場合によっては、HMD104は、HMD104を着用しているか、またはユーザ100の閾値距離内に達する間に、マーカ(複数可)134を使用して決定されるように、訪問者402がユーザ100の視点内および/またはユーザ100の前方にいることに少なくとも部分的に基づいて、訪問者402を表示し得る。場合によっては、訪問者402を、動きセンサを介して検出し、追跡システム122などを介して、第1のカメラ110および/または第2のカメラ112からの画像データを分析することができる。
【0063】
図5および6は、本出願の実施形態によるプロセスを説明する。本明細書に記載のプロセスは、動作の順序を表す論理フロー図内のブロックの集合として説明され、これらのうちのいくつかまたはすべては、ハードウェア、ソフトウェア、またはこれらの組み合わせで実装され得る。ソフトウェアの文脈では、ブロックは、1つ以上のコンピュータ可読媒体に記憶されているコンピュータ実行可能命令を表し得、コンピュータ実行可能命令は、1つ以上のプロセッサによって実行されたときに、列挙される動作を実施するようにプロセッサをプログラムする。概して、コンピュータ実行可能命令は、特定の機能を実施するか、または特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。ブロックが記載される順番は、特に明記されない限り、限定として解釈されるべきではない。任意の数の記載されたブロックは、プロセス、または代替的なプロセスを実装するために任意の順番で、および/または並列に組み合わせられてもよく、ブロックのうちのすべてが実行される必要はない。考察のために、プロセスは、例えば、
図1~4に関して記載されるものなどの、本明細書の実施例において記載される環境、アーキテクチャ、およびシステムを参照して記載されているが、プロセスは、多種多様な他の環境、アーキテクチャ、およびシステムにおいて実装され得る。
【0064】
図5は、環境102の3Dモデル、深度マップ、またはメッシュを生成するための例示的なプロセス500を説明する。場合によっては、プロセス500は、リモートコンピューティングリソース142によって実施され得る。しかしながら、HMD104、追跡システム122、および/またはコンピュータ150は、プロセス500の一部またはすべてをさらに実施し得る。
【0065】
502において、プロセス500は、環境102内の区域を定義するための要求を伝送し得る。例えば、リモートコンピューティングリソース142は、要求をHMD104に伝送し、ユーザ100が環境102の区域を定義することを要求し得る。場合によっては、区域は、ユーザ100が、VR環境に没入しながら、中であちこち移動することを意図する区域を表し得る。要求を受信することに応答して、HMD104のプロセッサ(複数可)114は、要求または要求に関連付けられた情報を、ディスプレイ108上に提示し得る。例えば、要求は、HMD104を着用し、環境102を歩き回ることと、中でユーザがあちこち移動することを意図する区域を定義することと、を行うように、ユーザ100に通知し得る。
【0066】
504において、プロセス500は、環境102内でHMD104を追跡するための、およびユーザ100がHMD104を着用して区域を定義するときの要求を伝送し得る。例えば、リモートコンピューティングリソース142は、ユーザ100が区域を定義する間、環境102全体でユーザ100を追跡するように追跡システム122に要求を伝送し得る。場合によっては、追跡システム122は、画像を環境102に投影するプロジェクタ(複数可)130、およびHMD104のマーカ(複数可)134を介して反射されたライトの画像をキャプチャするセンサ(複数可)132を介して、ユーザ100を追跡し得る。場合によっては、リモートコンピューティングリソース142は、502の要求および504の要求を、同時にまたは実質的に同時に伝送し得る。
【0067】
506において、プロセス500は、追跡システム122から第1の画像データを受信し得る。例えば、リモートコンピューティングリソース142は、追跡システム122から第1の画像データを受信し得、第1の画像データは、ユーザ100が、区域を定義するように環境102をあちこち歩くときの、HMD104および/またはユーザ100の場所を表す。例えば、第1の画像データは、環境102内のマーカ(複数可)134の場所および/または姿勢を表し得る。リモートコンピューティングリソース142によって受信された第1の画像データは、画像が追跡システム122(またはセンサ(複数可)132)によってキャプチャされた時点のタイムスタンプを含み得る。
【0068】
508において、プロセス500は、区域の特性を決定し得る。例えば、第1の画像データを受信することに少なくとも部分的に基づいて、リモートコンピューティングリソース142は、区域の境界または周囲を決定し得る。さらに、または代替的に、リモートコンピューティングリソース142は、第1の画像データに少なくとも部分的に基づいて、区域の中心または起点を決定し得る。場合によっては、起点は、デカルト座標系におけるX座標、Y座標、およびZ座標にそれぞれ対応する値(0、0、0)を有する3D空間内で定義され得る。したがって、追跡システム122および/またはリモートコンピューティングリソース142から後続の画像データを受信する際に、区域の起点に対するユーザ100(および/またはHMD104)の相対的な場所を決定することができる。
【0069】
510において、プロセス500は、HMD104から第2の画像データを受信し得る。例えば、リモートコンピューティングリソース142は、HMD104から第2の画像データを受信することができ、第2の画像データは、ユーザ100が環境102の区域を定義する間、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像を表す。場合によっては、リモートコンピューティングリソース142によって受信された第2の画像データは、画像が第1のカメラ110および/または第2のカメラ112によってキャプチャされた時点のタイムスタンプを含み得る。つまり、第1のカメラ110および/または第2のカメラ112が画像をキャプチャする間、別の通信可能に連結されたコンピューティングデバイスが、環境102内のユーザ100の姿勢を決定し得る。例えば、上述のように、第1のカメラ110および/または第2のカメラ112が画像をキャプチャする間、追跡システム122のプロセッサ(複数可)136は、プロジェクタ(複数可)130に、環境102に画像を投影させることができる。HMD104のマーカ(複数可)134は、画像に関連付けられたライトを反射し得、センサ(複数可)132は、マーカ(複数可)134の反射画像をキャプチャし得る。かかる画像を使用して、環境102内のユーザ100(および/もしくはHMD104)の深度、場所、向き、ならびに/または姿勢を決定することができ、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像データに関連付けることができる。
【0070】
512において、プロセス500は、環境102の3Dモデル(またはメッシュ)を生成し得る。例えば、リモートコンピューティングリソース142は、第1の画像データおよび/または第2の画像データに少なくとも部分的に基づいて、環境102の3Dモデルを生成し得る。例えば、第2の画像データを使用して、リモートコンピューティングリソース142は、第1のカメラ110および/または第2のカメラ112によってそれぞれキャプチャされた画像を比較して、視差を決定することができる。次に、リモートコンピューティングリソース142は、環境102の3Dモデルを生成する際に使用するために、環境102の深度情報を決定することができる。さらに、リモートコンピューティングリソース142は、追跡システム122から受信した第1の画像データを利用して、環境102の深度マップまたは深度値を、区域および/または環境102内の特定の場所に関連付けることができる。場合によっては、リモートコンピューティングリソース142は、第1の画像データおよび/または第2の画像データがキャプチャされた時点のタイムスタンプを使用して、第1の画像データおよび第2の画像データ(もしくは当該画像データから生成された深度マップ)を比較するか、または関連付けることができる。場合によっては、環境102の3Dモデルを生成することは、環境内の物体を描くことを含み得る。例えば、リモートコンピューティングリソース142は、椅子などの、環境102内の物体(または体積)でVR環境を拡張し得る。場合によっては、3Dモデルは、HMD104および/または追跡システム122に伝送され得、ならびに/またはHMD104、追跡システム122、および/もしくはリモートコンピューティングリソース142のメモリに記憶され得る。
【0071】
図6は、HMD104などのHMD上の画像をパススルーさせるための例示的なプロセス600を説明する。場合によっては、プロセス600は、環境102の3Dモデルが生成された後、プロセス500の512から続けられてもよい。言い換えると、場合によっては、3Dモデルが生成された後、HMD104は、パススルー画像を表示して、ユーザ100がVR環境と現実世界の環境(すなわち、環境102)との間をスイッチすることを可能にすることができる。場合によっては、プロセス600は、リモートコンピューティングリソース142によって実施され得る。しかしながら、HMD104、追跡システム122、および/またはコンピュータ150は、プロセス600の一部またはすべてをさらに実施し得る。
【0072】
602において、プロセス600は、HMD104から第1の画像データを受信し得る。例えば、リモートコンピューティングリソース142は、HMD104から第1の画像データを受信することができ、第1の画像データは、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像を表す。場合によっては、リモートコンピューティングリソース142は、HMD104が、ユーザ100によるボタンの押し込み、ユーザ100による口頭コマンドの発行、環境102内で検出された動き(例えば、訪問者がユーザ100に近付いていること)、および/またはユーザ100が環境102の境界の閾値距離内に迫っているか、もしくは達していることなどといった、トリガ事象を検出することに少なくとも部分的に基づいて、第1の画像データを受信し得る。他の例では、リモートコンピューティングリソース142は、第1の画像データを継続的に受信することができ、これらの画像を、トリガ事象に少なくとも部分的に基づいて、パススルーするように構成され得る。例えば、ユーザ100がVR環境内に没入することができるため、ユーザ100は、HMD104のボタンを押して、HMD104の外部にコンテンツを表示することができる。この意味で、HMD104は、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像を表示するパススルーモードを含み得る。したがって、トリガ式を検出することに少なくとも部分的に基づいて、HMD104のプロセッサ(複数可)114は、第1のカメラ110および/または第2のカメラ112に、環境102の画像をキャプチャさせ得る。
【0073】
604において、プロセス600は、第1の画像データに少なくとも部分的に基づいて、深度マップおよび/または3Dメッシュを生成し得る。例えば、リモートコンピューティングリソース142は、第1の画像データがHMD104から(すなわち、ステレオカメラ画像処理を使用して)受信されることに少なくとも部分的に基づいて、深度マップおよび/または3Dメッシュを生成し得る。第1の画像データが環境102の一部分を表す場合、深度マップおよび/または3Dメッシュもまた、環境102の一部分の深度マップおよび/または3Dメッシュに対応し得る。さらに、または代替的に、HMD104は、深度マップおよび/または3Dメッシュを生成し得る。例えば、第1のカメラ110および/または第2のカメラ112から画像データを受信すると、プロセッサ(複数可)114は、立体視的なカメラ画像処理を利用して、深度マップを生成することができる。場合によっては、深度マップを使用して、プロセッサ(複数可)114は、環境102の3Dメッシュを生成し得る。さらに、場合によっては、プロセッサ(複数可)114は、深度マップ118および/または3Dメッシュ120などの、深度マップおよび/または3Dメッシュをメモリ116内に記憶し得る。
【0074】
場合によっては、HMD104、リモートコンピューティングリソース142、および/またはコンピュータ150は、深度マップおよび/または3Dメッシュを生成する前に、第1のカメラ110および/または第2のカメラ112から受信した第1の画像データを修正し得る。例えば、第1の画像データがユーザ100の視点を表すことができない場合、第1の画像データを、第1のカメラ110および第2のカメラ112の視点とユーザ100の視点との間の差異を考慮に入れるように、修正(例えば、転用、変換、歪曲など)することができる。場合によっては、ユーザ100の視点は、追跡システム122、および環境102内のマーカ(複数可)134の位置を使用して決定され得る。さらに、または代替的に、深度マップおよび/または3Dメッシュを生成した後、深度マップおよび/または3Dメッシュを、ユーザ100の視点に従って、またはユーザ100の視点に少なくとも部分的に基づいて、修正することができる。
【0075】
606において、プロセス600は、HMD104の姿勢を表す、追跡システム122を形成する第2の画像データを受信し得る。例えば、リモートコンピューティングリソース142は、追跡システム122から、環境102内のHMD104に対応する第2の画像データを受信し得る。上で考察されるように、第2の画像データは、画像がプロジェクタ(複数可)130によって投影されることに応答して、HMD104のマーカ(複数可)134が反射したライトを検出する、追跡システム122のセンサ(複数可)132によってキャプチャされ得る。
【0076】
608において、プロセス600は、HMD104の姿勢を決定し得る。例えば、第2の画像データを受信することに少なくとも部分的に基づいて、リモートコンピューティングリソース142は、環境102内のHMD104の姿勢を決定し得る。場合によっては、姿勢は、環境102内のHMD104の場所および/または環境102内のHMD104の向きを表し得る。つまり、リモートコンピューティングリソース142は、第1の画像データおよび/または第2の画像データを分析して、環境102の中心に対する、環境102内のユーザ100の場所を決定することができる。かかる分析は、環境102の中心または環境102内の特定の区域に対する、ユーザ100の相対的な場所、視線、および/または視点を決定し得る。
【0077】
610において、プロセス600は、深度マップおよび/または3Dメッシュを、環境の3Dモデルに関連付けられた点に変換し得る。例えば、リモートコンピューティングリソース142は、姿勢(例えば、場所および向き)を利用して、環境102内のユーザ100の場所および/または環境102内のユーザ100の視点を決定することができる。リモートコンピューティングリソース142は、深度マップおよび/または3Dメッシュの点を、環境102の3Dモデルに関連付けられた点に変換し、それによって、ユーザ100の視点を考慮に入れることができる。言い換えれば、リモートコンピューティングリソース142のプロセッサ(複数可)144は、深度マップおよび/または3Dメッシュの点を環境102の3Dモデルに関連付けられた点に変換することによって、環境102の3Dモデル内の点の深度値を位置特定するか、見つけるか、または決定することができる。姿勢を使用して、リモートコンピューティングリソース142は、604で生成された深度マップおよび/または3Dメッシュを、環境102の3Dモデルに転用することができる。かかる転用は、ユーザ100に対する環境102(例えば、適切な深度値)を正確に描写するのに役立ち得る。つまり、第1の画像データは、第2の画像データおよび/または環境102の3Dモデルと一緒になって、HMD104の絶対的な位置および/または視線を提供することができ、これは、適切な深度値または深度知覚でユーザ100の視点を描写するのに役立ち得る。
【0078】
612において、プロセス600は、第1の画像データを3Dモデルの一部分に投影して、第3の画像データを生成することができる。例えば、ユーザ100の姿勢が既知であることで、リモートコンピューティングリソース142は、第1の画像データを環境102の3Dモデルの一部分に投影またはオーバーレイして、第3の画像データを生成することができる。場合によっては、第3の画像データを生成することは、第3の画像データの特定のピクセルについての深度値および/または色値をクロスブレンドまたは入力することを含み得る。例えば、第1の画像データがユーザ100の視点を表すことができない場合、ユーザ100の視点を描写する第3の画像データを生成するときに、第3の画像データは、特定のピクセルについての未定義の深度値/または色値を有し得る。ここで、色値を含まないピクセルには、近隣のピクセルからの色値、または近隣のピクセルの平均値を割り当てることができる。さらに、または代替的に、第3の画像データは、環境100、パーティクルシステムなどの、以前の深度マップまたは3Dメッシュを使用して生成され得る。
【0079】
614において、プロセス600は、第3の画像データをHMD104に伝送し得る。例えば、第1の画像データを3Dモデルの一部分に投影した後、リモートコンピューティングリソース142は、第3の画像データをHMD104に伝送することができ、第3の画像データは、3Dモデルの一部分に投影された第1の画像データを表す。
【0080】
614から、プロセス600は、602にループして、後続の画像データを受信することができる。その結果、継続的なトリガ事象(例えば、ボタンの押し込み、音声コマンド、動き検出など)に応答して、HMD104は、パススルーモードに移行して、ユーザ100が環境102を、しかも、HMD104を脱ぐ必要なしに、立ち去るための便利な方法を提供することができる。例えば、リモートコンピューティングリソース142は、追跡システム122から、ユーザ100が区域の境界に近付いている、および/または環境102の壁に衝突しそうである、という指示を受信し得る。この指示を受信すると、リモートコンピューティングリソース142は、HMD104から、ユーザの視点(すなわち、第1のカメラ110および/または第2のカメラ112によってキャプチャされた画像)を表す画像データを受信し得る。ユーザ100の姿勢を決定すると、リモートコンピューティングリソース142は、画像データを環境102の3Dモデルに投影し、画像データをHMD104上に表示させることができる。この意味で、画像は、ユーザが現実世界の環境を、没入状態を断つ必要なしに、見ることを可能にするように、自動的にユーザ100に「パススルー」され得る。
【0081】
上記の発明は、特定の実施例に関して記載されているが、本発明の範囲は、これらの特定の実施例に限定されないことを理解されたい。特定の動作要件および環境に適合するように変更された他の修正および変更は、当業者に明らかであるため、本発明は、開示の目的で選択された実施例に限定されたとみなされず、本発明の真の概念および範囲から逸脱しない全部の変更および修正に及ぶ。
【0082】
本出願は、特定の構造的特徴および/または方法論的行為を有する実施形態を記載するが、特許請求の範囲は、必ずしも説明される特定の特徴または行為に限定されないことを理解されたい。むしろ、特定の特徴および行為は、本出願の特許請求の範囲内にあるいくつかの実施形態を単に例示するものである。
以下に、本出願の当初の特許請求の範囲に記載された発明を付記する。
[1]
ディスプレイ、
第1のカメラ、および
第2のカメラ、を含む、ヘッドマウントディスプレイと、
1つ以上のプロセッサと、
コンピュータ実行可能命令を記憶する1つ以上の非一時的なコンピュータ可読媒体と、を具備し、前記コンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに行為を実施させ、前記行為が、
前記第1のカメラを介して、環境の第1の部分を表す第1の画像データをキャプチャすることと、
前記第2のカメラを介して、前記環境の第2の部分を表す第2の画像データをキャプチャすることと、
ユーザの第1の目に対する前記第1のカメラの第1のオフセット、および前記ユーザの第2の目に対する前記第2のカメラの第2のオフセットを決定することと、
前記第1の画像データ、前記第2の画像データ、前記第1のオフセット、および前記第2のオフセットに少なくとも部分的に基づいて、深度マップを生成することと、
1つ以上のコンピューティングデバイスに、前記深度マップ、前記第1の画像データ、および前記第2の画像データを伝送することと、
前記1つ以上のコンピューティングデバイスから、前記深度マップ、前記第1の画像データ、および前記第2の画像データに少なくとも部分的に基づいて、第3の画像データを受信することと、
前記ディスプレイを介して前記第3の画像データを表示することと、を含む、システム。
[2]
前記ヘッドマウントディスプレイが、ボタンをさらに具備し、
前記第1の画像データが、前記ボタンの押し込みを検出することに少なくとも部分的に基づいて、キャプチャされるか、または
前記第2の画像データが、前記ボタンの前記押し込みを検出することに少なくとも部分的に基づいて、キャプチャされるかのうちの少なくとも1つである、[1]に記載のシステム。
[3]
前記1つ以上の非一時的なコンピュータ可読媒体が、コンピュータ実行可能命令を記憶し、前記コンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに行為を実施させ、前記行為が、前記1つ以上のコンピューティングデバイスから、前記ユーザが前記環境の境界に近付いているという指示を受信することをさらに含み、
前記第1の画像データをキャプチャすることが、前記指示を受信することに少なくとも部分的に基づくか、または
前記第2の画像データをキャプチャすることが、前記指示を受信することに少なくとも部分的に基づくかのうちの少なくとも1つである、[1]に記載のシステム。
[4]
前記ユーザが、第1のユーザを含み、前記1つ以上の非一時的なコンピュータ可読媒体が、コンピュータ実行可能命令を記憶し、前記コンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに行為を実施させ、前記行為が、前記1つ以上のコンピューティングデバイスから、第2のユーザが前記環境内にいるという指示を受信することをさらに含み、
前記第1の画像データをキャプチャすることが、前記指示を受信することに少なくとも部分的に基づくか、または
前記第2の画像データをキャプチャすることが、前記指示を受信することに少なくとも部分的に基づくかのうちの少なくとも1つである、[1]に記載のシステム。
[5]
前記第3の画像データが、前記ディスプレイ上に提示される仮想コンテンツと組み合わせて表示されるか、または
前記第3の画像データが、前記ディスプレイの所定の部分上に表示されるかのうちの少なくとも1つである、[1]に記載のシステム。
[6]
方法であって、
ヘッドマウントディスプレイから、環境の少なくとも一部分を表す第1の画像データを受信することと、
追跡システムから、前記環境内のユーザの視点を指示する第2の画像データを受信することと、
前記第1の画像データまたは前記第2の画像データのうちの少なくとも1つに少なくとも部分的に基づいて、前記環境の少なくとも一部分に対応する深度マップを生成することと、
前記深度マップを前記環境の三次元(3D)モデルの一部分に関連付けることと、
前記環境の前記3Dモデルの前記一部分に前記第1の画像データを転置することと、
前記環境の前記3Dモデルの前記一部分に転置された前記第1の画像データを表す第3の画像データを生成することと、
前記第3の画像データを前記ヘッドマウントディスプレイに伝送することと、を含む、方法。
[7]
前記ヘッドマウントディスプレイに、前記環境の画像をキャプチャするための第1の要求を伝送することと、
前記ヘッドマウントディスプレイが前記環境の前記画像をキャプチャしている間に、前記追跡システムに、前記ヘッドマウントディスプレイの場所を追跡するための第2の要求を伝送することと、をさらに含む、[6]に記載の方法。
[8]
前記ヘッドマウントディスプレイから、前記環境の前記画像を表す第4の画像データを受信することと、
前記環境の前記画像をキャプチャしている間に、前記追跡システムから、前記ヘッドマウントディスプレイの前記場所を表す第5の画像データを受信することと、
前記第4の画像データおよび前記第5の画像データに少なくとも部分的に基づいて、前記環境の3Dモデルを生成することと、をさらに含む、請求項7に記載の方法。
[9]
前記深度マップを前記環境の前記3Dモデルの一部分に関連付けることが、前記深度マップの個々の点を前記3Dモデルの前記一部分の対応する個々の点に整列させることを含む、[6]に記載の方法。
[10]
前記第3の画像データを伝送することが、前記ヘッドマウントディスプレイからの指示を受信することに少なくとも部分的に基づく、[6]に記載の方法。
[11]
前記指示が、
前記ヘッドマウントディスプレイでボタンが押し込まれたこと、
前記環境内の運動を検出すること、
前記ユーザの所定の距離内の動きを検出すること、または
前記ユーザが前記環境の境界に近付いていることを決定することのうちの少なくとも1つに対応する、[10]に記載の方法。
[12]
第4の画像データを前記ヘッドマウントディスプレイに伝送することをさらに含み、前記第4の画像データが、仮想環境に関連付けられた仮想コンテンツを表し、前記ヘッドマウントディスプレイが、前記第3の画像データの少なくとも一部分を前記第4の画像データの少なくとも一部分と組み合わせて表示するように構成されている、[6]に記載の方法。
[13]
前記環境の中心を決定することと、
前記第2の画像データに少なくとも部分的に基づいて前記環境内の前記ユーザの場所を決定することと、をさらに含み、
前記深度マップを3Dモデルの前記一部分に関連付けることが、前記環境の前記中心に対する前記ユーザの前記場所を決定することに少なくとも部分的に基づく、[6]に記載の方法。
[14]
前記第3の画像データが、前記環境内の前記ユーザの前記視点を表す、[6]に記載の方法。
[15]
システムであって、
ヘッドマウントディスプレイと、
第1のカメラと、
第2のカメラと、
1つ以上のプロセッサと、
コンピュータ実行可能命令を記憶する1つ以上の非一時的なコンピュータ可読媒体と、を具備し、前記コンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに行為を実施させ、前記行為が、
前記第1のカメラから、環境の第1の部分を表す第1の画像データを受信することと、
前記第2のカメラから、前記環境の第2の部分を表す第2の画像データを受信することと、
前記第1の画像データおよび前記第2の画像データに少なくとも部分的に基づいて、前記環境の一部分の第1の深度マップを生成することと、
追跡システムから、前記環境内のユーザの視点に対応するデータを受信することと、
前記第1の深度マップおよび前記データに少なくとも部分的に基づいて、第2の深度マップを生成することと、
前記第1の画像データおよび前記第2の画像データを前記第2の深度マップに投影することに少なくとも部分的に基づいて、第3の画像データを生成することと、
前記第3の画像データを前記ヘッドマウントディスプレイに伝送することと、を含む、システム。
[16]
前記1つ以上の非一時的なコンピュータ可読媒体が、コンピュータ実行可能命令を記憶し、前記コンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに行為を実施させ、前記行為が、トリガ事象の指示を受信することをさらに含み、前記第3の画像データを伝送することが、前記指示を受信することに少なくとも部分的に基づく、[15]に記載のシステム。
[17]
前記指示が、
前記ヘッドマウントディスプレイを着用している前記ユーザの前方に別のユーザがいることを判定すること、または
前記ユーザが前記環境の境界に近付いていることを判定することのうちの少なくとも1つに対応する、[16]に記載のシステム。
[18]
前記1つ以上の非一時的なコンピュータ可読媒体が、コンピュータ実行可能命令を記憶し、前記コンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに行為を実施させ、前記行為が、仮想現実環境内の仮想コンテンツを表す第4の画像データを伝送することをさらに含む、[15]に記載のシステム。
[19]
前記データが、前記環境の中央の場所に対する前記環境内の前記ユーザの場所に対応する、[15]に記載のシステム。
[20]
前記1つ以上の非一時的なコンピュータ可読媒体が、コンピュータ実行可能命令を記憶し、前記コンピュータ実行可能命令が、前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに行為を実施させ、前記行為が、
前記環境の3Dモデルを生成することと、
前記ユーザの前記視点に対応する前記3Dモデルの一部分を決定することと、をさらに含み、
前記第2の深度マップを生成することが、前記3Dモデルの前記一部分に少なくとも部分的に基づく、[15]に記載のシステム。