(57)【特許請求の範囲】
【請求項１】
周辺情報を使用したテンプレートマッチングの加速のための方法であって、
ターゲットオブジェクトおよび周辺情報を含む、カメラを介してキャプチャされるロケーションの画像を取得するステップと、
前記周辺情報に少なくとも部分的に基づいて前記ターゲットオブジェクトに対する前記カメラの姿勢を計算するステップと、
テンプレートマッチングシステムにアクセスするステップであって、前記テンプレートマッチングシステムが複数のオブジェクトの各オブジェクトに関して複数のテンプレートを備え、各テンプレートがテンプレートの姿勢に関連付けられる、ステップと、
マッチング姿勢テンプレートの組を特定するために前記カメラの前記姿勢が前記テンプレートの姿勢にマッチングする、前記複数のテンプレートのうちのいくつかのテンプレートを事前選択するステップと、
前記ターゲットオブジェクトとのテンプレートマッチングを特定するためにマッチング姿勢テンプレートの前記組を処理するステップと
を備える、方法。
【請求項２】
前記周辺情報が前記画像を処理することから生じる消失点情報を備える、請求項1に記載の方法。
【請求項３】
前記周辺情報が、前記カメラを備えるモバイルデバイスによって収集されるセンサ情報をさらに備える、請求項2に記載の方法。
【請求項４】
前記センサ情報が加速度計データを備え、前記周辺情報が前記加速度計データから少なくとも部分的に決定される重力ベクトルを備える、請求項3に記載の方法。
【請求項５】
前記周辺情報が少なくとも2つの水平消失点からなる、請求項2に記載の方法。
【請求項６】
前記周辺情報が1つの水平消失点および重力ベクトルからなる、請求項2に記載の方法。
【請求項７】
マッチング姿勢テンプレートの前記組を特定するために前記カメラの前記姿勢が前記テンプレートの姿勢にマッチングする、前記複数のテンプレートのうちのいくつかのテンプレートを事前選択するステップが、
しきい値量未満の姿勢角度の差を有する、前記複数のテンプレートのうちのいくつかのテンプレートを識別することと、
マッチング姿勢テンプレートの前記組として、前記しきい値量未満の姿勢角度の前記差を有する、前記複数のテンプレートのうちの前記いくつかのテンプレートを選択することと
を備える、請求項1に記載の方法。
【請求項８】
マッチング姿勢テンプレートの前記組を特定するために前記カメラの前記姿勢が前記テンプレートの姿勢にマッチングする、前記複数のテンプレートのうちのいくつかのテンプレートを事前選択するステップが、
前記複数のテンプレートのうちの少なくとも1つのテンプレートによって表される各オブジェクトに関して、最小量だけ前記カメラの前記姿勢と異なる各オブジェクトに関連付けられた前記テンプレートを特定することと、
マッチング姿勢テンプレートの前記組の一部として、前記最小量だけ前記カメラの前記姿勢と異なる各オブジェクトに関連付けられた前記テンプレートを選択することと
を備える、請求項1に記載の方法。
【請求項９】
前記ターゲットオブジェクトにマッチングする前記テンプレートに関連付けられたロケーション情報を特定するステップと、
前記ターゲットオブジェクトにマッチングする前記テンプレートに関連付けられた前記ロケーション情報と前記カメラの前記姿勢とに基づいて前記カメラの前記ロケーションを推定するステップと
をさらに備える、請求項1に記載の方法。
【請求項１０】
前記カメラの前記ロケーションに基づいて前記カメラを備えるモバイルデバイスに位置情報サービスを提供するステップ
をさらに備える、請求項9に記載の方法。
【請求項１１】
前記ターゲットオブジェクトが店舗ロゴを備える、請求項1に記載の方法。
【請求項１２】
前記周辺情報に少なくとも部分的に基づいて前記ターゲットオブジェクトに対する前記カメラの前記姿勢を計算するステップが、
前記画像の複数のエッジライン特徴部を識別するために前記画像を処理すること
を備える、請求項1に記載の方法。
【請求項１３】
前記複数のエッジライン特徴部を検出することが、水平エッジライン特徴部と垂直エッジライン特徴部とを検出することを備える、請求項12に記載の方法。
【請求項１４】
前記複数のエッジライン特徴部を検出することが、床、屋根、またはドアのうちの少なくとも1つを検出することを備える、請求項13に記載の方法。
【請求項１５】
前記カメラの前記姿勢を計算するステップが、前記周辺情報に基づいて、前記画像内の前記ターゲットオブジェクトに関して規定される、平面に対するパン、チルト、またはロールのうちの少なくとも1つとして前記カメラの前記姿勢を計算することを備える、
請求項1に記載の方法。
【請求項１６】
周辺情報を使用したテンプレートマッチングの加速のためのモバイルデバイスであって、
プロセッサと、
前記プロセッサに結合されたカメラと、
前記プロセッサに結合されたメモリであって、
ターゲットオブジェクトと前記周辺情報の少なくとも一部とを含む、前記カメラを介してキャプチャされるロケーションの画像を取得することと、
前記周辺情報に少なくとも部分的に基づいて前記ターゲットオブジェクトに対する前記カメラの姿勢を計算することと、
テンプレートマッチングシステムにアクセスすることであって、前記テンプレートマッチングシステムが複数のオブジェクトの各オブジェクトに関して複数のテンプレートを備え、各テンプレートがテンプレートの姿勢に関連付けられる、ことと、
マッチング姿勢テンプレートの組を特定するために前記カメラの前記姿勢が前記テンプレートの姿勢にマッチングする、前記複数のテンプレートのうちのいくつかのテンプレートを事前選択することと、
前記ターゲットオブジェクトとのテンプレートマッチングを特定するためにマッチング姿勢テンプレートの前記組を処理することと
を前記プロセッサに行わせる命令を備えるメモリと
を備える、モバイルデバイス。
【請求項１７】
ディスプレイ
をさらに備え、
前記命令がさらに、前記プロセッサに、前記ターゲットオブジェクトにマッチングする前記テンプレートに関連付けられた前記ロケーションを決定させ、前記ターゲットオブジェクトにマッチングする前記テンプレートに関連付けられた前記ロケーションに基づいて前記モバイルデバイスの推定ロケーションを表示させる、
請求項16に記載のモバイルデバイス。
【請求項１８】
加速度計
をさらに備え、
前記命令がさらに、前記プロセッサに、前記加速度計からのセンサデータに基づいて重力ベクトルを特定させ、前記画像からの前記周辺情報とともに前記重力ベクトルを使用して前記ターゲットオブジェクトに対する前記カメラの前記姿勢を計算させる、
請求項16に記載のモバイルデバイス。
【請求項１９】
プロセッサによって実行されたとき、システムにテンプレートマッチングの方法を実行させる命令を備える非一時的コンピュータ可読ストレージデバイスであって、前記方法が、
ターゲットオブジェクトおよび周辺情報を含む、カメラを介してキャプチャされるロケーションの画像を取得するステップと、
前記周辺情報に少なくとも部分的に基づいて前記ターゲットオブジェクトに対する前記カメラの姿勢を計算するステップと、
テンプレートマッチングシステムにアクセスするステップであって、前記テンプレートマッチングシステムが複数のオブジェクトの各オブジェクトに関して複数のテンプレートを備え、各テンプレートがテンプレートの姿勢に関連付けられる、ステップと、
マッチング姿勢テンプレートの組を特定するために前記カメラの前記姿勢が前記テンプレートの姿勢にマッチングする、前記複数のテンプレートのうちのいくつかのテンプレートを事前選択するステップと、
前記ターゲットオブジェクトとのテンプレートマッチングを特定するためにマッチング姿勢テンプレートの前記組を処理するステップと
を備える、非一時的コンピュータ可読ストレージデバイス。
【請求項２０】
前記テンプレートマッチングシステムにアクセスするステップが、ワイヤレスネットワークを介して、前記カメラを備えるモバイルデバイスから、前記複数のテンプレートを含むデータベースを備えるサーバシステムへの要求を通信することを備える、請求項19に記載の非一時的コンピュータ可読ストレージデバイス。
【請求項２１】
周辺情報を使用したテンプレートマッチングの加速のためのモバイルデバイスであって、
ターゲットオブジェクトおよび周辺情報を含む、カメラを介してキャプチャされるロケーションの画像を取得するための手段と、
前記周辺情報に少なくとも部分的に基づいて前記ターゲットオブジェクトに対する前記カメラの姿勢を計算するための手段と、
テンプレートマッチングシステムにアクセスするための手段であって、前記テンプレートマッチングシステムが複数のオブジェクトの各オブジェクトに関して複数のテンプレートを備え、各テンプレートがテンプレートの姿勢に関連付けられる、手段と、
マッチング姿勢テンプレートの組を特定するために前記カメラの前記姿勢が前記テンプレートの姿勢にマッチングする、前記複数のテンプレートのうちのいくつかのテンプレートを事前選択するための手段と、
前記ターゲットオブジェクトとのテンプレートマッチングを特定するためにマッチング姿勢テンプレートの前記組を処理するための手段と
を備える、モバイルデバイス。
【請求項２２】
重力ベクトルを特定するための手段
をさらに備え、
前記ターゲットオブジェクトに対する前記カメラの前記姿勢を計算するための前記手段が、前記画像からの前記周辺情報とともに前記重力ベクトルを使用する、
請求項21に記載のモバイルデバイス。
【請求項２３】
前記ターゲットオブジェクトにマッチングする前記テンプレートに関連付けられたロケーションに基づいて前記モバイルデバイスの前記ロケーションを推定するための手段と、
前記モバイルデバイスの前記推定ロケーションを表示するための手段と
をさらに備える、請求項21に記載のモバイルデバイス。
【請求項２４】
前記カメラの前記姿勢を計算する際に使用するために前記画像から特徴部を抽出するための手段と、
前記画像内の注目する点を検出するための手段であって、注目する前記点が前記ターゲットオブジェクトを備える、手段と
をさらに備える、請求項21に記載のモバイルデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の態様は、画像処理に関する。詳細には、いくつかの実装形態は、画像からの、および/または、マッチングプロセスからいくつかのテンプレートを除去するために画像をキャプチャするデバイスからの周辺情報を使用した高速テンプレートマッチングに関する。ロケーションサービスに関連する特定の実装形態についても説明する。
【背景技術】
【０００２】
ワイヤレス通信技術の進歩により、今日のワイヤレス通信デバイスの多用性は大幅に増大した。これらの進歩は、ワイヤレス通信デバイスが、単純な携帯電話およびページャから、マルチメディアレコーディング/再生、イベントスケジューリング、ワードプロセシング、eコマースなどの多種多様な機能が可能な高性能コンピューティングデバイスに進化するのを可能にしてきた。その結果、今日のワイヤレス通信デバイスのユーザは、複数のデバイス、またはより大きい非ポータブル機器を従来は必要とした広範囲にわたる作業を、単一のポータブルデバイスから実行することができる。
【０００３】
ワイヤレス通信デバイスの位置を取得および特定するために、様々なアプリケーションが利用される。たとえば、位置情報サービス(LBS)は、デバイス上で動作する1つまたは複数のアプリケーションに制御をもたらすために関連のデバイスのロケーションを活用する。ワイヤレス通信デバイスに関して実装されるLBS機能の用途には、特に、パーソナルナビゲーション、ソーシャルネットワーキング、コンテンツのターゲッティング(たとえば、広告、検索結果など)がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示の態様は、カメラの姿勢を推定するためのシステム、方法、デバイス、および製品に関する。そのような方法の一実装形態は、ターゲットオブジェクトおよび周辺情報を含む、カメラを介してキャプチャされるロケーションの画像を取得するステップと、周辺情報に少なくとも部分的に基づいてターゲットオブジェクトに対するカメラの姿勢を計算するステップと、テンプレートマッチングシステムにアクセスするステップであって、テンプレートマッチングシステムが複数のオブジェクトの各オブジェクトに関して複数のテンプレートを備え、各テンプレートがテンプレートの姿勢に関連付けられる、ステップと、マッチング姿勢テンプレートの組を特定するためにカメラの姿勢がテンプレートの姿勢にマッチングする、複数のテンプレートのうちのいくつかのテンプレートを事前選択するステップと、ターゲットオブジェクトとのテンプレートマッチング点を特定するためにマッチング姿勢テンプレートの組を処理するステップとを備える。
【０００５】
別のそのような実装形態は、周辺情報が画像を処理することから生じる消失点情報を備える場合に機能し得る。別のそのような実装形態は、周辺情報が、カメラを備えるモバイルデバイスによって収集されるセンサ情報をさらに備える場合に機能し得る。別のそのような実装形態は、センサ情報が加速度計データを備え、周辺情報が加速度計データから少なくとも部分的に決定される重力ベクトルを備える場合に機能し得る。別のそのような実装形態は、周辺情報が少なくとも2つの水平消失点からなる場合に機能し得る。別のそのような実装形態は、周辺情報が1つの水平消失点および重力ベクトルからなる場合に機能し得る。
【０００６】
別のそのような実装形態は、マッチング姿勢テンプレートの組を特定するためにカメラの姿勢がテンプレートの姿勢にマッチングする、複数のテンプレートのうちのいくつかのテンプレートを事前選択するステップが、しきい値量未満の姿勢角度の差を有する、複数のテンプレートのうちのいくつかのテンプレートを識別することと、マッチング姿勢テンプレートの組として、しきい値量未満の姿勢角度の差を有する、複数のテンプレートのうちのいくつかのテンプレートを選択することとを備える場合に機能し得る。
【０００７】
別のそのような実装形態は、マッチング姿勢テンプレートの組を特定するためにカメラの姿勢がテンプレートの姿勢にマッチングする、複数のテンプレートのうちのいくつかのテンプレートを事前選択するステップが、複数のテンプレートのうちの少なくとも1つのテンプレートによって表される各オブジェクトに関して、最小量だけカメラの姿勢と異なる各オブジェクトに関連付けられたテンプレートを特定することと、マッチング姿勢テンプレートの組の一部として、最小量だけカメラの姿勢と異なる各オブジェクトに関連付けられたテンプレートを選択することとを備える場合に機能し得る。
【０００８】
別のそのような実装形態は、ターゲットオブジェクトにマッチングするテンプレートに関連付けられたロケーション情報を特定するステップと、ターゲットオブジェクトにマッチングするテンプレートに関連付けられたロケーション情報とカメラの姿勢とに基づいてカメラのロケーションを推定するステップとをさらに備える場合がある。別のそのような実装形態は、カメラのロケーションに基づいてカメラを備えるモバイルデバイスに位置情報サービスを提供するステップをさらに備える場合がある。
【０００９】
別のそのような実装形態は、ターゲットオブジェクトが店舗ロゴを備える場合に機能し得る。別のそのような実装形態は、周辺情報に少なくとも部分的に基づいてターゲットオブジェクトに対するカメラの姿勢を計算するステップが、画像の複数のエッジライン特徴部を識別するために画像を処理することを備える場合に機能し得る。別のそのような実装形態は、複数のエッジライン特徴部を検出することが、水平エッジライン特徴部と垂直エッジライン特徴部とを検出することを備える場合に機能し得る。別のそのような実装形態は、複数のエッジライン特徴部を検出することが、床、屋根、またはドアのうちの少なくとも1つを検出することを備える場合に機能し得る。
【００１０】
別のそのような実装形態は、カメラの姿勢を計算するステップが、周辺情報に基づいて、画像内のターゲットオブジェクトに関して規定される、平面に対するパン、チルト、またはロールのうちの少なくとも1つとしてカメラの姿勢を計算することを備える場合に機能し得る。
【００１１】
別のそのような実装形態は、プロセッサと、プロセッサに結合されたカメラと、カメラを介してキャプチャされるロケーションの、ターゲットオブジェクトと周辺情報の少なくとも一部とを含む画像を取得することと、周辺情報に少なくとも部分的に基づいてターゲットオブジェクトに対するカメラの姿勢を計算することと、テンプレートマッチングシステムにアクセスすることであって、テンプレートマッチングシステムが複数のオブジェクトの各オブジェクトに関して複数のテンプレートを備え、各テンプレートがテンプレートの姿勢に関連付けられる、ことと、マッチング姿勢テンプレートの組を特定するためにカメラの姿勢がテンプレートの姿勢にマッチングする、複数のテンプレートのうちのいくつかのテンプレートを事前選択することと、ターゲットオブジェクトとのテンプレートマッチング点を特定するためにマッチング姿勢テンプレートの組を処理することとをプロセッサに行わせる命令を備える、プロセッサに結合されたメモリとを備える、周辺情報を使用したテンプレートマッチングの加速のためのモバイルデバイスであり得る。
【００１２】
別のそのような実装形態は、ディスプレイをさらに備えるデバイスであり得、命令はさらに、プロセッサに、ターゲットオブジェクトにマッチングするテンプレートに関連付けられたロケーションを決定させ、ターゲットオブジェクトにマッチングするテンプレートに関連付けられたロケーションに基づいてモバイルデバイスの推定ロケーションを表示させる。
【００１３】
別のそのような実装形態は、加速度計をさらに備えるデバイスであり得、命令はさらに、プロセッサに、加速度計からのセンサデータに基づいて重力ベクトルを特定させ、画像からの周辺情報とともに重力ベクトルを使用してターゲットオブジェクトに対するカメラの姿勢を計算させる。
【００１４】
別の実装形態は、プロセッサによって実行されたとき、システムにテンプレートマッチングの方法を実行させる命令を備える非一時的コンピュータ可読ストレージデバイスである場合があり、前記方法は、ターゲットオブジェクトおよび周辺情報を含む、カメラを介してキャプチャされるロケーションの画像を取得するステップと、周辺情報に少なくとも部分的に基づいてターゲットオブジェクトに対するカメラの姿勢を計算するステップと、テンプレートマッチングシステムにアクセスするステップであって、テンプレートマッチングシステムが複数のオブジェクトの各オブジェクトに関して複数のテンプレートを備え、各テンプレートがテンプレートの姿勢に関連付けられる、ステップと、マッチング姿勢テンプレートの組を特定するためにカメラの姿勢がテンプレートの姿勢にマッチングする、複数のテンプレートのうちのいくつかのテンプレートを事前選択するステップと、ターゲットオブジェクトとのテンプレートマッチング点を特定するためにマッチング姿勢テンプレートの組を処理するステップとを備える。
【００１５】
追加のそのような実装形態は、テンプレートマッチングシステムにアクセスするステップが、ワイヤレスネットワークを介して、カメラを備えるモバイルデバイスから、複数のテンプレートを含むデータベースを備えるサーバシステムへの要求を通信することを備える場合に機能し得る。
【００１６】
さらなる実装形態は、以下で提供される詳細な説明に鑑みれば明らかになるであろう。
【図面の簡単な説明】
【００１７】
【図１】一実装形態による、テンプレートマッチングのためのシステムの態様の図である。
【図２】1つの考えられる実装形態による、テンプレートマッチングの方法の図である。
【図３Ａ】一実装形態による、テンプレートマッチングシステムの態様を示す図である。
【図３Ｂ】一実装形態による、テンプレートマッチングシステムの態様を示す図である。
【図４】一実装形態に従って動作し得るモバイルデバイスの実装形態を示す図である。
【図５】一実装形態による周辺情報の態様を示す図である。
【図６】一実装形態による周辺情報の態様を示す図である。
【図７】一実装形態による周辺情報の態様を示す図である。
【図８】一実装形態による周辺情報の態様を示す図である。
【図９】一実装形態による周辺情報の態様を示す図である。
【図１０Ａ】一実装形態による周辺情報の態様を示す図である。
【図１０Ｂ】一実装形態による周辺情報の態様を示す図である。
【図１１】周辺情報を使用した店頭ロゴ検出のためのテンプレートマッチングの方法について説明する図である。
【図１２】様々な実装形態による、テンプレートマッチングデバイスまたはテンプレートマッチングシステムの一部として実装され得るコンピュータシステムの一例のブロック図である。
【図１３】様々な実装形態による、テンプレートマッチングシステムの一部として実装され得るコンピュータネットワークの一例の図である。
【発明を実施するための形態】
【００１８】
以下は、画像処理およびテンプレートマッチングに関する。いくつかの特定の実装形態は、テンプレートマッチングプロセスを高速化するために特定の技法を使用して店頭ロゴを識別するためのシステムおよび方法について説明する。
【００１９】
店頭は、測位および位置情報サービスのためのランドマークとしてしばしば使用される。店頭においてブランドを認識することができることは、ロケーションサービスおよびロケーションベースの広告などの様々な用途に役立つ。テンプレートマッチングは、オブジェクト検出のための1つの考えられる方法である。標準的なシステムでは、「姿勢」とも呼ばれる様々な観測角度に基づいた複数のテンプレートがトレーニング中に準備され、各テンプレートがテスト画像に対してマッチングされる。いくつかの実装形態では、推定される姿勢は、他のオブジェクトまたは基準系に対する、カメラ回転角度、カメラ平行移動、または空間的なカメラ位置および方位の任意の部分的なもしくは完全な記述であり得る。考えられるマッチングのために、カメラ画像からのターゲットオブジェクトを複数の姿勢とマッチングさせるプロセスは、大量の処理を含み、それが、スロープロセスをもたらす。記憶されたテンプレートのかなりの部分をプレフィルタリングし、ターゲットロゴとテンプレートとの間のマッチングを特定することに関わる処理を制限することによって、本明細書で説明するシステムおよび方法は、プロセッサ使用量を低減させ、より高速のマッチングを提供し得る。
【００２０】
たとえば、1つのシステムは、モール環境において識別される50個の異なるターゲットオブジェクトを有するモール環境によって実装され得る。ターゲットオブジェクトは、店舗ロゴ、看板、またはテンプレートマッチングによって識別され得る任意の他のマーカーであり得る。テンプレートマッチングシステムは、50個の異なるターゲットオブジェクトの各々に関するテンプレートを生成し得る。各ターゲットオブジェクトは、1つまたは複数の関連のテンプレートを有し、各テンプレートはまた、テンプレートを生成するのに使用された観測角度に関する情報を提供する関連の姿勢を有する。各ターゲットオブジェクトが10個の異なる姿勢からテンプレートを提供される場合、システムは、500個のテンプレートを有する。ユーザが、ターゲットオブジェクトのうちの1つである、モールエリア内の店舗ロゴの写真を撮るとき、システムは、姿勢を写真と関連付けるために周辺情報を使用する。写真からのターゲットオブジェクトをすべての500個のテンプレートとマッチングさせるのではなく、システムは、写真の姿勢にマッチングする関連の姿勢を有するテンプレートのみを含むようにテンプレートをフィルタリングする。理想的には、このことは、写真とマッチングするテンプレートの数を50個に制限し、写真と対応するテンプレートとの間のマッチングを見つけるのに必要な平均時間およびコンピューティングリソースを著しく低減する。
【００２１】
本明細書で説明するように、「周辺情報」は、ターゲットオブジェクトの画像に関連付けられた姿勢もしくは基準角度を特定するか、または特定するのを支援するために使用され得る情報を指す。
【００２２】
本明細書で言及する「ターゲットオブジェクト」は、識別可能なオブジェクトであり、テンプレートにマッチングされ得るオブジェクトとしてマッチングシステム内で使用される画像または画像の一部を指す。ターゲットオブジェクトの例には、店舗ロゴおよび看板がある。
【００２３】
図1は、テンプレートマッチングの改善のためのシステムの一実装形態の態様を示す。図1は、姿勢152の相対位置からターゲットオブジェクト150の画像140をキャプチャするために使用される関連の視野112を有するカメラ110を含むハンドヘルドモバイルデバイス100を含む。姿勢152は、画像140内にキャプチャされるターゲットオブジェクト150に対するモバイルデバイス100の空間位置および方位であると見なされ得る。姿勢は、画像140がキャプチャされる際にモバイルデバイス100のターゲットオブジェクト150がどれくらい近いか、または遠いかに関する情報を含み得る。姿勢は、任意のチルト、パン、ロール、または、画像140がキャプチャされる際にモバイルデバイス100とターゲットオブジェクト150との間の相対位置を定量化するために使用され得る他の記述に関する情報も含み得る。特に、図7、図8、図9、図10A、および図10Bに関して、姿勢の追加の詳細および例について以下に説明する。
【００２４】
カメラ110を介して閲覧可能なシーンの、カメラ110によって撮影される例示的な画像140が提供される。画像140の詳細は、周辺情報として分析されるか、または周辺情報を生成するために使用され得る。周辺情報の例は、平行線周辺情報142、平行線周辺情報144、および消失点周辺情報146として、図1に示す。画像からの周辺情報の使用および生成に関連する追加の詳細について以下により詳細に説明する。
【００２５】
モバイルデバイス100は、周辺情報130として示される重力ベクトルが決定され得る測定値を提供する加速度計または他のセンサも含む。周辺情報130などの重力ベクトルが、周辺情報142、144、および146などの、画像からの情報とともにどのように使用され得るかの追加の詳細についても以下により詳細に説明する。
【００２６】
次に、図2は、周辺情報を使用した高速テンプレートマッチングの1つの考えられる方法について説明する。S202は、カメラ110などのカメラを介してキャプチャされるロケーションの、画像140などの画像を取得することを含む。この画像は、ターゲットオブジェクト150などのターゲットオブジェクトと、周辺情報142、144、および/または146などの周辺情報とを含む。代替実装形態は、モバイルデバイス100のセンサからの周辺情報130などの、画像からではない周辺情報を使用し得る。
【００２７】
S204は、周辺情報に少なくとも部分的に基づいてターゲットオブジェクトに対するカメラの姿勢を計算することを含む。そのような計算に関連する非限定的な例示的詳細について図5〜図10に関して以下に説明する。S206は、テンプレートマッチングシステムにアクセスすることを含み、テンプレートマッチングシステムが複数のオブジェクトの各オブジェクトに関して複数のテンプレートを備え、各テンプレートがテンプレートの姿勢に関連付けられる。図3Aおよび図3Bは、1つの考えられるテンプレートマッチングシステムの態様について説明する。任意のそのようなテンプレートマッチングシステムは、そのシステムによってマッチングされるように構造化されたオブジェクトのうちの少なくともいくつかに関する複数のテンプレートを含む。特定のオブジェクトに関する複数のテンプレートは、様々な視野からのオブジェクトを示す様々なテンプレートが様々なカメラ姿勢位置から撮影されたオブジェクトの写真にマッチングするように、オブジェクトの様々な斜視図を提供する。様々な斜視図を示すそのようなテンプレートは、姿勢テンプレートと呼ばれる場合がある。同じ斜視図または姿勢に関連付けられた様々なオブジェクトに関するテンプレートは、マッチング姿勢テンプレートと呼ばれる場合がある。
【００２８】
S208は、マッチング姿勢テンプレートの組を特定するためにカメラの姿勢がテンプレートの姿勢にマッチングする、複数のテンプレートのうちのいくつかのテンプレートを事前選択することを含む。いくつかの実装形態では、テンプレートマッチングシステムは、テンプレートデータをマッチング姿勢テンプレートのグループに事前に構造化してもよい。他の実装形態では、テンプレートは、姿勢情報とともに単純に記憶される場合がある。そのような実装形態では、システムは、姿勢しきい値を有する場合があり、S208は、カメラの姿勢のしきい値距離内にあるすべての姿勢テンプレートを特定することを含む。そのようなしきい値距離は、姿勢テンプレートと、ターゲットオブジェクトを含む画像をキャプチャするために使用されたカメラの計算された姿勢との間の、いくつかの回転角の差分または任意の同様の相対値であり得る。そのような実装形態では、カメラの計算された姿勢が2つのテンプレート姿勢の間にある場合、システムは、ターゲットオブジェクトを同じオブジェクトに対する2つの姿勢テンプレートとマッチングさせようと試みる場合がある。またさらなる実装形態では、テンプレートマッチングシステムは、最も近い姿勢または斜視角度を有する姿勢テンプレートを特定し得る。追加の実装形態では、単一のオブジェクトに関するいくつかの姿勢テンプレートが事前選択される限り、単一のオブジェクトに関する3つ以上の姿勢テンプレートが使用される場合があり、その結果、使用される残りの3つ以上の姿勢テンプレートがさらに、単一のオブジェクトに関する姿勢テンプレートのすべてを使用するシステムを介してマッチングプロセスの高速化をもたらす。またさらなる実装形態では、カメラの姿勢と、最も近い姿勢テンプレートの姿勢との間に十分な差分が存在するとき、システムは、姿勢の不一致に基づいてマッチングに必要な要件を調整し得る。
【００２９】
S210では、次いで、本方法は、ターゲットオブジェクトとのマッチングを特定するためにマッチング姿勢テンプレートの組を処理することを含む。そのような処理は、テンプレートをターゲットオブジェクトにマッチングさせるために任意の数の異なるテンプレートマッチング技法を含み得る。いくつかの実装形態では、特定の姿勢テンプレートとターゲットオブジェクトとの間のマッチングが特定された後、特定の姿勢テンプレートに関連付けられた補足情報が、システムによって特定され、使用される場合がある。たとえば、特定の姿勢は、特定のロケーションに関連付けられる場合がある。画像に関連付けられたカメラロケーションを特定するために、カメラの姿勢、ターゲットオブジェクトサイズ、および特定のロケーション情報が使用され得る。次いで、本システムは、この追加の情報に基づいて、マップ情報、方向情報、ターゲット広告、または他のそのようなデバイス機能もしくはユーザ通信を提供し得る。またさらなる実装形態では、カメラロケーションは、さらなる分析のために、店舗オーナーと通信するか、または本システムによって集められる場合がある。
【００３０】
次いで、図3Aは、ターゲットオブジェクト150、およびターゲットオブジェクト150にマッチングするオブジェクトから生成される複数の姿勢テンプレート162a〜eの詳細を示す。様々な実装形態では、姿勢テンプレート162が、複数の姿勢からのオブジェクトのインスタンスを撮影し画像とともに姿勢を記録するデバイスによって生成され得る。次いで、画像は、姿勢テンプレート162a〜eを生成するために処理され得る。代替実装形態では、オブジェクトの単一のインスタンスは、様々な姿勢に関連付けられたテンプレートを生成するために変換を使用して処理され得る。
【００３１】
図3Aに示すように、姿勢テンプレートは、単にオブジェクトのコピーではないが、テンプレートマッチングシステムが、姿勢テンプレートを、姿勢テンプレートの基礎であったオブジェクトのターゲットオブジェクトバージョンにマッチングさせることを可能にするいくつかの詳細または類似性を含み得る。説明のために、図3Aおよび図3Bのテンプレート162aは、ターゲットオブジェクト150に最も密接にマッチングする姿勢テンプレートとして規定される。
【００３２】
次いで、図3Bは、再びターゲットオブジェクト150を示す。図1によって示され、本明細書で説明するように、ターゲットオブジェクト150は、カメラ110を含むモバイルデバイス100によって姿勢152から画像140内にキャプチャされるが、姿勢152は、キャプチャ用カメラとターゲットオブジェクト150との間の相対位置について記述する。図2で説明する実装形態では、この姿勢は、周辺情報を少なくとも部分的に使用して、S204において特定される。このプロセスの例について以下に説明する。カメラの姿勢が特定された後、図2の実装形態は、テンプレートマッチングシステムにアクセスするS206に進む。図3Bは、テンプレート161〜164として示す4つのオブジェクトに関するテンプレートを含む、1つの考えられるテンプレートマッチングシステムをさらに示す。図3Bの実装形態では、図示されたテンプレートマッチングシステムは、4つのオブジェクトの各々に対する5つの異なる姿勢、すなわち合計20個の姿勢テンプレートを含む。説明のために、テンプレートは、一列の姿勢テンプレートが同じオブジェクトに関するテンプレートである、チャートに示す。図3に、第1、第2、第3、および第4のテンプレート161〜164を示す。同じ行のテンプレートは、第1〜第5の姿勢テンプレート170a〜eとして示す、同じ関連の姿勢を有する異なるオブジェクトのテンプレートである。説明のために、姿勢テンプレートの各グループは、同じ姿勢を有するものとして規定されるが、様々な実装形態では、姿勢の様々なグループ化が使用され得る。図3Bによって示すように、次いで、姿勢152が特定された後、姿勢152は、第1〜第5の姿勢テンプレート170a〜eの姿勢と比較される。図3Bの実装形態では、姿勢152は、第1の姿勢テンプレート170aの姿勢にマッチングする。したがって、テンプレート161a、162a、163a、および164aは各々、ターゲットオブジェクト150と同じ姿勢を有し、これらのテンプレートは、マッチング姿勢テンプレートの組180として特定される。その場合、他のテンプレートは、考慮から除外される場合がある。テンプレートマッチングシステムは、図3Bの20個のテンプレートの各々を処理するのではなく、マッチング姿勢テンプレートの組180の4つのテンプレートを、ターゲットオブジェクト150に単純にマッチングさせる場合がある。誤差がないと仮定すれば、ターゲットオブジェクト150によって表されるオブジェクトに関するテンプレートとして示すテンプレート162aがマッチングされるべきである。
【００３３】
図4は、図1のモバイルデバイス100と同様である場合があるモバイルデバイス400の1つの考えられる実装形態を示す。さらに、モバイルデバイス400は、本明細書で説明する周辺情報を使用して高速テンプレートマッチングシステムのすべてまたは一部を実装する場合もある。このことは、姿勢テンプレートを記憶し、カメラ401によってキャプチャされたターゲットオブジェクトを、テンプレートマッチング部421の一部として記憶されるテンプレートとマッチングさせるためのプロセスを実装する、テンプレートマッチングシステムのすべてまたは一部を備え得る、テンプレートマッチング部421を使用してなされ得る。これらの実装形態のうちのいくつかでは、図2で説明した方法などの高速テンプレートマッチング方法の全体のプロセスが、任意の他のデバイスからの特別でない処理とともにモバイルデバイス400によって実行され得る。代替実装形態では、姿勢テンプレートをターゲットオブジェクトとマッチングさせるのに使用される処理およびストレージの少なくとも一部は、図13で説明する要素などのリモートネットワーク要素によって実行され得る。
【００３４】
図4に示す実装形態では、モバイルデバイス400は、いくつかの構成要素において動作を実施するための命令を実行するように構成され、たとえば、ポータブル電子デバイス内の実装に適した、汎用プロセッサ、またはマイクロプロセッサとすることができるプロセッサ410を含む。プロセッサ410は、モバイルデバイス400内の複数の構成要素と通信可能に結合される。この通信可能な結合を実現するために、プロセッサ410は、バス440を介して他の例示された構成要素と通信してもよい。バス440は、モバイルデバイス400内でデータを転送するように適合された任意のサブシステムであることが可能である。バス440は、複数のコンピュータバスであり、データを転送するための追加の回路を含むことが可能である。
【００３５】
メモリ420は、プロセッサ410に結合されてもよい。いくつかの実装形態では、メモリ420は、短期ストレージと長期ストレージの両方を実現し、実際には、いくつかのユニットへと分割される場合がある。メモリ420は、スタティックランダムアクセスメモリ(SRAM)および/もしくはダイナミックランダムアクセスメモリ(DRAM)など、揮発性であってよく、かつ/または読取り専用メモリ(ROM)、フラッシュメモリなど、不揮発性であってもよい。さらに、メモリ420は、セキュアデジタル(SD)カードなどの、取外し可能記憶デバイスを含むことができる。したがって、メモリ420は、モバイルデバイス400用のコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータのストレージを提供する。いくつかの実装形態では、メモリ420は、異なるハードウェアモジュールに分散される場合がある。
【００３６】
いくつかの実装形態では、メモリ420は、任意の数のアプリケーションまたはソフトウェアプログラムであり得るアプリケーション424を記憶する。テンプレートマッチング部421は、本明細書で説明する実装形態に従ってテンプレートマッチングの加速を実装するモバイルデバイス400の一部として任意の数の他のアプリケーション424とともに機能し得る。メモリ420などの非一時的メモリに記憶されるアプリケーション424は、プロセッサ410によって実行される特定の命令を含む。代替実装形態では、他のハードウェアモジュールが、いくつかのアプリケーション424またはアプリケーションの一部をさらに実行し得る。いくつかの実装形態では、メモリ420は、セキュアなメモリをさらに含む場合があり、セキュアなメモリは、ターゲットオブジェクトのセキュアなロケーションまたはテンプレートマッチングに関連付けられた私的な極秘データなどの、セキュアな情報をコピーすること、またはそれらの情報への他の不正アクセスを防止するための追加セキュリティコントロールを含み得る。
【００３７】
いくつかの実装形態では、メモリ420は、オペレーティングシステム423を含む。オペレーティングシステム423は、アプリケーション424によって与えられる命令の実行を開始し、かつ/または、他のハードウェアモジュールならびにワイヤレストランシーバ412を使用し得る通信モジュールとのインターフェースを管理し、アンテナを介してリンク416から情報を受け取るように動作可能であり得る。オペレーティングシステム423は、スレッディングと、リソース管理と、データ記憶制御と、他の類似の機能性とを含めて、モバイルデバイス400の構成要素を通して他の動作を実施するように適合され得る。
【００３８】
追加の実装形態では、ワイヤレストランシーバ412は、姿勢特定の一部として使用され得る周辺情報を特定するための専用のハードウェアモジュール、ソフトウェアモジュール、またはファームウェアモジュールを含み得る位置/速度方位センサ430に直接渡され得る情報をアンテナ414を介してリンク416から受け取り得る。図4によって示すように、モバイルデバイス400は、カメラ401および方位センサ430を含む。姿勢情報は、カメラ401から収集された周辺情報に少なくとも部分的に基づいている場合があり、方位センサ430からの情報に少なくとも部分的に基づいている場合もある。さらに、追加の情報は、モバイルデバイス400のハードウェアセンサおよびモジュールによって収集され得る。そのような情報の例は、姿勢を特定するか、または、テンプレートマッチングから生じるロケーション情報などの他の情報を検証する、周辺情報の一部として、またはそれとともに使用され得る、ドップラー測定、位置特定、加速度特定、または速度特定を含み得る。代替実装形態では、アンテナからの信号は、本明細書で説明する実装形態に従って、プロセッサ410およびテンプレートマッチング部421による後のアクセスおよび処理のためにメモリ420に通信され得る。
【００３９】
いくつかの実装形態では、図1のモバイルデバイス100のカメラ110などの画像キャプチャユニットは、カメラ110のレンズを横に向かせる可動カメラハウジングを含み得る。そのような実装形態では、デバイス100は、カメラ110のレンズ位置を動かすように構成され得る。レンズ位置の動きは、現在キャプチャされた画像内に周辺情報が検出されなかったという判定に応答して要求される場合があり、したがって、デバイスを動かし、および/または、そのデバイス上のカメラのレンズを動かすために(たとえば、ユーザインターフェースを介して)ユーザになされる示唆をもたらす。代替として、モバイルデバイス100のコントローラは、現在キャプチャされた画像内に周辺情報が検出されなかったという判定に応答して、カメラレンズの変位を制御する変位機構の作動部に、したがって、周辺情報を検出し得る別の画像のキャプチャを可能にするためにカメラレンズを自動的に動かさせる場合がある。
【００４０】
いくつかの実装形態では、カメラレンズは、視覚ベースのナビゲーションを可能にし得る。たとえば、検出された消失点が、カメラを横に回転させるか、またはレンズおよび焦点のロケーションを変化させることによって(一般にはデバイスの方位を特定するのには適していない)垂直消失点と特定される場合、消失点が非垂直ベクトルに対応し、したがってデバイスの方位の推定を可能にする、平行ラインの異なるセットが検出され得る。これらの場合、エンコーダを装備したサーボモータなどの内部機構は、カメラの相対回転、またはデフォルト位置に対するレンズの動きを追跡する。これらのエンコーダからの示度は、(たとえば、レンズの平行移動の場合の)固有校正行列の焦点距離値fに、または(たとえば、レンズおよびハウジングの回転の場合の)デバイスの基準系に対する検出された消失点の方位を計算するために加えることができる。
【００４１】
シーンの画像(例示的な画像140など)をキャプチャすることは、カメラを作動させ得るデバイスを持ち歩くユーザの裁量で実行され得るか、または、何らかの所定の時間間隔が経過したという判定に応答して自動的に開始され得る。たとえば、デバイスセンサから生じる方位(たとえば、向き)および移動距離の計算に基づいて、移動するデバイスの推定ロケーションが特定される実装形態では、デバイスの移動距離および現在の方位の周期的な特定が、そのような所定の間隔で自動的に実行され得る。たとえば、現在の方位の自動的な特定は、ユーザに命令/指示を送ることを含む場合があり、デバイスの方位を特定するためにユーザの援助が必要とされる(たとえば、シーンに露出させるためにユーザにカメラを持ち上げ、カメラを作動させることを要求する)。いくつかの実装形態では、スクリーンディスプレイは、ユーザが、識別可能な消失点に関連付けられた特定の特徴部(たとえば、廊下)にカメラを向けることを可能にするためにデバイスのカメラを用いて撮影された画像を提示し得る。シーンの画像が撮影されると、画像内の消失点は、いくつかの実装形態では、デバイスのディスプレイ上に表示されるキャプチャされた画像内にマーキング/特定され得る。
【００４２】
いくつかの実装形態では、カメラは、キャプチャされた画像内に何らかのしきい値数の線を検出することができるかどうかを確かめるために周期的にサンプリングすることができる。十分な線が検出された場合、さらなる消失点計算が実行され得る。しかしながら、シーン内の消失点を特定/決定するのに十分な線がないと判定された場合、カメラがシーンの新しい画像を自動的にキャプチャする場合があるか、ユーザが新しい画像を撮影する(たとえば、少なくとも1つの消失点を特定することができるようにキャプチャされた画像内に十分な数の線を特定する尤度がより高い方向にカメラを向ける)ように促される場合がある。いくつかの実装形態では、画面内カメラサインまたは他の指示(たとえば、高調音などの音声指示、またはデバイスの振動などの触覚指示)は、十分な数の線を画像内に検出し、方位特定のために使用することができるように、より良い位置において電話を保持するようにユーザを案内するためにユーザに提供され得る。続いて、方位特定を可能にするために十分な数の線が検出されてきたことを示すように、別のインジケータ(たとえば、別の高調音または画面内カメラサイン)が提供され得る。
【００４３】
いくつかの実装形態では、(新しいキャプチャされた画像内に十分な線があるかどうかを判定するための)カメラサンプリングは、ジャイロスコープなどのセンサが、新しい画像に基づいて方位の変化を特定するために、たとえば、ジャイロスコープによって検出されるデバイスの方位の変化の可能性を追うデバイスのロケーション推定を可能にするために、新しい画像をキャプチャすることを保証する何らかの所定のしきい値を超える回転変化を測定したという判定に基づいてトリガされ得る。
【００４４】
追加の実装形態は、リンク446を介して衛星信号を受け取るために衛星電力システム(SPS:satellite power system)トランシーバ442に結合されたSPSアンテナ444も含み得る。そのような信号は、位置特定のためにテンプレートマッチング421が使用されるとき、本明細書で説明する他の測位信号とともに測位を改善するために使用され得る。またさらなる実装形態では、専用モジュールは、専用画像処理モジュールが画像から周辺情報を特定し、他の周辺情報が加速度計データの処理などのセンサ処理から特定されるように、テンプレートマッチングと統合される通信を実装し得る。次いで、複数のソースからのこの周辺データは、テンプレートマッチング部421による使用のために集められ得る。
【００４５】
いくつかの実装形態では、モバイルデバイス400は、カメラ401および方位センサ430に加えて、複数の他のハードウェアモジュールを含む。他のハードウェアモジュールの各々は、モバイルデバイス400内の物理モジュールである。しかしながら、ハードウェアモジュールの各々は、構造として永続的に構成されるが、ハードウェアモジュールのそれぞれは、特定の機能を実施するように一時的に構成され得るか、または一時的にアクティブ化され得る。一般的な例は、シャッターを切るため、および画像をキャプチャするようにカメラ401をプログラムし得るアプリケーション424である。追加のハードウェアモジュールは、たとえば、Wi-Fiトランシーバ、衛星ナビゲーションシステム受信機(たとえば、GPSモジュール)、圧力モジュール、温度モジュール、音声出力および/または入力モジュール(たとえば、マイクロフォン)、近接センサ、代替回線サービス(ALS)モジュール、容量性タッチセンサ、近距離通信(NFC)モジュール、Bluetooth(登録商標)トランシーバ、セルラートランシーバ、磁力計、ジャイロスコープ、慣性センサ(たとえば、加速度計とジャイロスコープとを組み合わせたモジュール)、周辺光センサ、相対湿度センサ、または知覚出力を提供するように、かつ/もしくは知覚入力を受信するように動作可能な任意の他の同様のモジュールとすることができる。いくつかの実装形態では、ハードウェアモジュールの1つまたは複数の機能は、ソフトウェア、ファームウェア、またはこれらの任意の組合せで実装され得る。
【００４６】
モバイルデバイス400は、アンテナ414およびワイヤレストランシーバ412をワイヤレス通信に必要な任意の他のハードウェア、ファームウェア、またはソフトウェアとともに組み込む場合がある、ワイヤレス通信モジュールなどの構成要素を含み得る。そのようなワイヤレス通信モジュールは、ネットワークおよびアクセスポイントを介して、データソースなどの、様々なデバイスから信号を受信するように構成され得る。他のハードウェアモジュールおよびメモリ420内のアプリケーション424に加えて、モバイルデバイス400は、ディスプレイ出力403およびユーザ入力モジュール404を有し得る。ディスプレイ出力403は、モバイルデバイス400からの情報をユーザにグラフィカルに提示する。この情報は、1つもしくは複数のアプリケーション424、1つもしくは複数のハードウェアモジュール、それらの組合せ、または(たとえば、オペレーティングシステム423によって)ユーザ用のグラフィカルコンテンツを分解するための任意の他の適切な手段から導出され得る。いくつかの実装形態では、テンプレートマッチング部421は、画像140などの画像を表示する場合があり、周辺情報、ターゲットオブジェクト情報、姿勢情報、マッチング情報、ロケーション情報、およびテンプレートマッチングシステムの一部から生じるか、またはその一部として役に立つ場合がある任意の他のそのような情報をさらに表示し得る。
【００４７】
ディスプレイ出力部403は、液晶ディスプレイ(LCD)技術、発光ポリマーディスプレイ(LPD)技術、または何らかの他のディスプレイ技術であってもよい。いくつかの実装形態では、ディスプレイ出力部403は、容量性または抵抗性のタッチスクリーンであり、ユーザとの触覚および/または触知性接触に反応し得る。そのような実装形態では、ディスプレイ出力部403は、マルチタッチセンシティブディスプレイを備えることができる。次いで、ディスプレイ出力部403は、テンプレートマッチング部421の設定、出力情報、または他のユーザインターフェース構成要素のために使用され得る。様々な実装形態では、マッチングが行われたとき、この判定は、ディスプレイ出力部403上に出力され得る。いくつかの実装形態では、この判定は、マッチングが正しいか、または正しくないかを示すためのユーザフィードバックを含み得る。代替として、モバイルデバイス400は、精度または何らかの他の性能メトリックを犠牲にしてマッチング時間を改善するためにテンプレートマッチングシステムの性能が調整され得るように、変更されるインターフェースまたはディスプレイシステムの組を有し得る。
【００４８】
いくつかの実装形態では、デバイスのディスプレイは、ユーザが位置するエリアのマップを提示する場合もある。たとえば、ユーザが位置するエリアのマップは、ディスプレイ面の大部分を占める場合があるが、カメラによってキャプチャされた画像は、ディスプレイ面の残りのエリア上に(たとえば、ディスプレイ面の1つの隅における小さい矩形領域に)提示される場合がある。代替として、カメラによってキャプチャされた画像は、(たとえば、ディスプレイ面の隅のうちの1つにおいて)ディスプレイ面のより小さい部分を占めながらユーザが位置するエリアのマップとともに、ディスプレイの面の大部分に提示され得る。いくつかの実装形態では、モバイルデバイスは、複数のカメラ(たとえば、デバイスの背面のカメラ、その側面のうちの1つの上に位置する別のカメラなど)を含み、したがって、必要な場合、複数の消失点を特定することができるシーンの複数の画像を併用して取得する場合がある。
【００４９】
モバイルデバイスの追加の考えられる実装形態は、図12に関して以下で詳述するコンピューティングデバイスおよび図13で詳述するネットワークの様々な部分をさらに備え得る。
【００５０】
次に図5を参照すれば、周辺情報に基づいてカメラの姿勢を推定するためのシステム500は、カメラ510、特徴抽出器502、カメラ姿勢計算機504、および注目点(POI)検出器506を含む。特徴抽出器502、カメラ姿勢計算機504、およびPOI検出器506は、ハードウェアにおいて(たとえば、モバイルデバイス400のプロセッサ410において、または別のプロセッサもしくはハードウェア要素において、図4参照)、ソフトウェアにおいて(たとえば、モバイルデバイス400のメモリ420上のアプリケーション424として記憶され汎用プロセッサ410によって実行されるコンピュータ実行可能コードとして)、またはハードウェアとソフトウェアとの組合せで実装することができる。特徴抽出器502は、カメラ510によってキャプチャされる画像を受け取り、画像に関連付けられたキーポイントおよび/または他の画像特徴部を抽出する。これらの特徴部は、以下に説明するように、画像に関連付けられた概略のカメラの姿勢または向きを特定するためにカメラ姿勢計算機504によって利用される。
【００５１】
POI検出器506は、画像からターゲットオブジェクトまたは注目点を特定するためにテンプレートマッチングを実行するシステムの一部と見なされ得る。利用可能な場合、POI検出器506は、図3Aおよび図3Bにおいて上記で説明したように、カメラ姿勢計算機504からの、およびPOI検出器506の一部として記憶された姿勢テンプレートからのカメラ姿勢情報を使用し得る。いくつかの実装形態では、POI検出器506は、他のPOI特定技法またはターゲットオブジェクト特定技法に加えて、姿勢ベースのマッチングが使用されるように、複数の認識技法を実装し得る。したがって、POI検出器506は、キャプチャされた画像内の注目点(POI)または他のオブジェクトを検出するために1つまたは複数の情報ソースを利用する。たとえば、POI検出器506は、画像内のオブジェクト、建物、カラーパターン、または看板を検出するために特徴抽出器502から抽出された特徴部を利用し得る。POI検出器506は、いくつかの実装形態では、たとえば、ユーザ入力としてPOI検出器506に事前に提供され得る所与の画像内のオブジェクトの識別情報および/またはロケーションを特定する場合もある。この場合、POI検出器506は、画像内のオブジェクトおよび/または周辺画像特徴部に対応する画像特徴部を特定する際に特徴抽出器502を補助し得る。
【００５２】
ここで、カメラ姿勢計算機504は、カメラ510からの画像を少なくとも部分的に使用してカメラの姿勢を推定するように構成され得る。この画像は、数少ない局所的なオブジェクトキーポイント(たとえば、画像の小さい部分内の検出されたオブジェクトに関連付けられたキーポイントなど)を有する場合があり、姿勢計算機504は、オブジェクトの周りの周辺情報、およびシステム500内のセンサ(図5には示さず)によって提供される周辺情報を使用することによってカメラの姿勢を推定し得る。そうする際に、POI検出器506の動作は、カメラ姿勢計算機504の動作から切り離される。したがって、POI検出器506は、コンピュータ視覚技法に基づいて画像内のPOI(または店頭ロゴなどの他の画像ターゲット)を検出するように構成されるが、カメラ姿勢計算機504は、建物の構造などからの線およびエッジなどの情報に基づいて画像に関連付けられたカメラの姿勢を計算するように構成される。姿勢計算は、カメラ姿勢計算機504が、所与の画像に関連付けられたカメラの姿勢を特定する際にPOI検出器506から生じる任意の情報を利用しないように、POI検出器506の動作とは別にカメラ姿勢計算機504によって実行され得るが、その逆も同様である。他の実装形態では、POI検出器506およびカメラ姿勢計算機504は、互いに実装される場合があり、および/または、カメラ姿勢計算機504は、所与の画像に関連付けられたカメラの姿勢を特定する際にPOI検出器506から生じる任意の情報を利用する場合があるが、その逆も同様である。
【００５３】
図6は、画像内で検出されるエッジラインを収束させることに基づいて画像に関連付けられた回転行列を推定するためのシステム600を示す。この回転行列は、画像または画像内のターゲットオブジェクトと、画像をキャプチャしたカメラとの間の姿勢または相対位置の特定の一部として使用され得る。システム600は、カメラ610、エッジ抽出器602、消失点推定器604、および回転行列計算モジュール606を含む。エッジ抽出器602、消失点推定器604、および回転行列計算モジュール606は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合せとして実装され得る。システム600は、図5のシステム500の下位構成要素として実装される場合があり、たとえば、エッジ抽出器602は、特徴抽出器502および消失点推定器604によって少なくとも部分的に実装される場合があり、回転行列計算モジュール606は、カメラ姿勢計算機504によって少なくとも部分的に実装される場合がある。
【００５４】
カメラ610からの画像を仮定すれば、システム600は、たとえば、画像内の1つまたは複数のオブジェクトに対するカメラに関連付けられた回転行列の形態で、画像に対応するホモグラフィを計算する。回転行列の正確な計算は、参照画像および/またはテスト画像をキャプチャするのに使用されるカメラの固有パラメータがわかっている場合に実行することができる。しかしながら、回転行列の計算は、これらのカメラパラメータがわかっていない場合、より困難になる。ここで、回転行列計算モジュール606は、画像内で特定されるエッジ特徴部などの周辺特徴部に基づいて異なる精度を有するキャプチャされた画像内の面に対するカメラの回転の推定値を提供する。いくつかの実装形態では、センサ情報は、回転行列とともに姿勢推定の際のより大きい精度を可能にする重力ベクトルなどの追加の周辺情報を提供する。
【００５５】
上記で説明したように、システム600によって実行されるカメラ姿勢推定は、オブジェクトまたはPOI検出とは別に実行することができる。たとえば、カメラ610が店頭に向けられた場合、システム600は、特定の店頭の識別情報についての知識なしにカメラと店頭との間の向首角を特定することができる。カメラ姿勢推定は、完了すると、エリア内のカメラ610のロケーションの推定値を提供するためにカメラの視野内のPOIに関連する情報と組み合わされ得る。カメラの視野内のPOIは、ユーザ入力として提供され、1つまたは複数のコンピュータビジョンアルゴリズムを介して検出され得る。さらに、所与の画像内のPOIの特定のロケーションは、システム600によって実行されるカメラ姿勢推定に影響を及ぼすことなく指定されるか、または指定されない場合がある。
【００５６】
図7および図8を参照すれば、画像700および800は、カメラ姿勢推定を実行することができる例示的なロケーションを示す。画像700および800は店頭のロケーションを示すが、本明細書で説明する技法は、任意の適切なロケーションに関して適用することができる。たとえば、画像800内の店舗ロゴ801によって示すように、画像内の検出可能なターゲット(たとえば、店頭において提供されるブランドロゴなど)が、そのロケーションの壁上に、または壁に平行な平面内に位置するとき、本明細書で説明する技法が適用される場合があり、検出可能なターゲットオブジェクトが平面上または平行な平面上にあるとき、カメラ角度(チルティングおよびローリング)は、そのロケーションの検出可能なターゲットの平面と、カメラ画像の平面との間の角度であり、および/または、そのロケーションの構造が既知もしくは共通のレイアウト、たとえばマンハッタンレイアウトを有するとき、その結果、すべてのエッジラインは十分に水平もしくは垂直な方位を有する。GAP(登録商標)ストアのロゴ750は、ロゴ750を表示する看板をまっすぐに、すなわちその看板に垂直に見た場合のGAP(登録商標)のロゴの見掛けである。
【００５７】
上記の仮定に対応する構造を仮定すれば、図6のシステム600は、画像内のあるロケーションの周りのエッジラインに基づいたカメラ回転角度を割り出す。これらのエッジラインは、屋根、床、ドア、および他のエッジラインの特徴部のエッジを含むことができる。カメラによってキャプチャされる所与の画像内のエッジラインは、エッジ抽出器602によって抽出(検出)される。これらのエッジラインから、消失点推定器604は、画像内に示す平行なエッジラインに関する1つまたは複数の消失点を特定しようと試みる。例示的な消失点は、画像800内のエッジラインのうちのいくつかの水平消失点804である。したがって、姿勢推定のためにPOI(たとえば、画像700および800内の店舗ロゴ)からのキーポイントを使用しないPOI検出の後、回転行列計算モジュール606は、カメラ回転角度を割り出すために検出されたPOIの周りの屋根、床、およびドアのエッジを使用する。
【００５８】
回転行列計算モジュール606は、次のように画像に関連付けられた消失点から画像に対応する回転行列を導出することができる。ピンホールカメラの場合、ユークリッド3D空間から画像への透視投影は、次のように回転成分Rおよび並進成分Tを有する同次座標において表すことができる。
【００５９】
【数１】
0006273400.tif 000002
【００６０】
上記の式において、λiは倍率であり、(ui,vi)は画像内のロケーションの2D画像座標であり、(Xi,Yi,Zi)はこれらのロケーションの3D現実世界座標であり、Kおよびその成分はカメラ固有のパラメータの行列である。上記の座標変換は、図9のダイアグラム900によって示す。
【００６１】
以上に追加で指摘したように、Rは、画像に対するカメラの回転角度である。Rは、次のように定義されるパン、チルト、およびロールのパラメータを用いて定義される。
【００６２】
ロール:yz平面内の方位は、x軸の周りの回転ロールによって与えられる。ここで、ロールRrollは、次式によって与えられる。
【００６３】
【数２】
0006273400.tif 000003
【００６４】
チルト:xz平面内の方位は、y軸の周りの回転チルトによって与えられる。ここで、チルトRtiltは、次式によって与えられる。
【００６５】
【数３】
0006273400.tif 000004
【００６６】
パン:xy平面内の方位は、z軸の周りの回転パンによって与えられる。ここで、パンRpanは、次式によって与えられる。
【００６７】
【数４】
0006273400.tif 000005
【００６８】
これらの定義から、Rは、次のように表現することができる。
【００６９】
【数５】
0006273400.tif 000006
【００７０】
画像内で検出された消失点は、3つの直交する方向に沿うように定義される。ここで、画像は、3つの消失点、すなわち、x軸上の(u1,v1)、y軸上の(u2,v2)、および深さすなわちz軸上の(u3,v3)を有するものとして定義される。これらの消失点では、次の式が導出される。
【００７１】
【数６】
0006273400.tif 000007
【００７２】
方形ピクセルおよびゼロスキューを有するカメラでは、任意の倍率であるλiの定義に基づいて、さらに次式が導出される。
【００７３】
【数７】
0006273400.tif 000008
【００７４】
上記の式から、回転角度Rは、次式に従って導出される。
【００７５】
【数８】
0006273400.tif 000009
【００７６】
上式において、Rはさらに行列R=[r1 r2 r3]に対応し、ここで、成分r1、r2、r3の各々はRの列に対応する。Rのこの表現から、3つの消失点(u1,v1)、(u2,v2)、(u3,v3)が与えられると、回転行列および関連の回転角度を推定することができる。i=1,2,3に対するパラメータλiは、Rの各列を単位ノルムにするように選択される。
【００７７】
以上のことから、画像内で特定された2つの消失点が与えられると、カメラ回転の角度、パン、チルト、およびロールの正確な計算を行うことができる。たとえば、再び図8の画像800を参照すると、画像800の右に収束する水平線805の水平消失点804と、画像800の上に収束する垂直線807の垂直消失点806とに関して計算を実行することができる。画像内のエッジライン特徴部に応じて、第2の水平消失点を特定し使用することもできる。3D座標軸(x、y、zおよび画像内のu、v、深さ)が直交するとき、2つの消失点がわかっている場合、第3の消失点のロケーションは、既知の消失点に基づいて計算することができる(たとえば、r3=r1×r2)。
【００７８】
回転行列の正規化のために、次の定義がなされる。
【００７９】
【数９】
0006273400.tif 000010
【００８０】
カメラの水平軸が地上に平行に保持される画像の場合、パン=0である。この場合、Rは、次のように簡略化することができる。
【００８１】
【数１０】
0006273400.tif 000011
【００８２】
2Dマップ内のxy平面において位置が計算される実装形態の場合、ロール角度が推定される。ここで、x軸の周りに回転する、yz平面に沿った回転であるロール角度を特定するために、上記の計算が利用される。この回転の例は、図10Aおよび図10Bのダイアグラム1000および1002によって示す。
【００８３】
推定値は、カメラ回転状態の離散集合内で与えられる場合がある。たとえば、考えられるチルト状態、たとえば地上に対して上にチルトする状態、平行状態、または下にチルトする状態(すなわち、たとえば、+15度、0度、-15度)が与えられると、ロール角度が推定され得る。詳細には、カメラのチルト角度、またはチルト角度の符号(たとえば、正(上方)のチルトまたは負(下方)のチルト)が、特定された画像特徴部、カメラセンサデータなどに基づいて推定される。この推定に基づいて、次の定義が使用される。
【００８４】
【数１１】
0006273400.tif 000012
【００８５】
tilt=sin-1(-1/λ1)
roll=cos-1(λ2(v2-v0)/a)
【００８６】
チルト角度およびロール角度が-90度〜+90度内であることが与えられると、λ1の符号は(u1-u0)によって決定され、λ2の符号は(v2-v0)によって決定される。この式は、(たとえば、左または右から見た)ロールの概略推定値を与える。垂直方向の消失点のみが検出される場合、ロールの範囲は、上記と同様に決定され得る。
【００８７】
上記で説明した技法に加えて、カメラに関連付けられた方位センサ(たとえば、加速度計、ジャイロスコープなど)を介して、画像に対するカメラの回転を少なくとも部分的に特定することができる。したがって、上記の例では、地球に対するカメラのチルトまたはチルトの方向(たとえば、上方または下方)は、画像データに加えて、または画像データの代わりに加速度データから計算することができる。たとえば、カメラのチルトおよび/またはパンを計算するために、センサからの情報を使用して決定された重力ベクトルが使用され得る。さらに、画像に対するカメラの回転を特定するために使用される情報の少なくとも一部は、画像自体以外の他の手段によって取得することができる。たとえば、そのような情報は、ネットワーク測定値をヒートマップまたは署名データと比較することによってネットワーク測定値から取得され得る。
【００８８】
別の例として、複数のターゲットまたは面が特定される画像の場合、カメラの回転推定値をさらに改良するために、検出されたターゲットおよび/または面の各々に関連する情報を使用することができる。たとえば、交わる壁または内側もしくは外側の隅などの2つ以上の非平行な壁を示す画像の処理は、エッジライン特徴部に対応する情報と、検出された壁の各々に関する消失点とを抽出することによって進行し得る。続いて、検出されたエッジライン特徴部および消失点の各々に対応する組み合わされた情報は、上記で説明したように、カメラの回転推定値の精度を上げるために使用され得る。
【００８９】
上記で説明した技法は、カメラ610によってキャプチャされた任意の所与の画像が注目する1つのオブジェクトを含むシナリオに適用することができる。画像内に複数のオブジェクトが存在し、オブジェクトが周辺の環境の様々な壁に関連付けられる場合、上記で説明した計算に役立つように、オブジェクトの各々に対応する消失点を特定し使用することができる。
【００９０】
上記で説明した技法を利用することによって、コンピュータビジョン検出からのキーポイントの数および/または配置が、それ自体では姿勢推定には不十分であるときでも、2Dマップに関してカメラの姿勢のロバストな概略推定を実行することができる。いくつかの実装形態では、店頭または他のターゲットオブジェクトへのカメラ回転の概略推定は、水平消失点のみまたは複数の消失点を用いて実行され得る。いくつかの実装形態では、重力ベクトルとともに、単一の消失点が使用され得る。さらに、この推定は、検出された線における、ある量の不完全性を許容することができる。マップが使用される測位目的の場合、本明細書で説明する推定は、測位精度の大幅な改善をもたらす。
【００９１】
上記で説明したように、店頭の看板または他のPOIが検出された後、POI自体ではなく、床、屋根などのエッジなどのPOIの周りの線に基づいて、姿勢推定が実行される。ロケーションのカメラビューは、検出された画像の平面に平行な、ドア、屋根、および/または床の線に基づいて推定され得る。関連するカメラパラメータがわかっているとき、パンおよびチルトの角度を計算するために、正確な消失点位置を使用することができる。カメラパラメータがわかっていないとき、概略推定(たとえば、左、右、上部、または下部からのビュー)を実行することができる。
【００９２】
図11は、本明細書で説明する高速テンプレートマッチングを使用し得る、視覚ベースの屋内測位システムに適用される際の、前図に示したシステムの例示的な実装形態を示す。図11に示すように、会場レイアウトおよびPOI情報1120は、モール環境内の店頭に関するマップおよびロケーション情報を含む。この会場レイアウトおよびPOI情報1120は、適用方向またはマップ方向の一部としてモバイルデバイスに提供され得る。いくつかの実装形態では、この情報は、図4のテンプレートマッチング部421などのテンプレートマッチングシステムと統合され得る。代替実装形態では、この画像は、ロケーションまたはロケーション補助サービスプロバイダに関連付けられたネットワークサーバからのサービスとして提供される場合があり、情報には、モバイルデバイスによってサーバからアクセスし得る。いくつかの実装形態では、この情報は、他の実装形態では情報に一般にアクセス可能であり得る、会場レイアウトおよびPOI情報1120によって表されるエリア内に物理的に存在するモバイルデバイスによってのみアクセスされ得る。GAP(登録商標)およびALDO(登録商標)のストアのロケーションは、会場レイアウトおよびPOI情報1120の一部として、それぞれ、ロケーション1125および1130として示す。ユーザが、ユーザデバイスにロケーション情報を提供するネットワーク信号またはGPSロケーション信号にアクセスできない場合、ユーザは、画像キャプチャプロセスS1100の一部としてターゲットオブジェクト1134を含む画像1135などの画像をキャプチャし得る。したがって、ユーザによって保持されたカメラを考慮して、ターゲットオブジェクト1134を有する特定の店頭が、位置サービスまたはロケーションサービスのための視覚的合図として検出される。
【００９３】
S1102では、画像1135からのターゲットオブジェクト1134をマッチングさせるために、テンプレートマッチングシステムにアクセスされる。テンプレートマッチングシステムおよび関連の姿勢テンプレートは、画像1135をキャプチャしたモバイルデバイス内に完全に含まれ得るか、または、上記で説明したロケーションサービスを提供するネットワークサーバの一部であり得る。そのようなテンプレートマッチングシステムは、会場レイアウトおよびPOI情報1120によって表されるエリア内の店頭に基づく複数のテンプレートを含み得る。このテンプレートマッチングシステムは、ALDO(登録商標)ロゴおよびGAP(登録商標)ロゴからの異なる斜視図からの複数の姿勢テンプレートを含む。次いで、ターゲットオブジェクト1134とのマッチングを特定するために、画像1135に対してチェックされる姿勢テンプレートの数を低減させるのに姿勢情報を使用した高速テンプレートマッチングシステムが使用され得る。
ターゲットオブジェクト1134を特定の姿勢テンプレートと関連付けるためにマッチングがなされると、次いで、S1104においてユーザのロケーションおよび向きを割り出すためにS1102においてテンプレートマッチングの一部として特定された姿勢情報とともに、少なくとも部分的に、会場レイアウトおよびPOI情報1120が使用され得る。会場レイアウトおよびPOI情報1120がターゲットオブジェクト1134に関連付けられたマップロケーションを含むので、姿勢情報は、画像1135をキャプチャしたカメラに関連付けられた向首情報を提供し、ユーザがカメラと同じ方向に面するものと仮定すれば、2Dマップ上のユーザの向きは、店頭の壁に対するカメラ回転角度に基づいて割り出される。関連のエリア内のユーザの考えられるロケーションを改良するために、この角度を使用することもできる。
【００９４】
図12に示すコンピュータシステム1200は、図1および図4に示すデバイスなどの、前に説明したコンピュータ化デバイスの構成要素および/または機能を少なくとも部分的に実装するために利用され得る。図12は、本明細書で説明する様々な他の実装形態によって提供される方法を実行することができ、かつ/または、モバイルデバイスもしくは他のコンピュータシステムとして機能することができるコンピュータシステム1200の一実装形態の概略図を提供する。図12は、様々な構成要素の一般化された図を提供し、そのいずれか、またはすべてが適宜、利用され得る。したがって、図12は、個々のシステム要素をいかにして、比較的別々にまたは比較的十分に統合して実装し得るかを広く示している。
【００９５】
バス1205を介して電気的に結合することができる(または、他の方法で適宜、通信し得る)ハードウェア要素を備えるコンピュータシステム1200を示す。ハードウェア要素は、限定はしないが、1つもしくは複数の汎用プロセッサおよび/または1つもしくは複数の(デジタル信号処理チップ、グラフィックス加速プロセッサなどの)専用プロセッサを含む1つもしくは複数のプロセッサ1210と、限定はしないが、マウス、キーボードなどを含むことができる1つもしくは複数の入力デバイス1215と、限定はしないが、表示デバイス、プリンタなどを含むことができる1つもしくは複数の出力デバイス1220とを含み得る。プロセッサ1210は、たとえば、インテリジェントハードウェアデバイス、たとえば中央処理ユニット(CPU)、マイクロコントローラ、ASICなどを含むことができる。他のプロセッサタイプも利用することができる。
【００９６】
コンピュータシステム1200は、限定はしないが、ローカルストレージおよび/もしくはネットワークアクセス可能なストレージを備えることができ、かつ/または、限定はしないが、ディスクドライブ、ドライブアレイ、光ストレージデバイス、ならびに、プログラム可能、フラッシュ更新可能などとすることができるランダムアクセスメモリ(「RAM」)および/もしくは読取り専用メモリ(「ROM」)などの固体ストレージデバイスを含むことができる1つあるいは複数の非一時的ストレージデバイス1225をさらに含む(かつ/あるいは非一時的ストレージデバイス1225と通信する)場合がある。そのようなストレージデバイスは、限定はしないが、様々なファイルシステム、データベース構造などを含む、任意の適切なデータストアを実装するように構成される場合がある。
【００９７】
コンピュータシステム1200は、通信サブシステム1230を含む場合もあり、通信サブシステム1230は、限定はしないが、モデム、ネットワークカード(ワイヤレスもしくは有線)、赤外線通信デバイス、ワイヤレス通信デバイスおよび/またはチップセット(Bluetooth(登録商標)デバイス、1202.11デバイス、WiFiデバイス、WiMaxデバイス、セルラー通信設備など)などを含むことができる。通信サブシステム1230は、データが、ネットワーク(一例を挙げるため以下で説明するネットワークなど)、他のコンピュータシステム、および/または、本明細書で説明する任意の他のデバイスと交換されることを可能にし得る。多くの実装形態において、コンピュータシステム1200は、本明細書において、上記で説明したように、RAMデバイスまたはROMデバイスを含むことができる作業メモリ1235をさらに備えることになる。
【００９８】
コンピュータシステム1200は、本明細書で説明するように、オペレーティングシステム1240、デバイスドライバ、実行可能ライブラリ、ならびに/または、様々な実装形態によって提供されるコンピュータプログラムを備え得る、かつ/もしくは、他の実装形態によって提供される方法を実装し、かつ/もしくはシステムを構成するように設計され得る、1つもしくは複数のアプリケーション1245などの他のコードを含む、ワーキングメモリ1235内に現在配置されているものとして示されたソフトウェア要素を備えることもできる。単なる例として、本明細書で説明した1つまたは複数のプロセスは、コンピュータ(および/またはコンピュータ内のプロセッサ)によって実行可能なコードおよび/または命令として実装されてもよい。そのようなコードおよび/または命令は、説明した方法に従って1つまたは複数の動作を実行するために、汎用コンピュータ(または他のデバイス)を構成し、および/または適合させることに使用することができる。
【００９９】
これらの命令および/またはコードのセットは、上記で説明したストレージデバイスデバイス1225などのコンピュータ可読記憶媒体上に記憶され得る。場合によっては、記憶媒体は、システム1200などのコンピュータシステム内に組み込むことができる。他の実装形態では、記憶媒体は、そこに記憶された命令/コードを用いて汎用コンピュータをプログラムし、構成し、および/または適合させるために使用できるように、コンピュータシステムから分離することができ(たとえば、コンパクトディスクなどのリムーバブル媒体)、かつ/またはインストールパッケージにおいて提供することができる。これらの命令は、コンピュータシステム1200よって実行可能な実行可能コードの形態をとる場合があり、ならびに/または、ソースおよび/もしくはインストール可能コードの形態をとる場合があり、ソースおよび/もしくはインストール可能コードは、(たとえば、様々な一般的に利用可能なコンパイラ、インストールプログラム、圧縮/解凍ユーティリティ、などのいずれかを使用する)コンピュータシステム1200上でのコンパイルおよび/またはインストールに際し、次いで、実行可能コードの形態をとる。
【０１００】
大幅な変形が特定の要件に従ってなされる場合がある。たとえば、カスタマイズされたハードウェアが使用される場合もあり、かつ/または、特定の要素が、ハードウェア、ソフトウェア(アプレットなどのポータブルソフトウェアを含む)、もしくはその両方で実現される場合がある。さらに、ネットワーク入力/出力デバイスなどの他のコンピューティングデバイスへの接続が利用される場合がある。
【０１０１】
本開示による方法を実行するために、(コンピュータシステム1200などの)コンピュータシステムが使用される場合がある。そのような方法の手順のいくつかまたはすべては、ワーキングメモリ1235に含まれる(オペレーティングシステム1240および/またはアプリケーション1245などの他のコードに組み込まれる場合がある)1つまたは複数の命令の1つまたは複数のシーケンスを実行するプロセッサ1210に応答して、コンピュータシステム1200によって実行される場合がある。そのような命令は、ストレージデバイス1225のうちの1つまたは複数などの、別のコンピュータ可読媒体からワーキングメモリ1235に読み込まれる場合がある。単なる例として、ワーキングメモリ1235に含まれる命令のシーケンスの実行は、プロセッサ1210に、本明細書で説明する方法の1つまたは複数の手順を実行させる場合がある。
【０１０２】
本明細書において使用されるときに、「機械可読媒体」および「コンピュータ可読媒体」という用語は、機械を特定の方式で動作させるデータを与えることに関与する任意の媒体を指す。コンピュータシステム1200を使用して実装される一実装形態では、様々なコンピュータ可読媒体が、実行のためにプロセッサ1210に命令/コードを与えることに関与する場合があり、かつ/またはそのような命令/コードを(たとえば、信号として)記憶および/または搬送するために使用される場合がある。多くの実装形態において、コンピュータ可読媒体は、物理的な記憶媒体および/または有形の記憶媒体である。そのような媒体は、限定はしないが、不揮発性媒体、揮発性媒体、および伝送媒体を含む、数多くの形をとり得る。不揮発性媒体は、たとえば、ストレージデバイス1225などの光ディスクおよび/または磁気ディスクを含む。揮発性媒体は、限定はしないが、ワーキングメモリ1235などのダイナミックメモリを含む。伝送媒体は、限定はしないが、バス1205、ならびに通信サブシステム1230の様々な構成要素(および/または通信サブシステム1230が他のデバイスとの通信を提供する媒体)を備える電線を含む、同軸ケーブル、銅線、および光ファイバーを含む。したがって、伝送媒体は、波(限定はしないが、無線波データ通信および赤外線データ通信中に生成されるような電波、音波、および/または光波を含む)の形をとることもできる。
【０１０３】
物理的な、かつ/または有形のコンピュータ可読媒体の一般的な形は、たとえば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、CD-ROM、Blu-Ray(登録商標)ディスク、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを有する任意の他の物理媒体、RAM、PROM、EPROM、フラッシュEPROM、任意の他のメモリチップまたはカートリッジ、以下において説明される搬送波、あるいはコンピュータが命令および/またはコードを読み取ることのできる任意の他の媒体を含む。
【０１０４】
様々な形のコンピュータ可読媒体が、1つまたは複数の命令の1つまたは複数のシーケンスを実行するためにプロセッサ1210に搬送する際に関わる場合がある。単なる例として、命令は最初に、リモートコンピュータの磁気ディスクおよび/または光ディスク上で搬送され得る。リモートコンピュータは、そのダイナミックメモリ内に命令をロードし、コンピュータシステム1200によって受信および/または実行されるべき送信媒体上の信号として命令を送信する場合がある。電磁信号、音響信号、および/または光信号などの形態であってもよいこれらの信号はすべて、本発明の様々な実装形態による、命令を符号化することができる搬送波の例である。
【０１０５】
通信サブシステム1230(および/またはその構成要素)は、一般に信号を受信し、次いで、バス1205は、信号(および/または、信号によって搬送されるデータ、命令など)をワーキングメモリ1235に搬送する場合があり、プロセッサ1205は、ワーキングメモリ1235から命令を取り出し、実行する。作業用メモリ1235が受け取った命令は、場合によっては、プロセッサ1210による実行前または実行後にストレージデバイス1225上に記憶され得る。
【０１０６】
図13は、周辺情報を使用した高速テンプレートマッチングのためのシステムを可能にするために、様々な実装形態に従って使用することができるネットワーク化コンピューティングデバイスのシステム1300の概略図を示す。たとえば、様々な実装形態では、図4のモバイルデバイス400は、ネットワーク1310を介してサーバ1360、データベース1320、および他のコンピューティングデバイス1305に結合される、図13に示すコンピューティングデバイス1305であり得る。システム1300は、1つまたは複数のユーザコンピューティングデバイス1305を含むことができる。ユーザコンピューティングデバイス1305は、汎用のパーソナルコンピュータまたはワークステーションとすることができる。これらのユーザコンピューティングデバイス1305はまた、本発明の方法を実施するように構成された1つまたは複数のアプリケーション、ならびに1つまたは複数のオフィスアプリケーションと、データベースクライアントおよび/またはサーバアプリケーションと、ウェブブラウザアプリケーションとを含む、様々なアプリケーションのいずれも有し得る。代替として、ユーザコンピューティングデバイス1305は、ネットワーク(たとえば、以下で説明するネットワーク1310)を介して通信すること、および/またはウェブページもしくは他のタイプの電子文書を表示し、ナビゲートすることが可能な、シンクライアントコンピュータ、インターネット対応携帯電話、スマートフォン、タブレット、ファブレット、および/または携帯情報端末(PDA)などの、任意の他の電子デバイスとすることができる。システム1300は、3つのユーザコンピューティングデバイス1305a〜cとともに示されているが、任意の数のユーザコンピューティングデバイスをサポートすることができる。
【０１０７】
本発明のいくつかの実装形態は、ネットワーク1310を含むことができるネットワーク化環境において動作する。ネットワーク1310は、限定はしないが、TCP/IP、SNA、IPXなどを含む、様々な市販のプロトコルのうちのいずれかを使用したデータ通信をサポートすることができる、当業者にとって身近な任意のタイプのネットワークとすることができる。単に例として、ネットワーク1310は、限定はしないが、イーサネット（登録商標）ネットワーク、トークンリングネットワークなどを含むローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(WAN)、限定はしないが、仮想私設ネットワーク(「VPN」)を含む仮想ネットワーク、インターネット、イントラネット、エクストラネット、公衆交換電話網(「PSTN」)、赤外線ネットワーク、限定はしないが、IEEE1302.11プロトコルスイート、もしくは任意の他のワイヤレスプロトコルのうちのいずれの下でも動作するネットワークを含むワイヤレスネットワーク、ならびに/または、これらおよび/もしくは他のネットワークの任意の組合せとすることができる。ネットワーク1310は、様々なコンピューティングデバイスによるネットワーク1310へのアクセスを可能にするためのアクセスポイントを含み得る。
【０１０８】
本発明の実装形態は、1つまたは複数のサーバ1360を含むことができる。サーバ1360の各々は、限定はしないが、上で論じたもののうちのいずれをも含むオペレーティングシステム、ならびにどの商業的に(または自由に)入手可能なサーバオペレーティングシステムも有して構成され得る。サーバ1360の各々は、1つまたは複数のユーザコンピューティングデバイス1305および/または他のサーバ1360にサービスを提供するように構成され得る1つまたは複数のアプリケーションを稼動中であってもよい。
【０１０９】
単に例として、サーバ1360のうちの1つは、単に例として、ユーザコンピューティングデバイス1305からの、ウェブページまたは他の電子文書についての要求を処理するのに使われ得るウェブサーバであってもよい。いくつかの実装形態では、サーバ1360は、上記で説明したロケーションサービスを作動する場合があり、1つまたは複数のサーバ1360において少なくとも部分的に姿勢テンプレートマッチングが実行され、マッチングのために使用される姿勢テンプレートがデータベース1320に記憶される。ウェブサーバは、HTTPサーバ、FTPサーバ、CGIサーバ、データベースサーバ、Java(登録商標)サーバなどを含む様々なサーバアプリケーションを稼動することもできる。本発明のいくつかの実装形態では、ウェブサーバは、本発明の方法を実行するように、ユーザコンピューティングデバイス1305のうちの1つまたは複数におけるウェブブラウザ内で作動することができるウェブページをサービスするように構成され得る。そのようなサーバは、特定のIPアドレスに関連付けられる場合があるか、または、特定のURLを有するモジュールに関連付けられる場合があり、したがって、プライバシーを保護するためにモバイルデバイス400に提供されるロケーションサービスの一部として地理的ポイントまたはターゲットオブジェクトのセキュアな指示を与えるために、モバイルデバイス400などのモバイルデバイスと対話し得るセキュアナビゲーションモジュールを記憶し得る。代替実装形態では、サーバ1360は、ユーザコンピューティングデバイス1305にダウンロードされ得るアプリケーションを提供する場合があり、このアプリケーションは、周辺情報に基づいて高速テンプレートマッチングを提供するためにコンピューティングデバイスによってローカルに実行され得るテンプレートマッチングモジュールを備える。
【０１１０】
さらなる実装形態によれば、1つまたは複数のサーバ1360は、ファイルサーバとして機能することができ、かつ/あるいはユーザコンピューティングデバイス1305および/または別のサーバ1360上で稼動するアプリケーションによって組み込まれた、様々な実装形態の方法を実装するのに必要なファイル(たとえば、アプリケーションコード、データファイルなど)のうちの1つまたは複数を含むことができる。代替として、当業者には理解されるように、ファイルサーバがすべての必要なファイルを含むことができ、そのようなアプリケーションを、ユーザコンピューティングデバイス1305および/またはサーバ1360によってリモートに呼び出させる。本明細書において様々なサーバ(たとえば、アプリケーションサーバ、データベースサーバ、ウェブサーバ、ファイルサーバなど)を参照して記載した機能は、実装特有の必要性およびパラメータに依存して、単一のサーバおよび/または複数の専用サーバによって実施され得ることに留意されたい。
【０１１１】
いくつかの実装形態では、システムは、1つまたは複数のデータベース1320を含むことができる。データベース1320のロケーションは自由裁量であり、単に例として、データベース1320aは、サーバ1360a(および/またはユーザコンピューティングデバイス1305)に対してローカルな(および/またはその中に存在する)記憶媒体上に存在してもよい。代替として、データベース1320bは、データベース1320bが(たとえば、ネットワーク1310を介して)これらのうちの1つまたは複数と通信することができる限り、ユーザコンピューティングデバイス1305またはサーバ1360a、bのいずれかまたはすべてから離れることができる。実装形態の特定のセットにおいて、データベース1320は、当業者にとって身近なストレージエリアネットワーク(「SAN」)内に存在することができる。(同様に、ユーザコンピューティングデバイス1305またはサーバ1360に起因する機能を実施するためのどの必要なファイルも、必要に応じて、それぞれのコンピュータ上にローカルに、および/またはリモートに記憶され得る)。実装形態の1つのセットでは、データベース1320は、SQLフォーマットのコマンドに応答してデータを記憶し、更新し、取り出すように適合されたリレーショナルデータベースとすることができる。データベースは、たとえば、上記で説明したデータベースサーバによって制御および/または維持されてもよい。そのようなデータベースは、安全性レベルに適した情報を記憶することができる。
【０１１２】
先に論じられた方法、システム、およびデバイスは例である。様々な代替的な構成は、様々な手順または構成要素を適宜、省略、置換、または追加することができる。たとえば、代替方法では、段階は上記の説明とは異なる順番で実行されてよく、様々な段階が追加、省略、または組み合わされてよい。また、いくつかの構成に関して記載された特徴は、様々な他の構成内に組み合わされてよい。構成の様々な態様および要素は、同様の方法で組み合わされてよい。また、技術は徐々に発達しており、したがって、要素の多くは、例であり、本開示または特許請求の範囲を限定しない。
【０１１３】
例示的な構成(実装形態を含む)の完全な理解をもたらすために、説明において具体的な詳細が与えられている。しかしながら、構成は、これらの具体的な詳細なしに実施されてもよい。たとえば、周知の回路、プロセス、アルゴリズム、構造、および技術は、構成を曖昧にすることを避けるために、不必要な詳細なしで示されている。この説明は、例示的な構成のみを提供し、特許請求の範囲、適用可能性、または構成を限定しない。むしろ、構成に関するこれまでの説明は、当業者に、説明された技法を実施するのに役に立つ説明を提供することになる。本開示の趣旨または範囲から逸脱することなく、要素の機能および配置において、様々な変更が行われる場合がある。
【０１１４】
構成は、フロー図またはブロック図として描写されるプロセスとして記載されてよい。各々は動作について順次のプロセスとして説明する場合があるが、動作の多くは、並列に、または同時に実行することができる。さらに、動作の順序は、並べ替えられる場合がある。プロセスは、図に含まれていない追加のステップを有してもよい。さらに、方法の例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装される場合がある。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装されるとき、必要なタスクを実行するプログラムコードまたはコードセグメントは、記憶媒体などの非一時的コンピュータ可読媒体に記憶される場合がある。プロセッサは、説明されたタスクを実行する場合がある。
【０１１５】
いくつかの例示的な構成について説明したが、様々な変更形態、代替構成、および等価物は、本開示の趣旨から逸脱することなく使用され得る。たとえば、上記の要素は、より大きいシステムの構成要素である場合があり、他の規則が、本発明の適用例よりも優先されるか、またはさもなければ本発明の適用例を変更する場合がある。また、上記の要素が考慮される前、間、または後に、いくつかのステップを行う場合がある。
【符号の説明】
【０１１６】
100  モバイルデバイス
110  カメラ
112  視野
130  周辺情報、重力ベクトル
140  画像
142  周辺情報、平行線周辺情報
144  周辺情報、平行線周辺情報
146  周辺情報、消失点周辺情報
150  ターゲットオブジェクト
152  姿勢
400  モバイルデバイス
401  カメラ
403  ディスプレイ出力部
404  ユーザ入力モジュール
410  プロセッサ
412  ワイヤレストランシーバ
414  アンテナ
416  リンク
420  メモリ
421  テンプレートマッチング部
423  オペレーティングシステム
424  アプリケーション
430  方位センサ
440  バス
442  SPSトランシーバ
444  SPSアンテナ
446  リンク
500  システム
502  特徴抽出器
504  カメラ姿勢計算機
506  注目点検出器、POI検出器
510  カメラ
600  システム
602  エッジ抽出器
604  消失点推定器
606  回転行列計算モジュール
700  画像
750  GAP(登録商標)ストアのロゴ
800  画像
801  店舗ロゴ
804  水平消失点
805  水平線
806  垂直消失点
807  垂直線
1000  ダイアグラム
1102  ダイアグラム
1120  会場レイアウトおよびPOI情報
1125  GAP(登録商標)のロケーション
1130  ALDO(登録商標)のロケーション
1134  ターゲットオブジェクト
1135  画像
1200  コンピュータシステム
1205  バス
1210  プロセッサ
1215  入力デバイス
1220  出力デバイス
1225  ストレージデバイス
1230  通信サブシステム
1235  作業メモリ
1240  オペレーティングシステム
1245  アプリケーション
1300  システム
1305a  コンピューティングデバイス
1305b  コンピューティングデバイス
1305c  コンピューティングデバイス
1310  ネットワーク
1320a  データベース
1320b  データベース
1360a  サーバ
1360b  サーバ
【図１】
0006273400.tif 000013
【図２】
0006273400.tif 000014
【図３Ａ】
0006273400.tif 000015
【図３Ｂ】
0006273400.tif 000016
【図４】
0006273400.tif 000017
【図５】
0006273400.tif 000018
【図６】
0006273400.tif 000019
【図７】
0006273400.tif 000020
【図８】
0006273400.tif 000021
【図９】
0006273400.tif 000022
【図１０Ａ】
0006273400.tif 000023
【図１０Ｂ】
0006273400.tif 000024
【図１１】
0006273400.tif 000025
【図１２】
0006273400.tif 000026
【図１３】
0006273400.tif 000027