(57)【要約】  検索を行うための方法、モバイルデバイス、コンピュータプログラム製品、および装置が開示される。検索を行う方法は、モバイルデバイスのビュー内の環境の1つまたは複数の画像を受信するステップと、1つまたは複数の画像を使用して、同時位置推定および環境マッピングを生成するステップであって、同時位置推定および環境マッピングが、環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、ステップと、複数のマップポイントのセットを検索クエリとしてサーバに送信するステップと、サーバからクエリ応答を受信するステップと、クエリ応答に少なくとも部分的に基づいて、環境内のオブジェクトを特定するステップとを含む。
2016515254.tif 000002
【特許請求の範囲】
【請求項１】
検索を行う方法であって、
モバイルデバイスのビュー内の環境の1つまたは複数の画像を受信するステップと、
前記1つまたは複数の画像を使用して、同時位置推定および環境マッピングを生成するステップであって、前記同時位置推定および環境マッピングが、環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、ステップと、
前記複数のマップポイントのセットを検索クエリとしてサーバに送信するステップと、
前記サーバからクエリ応答を受信するステップと、
前記クエリ応答に少なくとも部分的に基づいて、前記環境内のオブジェクトを特定するステップと
を含む方法。
【請求項２】
前記複数のマップポイントが、前記モバイルデバイスによって異なる角度からキャプチャされた前記複数の面のビューを含む、請求項1に記載の方法。
【請求項３】
前記複数のマップポイントの各マップポイントが、3次元位置、前記3次元位置の1つまたは複数の記述子、および、前記3次元位置に対応する面法線を含む、請求項2に記載の方法。
【請求項４】
前記複数のマップポイントの各マップポイントが、前記マップポイントの法線方向に直交する方向からの表現を含む、請求項2に記載の方法。
【請求項５】
第1のタイムインスタンスで、前記複数のマップポイントの前記セットを検索クエリとして前記サーバに送信するステップと、
第2のタイムインスタンスで、前記サーバからクエリ応答を受信するステップとをさらに含み、
前記モバイルデバイスが前記第1のタイムインスタンスで前記オブジェクトに対する第1の姿勢を有し、前記モバイルデバイスが前記第2のタイムインスタンスで前記オブジェクトに対する第2の姿勢を有する、請求項1に記載の方法。
【請求項６】
前記第2のタイムインスタンスで受信した前記クエリ応答に少なくとも部分的に基づいて、前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するステップをさらに含む、請求項5に記載の方法。
【請求項７】
前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するステップが、
前記クエリ応答から、前記環境の原点に対する前記オブジェクトの姿勢を取得するステップと、
前記環境の前記原点に対する前記モバイルデバイスの姿勢を追跡するステップと、
前記環境の前記原点に対する前記オブジェクトの前記姿勢および前記環境の前記原点に対する前記モバイルデバイスの前記姿勢を使用して、前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するステップとを含む、請求項6に記載の方法。
【請求項８】
前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢に応答して拡張をレンダリングするステップをさらに含む、請求項6に記載の方法。
【請求項９】
前記環境の原点に対する前記モバイルデバイスの動きを追跡するステップと、
前記環境の前記原点に対して前記モバイルデバイスが移動したか判断するステップと
をさらに含む、請求項1に記載の方法。
【請求項１０】
前記モバイルデバイスが移動したか判断するステップが、
前記モバイルデバイスが所定の角度を超えて回転したか判断するステップと、
前記モバイルデバイスが所定の距離を超えて移動したか判断するステップと
のうちの少なくとも1つを含む、請求項9に記載の方法。
【請求項１１】
前記モバイルデバイスの前記動きに応答して、前記モバイルデバイスによってキャプチャされた増分マップポイントを特定するステップと、
前記モバイルデバイスによってキャプチャされた前記増分マップポイントを用いて、前記同時位置推定および環境マッピングを更新するステップと、
前記モバイルデバイスによってキャプチャされた前記増分マップポイントを、更新された検索クエリ内で前記サーバに送信するステップと
をさらに含む、請求項9に記載の方法。
【請求項１２】
前記更新された前記同時位置推定および環境マッピングが、前記モバイルデバイスからの前記環境の視野よりも大きい前記環境のビューを含み、前記環境の前記原点が、前記モバイルデバイスの前記視野の外部にある、請求項11に記載の方法。
【請求項１３】
処理論理手段を含む制御ユニットを含み、
前記処理論理手段が、
モバイルデバイスのビュー内の環境の1つまたは複数の画像を受信するように構成される論理手段と、
前記1つまたは複数の画像を使用して、同時位置推定および環境マッピングを生成するように構成される論理手段であって、前記同時位置推定および環境マッピングが、環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、論理手段と、
前記複数のマップポイントのセットを検索クエリとしてサーバに送信するように構成される論理手段と、
前記サーバからクエリ応答を受信するように構成される論理手段と、
前記クエリ応答に少なくとも部分的に基づいて、前記環境内のオブジェクトを特定するように構成される論理手段と
を含む、モバイルデバイス。
【請求項１４】
前記複数のマップポイントが、前記モバイルデバイスによって異なる角度からキャプチャされた前記複数の面のビューを含む、請求項13に記載のモバイルデバイス。
【請求項１５】
前記複数のマップポイントの各マップポイントが、3次元位置、前記3次元位置の1つまたは複数の記述子、および、前記3次元位置に対応する面法線を含む、請求項14に記載のモバイルデバイス。
【請求項１６】
前記複数のマップポイントの各マップポイントが、前記マップポイントの法線方向に直交する方向からの表現を含む、請求項14に記載のモバイルデバイス。
【請求項１７】
第1のタイムインスタンスで、前記複数のマップポイントの前記セットを検索クエリとして前記サーバに送信するように構成される論理手段と、
第2のタイムインスタンスで、前記サーバからクエリ応答を受信するように構成される論理手段とをさらに含み、
前記モバイルデバイスが前記第1のタイムインスタンスで前記オブジェクトに対する第1の姿勢を有し、前記モバイルデバイスが前記第2のタイムインスタンスで前記オブジェクトに対する第2の姿勢を有する、請求項13に記載のモバイルデバイス。
【請求項１８】
前記第2のタイムインスタンスで受信した前記クエリ応答に少なくとも部分的に基づいて、前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するように構成される論理手段をさらに含む、請求項17に記載のモバイルデバイス。
【請求項１９】
前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するように構成される論理手段が、
前記クエリ応答から、前記環境の原点に対する前記オブジェクトの姿勢を取得するように構成される論理手段と、
前記環境の前記原点に対する前記モバイルデバイスの姿勢を追跡するように構成される論理手段と、
前記環境の前記原点に対する前記オブジェクトの前記姿勢および前記環境の前記原点に対する前記モバイルデバイスの前記姿勢を使用して、前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するように構成される論理手段とを含む、請求項18に記載のモバイルデバイス。
【請求項２０】
前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢に応答して拡張をレンダリングするように構成される論理手段をさらに含む、請求項18に記載のモバイルデバイス。
【請求項２１】
前記環境の原点に対する前記モバイルデバイスの動きを追跡するように構成される論理手段と、
前記環境の前記原点に対して前記モバイルデバイスが移動したか判断するように構成される論理手段と
をさらに含む、請求項13に記載のモバイルデバイス。
【請求項２２】
前記デバイスが移動したか判断するように構成される論理手段が、
前記モバイルデバイスが所定の角度を超えて回転したか判断するように構成される論理手段と、
前記モバイルデバイスが所定の距離を超えて移動したか判断するように構成される論理手段と
のうちの少なくとも1つを含む、請求項21に記載のモバイルデバイス。
【請求項２３】
前記モバイルデバイスの前記動きに応答して、前記モバイルデバイスによってキャプチャされた増分マップポイントを特定するように構成される論理手段と、
前記モバイルデバイスによってキャプチャされた前記増分マップポイントを用いて、前記同時位置推定および環境マッピングを更新するように構成される論理手段と、
前記モバイルデバイスによってキャプチャされた前記増分マップポイントを、更新された検索クエリ内で前記サーバに送信するように構成される論理手段と
をさらに含む、請求項21に記載のモバイルデバイス。
【請求項２４】
前記更新された前記同時位置推定および環境マッピングが、前記モバイルデバイスからの前記環境の視野よりも大きい前記環境のビューを含み、前記環境の前記原点が、前記モバイルデバイスの前記視野の外部にある、請求項23に記載のモバイルデバイス。
【請求項２５】
1つまたは複数のコンピュータシステムによって実行するための命令を記憶した非一時的記憶媒体であって、前記命令が、
モバイルデバイスのビュー内の環境の1つまたは複数の画像を受信するための命令と、
前記1つまたは複数の画像を使用して、同時位置推定および環境マッピングを生成するための命令であって、前記同時位置推定および環境マッピングが、環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、命令と、
前記複数のマップポイントのセットを検索クエリとしてサーバに送信するための命令と、
前記サーバからクエリ応答を受信するための命令と、
前記クエリ応答に少なくとも部分的に基づいて、前記環境内のオブジェクトを特定するための命令と
を含む、非一時的記憶媒体。
【請求項２６】
前記複数のマップポイントが、前記モバイルデバイスによって異なる角度からキャプチャされた前記複数の面のビューを含む、請求項25に記載の非一時的記憶媒体。
【請求項２７】
前記複数のマップポイントの各マップポイントが、3次元位置、前記3次元位置の1つまたは複数の記述子、および、前記3次元位置に対応する面法線を含む、請求項26に記載の非一時的記憶媒体。
【請求項２８】
前記複数のマップポイントの各マップポイントが、前記マップポイントの法線方向に直交する方向からの表現を含む、請求項26に記載の非一時的記憶媒体。
【請求項２９】
第1のタイムインスタンスで、前記複数のマップポイントの前記セットを検索クエリとして前記サーバに送信するための命令と、
第2のタイムインスタンスで、前記サーバからクエリ応答を受信するための命令とをさらに含み、
前記モバイルデバイスが前記第1のタイムインスタンスで前記オブジェクトに対する第1の姿勢を有し、前記モバイルデバイスが前記第2のタイムインスタンスで前記オブジェクトに対する第2の姿勢を有する、請求項25に記載の非一時的記憶媒体。
【請求項３０】
前記第2のタイムインスタンスで受信した前記クエリ応答に少なくとも部分的に基づいて、前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するための命令をさらに含む、請求項29に記載の非一時的記憶媒体。
【請求項３１】
前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するための命令が、
前記クエリ応答から、前記環境の原点に対する前記オブジェクトの姿勢を取得するための命令と、
前記環境の前記原点に対する前記モバイルデバイスの姿勢を追跡するための命令と、
前記環境の前記原点に対する前記オブジェクトの前記姿勢および前記環境の前記原点に対する前記モバイルデバイスの前記姿勢を使用して、前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するための命令とを含む、請求項30に記載の非一時的記憶媒体。
【請求項３２】
前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢に応答して拡張をレンダリングするための命令をさらに含む、請求項30に記載の非一時的記憶媒体。
【請求項３３】
前記環境の原点に対する前記モバイルデバイスの動きを追跡するための命令と、
前記環境の前記原点に対して前記モバイルデバイスが移動したか判断するための命令と
をさらに含む、請求項25に記載の非一時的記憶媒体。
【請求項３４】
前記モバイルデバイスが移動したか判断するための命令が、
前記モバイルデバイスが所定の角度を超えて回転したか判断するための命令と、
前記モバイルデバイスが所定の距離を超えて移動したか判断するための命令と
のうちの少なくとも1つを含む、請求項33に記載の非一時的記憶媒体。
【請求項３５】
前記モバイルデバイスの前記動きに応答して、前記モバイルデバイスによってキャプチャされた増分マップポイントを特定するための命令と、
前記モバイルデバイスによってキャプチャされた前記増分マップポイントを用いて、前記同時位置推定および環境マッピングを更新するための命令と、
前記モバイルデバイスによってキャプチャされた前記増分マップポイントを、更新された検索クエリ内で前記サーバに送信するための命令と
をさらに含む、請求項33に記載の非一時的記憶媒体。
【請求項３６】
前記更新された前記同時位置推定および環境マッピングが、前記モバイルデバイスからの前記環境の視野よりも大きい前記環境のビューを含み、前記環境の前記原点が、前記モバイルデバイスの前記視野の外部にある、請求項35に記載の非一時的記憶媒体。
【請求項３７】
モバイルデバイスのビュー内の環境の1つまたは複数の画像を受信するための手段と、
前記1つまたは複数の画像を使用して、同時位置推定および環境マッピングを生成するための手段であって、前記同時位置推定および環境マッピングが、環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、手段と、
前記複数のマップポイントのセットを検索クエリとしてサーバに送信するための手段と、
前記サーバからクエリ応答を受信するための手段と、
前記クエリ応答に少なくとも部分的に基づいて、前記環境内のオブジェクトを特定するための手段と
を含む、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、2013年3月15日に出願された「Client-Server Based Dynamic Search」という名称の米国特許出願第13/843,607号の、本譲受人に譲渡された利益および優先権を主張し、その内容は、参照により本明細書に明示的に組み込まれる。
【０００２】
本開示はワイヤレス通信の分野に関する。具体的には、本開示はクライアント-サーバ環境で検索を行うことに関する。
【背景技術】
【０００３】
スマートフォンなどのモバイルデバイスの急速な普及に伴って、モバイルデバイスはオブジェクトの検出および拡張現実アプリケーションを行うために使用されることがある。しかし、そのようなモバイルデバイスの限られた記憶スペースに起因して、ローカルデータベースは、それが存在する場合は、そのような視覚的検索をサポートするために限られた数のオブジェクトしか記憶できないことがあり、オブジェクト認識の精度に悪影響を及ぼす可能性がある。検索の品質を向上させるため、モバイルデバイスはキャプチャした画像をサーバに送信してオブジェクト認識を行ってもよい。
【０００４】
図1は、視覚的検索を行うための従来のアプローチを示す。図1に示されるように、モバイルデバイス102がクエリ画像104をクエリデータとしてサーバ106(クラウドとも称される)に送信する。次いで、サーバ106は、クエリ画像104から2次元(2D)特徴および関連する記述子を抽出してもよく、それらの記述子を、サーバ106内のオブジェクトデータベース(図示せず)の中の3次元(3D)位置の記述子にマッチングさせ、2Dと3Dの対応関係を見つける。このアプローチを使用してオブジェクトを特定し、クエリ画像104が撮影された時点のモバイルデバイス102に対する姿勢を導出してもよい。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の従来のアプローチの1つの問題は、サーバ106へのクエリデータの送信、クエリの処理、およびモバイルデバイス102への応答データの返送に伴う長い遅延の存在である。この時間中に、モバイルデバイス102が、クエリ画像104が撮影された場所から移動していることがある。その結果、サーバ106によって計算されたモバイルデバイス102の姿勢は最新ではなくなっていることがある。
【０００６】
図1に示される従来のアプローチの別の問題は、クエリ画像104にはモバイルデバイス102からサーバ106に送信する必要のある大量のデータが含まれることである。この問題は、モバイルデバイス102の画像解像度が、たとえば、2メガピクセルから4メガピクセルなどに増大し続けるにつれて、ますます悪化する可能性がある。このようにクエリデータの量が増大すると、クエリ画像104が送信され得る時点とサーバ106からクエリ応答が受信され得る時点との間の期間がさらに引き延ばされる可能性がある。
【０００７】
したがって、上記の従来のアプローチの問題に対処できる方法、装置、およびコンピュータプログラム製品が望まれている。
【課題を解決するための手段】
【０００８】
本開示は、検索を行うための方法、装置、およびコンピュータプログラム製品に関する。一実施形態では、検索を行う方法は、モバイルデバイスのビュー内の環境の1つまたは複数の画像を受信するステップと、1つまたは複数の画像を使用して、同時位置推定および環境マッピングを生成するステップであって、同時位置推定および環境マッピングが、環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、ステップと、複数のマップポイントのセットを検索クエリとしてサーバに送信するステップと、サーバからクエリ応答を受信するステップと、クエリ応答に少なくとも部分的に基づいて環境内のオブジェクトを特定するステップとを含む。本開示の一態様によれば、複数のマップポイントは、モバイルデバイスによって異なる角度からキャプチャされた複数の面のビューを含む。
【０００９】
本開示の複数の態様によれば、複数のマップポイントは、モバイルデバイスによって異なる角度からキャプチャされた複数の面のビューを含む。複数のマップポイントの各マップポイントは、3次元位置、3次元位置の1つまたは複数の記述子、および、3次元位置に対応する面法線を含み得る。他のアプローチでは、複数のマップポイントの各マップポイントは、マップポイントの法線方向に直交する方向からの表現を含み得る。
【００１０】
この方法は、第1のタイムインスタンスで、複数のマップポイントのセットを検索クエリとしてサーバに送信するステップと、第2のタイムインスタンスで、サーバからクエリ応答を受信するステップとをさらに含み、モバイルデバイスは第1のタイムインスタンスでオブジェクトに対する第1の姿勢を有し、かつ、第2のタイムインスタンスでオブジェクトに対する第2の姿勢を有する。この方法は、第2のタイムインスタンスで受信したクエリ応答に少なくとも部分的に基づいて、環境内でのオブジェクトに対するモバイルデバイスの第2の姿勢を決定するステップをさらに含み得る。
【００１１】
環境内でのオブジェクトに対するモバイルデバイスの第2の姿勢を決定する方法は、クエリ応答から環境の原点に対するオブジェクトの姿勢を取得するステップと、環境の原点に対するモバイルデバイスの姿勢を追跡するステップと、環境の原点に対するオブジェクトの姿勢および環境の原点に対するモバイルデバイスの姿勢を使用して、オブジェクトに対するモバイルデバイスの第2の姿勢を決定するステップとを含む。
【００１２】
この方法は、環境内でのオブジェクトに対するモバイルデバイスの第2の姿勢に応答して拡張をレンダリングするステップをさらに含む。この方法は、環境の原点に対するモバイルデバイスの動きを追跡するステップと、環境の原点に対してデバイスが移動したか判断するステップとをさらに含んでもよい。モバイルデバイスが移動したか判断する方法は、モバイルデバイスが所定の角度を超えて回転したか判断するステップと、モバイルデバイスが所定の距離を超えて移動したか判断するステップとのうちの少なくとも1つを含む。
【００１３】
この方法は、モバイルデバイスの動きに応答してモバイルデバイスがキャプチャした増分マップポイントを特定するステップと、モバイルデバイスがキャプチャした増分マップポイントを使用して同時位置推定および環境マッピングを更新するステップと、モバイルデバイスがキャプチャした増分マップポイントを、更新された検索クエリ内でサーバに送信するステップとをさらに含む。更新された同時位置推定および環境マッピングは、モバイルデバイスから見る環境の視野よりも大きい環境のビューを含むことができ、その場合、環境の原点はモバイルデバイスの視野の外部にある。
【００１４】
別の実施形態では、モバイルデバイスが処理ロジックを含む制御ユニットを含み、処理ロジックは、モバイルデバイスのビュー内の環境の1つまたは複数の画像を受信するように構成されるロジックと、1つまたは複数の画像を使用して、同時位置推定および環境マッピングを生成するように構成されるロジックであって、同時位置推定および環境マッピングが環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、ロジックと、複数のマップポイントのセットを検索クエリとしてサーバに送信するように構成されるロジックと、サーバからクエリ応答を受信するように構成されるロジックと、クエリ応答に少なくとも部分的に基づいて環境内のオブジェクトを特定するように構成されるロジックとを含む。
【００１５】
さらに別の実施形態では、コンピュータプログラム製品が1つまたは複数のコンピュータシステムによって実行するための命令を記憶した非一時的媒体を含み、この命令は、モバイルデバイスのビュー内の環境の1つまたは複数の画像を受信するための命令と、1つまたは複数の画像を使用して同時位置推定および環境マッピングを生成するための命令であって、同時位置推定および環境マッピングが環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、命令と、複数のマップポイントのセットを検索クエリとしてサーバに送信するための命令と、サーバからクエリ応答を受信するための命令と、クエリ応答に少なくとも部分的に基づいて環境内のオブジェクトを特定するための命令とを含む。
【００１６】
さらに別の実施形態では、装置が、モバイルデバイスのビュー内の環境の1つまたは複数の画像を受信するための手段と、1つまたは複数の画像を使用して、同時位置推定および環境マッピングを生成するための手段であって、同時位置推定および環境マッピングが環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、手段と、複数のマップポイントのセットを検索クエリとしてサーバに送信するための手段と、サーバからクエリ応答を受信するための手段と、クエリ応答に少なくとも部分的に基づいて環境内のオブジェクトを特定するための手段とを含む。
【００１７】
前述した本開示の特徴および利点、ならびにその追加の特徴および利点は、下記の図面と併せて本開示の実施形態の詳細な説明を読んだ後に、より明確に理解されるであろう。
【図面の簡単な説明】
【００１８】
【図１】クライアント-サーバベースの検索を行う従来の方法を示す図である。
【図２】本開示のいくつかの態様によって、クライアント-サーバベースの検索を行う方法を示す図である。
【図３】本開示のいくつかの態様によって、オブジェクトに対するモバイルデバイスの姿勢を決定する方法を示す図である。
【図４】本開示のいくつかの態様によって、クライアント-サーバベースの検索を行うように構成されるモバイルデバイスの例示的ブロック線図である。
【図５】本開示のいくつかの態様によって、クライアント-サーバベースの検索を行うためのサーバのブロック線図である。
【図６Ａ】本開示のいくつかの態様によって、クライアント-サーバベースの検索を行う例示的方法を示す図である。
【図６Ｂ】本開示のいくつかの態様によって、クライアント-サーバベースの検索を行う例示的方法を示す図である。
【発明を実施するための形態】
【００１９】
すべての図面で同様の番号が使用される。
【００２０】
クライアント-サーバベースの検索のための方法および装置の実施形態を開示する。下記の説明は、任意の当業者による本開示の利用を可能にするために提示される。特定の実施形態および応用例の説明は、単に例として提供される。本明細書に記載される例の様々な修正および組合せは、当業者には容易に明らかになるであろう。また、本明細書に定められる一般原理は、本開示の趣旨および範囲から逸脱することなく他の例および応用例に適用されてもよい。よって、本開示は記載および図示される例に限定されるようには意図されておらず、本明細書に開示される原理および特徴に一致する最も広い範囲を提供するよう意図されている。本明細書で使用されるとき、「例示的」または「例」という用語は、「例、実例、または説明の働きをする」ことを意味する。本明細書で「例示的」または「例」として記載される態様または実施形態はいずれも、他の態様または実施形態よりも好ましい、または有利であるとは必ずしも解釈されない。
【００２１】
図2は、本開示のいくつかの態様によって、クライアント-サーバベースの検索を行う方法を示す。本開示の態様によれば、同時位置推定およびトラッキング(SLAM)のフレームワークが、サーバベースの検出システムと共にモバイルデバイスによって使用されてもよい。図2に示される例示的アプローチでは、モバイルデバイス202(黒丸で示され、クライアントデバイスまたは、短縮してクライアントとも称される)は、SLAM環境203を構築するように構成され得、また、SLAM環境203に対するモバイルデバイスの姿勢がサーバ206によって計算されるようにできる。SLAM環境203は、高密度メッシュまたは高密度/低密度点のクラウドであることができ、これらは、たとえば、SLAM環境203の座標系の原点(図3に示される)に対する3D位置を有する。各マップポイントは、マップポイントの外観を記述する1つまたは複数の記述子、および/または、マップがメッシュの場合はポイントに関する3D構造情報を含んでもよい。たとえば、面204aおよび対応する面法線204b、面206aおよび対応する面法線206b、面208aおよび対応する面法線208b、面210aおよび対応する面法線210b、ならびに、面212aおよび対応する面法線212bは、SLAM環境203内の様々な例示的マップポイントを記述する。
【００２２】
マップポイントは、モバイルデバイス202によって、一連の画像フレームにわたってキャプチャされ得ることに留意されたい。たとえば、マップポイント204aおよび206aが第1の画像フレーム内にキャプチャされてもよく、マップポイント208aおよび210aが第2の画像フレーム内にキャプチャされてもよく、マップポイント212aが第3の画像フレーム内にキャプチャされてもよい。モバイルデバイス202が動き回ると、追加のマップポイントがキャプチャされてSLAM環境に追加されてもよく、次いで更新されたSLAM環境がサーバに送信されてもよい。
【００２３】
本開示の態様によれば、SLAM環境を作るマップポイントが検索クエリとして送信されてもよい。各マップポイントは、3D位置、面法線、およびマップポイントを表現する1つまたは複数の記述子を含んでもよい。よって、サーバでのオブジェクトおよび姿勢の検出は、SLAMマップからの記述子をオブジェクトデータベースからの記述子にマッチングさせて、3D-3Dの対応関係を形成することを伴ってもよい。マップポイントはSLAM環境の座標系内の3D位置を有するので、SLAM環境の原点に対するオブジェクトの姿勢を取得するために、次いで、相似変換を推定してもよい。
【００２４】
本開示の態様によれば、モバイルデバイス202の姿勢を、SLAM環境の座標系に対して追跡することができる。SLAM環境を蓄積し、マップポイントをクエリ情報としてサーバに送信することによって、クエリ応答は、検索クエリが作られた時点のモバイルデバイス202に対してではなくSLAM環境の原点に対するオブジェクト姿勢の検出結果を含んでもよい。SLAMフレームワークを使用することによって、本開示のアプローチは、モバイルデバイス202からサーバ206へ送信されるデータの量を減少させることができ、それによって、ネットワーク遅延を減少させて、クエリ応答からオブジェクトのライブ姿勢を計算することを可能にすることができる。図1に示される従来のアプローチでの単一のクエリ画像とは異なり、このアプローチでは複数の視点からの情報を検索クエリとして送信することができ、よって、オブジェクトの検出および追跡により良い結果を生じさせることができる。
【００２５】
本開示の態様によれば、SLAMは、環境に対するセンサの位置および方向を計算し、同時に環境マップを構築する処理である。前述のセンサは、場面から情報をキャプチャする、1つまたは複数のカメラの配列でもよい。この情報は、視覚情報(たとえば、標準的な撮像デバイス)または直接の奥行き情報(たとえば、受動型ステレオカメラまたは能動型デプスカメラ)のうちの1つまたは組合せでもよい。SLAMシステムからの出力は、環境に対するセンサの姿勢(位置および方向)、ならびに、少なくとも低密度の点(法線情報を含んでもよい)を含む何らかの形式のマップ、および/または高密度の面メッシュとすることができる。
【００２６】
図3は、本開示のいくつかの態様による、オブジェクトに対するモバイルデバイスの姿勢を決定する方法を示す。図3に示すように、クライアント(C)デバイスとも呼ばれるモバイルデバイス202は黒丸で表され、オブジェクト304は文字Xで表され、サーバ206は灰色の雲で表される。XCqueryは時刻t=tqueryにおけるオブジェクト304のクライアントデバイス202に対する姿勢を表し、XCliveは時刻t=tliveにおけるオブジェクト304のクライアントデバイス202に対する姿勢を表し、OXqueryは時刻t=tqueryにおけるオブジェクト304のSLAM環境の原点308(短縮して原点とも称される)に対する姿勢を表し、OCqueryはt=tqueryにおけるクライアントデバイス202の原点308に対する姿勢を表し、OCliveは時刻t=tliveにおけるクライアントデバイス202の原点308に対する姿勢を表す。
【００２７】
時刻t=tqueryで、検索クエリ(矢印303で表される)がサーバ206に送信されてもよい。検索クエリ303が処理されている間に、モバイルクライアント202は移動し続けてもよい。モバイルクライアント202のSLAMフレームワークを使用して、クライアントデバイス202のSLAM環境の原点308に対する姿勢(OC)を計算することができる。時刻t=tliveで、クライアントデバイス202は、サーバ206からクエリ応答(矢印305で表される)を受信する。返送されるクエリ応答は、CqueryおよびXCqueryの座標系に対するオブジェクトの姿勢であり得るが、これは、現在のデバイスの視点Cliveからは最新の姿勢ではないことがあることに留意されたい。図1の説明に示されるように、この差はネットワークおよび処理の遅延に起因することがあり、これは、従来の画像ベースの検索には有用ではないことがある。一方、本開示の態様によれば、サーバ206から受信したクエリ応答305は、SLAM環境の原点に対して観察または利用されるので(OXquery)、その時点でも使用することができる。よって、現在のクライアントデバイス202の姿勢が決定されれば、オブジェクト拡張の目的で、オブジェクトの座標系からクライアントデバイスの座標系への変換(XClive)を計算することができる。
【００２８】
1つのアプローチでは、オブジェクト304のクライアントデバイス202に対するライブ姿勢(XClive)を、クエリ応答305(OXquery)から計算できる。その理由は、クライアントデバイス202からSLAM環境の原点308への変換(OClive)の追跡および決定が可能だからである。クライアントデバイス202に対する相対的なオブジェクト304の姿勢(XClive)もまた、XClive=OClive×(OXquery)-1の関係によって決定できる。
【００２９】
本開示の態様によれば、複数のマップポイントが検索クエリとして送信されてもよい。一実施形態では、最後のクエリ以降にマップに追加されたマップポイントのみがクエリ内で送信されてもよい。以前に送信された検索クエリはサーバ206によって記憶およびキャッシュできることに留意されたい。これによって、モバイルデバイス202からすべてのマップポイントが毎回サーバ206に送信されなくても、サーバ206は、このすべてのマップポイントを検索することができる。別のアプローチでは、モバイルデバイス202は、マップ全体を毎回送信してもよく、これは、サーバ206に一時記憶領域が必要にはならないことを意味する。
【００３０】
本開示の態様によれば、サーバ206は、クエリ内で送信されるマップポイントと類似した、キーポイントおよび3D位置情報を有する記述子(および、場合によっては面法線)のデータベースを含んでもよい。ただし、サーバ206上のキーポイントおよび記述子は、データベースオブジェクトの一部に対応してもよく、事前にオフライン処理で生成されてもよい。いくつかの実装形態では、記述子間の最近傍検索が迅速に計算できるように、効率的な検索用データ構造がサーバ206に作成されてもよい。これらのデータ構造は、ツリー形式(K平均法、kD木、二分木など)、ハッシュテーブル、または最近傍分類子の形をとることができる。モバイルデバイス202から送信されたSLAMマップ内にデータベースオブジェクトが存在するか特定するための検索には、サーバの記述子データベース内でマップポイント記述子の最近傍を見つけることが伴う。サーバ206およびモバイルデバイス202上の記述子は、オブジェクトまたは場面の一部の外観を表現するベクトルである。記述子としてSIFTおよびSURFが考えられるが、これらに限定されない。
【００３１】
モバイルデバイス202によって送信される各マップポイントは、検索クエリの処理を通じて特定される0〜Nの最近傍対応関係のセットを有してもよい。これらの対応関係は、次の検索クエリのために再計算しなくてもよいように、サーバ206によって記憶して効率化することができる。対応関係が特定された後に投票ステップが発生し得、このステップで、あるオブジェクトについて見つかった対応関係の数から、あるオブジェクトがSLAMマップ内に存在する可能性が高いとの判断を行うことができる。存在する可能性の高いこれらのオブジェクトのそれぞれについて、地理的確認の処理を使用して、アウトライヤの対応関係からインライヤの対応関係を除去してもよい。この地理的確認には、相対的3D位置の制約、記述子回転の制約、および法線方向の制約が伴う。地理的確認の結果は、デバイスから送信されたマップポイントとサーバデータベース内のオブジェクトとの対応関係のセットである。
【００３２】
マップポイントは、少なくともSLAMマップの原点に対する3D位置および記述子を含んでよく、サーバ206内の記述子(これも3D位置を有する)とのマッチングによって3D-3D対応関係を導出してもよい。これによって、サーバのデータベースのポイントと、対応するSLAMマップのポイントとの間で相似変換(自由度7:3D回転、3D位置、尺度)の計算が可能になる。SLAMマップのポイントはオブジェクトを表すと考えられる。この相似変換は、SLAMマップの原点に対するオブジェクトの位置、方向および尺度を符号化してもよい。符号化結果を、SLAMマップ内のどのマップポイントがサーバオブジェクトに対応するかなどの他の有用な情報、およびそのデータベースオブジェクトに関連する内容と共に、クエリ応答としてモバイルデバイス202に返送してもよい。SLAMマップとオブジェクトマップの両方の尺度が知られている可能性がある場合(たとえば、両方が絶対メートル尺度)には、尺度の違いはなくてもよく、オブジェクトとSLAMマップの原点との間の関係を表すためには3D姿勢のみで十分なことがある。
【００３３】
サーバ206を使用した検索の処理はカメラのフレーム速度に比べて遅いことがあり、クエリ応答が受信され得るまでに数10のフレームが撮られることがよくある。しかし、サーバ206が検索クエリを処理している間に、クライアントがSLAMマップの原点308に対して、SLAMを使用した視覚的姿勢追跡を行ってもよい。したがって、検索クエリがSLAMマップの原点308に対する変換を計算するので、クエリ応答を計算した後に、カメラからSLAMマップの原点308への変換とSLAMマップの原点308からオブジェクト304への変換とを連鎖させることによって、オブジェクトとカメラとの間の相対的変換を計算することができる。
【００３４】
SLAMフレームワークを使用してモバイルデバイス202の姿勢を追跡することに加えて、SLAMフレームワークを使用して、サーバ206にいつ検索クエリを送信するか決定してもよい。マップポイントをクエリデータとして使用するときに、いくつかの最適化を行ってもよい。たとえば、SLAM環境の一部を徐々にサーバ206に送信してもよく、これは専用の単一画像クエリを使用する従来のアプローチからの著しい改善になり得る。いくつかの実装形態では、SLAMマップに新しいマップポイントが追加されると、バックグラウンド処理を使用して、新しいマップポイントがクライアントデバイス202からサーバ206にストリーミングされてもよい。サーバ206はセッション処理能力をもつように構成されてもよく、また、以前の結果をキャッシュすること(たとえば、記述子マッチングから)によって、SLAMマップ全体を再処理する必要なく全体のマップを使用して、クエリを行うように構成されてもよい。このアプローチでは漸増的なクエリの処理をサポートすることができ、その結果、同じサイズの完全に新しいマップを照会することに比べて、オブジェクト検出および拡張現実アプリケーションの効率を改善することができる。このアプローチでは、クエリ画像が送信される個別の判断時点を有するのではなく、SLAMマップのサイズが拡大したときに利用可能になる新しい情報のストリームが存在し得る。その結果、本開示のアプローチでは新しい情報が送信されるので、サーバ206に送信される情報の量が最適化される。それに比べて、画像ベースのクエリでは、異なる画像がサーバ206に送信され得ても、ほとんどが同じ場面のビューを表していることがある。本開示のアプローチの別の利点は、全体画像がアップロードされてから新たに処理され得る画像ベースのアプローチに比べて、サーバへのラウンドトリップ処理時間が減少され得ることである。
【００３５】
オブジェクトが非常に大きい場合(ビルディングなど)には、単一のカメラ画像クエリに収まらないことがあり、そのことによって、図1で説明した従来の方法を使用してそのオブジェクトを検出する作業が困難になることがある。一方、本開示の態様によれば、SLAM環境を徐々に更新する能力によって、本開示の方法で、フットボール競技場全体が単一のカメラビューにキャプチャできない可能性がある場合でも、フットボール競技場などの大きなオブジェクトのマップの作成が可能になる。さらに、SLAM環境の一部を検索クエリとしてサーバに送信する能力によって、本開示の方法では、検索クエリ内のオブジェクト全体から情報を使用することができる可能性があるので、大きなオブジェクトの認識率を改善させることができる。
【００３６】
3Dオブジェクトを検出する場合、カメラ画像を検索クエリとして使用する従来のアプローチでは、画像が3D場面の2D投影なので、単一の視点を表していることがあり、非常に不利になることがある。SLAM環境をクエリデータとして使用する場合は、オブジェクトは複数の角度からマッピングされてもよく、キャプチャされた情報が検索クエリとして提出されてもよい。よって、複数の角度からキャプチャした情報を使用する本開示の方法では、あるオブジェクトを、ある視点からは同一に見える可能性がある他のオブジェクトから区別する際に、より良い結果が得られることがある。
【００３７】
図4は、本開示のいくつかの態様によって、クライアント-サーバベースの検索を行うように構成されるモバイルデバイスの例示的ブロック線図を示す。モバイルデバイス202は環境の画像をキャプチャするためのカメラ108を含み、画像は個別の写真または動画のフレーム群のどちらでもよい。モバイルデバイス202はセンサ116を含んでもよく、このセンサを使用してデータを提供し、モバイルデバイス202はこのデータを使用して、その位置と方向、つまり姿勢を決定することができる。モバイルデバイス202に使用し得るセンサの例には、加速度計、水晶センサ、ジャイロスコープ、線形加速度計として使用されるマイクロエレクトロメカニカルシステム(MEMS)センサ、および磁気計が含まれる。
【００３８】
モバイルデバイス202はまた、画像を表示できるディスプレイ112を含むユーザインターフェース110を含んでもよい。ユーザインターフェース110はまた、ユーザがモバイルデバイス202に情報を入力できるようにするキーパッド114または他の入力デバイスを含んでもよい。望ましい場合は、タッチセンサ付きのディスプレイ112に仮想キーパッドを統合することによって、キーパッド114は不要とされてもよい。ユーザインターフェース110はまた、たとえば、モバイルプラットフォームがセルラー電話の場合は、マイクロフォン117および1つまたは複数のスピーカ118を含んでもよい。もちろん、モバイルデバイス202は、本開示と無関係な他の構成要素を含んでもよい。
【００３９】
モバイルデバイス202は制御ユニット120をさらに含み、このユニットは、カメラ108およびセンサ116、ユーザインターフェース110、ならびに他の所望の機能に接続され、これらと通信する。制御ユニット120は、1つまたは複数のプロセッサ122および関連するメモリ/ストレージ124によって提供されてもよい。制御ユニット120はまた、ソフトウェア126、ハードウェア128、およびファームウェア130を含んでもよい。制御ユニット120はSLAM環境生成モジュール132を含み、このモジュールは、モバイルデバイス202によってキャプチャされた情報に基づいてSLAMマップを生成するように構成される。制御ユニット120はクライアント-サーバベースの動的検索モジュール134をさらに含み、このモジュールは、対象のオブジェクトを検出するように構成され、かつ、対象のオブジェクトに対するモバイルデバイス202の姿勢を決定または追跡するように構成される。SLAM環境生成モジュール132およびクライアント-サーバベースの動的検索モジュール134は、分かりやすくするために、プロセッサ122および/またはハードウェア128とは別に示されているが、ソフトウェア126およびフェームウェア130内の命令に基づいてプロセッサ122および/またはハードウェア128に結合および/または実装されてもよい。制御ユニット120はクライアント-サーバベースの動的検索を行う方法を実施するように構成できることに留意されたい。たとえば、制御ユニット120は、図2、図3、および図6A〜図6Bで説明されるモバイルデバイス202の機能を実装するように構成され得る。
【００４０】
図5は、本開示のいくつかの態様によって、クライアント-サーバベースの検索を行うためのサーバのブロック線図を示す。図5に示される例では、サーバ206は1つまたは複数のプロセッサ502、ネットワークインターフェース504、SLAMマップデータベース506、SLAMマップ検索モジュール508、およびメモリ510を含む。1つまたは複数のプロセッサ502は、サーバ206の動作を制御するように構成され得る。ネットワークインターフェース504は、ネットワーク(図示せず)と通信するように構成され得、そのネットワークは、他のサーバ、コンピュータ、およびモバイルデバイスと通信するように構成されてもよい。SLAMマップデータベース506は、異なる現場、ランドマーク、マップ、および他のユーザ定義された情報のSLAMマップを記憶するように構成され得る。SLAMマップ検索モジュール508は、SLAMマップデータベース506を使用してクライアント-サーバベースの動的検索を行う方法を実施するように構成され得る。たとえば、SLAMマップ検索モジュール508は、図2、図3、および図6A〜図6Bで説明されるサーバ206の機能を実装するように構成され得る。メモリ510は、サーバ206のためにプログラムコード、命令、およびデータを記憶するように構成され得る。
【００４１】
本開示の実施形態によれば、SLAMマップデータベース506は空間的に編成されてもよい。モバイルデバイスに内蔵されたセンサを使用して、各オブジェクトについてモバイルデバイスの方向が決定されてもよい。SLAMマップデータベース506の検索時に、この方法では、最初にモバイルデバイスの方向の近隣にあるマップポイントの検索に集中してもよい。別のアプローチでは、検索は、モバイルデバイスによってキャプチャされたオブジェクト用のマップポイントのマッチングに集中して、最初の検索結果を後続のSLAMマップデータベース検索の支援のために使用してもよい。さらに別のアプローチでは、GPS、A-GPS、またはSkyhookスタイルのWi-Fi位置設定から取得した近似的位置情報を使用してSLAMマップデータベースの検索を支援してもよい。上記の様々な方法を適用して、SLAMマップデータベース内のオブジェクトの検索の効率を改善することができる。
【００４２】
図6Aおよび図6Bは、本開示のいくつかの態様によって、クライアント-サーバベースの検索を行う例示的方法を示す。本開示の態様によって、図6Aにオブジェクト認識の方法が示され、図6Bに追跡の方法が示される。図6Aおよび図6Bで説明される方法は、モバイルデバイス202によって並行に行われてもよいことに留意されたい。図6Aおよび図6Bに示されるブロックのいくつかは同じ方法を行う(よって、同じ番号が付けられている)が、説明の目的で、方法のフロー図は別々に示される。他の実装形態では、2つのフロー図を結合して1つのフロー図としてもよい。
【００４３】
図6Aを参照すると、制御ユニット120は、ブロック602で、モバイルデバイス202のカメラ108から1つまたは複数の画像を受信するか、または、1つまたは複数のワイヤレス通信プロトコルを介して他のデバイスから1つまたは複数の画像を受信するように構成され得る。本開示の態様によれば、画像は間欠的または連続的に受信されてもよい。制御ユニット120は、ブロック604で、モバイルデバイスを追跡するように構成され得る。たとえば、制御ユニット120は、環境の原点に対するモバイルデバイスの動きを追跡して、モバイルデバイスが環境の原点に対して移動したと判断するように構成され得る。さらに、制御ユニット120は、モバイルデバイスが所定の角度を超えて回転したか判断し、かつ/または、モバイルデバイスが所定の距離を超えて移動したかを判断するように構成され得る。制御ユニット120は、ブロック605で、SLAMマップを更新するかを判断するように構成され得る。SLAMマップを更新すると判断した場合(605_Yes)は、方法はブロック606に進む。あるいは、SLAMマップを更新しないと判断した場合(605_No)は、方法はブロック602に戻る。
【００４４】
制御ユニット120は、ブロック606で、受信した1つまたは複数の画像を使用して、環境のSLAMマップを生成または更新するように構成され得る。本開示の態様によれば、SLAMマップは、環境の3次元座標系内の複数の面を表現する複数のマップポイントを含んでもよい。複数のマップポイントは、モバイルデバイスによって異なる角度からキャプチャされた複数の面のビューを含んでもよい。いくつかの実装形態では、複数のマップポイントの各マップポイントは、3次元位置、3次元位置の1つまたは複数の記述子、および、3次元位置に対応する面法線を含む。1つまたは複数の記述子の例には、スケール不変特徴量変換(SIFT)記述子と複数の面の面法線とのセット、ならびに/または、高速化ロバスト特徴量(SURF)記述子と複数の面の面法線とのセットが含まれ得る。いくつかの他の実装形態では、複数のマップポイントの各マップポイントは、マップポイントの法線方向に直交する方向からの表現を含む。
【００４５】
本開示の態様によれば、制御ユニット120は、モバイルデバイスの動きに応答してモバイルデバイスがキャプチャした増分のマップポイントを特定し、モバイルデバイスがキャプチャした増分マップポイントを使用して同時位置推定および環境マッピングを更新し、モバイルデバイスがキャプチャした増分マップポイントを、更新された検索クエリ内でサーバに送信するように構成されてもよい。更新された同時位置推定および環境マッピングはモバイルデバイスから見る環境の視野よりも大きい環境のビューを含むことができ、その場合、環境の原点はモバイルデバイスの視野の外部にある可能性があるに留意されたい。
【００４６】
制御ユニット120は、ブロック608で、複数のマップポイントのセットを検索クエリとしてサーバに送信するように構成され得る。制御ユニット120は、ブロック609で、サーバ206からの応答があるか判断するように構成されてもよい。応答がある場合(609_Yes)は、方法はブロック610に進む。あるいは、応答がない場合(609_No)は、方法はブロック602に戻る。制御ユニット120は、ブロック610で、サーバ206からクエリ応答を受信するように構成され得る。制御ユニット120は、ブロック612で、検索されたオブジェクトをSLAMマップに登録するように構成され得る。
【００４７】
図6Bを参照して、いくつかのブロックは図6Aで説明されるものと同じブロックであり、よって、図6Aに示される同じブロックの説明は、図6Bの同じブロックに適用されてもよいことに留意されたい。簡単にするために、方法の全体的な構造が保たれるように、図6Bに関しても同じブロックが以下で説明される。制御ユニット120は、ブロック602で、モバイルデバイス202のカメラ108から1つまたは複数の画像を受信するか、または、1つまたは複数のワイヤレス通信プロトコルを介して他のデバイスから1つまたは複数の画像を受信するように構成され得る。制御ユニット120は、ブロック604で、モバイルデバイスを追跡するように構成され得る。
【００４８】
制御ユニット120は、ブロック609で、サーバ206からの応答があるか判断するように構成され得る。応答がある場合(609_Yes)は、方法はブロック610に進む。あるいは、応答がない場合(609_No)は、方法はブロック605に戻る。制御ユニット120は、ブロック610で、サーバ206からクエリ応答を受信するように構成され得る。制御ユニット120は、ブロック612で、検索されたオブジェクトをSLAMマップに登録するように構成されてもよい。制御ユニット120は、ブロック605で、SLAMマップを更新するかを判断するように構成され得る。SLAMマップを更新すると判断した場合(605_Yes)は、方法はブロック606に進む。あるいは、SLAMマップを更新しないと判断した場合(605_No)は、方法はブロック614に進む。制御ユニット120は、ブロック606で、受信した1つまたは複数の画像および/またはサーバ206から受信したクエリ応答を使用して、環境のSLAMマップを生成または更新するように構成され得る。制御ユニット120は、ブロック608で、複数のマップポイントのセットを検索クエリとしてサーバに送信するように構成され得る。
【００４９】
制御ユニット120は、ブロック614で、SLAMマップ環境に対するオブジェクトの姿勢を計算するように構成され得る。いくつかの実装形態では、制御ユニット120は、環境の原点に対するオブジェクトの姿勢をクエリ応答から取得し、環境の原点に対するモバイルデバイスの姿勢を追跡し、環境の原点に対するオブジェクトの姿勢および環境の原点に対するモバイルデバイスの姿勢を使用して、オブジェクトに対するモバイルデバイスの姿勢を決定するように構成され得る。制御ユニット120は、ブロック616で、ブロック614で決定したオブジェクトの姿勢を使用して拡張をレンダリングするように構成され得る。
【００５０】
フロー図は単に説明の目的で示されることに留意されたい。いくつかの他の実装形態では、フロー図のブロックは他の実装形態を形成するように配置されてもよい。たとえば、ブロック604の方法がブロック606の前に、後に、またはブロック606と並行して行われてもよい。さらに他のいくつかの実装形態では、たとえば、方法はブロック604の方法を行わずにブロック602からブロック605に進んでもよい。
【００５１】
本開示のアプローチの利点の1つは、類似した目標の検出にある。通常、サーバ上のSLAMマップデータベースは非常に大きいことがあり、また、類似しているが同一ではない外観をもつ多数のオブジェクトを含むことがある。それらの視覚的に類似したオブジェクトの1つに関連するモバイルデバイスから検索クエリを与えられたとき、サーバは正しいオブジェクトの特定に成功できる場合もある。しかし、モバイルデバイスにローカルに置かれた検出データベースを使用する従来の検索システムでは、外観の類似した誤ったオブジェクトが検出される可能性がある。実際のオブジェクトに視覚的に類似したオブジェクトがローカルデータベースに存在し、それらの視覚的に類似したオブジェクトがクライアントデバイスのビュー内の実際のオブジェクトではないことがある場合には、その可能性が大きくなる。
【００５２】
図1に示されるような従来のアプローチでは、サーバデータベース内のすべてのオブジェクトに関するデータをモバイルデバイスがもっていない場合がある限り、データベース内の正しいオブジェクトが検出される保証はあり得ない。これは、オクルージョン、ならびにオブジェクトの製造工程およびカメラの画像処理の変動に起因する外観の小さな変化などの事項に対して局所検出がロバストであり得ることへの要望に起因する。この問題は、オブジェクト検出だけでなく、オブジェクト姿勢の推定もサーバ上で行い、より完全なオブジェクトのセットの情報が記憶され得る本開示の方法によって解決することができる。
【００５３】
本開示の別の利点は、モバイルデバイスからサーバにいつ検索クエリ(またはキャプチャした追加情報)を送信するかの問題の処理にある。本開示のアプローチでは、モバイルデバイスのユーザ経験に影響し得る、送信されるデータの量の最適化とオブジェクト検出の速度と間のバランスに対処する。本開示の態様によれば、クライアント画像の外観がクエリ送信を保証するだけ十分に変化した時点を検出するシーンチェンジアルゴリズムの使用など、様々な方法が使用されてもよい。SLAMフレームワークを使用すると、オブジェクトまたは場面に対するモバイルデバイスの姿勢に関する連続的な情報が得られ、そのような情報を使用して、サーバにいつクエリを送信するかを決定することができる。
【００５４】
本開示の別の利点は、大きなオブジェクトの検出にある。いくつかの状況において、大きなオブジェクトが単一のカメラビューに収まらないことがあり、これは、図1で説明されるようにカメラ画像が検索クエリとして使用される場合には、大きなオブジェクトの検出が当然、視覚的検索クエリを使用すると不利になることがあることを意味する。一方、本開示の方法は、大きなオブジェクトを記述するデータ(SLAMマップポイント)を徐々に蓄積し、更新されたSLAMマップポイントを含む検索クエリを送信して、大きなオブジェクトの検出の信頼性を高めることができるように構成されてもよい。
【００５５】
本開示の別の利点は、3Dオブジェクトの曖昧性の除去にある。図1で説明される従来のアプローチでは、カメラ画像をクエリデータとして使用することは、単一の視点から見た3Dオブジェクトの2D投影を送信することを意味し、ある視点からは多くの3Dオブジェクトが類似して見えることがあるので、3Dオブジェクトの検出が困難になることがある。一方、本開示の方法では、異なる視点から見たオブジェクトの情報を蓄積して、その情報を検索クエリとして送信できるので、類似の3Dオブジェクトの相互の曖昧性を除去することができる。
【００５６】
少なくとも段落［００５６］〜［００６０］、図4、図5、図6Aおよび図6B、ならびに対応する説明は、モバイルデバイスのビュー内の環境の1つまたは複数の画像を受信するための手段と、1つまたは複数の画像を使用して、同時位置推定および環境マッピングを生成するための手段であって、同時位置推定および環境マッピングが環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、手段と、複数のマップポイントのセットを検索クエリとしてサーバに送信するための手段と、クエリ応答をサーバから受信するための手段と、クエリ応答に少なくとも部分的に基づいて環境内のオブジェクトを特定するための手段とを提供する。
【００５７】
本明細書に記載される方法論およびモバイルデバイスは、適用例に応じて様々な手段によって実装され得る。たとえば、これらの方法論は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの組合せに実装することができる。ハードウェア実装形態では、処理ユニットは、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブル論理デバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、本明細書に記載される機能を行うために設計された他の電子的ユニット、またはそれらの組合せに実装することができる。本明細書では、「制御論理」という用語は、ソフトウェア、ハードウェア、ファームウェアまたはそれらの組合せによって実装される論理を包含する。
【００５８】
ファームウェアおよび/またはソフトウェア実装形態では、方法論は、本明細書に記載される機能を行うモジュール(たとえば、プロシージャ、関数など)で実装され得る。本明細書に記載される方法論の実装に、命令を有形的に具体化する、あらゆる機械可読媒体を使用することができる。たとえば、ソフトウェアコードをメモリに記憶し、処理ユニットによって実行することができる。メモリは、処理ユニットの中または処理ユニットの外部に実装することができる。本明細書で使用するとき、「メモリ」という用語は、長期的、短期的、揮発性、不揮発性または他のあらゆるタイプの記憶デバイスを指し、いかなる特定のメモリのタイプまたはメモリの数、またはメモリが格納される媒体のタイプにも限定されない。
【００５９】
ファームウェアおよび/またはソフトウェア実装では、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されてもよい。例には、データ構造と共に符号化されたコンピュータ可読媒体および、コンピュータプログラムと共に符号化されたコンピュータ可読媒体が含まれる。コンピュータ可読媒体は、製造業者の商品の形をとってもよい。コンピュータ可読媒体には、物理的なコンピュータ記憶媒体および/または他の非一時的媒体が含まれる。記憶媒体は、コンピュータによってアクセス可能な任意の入手可能な媒体でもよい。例として、そのようなコンピュータ可読媒体は、所望のプログラムコードを命令またはデータ構造の形で記憶するために使用することができ、コンピュータによってアクセスすることができる、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスク記憶媒体、磁気ディスク記憶媒体または他の磁気記憶デバイス、もしくは他の任意の媒体を含んでもよいが、これらに限定されない。ディスク(diskおよびdisc)は、本明細書で使用する場合は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイディスク(disc)を含み、通常、diskはデータを磁気的に再現するが、discはレーザを使用して光学的にデータを再現する。上記のものの組合せもまた、コンピュータ可読媒体の範囲に含まれるものとする。
【００６０】
命令および/またはデータは、コンピュータ可読媒体上の記憶の他に、通信装置に含まれる送信媒体上の信号として提供されてもよい。たとえば、通信装置は、命令およびデータを示す信号を有する送受信機を含んでもよい。命令およびデータは、特許請求の範囲に概説された機能を1つまたは複数のプロセッサに実施させるように構成される。つまり、通信装置は、本開示の機能を行うための情報を示す信号を有する送信媒体を含む。第1の時点で、通信装置に含まれる送信媒体は本開示の機能を行うための情報の第1の部分を含んでもよく、第2の時点で、通信装置に含まれる送信媒体は本開示の機能を行うための情報の第2の部分を含んでもよい。
【００６１】
本開示は、ワイヤレス広域ネットワーク(WWAN)、ワイヤレスローカルエリアネットワーク(WLAN)、ワイヤレスパーソナルエリアネットワーク(WPAN)などの様々なワイヤレス通信ネットワークと共に実装されてもよい。「ネットワーク」および「システム」という用語は、しばしば互換的に使用される。「位置」および「場所」という用語は、しばしば互換的に使用される。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(登録商標)は、「3rd Generation Partnership Project(第3世代パートナーシッププロジェクト)」(3GPP)という名称の組織による文書に記載されている。cdma2000は、「3rd Generation Partnership Project 2」(3GPP2)という名称の組織による文書に記載されている。3GPPおよび3GPP2の文書は公開されている。WLANはIEEE 802.11xネットワークでもよく、WPANは、Bluetooth(登録商標)ネットワーク、IEEE 802.15xまたは他の何らかのタイプのネットワークでもよい。技法は、また、WWAN、WLANおよび/またはWPANの任意の組合せと共に実装されてもよい。
【００６２】
移動局とは、ワイヤレス通信および/またはナビゲーション信号の受信が可能な、セルラーまたは他のワイヤレス通信デバイス、パーソナル通信システム(PCS)デバイス、パーソナルナビゲーションデバイス(PND)、個人情報マネージャ(PIM)、携帯情報端末(PDA)、ラップトップまたは、他の適切なモバイルデバイスなどのデバイスを指す。また、「移動局」という用語は、短距離ワイヤレス、赤外線、有線接続または他の接続などによってパーソナルナビゲーションデバイス(PND)と通信するデバイスを含むように意図されており、これは、そのデバイスまたはPNDで衛星信号受信、補助データ受信、および/または位置関連の処理が発生するか否かには関わらない。また、「移動局」はすべてのデバイスを含み、それには、インターネット、Wi-Fiその他のネットワークなどを介してサーバと通信することのできる、ワイヤレス通信デバイス、コンピュータ、ラップトップなどが含まれるように意図されており、これは、そのデバイス、サーバ、またはそのネットワークに関連する別のデバイスで衛星信号受信、補助データ受信、および/または位置関連の処理が発生するか否かには関わらない。上記のものの動作可能な任意の組合せもまた、「移動局」と見なされる。
【００６３】
あるものが「最適化される」「必要である」などの指定は、最適化されたシステムまたは「必要な」要素が存在する(または他の指定による他の制限)システムにのみ本開示が適用されることを表すのではない。これらの指定は、記載された特定の実装形態のみを指す。もちろん、多くの実装形態が可能である。技法は、本明細書で説明したプロトコル以外のプロトコルを使用することができ、それには、開発途上または開発予定のプロトコルが含まれる。
【００６４】
同じ基本を根本とする機構および方法論を依然として使用しながらも、本開示の実施形態の多くの可能な修正および組合せを使用してもよいことが、当業者には理解されるであろう。説明の目的のために、上記の記述は特定の実施形態を参照して書かれている。しかし、上記の説明的論考は、網羅的であることまたは、開示される形そのものに本開示を限定することを意図してない。上記の教示を考慮して、多くの修正および変形が可能である。実施形態は、本開示およびそれらの実際の適用例の原理について説明するため、ならびに、当業者が本開示、および予定される特定の用途に適するよう様々な修正が施された様々な実施形態を最も有利に利用できるようにするために選択および記載された。
【符号の説明】
【００６５】
104  クライアント
106  サーバ
108  カメラ
110  ユーザインターフェース
112  ディスプレイ
114  キーパッド
116  センサ
117  マイクロフォン
118  スピーカ
120  制御ユニット
122  プロセッサ
124  メモリ
126  ソフトウェア
128  ハードウェア
130  ファームウェア
132  SLAM環境生成モジュール
134  クライアント-サーバベースの動的検索モジュール
202  モバイルデバイス、クライアント
203  SLAM環境
204a  面
204b  面法線
206  サーバ
206a  面
206b  面法線
208a  面
208b  面法線
210a  面
210b  面法線
212a  面
212b  面法線
303  検索クエリ
304  オブジェクト
305  クエリ応答
308  原点
502  プロセッサ
504  ネットワークインターフェース
506  SLAMマップデータベース
508  SLAMマップ検索モジュール
510  メモリ
【図４】
2016515254.tif 000003
【図５】
2016515254.tif 000004
【図６Ａ】
2016515254.tif 000005
【図６Ｂ】
2016515254.tif 000006
【図１】
2016515254.tif 000007
【図２】
2016515254.tif 000008
【図３】
2016515254.tif 000009
【手続補正書】
【提出日】平成27年5月18日(2015.5.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
検索を行う方法であって、
モバイルデバイスのビュー内の環境の複数の画像を受信するステップと、
前記複数の画像を使用して、同時位置推定および環境マッピングを生成するステップであって、前記同時位置推定および環境マッピングが、環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、ステップと、
前記複数のマップポイントのセットを検索クエリとしてサーバに送信するステップと、
前記サーバからクエリ応答を受信するステップと、
前記クエリ応答に少なくとも部分的に基づいて、前記環境内のオブジェクトを特定するステップと
を含む方法。
【請求項２】
前記複数のマップポイントが、前記モバイルデバイスによって異なる角度からキャプチャされた前記複数の面のビューを含む、請求項1に記載の方法。
【請求項３】
前記複数のマップポイントの各マップポイントが、3次元位置、前記3次元位置の1つまたは複数の記述子、および、前記3次元位置に対応する面法線を含む、請求項2に記載の方法。
【請求項４】
前記複数のマップポイントの各マップポイントが、前記マップポイントの法線方向に直交する方向からの表現を含む、請求項2に記載の方法。
【請求項５】
第1のタイムインスタンスで、前記複数のマップポイントの前記セットを検索クエリとして前記サーバに送信するステップと、
第2のタイムインスタンスで、前記サーバからクエリ応答を受信するステップとをさらに含み、
前記モバイルデバイスが前記第1のタイムインスタンスで前記オブジェクトに対する第1の姿勢を有し、前記モバイルデバイスが前記第2のタイムインスタンスで前記オブジェクトに対する第2の姿勢を有する、請求項1に記載の方法。
【請求項６】
前記第2のタイムインスタンスで受信した前記クエリ応答に少なくとも部分的に基づいて、前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するステップをさらに含む、請求項5に記載の方法。
【請求項７】
前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するステップが、
前記クエリ応答から、前記環境の原点に対する前記オブジェクトの姿勢を取得するステップと、
前記環境の前記原点に対する前記モバイルデバイスの姿勢を追跡するステップと、
前記環境の前記原点に対する前記オブジェクトの前記姿勢および前記環境の前記原点に対する前記モバイルデバイスの前記姿勢を使用して、前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するステップとを含む、請求項6に記載の方法。
【請求項８】
前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢に応答して拡張をレンダリングするステップをさらに含む、請求項6に記載の方法。
【請求項９】
前記環境の原点に対する前記モバイルデバイスの動きを追跡するステップと、
前記環境の前記原点に対して前記モバイルデバイスが移動したか判断するステップと
をさらに含む、請求項1に記載の方法。
【請求項１０】
前記モバイルデバイスが移動したか判断するステップが、
前記モバイルデバイスが所定の角度を超えて回転したか判断するステップと、
前記モバイルデバイスが所定の距離を超えて移動したか判断するステップと
のうちの少なくとも1つを含む、請求項9に記載の方法。
【請求項１１】
前記モバイルデバイスの前記動きに応答して、前記モバイルデバイスによってキャプチャされた増分マップポイントを特定するステップと、
前記モバイルデバイスによってキャプチャされた前記増分マップポイントを用いて、前記同時位置推定および環境マッピングを更新するステップと、
前記モバイルデバイスによってキャプチャされた前記増分マップポイントを、更新された検索クエリ内で前記サーバに送信するステップと
をさらに含む、請求項9に記載の方法。
【請求項１２】
前記更新された前記同時位置推定および環境マッピングが、前記モバイルデバイスからの前記環境の視野よりも大きい前記環境のビューを含み、前記環境の前記原点が、前記モバイルデバイスの前記視野の外部にある、請求項11に記載の方法。
【請求項１３】
処理論理手段を含む制御ユニットを含み、
前記処理論理手段が、
モバイルデバイスのビュー内の環境の複数の画像を受信するように構成される論理手段と、
前記複数の画像を使用して、同時位置推定および環境マッピングを生成するように構成される論理手段であって、前記同時位置推定および環境マッピングが、環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、論理手段と、
前記複数のマップポイントのセットを検索クエリとしてサーバに送信するように構成される論理手段と、
前記サーバからクエリ応答を受信するように構成される論理手段と、
前記クエリ応答に少なくとも部分的に基づいて、前記環境内のオブジェクトを特定するように構成される論理手段と
を含む、モバイルデバイス。
【請求項１４】
前記複数のマップポイントが、前記モバイルデバイスによって異なる角度からキャプチャされた前記複数の面のビューを含む、請求項13に記載のモバイルデバイス。
【請求項１５】
前記複数のマップポイントの各マップポイントが、3次元位置、前記3次元位置の1つまたは複数の記述子、および、前記3次元位置に対応する面法線を含む、請求項14に記載のモバイルデバイス。
【請求項１６】
前記複数のマップポイントの各マップポイントが、前記マップポイントの法線方向に直交する方向からの表現を含む、請求項14に記載のモバイルデバイス。
【請求項１７】
第1のタイムインスタンスで、前記複数のマップポイントの前記セットを検索クエリとして前記サーバに送信するように構成される論理手段と、
第2のタイムインスタンスで、前記サーバからクエリ応答を受信するように構成される論理手段とをさらに含み、
前記モバイルデバイスが前記第1のタイムインスタンスで前記オブジェクトに対する第1の姿勢を有し、前記モバイルデバイスが前記第2のタイムインスタンスで前記オブジェクトに対する第2の姿勢を有する、請求項13に記載のモバイルデバイス。
【請求項１８】
前記第2のタイムインスタンスで受信した前記クエリ応答に少なくとも部分的に基づいて、前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するように構成される論理手段をさらに含む、請求項17に記載のモバイルデバイス。
【請求項１９】
前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するように構成される論理手段が、
前記クエリ応答から、前記環境の原点に対する前記オブジェクトの姿勢を取得するように構成される論理手段と、
前記環境の前記原点に対する前記モバイルデバイスの姿勢を追跡するように構成される論理手段と、
前記環境の前記原点に対する前記オブジェクトの前記姿勢および前記環境の前記原点に対する前記モバイルデバイスの前記姿勢を使用して、前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するように構成される論理手段とを含む、請求項18に記載のモバイルデバイス。
【請求項２０】
前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢に応答して拡張をレンダリングするように構成される論理手段をさらに含む、請求項18に記載のモバイルデバイス。
【請求項２１】
前記環境の原点に対する前記モバイルデバイスの動きを追跡するように構成される論理手段と、
前記環境の前記原点に対して前記モバイルデバイスが移動したか判断するように構成される論理手段と
をさらに含む、請求項13に記載のモバイルデバイス。
【請求項２２】
前記デバイスが移動したか判断するように構成される論理手段が、
前記モバイルデバイスが所定の角度を超えて回転したか判断するように構成される論理手段と、
前記モバイルデバイスが所定の距離を超えて移動したか判断するように構成される論理手段と
のうちの少なくとも1つを含む、請求項21に記載のモバイルデバイス。
【請求項２３】
前記モバイルデバイスの前記動きに応答して、前記モバイルデバイスによってキャプチャされた増分マップポイントを特定するように構成される論理手段と、
前記モバイルデバイスによってキャプチャされた前記増分マップポイントを用いて、前記同時位置推定および環境マッピングを更新するように構成される論理手段と、
前記モバイルデバイスによってキャプチャされた前記増分マップポイントを、更新された検索クエリ内で前記サーバに送信するように構成される論理手段と
をさらに含む、請求項21に記載のモバイルデバイス。
【請求項２４】
前記更新された前記同時位置推定および環境マッピングが、前記モバイルデバイスからの前記環境の視野よりも大きい前記環境のビューを含み、前記環境の前記原点が、前記モバイルデバイスの前記視野の外部にある、請求項23に記載のモバイルデバイス。
【請求項２５】
1つまたは複数のコンピュータシステムによって実行するための命令を記憶した非一時的記憶媒体であって、前記命令が、
モバイルデバイスのビュー内の環境の複数の画像を受信するための命令と、
前記複数の画像を使用して、同時位置推定および環境マッピングを生成するための命令であって、前記同時位置推定および環境マッピングが、環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、命令と、
前記複数のマップポイントのセットを検索クエリとしてサーバに送信するための命令と、
前記サーバからクエリ応答を受信するための命令と、
前記クエリ応答に少なくとも部分的に基づいて、前記環境内のオブジェクトを特定するための命令と
を含む、非一時的記憶媒体。
【請求項２６】
前記複数のマップポイントが、前記モバイルデバイスによって異なる角度からキャプチャされた前記複数の面のビューを含む、請求項25に記載の非一時的記憶媒体。
【請求項２７】
前記複数のマップポイントの各マップポイントが、3次元位置、前記3次元位置の1つまたは複数の記述子、および、前記3次元位置に対応する面法線を含む、請求項26に記載の非一時的記憶媒体。
【請求項２８】
前記複数のマップポイントの各マップポイントが、前記マップポイントの法線方向に直交する方向からの表現を含む、請求項26に記載の非一時的記憶媒体。
【請求項２９】
第1のタイムインスタンスで、前記複数のマップポイントの前記セットを検索クエリとして前記サーバに送信するための命令と、
第2のタイムインスタンスで、前記サーバからクエリ応答を受信するための命令とをさらに含み、
前記モバイルデバイスが前記第1のタイムインスタンスで前記オブジェクトに対する第1の姿勢を有し、前記モバイルデバイスが前記第2のタイムインスタンスで前記オブジェクトに対する第2の姿勢を有する、請求項25に記載の非一時的記憶媒体。
【請求項３０】
前記第2のタイムインスタンスで受信した前記クエリ応答に少なくとも部分的に基づいて、前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するための命令をさらに含む、請求項29に記載の非一時的記憶媒体。
【請求項３１】
前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するための命令が、
前記クエリ応答から、前記環境の原点に対する前記オブジェクトの姿勢を取得するための命令と、
前記環境の前記原点に対する前記モバイルデバイスの姿勢を追跡するための命令と、
前記環境の前記原点に対する前記オブジェクトの前記姿勢および前記環境の前記原点に対する前記モバイルデバイスの前記姿勢を使用して、前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢を決定するための命令とを含む、請求項30に記載の非一時的記憶媒体。
【請求項３２】
前記環境内での前記オブジェクトに対する前記モバイルデバイスの前記第2の姿勢に応答して拡張をレンダリングするための命令をさらに含む、請求項30に記載の非一時的記憶媒体。
【請求項３３】
前記環境の原点に対する前記モバイルデバイスの動きを追跡するための命令と、
前記環境の前記原点に対して前記モバイルデバイスが移動したか判断するための命令と
をさらに含む、請求項25に記載の非一時的記憶媒体。
【請求項３４】
前記モバイルデバイスが移動したか判断するための命令が、
前記モバイルデバイスが所定の角度を超えて回転したか判断するための命令と、
前記モバイルデバイスが所定の距離を超えて移動したか判断するための命令と
のうちの少なくとも1つを含む、請求項33に記載の非一時的記憶媒体。
【請求項３５】
前記モバイルデバイスの前記動きに応答して、前記モバイルデバイスによってキャプチャされた増分マップポイントを特定するための命令と、
前記モバイルデバイスによってキャプチャされた前記増分マップポイントを用いて、前記同時位置推定および環境マッピングを更新するための命令と、
前記モバイルデバイスによってキャプチャされた前記増分マップポイントを、更新された検索クエリ内で前記サーバに送信するための命令と
をさらに含む、請求項33に記載の非一時的記憶媒体。
【請求項３６】
前記更新された前記同時位置推定および環境マッピングが、前記モバイルデバイスからの前記環境の視野よりも大きい前記環境のビューを含み、前記環境の前記原点が、前記モバイルデバイスの前記視野の外部にある、請求項35に記載の非一時的記憶媒体。
【請求項３７】
モバイルデバイスのビュー内の環境の複数の画像を受信するための手段と、
前記複数の画像を使用して、同時位置推定および環境マッピングを生成するための手段であって、前記同時位置推定および環境マッピングが、環境の3次元座標系内の複数の面を表現する複数のマップポイントを含む、手段と、
前記複数のマップポイントのセットを検索クエリとしてサーバに送信するための手段と、
前記サーバからクエリ応答を受信するための手段と、
前記クエリ応答に少なくとも部分的に基づいて、前記環境内のオブジェクトを特定するための手段と
を含む、装置。
【国際調査報告】
2016515254.tif 000010
2016515254.tif 000011