(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-16
(45)【発行日】2024-01-24
(54)【発明の名称】自動化された表面選択設置およびコンテンツ配向設置を用いた拡張現実ビューア
(51)【国際特許分類】
G06T 19/00 20110101AFI20240117BHJP
G06F 3/01 20060101ALI20240117BHJP
G06F 3/04845 20220101ALI20240117BHJP
【FI】
G06T19/00 600
G06F3/01 510
G06F3/04845
(21)【出願番号】P 2020567853
(86)(22)【出願日】2019-06-10
(86)【国際出願番号】 US2019036275
(87)【国際公開番号】W WO2019237099
(87)【国際公開日】2019-12-12
【審査請求日】2022-05-02
(32)【優先日】2018-06-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】514108838
【氏名又は名称】マジック リープ, インコーポレイテッド
【氏名又は名称原語表記】Magic Leap,Inc.
【住所又は居所原語表記】7500 W SUNRISE BLVD,PLANTATION,FL 33322 USA
(74)【代理人】
【識別番号】100078282
【氏名又は名称】山本 秀策
(74)【代理人】
【識別番号】100113413
【氏名又は名称】森下 夏樹
(74)【代理人】
【識別番号】100181674
【氏名又は名称】飯田 貴敏
(74)【代理人】
【識別番号】100181641
【氏名又は名称】石川 大輔
(74)【代理人】
【識別番号】230113332
【氏名又は名称】山本 健策
(72)【発明者】
【氏名】ング-ソウ-ヒン, ビクター
【審査官】橋爪 正樹
(56)【参考文献】
【文献】国際公開第2018/031621(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 15/00 -19/20
G06F 3/01
G06F 3/048- 3/04895
(57)【特許請求の範囲】
【請求項1】
拡張現実ビューアであって、
ユーザに実世界オブジェクトが見えることを可能にするディスプレイと、
コンテンツを保持するためのデータチャネルと、
ユーザ配向決定モジュールであって、前記ユーザ配向決定モジュールは、第1のディスプレイエリアに対するユーザの第1のユーザ配向を決定し、前記第1のディスプレイエリアに対する前記ユーザの第2のユーザ配向を決定する、ユーザ配向決定モジュールと、
プロジェクタであって、前記プロジェクタは、前記データチャネルに接続され、前記ユーザが前記実世界オブジェクトを視認している間、前記第1のディスプレイエリアの限局域内において、前記コンテンツを前記ディスプレイを通して前記ユーザに表示する、プロジェクタと、
コンテンツ配向選択モジュールであって、前記コンテンツ配向選択モジュールは、前記ユーザ配向
決定モジュールに接続され、前記ユーザが前記第1のユーザ配向にあるとき、前記コンテンツの第1の縁が前記ユーザに近くなるように、前記第1のディスプレイエリアに対して第1のコンテンツ配向において前記コンテンツを表示し、前記ユーザが前記第2のユーザ配向にあるときに前記第1の縁がユーザのより近くに回転され、前記コンテンツが、前記第1のコンテンツ配向から第2のコンテンツ配向に、前記第1のディスプレイエリアに対して回転されるように、前記第1のディスプレイエリアに対して前記第2のコンテンツ配向において前記コンテンツを表示する、コンテンツ配向選択モジュールと
を備える、拡張現実ビューア。
【請求項2】
ユーザの配向を示すユーザ配向ベクトルを決定する前記ユーザ配向決定モジュールはさらに、
前記コンテンツの前記第1の縁に対するコンテンツ配向ベクトルを計算するためのコンテンツベクトル計算機を備え、前記コンテンツ配向選択モジュールは、前記ユーザ配向ベクトルと前記コンテンツ配向ベクトルとのドット積を決定し、前記第2のコンテンツ配向および前記第1のコンテンツ配向における前記ドット積の大きさに基づいて、前記第1のコンテンツ配向から前記第2のコンテンツ配向に、前記コンテンツを回転させる、請求項1に記載の拡張現実ビューア。
【請求項3】
前記コンテンツ配向ベクトルは、前記コンテンツの前記第1の縁から延在し、前記コンテンツは、前記ドット積が前記第1のコンテンツ配向より前記第2のコンテンツ配向において大きくなると、前記第1のコンテンツ配向から前記第2のコンテンツ配向に回転する、請求項2に記載の拡張現実ビューア。
【請求項4】
前記コンテンツをサイズ変更し、前記第1のディスプレイエリアを前記第1のコンテンツ配向および前記第2のコンテンツ配向内に適合させるサイズ決定モジュールをさらに備える、請求項1に記載の拡張現実ビューア。
【請求項5】
前記コンテンツは、前記第1のコンテンツ配向および前記第2のコンテンツ配向において、同一アスペクト比を有する、請求項4に記載の拡張現実ビューア。
【請求項6】
前記第1のディスプレイエリアを決定するためのディスプレイエリア抽出モジュールをさらに備える、請求項1に記載の拡張現実ビューア。
【請求項7】
前記ディスプレイエリア抽出モジュールは、第2のディスプレイエリアを決定し、前記第1のディスプレイエリアおよび前記第2のディスプレイエリアに対するユーザの第1の配向を決定するための
前記ユーザ配向決定モジュールはさらに、
それぞれのディスプレイエリアに対する法線が前記ユーザの前記第1の配向とより反対に指向されていることに基づいて、前記第1のディスプレイエリアと前記第2のディスプレイエリアとの間の好ましいディスプレイエリアを選択するためのディスプレイエリア選択モジュールを備え、前記プロジェクタは、前記ユーザが前記実世界オブジェクトを視認している間、前記好ましいディスプレイエリアの限局域内において、
前記コンテンツを前記ディスプレイを通して前記ユーザに表示する、請求項6に記載の拡張現実ビューア。
【請求項8】
拡張現実視認方法であって、
プロセッサによって、第1のディスプレイエリアに対するユーザの第1のユーザ配向を決定することと、
前記ユーザが前記第1のユーザ配向にあるとき、前記プロセッサによって、ディスプレイに対する第1のコンテンツ配向を決定することと、
前記プロセッサによって、前記第1のユーザ配向にある間、前記ユーザが前記ディスプレイを通して実世界オブジェクトを視認している間、前記第1のディスプレイエリアの限局域内において、前記第1のコンテンツ配向におけるコンテンツをディスプレイを通して前記ユーザに表示することと、
前記プロセッサによって、前記第1のディスプレイエリアに対する前記ユーザの第2のユーザ配向を決定することと、
前記ユーザが前記第2のユーザ配向にあるとき、前記プロセッサによって、前記ディスプレイに対する第2のコンテンツ配向を決定することと、
前記プロセッサによって、前記ユーザが前記第2のユーザ配向から前記ディスプレイを通して実世界オブジェクトを視認している間、前記
第1のディスプレイエリアの限局域内において、前記第2のコンテンツ配向におけるコンテンツをディスプレイを通して前記ユーザに表示することであって、前記コンテンツは、前記第1のコンテンツ配向から前記第2のコンテンツ配向に、前記第1のディスプレイエリアに対して回転される、ことと
を含む、方法。
【請求項9】
拡張現実ビューアであって、
ユーザに実世界オブジェクトが見えることを可能にするディスプレイと、
コンテンツを保持するためのデータチャネルと、
第1のディスプレイエリアおよび第2のディスプレイエリアを決定するためのディスプレイエリア抽出モジュールと、
前記第1のディスプレイエリアおよび前記第2のディスプレイエリアに対するユーザの第1の配向を決定するためのユーザ配向決定モジュールと、
ディスプレイエリア選択モジュールであって、前記ディスプレイエリア選択モジュールは、それぞれのディスプレイエリアに対する法線が前記ユーザの前記第1の配向とより反対に指向されていることに基づいて、前記第1のディスプレイエリアと前記第2のディスプレイエリアとの間の好ましいディスプレイエリアを選択する、ディスプレイエリア選択モジュールと、
プロジェクタであって、前記プロジェクタは、前記ユーザが前記実世界オブジェクトを視認している間、前記好ましいディスプレイエリアの限局域内において、前記コンテンツを前記ディスプレイを通して前記ユーザに表示する、プロジェクタと
を備える、拡張現実ビューア。
【請求項10】
前記ユーザの前記第1の配向を示す第1のユーザ配向ベクトルを決定する前記ユーザ配向決定モジュールはさらに、
前記第1のディスプレイエリアの配向を示す第1のディスプレイエリア配向ベクトルおよび前記第2のディスプレイエリアの配向を示す第2のディスプレイエリア配向ベクトルを計算するためのディスプレイエリアベクトル計算機を備え、前記ディスプレイエリア選択モジュールは、前記第1のユーザ配向ベクトルと前記第1のディスプレイエリア配向ベクトルとのドット積および前記第1のユーザ配向ベクトルと前記第2のディスプレイエリア配向ベクトルとのドット積を決定し、前記第1のユーザ配向ベクトルと前記第1のディスプレイエリア配向ベクトルとのドット積および第1のユーザ配向ベクトルと前記第2のディスプレイエリア配向ベクトルとのドット積の相対的大きさに基づいて、前記好ましいディスプレイエリアを選択する、請求項9に記載の拡張現実ビューア。
【請求項11】
前記第1のディスプレイエリア配向ベクトルは、前記第1のディスプレイエリアに対する法線方向にあり、前記第2のディスプレイエリア配向ベクトルは、前記第2のディスプレイエリアに対する法線方向にあり、前記好ましいディスプレイエリアは、大きさが最大の負の前記ドット積に基づいて選択される、請求項10に記載の拡張現実ビューア。
【請求項12】
前記
ユーザ配向決定モジュールは、前記ユーザの第2の配向を示す第2のユーザ配向ベクトルを決定し、前記ディスプレイエリア選択モジュールは、前記第2のユーザ配向ベクトルと前記第1のディスプレイエリア配向ベクトルとのドット積および前記第2のユーザ配向ベクトルと前記第2のディスプレイエリア配向ベクトルとのドット積を決定し、前記第2のユーザ配向ベクトルと前記第1のディスプレイエリア配向ベクトルとのドット積および前記第2のユーザ配向ベクトルと前記第2のディスプレイエリア配向ベクトルとのドット積の相対的大きさに基づいて、前記好ましいディスプレイエリアを選択する、請求項
10または11に記載の拡張現実ビューア。
【請求項13】
前記ユーザは、前記ユーザの前記第1の配向が前記ユーザの前記第2の配向に変化するとき、前記第1のディスプレイエリアおよび前記第2のディスプレイエリアに対して同一位置のままである、請求項12に記載の拡張現実ビューア。
【請求項14】
前記ユーザは、前記ユーザの前記第1の配向が前記ユーザの前記第2の配向に変化するとき、前記第1のディスプレイエリアおよび前記第2のディスプレイエリアに対して第1の位置から第2の位置に移動する、請求項12に記載の拡張現実ビューア。
【請求項15】
前記好ましいディスプレイエリアは、
ユーザ配向ベクトルが前記第1のユーザ配向ベクトルから前記第2のユーザ配向ベクトルに変化するとき、同一のままである、請求項12に記載の拡張現実ビューア。
【請求項16】
前記好ましいディスプレイエリアは、
ユーザ配向ベクトルが前記第1のユーザ配向ベクトルから前記第2のユーザ配向ベクトルに変化するとき、前記第1のディスプレイエリアから前記第2のディスプレイエリアに変化する、請求項12に記載の拡張現実ビューア。
【請求項17】
前記好ましいディスプレイエリア内で前記コンテンツをサイズ変更し、前記第2のディスプレイエリアを適合させるサイズ決定モジュールをさらに備える、請求項12に記載の拡張現実ビューア。
【請求項18】
前記コンテンツは、前記第1のディスプレイエリアおよび前記第2のディスプレイエリア内に同一アスペクト比を有する、請求項17に記載の拡張現実ビューア。
【請求項19】
拡張現実視認方法であって、
プロセッサによって、第1のディスプレイエリアおよび第2のディスプレイエリアを決定することと、
ユーザが第1の場所にあるとき、前記プロセッサによって、前記第1のディスプレイエリアおよび前記第2のディスプレイエリアに対する前記ユーザの第1の配向を決定することと、
前記プロセッサによって、それぞれのディスプレイエリアに対する法線が前記ユーザの前記第1の場所に向かってより指向されていることに基づいて、前記第1のディスプレイエリアと前記第2のディスプレイエリアとの間の好ましいディスプレイエリアを選択することと、
前記プロセッサによって、前記ユーザが前記第1の場所から
ディスプレイを通して実世界オブジェクトを視認している間、前記好ましいディスプレイエリアの限局域内において、コンテンツを
前記ディスプレイを通して前記ユーザに表示することと
を含む、方法。
【請求項20】
拡張現実ビューアであって、
ユーザの配向を示す第1のベクトルを決定するための環境計算ユニットと、
ディスプレイエリアの配向またはコンテンツの配向を示す第2のベクトルを計算するためのベクトル計算機と、
前記第1のベクトルと前記第2のベクトルとのドット積を計算するための選択モジュールと、
コンテンツを保持するためのデータチャネルと、
前記ドット積に基づいて前記コンテンツの設置を決定するためのコンテンツレンダリングモジュールと、
前記ユーザに実世界オブジェクトが見えることを可能にするディスプレイと、
前記ユーザが前記ディスプレイを通して前記実世界オブジェクトを視認している間、前記コンテンツを前記ディスプレイを通して前記ユーザに表示するプロジェクタであって、前記コンテンツは、前記コンテンツレンダリングモジュールによって決定された前記設置に基づいて表示されている、プロジェクタと
を備える、拡張現実ビューア。
【請求項21】
拡張現実視認方法であって、
プロセッサによって、ユーザの配向を示す第1のベクトルを決定することと、
前記プロセッサによって、ディスプレイエリアの配向またはコンテンツの配向を示す第2のベクトルを計算することと、
前記プロセッサによって、前記第1のベクトルと前記第2のベクトルとのドット積を計算することと、
前記プロセッサによって、前記ドット積に基づいて、コンテンツの設置を決定することと、
前記プロセッサによって、前記ユーザが
ディスプレイを通して実世界オブジェクトを視認している間、前記コンテンツを
前記ディスプレイを通して前記ユーザに表示することであって、前記コンテンツは、前記プロセッサによって決定された前記設置に基づいて表示されている、ことと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、その全てが、参照することによってその全体として本明細書に組み込まれる、2018年6月8日に出願された、米国仮特許出願第62/682,788号の優先権を主張する。
【0002】
1)発明の分野
本発明は、拡張現実ビューアおよび拡張現実視認方法に関する。
【背景技術】
【0003】
2)関連技術の議論
現代のコンピューティングおよびディスプレイ技術は、「拡張現実」ビューアの開発を促進している。拡張現実ビューアは、ユーザに、左眼に1つおよび右眼に1つの2つの画像を提示する、ウェアラブルデバイスである。眼毎の画像内のオブジェクトは、若干異なる視点でレンダリングされ、脳が、オブジェクトを3次元オブジェクトとして処理することを可能にする。ビューアが移動するにつれて、画像が常に視点を変化させるとき、合成3次元コンテンツの周囲の移動が、シミュレートされ得る。
【0004】
拡張現実ビューアは、通常、ユーザの周囲の実際の世界の可視化に対する拡張としてのデジタルまたは仮想画像情報の提示を可能にする、技術を含む。1つの実装では、仮想画像情報は、ユーザが、その頭部と、その頭部に伴って、拡張現実ビューアを移動させる場合、実世界オブジェクトがそのビュー内で偏移する間、ユーザが彼らの正面の定常位置に留まる画像を提示されるように、拡張現実ビューアに対して静的場所に提示される。これは、ユーザに、仮想画像情報が実世界オブジェクトに対して固定されないが、代わりに、ビューアの視点内で固定される、外観を与える。他の実装では、ユーザがその頭部を移動させるとき、仮想画像情報を実世界オブジェクトに対して定常位置に保つ技術が、存在する。後者のシナリオでは、ユーザは、実世界オブジェクトに対する仮想画像情報の初期設置のある程度の制御を与えられ得る。
【発明の概要】
【課題を解決するための手段】
【0005】
本発明は、ユーザに実世界オブジェクトが見えることを可能にする、ディスプレイと、コンテンツを保持するためのデータチャネルと、第1のディスプレイエリアに対するユーザの第1のユーザ配向を決定し、第1のディスプレイエリアに対するユーザの第2のユーザ配向を決定するためのユーザ配向決定モジュールと、データチャネルに接続され、ユーザが実世界オブジェクトを視認している間、第1のディスプレイエリアの限局域内において、コンテンツをディスプレイを通してユーザに表示する、プロジェクタと、表面抽出モジュールおよびユーザ配向モジュールに接続され、ユーザが第1のユーザ配向にあるとき、コンテンツの近縁がユーザに近くなるように、第1のディスプレイエリアに対して第1のコンテンツ配向においてコンテンツを表示し、ユーザが第2のユーザ配向にあるとき、近縁がユーザのより近くに回転され、コンテンツが、第1のコンテンツ配向から第2のコンテンツ配向に、第1のディスプレイエリアに対して回転されるように、第1のディスプレイエリアに対して第2のコンテンツ配向においてコンテンツを表示する、コンテンツ配向選択モジュールとを含む、拡張現実ビューアを提供する。
【0006】
本発明はさらに、プロセッサによって、第1のディスプレイエリアに対するユーザの第1のユーザ配向を決定するステップ、ユーザが第1の配向にあるときプロセッサによって、ディスプレイに対する第1のコンテンツ配向を決定するステップと、プロセッサによって、第1のユーザ配向にある間、ユーザがディスプレイを通して実世界オブジェクトを視認している間、第1のディスプレイエリアの限局域内において、第1のコンテンツ配向におけるコンテンツをディスプレイを通してユーザに表示するステップと、プロセッサによって、第1のディスプレイエリアに対するユーザの第2のユーザ配向を決定するステップと、ユーザが第2の場所にあるとき、プロセッサによって、ディスプレイに対する第2のコンテンツ配向を決定するステップと、プロセッサによって、ユーザが第2の場所からディスプレイを通して実世界オブジェクトを視認している間、ディスプレイエリアの限局域内において、第2のコンテンツ配向におけるコンテンツをディスプレイを通してユーザに表示するステップであって、コンテンツは、第1のコンテンツ配向から第2のコンテンツ配向に、第1のディスプレイエリアに対して回転される、ステップとを含む、拡張現実視認方法を提供する。
【0007】
本発明はまた、ユーザに実世界オブジェクトが見えることを可能にする、ディスプレイと、コンテンツを保持するためのデータチャネルと、第1の表面エリアおよび第2の表面エリアを決定するための表面エリア抽出モジュールと、第1の表面エリアおよび第2の表面エリアに対するユーザの第1の配向を決定するためのユーザ配向決定モジュールと、個別の表面エリアに対する法線がユーザの第1のユーザ配向とより反対に指向されていることに基づいて第1の表面エリアと第2の表面エリアとの間の好ましい表面エリアを選択するための表面エリア選択モジュールと、ユーザが実世界オブジェクトを視認している間、好ましい表面エリアの限局域内において、コンテンツをディスプレイを通してユーザに表示する、プロジェクタとを含む、拡張現実ビューアを提供する。
【0008】
本発明はさらに、プロセッサによって、第1の表面エリアおよび第2の表面エリアを決定するステップと、プロセッサによって、第1の表面エリアおよび第2の表面エリアに対するユーザの第1の配向を決定するステップと、プロセッサによって、個別の表面エリアに対する法線がユーザの第1の場所に向かってより指向されていることに基づいて、第1の表面エリアと第2の表面エリアとの間の好ましい表面エリアを選択するステップと、プロセッサによって、ユーザが第1の場所からディスプレイを通して実世界オブジェクトを視認している間、好ましい表面エリアの限局域内において、コンテンツをディスプレイを通してユーザに表示するステップとを含む、拡張現実視認方法を提供する。
【0009】
本発明はまた、ユーザの配向を示す第1のベクトルを決定するための環境計算ユニットと、第2のベクトルを計算するためのベクトル計算機と、第1のベクトルと第2のベクトルのドット積を計算するための選択モジュールと、コンテンツを保持するためのデータチャネルと、ドット積に基づいて、コンテンツの設置を決定するためのコンテンツレンダリングモジュールと、ユーザに実世界オブジェクトが見えることを可能にする、ディスプレイと、ユーザがディスプレイを通して実世界オブジェクトを視認している間、コンテンツをディスプレイを通してユーザに表示する、プロジェクタであって、コンテンツは、コンテンツレンダリングモジュールによって決定された設置に基づいて表示されている、プロジェクタとを含む、拡張現実ビューアを提供する。
【0010】
本発明はさらに、プロセッサによって、ユーザの配向を示す第1のベクトルを決定するステップと、プロセッサによって、第2のベクトルを計算するステップと、プロセッサによって、第1のベクトルと第2のベクトルのドット積を計算するステップと、プロセッサによって、ドット積に基づいて、コンテンツの設置を決定するステップと、プロセッサによって、ユーザがディスプレイを通して実世界オブジェクトを視認している間、コンテンツをディスプレイを通してユーザに表示するステップであって、コンテンツは、コンテンツレンダリングモジュールによって決定された設置に基づいて表示されている、ステップとを含む、拡張現実視認方法を提供する。
本発明は、例えば、以下の項目を提供する。
(項目1)
拡張現実ビューアであって、
ユーザに実世界オブジェクトが見えることを可能にするディスプレイと、
コンテンツを保持するためのデータチャネルと、
ユーザ配向決定モジュールであって、前記ユーザ配向決定モジュールは、第1のディスプレイエリアに対するユーザの第1のユーザ配向を決定し、前記第1のディスプレイエリアに対する前記ユーザの第2のユーザ配向を決定する、ユーザ配向決定モジュールと、
プロジェクタであって、前記プロジェクタは、前記データチャネルに接続され、前記ユーザが前記実世界オブジェクトを視認している間、前記第1のディスプレイエリアの限局域内において、前記コンテンツを前記ディスプレイを通してユーザに表示する、プロジェクタと、
コンテンツ配向選択モジュールであって、前記コンテンツ配向選択モジュールは、表面抽出モジュールおよびユーザ配向モジュールに接続され、前記ユーザが前記第1のユーザ配向にあるとき、前記コンテンツの近縁が前記ユーザに近くなるように、前記第1のディスプレイエリアに対して第1のコンテンツ配向において前記コンテンツを表示し、前記近縁が前記ユーザが前記第2のユーザ配向にあるとき、ユーザのより近くに回転され、前記コンテンツが、前記第1のコンテンツ配向から前記第2のコンテンツ配向に、前記第1のディスプレイエリアに対して回転されるように、前記第1のディスプレイエリアに対して第2のコンテンツ配向において前記コンテンツを表示する、コンテンツ配向選択モジュールと
を備える、拡張現実ビューア。
(項目2)
ユーザの配向を示すユーザ配向ベクトルを決定する前記ユーザ配向決定モジュールはさらに、
前記コンテンツの近縁に対するコンテンツ配向ベクトルを計算するためのコンテンツベクトル計算機を備え、前記コンテンツ配向選択モジュールは、前記ユーザ配向ベクトルと前記コンテンツ配向ベクトルとのドット積を決定し、前記第2の配向および前記第1の配向における前記ドット積の大きさに基づいて、前記第1の配向から前記第2の配向に、前記コンテンツを回転させる、項目1に記載の拡張現実ビューア。
(項目3)
前記コンテンツ配向ベクトルは、前記コンテンツの近縁から延在し、前記コンテンツは、前記ドット積が前記第1のコンテンツ配向より前記第2のコンテンツ配向において大きくなると、前記第1のコンテンツ配向から前記第2のコンテンツ配向に回転する、項目2に記載の拡張現実ビューア。
(項目4)
前記コンテンツをサイズ変更し、前記表面エリアを前記第1の配向および前記第2の配向内に適合させるサイズ決定モジュールをさらに備える、項目1に記載の拡張現実ビューア。
(項目5)
前記コンテンツは、前記第1の配向および前記第2の配向において、同一アスペクト比を有する、項目4に記載の拡張現実ビューア。
(項目6)
前記第1のディスプレイエリアを決定するための表面エリア抽出モジュールをさらに備える、項目1に記載の拡張現実ビューア。
(項目7)
前記表面エリア抽出モジュールは、第2の表面エリアを決定し、第1の表面エリアおよび前記第2の表面エリアに対するユーザの第1の配向を決定するためのユーザ配向決定モジュールはさらに、
個別の表面エリアに対する法線が前記ユーザの第1のユーザ配向とより反対に指向されていることに基づいて、前記第1の表面エリアと前記第2の表面エリアとの間の好ましい表面エリアを選択するための表面エリア選択モジュールを備え、前記プロジェクタは、前記ユーザが前記実世界オブジェクトを視認している間、前記好ましい表面エリアの限局域内において、コンテンツを前記ディスプレイを通してユーザに表示する、項目6に記載の拡張現実ビューア。
(項目8)
拡張現実視認方法であって、
プロセッサによって、第1のディスプレイエリアに対するユーザの第1のユーザ配向を決定することと、
ユーザが第1の配向にあるとき、前記プロセッサによって、ディスプレイに対する第1のコンテンツ配向を決定することと、
前記プロセッサによって、前記第1のユーザ配向にある間、前記ユーザが前記ディスプレイを通して実世界オブジェクトを視認している間、前記第1のディスプレイエリアの限局域内において、前記第1のコンテンツ配向におけるコンテンツをディスプレイを通してユーザに表示することと、
前記プロセッサによって、前記第1のディスプレイエリアに対する前記ユーザの第2のユーザ配向を決定することと、
前記ユーザが第2の場所にあるとき、前記プロセッサによって、前記ディスプレイに対する第2のコンテンツ配向を決定することと、
前記プロセッサによって、前記ユーザが前記第2の場所から前記ディスプレイを通して実世界オブジェクトを視認している間、前記ディスプレイエリアの限局域内において、前記第2のコンテンツ配向におけるコンテンツをディスプレイを通してユーザに表示することであって、前記コンテンツは、前記第1のコンテンツ配向から前記第2のコンテンツ配向に、前記第1のディスプレイエリアに対して回転される、ことと
を含む、方法。
(項目9)
拡張現実ビューアであって、
ユーザに実世界オブジェクトが見えることを可能にするディスプレイと、
コンテンツを保持するためのデータチャネルと、
第1の表面エリアおよび第2の表面エリアを決定するための表面エリア抽出モジュールと、
前記第1の表面エリアおよび前記第2の表面エリアに対する第1のユーザの配向を決定するためのユーザ配向決定モジュールと、
表面エリア選択モジュールであって、前記表面エリア選択モジュールは、個別の表面エリアに対する法線が前記ユーザの第1のユーザ配向とより反対に指向されていることに基づいて、前記第1の表面エリアと前記第2の表面エリアとの間の好ましい表面エリアを選択する、表面エリア選択モジュールと、
プロジェクタであって、前記プロジェクタは、前記ユーザが前記実世界オブジェクトを視認している間、前記好ましい表面エリアの限局域内において、コンテンツを前記ディスプレイを通してユーザに表示する、プロジェクタと
を備える、拡張現実ビューア。
(項目10)
前記ユーザの第1のユーザ配向を示す第1のユーザ配向ベクトルを決定する前記ユーザ配向決定モジュールはさらに、
前記第1の表面エリアの配向を示す第1の表面エリア配向ベクトルおよび前記第2の表面エリアの配向を示す第2の表面エリア配向ベクトルを計算するための表面エリアベクトル計算機を備え、前記表面エリア選択モジュールは、前記第1のユーザ配向ベクトルと前記第1の表面エリア配向ベクトルとのドット積および前記第1のユーザ配向ベクトルと前記第2の表面エリア配向ベクトルとのドット積を決定し、前記第1のユーザ配向ベクトルと前記第1の表面エリア配向ベクトルとのドット積および第1のユーザ配向ベクトルと前記第2の表面エリア配向ベクトルとのドット積の相対的大きさに基づいて、前記好ましい表面エリアを選択する、項目9に記載の拡張現実ビューア。
(項目11)
前記第1の表面エリア配向ベクトルは、前記第1の表面エリアに対する法線方向にあり、前記第2の表面エリア配向ベクトルは、前記第2の表面エリアに対する法線方向にあり、前記好ましい表面エリアは、大きさが最大の負の前記ドット積に基づいて選択される、項目10に記載の拡張現実ビューア。
(項目12)
前記ユーザ位置およびユーザ配向決定モジュールは、前記ユーザの第2の配向を示す第2のユーザ配向ベクトルを決定し、前記表面エリア選択モジュールは、前記第2のユーザ配向ベクトルと前記第1の表面エリア配向ベクトルとのドット積および前記第2のユーザ配向と前記第2の表面エリア配向ベクトルとのドット積を決定し、前記第2のユーザ配向ベクトルと前記第1の表面エリア配向ベクトルとのドット積および前記第2のユーザ配向ベクトルと前記第2の表面エリア配向ベクトルとのドット積の相対的大きさに基づいて、前記好ましい表面エリアを選択する、項目9に記載の拡張現実ビューア。
(項目13)
前記ユーザは、前記第1のユーザ配向が前記第2のユーザ配向に変化するとき、前記第1の表面エリアおよび前記第2の表面エリアに対して同一位置のままである、項目12に記載の拡張現実ビューア。
(項目14)
前記ユーザは、前記第1のユーザ配向が前記第2のユーザ配向に変化するとき、前記第1の表面エリアおよび前記第2の表面エリアに対して第1の位置から第2の位置に移動する、項目12に記載の拡張現実ビューア。
(項目15)
前記好ましい表面エリアは、前記ユーザ配向ベクトルが前記第1のユーザ配向ベクトルから前記第2のユーザ配向ベクトルに変化するとき、同一のままである、項目12に記載の拡張現実ビューア。
(項目16)
前記好ましい表面は、前記ユーザ配向ベクトルが前記第1のユーザ配向ベクトルから前記第2のユーザ配向ベクトルに変化するとき、前記第1の表面から前記第2の表面に変化する、項目12に記載の拡張現実ビューア。
(項目17)
前記好ましい表面内で前記コンテンツをサイズ変更し、前記第2の表面エリアを適合させるサイズ決定モジュールをさらに備える、項目12に記載の拡張現実ビューア。
(項目18)
前記コンテンツは、前記第1の表面エリアおよび前記第2の表面エリア内に同一アスペクト比を有する、項目17に記載の拡張現実ビューア。
(項目19)
拡張現実視認方法であって、
プロセッサによって、第1の表面エリアおよび第2の表面エリアを決定することと、
前記プロセッサによって、前記第1の表面エリアおよび前記第2の表面エリアに対する第1のユーザの配向を決定することと、
前記プロセッサによって、個別の表面エリアに対する法線がユーザの第1の場所に向かってより指向されていることに基づいて、前記第1の表面エリアと前記第2の表面エリアとの間の好ましい表面エリアを選択することと、
前記プロセッサによって、前記ユーザが前記第1の場所から前記ディスプレイを通して実世界オブジェクトを視認している間、前記好ましい表面エリアの限局域内において、コンテンツをディスプレイを通してユーザに表示することと
を含む、方法。
(項目20)
拡張現実ビューアであって、
ユーザの配向を示す第1のベクトルを決定するための環境計算ユニットと、
第2のベクトルを計算するためのベクトル計算機と、
前記第1のベクトルと前記第2のベクトルとのドット積を計算するための選択モジュールと、
コンテンツを保持するためのデータチャネルと、
前記ドット積に基づいて前記コンテンツの設置を決定するためのコンテンツレンダリングモジュールと、
前記ユーザに実世界オブジェクトが見えることを可能にするディスプレイと、
前記ユーザが前記ディスプレイを通して実世界オブジェクトを視認している間、コンテンツを前記ディスプレイを通してユーザに表示するプロジェクタであって、前記コンテンツは、前記コンテンツレンダリングモジュールによって決定された前記設置に基づいて表示されている、プロジェクタと
を備える、拡張現実ビューア。
(項目21)
拡張現実視認方法であって、
プロセッサによって、ユーザの配向を示す第1のベクトルを決定することと、
前記プロセッサによって、第2のベクトルを計算することと、
前記プロセッサによって、前記第1のベクトルと前記第2のベクトルとのドット積を計算することと、
前記プロセッサによって、前記ドット積に基づいて、コンテンツの設置を決定することと、
前記プロセッサによって、前記ユーザが前記ディスプレイを通して実世界オブジェクトを視認している間、前記コンテンツをディスプレイを通してユーザに表示することであって、前記コンテンツは、前記コンテンツレンダリングモジュールによって決定された前記設置に基づいて表示されている、ことと
を含む、方法。
【0011】
本発明はさらに、付随の図面を参照して、一例として説明される。
【図面の簡単な説明】
【0012】
【
図1A】
図1Aは、コンピュータからのコンテンツで拡張された実世界オブジェクトが見えるように、ユーザによって使用される、拡張現実ビューアのブロック図である。
【0013】
【0014】
【
図2】
図2は、2次元コンテンツを視認している間の、3次元環境内で拡張現実ビューアを装着している、ユーザを図示する、斜視図である。
【0015】
【
図3】
図3は、拡張現実ビューアを用いて作成された、3次元データマップを図示する、斜視図である。
【0016】
【
図4】
図4は、ユーザ配向ベクトルの決定、表面
エリアの抽出、および表面
エリア配向ベクトルの計算を図示する、斜視図である。
【0017】
【
図5】
図5は、表面
エリアのうちの1つ上へのコンテンツのレンダリングの設置を図示する、
図4に類似する図である。
【0018】
【
図6】
図6は、ユーザ配向ベクトルの変化を図示する、
図5に類似する図である。
【0019】
【
図7】
図7は、ユーザ配向ベクトルの変化に起因する、コンテンツのレンダリングの設置を図示する、
図6に類似する図である。
【0020】
【
図8】
図8は、ユーザの移動に起因する、ユーザ配向ベクトルの変化を図示する、
図7に類似する図である。
【0021】
【
図9】
図9は、ユーザ配向ベクトルの変化に起因する、コンテンツのレンダリングの回転を図示する、
図8に類似する図である。
【0022】
【
図10】
図10は、ユーザの移動に起因する、ユーザ配向ベクトルの変化を図示する、
図9に類似する図である。
【0023】
【
図11】
図11は、ユーザ配向ベクトルの変化に起因する、コンテンツのレンダリングの回転を図示する、
図10に類似する図である。
【0024】
【
図12】
図12は、ユーザの移動に起因する、ユーザ配向ベクトルの変化を図示する、
図11に類似する図である。
【0025】
【
図13】
図13は、ユーザ配向ベクトルの変化に起因する、コンテンツのレンダリングの回転を図示する、
図12に類似する図である。
【0026】
【
図14】
図14は、ユーザが見上げることに起因する、ユーザ配向ベクトルの変化を図示する、
図13に類似する図である。
【0027】
【
図15】
図15は、ユーザ配向ベクトルの変化に起因する、別の表面
エリア上へのコンテンツのレンダリングの設置を図示する、
図14に類似する図である。
【0028】
【
図16】
図16は、先行図の方法を行うためのアルゴリズムの機能を図示する、フローチャートである。
【0029】
【
図17】
図17は、3次元コンテンツを視認している間の、3次元環境内で拡張現実ビューアを装着しているユーザを図示する、斜視図である。
【0030】
【0031】
【
図19】
図19は、ユーザがディスプレイ表面の周囲で時計回り方向に回転した、
図18に類似する図である。
【0032】
【0033】
【
図21】
図21は、垂直表面上のコンテンツを視認している間のユーザを図示する、斜視図である。
【0034】
【0035】
【
図23】
図23は、コンテンツが反時計回り方向に回転した、
図2に類似する図である。
【0036】
【
図24】
図24は、本発明の一実施形態による、本発明のシステム内で用途を見出し得る、コンピュータの形態における機械のブロック図である。
【発明を実施するための形態】
【0037】
用語「表面」および「表面エリア」は、本明細書では、ディスプレイエリアとして使用のために好適な2次元エリアを説明するために使用される。本発明の側面は、他のディスプレイエリア、例えば、3次元表面エリアであるディスプレイエリアまたは3次元体積内のスライスを表すディスプレイエリアが使用されるときも用途を見出し得る。
【0038】
付随の図面の
図1Aは、ユーザが、コンピュータまたはコンピュータネットワーク上に記憶される、それによって受信される、または別様に、それによって生成される、種類のコンテンツ16で拡張される、実世界表面および実世界オブジェクト14を含む、実世界場面の直接ビューを見るために使用する、拡張現実ビューア12を図示する。
【0039】
拡張現実ビューア12は、ディスプレイ18と、データチャネル20と、コンテンツレンダリングモジュール22と、プロジェクタ24と、深度センサ28と、加速度計30等の位置センサと、カメラ32と、環境計算ユニット34と、コンテンツ設置およびコンテンツ配向ユニット36とを含む。
【0040】
データチャネル20は、コンテンツ16を保持する、記憶デバイスに接続されてもよい、またはコンテンツ16をリアルタイムで提供する、サービスに接続されてもよい。コンテンツ16は、例えば、写真等の静的画像、コンピュータディスプレイ上に表示される、ウェブページ、テキストドキュメント、または他のデータ等、ある時間周期にわたって静的なままであって、ユーザによって操作され得る、画像、またはビデオまたはアニメーション等の動画であってもよい。コンテンツ16は、2次元、3次元、静的、動的、テキスト、画像、ビデオ等であってもよい。コンテンツ16は、ゲーム、書籍、映画、ビデオクリップ、広告、アバタ、図面、アプリケーション、ウェブページ、装飾、スポーツゲーム、リプレイ、3-Dモデル、または当業者によって理解されるであろうような任意の他のタイプのコンテンツを含んでもよい。
【0041】
コンテンツレンダリングモジュール22は、データチャネル20に接続され、コンテンツ16をデータチャネル20から受信する。コンテンツレンダリングモジュール22は、コンテンツ16を3次元視認のために好適な形態に変換する。ユーザの配向に応じて3次元空間内の2次元平面を視認する、またはユーザによって3次元内の3次元体積を視認するための種々の技法が、存在する。
【0042】
プロジェクタ24は、コンテンツレンダリングモジュール22に接続される。プロジェクタ24は、コンテンツレンダリングモジュール22によって生成されたデータを光に変換し、光をディスプレイ18に送達する。光は、ディスプレイ18からユーザの眼26に進行する。ユーザに3次元体験を提供するための種々の技法が、存在する。各眼は、異なる画像を提供され、画像内のオブジェクトは、3次元内に構築されるにつれてユーザによって知覚される。ユーザが、必ずしも、ディスプレイ18の平面にあるわけではなく、典型的には、ディスプレイ18の背後のある距離にある、ある被写界深度において、オブジェクトに合焦するための技法もまた、存在する。仮想コンテンツがある深度にあるように現れるように作成され得る、1つの方法は、実際の物理的オブジェクトからの光が眼に到達する方法を模倣するように、光線を発散させ、湾曲波面を形成することによるものである。眼は、次いで、遠近調節と呼ばれるプロセスにおいて、解剖学的水晶体の形状を変化させることによって、発散する光ビームを網膜上に合焦させる。異なる発散角度は、異なる深度を表し、導波管上の射出瞳エクスパンダ上の回折格子を使用して作成される。
【0043】
ディスプレイ18は、透明ディスプレイである。ディスプレイ18は、ユーザにディスプレイ18を通して実世界オブジェクト14が見えることを可能にする。ユーザは、したがって、拡張現実ビュー40を知覚し、3次元においてユーザに見える、実世界オブジェクト14は、プロジェクタ24からディスプレイ18を介してユーザに提供する、3次元画像で拡張される。
【0044】
深度センサ28およびカメラ32は、実世界オブジェクト14を捕捉するための位置に搭載される。深度センサ28は、典型的には、赤外線範囲内の電磁波を検出し、カメラ32は、可視光スペクトル内の電磁波を検出する。
図1Bにより明確に示されるように、1つを上回るカメラ32が、世界に面した位置において、拡張現実ビューア12のフレーム13上に搭載されてもよい。特定の実施形態では、4つのカメラ32が、フレーム13に搭載され、2つが、前方の世界に面した位置にあって、2つが、左および右側または斜めの世界に面した位置にある。複数のカメラ32の視野は、重複してもよい。深度センサ28およびカメラ32は、拡張現実ビューア12のフレーム13に対して静的位置に搭載される。深度センサ28およびカメラ32によって捕捉された画像の中心点は、常時、拡張現実ビューア12に対して同一の前方方向にある。
【0045】
加速度計30は、拡張現実ビューア12のフレームに対して定常位置に搭載される。加速度計30は、重力の方向を検出する。加速度計30は、地球の重力場に対する拡張現実ビューアの配向を決定するために使用されることができる。深度センサ28と、視覚的同時位置特定およびマッピング(「SLAM」)および慣性測定ユニット(「IMU」)入力に依拠する、頭部姿勢アルゴリズムの組み合わせによって、加速度計30は、拡張現実ビューア12が、重力の方向および拡張現実ビューア12に対する実世界オブジェクト14の場所を確立することを可能にする。
【0046】
カメラ32は、実世界オブジェクト14の画像を捕捉し、継続的ベースでの画像のさらなる処理は、実世界オブジェクト14に対する拡張現実ビューア12の移動を示す、データを提供する。深度センサ28、世界カメラ32、および加速度計30は、継続的ベースで重力に対する実世界オブジェクト14の場所を決定するため、重力およびマッピングされた実世界環境に対する拡張現実ビューア12の移動もまた、計算されることができる。
【0047】
図1Aでは、環境計算ユニット34は、環境マッピングモジュール44と、表面抽出モジュール46と、ビューア配向決定モジュール48とを含む。環境マッピングモジュール44は、1つ以上のセンサからの入力を受信してもよい。1つ以上のセンサは、例えば、深度センサ28と、1つ以上の世界カメラ32と、加速度計30とを含み、実世界表面およびオブジェクト14の場所を決定してもよい。表面抽出モジュール46は、環境マッピングモジュール44からのデータを受信し、環境内の平面表面を決定してもよい。ビューア配向決定モジュール48は、深度センサ28、カメラ32、および加速度計30に接続し、そこからの入力を受信し、実世界オブジェクト14および表面抽出モジュール46によって識別される表面に対するユーザのユーザ配向を決定する。
【0048】
コンテンツ設置およびコンテンツ配向ユニット36は、表面ベクトル計算機50と、表面選択モジュール52と、コンテンツサイズ決定モジュール54と、コンテンツベクトル計算機56と、コンテンツ配向選択モジュール58とを含む。表面ベクトル計算機50、表面選択モジュール52、およびコンテンツサイズ決定モジュール54は、順次、相互に接続されてもよい。表面選択モジュール52は、ビューア配向決定モジュール48に接続され、そこに入力を提供する。コンテンツベクトル計算機56は、コンテンツ16を受信することが可能であるように、データチャネル20に接続される。コンテンツ配向選択モジュール58は、コンテンツベクトル計算機56およびビューア配向決定モジュール48に接続され、そこからの入力を受信する。コンテンツサイズ決定モジュール54は、コンテンツ配向選択モジュール58に接続され、そこに入力を提供する。コンテンツレンダリングモジュール22は、コンテンツサイズ決定モジュール54に接続され、そこからの入力を受信する。
【0049】
図2は、3次元環境内で拡張現実ビューア12を装着している、ユーザ60を図示する。
【0050】
ベクトル62は、拡張現実ビューア12上の1つ以上のセンサによって検出されるような重力の方向を示す。ベクトル64は、ユーザ60の視点から右方向を示す。ユーザ配向ベクトル66は、ユーザ配向、本実施例では、ユーザ60のビューの中央における前方方向を示す。ユーザ配向ベクトル66はまた、
図1における深度センサ28およびカメラ32によって捕捉された画像の中心点までの方向を指す。
図1Bはさらに、右へのベクトル64と、ユーザ配向ベクトル66と、相互に直交する、デバイス直立ベクトル67とを含む、座標系63を示す。
【0051】
3次元環境は、例証として、水平表面70を伴うテーブル68と、表面72および74と、表面72および74をコンテンツの設置のために好適ではないものにし得る、障害物を提供する、オブジェクト76とを含む。例えば、持続表面72および74を途絶させる、オブジェクト76は、写真フレーム、鏡、壁内の亀裂、粗面テクスチャ、異なる着色エリア、表面内の穴、表面の突出部、または平面表面72、74に対する任意の他の非均一性を含み得る。対照的に、表面78および80は、その比較的に大サイズおよびユーザ60とのその近接度のため、コンテンツの設置のためにより好適であり得る。表示されているコンテンツのタイプに応じて、また、矩形寸法を有する表面を見出すことが有利であり得るが、正方形、三角形、円形、卵形、または多角形等の他の形状もまた、使用されてもよい。
【0052】
図3は、
図1における深度センサ28、加速度計30、および環境マッピングモジュール44の機能を図示する。深度センサ28は、3次元環境内のオブジェクトおよび表面を含む、全ての特徴の深度を捕捉する。環境マッピングモジュール44は、直接または間接的に、拡張現実ビューア12上の1つ以上のセンサからデータを受信する。例えば、深度センサ28および加速度計30は、3次元における3次元環境の深度をマッピングするための入力を環境マッピングモジュール44に提供してもよい。
【0053】
図3はまた、カメラ32およびビューア配向決定モジュール48の機能を図示する。カメラ32は、オブジェクト76および表面78の画像を捕捉する。ビューア配向決定モジュール48は、カメラ32からの画像を受信し、画像を処理し、ユーザ配向ベクトル66によって表されるようなユーザ60によって装着されている拡張現実ビューア12の配向を決定する。
【0054】
3次元環境をマッピングする他の方法、例えば、部屋内の定常位置に位置する、1つ以上のカメラの使用が、採用されてもよい。しかしながら、拡張現実ビューア12内の深度センサ28と環境マッピングモジュール44の統合は、より移動性の用途を提供する。
【0055】
図4は、
図1における表面抽出モジュール46の機能を図示する。表面抽出モジュール46は、
図3において作成された3次元マップを処理し、コンテンツ、本実施例では、2次元コンテンツの設置および視認のために好適な任意の表面が存在するかどうかを決定する。表面抽出モジュール46は、水平表面
エリア82と、2つの垂直表面
エリア84および86とを決定する。表面
エリア82、84、および86は、実表面ではなく、代わりに、3次元環境に配向される2次元平面表面を電子的に表す。データ表現である、表面
エリア82、84、および86は、それぞれ、
図1における実世界オブジェクト14の一部を形成する、
図2における実表面70、78、および80に対応する。
【0056】
図4は、立方体88と、立方体88の陰影90とを図示する。これらの要素は、作成者によって使用され、ビューアが、3次元空間を通した
図2におけるユーザ配向ベクトル66の変化およびユーザ60および拡張現実ビューア12の移動を追跡することを補助する。
【0057】
図4はまた、
図1における表面ベクトル計算機50の機能を図示する。表面ベクトル計算機50は、マッピングされた3次元環境の抽出された表面毎に、表面
エリア配向ベクトルを計算する。例えば、表面ベクトル計算機50は、表面
エリア82の平面に対して法線の表面
エリア配向ベクトル92を計算する。同様に、表面ベクトル計算機50は、表面
エリア84に対して法線の表面
エリア配向ベクトル94と、表面
エリア86に対して法線の表面
エリア配向ベクトル94とを計算する。
【0058】
その上に仮想コンテンツを表示するための表面の選択は、表面とユーザとの間の関係を計算する、表面選択モジュール52によって行われる。
図1Aにおける表面選択モジュール52は、ユーザ配向ベクトル66と表面
エリア配向ベクトル92のドット積を計算する。単位ベクトルaとbのドット積は、以下の方程式によって表される。
a・b=│a││b│cosθ [1]
式中、│a│=1
│b│=1
θは、単位ベクトルaとbとの間の角度である。
【0059】
ユーザ配向ベクトル66および表面エリア配向ベクトル92は、相互に直交し、これは、そのドット積がゼロであることを意味する。
【0060】
表面選択モジュール52はまた、ユーザ配向ベクトル66と表面エリア配向ベクトル94のドット積を計算する。ユーザ配向ベクトル66および表面エリア配向ベクトル94は、直交するため、そのドット積は、ゼロである。
【0061】
表面選択モジュール52はまた、ユーザ配向ベクトル66と表面
エリア配向ベクトル96のドット積を計算する。ユーザ配向ベクトル66および表面
エリア配向ベクトル96は、相互に対して180°であり、そのドット積は、-1である。表面
エリア配向ベクトル96を含む、ドット積は、3つのドット積のうち最も負であるため、表面選択モジュール52は、表面
エリア82、84、および86のうち、表面
エリア86が、コンテンツを表示するための好ましい表面
エリアであることを決定する。より負のドット積は、コンテンツがビューアに直接面するように配向されるであろう可能性がより高い。表面
エリア86は、垂直表面
エリアであるため、コンテンツ設置およびコンテンツ配向ユニット36は、
図1におけるコンテンツ配向選択モジュール58を呼び出さない。ドット積は、最良表面を選定するためにシステムによってまたは仮想コンテンツの必要性によって優先順位化され得る、多くの表面特性のうちの1つである。例えば、-1.0のドット積を有する、表面が、極小であって、ユーザから離れている場合、-0.8のドット積を有するが、大きく、ユーザの近くにある、表面より好ましくない場合がある。システムは、コンテンツを設置するとき、良好なコントラスト比性質を有し、ユーザにより容易に見えるであろう、表面を選定し得る。次に、コンテンツサイズ決定モジュール54が、表面
エリア86上に表示するためのコンテンツの適切なサイズを決定する。コンテンツは、最適アスペクト比、例えば、近縁上に16および側縁上に9のアスペクト比を有する。コンテンツサイズ決定モジュール54は、近縁と側縁の比率を使用して、コンテンツのサイズおよび形状を決定し、コンテンツを歪曲させないように、全ての視認角度において本アスペクト比を保存する。コンテンツサイズ決定モジュール54は、表面
エリア86内に適合するであろう最適アスペクト比を伴う、コンテンツの最適高さおよび幅を計算する。所与の実施例では、表面
エリア86の左縁と右縁との間の距離は、コンテンツのサイズを決定する。
【0062】
図5は、
図1におけるコンテンツレンダリングモジュール22およびプロジェクタ24の機能を図示する。コンテンツレンダリングモジュール22は、コンテンツサイズ決定モジュール54および表面選択モジュール52のサイズ決定に基づいて、その計算された配向におけるコンテンツ16をプロジェクタ24の中に提供する。ビューアは、コンテンツ16を、表面
エリア86上の3次元空間内に設置され、それと同一平面にある、レンダリング98として視認する。コンテンツ16は、表面
エリア82および84上にはレンダリングされない。全ての他の表面特性が等しいとすると、表面
エリア86は、ユーザ配向ベクトル66によって表されるようなユーザ配向のため、表面
エリア82および84と比較して、レンダリング98のための最適
エリアを提供する。レンダリング98は、ユーザ配向ベクトルがわずかな程度だけ変化するとき、表面
エリア86上で静的なままである。
図1Aにおけるビューア配向決定モジュール48が、ユーザ配向ベクトルが、所定の閾値度を上回って、例えば、5度変化したことを感知する場合、システムは、上記に説明されるように、全てのドット積の再計算に自動的に進み、必要な場合、ユーザへの表示のためにレンダリングされているコンテンツを再位置付けおよびサイズ変更する。代替として、システムは、定期的に、例えば、15秒毎に、上記に説明されるように、全てのドット積を再計算し、コンテンツを設置してもよい。
【0063】
代替として、ユーザは、その配向を変化させても、コンテンツが留まるようにエリア86を選択してもよい。
【0064】
図6では、ユーザ60は、その頭部の傾きを変化させる。その結果、ユーザ配向ベクトル66は、下向き方向100に回転する。新しいユーザ配向は、新しいユーザ配向ベクトル102によって表される。
図1Aおよび1Bにおけるカメラ32は、実世界オブジェクト14の画像を継続的に捕捉する。深度センサ28および加速度計30等の付加的センサもまた、継続的に捕捉し、更新された情報を提供してもよい。ビューア配向決定モジュール48は、画像を処理し、拡張現実ビューア12にオンボード搭載されるセンサによって捕捉された他のデータとともに、カメラ32のビュー内の実世界オブジェクト14の相対的移動を決定する。ビューア配向決定モジュール48は、次いで、そのような移動を処理し、
図5におけるユーザ配向ベクトル66から
図6におけるユーザ配向ベクトル102へのユーザ配向ベクトルの変化を決定する。システムは、通常、最も最適なドット積を伴う表面を選択するが、ジッタおよび処理が低減されるように、ドット積に関する許容可能なある程度の公差/範囲が存在してもよい。一例として、システムは、より最適である別のドット積が存在するとき、かつより最適であるドット積が、コンテンツが現在表示されている表面のドット積より少なくとも5パーセント良好である場合、コンテンツを移動させてもよい。
【0065】
ユーザが、その配向を変化させた後もコンテンツが留まるような表面86を選択しなかったと仮定する。表面選択モジュール52は、再び、3つのドット積、すなわち、ユーザ配向ベクトル102と表面エリア配向ベクトル92、ユーザ配向ベクトル102と表面エリア配向ベクトル94、およびユーザ配向ベクトル102と表面エリア配向ベクトル96との間のドット積を計算する。表面選択モジュール52は、次いで、最も負である、3つのドット積のうちの1つを決定する。本実施例では、ユーザ配向ベクトル102と表面エリア配向ベクトル92との間のドット積が、最も負である。表面選択モジュール52は、その関連付けられるドット積が表面エリア84および86に関してよりも負であるため、表面エリア82が好ましい表面であることを決定する。システムはまた、上記に説明されるように、他の要因も検討し得る。
【0066】
図1Aにおけるコンテンツ設置およびコンテンツ配向ユニット36は、コンテンツベクトル計算機56およびコンテンツ配向選択モジュール58を呼び出す。コンテンツ配向選択モジュール58の動作に続き、コンテンツサイズ決定モジュール54が、再び、呼び出される。
【0067】
コンテンツベクトル計算機56、コンテンツ配向選択モジュール58、およびコンテンツサイズ決定モジュール54の機能は、
図7の助けを借りてより詳しく図示される。
【0068】
図7は、コンテンツレンダリングモジュール22およびプロジェクタ24が、表面
エリア82内かつその同一平面にある、コンテンツ16のレンダリング104を作成することを図示する。表面
エリア86上のレンダリングは、もはやユーザ60に表示されない。
【0069】
レンダリング104は、遠縁106と、近縁108と、右縁110と、左縁112とを有する。
図1Aにおけるコンテンツベクトル計算機56は、コンテンツ配向ベクトル114を計算してもよい。コンテンツ配向ベクトル114は、近縁108から遠縁106まで延在し、近縁108および遠縁106の両方に直交する。
【0070】
コンテンツベクトル計算機によって行われる計算は、データチャネル上に提供される、コンテンツに依存する。いくつかのコンテンツは、コンテンツの近縁から遠縁まで延在する、コンテンツ配向ベクトルをすでに有している場合があり、その場合、コンテンツベクトル計算機56は、単に、コンテンツのコード内のコンテンツ配向ベクトルを識別および隔離する。他のインスタンスでは、コンテンツ配向ベクトルは、コンテンツと関連付けられ得、コンテンツベクトル計算機56は、コンテンツの近縁から遠縁まで延在するようにコンテンツ配向ベクトルを再配向する必要があり得る。他のインスタンスでは、コンテンツベクトル計算機56は、コンテンツ内のツールの設置等、画像分析等の他のデータに基づいて、コンテンツ配向ベクトルを生成しなくてもよい。
【0071】
コンテンツ配向選択モジュール58は、ユーザ配向ベクトル102とコンテンツ配向ベクトル114との間のドット積を計算する。ドット積は、4つのシナリオ、すなわち、コンテンツ配向ベクトル114が、
図7に示される方向に配向されるとき、コンテンツ配向ベクトル114が、右に90°配向されるとき、コンテンツ配向ベクトル114が、180°に配向されるとき、およびコンテンツ配向ベクトル114が、左に90°配向されるときに関して計算される。コンテンツ配向選択モジュール58は、次いで、4つのドット積間で最低のドット積を選択し、コンテンツ配向ベクトル114が最低の関連付けられるドット積を伴う方向に整合されるように、レンダリング104を設置する。近縁108は、次いで、ユーザ配向ベクトル102によって描写されるように、遠縁106よりユーザ60の近くに位置し、右および左縁112および110は、ユーザ60の配向から右および左に位置する。コンテンツ16は、したがって、ユーザ60によって容易に視認可能な様式で配向される。例えば、人物の頭部および胴体の写真は、頭部がユーザ60から最遠にあって、胴体がユーザ60に最近である状態で表示され、テキストドキュメントは、最初の行が、ユーザ60から最遠にあって、最後の行が、ユーザ60に最近にある状態で表示される。
【0072】
コンテンツサイズ決定モジュール54は、レンダリング104のための適切なサイズを決定しており、右縁110および左縁112は、表面エリア82内のレンダリング104の幅を定義し、遠縁106と近縁108との間の距離は、所望のアスペクト比によって決定される。
【0073】
図8では、ユーザ60は、表面
エリア82の周囲で反時計回り方向116に移動している。ユーザ60はまた、その身体を反時計回りに90°回転させている。ユーザ60は、新しいユーザ配向ベクトル118によって表されるように、新しく確立された新しい配向を有する。ユーザの頭部は、依然として、表面
エリア82に向かって下向きに傾けられ、表面
エリア84および86は、ここでは、それぞれ、ユーザ60の背後および右に位置する。
【0074】
表面選択モジュール52は、再び、表面
エリア配向ベクトル92、94、および96のそれぞれ1つと関連付けられる、ドット積を計算する。ユーザ配向ベクトル118と表面
エリア配向ベクトル94のドット積は、ここでは、正になっている。ユーザ配向ベクトル118と表面
エリア配向ベクトル96との間のドット積は、約ゼロである。ユーザ配向ベクトル118と表面
エリア配向ベクトル92との間のドット積は、最も負である。
図1Aにおける表面選択モジュール52は、表面
エリア配向ベクトル92と関連付けられる表面
エリア82をコンテンツ16のレンダリングの位置付けのための好ましい表面として選択する。
【0075】
図1Aにおけるコンテンツ配向選択モジュール58は、再び、それぞれ1つがコンテンツ配向ベクトルの個別の方向と関連付けられる、4つのドット積、すなわち、
図8に示される方向におけるユーザ配向ベクトル118とコンテンツ配向ベクトル114との間のドット積と、さらに、それぞれ、
図8におけるコンテンツ配向ベクトル114に対して右に90°、180°、および左に90°における、ユーザ配向ベクトル118とコンテンツ配向ベクトルとの間のドット積とを計算する。コンテンツ配向選択モジュール58は、
図7に示されるコンテンツ配向ベクトル114の方向に対して左に90°のコンテンツ配向ベクトル114と関連付けられる、ドット積が、4つのドット積のうち最も正であることを決定する。
【0076】
コンテンツサイズ決定モジュール54は、次いで、コンテンツ配向ベクトル114が左に90°回転される場合、レンダリングのための適切なサイズを決定する。
【0077】
図9は、コンテンツレンダリングモジュール22が、ユーザ配向ベクトル118によって表されるようなユーザ配向に基づいて、レンダリング104を作成する方法を図示する。レンダリング104は、コンテンツ配向ベクトル114が、
図8と比較して、左に90°指向されるように、反時計回りに90°回転される。近縁108は、ここでは、ユーザ60の最近に位置する。
図1Aにおけるコンテンツサイズ決定モジュール54は、表面
エリア82の利用可能な割合に起因して、レンダリング104を
図8より小さくしている。レンダリングは、コンテンツ作成者またはユーザ選好によって選択されるように、位置間でスナップする、平滑に回転する、フェードイン/フェードアウトし得る。
【0078】
図10では、ユーザ60は、表面
エリア82の周囲において方向120にさらに移動しており、新しいユーザ配向ベクトル122によって表されるように、新しいユーザ配向を確立している。ユーザ配向ベクトル122と表面
エリア配向ベクトル96との間のドット積は、ここでは、正である。ユーザ配向ベクトル122と表面
エリア配向ベクトル94との間のドット積は、約ゼロである。ユーザ配向ベクトル122と表面
エリア配向ベクトル92との間のドット積は、最も負である。表面
エリア82は、したがって、コンテンツを表示するために好ましい表面である。
【0079】
図10に示されるように、ユーザ配向ベクトル122とコンテンツ配向ベクトル114との間のドット積は、約ゼロである。コンテンツ配向ベクトル114が、時計回りに90°、180°、反時計回りに90°回転される場合、個別のドット積は、大きさが異なり、左に90°である、コンテンツ配向ベクトル114のドット積が、最も正である。レンダリング104は、したがって、反時計回りに90°回転され、表面
エリア82の割合に基づいて、サイズ変更されるべきである。
図11は、レンダリング104が、表面
エリア82上に留まったまま、ユーザ配向ベクトル122の変化に起因して回転およびサイズ変更される方法を図示する。
【0080】
図12では、ユーザ60は、表面
エリア82の周囲で方向124に移動しており、新しいユーザ配向ベクトル126によって表されるように、新しいユーザ配向を確立している。ユーザ配向ベクトル126と表面
エリア配向ベクトル94のドット積は、ここでは、負である。しかしながら、ユーザ配向ベクトル126と表面
エリア配向ベクトル92との間のドット積は、より負である。表面
エリア82は、したがって、コンテンツ16のレンダリングを作成するための好ましい表面
エリアである。
【0081】
図12に示されるように、ユーザ配向ベクトル126とコンテンツ配向ベクトル114との間のドット積は、約ゼロである。ユーザ配向ベクトル126とコンテンツ配向ベクトル114との間のドット積は、左に90°回転される場合、正である。レンダリング104は、したがって、表面
エリア82上に留まりながら、反時計回り回転されるべきである。
図13は、新しいユーザ配向ベクトル126に基づいて修正されるようなレンダリング104の設置、配向、およびサイズを図示する。
【0082】
図14は、ユーザ60がその頭部を上向き方向134に回転させるときに確立される、新しいユーザ配向ベクトル132を図示する。ユーザ配向ベクトル132と表面
エリア配向ベクトル92との間のドット積は、約ゼロである。ユーザ配向ベクトル132と表面
エリア配向ベクトル96との間のドット積もまた、約ゼロである。ユーザ配向ベクトル132と表面
エリア配向ベクトル94との間のドット積は、-1またはそれに近く、したがって、3つの表面ベースのドット積のうち最も負である。表面
エリア84は、ここでは、コンテンツ16のレンダリングの設置のための好ましい表面
エリアである。
図15は、表面
エリア84上でユーザ60に表示される、レンダリング136を図示する。表面
エリア82上のレンダリングは、もはやユーザ60に表示されない。表面
エリア84および表面
エリア86等の垂直表面
エリア上では、近縁108は、常時、底部にある。
【0083】
図16は、上記に説明されるような方法を行うためのアルゴリズムを図示する。150では、3次元空間が、
図3を参照して説明されるようにマッピングされる。152A、B、およびCでは、表面
エリアが、
図4を参照して説明されるように抽出される。154A、B、およびCでは、表面ベクトルが、
図4を参照して説明されるように計算される。156では、ユーザ配向ベクトルが、
図1-4を参照して説明されるように決定される。158A、B、およびCでは、個別のドット積が、
図4を参照して説明されるように、ユーザ配向ベクトルと各個別の表面
エリア配向ベクトルとの間で計算される。160では、好ましい表面
エリアが、
図4を参照して説明されるように決定される。
【0084】
162では、好ましい表面
エリアが垂直であるかどうかの決定が、行われる。好ましい表面
エリアが、垂直ではない場合、164において、コンテンツの遠、近、右、および左縁に対するコンテンツ配向ベクトルの方向が、
図7を参照して説明されるように決定される。164に続いて、166A、B、C、およびDにおいて、コンテンツベクトルが、
図7を参照して説明されるように、0°、90°右、180°、および90°左において計算される。168A、B、C、およびDでは、ドット積が、ユーザ配向ベクトルと、それぞれ、166A、B、C、およびDにおいて計算されるコンテンツ配向ベクトルとの間で計算される。170では、コンテンツ配向が、
図7を参照して説明されるように選択される。
【0085】
172では、コンテンツのサイズが、
図5および
図7を参照して説明されるように決定される。174では、コンテンツが、
図5および
図7を参照して説明されるように表示される。
【0086】
174に続いて、新しいユーザ配向ベクトルが、156において、
図6、8、9、10、および12を参照して説明されるように、決定されてもよい。プロセスは、次いで、再び、154A、B、およびCにおいて、表面
エリア配向ベクトルを計算せずに、繰り返されてもよい。
【0087】
図17および18を参照すると、実施形態が、それぞれ、ユーザ60によって視認するための環境184内にマッピングされた表面182上にレンダリングされた3次元仮想コンテンツ180を伴う、斜視図および上面図に示される。そのような実施形態では、上記に説明される原理が、ユーザ60が可能な限り容易かつ自然にコンテンツを視認し得るように、3次元仮想コンテンツ180を位置付けるために使用される。
【0088】
ユーザ配向ベクトル66は、本デバイス12の前方ベクトルと同一であって、以降、「デバイス前方ベクトル66」と称される。その上に3次元仮想コンテンツ180を設置するための表面を決定するステップは、少なくとも部分的に、デバイス前方ベクトル66と環境184内のマッピングされた表面の表面法線ベクトル186との間のドット積関係に依拠し得る。3次元仮想コンテンツ180の最適視認のために、多くのドット積関係のうちの1つが、コンテンツに応じて、最適と見なされ得る。例えば、コンテンツが、側面から視認されることが意図される場合、本デバイス前方ベクトル66と表面法線ベクトル186との間のドット積関係が、ゼロに近く、ユーザがマッピングされた表面182にほぼ直交することを示すことが理想的であり得る。そのような実施形態では、マッピングされた表面182上に設置された3次元仮想コンテンツ180は、ユーザによって側面から見られるであろう。代替として、-1またはその近くのドット積関係は、他の実施形態に関して本明細書に説明されたように、3次元仮想コンテンツ180が、上方から視認されることが意図される場合、より望ましくあり得る。理想的ドット積関係は、3次元仮想コンテンツ180の作成者による属性セットであってもよい、ユーザによって選好として選択されてもよい、または別様に、表示されることになるコンテンツのタイプに基づいて、拡張現実視認システムによって決定されてもよい。
【0089】
いったん設置表面が、システムまたはユーザによる設置のいずれかによって決定されると、マッピングされた表面182上の3次元仮想コンテンツ180の配向が、ユーザに対して決定される。示される実施例では、3次元仮想コンテンツ180は、3次元仮想コンテンツ180をユーザデバイスの基準ベクトルに整合させるために使用され得る、コンテンツ配向ベクトル188を提供される。3次元仮想コンテンツ180は、キャラクタの頭部であって、キャラクタの近縁は、その口がある場所である。キャラクタの遠縁は、典型的には、遠縁がユーザに見えないキャラクタの側面上にあるため、ユーザ60によって視認するためにレンダリングされないであろう。コンテンツ配向ベクトル188は、キャラクタの近縁と平行に整合される。コンテンツ配向ベクトル188は、コンテンツ配向ベクトル188とデバイス右ベクトル64との間のドット積が、1またはその近くであって、2つのベクトルが実質的に同一方向に向いていることを示すように、3次元仮想コンテンツ180と拡張現実ビューア12を整合させるために使用されてもよい。
【0090】
図19および20を参照すると、ユーザの移動に基づく、3次元コンテンツ再配向の実施例が、示される。
図19では、ユーザ60は、
図18に対してある距離および角度だけテーブルの周囲で時計回りに移動している。その結果、コンテンツ配向ベクトル188とデバイス右ベクトル64との間のドット積関係は、1未満である。いくつかの実施形態では、位置の本変化は、3次元仮想コンテンツ180の再配向を要求しなくてもよい。例えば、コンテンツ作成者、ユーザ、または拡張現実ビューア12内のソフトウェアは、3次元仮想コンテンツ180の再配向が、コンテンツ配向ベクトル188とデバイス基準ベクトルとの間のドット積が所定の閾値未満であるときのみ必要であることを示し得る。大または小閾値公差が、表示されているコンテンツのタイプに応じて、設定されてもよい。
【0091】
図18の場所から
図19の場所へのユーザ60の位置の変化が、3次元仮想コンテンツ180の再配向をトリガする場合、配向モジュールは、
図20に示されるように、コンテンツ配向ベクトル188が、デバイス右ベクトル64と整合し、2つのベクトルに関して1に等しいまたはそれに近いドット積をもたらすように、3次元仮想コンテンツ180を再レンダリングしてもよい。上記に議論されるように、3次元仮想コンテンツ180の再配向はまた、コンテンツのサイズ変更を可能にし得る。しかしながら、コンテンツはまた、ユーザが環境内で移動するにつれて、マッピングされた表面182に対して法線の軸を中心としてのみ再配向するように現れるように、同一サイズのままであってもよい。
【0092】
図21、22、および23を参照すると、垂直表面198上での仮想コンテンツ196再配向の実施例が、示される。
図21では、ユーザ60は、環境内で垂直に配向される垂直表面198上の仮想コンテンツ196を視認しているように示される。仮想コンテンツ196は、コンテンツ右配向ベクトル200およびコンテンツ直立配向ベクトル202のうちの少なくとも1つを有し得、これは、それぞれ、デバイス右ベクトル64およびデバイス直立ベクトル67に対する整合を測定するために使用され得る。
図21では、コンテンツ配向ベクトル(200、202)のうちの1つと対応するデバイス配向ベクトル(64、67)との間の整合は、約1のドット積値をもたらす。上記に議論されるように、1により近いドット積値は、比較されている2つのベクトル間のより類似する整合を示す。
【0093】
ユーザ60が、例えば、
図22に示されるように、仮想コンテンツ196の再配向を伴わずに、長椅子上に横たわることによって、位置を変化させようとする場合、コンテンツ配向ベクトル(200、202)と対応するデバイス配向ベクトル(64、67)との間の整合は、約ゼロであって、
図21に示される整合ほど最適ではないユーザ60と仮想コンテンツ196との間の整合を示し得る。ゼロのドット積関係が、仮想コンテンツ/ユーザの相対的配向に関して要求されるドット積関係未満である場合、仮想コンテンツ196は、ドット積関係が所定の閾値内であるように、
図23に示されるように、新しい配向に再レンダリングされてもよい。いくつかの実施形態では、仮想コンテンツ196を新しい配向に再レンダリングするステップは、コンテンツ配向ベクトル(200、202)と対応するデバイス配向ベクトル(64、67)との間の最適ドット積関係を再確立し得る。
【0094】
図24は、その中で、機械に本明細書で議論される方法論のうちの任意の1つ以上のものを実施させるための命令のセットが、実行され得る、コンピュータシステム900の例示的形態における、機械の概略表現を示す。代替実施形態では、機械は、独立型デバイスとして動作する、または他の機械に接続(例えば、ネットワーク化)されてもよい。さらに、単一機械のみが、図示されるが、用語「機械」はまた、個々に、またはともに、本明細書で議論される方法論のうちの任意の1つ以上のものを実施するための命令のセット(または複数のセット)を実行する、機械の任意の集合を含むものと捉えられるものとする。
【0095】
例示的コンピュータシステム900は、プロセッサ902(例えば、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、または両方)と、メインメモリ904(例えば、読取専用メモリ(ROM)、フラッシュメモリ、同期DRAM(SDRAM)またはRambus DRAM(RDRAM)等の動的ランダムアクセスメモリ(DRAM)等)と、静的メモリ906(例えば、フラッシュメモリ、静的ランダムアクセスメモリ(SRAM)等)とを含み、これらは、バス908を介して相互に通信する。
【0096】
コンピュータシステム900はさらに、ディスクドライブユニット916と、ネットワークインターフェースデバイス920とを含んでもよい。
【0097】
ディスクドライブユニット916は、その上に、本明細書に説明される方法論または機能のうちの任意の1つ以上のものを具現化する、1つ以上の命令924のセット(例えば、ソフトウェア)が記憶される、機械可読媒体922を含む。ソフトウェアはまた、完全または少なくとも部分的に、コンピュータシステム900によるその実行の間、メインメモリ904および/またはプロセッサ902内に常駐してもよく、メインメモリ904およびプロセッサ902もまた、機械可読媒体を構成する。
【0098】
ソフトウェアはさらに、ネットワーク928を経由して、ネットワークインターフェースデバイス920を介して伝送または受信されてもよい。
【0099】
機械可読媒体924は、例示的実施形態では、単一媒体であるように示されるが、用語「機械可読媒体」は、1つ以上の命令のセットを記憶する、単一媒体または複数の媒体(例えば、集中型または分散型データベースおよび/または関連付けられるキャッシュおよびサーバ)を含むものと捉えられるべきである。用語「機械可読媒体」はまた、機械による実行のための命令のセットを記憶、エンコーディング、または搬送することが可能であって、機械に本発明の方法論のうちの任意の1つ以上のものを実施させる、任意の媒体を含むものと捉えられるものとする。用語「機械可読媒体」は、故に、限定ではないが、ソリッドステートメモリ、光学および磁気媒体、および搬送波信号を含むものと捉えられるものとする。
【0100】
ある例示的実施形態が、説明され、付随の図面に示されたが、そのような実施形態は、単に、本発明の例証であって、制限ではなく、本発明は、修正が当業者に想起され得るため、図示および説明される具体的構造および配列に制限されないことを理解されたい。