(57)【特許請求の範囲】
【請求項１】
画像認識における特徴マッチングのための方法であって、
クエリ画像について複数のキーポイントを取得することと、
キーポイントの配置に基づいて、前記クエリ画像についてキーポイントクラスタのセットを定義することと、
前記クエリ画像についてのキーポイントの少なくとも１つのサブセットを、１または複数のターゲット画像についてのキーポイントにマッチングすることによって、前記クエリ画像についてのアンカーマッチを確立することと、ここで、前記アンカーマッチは、１または複数のターゲット画像内のキーポイントと閾値を超えてマッチングされたキーポイントマッチであり、前記閾値を下回るキーポイントマッチは、前記対応する１または複数のターゲット画像に係る部分マッチであり、
前記ターゲットキーポイントクラスタについてのアンカーマッチに基づいてクエリキーポイントクラスタをターゲットキーポイントクラスタにマッチングすることと、
クラスタマッチングの目的のために部分マッチとして前記クエリキーポイントクラスタから前に除外されたキーポイントを、後続の幾何学的検証動作のための前記クエリキーポイントクラスタの一部として保存することと、
を備える方法。
【請求項２】
前記閾値は、アウトライアマッチを除外するように選択され、アウトライアマッチは偽陽性キーポイントマッチである、請求項１に記載の方法。
【請求項３】
アンカーマッチは、前記クエリ画像についてのスケール空間レベルの選択されたサブセットの中で生じる、前記クエリ画像内のキーポイントについてのキーポイントマッチである、請求項１に記載の方法。
【請求項４】
前記部分的にマッチングされたキーポイントは、部分マッチが前記キーポイントについて見つかり、そのようなマッチが前記ターゲットキーポイントクラスタ内であるか否かについてのバイナリ決定に基づいて、前記クエリキーポイントクラスタ内に保持される、
請求項１に記載の方法。
【請求項５】
アンカーマッチは、前記クエリ画像についてのキーポイントのサブセットの各々の周りの局所画素情報に基づいて少なくとも部分的にマッチングされるキーポイントマッチである、請求項１に記載の方法。
【請求項６】
前記局所画素情報は、画素勾配、画素色彩、クラスタ形状、あるいは、キーポイント配置のうちの少なくとも１つを含む、請求項５に記載の方法。
【請求項７】
アンカーマッチを確立することは、
前記クエリ画像内のキーポイントを前記ターゲット画像内のキーポイントにマッチングすることと、
クラスタマッチングの目的のために、前記クエリキーポイントクラスタからの部分的にマッチングされたキーポイントを除外することと、
キーポイントがその対応するキーポイントクラスタから除外されるべきか否かに関する以後のバイナリ決定のために、前記クエリ画像内のキーポイントについてのキーポイントマッチ情報を保持することと、
を含む、請求項１に記載の方法。
【請求項８】
クエリキーポイントクラスタからのキーポイントを、該キーポイントがマッチングされないか、前記ターゲットキーポイントクラスタ以外のクラスタ内のキーポイントとマッチングされる場合に除外することをさらに備える、請求項１に記載の方法。
【請求項９】
キーポイントは、前記クエリ画像についてのスケール空間内の局所極大画素または局所極小画素である、請求項１に記載の方法。
【請求項１０】
キーポイントは、前記クエリ画像のぼやかされたバージョンに対応する複数のスケール空間にわたって確かめられる、請求項１に記載の方法。
【請求項１１】
キーポイントは、キーポイントマッチングに使用される記述子で表される、請求項１に記載の方法。
【請求項１２】
前記クエリ画像についてのスケール空間にわたる前記キーポイントの空間位置；
前記キーポイントが検出される前記スケール空間におけるスケールレベル；
のうちの少なくとも１つに基づいて、キーポイントがクラスタリングされる、請求項１に記載の方法。
【請求項１３】
前記クエリ画像についての前記キーポイントは、複数の画像スケール空間にわたって取得され、さらに、
前記キーポイントクラスタのセットからの１または複数のより低い密度のクラスタをプルーニングすることと；
前記キーポイントクラスタのセット内の前記クラスタのうちの少なくともいくつかから前記クエリ画像のスケール空間のより低いレベルで検出されたキーポイントをプルーニングすることと；
のいずれか１つによって前記クエリ画像についてのキーポイントの数を減らすことを備える、請求項１に記載の方法。
【請求項１４】
前記クエリ画像についての前記数が減ったキーポイントに係る記述子を生成することをさらに備える、請求項１３に記載の方法。
【請求項１５】
記述子を生成する前に前記プルーニングされたキーポイントおよびクラスタを破棄することをさらに備える、請求項１４に記載の方法。
【請求項１６】
前記クエリ画像または前記クエリ画像内のオブジェクトをターゲット画像にマッチングするために、前記数が減ったキーポイントに係る前記記述子を特徴マッチングデバイスに送信することをさらに備える、請求項１４に記載の方法。
【請求項１７】
前記キーポイントクラスタのセット内の前記クラスタの各々についてのキーポイント密度を取得することをさらに備える、請求項１３に記載の方法。
【請求項１８】
前記クエリ画像についての複数のスケール空間にわたるキーポイントの配置を取得することと、
前記キーポイントの配置に基づいて前記クエリ画像についてのスケールを推定することと
をさらに備える、請求項１に記載の方法。
【請求項１９】
カットオフスケールが、該カットオフスケールまでの空間スケールの中にキーポイントの閾値割合を維持するように、前記画像スケールが、前記スケール空間上の前記キーポイントの配置から推定される、請求項１８に記載の方法。
【請求項２０】
前記推定されたクエリ画像スケールに基づいてキーポイントをクラスタリングするためにカーネルサイズを選択することをさらに備える、請求項１８に記載の方法。
【請求項２１】
キーポイントクラスタリングを実行するために、前記選択されたカーネルサイズで前記クエリ画像のぼやかされたバージョンを利用することをさらに備える、請求項２０に記載の方法。
【請求項２２】
複数のターゲット画像についての情報を記憶する記憶デバイスと、
前記記憶デバイスに結合された処理回路と
を備え、
前記処理回路は、
クエリ画像についての複数のキーポイントを取得し、
キーポイント配置に基づいて前記クエリ画像についてのキーポイントクラスタのセットを定義し、
前記クエリ画像についてのキーポイントの少なくとも１つのサブセットを、１または複数のターゲット画像についてのキーポイントにマッチングすることによって、前記クエリ画像についてのアンカーマッチを確立し、ここで、前記アンカーマッチは、１または複数のターゲット画像内のキーポイントと閾値を超えてマッチングされたキーポイントマッチであり、前記閾値を下回るキーポイントマッチは、前記対応する１または複数のターゲット画像に係る部分マッチであり、
前記ターゲットキーポイントクラスタについてのアンカーマッチに基づいて、クエリキーポイントクラスタをターゲットキーポイントクラスタにマッチングし、
クラスタマッチングの目的のために部分マッチとして前記クエリキーポイントクラスタから前に除外されたキーポイントを、後続の幾何学的検証動作のための前記クエリキーポイントクラスタの一部として保持する、
ことに適応する、
特徴マッチングデバイス。
【請求項２３】
前記閾値は、アウトライアマッチを除外するように選択され、アウトライアマッチは偽陽性キーポイントマッチである、請求項２２に記載の特徴マッチングデバイス。
【請求項２４】
アンカーマッチは、前記クエリ画像に係るスケール空間レベルの選択されたサブセット内で生じる、前記クエリ画像内のキーポイントについてのキーポイントマッチである、請求項２２に記載の特徴マッチングデバイス。
【請求項２５】
前記処理回路は、さらに、
前記キーポイントについての部分マッチが見つかり、当該マッチが前記ターゲットキーポイントクラスタ内であるかどうかについてのバイナリ決定に基づいて前記クエリキーポイントクラスタ内の部分的にマッチングされたキーポイントを保持することに適応する、請求項２３に記載の特徴マッチングデバイス。
【請求項２６】
前記処理回路は、
前記クエリ画像内のキーポイントを前記ターゲット画像内のキーポイントにマッチングすることと、
クラスタマッチングの目的のために、前記クエリキーポイントクラスタから部分的にマッチングされたキーポイントを除外すること、
キーポイントがその対応するキーポイントクラスタから除外されるべきか否かに関する以後のバイナリ決定のために、前記クエリ画像内のキーポイントについてのキーポイントマッチ情報を保持することと
によって前記アンカーマッチを確立することに適応する、請求項２２に記載の特徴マッチングデバイス。
【請求項２７】
前記クエリ画像を取得するための画像取得デバイスをさらに備える、請求項２２に記載の特徴マッチングデバイス。
【請求項２８】
前記クエリ画像についてのキーポイントは、複数の画像スケール空間にわたって取得され、
前記処理回路は、
前記キーポイントクラスタのセットからの１または複数のより低い密度のクラスタをプルーニングすることと；
前記キーポイントクラスタのセット内の前記クラスタのうちの少なくともいくつかから前記クエリ画像のスケール空間のより低いレベルで検出されるキーポイントをプルーニングすることと；
のいずれか１つのよって前記クエリ画像についてのキーポイントの数を減らすことにさらに適応する、請求項２２に記載の特徴マッチングデバイス。
【請求項２９】
前記処理回路は、前記クエリ画像の前記数が減ったキーポイントについての記述子を生成することにさらに適応する、請求項２８に記載の特徴マッチングデバイス。
【請求項３０】
前記クエリ画像または前記クエリ画像内のオブジェクトをターゲット画像にマッチングするために、前記数が減ったキーポイントについての前記記述子を特徴マッチングデバイス送信することに適応した送信機をさらに備える、請求項２８に記載の特徴マッチングデバイス。
【請求項３１】
前記処理回路は、
前記クエリ画像についての複数のスケール空間にわたるキーポイントの配置を取得することと、
前記キーポイントの配置に基づいて前記クエリ画像についてのスケールを推定することと、
にさらに適応する、請求項２２に記載の特徴マッチングデバイス。
【請求項３２】
クエリ画像に対して複数のキーポイントを取得するための手段と、
キーポイント配置に基づいて前記クエリ画像についてのキーポイントクラスタのセットを定義するための手段と、
前記クエリ画像についてのキーポイントの少なくともサブセットを、１または複数のターゲット画像についてのキーポイントにマッチングすることによって、前記クエリ画像についてのアンカーマッチを確立するための手段と、ここで、前記アンカーマッチは、１または複数のターゲット画像内のキーポイントと閾値を超えてマッチングされたキーポイントマッチであり、前記閾値を下回るキーポイントマッチは、前記対応する１または複数のターゲット画像に係る部分マッチであり、
前記ターゲットキーポイントクラスタについてのアンカーマッチに基づいてクエリキーポイントクラスタをターゲットキーポイントクラスタにマッチングするための手段と
クラスタマッチングために部分マッチとして前記クエリキーポイントクラスタから前に除外されたキーポイントを、後続の幾何学的検証動作のための前記クエリキーポイントクラスタの一部として保持するための手段と、
を備える特徴マッチングデバイス。
【請求項３３】
特徴マッチングデバイス上で動作可能な１または複数の命令を備えるプロセッサ可読媒体であって、前記複数の命令は、処理回路によって実行されると、前記処理回路に対して、
クエリ画像に対して複数のキーポイントを取得させ、
キーポイントの配置に基づいて前記クエリ画像についてのキーポイントクラスタのセットを定義させ、
前記クエリ画像についてのキーポイントの少なくとも１つのサブセットを、１または複数のターゲット画像についてのキーポイントにマッチングすることによって、前記クエリ画像についてのアンカーマッチを確立させ、ここで、前記アンカーマッチは、１または複数のターゲット画像内のキーポイントと閾値を超えてマッチングされたキーポイントマッチであり、前記閾値を下回るキーポイントマッチは、前記対応する１または複数のターゲット画像に係る部分マッチであり、
前記ターゲットキーポイントクラスタについてのアンカーマッチに基づいてクエリキーポイントクラスタをターゲットキーポイントクラスタにマッチングさせ、
クラスタマッチングために部分マッチとして前記クエリキーポイントクラスタから前に除外されたキーポイントを、後続の幾何学的検証動作のための前記クエリキーポイントクラスタの一部として保持させる、プロセッサ可読媒体。
【発明の詳細な説明】
【米国特許法第１１９条に基づく優先権の主張】
【０００１】
本出願は、本出願の譲受人に譲渡され、参照により本明細書に組み込まれる、２００９年１２月２日に出願された「Improving Local Feature Classifier Performance and Efficiency and Convergence Rate of RANSAC by Using a Keypoint Clustering Method」と題する米国仮出願６１／２６５９５５号に優先権を主張する。
【技術分野】
【０００２】
１つの特徴は、コンピュータビジョンに関し、より詳細には、画像認識技術の性能や効率の改善、計算的複雑性の削減のための方法および技術に関する。
【背景技術】
【０００３】
様々なアプリケーションは、視覚表示（例えば、画像または映像）内のオブジェクトを識別することができる機械またはプロセッサを有することで利益を得ることができる。コンピュータビジョンの分野は、画像内のオブジェクトまたは特徴の識別を可能にする技術および／またはアルゴリズムの提供を試みる。ここで、オブジェクトまたは特徴は、１または複数のキーポイントを識別する記述子によって特徴付けられうる。これらの技術および／またはアルゴリズムは、さらに、複数のアプリケーションの中でも特に、顔認識、オブジェクト検出、画像マッチング、３次元構造構築、ステレオ対応、および／または、動作追跡に適用されることが多い。一般的に、オブジェクトまたは特徴認識は、特徴識別、画像検索、および／または、オブジェクト認識のために画像内の主要点（キーポイントとも呼ばれる）を識別することを含みうる。むしろ、キーポイントが選択され、その周りのパッチは、それらが、画像スケールの変化および／または回転に対して不変となり、かなりの範囲の歪み、視点の変化、および／または、照度のノイズと変化にわたってロバストなマッチングを提供するように処理される。さらに、画像検索およびオブジェクト認識のようなタスクに対して適切となるように、特徴記述子は、単一の特徴が複数のターゲット画像からの特徴の膨大なデータベースと高確率で正確にマッチングされうるという意味で特有であることが好まれうる。
【０００４】
画像内のキーポイントが検出および検索（locate）された後、それらは、様々な記述子を使用して識別または記述されうる。例えば、記述子は、他の複数の画像特徴もあるが、例えば、形状、色彩、テキスチャ、および／または、回転のような、画像内のコンテンツの視覚特徴を表しうる。次に、キーポイントに対応し、記述子によって表される個々の特徴は、既知のオブジェクトからの特徴のデータベースとマッチングされる。ゆえに、対応探索システムは、キーポイント検出器、特徴記述子、対応ロケータという３つのモジュールに分けられうる。これらの３つの論理モジュールにおいて、記述子の構築の複雑性および次元性は、特徴マッチングシステムの性能に対して直接的且つ顕著なインパクトを有する。
【０００５】
このような特徴記述子は、リアルタイムオブジェクト認識、３Ｄ再構築、パノラマスティチング、ロボットマッピング、ビデオトラッキング、および同様のタスクにおける応用を、益々見いだしつつある。これら応用に依存して、特徴記述子（または等価物）の送信および／または記憶は、オブジェクト検出の計算速度および／または画像データベースのサイズを制限しうる。モバイルデバイス（例えば、カメラ付き電話、モバイル電話など）、あるいは、分散カメラネットワークについて、情報（例えば、画像および／または画像記述子を含む）をノード間で伝送する際に、かなりの通信および電力リソースが消費されうる。ゆえに、特徴記述子の圧縮が、記憶スペース、待ち時間、送信を減らすために重要である。
【０００６】
コンピュータビジョンおよび／または画像取込インプリメンテーションは、処理集約型な傾向がある。オブジェクト認識は、アフィン変換および別の歪みによって悪化する不正確な特徴マッチングプロセスによって妨げられることが多く、結果として、真陽性（認識）の減少と、偽陽性（低下した精度）の増加を引き起こす。オブジェクト認識システムの分類ステージ、広域ベースラインのステレオマッチング、および、ポーズ推定（pose estimation）のようなコンピュータビジョンの分野では、汚染データを用いた正確なモデルのフィッティングが重要なステップである。基本前提は、データが、「インライア」（inliers）、すなわち、その配置がモデルパラメータのいくつかのセットによって説明されうるデータ（または、ポイント）と、モデルに当てはまらないデータである「アウトライア」（outliers）とから構成されることである。オブジェクト認識システムにおいてマッチングプロセスの後にアウトライアを拒否するために幾何学的一貫性または検証が課せられることが多いが、その計算コストは高く、しばしばオブジェクト認識システムのリアルタイム動作を妨げる。データフィッティングモデルのパラメータは、例えば、オブジェクト認識でのアウトライア拒否および画像スティッチングでのアウトライア拒否のために、ステレオマッチングまたは、射影変換における基本行列の推定に使用される可能性がある。例えば、ＲＡＮＳＡＣ（RANdom SAmple Consensus）は、汚染データを扱うために広く使用されるデータフィッティングモデルであり、それは、モデルパラメータを推定し、フィッティングを決定するために全てのデータを反復的に検証するためにデータからポイントのセットをランダムにサンプリングすることで機能する。しかしながら、インライア対アウトライアの比が下がるにつれ、ＲＡＮＳＡＣアルゴリズムは、飛躍的に遅く（すなわち、より低い収束速度に）なる。
【０００７】
よって、幾何学的検証技術の低い収束速度を改善すること、および／または、幾何学的検証の必要性を省略することを行う必要がある。
【発明の概要】
【０００８】
以下は、いくつかの実施形態の基本的な理解を提供するために、１または複数の実施形態の簡略化された概要を表す。この概要は、企図される全ての実施形態の広範囲な概観ではなく、全ての実施形態のキーまたは不可欠な要素を識別すること、あるいは、任意のあるいは全ての実施形態の範囲を描写することを意図しない。その唯一の目的は、後に示される、より詳細な記述への前置きとして、１または複数の実施形態のいくつかのコンセプトを簡易な形で提示することである。
【０００９】
画像認識システムにおける特徴マッチングを改善するために、様々な特徴が提供される。
【００１０】
第１の態様に従って、インライア対アウトライアのキーポイント比は、キーポイントをクラスタへと空間的に制約することによって増やされうる。クエリ（照会）画像の画像について複数のキーポイントが取得される。キーポイントは、クエリ画像のスケール空間における局所極大画素（local maxima pixel）あるいは局所極小画素（local minima pixel）である。例えば、キーポイントは、ぼやかされたバージョンのクエリ画像に対応する複数のスケール空間にわたって確認されうる。いくつかの例において、キーポイントは、キーポイントマッチングに使用される記述子で表されうる。
【００１１】
次に、キーポイント配置（例えば、複数のキーポイントについての）に基づき、クエリ画像についてキーポイントクラスタのセットが定義される。キーポイントは、（ａ）クエリ画像のスケール空間にわたるキーポイントの空間位置、あるいは、（ｂ）キーポイントが検出されるスケール空間におけるスケールレベルのうちの少なくとも１つに基づいてクラスタリングされうる。
【００１２】
次に、クエリ画像についてのキーポイントの少なくともサブセットを１または複数のターゲット画像についてのキーポイントにマッチングすることよって、クエリ画像についてのアンカーマッチ（Anchor match）が確立されうる。アンカーマッチは、閾値を超えて、１または複数のターゲット画像のキーポイントとマッチングされたキーポイントマッチ（keypoints match）でありうる。この閾値は、アウトライアマッチを除外するように選択される。ここで、アウトライアマッチは、偽陽性のキーポイントマッチである。加えて、アンカーマッチが、クエリ画像についてのスケール空間のレベルの選択サブセット内で生じるクエリ画像内のキーポイントについてのキーポイントマッチとなるようにスケールレベル優先度が課せられる。アンカーマッチは、クエリ画像についてのキーポイントの各サブセットの周りの局所画素情報に少なくとも部分的に基づいてマッチングされるキーポイントマッチを指しうる。局所画素情報は、画素勾配、画素色彩、クラスタ形状、あるいは、キーポイント配置のうちの少なくとも１つを含みうる。
【００１３】
アンカーマッチの後であっても、クエリキーポイントクラスタ内の別のキーポイントは、そのようなキーポイントが、ターゲットキーポイントクラスタ内のキーポイントに少なくとも部分的にマッチングされた場合、保持されうる。しかしながら、キーポイントは、そのようなキーポイントがマッチングされない場合、または、ターゲットキーポイントクラスタ以外のクラスタ内のキーポイントとマッチングされた場合にクエリキーポイントクラスタから除外されうる。
【００１４】
１つの例において、アンカーマッチを確立することは、（ａ）クエリ画像内のキーポイントをターゲット画像内のキーポイントとマッチングすること、および／または、（ｂ）キーポイントがその対応キーポイントクラスタから除外されるべきであるか否かについての後のバイナリ決定のために、クエリ画像内のキーポイントについてのキーポイントマッチ情報を保持することとを含みうる。
【００１５】
続いて、クエリキーポイントクラスタは、アンカーマッチのサブセットに基づいてターゲットキーポイントクラスタにマッチングされうる。
【００１６】
閾値以下のキーポイントマッチが部分マッチとみなされうることに注意されたい。これらの部分マッチについて、クエリキーポイントクラスタがターゲットキーポイントクラスタにマッチングされた後、クエリキーポイントクラスタ内のキーポイントは、バイナリ決定に基づいて、クラスタ内に保持されうる。クエリキーポイントクラスタ内のキーポイントに対するバイナリ決定は、部分マッチがキーポイントに対して見つかった否か、並びに、そのようなマッチが、ターゲットキーポイントクラスタ内であるか否かに基づきうる。
【００１７】
第２の特徴に従って、画像内の検出された全ての特徴を特徴マッチングに使用する代わりに、キーポイントが検出されるクラスタ密度および／またはスケールレベルに基づいてキーポイントはプルーニング（pruning:オブジェクトの突起除去）されうる。例えば、特徴マッチングには、低密度クラスタに含まれる特徴よりも高密度クラスタに含まれるキーポイントが好まれうる。１つの例において、クエリ画像のキーポイントは、複数の画像スケール空間にわたって取得される。次に、クエリ画像のキーポイントの数は、（ａ）キーポイントクラスタのセットから１または複数のより低い密度クラスタをプルーニングすること、および／または、（ｂ）クエリ画像のより低レベルのスケール空間で検出されたキーポイントをキーポイントクラスタのセット内のクラスタのうちの少なくともいくつかからプルーニングすることにより減らされうる。このために、キーポイントクラスタのセット内の各クラスタに対して、キーポイント密度が取得されうる。
【００１８】
続いて、クエリ画像について、数が減ったキーポイントについての記述子が生成される。プルーニングされたキーポイントおよび／またはクラスタは、記述子を生成する前に破棄されうる。次に、数が減ったキーポイントについての記述子は、クエリ画像、または、クエリ画像内のオブジェクトをターゲット画像とマッチングするために、特徴マッチングデバイスに送信されうる。
【００１９】
第３の特徴に従って、画像サイズ／解像度を推定するために、画像のスケール空間にわたる特徴配置に基づいて、画像スケーリングが行われうる。ここで、異なるスケールでのキーポイント配置におけるピークは、支配的な画像スケールを追跡し、オブジェクトサイズを大まかに追跡するために使用される。キーポイントの配置は、クエリ画像の複数のスケール空間にわたって取得されうる。次に、キーポイントの配置に基づいて、クエリ画像のスケールが推定されうる。この画像スケールは、スケール空間にわたるキーポイントの配置から推定され、カットオフスケールは、カットオフスケールまでの空間スケールの中に、キーポイントの閾値割合を維持する。次に、推定されたクエリ画像スケールに基づいて、キーポイントをクラスタリングするためのカーネルサイズが選択されうる。次に、選択されたカーネルサイズにおけるぼやかされたバージョンのクエリ画像が利用され、キーポイントクラスタリングを行う。
【００２０】
同様に、記憶デバイスおよび処理回路を備える特徴マッチングデバイスが提供される。記憶デバイスは、複数のターゲット画像についての情報を記憶しうる。処理回路は、（ａ）クエリ画像についての複数のキーポイントを取得すること、（ｂ）キーポイント配置に基づいてクエリ画像についてのキーポイントクラスタのセットを定義すること、（ｃ）クエリ画像についてのキーポイントの少なくともサブセットを１または複数のターゲット画像のキーポイントにマッチングすることによってクエリ画像のアンカーマッチを確立すること、および／または、（ｄ）アンカーマッチのサブセットに基づいてクエリキーポイントクラスタをターゲットキーポイントクラスタにマッチングすることに適合されうる。
【００２１】
全体を通して同様の参照符号が相応するものを特定している図と共に考慮された場合、次に示される詳細な記述から、様々な特徴、性質、利点が明確になるであろう。
【図面の簡単な説明】
【００２２】
【図１】図１は、クエリ画像に対してオブジェクト認識を行うための機能ステージを示すブロック図である。
【図２】図２は、例示的な画像取込ステージを示す。
【図３】図３は、例示的な画像処理ステージにおけるスケール空間生成を示す。
【図４】図４は、例示的な画像処理ステージにおける特徴検出を示す。
【図５】図５は、例示的な画像処理ステージにおける特徴記述子抽出を示す。
【図６】図６は、例示的な画像比較ステージにおける特徴マッチングを示す。
【図７】図７は、クエリ画像内のキーポイントクラスタを示す。
【図８Ａ】図８Ａは、キーポイントクラスタを用いてインライア対アウトライア比がどのように改善されるかを示す。
【図８Ｂ】図８Ｂは、キーポイントクラスタを用いてインライア対アウトライア比がどのように改善されるかを示す。
【図９】図９は、図８の方法に従ってクエリクラスタとターゲットクラスタとの間のキーポイントマッチングの例を示す。
【図１０】図１０は、クラスタリングを用いてキーポイントマッチングを実行するための方法を示すフローチャートである。
【図１１Ａ】図１１Ａは、アンカーポイントマッチング、クラスタ対応、バイナリキーポイントマッチングの例を示す。
【図１１Ｂ】図１１Ｂは、アンカーポイントマッチング、クラスタ対応、バイナリキーポイントマッチングの例を示す。
【図１２】図１２は、図１１の結果をさらに詳述した表である。
【図１３】図１３は、キーポイント単位マッチングに対するクラスタ単位マッチングの改善を示すブロック図である。
【図１４】図１４は、高解像度画像についてのキーポイント配置の例を示す。
【図１５】図１５は、低解像度画像についてのキーポイント配置の例を示す。
【図１６】図１６は、クラスタ対応の実行を容易にする、画像のカーネルスケーリングの方法を示す。
【図１７】図１７は、キーポイント密度に基づくクラスタプルーニングを示す。
【図１８】図１８は、キーポイント密度に基づいてキーポイントクラスタをプルーニングすることにより、クエリ画像のキーポイントを減らすための方法である。
【図１９】図１９は、キーポイントスケールに基づくキーポイントプルーニングの方法を示す。
【図２０】図２０は、キーポイント密度に基づいてキーポイントクラスタをプルーニングすることによって、クエリ画像についてのキーポイントを減らすための方法である。
【図２１】図２１は、画像マッチングデバイス例を示すブロック図である。
【図２２】図２２は、画像またはオブジェクト認識のために画像処理を実行することに適した例示的なモバイルデバイスを示すブロック図である。
【図２３Ａ】図２３Ａは、オブジェクト認識プロセスの一部として、画像スケーリング、特徴プルーニング、および／または、空間制約付き特徴マッチングのための方法を示すフロー図である。
【図２３Ｂ】図２３Ｂは、オブジェクト認識プロセスの一部として、画像スケーリング、特徴プルーニング、および／または、空間制約付き特徴マッチングのための方法を示すフロー図である。
【図２３Ｃ】図２３Ｃは、オブジェクト認識プロセスの一部として、画像スケーリング、特徴プルーニング、および／または、空間制約付き特徴マッチングのための方法を示すフロー図である。
【詳細な説明】
【００２３】
同様の参照番号が全体を通して同様のエレメントを指すために使用される図面に関して、様々な実施形態が記述される。次に続く記述において、説明を目的として、１または複数の実施形態の十分な理解を提供するために多数の特定な詳細が示される。しかしながら、そのような１または複数の実施形態が、これらの特定な詳細なしに実施されうることは明白でありうる。別の例において、１または複数の実施形態の記述を容易にするために、周知の構造およびデバイスがブロック図の形で示される。
【００２４】
概要
本明細書に記述される様々な特徴は、画像認識の速度および／または効率を改善することに関する。
【００２５】
第１の態様に従って，クエリ画像内のキーポイントがクラスタにグループ化される。クエリクラスタのキーポイントは、高い一致閾値に基づいてターゲットクラスタにマッチングされる。この閾値（あるいはそれ以上）を満たすクエリキーポイントは十分なマッチ（full match）であり、アンカーポイントとみなされる。この閾値は満たさないが、依然、対応ターゲットキーポイントを有するクエリキーポイントは、部分マッチである。次に、クエリクラスタとターゲットクラスタとの対応が、このアンカーポイントに基づいて確立される。対応ターゲットクラスタ内の部分マッチを有する追加のキーポイントは、クエリクラスタ中にもたらされる。他の全てのクエリキーポイント（マッチングされなかったキーポイントまたは異なるターゲットクラスタにマッチングしたもの）は、クエリクラスタにおいて無視される。部分的にマッチングされたキーポイントがバイナリ決定においてもちこまれるため（アンカーポイントマッチングの場合のような閾値／確からしさの決定ではない）、全ての可能なインライアキーポイントは、空間的反復構造が存在する場合であっても受け入れられる。
【００２６】
第２の態様に従って、画像の解像度は、この画像のスケール空間ピラミッド（例えば、ガウススケール空間）の異なるスケールで観察されるキーポイント配置に基づいて大まかに推定される。異なるスケールでのキーポイント配置における１または複数のピークは、支配的な画像スケールを追跡し、オブジェクトサイズを大まかに追跡するために使用されうる。この観察は、オブジェクトサイズの推定を取得し、カーネルサイズ半径Ｒをこれに比例させるために使用される。特に、オブジェクトサイズは、このスケールまたはより小さい（より低い）スケールで検出された全てのキーポイントの特定の閾値割合を含む最小スケールレベルによって選択される。かなりの割合のキーポイントが、スケール空間ピラミッドのより高いスケールで見つかるか、あるいは、複数のスケールにわたって均一に広がる場合、これは、この画像が高解像度を有していることを示す。そうではなく、キーポイントがより低いスケールに集中している場合、これは、この画像が低解像度を有していることを示す。
【００２７】
第３の態様に従って、キーポイントの数は、特徴マッチングステージの間の計算的複雑性を減らすためにプルーニングされうる。キーポイントをプルーニング／削減するための２つのアプローチは、（ａ）クラスタ密度に基づいてキーポイントをプルーニングすることと、（ｂ）検出スケールに基づいてキーポイントをプルーニングすることとを含む。第１のアプローチに従って、クエリ画像とターゲット画像とのマッチングに使用されるキーポイントクラスタを減らすために、キーポイントの密度がより高いキーポイントクラスタが選択され、残りのキーポイントクラスタ（すなわち、より低いキーポイント密度）は、後続の特徴マッチングの間にプルーニングまたは無視される。第２のアプローチに従って、より高いスケール（より低い解像度）で検出されるキーポイントが保持され、より低いスケール（より高い解像度）のキーポイントは、特徴マッチングのためにプルーニングまたは無視される。
【００２８】
例示的なオブジェクト認識プロセス
図１は、クエリ画像に対してオブジェクト認識を実行するための機能的なステージを示すブロック図である。画像取込ステージ１０２において、対象となる画像１０８（すなわち、クエリ画像）が取り込まれうる。次に、画像処理ステージ１０４において、対応するスケール空間１１０（例えば、ガウススケール空間）を生成し、特徴検出１１２を実行し、特徴記述子抽出１１６を実行することによって、取込画像１０８が処理される。特徴検出１１２は、複数の記述子を取得するために、後に特徴記述子抽出１１６で使用されうる、取込画像１０８についての高度に特異的なキーポイント、および／または、幾何学的に関心をひくキーポイントを識別しうる。画像比較ステージ１０６では、既知の記述子のデータベースとの特徴マッチング１２２（例えば、キーポイントおよび／またはキーポイントの別の特徴、あるいは、キーポイントの周りのパッチを比較することによって）を実行するためにこれらの記述子が使用されうる。次に、正確な特徴マッチを確実にし、マッチ結果１２６を提供するために、幾何学的検証または一貫性検査１２４がキーポイントマッチに対して行われる。この方法で、クエリ画像は、ターゲット画像のデータベースと比較され、および／または、それから識別されうる。
【００２９】
第１の態様に従って、画像スケーリング１１４は、画像サイズ／解像度を推定するために、スケール空間にわたる特徴の密度または配置に基づきうる。異なるスケールでのキーポイント配置の１または複数のピークは、支配的な画像スケールを追跡し、オブジェクトサイズを大まかに追跡するために使用される。かなりの割合のキーポイントがスケール空間ピラミッド（例えば、ガウススケール空間ピラミッド）のより高いスケールで見つかる場合、あるいは、複数のスケールにわたって均一に拡散される場合、これは、この画像がより高い解像度を有していることを示す。そうではなく、キーポイントがより低いスケールに集中している場合、これは、この画像がより低い解像度を有していることを示す。これは、そのような推定画像サイズに比例するカーネルサイズ半径Ｒを選択可能にする。例えば、オブジェクトサイズは、このスケールまたはより小さい（より低い）スケールで検出された全てのキーポイントの特定の閾値割合を含む最小スケールレベルによって選択される。
【００３０】
第２の態様に従って、特徴プルーニング１１８は、処理および／またはマッチングされるべき特徴の数を減らすために行われうる。検出された全ての特徴を特徴マッチングに使用する代わりに、特徴（すなわち、キーポイント）は、それらが検出されるクラスタ密度および／またはスケールに基づいてプルーニングされる。すなわち、特徴マッチングには、より低い密度のクラスタに含まれる特徴よりも高密度クラスタに含まれる特徴が好まれうる。
【００３１】
第３の態様に従って、空間制約付き特徴マッチング１２０が行われうる。クエリ画像について、インライア対アウトライアのキーポイント比を増やし、幾何学的一貫性検査を削減または回避するために、クエリ画像とターゲット画像とのキーポイントマッチは、キーポイントクラスタリングに基づきうる。クラスタは、近くのキーポイントをまとめてグループ化することによって定義されうる。次に、キーポイントマッチング（高い閾値を用いた）が、クエリ画像と１または複数のターゲット画像との間で行われる。十分なマッチ（閾値を超えたマッチ）が見つかったキーポイントは、アンカーポイントとみなされる。クエリ画像クラスタおよびターゲット画像クラスタは、マッチングされたアンカーポイントに基づいてマッチングされうる。次に、バイナリキーポイントマッチングが行われうる。ここで、選択されたターゲット画像クラスタ内の部分マッチ（閾値を下回るマッチ）が前に見つかったキーポイントのいずれか（対応するアンカーポイントによって）は、クラスタの一部として含まれる。マッチングされなかったキーポイントおよび／または誤ってマッチングされたキーポイントは、画像認識のために、クエリクラスタから除外される。
【００３２】
図２は、例示的な画像取込ステージ１０２を示す。ここで、画像１０８は、デジタル取込画像２０８を取得するために１または複数の画像センサ２０４および／またはアナログ／デジタル変換器を含みうる画像取込デバイス２０２によって取り込まれうる。画像センサ２０４（例えば、電荷結合素子（ＣＣＤ）、相補型ＭＯＳ（ＣＭＯＳ））は、光を電子に変換しうる。この電子はアナログ信号を形成し、それは、次に、アナログ／デジタル変換器２０６によってデジタル値に変換されうる。この方法において、画像１０８はデジタル形式で取り込まれ、それは、画像Ｉ（ｘ，ｙ）を、例えば、対応する色彩、照度、および／または、他の特徴を有する複数の画素として定義しうる。
【００３３】
図３は、例示的な画像処理ステージ１０４におけるスケール空間生成を示す。スケール不変特徴変換（ＳＩＦＴ）などの多数のアルゴリズムが、画像において特徴検出を実行するために開発されている。画像内の特定のオブジェクトの検出に関する第１のステップは、クエリオブジェクトをその局所的特徴に基づいて分類することである。この目的は、例えば、照度、画像ノイズ、回転、スケーリング、および／または、視点のわずかな変化に対して不変および／または耐性のある特徴を識別および選択することである。すなわち、クエリ画像と比較ターゲット画像とのマッチは、２つの画像間の照度、画像ノイズ、回転、スケール、および／または、視点の違いに関わらず見つけられるべきである。これを行う１つの方法は、画像のパッチに対して極値検出（例えば、局所極大または局所極小）を行い、高度に特異的な特徴（例えば、画像内の特異的なポイント、画素、および／または、領域）を識別することである。
【００３４】
ＳＩＦＴは、照度の変化、画像ノイズ、回転、スケーリング、および／または、視点のわずかな変化に対して適度に不変である局所特徴を検出および抽出するための１つのアプローチである。ＳＩＦＴのための画像処理ステージ１０４は、（ａ）スケール空間極値検出、（ｂ）キーポイント局所化、（ｃ）オリエンテーション割当、および／または、（ｄ）キーポイント記述子の生成を含みうる。とりわけ、ＳＵＲＦ（Speed Up Robust Features）、ＧＬＯＨ（Gradient Location and Orientation Histogram）、ＬＥＳＨ（Local Energy based Shape Histogram）、ＣＨｏＧ（Compressed Histogram of Gradients）、を含む、特徴検出と後の特徴記述子生成のための別のアルゴリズムが、さらに本明細書に記述される特徴から利益を得うることは明白である。
【００３５】
スケール空間生成１１０において、デジタル画像Ｉ（ｘ，ｙ）２０８（図２）は、スケール空間ピラミッド３０２を構築するために、次第にぼやかされるか、あるいは、平滑化される。ぼやかすこと（平滑化）は、ぼやかされた／平滑化された画像Ｌ（ｘ，ｙ，ｃσ）がＬ（ｘ，ｙ，ｃσ）＝Ｇ(ｘ，ｙ，ｃσ)×Ｉ(ｘ，ｙ)として定義されるように、一般的に、スケールｃσにおいてぼやかし／平滑化関数Ｇ（ｘ，ｙ，ｃσ）を用いて原画像Ｉ（ｘ，ｙ）を畳み込むことを含む。ここで、ぼやかし／平滑化関数Ｇは、空間フィルタカーネル（例えば、特に、ガウス、または、ガウスのラプラス）であり、ｃσは、画像Ｉ（ｘ，ｙ）をぼやかすために使用されるぼやかし／平滑化関数Ｇの標準偏差を表す。乗数ｃが変化するにつれ（ｃ０＜ｃ１＜ｃ２＜ｃ３＜ｃ４）、標準偏差ｃσが変化し、漸進的なぼやかし／平滑化が取得される。シグマσは、基本スケール変数（根本的に、ガウスカーネルの幅）である。ぼやかし画像Ｌを生成するために、初期画像Ｉ（ｘ，ｙ）が、ぼやかし／平滑化関数Ｇを用いてインクリメント的に畳み込みされると、ぼやかし画像Ｌは、スケール空間において定数因子（constant factor）ｃにより離される。ぼやかし（平滑化）画像Ｌの数が増加し、スケール空間ピラミッド３０２に提供される近似が連続空間に近接するにつれ、２つのスケールも１つのスケールに近接する。１つの例において、畳み込み画像Ｌはオクターブ単位でグループ化され、ここで、１つのオクターブは、標準偏差σの値の倍に対応しうる。さらに、乗数ｃの値（例えば、ｃ０＜ｃ１＜ｃ２＜ｃ３＜ｃ４）は、固定数（例えば、複数）の畳み込み画像Ｌがオクターブごとに取得されるように選択されうる。スケーリングの各オクターブは、明示的な画像サイズ変更に対応しうる。このように、原画像Ｉ（ｘ，ｙ）が、漸進的なぼやかし／平滑化関数Ｇによってぼやかされる／平滑化されると、画素数は次第に減少する。
【００３６】
差分スケール空間（例えば、ＤｏＧ（Difference of Gaussian））ピラミッド３０４が、スケール空間ピラミッド３０２における任意の連続した２つのぼやかし画像の差を計算することによって構築されうる。差分スケール空間３０４において、Ｄ（ｘ，ｙ，ａ）＝Ｌ(ｘ，ｙ，ｃｎσ)−Ｌ(ｘ，ｙ，ｃｎ−１σ)である。差分画像Ｄ（ｘ，ｙ，σ）は、スケールｃｎσおよびｃｎ−１σにおける２つの隣接するぼやかし／平滑化画像Ｌの差である。Ｄ（ｘ，ｙ，σ）のスケールは、ｃｎσからｃｎ−１σまでのどこかに位置する。差分画像Ｄは、オクターブごとに、隣接するぼやかし画像Ｌから取得されうる。各オクターブの後、画像は２倍でダウンサンプリングされ、このプロセスは繰り返される。この方法において、画像は、変形、回転、スケール、および／または、別の画像パラメータおよび／または歪みに対して耐性があるまたは不変である局所特徴に変換されうる。
【００３７】
一度生成されると、クエリ画像についての差分スケール空間３０４は、関心を引く特徴を識別する（例えば、画像内の高度に特異的なポイントを識別する）ために、極値検出に利用されうる。これらの高度に特異的なポイントは、本明細書において、キーポイントと呼ばれる。これらのキーポイントは、各キーポイントの周りのパッチまたは局所領域の特徴によって識別されうる。各キーポイントとその対応パッチに対して記述子が生成され、それは、クエリ画像と記録されたターゲット画像とのキーポイント比較に使用されうる。「特徴（feature）」は、記述子（すなわち、１つのキーポイントおよびその対応パッチ）を指しうる。特徴のグループ（すなわち、複数のキーポイントおよび複数の対応パッチ）は、クラスタと呼ばれうる。
【００３８】
図４は、例示的な画像処理ステージ１０４における特徴検出を示す。特徴検出１１２において、差分スケール空間３０４は、画像Ｉ（ｘ，ｙ）のキーポイントを識別するために使用されうる。特徴検出１１２は、画像内の特定のサンプルのポイントまたは画素の周りの局所領域またはパッチが、潜在的に興味のあるパッチであるか否かを判定しようとする（幾何学的に言って）。
【００３９】
一般的に、差分スケール空間３０４における局所極大および／または局所極小が識別され、これらの極大および極小の位置は、差分スケール空間３０４におけるキーポイント位置として使用される。図４に示される例において、キーポイント４０８は、パッチ４０６と共に識別されている。局所極大および局所極小を見つけること（局所極値検出としても知られている）は、差分スケール空間３０４内の各画素（例えば、キーポイント４０８の画素）を、同一スケールにおける８つの隣接画素、並びに、キーポイント４０８の両側にある隣接スケールの各々の９つの隣接画素（隣接パッチ４１０および４１２内の）（合計で２６画素（９×２＋８＝２６））と比較することによって達成されうる。ここで、パッチは、３×３の画素領域として定義される。キーポイント４０８の画素値が、パッチ４０６、４１０、４１２内の２６個全ての比較された画素の中で極大または極小である場合、これはキーポイントとして選択される。このキーポイントは、それらの位置がより正確に識別されるようにさらに処理され、低コントラストキーポイントおよびエッジキーポイントなど、キーポイントのいくつかが破棄されうる。
【００４０】
図５は、例示的な画像処理ステージ１０４における特徴記述子抽出を示す。一般的に、特徴（例えば、キーポイントおよびその対応パッチ）は、特徴（クエリ画像の）とターゲット画像のデータベースに記憶された特徴との効率的な比較を可能にする記述子で表されうる。特徴記述子抽出１１６の１つの例において、各キーポイントは、局所画像勾配の方向に基づいて１または複数の配向、すなわち方向、を割り当てられうる。局所画像プロパティに基づいて各キーポイントに一貫した配向を割り当てることによって、キーポイント記述子は、この配向に相対的に表され、それによって、画像回転に対する不変性が達成される。大きさおよび方向の計算は、ぼやかされた画像Ｌにおける、および／または、キーポイントスケールにおけるキーポイント４０８の周りの近傍領域の全ての画素に対して行われうる。（ｘ，ｙ）に位置付けられたキーポイント４０８についての勾配の大きさは、ｍ（ｘ，ｙ）と表され、（ｘ，ｙ）におけるキーポイントについての勾配の配向または方向はΓ（ｘ，ｙ）と表されうる。キーポイントのスケールは、キーポイント４０８のスケールに最も近いスケールを有するぼやかし／平滑化画像Ｌを選択するために使用され、それによって、全ての計算はスケール不変方法で行われる。このスケールの各画像サンプルＬ（ｘ，ｙ）について、勾配の大きさｍ（ｘ，ｙ）および配向Γ（ｘ，ｙ）は、画素差を使用して計算される。例えば、大きさｍ（ｘ，ｙ）は、次のように計算される：
【数１】
0005384746.tif 000002
【００４１】
方向またはオリエンテーションΓ（ｘ，ｙ）は、次のように計算されうる：
【数２】
0005384746.tif 000003
【００４２】
ここで、Ｌ（ｘ，ｙ）は、キーポイントのスケールでもあるスケールσにおけるぼやかされた画像Ｌ（ｘ，ｙ，σ）のサンプルである。
【００４３】
キーポイント４０８についての勾配は、差分スケール空間内のキーポイントのプレーンよりも上のより高いスケールに位置するスケール空間ピラミッドのプレーンに対して、または、キーポイントよりも下のより低いスケールに位置するスケール空間ピラミッドのプレーンにおいて一貫して計算されうる。いずれの方法であっても、キーポイントごとに、そのキーポイントの周りの長方形のエリア（例えば、パッチ）において全て１つの同じスケールで勾配が計算される。さらに、画像信号の周波数は、ぼけ画像のスケールで反映される。しかし、ＳＩＦＴは、単に、パッチ（例えば、長方形エリア）内の全ての画素で勾配値を使用する。パッチはキーポイントの周りで定義され、サブブロックはブロック内で定義され、サンプルはサブブロック内で定義され、この構造は、キーポイントのスケールが異なる場合であっても全てのキーポイントに対して同じ状態を保つ。故に、同じオクターブにおけるぼけ／平滑化フィルタの連続適用で画像信号の周波数は変化するが、異なるスケールで識別されたキーポイントは、この画像信号の周波数における変化とは関係なく、同じサンプル数でサンプリングされ、それはスケールで表される。
【００４４】
キーポイントの配向を特徴付けるために、勾配オリエンテーションのベクトルは、キーポイント４０８の隣接で生成されうる（ＳＩＦＴで）（例えば、キーポイントのスケールに最も近いスケールでスケール空間画像を使用することによって）。しかしながら、キーポイントの配向は、さらに、例えば、ＣＨｏＧ（Compressed Histogram of Gradients）を使用することによって、勾配オリエンテーションヒストグラム（図５参照）で表されうる。各隣接画素の寄与は、勾配の大きさおよびガウスウィンドウによって重み付けされうる。ヒストグラムにおけるピークは、支配的なオリエンテーションに対応する。キーポイントの全ての特性は、キーポイントの配向に相対して測定され、これは、回転に対する不変性を提供する。
【００４５】
１つの例において、ガウス加重勾配（Gaussian-weighted gradient）の配置はブロックごとに計算され、ここで、各ブロックは、２個のサブブロック×２個のサブブロックという全部で４個のサブブロックである。ガウス加重勾配の配置を計算するために、各々がキーポイントの周りのエリアの一部をカバーするいくつかのビンを有する配向ヒストグラムが形成される。例えば、配向ヒストグラムは、３６個のビンを有し、各ビンは、３６０度のうちの１０度の配向をカバーする。あるいは、ヒストグラムは、８個のビンを有しており、各々は、３６０度のうちの４５度をカバーする。本明細書に記述されるヒストグラムコード化技術が、あらゆる数のビンのヒストグラムに適用されうることは明白であるべきである。最終的にヒストグラムを生成する別の技術も使用されうることに注意されたい。
【００４６】
勾配配置および配向ヒストグラムは、様々な方法で取得されうる。例えば、２次元勾配配置（ｄｘ、ｄｙ）（例えば、ブロック５０６）は、１次元配置（例えば、ヒストグラム５１４）に変換される。キーポイント４０８は、キーポイント４０８を囲むパッチ５０６（セルまたは領域とも呼ばれうる）の中心に位置付けられる。ピラミッドの各レベルに対して事前に計算された勾配は、各サンプル位置５０８において小さい矢印で示される。示されるように、サンプル５０８の４×４の領域は、サブブロック５１０を形成し、サブブロックの２×２の領域はブロック５０６を形成する。ブロック５０６は、記述子ウィンドウとも呼ばれうる。ガウス加重関数は円５０２で示され、重みを各サンプルポイント４０８の大きさに割り当てるために使用される。円状ウィンドウ５０２における重みは、平滑的に低下する。ガウスウィンドウ５０２の目的は、ウィンドウ位置のわずかな変化による記述子の突発的な変化を回避することと、記述子の中心から離れている勾配に対してあまり重要性を与えないことである。配向ヒストグラム５１２の２×２＝４個のアレイが２×２のサブブロックから取得され、ヒストグラムの各ビンの８個の配向は、（２×２）×８＝３２次元特徴記述子ベクトルをもたらす。例えば、配向ヒストグラム５１３および５１５は、サブブロック５１０の勾配配置に対応しうる。しかしながら、各キーポイントに対して（４×４）×８＝１２８次元特徴の記述子ベクトルに帰着する、各ヒストグラムに８個の配向を有するヒストグラム（８ビンヒストグラム）の４×４のアレイを使用することは、より良い結果を産出しうる。勾配配置を取得するために、別のタイプの量子化ビンコンステレーション（例えば、異なるボロノフセル構造を有する）がさらに使用されうることに注意されたい。
【００４７】
本明細書で使用される場合、ヒストグラムは、ビンとして知られている互いに素な様々なカテゴリに含まれる観察、サンプル、または、出現（例えば、勾配）の数をカウントするマッピングｋｉである。ヒストグラムのグラフは、単に、ヒストグラムを表すための１つの方法である。このように、ｋが、観察、サンプル、または、出現のトータル数であり、ｍがビンのトータル数である場合、ヒストグラムｋｉの周波数は、次の条件を満たす：
【数３】
0005384746.tif 000004
【００４８】
ここで、Σは加法演算である。
【００４９】
サブブロックからのヒストグラムは、キーポイントについての特徴記述子ベクトルを取得するために連結されうる。１６個のサブブロックからの８ビンヒストグラムにおける勾配が使用される場合、１２８次元特徴記述子ベクトルが結果として生じうる。
【００５０】
この方法において、記述子は、識別されるキーポイントごとに取得されうる。ここで、そのような記述子は、および、ガウス加重勾配の配置の位置（ｘ，ｙ）、配向、記述子によって特徴付けられうる。画像が、１または複数のキーポイント記述子（画像記述子としても知られている）によって特徴付けられうることに注意されたい。加えて、記述子は、さらに、位置情報（例えば、キーポイントについての座標）、スケール（例えば、キーポイントが検出されたガウススケール）、および、クラスタ識別子などの別の情報を含みうる。
【００５１】
図６は、例示的な画像比較ステージ１０６における特徴マッチングを示す。記述子がクエリ画像内で識別されたキーポイントに対して取得されると、特徴マッチング１２２を行うために、クエリ画像１０８内のキーポイントが、ターゲット画像６０２、６０４、６０６、および／または、６０８内のポイントと比較および／またはマッチングされうる。例えば、クエリ画像内のキーポイントについての記述子は、１または複数のマッチを見つけるために、ターゲット画像のデータベースに記憶される１または複数の記述子（ターゲット画像のデータベース内のキーポイントに対応する）と比較されうる。記述子マッチングは、最も近い近傍探索を含み、ここで、クエリ記述子は、最も近いまたは最も類似したマッチを決定するために、データベース内の候補記述子のライブラリと比較される。いくつかの従来技術のアプローチにおいて、クエリ記述子をデータベース内の候補記述子とマッチングすることは、偽陽性を回避するように１または複数の閾値を設定することを含みうる。例えば、２つの記述子間の距離Ｌ２が、最も近い隣接マッチを認証するために使用されうる（すなわち、最短距離がマッチとして選択される）。このマッチング技術は、画像内の反復構造の記述子に影響を受けやすい。ゆえに、クエリ記述子の第１のマッチと最も近い第２のマッチとの距離比（ｄ１／ｄ２）は、非一意的な特徴（例えば、反復構造）をフィルタリングして除去するために使用されうる。この方法において、クエリ画像内のキーポイントは、ターゲット画像内のキーポイントにマッチングされる。しかしながら、距離比テストの追加でさえ、単に特徴が画像内で反復するとの理由で潜在的なマッチを、および、互いに空間的に近接して位置する複数のキーポイントを有することから生じる誤りのマッチを、排除することに影響を受けやすい。
【００５２】
加えて、ポーズまたは照度の変化あるいは別の要因（例えば、環境条件など）により、特徴マッチング（例えば、最も近い近傍探索）は、記述子自体もかなり変化しうるため、誤りをもたらす可能性がある。結果として、そのような特徴マッチングは、過度な誤りマッチという問題（偽陽性と呼ばれる）を有することが知られている。部分的な特徴マッチング（点線で示される）が、クエリ画像１０８のオブジェクト６００についてここで示され、オブジェクト６００のキーポイントは、複数の異なるターゲット画像６０２、６０４、６０６、および／または、６０８上の複数のキーポイントとマッチングされる。いくつかのキーポイントは、不正確な画像６０２および６０８にマッチングされる。同一のキーポイントおよび別のキーポイントのうちのいくつかは、正確な画像６０４にマッチングされる。正確な画像６０４にマッチングされた場合であっても、クエリ画像内のいくつかのキーポイントは、正確な画像６０４内の不正確なポイント（すなわち、位置）にマッチングされうる（不正確なマッチ６１０のように）。例えば、オブジェクト６００のキーポイントの記述子は、正確な画像６０４の記述子に不正確にマッチングされうる。この理由により、幾何学的一貫性検査１２４が、後処理ステップとして行われる。
【００５３】
幾何学的一貫性検査１２４（幾何学的検証とも呼ばれる）は、マッチングされたキーポイント（特徴マッチングステップにおいて）のどれが実際に正確なマッチであるかを確定または検証するために行われる。この幾何学的検証は、データフィッティングモデルを、クエリ画像からの複数のキーポイントに適用することが多い。例えば、ＲＡＮＳＡＣ（RANdom SAmple Consensus）は、汚染データのためのデータフィッティングモデルであり、データからポイントのセットをランダムにサンプリングして、モデルパラメータを推定することによって機能し、フィッティングを決定するために全てのデータを検証する。これは、正確なマッチを検証するための反復プロセスである。
【００５４】
幾何学的検証は、オブジェクト認識のパイプラインにおける主要な計算的ボトルネックである。キーポイントマッチの成功検証は、「インライア（ｉｎｌｉｅｒ）」と呼ばれ、キーポインマッチの不成功検証は、「アウトライア（ｏｕｔｌｉｅｒ）」と呼ばれる。インライアマッチは、画像内のオブジェクトの位置および／または姿勢の解決を可能にする。アウトライアよりも数が多いインライアが識別されると、幾何学的検証技術を実施するために、データフィッティングモデル（例えば、ＲＡＮＳＡＣ）が選択および使用されうる。インライアを減らすことなく高精度なアウトライア除去を求めること（高いリコール）は、特徴マッチングを改善する方向にあるが、同時に、オブジェクト認識プロセスを遅くする。これは、全ての可能なインライアマッチを受け入れようとする過程で、誤ったマッチ（アウトライア）に帰着する多数のキーポイントの受け入れにより、データ（クエリ画像のキーポイント）がかなり汚染されるためである。データフィッティングモデル（例えば、ＲＡＮＳＡＣ）は、含まれるアウトライアの数が増加するにつれ、急激に遅くなる傾向にある。逆に、特徴マッチングステップにおいてより選択的になること（例えば、「マッチ」とみなされるものに対する閾値を増すこと）によって、アウトライアマッチだけでなくインライアマッチも減りうる。一般的に、より高速な収束のためにアウトライアを減らす一方で十分なインライアを得るための妥協の閾値を見つけるために、様々なデータセットのための幾何学的検証ステップは不可能である。既に述べられたように、従来のアプローチ（例えば、最も近いもののＬ２距離、および／または、最も近いもの／２番目に最も近いものの比ｄ１／ｄ２）は、空間的反復特徴を有するオブジェクト、あるいは、特定の特徴が密な空間クラスタ内に存在する（オーバーラッピングパッチ上に記述子を作ることにつながる）場合に関する既知の問題に悩まされる。すなわち、空間的反復特徴は、不正確なキーポイントマッチを引き起こすことが多い。
【００５５】
アンカーポイント、クラスタリング、バイナリキーポイントマッチングを用いた幾何学的検証の性能の改善
幾何学的検証は、偽陽性キーポイントマッチ（すなわち、アウトライア）を除外するための後処理ステップとして用いられる。幾何学的検証（一貫性検査とも呼ばれる）を行う際、クエリ画像と候補ターゲット画像との間での最良の仮説的変換が推定され、この変換と一貫しないキーポイントマッチは、偽陽性（すなわち、アウトライア）として除去される。しかしながら、幾何学的検証は、計算的に高価である。１つのアプローチに従って、幾何学的検証を除去すること、あるいは、幾何学的検証の収束速度を改善することは、特徴マッチングプロセスと同時にキーポイントマッチに制約を課すことを含む。すなわち、特徴マッチングの後に幾何学的検証を適用するよりはむしろ、偽陽性マッチは、特徴マッチングステップ自体の間に、削除、阻止、および／または、除去されうる。このアプローチは、幾何学的検証技術の収束速度が遅くならないように、インライア対アウトライア比を増やす。
【００５６】
画像内のキーポイントがしばしばグルーピングまたはクラスタ内で発生することは観察される。このように、クエリ画像には、存在するキーポイントの自然なクラスタ（すなわち、局所的グルーピング）が存在するであろう。図７は、クエリ画像内のキーポイントクラスタを示す。この例では、４つのキーポイントクラスタ７０４、７０６、７０８、７１０が識別されており、これらのクラスタの各々は、クエリ画像１０８の領域７０２に対して複数のキーポイントを含む。各クラスタが、おおよそ同一のキーポイント姿勢またはジオメトリを有すること（例えば、全てのキーポイントのスケールおよび配向がおおよそ同一であること）が観察されている。別の観察は、いくつかのクラスタが別と比較してより多くの数のインライアを有するであろうことである。加えて、サイズおよび形状は変化しうるが、クラスタは、典型的に、複数の視点（例えば、ターゲット画像との比較におけるクエリ画像に対する視野角）にわたって保存される。
【００５７】
１つの特徴に従って、インライア対アウトライア比は、識別されたキーポイントをクラスタへとグループ化し、そのキーポイントからアンカーポイントを選択し、ターゲット画像とのアンカーポイント対応を確立することによって増やされ、クラスタ内のキーポイントマッチに対してバイナリ決定を課す。
【００５８】
図８（図８Ａおよび８Ｂを備える）は、キーポイントクラスタを用いてインライア対アウトライア比がどのように改善されうるかを示す。
【００５９】
クラスタの識別８０２：複数のキーポイントが画像に対して識別されると、１または複数のキーポイントクラスタ７０４、７０６、７０８、７１０は、この画像の領域７０２内で識別されうる。局所キーポイントクラスタは、例えば、ノンパラメトリック密度推定プロセス（non-parametric density estimation process）、平均シフト解析（mean shift analysis）を用いて、クエリ画像および１または複数のターゲット画像上で推定されうる。これは、クエリ画像に対してオンザフライ（on-the-fly）で行われ、ターゲット画像に対してオフラインで行われうる。キーポイントが識別されると、密度解析に基づいて、画像の各画素の周りではなく、キーポイントの周りにクラスタが作られる。
【００６０】
アンカーポイン対応の確立８０４：各クラスタ内で、１または複数のキーポイント（クラスタ内の全てのキーポイントである必要はない）は、アンカーポイント８０５として選択されうる。アンカーポイントは、異なるスケール空間にわたり、それらの耐性または認識に基づいてクラスタ７０４、７０６、７０８、７１０内のキーポイントから選択されうる。すなわち、複数のスケールにわたって検出可能なキーポイントがアンカーポイント８０６として選択されうる。アンカーポイントの識別は、クラスタ内の各キーポイントを、データベース内の１または複数のターゲット画像のキーポイントと反復的に比較することによって行われうる。すなわち、そのようなキーポイントと関連付けられた記述子は、マッチが存在するか否かを判定するために比較されうる。強いマッチ（例えば、既定の高い閾値を超える、および／または、高いスケール空間で生じる）のキーポイントは、アンカーポイントとみなされうる。アンカーポイントマッチあるいは「対応づけ」が生じるか否かについての判定は、記述子距離閾値、および／または、キーポイントが認識されるスケール空間のレベルに基づきうる。これにより、アンカーポイントは、クエリ画像とターゲット画像との間で高度な対応を有する。アンカーポイントマッチは、さらに、いくつかのクラスタがより信頼性があり（変形に対して耐性がある）、別のクラスタよりもより多くのインライアを有していることを考慮に入れうる。この例において、クエリクラスタ７０４、７０６、７０８、７１０内のアンカーポイントは、第１のターゲット画像８１２内のアンカーポイントとマッチングされる。
【００６１】
アンカーポイントを確立する過程の間、クエリクラスタ内のキーポイントは、１または複数のターゲット画像内のキーポイントとのマッチングが試される。クエリクラスタ内のいくつかのキーポイントは、マッチと判断されるのに、ターゲット画像内のキーポイントに十分に近いわけではない。例えば、クエリクラスタ内のクエリキーポイントが、ターゲットクラスタ内に対応するキーポイントを有しうる場合であっても、それらは、「マッチ」と判断されるのに十分には近くない（例えば、距離的に）可能性がある。しかしながら、これらの試行／失敗のキーポイントマッチについての情報は、後に使用するために（すなわち、バイナリキーポイント決定８０８を実行するために）保存されうる。そのような情報は、例えば、対応するキーポイントがターゲットクラスタ内に存在するか否かを含みうる。
【００６２】
バイナリキーポイント決定８０８：アンカーポイントの対応づけが確立された各クラスタについて、クラスタ７０４、７０６、７０８、７１０内のさらなるキーポイントに対してバイナリ決定が行われうる。このバイナリ決定は、単に、クエリ画像のクラスタ内のキーポイントが、対応するターゲット画像内にマッチを有するか否かを決定する。クエリクラスタ内の全てのキーポイントを、ターゲット画像内の１または複数のキーポイントとマッチングする試みが、アンカーポイントを確立する際に既に生じたため、このキーポイントマッチングプロセスが繰り返される必要はない。その代わりとして、前のマッチングの試みからの情報が、このバイナリキーポイントマッチング決定を行う際に使用されうる。対応するキーポイントがターゲット画像内で見つかり、そのようなキーポイントが、クエリクラスタのアンカーポイントと同一の対応クラスタ内にある限り、バイナリマッチは見つかる。例えば、クラスタ７０８は、ターゲット画像８１２内のクラスタ８１６とマッチングされている（それらの１または複数のアンカーポイントを介して）可能性がある。かくして、クエリクラスタ７０８内のキーポイントは、それらが、対応するターゲットクラスタ８１６内に対応するキーポイントを有する場合、自動的に「マッチ」とされる。これは、局所クラスタ内のより高い密度のマッチによって、非常に高いインライア／アウトライア比をもたらす。このバイナリキーポイントマッチングを行うための全ての情報が、アンカーポイントを確立する際に既に取得されており、そのため、追加のキーポイント比較が必要ないことに注意されたい。
【００６３】
図９は、図８の方法に従ったクエリクラスタとターゲットクラスタとのキーポイントマッチングの例を示す。クエリクラスタ内のアンカーポイントを確かめるために、クエリクラスタ７０８内の各キーポイントは、データベースからの１または複数のターゲット画像内のキーポイントと比較されうる（例えば、その対応する記述子を使用して）。強いマッチ（例えば、高い閾値を満たすキーポイントマッチ）がアンカーポイントとして選択される。この例において、キーポイントＱＡＰ−１およびＱＡＰ−２は、クエリクラスタ７０８についてのアンカーポイントとして識別されている。クエリクラスタ７０８内のアンカーポイントが、１よりも多くのターゲットクラスタと関連付けられる場合、最大数の対応アンカーポイントを有するターゲットクラスタが、対応クラスタとして選択されることに注意されたい。ここで、ターゲットクラスタ８１６は、クエリクラスタ７０８についての対応クラスタであると見なされている。クラスタ対応を識別する（クエリクラスタ７０８とターゲットクラスタ８１６との間で）と、バイナリキーポイントマッチングが、クエリクラスタ７０８内の残りのキーポイントに対して行われうる。ここで、クエリキーポイントＱＫＰ−１、ＱＫＰ−２、ＱＫＰ−３、ＱＫＰ−４は、ターゲットクラスタ内に対応キーポイントを有していたが、この対応がアンカーポイントマッチ用の高い閾値を満たしていなかったため、それらは、アンカーポイントとして前に拒否されている。この対応プロセスは、これらのクエリキーポイントのうちのいくつかが対応キーポイントとこれらの対応キーポイントのターゲットクラスタを有していると識別するため、この情報は、バイナリキーポイントマッチングを行うために使用されうる。クエリキーポイントが、アンカーポイントマッチに基づいて選択された同じターゲットクラスタ内に対応キーポイントを有する場合、そのような全てのキーポイントは、画像認識のために、クエリクラスタの一部として含まれる。ここで、クエリキーポイントＱＫＰ−１、ＱＫＰ−２、ＱＫＰ−３、ＱＫＰ−４は、それぞれ、ターゲットクラスタ８１６内の対応キーポイントＫＰ−ｊ、ＫＰ−ｃ、ＫＰ−ｄ、ＫＰ−ｈと関連付けられている。キーポイントＱＫＰ−５がマッチングされないこと、つまり、それは、不正確にマッチングされたか、異なるターゲットクラスト内のキーポイントと関連付けられたこと、あるいは、それについてのキーポイントマッチが見つからなかったことを意味することに注意されたい。
【００６４】
空間的な制約が確立される（すなわち、クラスタが定義される）ため、一般的に、アウトライアマッチは発生しない。すなわち、キーポイントは、単に、ターゲット画像内の別のキーポイントにマッチングされるわけではなく、むしろ、対応するクラスタ（アンカーポイントマッチによって識別されるような）の中のキーポインにマッチングされうる。加えて、これが、バイナリ決定（アンカーポイントマッチングにおけるような閾値／確からしさの決定ではない）であるため、可能性のある全てのインライアは、空間的反復構造が存在する場合であっても受け入れられる。
【００６５】
クラスタリングを用いた例示的なキーポイントマッチング
図１０は、クラスタリングを用いたキーポイントマッチングを行うための方法を示すフローチャートである。最初に、参照画像のデータベースを作るために、ターゲット画像がオフラインで処理されうる。例えば、１または複数のターゲット画像内のキーポイントが識別されうる（１００２）。各ターゲット画像についてキーポイントのクラスタが識別または定義されうる（１００４）。同様に、クエリ画像のリアルタイム処理のために、キーポイントが識別され（１００８）、キーポイントのクラスタが定義される（１０１０）。本明細書に記述されるクラスタリングプロセスが、画像内の全ての画素のクラスタリングに基づくのではなく、キーポイントとして分類された画素にだけ基づくことに注意されたい。
【００６６】
計算的複雑性は、初期クリスタリングを用いるためにトータルキーポイントのサブセットだけ（すなわち、アンカーポイントだけ）を考慮することでさらに減らされる。クエリ画像とターゲット画像とのキーポイントを比較することによってクエリ画像の各クラスタに対して１または複数のアンカーポイントが識別されうる（１０１２）。例えば、クエリ画像内のキーポイントと、ターゲット画像内のキーポイントとの間の高い対応づけ閾値に基づいて、１または複数のアンカーポイントが選択されうる。このアンカーポイント選択プロセスは、クエリ画像内の各キーポイントについての記述子を、ターゲット画像内のキーポイントについての記述子と比較することによって行われうる。
【００６７】
次に、アンカーポイント対応に基づいてクエリ画像とターゲット画像との間でクラスタマッチングが行われうる（１０１４）。すなわち、クエリクラスタにおいてマッチングされたアンカーポイントに基づいて、ターゲット画像において対応クラスタが選択される。例えば、ターゲット画像内の対応クラスタは、クエリ画像のクラスタから最大数のアンカーポイントがマッチングされたクラスタでありうる。次に、バイナリキーポイントマッチングが、クエリ画像に対してクラスタ単位で行われうる（１０１６）。すなわち、キーポイント比較を既に行ったことで、ターゲット画像のクラスタ内の最も近い対応キーポイントについての情報が取得されうる。ターゲットクラスタ内の部分マッチ（すなわち、高い閾値未満のマッチ）を有するキーポイントは、クエリクラスタ内に保存される。マッチングされないキーポイントおよび／または誤ってマッチングされたキーポイントは、クエリクラスタから除外される。
【００６８】
クラスタを識別するステップ１００４／１０１０（図８における８０２のような）は、様々な方法で行われうる。複数のキーポイントを前提として、これらのキーポイントのクラスタは、ノンパラメトリックに取得されうる（すなわち、クラスタの予めの個数には制約なく）。クラスタリングのためのパラメータは、空間的近傍でありうる。この近傍スケールは、クラスタリングに使用されるカーネルサイズによって設定されうる。クラスタリングについての空間的近傍に加えて、色彩およびテキスチャも使用されうる。クラスタリングの１つの例において、ｎ個のキーポイントは、ノンパラメトリックカーネル密度推定器を使用して、別個のクラスタまたはグループへとグルーピングされうる。キーポイントのセット｛ｘ１，．．．ｘｎ｝について、ここで、ｘｉεＲ２は、第ｉのキーポイントについての座標であり、このセットに対するノンパラメトリックカーネル密度推定器は、次のように定義されうる：
【数４】
0005384746.tif 000005
【００６９】
ここにおいて、ｋｈ（ｘ，ｘｉ）は、帯域幅ｈを有するカーネルである。この帯域幅は、密度の解像度を特定し、それにより、ｘの周りの局所密度推定に影響を及ぼすポイントの隣接を特定する。例えば、ガウスカーネルの場合、帯域幅ｈは、標準偏差
【数５】
0005384746.tif 000006
【００７０】
に対応する。ここで、ｃｈは、正規化定数であり、ｇ（ｘ，ｘｉ）は、非正規化ガウスカーネルである。カーネルが、凸状であり、単調に増加する場合、平均シフトアルゴリズムは、局所極大に収束することが保証される。これは、密度関数の勾配上昇方向に比例する平均シフトに続いて反復的に行われうる。ガウスカーネルの場合、この平均シフトは、次のように与えられる：
【数６】
0005384746.tif 000007
【００７１】
ここで、ｙｊ＋１は、推定された密度関数に従って、ｙｊからのシフトされた位置である。このシフトは、現在の位置の確からしさとは逆に重み付けされるため、それは、局所極大に迅速に収束する。同一の局所極大に収束するキーポイント全てがクラスタとみなされうる。
【００７２】
クエリ画像ＩＱを仮定すると、スケール不変特徴（キーポイントと呼ばれる）のセットＦ（ＩＱｊ）＝｛（ｘＱｊ，ｙＱｊ，ｓＱＪ）｝は、スケールＳＱＪで座標（ｘＱＪ，ｙＱＪ）に中心がくるように抽出されうる。空間クラスタのセットＫＱｋ（ｋ＝{１．．ｎｃ}）が定義され、ここにおいて、ｎｃは、Ｆ（ＩＱｊ）に対して、半径Ｋの円形カーネルの平均シフトクラスタリングを用いることによって取得されるクラスタの数である。このように、空間クラスタ（キーポイントの）のセットは、次のように定義されうる：
【数７】
0005384746.tif 000008
【００７３】
ここで、ｃｌ（ｋ）は、カーネルＫを使用するクラスタリングを表す。
【００７４】
オフライントレーニングフェーズにおいて、データベース画像ＩＴは同様に処理され、キーポイントクラスタが取得されるが、それは、複数の異なるカーネルサイズを有する。特徴（キーポイント）セットは、本明細書において、Ｆ（ＩＴｊ）と定義される。トータルクラスタセットは、ＫＴＩと定義され、ここにおいて、下付き文字「Ｉ」は、全クラスタセットＫＴのクラスタのインデックスを表す。クエリ画像ＩＱに対する１つのカーネルサイズと、データベース画像ＩＴに対するカーネルセット（すなわち、複数のカーネルサイズ）を選ぶ理由は、データベース画像ＩＴが複数の異なるスケールでサンプリングされ、異なる画像スケールでの特徴マッチングを可能にするためである。
【００７５】
クエリ画像ＩＱ内の各クラスタ（ｋ，ＫＱｋ）について、連続画像パッチ間の距離比（または、距離Ｌ２）閾値を使用することによって、ポイント対応セットＣが取得されうる。この対応セットＣは、初期アンカーポイントセット（すなわち、アンカーポイントのセット）である。キーポイント（アンカーポイントを含む）が記述子によって表されることを再度考慮されたい。例えば、クエリ画像ＩＱ内の特徴（例えば、キーポイントおよび／または隣接ポイント）Ｆ（ＩＱｊ）は、記述子Ｄ（ＩＱ）で表されうる。同様に、データベース画像ＩＴｊ内の特徴（すなわち、キーポイント）Ｆ（ＩＴｊ）は、記述子Ｄ（ＩＴ）で表されうる。対応セットＣは、画像のデータベースのクラスタ内のアンカーポイント
【数８】
0005384746.tif 000009
【００７６】
と成功裏にマッチされた単一のクエリクラスタ（例えば、クエリ画像ＩＱの）内にこれらのアンカーポイント
【数９】
0005384746.tif 000010
【００７７】
を含む。このように、１つのクラスタのアンカーポイント対応セットＣは次のように定義される：
【数１０】
0005384746.tif 000011
【００７８】
ここにおいて、演算子「^」は、論理結合演算である（すなわち、アンカーポイントが両方の記述子グループに存在する場合に真であり、それ以外の場合に偽である）。このアンカーポイント対応セットＣは、ほとんど、あるいは、まったく、アウトライアを有していないが、インライアもほとんど有していない。この方法において、１つのクラスタに対してアンカーポイントのセット（すなわち、アンカーポイント対応セットＣによって定義される）が取得されうる。
【００７９】
図１１（図１１Ａおよび図１１Ｂを備える）は、アンカーポイントマッチング、クラスタ対応、および、バイナリイーポイントマッチングの例を示す。図１２は、図１１の結果をさらに詳細に示す表である。クエリクラスタｉ １００１の複数のキーポイント（記述子Ｄ１〜Ｄ９と関連付けられた）は、アンカーポイントマッチを見つけるために、１または複数のターゲット画像のキーポイントと比較される。アンカーポイントマッチを決定する際に、高い閾値が使用される。キーポイントマッチが閾値を満たす（すなわち、キーポイント対応が閾値以上である）場合、アンカーポイントマッチ（「十分なマッチ」と呼ばれる）が作られる。そうではなく、クエリキーポイントがマッチングされないか、あるいは、キーポイント対応が閾値未満である場合（「部分マッチ」と呼ばれる）、アンカーポイントマッチは作られない。このマッチング情報（対応するターゲット画像クラスタを含む）は、後に使用するために、維持、保存、または記憶される。この例において、記述子Ｄ２、Ｄ３、Ｄ４と関連付けられたキーポイントは、対応閾値を満たしている（すなわち、それらは十分なマッチである）。Ｄ２は、クラスタｊ＋２およびｊ＋３内のキーポイントとマッチングされている。Ｄ３は、クラスタｊ＋２内のキーポイントとマッチングされている。Ｄ４は、クラスタｊおよびｊ＋２内のキーポイントとマッチングされている。アンカーポイントについての最多数の十分なマッチが、クラスタｊ＋２とであるため、クエリクラスタｉ １１０１とターゲットクラスタｊ＋２ １１０６との間にクラスタ対応が確立される。よって、アンカーポイント対応セットＣｉは、クラスタｉ １１０１の記述子Ｄ２、Ｄ３、Ｄ４に対応するアンカーポイントを含みうる。続いて、インライアキーポイントカウントを増やし、アウトライアキーポイントカウントを減らすために、選択されたターゲットクラスタｊ＋２ １１０６内の部分マッチが見つかった別のクエリキーポイントがキーポイントとして含まれる。これはバイナリ決定であり、ここで、クエリキーポイントが、選択されたターゲットクラスタにおいて部分マッチを有する限り、これは、クエリクラスタの一部として含まれる。この例において、記述子Ｄ１、Ｄ５、Ｄ７、Ｄ９と関連付けられたクエリキーポイントは、クエリクラスタｉ １１０１のキーポイントにされる。記述子Ｄ６およびＤ８と関連付けられたもののような他の全てのキーポイントは、画像マッチングのために破棄または無視される。
【００８０】
１つの例において、アンカーポイントマッチ（「十分なマッチ」）は、距離比よりもむしろＬ２距離に基づきうる。すなわち、Ｌ２距離についての閾値（例えば、キーポイントマッチについての最大誤差）は、ほとんど（全てではない）のインライアマッチの拒否という犠牲を払ったとしても全てのアウトライアマッチが拒否されるように選択される。
【００８１】
マッチングプロセスは、より高いスケールで検出されたキーポイントが、より低いスケールで検出されたキーポイントよりも好まれる、あるいは、望まれるスケール空間優先度にも基づきうる。ここで、様々なキーポイントが検出される異なるスケールを示すスケール空間ピラミッド１１１０が例示される。スケール空間ピラミッドのより高いスケールで検出されたキーポイントが、より低いスケールで検出されたキーポイントと比べてより安定していることが観察される。これは、高いスケールの特徴（すなわち、スケール空間ピラミッドのより高いオクターブで検出された特徴）が、ノイズおよび歪みに対してより平滑的並びにより耐性があるためである。１つの例において、スケール空間ピラミッド１１１０の高スケールおよび／または中間スケールのいずれかに含まれるキーポイントだけが、アンカーポイントとみなされうる。
【００８２】
このように、１つの例において、ターゲット画像内の最も近いものは、Ｌ２距離が、閾値Ｔｃよりも短い場合、および、クエリキーポイントが、事前に設定されたスケール空間優先度を満たす（例えば、クエリキーポイントが、スケール空間ピラミッドのｎ個の最高スケールで見つかる）場合にのみ、アンカーポイントとして受け入れられうる。この方法において、結果として得られるマッチは、アンカーポイントマッチとみなされる。
【００８３】
空間反復特徴がクエリ画像に存在する場合であっても、アンカーポイントおよびクラスタ対応によって課せられた空間的制約が、不正確なキーポイントマッチを減らす傾向にあり、それによって、インライア対アウトライア比が改善されることに注意されたい。
【００８４】
記述子の反復性および記述力は、アフィン変化および視角により悪化しうる。従って、キーポイント／特徴マッチを決定する際に、視角も考慮されうる。すなわち、クエリ画像が、ターゲットデータベース画像とは大きく異なる視角を有する場合、マッチが誤りあるいは不正確となる可能性はより大きい。アンカーポイント対応セットＣは可能な限り正確であることが望まれるため、視角の特定の変化後のマッチは、不利な立場におかれる（penalize）か、あるいは、回避されうる。基準視点は、シーンまたはオブジェクトの正面の視点である。視点が変化するにつれ、基準視点および角のある視点から取得される記述子のＬ２距離と、視角βとの間に相互関係が存在する。Ｌ２ノルム（norm: 標準Ｌ２）は、閾値角度として選択される、特定の角度βの後にピークをとる。よって、閾値角度βを超えるあらゆるマッチが、信頼性がないとみなされうる。実施において、閾値角度βは、正確なキーポイント対応が下がり始める閾値角度β（すなわち、Ｌ２距離がピークに達し始める角度β）を決定することによって、経験的に確かめられうる。
【００８５】
クラスタｉ １１０１（対応セットＣｊにおいて識別される）に対するアンカーポイントマッチを取得すると、マッチングアンカーポイントを含むクラスタ対応セットＳｋｊが取得されうる。すなわち、クラスタｉ １１０１に対してアンカーポイントｆｊがマッチングされると、クエリクラスタは、このアンカーポイントマッチに基づいてデータベース内のクラスタにマッチングされうる。アンカーポイントのクラスタ対応セットＳｋｊは、次のように定義されうる：
【数１１】
0005384746.tif 000012
【００８６】
ここにおいて、＜−＞は、クエリ画像のアンカーポイントｆｉと、ターゲットデータベース画像のアンカーポイントｆｉとの対応を表す。
【００８７】
ターゲットデータベースクラスタに対するインデックスＩｓは、次のように、クラスタセットＫＴＩ全体から取得されうる：
【数１２】
0005384746.tif 000013
【００８８】
すなわち、選択されたデータベースクラスタは、クエリ画像内の大半のアンカーポイントがマッチングされた１つのクラスタである。２つのインデックス（例えば、Ｉｓ１、Ｉｓ２）が式１０に従って同じ解法を提供しうる（すなわち、異なるクラスタへのマッチを識別する２つ以上のインデックスがみつかる）場合が存在しうることに注意されたい。そのような場合、ピークキーポイント密度を有するターゲットクラスタを指すインデックスは、それが、アウトライアがより少ないより密なマッチングを提供するため、選択される。
【００８９】
この方法において、後続のキーポイントマッチングにおいて空間的制約を強めるクラスタ対応が達成されうる。
【００９０】
クラスタ対応は、様々な方法で確実にされうる。１つの例において、クエリクラスタ内の十分に高い割合のアンカーポイントがターゲットクラスタにマッチングされる場合、クラスタ対応が見つかる。例えば、クラスタ対応セットＳｋｊのアンカーポイントの数と、クエリ画像クラスタＫＱｋ内のアンカーポイントの数の最低または最小、あるいは、データベース内のターゲットクラスタセットＫＴＩ内のアンカーポイントの数の最低または最小との比が、閾値Ｔｃｌｕｓｔｅｒよりも高い場合、インデックスＩｓは、重要であると考えられる。例えば、インデックスＩｓは、以下の場合に重要であるとみなされる：
【数１３】
0005384746.tif 000014
【００９１】
ここで、閾値ＴＣｌｕｓｔｅｒは、ユーザ定義された割合または比率である。式１１は、取得された（クラスタ対応セットＳｋｊにおいて）正確なアンカーポイントマッチのフラクションがクラスタ対応を作るのに十分重要である（十分高い）か否かを考慮する。式１１は、クラスタ対応セットＳｋｊのアンカーポイントの数を、クエリクラスタまたはデータベースターゲットクラスタのアンカーポイントの最小数で割り、閉塞およびアフィン歪みによるクラスタサイズ変化を説明する。これは、クエリクラスタとデータベース（ターゲット）クラスタとの間で誤ったクラスタ対応を受け入れないことにつながる。これは、いくつかのクラスタが他のクラスタよりも安定しているという観察を利用する。
【００９２】
いくつかのインプリメンテーションにおいて、クラスタが重要であるとみなされるか否かは、顕著な視点の変化がクラスタサイズを変えることを考慮に入れうる。このように、視点の角度に依存して、クラスタ対応に十分とみなされるマッチの数は、変化しうる。例えば、最大で７０度の視点の変化が期待される場合、図１１における最小マッチフラクションに対する閾値は、Ｔｃｌｕｓｔｅｒ＝ａｒｃｃｏｓ(７０)としてモデリングされ、それは、約０．３５である。これは、対応を許容できるようにするために、クエリおよびターゲットクラスタ内の特徴の数に関して最小数のアンカーポイントマッチが存在すること表す。
【００９３】
図１１を再度参照する。クラスタ対応が実施されると、キーポイントマッチングが、アンカーポイントとして前に選択されていないキーポイントに対して行われうる。クラスタ内の全てのマッチングキーポイントの最後の対応セットＣＮを生成するために、クエリクラスタ内の各キーポイント
【数１４】
0005384746.tif 000015
【００９４】
は、データベース画像内のキーポイントにマッチングされる。この「マッチ」は、クエリキーポイントが、インデックスＩｓで識別されたターゲットクラスタに含まれる場合にのみ受け入れられる。クラスタ内のマッチングキーポイントの最後の対応セットＣＮは、次のように表されうる：
【数１５】
0005384746.tif 000016
【００９５】
セットＣＮは、多数のインライアおよび極めて少数のアウトライアを有するアンカーポイント対応セットＣよりも大きくありうることに注意されたい。クラスタ対応が計算される場合、クエリ画像内の全てのポイントについて最も近くのものの距離が計算され、これらの最も近いものの（ＮＮ）が存在するデータベースベースクラスタ（受け入れられたマッチおよび拒絶されたマッチの両方に対する）も、それらのＬ２距離と共に記憶されることに注意されたい。続いて、クラスタごとにキーポイントマッチングが行われる場合、クエリキーポイントの最も近いものが正しいクラスタに含まれるか否かを決定するために各キーポイントに対して検査が行われる。このように、クエリキーポイントに対して最も近いものを再度計算する必要性はない。
【００９６】
加えて、各クエリクラスタをデータベースクラスタ（カーネルサイズの一群を使用して構築される）と個々に比較することで、これは、スケールの変化が、アフィン変換により、画像にわたって一様ではない可能性があることを考慮に入れる。
【００９７】
図１３は、キーポイント単位マッチングを超える、クラスタ単位マッチングの改善を示すブロック図である。キーポイント単位マッチング１３０２において、クエリ画像１３０６内の各キーポイントは、空間的制約に関係なく、画像１３０８のデータベース内の１または複数のキーポイントと個々に比較される。この例において、クエリ画像１３０６内のキーポイントについての記述子Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５、Ｄ６、Ｄ７、Ｄ８、Ｄ９は、画像のデータベース内のキーポイントの記述子とマッチングされる。本明細書に示されるように、記述子Ｄ１〜Ｄ９は、Ｄ１からＤ９へと連続的またはランダムな順序で（すなわち、空間的制約なく）比較および／またはマッチングされうる。
【００９８】
対照的に、クラスタ単位マッチングアプローチ１３０４の場合、キーポイントは、最初に、空間的制約付きクラスタ１３１０、１３１２、１３１４、１３１６へとグループ化される。次に、クラスタ単位マッチングを確実にするために、各クラスタ内のトータルキーポイントのサブセット（すなわちアンカーポイント）だけがマッチングされる必要がある。すなわち、クエリ画像１３０６内のキーポイントをクラスタへとグループ化すると、比較／マッチングはクラスタ単位で行われうる。例えば、第１のクラスタ１３１０内のキーポイントは、キーポイントマッチを確実にするためにデータベース内のキーポイントと比較されうる。十分な数または割合のキーポイントがマッチングされると、第１のクラスタ１３１０と、画像のデータベース１３０８内のクラスタとの間でクラスタ対応が作られうる。次に、このプロセスは、クラスタ単位マッチングで、第２のクラスタ１３１２、第３のクラスタ１３１４、第４のクラスタ１３１６に対して反復される。キーポイント単位マッチングアプローチ１３０２とは異なり、クラスタ単位マッチングアプローチ１３０４の場合、全てのキーポイントがマッチングされる（あるいは、マッチングが試される）必要はない。代わりとして、マッチングする試みは、クラスタ単位で行われうる。クラスタ内の十分な数／割合のキーポイントがマッチングされると、残りのキーポイントは、マッチングされる必要はない。代わりとして、マッチングされたキーポイントは、クエリクラスタを、画像のデータベース内のターゲットクラスタと実際にマッチングするために使用されうる。かくして、空間的制約付きキーポイントマッチングを実施することによって、かなりの量のキーポイント処理が回避される。
【００９９】
画像スケーリング−クラスタ対応づけに役立つカーネルサイズの適応
クエリ画像とターゲット画像との間でキーポイントマッチングを行う前に、クエリ画像のスケールは、推定あるいはおおまかに確かめられる必要があり、それによって、キーポイント比較は、クエリ画像とターゲット画像の両方に対して、ほぼ同じスケールで行われる。同一のシーンまたはオブジェクトのターゲット画像とはわずかに異なる視点のクエリ画像を考慮する。ここで、２つの画像にはスケール誤差がある。同一のガウスカーネルサイズ「Ｒ」（ガウスピラミッド内の）について、クエリ画像およびターゲット画像内で検出されたクラスタは、カーネルが画像の異なるサイズの部分をカバーするという事実のため、異なりうる。１対１のクラスタ対応は確立されない可能性がある。クエリ画像のスケールを決定することは、カーネルサイズ「Ｒ」の選択を可能にする。「スケール」は、所与の画像についての解像度を指しうる。
【０１００】
あらゆる所与の画像について、ガウスピラミッドなどのスケール空間ピラミッド（図３）に沿って、検出されたキーポイントの配置が存在するであろう。ガウスピラミッドは、画像処理に使用される技術であり、ガウス平均（ガウスぼやかし化）を使用して重みづけされ（weighted down）、スケールダウン(scaled down)された一連の画像を作成すること（例えば、単一の画像から）を含む。この技術が、１つの画像に対して複数回使用されると、それは、ピラミッドのより低いレベルの上の近くにある画素に対応する局所平均を含む各画素を用いて、連続的により小さくなる画像のスタックまたはピラミッドを生成する。
【０１０１】
より高いスケールで検出されたキーポイントが、より大きな特徴に対応することが観察される。画像解像度が下がるにつれ（例えば、視点がターゲットから離れるにつれ）、より精細な詳細が減らされ（例えば、最終的にキーポイントとしては検出不可能になり）、より高いスケール（粗い詳細に対応する）で検出された詳細は、より低いスケール（より精細な詳細に対応する）に移動する。よって、キーポイントの配置は、画像解像度が下がるにつれ、より低いスケールにシフトする。この観察は、画像のサイズの推定を取得するために使用され、カーネルサイズ半径「Ｒ」をそれに比例させる。（例えば、Ｒ α （１／Ｌ）、ここで、Ｌは、特徴（キーポイント）配置のピーク密度が開始するレベル（スケール空間ピラミッドの上からカウントされる）に対応するスケール係数である）。例示的なインプリメンテーションにおいて、スケーリング可能な係数Ｌがセット｛１、１．５、２、２．５、３、下界（lower_bound）｝から選択されうる。
【０１０２】
オフラインでありうるトレーニングフェーズにおいて、クラスタリングのプロセスは、データベース画像上で行われるが、それは、カーネルの一群を用いて行われる。カーネルＲのサイズは、全てのＬ＝{１、１．５、２、２．５、３、下界}について｛ＩＸ／(２０＊Ｌ)，ＩＹ／（２０＊Ｌ）｝と定義される。これは、Ｌによって定義される全ての可能なカーネルサイズで１または複数のデータベース画像をクラスタリングすることによってクエリ画像と１または複数データベース画像との間のスケール変化を説明する。
【０１０３】
かなりの密度の特徴（キーポイント）が、より高いスケールで検出された場合、画像の解像度は十分に高く、それは、Ｌを１に近づけるであろう。それにより、カーネルＲは、画像のディメンションの１／２０である。かなりの密度の特徴が、より低いスケールから検出されると、画像解像度の低下を説明するために、Ｌは、カーネルのサイズの減少に相応じて増加するであろう。この例では、１／２０のディメンションのカーネルによる最大解像度（８００画素×６００画素）のクラスタリングが、効率の良いクラスタ対応に適していることが観察されたため、「２０」がベースラインとして選ばれる。このベースラインの係数は、最大解像度に依存して変更されうる。スケーリング係数Ｌは、下界まで拡張する。基数（Ｌ）スケーリングテップの後、カーネルサイズのさらなる減少は、認識または少なくとも重要なクラスタリングの実行が不可能である極めて小さい画像を特定する。下界は作られるオクターブの数に依存するが、通常、興味のあるオブジェクトが最大解像度の少なくとも１／４を満たすと仮定されると、下界＝４は常に有効である。
【０１０４】
図１４は、高解像度画像についてのキーポイント配置の例を示す。ここで、画像に対して、スケール空間ピラミッドの低スケール１４０２、中間スケール１４０４、高スケール１４０６が示される。追加の画像スケールが、スケール空間ピラミッドに存在しうることは明確にされるべきである。かなりの密度の特徴（キーポイント）が、画像に対して、スケール空間ピラミッドのより高いスケール（オクターブ）で検出された場合、これは、画像の解像度が高いことを示すであろう。ここで、かなりの割合のキーポイントが、より高いスケール１４０６に存在することが認識されうる。すなわち、キーポイント密度または配置は、高スケール１４０６、中間スケール１４０４、および、低スケール１４０２にわたって、かなり一様である。このように、この画像が、比較的高い解像度を有すること（これは、複数のスケールにわたるキーポイント検出を可能にする）が仮定されうる。
【０１０５】
図１５は、低解像度画像についてのキーポイント配置の例を示す。ここで、画像について、スケール空間ピラミッドの低スケール１５０２、中間スケール１５０４、高スケール１５０６が示される。かなりの密度の特徴が、スケール空間ピラミッド（例えば、ガウスピラミッド）のより低いスケール（オクターブ）で検出された場合、これは、画像の解像度が低いことを示すであろう。すなわち、画像解像度が下がると、より精細な特徴が減らされ、より高いスケール（粗い特徴に対応する）で検出された詳細は、より低いスケールに移動する。ここで、重要ではない割合のキーポイントがより高いスケール１５０６に存在することが認識されうる。すなわち、キーポイント密度または配置は、より低いスケール１５０２に集められる。かくして、この画像が比較的低い解像度を有していると仮定されうる。
【０１０６】
このように、キーポイント配置における１または複数のピークは、支配的な画像スケールを追跡し、かつオブジェクトサイズをおおまかに追跡するために使用されうる。この観察は、オブジェクトのサイズの推定を得るために使用され、カーネルサイズ半径Ｒをそれに比例させる。特に、オブジェクトサイズは、このスケールあるいはより低いスケールで検出された全てのキーポイントの特定の閾値割合を含む最小スケールレベルによって選択される。様々な例において、この割合は、３０％から５０％(例えば４０％)の範囲内でありうる。
【０１０７】
１つの例において、カーネルサイズ半径Ｒは次のように与えられうる:
【数１６】
0005384746.tif 000017
【０１０８】
ここでσｍａｘは、ピラミッドにおける最大スケールレベルであり、σｏｂｊは、推定オブジェクトスケールである。ここで、σｍａｘは、オブジェクト画像の解像度に依存する。一般的に、オブジェクト画像の解像度がｍ×ｎ画素である場合、カーネルサイズは次のように与えられる：
【数１７】
0005384746.tif 000018
【０１０９】
ここで、ｋはスケーリング係数(例えばｋ＝１／２０)である。σｏｂｊ＝σｍａｘのオブジェクト画像について、画像サイズの１／２０というカーネルサイズは、画像内のクラスタを表わすのに十分である。オブジェクト画像解像度σｏｂｊが減少するにつれ、（σｍａｘ−σｏｂｊ＋１）が増加するため、半径Ｒも減少することに注意されたい。
【０１１０】
図１６は、クラスタ対応の実行を容易にする画像のカーネルスケーリングのための方法を示す。あらゆる所与の画像について、スケール空間ピラミッド（図３）に沿って、検出されたキーポイントの配置が存在する。例えば、画像は、低いスケールから高いスケールまでに及ぶ複数のぼやかし画像を取得するために、複数の異なるスケールでぼけ関数を用いて畳み込みされうる（１６０２）。次に、複数のキーポイントが複数のぼやかし画像にわたって識別されうる（１６０４）。次に、複数のスケールにわたってキーポイントの配置（例えば、集中）が確かめられうる（１６０６）。次に、キーポイントの配置に基づいて画像サイズが推定されうる（１６０８）。次に、推定された画像サイズに基づいて、画像についてのカーネルサイズが選択されうる（１６１０）。次に、選択されたカーネルサイズにおけるぼやかし画像が利用され、キーポイントクラスタリングを行ないうる（１６１２）。
【０１１１】
密度に基づくクラスタの、および／または、スケールに基づくキーポイントのプルーニング
いくつかの例において、利用可能なキーポイントのサブセットにのみ基づいて、クエリ画像からの特徴をターゲット画像にマッチングさせることが可能である。例えば、５００個のキーポイントが１つの画像に対して識別されうるが、実際には、１００個あるいは２００個しか画像またはオブジェクトマッチングを行なうために必要とされない可能性がある。キーポイントの数を減らすことは、オブジェクト／画像認識に必要な処理の削減を促進する。キーポイントを減らすための２つのアプローチは、クラスタ密度に基づいてキーポイントをプルーニングすること、および、スケールに基づいてキーポイントをプルーニングすることを含む。
【０１１２】
図１７は、キーポイント密度に基づくクラスタプルーニングを示す。高密度クラスタが、より多くの興味のある特徴を含む傾向があることが観察されている。クエリ画像１７０２とターゲット画像とのマッチングに使用されるキーポイントクラスタを減らすために、より高い密度のキーポイントを有するこれらのキーポイントクラスタが選択され、残りのキーポイントクラスタはプルーニングまたは無視される。次に、選択されたキーポイントクラスタは、クエリ画像とターゲット画像とのマッチングに使用される。この例において、複数のキーポイントクラスタ１７０６、１７０８、１７１０、１７１２、１７１４がクエリ画像１７０２内で識別され、各クラスタは、それぞれキーポイント密度ρ１、ρ２、ρ３、ρ４、ρ５を有する。ここで、ρ１＞ρ２＞ρ３＞ρ４＞ρ５である。クエリクラスタは、キーポイント密度に従ってランク付けされうる。この例において、３つの最も高い密度のクラスタ１７０６、１７０８、１７１０が、クエリ画像１７０２’に対して選択され、最低の密度のクラスタ１７１０、１７１２はプルーニングまたは無視されうる。次に、選択されたキーポイントクラスタ１７０６、１７０８、１７１０が、クエリ画像と１または複数のターゲット画像とのマッチングに使用されうる。
【０１１３】
キーポイント密度に加えて、より高いスケールで生じるキーポイントは、より低いスケールで生じるキーポイントよりも高くランク付けされうる。すなわち、より高いスケール（つまり、より低い解像度）で検出されたキーポイントが保存され、より低いスケール（つまり、より高い解像度）で検出されたキーポイントはプルーニングされうる。
【０１１４】
図１８は、キーポイント密度に基づいてキーポイントクラスタをプルーニングすることにより、クエリ画像のキーポイントを減らす方法である。第１に、クエリ画像に対して複数のキーポイントが取得されうる（１８０２）。そのようなキーポイントは、１または複数のスケールにわたって検出可能であり、例えば、高度に特異的な特徴（例えば、極大と極小、ハイコントラストなどを有する画素）でありうる。次に、このキーポイントは複数のクラスタにグループ化される（１８０４）。例えば、ノンパラメトリック密度推定プロセス、平均シフト解析が、キーポイントをクラスタにグループ化するために使用されうる。次に、キーポイント密度が、各クラスタに対して取得されうる（１８０６）。次に、複数のクラスタからの１または複数の低密度クラスタは、数が減ったキーポイントを有するプルーニングされたクラスタのセットを取得するために、除去または無視されうる（１８０８）。次に、プルーニングされたクラスタは、クエリ画像と１または複数のターゲット画像との特徴マッチングに使用されうる（１８１０）。
【０１１５】
図１９は、キーポイントスケールに基づくキーポイントプルーニングの方法を示す。キーポイントは、様々なスケール（例えば、ガウススケール空間の差）で検出可能である。異なるスケールにわたる、且つ、同じ領域内にあるキーポイントは、クラスタへと結合されうる。より高いスケールは、より低いスケールよりも画像をぼやかすことにより生成されうる。この例において、クエリ画像は、低スケール１９０２、中間スケール１９０４、高スケール１９０６バージョンのクエリ画像を生成するためにぼやかされる。かくして、クエリ画像についての結果として得られるクラスタ１９０８は、異なるスケールで検出されたキーポイントを含みうる。キーポイントマッチングの目的ために、より高いスケールで検知されたキーポイントがよりロバスト且つ安定していることが観察されている。かくして、このアプローチにおいて、キーポイントマッチングの目的のために、より高いスケールで検出されたキーポイントは保存され、より低いスケールで検出されたキーポイントは、プルーニングまたは無視される。いくつかのキーポイントが異なるスケールにおいて検知可能であることに注意されたい。そのような場合、キーポイントが検出される最も高いスケールが使用される。この例において、複数のクラスタ１９１２、１９１４、１９１６、１９１８、１９２０は、クエリ画像の複数のスケール（例えば、低スケール１９０２、中間スケール１９０４、高スケール１９０６）からのキーポイントを含みうる。この例において、低スケール１９０２で識別されたキーポイントは、プルーニングされたクラスタ１９１０を取得するために、結果として生じるクラスタ１９０８から除去される。このように、プルーニングされたクラスタは、中間スケール１９０４および高スケール１９０６で検知可能なキーポイントだけを含みうる。次に、プルーニングされたクラスタ１９１０のキーポイントは、クエリ画像と１または複数のターゲット画像とのマッチングに使用されうる。
【０１１６】
図２０は、キーポイント密度に基づいてキーポイントクラスタをプルーニングすることにより、クエリ画像のキーポイントを減らすための方法である。クエリ画像に対して複数のキーポイントが複数の画像スケールにわたって取得されうる（２００２）。そのようなキーポイントは、１または複数のスケールにわたって検出可能であり、例えば、高度に特異的な特徴（例えば、極大と極小、ハイコントラストなどを有する画素）でありうる。キーポイントは、オプション的に、複数のクラスタにグループ化されうる（２００４）。例えば、ノンパラメトリック密度推定プロセス、平均シフト解析は、キーポイントをクラスタにグループ化するために使用されうる。次に、複数のキーポイントまたはクラスタからより低いスケールで検出されるキーポイントは、プルーニングされたキーポイントのセットを取得するために、プルーニングされうる（２００６）。次に、プルーニングされたキーポイントのセットは、クエリ画像と１または複数のターゲット画像との特徴マッチングに使用されうる（２００８）。
【０１１７】
様々なインプリメンテーションにおいて、本明細書に記述されたクラスタプルーニングおよびキーポイントプルーニングアプローチは、順次または順番に結合されうる。例えば、最初に、クエリ画像に対して、クラスタプルーニングが行なわれ、次に、キーポイントプルーニングが行なわれうる。別の例において、クエリ画像に対して、最初にキーポイントプルーニングが行なわれ、次に、クラスタプルーニングが行なわれうる。
【０１１８】
画像マッチングデバイスの例
図２１は、画像マッチングデバイスの例を示すブロック図である。画像マッチングデバイス２１００は、通信インタフェース２１０４、画像取込デバイス２１０６、および／または、記憶デバイス２１０８に結合された処理回路２１０２を含みうる。通信インタフェース２１０４は、有線／無線ネットワークを通っての通信し、画像および／または１または画像についての特徴記述子を受信することに適応しうる。画像取込デバイス２１０６は、例えば、クエリ画像を取り込むことができるデジタルカメラでありうる。処理回路２１０２は、画像から特徴を抽出するための画像処理回路２１１４、および、この抽出された特徴を使用して、クエリ画像をターゲット画像のデータベース２１１０に、および／または、クエリ画像記述子を記述子データベース２１１２にマッチングするための画像マッチング回路２１１６を含みうる。１つの例示的なインプリメンテーションに従って、画像マッチングアプリケーションは、画像データベース内の１または複数の画像へのクエリ画像のマッチングを試みる。画像データベースは、データベース２１１０に記憶された１または複数の画像と関連付けられた何百万もの特徴記述子を含みうる。
【０１１９】
画像処理回路２１１４は、スケール空間生成器２１２２、特徴検出器２１２４、画像スケーリング回路２１２６、特徴プルーニング回路２１２８、および／または、特徴記述子抽出器２１３０を含む特徴識別回路２１２０を含みうる。スケール空間生成器２１２２は、例えば、図３に示されるような複数の異なるスケール空間（例えばガウススケール空間ピラミッド）を生成するために、ぼけ関数を用いて画像を畳み込むように機能しうる。次に、特徴検出器２１２４は、画像に対して異なるスケール空間で１または複数のキーポイントを識別しうる（例えば、図４に示されるような局所極大および極小を使用することによって）。画像スケーリング回路２１２６は、特徴検出および／またはクラスタリングを行なう適切なカーネルサイズを選択するために、画像のスケールに接近するように機能しうる。特徴プルーニング回路２１２８は、より高い密度クラスタ内のキーポイントだけを使用／選択することによって（図１７）、および／または、より高いスケールで検出されたキーポイントを好むことによって（図１９）、マッチングされたキーポイントの数を減らす。特徴記述子生成器２１３０は、各キーポイントおよび／またはその周囲のパッチに対して記述子を生成する（例えば、図５で示される）。
【０１２０】
画像マッチング回路２１１６は、アンカーポイント検出器２１３６、クラス発生器２１３８、および／または、バイナリキーポイントセレクタ２１４０を含む空間抑制付き特徴マッチング回路２１３４を含みうる。アンカーポイント検出器２１３６は、アンカーポイントと呼ばれる高度な相関キーポイント（例えば、高い閾値を超えるマッチ）を識別するように機能する（図８、１１、１２に示される）。次に、クラスタ発生器２１３８は、クエリ画像とターゲット画像とのクラスタマッチングを行なう（図８、１１、１２に示される）。クラスタマッチングが確認されると、バイナリキーポイントセレクタ２１４０は、バイナリ決定に基づいてキーポイントをクエリクラスタに加える（図８、１１、１２に示される）。次に、結果として生じるクエリクラスタは、画像またはオブジェクトマッチを決定する際に使用されうる。マッチの結果は、通信インタフェース２１を介して（例えば、画像または特徴記述子を送るモバイルデバイスに）提供されうる。
【０１２１】
いくつかのインプリメンテーションにおいて、クエリ画像のキーポイントと関連付けられた特徴記述子のセットが画像マッチングデバイスによって受信されうることに注意されたい。この状況において、クエリ画像は、既に処理されている（記述子を取得するために）。かくして、画像処理回路２１１４は、バイパスされるか、あるいは、画像マッチングデバイス２１００から除去されうる。
【０１２２】
モバイルデバイスの例
図２２は、画像またはオブジェクト認識のために、画像処理を行なうのに適した例示的なモバイルデバイスを示すブロック図である。モバイルデバイス２２００は、画像取込デバイス２２０４、通信インタフェース２２１０、および、記憶デバイス２２０８に結合された処理回路２２０２を含みうる。画像取込デバイス２２０４（例えば、デジタルカメラ）は、関心の対象であるクエリ画像２２０６を取り込み、それを処理回路２２０２に供給することに適応しうる。処理回路２２０２は、取込画像を処理して、画像／オブジェクト認識のために後で送信または使用されうる特徴記述子を生成することに適応しうる。例えば、処理回路２２０２は、スケール空間生成器２２２２、特徴検出器２２２４、画像スケーリング回路２２２６、特徴プルーニング回路２２２８、および／または、特徴記述子抽出器２２３０を含む特徴識別回路２２２０を含むか、それを実施しうる。スケール空間生成器２２２２は、例えば、図３に示されるように、複数の異なるスケール空間（例えば、ガウススケール空間ピラミッド）を生成するために、ぼやかし関数を用いて画像を畳み込むように機能しうる。次に、特徴検出器２２２４は、画像に対して、異なるスケール空間で１または複数のキーポイントを識別しうる（例えば、図４で示されるような局所極大および極小を使用することによって）。画像スケーリング回路２２２６は、特徴検出および／またはクラスタリングを行なう適切なカーネルサイズを選択するために、画像のスケールに接近するように機能しうる。特徴プルーニング回路２２２８は、より高い密度クラスタ内のキーポイントだけを使用／選択すること（図１７）、および／または、より高いスケールで検出されたキーポイントを好むこと（図１９）によって、マッチングされるキーポイントの数を減らす。特徴記述子生成器２２３０は、各キーポイントおよび／またはその周囲のパッチの記述子を生成する（例えば、図５で示される）。
【０１２３】
次に、処理回路２２０２は、記憶デバイス２２０８に１または複数の特徴記述子を記憶し、および／または、通信ネットワーク２２１２を通して通信インタフェース２２１０（例えば、無線通信インタフェース、トランシーバ、あるいは、回路）上で特徴記述子を、画像またはオブジェクトを識別するためにこの特徴記述子を使用する画像マッチングサーバに送信しうる。すなわち、データベース内の任意の画像が同じ特徴を有するか否かを決定するために、画像マッチングサーバは、特徴記述子を、特徴記述子自体のデータベースと比較しうる。
【０１２４】
図２３（図２３Ａ、２３Ｂおよび２３Ｃを備える）は、オブジェクト認識プロセスの一部として、画像スケーリング、特徴プルーニング、および／または、空間抑制付き特徴マッチングのための方法を示すフロー図である。この方法の態様が、この方法の別の態様から独立して、あるいは、それらと組み合わせて実施されうることに注意されたい。この方法は、図２１および／または図２２に示されたコンポーネントのうちの１または複数によって実施されうる。
【０１２５】
最初に、その画像に対する近似スケールを取得するために画像スケーリングが行なわれうる。クエリ画像に対して複数のキーポイントが取得されうる（２３０２）。例えば、キーポイントは、クエリ画像のぼやかされたバージョンに対応する複数のスケール空間にわたって取得されうる。次に、クエリ画像に係る複数のスケール空間にわたって、キーポイントの配置が取得されうる（２３０４）。次に、キーポイントの配置に基づいてクエリ画像のスケールが推定されうる（２３０６）。１つの例において、カットオフスケールまでの空間スケールの中にキーポイントの閾値割合（例えば７０％、７５％、８０％、８５％、９０％あるいは９５％）を維持するように、この画像スケールは、複数のスケール空間上のキーポイントの配置から推定されうる。次に、推定されたクエリ画像スケールに基づいてキーポイントをクラスタリングするために、カーネルサイズが選択されうる（２３０８）。次に、キーポイントクラスタリングを行なうために、クエリ画像のぼやかされたバージョンが、選択されたカーネルサイズで使用されうる。
【０１２６】
次に、キーポイントのプルーニングが行なわれうる。最初に、クエリ画像についてキーポイントクラスタのセット内のクラスタの各々に対してキーポイント密度が取得されうる（２３１０）。例えば、クエリ画像についてのキーポイントクラスタのセットは、キーポイント配置（ここで、近くに位置付けられたキーポイントはまとめてグループ化される）に基づいて定義されうる。クエリ画像のキーポイントの数は、１または複数のより低い密度のクラスタをキーポイントクラスタのセットからのプルーニングすること（２３１２）、および／または、クエリ画像のスケール空間のより低いレベルで検出されたキーポイントをキーポイントクラスタの第１のセット内のクラスタのうちの少なくともいくつかからプルーニングすること（２３１４）によって減らされうるプルーニングされたキーポイントおよびクラスタは、記述子を生成する前に破棄されうる（２３１６）。次に、記述子は、クエリ画像の数が減ったキーポイントに対して生成されうる（２３１８）。数が減ったキーポイントについての記述子は、クエリ画像またはそのクエリ画像内のオブジェクトをターゲット画像とマッチングするために、特徴マッチングデバイスに送信されうる。
【０１２７】
次に、クラスタベースのキーポイントマッチングを使用して、特徴マッチングが行なわれうる。クエリ画像内のキーポイントは、１または複数のターゲット画像内のキーポイントにマッチングされうる（２３２０）。キーポイントがキーポイントマッチングに使用される記述子によって表わされうることに注意されたい。次に、１または複数のターゲット画像のキーポイントに少なくともクエリ画像のキーポイントのサブセットをマッチングすることによって、アンカーマッチがクエリ画像に対して確立されうる（２３２２）。アンカーマッチは、１または複数のターゲット画像のキーポイント閾値を超えてマッチングされるキーポイントマッチでありうる。アンカーマッチを確立することは、キーポイントがその対応するキーポイントから除外されるべきか否かに関する後のバイナリ決定のために、クエリ画像のキーポイントに対してキーポイントマッチ情報を保存することを含みうる。次に、キーポイントクラスタは、（ａ）クエリ画像のスケール空間にわたるキーポイントの空間位置、および／または、（ｂ）キーポイントが検出されたスケール空間におけるスケールレベルに基づいて確立されうる（２３２６）。クエリキーポイントクラスタは、アンカーマッチのサブセットに基づいてターゲットキーポイントクラスタにマッチングされうる（２３２８）。キーポイントは、そのようなキーポイントがターゲットキーポイントクラスタ内のキーポイントに少なくとも部分的にマッチングされる場合、クエリキーポイントクラスタに保存されうる（２３３０）。キーポイントがマッチングされないか、ターゲットキーポイントクラスタ以外のクラスタ内のキーポイントにマッチングされた場合、そのようなキーポイントはクエリキーポイントクラスタから除外されうる（２３３２）。
【０１２８】
図に示されたコンポーネント、ステップ、特徴、および／または、機能のうちの１または複数は、単一のコンポーネント、ステップ、特徴、または機能へと再配列および／または結合されうるか、あるいは、いくつかのコンポーネント、ステップ、または関数に組み込まれうる。本明細書で開示された新しい特徴から逸脱することなく、追加のエレメント、コンポーネント、ステップ、および／または、機能がさらに追加されうる。図に示される装置、デバイスおよび／またはコンポーネントは、別の図に記述された方法、特徴、ステップのうちの１または複数を行うように構成されうる。本明細書に記述されたアルゴリズムは、さらに、ソフトウェアで効率的に実施されるか、ハードウェアに組み込まれうる。
【０１２９】
さらに、実施形態が、フローチャート、フロー図、構造図、または、ブロック図で描写されたプロセスとして記述されうることに注意されたい。フローチャートは、動作を連続プロセスとして記述しうるが、この動作の大部分は、並行して、または、同時に実行されうる。加えて、動作の順序は、再配列されうる。プロセスは、その動作が完了すると終了する。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応しうる。プロセスが機能に対応する場合、その終了は、呼出している機能または主要機能への機能の戻しに対応する。
【０１３０】
さらに、記憶媒体は、情報を記憶するための、読取専用メモリ（ＲＯＭ）、ランダムアクセス（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および／または、別の機械可読媒体、プロセッサ可読媒体、および／または、コンピュータ可読媒体を含む、データを記憶するための１または複数のデバイスを表しうる。「機械可読媒体（machine-readable medium）」、「コンピュータ可読媒体（computer-readable medium）」、および／または、「プロセッサ可読媒体（processor-readable medium）」という用語は、ポータブルまたは固定の記憶デバイス、光記憶デバイス、命令および／またはデータを記憶、包含、または、搬送することができる様々な別の媒体のような非一時的媒体を含みうるがそれに限定されない。このように、本明細書に記述された様々な方法は、「機械可読媒体」、「コンピュータ可読媒体」、および／または「プロセッサ可読媒体」に記憶されうる命令および／またはデータによって十分なにあるいは部分的に実施され、１または複数のプロセッサ、機械、および／または、デバイスによって実行されうる。
【０１３１】
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、あるいは、それらの任意の組み合わせによって実施されうる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実施された場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体または別の記憶装置のような機械可読媒体に記憶されうる。プロセッサは、記述されたタスクを実行しうる。コードセグメントは、手順、機能、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは、命令、データ、構造、または、プログラムステートメントのあらゆる組み合わせを表しうる。コードセグメントは、情報、データ、アーギュメント、パラメータ、または、メモリコンテンツを伝送および／または受信することによって、別のコードセグメントまたはハードウェア回路に結合されうる。情報、アーギュメント、パラメータ、データなどは、メモリ共有、メモリパッシング、トークンパッシング、ネットワーク伝送などを含む任意の適切な手段を介して伝送、転送、または、送信されうる。
【０１３２】
本明細書に開示された例と関連して記述される様々な実例となる論理ブロック、モジュール、回路、エレメント、および／または、コンポーネントは、汎用のプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向けＩＣ（ＡＳＩＣ）、書替え可能ゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、あるいは、本明細書に記述された機能を実行するよう設計されたこれらの任意の組み合わせと共に実施または実行される。汎用プロセッサはマイクロプロセッサでありうるが、代替で、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンでありうる。プロセッサは、さらに、例えば、ＤＳＰとマクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアに結合した１または複数のマイクロプロセッサ、あるいは、その他の上記構成の組み合わせといった計算コンポーネントの組み合わせとしても実施されうる。
【０１３３】
本明細書に開示された例に関して示される方法またはアルゴリズムは、処理ユニット、プログラミング命令、または指示の形態で、直接的にハードウェアに、プロセッサによって実行されるソフトウェアモジュールに、または、両方の組み合わせに組み込まれ、単一のデバイスに含まれうるか、複数のデバイスにわたって分散されうる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、取外し可能ディスク、ＣＤ−ＲＯＭ、あるいは、当技術分野において周知のあらゆる他の形態の記憶媒体に存在しうる。記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替において、記憶媒体はプロセッサに一体化される。
【０１３４】
当業者はさらに、本明細書に開示された実施形態と関連して記述されている様々な実例となる論理ブロック、モジュール、回路、アルゴリズムステップが電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせとして実施されることを認識するであろう。このハードウェアとソフトウェアの互換性を明確に示すために、様々な実例となるコンポーネント、ブロック、モジュール、回路、ステップが、それらの機能性という観点から一般的に上に記述されている。ハードウェア、または、ソフトウェアとしてそのような機能性が実施されるか否かは、特定のアプリケーションとシステム全体に課された設計制約とに依存する。
【０１３５】
本明細書に記述された発明の様々な特徴は、本発明を逸脱することなく、異なるシステムにおいて実施されうる。前述の実施形態は単に例であり、本発明を限定するものとして解釈されないことは注意されるべきである。実施形態の記述は、例示を目的としており、請求項の範囲を制限することを企図しない。そういうものとして、本明細書の教示は、別のタイプの装置に容易に適用され、多数の代替、変更、および変形が、当業者には明らかであろう。
【図１】
0005384746.tif 000019
【図２】
0005384746.tif 000020
【図３】
0005384746.tif 000021
【図４】
0005384746.tif 000022
【図５】
0005384746.tif 000023
【図６】
0005384746.tif 000024
【図７】
0005384746.tif 000025
【図８Ａ】
0005384746.tif 000026
【図８Ｂ】
0005384746.tif 000027
【図９】
0005384746.tif 000028
【図１０】
0005384746.tif 000029
【図１１Ａ】
0005384746.tif 000030
【図１１Ｂ】
0005384746.tif 000031
【図１２】
0005384746.tif 000032
【図１３】
0005384746.tif 000033
【図１４】
0005384746.tif 000034
【図１５】
0005384746.tif 000035
【図１６】
0005384746.tif 000036
【図１７】
0005384746.tif 000037
【図１８】
0005384746.tif 000038
【図１９】
0005384746.tif 000039
【図２０】
0005384746.tif 000040
【図２１】
0005384746.tif 000041
【図２２】
0005384746.tif 000042
【図２３Ａ】
0005384746.tif 000043
【図２３Ｂ】
0005384746.tif 000044
【図２３Ｃ】
0005384746.tif 000045