(57)【要約】【課題】拡張現実シーン生成用に三次元環境でキャプチャされた画像を処理するコンピューティングデバイスを提供する。【解決手段】コンピューティングデバイスは、拡張現実アンカーを取得するように構成され、該アンカーは、現実世界の環境における位置及び向きに対応する。該デバイスは、ユーザ装置から画像キャプチャデータを受信するように構成される。画像キャプチャデータは、ユーザ装置によりキャプチャされた現実世界の環境を表す画像を含む。上記デバイスは、画像キャプチャデータを処理し、アンカーを画像にマッピングする空間データを決定するように構成される。空間データは、ユーザ装置において拡張現実シーンを生成するためにアンカーに従って仮想オブジェクトを画像に挿入するユーザ装置によって使用可能である。上記デバイスは、決定された空間データをユーザ装置に送信するように構成される。【選択図】図２
2019185759.tif 000002
【特許請求の範囲】
【請求項１】
拡張現実シーンの生成のために三次元環境においてキャプチャされた画像を処理するためのコンピューティングデバイスであって、
現実世界の環境における位置及び向きに対応する拡張現実アンカーを取得することと、
データ通信を介してリモートユーザデバイスから画像キャプチャデータを受信することであって、前記画像キャプチャデータが、前記リモートユーザデバイスによってキャプチャされた画像を含み、前記画像が、前記リモートユーザデバイスから見た前記現実世界の環境を表す、当該受信することと、
前記画像キャプチャデータを処理して、前記拡張現実アンカーを前記画像にマッピングする空間データを決定することであって、前記空間データが、前記リモートユーザデバイスにおいて拡張現実シーンを生成するために前記拡張現実アンカーに従って仮想オブジェクトを前記画像に挿入するのに前記リモートユーザデバイスによって使用可能である、当該決定することと、
前記決定された空間データを、データ通信を介して前記リモートユーザデバイスに送信することと、
を行うように構成されている、コンピューティングデバイス。
【請求項２】
前記決定された空間データが、前記画像に配置された前記拡張現実アンカーに対応する位置、向き、及びスケールデータのうちの少なくとも１つを含む、請求項１に記載のコンピューティングデバイス。
【請求項３】
前記空間データを決定するためにポーズ推定を使用して前記画像を処理するように構成されている、請求項１又は２に記載のコンピューティングデバイス。
【請求項４】
前記拡張現実アンカーが第１のアンカーであり、
前記コンピューティングデバイスが、
前記第１のアンカーを含む複数の拡張現実アンカーを取得することであって、前記複数の拡張現実アンカーのそれぞれが、前記現実世界の環境におけるそれぞれの位置及び向きに対応する、当該取得することと、
前記画像キャプチャデータを処理して、前記複数の拡張現実アンカーのそれぞれを前記画像にマッピングするそれぞれの空間データを決定することであって、前記それぞれの空間データが、前記リモートユーザデバイスにおいて前記拡張現実シーンを生成するために前記拡張現実アンカーに従ってそれぞれの仮想オブジェクトを前記画像に挿入するのに前記リモートユーザデバイスによって使用可能である、当該決定することと、
データ通信を介して、前記決定されたそれぞれの空間データを前記リモートユーザデバイスに送信することと、
を行うように構成されている、請求項１〜３のいずれか一項に記載のコンピューティングデバイス。
【請求項５】
前記リモートユーザデバイスを含む複数のリモートユーザデバイスからデータ通信を介してそれぞれの画像キャプチャデータを受信することであって、前記それぞれの画像キャプチャデータが、前記複数のリモートユーザデバイスによってキャプチャされたそれぞれの画像を含み、前記それぞれの画像の各々が、前記それぞれのリモートユーザデバイスから見た前記現実世界の環境を表す、当該受信することと、
前記それぞれの画像キャプチャデータを処理して、前記拡張現実アンカーを前記それぞれの画像にマッピングするそれぞれの空間データを決定することであって、前記それぞれの空間データが、前記それぞれのリモートユーザデバイスにおいて拡張現実シーンを生成するために前記拡張現実アンカーに従って仮想オブジェクトを前記それぞれの画像に挿入するのに前記それぞれのリモートユーザデバイスによって使用可能である、当該決定することと、
前記それぞれの決定された空間データを前記それぞれのリモートユーザデバイスに送信することと、
を行うように構成されている、請求項１〜４のいずれか一項に記載のコンピューティングデバイス。
【請求項６】
前記リモートユーザデバイスを含む複数のリモートユーザデバイスに通信可能に結合されたサーバデバイス、
を備える、請求項１〜５のいずれか一項に記載のコンピューティングデバイス。
【請求項７】
前記リモートユーザデバイスが第１のリモートユーザデバイスであり、前記コンピューティングデバイスが第２のリモートユーザデバイスを含む、請求項１〜５のいずれか一項に記載のコンピューティングデバイス。
【請求項８】
前記画像キャプチャデータが、前記第１のリモートユーザデバイスによってキャプチャされた第１の画像を含む第１の画像キャプチャデータを含み、前記第２のリモートユーザデバイスが、前記第２のリモートユーザデバイスによってキャプチャされた第２の画像を含む第２の画像キャプチャデータを取得するように構成されている、請求項７に記載のコンピューティングデバイス。
【請求項９】
前記第２のリモートユーザデバイスが、
前記現実世界の環境におけるさらなる位置及び向きに対応するさらなる拡張現実アンカーに関連付けられた、さらなる空間データを第３のリモートユーザデバイスから受信し、
前記さらなる空間データ、及び前記仮想オブジェクトに対応する仮想オブジェクトデータに基づいて、仮想オブジェクトを前記第２の画像に挿入する、
ように構成されている、請求項８に記載のコンピューティングデバイス。
【請求項１０】
拡張現実シーンの生成のために三次元環境においてキャプチャされた画像を処理するためのコンピューティングデバイスによって実行されるコンピュータ実施方法であって、
現実世界の環境における位置及び向きに対応する拡張現実アンカーを取得するステップと、
リモートユーザデバイスからデータ通信を介して画像キャプチャデータを受信するステップであって、前記画像キャプチャデータが、前記リモートユーザデバイスによってキャプチャされた画像を含み、前記画像が、前記リモートユーザデバイスから見た前記現実世界の環境を表す、当該受信するステップと
前記画像キャプチャデータの処理を実行し、前記拡張現実アンカーを前記画像にマッピングする空間データを決定するステップであって、前記空間データが、前記リモートユーザデバイスにおいて拡張現実シーンを生成するために前記拡張現実アンカーに従って前記画像に仮想オブジェクトを挿入するのに前記リモートユーザデバイスによって使用可能である、当該決定するステップと、
データ通信を介して、前記決定された空間データを前記リモートユーザデバイスに送信するステップと、
を含む、コンピュータ実施方法。
【請求項１１】
前記画像キャプチャデータの処理が、前記画像キャプチャデータ及び前記拡張現実アンカーに基づいてポーズ推定を実行すること、を含む、請求項１０に記載のコンピュータ実施方法。
【請求項１２】
前記コンピューティングデバイスによって、前記拡張現実アンカーを生成するステップと、
前記コンピューティングデバイスによる前記拡張現実アンカーの生成に応答して、データメッセージを前記リモートユーザデバイスに送信するステップであって、前記データメッセージが前記拡張現実アンカーの存在を報告する、当該ステップと、
を含む、請求項１０又は１１に記載のコンピュータ実施方法。
【請求項１３】
前記拡張現実アンカーが第１のアンカーであり、
前記拡張現実アンカーを取得するステップが、前記第１のアンカーを含む複数の拡張現実アンカーを取得することであって、前記複数の拡張現実アンカーのそれぞれが、前記現実世界の環境におけるそれぞれの位置及び向きに対応する、当該取得すること、を含み、
前記決定するステップが、前記画像キャプチャデータの処理を実行して、前記複数の拡張現実アンカーのそれぞれを前記画像にマッピングするそれぞれの空間データを決定することであって、前記それぞれの空間データが、前記リモートユーザデバイスにおいて前記拡張現実シーンを生成するために前記拡張現実アンカーに従ってそれぞれの仮想オブジェクトを前記画像に挿入するのに前記リモートユーザデバイスによって使用可能である、当該決定すること、を含み、
前記送信するステップが、データ通信を介して、前記決定されたそれぞれの空間データを前記リモートユーザデバイスに送信すること、を含む、
請求項１０〜１２のいずれか一項に記載のコンピュータ実施方法。
【請求項１４】
前記受信するステップが、前記リモートユーザデバイスを含む複数のリモートユーザデバイスからデータ通信を介してそれぞれの画像キャプチャデータを受信することであって、前記それぞれの画像キャプチャデータが、前記複数のリモートユーザデバイスによってキャプチャされたそれぞれの画像を含み、前記それぞれの画像の各々が、前記それぞれのリモートユーザデバイスから見た前記現実世界の環境を表す、当該受信することを含み、
前記決定するステップが、前記それぞれの画像キャプチャデータの処理を実行して、前記拡張現実アンカーをそれぞれの画像それぞれにマッピングするそれぞれの空間データを決定することであって、前記それぞれの空間データが、前記それぞれのリモートユーザデバイスにおいて拡張現実シーンを生成するために前記拡張現実アンカーに従って仮想オブジェクトを前記それぞれの画像に挿入するのに前記それぞれのリモートユーザデバイスによって使用可能である、当該決定すること、を含み、
前記送信するステップが、前記決定されたそれぞれの空間データを前記それぞれのリモートユーザデバイスに送信すること、を含む、
請求項１０〜１３のいずれか一項に記載のコンピュータ実施方法。
【請求項１５】
前記リモートユーザデバイスが第１のリモートユーザデバイスを含み、前記コンピューティングデバイスが第２のリモートユーザデバイスを含み、
前記方法が、
前記第２のリモートユーザデバイスによってキャプチャされたさらなる画像を含むさらなる画像キャプチャデータを取得するステップ、
を含む、請求項１０〜１４のいずれか一項に記載のコンピュータ実施方法。
【請求項１６】
さらなる拡張現実アンカーに関連付けられた、さらなる空間データを受信するステップであって、前記さらなる空間データが、前記第２のリモートユーザデバイスにおいて拡張現実シーンを生成するために前記さらなる拡張現実アンカーに従って仮想オブジェクトを前記さらなる画像に挿入するのに前記第２のリモートユーザデバイスによって使用可能である、当該さらなる空間データを受信するステップと、
画像に挿入するために仮想オブジェクトに関連付けられた仮想オブジェクトデータを取得するステップと、
受信された前記さらなる空間データ、及び取得された前記仮想オブジェクトデータに基づいて、前記仮想オブジェクトを前記さらなる画像に挿入するステップと、
を含む、請求項１５に記載のコンピュータ実施方法。
【請求項１７】
前記さらなる画像が前記第２のリモートユーザデバイスによってキャプチャされたときに、前記第２のリモートユーザデバイスの現実世界の位置を決定するステップと、
前記現実世界の位置が前記第２のリモートユーザデバイスの以前の現実世界の位置とは所定のしきい値を超えて異なるという判定に応答して、前記第２のリモートユーザデバイスによってキャプチャされた前記さらなる画像を含む前記さらなる画像キャプチャデータを、別のリモートユーザデバイスによって処理するために前記別のリモートユーザデバイスに送信するステップと、
を含む、請求項１５又は請求項１６に記載のコンピュータ実施方法。
【請求項１８】
一組のコンピュータ可読命令を記憶したコンピュータ読み取り可能な記憶媒体であって、
少なくとも１つのプロセッサに、
現実世界の環境における位置及び向きに対応する拡張現実アンカーを取得するステップと、
データ通信を介してリモートユーザデバイスから画像キャプチャデータを受信するステップであって、前記画像キャプチャデータが、前記リモートユーザデバイスによってキャプチャされた画像を含み、前記画像が、前記リモートユーザデバイスから見た前記現実世界の環境を表す、当該受信するステップと、
前記画像キャプチャデータの処理を実行して、前記拡張現実アンカーを前記画像にマッピングする空間データを決定するステップであって、空間データが、前記リモートユーザデバイスによって拡張現実シーンを生成するために前記拡張現実アンカーに従って仮想オブジェクトを前記画像に挿入するのに前記リモートユーザデバイスによって使用可能である、当該決定するステップと、
データ通信を介して、決定された空間データを前記リモートユーザデバイスに送信するステップと、
を実行させるためのプログラムを記憶した、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に拡張現実及び／又は仮想現実環境に関連する画像処理に関する。
【背景技術】
【０００２】
拡張現実（ＡＲ）又は仮想現実（ＶＲ）環境に関連して画像データを処理することは、仮想オブジェクトをどこに位置付けるか（又は「固定する」か）を決定することを含む。ＡＲ環境では、これは、物理環境内の１つ又は複数の実オブジェクトに関連して１つ又は複数の仮想オブジェクトをどこにレンダリングするかの場所を決定することを含むことができる。ＶＲ環境では、これは、シミュレートされた環境内の１つ又は他の仮想オブジェクトに関連して１つ又は複数の仮想オブジェクトをどこにレンダリングするかの場所を決定することを含むことができる。
【０００３】
課題は、コンピューティングリソースを節約しながら、様々なアプリケーションに十分な精度及び／又は頻度で、ＡＲ又はＶＲ体験を共有する複数のユーザデバイスによってキャプチャされた画像のどこに仮想オブジェクトを配置するかを決定することである。
【０００４】
この課題は、ＡＲ及びＶＲ環境の生成、並びに画像レンダリングに対するかなりの要求のために、ＡＲ及びＶＲアプリケーションに対して増大する。これは、比較的少量の利用可能なコンピューティングリソースを有する汎用スマートフォン及び汎用タブレットコンピューティングデバイスなどのモバイルコンピューティングデバイスで実行するＡＲ及びＶＲアプリケーションにとって特に課題である。
【発明の概要】
【０００５】
本開示の態様によると、拡張現実シーンの生成のために三次元環境においてキャプチャされた画像を処理するためのコンピューティングデバイス、が提供され、本コンピューティングデバイスは、
現実世界の環境における位置及び向きに対応する拡張現実アンカーを取得することと、
データ通信を介してリモートユーザデバイスから画像キャプチャデータを受信することであって、前記画像キャプチャデータが、前記リモートユーザデバイスによってキャプチャされた画像を含み、前記画像が、前記リモートユーザデバイスから見た前記現実世界の環境を表す、当該受信することと、
画像キャプチャデータの処理を実行して、アンカーを画像にマッピングする空間データを決定することであって、空間データが、リモートユーザデバイスにおいて拡張現実シーンを生成するためにアンカーに従って仮想オブジェクトを画像に挿入するのにリモートユーザデバイスによって使用可能である、当該決定することと、
データ通信を介して、決定された空間データをリモートユーザデバイスに送信することと、
を行うように構成されている。
【０００６】
さらなる態様によると、拡張現実シーンの生成のために三次元環境においてキャプチャされた画像を処理するためのコンピューティングデバイスによって実行されるコンピュータ実施方法が提供され、本方法は、
現実世界の環境における位置及び向きに対応する拡張現実アンカーを取得するステップと、
リモートユーザデバイスからデータ通信を介して画像キャプチャデータを受信するステップであって、画像キャプチャデータが、リモートユーザデバイスによってキャプチャされた、リモートユーザデバイスから見た現実世界の環境を表す画像を含む、当該受信するステップと、
画像キャプチャデータの処理を実行して、アンカーを画像にマッピングする空間データを決定するステップであって、空間データが、リモートユーザデバイスにおいて拡張現実シーンを生成するためにアンカーに従って仮想オブジェクトを画像に挿入するのにリモートユーザデバイスによって使用可能である、当該決定するステップと、
データ通信を介して、決定された空間データをリモートユーザデバイスに送信するステップと、
を含む。
【０００７】
さらなる態様によると、少なくとも１つのプロセッサによって実行されると、少なくとも１つのプロセッサに、
現実世界の環境における位置及び向きに対応する拡張現実アンカーを取得することと、
データ通信を介してリモートユーザデバイスから画像キャプチャデータを受信することであって、前記画像キャプチャデータが、前記リモートユーザデバイスによってキャプチャされた画像を含み、前記画像が、前記リモートユーザデバイスから見た前記現実世界の環境を表す、当該受信することと、
画像キャプチャデータの処理を実行して、アンカーを画像にマッピングする空間データを決定することであって、前記空間データが、リモートユーザデバイスにおいて拡張現実シーンを生成するためにアンカーに従って仮想オブジェクトを画像に挿入するのにリモートユーザデバイスによって使用可能である、当該決定することと、
データ通信を介して、決定された空間データをリモートユーザデバイスに送信することと、
を行わせる一組のコンピュータ可読命令を記憶した非一時的なコンピュータ可読記憶媒体が提供される。
【０００８】
さらなる特徴及び利点は、添付図面を参照して行われる以下の例についての説明から明らかになるであろう。
【図面の簡単な説明】
【０００９】
【図１ａ】一例としての、コンピューティングデバイスを含むＡＲシステムの概略図である。
【図１ｂ】一例としての、コンピューティングデバイスを含むＡＲシステムの概略図である。
【図１ｃ】一例としての、コンピューティングデバイスを含むＡＲシステムの概略図である。
【図２】一例としての、異なる視点から現実世界の環境を見る２つのリモートユーザデバイスの概略図である。
【図３ａ】図２のユーザデバイスによってキャプチャされた画像の概略図である。
【図３ｂ】図２のユーザデバイスによってキャプチャされた画像の概略図である。
【図４ａ】例に従って処理されたときの図３ａのキャプチャされた画像の概略図である。
【図４ｂ】例に従って処理されたときの図３ｂのキャプチャされた画像の概略図である。
【図５ａ】例に従って処理されたときの図３ａのキャプチャされた画像の概略図である。
【図５ｂ】例に従って処理されたときの図３ｂのキャプチャされた画像の概略図である。
【図６ａ】例に従って処理されたときの図３ａのキャプチャされた画像の概略図である。
【図６ｂ】例に従って処理されたときの図３ｂのキャプチャされた画像の概略図である。
【図７ａ】例に従って処理されたときの図３ａのキャプチャされた画像の概略図である。
【図７ｂ】例に従って処理されたときの図３ｂのキャプチャされた画像の概略図である。
【図８】一例としての、コンピュータ実施方法を示す流れ図である。
【図９】一例としての、一組のコンピュータ可読命令を含む、プロセッサに接続されたコンピュータ可読記憶媒体の概略図である。
【発明を実施するための形態】
【００１０】
一例としての装置及び方法の詳細は、図を参照して、以下の記載から明らかになるであろう。本記載では、説明の目的で、ある特定の例についての多数の具体的な詳細が述べられている。本明細書において、「例」若しくは同様の文言への言及は、その例に関連して記載された特定の特徴、構造、又は特性が少なくともその一例に含まれているが、必ずしも他の例には含まれていないことを意味する。ある特定の例は、その例の基礎となる概念についての説明及び理解を容易にするためにある特定の特徴が省略されて及び／又は必然的に簡略化されて概略的に記載されていることにさらに留意されたい。
【００１１】
図１ａを参照すると、本明細書に記載された例は、コンピューティングデバイス１００を提供する。コンピューティングデバイス１００は、コンピュータ実行可能命令を含むデータ記憶装置、並びに１つ若しくは複数のプロセッサ、例えば中央処理装置（ＣＰＵ）、グラフィック処理装置（ＧＰＵ）及び／又は他のプロセッサを含むことができ、これらは、システムオンチップ（ＳｏＣ）として、又は複数のＳｏＣ上に組み合わされて、１つ若しくは複数のアプリケーションプロセッサを形成することができる。
【００１２】
例において、拡張現実（ＡＲ）エンジンは、コンピューティングデバイス１００に設けられている。ＡＲエンジンは、１つ若しくは複数のソフトウェア及び／又はハードウェアモジュールの形態であってもよい。ＡＲエンジンは、例えば、コンピューティングデバイス１００にインストールされたアップルＡＲＫｉｔ（商標）、グーグルＡＲＣｏｒｅ（商標）、又はグーグルＴａｎｇｏ（商標）などのＡＲプラットフォーム又はオペレーティングシステムの一部であってもよい。
【００１３】
コンピューティングデバイス１００は、例えば、ＡＲエンジンを介して、複数のリモートユーザデバイス１１０を含むＡＲシステムの一部として機能することができる。複数のリモートユーザデバイス１１０は、ＡＲシステム１０１を介して、複数のリモートユーザデバイス１１０間で共有される拡張現実感を体験することができる。
【００１４】
リモートユーザデバイス１１０のうちの１つ又は複数は、図１ａに示すように、アンドロイド（商標）又はアップルｉＯＳ（商標）デバイスなどの汎用スマートフォン若しくは汎用タブレットコンピューティングデバイスの形態であってもよい。例において、リモートユーザデバイス１１０のうちの１つ又は複数は、対応する別個のヘッドセット（図示せず）に取外し可能に取り付けられてもよい。例において、リモートユーザデバイス１１０のうちの１つ又は複数は、ユーザが着用することができるＡＲヘッドセット又はＡＲメガネ（図示せず）の形態であってもよい。
【００１５】
リモートユーザデバイス１１０は、１つ又は複数の画像センサを備えることができる。したがって、リモートユーザデバイス１１０は、それぞれの画像センサを使用して現実世界の環境の画像をキャプチャすることができる。画像は、それぞれのリモートユーザデバイス１１０それぞれによってキャプチャ可能な現実世界の環境の視野を表すことができる。画像は、例えば、それぞれのリモートユーザデバイス１１０に表示されるときに仮想オブジェクト及びフィーチャを含むようにＡＲエンジンによって増強されてもよい。
【００１６】
ビジュアルオドメトリシステムが、１つ若しくは複数のソフトウェア及び／又はハードウェアモジュールの形態でコンピューティングデバイス１００に設けられてもよい。ビジュアルオドメトリシステムは、少なくともリモートユーザデバイスに設けられた画像センサから受け取った画像データを使用してビジュアルオドメトリを行うことができる。ビジュアルオドメトリは、少なくとも一部は、リモートユーザデバイス１１０の画像センサから受け取った画像データを処理することによって行われてもよい。
【００１７】
ビジュアルオドメトリシステムは、様々な公知のビジュアルオドメトリアルゴリズムのうちのいずれか１つとして実施されてもよく、例えば、コンピューティングデバイス１００にインストールされたＡＲプラットフォームによって提供されてもよい。
【００１８】
コンピューティングデバイス１００は、ＡＲアンカーを割り当てられてもよい。例えば、アンカーは、アンカーの「所有者」であってもよいコンピューティングデバイス１００に割り付けられてもよく、又は「属して」もよい。アンカーは、現実世界の環境における位置及び向きに対応する。例えば、アンカーは、現実世界の位置及び向きを規定することができる。アンカーは、現実世界における固定の位置及び向きを記述することができる。アンカーの現実世界の位置及び向き（又は「ポーズ」）は、アンカーの属性としてＡＲシステム１０１に、例えば、コンピューティングデバイス１００に記憶され得る。
【００１９】
例において、コンピューティングデバイス１００へのアンカーの割り当て（又は「割り付け」）は、ＡＲシステムに記憶された割り当てデータ、例えばレコードによって実施され、割り当てデータがアンカーをコンピューティングデバイス１００に関連づける。例えば、割り当てデータは、アンカーの識別子をコンピューティングデバイス１００の識別子に関連付ける、又は「リンクさせる」ことができる。アンカー及びコンピューティングデバイス１００の識別子によって、それぞれのエンティティを識別することができ、ある特定の例では、それぞれのエンティティに命令することができる場合がある。識別子は、例えば、ＡＲシステム１０１のエンティティのためのタグ又はラベルを含むことができる。例において、コンピューティングデバイス１００は、アンカーを割り当てるように構成される。例えば、コンピューティングデバイス１００は、割り当てデータを生成するように構成され得る。
【００２０】
割り当てデータは、データ構造、例えば、ルックアップテーブルに記憶されてもよい。例えば、データ構造は、その第１の要素としてコンピューティングデバイス１００の識別子、及びその第２の要素としてアンカーの識別子を有するエントリを含むことができ、例えば、記憶することができる。したがって、エントリは、アンカーをコンピューティングデバイス１００にリンクさせ、したがってアンカーをコンピューティングデバイス１００に割り当てる又は割り付けることができる。例えば、割り当てデータを含むデータ構造は、ＡＲシステム１０１のサーバに記憶されてもよい。他の例において、割り当てデータを含むデータ構造は、ＡＲシステム１０１の各リモートユーザデバイス１１０に記憶される。ある特定の場合には、サーバは、割り当てデータを含むデータ構造のマスターコピーを記憶し、リモートユーザデバイス１１０は、データ構造のそれぞれのコピーを記憶する。例えば、アンカーの割り当てに対する更新、例えば、ＡＲシステム１０１の別のコンピューティングデバイスに対する更新は、サーバのデータ構造のマスターコピーに記憶された割り当てデータに対する対応する更新において実施されてもよい。その場合、割り当てデータに対する更新は、データ通信を介してリモートユーザデバイス１１０にブロードキャストされてもよい。例えば、データ構造の更新されたマスターコピーのそれぞれのコピーは、サーバからデータ通信を介してそれぞれのリモートユーザデバイス１１０に送信されてもよい。或は、更新されたエントリに関する情報をリモートユーザデバイス１１０に伝達して、リモートユーザデバイス１１０に記憶されたデータ構造のそれぞれのコピーがサーバの更新されたマスターコピーに対応するように更新されてもよい。
【００２１】
コンピューティングデバイス１００は、例えば、画像データを処理する際に使用するためのアンカーを取得するように構成されている。例において、コンピューティングデバイス１００は、例えば、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ、及び／又はキャッシュ記憶装置などの記憶装置にアンカーを記憶するように構成されてもよい。例えば、コンピューティングデバイス１００は、アンカーを表すデータを記憶装置に記憶することができる。記憶装置は、コンピューティングデバイス１００に備えられていてもよい。他の例では、アンカーデータは、ＡＲシステム１０１の他の場所、例えば、サーバ又は他のリモートアクセス可能なデバイスの記憶装置に記憶される。したがって、コンピューティングデバイス１００は、アンカーデータを記憶する記憶装置にアクセスすることによってアンカーを表すデータを取得することができる。
【００２２】
例において、コンピューティングデバイス１００へのアンカーの割り当てを表す割り当てデータは、例えば、アンカーのポーズを規定するアンカーの属性と共に、アンカーの属性として記憶されてもよい。例えば、コンピューティングデバイス１００の識別子が、アンカーを表すデータの一部として記憶されてもよい。したがって、例において、コンピューティングデバイス１００は、コンピューティングデバイス１００の識別子を属性として有する各アンカーを取得するように構成される。
【００２３】
加えて又は或は、コンピューティングデバイス１００は、割り当てデータを記憶することができる。例えば、コンピューティングデバイス１００は、コンピューティングデバイス１００に割り当てられた各アンカーの識別子を記憶することができる。したがって、コンピューティングデバイス１００は、コンピューティングデバイス１００に割り当てデータの一部として記憶された識別子に対応する各アンカーを取得するように構成され得る。ある特定の場合には、コンピューティングデバイス１００は、ＡＲシステム１０１に存在する各アンカーの識別子、及び対応するフラグ変数を記憶することができる。所与のアンカーに対するフラグ変数の１番目の値は、コンピューティングデバイス１００に割り当てられている所与のアンカーを表すことができる。フラグ変数の２番目の値は、コンピューティングデバイス１００に割り当てられていない所与のアンカーを表すことができる。したがって、コンピューティングデバイス１００は、対応するフラグ変数が１番目の値を有する各アンカーを取得するように構成され得る。例において、コンピューティングデバイス１００は、ＡＲシステム１０１の他のエンティティにデータメッセージを送信して、これらのエンティティにコンピューティングデバイス１００に割り当てられたアンカー（複数可）を通知することができる。例えば、データメッセージは、アンカー（複数可）及びコンピューティングデバイス１００の識別子を含むことができる。
【００２４】
アンカーは、例えば、ｃｒｅａｔｅＡｎｃｈｏｒ（ｐｏｓｅ）メソッドを使用して、ＡＲシステム１０１内に作成することができ、ポーズが、パラメータとして与えられる生成されたアンカーに対応する。例において、アンカーは、ヒット位置に作成されてもよく、例えば、光線と検出された現実世界の幾何学形状との交点のポーズであってもよい。アンカーが作成されると、データメッセージは、ＡＲシステム１０１の他のエンティティにブロードキャストされ、作成されたアンカーの存在を他のエンティティに通知することができる。データメッセージは、アンカーの識別子を含むことができる。例において、データメッセージは、上述したように、データメッセージが割り当てられているコンピューティングデバイスの識別子を含む。例えば、アンカーは、アンカーが割り当てられることになっているコンピューティングデバイスにおいて作成されてもよい。したがって、コンピューティングデバイスは、アンカーの作成に応答して、アンカーの存在、及び一部の例では、アンカーのコンピューティングデバイスへの割り当てを、データ通信を介してＡＲシステム１０１の他のエンティティにブロードキャストすることができる。
【００２５】
例において、アンカーは、ＡＲシステム１０１によって追跡することができるＴｒａｃｋａｂｌｅ、例えば、現実世界のオブジェクト又はフィーチャに取り付けることができる。したがって、アンカーのポーズは、Ｔｒａｃｋａｂｌｅに対するオフセットに対応してもよい。
【００２６】
現実世界において対応するポーズを有するアンカーを、ＡＲシステム１０１のリモートユーザデバイス１１０によってキャプチャされた画像にマッピングすることができる。したがって、アンカーは、例えば、所与のリモートユーザデバイス１１０によってキャプチャされた一連の画像においてＡＲシステム１０１によって追跡され得る。
【００２７】
図１ｂは、コンピューティングデバイス１００が、通信ネットワーク１０３を介してリモートユーザデバイス１１０に通信可能に結合されたサーバデバイスとして実施された例示的なＡＲシステム１０１を示す。例において、リモートユーザデバイス１１０は、通信ネットワーク１０３を介してサーバデバイス１００に通信可能に結合された複数のリモートユーザデバイス１１０、２１０のうちの１つである。
【００２８】
図１ｃは、コンピューティングデバイス１００が、リモートユーザデバイス１１０に通信可能に結合された別のリモートユーザデバイスとして実施された例示的なＡＲシステム１０１を示す。図示するように、リモートユーザデバイス１００、１１０は、直接、又は通信ネットワーク１０３を介して通信することができる。
【００２９】
図１ａ、図２、及び図３ａを参照すると、コンピューティングデバイス１００は、例えば、ＡＲシステム１０１の一部としてリモートユーザデバイス１１０からデータ通信を介して画像キャプチャデータ１０２を受信するように構成されている。画像キャプチャデータ１０２は、リモートユーザデバイス１１０によってキャプチャされた、リモートユーザデバイス１１０から見た環境１２０を表す画像を含む。環境１２０は、例えば、図２に示す家１２５を含む現実世界の環境であってもよい。リモートユーザデバイス１１０によってキャプチャされた画像１１２は、リモートユーザデバイス１１０の視野１０５、例えば、リモートユーザデバイス１１０によってキャプチャ可能な観察可能な環境１２０の範囲を表すことができる。
【００３０】
リモートユーザデバイス１１０は、画像センサを備えることができ、これにより、リモートユーザデバイス１１０は、画像センサを介して、現実世界の環境１２０を見て、現実世界の環境１２０の画像１１２をキャプチャすることができる。したがって、リモートユーザデバイス１１０の視野１０５は、画像センサの視野である場合がある。画像１１２は、リモートユーザデバイス１１０の画像センサによってキャプチャされ、画像キャプチャデータ１０２として表され得る。例えば、画像１１２は、画像データに基づいて（例えば、電子ディスプレイに）生成及び／又は表示されてもよい。したがって、画像１１２は、画像１１２を表す画像データの形態でコンピューティングデバイス１００によって受信され得る。図３ａは、説明したような、リモートユーザデバイス１１０によってキャプチャされ、コンピューティングデバイス１００によって受信された画像１１２を示す。
【００３１】
リモートユーザデバイス１１０から見た、以て画像１１２にキャプチャされた環境１２０は、アンカーに対応する現実世界の位置を含む。例えば、アンカーは、アンカーの対応する現実世界の位置を有するように、例えば、ＡＲエンジンを介して生成されたものであってもよい。アンカーの現実世界の位置は、ＡＲシステムのユーザによって、例えば、現実世界の位置データを入力することによって直接、又は現実世界の位置を導出することができるＡＲユーザデバイスによってキャプチャされた画像内の位置を指定することによって間接的に指定されたものであってもよい。例において、アンカーの現実世界の位置は、世界座標系又は地理座標系において表現可能な位置に対応することができる。したがって、環境１２０は、世界座標系又は地理座標系の領域に対応することができ、前記領域がアンカーに対応する前記位置を含む。
【００３２】
例において、アンカーは、別の画像に基づいて、例えば、上で言及した画像１１２とは異なる別の画像に対して生成されてもよい。他の画像は、ＡＲシステムのリモートユーザデバイス、例えば、リモートユーザデバイス１１０によってキャプチャされてもよい。例えば、ユーザは、キャプチャされた画像内の位置に基づいて、例えば、画像内の位置を身振りで示すことによって、又はその他の方法で指定することによってアンカーを生成することができる。画像は、例えば、ユーザがアンカーを生成するリモートユーザデバイスによってキャプチャされてもよい。コンピューティングデバイス１００又はリモートユーザデバイス、例えば、画像をキャプチャしたリモートユーザデバイスは、キャプチャされた画像を含む画像キャプチャデータを処理して、キャプチャされた画像に基づいて生成されるアンカーの現実世界のポーズを決定することができる。例えば、コンピューティングデバイス１００又はリモートユーザデバイスは、ポーズ推定を使用して、画像キャプチャデータに基づいてアンカー１３０の現実世界のポーズを決定することができる。例えば、３Ｄポーズ推定を使用して、２Ｄキャプチャ画像からアンカーの３Ｄデータ属性を抽出することができる。コンピューティングデバイス１００は、３Ｄデータ、例えば、アンカー１３０の現実世界のポーズを、他のリモートユーザデバイスによってキャプチャされた他の２Ｄ画像にマッピングするように構成されてもよい。例えば、決定された空間データは、アンカーの３Ｄ属性データを所与のリモートユーザデバイスによってキャプチャされた所与の画像にマッピングすることに関連付けられたマッピングデータを含むことができる。
【００３３】
コンピューティングデバイス１００は、画像１１２を処理して、アンカーを画像１１２にマッピングする空間データ１０４を決定するように構成されている。決定された空間データ１０４は、リモートユーザデバイス１１０において拡張現実シーンを生成するために、アンカーに従って仮想オブジェクトを画像１１２に挿入するリモートユーザデバイス１１０によって使用可能である。例えば、リモートユーザデバイス１１０は、決定された空間データ１０４に基づいて、アンカーに従って仮想オブジェクトを画像１１２にオーバーレイすることができる可能性がある。決定された空間データ１０４は、画像１１２に配置されたアンカーに対応する位置、向き、及びスケールデータのうちの少なくとも１つを含むことができる。空間データ１０４は、画像１１２に関連していてもよい。例えば、決定された空間データ１０４は、位置及び向き、例えば、ポーズ、すなわち画像１１２内のアンカーのポーズを規定するデータを含むことができる。コンピューティングデバイスは、空間データ１０４を決定するためにポーズ推定を使用して画像キャプチャデータ１０２を処理するように構成されてもよい。例えば、コンピューティングデバイス１００は、３Ｄポーズ推定を行って、２Ｄ画像１１２内のアンカーの３Ｄ空間データ、例えば、３Ｄ回転及び／又は並進データを決定することができる。例において、リモートユーザデバイス１１０は、コンピューティングデバイス１００が２Ｄ画像１１２内のアンカーの３Ｄ空間データを決定することができるように世界座標系に較正されてもよい。
【００３４】
空間データ１０４は、画像１１２の座標空間に対するデカルト（ｘ、ｙ）座標の形態の位置データを含んでもよく、これにより、アンカーをデカルト座標によって規定される画像内の位置に配置することができる。同様に、空間データ１０４は、加えて又は代わりに、画像１１２の座標空間に対する、例えば、角度又は回転の方位情報を含むことができ、これにより、アンカーを方位情報によって規定する方法で、例えば、前記角度又は回転で、画像内で方向付けすることができる。空間データ１０４は、加えて又は代わりに、例えば、画像１１２に対するアンカーのスケールを規定するスケールデータを含むことができる。図４ａは、コンピューティングデバイス１００によって決定された空間データ１０４に基づいて画像１１２にマッピングされた、例えば、コンピューティングデバイス１００に割り当てられたアンカー１３０を示す。
【００３５】
コンピューティングデバイス１００は、決定された空間データ１０４を、データ通信を介してリモートユーザデバイス１１０に送信するように構成されている。リモートユーザデバイス１１０は、空間データ１０４を受信した後、拡張現実シーンを生成するために、空間データ１０４を使用して、アンカーに従って仮想オブジェクトを画像１１２に挿入することができる可能性がある。例えば、仮想オブジェクトは、ＡＲプラットフォームの一部として、記憶された仮想オブジェクトのオブジェクトライブラリから検索可能なＡＲオブジェクトであってもよい。例えば、少なくともオブジェクトライブラリの一部は、リモートユーザデバイス１１０のメモリに記憶されてもよい。仮想オブジェクトは、対応する仮想オブジェクトデータの形態で表されてもよい。したがって、リモートユーザデバイス１１０は、例えば、コンピューティングデバイス１００に割り当てられたアンカーに対応する受信空間データ１０４に基づいて、及び仮想オブジェクトに対応する仮想オブジェクトデータに基づいて、仮想オブジェクトを画像１１２に挿入、例えば、オーバーレイすることができる。例えば、リモートユーザデバイス１１０は、仮想オブジェクトを、画像１１２にマッピングされるようなアンカーの決定された位置及び／又は向き及び／又はスケールで挿入するために、空間データ１０４を仮想オブジェクトデータに適用することができ、或はその逆を行うことができる。
【００３６】
図５ａは、アンカー１３０を画像にマッピングする空間データ１０４に基づいて画像１１２に挿入された自動車を表す仮想オブジェクト１３５を示す。例えば、仮想自動車オブジェクト１３５は、コンピューティングデバイス１００によって決定された空間データ１０４に基づいて、画像１１２内で（例えば、図５ａに示すように家１２５に対して）位置決めされ、及び／又は（例えば、図５ａに示すように見る人の方に向くように）方向付けされ、及び／又は（例えば、図５ａに示すように家１２５に対して）スケーリングされ得る。
【００３７】
一部の例において、コンピューティングデバイスは、複数の拡張現実アンカーを取得するように構成される。各アンカーは、現実世界の環境内のそれぞれのポーズに対応することができる。複数のアンカーのそれぞれは、コンピューティングデバイス１００に割り当てられ得る。したがって、コンピューティングデバイスは、画像キャプチャデータ１０２を処理して、複数のアンカーのそれぞれを画像にマッピングするそれぞれの空間データ１０４を決定するように構成され得る。例えば、上述のアンカー１３０は、第１のアンカー１３０であってもよく、第２のアンカー２３０もコンピューティングデバイス１００によって取得されてもよい。図６ａは、コンピューティングデバイス１００によって決定されたそれぞれの空間データ１０４に基づいて、リモートユーザデバイス１１０によってキャプチャされ、コンピューティングデバイス１００によって受信された画像１１２にマッピングされた、例えば、コンピューティングデバイス１００に割り当てられた第１及び第２のアンカー１３０、２３０を示す。
【００３８】
コンピューティングデバイス１００は、決定されたそれぞれの空間データ１０４を、データ通信を介してリモートユーザデバイス１１０に送信するように構成されてもよい。それぞれの空間データ１０４は、それぞれの仮想オブジェクトを画像１１２に挿入するリモートユーザデバイス１１０によって使用可能であってもよい。
【００３９】
例えば、それぞれの仮想オブジェクトは、上述したように、ＡＲプラットフォームの一部として、オブジェクトライブラリから検索可能な異なるＡＲオブジェクトであってもよい。各仮想オブジェクトは、対応する仮想オブジェクトデータの形態で表されてもよい。したがって、リモートユーザデバイス１１０は、例えば、コンピューティングデバイス１００に割り当てられたそれぞれのアンカー１３０、２３０に対応するそれぞれの受信空間データ１０４に基づいて、及び仮想オブジェクトに対応する仮想オブジェクトデータに基づいて、各仮想オブジェクトを画像１１２に挿入することができる。
【００４０】
図７ａは、図５ａを参照して上述したように、第１のアンカー１３０を画像１１２にマッピングする空間データ１０４に基づいて画像１１２に挿入された自動車を表す第１の仮想オブジェクト１３５を示す。また、図７ａは、第２のアンカー２３０を画像１１２にマッピングするそれぞれの空間データ１０４に基づいて画像１１２に挿入された郵便箱を表す第２の仮想オブジェクト２３５を示す。
【００４１】
仮想自動車及び郵便箱オブジェクト１３５、２３５は、アンカー１３０、２３０のそれぞれについてコンピューティングデバイス１００によって決定されたそれぞれの空間データ１０４に基づいて、画像１１２内で（例えば、図７ａに示すように家１２５に対して）位置付けられ、及び／又は（例えば、図７ａに示すように見る人の方に向くように）方向付けされ、及び／又は（例えば、図７ａに示すように家１２５に対して）スケーリングされ得る。
【００４２】
例において、それぞれの仮想オブジェクトは、同じＡＲオブジェクトの異なるインスタンスであってもよい。例えば、同じ仮想オブジェクトデータによって表される同じ仮想オブジェクトの異なるバージョンが、異なるアンカー１３０、２３０に対応するそれぞれの空間データ１０４を仮想オブジェクトデータの異なるインスタンス又は「コピー」に適用することによって画像に挿入されてもよい。
【００４３】
一部の例において、コンピューティングデバイス１００は、リモートユーザデバイス１１０を含む複数のリモートユーザデバイスからデータ通信を介してそれぞれの画像キャプチャデータを受信するように構成される。例えば、コンピューティングデバイス１００は、拡張現実を共有するように構成された複数のリモートユーザデバイスを含むＡＲシステムの一部であってもよい。したがって、複数のリモートユーザデバイスは、それらのキャプチャされた画像をコンピューティングデバイス１００に送信することができる。
【００４４】
図２に戻って、前述したように、現実世界の環境１２０の第１の視野１０５を有する第１のリモートユーザデバイス１１０が示されている。環境１２０の第２の視野２０５を有する第２のリモートユーザデバイス２１０も図２に示されている。したがって、コンピューティングデバイス１００は、第１のリモートユーザデバイス１１０からデータ通信を介して第１の画像キャプチャデータ１０２を受信するように構成されてもよい。第１の画像キャプチャデータ１０２は、第１のリモートユーザデバイス１１０によってキャプチャされた第１の画像１１２を含み、第１の画像１１２は、第１のリモートユーザデバイス１１０から見た、図３ａを参照して前述したような現実世界の環境１２０を表す。また、コンピューティングデバイス１００は、第２のリモートユーザデバイス２１０からデータ通信を介して第２の画像キャプチャデータ２０２を受信するように構成されてもよい。第２の画像キャプチャデータ２０２は、第２のリモートユーザデバイス２１０によってキャプチャされた第２の画像２１２を含み、第２の画像２１２は、第２のリモートユーザデバイス２１０から見た現実世界の環境１２０を表す。
【００４５】
リモートユーザデバイス１１０、２１０のそれぞれから見た、以てそれぞれの画像１１２、２１２にキャプチャされた現実世界の環境１２０は、第１及び第２のアンカー１３０、２３０のうちの少なくとも１つの現実世界の位置を含むことができる。例えば、アンカー１３０、２３０は、リモートユーザデバイス１１０、２１０のうちの少なくとも１つから見た現実世界の環境１２０内部で、アンカーの規定された現実世界の位置が一致するように、例えば、ＡＲエンジンを介して生成されたものであってもよい。規定された現実世界の位置は、ＡＲシステムのユーザによって、例えば、現実世界の位置データを入力することによって直接、又は現実世界の位置を導出することができるＡＲユーザデバイスによってキャプチャされた視野内の位置を指定することによって間接的に指定されたものであってもよい。例において、例えば、コンピューティングデバイス１００に割り当てられたアンカーの現実世界の位置は、世界座標系又は地理座標系において表現可能な位置に対応することができる。したがって、環境１２０は、世界座標系又は地理座標系の領域に対応することができ、この領域がアンカーによって規定された前記位置を含む。
【００４６】
コンピューティングデバイス１００は、それぞれの画像１１２、２１２を含む、受信されたそれぞれの画像キャプチャデータ１０２、２０２を処理するように構成されてもよい。複数の画像１１２、２１２のうちの所与の画像について、コンピューティングデバイス１００は、例えば、コンピューティングデバイス１００に割り当てられた各アンカー１３０を所与の画像１１２、２１２にマッピングするそれぞれの空間データ１０４、２０４を決定することができる。
【００４７】
例えば、図６ａは、第１の画像１１２についてコンピューティングデバイス１００によって決定されたそれぞれの空間データ１０４に基づいて、第１の画像１１２にマッピングされた、例えば、コンピューティングデバイス１００に割り当てられたアンカー１３０を示す。図６ｂは、第２の画像２１２についてコンピューティングデバイス１００によって決定された空間データ２０４に基づいて、第２の画像２１２にマッピングされた同じアンカー１３０を示す。
【００４８】
コンピューティングデバイス１００は、それぞれの決定された空間データ１０４、２０４をそれぞれのリモートユーザデバイス１１０、２１０に送信することができる。例えば、例えばコンピューティングデバイス１００に割り当てられたアンカー１３０を第１の画像１１２にマッピングするそれぞれの空間データ１０４は、コンピューティングデバイス１００によって第１のリモートユーザデバイス１１０に送信されてもよい。同様に、例えばコンピューティングデバイス１００に割り当てられたアンカー１３０を第２の画像２１２にマッピングするそれぞれの空間データ２０４は、コンピューティングデバイス１００によって第２のリモートユーザデバイス２１０に送信されてもよい。
【００４９】
各アンカー１３０について決定されたそれぞれの空間データ１０４、２０４は、対応する画像にマッピングされた各アンカー１３０に従って、仮想オブジェクトを対応する画像１１２、２１２に挿入、例えば、オーバーレイする対応するリモートユーザデバイス１１０、２１０によって使用可能であってもよい。
【００５０】
例えば、図７ａは、（同様に図５ａを参照して以前に説明したように）アンカー１３０を第１の画像１１２にマッピングするコンピューティングデバイス１００によって決定されたそれぞれの空間データ１０４に基づいて、第１の画像１１２に挿入された仮想自動車オブジェクト１３５を示す。図７ｂは、アンカー１３０を第２の画像２１２にマッピングするコンピューティングデバイス１００によって決定されたそれぞれの空間データ２０４に基づいて、第２の画像２１２に挿入された仮想自動車オブジェクト１３５を示す。
【００５１】
本例では、仮想自動車オブジェクト１３５は、図７ａ及び図７ｂに示されるそれぞれの画像１１２、２１２のそれぞれにおいて、コンピューティングデバイス１００によって画像１１２、２１２のそれぞれのアンカー１３０について決定されたそれぞれの空間データ１０４、２０４に基づいて、異なるように位置決めされ、方向付けされている。例えば、各画像１１２、２１２における家１２５に対する仮想自動車オブジェクト１３５の位置は、各画像１１２、２１２における仮想自動車オブジェクト１３５の向き（例えば、図７ａの第１の画像１１２では見る人の方に向き、図７ｂの第２の画像２１２では左に向いている）と同様に異なる。例において、それぞれの画像１１２、２１２のそれぞれにおける仮想自動車オブジェクト１３５のスケーリングも、加えて又は代わりに、画像１１２、２１２のそれぞれのアンカー１３０についてコンピューティングデバイス１００によって決定されたそれぞれの空間データ１０４、２０４に基づいて、異なってもよい。例えば、コンピューティングデバイス１００は、画像１１２、２１２のそれぞれにおいて（又は画像１１２、２１２間で相対的に）アンカー１３０の規定された現実世界の位置からの見る人の相対距離を決定することができる。したがって、画像１１２、２１２のそれぞれにおいてアンカー１３０について決定されたそれぞれの空間データ１０４、２０４は、アンカーに対するそれぞれのスケーリングデータを含むことができ、それぞれのスケーリングデータは、画像１１２、２１２のそれぞれにおけるアンカー１３０の規定された現実世界の位置からの見る人の決定された相対距離を説明する。
【００５２】
例において、コンピューティングデバイス１００は、複数のリモートユーザデバイス１１０、２１０からそれぞれの画像キャプチャデータ１０２、２０２を受信するように構成され、それぞれの画像キャプチャデータ１０２、２０２が複数のリモートユーザデバイス１１０、２１０によってキャプチャされたそれぞれの画像１１２、２１２を含み、同時に、複数のアンカー１３０、２３０を取得するようにも構成されている。前述したように、各アンカー１３０、２３０は、コンピューティングデバイス１００に割り当てられ得る。各アンカー１３０、２３０は、それぞれの現実世界のポーズに対応することができる。
【００５３】
したがって、コンピューティングデバイスは、それぞれの画像キャプチャデータ１０２、２０２を処理して、各アンカー１３０、２３０をそれぞれの画像１１２、２１２にマッピングするそれぞれの空間データ１０４、２０４を決定するように構成されてもよい。
【００５４】
例えば、図６ａは、例えば、それぞれがコンピューティングデバイス１００に割り当てられた、第１の画像１１２についてコンピューティングデバイス１００によって決定されたそれぞれの空間データ１０４に基づいて第１の画像１１２にマッピングされた２つのアンカー１３０、２３０を示す。図６ｂは、第２の画像２１２についてコンピューティングデバイス１００によって決定された空間データ２０４に基づいて、第２の画像２１２にマッピングされた同じ２つのアンカー１３０、２３０を示す。
【００５５】
上述したように、コンピューティングデバイス１００は、それぞれの空間データ１０４、２０４を、データ通信を介して対応するリモートユーザデバイス１１０、２１０に送信することができる。各アンカー１３０、２３０について決定されたそれぞれの空間データ１０４、２０４は、それぞれのリモートユーザデバイス１１０、２１０において拡張現実シーンを生成するために、対応する画像にマッピングされた各アンカー１３０、２３０に従って仮想オブジェクト１３５、２３５を対応する画像１１２、２１２に挿入する対応するリモートユーザデバイス１１０、２１０によって使用可能であってもよい。
【００５６】
例えば、図７ａは、アンカー１３０、２３０を第１の画像１１２にマッピングする、コンピューティングデバイス１００によって決定されたそれぞれの空間データ１０４に基づいて第１の画像１１２に挿入された仮想自動車オブジェクト１３５及び仮想郵便箱オブジェクト２３５を示す。同様に、図７ｂは、アンカー１３０、２３０を第２の画像２１２にマッピングする、コンピューティングデバイス１００によって決定されたそれぞれの空間データ２０４に基づいて第２の画像２１２に挿入された仮想自動車オブジェクト１３５及び仮想郵便箱オブジェクト２３５を示す。
【００５７】
例において、前述したように、コンピューティングデバイス１００は、例えば、ＡＲシステム１０１の一部として、複数のリモートユーザデバイスに通信可能に結合されたサーバデバイスを備える。複数のリモートユーザデバイスは、上記の例において説明されたような第１及び第２のリモートユーザデバイス１１０、２１０を含むことができる。図１ｂに示すように、サーバデバイス１００は、通信ネットワーク１０３によって、複数のリモートユーザデバイス１１０、２１０に通信可能に結合されてもよい。
【００５８】
したがって、サーバデバイス１００は、複数のリモートユーザデバイス１１０、２１０から通信ネットワーク１０３を介してそれぞれの画像キャプチャデータ１０２、２０２を受信することができる。同様に、サーバデバイス１００は、対応するリモートユーザデバイス１１０、２１０に通信ネットワーク１０３を介してそれぞれの決定された空間データ１０４、２０４を送信することができる。それぞれの空間データ１０４、２０４は、例において説明したように各アンカー１３０、２３０について決定され得る。
【００５９】
例において、各リモートユーザデバイス１１０、２１０は、一連の画像として、例えば、フレームごとに画像データをキャプチャすることができる。例えば、各リモートユーザデバイス１１０、２１０は、所与の速度で連続的に画像をキャプチャすることができる。一部の例において、キャプチャされた各画像は、画像キャプチャデータの形態で、処理のためにサーバデバイス１００に送信されてもよい。他の例において、リモートユーザデバイス１１０、２１０の位置が、先行する画像がリモートユーザデバイス１１０、２１０によってキャプチャされたときのリモートユーザデバイス１１０、２１０の位置と比較して、所定のしきい値を超えて変化した場合にのみ、後続のキャプチャされた各画像がサーバデバイス１００に送信されてもよい。そうでない場合は、画像キャプチャデータの形態でサーバデバイス１００に送信された先行する画像が、後続の画像の代わりにサーバデバイス１００によって処理されてもよい。これにより、ＡＲシステム１０１のデバイス間で送信される画像データを削減し、したがってＡＲシステム１０１の帯域幅要件を軽減することができる。
【００６０】
ここで図１ａ及び図１ｃを参照すると、他の例において、前述したように、コンピューティングデバイス１００は、例えば、ＡＲシステム１０１の一部としてリモートユーザデバイスを含む。例えば、図１ｃに示すように、コンピューティングデバイス１００は、第１のリモートユーザデバイス１１０によってキャプチャされた画像１１２を受信するように構成された第２のリモートユーザデバイスであってもよい。リモートユーザデバイス１１０、１００は、互いに直接、及び／又は通信ネットワーク１０３を介して通信することができる。
【００６１】
そのような例では、第１のリモートユーザデバイス１１０によってキャプチャされた画像１１２は、第１の画像１１２であってもよく、リモートユーザデバイスとして実施されるコンピューティングデバイス１００は、第２の画像２１２をキャプチャするように構成されてもよい。例えば、図２を参照すると、コンピューティングデバイス１００は、第２のリモートユーザデバイス２１０を含むことができる。図３ａ及び図３ｂは、前述したように、それぞれのリモートユーザデバイス１１０、２１０によってキャプチャされた例示的な第１及び第２の画像１１２、２１２を示す。
【００６２】
本例では、第２のリモートユーザデバイス２１０を含むコンピューティングデバイス１００は、現実世界の環境のポーズに対応するアンカー２３０を取得するように構成されている。アンカー２３０は、第２のリモートユーザデバイス２１０に割り当てられてもよい。図４ｂは、第２のリモートユーザデバイス２１０によってキャプチャされた第２の画像２１２を示し、アンカー２３０が第２の画像２１２にマッピングされている。説明したように、アンカー２３０は、例えば、ＡＲシステム１０１のユーザによって第２の画像２１２に対して生成されてもよい。図５ｂに示すように、第２のリモートユーザデバイス２１０は、第２のリモートユーザデバイス２１０において拡張現実シーンを生成するために、アンカー２３０を使用して、アンカーに従って、仮想オブジェクト、例えば、仮想郵便箱オブジェクト２３５を第２の画像２１２に挿入することができる。
【００６３】
前述したように、第２のリモートユーザデバイス２１０を含むコンピューティングデバイス１００は、第１のリモートユーザデバイス１１０によってキャプチャされた第１の画像１１２を含む第１の画像キャプチャデータ１０２を受信するように構成されている。第２のリモートユーザデバイス２１０は、第１の画像キャプチャデータ１０２を処理して、アンカー２３０を第１の画像１１２にマッピングする空間データ１０４を決定するように構成されている。第２のリモートユーザデバイス２１０は、図１ｃに示すように、決定された空間データ１０４を第１のリモートユーザデバイス１１０に送信するようにさらに構成されている。決定された空間データ１０４は、それぞれのリモートユーザデバイスにおいて拡張現実シーンを生成するために、アンカー２３０に従って仮想オブジェクトを第１の画像１１２に挿入する第１のリモートユーザデバイス１１０によって使用可能である。例えば、図６ａは、第２のリモートユーザデバイス２１０によって決定された空間データ１０４に基づいて第１の画像１１２にマッピングされた、例えば、第２のリモートユーザデバイス２１０に割り当てられたアンカー２３０を示す。図７ａは、第２のリモートユーザデバイス２１０によって決定されるようなアンカー２３０を画像１１２にマッピングする空間データ１０４に基づいて画像１１２に挿入された同じ仮想郵便箱オブジェクト２３５を示す。
【００６４】
本例では、第１のリモートユーザデバイス１１０は、第１のアンカー１３０、例えば、第１のリモートユーザデバイス１１０に割り当てられたアンカーを取得するように構成されてもよい。例えば、図４ａは、第１のリモートユーザデバイス１１０によってキャプチャされた第１の画像１１２にマッピングされた、例えば、第１のリモートユーザデバイス１１０に割り当てられた第１のアンカー１３０を示す。第２のアンカー２３０は、第２のリモートユーザデバイス２１０に割り当てられてもよい。図５ａに示すように、第１のリモートユーザデバイス１１０は、第１のリモートユーザデバイス１１０において拡張現実シーンを生成するために、第１のアンカー１３０を使用して、第１のアンカー１３０に従って、仮想オブジェクト、例えば、仮想自動車オブジェクト１３５を第１の画像１１２に挿入することができる。
【００６５】
第２のリモートユーザデバイス２１０は、第１のリモートユーザデバイス１１０からさらなる空間データを受信するように構成されてもよい。さらなる空間データは、例えば、第１のリモートユーザデバイス１１０に割り当てられた第１のアンカー１３０に関連付けられてもよい。例えば、さらなる空間データは、第１のアンカー１３０を第２のリモートユーザデバイス２１０によってキャプチャされた第２の画像２１２にマッピングすることができる。さらなる空間データは、第２の画像２１２に配置された第１のアンカー１３０に対応する位置、向き、及びスケールデータのうちの少なくとも１つを含むことができる。空間データは、画像２１２に対して規定されてもよい。例えば、決定された空間データは、第２の画像２１２において第１のアンカー１３０のポーズを規定するポーズデータを含むことができる。
【００６６】
第２のリモートユーザデバイス２１０は、さらなる空間データ、及び仮想オブジェクトに対応する仮想オブジェクトデータに基づいて、仮想オブジェクトを第２の画像２１２に挿入するように構成されてもよい。例えば、仮想オブジェクトは、ＡＲプラットフォームの一部として、記憶された仮想オブジェクトのオブジェクトライブラリから検索可能であってもよい。仮想オブジェクトは、対応する仮想オブジェクトデータの形態で表されてもよい。したがって、第２のリモートユーザデバイス２１０は、第１のアンカー１３０に対応する受信空間データに基づいて、及び仮想オブジェクトに対応する仮想オブジェクトデータに基づいて、仮想オブジェクトを画像２１２に挿入、例えば、オーバーレイすることができる。例えば、第２のリモートユーザデバイス２１０は、仮想オブジェクトを、第２の画像２１２にマッピングされるような第１のアンカー１３０の決定された位置及び／又は向き及び／又はスケールで挿入するために、空間データを仮想オブジェクトデータに適用することができ、或はその逆を行うことができる。図７ｂは、第１のアンカー１３０を第２の画像２１２にマッピングする空間データに基づいて、第２の画像２１２にオーバーレイされた仮想自動車オブジェクト１３５の例を示す。
【００６７】
例において、第２のリモートユーザデバイス２１０は、第２のリモートユーザデバイス２１０によってキャプチャされるような第２の画像２１２を含む第２の画像キャプチャデータ２０２を第１のリモートユーザデバイス１１０に送信するように構成されてもよい。例えば、第２のリモートユーザデバイス２１０は、第２の画像キャプチャデータ２０２を第１のリモートユーザデバイス１１０に送信するのに応答して、第１のアンカー１３０に関連付けられた、さらなる空間データを第１のリモートユーザデバイス１１０から受信するように構成されてもよい。
【００６８】
第１のリモートユーザデバイス１１０は、第２の画像キャプチャデータ２０２を受信し処理して、例えば、第１のリモートユーザデバイス１１０に割り当てられたアンカー１３０を第２の画像２１２にマッピングするさらなる空間データを決定するように構成されてもよい。第１のリモートユーザデバイス１１０は、決定されたさらなる空間データを第２のリモートユーザデバイス２１０に送信するように構成されてもよい。
【００６９】
他の例において、第２のリモートユーザデバイス２１０は、加えて又は代わりに、さらなる空間データを、例えば、第１のリモートユーザデバイス１１０とは異なる第３のリモートユーザデバイスから受信するように構成される。さらなる空間データは、さらなる現実世界のポーズに対応するさらなるアンカーに関連付けられてもよい。例えば、さらなるアンカーは、第３のリモートユーザデバイスに割り当てられてもよい。上述の例と同様に、第２のリモートユーザデバイス２１０は、さらなる空間データ、及びさらなる仮想オブジェクトに対応するさらなる仮想オブジェクトデータに基づいて、さらなる仮想オブジェクトを第２の画像２１２に挿入するように構成されてもよい。
【００７０】
そのようなＡＲシステム１０１は、図１ｃに示すように、Ｎ個のリモートユーザデバイスまで拡大され得る。Ｎ個のリモートユーザデバイスのそれぞれは、現実世界の環境のそれぞれの画像をキャプチャし、それぞれの画像キャプチャデータを、例えば通信ネットワーク１０３を介してＡＲシステム１０１の他のＮ−１個のリモートユーザデバイスに送信するように構成されてもよい。
【００７１】
例において、各リモートユーザデバイスは、画像データを一連の画像として、例えば、フレームごとにキャプチャすることができる。例えば、リモートユーザデバイスは、所与の速度で連続的に画像をキャプチャすることができる。一部の例において、キャプチャされた各画像は、画像キャプチャデータの形態で１つ又は複数の他のリモートユーザデバイスに送信されてもよい。他の例において、リモートユーザデバイスの位置が、先行する画像がリモートユーザデバイスによってキャプチャされたときのリモートユーザデバイスの位置と比較して、所定のしきい値を超えて変化した場合にのみ、後続のキャプチャされた各画像が画像キャプチャデータの形態で１つ又は複数の他のリモートユーザデバイスに送信されてもよい。そうでない場合は、１つ又は複数のデバイスに送信された先行する画像を含む画像キャプチャデータが、後続の画像を含む画像キャプチャデータの代わりに１つ又は複数の他のリモートユーザデバイスによって処理されてもよい。加えて又は或は、１つ又は複数のアンカーを先行する画像にマッピングする前に決定された空間データがリモートユーザデバイスによって使用され、１つ又は複数の対応する仮想オブジェクトを後続の画像に挿入することができる。これにより、ＡＲシステム１０１のデバイス間で送信される画像データを削減し、したがってＡＲシステム１０１の帯域幅要件を軽減することができる。
【００７２】
Ｎ個のリモートユーザデバイスのそれぞれは、他のＮ−１個のリモートユーザデバイスによってキャプチャされたそれぞれの画像を含むそれぞれの画像キャプチャデータを受信するように構成されてもよい。Ｎ個のリモートユーザデバイスのうちの所与のリモートユーザデバイスは、所与のリモートユーザデバイスが受信した画像キャプチャデータを処理して、所与のリモートユーザデバイスに割り当てられた各アンカーをそれぞれのキャプチャされた画像のそれぞれにマッピングするそれぞれの空間データを決定するように構成されてもよい。所与のリモートユーザデバイスは、それぞれの決定された空間データをそれぞれのＮ−１個の他のリモートユーザデバイスに送信するように構成されてもよい。それぞれの空間データは、前述したように、それぞれのリモートユーザデバイスにおいて拡張現実シーンを生成するために、１つ又は複数のアンカーに従って、１つ又は複数の仮想オブジェクトをそれぞれのキャプチャされた画像に挿入する他のＮ−１個のリモートユーザデバイスによって使用可能であってもよい。例えば、同じ仮想オブジェクトの異なるインスタンスは、仮想オブジェクトが、他のＮ−１個のリモートユーザデバイスにおいて生成された拡張現実シーンのそれぞれにおいて表示されるように、他のＮ−１個のリモートユーザデバイスによってそれぞれのキャプチャされた画像に挿入されてもよい。
【００７３】
したがって、Ｎ個のリモートユーザデバイスのうちの所与の各リモートユーザデバイスは、それ自体のキャプチャされた画像について、所与のリモートユーザデバイスに割り当てられた各アンカーをそれ自体の画像にマッピングする空間データを決定することができる。所与のリモートユーザデバイスは、異なるリモートユーザデバイスに割り当てられたアンカーのそれぞれに対応するさらなる空間データも受信することができ、この空間データが、異なるリモートユーザデバイスに割り当てられた前記アンカーのそれぞれを所与のリモートユーザデバイスによってキャプチャされた画像にマッピングする。したがって、所与のリモートユーザデバイスは、各アンカーに対応する（決定され、受信された）空間データに基づいて、複数の仮想オブジェクトをリモートユーザデバイスのキャプチャされた画像に挿入することができ、それぞれの仮想オブジェクトが画像にマッピングされたアンカーに対応する。
【００７４】
このようにして、ＡＲシステムにおいて規定されたアンカーのそれぞれを、ＡＲシステムの対応するリモートユーザデバイスによってキャプチャされた各画像にマッピングするそれぞれの空間データを決定するための処理は、リモートユーザデバイス間に分散されてもよい。例えば、各リモートユーザデバイスは、それぞれのキャプチャされた画像を含む受信画像キャプチャデータを処理して、それぞれの画像に特定のリモートユーザデバイスに割り当てられたアンカーをマッピングし、他のアンカーをマッピングしないそれぞれの空間データを決定するように構成されてもよい。
【００７５】
図８は、拡張現実シーンを生成するために、三次元環境においてキャプチャされた画像を処理するための、コンピューティングデバイスにおけるコンピュータ実施方法８００を示す流れ図を示す。方法８００は、本明細書に記載されたコンピューティングデバイスの例のいずれかを使用して実施することができる。方法８００は、複数のユーザデバイス間で共有されるＡＲセッション中に実施されてもよい。ＡＲセッションは、ＡＲ環境に入るために、例えば、コンピューティングデバイス又は複数のリモートユーザデバイスのうちの１つで、ユーザがＡＲアプリケーションを起動することによって開始することができ、ユーザがＡＲアプリケーションを閉じることによって終了することができる。或は、ＡＲセッションは、ＡＲアプリケーションを起動した後、ユーザがＡＲ環境に入ることによってコンピューティングデバイスで開始することができ、ユーザがＡＲアプリケーションを閉じるのと同時に、又は閉じる前に、ユーザがＡＲ環境を出ることによって終了することができる。
【００７６】
方法８００は、ブロック８０１において、拡張現実アンカーを取得するステップを含む。アンカーは、前述したように、現実世界の環境における位置及び向きに対応する。一部の例において、方法８００は、例えば、アンカーを記憶装置に記憶するステップを含むことができる。例において、方法８００は、アンカーをコンピューティングデバイスに割り当てるステップを含む。例えば、アンカーをコンピューティングデバイスに割り当てるステップは、割り当てデータを生成することを含むことができ、割り当てデータは、前述した例のいずれかに対応する。
【００７７】
方法８００は、ブロック８０２において、リモートユーザデバイスからデータ通信を介して画像キャプチャデータを受信するステップをさらに含む。画像キャプチャデータは、リモートユーザデバイスによってキャプチャされた画像を含む。画像は、リモートユーザデバイスから見た現実世界の環境を表す。現実世界の環境は、アンカーの現実世界の位置を含む。
【００７８】
方法８００は、ブロック８０３において、画像キャプチャデータを処理して、アンカーを画像にマッピングする空間データを決定するステップをさらに含む。空間データは、リモートユーザデバイスにおいて拡張現実シーンを生成するために、アンカーに従って仮想オブジェクトを画像に挿入するリモートユーザデバイスによって使用可能である。例において、画像キャプチャデータを処理して、空間データを決定するステップは、画像及びアンカーに基づいてポーズ推定を行うことを含む。
【００７９】
方法８００は、ブロック８０４において、決定された空間データを、データ通信を介してリモートユーザデバイスに送信するステップをさらに含む。
【００８０】
一部の例において、方法８００は、コンピューティングデバイスにおいてアンカーを生成するステップを含む。例えば、アンカーは、コンピューティングデバイスにおいて、例えばユーザによって生成されてもよい。他の例において、アンカーは、ＡＲシステムの別の構成要素において生成され、例えば、コンピューティングデバイスに割り当てられてもよい。一部の例において、方法８００は、コンピューティングデバイスにおけるアンカーの生成に応答して、リモートユーザデバイスにデータメッセージを送信するステップを含み、データメッセージがアンカーの存在を報告する。ある特定の場合には、方法８００は、コンピューティングデバイスにおけるアンカーの生成に応答して、アンカーをコンピューティングデバイスに割り当てるステップを含む。
【００８１】
例において、アンカーは、複数のＡＲアンカーのうちの１つである。例えば、方法８００は、複数のアンカーを取得するステップを含むことができる。各アンカーは、コンピューティングデバイスに割り当てられてもよい。各アンカーは、現実世界の環境におけるそれぞれの位置及び向き、例えば、それぞれの現実世界のポーズに対応することができる。
【００８２】
方法８００は、画像キャプチャデータを処理して、複数のアンカーのそれぞれを画像にマッピングするそれぞれの空間データを決定するステップを含むことができる。それぞれの空間データは、前述したように、リモートユーザデバイスにおいて拡張現実シーンを生成するために、アンカーに従ってそれぞれの仮想オブジェクトを画像に挿入するリモートユーザデバイスによって使用可能であってもよい。方法８００は、決定されたそれぞれの空間データを、データ通信を介してリモートユーザデバイスに送信するステップを含むことができる。
【００８３】
例において、ブロック８０２における受信するステップは、リモートユーザデバイスを含む複数のリモートユーザデバイスからそれぞれの画像キャプチャデータを受信することを含む。それぞれの画像キャプチャデータは、複数のリモートユーザデバイスによってキャプチャされたそれぞれの画像を含むことができる。それぞれの画像のそれぞれは、それぞれのリモートユーザデバイスから見た現実世界の環境を表すことができる。
【００８４】
方法８００は、ブロック８０３において、それぞれの画像キャプチャデータを処理して、アンカーをそれぞれの画像それぞれにマッピングするそれぞれの空間データを決定するステップをさらに含むことができる。
【００８５】
前述したように、決定されたそれぞれの空間データは、それぞれのリモートユーザデバイスにおいて拡張現実シーンを生成するために、アンカーに従って仮想オブジェクトをそれぞれの画像に挿入するそれぞれのリモートユーザデバイスによって使用可能であってもよい。ブロック８０４における送信するステップは、決定されたそれぞれの空間データをそれぞれのリモートユーザデバイスに送信することを含むことができる。
【００８６】
例において、前の例で説明したように、コンピューティングデバイスは、複数のリモートユーザデバイスのうちの第２のリモートユーザデバイスである。方法８００は、したがって、第２のリモートユーザデバイスによってキャプチャされたさらなる画像を含むさらなる画像キャプチャデータを取得するステップを含むことができる。例えば、さらなる画像キャプチャデータは、第２のリモートユーザデバイスの画像センサから取得されてもよく、画像センサは、さらなる画像をキャプチャするために使用される。
【００８７】
例において、方法８００は、さらなるアンカーに関連付けられた、例えば、さらなるアンカーに基づいて決定されたさらなる空間データを受信するステップをさらに含む。仮想オブジェクトに関連付けられた仮想オブジェクトデータが取得されてもよく、これにより、仮想オブジェクトを、受信されたさらなる空間データ、及び取得された仮想オブジェクトデータに基づいて第２のリモートユーザデバイスによってキャプチャされたさらなる画像に挿入することができる。
【００８８】
一部の例において、方法８００は、さらなる画像が第２のリモートユーザデバイスによってキャプチャされたときに、第２のリモートユーザデバイスの現実世界の位置を決定するステップを含む。例えば、さらなる画像は、第２のリモートユーザデバイスの現実世界の位置、及び／又はさらなる画像がキャプチャされた時刻を記憶する関連付けられたメタデータによって「タイムスタンプ」及び／又は「位置スタンプ」されてもよい。方法８００は、現実世界の位置が第２のリモートユーザデバイスの以前の現実世界の位置とは所定のしきい値を超えて異なるという判定に応答して、第２のリモートユーザデバイスによってキャプチャされたさらなる画像を含むさらなる画像キャプチャデータを別のリモートユーザデバイスにおいて処理するために別のリモートユーザデバイスに送信するステップをさらに含むことができる。例えば、一連の画像は、第２のリモートユーザデバイスによってフレームごとにキャプチャされてもよい。一部の例において、キャプチャされた各画像は、画像キャプチャデータとして１つ又は複数の他のリモートユーザデバイスに送信されてもよい。他の例において、第２のリモートユーザデバイスの位置が、先行する画像がキャプチャされたときの第２のリモートユーザデバイスの位置と比較して、所定のしきい値を超えて変化した場合にのみ、後続のキャプチャされた各画像が画像キャプチャデータとして１つ又は複数の他のリモートユーザデバイスに送信されてもよい。そうでない場合は、先行する画像を含む画像キャプチャデータが、後続の画像を含む画像キャプチャデータの代わりに１つ又は複数の他のリモートユーザデバイスによって処理されてもよい。これにより、例えば、ＡＲセッション中にデバイス間で送信される画像キャプチャデータを削減し、したがってＡＲシステムの帯域幅要件を軽減することができる。
【００８９】
図９は、少なくとも１つのプロセッサ９０５によって実行されると、少なくとも１つのプロセッサに本明細書に記載された一例としての方法を実行させる一組のコンピュータ可読命令を含む非一時的なコンピュータ可読記憶媒体９００の例を示す。
【００９０】
ブロック９０１において、命令は、プロセッサ９０５に、拡張現実アンカーを取得させる。アンカーは、現実世界の環境における位置及び向きに対応する。
【００９１】
例において、ブロック９０１における命令は、プロセッサ９０５に、アンカーを記憶装置に記憶させることができる。記憶装置は、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、及び／又はキャッシュ記憶装置などの揮発性であってもよい。他の例において、記憶装置は、読み出し専用メモリ（ＲＯＭ）、プログラマブル読み出し専用メモリ（ＰＲＯＭ）、又は消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ）などの不揮発性であってもよい。例えば、ブロック９０１における命令は、プロセッサ９０５に、アンカーを表すデータを記憶装置に記憶させることができる。したがって、アンカーは、アンカーを表すデータを記憶する記憶装置にアクセスするプロセッサ９０５によって取得されてもよい。
【００９２】
ブロック９０２において、命令は、プロセッサ９０５に、画像キャプチャデータを、データ通信を介してリモートユーザデバイスから受信させる。画像キャプチャデータは、リモートユーザデバイスによってキャプチャされた、リモートユーザデバイスから見た現実世界の環境を表す画像を含む。
【００９３】
ブロック９０３において、命令は、プロセッサ９０５に、画像キャプチャデータを処理させて、アンカーを画像にマッピングする空間データを決定させる。空間データは、リモートユーザデバイスにおいて拡張現実シーンを生成するために、アンカーに従って仮想オブジェクトを画像に挿入するリモートユーザデバイスによって使用可能である。
【００９４】
ブロック９０４において、命令は、プロセッサ９０５に、決定された空間データを、データ通信を介してリモートユーザデバイスに送信させる。
【００９５】
コンピュータ可読命令は、機械可読媒体、例えば、命令実行システムによって使用するための、又は命令実行システムに関連して使用するためのプログラム及びデータを含む、記憶若しくは維持することができる任意の媒体から取り出されてもよい。この場合、機械可読媒体は、例えば電子、磁気、光学、電磁、又は半導体媒体などの多くの物理的な媒体のうちのいずれか１つを含むことができる。適切な機械可読媒体のより具体的な例は、限定されないが、ハードドライブ、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ、又はポータブルディスクを含む。
【００９６】
上述した例のいずれかにおいて、キャプチャされた画像を含む画像キャプチャデータの送信及び処理、並びに１つ又は複数のアンカーをキャプチャされた画像にマッピングする決定された空間データの（割り当てられたアンカーを有する１つ又は複数のデバイスからの）受信はすべて、１６ミリ秒以内に実行され得る。そのような期間において、所与のリモートユーザデバイスによってキャプチャされた後続の各フレームは、ＡＲシステムにおいて処理され、マッピングされたアンカーポーズに従って、挿入された仮想オブジェクトで更新され、所与のリモートユーザデバイスにおいて６０フレーム／秒（ｆｐｓ）の速度で拡張現実シーンとして表示され得る。
【００９７】
例において、ＡＲシステムの帯域幅要件を、ある特定の手段によって軽減することができる。例えば、ＡＲシステムのデバイス間で、例えば、ネットワークを介して画像キャプチャデータの形態で送信されるキャプチャされた画像のバージョンは、リモートユーザデバイスにおいて拡張現実シーンとして表示されるように、この画像バージョンのものとは異なる色空間において符号化されてもよい。例えば、リモートユーザデバイスは、リモートユーザデバイスにおいて拡張現実シーンを表示するためにリモートユーザデバイスのキャプチャされた画像を３２ビットＲＧＢＡ８８８８に符号化することができるが、キャプチャされた画像は、処理ためにＡＲシステムのデバイス間で画像キャプチャデータとして送信されるときは、１６ビットＲＧＢ５６５に符号化されてもよい。
【００９８】
同様に、ＡＲシステムの帯域幅要件を軽減するための別の例示的な手段として、ＡＲシステムのデバイス間で画像キャプチャデータとして送信されるキャプチャされた画像のバージョンは、リモートユーザデバイスにおいて拡張現実シーンとして表示される画像バージョンと比較して低い画像解像度であってもよい。例えば、リモートユーザデバイスは、それらの生成された拡張現実シーンを１０８０ｐの解像度で表示することができるが、キャプチャされた画像は、処理ためにＡＲシステムのデバイス間で画像キャプチャデータとして送信されるときは、５４０ｐ又は７２０ｐの解像度を有してもよい。
【００９９】
したがって、キャプチャされた画像を含む画像キャプチャデータを処理して、アンカーをキャプチャされた画像にマッピングする空間データを決定する場合、コンピューティングデバイスは、ＡＲシーンとして表示される画像のバージョンと比較して変更された画像のバージョンを処理することができる。例えば、画像のバージョンは、比較的低い解像度を有することができ、及び／又は異なる色空間において符号化されてもよい。
【０１００】
上述の例によると、コンピューティングデバイスは、プロセッサ又は処理システムを備える。例において、処理システムは、１つ若しくは複数のプロセッサ及び／又はメモリを備える。例において、処理システムは、１つ又は複数のＧＰＵを備える。上述の実施形態のいずれかに関連して説明したような各デバイスは、プロセッサ及び／又は処理システムを同様に備えることができる。図面を参照して本明細書に記載された例の態様の１つ又は複数は、拡張現実リモートユーザデバイス１１０、２１０によって実行される処理を含む。実施形態において、拡張現実リモートユーザデバイス１１０、２１０は、これらの処理を実行するように構成された１つ若しくは複数の処理システム又はプロセッサを備える。この点に関して、実施形態は、少なくとも一部は、（非一時的な）メモリに記憶されプロセッサによって実行可能なコンピュータソフトウェアによって、又はハードウェアによって、或は有形に記憶されたソフトウェア及びハードウェアの組み合わせ（及び有形に記憶されたファームウェア）によって実施され得る。例は、上述の実施形態を実行するように構成されたコンピュータプログラム、特にキャリア上の又はキャリア内のコンピュータプログラムにも及ぶ。プログラムは、非一時的なソースコード、オブジェクトコードの形態、又は一例としての処理の実施において使用するのに適した任意の他の非一時的な形態であってもよい。キャリアは、ＲＡＭ、ＲＯＭ又は光メモリデバイスなどの、プログラムを担持することができる任意のエンティティ又はデバイスであってもよい。
【０１０１】
一部の例が拡張現実（ＡＲ）環境に関連して上で説明された。そのようなＡＲ環境の例は、仮想現実（ＶＲ）環境にも適用することができ、その逆も同様であり、又はＡＲ環境とＶＲ環境の組合せにも適用することができる。
【０１０２】
上記の例は、例示として理解されるべきである。さらなる例が考察される。例えば、説明したように、ＡＲシステムは、サーバデバイス及び複数のリモートユーザデバイスを含むことができる。一部の例において、サーバデバイスは、ＡＲシステムに存在する、例えば、ＡＲセッション中に作成された全てのアンカーを割り当てられてもよい。他の例において、アンカーの割り当ては、サーバデバイスと１つ又は複数のリモートユーザデバイスとの間に分散されてもよい。例えば、サーバデバイスは、Ｍ個のアンカー以外全てを割り当てられてもよい。サーバデバイスに割り当てられないＭ個のアンカーは、１つ又は複数のリモートユーザデバイスに割り当てられてもよい。説明したように、各デバイスは、他のリモートユーザデバイスによってキャプチャされた受信画像を処理して、各デバイスに割り当てられた１つ又は複数のアンカーを各画像にマッピングする空間データを決定する。したがって、アンカーを割り当てられていないデバイスは、受信画像を処理することができない。一部の例において、そのような、割り当てられていないデバイスは、他のリモートユーザデバイスによってキャプチャされた画像を受信することができない。例えば、リモートユーザデバイスは、それらのキャプチャされた画像を、少なくとも１つのアンカーが割り当てられた１つ又は複数のデバイスに送信するだけでよい。
【０１０３】
任意の１つの例に関連して説明された任意の特徴は、単独で、又は説明された他の特徴と組み合わせて使用されてもよく、また任意の他の例の１つ又は複数の特徴と、或は任意の他の例の任意の組合せと組み合わせて使用されてもよいことを理解されたい。さらに、添付の特許請求の範囲から逸脱することなく、上述されていない均等物及び修正形態も用いることができる。
【図１ａ】
2019185759.tif 000003
【図１ｂ】
2019185759.tif 000004
【図１ｃ】
2019185759.tif 000005
【図２】
2019185759.tif 000006
【図３ａ】
2019185759.tif 000007
【図３ｂ】
2019185759.tif 000008
【図４ａ】
2019185759.tif 000009
【図４ｂ】
2019185759.tif 000010
【図５ａ】
2019185759.tif 000011
【図５ｂ】
2019185759.tif 000012
【図６ａ】
2019185759.tif 000013
【図６ｂ】
2019185759.tif 000014
【図７ａ】
2019185759.tif 000015
【図７ｂ】
2019185759.tif 000016
【図８】
2019185759.tif 000017
【図９】
2019185759.tif 000018
【外国語明細書】
2019185759000001.pdf