(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-09
(45)【発行日】2024-05-17
(54)【発明の名称】クラウド支援型の新しい視点を利用したローカルマップデータの生成
(51)【国際特許分類】
G06T 7/543 20170101AFI20240510BHJP
G06T 19/00 20110101ALI20240510BHJP
【FI】
G06T7/543
G06T19/00 600
(21)【出願番号】P 2022183332
(22)【出願日】2022-11-16
(62)【分割の表示】P 2020500105の分割
【原出願日】2018-07-07
【審査請求日】2022-11-22
(32)【優先日】2018-07-06
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2017-07-07
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519087723
【氏名又は名称】ナイアンティック, インコーポレイテッド
【氏名又は名称原語表記】NIANTIC,INC.
【住所又は居所原語表記】One Ferry Building,Suite 200 San Francisco,CA 94111 United States of America
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ロス エドワード フィンマン
(72)【発明者】
【氏名】シー イン ディアナ フー
【審査官】伊知地 和之
(56)【参考文献】
【文献】特開2011-186808(JP,A)
【文献】米国特許出願公開第2015/0325000(US,A1)
【文献】米国特許出願公開第2013/0321443(US,A1)
【文献】特表2015-519677(JP,A)
【文献】米国特許出願公開第2014/0267234(US,A1)
【文献】米国特許出願公開第2011/0224902(US,A1)
【文献】石黒浩 外2名,注視制御を用いた移動ロボットの環境認識,電子情報通信学会技術研究報告 Vol.89 No.390 PRU89-104,Vol.89 No.390,社団法人電子情報通信学会,1990年01月26日,pp.25~32
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G01C 21/00 - 21/36
G01C 23/00 - 25/00
G05D 1/00 - 1/87
G06T 1/00
G06T 7/00 - 7/90
G06T 11/60 - 13/80
G06T 17/05
G06T 19/00 - 19/20
G06V 10/00 - 20/90
G06V 30/418
G06V 40/16
G06V 40/20
G08G 1/00 - 99/00
G09B 23/00 - 29/14
CSDB(日本国特許庁)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
クライアントデバイス上でマップデータを生成するための命令を格納した非一時的コンピュータ可読記録媒体であって、前記命令は、前記クライアントデバイスによって実行されると、前記クライアントデバイスに、
環境の視界を描く画像を受信することと、
前記環境の予め存在する画像と前記画像との比較に基づいて、前記環境の前記視界を新しい視点として識別すること
であって、前記画像の視野と前記予め存在する画像の視野との間のオーバーラップがオーバーラップ閾値未満であると決定することを含む、ことと、
前記画像から新しいローカルマップデータを生成することであって、前記新しいローカルマップデータは3次元(3D)ポイントクラウドを含む、ことと、
アグリゲートされたマップデータと融合するためにサーバに前記新しいローカルマップデータを提供することと、
を含む動作を実行させる、非一時的コンピュータ可読記録媒体。
【請求項2】
クライアントデバイス上でマップデータを生成するための命令を格納した非一時的コンピュータ可読記録媒体であって、前記命令は、前記クライアントデバイスによって実行されると、前記クライアントデバイスに、
環境の視界を描く画像を受信することと、
前記環境の予め存在する画像と前記画像との比較に基づいて、前記環境の前記視界を新しい視点として識別すること
であって、前記環境の前記視界が時間の閾値の間受信されていないと決定することを含む、ことと、
前記画像から新しいローカルマップデータを生成することであって、前記新しいローカルマップデータは3次元(3D)ポイントクラウドを含む、ことと、
アグリゲートされたマップデータと融合するためにサーバに前記新しいローカルマップデータを提供することと、
を含む動作を実行させる、非一時的コンピュータ可読記録媒体。
【請求項3】
前記アグリゲートされたマップデータは、前記環境の前記予め存在する画像に少なくとも対応するデータから生成される、請求項1
または2に記載の非一時的コンピュータ可読記録媒体。
【請求項4】
前記動作は、
前記サーバから前記アグリゲートされたマップデータの部分を受信することと、
アグリゲートされたマップデー
タの前記部分におけるマッピングポイントとアグリゲートされたマップデー
タの前記部分における前記クライアントデバイスの空間的な位置との間の距離を決定することと、
前記マッピングポイントと前記クライアントデバイスの前記空間的な位置との間の前記距離に少なくとも部分的に基づいて、アグリゲートされたマップデータの前記部分における前記マッピングポイントにおいてコンピュータを利用した現実画像を生成することと、
前記マッピングポイントでの前記コンピュータを利用した現実画像を表示することと、
をさらに含む、請求項1
または2に記載の非一時的コンピュータ可読記録媒体。
【請求項5】
前記動作は、
アグリゲートされたマップデータの前記部分における前記マッピングポイントとアグリゲートされたマップデータの前記部分における前記クライアントデバイス
の空間的な位置との間
の距離を決定することと、
前
記距離に基づいて、アグリゲートされたマップデータの前記部分における前記マッピングポイントにおいて前記コンピュータを利用した現実画像を調整することと、
前記マッピングポイントにおいて調整された前記コンピュータを利用した現実画像を表示することと、
をさらに含む、請求項
4に記載の非一時的コンピュータ可読記録媒体。
【請求項6】
前記動作は、前記サーバへ前記画像を送信することをさらに含み、アグリゲートされたマップデータの前記部分は、前記画像に基づいて選択される、請求項
4に記載の非一時的コンピュータ可読記録媒体。
【請求項7】
前記環境の前記視界を新しい視点として識別することは、
前記予め存在する画像および1つまたは複数の他の予め存在する画像を取り出すこと、であって、前記予め存在する画像は、前記クライアントデバイスの地理的な位置の閾値半径内の地理的な位置と関連付け
られている、ことと、
前記予め存在する画像において識別された特徴に対す
る前記画像において識別された特徴のセットの比較に基づいて前記予め存在する画像をフィルタリングすることと、
前記画像がフィルタリングされた前記予め存在する画像に一致しないと決定することと
を含む、請求項1
または2に記載の非一時的コンピュータ可読記録媒体。
【請求項8】
前記新しいローカルマップデータを生成することは、
前記画像から前記環境内の1つまたは複数のオブジェクトを識別することと、
前記画像から前記オブジェクトの空間的な位置を決定することと、
前記オブジェクトの各々についての3-Dポイントのセットを含む3Dポイントクラウドを生成することと
を含む、請求項1
または2に記載の非一時的コンピュータ可読記録媒体。
【請求項9】
前記新しいローカルマップデータを生成することは、
複数のオブジェクトタイプのうちの1つに各オブジェクトを分類することであって、前記複数のオブジェク
トタイプは、実質的に同じ空間位置にとどまると予想されるオブジェクトを記述する静止タイプを含む、こと、をさらに含む、請求項
8に記載の非一時的コンピュータ可読記録媒体。
【請求項10】
前記複数のオブジェク
トタイプは、実質的に同じ空間位置にとどまると予想されないオブジェクトを記述する一時的なタイプをさらに含む、請求項
9に記載の非一時的コンピュータ可読記録媒体。
【請求項11】
前記アグリゲートされたマップデータは、タイルの層に細分化され、前記層は、様々なズームレベルに関連している、請求項1
または2に記載の非一時的コンピュータ可読記録媒体。
【請求項12】
命令を格納した非一時的コンピュータ可読記録媒体であって、前記命令は、コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、
環境を記述するマップデータを格納することであって、前記マップデータは、前記環境内の1つまたは複数の視点からキャプチャされた画像から導出される、ことと、
前記環境における新しい視点からキャプチャされた画像から生成された新しいローカルマップデータを受信することであって、前記新しいローカルマップは、前記環境を空間的に記述する3Dポイントクラウドを含む、ことと、
前記環境を記述する前記マップデータの部分と前記画像を比較することにより、前記視点の新規性を確認すること
であって、前記マップデータと前記画像を比較することは、前記環境内の前記1つまたは複数の視点からキャプチャされた前記画像の視野の間のオーバーラップがオーバーラップ閾値未満であると決定することを含む、ことと、
受信した前記新しいローカルマップデータに基づいて、前記環境を記述する前記マップデータを更新することと、
を含む動作を実行させる、非一時的コンピュータ可読記録媒体。
【請求項13】
前記動作は、
クライアントデバイスへ前記マップデータの前記部分を送信すること
をさらに含む、請求項
12に記載の非一時的コンピュータ可読記録媒体。
【請求項14】
前記動作は、
前記環境内のクライアントデバイスによって表示される仮想オブジェクトを生成することと、
前記クライアントデバイスへ前記仮想オブジェクトを送信することと
をさらに含む、請求項
12に記載の非一時的コンピュータ可読記録媒体。
【請求項15】
前記マップデータと前記画像を比較することは、
前記新しいローカマップデータを提供したクライアントデバイスの地理的な位置を受信することと、
前記クライアントデバイスの前記地理的な位置に対応する前記マップデータの部分を取得することであって、前記マップデータの部分は、前記クライアントデバイスの前記地理的な位置の閾値半径内の1つまたは複数の視点からキャプチャされた1つまたは複数の対応する画像から取得される、ことと、
前記1つまたは複数の視点からキャプチャされた前記1つまたは複数の対応する画像において識別された特徴に対する前記画像内において識別された特徴のセットの比較に基づいて、前記1つまたは複数の視野をフィルタリングすることと、
前記新しい視点がフィルタリングされた前記1つまたは複数の視点に一致しないと決定することと、
を含む、請求項
12に記載の非一時的コンピュータ可読記録媒体。
【請求項16】
マップデータを生成する方法であって、
環境の視界を描く画像を受信することと、
前記環境の予め存在する画像と前記画像との比較に基づいて、前記環境の前記視界を新しい視点として識別すること
であって、前記環境の前記視界が時間の閾値の間受信されていないと決定することを含む、ことと、
前記画像から新しいローカルマップデータを生成することであって、前記新しいローカルマップデータは3次元(3D)ポイントクラウドを含む、ことと、
アグリゲートされたマップデータと融合するためにサーバに前記新しいローカルマップデータを提供することと、
を含む方法。
【請求項17】
前記サーバから前記アグリゲートされたマップデータの部分を受信することと、
アグリゲートされたマップデー
タの前記部分におけるマッピングポイントとアグリゲートされたマップデー
タの前記部分におけるクライアントデバイスの空間的な位置との間の距離を決定することと、
前記マッピングポイントと前記クライアントデバイスの前記空間的な位置との間の前記距離に少なくとも部分的に基づいて、アグリゲートされたマップデータの前記部分における前記マッピングポイントにおいてコンピュータを利用した現実画像を生成することと、
前記マッピングポイントでの前記コンピュータを利用した現実画像を表示することと、
をさらに含む、請求項
16に記載の方法。
【請求項18】
アグリゲートされたマップデータの前記部分における前記マッピングポイントとアグリゲートされたマップデータの前記部分における前記クライアントデバイス
の空間的な位置との間
の距離を決定することと、
前
記距離に基づいて、アグリゲートされたマップデータの前記部分における前記マッピングポイントにおいて前記コンピュータを利用した現実画像を調整することと、
前記マッピングポイントにおいて調整された前記コンピュータを利用した現実画像を表示することと、
をさらに含む、請求項
17に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、コンピュータを利用したリアリティーシステム(computer-mediated reality system)に関し、より詳細には、クライアントデバイスにより集められたデータから3-Dマップを生成するAR(拡張現実)システムに関する。
【背景技術】
【0002】
本出願は、2017年7月7日出願の米国仮出願第62/529,492号および2018年7月6日出願の米国出願第16/029,530号の恩恵を主張し、両方を参照によりすべて組み入れる。
【0003】
コンピュータを利用したリアリティテクノロジーは、ハンドヘルドまたはウェアラブルのデバイスを身につけたユーザに、デバイスを通して見ると、環境に関して視覚または聴覚の知覚を追加する、削減する、または変更することを可能にする。AR(拡張現実)は、具体的には、物質的な、現実世界の環境に関してリアルタイムの知覚を、コンピューティングデバイスにおいて生成される感覚入力を使用して、変更するコンピュータを利用したリアリティの類にある。
【発明の概要】
【0004】
特定の実施形態によれば、方法は、コンピュータを利用したリアリティデータ(reality data)を生成する。方法は、クライアントデバイスにおける3-D(3次元)マップデータおよびカメラの位置データを生成することを含む。方法は、さらに、3-Dマップデータおよびクライアントデータを外部のサーバに送信し、クライアントデバイスにおけるワールドマップデータを外部のサーバから受信し、クライアントデバイスにおける、コンピュータを利用した現実画像を生成することを含む。ワールドマップデータを、3-Dマップデータを使用して生成することができる。
【0005】
別の特定の実施形態によれば、ローカルに格納されるアニメーションエンジンを含む拡張現実エンジンは、ポータブルコンピューター上に実行される。アニメーションエンジンは、ポータブルコンピューターにおいて統合される、カメラにより作り出されるデジタル画像のストリームを受信する第一の入力を含む。デジタル画像は、カメラにより見られる環境のリアルタイムに近い視界を表すことができる。アニメーションエンジンは、さらに、ポータブルコンピューターにおいて統合される、ジオロケーションポジショニングシステム(geolocation positioning system)からのジオロケーションポジション(geolocation position)を受信する第二の入力、第一の入力および第二の入力を受信し時間内の特定のポイントにおけるカメラの位置と1つ以上のマッピングポイントにおけるカメラの位置との間の距離を推定する3Dマッピングエンジン、およびコンピュータ生成の画像により覆われる、カメラにより作り出されるデジタル画像のストリームを含む出力を含む。コンピュータ生成の画像は、3Dマップの特定の位置に配置することができ、ユーザが、カメラを空間内の異なる位置に動かすとおりに、特定の位置に置かれたままである。ローカルに格納されるアニメーションエンジンとネットワーク通信をする、ローカルに格納されないオブジェクト検出エンジンは、3Dマップにおけるオブジェクトを検出するのに使用され、検出されるオブジェクトの表示(例えば、位置および識別、例えばタイプなど)をポータブルコンピューターに返すことができる。オブジェクト検出エンジンは、カメラにより作り出されるデジタル画像のストリームからのデジタル画像を含む、ローカルに格納されるアニメーションエンジンから受信される第一の入力、およびローカルに格納されるアニメーションエンジンから受信されるデジタル画像に関連付けられたジオロケーションポジションを含む、ローカルに格納されるアニメーションエンジンから受信される第二の入力を使用することができる。
【0006】
本開示についての他の特徴および利点を、以下に説明する。
【図面の簡単な説明】
【0007】
【
図1】
図1は、一実施形態に係る拡張現実データを生成し表示するネットワークコンピューティング環境を示す。
【
図2】
図2は、一実施形態に係る拡張現実データを生成し表示するために
図1のコンピューティングシステムにより実行される処理を例示するフローチャートである。
【
図3】
図3は、クライアントデバイスまたはサーバとしての使用に適した例示的なコンピュータを示すハイレベルブロック図である。
【
図4】
図4は、一実施形態による、クライアントデバイスによってキャプチャされた画像の拡張を示すフローチャートである。
【発明を実施するための形態】
【0008】
システムおよび方法は、(例えば、センチメートル単位の解像度を有する)3-D(3次元)マップを作成し、次に、上記3-Dマップを使用して現実世界とのインタラクションを可能にする。様々な実施形態において、マッピングは、クライアント側(例えば、電話またはヘッドセット)に完成され、先にコンパイルされた映像(imagery)およびマッピングをクライアントデバイスに戻して供給するバックエンドサーバーと一組になる。
【0009】
一実施形態において、システムは、画像と、クライアント側(例えば、ハンドヘルド端末または身につけられる電子デバイス)のGPS(全地球測位システム)座標とを選択し、選択されたデータを3-Dマップと一組にする。3-Dマップは、カメラ記録モジュール、およびIMU(inertial measurement unit)、例えば、加速度計またはジャイロスコープなどから構築される。クライアントデータは、サーバに送信される。サーバおよびクライアント側のコンピューティングデバイスは、データをともに処理して、可能性があるインタラクション(potential interaction)を決定するだけでなく、オブジェクトおよびジオメトリを確立する。可能性があるインタラクションの例は、ARアニメーションにより部屋に作られるものを含む。
【0010】
画像および3-Dマップをともに用いて、システムは、オブジェクト検出およびジオメトリ推定を、ニューラルネットワークまたは他の種類のモデルを使用して、完成することができる。ニューラルネットワークの例は、膨大な、連結された簡略化された構成単位(人工ニューロン)を使用する機械学習において使用される計算モデルである。構成単位は、ソフトウェアによりともに連結され、結合される入力信号が十分に大きいならば、構成単位は、構成単位自体の出力信号を発火する。システムは、ディープラーニング(例えば、多層ニューラルネットワーク)を使用して、ARデータを文脈上理解することができる。モデルの他の種類は、他の統計モデルまたは他の機械学習モデルを含むことができる。
【0011】
いくつかの実施形態において、システムは、ローカルマップを集めて、(例えば、ローカルマップをともにリンクさせることによって)1つ以上のグローバルマップを作成する。集められたマップは、サーバのグローバルマップにともに結合されて、環境のデジタルマップを、または「世界」を生成する。例えば、同様のGPS座標、同様の画像、および予め決められたしきい値の範囲内に一致する部分を含む同様のセンサーデータのどんな組合せに対しても、1つ以上のデバイスにより生成された2つのローカルマップを、重なり合うように決定することができる。したがって、重なり合う部分を使用して、(例えば、グローバルマップを生成することの一部として)ワールドマップおよびローカルマップとの一貫性を有するグローバルな座標系を取得するのに役立たせることができる2つのローカルマップをとじ合わせることができる。ワールドマップを使用して、特定のGPS座標において格納され、さらに、(例えば、フィート単位の解像度を有する)世界の特定の場所に至るまで、3-Dポイントおよび視覚映像(visual image)を介してインデックスを付けられるマップにおいて、先に格納されたアニメーションを記憶している。
【0012】
説明的な処理は、データをクラウドへ、データをクラウドからマッピングする。本明細書において説明するように、マップは、3-Dピクセルに類似のやり方において、世界を表す空間内の3-Dポイントの集まりである。画像データは、利用可能であり有効であると、3-Dマップとともに送信される。ある例は、3-Dマップデータを、画像データなしに送信する。
【0013】
様々な実施形態において、クライアントデバイスは、プロセッサにより実行される3-Dアルゴリズムを使用して、3-Dマップを生成する。クライアントデバイスは、画像、3-Dマップ、GPSデータ、および他のどんなセンサーデータであっても(例えば、IMUデータ、他のどんな位置データであっても)、効果的なやり方において送信する。例えば、画像を、送信または処理を詰まらせることがないように、選択的に送信することができる。一実施例において、画像を、新規のビューポイントがあるときに画像が現在のビューポイントにまだ供給されていないと、選択的に送信することができる。画像は、例えば、カメラの視野が過去のまたは最近のカメラポーズ(camera pose)から先行する画像による極小の重なりを有するとき、またはビューポイントがオブジェクトの期待される動きに依存する時間量に対して観測されていないとき、アルゴリズムにより送信するように指定される。別の実施例として、しきい値より大きな時間量が、現在の(または実質上重なり合っている)ビューポイントから先行する画像が供給されて以後に、経過したならば、画像を、供給することができる。今述べたことは、マップに関連付けられた格納された画像が、実世界の位置についての、より現在の(または少なくとも最近の)状態を反映させるために更新されることを可能にすることができる。
【0014】
様々な実施形態において、クラウド側のデバイスは、3-Dデータおよび画像に基づいて、オブジェクトを検出するリアルタイムの検出システムを含み、実世界の環境にジオメトリを推定する。例えば、フォトリアリスティック(例えば、半稠密なおよび/または稠密な3-D再構成)でない部屋の3-Dマップは、画像により決定可能であり得る。
【0015】
サーバは、検出システムにより画像および3-Dデータをともに融合して、一貫して難なくインデックスを付けられた、世界の3-Dマップをビルドする、または実世界のマップを、GPSデータを使用して合成する。一度格納されると、実世界のマップは、検索されて、先に格納された実世界のマップおよび関連付けられたアニメーションを配置する。
【0016】
様々な実施形態において、マッピングおよびトラッキングは、クライアント側において行われる。(世界をデジタル化する)実世界の散在する再構成は、実世界に関するカメラの位置とともに、集められる。マッピングは、ポイントクラウド、または3-Dポイントの集まりを作成することを含む。システムは、疎表現(sparse representation)を、GPSデータとともに、ポイントクラウド情報をシリアライズして送ることによって、サーバに戻して伝達する。クラウドの処理は、(リアルタイムまたはほぼリアルタイムにおいて独立のデバイス間のマップデータを共有する)マルチプレイヤーの性能が(デバイスにローカルに格納されないさらなる体験用のマップおよびアニメーションのデータを格納する)ワーキング物理メモリおよびオブジェクト検出を有することを可能にする。
【0017】
サーバはマップおよび画像のデータベースを含む。サーバは、GPSデータを使用して、実世界のマップが座標に対して先に格納されたかどうかを決定する。配置されたならば、格納されたマップは、クライアントデバイスに送り戻される。例えば、ホームロケーションのユーザは、ホームロケーションに関連付けられた、先に格納されたデータを受信することができる。加えて、マップおよび画像のデータを、格納された、合成の実世界に加えることができる。
【0018】
図1は、一実施形態に係る、ネットワーク104を介してアクセスされるエレメントと協働するクライアントデバイス102を含むARコンピューティングシステム100のブロック図である。例えば、エレメントは、ARデータを作り出すサーバーデバイスのコンポーネントであり得る。クライアントデバイス102は、例えば、ゲームエンジン106(例えば、ユニティゲームエンジンまたは別の物理エンジン/レンダリングエンジン)およびARプラットフォーム108を含む。ARプラットフォーム108は、セグメンテーションおよびオブジェクト認識を実行し得る。
図1に示すARプラットフォーム108は、クライアント側の画像処理(画像セグメンテーションおよびローカル3D推定などを含む)を実行する複雑なコンピュータビジョンモジュール110を含む。
【0019】
ARプラットフォーム108は、同時ローカライゼーションおよびマッピング(例えば、SLAM(simultaneous localization and mapping))モジュール112も含む。一実施形態では、SLAM112機能は、空間内のカメラの位置を見つけるためにポイントクラウドおよび追跡を構築するマッピングシステムを含む。この例のSLAMプロセスは、アニメーションまたは拡張された値を実際の単語にさらに再投影する。他の実施形態では、SLAM112は、クライアントデバイス102の周囲の環境をマッピングするために、および/またはその環境内のクライアントデバイス102の位置を決定するために、異なるまたは追加のアプローチを使用し得る。
【0020】
図1の実施形態では、ARプラットフォーム108は、オブジェクト認識のためのマップ取出モジュール114およびディープラーニングモジュール116も含む。マップ取出モジュール114は、以前に生成されたマップを(例えば、ネットワーク104を介して)取出する。いくつかの実施形態では、マップ取出モジュール114は、いくつかのマップ(例えば、ユーザのホームロケーションのマップ)をローカルに保存してもよい。ディープラーニングモジュール116は、オブジェクト認識のために機械学習アルゴリズムを適用する。ディープラーニングモジュール116は、(例えば、ネットワーク104を介して)外部システムでのトレーニングの後に機械学習アルゴリズムを取得してもよい。いくつかの実施形態では、ディープラーニングモジュール116は、オブジェクト認識および/またはユーザフィードバックの結果を提供して、さらなるモデルトレーニングを可能にしてもよい。
【0021】
示される実施形態では、ネットワーク104を介してアクセスされる(例えば、サーバコンピューティングデバイスにおける)コンポーネントは、ワンワールドマッピングモジュール120、オブジェクト認識モジュール122、マップデータベース124、オブジェクトデータベース126、およびディープラーニングトレーニングモジュール128と通信するARバックエンドエンジン118を含む。他の実施形態では、追加のまたは異なるコンポーネントが含まれてもよい。さらに、機能は、本明細書で説明されているものとは異なる方法で分散されてもよい。例えば、オブジェクト認識機能の一部またはすべては、クライアントデバイス102で実行されてもよい。
【0022】
ワンワールドマッピングモジュール120は、異なるローカルマップを融合して、複合現実世界マップを作成する。前述のように、最初にマップを生成したクライアントデバイス102からのGPS位置データが使用されて、隣接または重複している可能性が高いローカルマップを識別し得る。次いで、パターンマッチングが使用され、マップの重複部分を識別でき、または2つのローカルマップが互いに隣接していることを識別できる(たとえば、それらが同じオブジェクトの反対側の表現を含んでいるため)。2つのローカルマップがオーバーラップまたは隣接していると判断された場合、2つのマップが互いにどのように関連するかを示すマッピングが(たとえば、マップデータベースに)格納されることができる。ワンワールドマッピングモジュール120は、1つ以上のクライアントデバイス102から受信したローカルマップを融合し続けて、複合現実世界マップを改善し続けてもよい。いくつかの実施形態では、ワンワールドマッピングモジュール120による改善は、複合現実世界マップの拡張、複合現実世界マップの欠落部分の充填、複合現実世界マップの部分の更新、複数からクライアントデバイス102など受信したローカルマップからの重複部分の集約を含み得る。ワンワールドマッピングモジュール120は、様々なクライアントデバイス102のマップ取出モジュール114によるより効率的な取出のために複合現実世界マップをさらに処理し得る。いくつかの実施形態では、複合現実世界マップの処理は、複合現実世界マップをタイルの1つ以上の層に細分化、および複合現実世界マップの様々な部分のタグ付けを含んでもよい。レイヤーはさまざまなズームに関連付けられ、より高いレベルに比べて、より低いレベルで複合現実世界マップのより詳細な情報が保存される場合がある。
【0023】
オブジェクト認識モジュール122は、キャプチャされた画像および収集された3Dデータからのオブジェクト情報を使用して、データで表される現実世界の特徴を識別する。このようにして、ネットワーク104は、例えば椅子が3Dロケーションにあると判断し、そのロケーションに関連付けられたオブジェクトデータベース126にアクセスする。ディーブラーニングモジュール128は、マップ情報をオブジェクト情報と融合するために使用され得る。このようにして、ARコンピューティングシステム100は、オブジェクト認識およびマップへの融合のために3D情報を結合し得る。オブジェクト認識モジュール122は、様々なクライアントデバイス102からのキャプチャ画像からオブジェクト情報を継続的に受信して、キャプチャ画像で識別された様々なオブジェクトをオブジェクトデータベース126に追加し得る。いくつかの実施形態では、オブジェクト認識モジュール122は、キャプチャされた画像内の検出されたオブジェクトを様々なカテゴリにさらに区別し得る。一実施形態では、オブジェクト認識モジュール122は、キャプチャされた画像内のオブジェクトを静止または一時的なものとして識別してもよい。例えば、オブジェクト認識モジュール122は、木を静止オブジェクトとして決定する。後続の例では、オブジェクト認識モジュール122は、一時的であると決定される可能性のあるオブジェクトと比較して、静止オブジェクトを少ない頻繁で更新する場合がある。例えば、オブジェクト認識モジュール122は、キャプチャされた画像内の動物が一時的であると判断し、後続の画像内に動物が環境にもはや存在しない場合、オブジェクトを除去し得る。
【0024】
マップデータベース124は、クライアントデバイス102によって生成されたマップデータを格納するように構成された1つ以上のコンピュータ可読媒体を含む。マップデータは、あるロケーションでクライアントデバイス102によって収集された画像および他のセンサーデータに関連付けられて保存された3-Dポイントクラウドのローカルマップを含むことができる。マップデータは、異なるローカルマップ間の地理的関係を示すマッピング情報も含まれる場合がある。同様に、オブジェクトデータベース126は、認識されたオブジェクトに関する情報を保存するように構成された1つ以上のコンピュータ可読媒体を含む。例えば、オブジェクトデータベース126は、それらのオブジェクトのプロパティをともなう対応するロケーションを有する既知のオブジェクト(例えば、椅子、机、木、建物など)のリストを含んでもよい。プロパティは、オブジェクトタイプに汎用的であるか、オブジェクトのインスタンスごとに定義され得る(たとえば、すべての椅子は家具と見なされますが、各椅子のロケーションは個別に定義され得る)。オブジェクトデータベース126は、各オブジェクトのオブジェクトタイプに基づいてオブジェクトをさらに区別し得る。オブジェクトタイプは、類似した特性に基づいてオブジェクトデータベース126内のすべてのオブジェクトをグループ化することができる。例えば、植物オブジェクトタイプのすべてのオブジェクトは、オブジェクト認識モジュール122またはディープラーニングモジュール128によって、木、茂み、草、つるなどの植物として識別されるオブジェクトであることができる。マップデータベース124およびオブジェクトデータベース126は単一のエンティティとして示されているが、それらは複数のデバイスの複数の記憶媒体にわたって分散されてもよい(例えば、分散データベースとして)。
【0025】
図2は、一実施形態による、ARデータを生成および表示するためにクライアントデバイス102およびサーバーデバイスによって実行されるプロセスを示すフローチャートである。クライアントデバイス102およびサーバコンピューティングデバイスは、
図1に示されるものと同様であってもよい。破線は、クライアントデバイス102とサーバとの間のデータの通信を表し、実線は、単一のデバイス内(たとえば、クライアントデバイス102内またはサーバ内)のデータの通信を示す。他の実施形態では、機能はデバイス間で異なって分散されてもよく、および/または異なるデバイスが使用されてもよい。
【0026】
202において、生データは、1つ以上のセンサによってクライアントデバイス102で収集される。一実施形態では、生データは、画像データ、慣性計測データ、およびロケーションデータを含む。画像データは、物理的または無線のいずれかでクライアントデバイス102にリンクされた1つ以上のカメラによってキャプチャされてもよい。慣性計測データは、ジャイロスコープ、加速度計、またはそれらの組み合わせを使用して収集されてよく、最大6自由度の慣性計測データ(つまり、3度の並進運動と3度の回転運動)を含み得る。ロケーションデータは、GPS(Global Position System)受信機で収集してもよい。追加の生データは、圧力レベル、照度レベル、湿度レベル、高度レベル、音レベル、音声データなど、他のさまざまなセンサによって収集される場合がある。生データは、クライアントデバイス102において、クライアントデバイス102の様々なセンサによって過去に取得された生データを記録することができる1つ以上のストレージモジュール内に格納されてもよい。
【0027】
クライアントデバイス102は、204でローカルマップストレージを維持することができる。ローカルマップストレージは、ローカルポイントクラウドデータを含む。ポイントクラウドデータは、構築可能なメッシュサーフェスを形成する空間内の位置を含み得る。204におけるローカルマップストレージは、クライアントデバイス102による使用のための容易な取出のためのローカルポイントクラウドデータの階層的キャッシュを含み得る。204におけるローカルマップストレージは、ローカルポイントクラウドデータに融合されたオブジェクト情報をさらに含み得る。オブジェクト情報は、ローカルポイントクラウドデータ内のさまざまなオブジェクトを指定できる。
【0028】
202で生データが収集されると、206において、クライアントデバイス102は、マップが初期化されているかどうかをチェックする。206でマップが初期化されている場合、208において、クライアントデバイス102はSLAM機能を開始し得る。SLAM機能は、初期化されたマップ上の空間でカメラのロケーションを見つけるために、ポイントクラウドと追跡を構築するマッピングシステムを含む。この例のSLAMプロセスは、アニメーションまたは拡張された値を実際の単語にさらに再投影する。210で初期化されたマップがない場合、クライアントデバイス102は、ローカルに格納されたマップについて204のローカルマップストレージを探し得る。204のローカルマップストレージにマップが見つかる場合、クライアントデバイス102はSLAM機能により使用のためにそのマップを取り出し得る。210でマップが配置されていない場合、212において、クライアントデバイス102は、初期化モジュールを使用して新しいマップを作成し得る。
【0029】
新しいマップが作成されると、204において、初期化モジュールは、ローカルマップストレージに新しく作成されたマップを格納し得る。クライアントデバイス102は、ローカルマップストレージ204内のマップデータをサーバ側の220のクラウドマップストレージと定期的に同期させてもよい。マップデータを同期するとき、クライアントデバイス102上のローカルマップストレージ204は、新しく作成されたマップをサーバに送信してもよい。226においてサーバ側は、クラウドマップストレージ220をチェックし、クライアントデバイス102から受信したマップが以前にクラウドマップストレージ220に格納されているかどうかを確認する。そうでない場合、次いで、228において、サーバ側は、クラウドマップストレージ220に格納するために新しいマップを生成する。あるいは、サーバは、228において、新しいマップをクラウドマップストレージ220内の既存のマップに追加してもよい。
【0030】
クライアント側に戻ると、214において、クライアントデバイス102は、新しい視点が検出されたかどうかを決定する。いくつかの実施形態では、クライアントデバイス102は、キャプチャされた画像のストリーム内の各視点が、クライアントデバイス102に格納された予め存在する視点とオーバーラップが閾値未満であるかどうかを判定する(例えば、ローカルマップストレージ204は、クライアントデバイス120によって撮影された視点を格納し得るまたはクラウドマップストレージ220から取り出し得る)。他の実施形態では、214において、クライアントデバイス102は、多段階決定において新しい視点が検出されたかどうかを決定する。ハイレベルでは、クライアントデバイス102は、クライアントデバイス102の地理的位置のローカル半径内の予め存在する視点を取り出し得る。予め存在する視点から、クライアントデバイス102は、予め存在する視点と比較して、問題としている視点における類似のオブジェクトまたは特徴の識別を開始し得る。例えば、クライアントデバイス102は、問題としている視点における木を識別し、ローカル半径内の予め存在する視点から、木も見えるすべての予め存在する視点をさらに減らしてもよい。クライアントデバイス102は、問題としている視点を予め存在する視点のフィルタリングされたセットに一致させるのにより堅牢な追加のフィルタリング層を使用してもよい。一例では、クライアントデバイス102は、機械学習モデルを使用して、問題としている視点がフィルタリングされたセット内の別の視点と一致するかどうか(すなわち、既存の視点と一致するため問題としている視点は新しくない)を決定する。214で新しい視点が検出された場合、216において、クライアントデバイス102は、ローカル環境推定によって収集されたデータを記録する。例えば、クライアントデバイス102が現在新しい視点を有すると判断すると、新しい視点でキャプチャされた画像は、サーバ(例えば、サーバ側のマップ/画像データベース218)に送信され得る。新しい視点検出モジュールが使用されて、3-Dデータとともに画像をいつ、どのように送信するかを決定し得る。ローカル環境の推定は、ローカルマッピングシステムおよびシリアル化された画像のためおよび/またはマップデータのための更新されたキーフレームを含む。サーバによりローカル環境の推定が用いられて、マップ内の所与のロケーションにある他の視点に関して新しい視点を適合させる。
【0031】
サーバ側では、新しい視点データ(たとえば、メッシュデータが上部にあるポイントクラウド情報を含む)は、218において、サーバ側のマップ/画像データベースに格納され得る。サーバは、格納されたクラウドマップストレージ220およびオブジェクトデータベース222からの現実世界マップの異なる部分を追加してもよい。(追加されたコンポーネントデータを含む)クラウド環境推定224は、クライアントデバイスに送り返されてもよい。追加されたデータは、ローカルマップストレージ204において格納されることになるポイントおよびメッシュ並びに意味論のラベル(壁やベッドなど)を持つオブジェクトデータを含み得る。
【0032】
図3は、クライアントデバイス102またはサーバとしての使用に適した例示的なコンピュータ300を示すハイレベルブロック図である。例示的なコンピュータ300は、チップセット304に結合された少なくとも1つのプロセッサ302を含む。チップセット304は、メモリコントローラハブ320および入出力(I/O)コントローラハブ322を含む。メモリ306およびグラフィックスアダプタ312はメモリコントローラハブ320に結合され、ディスプレイ318はグラフィックスアダプタ312に結合される。ストレージデバイス308、キーボード310、ポインティングデバイス314、およびネットワークアダプタ316は、I/Oコントローラハブ322に結合されている。コンピュータ300の他の実施形態は、異なるアーキテクチャを有する。
【0033】
図3に示す実施形態では、ストレージデバイス308は、ハードドライブ、コンパクトディスクリードオンリーメモリ(CD-ROM)、DVD、またはソリッドステートメモリデバイスなどの非一時的なコンピュータ可読記憶媒体である。メモリ306は、プロセッサ302によって使用される命令およびデータを保持する。ポインティングデバイス314は、マウス、トラックボール、タッチスクリーン、または他のタイプのポインティングデバイスであり、コンピュータシステム300にデータを入力するためにキーボード310(オンスクリーンキーボードでもよい)と組み合わせて使用される。他の実施形態では、コンピュータ300は、タッチスクリーン、ジョイスティック、ボタン、スクロールホイールなど、またはそれらの任意の組み合わせなど、さまざまな他の入力機構を有する。グラフィックスアダプタ312は、ディスプレイデバイス318上に画像および他の情報を表示する。ネットワークアダプタ316は、コンピュータシステム300を1つ以上のコンピュータネットワークに結合する(たとえば、ネットワークアダプタ316は、ネットワーク104を介してクライアントデバイス102をサーバに結合し得る)。
【0034】
図1のエンティティによって使用されるコンピュータのタイプは、実施形態および当該エンティティによって必要とする処理能力に応じて異なり得る。たとえば、サーバには、説明されている機能を提供するために連携して動作する複数のブレードサーバーを含む分散データベースシステムが含まれる場合がある。さらに、コンピュータに、キーボード310、グラフィックスアダプタ312、およびディスプレイ318など、上記のコンポーネントの一部が欠くことができる。
【0035】
図4は、一実施形態による、クライアントデバイス(例えば、クライアントデバイス102)によってキャプチャされた画像の拡張400を示すフローチャートである。クライアントデバイスは、画像データおよびロケーションデータを記録するための1つ以上のセンサと、拡張された画像を表示するための1つ以上のディスプレイデバイスとを含む。
【0036】
クライアントデバイスは、クライアントデバイス上の1つ以上のセンサで画像データおよびロケーションデータを収集する410。一実施形態では、クライアントデバイスは、クライアントデバイスに関連付けられた1つ以上のカメラ(例えば、コンポーネントとしてのカメラ、クライアントデバイスに物理的にリンクされたカメラ、またはクライアントデバイスに無線でリンクされたカメラ)を利用してもよい。画像データは、ビデオファイルとして格納されたビデオデータ、またはビデオファイルからの個別のフレームとして格納されたビデオデータも含み得る。別の実施形態では、クライアントデバイスは、当該クライアントデバイスのロケーションデータを記録するために、GPS受信機、慣性計測ユニット(IMU)、加速度計、ジャイロスコープ、高度計、クライアントデバイスの空間的な位置を決定するための別のセンサ、またはそれらの何らかの組み合わせを利用し得る。
【0037】
クライアントデバイスは、環境の3Dマップ内における当該クライアントデバイスのロケーションを決定する420。一実施形態では、クライアントデバイスは、収集された画像データまたはロケーションデータに基づいて環境の3Dマップを生成する。別の実施形態では、クライアントデバイスは、外部システムに格納された3-Dマップの一部を取り出す。例えば、クライアントデバイスは、ネットワーク(例えば、ネットワーク104)を介してサーバから複合現実世界3-Dマップの一部を取り出す。取り出された3-Dマップは、実世界のオブジェクトを3-Dマップの空間座標にマップするポイントクラウドデータを含む。次いで、クライアントデバイスは、ロケーションデータを使用して、3-Dマップ内の当該クライアントデバイスの空間的な位置を決定する。追加の実施形態では、クライアントデバイスは、画像データを利用して、3-Dマップ内の当該クライアントデバイスの空間的な位置を決定することを支援する。
【0038】
クライアントデバイスは、環境の3Dマップ内における当該クライアントデバイスまでのマッピングポイントの距離を決定する430。クライアントデバイスは、3-Dマップ内のマッピングポイントと、当該マッピングポイントの対応する座標を識別する。たとえば、クライアントデバイスは、3-Dマップ内のオブジェクト、たとえば、木、標識、ベンチ、噴水などを識別する。次いで、クライアントデバイスは、識別されたマッピングポイントの座標とクライアントデバイスのロケーションを使用して、クライアントデバイスとマッピングポイントとの間の距離を決定する。
【0039】
クライアントデバイスは、マッピングポイントに、マッピングポイントからクライアントデバイスまでの距離に基づくサイズの仮想オブジェクトを生成する440。仮想オブジェクトは、クライアントデバイスに格納されている実行可能アプリケーションのアプリケーションプログラミングインターフェイスによって生成され得る。仮想オブジェクトは、3-Dマップのマッピングポイントに配置するために、外部サーバによって送信されてもよい。一部の実施形態では、仮想オブジェクトは、クライアントデバイスの他のセンサによって収集された他の感覚データに基づいて、クライアントデバイスによって選択され得る。仮想オブジェクトは、クライアントデバイスからマッピングポイントまでの距離に基づいてサイズが変化し得る。
【0040】
クライアントデバイスは、仮想オブジェクトで画像データを拡張する450。画像データ内の仮想オブジェクトのサイズは、マッピングポイントまでのクライアントデバイスの決定された距離に依存する。画像データ内の仮想オブジェクトの外観もまた、クライアントデバイスによって収集された他の感覚データに基づいて変化し得る。いくつかの実施形態では、クライアントデバイスは、仮想オブジェクトに対応するクライアントデバイスにより入力が受信されたたとき(例えば、仮想オブジェクトと対話するユーザ入力)、または感覚データが変化したとき(例えば,クライアントデバイスの動きが時間の間に回転的にまたは並進的に変化する)、仮想オブジェクトで画像データを定期的に更新する。
【0041】
クライアントデバイスは、仮想オブジェクトとともに拡張された画像データを表示する460。クライアントデバイスは、1つ以上のディスプレイに仮想オブジェクトを表示してもよい。クライアントデバイスが拡張された画像データを継続的に更新する実施形態では、クライアントデバイスは、画像データの拡張に対する更新を反映するために表示も更新する。
【0042】
当業者は、記載された概念から逸脱することなく、本明細書に開示された装置および技術の多数の使用および変更並びに逸脱を行うことができる。例えば、本開示で図示または説明されるコンポーネントまたは特徴は、図示または説明されるロケーション、設定、またはコンテキストに限定されない。本開示による装置の例は、先行する図の1つ以上を参照して説明したコンポーネント、のすべて、よりも少ないコンポーネント、または、と異なるコンポーネントを含むことができる。したがって、本開示は、本明細書で説明される特定の実装に限定されず、むしろ、添付の特許請求の範囲およびその均等物と一致する可能な限り広い範囲とされる。