(57)【要約】  位置推定およびマップ作成の同時実行(SLAM)マップからワイドエリア位置推定を実行するための例示的な方法、装置、およびシステムが開示している。モバイルデバイスは、1つまたは複数の受信した画像を用いて、ローカル環境の第1のキーフレームベースのSLAMマップを選択することができる。ローカル環境内でモバイルデバイスのそれぞれの位置推定を決定することが可能であり、それぞれの位置推定は、キーフレームベースのSLAMマップに基づき得る。モバイルデバイスは、第1のキーフレームをサーバに送信して、モバイルデバイスにおけるローカルマップへの訂正を表す第1のグローバル位置推定応答を受信することができる。第1のグローバル位置推定応答は、回転、並進、および縮尺情報を含み得る。サーバは、モバイルデバイスからキーフレームを受信し、モバイルデバイスから受信したキーフレームの特徴をサーバマップの特徴と照合することによって、サーバマップ内でキーフレームを位置推定することができる。
2016528476.tif 000002
【特許請求の範囲】
【請求項１】
モバイルデバイスにおいてワイドエリア位置推定を実行する方法であって、
前記モバイルデバイスのローカル環境の1つまたは複数の画像を受信するステップと、
前記1つまたは複数の画像を用いて、前記ローカル環境のキーフレームベースの位置推定およびマップ作成の同時実行(SLAM)マップを初期化するステップであって、前記画像の1つから第1のキーフレームを選択するステップを含む、ステップと、
前記ローカル環境内で前記モバイルデバイスのそれぞれの位置推定を決定するステップであって、前記それぞれの位置推定は前記キーフレームベースのSLAMマップに基づく、ステップと、
前記第1のキーフレームをサーバに送信するステップと、
第1のグローバル位置推定応答を前記サーバから受信するステップと
を含む、方法。
【請求項２】
相対的な6自由度のモバイルデバイス運動検出を提供するために、前記キーフレームベースのSLAMマップを参照するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記第1のグローバル位置推定応答は、前記第1のキーフレームの特徴点および関連する記述子をサーバマップの特徴点および関連する記述子と照合することに基づいて決定され、前記第1のグローバル位置推定応答は、前記モバイルデバイスにおけるローカルマップへの訂正を提供し、回転、並進、および縮尺情報の1つまたは複数を含む、請求項1に記載の方法。
【請求項４】
前記サーバに送信された前記第1のキーフレームは、サーバマップを拡張する1つまたは複数の新たなオブジェクトまたはシーンを含む、請求項1に記載の方法。
【請求項５】
前記ローカル環境の前記SLAMの結果として第2のキーフレームを生成するステップと、
増分アップデートとして、前記第2のキーフレームを前記サーバに送信するステップと、
前記サーバが前記増分アップデートを受信することに応じて、第2のグローバル位置推定応答を前記サーバから受信するステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
前記キーフレームベースのSLAMマップを初期化するときに、前記モバイルデバイスにおいて、前記ローカル環境の拡張現実表現を表示するステップと、
前記モバイルデバイスの動きをトラッキングしながら、前記環境の前記拡張現実表現を更新するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
前記第1のキーフレームは、カメラ画像をキャプチャしたときの前記カメラ画像、カメラ位置、およびカメラの向きを含む、請求項1に記載の方法。
【請求項８】
モバイルデバイスにおいてプロセッサによって実行されることに応じて、
前記モバイルデバイスのローカル環境の1つまたは複数の画像を受信するステップと、
前記1つまたは複数の画像を用いて、前記ローカル環境のキーフレームベースの位置推定およびマップ作成の同時実行(SLAM)マップを初期化するステップであって、前記画像の1つから第1のキーフレームを選択するステップを含む、ステップと、
前記ローカル環境内で前記モバイルデバイスのそれぞれの位置推定を決定するステップであって、前記それぞれの位置推定は前記キーフレームベースのSLAMマップに基づく、ステップと、
前記第1のキーフレームをサーバに送信するステップと、
第1のグローバル位置推定応答を前記サーバから受信するステップと
を含む方法を実行する命令が記憶されている非一時的記憶媒体。
【請求項９】
前記方法が、相対的な6自由度のモバイルデバイス運動検出を提供するために、前記キーフレームベースのSLAMマップを参照するステップをさらに含む、請求項8に記載の媒体。
【請求項１０】
前記第1のグローバル位置推定応答は、前記第1のキーフレームの特徴点および関連する記述子をサーバマップの特徴点および関連する記述子と照合することに基づいて決定され、前記第1のグローバル位置推定応答は、前記モバイルデバイスにおけるローカルマップへの訂正を提供し、回転、並進、および縮尺情報の1つまたは複数を含む、請求項8に記載の媒体。
【請求項１１】
前記サーバに送信された前記第1のキーフレームは、サーバマップを拡張する1つまたは複数の新たなオブジェクトまたはシーンを含む、請求項8に記載の媒体。
【請求項１２】
前記方法が、
前記ローカル環境の前記1つまたは複数の画像から第2のキーフレームを選択するステップと、
増分アップデートとして、前記第2のキーフレームを前記サーバに送信するステップと、
前記サーバが前記増分アップデートを受信することに応じて、第2のグローバル位置推定応答を前記サーバから受信するステップと
をさらに含む、請求項8に記載の媒体。
【請求項１３】
前記方法が、
前記キーフレームベースのSLAMマップを初期化するときに、前記モバイルデバイスにおいて、前記ローカル環境の拡張現実表現を表示するステップと、
前記モバイルデバイスの動きをトラッキングしながら、前記環境の前記拡張現実表現を更新するステップと
をさらに含む、請求項8に記載の媒体。
【請求項１４】
前記第1のキーフレームは、カメラ画像をキャプチャしたときの前記カメラ画像、カメラ位置、およびカメラの向きを含む、請求項8に記載の媒体。
【請求項１５】
ワイドエリア位置推定を実行するためのモバイルデバイスであって、
前記モバイルデバイスのローカル環境の1つまたは複数の画像を受信するための手段と、
前記1つまたは複数の画像を用いて、前記ローカル環境のキーフレームベースの位置推定およびマップ作成の同時実行(SLAM)マップを初期化するための手段であって、前記初期化は前記画像の1つから第1のキーフレームを選択することを含む、手段と、
前記ローカル環境内で前記モバイルデバイスのそれぞれの位置推定を決定するための手段であって、前記それぞれの位置推定は前記キーフレームベースのSLAMマップに基づく、手段と、
前記第1のキーフレームをサーバに送信するための手段と、
第1のグローバル位置推定応答を前記サーバから受信するための手段と
を備える、モバイルデバイス。
【請求項１６】
相対的な6自由度のモバイルデバイス運動検出を提供するために、前記キーフレームベースのSLAMマップを参照するための手段をさらに備える、請求項15に記載のモバイルデバイス。
【請求項１７】
前記第1のグローバル位置推定応答は、前記第1のキーフレームの特徴点および関連する記述子をサーバマップの特徴点および関連する記述子と照合するための手段に基づいて決定され、前記第1のグローバル位置推定応答は、前記モバイルデバイスにおけるローカルマップへの訂正を提供し、回転、並進、および縮尺情報の1つまたは複数を含む、請求項15に記載のモバイルデバイス。
【請求項１８】
前記サーバに送信された前記第1のキーフレームは、サーバマップを拡張する1つまたは複数の新たなオブジェクトまたはシーンを含む、請求項15に記載のモバイルデバイス。
【請求項１９】
前記ローカル環境の前記1つまたは複数の画像から第2のキーフレームを選択するための手段と、
増分アップデートとして、前記第2のキーフレームを前記サーバに送信するための手段と、
前記サーバが前記増分アップデートを受信することに応じて、第2のグローバル位置推定応答を前記サーバから受信するための手段と
をさらに備える、請求項15に記載のモバイルデバイス。
【請求項２０】
前記キーフレームベースのSLAMマップを初期化するときに、前記モバイルデバイスにおいて、前記ローカル環境の拡張現実表現を表示するための手段と、
前記モバイルデバイスの動きをトラッキングしながら、前記環境の前記拡張現実表現を更新するための手段と
をさらに備える、請求項15に記載のモバイルデバイス。
【請求項２１】
前記第1のキーフレームは、カメラ画像をキャプチャしたときの前記カメラ画像、カメラ位置、およびカメラの向きを含む、請求項15に記載のモバイルデバイス。
【請求項２２】
モバイルデバイスであって、
プロセッサと、
前記プロセッサに接続された記憶デバイスであって、前記プロセッサによって実行されると、前記プロセッサに、
前記モバイルデバイスに接続された画像キャプチャデバイスにおいて、前記モバイルデバイスのローカル環境の1つまたは複数の画像を受信させ、
前記1つまたは複数の画像を用いた、前記ローカル環境のキーフレームベースの位置推定およびマップ作成の同時実行(SLAM)マップの初期化であって、前記画像の1つから第1のキーフレームを選択することを含む初期化を実行させ、
前記ローカル環境内における前記モバイルデバイスそれぞれの位置推定の決定であって、前記それぞれの位置推定が前記キーフレームベースのSLAMマップに基づく、決定を実行させ、
前記第1のキーフレームをサーバに送信させ、
第1のグローバル位置推定応答を前記サーバから受信させる命令を記憶するように構成可能な記憶デバイスと
を備える、モバイルデバイス。
【請求項２３】
相対的な6自由度のモバイルデバイス運動検出を提供するために、前記キーフレームベースのSLAMマップを参照させる命令をさらに含む、請求項22に記載のモバイルデバイス。
【請求項２４】
前記第1のグローバル位置推定応答は、前記第1のキーフレームの特徴点および関連する記述子をサーバマップの特徴点および関連する記述子と照合することに基づいて決定され、前記第1のグローバル位置推定応答は、前記モバイルデバイスにおけるローカルマップへの訂正を提供し、回転、並進、および縮尺情報の1つまたは複数を含む、請求項22に記載のモバイルデバイス。
【請求項２５】
前記サーバに送信された前記第1のキーフレームは、サーバマップを拡張する1つまたは複数の新たなオブジェクトまたはシーンを含む、請求項22に記載のモバイルデバイス。
【請求項２６】
前記プロセッサに、
前記ローカル環境の前記1つまたは複数の画像から第2のキーフレームを選択させ、
増分アップデートとして、前記第2のキーフレームを前記サーバに送信させ、
前記サーバが前記増分アップデートを受信することに応じて、第2のグローバル位置推定応答を前記サーバから受信させる命令をさらに含む、請求項22に記載のモバイルデバイス。
【請求項２７】
前記プロセッサに、
前記キーフレームベースのSLAMマップを初期化するときに、前記モバイルデバイスにおいて、前記ローカル環境の拡張現実表現を表示させ、
前記モバイルデバイスの動きをトラッキングしながら、前記環境の前記拡張現実表現を更新させる命令をさらに含む、請求項22に記載のモバイルデバイス。
【請求項２８】
前記第1のキーフレームは、カメラ画像をキャプチャしたときの前記カメラ画像、カメラ位置、およびカメラの向きを含む、請求項22に記載のモバイルデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2013年4月30日に出願され明示的に参照により本明細書に組み込まれている米国仮出願第61/817,782号の利益を主張するものである。
【０００２】
本開示は、一般に、クライアント・サーバ環境における位置推定(localization)およびマップ作成の分野に関する。
【背景技術】
【０００３】
モバイルデバイス(たとえば、スマートフォン)は、動作中に、3次元マップ環境を作成およびトラッキング(たとえば、位置推定およびマップ作成の同時実行)するのに用いられ得る。しかし、モバイルデバイスは、特に、固定的に設置されている強力なサーバシステムと比較すると、記憶装置および処理が限定され得る。したがって、環境に関して特徴を多く含む詳細なマップを正確かつ独立に決定しようとするモバイルデバイスの性能が、限定されている場合があり得る。モバイルデバイスが、マップのローカルなデータベースを有していないことがあり得るか、または、ローカルなデータベースが実際に存在する場合であっても、そのデータベースは、限定された数のマップを記憶しているか、もしくは、マップの詳細が限定されていることがあり得る。特に、大都市環境においては、大きなワイドエリアマップを記憶するのに要求されるメモリが、典型的なモバイルデバイスの容量を超えている場合があり得る。
【０００４】
大きなマップをローカルに記憶することの代案として、モバイルデバイスがサーバにおけるマップにアクセスすることがある。しかしながら、遠隔的にマップにアクセスすることに伴う問題は、サーバと通信するときに長いレイテンシが潜在的に生じることである。たとえば、サーバにクエリデータを送り、そのクエリを処理し、応答データをモバイルデバイスに戻すことは、そのようなシステムの現実世界での利用を非現実的にする関連のラグタイムを有し得る。サーバの応答を待機している間に、モバイルデバイスが、第1のサーバクエリによって表される位置から移動してしまうことがあり得る。結果的に、計算されサーバとの間で交換された環境データは、それがモバイルデバイスに到達するまでに陳腐化してしまうことがあり得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
本明細書に開示している実施形態は、ワイドエリア位置推定のための方法に関し得る。この方法は、モバイルデバイスにより、1つまたは複数の画像を用いて、ローカル環境のキーフレームベースの位置推定およびマップ作成の同時実行(SLAM)マップを初期化するステップを含み、この初期化は、画像の1つから第1のキーフレームを選択するステップを含む。この方法は、さらに、モバイルデバイスにおいて、ローカル環境内でモバイルデバイスのそれぞれの位置推定を決定するステップを含み、それぞれの位置推定は、キーフレームベースのSLAMマップに基づく。この方法は、さらに、第1のキーフレームをモバイルデバイスからサーバへ送信するステップと、モバイルデバイスにおいて第1のグローバル位置推定応答をサーバから受信するステップとを含む。
【０００６】
本明細書に開示している実施形態は、ワイドエリア位置推定のための装置に関し得るものであり、この装置は、モバイルデバイスにより、1つまたは複数の画像を用いて、ローカル環境のキーフレームベースの位置推定およびマップ作成の同時実行(SLAM)マップを初期化するための手段を含み、この初期化は、画像の1つから第1のキーフレームを選択することを含む。この装置は、さらに、モバイルデバイスにおいて、ローカル環境内でモバイルデバイスのそれぞれの位置推定を決定するための手段を含み、それぞれの位置推定は、キーフレームベースのSLAMマップに基づく。この装置は、さらに、第1のキーフレームをモバイルデバイスからサーバへ送信するための手段と、モバイルデバイスにおいて第1のグローバル位置推定応答をサーバから受信するための手段とを含む。
【０００７】
本明細書に開示している実施形態は、ワイドエリア位置推定を実行するモバイルデバイスに関し得るものであり、このデバイスは、モバイルデバイスにより、1つまたは複数の画像を用いて、ローカル環境のキーフレームベースの位置推定およびマップ作成の同時実行(SLAM)マップを初期化するハードウェアおよびソフトウェアを含み、この初期化は、画像の1つから第1のキーフレームを選択することを含む。このモバイルデバイスは、また、このモバイルデバイスにおいて、ローカル環境内でモバイルデバイスのそれぞれの位置推定を決定することが可能であり、それぞれの位置推定は、キーフレームベースのSLAMマップに基づく。このモバイルデバイスは、また、第1のキーフレームをこのモバイルデバイスからサーバへ送信することが可能であり、このモバイルデバイスにおいて第1のグローバル位置推定応答をサーバから受信することが可能である。
【０００８】
本明細書に開示している実施形態は、その上に命令が記憶されている非一時的記憶媒体に関し得るものであり、この命令は、モバイルデバイスにおけるプロセッサによって実行されることに応じて、1つまたは複数の画像を用いて、ローカル環境のキーフレームベースの位置推定およびマップ作成の同時実行(SLAM)マップを初期化し、この初期化は、画像の1つから第1のキーフレームを選択することを含む。この媒体は、さらに、モバイルデバイスにおいて、ローカル環境内でモバイルデバイスのそれぞれの位置推定を決定することを含み、それぞれの位置推定は、キーフレームベースのSLAMマップに基づく。この媒体は、さらに、第1のキーフレームをモバイルデバイスからサーバへ送信することと、モバイルデバイスにおいて第1のグローバル位置推定応答をサーバから受信することとを含む。
【０００９】
本明細書に開示している実施形態は、サーバにおけるワイドエリア位置推定のためのマシン実装される方法に関し得る。ある実施形態では、モバイルデバイスのキーフレームベースのSLAMマップからの1つまたは複数のキーフレームが、サーバにおいて受信され、その1つまたは複数のキーフレームが位置推定される。位置推定は、1つまたは複数の受信したキーフレームからのキーフレーム特徴をサーバマップの特徴と照合することを含み得る。ある実施形態では、位置推定の結果は、モバイルデバイスに提供される。
【００１０】
本明細書に開示している実施形態は、ワイドエリア位置推定を実行するためのサーバに関し得る。ある実施形態では、モバイルデバイスのキーフレームベースのSLAMマップからの1つまたは複数のキーフレームが、サーバにおいて受信され、その1つまたは複数のキーフレームが位置推定される。位置推定は、1つまたは複数の受信したキーフレームからのキーフレーム特徴をサーバマップの特徴と照合することを含み得る。ある実施形態では、位置推定の結果は、モバイルデバイスに提供される。
【００１１】
本明細書に開示している実施形態は、ワイドエリア位置推定のためのハードウェアおよびソフトウェアを備えるデバイスに関し得る。ある実施形態では、モバイルデバイスのキーフレームベースのSLAMマップからの1つまたは複数のキーフレームが、サーバにおいて受信され、その1つまたは複数のキーフレームが位置推定される。位置推定は、1つまたは複数の受信したキーフレームからのキーフレーム特徴をサーバマップの特徴と照合することを含み得る。ある実施形態では、位置推定の結果は、モバイルデバイスに提供される。
【００１２】
本明細書に開示している実施形態は、モバイルデバイスのキーフレームベースのSLAMマップから1つまたは複数のキーフレームをサーバにおいて受信するための命令がその上に記憶されている非一時的記憶媒体に関し得るものであって、この1つまたは複数のキーフレームは位置推定される。位置推定は、1つまたは複数の受信したキーフレームからのキーフレーム特徴をサーバマップの特徴と照合することを含み得る。ある実施形態では、位置推定の結果は、モバイルデバイスに提供される。
【００１３】
他の特徴および効果は、添付の図面および詳細な説明から、明らかになるであろう。
【図面の簡単な説明】
【００１４】
【図１】ある実施形態においてワイドエリア位置推定を実行するように構成されたデバイスの例示的なブロック図である。
【図２】ワイドエリア位置推定を実行するように構成された例示的なサーバのブロック図である。
【図３】ワイドエリア環境を用いた例示的なクライアント・サーバ相互作用のブロック図である。
【図４】モバイルデバイスにおいて実行されるワイドエリア位置推定の例示的な方法を図解する流れ図である。
【図５】サーバにおいて実行されるワイドエリア位置推定の例示的な方法を図解する流れ図である。
【図６】ワイドエリア位置推定を実行するサーバとクライアントとの間の通信の例示的な流れ図である。
【発明を実施するための形態】
【００１５】
「例示的」または「例」という単語は、本明細書では「例、事例、または例示の働きをすること」を意味するために使用される。「例示的」もしくは「例」として本明細書に記載される任意の態様または実施形態は、他の態様もしくは実施形態に比べて好ましいか、または有利であると必ずしも解釈されるべきではない。
【００１６】
図1は、本発明の実施形態が実現され得るシステムを図解するブロック図である。このシステムはデバイス100であり得るのであって、デバイス100は制御ユニット160を含み得る。制御ユニット160は、汎用プロセッサ161と、ワイドエリア位置推定(WAL)モジュール167と、メモリ164とを含み得る。WALモジュール167は、明瞭にするために、プロセッサ161および/またはハードウェア162とは別に図解しているが、ソフトウェア165およびファームウェア163における命令に基づいて、プロセッサ161および/もしくはハードウェア162に組み込まれる、ならびに/または、プロセッサ161および/もしくはハードウェア162において実装されることがあり得る。制御ユニット160は、後述したように、ワイドエリア位置推定を実行する方法を実装するように構成され得る。たとえば、制御ユニット160は、後述する図4に記載しているモバイルデバイス100の機能を実装するように構成され得る。
【００１７】
デバイス100は、また、プロセッサまたはモジュールのうちの少なくとも1つにさらに接続されている1つまたは複数のバス177または信号線に接続された、複数のデバイスセンサを含み得る。デバイス100は、モバイルデバイス、ワイヤレスデバイス、セルフォン、パーソナルデジタルアシスタント、ウェアラブルデバイス(たとえば、眼鏡、腕時計、ヘッドウェア、または同様の身体装着型のデバイス)、ロボット、モバイルコンピュータ、タブレット、パーソナルコンピュータ、ラップトップコンピュータ、または処理能力を有する何らかのタイプのデバイスであり得る。
【００１８】
ある実施形態では、デバイス100は、モバイル/ポータブルプラットフォームである。デバイス100は、カメラ114など、画像をキャプチャするための手段を含むことがあり得るのであって、オプションであるが、これにより位置および向き(すなわち姿勢)を判断するためにデバイス100が用いられ得るデータを提供するのに用いられ得るセンサ111を含み得る。たとえば、センサは、加速度計、ジャイロスコープ、水晶センサ、直線加速度計として用いているマイクロ電気機械システム(MEMS)センサ、電子コンパス、磁力計、または他の同様の運動感知素子を含み得る。デバイス100は、また、正面または背面向きカメラ(たとえば、カメラ114)を用いて、環境の画像をキャプチャすることがあり得る。デバイス100は、さらに、ディスプレイ112などの拡張現実画像を表示するための手段を含むユーザインターフェース150を含み得る。ユーザインターフェース150は、また、キーボード、キーパッド152、またはそれを通じてユーザが情報をデバイス100に入力することができる他の入力デバイスも含み得る。望む場合には、タッチスクリーン/センサを備えたディスプレイ112に仮想キーボードを組み込むことで、キーボードまたはキーパッド152を不要にし得る。たとえば、デバイス100がセルラ電話のようなモバイルプラットフォームであるとき、ユーザインターフェース150は、マイクロフォン154およびスピーカ156も含み得る。デバイス100は、ポータブルおよび非ポータブルな電子デバイスと典型的に関連付けられる他のコンポーネントに加えて、衛星位置システム受信機、電力デバイス(たとえば、バッテリ)など他の要素を含み得得る。
【００１９】
デバイス100は、モバイルまたはワイヤレスデバイスとして機能し得るのであって、何らかの適切なワイヤレス通信技術に基づくまたは何らかの適切なワイヤレス通信技術をそれ以外の態様でサポートするワイヤレスネットワークを通過する1つまたは複数のワイヤレス通信リンクを経由して、通信し得る。たとえば、いくつかの態様では、デバイス100は、クライアントまたはサーバであり得るのであって、ワイヤレスネットワークと関連し得る。いくつかの態様では、ネットワークは、ボディエリアネットワークまたはパーソナルエリアネットワーク(たとえば、超広帯域ネットワーク)を含み得る。いくつかの態様では、ネットワークは、ローカルエリアネットワークまたはワイドエリアネットワークを含み得る。ワイヤレスデバイスは、たとえば3G、LTE、アドバンストLTE、4G、CDMA、TDMA、OFDM、OFDMA、WiMAX、およびWi-Fiなど、様々なワイヤレス通信技術、プロトコル、または規格の1つまたは複数をサポートするまたはそれ以外の態様で用い得る。同様に、ワイヤレスデバイスは、様々な対応する変調または多重化方式の1つまたは複数をサポートするまたはそれ以外の態様で用い得る。モバイルワイヤレスデバイスは、サーバ、他のモバイルデバイス、セルフォン、他のワイアードおよびワイヤレスコンピュータ、インターネットウェブサイトなどと、ワイヤレスで通信し得る。
【００２０】
上述したように、デバイス100は、ポータブル電子デバイス(たとえば、スマートフォン、専用の拡張現実(AR)デバイス、ゲームデバイス、またはAR処理および表示能力を備えた他のデバイス)であり得る。本明細書に記載しているARシステムを実装するデバイスは、様々な環境(たとえば、ショッピングモール、道路、オフィス、家庭、またはユーザが彼らのデバイスを用い得るいずれかの場所)で用いられ得る。ユーザは、非常に様々な状況において、彼らのデバイス100の複数の特徴とのインターフェースを有する(interface with)ことが可能である。ARのコンテキストでは、ユーザは、彼らのデバイスのディスプレイを通じて、現実世界の表現を見るために、彼らのデバイスを用い得る。ユーザは、現実世界の画像/動画を受け取るために彼らのデバイスのカメラを用いることによって、彼らのAR対応デバイスと情報のやりとりをし得るのであって、デバイス上の表示された現実世界の画像/動画の上に追加的または代替的な情報を重ねる態様で、画像を処理し得る。ユーザが彼らのデバイス上でAR実装例を見るときには、現実世界のオブジェクトまたはシーンが、デバイスのディスプレイ上において、リアルタイムで、置き換えられ得るまたは変更され得る。仮想的なオブジェクト(たとえば、テキスト、画像、動画)は、デバイスのディスプレイ上に示されたシーンの表現の中に挿入され得る。
【００２１】
図2は、ワイドエリア位置推定を実行するように構成された例示的なサーバのブロック図を図解している。サーバ200(たとえば、WALサーバ)は、1つまたは複数のプロセッサ205と、ネットワークインターフェース210と、マップデータベース215と、サーバWALモジュール220と、メモリ225とを含み得る。1つまたは複数のプロセッサ205は、サーバ200の動作を制御するように構成することができる。ネットワークインターフェース210は、ネットワーク(図示せず)と通信するように構成することが可能であり、このネットワークは、他のサーバ、コンピュータ、およびデバイス(たとえば、デバイス100)と通信するように構成され得る。マップデータベース215は、異なる場所、ランドマーク、マップ、および他のユーザによって定義された情報の3Dマップを記憶するように構成され得る。他の実施形態では、他のタイプのデータ編成および記憶(たとえば、フラットファイル)が、本明細書で用いている異なる場所、ランドマーク、マップ、およびユーザによって定義された他の情報の3Dマップを管理するために、用いられ得る。サーバWALモジュール220は、マップデータベース215を用いてワイドエリア位置推定を実行する方法を実装するように構成され得る。たとえば、サーバWALモジュール220は、後述した図5に記載している機能を実装するように構成され得る。いくつかの実施形態では、別個のモジュールまたはエンジンである代わりに、サーバWALモジュール220は、ソフトウェアとして実装されるか、または、WALサーバ(たとえば、サーバ200)のメモリ225の中に組み入れられる。メモリ225は、WALサーバのためのプログラムコード、命令、およびデータを記憶するように構成され得る。
【００２２】
図3は、ワイドエリア環境を用いた、例示的なクライアント・サーバ相互作用のブロック図を図解している。本明細書において用いているように、ワイドエリアとは、1つの部屋または建物よりも大きなエリアを含むことが可能であり、都市における複数のブロック、街や市の全体、またはそれよりも大きな場合でもあり得る。ある実施形態では、WALクライアントは、ワイドエリア(たとえば、ワイドエリア300)をトラッキングしながら、SLAMを実行することができる。モバイルデバイスによって図解している異なるサブロケーションへ、第1の位置100から第2の位置100'まで移動する間、WALクライアントは、ネットワーク320を経由して、サーバ200(たとえば、WALサーバ)またはクラウドベースのシステムと通信することができる。WALクライアントは、異なる位置および視点(たとえば、第1の視点305および第2の視点310)において画像をキャプチャすることができる。より詳細に後述したように、WALクライアントは、視点の表現を(たとえば、キーフレームとして)WALサーバに送ることができる。
【００２３】
ある実施形態では、WALクライアント・サーバシステム(WALシステム)は、1つまたは複数のWALクライアント(たとえば、デバイス100)と1つまたは複数のWALサーバ(たとえば、WALサーバ200)とを含み得る。WALシステムは、完全な6自由度(6DOF)のワイドエリア位置推定を達成するためのWALクライアントのローカルな処理能力とカメラ視点とともに、WALサーバの電力および記憶容量を用いることができる。本明細書で用いている相対的位置推定とは、デバイス100またはWALクライアントについての位置および姿勢を決定することを指す。本明細書で用いているグローバル位置推定とは、ワイドエリアマップ(たとえば、WALサーバ上の3Dマップ)内での位置および姿勢を決定することを指す。
【００２４】
WALクライアントは、グローバル位置推定に関してWALサーバにクエリを行うために、単一の視点(たとえば、3Dシーンの2D射影である画像)を用いる代わりに、キーフレームベースのSLAMマップを用い得る。よって、複数の角度からキャプチャされた情報を用いるという開示の方法は、多くの同様の特徴を含むあるエリア内の位置推定の結果を提供し得る。たとえば、ある建物が、あるセンサ視点から視覚的に区別不可能であり得るし、または、壁の一部が多くの建物で同一ということがあり得る。しかし、モバイルデバイスのキーフレームの1つまたは複数を処理すると、WALサーバは、グローバル位置推定を決定するために、マップデータベースを参照し得る。モバイルデバイスによって送信された初期キーフレームは、一意的または区別可能な情報を含まないことがあり得る。しかし、WALクライアントは、SLAMマップを用いることにより、WALクライアントにおいて、相対的位置推定を提供し続けることが可能であり、WALサーバは、更新されたキーフレームを受信し続けて、増分ベースでグローバル位置推定を試み続けることが可能である。ある実施形態では、SLAMは、ある環境(たとえば、WALクライアント環境)のマップを同時に構築しながら、その環境に対するセンサの位置および向きを計算するプロセスである。上述したセンサとは、シーンからの情報をキャプチャする1つまたは複数のカメラのアレイであり得る(たとえば、カメラ114)。センサ情報は、ある視覚的情報もしくはその組合せ(たとえば、標準的な撮像デバイス)、または、直接的な深度情報(たとえば、ステレオもしくはアクティブ深度カメラ)であり得る。SLAMシステムからの出力は、何らかの形式のSLAMマップに加えて、環境に対するセンサ姿勢(位置および向き)であり得る。
【００２５】
SLAMマップ(すなわち、クライアントマップ、ローカル/それぞれの再構築、またはクライアント側の再構築)は、キーフレーム、三角形分割された特徴点、およびキーフレームと特徴点との間の関連の中の1つまたは複数を含み得る。キーフレームは、キャプチャ画像(たとえば、デバイスのカメラ114によってキャプチャ画像)と、画像を作成するのに用いたカメラパラメータ(たとえば、座標系におけるカメラの姿勢)とから構成され得る。本明細書において用いている特徴点(すなわち、特徴)とは、ある画像の興味を生じさせるまたは顕著な部分として、であるある画像から抽出された特徴は、3次元空間に沿った別の点(たとえば、X、Y、およびZ軸上の座標)を表現し、あらゆる特徴点は、関連する特徴位置を有し得る。各特徴点は、3D位置を表し得るのであって、面法線(surface normal)と1つまたは複数の記述子とに関連付けされ得る。WALサーバにおける姿勢検出は、次に、SLAMマップの1つまたは複数の態様をサーバマップと照合することを含み得る。WALサーバは、SLAMマップからの記述子とWALサーバデータベースからの記述子とを照合し、3D相互間の対応付けを形成することによって、姿勢を決定することができる。いくつかの実施形態では、SLAMマップは、少なくとも、(法線情報を含み得る)過疎点および/または稠密な表面メッシュを含む。
【００２６】
デバイス100が動き回ると、WALクライアントは、WALクライアントにおけるSLAMマップを更新するために、追加的な画像フレームを受信することができる。たとえば、追加的な特徴点とキーフレームとがキャプチャされ、デバイス100(たとえば、WALクライアント)におけるSLAMマップに組み入れられる。WALクライアントは、SLAMマップからWALサーバへ、データを増分的にアップロードすることができる。いくつかの実施形態では、WALクライアントは、キーフレームをWALサーバにアップロードする。
【００２７】
ある実施形態では、WALクライアントからSLAMマップを受信すると、WALサーバは、サーバマップまたはマップデータベースを用いて、グローバル位置推定を決定することができる。ある実施形態では、サーバマップは、環境の画像キャプチャのコレクションからの粗い3D再構築である。WALサーバは、カメラ画像から抽出された2D特徴を、サーバマップに含まれている3D特徴(すなわち、再構築)と照合することができる。照合した特徴の2D-3D対応付けから、WALサーバは、カメラ姿勢を決定することができる。
【００２８】
SLAMフレームワークを用いると、開示しているアプローチは、デバイス100からWALサーバに送信されるデータ量を減少させることができ、関連するネットワーク遅延を減少させることができ、WALサーバに送信されたデータから、カメラのライブ姿勢を計算することが可能になる。また、このアプローチにより、複数の視点からの増分的な情報が、強化された位置推定精度を生じさせることが可能になる。
【００２９】
ある実施形態では、WALクライアントは、WALサーバのサーバマップとは独立にSLAMマップを作成するために、キーフレームベースのSLAMを初期化することがあり得る。WALクライアントは、1つまたは複数の特徴点(たとえば、シーンと関連する3Sマップ点)を抽出することができ、特徴点の対応の組から、6自由度のカメラ位置および向きを推定することが可能である。ある実施形態では、WALクライアントは、情報を受信することなく、または、クラウドまたはWALサーバに通信可能な態様で接続されることなく、独立にSLAMマップを初期化することがあり得る。たとえば、WALクライアントは、予め記入されているマップ、CADモデル、シーンにおけるマーカ、またはWALサーバからの他の予め定義されている記述子を最初に読むことなく、SLAMマップを初期化し得る。
【００３０】
図4は、ある実施形態における、モバイルデバイス(たとえば、WALクライアント)において実行されるワイドエリア位置推定の方法を図解する流れ図である。ブロック405では、ある実施形態(たとえば、この実施形態は、WALクライアントまたはデバイス100のソフトウェアまたはハードウェアであり得る)が、モバイルデバイスのローカル環境の1つまたは複数の画像を受信する。たとえば、モバイルデバイスは、画像ストリームを含むカメラセンサからの動画フィードを含み得る。
【００３１】
ブロック410では、この実施形態は、1つまたは複数の画像を用いて、ローカル環境のキーフレームベースの位置推定およびマップ作成の同時実行(SLAM)マップを初期化する。この初期化は、画像のうちの1つから第1のキーフレーム(たとえば、計算されたカメラ位置を含む画像)を選択することを含み得る。
【００３２】
ブロック415では、この実施形態は、ローカル環境内のモバイルデバイスのそれぞれの位置推定(たとえば、位置および姿勢を決定するための相対的位置推定)を決定する。相対的位置推定は、WALクライアント(たとえば、モバイルデバイス)上でローカルに決定されたキーフレームベースのSLAMマップに基づくことがあり得る。
【００３３】
ブロック420では、この実施形態は、第1のキーフレームをサーバに送信する。他の実施形態では、WALクライアントが、対応するカメラ較正情報に加えて、1つまたは複数のキーフレームをサーバに送信することがあり得る。たとえば、カメラ較正情報は、関連する画像をキャプチャするのに用いた座標系におけるカメラの姿勢を含み得る。WALサーバは、(たとえば、再構築またはサーバマップ内の)WALサーバにおいて位置推定(たとえば、グローバル位置推定を決定)するために、キーフレームと較正情報とを用いることができる。
【００３４】
ブロック425では、この実施形態は、サーバから、第1のグローバル位置推定応答を受信する。グローバル位置推定応答は、第1のキーフレームの特徴点および関連する記述子をサーバマップの特徴点および関連の記述子と照合することに基づいて、決定され得る。グローバル位置推定応答は、モバイルデバイス上のローカルマップへの訂正を表し得るのであって、回転、並進、および縮尺情報を含み得る。ある実施形態では、サーバは、照合とサーバマップまたはマップデータベースを用いたグローバル位置推定の決定とのために、複数のキーフレームを同時に考慮することがあり得る。いくつかの実施形態では、キーフレームの増分アップデートに応答して、サーバが、第2のまたはさらに多くのグローバル位置推定応答をモバイルデバイスに送信することがあり得る。
【００３５】
ある実施形態では、WALクライアントは、WALサーバとともに、モバイルデバイスのキーフレームベースのSLAMフレームワークを用いる。キーフレームベースのSLAMフレームワークは、WALクライアント上でローカルに実行され得るのであり、SLAMマップに加えて、連続的で相対的な6自由度の運動検出を提供することができる。SLAMマップは、キーフレーム(たとえば、計算されたカメラ位置を備えた画像)と、三角形分割された特徴点とを含み得る。WALクライアントは、トラッキングが失われる場合には、再度の位置推定に加えて、ローカルなトラッキングのためにSLAMマップを用いることができる。たとえば、グローバル位置推定が失われている場合には、WALクライアントは、SLAMマップを用いてトラッキングを継続することができる。
【００３６】
トラッキングが失われていることは、現在のカメラ画像においてトラッキングに成功している特徴の個数によって、決定され得る。この個数が所定の閾値を下回る場合には、トラッキングが失われていると考えられる。WALクライアントは、一致しているものを見つけるために、現在の画像とWALクライアント上に記憶されているキーフレーム画像とを直接的に比較することによって、再位置推定を実行することができる。あるいは、WALクライアントは、一致しているものを見つけるために、現在の画像とWALクライアント上に記憶されている特徴とを比較することによって、再位置推定を実行することができる。画像と特徴とはWALクライアント上にローカルに記憶され得るのであるから、再位置推定は、WALサーバとのいかなる通信もなしに、実行され得る。
【００３７】
ある実施形態では、WALクライアントによって取得された新たな情報(たとえば、SLAMマップへのアップデート)を、サーバマップを更新するために、WALサーバへ送信することが可能である。ある実施形態では、デバイス100(WALクライアントとも称される)を、SLAM環境に対するデバイス100の姿勢がWALサーバによって計算可能であるようにしながら、SLAM環境を構築するように構成することが可能である。
【００３８】
ある実施形態では、WALクライアントは、1つまたは複数のキーフレームと、対応するカメラ較正情報とを、位置推定クエリ(LQ)としてWALサーバに送信する。ある実施形態では、最後のLQの後でWALサーバによって受信したデータ(たとえば、キーフレーム)を、現在のLQから削除することがあり得る。WALサーバによって前に受信したLQは、記憶およびキャッシュすることが可能である。このデータ連続性により、WALサーバが、それまでに送信されたすべてのキーフレームをWALサーバに再送信することを必要とすることなく、WALクライアントからのすべてのマップ点をサーチすることが可能になる。他の実施形態では、WALクライアントは、各LQとともに、SLAMマップ全体または複数のキーフレームを送信することがあり得るが、これは、WALサーバ上では一時的な記憶は要求されないということを意味し得る。
【００３９】
WALサーバとWALクライアントとがSLAM環境を増分的に更新する能力を有することにより、街の大きなブロックなどの増分的なワイドエリア位置推定が、その街ブロック全体を単一の限定されたカメラビューでキャプチャされ得なくても、可能になる。さらに、SLAM環境のキーフレームをWALサーバにLQとして送信することにより、WALクライアントがグローバル位置推定を決定する能力を向上させることができるが、その理由は、WALサーバが、受信した第1のLQとともに始まるようにSLAMマップの部分を処理できるからである。
【００４０】
デバイス100を位置推定するためにSLAMフレームワークを用いるのに加えて、WALクライアントは、いつLQがWALサーバ200に送信されるのかを決定し得る。LQの中でキーフレームを送信するときには、転送最適化が行われ得る。たとえば、SLAM環境の複数の部分を、WALサーバ200へ、増分的に送信することがあり得る。いくつかの実施形態では、新たなキーフレームがWALクライアント上のSLAMマップに追加されるにつれて、バックグラウンドでのプロセスが、1つまたは複数のキーフレームをWALサーバにストリーミングすることが可能である。WALサーバは、1つまたは複数のWALクライアントから入ってくる複数のキーフレームを管理するセッション処理能力を有するように構成され得る。WALサーバは、また、サーバマップを用いてインタラクティブ最近点(ICP)マッチングを実行するように構成することも可能である。WALサーバは、以前の結果(たとえば、記述子の照合からの)をキャッシュすることによって、新たなまたは最近受信したキーフレームをICPマッチングの中に組み入れることがあり得る。
【００４１】
WALサーバは、WALクライアントにSLAMマップ全体を再度処理させることなく、ICPマッチングを実行することが可能である。このアプローチは、増分キーフレーム処理(本明細書では、増分アップデートとしても説明している)をサポートすることができる。増分キーフレーム処理は、同じサイズのまったく新たなマップ内での位置推定と比較すると、位置推定(たとえば、それぞれの位置推定)の効率を向上させることが可能である。効率向上は、拡張現実アプリケーションのために位置推定を実行するときに、特に有益であり得る。このアプローチを用いると、WALクライアントが、データがWALサーバに送信される明確な判断時点を有するのではなく、SLAMマップのサイズを拡張するにつれて、新たな情報のストリームが利用可能になる。結果として、開示しているアプリケーションは、新たな情報が送信され得る際にWALサーバに送られる情報量を最適化する。
【００４２】
図5は、ある実施形態で、WALサーバにおいてワイドエリア位置推定を実行するための方法を図解する流れ図である。ブロック505では、実施形態(たとえば、この実施形態はWALサーバのソフトウェアまたはハードウェアであり得る)が、WALクライアントからキーフレームを受信する。ある実施形態では、WALサーバは、また、各キーフレームのための対応するカメラ較正を受信することもできる。
【００４３】
ブロック510では、この実施形態は、サーバマップ内で、1つまたは複数のキーフレームを位置推定することができる。WALサーバによって受信したキーフレームは、SLAMマップの同じローカルな座標系に登録することが可能である。WALサーバは、1つまたは複数のWALクライアントから受信した複数のキーフレームを、同時に処理する(すなわち、他のキーフレームまたはサーバマップと照合する)ことができる。たとえば、WALサーバは、第1のクライアントからの第1のキーフレームを、第2のクライアントからの第2のキーフレームと同時に処理し得る。WALサーバは、また、同じクライアントからの2つのキーフレームを同時に処理することもあり得る。WALサーバは、複数のキーフレームにおいて観察される特徴点を、エピポーラ拘束(epipolar constraints)によって、リンクさせることができる。ある実施形態では、WALサーバは、すべてのキーフレームからのすべての特徴点を、サーバマップまたはマップデータベース内の特徴点と照合することができる。複数のキーフレームを照合することは、単一のキーフレームをサーバマップと照合するよりも、はるかに多くの一致候補をもたらす可能性があり得る。たとえば、各キーフレームに対して、WALサーバは、3点の姿勢を計算することができる。3点姿勢は、キーフレーム画像における特徴をマップデータベースと照合し、一貫性のある姿勢推定に対応する3つまたはそれより多くの2Dと3Dとが一致しているものを見いだすことによって、決定することが可能である。
【００４４】
ブロック515では、この実施形態は、位置推定の結果をWALクライアントに提供することができる。WALクライアントは、SLAMマップのための縮尺推定を提供するために、WALクライアント上での較正とともに、位置推定の結果を用いることができる。少なくとも環境に対するSLAMマップのための向き推定(たとえば、カメラの向き)を決定するには、単一のキーフレームで十分であり得るが、向き推定は、センサ(たとえば、加速度計またはコンパス)の測定値によっても提供され得る。マップの縮尺を決定するために、WALサーバは、2つのキーフレームを、または、1つのキーフレームとサーバマップにおいて正しく照合できた(すなわち、再構築)単一の3D点(すなわち、特徴点)とを登録することができる。登録を確認するために、WALサーバは、SLAMマップからの相対カメラ姿勢を、キーフレーム登録プロセスからの相対カメラ姿勢と比較することが可能である。
【００４５】
別の実施形態では、WALクライアントは、3D点のマップ(たとえば、SLAMマップ)をWALサーバに提供する。WALサーバは、SLAMマップとサーバマップとを照合し(すなわち再構築)、WALクライアントからのSLAMマップからの画像および点に基づいて、サーバマップを拡張することができる。拡張されたマップは、マップ作成されてない新たなオブジェクトまたはエリアをサーバマップに組み入れるのに有用であり得る。ある実施形態では、サーバマップの外見を、WALクライアントにおけるライブ画像フィードまたは動画からのキーフレームを用いて、更新することも可能である。
【００４６】
上述したWALクライアントおよびサーバシステムは、室内および屋外環境をトラッキングするリアルタイムで正確に登録されたカメラ姿勢を提供する。WALクライアントにおけるSLAMマップの独立性により、任意の位置推定レイテンシ周期の間における連続的な6自由度のトラッキングが可能になる。SLAMシステムはWALクライアント(たとえば、デバイス100)において自己充足的であるから、グローバル位置推定のコストは、SLAMマップが拡張されるときに生じ得るだけであり、SLAMマップ内でのトラッキングは、グローバルな特徴参照を実行することなく可能である。
【００４７】
ある実施形態では、WALサーバは、キーフレーム、特徴点、3D位置情報を備えた記述子、および潜在的な面法線から構成されたサーバマップおよび/またはマップデータベース215を維持する。WALサーバのキーフレーム、特徴点、および記述子は、WALクライアントにおいて決定されるキーフレーム、特徴点、および記述子と類似することがあり得る。しかし、WALサーバ上のキーフレーム、特徴点、および記述子は、オフラインプロセスにおいて事前に生成された3Dマップの部分と対応し得る。
【００４８】
SLAMマップとサーバマップとの照合態様は、未知のスケールファクタを備えたインタラクティブ最近点(ICP)アルゴリズムを用いて、達成することが可能である。WALサーバは、複数の記述子の間の最も近接するサーチが迅速に計算され得るマッチングのために、効率的なデータ構造を用いることができる。これらのデータ構造は、(K平均法、kDツリー、バイナリツリーなどの)ツリー、ハッシュテーブル、または最近接分類子という形式を取り得る。
【００４９】
ある実施形態では、WALサーバは、WALクライアントから受信した記述子とマップデータベースまたはサーバマップにおける記述子とを比較することができる。WALサーバがWALサーバとWALクライアントとの記述子が同じタイプであると判断するときには、WALサーバは、WALクライアントによって送信されたキーフレームとWALサーバ上のキーフレームとを、WALサーバのマップデータベースにおける記述子に最も近接するWALクライアント記述子を見つけることによって、照合する。WALサーバおよびWALクライアント上の記述子は、オブジェクトまたはシーンの一部の外見を表すベクトルであり得る。考えられる記述子は、これらに限定されることはないが、スケール不変特徴変換(SIFT)とスピードアップロバスト特徴(SURF)とを含み得る。WALサーバは、また、最も近接するものを決定するのに役立てるために、SLAMマップと関連するコンパス情報などの、クライアントセンサから事前に受け取っている追加的情報を用いることもできる。
【００５０】
ある実施形態では、WALサーバは、SLAMマップとサーバマップの特徴点との間で可能なミスアライメントに起因する外れ値除外(outlier rejection)を提供するために、ICPマッチングおよびグローバルな最小化を実行することができる。ある実施形態では、ICPの前に、WALサーバは、特徴点を備えたSLAMマップおよびサーバマップの表面の稠密なサンプリングを実行することができる。WALサーバは、サーバマップとSLAMマップとの両方からより稠密な表面点クラウドを作成するために、パッチベースのマルチビューステレオアルゴリズムを用いることができる。WALサーバは、また、ICPマッチングのために、稠密点クラウドを用いることがあり得る別の実施形態では、WALサーバは、SLAMマップとサーバマップとの点群を照合して、共通の点を直接に推定する。
【００５１】
WALサーバ上のマップデータベースの記述子は、WALクライアントによって計算された記述子とは異なり得る(たとえば、処理の複雑さがより大きいなど)か、あるいは、代替的な記述子が利用不可能であり得る。たとえば、WALクライアントは、プロセッサのオーバヘッドが低い記述子を作成することがあり得るが、他方で、より大きな処理能力を有するWALサーバは、比較的プロセッサ集約的な記述子を備えたサーバマップまたはマップデータベースを有し得る。いくつかの実施形態では、WALサーバは、WALクライアントから受信したキーフレームから、新たなまたは異なる記述子を計算することができる。WALサーバは、WALクライアントから受信した1つまたは複数のキーフレームから、3D特徴を計算することができる。特徴点の計算は、WALクライアントから新たなキーフレームを受信しながら、動作中に、実行され得る。WALサーバは、WALクライアントからSLAMマップの一部として受信した特徴点の代わりに、拡張された特徴点を用いることができる。
【００５２】
特徴点は、特徴点を位置推定してそれらの記述子を生成するSIFTなどの広く知られた技術を用いて、抽出され得る。あるいは、SURF、勾配位置方向ヒストグラム(GLOH)、またはそれらに匹敵する技術などの他の技術も、用いられ得る。
【００５３】
ある実施形態では、マップデータベース(たとえば、1つまたは複数のサーバマップに追加され得る、または、1つまたは複数のサーバマップを含み得るマップデータベース215)が、空間的に編成され得る。たとえば、WALクライアントの向きは、組み込まれたデバイスセンサを用いて、決定され得る。キーフレームをマップデータベース内で照合するときには、WALサーバは、WALクライアントの向きの近傍でキーフレームをサーチすることに、当初は、焦点を合わせることができる。別の実施形態では、WALサーバのキーフレームマッチングは、モバイルデバイスによってキャプチャされたオブジェクトに対するマップ点の照合に焦点を合わせることができ、マップデータベースの以後のサーチを助けるために、当初のサーチ結果を利用することができる。WALサーバのマップデータベースとのキーフレームマッチングは、GPS、A-GPS、またはスカイフックスタイルのWiFi位置から取得されたおおよその位置情報を用い得る。上述した様々な方法は、マップデータベースにおいてキーフレームを照合する効率を向上させるために、適用することが可能である。
【００５４】
ある実施形態では、WALクライアントがSLAMマップを初期化していない場合には、WALクライアントは、不十分な並進が生じたことを検出するために、回転トラッカまたはジャイロスコープを用いることができる。不十分な並進が存在し、SLAMマップが初期化されなかった場合には、WALクライアントは、代わりに、WALサーバに、単一のキーフレームまたはパノラマ画像を提供することができる。単一のキーフレームまたはパノラマ画像を用いると、WALサーバは、WALクライアントがローカルなSLAMマップを初期化することを試みている間に、グローバル位置推定に関する動作を継続することができる。たとえば、WALサーバは、マップデータベースと単一のキーフレームとの間でICPマッチングを実行することができる。
【００５５】
ある実施形態では、第1のSLAMマップの再位置推定に失敗したときには、WALクライアントは、第2のSLAMマップの構築を開始することができる。WALサーバは、位置推定の結果をWALクライアントに提供するために、第2のSLAMマップからの情報を用いることができる。WALクライアントは、第1のSLAMマップをメモリにセーブすることができ、十分な重複が存在する場合には、第1および第2のSLAMマップを後で合併し得る。WALサーバは、特徴ごとを基礎にして、重複を求めるサーチをバイパスすることが可能であるが、その理由は、重複は、第1のSLAMマップから第2のSLAMマップへ特徴を再度射影することの直接的な結果であるからである。
【００５６】
ある実施形態では、SLAMマップからの情報は、サーバマップを更新するのに用いることができる。特に、WALサーバは、現在のサーバマップから抜けていたWALクライアントのキーフレームからの新たな特徴(記述子を伴う画像における2D点)および点(2Dの特徴にリンクされているシーンにおける3Dの点)を、追加することができる。特徴を追加することにより、サーバマップを改善することが可能であり、WALサーバが、時間的変動に対してよりよく補償することを可能にする。たとえば、WALクライアントは、木々が葉を落とす冬の間にキャプチャされたキーフレームを用いて、SLAMマップの位置推定を試みることできる。WALサーバは、サーバマップに組み込まれた木々が葉を有していないキーフレームを受信することができる。WALサーバは、時節に応じて、サーバマップの複数のバリエーションを、記憶することがあり得る。
【００５７】
ある実施形態では、WALサーバは、WALクライアントに送信された位置推定応答(LR)を用いて、LQに応答することができる。LRは、WALクライアントによって送信されたLQとの位置推定照合は不可能であることを示すステータスメッセージであってもよい。
【００５８】
ある実施形態では、WALサーバは、回転、並進、および縮尺情報を含んでおりグローバルな座標系とのアライメントのためのSLAMマップへの訂正を表すLRを用いて、応答することができる。LRを受信すると、WALクライアントは、それに従って、SLAMマップを変換することができる。WALサーバは、また、3D点および2D特徴位置を、キーフレーム画像の中で送信し得る。この3D点および2D特徴位置は、非線形精密化を用いてSLAMマップのよりよいアライメント/訂正を得るために、バンドル調節プロセスにおいて、制約条件として用いることができる。これは、SLAMマップにおけるドリフト(すなわち、時間経過に伴う位置変化)を回避するために、用いることができる。
【００５９】
WALクライアントでのそれぞれの位置推定とWALサーバで決定されたグローバル位置推定との同期をとるプロセスは、カメラのフレームレートと比較すると、比較的低速であり得るのであって、LRが受信され得るまでに数十ものフレームを要することがあり得る。しかし、WALサーバがLQを処理する間に、WALクライアントが、SLAMマップの原点に対するSLAMを用いて、視覚的な姿勢トラッキングを実行することがあり得る。したがって、SLAMマップの原点に対する変換をLQが計算することにより、LRが計算された後で、オブジェクトとカメラとの間の相対的な変換を、カメラからSLAMマップの原点への変換と、SLAMマップの原点からLQキーフレーム姿勢への変換とを連結させることによって、計算することができる。
【００６０】
ある実施形態では、WALクライアントは、WALサーバがグローバルな訂正(すなわち、グローバル位置推定)を計算する間、ローカルマップの更新を継続することが可能であり、よって、グローバルな訂正は、再びWALクライアントに到着する時点までには陳腐化している可能性があり得る。この場合、WALサーバによって提供された変換は、WALクライアントのバンドル調整プロセスが解を最適なグローバルな訂正に逐次的に移動させるように、正確に近似することが可能である。
【００６１】
図6は、ワイドエリア位置推定を実行する間の、WALサーバ(たとえば、サーバ200)とWALクライアント(たとえば、デバイス100)との間の通信の例示的な流れ図を図解している。t0612からt1622、t1622からt2632、t2632からt3642、t3642からt4652、t4652からt5662、およびt5662からt6672というサンプル時間周期が、図6に図解している。
【００６２】
t0612からt1622という第1の時間ウィンドウの間には、WALクライアントが、ブロック605においてSLAMを初期化することができる。SLAM初期化は、より詳細に上述したSLAM初期化と一貫し得る。初期化の際に、WALクライアントは、キャプチャ画像(たとえば、一体型カメラ114からの画像)から抽出された情報を用いて、SLAMマップを更新するために、ブロック610に移動することができる。WALクライアントは、ブロック620、635、650、および665におけるWALサーバの動作とは独立に、画像のキャプチャとローカルなSLAMマップ(たとえば、ブロック625、640、655、および670)の更新とを、時間t6672まで継続することができる。
【００６３】
次の時間ウィンドウであるt1622からt2632の間には、WALクライアントは、第1のLQ615を、WALサーバに送信することができる。LQは、SLAMマップを更新する間に生成されたキーフレームを含み得る。WALサーバは、ブロック620においてLQを受信すると、1つまたは複数のキーフレームを含む第1のLQを処理することができる。
【００６４】
次の時間ウィンドウであるt2632からt3642の間には、WALクライアントは、ブロック625において、SLAMマップの更新を継続することができる。WALクライアントは、キーフレームが第1のLQ615の中で送信された後で生成された1つまたは複数のキーフレームを含み得る第2の異なるLQ630を、WALサーバに送信することができる。WALサーバは、ブロック635においてLQを受信すると、1つまたは複数のキーフレームを含む第1のLQを処理することができる。WALサーバは、第2のLQの処理と同時に、第1のLQ615に関して一致しているものを決定し得る。
【００６５】
次の時間ウィンドウであるt3642からt4652の間には、WALクライアントは、ブロック640において、SLAMマップの更新を継続することができる。WALサーバは、第1のLQのサーバマップまたはマップデータベースとの一致しているものまたは一致していないものを決定すると、第1の位置推定応答645を、WALクライアントに送信することができる。WALサーバは、第1のLR645を送信する間に、第2のLQに関して一致しているものを決定するために、第2のLQ650の処理と照合とを同時に行うことができる。
【００６６】
次の時間ウィンドウであるt5652からt6662の間に、WALクライアントは、ブロック655において、WALサーバからの第1のLRの処理を行い、SLAMマップの更新を継続することができる。WALサーバは、第2のLQのサーバマップまたはマップデータベースとの一致しているものまたは一致していないものを決定すると、第2の位置推定応答660を、WALクライアントに送信することができる。WALサーバは、また、WALクライアントから受信したLQから抽出された更新されたマップ情報を含むように、サーバマップおよび/またはマップデータベースを更新することができる。
【００６７】
次の時間ウィンドウであるt5662からt6672の間に、WALクライアントは、ブロック670において、WALサーバからの第2のLRの処理を行い、SLAMマップの更新を継続することができる。WALサーバは、これらのLQの一致しているものまたは一致していないものを決定すると、第2の位置推定応答(図示せず)を送信することができる。WALサーバは、また、WALクライアントから受信したLQから抽出された更新されたマップ情報を含むように、サーバマップおよび/またはマップデータベースを更新することができる。
【００６８】
図6のイベントは、上述のものとは異なる順序またはシーケンスで、生じることがあり得る。たとえば、WALサーバは、更新された地図情報を有するLQが受け取られるとすぐに、サーバ地図を更新し得る。
【００６９】
デバイス100は、いくつかの実施形態では、現実世界のシーンに加えて、オーバレイまたはオブジェクトを表示する(たとえば、拡張現実表現を提供する)拡張現実(AR)システムを含み得る。ユーザは、デバイスのカメラを用いることによって、AR対応のデバイスと対話し得るのであるが、このカメラは、現実世界の画像/動画を受け取り、デバイスに表示された現実世界の画像/動画の上に追加的もしくは代替的な情報を重ね合わせるまたはオーバレイするためのものである。ユーザがAR実装例を自らのデバイス上で見るときに、WALは、リアルタイムで、現実世界のオブジェクトを代替するまたは変更することができる。WALは、(たとえば、テキスト、画像、動画、または3Dオブジェクトなどの)仮想的なオブジェクトを、デバイスのディスプレイ上に示されたシーンの表現の中に挿入することができる。たとえば、カスタマイズされた仮想的な写真が、現実世界の標識、ポスタまたはピクチャフレームの上に挿入され得る。WALは、拡張を伴う正確な位置推定を用いることにより、高度なAR体験を提供することができる。たとえば、シーンの拡張が、より正確に、現実世界表現の中に配置され得るのであるが、その理由は、WALクライアントの位置と姿勢とを、以下でより詳細に説明されるように、WALサーバの助けによって正確に決定することが可能であるからである。
【００７０】
本明細書に記載しているWALクライアントとWALサーバとの実施形態は、ソフトウェア、ファームウェア、ハードウェア、モジュールまたはエンジンとして実装され得る。ある実施形態では、本明細書で説明しているWALクライアントの特徴は、デバイス100における汎用プロセッサ161によって、(たとえば、図4に図解している機能などの)以前に望まれていた機能を達成するように、実装され得る。ある実施形態では、本明細書で説明しているWALサーバの特徴は、サーバ200における汎用プロセッサ205によって、(たとえば、図5に図解している機能などの)以前に望まれていた機能を達成するように、実装され得る。
【００７１】
本明細書で説明している方法およびモバイルデバイスは、応用例に応じて、様々な手段によって、実装が可能である。たとえば、これらの方法は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せとして、実装が可能である。ハードウェアによる実装のためには、処理ユニットは、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルな論理デバイス(PLD)、フィールドプログラマブルなゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、本明細書で説明している機能を実行するように設計された他の電子ユニット、またはそれらの組合せの内部に、実装が可能である。本明細書では、「制御論理」という用語は、ソフトウェア、ハードウェア、ファームウェア、または組合せによって実装された論理を包含する。
【００７２】
ファームウェアおよび/またはソフトウェア実装のためには、この方法は、本明細書に記載している機能を実行するモジュール(たとえば、手順、機能など)を用いて実装され得る。命令を有体物として現実化している任意のマシン可読の媒体でも、本明細書に記載している方法を実装するのに用いられ得る。たとえば、ソフトウェアコードは、メモリに記憶することが可能であり、処理ユニットによって実行され得る。メモリは、処理ユニットの内部に、または、処理ユニットの外部に、実装され得る。本明細書において用いている「メモリ」という用語は、任意のタイプの長期、短期、揮発性、不揮発性、または他の記憶装置を指しており、どのような特定のタイプの1つもしくは複数のメモリにも、または、メモリが格納される媒体のタイプにも限定されない。
【００７３】
ファームウェアおよび/またはソフトウェアとして実装される場合には、これらの機能は、コンピュータ可読媒体上の1つもしくは複数の命令またはコードとして、記憶され得る。例として、あるデータ構造を用いてエンコードされたコンピュータ可読媒体と、コンピュータプログラムを用いてエンコードされたコンピュータ可読媒体とが含まれる。コンピュータ可読媒体は、製造業者の製品という形態を取り得る。コンピュータ可読媒体は、物理的なコンピュータ記憶媒体および/またはその他の非一時的媒体を含む。記憶媒体は、コンピュータによるアクセスが可能な任意の利用可能な媒体であり得る。限定を意図していないが、例を挙げるならば、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくはそれ以外の光ディスクストレージ、磁気ディスクストレージもしくはそれ以外の磁気ストレージデバイス、または命令もしくはデータ構造の形式で所望のプログラムコードを記憶するのに用いることが可能でありコンピュータによってアクセス可能な任意のそれ以外の媒体を含み得るのであるが、本明細書で用いているdisk(ディスク)およびdisc(ディスク)とは、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピディスクおよびブルーレイディスクを含んでおり、diskは、通常、データを磁気的に再生し、他方で、discは、レーザを用いてデータを光学的に再生する。以上の組合せもまた、コンピュータ可読媒体の範囲に含まれるべきである。
【００７４】
コンピュータ可読媒体における記憶に加えて、命令および/またはデータは、通信装置に含まれる伝送媒体における信号として提供され得る。たとえば、通信装置は、命令とデータとを示す信号を有するトランシーバを含み得る。これらの命令とデータとは、特許請求の範囲にアウトラインが記載している機能を1つまたは複数のプロセッサに実装させるように、構成されている。すなわち、通信装置は、開示している機能を実行するための情報を示す信号を伴う伝送媒体を含む。第1の時点では、通信装置に含まれている伝送媒体は、開示している機能を実行するための情報の第1の部分を含み得るのであって、他方で、第2の時点では、通信装置に含まれている伝送媒体は、開示している機能を実行するための情報の第2の部分を含み得る。
【００７５】
この開示は、ワイヤレスワイドエリアネットワーク(WWAN)、ワイヤレスローカルエリアネットワーク(WLAN)、ワイヤレスパーソナルエリアネットワーク(WPAN)などの様々なワイヤレス通信ネットワークとともに、実装され得る。「ネットワーク」および「システム」という用語は、しばしば、相互交換可能に用いている。「位置」(position)および「場所」(location)という用語は、しばしば、相互交換可能に用いている。WWANは、符号分割多重アクセス(CDMA)ネットワーク、時分割多重アクセス(TDMA)ネットワーク、周波数分割多重アクセス(FDMA)ネットワーク、直交周波数分割多重アクセス(OFDMA)ネットワーク、単一搬送波周波数分割多重アクセス(SC-FDMA)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、WiMAX(IEEE 802.16)ネットワークなど、であり得る。CDMAネットワークは、cdma2000、Wideband-CDMA(W-CDMA)などの1つまたは複数の無線アクセス技術(RAT)を実施してよい。cdma2000は、IS-95、IS2000、およびIS-856規格を含む。TDMAネットワークは、モバイル通信のためのグローバルシステム(GSM(登録商標))、デジタルアドバンストモバイルフォーンシステム(D-AMPS)、またはいくつかの他のRATを実装し得る。GSM(登録商標)とW-CDMAとは、「第3世代パートナーシッププロジェクト」(3GPP)と称されるコンソーシアムからの文書において説明している。cdma2000は、「第3世代パートナーシッププロジェクト2」(3GPP2)と称されるコンソーシアムからの文書において説明している。3GPPおよび3GPP2の文書は、公的に入手可能である。WLANは、IEEE 802.11xネットワークであり得るのであって、WPANは、ブルートゥースネットワーク、IEEE 802.15x、またはいくつかの他のタイプのネットワークであり得る。また、これらの技術は、WWAN、WLANおよび/またはWPANの任意の組合せとともに、実行され得る。
【００７６】
モバイルステーションは、セルラもしくは他のワイヤレス通信デバイス、パーソナル通信システム(PCS)デバイス、パーソナルナビゲーションデバイス(PND)、パーソナル情報マネジャ(PIM)、パーソナルデジタルアシスタント(PDA)、ラップトップ、またはワイヤレス通信および/もしくはナビゲーション信号を受信することができる他の適切なモバイルデバイスなどのデバイスを指す。「モバイルステーション」という用語は、また、衛星信号受信、アシスタンスデータ受信、および/または位置に関する処理がデバイスで生じるのかまたはPHDで生じるのかとは関係なく、ショートレンジのワイヤレス、赤外線、ワイヤ線接続、または他の接続などによってパーソナルナビゲーションデバイス(PND)と通信するデバイスを含むことを意図している。また、「モバイルステーション」は、衛星信号受信、アシスタンスデータ受信、および/または位置に関する処理がデバイスで生じるのか、サーバで生じるのか、またはネットワークと関連する別のデバイスで生じるのかとは関係なく、インターネット、Wi-Fi、または他のネットワークなどを経由してサーバと通信することができるワイヤレス通信デバイス、コンピュータ、ラップトップなどを含むすべてのデバイスを含むことを意図している。以上の任意の動作可能な組合せもまた、「モバイルステーション」と見なされる。
【００７７】
何かが「最適化されている」、「要求されている」または他の指定がなされているという指定は、本開示が、最適化されているシステム、または、要求されている要素が存在しているシステム(もしくは、他の指定に起因する他の限定されたもの)にだけ適用されることを意味しない。これらの指定は、単に、特定の記載している実装例を指しているだけのことである。もちろん、多くの実装例が、可能である。本明細書で論じられているもの以外のプロトコルを用いても、本技術を用いることが可能であり、現に開発中であるか、または、開発されるべきプロトコルも含まれる。
【００７８】
当業者であれば、同一の基本的な根底にある機構および方法を依然として用いながら、開示している実施形態の多くの可能な修正例および組合せが用いられ得ることを認識するであろう。以上の記載は、説明を目的として、特定の実施形態を参照しながら、書かれたものである。しかし、以上の例証のための議論は、網羅的であること、または、本開示を開示している正確な形式に限定することを意図したものではない。以上の教示を鑑みると、多くの修正例および変更例が可能である。以上の実施形態は、本開示とその実際的な応用例との原理を説明するために選択され、記載されたものであり、さらには、当業者が、本開示と、特定の考察されている使用例に適した様々な修正を伴う様々な実施形態とを最良の態様で利用することを可能するものである。
【符号の説明】
【００７９】
100  クライアント
111  運動センサ
112  ディスプレイ
114  カメラ
140  トランシーバ
150  ユーザインターフェース
152  キーパッド
154  マイクロフォン
156  スピーカ
160  制御ユニット
161  プロセッサ
162  ハードウェア
163  ファームウェア
164  メモリ
165  ソフトウェア
167  ワイドエリア位置推定モジュール
177  バス
200  サーバ
205  プロセッサ
210  ネットワークインターフェース
215  マップデータベース
220  WALモジュール
225  メモリ
【図１】
2016528476.tif 000003
【図２】
2016528476.tif 000004
【図３】
2016528476.tif 000005
【図４】
2016528476.tif 000006
【図５】
2016528476.tif 000007
【図６】
2016528476.tif 000008
【国際調査報告】
2016528476.tif 000009
2016528476.tif 000010