(57)【要約】拡張現実システムは、クライアントデバイス上でコンピュータ媒介現実を生成する。クライアントデバイスは、環境の画像データをキャプチャするように構成されたカメラと、クライアントデバイスの測位を記述するロケーションデータをキャプチャするロケーションセンサーとを含むセンサを有する。クライアントデバイスは、仮想オブジェクトを生成して現実を拡張する際に使用するために、画像データおよびロケーションデータを用いて３次元（３−Ｄ）マップを作成する。クライアントデバイスは、作成された３−Ｄマップを外部サーバに送信する。外部サーバは３−Ｄマップを使用して、外部サーバに格納されたワールドマップを更新する。外部サーバは、ワールドマップのローカル部分をクライアントデバイスに送信する。クライアントデバイスは、クライアントデバイスとマッピングポイントとの間の距離を決定して、クライアントデバイスに表示されるマッピングポイントでコンピュータ媒介現実画像を生成する。
2020526829.tif 000002
【特許請求の範囲】
【請求項１】
クライアントデバイス上でコンピュータ媒介現実データを生成する方法であって、
前記クライアントデバイスに統合されたカメラで画像データをキャプチャすることであって、前記画像データは、前記クライアントデバイスの周囲の環境のほぼリアルタイムのビューを表す、ことと、
前記画像データとロケーションデータに基づいて、３次元（３−Ｄ）マップデータを生成することであって、前記３−Ｄマップデータは前記クライアントデバイスの周囲の環境を空間的に記述する、ことと、
前記３−Ｄマップデータを外部サーバに送信することと、
外部サーバからクライアントデバイスでワールドマップデータのローカル部分を受信することであって、ローカル部分は３−Ｄマップデータに基づいて選択される、ことと、
ロケーションデータおよびワールドマップデータの前記ローカル部分に基づいて、ワールドマップデータの前記ローカル部分におけるマッピングポイントと前記クライアントデバイスの空間位置との間の距離を決定することと、
前記画像データと前記ロケーションデータに基づいて、ワールドマップデータの前記ローカル部分内のマッピングポイントにおけるコンピュータ媒介現実画像を生成することと、
前記マッピングポイントにおける前記コンピュータ媒介現実画像を表示することと、
を含む、方法。
【請求項２】
画像データを前記外部サーバに送信することをさらに含み、ワールドマップデータの前記ローカル部分は、前記画像データに基づいてさらに選択される、請求項１に記載の方法。
【請求項３】
前記画像データが新しい視点を含む、請求項２に記載の方法。
【請求項４】
前記視点が１つ以上の他のカメラからの前記外部サーバに格納された複数の画像からの視野と閾値未満のオーバーラップを有する場合、前記画像データ内の視点は前記新しい視点とみなされる、請求項３に記載の方法。
【請求項５】
前記視点の類似の視野をカバーする複数の画像が現在時刻より前の閾値期間よりも前にキャプチャされた場合、前記画像データ内の視点が前記新しい視点とみなされる、請求項３に記載の方法。
【請求項６】
ワールドマップデータの前記ローカル部分内の前記マッピングポイントでコンピュータ媒介現実画像を生成することは、前記マッピングポイントと前記クライアントデバイスの前記空間位置との間の距離にさらに基づく、請求項１に記載の方法。
【請求項７】
前記コンピュータ媒介現実画像は、ワールドマップデータのローカルポイント内の前記マッピングポイントに固定された仮想オブジェクトを含む、請求項１に記載の方法。
【請求項８】
前記画像データおよび前記ロケーションデータに基づいて前記外部サーバから仮想オブジェクトを受信することをさらに含み、前記コンピュータ媒介現実画像は前記受信した仮想オブジェクトを含む、請求項７に記載の方法。
【請求項９】
前記画像データおよび前記ロケーションデータに基づいて三次元（３−Ｄ）マップデータを生成することは、
前記画像データに基づいて前記環境内の１つ以上のオブジェクトを識別することと、
前記画像データおよび前記ロケーションデータに基づいて、前記オブジェクトの各々について１つ以上の空間位置を決定することと
をさらに含む請求項１に記載の方法。
【請求項１０】
前記画像データおよび前記ロケーションデータに基づいて三次元マップデータを生成することは、
各オブジェクトを複数のオブジェクトタイプのうちの１つに分類することであって、前記複数のオブジェクトタイプは、実質的に同じ空間位置にとどまると予想されるオブジェクトを記述する静止タイプを含む、こと
をさらに含む請求項９に記載の方法。
【請求項１１】
前記環境内の前記クライアントデバイスの後続の空間位置を記述するロケーションセンサーで後続のロケーションデータをキャプチャすることと、
ロケーションデータおよびワールドマップデータの前記ローカル部分に基づいて、ワールドマップデータの前記ローカル部分の前記マッピングポイントと前記クライアントデバイスの前記後続の空間位置との間の後続の距離を決定することと、
前記後続のロケーションデータに基づいて、ワールドマップデータの前記ローカル部分内の前記マッピングポイントにおける前記コンピュータ媒介現実画像を調整することと、
前記マッピングポイントにおける前記コンピュータ媒介現実画像を表示することと
をさらに含む、請求項１に記載の方法。
【請求項１２】
外部サーバ上でコンピュータ媒介現実データを生成する方法であって、
複数の測位における複数の環境の集合を記述するワールドマップデータを格納することと、
クライアントデバイスから３次元（３−Ｄ）マップデータ、前記クライアントデバイス上のカメラによってキャプチャされた環境の画像データ、およびロケーションセンサーでキャプチャされた前記クライアントデバイスの空間位置を記述するロケーションデータを受信することであって、前記３−Ｄマップデータは、前記画像データおよび前記ロケーションデータに基づいて前記クライアントデバイスによって生成される、ことと、
前記ロケーションデータに基づいてワールドマップデータのローカル部分を取り出すことと、
前記ロケーションデータを使用して前記ワールドマップデータを前記３−Ｄマップデータで更新することであって、前記ワールドマップデータのローカル部分を識別して前記３−Ｄマップデータで更新する、ことと、
前記ワールドマップデータを前記クライアントデバイスに送信することと
を含む、方法。
【請求項１３】
前記画像データおよび前記ロケーションデータに基づいて、環境内の前記クライアントデバイスによって表示される仮想オブジェクトを生成することと、
前記仮想オブジェクトを前記クライアントデバイスに送信することと
をさらに含む、請求項１２に記載の方法。
【請求項１４】
前記画像データは、前記環境の新しい視点を含み、前記ワールドマップデータを更新することは、前記環境の前記新しい視点を前記ワールドマップデータに追加することをさらに含む、請求項１２に記載の方法。
【請求項１５】
前記新しい視点は、１つ以上の他のカメラから前記外部サーバに格納された複数の画像からの視野と閾値未満のオーバーラップを有する、請求項１２に記載の方法。
【請求項１６】
前記新しい視点が、前記新しい視点の類似の視野をカバーする前記外部サーバに格納された複数の画像から閾値時間間隔にわたってキャプチャされた、請求項１２に記載の方法。
【請求項１７】
コンピュータ媒介現実を生成するように構成されたアニメーションエンジンであって、    カメラによって生成された画像データおよびカメラと統合されたロケーションセンサーからのロケーションデータを受信するように構成された複雑なビジョンモジュールであて、前記画像データは、前記カメラによってキャプチャされた環境のほぼリアルタイムのビューを表す１つ以上の画像を含む、複雑なビジョンモジュール、
前記画像データおよび前記ロケーションデータを受信するように構成され、前記画像データおよび前記ロケーションデータに基づいて前記環境の３−Ｄマップを生成するように構成され、前記画像データおよび前記ロケーションデータに基づいて前記３−Ｄマップ内に表示されるコンピュータ媒介現実画像を生成するようにさらに構成されたローカリゼーションおよびマッピングモジュール、および
前記画像データを受信するように構成され、前記画像データに基づいて前記環境内に存在する１つ以上のオブジェクトを決定するように構成された第１のオブジェクト検出モジュール
を備えた、アニメーションエンジンと、
前記アニメーションエンジンと通信するデータベースエンジンであって、オブジェクト検出が、
前記第１のオブジェクト検出モジュールによって決定されたオブジェクトを受信して格納するように構成された第２のオブジェクト検出モジュール、および
前記ローカリゼーションおよびマッピングモジュールによって生成された前記環境の３−Ｄマップを受信するように構成され、前記環境の前記３−Ｄマップを使用してワールドマップを生成するように構成された３−Ｄマッピングモジュール
を備えた、データベースエンジンと
を備えた、拡張現実システム。
【請求項１８】
前記ローカリゼーションおよびマッピングモジュールは、前記画像データおよび前記ロケーションデータに基づいて、第１の時間インスタンスにおける前記カメラの第１の空間位置と第１のマッピングポイントとの間の第１の距離をさらに決定するように構成され、前記コンピュータ媒介現実画像は、前記第１の距離に基づいて前記マッピングポイントに表示される仮想オブジェクトを含む、請求項１７に記載の拡張現実システム。
【請求項１９】
前記アニメーションエンジンが
前記データベースエンジンの前記３−Ｄマッピングモジュールからワールドマップデータのローカル部分を受信するように構成されたマップ取出モジュール
をさらに含む、請求項１７に記載の拡張現実システム。
【請求項２０】
前記第２のオブジェクト検出モジュールは、前記画像データおよび前記ロケーションデータに基づいて仮想オブジェクトを生成するようにさらに構成され、前記ローカリゼーションおよびマッピングモジュールは、前記第２のオブジェクト検出モジュールによって生成された前記仮想オブジェクトに基づいて、コンピュータ媒介現実画像を生成するように構成され、請求項１７に記載の拡張現実システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、コンピュータを利用したリアリティーシステム（computer-mediated reality system）に関し、より詳細には、クライアントデバイスにより集められたデータから３−Ｄマップを生成するＡＲ（拡張現実）システムに関する。
【背景技術】
【０００２】
本出願は、２０１７年７月７日出願の米国仮出願第６２／５２９，４９２号および２０１８年７月６日出願の米国出願第１６／０２９，５３０号の恩恵を主張し、両方を参照によりすべて組み入れる。
【０００３】
コンピュータを利用したリアリティテクノロジーは、ハンドヘルドまたはウェアラブルのデバイスを身につけたユーザに、デバイスを通して見ると、環境に関して視覚または聴覚の知覚を追加する、削減する、または変更することを可能にする。ＡＲ（拡張現実）は、具体的には、物質的な、現実世界の環境に関してリアルタイムの知覚を、コンピューティングデバイスにおいて生成される感覚入力を使用して、変更するコンピュータを利用したリアリティの類にある。
【発明の概要】
【０００４】
特定の実施形態によれば、方法は、コンピュータを利用したリアリティデータ（reality data）を生成する。方法は、クライアントデバイスにおける３−Ｄ（３次元）マップデータおよびカメラの位置データを生成することを含む。方法は、さらに、３−Ｄマップデータおよびクライアントデータを外部のサーバに送信し、クライアントデバイスにおけるワールドマップデータを外部のサーバから受信し、クライアントデバイスにおける、コンピュータを利用した現実画像を生成することを含む。ワールドマップデータを、３−Ｄマップデータを使用して生成することができる。
【０００５】
別の特定の実施形態によれば、ローカルに格納されるアニメーションエンジンを含む拡張現実エンジンは、ポータブルコンピューター上に実行される。アニメーションエンジンは、ポータブルコンピューターにおいて統合される、カメラにより作り出されるデジタル画像のストリームを受信する第一の入力を含む。デジタル画像は、カメラにより見られる環境のリアルタイムに近い視界を表すことができる。アニメーションエンジンは、さらに、ポータブルコンピューターにおいて統合される、ジオロケーションポジショニングシステム（geolocation positioning system）からのジオロケーションポジション（geolocation position）を受信する第二の入力、第一の入力および第二の入力を受信し時間内の特定のポイントにおけるカメラの位置と１つ以上のマッピングポイントにおけるカメラの位置との間の距離を推定する３Ｄマッピングエンジン、およびコンピュータ生成の画像により覆われる、カメラにより作り出されるデジタル画像のストリームを含む出力を含む。コンピュータ生成の画像は、３Ｄマップの特定の位置に配置することができ、ユーザが、カメラを空間内の異なる位置に動かすとおりに、特定の位置に置かれたままである。ローカルに格納されるアニメーションエンジンとネットワーク通信をする、ローカルに格納されないオブジェクト検出エンジンは、３Ｄマップにおけるオブジェクトを検出するのに使用され、検出されるオブジェクトの表示（例えば、位置および識別、例えばタイプなど）をポータブルコンピューターに返すことができる。オブジェクト検出エンジンは、カメラにより作り出されるデジタル画像のストリームからのデジタル画像を含む、ローカルに格納されるアニメーションエンジンから受信される第一の入力、およびローカルに格納されるアニメーションエンジンから受信されるデジタル画像に関連付けられたジオロケーションポジションを含む、ローカルに格納されるアニメーションエンジンから受信される第二の入力を使用することができる。
【０００６】
本開示についての他の特徴および利点を、以下に説明する。
【図面の簡単な説明】
【０００７】
【図１】図１は、一実施形態に係る拡張現実データを生成し表示するネットワークコンピューティング環境を示す。
【図２】図２は、一実施形態に係る拡張現実データを生成し表示するために図１のコンピューティングシステムにより実行される処理を例示するフローチャートである。
【図３】図３は、クライアントデバイスまたはサーバとしての使用に適した例示的なコンピュータを示すハイレベルブロック図である。
【図４】図４は、一実施形態による、クライアントデバイスによってキャプチャされた画像の拡張を示すフローチャートである。
【発明を実施するための形態】
【０００８】
システムおよび方法は、（例えば、センチメートル単位の解像度を有する）３−Ｄ（３次元）マップを作成し、次に、上記３−Ｄマップを使用して現実世界とのインタラクションを可能にする。様々な実施形態において、マッピングは、クライアント側（例えば、電話またはヘッドセット）に完成され、先にコンパイルされた映像（imagery）およびマッピングをクライアントデバイスに戻して供給するバックエンドサーバーと一組になる。
【０００９】
一実施形態において、システムは、画像と、クライアント側（例えば、ハンドヘルド端末または身につけられる電子デバイス）のＧＰＳ（全地球測位システム）座標とを選択し、選択されたデータを３−Ｄマップと一組にする。３−Ｄマップは、カメラ記録モジュール、およびＩＭＵ（inertial measurement unit）、例えば、加速度計またはジャイロスコープなどから構築される。クライアントデータは、サーバに送信される。サーバおよびクライアント側のコンピューティングデバイスは、データをともに処理して、可能性があるインタラクション（potential interaction）を決定するだけでなく、オブジェクトおよびジオメトリを確立する。可能性があるインタラクションの例は、ＡＲアニメーションにより部屋に作られるものを含む。
【００１０】
画像および３−Ｄマップをともに用いて、システムは、オブジェクト検出およびジオメトリ推定を、ニューラルネットワークまたは他の種類のモデルを使用して、完成することができる。ニューラルネットワークの例は、膨大な、連結された簡略化された構成単位（人工ニューロン）を使用する機械学習において使用される計算モデルである。構成単位は、ソフトウェアによりともに連結され、結合される入力信号が十分に大きいならば、構成単位は、構成単位自体の出力信号を発火する。システムは、ディープラーニング（例えば、多層ニューラルネットワーク）を使用して、ＡＲデータを文脈上理解することができる。モデルの他の種類は、他の統計モデルまたは他の機械学習モデルを含むことができる。
【００１１】
いくつかの実施形態において、システムは、ローカルマップを集めて、（例えば、ローカルマップをともにリンクさせることによって）１つ以上のグローバルマップを作成する。集められたマップは、サーバのグローバルマップにともに結合されて、環境のデジタルマップを、または「世界」を生成する。例えば、同様のＧＰＳ座標、同様の画像、および予め決められたしきい値の範囲内に一致する部分を含む同様のセンサーデータのどんな組合せに対しても、１つ以上のデバイスにより生成された２つのローカルマップを、重なり合うように決定することができる。したがって、重なり合う部分を使用して、（例えば、グローバルマップを生成することの一部として）ワールドマップおよびローカルマップとの一貫性を有するグローバルな座標系を取得するのに役立たせることができる２つのローカルマップをとじ合わせることができる。ワールドマップを使用して、特定のＧＰＳ座標において格納され、さらに、（例えば、フィート単位の解像度を有する）世界の特定の場所に至るまで、３−Ｄポイントおよび視覚映像（visual image）を介してインデックスを付けられるマップにおいて、先に格納されたアニメーションを記憶している。
【００１２】
説明的な処理は、データをクラウドへ、データをクラウドからマッピングする。本明細書において説明するように、マップは、３−Ｄピクセルに類似のやり方において、世界を表す空間内の３−Ｄポイントの集まりである。画像データは、利用可能であり有効であると、３−Ｄマップとともに送信される。ある例は、３−Ｄマップデータを、画像データなしに送信する。
【００１３】
様々な実施形態において、クライアントデバイスは、プロセッサにより実行される３−Ｄアルゴリズムを使用して、３−Ｄマップを生成する。クライアントデバイスは、画像、３−Ｄマップ、ＧＰＳデータ、および他のどんなセンサーデータであっても（例えば、ＩＭＵデータ、他のどんな位置データであっても）、効果的なやり方において送信する。例えば、画像を、送信または処理を詰まらせることがないように、選択的に送信することができる。一実施例において、画像を、新規のビューポイントがあるときに画像が現在のビューポイントにまだ供給されていないと、選択的に送信することができる。画像は、例えば、カメラの視野が過去のまたは最近のカメラポーズ（camera pose）から先行する画像による極小の重なりを有するとき、またはビューポイントがオブジェクトの期待される動きに依存する時間量に対して観測されていないとき、アルゴリズムにより送信するように指定される。別の実施例として、しきい値より大きな時間量が、現在の（または実質上重なり合っている）ビューポイントから先行する画像が供給されて以後に、経過したならば、画像を、供給することができる。今述べたことは、マップに関連付けられた格納された画像が、実世界の位置についての、より現在の（または少なくとも最近の）状態を反映させるために更新されることを可能にすることができる。
【００１４】
様々な実施形態において、クラウド側のデバイスは、３−Ｄデータおよび画像に基づいて、オブジェクトを検出するリアルタイムの検出システムを含み、実世界の環境にジオメトリを推定する。例えば、フォトリアリスティック（例えば、半稠密なおよび／または稠密な３−Ｄ再構成）でない部屋の３−Ｄマップは、画像により決定可能であり得る。
【００１５】
サーバは、検出システムにより画像および３−Ｄデータをともに融合して、一貫して難なくインデックスを付けられた、世界の３−Ｄマップをビルドする、または実世界のマップを、ＧＰＳデータを使用して合成する。一度格納されると、実世界のマップは、検索されて、先に格納された実世界のマップおよび関連付けられたアニメーションを配置する。
【００１６】
様々な実施形態において、マッピングおよびトラッキングは、クライアント側において行われる。（世界をデジタル化する）実世界の散在する再構成は、実世界に関するカメラの位置とともに、集められる。マッピングは、ポイントクラウド、または３−Ｄポイントの集まりを作成することを含む。システムは、疎表現（sparse representation）を、ＧＰＳデータとともに、ポイントクラウド情報をシリアライズして送ることによって、サーバに戻して伝達する。クラウドの処理は、（リアルタイムまたはほぼリアルタイムにおいて独立のデバイス間のマップデータを共有する）マルチプレイヤーの性能が（デバイスにローカルに格納されないさらなる体験用のマップおよびアニメーションのデータを格納する）ワーキング物理メモリおよびオブジェクト検出を有することを可能にする。
【００１７】
サーバはマップおよび画像のデータベースを含む。サーバは、ＧＰＳデータを使用して、実世界のマップが座標に対して先に格納されたかどうかを決定する。配置されたならば、格納されたマップは、クライアントデバイスに送り戻される。例えば、ホームロケーションのユーザは、ホームロケーションに関連付けられた、先に格納されたデータを受信することができる。加えて、マップおよび画像のデータを、格納された、合成の実世界に加えることができる。
【００１８】
図１は、一実施形態に係る、ネットワーク１０４を介してアクセスされるエレメントと協働するクライアントデバイス１０２を含むＡＲコンピューティングシステム１００のブロック図である。例えば、エレメントは、ＡＲデータを作り出すサーバーデバイスのコンポーネントであり得る。クライアントデバイス１０２は、例えば、ゲームエンジン１０６（例えば、ユニティゲームエンジンまたは別の物理エンジン／レンダリングエンジン）およびＡＲプラットフォーム１０８を含む。ＡＲプラットフォーム１０８は、セグメンテーションおよびオブジェクト認識を実行し得る。図１に示すＡＲプラットフォーム１０８は、クライアント側の画像処理（画像セグメンテーションおよびローカル３Ｄ推定などを含む）を実行する複雑なコンピュータビジョンモジュール１１０を含む。
【００１９】
ＡＲプラットフォーム１０８は、同時ローカライゼーションおよびマッピング（例えば、ＳＬＡＭ（simultaneous localization and mapping））モジュール１１２も含む。一実施形態では、ＳＬＡＭ１１２機能は、空間内のカメラの位置を見つけるためにポイントクラウドおよび追跡を構築するマッピングシステムを含む。この例のＳＬＡＭプロセスは、アニメーションまたは拡張された値を実際の単語にさらに再投影する。他の実施形態では、ＳＬＡＭ１１２は、クライアントデバイス１０２の周囲の環境をマッピングするために、および／またはその環境内のクライアントデバイス１０２の位置を決定するために、異なるまたは追加のアプローチを使用し得る。
【００２０】
図１の実施形態では、ＡＲプラットフォーム１０８は、オブジェクト認識のためのマップ取出モジュール１１４およびディープラーニングモジュール１１６も含む。マップ取出モジュール１１４は、以前に生成されたマップを（例えば、ネットワーク１０４を介して）取出する。いくつかの実施形態では、マップ取出モジュール１１４は、いくつかのマップ（例えば、ユーザのホームロケーションのマップ）をローカルに保存してもよい。ディープラーニングモジュール１１６は、オブジェクト認識のために機械学習アルゴリズムを適用する。ディープラーニングモジュール１１６は、（例えば、ネットワーク１０４を介して）外部システムでのトレーニングの後に機械学習アルゴリズムを取得してもよい。いくつかの実施形態では、ディープラーニングモジュール１１６は、オブジェクト認識および／またはユーザフィードバックの結果を提供して、さらなるモデルトレーニングを可能にしてもよい。
【００２１】
示される実施形態では、ネットワーク１０４を介してアクセスされる（例えば、サーバコンピューティングデバイスにおける）コンポーネントは、ワンワールドマッピングモジュール１２０、オブジェクト認識モジュール１２２、マップデータベース１２４、オブジェクトデータベース１２６、およびディープラーニングトレーニングモジュール１２８と通信するＡＲバックエンドエンジン１１８を含む。他の実施形態では、追加のまたは異なるコンポーネントが含まれてもよい。さらに、機能は、本明細書で説明されているものとは異なる方法で分散されてもよい。例えば、オブジェクト認識機能の一部またはすべては、クライアントデバイス１０２で実行されてもよい。
【００２２】
ワンワールドマッピングモジュール１２０は、異なるローカルマップを融合して、複合現実世界マップを作成する。前述のように、最初にマップを生成したクライアントデバイス１０２からのＧＰＳ位置データが使用されて、隣接または重複している可能性が高いローカルマップを識別し得る。次いで、パターンマッチングが使用され、マップの重複部分を識別でき、または２つのローカルマップが互いに隣接していることを識別できる（たとえば、それらが同じオブジェクトの反対側の表現を含んでいるため）。２つのローカルマップがオーバーラップまたは隣接していると判断された場合、２つのマップが互いにどのように関連するかを示すマッピングが（たとえば、マップデータベースに）格納されることができる。ワンワールドマッピングモジュール１２０は、１つ以上のクライアントデバイス１０２から受信したローカルマップを融合し続けて、複合現実世界マップを改善し続けてもよい。いくつかの実施形態では、ワンワールドマッピングモジュール１２０による改善は、複合現実世界マップの拡張、複合現実世界マップの欠落部分の充填、複合現実世界マップの部分の更新、複数からクライアントデバイス１０２など受信したローカルマップからの重複部分の集約を含み得る。ワンワールドマッピングモジュール１２０は、様々なクライアントデバイス１０２のマップ取出モジュール１１４によるより効率的な取出のために複合現実世界マップをさらに処理し得る。いくつかの実施形態では、複合現実世界マップの処理は、複合現実世界マップをタイルの１つ以上の層に細分化、および複合現実世界マップの様々な部分のタグ付けを含んでもよい。レイヤーはさまざまなズームに関連付けられ、より高いレベルに比べて、より低いレベルで複合現実世界マップのより詳細な情報が保存される場合がある。
【００２３】
オブジェクト認識モジュール１２２は、キャプチャされた画像および収集された３Ｄデータからのオブジェクト情報を使用して、データで表される現実世界の特徴を識別する。このようにして、ネットワーク１０４は、例えば椅子が３Ｄロケーションにあると判断し、そのロケーションに関連付けられたオブジェクトデータベース１２６にアクセスする。ディーブラーニングモジュール１２８は、マップ情報をオブジェクト情報と融合するために使用され得る。このようにして、ＡＲコンピューティングシステム１００は、オブジェクト認識およびマップへの融合のために３Ｄ情報を結合し得る。オブジェクト認識モジュール１２２は、様々なクライアントデバイス１０２からのキャプチャ画像からオブジェクト情報を継続的に受信して、キャプチャ画像で識別された様々なオブジェクトをオブジェクトデータベース１２６に追加し得る。いくつかの実施形態では、オブジェクト認識モジュール１２２は、キャプチャされた画像内の検出されたオブジェクトを様々なカテゴリにさらに区別し得る。一実施形態では、オブジェクト認識モジュール１２２は、キャプチャされた画像内のオブジェクトを静止または一時的なものとして識別してもよい。例えば、オブジェクト認識モジュール１２２は、木を静止オブジェクトとして決定する。後続の例では、オブジェクト認識モジュール１２２は、一時的であると決定される可能性のあるオブジェクトと比較して、静止オブジェクトを少ない頻繁で更新する場合がある。例えば、オブジェクト認識モジュール１２２は、キャプチャされた画像内の動物が一時的であると判断し、後続の画像内に動物が環境にもはや存在しない場合、オブジェクトを除去し得る。
【００２４】
マップデータベース１２４は、クライアントデバイス１０２によって生成されたマップデータを格納するように構成された１つ以上のコンピュータ可読媒体を含む。マップデータは、あるロケーションでクライアントデバイス１０２によって収集された画像および他のセンサーデータに関連付けられて保存された３−Ｄポイントクラウドのローカルマップを含むことができる。マップデータは、異なるローカルマップ間の地理的関係を示すマッピング情報も含まれる場合がある。同様に、オブジェクトデータベース１２６は、認識されたオブジェクトに関する情報を保存するように構成された１つ以上のコンピュータ可読媒体を含む。例えば、オブジェクトデータベース１２６は、それらのオブジェクトのプロパティをともなう対応するロケーションを有する既知のオブジェクト（例えば、椅子、机、木、建物など）のリストを含んでもよい。プロパティは、オブジェクトタイプに汎用的であるか、オブジェクトのインスタンスごとに定義され得る（たとえば、すべての椅子は家具と見なされますが、各椅子のロケーションは個別に定義され得る）。オブジェクトデータベース１２６は、各オブジェクトのオブジェクトタイプに基づいてオブジェクトをさらに区別し得る。オブジェクトタイプは、類似した特性に基づいてオブジェクトデータベース１２６内のすべてのオブジェクトをグループ化することができる。例えば、植物オブジェクトタイプのすべてのオブジェクトは、オブジェクト認識モジュール１２２またはディープラーニングモジュール１２８によって、木、茂み、草、つるなどの植物として識別されるオブジェクトであることができる。マップデータベース１２４およびオブジェクトデータベース１２６は単一のエンティティとして示されているが、それらは複数のデバイスの複数の記憶媒体にわたって分散されてもよい（例えば、分散データベースとして）。
【００２５】
図２は、一実施形態による、ＡＲデータを生成および表示するためにクライアントデバイス１０２およびサーバーデバイスによって実行されるプロセスを示すフローチャートである。クライアントデバイス１０２およびサーバコンピューティングデバイスは、図１に示されるものと同様であってもよい。破線は、クライアントデバイス１０２とサーバとの間のデータの通信を表し、実線は、単一のデバイス内（たとえば、クライアントデバイス１０２内またはサーバ内）のデータの通信を示す。他の実施形態では、機能はデバイス間で異なって分散されてもよく、および／または異なるデバイスが使用されてもよい。
【００２６】
２０２において、生データは、１つ以上のセンサによってクライアントデバイス１０２で収集される。一実施形態では、生データは、画像データ、慣性計測データ、およびロケーションデータを含む。画像データは、物理的または無線のいずれかでクライアントデバイス１０２にリンクされた1つ以上のカメラによってキャプチャされてもよい。慣性計測データは、ジャイロスコープ、加速度計、またはそれらの組み合わせを使用して収集されてよく、最大６自由度の慣性計測データ（つまり、３度の並進運動と３度の回転運動）を含み得る。ロケーションデータは、ＧＰＳ（Global Position System）受信機で収集してもよい。追加の生データは、圧力レベル、照度レベル、湿度レベル、高度レベル、音レベル、音声データなど、他のさまざまなセンサによって収集される場合がある。生データは、クライアントデバイス１０２において、クライアントデバイス１０２の様々なセンサによって過去に取得された生データを記録することができる１つ以上のストレージモジュール内に格納されてもよい。
【００２７】
クライアントデバイス１０２は、２０４でローカルマップストレージを維持することができる。ローカルマップストレージは、ローカルポイントクラウドデータを含む。ポイントクラウドデータは、構築可能なメッシュサーフェスを形成する空間内の位置を含み得る。２０４におけるローカルマップストレージは、クライアントデバイス１０２による使用のための容易な取出のためのローカルポイントクラウドデータの階層的キャッシュを含み得る。２０４におけるローカルマップストレージは、ローカルポイントクラウドデータに融合されたオブジェクト情報をさらに含み得る。オブジェクト情報は、ローカルポイントクラウドデータ内のさまざまなオブジェクトを指定できる。
【００２８】
２０２で生データが収集されると、２０６において、クライアントデバイス１０２は、マップが初期化されているかどうかをチェックする。２０６でマップが初期化されている場合、２０８において、クライアントデバイス１０２はＳＬＡＭ機能を開始し得る。ＳＬＡＭ機能は、初期化されたマップ上の空間でカメラのロケーションを見つけるために、ポイントクラウドと追跡を構築するマッピングシステムを含む。この例のＳＬＡＭプロセスは、アニメーションまたは拡張された値を実際の単語にさらに再投影する。２１０で初期化されたマップがない場合、クライアントデバイス１０２は、ローカルに格納されたマップについて２０４のローカルマップストレージを探し得る。２０４のローカルマップストレージにマップが見つかる場合、クライアントデバイス１０２はＳＬＡＭ機能により使用のためにそのマップを取り出し得る。２１０でマップが配置されていない場合、２１２において、クライアントデバイス１０２は、初期化モジュールを使用して新しいマップを作成し得る。
【００２９】
新しいマップが作成されると、２０４において、初期化モジュールは、ローカルマップストレージに新しく作成されたマップを格納し得る。クライアントデバイス１０２は、ローカルマップストレージ２０４内のマップデータをサーバ側の２２０のクラウドマップストレージと定期的に同期させてもよい。マップデータを同期するとき、クライアントデバイス１０２上のローカルマップストレージ２０４は、新しく作成されたマップをサーバに送信してもよい。２２６においてサーバ側は、クラウドマップストレージ２２０をチェックし、クライアントデバイス１０２から受信したマップが以前にクラウドマップストレージ２２０に格納されているかどうかを確認する。そうでない場合、次いで、２２８において、サーバ側は、クラウドマップストレージ２２０に格納するために新しいマップを生成する。あるいは、サーバは、２２８において、新しいマップをクラウドマップストレージ２２０内の既存のマップに追加してもよい。
【００３０】
クライアント側に戻ると、２１４において、クライアントデバイス１０２は、新しい視点が検出されたかどうかを決定する。いくつかの実施形態では、クライアントデバイス１０２は、キャプチャされた画像のストリーム内の各視点が、クライアントデバイス１０２に格納された予め存在する視点とオーバーラップが閾値未満であるかどうかを判定する（例えば、ローカルマップストレージ２０４は、クライアントデバイス１２０によって撮影された視点を格納し得るまたはクラウドマップストレージ２２０から取り出し得る）。他の実施形態では、２１４において、クライアントデバイス１０２は、多段階決定において新しい視点が検出されたかどうかを決定する。ハイレベルでは、クライアントデバイス１０２は、クライアントデバイス１０２の地理的位置のローカル半径内の予め存在する視点を取り出し得る。予め存在する視点から、クライアントデバイス１０２は、予め存在する視点と比較して、問題としている視点における類似のオブジェクトまたは特徴の識別を開始し得る。例えば、クライアントデバイス１０２は、問題としている視点における木を識別し、ローカル半径内の予め存在する視点から、木も見えるすべての予め存在する視点をさらに減らしてもよい。クライアントデバイス１０２は、問題としている視点を予め存在する視点のフィルタリングされたセットに一致させるのにより堅牢な追加のフィルタリング層を使用してもよい。一例では、クライアントデバイス１０２は、機械学習モデルを使用して、問題としている視点がフィルタリングされたセット内の別の視点と一致するかどうか（すなわち、既存の視点と一致するため問題としている視点は新しくない）を決定する。２１４で新しい視点が検出された場合、２１６において、クライアントデバイス１０２は、ローカル環境推定によって収集されたデータを記録する。例えば、クライアントデバイス１０２が現在新しい視点を有すると判断すると、新しい視点でキャプチャされた画像は、サーバ（例えば、サーバ側のマップ／画像データベース２１８）に送信され得る。新しい視点検出モジュールが使用されて、３−Ｄデータとともに画像をいつ、どのように送信するかを決定し得る。ローカル環境の推定は、ローカルマッピングシステムおよびシリアル化された画像のためおよび/またはマップデータのための更新されたキーフレームを含む。サーバによりローカル環境の推定が用いられて、マップ内の所与のロケーションにある他の視点に関して新しい視点を適合させる。
【００３１】
サーバ側では、新しい視点データ（たとえば、メッシュデータが上部にあるポイントクラウド情報を含む）は、２１８において、サーバ側のマップ/画像データベースに格納され得る。サーバは、格納されたクラウドマップストレージ２２０およびオブジェクトデータベース２２２からの現実世界マップの異なる部分を追加してもよい。（追加されたコンポーネントデータを含む）クラウド環境推定２２４は、クライアントデバイスに送り返されてもよい。追加されたデータは、ローカルマップストレージ２０４において格納されることになるポイントおよびメッシュ並びに意味論のラベル（壁やベッドなど）を持つオブジェクトデータを含み得る。
【００３２】
図３は、クライアントデバイス１０２またはサーバとしての使用に適した例示的なコンピュータ３００を示すハイレベルブロック図である。例示的なコンピュータ３００は、チップセット３０４に結合された少なくとも１つのプロセッサ３０２を含む。チップセット３０４は、メモリコントローラハブ３２０および入出力（Ｉ／Ｏ）コントローラハブ３２２を含む。メモリ３０６およびグラフィックスアダプタ３１２はメモリコントローラハブ３２０に結合され、ディスプレイ３１８はグラフィックスアダプタ３１２に結合される。ストレージデバイス３０８、キーボード３１０、ポインティングデバイス３１４、およびネットワークアダプタ３１６は、Ｉ／Ｏコントローラハブ３２２に結合されている。コンピュータ３００の他の実施形態は、異なるアーキテクチャを有する。
【００３３】
図３に示す実施形態では、ストレージデバイス３０８は、ハードドライブ、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、ＤＶＤ、またはソリッドステートメモリデバイスなどの非一時的なコンピュータ可読記憶媒体である。メモリ３０６は、プロセッサ３０２によって使用される命令およびデータを保持する。ポインティングデバイス３１４は、マウス、トラックボール、タッチスクリーン、または他のタイプのポインティングデバイスであり、コンピュータシステム３００にデータを入力するためにキーボード３１０（オンスクリーンキーボードでもよい）と組み合わせて使用される。他の実施形態では、コンピュータ３００は、タッチスクリーン、ジョイスティック、ボタン、スクロールホイールなど、またはそれらの任意の組み合わせなど、さまざまな他の入力機構を有する。グラフィックスアダプタ３１２は、ディスプレイデバイス３１８上に画像および他の情報を表示する。ネットワークアダプタ３１６は、コンピュータシステム３００を１つ以上のコンピュータネットワークに結合する（たとえば、ネットワークアダプタ３１６は、ネットワーク１０４を介してクライアントデバイス１０２をサーバに結合し得る）。
【００３４】
図１のエンティティによって使用されるコンピュータのタイプは、実施形態および当該エンティティによって必要とする処理能力に応じて異なり得る。たとえば、サーバには、説明されている機能を提供するために連携して動作する複数のブレードサーバーを含む分散データベースシステムが含まれる場合がある。さらに、コンピュータに、キーボード３１０、グラフィックスアダプタ３１２、およびディスプレイ３１８など、上記のコンポーネントの一部が欠くことができる。
【００３５】
図４は、一実施形態による、クライアントデバイス（例えば、クライアントデバイス１０２）によってキャプチャされた画像の拡張４００を示すフローチャートである。クライアントデバイスは、画像データおよびロケーションデータを記録するための１つ以上のセンサと、拡張された画像を表示するための１つ以上のディスプレイデバイスとを含む。
【００３６】
クライアントデバイスは、クライアントデバイス上の１つ以上のセンサで画像データおよびロケーションデータを収集する４１０。一実施形態では、クライアントデバイスは、クライアントデバイスに関連付けられた１つ以上のカメラ（例えば、コンポーネントとしてのカメラ、クライアントデバイスに物理的にリンクされたカメラ、またはクライアントデバイスに無線でリンクされたカメラ）を利用してもよい。画像データは、ビデオファイルとして格納されたビデオデータ、またはビデオファイルからの個別のフレームとして格納されたビデオデータも含み得る。別の実施形態では、クライアントデバイスは、当該クライアントデバイスのロケーションデータを記録するために、ＧＰＳ受信機、慣性計測ユニット（ＩＭＵ）、加速度計、ジャイロスコープ、高度計、クライアントデバイスの空間的な位置を決定するための別のセンサ、またはそれらの何らかの組み合わせを利用し得る。
【００３７】
クライアントデバイスは、環境の３Ｄマップ内における当該クライアントデバイスのロケーションを決定する４２０。一実施形態では、クライアントデバイスは、収集された画像データまたはロケーションデータに基づいて環境の３Ｄマップを生成する。別の実施形態では、クライアントデバイスは、外部システムに格納された３−Ｄマップの一部を取り出す。例えば、クライアントデバイスは、ネットワーク（例えば、ネットワーク１０４）を介してサーバから複合現実世界３−Ｄマップの一部を取り出す。取り出された３−Ｄマップは、実世界のオブジェクトを３−Ｄマップの空間座標にマップするポイントクラウドデータを含む。次いで、クライアントデバイスは、ロケーションデータを使用して、３−Ｄマップ内の当該クライアントデバイスの空間的な位置を決定する。追加の実施形態では、クライアントデバイスは、画像データを利用して、３−Ｄマップ内の当該クライアントデバイスの空間的な位置を決定することを支援する。
【００３８】
クライアントデバイスは、環境の３Ｄマップ内における当該クライアントデバイスまでのマッピングポイントの距離を決定する４３０。クライアントデバイスは、３−Ｄマップ内のマッピングポイントと、当該マッピングポイントの対応する座標を識別する。たとえば、クライアントデバイスは、３−Ｄマップ内のオブジェクト、たとえば、木、標識、ベンチ、噴水などを識別する。次いで、クライアントデバイスは、識別されたマッピングポイントの座標とクライアントデバイスのロケーションを使用して、クライアントデバイスとマッピングポイントとの間の距離を決定する。
【００３９】
クライアントデバイスは、マッピングポイントに、マッピングポイントからクライアントデバイスまでの距離に基づくサイズの仮想オブジェクトを生成する４４０。仮想オブジェクトは、クライアントデバイスに格納されている実行可能アプリケーションのアプリケーションプログラミングインターフェイスによって生成され得る。仮想オブジェクトは、３−Ｄマップのマッピングポイントに配置するために、外部サーバによって送信されてもよい。一部の実施形態では、仮想オブジェクトは、クライアントデバイスの他のセンサによって収集された他の感覚データに基づいて、クライアントデバイスによって選択され得る。仮想オブジェクトは、クライアントデバイスからマッピングポイントまでの距離に基づいてサイズが変化し得る。
【００４０】
クライアントデバイスは、仮想オブジェクトで画像データを拡張する４５０。画像データ内の仮想オブジェクトのサイズは、マッピングポイントまでのクライアントデバイスの決定された距離に依存する。画像データ内の仮想オブジェクトの外観もまた、クライアントデバイスによって収集された他の感覚データに基づいて変化し得る。いくつかの実施形態では、クライアントデバイスは、仮想オブジェクトに対応するクライアントデバイスにより入力が受信されたたとき（例えば、仮想オブジェクトと対話するユーザ入力）、または感覚データが変化したとき（例えば，クライアントデバイスの動きが時間の間に回転的にまたは並進的に変化する）、仮想オブジェクトで画像データを定期的に更新する。
【００４１】
クライアントデバイスは、仮想オブジェクトとともに拡張された画像データを表示する４６０。クライアントデバイスは、1つ以上のディスプレイに仮想オブジェクトを表示してもよい。クライアントデバイスが拡張された画像データを継続的に更新する実施形態では、クライアントデバイスは、画像データの拡張に対する更新を反映するために表示も更新する。
【００４２】
当業者は、記載された概念から逸脱することなく、本明細書に開示された装置および技術の多数の使用および変更並びに逸脱を行うことができる。例えば、本開示で図示または説明されるコンポーネントまたは特徴は、図示または説明されるロケーション、設定、またはコンテキストに限定されない。本開示による装置の例は、先行する図の１つ以上を参照して説明したコンポーネント、のすべて、よりも少ないコンポーネント、または、と異なるコンポーネントを含むことができる。したがって、本開示は、本明細書で説明される特定の実装に限定されず、むしろ、添付の特許請求の範囲およびその均等物と一致する可能な限り広い範囲とされる。
【図１】
2020526829.tif 000003
【図２】
2020526829.tif 000004
【図３】
2020526829.tif 000005
【図４】
2020526829.tif 000006
【国際調査報告】
2020526829.tif 000007