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

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

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

特表2024-546474仮想コンテンツの物理的表面へのアンカリング
<>
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図1
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図2A
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図2B
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図3A
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図3B
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図4
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図5A
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図5B
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図5C
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図5D
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図6
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図7
  • 特表-仮想コンテンツの物理的表面へのアンカリング 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-12-24
(54)【発明の名称】仮想コンテンツの物理的表面へのアンカリング
(51)【国際特許分類】
   G06T 19/00 20110101AFI20241217BHJP
【FI】
G06T19/00 600
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024534076
(86)(22)【出願日】2022-10-17
(85)【翻訳文提出日】2024-06-06
(86)【国際出願番号】 US2022078235
(87)【国際公開番号】W WO2023107777
(87)【国際公開日】2023-06-15
(31)【優先権主張番号】17/547,068
(32)【優先日】2021-12-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLU―RAY DISC
2.ETHERNET
(71)【出願人】
【識別番号】507364838
【氏名又は名称】クアルコム,インコーポレイテッド
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(72)【発明者】
【氏名】チャド・ウィルキー
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050BA09
5B050CA07
5B050DA04
5B050DA05
5B050DA07
5B050EA07
5B050EA12
5B050EA13
5B050EA19
5B050FA05
(57)【要約】
シーン内に仮想コンテンツをレンダリングするシステム及び技法が提供される。例示的な方法は、物理的環境のシーン内のサーフェスプレーンを判定することと、シーン内のロケーションに遠近感で仮想コンテンツをレンダリングすることと、仮想コンテンツに関連付けられたコンテンツ配置インジケータであって、コ仮想コンテンツの配置用の第1の空間を示す、コンテンツ配置インジケータをサーフェスプレーンの第1の空間上にレンダリングすることと、サーフェスプレーンに関連付けられた表面上の1つ又は複数の物体の1つ又は複数のロケーションを判定することと、入力に応じて、サーフェスプレーンの第2の空間上にコンテンツ配置インジケータをレンダリングすることと、を含み、第2の空間が、1つ又は複数のロケーション及び入力に基づいて判定され、コンテンツ配置インジケータは、仮想コンテンツの配置用の第2の空間を示す。
【特許請求の範囲】
【請求項1】
物理的環境のシーン内に仮想コンテンツをレンダリングする装置であって、
メモリと、
前記メモリに結合された1つ又は複数のプロセッサと、
を備え、前記1つ又は複数のプロセッサが、
前記物理的環境の前記シーン内の少なくとも1つのサーフェスプレーンを判定し、
前記シーン内の第1のロケーションに第1の遠近感で仮想コンテンツアイテムをレンダリングし、
前記仮想コンテンツアイテムに関連付けられたコンテンツ配置インジケータであって、前記仮想コンテンツアイテムの配置用の第1の空間の少なくとも一部を示す、コンテンツ配置インジケータを、前記少なくとも1つのサーフェスプレーンの前記第1の空間上にレンダリングし、
前記少なくとも1つのサーフェスプレーンに関連付けられた表面上の1つ又は複数の物体の1つ又は複数のロケーションを判定し、
ユーザ入力に応じて、前記少なくとも1つのサーフェスプレーンの第2の空間上に前記コンテンツ配置インジケータをレンダリングする、
ように構成されており、前記少なくとも1つのサーフェスプレーンの第2の空間が、前記1つ又は複数のロケーション及び前記ユーザ入力に基づいて判定され、前記コンテンツ配置インジケータが、前記仮想コンテンツアイテムの配置用の前記第2の空間の少なくとも一部を示す、装置。
【請求項2】
前記1つ又は複数のプロセッサが、
前記第2の空間上への前記仮想コンテンツアイテムの配置を要求する追加のユーザ入力に応じて、前記コンテンツ配置インジケータに基づいて、前記シーン内の第2のロケーションに第2の遠近感で前記仮想コンテンツアイテムをレンダリングするように更に構成されており、前記第2のロケーションが、前記第2の空間内にある、請求項1に記載の装置。
【請求項3】
前記1つ又は複数のプロセッサが、
前記第2の空間の遠近感に基づいて前記第2の遠近感を判定するように更に構成されている、請求項2に記載の装置。
【請求項4】
前記1つ又は複数のプロセッサが、
前記少なくとも1つのサーフェスプレーンの第1のサーフェスプレーン及び第2のサーフェスプレーンであって、前記第1の空間が、前記第1のサーフェスプレーンに関連付けられており、前記第2の空間が、前記第2のサーフェスプレーンに関連付けられている、第1のサーフェスプレーン及び第2のサーフェスプレーンを判定し、
前記第2のサーフェスプレーンの遠近感に基づいて前記第2の遠近感を判定する、
ように更に構成されている、請求項2に記載の装置。
【請求項5】
前記第2の空間上に前記コンテンツ配置インジケータをレンダリングするために、前記1つ又は複数のプロセッサが、
前記仮想コンテンツアイテムと前記第2のサーフェスプレーンとの重複を判定し、
前記重複が第1の閾値を超えるとの判定時に、前記第2のサーフェスプレーンに関連付けられた前記第2の空間上に前記コンテンツ配置インジケータをレンダリングすることに切り替える、
ように構成されている、請求項4に記載の装置。
【請求項6】
前記第1の空間及び前記第2の空間が、前記少なくとも1つのサーフェスプレーンの第1のサーフェスプレーンに関連付けられており、
前記1つ又は複数のプロセッサが、
前記第1のサーフェスプレーンの少なくとも一部を遮蔽する1つ又は複数の物体を検出し、
前記第1のサーフェスプレーンの遮蔽された一部に少なくとも基づいて、前記第1のサーフェスプレーンを少なくとも第1のセグメントと第2のセグメントとにセグメント化する、
ように更に構成されており、
前記第1の空間が、前記第1のセグメントに関連付けられており、前記第2の空間が、前記第2のセグメントに関連付けられている、請求項1に記載の装置。
【請求項7】
前記第1のサーフェスプレーンを少なくとも前記第1のセグメントと前記第2のセグメントとにセグメント化するために、前記1つ又は複数のプロセッサが、前記第1のサーフェスプレーンの遠近感でレンダリングされた前記仮想コンテンツアイテムの前記第1のセグメント及び前記第2のセグメント内への収まりを判定するように構成されている、請求項6に記載の装置。
【請求項8】
前記1つ又は複数のプロセッサが、前記第1のセグメントと前記第2のセグメントとの間で前記仮想コンテンツアイテムのアスペクト比を変更するように更に構成されている、請求項7に記載の装置。
【請求項9】
前記1つ又は複数のプロセッサが、
前記第2の空間上に前記コンテンツ配置インジケータをレンダリングする前に、前記コンテンツ配置インジケータに基づいて、前記シーン内の第3のロケーションに第3の遠近感で前記仮想コンテンツアイテムをレンダリングするように構成されており、前記第3のロケーションが、前記第1の空間内にある、請求項1に記載の装置。
【請求項10】
前記1つ又は複数のプロセッサが、
前記ユーザ入力に応じて、前記第2の空間上に前記コンテンツ配置インジケータをレンダリングする前に、前記コンテンツ配置インジケータを前記第1の空間内で動かすように更に構成されている、請求項1に記載の装置。
【請求項11】
前記シーン内の前記少なくとも1つのサーフェスプレーンを判定するために、前記1つ又は複数のプロセッサが、
前記シーン内の前記1つ又は複数の物体の1つ又は複数の表面を判定し、
前記シーン内の前記1つ又は複数の物体の前記1つ又は複数の表面に基づいて、前記少なくとも1つのサーフェスプレーンを判定する、
ように構成されている、請求項1に記載の装置。
【請求項12】
前記シーン内の前記少なくとも1つのサーフェスプレーンを判定するために、前記1つ又は複数のプロセッサが、
少なくとも1つの表面に垂直に、かつ前記装置に関連付けられたユーザの視点に向かって、前記少なくとも1つのサーフェスプレーンにオフセットを適用するように更に構成されている、請求項11に記載の装置。
【請求項13】
前記シーン内の前記少なくとも1つのサーフェスプレーンを判定するために、前記1つ又は複数のプロセッサが、
前記シーン内の前記1つ又は複数の物体の1つ又は複数の縁を判定し、
前記シーン内の前記1つ又は複数の物体の前記1つ又は複数の縁に基づいて、前記少なくとも1つのサーフェスプレーンを判定する、
ように構成されている、請求項1に記載の装置。
【請求項14】
前記コンテンツ配置インジケータをレンダリングするために、前記1つ又は複数のプロセッサが、前記少なくとも1つのサーフェスプレーン上にパターンをレンダリングするように構成されている、請求項1に記載の装置。
【請求項15】
前記パターンが、強調表示、輪郭、色、陰影、影、ハッチング、及び勾配のうちの少なくとも1つを備える、請求項14に記載の装置。
【請求項16】
前記装置が、モバイルデバイスを含む、請求項1に記載の装置。
【請求項17】
前記モバイルデバイスが、エクステンデッドリアリティデバイスを含む、請求項16に記載の装置。
【請求項18】
物理的環境のシーン内に仮想コンテンツをレンダリングする方法であって、
前記物理的環境の前記シーン内の少なくとも1つのサーフェスプレーンを判定することと、
コンピューティングデバイスを介して、前記シーン内の第1のロケーションに第1の遠近感で仮想コンテンツアイテムをレンダリングすることと、
前記仮想コンテンツアイテムに関連付けられたコンテンツ配置インジケータであって、前記仮想コンテンツアイテムの配置用の第1の空間の少なくとも一部を示す、コンテンツ配置インジケータを、前記少なくとも1つのサーフェスプレーンの前記第1の空間上にレンダリングすることと、
前記少なくとも1つのサーフェスプレーンに関連付けられた表面上の1つ又は複数の物体の1つ又は複数のロケーションを判定することと、
ユーザ入力に応じて、前記少なくとも1つのサーフェスプレーンの第2の空間上に前記コンテンツ配置インジケータをレンダリングすることと、
を含み、前記少なくとも1つのサーフェスプレーンの前記第2の空間が、前記1つ又は複数のロケーション及び前記ユーザ入力に基づいて判定され、前記コンテンツ配置インジケータが、前記仮想コンテンツアイテムの配置用の前記第2の空間の少なくとも一部を示す、方法。
【請求項19】
前記第2の空間上への前記仮想コンテンツアイテムの配置を要求する追加のユーザ入力に応じて、前記コンテンツ配置インジケータに基づいて、前記シーン内の第2のロケーションに第2の遠近感で前記仮想コンテンツアイテムをレンダリングすること、を更に含み、前記第2のロケーションが、前記第2の空間内にある、請求項18に記載の方法。
【請求項20】
前記第2の空間の遠近感に基づいて前記第2の遠近感を判定すること、を更に含む、請求項19に記載の方法。
【請求項21】
前記少なくとも1つのサーフェスプレーンの第1のサーフェスプレーン及び第2のサーフェスプレーンであって、前記第1の空間が、前記第1のサーフェスプレーンに関連付けられており、前記第2の空間が、前記第2のサーフェスプレーンに関連付けられている、第1のサーフェスプレーン及び第2のサーフェスプレーンを判定することと、
前記第2のサーフェスプレーンの遠近感に基づいて前記第2の遠近感を判定することと、
を更に含む、請求項19に記載の方法。
【請求項22】
前記第2の空間上に前記コンテンツ配置インジケータをレンダリングすることが、
前記仮想コンテンツアイテムと前記第2のサーフェスプレーンとの重複を判定することと、
前記重複が第1の閾値を超えるとの判定時に、前記第2のサーフェスプレーンに関連付けられた前記第2の空間上に前記コンテンツ配置インジケータをレンダリングすることに切り替えることと、
を含む、請求項21に記載の方法。
【請求項23】
前記第1の空間及び前記第2の空間が、前記少なくとも1つのサーフェスプレーンの第1のサーフェスプレーンに関連付けられており、前記方法が、
前記第1のサーフェスプレーンの少なくとも一部を遮蔽する1つ又は複数の物体を検出することと、
前記第1のサーフェスプレーンの遮蔽された一部に少なくとも基づいて、前記第1のサーフェスプレーンを少なくとも第1のセグメントと第2のセグメントとにセグメント化することと、
を更に含み、
前記第1の空間が、前記第1のセグメントに関連付けられ、前記第2の空間が前記第2のセグメントに関連付けられる、請求項18に記載の方法。
【請求項24】
前記第1のサーフェスプレーンを少なくとも前記第1のセグメントと前記第2のセグメントとにセグメント化することが、前記第1のサーフェスプレーンの遠近感でレンダリングされた前記仮想コンテンツアイテムの前記第1のセグメント及び前記第2のセグメント内への収まりを判定することを含む、請求項23に記載の方法。
【請求項25】
前記第1のセグメントと前記第2のセグメントとの間で前記仮想コンテンツアイテムのアスペクト比を変更することを更に含む、請求項24に記載の方法。
【請求項26】
前記第2の空間上に前記コンテンツ配置インジケータをレンダリングする前に、前記コンテンツ配置インジケータに基づいて、前記シーン内の第3のロケーションに第3の遠近感で前記仮想コンテンツアイテムをレンダリングすることを更に含み、前記第3のロケーションが、前記第1の空間内にある、請求項18に記載の方法。
【請求項27】
前記ユーザ入力に応じて、前記第2の空間上に前記コンテンツ配置インジケータをレンダリングする前に、前記コンテンツ配置インジケータを前記第1の空間内で動かすことを更に含む、請求項18に記載の方法。
【請求項28】
前記シーン内の前記少なくとも1つのサーフェスプレーンを判定することが、
前記シーン内の前記1つ又は複数の物体の1つ又は複数の表面を判定することと、
前記シーン内の前記1つ又は複数の物体の前記1つ又は複数の表面に基づいて、前記少なくとも1つのサーフェスプレーンを判定することと、
を含む、請求項18に記載の方法。
【請求項29】
前記シーン内の前記少なくとも1つのサーフェスプレーンを判定することが、
少なくとも1つの表面に垂直に、かつ前記コンピューティングデバイスに関連付けられたユーザの視点に向かって、前記少なくとも1つのサーフェスプレーンにオフセットを適用することを含む、請求項28に記載の方法。
【請求項30】
前記シーン内の前記少なくとも1つのサーフェスプレーンを判定することが、
前記シーン内の前記1つ又は複数の物体の1つ又は複数の縁を判定することと、
前記シーン内の前記1つ又は複数の物体の前記1つ又は複数の縁に基づいて、前記少なくとも1つのサーフェスプレーンを判定することと、
を含む、請求項18に記載の方法。
【請求項31】
前記コンテンツ配置インジケータをレンダリングすることが、前記少なくとも1つのサーフェスプレーン上にパターンをレンダリングすることを含む、請求項18に記載の方法。
【請求項32】
前記パターンが、強調表示、輪郭、色、陰影、影、ハッチング、及び勾配のうちの少なくとも1つを含む、請求項31に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、エクステンデッドリアリティのために仮想コンテンツを編成及びレンダリングすることに関する。たとえば、本開示の態様は、仮想コンテンツを物理的表面上に配置する技法及びシステムに関する。
【背景技術】
【0002】
スマートグラス及びヘッドマウントディスプレイ(head-mounted displays、HMDs)などのエクステンデッドリアリティ(たとえば、拡張現実、仮想現実、複合現実など)デバイスは、一般に、物理的環境内のエクステンデッドリアリティ(extended reality、XR)デバイス及び他の物体の位置を追跡するためにカメラ及び様々なセンサを実装する。XRデバイスは、XRデバイスのユーザに現実的なXR体験を提供するためにそのような追跡情報を使用することができる。たとえば、XRデバイスは、ユーザが没入型仮想環境又はコンテンツを体験すること又はそれらと対話することを可能にし得る。現実的なXR体験を提供するために、XR技術は、仮想コンテンツを物理世界と統合し得る。場合によっては、XR技術は、物理世界における物体とデバイスとの相対的な姿勢及び動きを一致させることができる。たとえば、XRデバイスは、デバイス、物体、及び/又は実世界環境の相対位置と動きとを一致させる目的で、デバイス、物体、及び/又は実世界環境のマップの相対姿勢を計算するために追跡情報を使用し得る。1つ又は複数のデバイス、物体、及び/又は実世界環境の姿勢及び動きを使用して、XRデバイスは、実世界環境に対してコンテンツを納得のいく方法でレンダリングすることができる。相対姿勢情報は、仮想コンテンツを、ユーザの知覚された動作、並びにデバイス、物体、及び実世界環境の時空間状態と一致させるために使用され得る。
【発明の概要】
【0003】
いくつかの例では、仮想コンテンツを物理的表面にアンカリングするシステム、装置、プロセス(方法とも呼ばれる)、及びコンピュータ可読媒体(「システム及び技法」と総称される)について説明する。少なくとも1つの例示的な例によれば、物理的環境のシーン内に仮想コンテンツをレンダリングする方法が提供される。いくつかの例では、本方法は、物理的環境のシーン内の少なくとも1つのサーフェスプレーン(surface plane)を判定することと、コンピューティングデバイスを介して、シーン内の第1のロケーションに第1の遠近感で仮想コンテンツアイテムをレンダリングすることと、仮想コンテンツアイテムに関連付けられたコンテンツ配置インジケータであって、仮想コンテンツアイテムの配置用の第1の空間の少なくとも一部を示す、コンテンツ配置インジケータを、少なくとも1つのサーフェスプレーンの第1の空間上にレンダリングすることと、少なくとも1つのサーフェスプレーンに関連付けられた表面上の1つ又は複数の物体の1つ又は複数のロケーションを判定することと、ユーザ入力に応じて、少なくとも1つのサーフェスプレーンの第2の空間上にコンテンツ配置インジケータをレンダリングすることと、を含むことができ、少なくとも1つのサーフェスプレーンの第2の空間が、1つ又は複数のロケーション及びユーザ入力に基づいて判定され、コンテンツ配置インジケータは、仮想コンテンツアイテムの配置用の第2の空間の少なくとも一部を示す。
【0004】
少なくとも1つの例示的な例によれば、物理的環境のシーン内に仮想コンテンツをレンダリングする非一時的コンピュータ可読媒体が提供される。いくつかの態様では、非一時的コンピュータ可読媒体は命令を含むことができ、命令は、1つ又は複数のプロセッサによって実行されたときに、1つ又は複数のプロセッサに、物理的環境のシーン内の少なくとも1つのサーフェスプレーンを判定させ、シーン内の第1のロケーションに第1の遠近感で仮想コンテンツアイテムをレンダリングさせ、仮想コンテンツアイテムに関連付けられたコンテンツ配置インジケータであって、仮想コンテンツアイテムの配置用の第1の空間の少なくとも一部を示す、コンテンツ配置インジケータを、少なくとも1つのサーフェスプレーンの第1の空間上にレンダリングさせ、少なくとも1つのサーフェスプレーンに関連付けられた表面上の1つ又は複数の物体の1つ又は複数のロケーションを判定させ、ユーザ入力に応じて、少なくとも1つのサーフェスプレーンの第2の空間上にコンテンツ配置インジケータをレンダリングさせ、少なくとも1つのサーフェスプレーンの第2の空間が、1つ又は複数のロケーション及びユーザ入力に基づいて判定され、コンテンツ配置インジケータは、仮想コンテンツアイテムの配置用の第2の空間の少なくとも一部を示す。
【0005】
少なくとも1つの例示的な例によれば、物理的環境のシーン内に仮想コンテンツをレンダリングする装置が提供される。いくつかの態様では、本装置は、コンピュータ可読命令を記憶したメモリと、1つ又は複数のプロセッサと、を含むことができ、1つ又は複数のプロセッサは、物理的環境のシーン内の少なくとも1つのサーフェスプレーンを判定し、シーン内の第1のロケーションに第1の遠近感で仮想コンテンツアイテムをレンダリングし、仮想コンテンツアイテムに関連付けられたコンテンツ配置インジケータであって、仮想コンテンツアイテムの配置用の第1の空間の少なくとも一部を示す、コンテンツ配置インジケータを、少なくとも1つのサーフェスプレーンの第1の空間上にレンダリングし、少なくとも1つのサーフェスプレーンに関連付けられた表面上の1つ又は複数の物体の1つ又は複数のロケーションを判定し、ユーザ入力に応じて、少なくとも1つのサーフェスプレーンの第2の空間上にコンテンツ配置インジケータをレンダリングする、ように構成されており、少なくとも1つのサーフェスプレーンの第2の空間が、1つ又は複数のロケーション及びユーザ入力に基づいて判定され、コンテンツ配置インジケータは、仮想コンテンツアイテムの配置用の第2の空間の少なくとも一部を示す。
【0006】
別の例示的な例によれば、物理的環境のシーン内に仮想コンテンツをレンダリングする別の装置は、物理的環境のシーン内の少なくとも1つのサーフェスプレーンを判定する手段と、コンピューティングデバイスを介して、シーン内の第1のロケーションに第1の遠近感で仮想コンテンツアイテムをレンダリングする手段と、仮想コンテンツアイテムに関連付けられたコンテンツ配置インジケータであって、仮想コンテンツアイテムの配置用の第1の空間の少なくとも一部を示す、コンテンツ配置インジケータを、少なくとも1つのサーフェスプレーンの第1の空間上にレンダリングする手段と、少なくとも1つのサーフェスプレーンに関連付けられた表面上の1つ又は複数の物体の1つ又は複数のロケーションを判定し、ユーザ入力に応じて、少なくとも1つのサーフェスプレーンの第2の空間上にコンテンツ配置インジケータをレンダリングする手段と、を含むことができ、少なくとも1つのサーフェスプレーンの第2の空間が、1つ又は複数のロケーション及びユーザ入力に基づいて判定され、コンテンツ配置インジケータは、仮想コンテンツアイテムの配置用の第2の空間の少なくとも一部を示す。
【0007】
いくつかの態様では、上記で説明した方法、非一時的コンピュータ可読媒体、及び装置は、第2の空間上への仮想コンテンツアイテムの配置を要求する追加のユーザ入力に応じて、コンテンツ配置インジケータに基づいて、シーン内の第2のロケーションに第2の遠近感で仮想コンテンツアイテムをレンダリングすることを含み得る。いくつかの例では、第2のロケーションは、第2の空間内にあり得る。場合によっては、上記で説明した方法、非一時的コンピュータ可読媒体、及び装置は、第2の空間の遠近感に基づいて第2の遠近感を判定することを含み得る。
【0008】
いくつかの態様では、上記で説明した方法、非一時的コンピュータ可読媒体、及び装置は、少なくとも1つのサーフェスプレーンの第1のサーフェスプレーン及び第2のサーフェスプレーンであって、第1の空間が、第1のサーフェスプレーンに関連付けられており、第2の空間が、第2のサーフェスプレーンに関連付けられている、第1のサーフェスプレーン及び第2のサーフェスプレーンを判定することと、第2のサーフェスプレーンの遠近感に基づいて第2の遠近感を判定することと、を含み得る。
【0009】
いくつかの例では、第2の空間上にコンテンツ配置インジケータをレンダリングすることは、仮想コンテンツアイテムと第2のサーフェスプレーンとの重複を判定することと、重複が第1の閾値を超えるとの判定時に、第2のサーフェスプレーンに関連付けられた第2の空間上にコンテンツ配置インジケータをレンダリングすることに切り替えることと、を含み得る。
【0010】
いくつかの例では、第1の空間及び第2の空間は、少なくとも1つのサーフェスプレーンの第1のサーフェスプレーンに関連付けられている。いくつかの態様では、上記で説明した方法、非一時的コンピュータ可読媒体、及び装置は、第1のサーフェスプレーンの少なくとも一部を遮蔽する1つ又は複数の物体を検出することと、第1のサーフェスプレーンの遮蔽された一部に少なくとも基づいて、第1のサーフェスプレーンを少なくとも第1のセグメントと第2のセグメントとにセグメント化することと、を含み得る。いくつかの例では、第1の空間は、第1のセグメントに関連付けられており、第2の空間は、第2のセグメントに関連付けられている。
【0011】
場合によっては、第1のサーフェスプレーンを少なくとも第1のセグメントと第2のセグメントとにセグメント化することは、第1のサーフェスプレーンの遠近感でレンダリングされた仮想コンテンツアイテムの第1のセグメント及び第2のセグメント内への収まりを判定することを含み得る。
【0012】
いくつかの態様では、上記で説明した方法、非一時的コンピュータ可読媒体、及び装置は、第1のセグメントと第2のセグメントとの間の仮想コンテンツアイテムのアスペクト比を変更することを含み得る。
【0013】
いくつかの態様では、上記で説明した方法、非一時的コンピュータ可読媒体、及び装置は、第2の空間上にコンテンツ配置インジケータをレンダリングする前に、コンテンツ配置インジケータに基づいて、シーン内の第3のロケーションに第3の遠近感で仮想コンテンツアイテムをレンダリングすることを含み得る。いくつかの例では、第3のロケーションは、第1の空間内にあり得る。
【0014】
いくつかの態様では、上記で説明した方法、非一時的コンピュータ可読媒体、及び装置は、ユーザ入力に応じて、第2の空間上にコンテンツ配置インジケータをレンダリングする前に、コンテンツ配置インジケータを第1の空間内で動かすことを含み得る。
【0015】
場合によっては、シーン内の少なくとも1つのサーフェスプレーンを判定することは、少なくとも1つの表面に垂直に、かつコンピューティングデバイスに関連付けられたユーザの視点に向かって、少なくとも1つのサーフェスプレーンにオフセットを適用することを含み得る。
【0016】
場合によっては、シーン内の少なくとも1つのサーフェスプレーンを判定することは、シーン内の1つ又は複数の物体の1つ又は複数の縁を判定することと、シーン内の1つ又は複数の物体の1つ又は複数の縁に基づいて、少なくとも1つのサーフェスプレーンを判定することと、を含み得る。
【0017】
場合によっては、コンテンツ配置インジケータをレンダリングすることは、少なくとも1つのサーフェスプレーン上にパターンをレンダリングすることを含み得る。いくつかの例では、パターンは、強調表示、輪郭、色、陰影、影、ハッチング、及び勾配のうちの少なくとも1つを含んでよい。
【0018】
場合によっては、シーン内の少なくとも1つのサーフェスプレーンを判定することは、シーン内の1つ又は複数の物体の1つ又は複数の表面を判定することと、シーン内の1つ又は複数の物体の1つ又は複数の表面に基づいて、少なくとも1つのサーフェスプレーンを判定することと、を含み得る。
【0019】
いくつかの態様では、装置は、カメラ(たとえば、IPカメラ)、モバイルデバイス(たとえば、モバイル電話若しくはいわゆる「スマートフォン」、又は他のモバイルデバイス)、スマートウェアラブルデバイス、エクステンデッドリアリティデバイス(たとえば、仮想現実(virtual reality、VR)デバイス、拡張現実(augmented reality、AR)デバイス、又は複合現実(mixed reality、MR)デバイス)、パーソナルコンピュータ、ラップトップコンピュータ、マルチカメラシステム、又は他のデバイスであってよく、又はそれらの部分であってよい。いくつかの態様では、本装置は、1つ又は複数の画像を捕捉する1つのカメラ又は複数のカメラを含む。いくつかの態様では、本装置は、1つ又は複数の画像、通知、及び/又は他の表示可能なデータを表示するディスプレイを更に含む。いくつかの態様では、上記で説明した装置は、1つ又は複数のセンサを含んでもよい。
【0020】
本概要では、特許請求される主題の主要な又は必須の特徴を特定することは意図されず、特許請求される主題の範囲を判定するために独立して使用されることも意図されない。本主題は、この特許の明細書全体、いずれか又は全ての図面、及び各請求項の適切な部分を参照することによって理解されるはずである。
【0021】
上記のことは、他の特徴及び実施形態とともに、以下の明細書、特許請求の範囲、及び添付図面を参照すると、より明らかになろう。
【0022】
本出願の例示的な実施形態について、以下の図を参照しながら以下で詳細に説明する。
【図面の簡単な説明】
【0023】
図1】本開示のいくつかの例による、例示的なエクステンデッドリアリティシステムを示す簡略化されたブロック図である。
図2A】本開示のいくつかの例による、レンダリング用の仮想コンテンツを配置するために利用可能な様々な表面を有する例示的なシーンを示す図である。
図2B】本開示のいくつかの例による、レンダリング用の仮想コンテンツを配置するために利用可能な表面上の様々な物理的物体を伴う例示的なシーンを示す図である。
図3A】本開示のいくつかの例による、仮想コンテンツアイテムのロケーションがシーン上の異なる表面に重複するときに強調表示するサーフェスプレーンを選択する例を示す図である。
図3B】本開示のいくつかの例による、仮想コンテンツアイテムの配置のために強調表示されたサーフェスプレーン間で切り替える例を示す図である。
図4】本開示のいくつかの例による、サーフェスプレーン上の利用可能な空間内に収まるようなコンテンツ配置インジケータのアスペクト比の例示的な調整を示す図である。
図5A】本開示のいくつかの例による、複雑な表面に対する一定の位置にレンダリングされた例示的なサーフェスプレーン及びコンテンツ配置インジケータを示す図である。
図5B】本開示のいくつかの例による、複雑な表面に対する一定の位置における仮想コンテンツの例示的なレンダリングを示す図である。
図5C】本開示のいくつかの例による、複雑な表面に対する一定の位置にレンダリングされた別の例示的なサーフェスプレーン及びコンテンツ配置インジケータを示す図である。
図5D】本開示のいくつかの例による、複雑な表面に対する一定の位置における仮想コンテンツの別の例示的なレンダリングを示す図である。
図6】本開示のいくつかの例による、利用可能な空間がない表面を有するシーン内の強調表示されたサーフェスプレーン及びコンテンツ配置インジケータの例示的なレンダリングを示す図である。
図7】本開示のいくつかの例による、物理的表面に仮想コンテンツをアンカリングする例示的なプロセスを示すフローチャートである。
図8】本明細書で説明するいくつかの態様を実装する例示的なシステムアーキテクチャを示す図である。
【発明を実施するための形態】
【0024】
本開示の特定の態様及び実施形態が以下で提供される。当業者に明らかになるように、これらの態様及び実施形態のうちのいくつかが独立して適用されてもよく、それらのうちのいくつかは組み合わせて適用されてもよい。以下の説明では、説明のために、本出願の実施形態の完全な理解をもたらすために具体的な詳細が記載される。しかしながら、様々な実施形態がこれらの具体的な詳細なしに実践され得ることは明らかであろう。図及び説明は限定的であることが意図されていない。
【0025】
以下の説明は、例示的な実施形態を提供するにすぎず、本開示の範囲、適用可能性、又は構成を限定することを意図しない。むしろ、例示的な実施形態の以下の説明は、例示的な実施形態を実装することを可能にする説明を当業者に提供する。添付の特許請求の範囲に記載されるような本出願の範囲から逸脱することなく、要素の機能及び構成において様々な変更が加えられてもよいことを理解されたい。
【0026】
前に説明したように、エクステンデッドリアリティ(XR)デバイスは、ユーザが没入型仮想環境又はコンテンツを体験すること又はそれらと対話することを可能にし得る。現実的なXR体験を提供するために、XRデバイスは、仮想コンテンツを(たとえば、XRデバイスの1つ又は複数のカメラを介して)XRデバイスによって捕捉された物理世界のシーン又は画像と統合することができる。場合によっては、XRデバイスは、仮想物体及び現実物体の3次元位置合わせを実施することができる。場合によっては、XRデバイスは、物理世界における物体とXRデバイスとの相対的な姿勢及び動きを一致させることができる。たとえば、XRデバイスは、XRデバイス、物体、及び/又は実世界環境の相対位置と動きとを一致させる目的で、XRデバイス、物体、及び/又は実世界環境のマップの相対姿勢を計算するために追跡情報を使用し得る。XRデバイス、1つ又は複数の物体、及び/又は実世界環境の姿勢及び動きを使用して、XRデバイスは、実世界環境に対してコンテンツを納得のいく方法でレンダリングすることができる。相対姿勢情報は、仮想コンテンツを、ユーザの知覚された動作、並びにXRデバイス、物体、及び実世界環境の時空間状態と一致させるために使用され得る。
【0027】
物理世界のシーン又は画像内で仮想コンテンツをユーザに提示するときに、XRデバイスは、レンダリングされた仮想コンテンツが物理世界上の一定の空間/領域内に位置しているかのようにユーザに見えるように仮想コンテンツを構成することができる。場合によっては、XRデバイスが、物理世界内のどの空間/領域が、好適であるか(たとえば、物理世界内の物体によって遮断されていない、かつ/又は占有されていない、乱雑でないなど)、かつ/又は仮想コンテンツを描写/レンダリングする好適な表面を有するかを判定することが困難な場合がある。多くの場合、XRデバイスは、特定の環境内でXRデバイスによってレンダリングされた仮想コンテンツを管理及び/又は編成すること、並びに/あるいは、たとえば、環境内の物体及び/又は環境の態様(たとえば、環境のレイアウト、環境内の表面及び/又は空間の構成、環境内の任意の物体の配置など)によって引き起こされる遮断、レンダリングされた仮想コンテンツ及び環境内の物体によって引き起こされる乱雑さなど、特定の環境内で仮想コンテンツを提示するときの問題を回避することが困難な場合がある。
【0028】
いくつかの例では、XRデバイスは、物理世界上の一定の空間内に仮想コンテンツを配置することによって、XRデバイスによってレンダリングされた仮想コンテンツを編成しようと試みることができる。たとえば、XRデバイスは、仮想コンテンツを物理世界内の一定のエリア/領域に付加又はアンカリングすることによって、仮想コンテンツを編成しようと試みることができる。場合によっては、XRデバイスは、仮想コンテンツの一定の編成及び/又は配置を要求するユーザ入力を受信することができる。ユーザ入力に応じて、XRデバイスは、仮想コンテンツを物理世界内の一定のエリア/領域に付加又はアンカリングすることができる。言い換えれば、仮想コンテンツは、物理世界のシーン内の特定の空間/領域に対して固定された空間的関係を有するように、XRデバイスによってレンダリングされ得る。特定の空間/領域は、物理世界内の1つ又は複数の実物体に対応し得る。以下で詳細に説明するように、対応は、1つ又は複数の物体の表面との関連付けによるものであり得る。いくつかの例では、仮想コンテンツが3次元で表面と位置合わせされて見えるように仮想コンテンツの斜視図をレンダリングするために、物理世界のシーン内の表面の3次元配向が使用され得る。場合によっては、仮想コンテンツは、レンダリングされた仮想コンテンツと表面との間の固定された空間的関係がユーザ及び/又はビューの動きの下で維持されるように、表面にアンカリングされ得る。場合によっては、仮想コンテンツの斜視図は、物理世界内のユーザのビュー及び/又は位置の変化に適合される。
【0029】
本明細書で更に説明するように、いくつかの例では、XRデバイスは、物理世界のシーン内に仮想コンテンツを配置するために好適なかつ/又は提案されるエリア又は領域を提案及び/又は識別するコンテンツ配置インジケータを描写することができる。場合によっては、ユーザは、仮想コンテンツのコンテンツ配置インジケータを(たとえば、XRデバイスに提供されるユーザ入力を介して)手動で動かしてもよい。いくつかの例では、コンテンツ配置インジケータは、ユーザ入力(たとえば、ユーザがシーンにわたって仮想コンテンツアイテムをドラッグすることなど)に応じて動かされてよい。仮想コンテンツアイテムは、最初に、シーン内の第1のロケーションに平面図などの第1の遠近感でレンダリングされ得る。第1のロケーションは、事前定義されてよく、又はユーザによって手動で判定されてもよい。仮想コンテンツアイテムは、事前定義及び/又はユーザ定義され得る初期サイズでレンダリングされてよい。初期サイズは、ユーザ入力を通じて、かつ/又はユーザ入力(たとえば、ドラッグ入力など)に応じて、適合され得る。コンテンツ配置インジケータは、ある仮想コンテンツがXRデバイスによって配置されレンダリングされ得る、物理的環境内の表面及び/又はサーフェスプレーン内に描写されるエリア又は領域を表すこと及び/又は識別することができる。サーフェスプレーンは、物理的環境内の物体の実際の表面に関連付けられた仮想サーフェスプレーンであってよい。場合によっては、サーフェスプレーンは物体の表面と位置合わせされてよい。場合によっては、サーフェスプレーンは、物体の表面からオフセットされてよい。オフセットは、ユーザの視点に向けたものであってよい。他の場合には、サーフェスプレーンは物体の表面と一致してもよい。
【0030】
コンテンツ配置インジケータは、仮想コンテンツアイテムがユーザのために配置/レンダリングされ得る物理的環境の表面(及び/又はサーフェスプレーン)の特定の空間の少なくとも一部を示す、視覚的輪郭、ウィンドウ、ハッチング、形状(たとえば、バウンディングボックス又は任意の他の形状)などの視覚的要素を含み得る。場合によっては、コンテンツ配置インジケータは、物理的環境内の表面の特定の空間上への仮想コンテンツアイテムの収まり及び配置を描写する視覚要素を含み得る。コンテンツ配置インジケータ(たとえば、視覚要素)は、仮想コンテンツと同一又は類似の形状及び/又は構成を有し得る。したがって、コンテンツ配置インジケータ(たとえば、視覚要素)は、仮想コンテンツが物理的環境内でかつ/又は物理的環境に対してどのようにかつ/又はどこに見えるかをユーザに描写/レンダリングすることができる。
【0031】
物理的環境内で仮想コンテンツをレンダリングするときに、XRデバイスは、コンテンツ配置インジケータに/その中に仮想コンテンツを配置し、レンダリングすることができる。ユーザにとって、仮想コンテンツは、物理的環境内で、コンテンツ配置インジケータに関連付けられた、たとえば、コンテンツ配置インジケータによって輪郭が描写された、又は境界が定められた、空間(たとえば、エリア又は領域)に位置するように見えることがある。場合によっては、仮想コンテンツのコンテンツ配置インジケータを手動で動かすプロセスは、煩雑かつ不正確であり得る。たとえば、ユーザが、乱雑である(たとえば、物体で混雑している、散らかっている、利用可能な空間が限られているなど)かつ/又は複雑である(たとえば、不均一である、起伏のある/粗い/でこぼこの/テクスチャのある、上昇した、不規則である、非対称である、湾曲した、3次元の、一定のジオメトリのなど)物理的環境内の表面に仮想コンテンツを付加又はアンカリングしたい場合、仮想コンテンツが表面内及び/又は表面内の任意の好適な空間(たとえば、物体によって占有されていない又は遮断されていない空間、少なくとも閾値量の仮想コンテンツを収めることができる空間など)内に(たとえば、テキストコンテンツの可読性のために、最小サイズで)収まるかどうかを推定することは困難であり得る。場合によっては、仮想コンテンツが特定の表面若しくはサーフェスプレーン又は異なる表面若しくはサーフェスプレーンにより良好に収まり得るかどうか、又は仮想コンテンツを特定の表面内に配置することが、ユーザが仮想コンテンツによって遮蔽されることを望まない可能性がある(たとえば、仮想コンテンツが表面上に配置及びレンダリングされた後、ユーザに可視のままであることをユーザが望む可能性がある)、その表面内の任意の物体を遮蔽する可能性があるかどうかを判定することは困難であり得る。
【0032】
仮想コンテンツを物理的環境内の表面上にかつ/又は表面に対して配置するシステム、装置、プロセス(方法とも呼ばれる)、及びコンピュータ可読媒体(「システム及び技法」と総称される)について、本明細書で説明する。いくつかの例では、XRデバイスは、ユーザがXRデバイスによるレンダリングのために仮想コンテンツをアンカリングする(たとえば、配置する/取り付ける)ことができる物理的環境内のサーフェスプレーン(1つ又は複数の物体のそれぞれの表面上の平面/表面の平面、又は表面に対する平面)を識別することができる。このために、XRデバイスは、物理的環境内の1つ又は複数の物体を識別し、XRデバイスに対する1つ又は複数の物体の相対姿勢を判定し、1つ又は複数の物体の1つ又は複数の表面を識別することができる。XRデバイスは、仮想コンテンツを配置/描画する特定のサーフェスプレーンをユーザが選択するかつ/又は受け入れるのを支援するために、識別されたサーフェスプレーンの指示及び/又は提案をユーザに提供することができる。指示は、サーフェスプレーンの全体又は一部のみを強調表示してもよく、又は仮想コンテンツの配置のためにサーフェスプレーンの全体又は一部のみを、たとえば、視覚的輪郭によって示し得る、コンテンツ配置インジケータの形態であってよい。XRデバイスは、仮想コンテンツの配置及びレンダリングのためにユーザによって選択及び/又は受け入れられたそのようなサーフェスプレーンのいずれかの上に仮想コンテンツを描写するような方法で仮想コンテンツをレンダリングすることができる。
【0033】
たとえば、場合によっては、コンテンツ配置インジケータが物理的環境のシーンを通って/にわたって動かされているかのようにユーザに見えるように、XRデバイスのユーザがコンテンツ配置インジケータのレンダリングを動かすと、XRデバイスは、レンダリングのために仮想コンテンツがアンカリングされ得る物理的環境内の任意の好適なサーフェスプレーンを検出し、強調表示することができる。コンテンツ配置インジケータは、物理的環境内の仮想コンテンツの配置用のサーフェスプレーン上の空間を表すことができる。いくつかの例では、コンテンツ配置インジケータは、仮想コンテンツがコンテンツ配置インジケータの描写/識別された位置でコンテンツ配置インジケータにスナップされる(たとえば、そこに/その中に配置される、そこにアンカリングされるなど)場合に仮想コンテンツによって占有されている(たとえば、仮想コンテンツをレンダリングするために使用される)物理的環境内のサーフェスプレーンの対応する空間を示すために、仮想コンテンツの輪郭、形状、及び/又は構成を表現及び/又は識別することができる。ユーザは、物理的環境内のサーフェスプレーン内のどこに仮想コンテンツを配置するかを判定するために、コンテンツ配置インジケータを使用することができる。
【0034】
いくつかの例では、ユーザは、コンテンツ配置インジケータ内で、XRデバイスによって強調表示され得るサーフェスプレーン内のコンテンツ配置インジケータの対応するロケーション(たとえば、描写された/識別されたロケーション)に仮想コンテンツを配置することを選択及び/又は受け入れることができる。たとえば、ユーザは、仮想コンテンツを、物理的環境のシーン又は画像内(たとえば、サーフェスプレーン内)のコンテンツ配置インジケータの選択された位置で、コンテンツ配置インジケータにアンカリングするために、コンテンツ配置インジケータの現在位置(たとえば、描写された/識別された位置)を選択することができる。XRデバイスは、コンテンツ配置インジケータ内で、物理的環境のシーン内(たとえば、サーフェスプレーン内)のコンテンツ配置インジケータの選択された位置に仮想コンテンツをレンダリングすることができる。たとえば、XRデバイスは、コンテンツ配置インジケータ内で、コンテンツ配置インジケータの選択された位置に対応するサーフェスプレーンの特定のロケーションに仮想コンテンツをレンダリングすることができる。
【0035】
場合によっては、XRデバイスは、物理的環境内のサーフェスプレーン(単数又は複数)を強調表示する(又は場合によっては、視覚的に描写/識別する)ことができる。いくつかの例では、XRデバイスは、コンテンツ配置インジケータを提供するためにサーフェスプレーン(単数又は複数)の全体又は一部を強調表示することができる。代替又は追加として、仮想コンテンツアイテムの配置のためにサーフェスプレーンの特定の空間を示すために、たとえば、視覚的輪郭の形態の(更なる)コンテンツ配置インジケータがサーフェスプレーン(単数又は複数)内/上にレンダリングされてもよい。XRデバイスが(たとえば、ユーザ入力、デバイス設定、ユーザ選好、及び/又は動的調整判定に基づいて)物理的環境のシーンを通して/にわたってコンテンツ配置インジケータを動かすと、XRデバイスは、強調表示されたサーフェスプレーン(及び/又はサーフェスプレーンの強調表示された部分)を変更することができる。いくつかの例では、XRデバイスは、物理的環境内のいくつかの候補サーフェスプレーンを識別し、物理的環境内の特定のサーフェスプレーンを強調表示することができる。XRデバイスが物理的環境のシーンを通して/にわたってコンテンツ配置インジケータを動かすときに、XRデバイスは、候補サーフェスプレーンとは異なるサーフェスプレーンを強調表示することができる。
【0036】
XRデバイスは、サーフェスプレーン全体又はサーフェスプレーンの一部を強調表示することができる。いくつかの例では、XRデバイスは、サーフェスプレーン全体を強調表示し、強調表示されたサーフェスプレーン内のコンテンツ配置インジケータをユーザに提示することができる。場合によっては、提示されたコンテンツ配置インジケータは、強調表示されたサーフェスプレーン内のより小さい強調表示(たとえば、強調表示された部分/領域)、強調表示されたサーフェスプレーン内の視覚的インジケータ、強調表示されたサーフェスプレーン内の投影されたスロット/エリア、強調表示されたサーフェスプレーン内の仮想コンテンツの視覚的輪郭(及び/又は境界)、及び/又は強調表示されたサーフェスプレーン内の仮想コンテンツ配置の表現を含み得る。コンテンツ配置インジケータ(たとえば、より小さい強調表示、視覚的インジケータ、投影されたスロット/エリア、視覚的輪郭、仮想コンテンツ配置の表現など)は、仮想コンテンツが強調表示されたサーフェスプレーン内のどこに配置され得るかを示す/識別することができる。場合によっては、コンテンツ配置インジケータは、仮想コンテンツが強調表示されたサーフェスプレーン内のどこに、かつ/若しくはどのように配置されるか、かつ/又は収まるかを描写/識別することができる。
【0037】
場合によっては、ユーザが、強調表示されたサーフェスプレーン内の示されたロケーション(たとえば、提案された及び/又は描写されたロケーション)におけるコンテンツ配置インジケータの配置を(たとえば、ユーザ入力を介して)受け入れ、かつ/又は示されたロケーションに仮想コンテンツアイテムを(たとえば、コンテンツ配置インジケータの配置/再配置中/後に)解放するときに、XRデバイスは、強調表示されたサーフェスプレーン内の示されたロケーションにコンテンツ配置インジケータをスナップ(たとえば、アンカリング/取り付け/配置)することができる。いくつかの例では、XRデバイスは、仮想コンテンツを、強調表示されたサーフェスプレーン内の示されたロケーション内のコンテンツ配置インジケータに一致させること(たとえば、位置合わせする、サイズ決定/サイズ変更する、収める、配置/再配置する、適合させるなど)ができる。たとえば、XRデバイスは、示されたロケーションにおけるコンテンツ配置インジケータの位置に従って、仮想コンテンツを空間内の様々な次元に沿って(たとえば、空間内のX軸、Y軸、及び/又はZ軸に沿って)配置する(たとえば、向き/回転及び/又はロケーションを設定する)ことができる。例示のために、XRデバイスは、仮想コンテンツの位置を、示されたロケーションにおけるコンテンツ配置インジケータ(及び/又は関連付けられた平面)の位置に一致させるように、仮想コンテンツを空間内に配置することができる。場合によっては、XRデバイスは、コンテンツ配置インジケータのサイズ/スケールに従って仮想コンテンツをサイズ決定/スケーリングすることができる。たとえば、XRデバイスは、仮想コンテンツアイテムがコンテンツ配置インジケータ内に収まるように、コンテンツ配置インジケータのサイズ/スケールに従って仮想コンテンツのサイズ/スケールを調整することができる。
【0038】
場合によっては、上記で説明したような仮想コンテンツのサイズ決定/スケーリング、配置、及び/又は位置調整の前に、XRデバイスは、示されたロケーションに関連付けられた、強調表示されたサーフェスプレーンの空間内に収まるように、かつ/又は強調表示されたサーフェスプレーンの空間の構成(たとえば、ロケーション、向き/回転、遠近感、サイズ/スケール、形状/ジオメトリなど)に一致するように、コンテンツ配置インジケータを構成(たとえば、配置、サイズ決定/スケーリング、成形など)することができる。たとえば、XRデバイスは、コンテンツ配置インジケータが、示されたロケーションに関連付けられた、強調表示されたサーフェスプレーンの空間内に収まるように(かつ/又は適合するように)、かつ/又は強調表示されたサーフェスプレーンの空間の構成(たとえば、ロケーション、向き/回転、遠近感、サイズ/スケール、形状/ジオメトリなど)に一致するように、コンテンツ配置インジケータを構成又は再構成(たとえば、配置、サイズ決定/スケーリング、成形/再成形など)することができる。次いで、XRデバイスは、コンテンツ配置インジケータの構成(たとえば、ロケーション、向き/回転、遠近感、サイズ/スケール、形状/ジオメトリなど)に従って仮想コンテンツを構成又は再構成(たとえば、配置/再配置、サイズ決定/スケーリング、成形/再成形など)することができる。XRデバイスは、仮想コンテンツがコンテンツ配置インジケータ内に収まるように(かつ/又は適合するように)仮想コンテンツを構成又は再構成することができ、仮想コンテンツはまた、示されたロケーションに関連付けられた、強調表示されたサーフェスプレーンの空間にアンカリングされてよく、かつ/又は示されたロケーションに関連付けられた、強調表示されたサーフェスプレーンの空間の構成に従って構成されてよい。
【0039】
場合によっては、強調表示されたサーフェスプレーンに関連付けられた表面が乱雑である(たとえば、物体で混雑している、散らかっている、利用可能な空間が限られているなど)場合、XRデバイスは、強調表示されたサーフェスプレーン内での仮想コンテンツの容易な配置及び/又は閲覧のために、強調表示(及び/又は強調表示されたサーフェスプレーン)から乱雑さのうちの少なくとも一部を遮蔽すること(たとえば、覆う/隠す、除去するなど)ができる。追加又は代替として、強調表示されたサーフェスプレーンに関連付けられた表面が複雑である(たとえば、不均一である、起伏のある/粗い/でこぼこの/テクスチャがある、上昇している、不規則である、非対称である、湾曲した、3次元である、稀な形状であるなどの)場合、XRデバイスは、場合によっては、強調表示されたサーフェスプレーン内の仮想コンテンツのより容易な配置及び/又は閲覧のために、強調表示されたサーフェスプレーンに関連付けられた再構成(たとえば、平滑化/平坦化、再成形など)された表面に基づいて、強調表示されたサーフェスプレーンを調整することができる。XRデバイスは、仮想コンテンツを調整されたサーフェスプレーン内に配置し、レンダリングすることができる。場合によっては、強調表示されたサーフェスプレーンに関連付けられた表面が複雑である場合、XRデバイスは、平面内の仮想コンテンツ(及び/又はコンテンツ配置インジケータ)のより容易な配置及び/又は閲覧のために、仮想コンテンツ(及び/又はコンテンツ配置インジケータ)をその表面の上方に(たとえば、その表面の上方の閾値距離/高さに)位置する/配置された(再構成された)表面に平行する隆起したサーフェスプレーン上に配置及び/又はレンダリングし得る。
【0040】
いくつかの例では、XRデバイスは、コンテンツ配置インジケータに関連付けられた仮想コンテンツアイテムと同じアスペクト比で、強調表示されたサーフェスプレーン内にコンテンツ配置インジケータをレンダリングすることができる。場合によっては、XRデバイスは、強調表示されたサーフェスプレーン内の1つ又は複数の利用可能な空間内に収まるように、コンテンツ配置インジケータ及びコンテンツ配置インジケータに関連付けられた仮想コンテンツアイテムをサイズ変更することができる。いくつかの例では、ユーザが強調表示されたサーフェスプレーンにわたって仮想コンテンツアイテムを動かすと、XRデバイスは、強調表示されたサーフェスプレーン内(及び、場合によっては、他の強調表示されたサーフェスプレーン内)の利用可能な空間にコンテンツ配置インジケータを動かすことができる。場合によっては、ユーザが強調表示されたサーフェスプレーンにわたって仮想コンテンツアイテムを動かすと、XRデバイスは、コンテンツ配置インジケータに収まることができる(たとえば、少なくとも閾値量のコンテンツ配置インジケータが収まる)利用可能な空間にコンテンツ配置インジケータを動かすだけでよい。コンテンツ配置インジケータを動かすときに、XRデバイスは、強調表示されたサーフェスプレーン内の乱雑である又は利用不可能なエリアをスキップし、強調表示されたサーフェスプレーン(又は別の利用可能なサーフェスプレーン)内の次の利用可能な空間又は隣接する利用可能な空間に向かってコンテンツ配置インジケータを動かすことができる。いくつかの例では、XRデバイスは、ユーザ(及び/又はXRデバイス)が仮想コンテンツアイテムを動かしているのと同じ方向に、次の/隣接する利用可能な空間に向かってコンテンツ配置インジケータを動かすことができる。場合によっては、ユーザは、強調表示されたサーフェスプレーン内の利用可能な空間にコンテンツ配置インジケータを解放及び/又はアンカリングするために、XRデバイスに入力を提供することができる。たとえば、ユーザが(たとえば、ユーザ入力を通して)仮想コンテンツアイテムを解放するときに、XRデバイスは、ユーザが仮想コンテンツアイテムを解放したロケーションに対応するサーフェスプレーンの空間/領域にコンテンツ配置インジケータをスナップすることができる。コンテンツ配置インジケータをロケーションにスナップするときに、XRデバイスは、コンテンツ配置インジケータの構成(たとえば、向き/回転、遠近感、サイズ/スケール、形状など)をそのロケーションに関連付けられた空間の構成に一致させることができる。
【0041】
場合によっては、表面があまりにも乱雑であるか又は不均一である(たとえば、閾値を上回る)場合、XRデバイスは、強調表示されたサーフェスプレーンをその表面(及び/又はその部分)上のより高い地点からある距離(たとえば、その上方、その前など)にレンダリングすることができる。ユーザがその表面上で仮想コンテンツを解放するときに、XRデバイスは、強調表示されたサーフェスプレーンと同じレベルに仮想コンテンツを配置することができる。表面の残りの部分の平均高さ及び/又は表面の他の部分の高さから一定の距離にある/それを上回る(たとえば、閾値量だけ高い)アイテムが表面上に存在する場合、XRデバイスは、強調表示されたサーフェスプレーンが表面の残りの部分のはるか上方又は前に配置されないように、それらのアイテムを遮蔽又は無視することができる。
【0042】
場合によっては、物理的環境は、コンテンツ配置インジケータ及び/又は仮想コンテンツアイテムがレンダリングされ得る複数の表面を有し得る。XRデバイスは、ユーザ又はXRデバイスがコンテンツ配置インジケータ又は仮想コンテンツアイテムを動かすと、特定のサーフェスプレーンを強調表示することができる。場合によっては、ユーザ又はXRデバイスがコンテンツ配置インジケータ又は仮想コンテンツアイテムをサーフェスプレーン間で動かすとき(かつ/又はコンテンツ配置インジケータ又は仮想コンテンツアイテムが複数のサーフェスプレーンに重複するとき)、強調表示されたサーフェスプレーンのちらつきを防止するために、XRデバイスは、コンテンツ配置インジケータ又は仮想コンテンツアイテムの閾値量がサーフェスプレーンを(たとえば、ユーザの視点から)越えるまで、サーフェスプレーンを強調表示するのを待つことができる(又は、サーフェスプレーンを強調表示しないことができる)。
【0043】
場合によっては、XRデバイスが、そのアスペクト比で仮想コンテンツアイテムに利用可能な空間がないか、又は利用可能な空間が仮想コンテンツを配置するのに最適でないと判定した場合、XRデバイスは、利用可能な空間を最大化する異なるアスペクト比を提案することができる。たとえば、XRデバイスは、利用可能な空間に収める又は一致させるように、コンテンツ配置インジケータ又は仮想コンテンツアイテムのアスペクト比を調整することができる。XRデバイスは、調整されたアスペクト比に従って、利用可能な空間上にコンテンツ配置インジケータ又は仮想コンテンツアイテムをレンダリングすることができる。たとえば、仮想コンテンツが広いアスペクト比に従って構成されており、利用可能な空間が広いアスペクト比に一致しない又は収まり得ない場合、XRデバイスは、より狭いアスペクト比に従って利用可能な空間内にコンテンツ配置インジケータをレンダリングすることができる。より狭いアスペクト比でレンダリングされたコンテンツ配置インジケータは、仮想コンテンツがより狭いアスペクト比に従って利用可能な空間上にレンダリングされ得ることをユーザに示すことができる。ユーザが仮想コンテンツを解放するか、又は仮想コンテンツをコンテンツ配置インジケータのロケーションに配置する場合、XRデバイスは、仮想コンテンツをより狭いアスペクト比に変更し、より狭いアスペクト比に従って仮想コンテンツをそのロケーションにレンダリングすることができる。
【0044】
場合によっては、XRデバイスは、仮想現実(VR)セッションの文脈で本明細書において説明する技法を実装することができる。たとえば、XRデバイスは、XRデバイスが、物理的環境(たとえば、物理的環境内の1つ又は複数の表面を含む)の画像(単数又は複数)を捕捉し、ユーザの周りの物理的環境の可視性を提供する目的で物理的環境(たとえば、1つ又は複数の表面を含む)をVRディスプレイ内にレンダリングするために捕捉された画像(単数又は複数)を使用するビデオパススルーVRアプリケーション内にコンテンツ配置インジケータを実装し得る。ここで、XRデバイスは、物理的環境の捕捉された画像(単数又は複数)を使用して、XRデバイスによってレンダリング/描写された物理的環境内にコンテンツ配置インジケータをレンダリングすることができる。
【0045】
データを処理する、本明細書で説明するシステム及び技法の例が、図1図8に示され、以下で説明される。図1は、本開示のいくつかの例による、例示的なエクステンデッドリアリティ(XR)システム100を示す図である。XRシステム100は、本明細書で開示するシステム及び技法を実装し得る。XRシステム100は、たとえば、エクステンデッドリアリティタスク及び動作(たとえば、追跡、マッピング、位置特定、コンテンツレンダリング、姿勢推定、物体検出/認識など)、画像/ビデオ処理及び/若しくは後処理、データ処理及び/若しくは後処理、コンピュータグラフィックス、マシンビジョン、オブジェクトモデリング及び位置合わせ、マルチメディアレンダリング及び/若しくは合成、並びに/又は任意の他のデータ処理タスク、効果、及び/若しくは計算などの様々なタスク及び動作を実施することができる。
【0046】
本明細書で使用される場合、物理的環境のシーン内の表面又は空間の上又は中に仮想コンテンツアイテムを配置することは、仮想コンテンツアイテムがシーン内の表面又は空間の上又は中に位置しているかのように仮想コンテンツアイテムがXRシステム100のユーザに見えるように、表面又は空間に対応するシーン(ロケーション又はエリア)の3次元(three-dimensional、3D)マップ内のロケーション又はエリアの上又は中に仮想コンテンツアイテムを配置又はアンカリングすることを意味する。同様に、本明細書で使用される場合、物理的環境のシーン内の表面又は空間の上又は中にコンテンツ配置インジケータを配置することは、仮想コンテンツアイテムがシーン内の表面又は空間の上又は中に位置しているかのように仮想コンテンツアイテムがXRシステム100のユーザに見えるように、表面又は空間に対応するシーン(ロケーション又はエリア)の3Dマップ内のロケーション又はエリアの上又は中にコンテンツ配置インジケータを配置又はアンカリングすることを意味する。
【0047】
いくつかの例では、XRシステム100は追跡及び位置特定、姿勢推定、(たとえば、XRシステム100が位置する)XRシステム100の周りの物理世界/環境(たとえば、シーン)のマッピング、XR体験の一部として、スクリーン、ディスプレイ、及び/又は可視平面/領域上の仮想コンテンツの配置及びレンダリングを実施することができる。たとえば、XRシステム100は、物理世界におけるシーンのマップ(たとえば、3次元(3D)マップ)を生成し、シーンに対する(たとえば、シーンの3Dマップに対する)XRシステム100の姿勢(たとえば、ロケーション及び向き)を追跡し、仮想コンテンツを(たとえば、表面、サーフェスプレーン、表面又はサーフェスプレーン内の空間など、シーン内の物理的ロケーションに対応する)シーンのマップ上の特定のロケーション(単数又は複数)内に配置及び/又はアンカリングし、仮想コンテンツアイテム及び/又は仮想コンテンツ配置インジケータが、仮想コンテンツアイテムが配置及び/又はアンカリングされるシーンのマップ上の特定のロケーションに対応するシーン内の物理的ロケーションにあるように見えるように、仮想コンテンツアイテム及び/又は仮想コンテンツ配置インジケータをディスプレイ/スクリーンにレンダリングすることができる。
【0048】
図1に示す例では、XRシステム100は、1つ又は複数の画像センサ102、1つ又は複数の慣性センサ104(たとえば、1つ又は複数の慣性測定ユニット)、1つ又は複数の他のセンサ106(たとえば、1つ又は複数の無線検出及び測距(レーダー)センサ、光検出及び測距(light detection and ranging、LIDAR)センサ、音響/音センサ、赤外線(infrared、IR)センサ、磁力計、タッチセンサ、レーザー距離計、光センサ、近接センサ、モーションセンサ、アクティブピクセルセンサ、マシンビジョンセンサ、超音波センサなど)、記憶装置108、コンピュート構成要素110、XRエンジン120、インターフェース管理エンジン122(たとえば、ユーザインターフェース管理エンジン)、画像処理エンジン124、及びレンダリングエンジン126を含む。図1に示す構成要素102~126は、例示及び説明のために提供される非限定的な例であり、他の例は、図1に示すものよりも多くの、より少ない、かつ/又は異なる構成要素を含み得ることに留意されたい。たとえば、場合によっては、XRシステム100は、図1に示されていない、1つ又は複数のディスプレイデバイス、1つ又は複数の他の処理エンジン、1つ又は複数の受信機(たとえば、全地球測位システム、全地球航法衛星システムなど)、1つ又は複数の通信デバイス(たとえば、無線周波数(radio frequency、RF)インターフェース及び/又は任意の他の無線/有線通信受信機/送信機)、1つ又は複数の他のハードウェア構成要素、並びに/又は1つ又は複数の他のソフトウェア及び/若しくはハードウェア構成要素を含んでよい。XRシステム100によって実施され得る例示的なアーキテクチャ及び例示的なハードウェア構成要素は、図8に関連して以下で更に説明される。
【0049】
更に、簡素化及び説明のために、1つ又は複数の画像センサ102は、本明細書では(たとえば、単数形で)画像センサ(単数又は複数)102と言及されることになる。しかしながら、前述したように、XRシステム100は、単一の画像センサ又は複数の画像センサを含んでよい。また、単数形又は複数形でのXRシステム100の構成要素のいずれへの言及も、XRシステム100によって実装されるそのような構成要素の数を、1つ又は2つ以上に制限するものと解釈されるべきでない。たとえば、単数形でのプロセッサへの言及は、XRシステム100によって実装されるプロセッサの数を1つに制限するものと解釈されるべきでない。図1に示す構成要素のいずれかについて、XRシステム100はそのような構成要素(単数又は複数)のうちの1つのみ又はそのような構成要素(単数又は複数)のうちの2つ以上を含んでよいことを当業者は認識されよう。
【0050】
XRシステム100は、単一のコンピューティングデバイス又は複数のコンピューティングデバイスの一部であってよく、又はそれらによって実装されてよい。いくつかの例では、XRシステム100は、カメラシステム(たとえば、デジタルカメラ、IPカメラ、ビデオカメラ、セキュリティカメラなど)、電話システム(たとえば、スマートフォン、セルラー電話、会議システムなど)、デスクトップコンピュータ、ラップトップ若しくはノートブックコンピュータ、タブレットコンピュータ、セットトップボックス、スマートテレビ、ディスプレイデバイス、ゲームコンソール、ビデオストリーミングデバイス、IoT(Internet-of-Things、モノのインターネット)デバイス、スマートウェアラブルデバイス(たとえば、ヘッドマウントディスプレイ(head-mounted display、HMD)、スマートグラスなど)、又は任意の他の好適な電子デバイス(単数又は複数)などの電子デバイス(又は複数のデバイス)の一部であってよい。
【0051】
いくつかの実装形態では、1つ又は複数の画像センサ102、慣性センサ(単数又は複数)104、他のセンサ(単数又は複数)106、記憶装置108、コンピュート構成要素110、XRエンジン120、インターフェース管理エンジン122、画像処理エンジン124、及びレンダリングエンジン126は、同じコンピューティングデバイスの一部であってよい。たとえば、場合によっては、1つ又は複数の画像センサ102、慣性センサ(単数又は複数)104、他のセンサ(単数又は複数)106、記憶装置108、コンピュート構成要素110、XRエンジン120、インターフェース管理エンジン122、画像処理エンジン124、及びレンダリングエンジン126は、スマートフォン、ラップトップ、タブレットコンピュータ、スマートウェアラブルデバイス、ゲームシステム、及び/又は任意の他のコンピューティングデバイスに統合され得る。他の実装形態では、1つ又は複数の画像センサ102、慣性センサ(単数又は複数)104、他のセンサ(単数又は複数)106、記憶装置108、コンピュート構成要素110、XRエンジン120、インターフェース管理エンジン122、画像処理エンジン124、及びレンダリングエンジン126は、2つ以上の別個のコンピューティングデバイスの一部であってよい。たとえば、場合によっては、構成要素102~126のうちのいくつかは、1つのコンピューティングデバイスの一部であってよいか、又はそれらによって実装されてよく、残りの構成要素は、1つ又は複数の他のコンピューティングデバイスの一部であってよく、又はそれらによって実装されてよい。
【0052】
画像センサ(単数又は複数)102は、デジタルカメラセンサ、ビデオカメラセンサ、スマートフォンカメラセンサ、テレビ又はコンピュータなどの電子装置上の画像/ビデオ捕捉デバイス、カメラなどの、任意の画像及び/又はビデオセンサ若しくは捕捉デバイスを含むことができる。場合によっては、画像センサ(単数又は複数)102は、XRデバイス(たとえば、HMD、スマートグラスなど)、デジタルカメラ、スマートフォン、スマートテレビ、ゲームシステムなどの、カメラ又はコンピューティングデバイスの一部であってよい。いくつかの例では、画像センサ(単数又は複数)102は、デュアルカメラアセンブリなどの複数カメラアセンブリの一部であってよい。画像センサ(単数又は複数)102は、画像及び/又はビデオコンテンツ(たとえば、未加工の画像及び/又はビデオデータ)を捕捉することができ、これは、次いで、本明細書で説明するコンピュート構成要素110、XRエンジン120、インターフェース管理エンジン122、画像処理エンジン124、及び/又はレンダリングエンジン126によって処理され得る。
【0053】
いくつかの例では、画像センサ(単数又は複数)102は、画像データを捕捉し、画像データに基づいてフレームを生成すること、及び/又は画像データ又はフレームを、処理のために、XRエンジン120、インターフェース管理エンジン122、画像処理エンジン124、及び/又はレンダリングエンジン126に提供することができる。フレームは、ビデオシーケンスのビデオフレーム又は静止画像を含み得る。フレームは、シーンを表すピクセルアレイを含み得る。たとえば、フレームは、ピクセルごとに赤、緑、及び青の色成分を有する赤-緑-青(red-green-blue、RGB)フレーム、ピクセルごとに1つの輝度成分及び2つの色差(色)成分(赤の色差及び青の色差)を有する、輝度、赤色差、青色差(luma, chroma-red, chroma-blue、YCbCr)フレーム、又は任意の他の好適なタイプのカラー又はモノクロ画像であり得る。
【0054】
慣性センサ(単数又は複数)104は、XRシステム100の特定の力及び角速度を検出することができる。場合によっては、慣性センサ(単数又は複数)104は、XRシステム100の向きを検出することができる。慣性センサ(単数又は複数)は、線形加速度測定値、回転速度測定値、及び/又はヘディング測定値を生成することができる。いくつかの例では、慣性センサ(単数又は複数)104は、XRシステム100のピッチ、ロール、及びヨーを測定するために使用され得る。他のセンサ(単数又は複数)106は、XRシステム100によって使用される他の測定値を検出し、生成することができる。場合によっては、XRエンジン120は、XRシステム100の姿勢を追跡するために、画像センサ(単数又は複数)102、慣性センサ(単数又は複数)104、及び/又は他のセンサ(単数又は複数)106からのデータ及び/又は測定値を使用し得る。上述のように、他の例では、XRシステム100は、磁力計、音響/音センサ、IRセンサ、マシンビジョンセンサ、スマートシーンセンサ、レーダーセンサ、LIDARセンサ、光センサなどの他のセンサを含んでもよい。
【0055】
記憶装置108は、データを記憶する任意の記憶デバイス(単数又は複数)であってよい。その上、記憶装置108は、XRシステム100の構成要素のいずれからのデータも記憶することができる。たとえば、記憶装置108は、画像センサ(単数又は複数)102からのデータ(たとえば、画像データ又はビデオデータ)、慣性センサ(単数又は複数)104からのデータ(たとえば、測定値)、他のセンサ(単数又は複数)106からのデータ(たとえば、測定値)、コンピュート構成要素110からのデータ(たとえば、処理パラメータ、選好、仮想コンテンツ、レンダリングコンテンツ、シーンマップ、追跡及び位置特定データ、物体検出データ、構成、XRアプリケーションデータ、認識データ、出力など)、XRエンジン120からのデータ、インターフェース管理エンジン122からのデータ、画像処理エンジン124からのデータ、及び/又はレンダリングエンジン126からのデータ(たとえば、出力フレーム)を記憶することができる。いくつかの例では、記憶装置108は、コンピュート構成要素110による処理のためにフレームを記憶するバッファを含んでよい。
【0056】
1つ又は複数のコンピュート構成要素110は、中央処理ユニット(central processing unit、CPU)112、グラフィックス処理ユニット(graphics processing unit、GPU)114、デジタルシグナルプロセッサ(digital signal processor、DSP)116、及び/又は画像信号プロセッサ(image signal processor、ISP)118を含んでよい。コンピュート構成要素110は、画像増強、コンピュータビジョン、グラフィックスレンダリング、エクステンデッドリアリティ(たとえば、追跡、位置特定、姿勢推定、マッピング、コンテンツアンカリング、コンテンツレンダリングなど)、画像/ビデオ処理、センサ処理、認識(たとえば、テキスト認識、顔認識、物体認識、特徴認識、追跡又はパターン認識、シーン認識、遮蔽検出など)、機械学習、フィルタリング、物体検出、及び本明細書で説明する様々な動作のいずれかなど、様々な動作を実施することができる。図1に示す例では、コンピュート構成要素110は、XRエンジン120、インターフェース管理エンジン122、画像処理エンジン124、及びレンダリングエンジン126を実装することができる。他の例では、コンピュート構成要素110は、1つ又は複数の他の処理エンジンを実装することもできる。
【0057】
XRエンジン120、インターフェース管理エンジン122、画像処理エンジン124、及びレンダリングエンジン126(並びに任意の他の処理エンジン)用の動作は、コンピュート構成要素110のいずれかによって実装され得る。1つの例示的な例では、レンダリングエンジン126の動作は、GPU114によって実行され得、XRエンジン120、インターフェース管理エンジン122、及び画像処理エンジン124の動作は、CPU112、DSP116、及び/又はISP118によって実行され得る。場合によっては、コンピュート構成要素110は、本明細書で説明する様々な動作のいずれかを実施する、他の電子回路若しくはハードウェア、コンピュータソフトウェア、ファームウェア、又はそれらのどの組合せも含み得る。
【0058】
いくつかの例では、XRエンジン120は、画像センサ(単数又は複数)102、慣性センサ(単数又は複数)104、他のセンサ(単数又は複数)106、及び/又は1つ又は複数のLIDAR、レーダー、超音波センサ、IRセンサなど、XRシステム100上の1つ又は複数のセンサからのデータに基づいてXR動作を実施することができる。いくつかの例では、XRエンジン120は、追跡、位置特定、姿勢推定、マッピング、コンテンツアンカリング動作、及び/又は任意の他のXR動作/機能を実施することができる。
【0059】
インターフェース管理エンジン122は、XRインターフェース及び/又はインターフェースオブジェクトなど、XRシステム100によって提示/レンダリングされるインターフェースコンテンツを管理及び/又は生成することができる。たとえば、インターフェース管理エンジン122は、グラフィカルユーザインターフェース、制御物体、本明細書で説明するコンテンツ配置インジケータ、本明細書で説明する表面及び/又はサーフェスプレーン強調表示などの視覚的インジケータ、インターフェース要素などを管理及び/又は生成することができる。いくつかの例では、インターフェース管理エンジン122は、XR体験の間に、ユーザインターフェース、視覚的インジケータ、制御物体などをどのように、どこで、かつ/又はいつレンダリングするかを判定及び/又は管理するために、様々な動作を実施することができる。XR体験は、XRコンテンツ(たとえば、仮想現実コンテンツ、拡張現実コンテンツ、複合現実コンテンツなど)をXRシステム100に関連付けられたユーザ(たとえば、XRシステム100を装着しているユーザ、及び/又は場合によっては、XR体験のためにXRシステム100を使用しているユーザに提示するためにXRシステム100を使用することを含み得る。
【0060】
いくつかの例では、XRコンテンツ及びXR体験は、たとえば、とりわけ、XRゲーム体験、XR教室体験、XR買い物体験、XR娯楽体験、XR活動(たとえば、動作、トラブルシューティング活動など)などの特定のXR体験を提供するXRアプリケーションを通じてXRシステム100によって提供され得る。XR体験の間、ユーザは、XRシステム100を使用して仮想コンテンツを閲覧及び/又は仮想コンテンツと対話することができる。場合によっては、ユーザは、仮想コンテンツを閲覧及び/又は仮想コンテンツと対話することができると共に、ユーザの周りの物理的環境を閲覧及び/又は物理的環境と対話することも可能であり、ユーザが、物理的環境と、物理的環境と混合又は統合された仮想コンテンツとの間の没入型体験を有することを可能にする。
【0061】
いくつかの例では、インターフェース管理エンジン122は、シーン内の物体(たとえば、縁、表面、表面上のアイテム、窓、ドア、壁、テーブル、本、デバイス、椅子など)、シーン内の平面などを検出し、シーン及び/又はシーン内の物体の特性を識別し、シーン内の遮蔽を識別するなどのために、画像センサ(単数又は複数)102、慣性センサ(単数又は複数)104、他のセンサ(単数又は複数)106、及び/又は任意の他のセンサからのデータを使用することができる。いくつかの例では、インターフェース管理エンジン122は、他のユーザデバイスからのデータ若しくは他のユーザデバイスによって報告されたデータ、及び/又はXRシステム100のユーザによって提供されたデータなど、他のデバイス又はアプリケーションからのデータを使用することもできる。
【0062】
いくつかの例では、インターフェース管理エンジン122は、ユーザインターフェース、制御物体、コンテンツ配置インジケータ、表面強調表示、サーフェスプレーン強調表示などをレンダリングするために、XRエンジン120及び/又はレンダリングエンジン126と協調することができる。本明細書で更に説明するように、いくつかの例では、インターフェース管理エンジン122は、レンダリングのために仮想コンテンツが配置され得るシーン内の表面を検出することができ、XRシステム100は、ユーザに対するそのような表面を視覚的に識別することができる。たとえば、インターフェース管理エンジン122は、シーン内の表面の構成(たとえば、サイズ、形状、向き、遠近感、ロケーション、勾配など)を判定し、表面上に位置する任意の物体を検出し、その表面に関連付けられた、たとえば、表面と位置合わせされた、かつ/又は表面からオフセットされた、サーフェスプレーン内に、レンダリングのために特定の仮想コンテンツアイテムが配置され得る任意の利用可能な空間があるかどうかを判定することができる。サーフェスプレーン内の利用可能な空間は、検出された物体のいずれによっても遮蔽されないそのような空間として判定され得る。表面からオフセットされているサーフェスプレーンについては、オフセットの値を変更することによって、利用可能な(遮蔽されていない)空間が修正され得るように、オフセットの値に応じて、物体の一部又は全てがサーフェスプレーンによって遮蔽され得る。
【0063】
場合によっては、XRシステム100は(たとえば、XRエンジン120、インターフェース管理エンジン122、画像処理エンジン124、及び/又はレンダリングエンジン126を使用して)ユーザに対して(たとえば、強調表示、ハッチング、輪郭描写、表面を利用可能なものとして識別するために描写された表面の視覚的属性の変更などを介して)サーフェスプレーンを視覚的に識別することができ、インターフェース管理エンジン122は、サーフェスプレーン上の利用可能な/遮蔽されていない空間内に位置するようにユーザに見えるコンテンツ配置インジケータを描写することができる。コンテンツ配置インジケータは、特定の仮想コンテンツアイテムを配置してレンダリングする候補ロケーションとして利用可能な空間をユーザに対して視覚的に識別することができる。インターフェース管理エンジン122は、特定の仮想コンテンツアイテムに基づいてコンテンツ配置インジケータを構成することができる。たとえば、インターフェース管理エンジン122は、たとえば、仮想コンテンツアイテムの先行するレンダリング及び/又はユーザ入力に基づいて、特定の仮想コンテンツアイテムのサイズ及び形状を判定し、特定の仮想コンテンツアイテムのサイズ及び形状を有するようにコンテンツ配置インジケータを構成することができる。場合によっては、インターフェース管理エンジン122は、コンテンツ配置インジケータ及び関連付けられた仮想コンテンツアイテムの構成を判定することができ、それにより、コンテンツ配置インジケータ及び関連付けられた仮想コンテンツアイテムが、利用可能な空間内に収まること、及び/又は利用可能な空間及び/又はサーフェスプレーンに対する一定の位置、向きなどを維持することが可能になる。たとえば、インターフェース管理エンジン122は、利用可能な空間内に収まる場合/必要に応じて、コンテンツ配置インジケータ及び関連付けられた仮想コンテンツアイテムの形状及び/又はアスペクト比を変更することができる。
【0064】
XRシステム100がユーザに対してコンテンツ配置インジケータをレンダリングするときに、コンテンツ配置インジケータは、コンテンツ配置インジケータがユーザに描写される利用可能な空間内に配置された場合(たとえば、マッピングされたシーン内の利用可能な空間にアンカリングされ、仮想コンテンツアイテムが利用可能な空間内に位置しているかのように見えるようにレンダリングされた場合)に、仮想コンテンツアイテムがどのように収まって見えるかを示すことができる。コンテンツ配置インジケータがユーザに対してレンダリングされた後、ユーザは、仮想コンテンツの配置用のロケーションとして利用可能な空間を(たとえば、入力ジェスチャ、入力として解釈される視線、コントローラを使用する入力、又はたとえばドラッグされた仮想コンテンツアイテムを解放する任意の他の入力手段などのユーザ入力を介して)受け入れるか又は拒否することができる。ユーザが利用可能な空間を仮想コンテンツの配置用のロケーションとして受け入れる場合、XRシステム100は、仮想コンテンツアイテムを利用可能な空間にアンカリングし、利用可能な空間内に位置しているかのように見えるように仮想コンテンツアイテムをレンダリングすることができる。ユーザが利用可能な空間を拒否する場合、インターフェース管理エンジン122は、別のコンテンツ配置インジケータを異なる利用可能な空間(そのサーフェスプレーン内、又は異なるサーフェスプレーン内)にレンダリングするために、XRシステム100と協調することができる。
【0065】
いくつかの例では、ユーザが、たとえば、シーンにわたって仮想コンテンツアイテムを動かすこと又はドラッグすることによって、コンテンツ配置インジケータを異なるロケーション/空間に動かそうと試みる場合、インターフェース管理エンジン122は、異なる利用可能な空間にコンテンツ配置インジケータを描写するために、XRシステム100と協調することができる。場合によっては、異なる利用可能な空間は、隣接空間であってよい。他の場合には、隣接空間が利用不可能である(たとえば、その空間内に1つ又は複数の物体及び/又は遮蔽がある)場合、インターフェース管理エンジン122は、隣接空間をスキップし(たとえば、コンテンツ配置インジケータを隣接空間内に配置及び描画することを控え)、コンテンツ配置インジケータを異なる非隣接の利用可能な空間内に描画するために、XRシステム100と協調することができる。
【0066】
画像処理エンジン124は、1つ又は複数の画像処理動作を実施することができる。いくつかの例では、画像処理エンジン124は、画像センサ(単数又は複数)102からのデータに基づいて画像処理動作を実施することができる。場合によっては、画像処理エンジン124は、たとえば、フィルタリング、デモザイク処理、スケーリング、色補正、色変換、セグメント化、ノイズ低減フィルタリング、空間フィルタリング、アーチファクト補正などの画像処理動作を実施することができる。レンダリングエンジン126は、コンピュート構成要素110、画像センサ(単数又は複数)102、XRエンジン120、インターフェース管理エンジン122、及び/又は画像処理エンジン124によって生成及び/又は処理された画像データを取得し、ディスプレイデバイス上に提示するためにコンテンツ(たとえば、仮想コンテンツ、ビデオ、画像など)をレンダリングすることができる。
【0067】
XRシステム100は一定の構成要素を含むように示されているが、XRシステム100は、図1に示されている構成要素よりも多い又は少ない構成要素を含み得ることを当業者は諒解されよう。たとえば、XRシステム100は、場合によっては、1つ又は複数のメモリデバイス(たとえば、RAM、ROM、キャッシュなど)、1つ又は複数のネットワークインターフェース(たとえば、有線及び/又は無線通信インターフェースなど)、1つ又は複数のディスプレイデバイス、及び/又は図1に示されていない他のハードウェア若しくは処理デバイスを含んでもよい。XRシステム100を用いて実装され得るコンピューティングデバイス及びハードウェア構成要素の例示的な例について、図8に関して以下で説明する。
【0068】
図2Aは、XRシステム100によるレンダリング用の仮想コンテンツを配置するために利用可能な様々な表面を有する例示的なシーン200を示す図である。この例では、シーン200は、シーン内にXRシステム100によってレンダリングされている仮想コンテンツアイテム202と複合された物理的環境である。詳細には、仮想コンテンツアイテム202は、シーン200内の物理的表面214(この例では壁)上に配置されており、仮想コンテンツアイテム202が実際に物理的表面214上にあるかのようにユーザに見えるようにレンダリングされている。シーン200はまた、この例ではテーブル210の上面である表面212、及びこの例では本棚の側面である表面216などの他の表面を含む。
【0069】
更に、XRシステム100のユーザは、第1のロケーションに第1の遠近感で別の仮想コンテンツアイテム、すなわち、仮想コンテンツアイテム204、をその元の構成/遠近感でシーン200上の前景のどこかにレンダリングしているので、仮想コンテンツアイテム204は、実際にシーン200上にあるように見える。シーン200内の仮想コンテンツアイテム204の配置を識別する際にユーザを支援するために、XRシステム100は、仮想コンテンツアイテム204の配置に利用可能なシーン200内の表面及び/又は空間を識別し得る。たとえば、ユーザが入力要素220を介して仮想コンテンツアイテム204を動かすと、XRシステム100は、ユーザに対して、特定の表面及び/又は表面内の空間が仮想コンテンツアイテム204の配置に利用可能であるかどうかを識別することができる。入力要素220は、たとえば、XRシステム100によって入力として解釈され得る手のジェスチャ(たとえば、指を指し示すこと、手を動かすこと、及び/若しくは手を一定の方法で配置すること、並びに/又は任意の他の手の動作又は姿勢)、頭部ジェスチャ(たとえば、XRシステム100によって入力として解釈されるユーザの頭部の一定の動作及び/又は姿勢など)、視線(たとえば、目の動き及び/又はXRシステム100が入力として解釈し得るロケーションへの視線)、入力デバイス(たとえば、コントローラ、トラックパッド、マウスなど)を介した入力、並びに/又は任意の他の入力技法及び/若しくはデバイスなど、入力をXRシステム100に提供する任意の手段を含み得る。この例では、入力要素220は、レイキャスティングによって投影された光線を含む。
【0070】
示すように、XRシステム100は、仮想コンテンツアイテム204を配置するために利用可能なサーフェスプレーンとしてサーフェスプレーン218を識別している。次いで、ユーザは、XRシステム100によって識別されたサーフェスプレーン218内に仮想コンテンツアイテム204を配置する(たとえば、スナップする、アンカリングする、動かす)ために、入力要素220を使用することができる。サーフェスプレーン218は、テーブル210の実際の表面212、又はテーブル210の表面212に対する(たとえば、平行な)平面を含むことができる。
【0071】
図2Aに示す例では、XRシステム100は、サーフェスプレーン218が仮想コンテンツアイテム204の配置及びレンダリングに利用可能であることを示すためにサーフェスプレーン218を強調表示する(たとえば、強調表示されたサーフェスプレーンをレンダリングする)ことによって、サーフェスプレーン218上にコンテンツ配置インジケータをレンダリングしている。他の例では、XRシステム100は、追加又は代替として、サーフェスプレーン218を他の方法で配置に利用可能なものとして示すことができる。たとえば、場合によっては、XRシステム100は、コンテンツ配置インジケータとしてサーフェスプレーン218の周りの輪郭をレンダリングすること、コンテンツ配置インジケータとして視覚パターン(たとえば、色、勾配、陰影、透明度、塗りつぶし、線、テキスト、影、反射、グロー、ソフトエッジ、仮想物体など)を有するサーフェスプレーン218をレンダリングすること、コンテンツ配置インジケータとして視覚インジケータ(たとえば、矢印、テキスト、動画、画像、視覚効果など)をレンダリングすることができる、及び/又はサーフェスプレーン218を利用可能なものとして示すことができる任意の他のレンダリング又は視覚化を提供することができる。
【0072】
図2Bは、テーブル210の表面212上に様々な物理的物体を有する、図2Aからの例示的なシーン200を示す図である。いくつかの例では、XRシステム100は、ユーザが、表面212上の1つ又は複数の物体によって占有されている(遮蔽されている)サーフェスプレーン218内の空間に仮想コンテンツアイテム204を配置することを回避する(又はそのような配置を提案するのを控える)のを、かつ/又はサーフェスプレーン218内の利用可能な空間を見つけるのを支援するのを助けることができる。たとえば、XRシステム100は、テーブル210の表面212上の物体によって占有されていない(遮蔽されていない)任意の空間及び/又は乱雑でない任意の空間など、サーフェスプレーン218内の任意の利用可能な空間を検出することができる。以下で更に説明するように、XRシステム100は、物体によって遮蔽されていない任意の空間の検出に基づいて、関連付けられた表面からその表面に垂直な方向にオフセットされたサーフェスプレーン内の任意の利用可能な空間を検出することができる。そのような物体は、表面212上の物体、又はシーン内の任意の他の物体であり得る。
【0073】
いくつかの例では、XRシステム100は、物理的環境内の1つ又は複数の表面を検出するために表面検出を実施することができる。XRシステム100はまた、物理的環境内の任意の表面及び/又は物体の任意の縁を判定するために、縁検出を実行することができる。XRシステム100は、物理的環境内のXRシステム100の姿勢を判定することができる。たとえば、XRシステム100は、物理的環境内の任意の検出された縁、サーフェスプレーン、及び/又は物体に基づいて、XRシステム100の姿勢、向き、及び/又は遠近感を判定することができる。いくつかの例では、XRシステム100は、シーン200内の物体を検出するために物体検出を実施することができる。たとえば、XRシステム100は、シーン200内のテーブル210の表面212上の物体を検出するために、物体検出を実施することができる。XRシステム100は、表面212内の任意の検出された物体を含めて、シーン200内の(たとえば、XR機能/体験を提供するためにXRシステム100によって使用されるシーン200の3次元(3D)マップ内の)検出された物体のロケーションを追跡及び/又は理解するために、任意の検出された物体を位置特定及びマッピングすることができる。次いで、XRシステム100は、たとえば、物体によって遮蔽されるサーフェスプレーン218の部分を判定し、セグメントが物体によって遮蔽されないように、判定された遮蔽された一部に基づいてサーフェスプレーンをセグメント、たとえば矩形空間、にセグメント化し、仮想コンテンツアイテム204(たとえば、表面212上又は他の場所の物体によって占有/遮蔽されていないサーフェスプレーン218内の任意の空間)をレンダリングすることによって、配置に利用可能なサーフェスプレーン218内の任意の空間を判定することができる。たとえば、XRシステム100は、マッピングされた物体に関連付けられていないサーフェスプレーン218内の任意の空間/ロケーションを識別するために(たとえば、サーフェスプレーン218に対応し、3Dマップ内の任意の空間/ロケーションに関連付けられたマッピングされた物体を有さない、それらの空間/ロケーションを識別するために)、シーンの3Dマップを分析することができる。
【0074】
仮想コンテンツアイテム204を配置及びレンダリングするために利用可能なサーフェスプレーン218内の任意の空間を検出した後、XRシステム100は、サーフェスプレーン218上の1つ又は複数の利用可能な空間を示す1つ又は複数のコンテンツ配置インジケータをレンダリングすることができる。場合によっては、XRシステム100は、サーフェスプレーン218上の利用可能な空間を示す1つのコンテンツ配置インジケータのみを任意の時点でレンダリングすることができる。この単一のコンテンツ配置インジケータのロケーションは、入力要素220(のアンカーポイント/トリップ)への近接度、ユーザ入力によって動かされ/ドラッグされ得る第1の遠近感での仮想コンテンツアイテムの表現への近接度、そのような表現とそれぞれの利用可能な空間との間の重複などに基づいて判定され得る。たとえば、XRシステム100は、XRシステム100によって検出された利用可能な空間208上にコンテンツ配置インジケータ206を配置することができる。コンテンツ配置インジケータ206は、仮想コンテンツアイテム204を配置する候補ロケーションとして利用可能な空間208を示すことができる。このようにして、コンテンツ配置インジケータ206は、利用可能な空間208が仮想コンテンツアイテム204を配置及びレンダリングするために利用可能なロケーションであることをユーザに示す。場合によっては、コンテンツ配置インジケータ206は、ドラッグされた仮想コンテンツアイテムを解放するなどのユーザ入力に応じて、仮想コンテンツアイテム204がXRシステム100によって自動的にアンカリングされるロケーションをユーザに示す。ユーザがコンテンツ配置インジケータ206を選択した場合(たとえば、ユーザが、コンテンツ配置インジケータ206によって識別されるサーフェスプレーン218の空間208上に仮想コンテンツアイテム204を配置することを受け入れた場合)、XRシステム100は、コンテンツ配置インジケータ206に関連付けられた空間208上に仮想コンテンツアイテム204を配置することができる。XRシステム100は、仮想コンテンツアイテム204がコンテンツ配置インジケータ206に関連付けられた空間208上にあるかのように見えるように、仮想コンテンツアイテム204をレンダリングすることができる。
【0075】
図2Bに示す例では、XRシステム100は、1つのコンテンツ配置インジケータをレンダリングしている。しかしながら、場合によっては、XRシステム100は、2つ以上のコンテンツ配置インジケータをレンダリングすることができる。たとえば、XRシステム100は、コンテンツ配置インジケータ206と、仮想コンテンツアイテム204を配置しレンダリングするために利用可能な1つ又は複数の追加の空間に関連付けられた1つ又は複数の追加のコンテンツ配置インジケータとをレンダリングすることができる。1つ又は複数の追加の空間は、XRシステム100によって強調表示されたサーフェスプレーン218上の1つ又は複数の空間を含んでよい。場合によっては、1つ又は複数の追加の空間は、シーン内の異なる表面/サーフェスプレーン上で利用可能な空間を含んでよい。たとえば、1つ又は複数の追加の空間は、表面214上で利用可能な(XRシステムがユーザのために強調表示してもしなくてもよい)空間、及び/又は表面216上で利用可能な(XRシステムがユーザのために強調表示してもしなくてもよい)空間を含んでよい。
【0076】
場合によっては、ユーザがシーン200内で仮想コンテンツアイテム204を(たとえば、入力要素220を介して)動かすときに、XRシステム100は、コンテンツ配置インジケータ206をサーフェスプレーン218上の特定の利用可能な空間に動かすことができる。更に、コンテンツ配置インジケータ206を動かすときに、XRシステム100は、表面212上の物体(単数又は複数)をスキップする(たとえば、配置/レンダリングするのを控える)ことができる。たとえば、XRシステム100がコンテンツ配置インジケータ206をサーフェスプレーン218上の利用可能な空間209から動かす場合、物体230によって現在占有/遮蔽されているサーフェスプレーン218上の隣接空間上にコンテンツ配置インジケータ206を配置するのではなく、XRシステム100は物体230をスキップして、サーフェスプレーン218内の利用可能な空間208上にコンテンツ配置インジケータ206を配置することができる。このようにして、XRシステム100は、物体230(又は物体230によって占有されている空間)上にコンテンツ配置インジケータ206を配置するのを控えることができる。言い換えれば、XRシステム100は、サーフェスプレーン218の第1の空間209内にコンテンツ配置インジケータをレンダリングすることから、サーフェスプレーン218の第2の空間208内にコンテンツ配置インジケータ206をレンダリングすることに切り替えることができる。1つのレンダリングロケーションから次のレンダリングロケーションに切り替えることによって、XRシステムは、仮想コンテンツアイテムを配置する提案がユーザに常に提示されることを保証することができる。上記で説明したように、現在レンダリングされているコンテンツ配置インジケータによって示される提案空間は、仮想コンテンツアイテム204への近接度及び/又は仮想コンテンツアイテム204との重複に基づいて判定され得る。
【0077】
いくつかの例では、XRシステム100は、サーフェスプレーン218からの乱雑さを遮蔽することができる。たとえば、XRシステム100は、サーフェスプレーン218から乱雑さを遮蔽するために、表面212の乱雑な空間上に遮蔽240をレンダリングし得る。
【0078】
図3Aは、仮想コンテンツアイテム310のロケーションがシーン200上の異なる表面(又はその一部)に重複するときに強調表示するサーフェスプレーンを選択する一例を示す図である。上記で説明したように、表面の強調表示又は段階的強調表示は、それぞれのコンテンツ配置インジケータとして使用され得る。この例に示すように、第1のロケーションに第1の遠近感でレンダリングされ、場合によってはユーザ入力を介して動かされた仮想コンテンツアイテム310の部分312は、表面212の一部と重複し、仮想コンテンツアイテム310の部分314は表面216の一部と重複し、仮想コンテンツアイテム310の部分316は表面214の一部と重複する。いくつかの例では、表面212、214、及び216の全てに対応するサーフェスプレーンを強調表示するのではなく、XRシステム100は、表面212、214、及び216から強調表示する特定のサーフェスプレーンを選択することができる。
【0079】
場合によっては、XRシステム100は、どの表面が仮想コンテンツアイテム310との最大量の重複を有するかを判定し、強調表示する(かつ/又は強調表示されたサーフェスプレーンをレンダリングする)ためにその表面を選択することができる。たとえば、XRシステム100は、表面212、214、及び216と重複する仮想コンテンツアイテム310の部分312、314、及び316のうちのどれが最大であるかを判定し、仮想コンテンツアイテム204の最大部分に関連付けられたサーフェスプレーンを選択することができる。この例では、部分312は、部分314及び316よりも大きい。したがって、XRシステム100は、部分312に関連付けられた表面212に対応するサーフェスプレーン218を強調表示することができる。
【0080】
場合によっては、XRシステム100は、表面212、214、及び216のいずれかが閾値量又は閾値割合の仮想コンテンツアイテム310を含むかどうかを判定することができる。閾値量又は閾値割合の仮想コンテンツアイテム310が表面上/上方にある場合、XRシステム100は、強調表示のために(かつ/又はサーフェスプレーンを強調表示するために)その表面を選択することができる。たとえば、XRシステム100は、表面212、214、及び216と重複する仮想コンテンツアイテム310の部分312、314、及び316のいずれかが閾値を満たすか又は超えるかどうかを判定することができる。閾値は、一度に単一のサーフェスプレーンのみが強調表示されるように、たとえば50%以上に選定され得る。XRシステム100は、閾値を満たすか又は超える仮想コンテンツアイテム310の部分(たとえば、部分312、314、及び316からの部分)に関連付けられた表面を選択することができる。
【0081】
いくつかの例では、XRシステム100は、ユーザが仮想コンテンツアイテム310を(たとえば、入力要素220を介して)動かすときに、たとえば、レンダリングされたコンテンツ配置インジケータとして、強調表示されたサーフェスプレーンを切り替えることができる。たとえば、図3Bに示すように、ユーザは、表面216と重複する仮想コンテンツアイテム310の部分314が、閾値を越えるように、かつ/又は表面212と重複する仮想コンテンツアイテム310の部分312及び表面214と重複する仮想コンテンツアイテム310の部分316よりも大きいように、仮想コンテンツアイテム310を動かしている。XRシステム100は、表面216と重複する仮想コンテンツアイテム310の部分314が、閾値を超え、かつ/又は表面212と重複する仮想コンテンツアイテム310の部分312及び表面214と重複する仮想コンテンツアイテム310の部分314よりも大きいと判定し、閾値を超え、かつ/又は仮想コンテンツアイテム310の部分312及び314よりも大きい仮想コンテンツアイテム310の部分314に関連付けられた表面216に対応するサーフェスプレーン320を強調表示することができる。このようにして、XRシステム100は、図3Aに示すように表面212に関連付けられたサーフェスプレーン218を強調表示することによってコンテンツ配置インジケータをレンダリングすることから、図3Bに示すように表面216に関連付けられたサーフェスプレーン320を強調表示することによってコンテンツ配置インジケータをレンダリングすることに切り替えることができる。
【0082】
場合によっては、サーフェスプレーン強調表示間のちらつきを防止するために、XRシステム100は、前に説明したようにどの表面を選択すべきかを判定するために特定の閾値を設定することができる。いくつかの例では、XRシステム100は、サーフェスプレーン強調表示間のちらつきを防止するために、閾値を少なくとも60%に設定することができる。たとえば、XRシステム100は、仮想コンテンツアイテム310の少なくとも60%が表面/サーフェスプレーンと重複するときに、その表面を選択することができる。説明すると、仮想コンテンツアイテム310の部分314が仮想コンテンツアイテム310の少なくとも60%を含む場合、XRシステム100は、仮想コンテンツアイテム310の部分314と重複する表面216に対応するサーフェスプレーン320を選択することができる。
【0083】
場合によっては、XRシステム100は、強調表示されたサーフェスプレーン上の利用可能な空間間を同様に切り替えることができる。たとえば、XRシステム100が強調表示されたサーフェスプレーン内でコンテンツ配置インジケータ(たとえば、コンテンツ配置インジケータ206)を動かすときに、コンテンツ配置インジケータが強調表示されたサーフェスプレーン上のいくつかの利用可能な空間と重複する場合、XRシステム100は、コンテンツ配置インジケータとの最大量の重複を有する利用可能な空間を選択し、その利用可能な空間内にコンテンツ配置インジケータを配置/レンダリングすることができる。別の例として、XRシステム100が強調表示されたサーフェスプレーン内でコンテンツ配置インジケータ(たとえば、コンテンツ配置インジケータ206)を動かすときに、コンテンツ配置インジケータが強調表示されたサーフェスプレーン上のいくつかの利用可能な空間と重複する場合、XRシステム100は、ある閾値を満たすか又は超えるコンテンツ配置インジケータとの重複を有する利用可能な空間を選択し、その利用可能な空間内にコンテンツ配置インジケータを配置/レンダリングすることができる。利用可能な空間間のコンテンツ配置インジケータの説明した動き/切替えは、サーフェスプレーンを強調表示することなく実施され得る。コンテンツ配置インジケータは更に、それぞれの利用可能な空間を示すサーフェスプレーンの強調表示の輝度/カラーグレーディングの形態であってもよい。
【0084】
場合によっては、XRシステム100が、サーフェスプレーン内にそのアスペクト比の仮想コンテンツアイテム用に利用可能な空間がないか、又は利用可能な空間が仮想コンテンツを配置するのに最適でないと判定した場合、XRシステム100は、利用可能な空間を最大化する、かつ/又は利用可能な空間内に収まる、仮想コンテンツアイテムの異なるアスペクト比を提案することができる。提案は、利用可能な空間間の切替え時に、コンテンツ配置インジケータを第1のアスペクト比から第2のアスペクト比に変更する形態であってもよい。たとえば、XRシステム100は、利用可能な空間に収めるか又は一致するように、コンテンツ配置インジケータ及び/又は仮想コンテンツアイテムのアスペクト比を調整し得る。XRシステム100は、調整されたアスペクト比に従って、サイズ変更されたコンテンツ配置インジケータ及び/又はサイズ変更された仮想コンテンツアイテムを利用可能な空間上にレンダリングすることができる。
【0085】
図4は、サーフェスプレーン218上の利用可能な空間内に収まるようなコンテンツ配置インジケータ404のアスペクト比の例示的な調整を示す図である。この例では、シーン200内の机210の表面212が物体によって覆われている。XRシステム100は、物体410、412、414、416、及び418間の空間420を、たとえば、物体検出、遮蔽検出、及びセグメント化を介して、利用可能な空間として識別している。しかしながら、仮想コンテンツアイテム402は、(第1の遠近感でレンダリングされるような)仮想コンテンツアイテム402の現在のアスペクト比では空間420に収まらない。したがって、XRシステム100は、仮想コンテンツアイテム402のアスペクト比よりも狭いアスペクト比に従って、空間420内にコンテンツ配置インジケータ404をレンダリングすることができる。
【0086】
たとえば、XRシステム100は、コンテンツ配置インジケータ404のアスペクト比を、仮想コンテンツアイテム402のアスペクト比に対応する広いアスペクト比から、コンテンツ配置インジケータ404が空間420内に収まることを可能にする、より狭いアスペクト比に調整することができる。XRシステム100は、より狭いアスペクト比に従って空間420内にコンテンツ配置インジケータ404を配置し、コンテンツ配置インジケータ404がより狭いアスペクト比で空間420内に位置しているように見えるようにレンダリングすることができる。ユーザが仮想コンテンツアイテム402を解放し、かつ/又は仮想コンテンツアイテム402をコンテンツ配置インジケータ404(及び/又はコンテンツ配置インジケータ404に関連付けられた空間420)にスナップする(たとえば、配置/アンカリングする)ときに、XRシステム100は、仮想コンテンツアイテム402のアスペクト比をコンテンツ配置インジケータ404のアスペクト比に一致するように変更し、調整されたアスペクト比に従って空間420内に仮想コンテンツアイテム402を配置することができる。XRシステム100は、空間420上に位置しているように見えるように、調整されたアスペクト比で仮想コンテンツアイテム402をレンダリングすることができる。コンテンツ配置インジケータ404のサイズ及び/又はアスペクト比の調整は、ユーザの現在のビュー内に配置/レンダリングした後の仮想コンテンツアイテムの最小高さ及び/又は幅を条件とすることができる。言い換えれば、サーフェスプレーン218上の空間は、現在のビューにおけるそれらのサイズ(高さ及び/又は幅)が最小(高さ及び/又は幅)閾値よりも小さいことに基づいて、仮想コンテンツアイテムをレンダリングするために利用可能でない/適していないと判定され得る。そのような空間は、それぞれの空間上に専用のコンテンツ配置インジケータ(勾配強調表示及び/又は視覚的輪郭など)をレンダリングすることによって、XRシステム100によって明示的に示されない。
【0087】
いくつかの例では、仮想コンテンツアイテム402を配置するためにアスペクト比を調整する能力は、ユーザ設定によって有効にされ得るか、又はデフォルトによって有効にされ得る。場合によっては、調整された仮想コンテンツアイテム402(及び/又は調整されたコンテンツ配置インジケータ)の調整されたアスペクト比及び/又は構成/パラメータは、ユーザ設定によって定義され得るか、又は仮想コンテンツアイテム402によって規定され得る。たとえば、場合によっては、仮想コンテンツアイテム402の調整されたアスペクト比(及び/又は仮想コンテンツアイテム402のアスペクト比が調整され得るかどうか)は、仮想コンテンツアイテム402の仮想コンテンツのタイプ及び/又は仮想コンテンツアイテム402がサイズ変更に適しているか又はサイズ変更が可能であるかどうかに依存し得る。たとえば、テキストコンテンツを含む仮想コンテンツアイテムは、アスペクト比の調整に適さないタイプの仮想コンテンツを表すことがある。
【0088】
場合によっては、表面が利用可能な空間、たとえば、少なくとも最小サイズを有する非遮蔽空間を有さない場合(かつ/又は閾値量の乱雑さを有する場合)、又は表面が複雑な表面(たとえば、不均一である、起伏のある/粗い/でこぼこの/テクスチャのある、上昇している、不規則な、非対称な、湾曲した、3次元の、稀な形状など)である場合、XRシステム100は、複雑な表面の全体的な遠近感(向き)を反映するという点で、表面と概ね位置合わせされた、表面に関連付けられたサーフェスプレーンを判定することができる。サーフェスプレーンは、たとえば、表面を平滑化/平坦化、再成形することなど、複雑な表面の遠近感を判定するために複雑な表面に対して縁検出を実施すること、表面上の物体を検出し除去することなどにより、複雑な表面の簡略化とみなされてよい。サーフェスプレーンは、強調表示されたサーフェスプレーン内での仮想コンテンツアイテムのより容易な配置及び/又は閲覧のために、複雑な表面の平面表現として判定され得る。サーフェスプレーンは、複雑な表面の平均表面レベルに位置してよく、又はサーフェスプレーン/簡略化された複雑な表面に垂直な方向にオフセット値だけオフセットされてもよい。オフセットは、ユーザの視線に向けたものであってよい。結果として、調整された(オフセットされた)サーフェスプレーンは、複雑な表面の少なくとも一部を遮蔽し、したがって、仮想コンテンツアイテムをレンダリングするために(より多くの)空間を利用可能にする。XRシステム100は、調整されたサーフェスプレーン内に仮想コンテンツアイテムを配置し、レンダリングすることができる。場合によっては、表面が複雑である場合、XRシステム100は、強調表示されたサーフェスプレーン及びコンテンツ配置インジケータを配置及び/又は隆起させ/上昇させ/オフセットし、それらを複雑な表面に対して(たとえば、一般に平行に)隆起した/上昇した平面上にレンダリングすることができる。強調表示されたサーフェスプレーン/コンテンツ配置インジケータは、サーフェスプレーン内での仮想コンテンツアイテム(及び/又はコンテンツ配置インジケータ)のより容易な配置及び/又は閲覧のために、表面の上方に(たとえば、表面の上方の閾値距離/高さに)位置し/配置され得る。
【0089】
図5Aは、複雑な表面510に対する一定の位置にレンダリングされた例示的なサーフェスプレーン512及びコンテンツ配置インジケータ504を示す図である。示すように、表面510は、異なるサイズのものである本棚上の本によって作り出されるので、表面510は不均一である。したがって、表面510は平坦/均一ではなく、平坦又は均一である利用可能な空間を有さない。場合によっては、サーフェスプレーン512の遠近感又は向きは、(棚上の本の)縁検出と、平行縁及びそれらの共通の向きの識別とに基づいて判定され得る。XRシステム100は、表面510からユーザの視点に向かって一定の距離(オフセット)になるようにレンダリングされるようにサーフェスプレーン512及びコンテンツ配置インジケータ504を動かすことができる。たとえば、XRシステム100は、表面510(たとえば、その上方、その前、など)から(たとえば、XRシステム100のユーザの視点から)閾値距離だけ離れるようにサーフェスプレーン512及びコンテンツ配置インジケータ504を動かすことができる。XRシステム100は、表面510からの閾値距離である、動かされた位置にサーフェスプレーン512及びコンテンツ配置インジケータ504をレンダリングすることができる。
【0090】
図5Bを参照すると、ユーザがコンテンツ配置インジケータ504上で仮想コンテンツアイテム502を解放し、かつ/又はコンテンツ配置インジケータ504内の仮想コンテンツアイテム502の配置を受け入れるときに、XRシステム100は、コンテンツ配置インジケータ504内に仮想コンテンツアイテム502を配置し、前に説明したように表面510から閾値距離だけ離れている、仮想コンテンツアイテム502を解放した時点でコンテンツ配置インジケータ504に関連付けられた位置に仮想コンテンツアイテム502をレンダリングすることができる。前に説明したように、コンテンツ配置インジケータ504は、ユーザ入力に応じて仮想コンテンツアイテム502の動きに基づいてサーフェスプレーン512にわたって動かされてもよい。
【0091】
図5Cは、複雑な表面520に対する(そこからオフセットされた)一定の位置にレンダリングされた、別の例示的なサーフェスプレーン522及びコンテンツ配置インジケータ530を示す図である。この例における表面520は、不規則な/不均一な表面を作り出す不規則な形状の(たとえば、湾曲した)セメントブロックで構成された壁である。したがって、表面520は平坦ではなく、むしろ不規則/不均一である。示すように、表面520は不規則/不均一であるので、XRシステム100は、簡略化された(平滑化された、平坦化された、再成形されたなど)表面に基づいてサーフェスプレーン522の遠近感(向き)を判定することができる。追加又は代替として、サーフェスプレーン522の遠近感(向き)を判定するために、縁検出が実施され得る。XRシステムは、表面520の前に、すなわちユーザの視点に向かって、一定距離/オフセットである/に見えるようにレンダリングされたサーフェスプレーン522及びコンテンツ配置インジケータ530を動かす/オフセットすることができる。たとえば、XRシステム100は、(たとえば、XRシステム100のユーザの視点から)表面520の前の閾値距離になるようにサーフェスプレーン522及びコンテンツ配置インジケータ530を動かすことができる。XRシステム100は、サーフェスプレーン522及びコンテンツ配置インジケータ530を、表面520の前の閾値距離である動かされた/オフセット位置にレンダリングすることができる。
【0092】
図5Dを参照すると、ユーザがコンテンツ配置インジケータ530上で仮想コンテンツアイテム502を解放し、かつ/又はコンテンツ配置インジケータ530内の仮想コンテンツアイテム502の配置を受け入れるときに、XRシステム100は、コンテンツ配置インジケータ530内に仮想コンテンツアイテム502を配置し、前に説明したような表面520の前の閾値距離である、仮想コンテンツアイテムの解放時にコンテンツ配置インジケータ530に関連付けられた位置に仮想コンテンツアイテム502をレンダリングすることができる。
【0093】
図6は、(最小サイズ要件を満たす)利用可能な空間がない表面を有するシーン内の強調表示されたサーフェスプレーン及びコンテンツ配置インジケータの例示的なレンダリングを示す図である。この例では、テーブルの表面602は、アイテムで乱雑になっており、仮想コンテンツアイテム610を配置するために利用可能な(たとえば、いずれのアイテムによっても占有/遮蔽されていない)空間を有していない。表面602は利用可能な空間を有さないので、XRシステム100は、強調表示されたサーフェスプレーン604を表面602の上方に一定の距離/高さに、かつ強調表示されたサーフェスプレーン604上にレンダリングされたコンテンツ配置インジケータ606を上昇させる/隆起させることができる。前の例のように、アイテムで乱雑なテーブルトップは、関連付けられたサーフェスプレーンを判定するために上記で説明したように簡略化され得る複雑な表面とみなされてよい。サーフェスプレーン604は、以下で説明するように、特定のオフセット値だけ複合表面の平均表面レベルからオフセットされ得る。
【0094】
いくつかの例では、表面602上の他のアイテムを上回る閾値距離/量だけ表面602を超えて延びる1つ又は複数の物体がある場合、XRシステム100は、強調表示されたサーフェスプレーン604を、強調表示されたサーフェスプレーン604が1つ又は複数の物体を部分的に遮蔽することを可能にする、表面602から離れた一定の距離/オフセットに配置することができる。言い換えれば、表面602からの距離は、表面602上の他のアイテムを上回る閾値距離/量だけ表面602を超えて延びるそれらの1つ又は複数の物体を完全に遮蔽するのに十分でない場合がある。
【0095】
たとえば、図6では、表面602上の蝋燭620及び622並びに水筒624は、表面602上の残りのアイテムよりもかなり高い。その結果、蝋燭620及び622並びに水筒624は、表面602に対して残りのアイテムの上方にかなりの量だけ延びる。蝋燭620及び622並びに水筒624の高さを考慮すると、強調表示されたサーフェスプレーン604が蝋燭620及び622並びに水筒624の上方に隆起する/上昇する場合、強調表示されたサーフェスプレーン604の隆起した/上昇した位置により、強調表示されたサーフェスプレーン604は表面602からあまりにも上方に見える可能性がある。言い換えれば、そのような高さでは、強調表示されたサーフェスプレーン604は、ユーザには表面602上にあるようにも表面602の近くにあるようにも見えないことがあり、むしろ空中に浮いているように見えることがある。
【0096】
これを防止するために、XRシステム100は、強調表示されたサーフェスプレーン604を表面602及び/又は表面602上の他のアイテムに対して動かす(たとえば、上昇させる/隆起させる/オフセットする)閾値及び/又は範囲を定義する規則を実装することができる。表面602に対する物体(単数又は複数)(たとえば、蝋燭620及び622並びに水筒624)の最も遠い点(及び/又は表面602上の残りのアイテムの最上部又は平均高さ)が定義された閾値及び/又は範囲を超える場合、XRシステム100は、物体(単数又は複数)(たとえば、蝋燭620及び622並びに水筒624)の一部が強調表示されたサーフェスプレーン604によって遮蔽され、物体(単数又は複数)の別の一部が強調表示されたサーフェスプレーン604を越えて延びる場合であっても(たとえば、強調表示されたサーフェスプレーン604が物体(単数又は複数)を部分的にしか遮蔽しない場合であっても)、表面602及び/又は表面602上の残りのアイテムからの、閾値及び/又は範囲内の距離に強調表示されたサーフェスプレーン604を配置/レンダリングすることができる。
【0097】
たとえば、図6では、表面602(及び/又は表面602上の他のアイテムの最上部又は平均高さ)に対する蝋燭620及び622並びに水筒624の最も遠い点は、表面602の上方の閾値高さ640を超える。したがって、強調表示されたサーフェスプレーン604は、表面602の上方の閾値高さ640内に配置されレンダリングされる。したがって、強調表示されたサーフェスプレーン604は、蝋燭620及び622並びに水筒624を部分的に遮蔽するが、表面602及び/又は表面602上の他のアイテムに対して蝋燭620及び622並びに水筒624の最も遠い点を含む表面高さ630まで又はそれを超えて上昇しない/隆起しない。このようにして、強調表示されたサーフェスプレーン604は、表面602及び/又は表面602上の他のアイテムからあまり遠くに動かされない。
【0098】
代替として、動かされた/オフセットされたサーフェスプレーン上の少なくとも1つの空間が仮想コンテンツアイテム610をレンダリングするために利用可能になるまで、オフセットを増加させることによってサーフェスプレーン604は動かされてよい。このために、サーフェスプレーンの初期のロケーションは、たとえば、表面602の上方の平均高さで判定され得る。前に説明したように、蝋燭620及び622並びに水筒624などの物体によって遮蔽された初期サーフェスプレーンの部分を判定することができ、(最小サイズ要件を満たす)利用可能な空間(単数又は複数)を初期サーフェスプレーンの遮蔽されていない部分に基づいて判定することができる。初期サーフェスプレーンは、表面602に対してオフセットされ/隆起されているため、初期サーフェスプレーンは、強調表示される場合、蝋燭620及び622並びに水筒624、並びに表面602上の他のアイテムの全てではないにしても大部分を部分的に遮蔽する。初期サーフェスプレーンが(最小サイズ要件を満たす)利用可能な空間を有していないと判定された場合、サーフェスプレーンのオフセットは、たとえば、所定の量だけ、(繰り返し)増加されてよく、(最小サイズ要件を満たす)少なくとも1つの空間が仮想コンテンツアイテムをレンダリングするために利用可能になるまで、上記で説明したプロセスが繰り返される。このようにして、仮想コンテンツアイテムをレンダリングするのに適したサーフェスプレーンを判定するために、複雑な表面ですら処理され得る。
【0099】
図7は、物理的シーンの表面上に仮想コンテンツアイテムを配置する例示的なプロセス700を示すフローチャートである。ブロック702において、プロセス700は、物理的環境のシーン内の少なくとも1つのサーフェスプレーンを判定することを含み得る。場合によっては、シーン内の少なくとも1つのサーフェスプレーンを判定することは、シーン内の1つ又は複数の物体の1つ又は複数の表面を判定することと、シーン内の1つ又は複数の物体の1つ又は複数の表面に基づいて、少なくとも1つのサーフェスプレーンを判定することと、を含み得る。
【0100】
ブロック704において、プロセス700は、シーン内の第1のロケーションに第1の遠近感で仮想コンテンツアイテムをレンダリングすることを含み得る。
【0101】
ブロック706において、プロセス700は、仮想コンテンツアイテムに関連付けられたコンテンツ配置インジケータを少なくとも1つのサーフェスプレーンの第1の空間上にレンダリングすることを含み得る。いくつかの例では、コンテンツ配置インジケータは、仮想コンテンツアイテムの配置用の第1の空間の少なくとも一部を示すことができる。
【0102】
ブロック708において、プロセス700は、少なくとも1つのサーフェスプレーンに関連付けられた表面上の1つ又は複数の物体の1つ又は複数のロケーションを判定することを含み得る。
【0103】
ブロック710において、プロセス700は、ユーザ入力に応じて、少なくとも1つのサーフェスプレーンの第2の空間上にコンテンツ配置インジケータをレンダリングすることを含み得る。いくつかの例では、少なくとも1つのサーフェスプレーンの第2の空間は、1つ又は複数のロケーション及びユーザ入力に基づいて判定される。いくつかの例では、コンテンツ配置インジケータは、仮想コンテンツアイテムの配置用の第2の空間の少なくとも一部を示すことができる。
【0104】
いくつかの態様では、プロセス700は、第2の空間上への仮想コンテンツアイテムの配置を要求する追加のユーザ入力に応じて、コンテンツ配置インジケータに基づいて、シーン内の第2のロケーションに第2の遠近感で仮想コンテンツアイテムをレンダリングすることを含み得る。いくつかの例では、第2のロケーションは第2の空間内にあり得る。場合によっては、プロセス700は、第2の空間の遠近感に基づいて第2の遠近感を判定することを含み得る。
【0105】
いくつかの態様では、プロセス700は、少なくとも1つのサーフェスプレーンの第1のサーフェスプレーン及び第2のサーフェスプレーンであって、第1の空間が、第1のサーフェスプレーンに関連付けられており、第2の空間が、第2のサーフェスプレーンに関連付けられている、第1のサーフェスプレーン及び第2のサーフェスプレーンを判定することと、第2のサーフェスプレーンの遠近感に基づいて第2の遠近感を判定することと、を含み得る。
【0106】
いくつかの例では、第2の空間上にコンテンツ配置インジケータをレンダリングすることは、仮想コンテンツアイテムと第2のサーフェスプレーンとの重複を判定することと、重複が第1の閾値を超えるとの判定時に、第2のサーフェスプレーンに関連付けられた第2の空間上にコンテンツ配置インジケータをレンダリングすることに切り替えることと、を含み得る。
【0107】
いくつかの例では、第1の空間及び第2の空間は、少なくとも1つのサーフェスプレーンの第1のサーフェスプレーンに関連付けられている。いくつかの態様では、プロセス700は、第1のサーフェスプレーンの少なくとも一部を遮蔽する1つ又は複数の物体を検出することと、第1のサーフェスプレーンの遮蔽された一部に少なくとも基づいて、第1のサーフェスプレーンを少なくとも第1のセグメントと第2のセグメントとにセグメント化することと、を含み得る。いくつかの例では、第1の空間は、第1のセグメントに関連付けられており、第2の空間は、第2のセグメントに関連付けられている。
【0108】
場合によっては、第1のサーフェスプレーンを少なくとも第1のセグメントと第2のセグメントとにセグメント化することは、第1のサーフェスプレーンの遠近感でレンダリングされた仮想コンテンツアイテムの第1のセグメント及び第2のセグメント内への収まりを判定することを含み得る。
【0109】
いくつかの態様では、プロセス700は、第1のセグメントと第2のセグメントとの間の仮想コンテンツアイテムのアスペクト比を変更することを含み得る。
【0110】
いくつかの態様では、プロセス700は、第2の空間上にコンテンツ配置インジケータをレンダリングする前に、コンテンツ配置インジケータに基づいて、シーン内の第3のロケーションに第3の遠近感で仮想コンテンツアイテムをレンダリングすることを含み得る。いくつかの例では、第3のロケーションは、第1の空間内にあり得る。
【0111】
いくつかの態様では、プロセス700は、ユーザ入力に応じて、第2の空間上にコンテンツ配置インジケータをレンダリングする前に、コンテンツ配置インジケータを第1の空間内で動かすことを含み得る。
【0112】
場合によっては、シーン内の少なくとも1つのサーフェスプレーンを判定することは、少なくとも1つの表面に垂直に、かつコンピューティングデバイスに関連付けられたユーザの視点に向かって、少なくとも1つのサーフェスプレーンにオフセットを適用することを含み得る。
【0113】
場合によっては、シーン内の少なくとも1つのサーフェスプレーンを判定することは、シーン内の1つ又は複数の物体の1つ又は複数の縁を判定することと、シーン内の1つ又は複数の物体の1つ又は複数の縁に基づいて、少なくとも1つのサーフェスプレーンを判定することと、を含み得る。
【0114】
場合によっては、コンテンツ配置インジケータをレンダリングすることは、少なくとも1つのサーフェスプレーン上にパターンをレンダリングすることを含み得る。いくつかの例では、パターンは、強調表示、輪郭、色、陰影、影、ハッチング、及び勾配のうちの少なくとも1つを含んでよい。
【0115】
いくつかの例では、本明細書で説明するプロセス(たとえば、プロセス700、及び/又は本明細書で説明する他のプロセス)は、コンピューティングデバイス又は装置によって実施されてよい。一例では、プロセス700は、図1のXRシステム100によって実施されてよい。別の例では、プロセス700は、図8に示すコンピューティングデバイスアーキテクチャ800を有するコンピューティングシステムによって実施されてよい。たとえば、図8に示すコンピューティングデバイスアーキテクチャ800を備えたコンピューティングデバイスは、図7の動作及び/又は図1図7のうちのいずれかに関して本明細書で説明した構成要素及び/又は動作を実装し得る。
【0116】
コンピューティングデバイスは、モバイルデバイス(たとえば、携帯電話)、デスクトップコンピューティングデバイス、タブレットコンピューティングデバイス、ウェアラブルデバイス(たとえば、VRヘッドセット、ARヘッドセット、ARグラス、ネットワーク接続ウォッチ若しくはスマートウォッチ、又は他のウェアラブルデバイス)、サーバコンピュータ、自律運転車若しくは自律運転車のコンピューティングデバイス、ロボティックデバイス、ラップトップコンピュータ、スマートテレビ、カメラ、並びに/又は、プロセス700及び/又は本明細書で説明する任意の他のプロセスを含む、本明細書で説明するプロセスを実施するリソース能力を持つ任意の他のコンピューティングデバイスなどの、任意の好適なデバイスを含み得る。場合によっては、コンピューティングデバイス又は装置は、1つ又は複数の入力デバイス、1つ又は複数の出力デバイス、1つ又は複数のプロセッサ、1つ又は複数のマイクロプロセッサ、1つ又は複数のマイクロコンピュータ、1つ又は複数のカメラ、1つ又は複数のセンサ、及び/又は本明細書で説明するプロセスのステップを実行するように構成されている他の構成要素(単数又は複数)などの、様々な構成要素を含み得る。いくつかの例では、コンピューティングデバイスは、ディスプレイ、データを通信及び/又は受信するように構成されているネットワークインターフェース、それらの任意の組合せ、及び/又は他の構成要素(単数又は複数)を含んでよい。ネットワークインターフェースは、インターネットプロトコル(Internet Protocol、IP)ベースのデータ又は他のタイプのデータを通信及び/又は受信するように構成され得る。
【0117】
コンピューティングデバイスの構成要素は、回路で実装され得る。たとえば、構成要素は、1つ又は複数のプログラマブル電子回路(たとえば、マイクロプロセッサ、グラフィックス処理ユニット(graphics processing units、GPUs)、デジタル信号プロセッサ(digital signal processors、DSPs)、中央処理ユニット(central processing units、CPUs)、及び/又は他の好適な電子回路)を含み得る、電子回路若しくは他の電子ハードウェアを含むことができる、及び/若しくはそれらを使用して実装されることが可能であり、並びに/又は本明細書で説明する様々な動作を実施するために、コンピュータソフトウェア、ファームウェア、若しくはそれらの任意の組合せを含むことができる、及び/若しくはそれらを使用して実装されることが可能である。
【0118】
プロセス700は、論理フロー図として示され、その動作は、ハードウェア、コンピュータ命令、又はそれらの組合せで実装され得る一連の動作を表す。コンピュータ命令の文脈で、動作は、1つ又は複数のプロセッサによって実行されたときに、記載された動作を実施する、1つ又は複数のコンピュータ可読記憶媒体上に記憶されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実施するか又は特定のデータタイプを実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。動作が説明される順序は、限定として解釈されることを意図せず、任意の数の説明される動作は、プロセスを実装するために任意の順序で、及び/又は並列に組み合わせることができる。
【0119】
加えて、プロセス700及び/又は本明細書に記載する他のプロセスは、実行可能命令を用いて構成されている1つ又は複数のコンピュータシステムの制御下で実施されてもよく、1つ又は複数のプロセッサ上で、ハードウェアによって、又はそれらの組合せで、集合的に実施するコード(たとえば、実行可能命令、1つ又は複数のコンピュータプログラム、又は1つ又は複数のアプリケーション)として実装されてもよい。上述のように、コードは、たとえば、1つ又は複数のプロセッサによって実行可能な複数の命令を備えるコンピュータプログラムの形態で、コンピュータ可読記憶媒体又は機械可読記憶媒体上に記憶されてもよい。コンピュータ可読記憶媒体又は機械可読記憶媒体は、非一時的であってもよい。
【0120】
図8は、本技術のいくつかの態様を実装するシステムの一例を示す図である。詳細には、図8は、たとえば、システムの構成要素が接続805を使用して互いに通信している、内部コンピューティングシステム、リモートコンピューティングシステム、カメラ、又はそれらの任意の構成要素を構成する、任意のコンピューティングデバイスであり得るコンピューティングシステム800の一例を示す。接続805は、バスを使用した物理接続、又はチップセットアーキテクチャなどにおけるプロセッサ810への直接接続であってよい。接続805はまた、仮想接続、ネットワーク接続、又は論理接続であってもよい。
【0121】
いくつかの実施形態では、コンピューティングシステム800は、本開示で説明する機能が、1つのデータセンター、複数のデータセンター、ピアネットワークなどに分散され得る分散型システムである。いくつかの実施形態では、説明するシステム構成要素のうちの1つ又は複数は、構成要素の説明の対象である機能のうちのいくつか又は全てを各々実施する多くのそのような構成要素を表す。いくつかの実施形態では、構成要素は物理デバイス又は仮想デバイスとすることができる。
【0122】
例示的なシステム800は、少なくとも1つの処理ユニット(CPU又はプロセッサ)810と、読取り専用メモリ(read-only memory、ROM)820及びランダムアクセスメモリ(random access memory、RAM)825などのシステムメモリ815を含む様々なシステム構成要素をプロセッサ810に結合する接続805とを含む。コンピューティングシステム800は、プロセッサ810と直接接続されるか、プロセッサ810に極めて近接しているか、又はプロセッサ810の一部として統合される、高速メモリのキャッシュ812を含み得る。
【0123】
プロセッサ810は、任意の汎用プロセッサと、記憶デバイス830内に記憶され、プロセッサ810、並びにソフトウェア命令が実際のプロセッサ設計に組み込まれた専用プロセッサを制御するように構成されている、サービス832、834、及び836などのハードウェアサービス又はソフトウェアサービスとを含み得る。プロセッサ810は基本的に、複数のコア又はプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自己完結型のコンピューティングシステムであってもよい。マルチコアプロセッサは、対称であってもよく又は非対称であってもよい。
【0124】
ユーザ対話を可能にするために、コンピューティングシステム800は、発話用のマイクロフォン、ジェスチャ入力又はグラフィカル入力用のタッチ感知スクリーン、キーボード、マウス、モーション入力、発話などの、任意の数の入力機構を表すことができる、入力デバイス845を含む。コンピューティングシステム800はまた、いくつかの出力機構のうちの1つ又は複数であり得る出力デバイス835を含んでもよい。場合によっては、多モードのシステムは、コンピューティングシステム800と通信するためにユーザが複数のタイプの入力/出力を提供することを可能にし得る。コンピューティングシステム800は、一般に、ユーザ入力及びシステム出力を支配し管理することができる通信インターフェース840を含み得る。通信インターフェースは、オーディオジャック/プラグ、マイクロフォンジャック/プラグ、ユニバーサルシリアルバス(universal serial bus、USB)ポート/プラグ、Apple(登録商標)Lightning(登録商標)ポート/プラグ、Ethernetポート/プラグ、光ファイバーポート/プラグ、プロプライエタリ有線ポート/プラグ、BLUETOOTH(登録商標)ワイヤレス信号転送、BLUETOOTH(登録商標)低エネルギー(low energy、BLE)ワイヤレス信号転送、IBEACON(登録商標)ワイヤレス信号転送、無線周波識別(radio-frequency identification、RFID)ワイヤレス信号転送、近距離通信(near-field communications、NFC)ワイヤレス信号転送、専用短距離通信(dedicated short range communication、DSRC)ワイヤレス信号転送、802.11 Wi-Fiワイヤレス信号転送、ワイヤレスローカルエリアネットワーク(wireless local area network、WLAN)信号転送、可視光通信(Visible Light Communication、VLC)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(Worldwide Interoperability for Microwave Access、WiMAX)、赤外線(infrared、IR)通信ワイヤレス信号転送、公衆交換電話網(Public Switched Telephone Network、PSTN)信号転送、統合サービスデジタルネットワーク(Integrated Services Digital Network、ISDN)信号転送、3G/4G/5G/LTEセルラーデータネットワークワイヤレス信号転送、アドホックネットワーク信号転送、電波信号転送、マイクロ波信号転送、赤外線信号転送、可視光信号転送、紫外光信号転送、電磁スペクトルに沿ったワイヤレス信号転送、又はそれらの何らかの組合せを利用するものを含む、有線及び/又はワイヤレストランシーバを使用する有線通信又はワイヤレス通信の受信及び/又は送信を実施し得るか、又は容易にし得る。通信インターフェース840はまた、1つ又は複数の全地球航法衛星システム(Global Navigation Satellite System、GNSS)システムに関連付けられた1つ又は複数の衛星からの1つ又は複数の信号の受信に基づいて、コンピューティングシステム800のロケーションを判定するために使用される、1つ又は複数のGNSS受信機又はトランシーバを含んでもよい。GNSSシステムは、限定はしないが、米国の全地球測位システム(GPS)、ロシアの全地球航法衛星システム(Global Navigation Satellite System、GLONASS)、中国の北斗航法衛星システム(BeiDou Navigation Satellite system、BDS)、及び欧州のGalileo GNSSを含む。任意の特定のハードウェア配列で動作することに対して制約がなく、したがって、ここでの基本的な特徴は、それらが開発されるにつれて、改善されたハードウェア配列又はファームウェア配列のために容易に置き換えられてよい。
【0125】
記憶デバイス830は、不揮発性のかつ/又は非一時的なかつ/又はコンピュータ可読のメモリデバイスであってもよく、磁気カセット、フラッシュメモリカード、固体メモリデバイス、デジタル多用途ディスク、カートリッジ、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、磁気ストリップ/ストライプ、任意の他の磁気記憶媒体、フラッシュメモリ、メモリスタメモリ、任意の他の固体メモリ、コンパクトディスク読取り専用メモリ(compact disc read only memory、CD-ROM)光ディスク、再書き込み可能コンパクトディスク(compact disc、CD)光ディスク、デジタルビデオディスク(digital video disk、DVD)光ディスク、ブルーレイディスク(blu-ray disc、BDD)光ディスク、ホログラフィック光ディスク、別の光媒体、セキュアデジタル(secure digital、SD)カード、マイクロセキュアデジタル(micro secure digital、microSD)カード、メモリスティック(登録商標)カード、スマートカードチップ、EMVチップ、加入者識別モジュール(subscriber identity module、SIM)カード、ミニ/マイクロ/ナノ/ピコSIMカード、別の集積回路(integrated circuit、IC)チップ/カード、ランダムアクセスメモリ(RAM)、スタティックRAM(static RAM、SRAM)、ダイナミックRAM(dynamic RAM、DRAM)、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(programmable read-only memory、PROM)、消去可能プログラマブル読取り専用メモリ(erasable programmable read-only memory、EPROM)、電気的消去可能プログラマブル読取り専用メモリ(electrically erasable programmable read-only memory、EEPROM)、フラッシュEPROM(flash EPROM、FLASHEPROM)、キャッシュメモリ(L1/L2/L3/L4/L5/L#)、抵抗性ランダムアクセスメモリ(resistive random-access memory、RRAM/ReRAM)、位相変化メモリ(phase change memory、PCM)、スピン転送トルクRAM(spin transfer torque RAM、STT-RAM)、別のメモリチップ若しくはカートリッジ、及び/又はそれらの組合せなどの、コンピュータによってアクセス可能であるデータを記憶できるハードディスク又は他のタイプのコンピュータ可読媒体であってよい。
【0126】
記憶デバイス830は、そのようなソフトウェアを定義するコードがプロセッサ810によって実行されたときに、システムに機能を実施させる、ソフトウェアサービス、サーバ、サービスなどを含み得る。いくつかの実施形態では、特定の機能を実施するハードウェアサービスは、機能を実行するために、プロセッサ810、接続805、出力デバイス835などの必要なハードウェア構成要素に関してコンピュータ可読媒体内に記憶された、ソフトウェア構成要素を含み得る。「コンピュータ可読媒体」という用語は、限定はしないが、ポータブル又は非ポータブルの記憶デバイス、光記憶デバイス、並びに命令(複数可)及び/又はデータを記憶、格納、又は搬送できる様々な他の媒体を含む。コンピュータ可読媒体は、データが記憶され得、かつワイヤレスで若しくは有線接続を介して伝搬する搬送波及び/又は一時的な電子信号を含まない、非一時的媒体を含んでもよい。非一時的媒体の例としては、限定はしないが、磁気ディスク若しくはテープ、コンパクトディスク(CD)若しくはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリ、又はメモリデバイスが挙げられ得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、又は命令、データ構造、若しくはプログラムステートメントの任意の組合せを表し得る、コンピュータ可読媒体上に記憶されたコード及び/又は機械実行可能命令を有してもよい。コードセグメントは、情報、データ、引数、パラメータ、又はメモリコンテンツを渡すこと及び/又は受けることによって、別のコードセグメント又はハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の好適な手段を介して渡され、転送され、又は送信されてもよい。
【0127】
いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、及びメモリは、ビットストリームなどを含むケーブル又はワイヤレス信号を含み得る。しかしながら、言及する場合、非一時的コンピュータ可読記憶媒体は、エネルギー、キャリア信号、電磁波、及び信号自体などの媒体を明確に除外する。
【0128】
本明細書で提供する実施形態及び例の完全な理解を与えるために、上記の説明において具体的な詳細が提供されている。しかしながら、実施形態がこれらの具体的な詳細なしに実践され得ることが当業者によって理解されよう。説明を明快にするために、いくつかの事例では、本技術は、デバイスと、デバイス構成要素と、ソフトウェア、又はハードウェアとソフトウェアの組合せにおいて具現化された方法におけるステップ又はルーチンと、を備える個々の機能ブロックを含むものとして提示されることがある。図中に示され、及び/又は本明細書で説明される構成要素以外の追加の構成要素が使用されてもよい。たとえば、不必要な詳細で実施形態を不明瞭にしないように、回路、システム、ネットワーク、プロセス、及び他の構成要素がブロック図の形態で構成要素として示されることがある。他の事例では、実施形態を不明瞭にすることを避けるために、よく知られている回路、プロセス、アルゴリズム、構造、及び技法は、不必要な詳細なしに示されることがある。
【0129】
個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、又はブロック図として示されるプロセス又は方法として上記で説明されることがある。フローチャートは、動作を逐次プロセスとして説明することがあるが、動作の多くは並列に又は同時に実施され得る。加えて、動作の順序は並べ替えられてもよい。プロセスは、その動作が完了するときに終了するが、図に含まれていない追加のステップを有することができる。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応してもよい。プロセスが関数に対応するときに、その終了は、その関数が呼出し関数又はメイン関数に戻ることに対応することができる。
【0130】
上記で説明した例によるプロセス及び方法は、コンピュータ可読媒体に記憶されているか、又はそうでなければコンピュータ可読媒体から入手可能なコンピュータ実行可能命令を使用して実装され得る。そのような命令は、たとえば、汎用コンピュータ、専用コンピュータ、若しくは処理デバイスにいくつかの機能若しくは機能の群を実施させるか、又は場合によっては、いくつかの機能若しくは機能の群を実施するように汎用コンピュータ、専用コンピュータ、若しくは処理デバイスを構成する、命令及びデータを含み得る。使用されるコンピュータリソースの部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、たとえば、アセンブリ言語、ファームウェア、ソースコードなどのバイナリ、中間フォーマット命令であってもよい。命令、使用される情報、及び/又は記載した例による方法中に作成される情報を記憶するのに使用され得るコンピュータ可読媒体の例としては、磁気又は光ディスク、フラッシュメモリ、不揮発性メモリが設けられたUSBデバイス、ネットワーク接続された記憶デバイスなどが挙げられる。
【0131】
これらの開示に従ってプロセス及び方法を実装するデバイスは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、又はそれらの任意の組合せを含むことができ、様々なフォームファクタのうちのいずれかを取ることができる。ソフトウェア、ファームウェア、ミドルウェア、又はマイクロコードで実装されるときに、必要なタスクを実行するプログラムコード又はコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読媒体又は機械可読媒体内に記憶されてもよい。プロセッサ(単数又は複数)は、必要なタスクを実行してもよい。フォームファクタの典型的な例としては、ラップトップ、スマートフォン、携帯電話、タブレットデバイス又は他の小スペース型パーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが挙げられる。本明細書で説明した機能はまた、周辺装置又はアドインカードで具現化され得る。そのような機能はまた、更なる例として、異なるチップのうちの回路基板上、又は単一のデバイスにおいて実行する異なるプロセス上で実装され得る。
【0132】
命令、そのような命令の伝搬用の媒体、命令の実行用のコンピューティングリソース、及びそのようなコンピューティングリソースをサポートする他の構造は、本開示で説明した機能を提供する例示的な手段である。
【0133】
上記の説明では、本出願の態様はそれらの特定の実施形態を参照しながら説明されるが、本出願がそれらに限定されないことを当業者は認識されよう。したがって、本出願の例示的な実施形態が本明細書で詳細に説明されているが、本発明の概念が別のやり方で様々に具現及び採用され得ること、並びに従来技術によって限定される場合を除き、添付の特許請求の範囲がそのような変形を含むものと解釈されることが意図されることを理解されたい。上記で説明した本出願の様々な特徴及び態様は、個別に又は共同で使用され得る。更に、実施形態は、本明細書のより広い趣旨及び範囲から逸脱することなく、本明細書で説明するもの以外の任意の数の環境及び適用例において利用することができる。したがって、本明細書及び図面は、限定的ではなく例示的とみなされるべきである。例示のために、方法は特定の順序で説明された。代替実施形態では、方法は、説明された順序とは異なる順序で実行されてもよいことを理解されたい。
【0134】
本明細書で使用される、よりも小さい(「<」)及びよりも大きい(「>」)のシンボル又は専門用語は、本明細書の範囲から逸脱することなく、それぞれ、よりも小さいか又はそれに等しい(「≦」)、及び、よりも大きいか又はそれに等しい(「≧」)のシンボルと置き換えられ得ることを、当業者は諒解されよう。
【0135】
構成要素が一定の動作を実施する「ように構成されている」ものとして説明される場合、そのような構成は、たとえば、動作を実施するように電子回路又は他のハードウェアを設計することによって、動作を実行するようにプログラマブル電子回路(たとえば、マイクロプロセッサ、又は他の好適な電子回路)をプログラムすることによって、又はそれらの任意の組合せで達成され得る。
【0136】
「に結合された」という句は、直接的若しくは間接的のいずれかで別の構成要素に物理的に接続されている任意の構成要素、及び/又は直接的若しくは間接的のいずれかで別の構成要素と通信している(たとえば、有線若しくはワイヤレス接続及び/又は他の好適な通信インターフェースを介して他の構成要素に接続されている)任意の構成要素を指す。
【0137】
集合「のうちの少なくとも1つ」、及び/又は集合のうちの「1つ又は複数」を記載する請求項の文言又は本開示における他の文言は、集合のうちの1つのメンバー又は(任意の組合せにおける)集合のうちの複数のメンバーが請求項を満たすことを示す。たとえば、「A及びBのうちの少なくとも1つ」又は「A又はBのうちの少なくとも1つ」を記載する請求項の文言は、A、B、又はA及びBを意味する。別の例では、「A、B、及びCのうちの少なくとも1つ」又は「A、B、又はCのうちの少なくとも1つ」を記載する請求項の文言は、A、B、C、又はA及びB、又はA及びC、又はB及びC、又はA及びB及びCを意味する。集合「のうちの少なくとも1つ」及び/又は集合のうちの「1つ又は複数」という文言は、集合の中で列挙される項目にその集合を限定しない。たとえば、「A及びBのうちの少なくとも1つ」又は「A又はBのうちの少なくとも1つ」と記載する請求項の文言は、A、B、又はA及びBを意味することができ、追加として、A及びBの集合の中で列挙されない項目を含むことができる。
【0138】
本明細書で開示する例に関して説明した様々な例示的な論理ブロック、モジュール、回路、及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、又はそれらの組合せとして実装されてもよい。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、及びステップについて、それらの機能に関して概略的に上記で説明した。そのような機能がハードウェアとして実装されるのか又はソフトウェアとして実装されるのかは、特定の適用例及びシステム全体に課される設計上の制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の判定は、本出願の範囲から逸脱する原因として解釈されるべきではない。
【0139】
本明細書で説明する技法はまた、電子ハードウェア、コンピュータソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。そのような技法は、汎用コンピュータ、ワイヤレス通信デバイスハンドセット、又はワイヤレス通信デバイスハンドセット及び他のデバイスにおける適用例を含む複数の用途を有する集積回路デバイスなどの、様々なデバイスのうちのいずれかで実装されてもよい。モジュール又は構成要素として説明した任意の特徴は、集積ロジックデバイスの中で一緒に、又は個別であるが相互動作可能なロジックデバイスとして別々に実装され得る。ソフトウェアで実装される場合、これらの技術は、命令を含むプログラムコードを含むコンピュータ可読データ記憶媒体によって少なくとも部分的に実現されてよく、命令は、実行されたときに、上記で説明した方法、アルゴリズム、及び/又は動作のうちの1つ又は複数を実行する。コンピュータ可読データ記憶媒体は、コンピュータプログラム製品の一部を形成してもよく、これはパッケージ材料を含んでもよい。コンピュータ可読媒体は、同期ダイナミックランダムアクセスメモリ(synchronous dynamic random access memory、SDRAM)などのランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(non-volatile random access memory、NVRAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、FLASHメモリ、磁気又は光データ記憶媒体などの、メモリ又はデータ記憶媒体を備えてもよい。技法は、追加又は代替として、命令又はデータ構造の形態でのプログラムコードを搬送又は通信し、かつコンピュータによってアクセスされ、読み取られ、及び/又は実行され得る、伝搬される信号又は波などの、コンピュータ可読通信媒体によって少なくとも部分的に実現されてもよい。
【0140】
プログラムコードは、1つ又は複数のデジタル信号プロセッサ(DSPs)、汎用マイクロプロセッサ、特定用途向け集積回路(application specific integrated circuits、ASICs)、フィールドプログラマブルロジックアレイ(field programmable logic arrays、FPGAs)、又は他の同等の集積論理回路若しくは個別論理回路などの1つ又は複数のプロセッサを含み得る、プロセッサによって実行されてもよい。そのようなプロセッサは、本開示で説明した技法のいずれかを実施するように構成されてもよい。汎用プロセッサは、マイクロプロセッサであってもよい代わりに、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンでもあってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つ又は複数のマイクロプロセッサ、又は任意の他のそのような構成として実装されてもよい。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、又は本明細書で説明した技法の実装に適した任意の他の構造若しくは装置のうちのいずれかを指すことがある。
【0141】
本開示の例示的な例は、以下を含む。
態様1.物理的環境のシーン内に仮想コンテンツをレンダリングする装置であって、メモリと、メモリに結合された1つ又は複数のプロセッサと、を含み、1つ又は複数のプロセッサが、物理的環境のシーン内の少なくとも1つのサーフェスプレーンを判定し、シーン内の第1のロケーションに第1の遠近感で仮想コンテンツアイテムをレンダリングし、仮想コンテンツアイテムに関連付けられたコンテンツ配置インジケータであって、仮想コンテンツアイテムの配置用の第1の空間の少なくとも一部を示す、コンテンツ配置インジケータを、少なくとも1つのサーフェスプレーンの第1の空間上にレンダリングし、少なくとも1つのサーフェスプレーンに関連付けられた表面上の1つ又は複数の物体の1つ又は複数のロケーションを判定し、ユーザ入力に応じて、少なくとも1つのサーフェスプレーンの第2の空間上にコンテンツ配置インジケータをレンダリングする、ように構成されており、少なくとも1つのサーフェスプレーンの第2の空間が、1つ又は複数のロケーション及びユーザ入力に基づいて判定され、コンテンツ配置インジケータが、仮想コンテンツアイテムの配置用の第2の空間の少なくとも一部を示す、装置。
【0142】
態様2.1つ又は複数のプロセッサが、第2の空間上への仮想コンテンツアイテムの配置を要求する追加のユーザ入力に応じて、コンテンツ配置インジケータに基づいて、シーン内の第2のロケーションに第2の遠近感で仮想コンテンツアイテムをレンダリングするように更に構成されており、第2のロケーションが、第2の空間内にある、態様1の装置。
【0143】
態様3.1つ又は複数のプロセッサが、第2の空間の遠近感に基づいて第2の遠近感を判定するように更に構成されている、態様2の装置。
【0144】
態様4.1つ又は複数のプロセッサが、少なくとも1つのサーフェスプレーンの第1のサーフェスプレーン及び第2のサーフェスプレーンであって、第1の空間が、第1のサーフェスプレーンに関連付けられており、第2の空間が、第2のサーフェスプレーンに関連付けられている、第1のサーフェスプレーン及び第2のサーフェスプレーンを判定し、第2のサーフェスプレーンの遠近感に基づいて第2の遠近感を判定する、ように更に構成されている、態様2の装置。
【0145】
態様5.第2の空間上にコンテンツ配置インジケータをレンダリングするために、1つ又は複数のプロセッサが、仮想コンテンツアイテムと第2のサーフェスプレーンとの重複を判定し、重複が第1の閾値を超えるとの判定時に、第2のサーフェスプレーンに関連付けられた第2の空間上にコンテンツ配置インジケータをレンダリングすることに切り替える、ように構成されている、態様4の装置。
【0146】
態様6.第1の空間及び第2の空間が、少なくとも1つのサーフェスプレーンの第1のサーフェスプレーンに関連付けられており、1つ又は複数のプロセッサが、第1のサーフェスプレーンの少なくとも一部を遮蔽する1つ又は複数の物体を検出し、第1のサーフェスプレーンの遮蔽された一部に少なくとも基づいて、第1のサーフェスプレーンを少なくとも第1のセグメントと第2のセグメントとにセグメント化する、ように更に構成されており、第1の空間が、第1のセグメントに関連付けられており、第2の空間が、第2のセグメントに関連付けられている、態様1~5のいずれかの装置。
【0147】
態様7.第1のサーフェスプレーンを少なくとも第1のセグメントと第2のセグメントとにセグメント化するために、1つ又は複数のプロセッサが、第1のサーフェスプレーンの遠近感でレンダリングされた仮想コンテンツアイテムの第1のセグメント及び第2のセグメント内への収まりを判定するように構成されている、態様6の装置。
【0148】
態様8.1つ又は複数のプロセッサが、第1のセグメントと第2のセグメントとの間の仮想コンテンツアイテムのアスペクト比を変更するように更に構成されている、態様6~7のいずれかの装置。
【0149】
態様9.1つ又は複数のプロセッサが、第2の空間上にコンテンツ配置インジケータをレンダリングする前に、コンテンツ配置インジケータに基づいてシーン内の第3のロケーションに第3の遠近感で仮想コンテンツアイテムをレンダリングするように構成されており、第3のロケーションが、第1の空間内にある、態様1~8のいずれかの装置。
【0150】
態様10.1つ又は複数のプロセッサが、ユーザ入力に応じて、第2の空間上にコンテンツ配置インジケータをレンダリングする前に、コンテンツ配置インジケータを第1の空間内で動かすように更に構成されている、態様1~9のいずれかの装置。
【0151】
態様11.シーン内の少なくとも1つのサーフェスプレーンを判定するために、1つ又は複数のプロセッサが、シーン内の1つ又は複数の物体の1つ又は複数の表面を判定し、シーン内の1つ又は複数の物体の1つ又は複数の表面に基づいて、少なくとも1つのサーフェスプレーンを判定する、ように構成されている、態様1~10のいずれかの装置。
【0152】
態様12.シーン内の少なくとも1つのサーフェスプレーンを判定するために、1つ又は複数のプロセッサが、少なくとも1つの表面に垂直に、かつ装置に関連付けられたユーザの視点に向かって、少なくとも1つのサーフェスプレーンにオフセットを適用するように更に構成されている、態様11の装置。
【0153】
態様13.シーン内の少なくとも1つのサーフェスプレーンを判定するために、1つ又は複数のプロセッサが、シーン内の1つ又は複数の物体の1つ又は複数の縁を判定し、シーン内の1つ又は複数の物体の1つ又は複数の縁に基づいて、少なくとも1つのサーフェスプレーンを判定するように構成されている、態様1~12のいずれかの装置。
【0154】
態様14.コンテンツ配置インジケータをレンダリングするために、1つ又は複数のプロセッサが、少なくとも1つのサーフェスプレーン上にパターンをレンダリングするように構成されている、態様1~13のいずれかの装置。
【0155】
態様15.パターンが、強調表示、輪郭、色、陰影、影、ハッチング、及び勾配のうちの少なくとも1つを含む、態様14の装置。
【0156】
態様16.装置が、モバイルデバイスを含む、態様1~15のいずれかの装置。
【0157】
態様17.モバイルデバイスが、エクステンデッドリアリティデバイスを含む、態様16の装置。
【0158】
態様18.第1の空間及び第2の空間が、任意の物理的物体によって占有されていないこと、及び第1の空間及び第2の空間に関連付けられた少なくとも1つのサーフェスプレーンのそれぞれの部分の可視性を視覚的に遮断する任意の物理的物体がないことのうちの少なくとも1つである、少なくとも1つのサーフェスプレーン上の空間を含む、態様1~17のいずれかの装置。
【0159】
態様19.第2の空間が、物理的シーン内の1つ又は複数の物理的物体によって占有されている、少なくとも1つのサーフェスプレーン上の利用可能な空間を含む、態様1~18のいずれかの装置。
【0160】
態様20.1つ又は複数のプロセッサが、仮想コンテンツアイテムのアスペクト比に基づいて、少なくとも閾値量の仮想コンテンツアイテムが第2の空間内に収まらないと判定し、仮想コンテンツアイテムが異なるアスペクト比に従って構成されているときに、少なくとも閾値量の仮想コンテンツアイテムが第2の空間内に収まると判定し、異なるアスペクト比に従ってコンテンツ配置インジケータを構成し、異なるアスペクト比に従って第2の空間上にコンテンツ配置インジケータをレンダリングするように構成されている、態様1~19のいずれかの装置。
【0161】
態様21.1つ又は複数のプロセッサが、仮想コンテンツアイテムのアスペクト比を異なるアスペクト比に調整し、第2の空間上への仮想コンテンツアイテムの配置を要求する追加の入力に応じて、第2の空間上にかつコンテンツ配置インジケータ内にレンダリングされる、仮想コンテンツアイテムを異なるアスペクト比でレンダリングするように構成されている、態様20の装置。
【0162】
態様22.シーン内の少なくとも1つのサーフェスプレーンを判定するために、1つ又は複数のプロセッサが、シーン内の1つ又は複数の物体の1つ又は複数の表面を判定し、シーン内の1つ又は複数の物体の1つ又は複数の表面に基づいて、少なくとも1つのサーフェスプレーンを判定する、ように構成されている、態様1~21のいずれかの装置。
【0163】
態様23.1つ又は複数のプロセッサが、シーン内の1つ又は複数の物体の1つ又は複数の表面に基づいて、少なくとも1つのサーフェスプレーンを判定する前に、シーン内の1つ又は複数の物体の1つ又は複数の表面に平滑化を適用するように更に構成されている、態様22の装置。
【0164】
態様24.シーン内の少なくとも1つのサーフェスプレーンを判定するために、1つ又は複数のプロセッサが、少なくとも1つのサーフェスプレーンをシーン内の1つ又は複数の物体の1つ又は複数の表面のうちの少なくとも1つの表面と位置合わせするように構成されている、態様22の装置。
【0165】
態様25.1つ又は複数のプロセッサが、少なくとも1つの表面に対して少なくとも1つのサーフェスプレーンをレンダリングするように構成されている、態様1~24のいずれかの装置。
【0166】
態様26.少なくとも1つのサーフェスプレーンをレンダリングするために、1つ又は複数のプロセッサが、表面の平坦度の量が閾値未満であると判定し、少なくとも1つのサーフェスプレーンを少なくとも1つのサーフェスプレーンに関連付けられた表面上の1つ又は複数の点からの距離にレンダリングするように構成されている、態様25の装置。
【0167】
態様27.少なくとも1つのサーフェスプレーンをレンダリングするために、1つ又は複数のプロセッサが、表面の最高点が表面の1つ又は複数の他の点の上方の第1の閾値距離であると判定し、少なくとも1つのサーフェスプレーンを表面の最高点の上方の第2の閾値距離にレンダリングするように構成される、態様25の装置。
【0168】
態様28.コンテンツ配置インジケータをレンダリングするために、1つ又は複数のプロセッサが、少なくとも1つのサーフェスプレーン上に視覚的輪郭をレンダリングするように構成されている、態様1~27のいずれかの装置。
【0169】
態様29.視覚的輪郭が、フレーム又はバウンディングボックスのうちの少なくとも1つを含む、態様28の装置。
【0170】
態様30.1つ又は複数のプロセッサがそれぞれのサーフェスプレーンの遠近感で視覚的輪郭をレンダリングするように更に構成されている、態様28~29のいずれかの装置。
【0171】
態様31.第1のコンテンツ配置インジケータ及び/又は第2のコンテンツ配置インジケータをレンダリングするために、1つ又は複数のプロセッサが、少なくとも1つのサーフェスプレーン上に仮想コンテンツアイテムのプレビューをレンダリングするように構成されている、態様1~30のいずれかの装置。
【0172】
態様32.物理的環境のシーン内に仮想コンテンツをレンダリングする方法であって、物理的環境のシーン内の少なくとも1つのサーフェスプレーンを判定することと、コンピューティングデバイスを介して、シーン内の第1のロケーションに第1の遠近感で仮想コンテンツアイテムをレンダリングすることと、仮想コンテンツアイテムに関連付けられたコンテンツ配置インジケータであって、仮想コンテンツアイテムの配置用の第1の空間の少なくとも一部を示す、コンテンツ配置インジケータを、少なくとも1つのサーフェスプレーンの第1の空間上にレンダリングすることと、少なくとも1つのサーフェスプレーンに関連付けられた表面上の1つ又は複数の物体の1つ又は複数のロケーションを判定することと、ユーザ入力に応答して、少なくとも1つのサーフェスプレーンの第2の空間上にコンテンツ配置インジケータをレンダリングすることと、を含み、少なくとも1つのサーフェスプレーンの第2の空間が、1つ又は複数のロケーション及びユーザ入力に基づいて判定され、コンテンツ配置インジケータが、仮想コンテンツアイテムの配置用の第2の空間の少なくとも一部を示す、方法。
【0173】
態様33.第2の空間上への仮想コンテンツアイテムの配置を要求する追加のユーザ入力に応じて、コンテンツ配置インジケータに基づいて、シーン内の第2のロケーションに第2の遠近感で仮想コンテンツアイテムをレンダリングすることを更に含み、第2のロケーションが、第2の空間内にある、態様32の方法。
【0174】
態様34.第2の空間の遠近感に基づいて第2の遠近感を判定することを更に含む、態様33の方法。
【0175】
態様35.少なくとも1つのサーフェスプレーンの第1のサーフェスプレーン及び第2のサーフェスプレーンであって、第1の空間が、第1のサーフェスプレーンに関連付けられており、第2の空間が、第2のサーフェスプレーンに関連付けられている、第1のサーフェスプレーン及び第2のサーフェスプレーンを判定することと、第2のサーフェスプレーンの遠近感に基づいて第2の遠近感を判定することと、を更に含む、態様33の方法。
【0176】
態様36.第2の空間上にコンテンツ配置インジケータをレンダリングすることが、仮想コンテンツアイテムと第2のサーフェスプレーンとの重複を判定することと、重複が第1の閾値を超えるとの判定時に、第2のサーフェスプレーンに関連付けられた第2の空間上にコンテンツ配置インジケータをレンダリングすることに切り替えることと、を含む、態様35の方法。
【0177】
態様37.第1の空間及び第2の空間が、少なくとも1つのサーフェスプレーンの第1のサーフェスプレーンに関連付けられており、方法が、第1のサーフェスプレーンの少なくとも一部を遮蔽する1つ又は複数の物体を検出することと、第1のサーフェスプレーンの遮蔽された一部に少なくとも基づいて、第1のサーフェスプレーンを少なくとも第1のセグメントと第2のセグメントとにセグメント化することと、を更に含み、第1の空間が、第1のセグメントに関連付けられており、第2の空間が、第2のセグメントに関連付けられている、態様32~36のいずれかの方法。
【0178】
態様38.第1のサーフェスプレーンを少なくとも第1のセグメントと第2のセグメントとにセグメント化することが、第1のサーフェスプレーンの遠近感でレンダリングされた仮想コンテンツアイテムの第1のセグメント及び第2のセグメント内への収まりを判定することを含む、態様37の方法。
【0179】
態様39.第1のセグメントと第2のセグメントとの間の仮想コンテンツアイテムのアスペクト比を変更することを更に含む、態様37~38のいずれかの方法。
【0180】
態様40.第2の空間上にコンテンツ配置インジケータをレンダリングする前に、コンテンツ配置インジケータに基づいて、シーン内の第3のロケーションに第3の遠近感で仮想コンテンツアイテムをレンダリングすることを更に含み、第3のロケーションが第1の空間内にある、態様32~39のいずれかの方法。
【0181】
態様41.ユーザ入力に応じて、第2の空間上にコンテンツ配置インジケータをレンダリングする前に、コンテンツ配置インジケータを第1の空間内で動かすことを更に含む、態様32~40のいずれかの方法。
【0182】
態様42.シーン内の少なくとも1つのサーフェスプレーンを判定することが、シーン内の1つ又は複数の物体の1つ又は複数の表面を判定することと、シーン内の1つ又は複数の物体の1つ又は複数の表面に基づいて、少なくとも1つのサーフェスプレーンを判定することと、を含む、態様32~41のいずれかの方法。
【0183】
態様43.シーン内の少なくとも1つのサーフェスプレーンを判定することが、少なくとも1つの表面に垂直に、かつコンピューティングデバイスに関連付けられたユーザの視点に向かって、少なくとも1つのサーフェスプレーンにオフセットを適用することを含む、態様42の方法。
【0184】
態様44.シーン内の少なくとも1つのサーフェスプレーンを判定することが、シーン内の1つ又は複数の物体の1つ又は複数の縁を判定することと、シーン内の1つ又は複数の物体の1つ又は複数の縁に基づいて、少なくとも1つのサーフェスプレーンを判定することと、を含む、態様32~43のいずれかの方法。
【0185】
態様45.コンテンツ配置インジケータをレンダリングすることが、少なくとも1つのサーフェスプレーン上にパターンをレンダリングすることを含む、態様32~44のいずれかの方法。
【0186】
態様46.パターンが、強調表示、輪郭、色、陰影、影、ハッチング、及び勾配のうちの少なくとも1つを含む、態様45の方法。
【0187】
態様47.第1の空間及び第2の空間が、任意の物理的物体によって占有されていないこと、及び第1の空間及び第2の空間に関連付けられた少なくとも1つのサーフェスプレーンのそれぞれの部分の可視性を視覚的に遮断する任意の物理的物体がないことのうちの少なくとも1つである、少なくとも1つのサーフェスプレーン上の空間を含む、態様32~46のいずれかの方法。
【0188】
態様48.第2の空間が、物理的シーン内の1つ又は複数の物理的物体によって占有されている、少なくとも1つのサーフェスプレーン上の利用可能な空間を含む、態様32~47のいずれかの方法。
【0189】
態様49.仮想コンテンツアイテムのアスペクト比に基づいて、少なくとも閾値量の仮想コンテンツアイテムが第2の空間内に収まらないと判定することと、仮想コンテンツアイテムが異なるアスペクト比に従って構成されているときに、少なくとも閾値量の仮想コンテンツアイテムが第2の空間内に収まると判定することと、異なるアスペクト比に従ってコンテンツ配置インジケータを構成することと、異なるアスペクト比に従って第2の空間上にコンテンツ配置インジケータをレンダリングすることと、を更に含む、態様32~48のいずれかの方法。
【0190】
態様50.仮想コンテンツアイテムのアスペクト比を異なるアスペクト比に調整することと、第2の空間上への仮想コンテンツアイテムの配置を要求する追加の入力に応じて、第2の空間上にかつコンテンツ配置インジケータ内にレンダリングされる、仮想コンテンツアイテムを異なるアスペクト比でレンダリングすることとを更に含む、態様49の方法。
【0191】
態様51.シーン内の少なくとも1つのサーフェスプレーンを判定することが、シーン内の1つ又は複数の物体の1つ又は複数の表面を判定することと、シーン内の1つ又は複数の物体の1つ又は複数の表面に基づいて、少なくとも1つのサーフェスプレーンを判定することと、を含む、態様32~50のいずれかの方法。
【0192】
態様52.シーン内の1つ又は複数の物体の1つ又は複数の表面に基づいて、少なくとも1つのサーフェスプレーンを判定する前に、シーン内の1つ又は複数の物体の1つ又は複数の表面に平滑化を適用することを更に含む、態様51の方法。
【0193】
態様53.シーン内の少なくとも1つのサーフェスプレーンを判定することが、少なくとも1つのサーフェスプレーンをシーン内の1つ又は複数の物体の1つ又は複数の表面のうちの少なくとも1つの表面と位置合わせすることを含む、態様51の方法。
【0194】
態様54.表面に対して少なくとも1つのサーフェスプレーンをレンダリングすることを更に含む、態様32~53のいずれかの方法。
【0195】
態様55.少なくとも1つのサーフェスプレーンをレンダリングすることが、表面の平坦度の量が閾値未満であると判定することと、少なくとも1つのサーフェスプレーンを少なくとも1つのサーフェスプレーンに関連付けられた表面上の1つ又は複数の点からの距離にレンダリングすることと、を含む、態様54の方法。
【0196】
態様56.少なくとも1つのサーフェスプレーンをレンダリングすることが、表面の最高点が表面の1つ又は複数の他の点の上方の第1の閾値距離であると判定することと、少なくとも1つのサーフェスプレーンを表面の最高点の上方の第2の閾値距離にレンダリングすることと、を含む、態様54の方法。
【0197】
態様57.コンテンツ配置インジケータをレンダリングすることが、少なくとも1つのサーフェスプレーン上に視覚的輪郭をレンダリングすることを含む、態様32~56のいずれかの方法。
【0198】
態様58.視覚的輪郭が、フレーム又はバウンディングボックスのうちの少なくとも1つを含む、態様57の方法。
【0199】
態様59.それぞれのサーフェスプレーンの遠近感で視覚的輪郭をレンダリングすることを更に含む、態様57~58のいずれかの方法。
【0200】
態様60.コンテンツ配置インジケータをレンダリングすることが、少なくとも1つのサーフェスプレーン上に仮想コンテンツアイテムのプレビューをレンダリングすることを含む、態様32~59のいずれかの方法。
【0201】
態様61.態様32~59のいずれかに従って方法を実施する手段を含む装置。
【0202】
態様62.命令を記憶した非一時的コンピュータ可読媒体であって、命令が、1つ又は複数のプロセッサによって実行されたときに、1つ又は複数のプロセッサに態様32~59のいずれかによる方法を実施させる、非一時的コンピュータ可読媒体。
【0203】
態様63.物理的環境のシーン内に仮想コンテンツをレンダリングする方法であって、物理的環境のシーン内の少なくとも1つのサーフェスプレーンを判定することと、少なくとも1つの表面に関連付けられた表面の平坦度の量が閾値を下回ると判定することと、少なくとも1つのサーフェスプレーンを少なくとも1つのサーフェスプレーンに関連付けられた表面上の1つ又は複数の点からの距離にレンダリングすることと、仮想コンテンツアイテムに関連付けられたコンテンツ配置インジケータであって、コンテンツ配置インジケータが、仮想コンテンツアイテムの配置用の第1の空間の少なくとも一部を示す、コンテンツ配置インジケータを、少なくとも1つのサーフェスプレーンの第1の空間上にレンダリングすることと、コンピューティングデバイスを介して、少なくとも1つの表面の第1の空間に関連付けられたシーン内の第1のロケーションに第1の遠近感で仮想コンテンツアイテムをレンダリングすることと、を含む、方法。
【0204】
態様64.態様63による方法を実施する手段を含む装置。
【0205】
態様65.命令を記憶した非一時的コンピュータ可読媒体であって、命令が、1つ又は複数のプロセッサによって実行されたときに、1つ又は複数のプロセッサに態様63による方法を実施させる、非一時的コンピュータ可読媒体。
図1
図2A
図2B
図3A
図3B
図4
図5A
図5B
図5C
図5D
図6
図7
図8
【国際調査報告】