以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
[実施形態1]
図1は、本発明の実施形態1に係る画像検出システムの構成例を説明するブロック図である。図1では、画像検出システムは、画像処理装置100と画像検出装置200とを有し、画像処理装置100と画像検出装置200はネットワーク150を介して相互にデータ通信可能に相互に接続されている。
画像処理装置100は、ユーザインターフェース104、CPU105、RAM106、記憶部107、画像読取部108、画像出力部109、表示部110を備え、これらは制御部101を介して相互に通信可能に接続されている。制御部101は、更に画像処理装置100全体を制御する装置制御部102と、画像データを処理する画像処理部103とを有する。ユーザインターフェース104は、例えばキーボード、ポインティングデバイス、その他の入出力装置を含み、各種の設定値、又は指定値を入力することができる。CPU105は、記憶部107の初期プログラムを実行して、記憶部107に記憶されているプログラムを展開してRAM106に記憶する。RAM106はプログラム格納用や、ワーク用のメインメモリとして使用される。
画像読取部108は、例えばスキャナを有し、紙文書等の原稿を読取ることにより、その文書画像に係る画像データを取得して出力する。制御部101は、画像読取部108から、その画像データを受取って記憶部107に記憶する。そして制御部101は、特定パターンの登録処理、又は特定パターンの検出処理を実行する際に、記憶部107に記憶された画像データをネットワーク150を介して画像検出装置200に送信する。
制御部101は、記憶部107に記憶された画像データを表示部110に提供して表示部110に画像を表示する処理を実行する。また制御部101は同様に、記憶部107に記憶された画像データを画像出力部109に出力し、画像出力部109は、種々の形式で画像を出力する処理を実行する。例えば、画像出力部109は、画像データを記憶媒体に出力する処理を実行することができる。或いは、また画像出力部109は印刷機能を備え、紙媒体等の出力媒体(シート)に画像を印刷する処理を実行してもよい。
以上説明した画像処理装置100の構成はあくまでも一例であり、画像読取部108及び画像出力部109のうち、画像出力部109を有さない構成の画像処理装置100であってもよい。
次に画像検出装置200の構成を説明する。
画像検出装置200は、ユーザインターフェース206、CPU207、RAM208、記憶部209、表示部210を備え、これらは制御部201を介して相互に通信可能に接続されている。制御部201は更に画像検出装置200全体を制御する装置制御部202と、画像の解析を行う画像解析部203とを有する。実施形態1に係る画像解析部203には、検索対象の特定パターン(特定画像)の登録処理を行う特定パターン登録部204と、画像データに含まれる特定パターンを検出する特定パターン検出部205とを有する。ユーザインターフェース206は、例えばキーボード、ポインティングデバイス、その他の入出力装置を有し、各種の設定値又は指定値を入力することができる。尚、実施形態1に係るユーザインターフェース206は、後述の特定パターン登録を受付ける機能、及び対応スケールの指定を受付ける機能を提供する。
CPU207は、記憶部209の初期プログラムを実行して、記憶部209に記憶されているメインプログラムを展開してRAM208に記憶する。RAM208はプログラム格納用や、ワーク用のメインメモリとして使用される。制御部201は、記憶部209に記憶された画像データを表示部210に提供して表示部210に画像を表示する処理を実行する。尚、上述の装置制御部202及び画像解析部203の機能及び処理は、本実施形態1では、CPU207が記憶部209に記憶されているプログラムをRAM208に展開して実行することにより達成される。
制御部201は、画像処理装置100から送信され、画像検出装置200の記憶部209に保存された画像データを画像解析部203に提供する。画像解析部203は、ユーザインターフェース206を介して受け付けた各種の指定情報に基づいて、その画像データから特定パターンを検出する処理を実行する。或いはまた、ユーザインターフェース206を介して受付けた各種の指定情報は記憶部209やRAM208に保存され、画像解析部203は、保存された指定情報を読み出して画像データから特定パターンを検出する処理を実行する。更に、画像解析部203は、特定パターンの登録処理も実行する。
実施形態1に係る画像解析部203は、特定パターンを登録する際は、特定パターンの画像データから局所特徴量を算出して、記憶部209やRAM208に保持する。その際、後述する局所特徴量に付随した情報も記憶部209やRAM208に保持する。
実施形態1に係る画像解析部203は、特定パターンを検出するフェーズでは、画像データから局所特徴量を算出する。そして特定パターンを登録するフェーズで記憶部209やRAM208に保持した特定パターンの局所特徴量とのマッチングを行う。更に、その特定パターンの付随情報に基づく投票処理を行って、その画像データにおける特定パターンの有無を判定する。この詳細は後述する。
以上説明した画像検出装置200の構成はあくまでも一例であり、実施形態1はこれに限らない。その他必要に応じてその他の構成を備えるものであってもよい。例えば、画像検出装置200は、サーバ等のコンピュータ装置で実装することができるが、記憶部209や画像解析部203の機能は、クラウドと呼ばれるネットワーク150でつながるリモートの計算資源で実装する構成も考えられる。更に、画像処理装置100が、画像検出装置200の機能を包含する態様で画像検出装置200を実装してもよい。
次に、拡大・縮小不変性を持たず、回転不変性だけを持つ局所特徴量(回転不変性局所特徴量)を算出する方法について説明する。画像データから局所特徴量を算出するために、画像解析部203は、画像データから輝度成分を抽出し、その抽出した輝度成分に基づいて輝度成分画像を生成する。
その輝度成分画像から、画像の回転があってもロバスト(robust)に抽出されるような局所的な特徴点(局所特徴点)を抽出する。この局所特徴点の抽出方法として、この実施形態1では、公知の手法であるHarris作用素を用いる。具体的には、Harris作用素を作用させて得られた出力画像上の画素について、その画素及びその画素の8近傍にある画素(合計9画素)の画素値を調べる。そして、その画素が局所的に最大になる(これら9画素の中で、その画素の画素値が最大になる)点を局所特徴点として抽出する。尚、このとき画素値が局所極大になったときでも、その画素値が閾値以下の場合は局所特徴点として抽出しないようにする。尚、局所特徴点を抽出可能な方法であれば、上述のHarris作用素による特徴点抽出方法に限らず、どのような特徴点の抽出方法でも適用可能である。
続いて、抽出された局所特徴点の各々について、画像の回転があっても不変となるように定義された特徴量(局所特徴量)を算出する。この局所特徴量の算出方法として、実施形態1では、公知の手法であるSIFT記述子を利用する。SIFT記述子は、局所特徴点の周囲のエッジのヒストグラムを算出し、最もヒストグラム度数が大きいエッジ方向を「正規化方向」として、その方向で特徴量を正規化して記述する手法である。局所特徴点が回転していても、正規化方向があるために、同一の特徴量が算出でき、回転不変性がある特徴量となっている。尚、回転不変性を持つ局所特徴量を算出できる方法であれば、上述したような特徴量の算出方法に限らず、どのような特徴量の算出方法でも適用可能である。回転不変局所特徴量においては、局所特徴量に付随する情報は正規化方向となる。
更に、拡大・縮小不変性及び回転不変性を持つ局所特徴量(拡大縮小及び回転不変の局所特徴量)を算出する方法について説明する。画像から局所特徴量を算出するために、画像解析部203は、前述したのと同様に、画像データから輝度成分を抽出し、その抽出した輝度成分に基づいて輝度成分画像を生成する。
次に、異なるスケールの画像集合であるスケールスペースの算出を行う。具体的には、輝度成分画像を倍率(縮小率)pに従って順次縮小することを繰り返し、オリジナルのサイズの画像から段階的に縮小した、オリジナルの画像を含めてn枚の縮小画像を生成する。ここで、倍率p及び縮小画像の枚数nは、予め決められているものとする。
図2は、上述の縮小画像の生成処理の一例を説明する図である。
図2に示す例は、倍率pが「2の−(1/4)乗」、縮小画像の枚数nが「8」の場合を示す。もちろん、倍率pは必ずしも「2の−(1/4)乗」でなくとも良い。図2において、参照番号201は、輝度成分画像を示す。参照番号202は、その輝度成分画像201から倍率pに従って再帰的に4回の縮小処理を行って得られた縮小画像を示す。そして、参照番号203は、輝度成分画像201から倍率pに従って8回縮小された縮小画像を示す。
この例では、縮小画像202は、輝度成分画像201が1/2に縮小された画像で、縮小画像203は、輝度成分画像201が1/4に縮小された画像となる。尚、実施形態1では、画像を縮小する方法は、線形補間による縮小方法と、ガウシアンフィルタでぼかすことにより、疑似的に低解像度にする縮小方法とを組み合わせる。この方法は公知であるSIFT特徴量における手法である。但し、画像の縮小は、その他の方法で行っても良い。
次に、スケールスペースの中から、画像の拡大・縮小・回転があってもロバスト(robust)に抽出されるような局所的な特徴点(局所特徴点)を抽出する。この局所特徴点の抽出方法として、実施形態1では、公知の手法であるSIFT検出器を用いる。具体的には、まず、スケールスペースの隣接する縮小画像同士の差分画像を作成する。その際、縮小画像同士のスケールを合わせてから差分をとっても、或いはサブピクセル位置の画素値を推定することにより差分を取っても良い。図2の例では、1枚の元画像201と8枚の縮小画像から8枚の差分画像(D1〜D8)が生成される。その差分画像DK(位置)及び隣接する差分画像間(差分画像D(K−1)と差分画像DKの間、差分画像DKと差分画像D(K+1)の間)の局所的に最大となる点を局所特徴点として抽出する。ここでKは2〜7である。局所領域の範囲となる近傍画素は、まず、差分画像DKの当該画素の近傍8画素である。また、1レベル大きい差分画像(差分画像D(K+1))の当該画素に対応する画素及び周囲の8画素と、1レベル小さい差分画像(差分画像D(K−1))の当該画素に対応する画素及び周囲の8画素も、近傍画素となる。これらの合計である26画素が近傍画素となる。ここで、当該画素に対応する画素とは、当該画素をスケールの異なる座標系に変換した際に、一番近い画素となる。こうして抽出された点は、スケール方向においてもコントラスト変化が極値となる点であり、スケール不変性のある特徴点となっている。
図3は、形状が同じで、スケールが異なっている画像から特徴点を抽出するときの例を説明する図である。
例えば、図2の輝度成分画像201が図3(A)と(B)のように形状が同じで、スケールが異なっている場合であっても、特徴点を抽出するスケール及び位置は同じになる。共通して抽出される特徴点の例を図3(C)に示す。図3(A)の画像において、図3(C)のスケールの縮小画像の×印の点で特徴点が抽出されたとする。この場合、図3(B)の画像においても、図3(C)のスケールの縮小画像の×印の点で特徴点が抽出される。このように元画像のスケールが異なる画像であっても、同じスケールの縮小画像の同じ点が局所特徴点となる。このため、元画像のスケールが異なる場合でも、同じ縮小画像の同じ位置から局所特徴量を算出することが可能となる。
続いて、抽出された局所特徴点の各々について、特徴点が抽出されたスケールの縮小画像において、画像が回転されても不変となるように定義された特徴量(局所特徴量)を算出する。この局所特徴量の算出方法は、前述の方法と同様であるため、その説明を省略する。
以上の方法により、拡大縮小及び回転不変である局所特徴量を算出することが可能となる。しかし、この拡大縮小及び回転不変の特徴量の算出は、回転不変である局所特徴量の場合に比べて、スケールスペースの算出、特徴探索範囲の広さのために、手法にもよるが、計算時間が数倍〜数十倍程度、増大する。尚、探索範囲の広さは、スケールスペース自体の広さと、近傍領域の広さ(実施形態1では、9画素が26画素になる)の2種類のファクタが存在する。拡大縮小及び回転不変の局所特徴量では、局所特徴量に付随する情報は、正規化方向と、どのスケールスペースから特徴量を抽出したかを示す情報であるスケールレベルを含む。
次に実施形態1に係る処理の流れを図4及び図5を参照して説明する。
図4は、実施形態1に係る画像検出装置200における特定パターンの登録処理を説明するフローチャートである。この処理は、ユーザがユーザインターフェース206を介して、特定パターンの登録指示を入力することにより開始される。尚、この処理は、CPU207が記憶部209に記憶されているプログラムをRAM208に展開して実行することにより達成される。
まずS401でCPU207は画像解析部203の特定パターン登録部204として機能し、ユーザインターフェース206を介して、ユーザから特定パターンの登録を受け付ける。ここで、特定パターンは、企業ロゴ、「Confidential」のような機密性の高い文字列のパターンが想定される。また、複写が制約されている個人番号カードの裏面のような機密性が高い定型フォーマットのパターン、新製品のロゴ、新製品デザイン等であっても良い。この特定パターンの登録は、記憶部209に保持されている画像や画像処理装置100の記憶部107に保持されている画像を表示部210に表示し、その表示された画像からユーザが所望の画像を選択することにより行う。記憶部107に記憶されている画像の場合は、例えばSMBなど公知の技術を利用し、ネットワーク150を介して、画像処理装置100から取得する。このとき、表示部210に表示された画像の中に登録したい特定パターンが存在しない場合は、ユーザは適宜、記憶部107や記憶部209に画像を追加する。例えば、画像処理装置100で、登録を希望する特定パターンが載った原稿を画像読取部108で読み取って記憶部107に格納する。こうして特定パターンの指定を受け付けた後には、その特定パターンを所定の解像度で記憶部209に保存する。この際、画像内の白紙部分は除去して、特定パターンが存在する部分の画像だけを保存する。またユーザが登録したい特定パターンが画像の一部だけの場合には、表示部210にユーザが指定した画像を表示し、実際に登録したい領域の指示を、ユーザインターフェース206を介して受け付ける。そして、その領域だけをトリミングして記憶部209に保存するようにしても良い。
次にS402に進みCPU207は特定パターン登録部204として機能し、S401で記憶部209に保存した特定パターンの局所特徴点を算出する。そして、各局所特徴点について局所特徴量を算出する。ここでは、算出した局所特徴点を登録局所特徴点、局所特徴量を登録局所特徴量と呼ぶこととする。更に、これら登録局所特徴点及び登録局所特徴量の情報を、登録局所特徴量情報として記憶部209に保存する。尚、特定パターンの局所特徴点の検出時に、記憶部209へのアクセスによる遅延を防止するために、特定パターンを予めRAM208にも保持しても良い。ここで算出する局所特徴点及び局所特徴量は、任意の公知の局所特徴点及び局所特徴量の算出技術を利用できる。このとき、回転不変性を持つ局所特徴量の場合には、局所特徴量の正規化方向に関する情報についても、登録局所特徴量情報の一部として記憶部209或いはRAM208に保存する。回転不変性がない局所特徴量の場合にも、局所特徴量の正規化方向をデフォルトの方向(例えば0度)として同様に保存する。また、拡大・縮小不変性のある局所特徴量の場合は、局所特徴量のスケールに関する情報も、登録局所特徴量情報の一部として記憶部209或いはRAM208に保存する。一方、拡大・縮小不変性がない局所特徴量の場合も、デフォルトのスケール情報(例えば100%)として同様に保存する。
ここでの局所特徴量の計算は、例えば前述の図6(A)で説明した通りである。例えば図6(A)の特定パターンの場合、局所特徴点は、例えば、コーナー点P1,P2,P3となる。そして、これらP1,P2,P3の各点で局所特徴量を計算する。このとき、回転不変性及び拡大・縮小不変性のある局所特徴量を計算すると、3つの局所特徴量はどれも類似した局所特徴量となる。
次にS403に進みCPU207は特定パターン登録部204として機能し、S402で記憶した登録局所特徴量情報を利用して、全ての局所特徴点に対応する位置関係ベクトルを算出する。この位置関係ベクトルは、局所特徴点と、特定パターンの基準点との関係を示す。この場合、基準点は、特定パターンの重心や中心等とすることが考えられるが、1つの特定パターンにつき1つの任意の点を選ぶことが可能である。そして最後に、それら算出した位置関係ベクトルを、登録局所特徴量情報の一部として記憶部209に保存する。尚、特定パターンの検出時に、記憶部209へのアクセスによる遅延を防止するために、その特定パターンを予めRAM208にも保持しても良い。
この位置関係ベクトルの算出は図6(B)を参照して前述した通りである。図6(B)において、局所特徴点P1,P2,P3に対応する位置関係ベクトルV1,V2,V3を示している。この例において、基準点は、特定パターンの中心付近のbである。
以上説明した処理により、特定パターンの登録処理を行う。
図5は、実施形態1に係る画像検出装置200において、クエリー画像が特定パターンを含むか否かを検出する処理を説明するフローチャートである。この処理は、例えば画像処理装置100から画像データ(クエリー画像)が画像検出装置200に送信されることにより開始される。尚、この処理は、CPU207が記憶部209に記憶されているプログラムをRAM208に展開して実行することにより達成される。
まずS501でCPU207は、画像処理装置100から送信されて画像検出装置200の記憶部209に保存された画像データを画像解析部203に提供する。この画像データは、画像処理装置100の画像読取部108で読み取られたものでも、画像処置装置100がネットワーク150を介して取得したPDLデータを画像処理部103でレンダリングして生成した画像であっても良い。ここでは、この画像データをクエリー画像と呼ぶこととする。
次にS502に進みCPU207は特定パターン検出部205として機能し、そのクエリー画像から、前述のS402と同じ方法で局所特徴点及び局所特徴量を取得する。ここで、その取得した局所特徴点をクエリー局所特徴点、局所特徴量をクエリー局所特徴量と呼ぶ。また、S402と同様の方法で、S502においても局所特徴量の正規化方向及びスケールに関する情報を取得する。これら情報をまとめてクエリー局所特徴量情報と呼ぶこととする。
前述の図6(C)は、このクエリー画像の一例を示しており、コーナー点Q1,Q2,Q3の各点で計算した局所特徴量がクエリー局所特徴量となる。ここで局所特徴量として、回転不変性及び拡大・縮小不変性のある局所特徴量を利用すると、どれも前述のP1,P2,P3の各点の局所特徴量と類似した局所特徴量となる。
次にS503に進みCPU207は特定パターン検出部205として機能し、記憶部209又はRAM208に保持されている特定パターンの登録局所特徴量情報を取得する。そして、S502で算出したクエリー局所特徴量情報と、登録局所特徴量情報とのマッチング判定処理を行う。
このマッチング判定処理は、まずクエリ―局所特徴量と登録局所特徴量との間で、総当たりで特徴量間の距離を算出する。この距離は、任意の距離尺度を利用することが可能である。例えば、局所特徴量が2値のベクトルである場合(128次元128ビットのベクトル等)はハミング距離、多値のベクトルの場合(128次元128バイトのベクトル等)である場合はユークリッド距離を用いて行う。こうして距離を算出した後、クエリー局所特徴量ごとに、距離が所定の閾値よりも短い登録局所特徴量の登録局所特徴量情報をリストとして保持する。このとき、所定の閾値よりも短い複数の登録局所特徴量があるときは、それら全ての登録局所特徴量情報をリストとして保持する。尚、直接的に総当たりで距離を求めず、登録局所特徴量のインデクシングを予め行っておき、そのインデックスを利用して、距離を求めるようにしてもよい。ここで最も距離が短い局所特徴量だけでなく、所定の閾値よりも短い登録局所特徴量の全ての情報をリストとして保持するのは、特定パターンに類似した登録局所特徴量が含まれている場合は、正しい対応とならない場合があるためである。ここで「正しい対応」とは、登録されている特定パターンと、クエリー画像内の特定パターンの対応する局所特徴点の局所特徴量同士が、ペアとなることである。特定パターンにほぼ同等の局所特徴量が含まれる場合には、ノイズ等により、最も距離が短い局所特徴量が正しい対応とならない。そこで、「正しい対応」である可能性がある登録局所特徴量情報をリストとして保持するようにする。
図17は、クエリー局所特徴量ごとのマッチングした登録局所特徴量のリストの一例を示す図である。
図17(A)は、クエリー局所特徴量QF1,QF2,QF3,QF4と、登録局所特徴量RF1,RF2,RF3,RF4との間の距離を示している。ここで、距離の閾値を「2」とした場合、即ち、距離が「2」以下の登録局所特徴量を抽出して作成したリストの一例を図17(B)に示す。図17(B)で、クエリー局所特徴量QF1,QF2,QF3,QF4のそれぞれに対応するクエリー局所特徴量情報は、それぞれQFI1,QFI2,QFI3,QFI4である。また、登録局所特徴量RF1,RF2,RF3,RF4のそれぞれに対応する、登録局所特徴量情報はそれぞれ、RFI1,RFI2,RFI3,RFI4である。
ここで距離の閾値は「2」であるため、例えば、クエリー局所特徴量QF1は、登録局所特徴量RF1,RF2,RF3とマッチングする。そこで、クエリー局所特徴量情報QFI1に対応する登録局所特徴量情報リストとして、RFI1,RFI2,RFI3が保持される。同様に、クエリー局所特徴量情報QFI2に対応して登録局所特徴量情報RFI1,RFI2,RFI3が保持される。またクエリー局所特徴量情報QFI3に対応して登録局所特徴量情報RFI2,RFI3が保持され、クエリー局所特徴量情報QFI4に対応して登録局所特徴量情報RFI4が保持される。
前述の図6(C)の例では、局所特徴点Q1のクエリー局所特徴量情報に対応する登録局所特徴量情報は、図6(B)の局所特徴点P1,P2,P3から算出されたものとなる。これは、Q1とP1〜P3の周囲の形状が回転不変性及び拡大・縮小不変性を考慮した場合に類似しているためである。同様に、局所特徴点Q2及びQ3のクエリー局所特徴量情報に対応する登録局所特徴量情報も、図6(B)のP1,P2,P3から算出されたものとなる。
次にS504に進みCPU207は特定パターン検出部205として機能し、未処理のクエリー局所特徴量情報を1つ選択し、その選択したクエリー局所特徴量情報に関連付けられたS503で生成した登録局所特徴量情報の数を判定する。ここでリストに、複数の登録局所特徴量情報が存在している場合はS505に進むが、リストに1つの登録局所特徴量情報のみが存在する場合はS507に進む。またリストに登録局所特徴量情報が存在していない場合は509に進む。
S505でCPU207は特定パターン検出部205として機能し、位置関係ベクトルの登録局所特徴量の座標系からクエリー局所特徴量の座標系へ変換する。まず、登録局所特徴量情報のリストから1つの登録局所特徴量情報を選択する。そして、その選択した登録局所特徴量情報とクエリー局所特徴量情報に含まれる正規化方向及びスケールに関する情報から、登録局所特徴量の座標系からクエリー局所特徴量の座標系へ変換する、回転行列及び拡大・縮小行列(変換行列)を算出する。この変換行列の算出は、公知の方法を利用すればよい。次に、この変換行列を用いて、選択した登録局所特徴量情報に含まれる位置関係ベクトルのクエリー特徴量情報の座標系へ変換する。そして、この変換した位置関係ベクトルを、クエリー局所特徴量情報の一部として保持する。この変換処理を、リストに保持されている登録局所特徴量情報の全てに対して行い、リストのアイテムの数だけの変換後の位置関係ベクトルを生成する。
次にS506に進みCPU207は特定パターン検出部205として機能し、変換後の位置関係ベクトル群のクエリー画像への投票処理を行う。具体的には、クエリー局所特徴量情報に含まれるクエリー局所特徴点を原点として、S505で変換処理を行った全ての位置関係ベクトルの投票を行ってS509に進む。ここでは、局所特徴量同士の距離が最も短い登録局所特徴量だけではなく、複数の登録局所特徴量の投票を行う。そのため、その中に1つでも「正しい対応」の登録局所特徴量とクエリー局所特徴量の組み合わせがあった場合は、クエリー画像内の特定パターンの基準点に正しく投票される。クエリー画像内の特定パターンの基準点には、複数のクエリ―局所特徴点からの投票が行われる。一方、「正しい対応」では無かった投票については、クエリー局所特徴点の周囲に投票されるが規則性がなく投票されるため、投票が集中する可能性は低い。そのため、特定パターンの基準点にのみ投票が集中する可能性が高く、それ以外の場所に投票が集中する可能性が低いため、特定パターンを誤検出する可能性は低い。よって、複数の登録局所特徴量情報に対応した位置関係ベクトルを投票することにより、類似した局所特徴量を持つ特定パターンの検出精度を向上させることができる。
ここで、投票範囲は様々な誤差に対応するため、一定の大きさを持って投票する。例えば、半径10ピクセルの範囲に、分散10の正規分布の値を投票値として投票する。こうすることにより、局所特徴点の検出誤差、位置関係ベクトルの座標変換のための回転行列や拡大・縮小行列の誤差等に対応することが可能となる。尚、投票値は投票の中心点からの距離に応じて減少させても良いし、或いは同じ値を投票するようにしても良い。また、マッチングした局所特徴量同士の距離に応じて重みをつけても良い。更に、拡大・縮小行列の誤差が大きい場合等には、投票する範囲を楕円形等の円形ではない形にしても良い。例えば、変換後の位置関係ベクトルの方向を楕円形の長軸として、投票する範囲を決めてもよい。回転行列の誤差が大きいときは、回転行列の回転方向を楕円形の長軸として、投票する範囲を決めてもよい。また、スケール方向の誤差が大きいときは、スケール方向を楕円形の長軸として、投票する範囲を決めてもよい。
図7は、図6(C)の局所特徴点Q1,Q2,Q3に対応する位置関係ベクトル及び投票先を図示した例を示す図である。
局所特徴点Q1は、位置関係ベクトルとして、図6(B)のV1,V2,V3と対応している。位置関係ベクトルV1をQ1から算出される局所特徴量の座標系に変換し、Q1を原点として図示したのがV1_Q1である。同様に位置関係ベクトルV2,V3を変換して図示したのが、V2_Q1、V3_Q1である。変換後の位置関係ベクトルV1_Q1,V2_Q1,V3_Q1による投票先は、それぞれ、R,V2_R1,V3_R1となる。ここでは、V1_Q1による投票が、特定パターンの基準点bが存在する箇所Rへの投票となっている。同様に、局所特徴点Q2及びQ3に対応する位置関係ベクトルV1,V2,V3を、Q2及びQ3から計算されるクエリー局所特徴量の座標系に変換したのが、V1_Q2,V2_Q2,V3_Q2,V1_Q3,V2_Q3,V3_Q3である。それぞれの投票先は、V1_R2,R,V3_R2,V1_R3,V2_R3、Rである。V2_Q2及びV3_Q3による投票が、特定パターンの基準点bが存在する箇所Rへの投票となっている。ここでは投票は9回行われているが、そのうち、3回の投票が基準点bが存在する箇所Rへの投票となっている。それ以外の箇所への投票は1回のみであり、安定して基準点への投票が行えていることが分かる。
一方、S507でCPU207は特定パターン検出部205として機能し、S505と同様にして、位置関係ベクトルの登録局所特徴量の座標系からクエリー局所特徴量の座標系へ変換する。但し、この場合は登録局所特徴量情報とクエリー局所特徴量情報が1対1に対応しているので、この1つの登録局所特徴量に含まれる位置関係ベクトルだけを登録局所特徴量の座標系からクエリー局所特徴量の座標系へ変換する。次にS508に進みCPU207は特定パターン検出部205として機能し、変換後の位置関係ベクトルのクエリー画像への投票処理を行う。この投票方法はS506と同様であるが、S507で変換した1つの位置関係ベクトルの投票だけを行ってS509に進む。
S509でCPU207は特定パターン検出部205として機能し、前述のリストに未処理のクエリー局所特徴量情報が有るかどうか判定し、未処理のクエリー局所特徴量情報があった場合は再度S504に進み、前述の処理を実施する。ここで未処理のクエリー局所特徴量情報がないと判定するとS510に進む。S510でCPU207は特定パターン検出部205として機能し、クエリー画像に特定パターンが含まれているかの判定を、S506或いはS508で行った投票結果に基づいて行う。まず、投票が行われたクエリー画像内で、最も得票数が高かった点を検出し、その検出した点の投票数が所定の閾値を超えていれば、その部分に特定パターンが存在していると判定する。一方、その所定の閾値を超えていなければ、その部分に特定パターンが存在していないと判定する。尚、投票数については、特定パターンの登録局所特徴量の個数により、正規化を行っても良い。
以上説明した処理により、クエリー画像に含まれている特定パターンを検出することが可能となる。
尚、複数の特定パターンが登録されている場合には、図5に示す特定パターンの検出処理を、各特定パターンごとに実施すればよい。但し、S501及びS502は、共通して実施することが可能である。
以上説明したように実施形態1によれば、登録されている特定パターンから複数の類似した局所特徴量が抽出されている場合であっても、高い精度で、クエリー画像から特定パターンを検出することができる。
[実施形態2]
以下、本発明の実施形態2を説明する。実施形態2では、特定パターンを登録する際、その特定パターンの局所特徴量に類似する、登録済の類似局所特徴量を求め、その特定パターンの局所特徴量の位置関係ベクトルだけでなく、類似した局所特徴量と対応した位置関係ベクトルも登録する。そして、クエリー画像の特定パターンを検出する際は、距離が最も短い局所特徴量のみを求めて特定パターンの有無を判定する。従って実施形態1との差異は、図4及び図5のフローチャートに対応する図8及び図9のフローチャートを参照して説明する。尚、実施形態2に係る画像処理装置100及び画像検出装置200のハードウェア構成は、前述の実施形態1と同様であるため、その説明を省略する。
図8は、本発明の実施形態2に係る画像検出装置200における特定パターンの登録処理を説明するフローチャートである。尚、この処理は、CPU207が記憶部209に記憶されているプログラムをRAM208に展開して実行することにより達成される。図8に示す処理は、図4のフローチャートと同様に、ユーザがユーザインターフェース206で、ユーザから特定パターンを登録する指示を受け付けることにより開始される。尚、図8のS401〜S403は、図4のS401〜S403と同様であるため、同じ参照番号を付して、その説明を省略する。
S801でCPU207は特定パターン登録部204として機能し、登録局所特徴量同士のマッチング処理を行う。このマッチング処理は、まず登録局所特徴量間で、総当たりで特徴間の距離を求める。この距離は、前述の実施形態1と同様に、任意の距離尺度を利用することが可能である。この距離を算出した後、登録局所特徴量ごとに、その距離が所定の閾値よりも短く、類似した登録局所特徴量の情報を保持する。
図10は、実施形態2に係る登録局所特徴量間の距離と類似の一例を説明する図である。
図10(A)は、図示のために局所特徴量を2次元空間にマッピングした図である。F1,F2,F3,F4は局所特徴量を示す。これらの局所特徴量は、局所特徴点E1,E2,E3,E4から算出されたものである。ここで局所特徴量F1とF2の距離は「2」であり、局所特徴量F2とF3の距離は「1」であり、局所特徴量F3とF4の距離は「2」である。これら局所特徴量F1,F2,F3,F4間の距離を算出すると、図10(B)に示す関係となる。ここで、類似しているとみなす閾値を「2」とすると、それぞれの局所特徴量に対応する類似局所特徴量は図10(C)に示すものとなる。ここで局所特徴量F1の類似局所特徴量がF2であり、F2の類似局所特徴量がF1,F3であり、F3の類似局所特徴量がF2,F4であり、F4の類似局所特徴量がF3である。
そしてS802に進みCPU207は特定パターン登録部204として機能し、登録局所特徴量ごとに追加の位置関係ベクトルを登録局所特徴量情報に追加する。ここでは登録局所特徴量ごとに、S403で求めた位置関係ベクトルだけでなく、S801で求めた類似した局所特徴量と対応した位置関係ベクトルについても、その登録局所特徴量に対応する位置関係ベクトルとする。そして、この追加の位置関係ベクトルについての情報も、登録局所特徴量情報の一部として記憶部209に保存する。尚、特定パターンの検出時に、記憶部209へのアクセスによる遅延を防止するために、予めRAM208にも保持するようにしておいても良い。
図10(C)は、S802における位置関係ベクトルの追加の関連付けを例示する図である。ここで、局所特徴量F1,F2,F3,F4に対応する位置関係ベクトルは、それぞれG1,G2,G3,G4となっている。ここで局所特徴量F1は局所特徴量F2と類似しているため、F2の位置関係ベクトルG2が追加される。ここでG2は、局所特徴量F2の座標系であるため、それを局所特徴点E1から算出された局所特徴量F1の座標系に変換する。この変換は、実施形態1と同様に、局所特徴量F1及びF2の正規化方向及びスケールに関する情報から、局所特徴量F2の座標系から局所特徴量F1の座標系へ変換する変換行列を算出して行う。そして変換後の位置関係ベクトルをG2_E1と定義する。同様に局所特徴量F2に追加される位置関係ベクトルはG1,G3となり、追加される位置関係ベクトルはG1_E2,G3_E2となる。また局所特徴量F3に追加される位置関係ベクトルはG2,G4であり、追加される座標変換後の位置関係ベクトルはG2_E3,G4_E3となる。更に、局所特徴量F4に追加される位置関係ベクトルはG3となり、追加される座標変換後の位置関係ベクトルはG3_E4となる。
また図11は、図6(B)で示すS403の処理結果に対して、S801及びS802の処理を行った結果を示す図である。
局所特徴量が回転不変性を持つ場合は、局所特徴点P1,P2,P3から算出される局所特徴量は全て類似している。そのため、局所特徴点P1,P2,P3の全てに位置関係ベクトルV1,V2,V3が対応づけられ、図11で示す対応関係となる。ここで、V2_P1は、位置関係ベクトルV2を局所特徴点P1から算出される局所特徴量の座標系に変換したものである。同様に、V3_P1,V1_P2,V3_P2,V1_P3,V2_P3も、対応先の局所特徴量の座標系に変換したものである。
以上説明した処理により、局所特徴量と1つ以上の位置関係ベクトルが対応付けられた状態で特定パターンの登録処理を行うことが可能となる。
図9は、実施形態2に係る画像検出装置200における特定パターンの検出処理を説明するフローチャートである。図9のフローチャートは、実施形態1に係る図5と同様に、画像処理装置100からクエリー画像が画像検出装置200に送信されることにより起動される。尚、この処理は、CPU207が記憶部209に記憶されているプログラムをRAM208に展開して実行することにより達成される。ここで、図9のS501及びS502は、図5のS501及びS502と同様であるため、その説明を省略する。
S901でCPU207は特定パターン検出部205として機能し、記憶部209又はRAM208に保持されている特定パターンの登録局所特徴量情報を取得する。そして、S502で算出したクエリー局所特徴量と、登録局所特徴量とのマッチング処理を行う。このマッチング処理は、まずクエリ―局所特徴量と登録局所特徴量の間で、特徴量間の距離を算出する。この距離は、任意の距離尺度を利用することが可能である。そして、この距離を算出した後、クエリー局所特徴量ごとに、最も短い登録局所特徴量との距離が所定の閾値よりも小さかった場合に、その登録局所特徴量の登録局所特徴量情報を保持する。ここでは実施形態1とは異なり、0個もしくは1個の登録局所特徴量の情報だけを保持する。登録局所特徴量情報には、実施形態1とは異なり、類似した局所特徴量の位置関係ベクトルも含まれる。そのため、局所特徴量自体のマッチングが間違っていたとしても、正しい位置関係ベクトルが含まれている可能性が高い。そのため、最も短い登録局所特徴量との距離が、所定の閾値よりも小さい場合にのみ、登録局所特徴量情報を保持すれば良いことになる。このように実施形態2では、最も短い距離の局所特徴量のみを求めれば良いため、木構造やハッシュ構造等を利用した近似最近傍探索と組み合わせた高速化も可能となる。また、近似最近傍探索が「近似」であるために、真の最も短い距離の局所特徴量が検出できなかった場合でも、類似した登録局所特徴量は、真の最も短い距離の位置関係ベクトルを保持している可能性が高いため、性能が低下しづらい。
図6(C)の例では、局所特徴点Q1のクエリー局所特徴量情報に対応する登録局所特徴量情報が、図6(B)の局所特徴点P1,P2,P3から算出されたもののどれであったとしても、座標系の差を除いて対応する位置関係ベクトル群は変わらない。これは、図11で示したように、局所特徴点P1,P2,P3の全てに座標系を変換した位置関係ベクトルV1,V2,V3が対応づけられているためである。局所特徴点Q2及びQ3についても同様である。
次にS902に進みCPU207は特定パターン検出部205として機能し、未処理のクエリー局所特徴量情報を1つ選択し、その選択したクエリー局所特徴量情報に関連付けられた、S503で記憶した登録局所特徴量情報があるかどうか判定する。ここで登録局所特徴量情報があると判定するとS903に進み、そうでないときはS509に進む。
SS903でCPU207は特定パターン検出部205として機能し、登録局所特徴量の位置関係ベクトルをクエリー局所特徴量の座標系へ変換する。ここではまず、登録局所特徴量情報とクエリー局所特徴量情報に含まれる正規化方向及びスケールに関する情報から、登録局所特徴量の座標系からクエリー局所特徴量の座標系へ変換する、回転行列及び拡大・縮小行列(変換行列)を算出する。この変換行列の算出は、公知の方法を利用すればよい。次に、この変換行列を用いて、登録局所特徴量情報に含まれる全ての位置関係ベクトルを、クエリー局所特徴量の座標系へ変換する。この変換した全ての位置関係ベクトルを、クエリー局所特徴量情報の一部として保持する。
次にS904に進みCPU207は特定パターン検出部205として機能し、変換後の位置関係ベクトル群のクエリー画像への投票処理を行う。具体的には、クエリー局所特徴量情報に含まれるクエリー局所特徴点を原点として、S903で変換処理を行った全ての位置関係ベクトルの投票を行う。ここでは、類似した局所特徴量を持つ位置関係ベクトル全ての投票を行うため、その中に1つでも位置関係ベクトルとクエリー局所特徴点の正しい組み合わせがあった場合には、クエリー画像内の特定パターンの基準点に正しく投票される。こうしてクエリー画像内の特定パターンの基準点には、複数のクエリ―局所特徴点からの投票が行われる。一方、正しい組み合わせでは無かった投票については、クエリー局所特徴点の周囲に投票されるが、規則性がなく投票されるため、投票が集中する可能性は低い。こうして特定パターンの基準点にのみ投票が集中する可能性が高く、それ以外の場所に投票が集中する可能性が低いため、特定パターンを誤検出する可能性は低くなる。よって、類似した局所特徴量を持つ位置関係ベクトルの全てを投票することにより、類似した局所特徴量を持つ特定パターンの検出精度を向上させることが可能となる。ここで、投票範囲や投票値については、実施形態1と同様である。
実施形態2においても、図7は、図6(C)の局所特徴点Q1,Q2,Q3に対応する位置関係ベクトル及び投票先を図示した例となる。但し、位置関係ベクトルの求まり方が異なる。
続く、図9のS509及びS510の処理は、前述の図5のS509及びS510と同様であるため、その説明を省略する。但し、S509でYESであった場合に進む先が、S902となる点が、前述の図5と相違している。
以上説明した処理により、クエリー画像に含まれる特定パターンを検出することが可能となる。
尚、複数の特定パターンが登録されている場合には、図9の特定パターンの検出処理を各特定パターンごとに実施すればよい。但し、S501及びS502は、共通して実施することが可能である。
以上説明したように実施形態2によれば、登録されている特定パターンから複数の類似した局所特徴量が抽出されている場合であっても、高い精度で、クエリー画像から特定パターンを検出できる。更に、近似最近傍探索の適用が可能になるため、高速に検出することが可能になる。また、近似最近傍探索を利用した際に、最近傍が探索できなかった場合であっても、精度低下がしづらい仕組みとなっている。
[実施形態3]
以下、本発明の実施形態3を説明する。実施形態3では、特定パターンを登録する際、その特定パターンの局所特徴量に類似する、登録済の類似局所特徴量を求め、その特定パターンの局所特徴量の位置関係ベクトルだけでなく、類似した局所特徴量と対応した位置関係ベクトルも登録する。そして、類似する登録局所特徴量を統合する。従って実施形態2との差異を、図8のフローチャートに対応する図12のフローチャートを参照して説明する。尚、実施形態3に係る画像処理装置100及び画像検出装置200のハードウェア構成は、前述の実施形態1と同様であるため、その説明を省略する。
図12は、本発明の実施形態3に係る画像検出装置200における特定パターンの登録処理を説明するフローチャートである。この処理は、図8と同様に、ユーザインターフェース206を介して、ユーザから特定パターンの登録指示を受け付けることにより開始される。尚、この処理は、CPU207が記憶部209に記憶されているプログラムをRAM208に展開して実行することにより達成される。尚、図12のS401〜S403は、図4及びS401〜S403と同様であり、また図12のS801及びS802は、図8のS801及びS802と同様であるため、それらの説明を省略する。
S1201でCPU207は特定パターン登録部204として機能し、登録局所特徴量同士の統合処理を行う。ここでは、共通した位置関係ベクトルを持つ登録局所特徴量情報を統合して、1つの登録局所特徴量情報にする。ここでは、S802で行った位置関係ベクトルの対応付け結果を、位置関係ベクトルの座標系を揃えて比較し、共通した位置関係ベクトルを持つ、登録局所特徴量情報の統合を行う。この統合処理は、まず、登録局所特徴量群の共通した登録局所特徴量を求める。共通した登録局所特徴量は、例えば、登録局所特徴量群の重心である。尚、重心を利用せず、代表登録局所特徴量を選択したり、公知の別の統計量を求めることにより、共通の登録局所特徴量としたりしても構わない。例えば、登録局所特徴量が2値の局所特徴量であった場合には、次元ごとに多数決を採ることにより、次元ごとに「0」であるか「1」であるかを決定する。局所特徴点及び座標系に関する情報(正規化方向及びスケールに関する情報)については、1つの登録局所特徴量情報の情報を利用する。位置関係ベクトルについては、選択された座標系に関する情報を利用して、統一された座標系とする。
図13は、実施形態3に係る登録局所特徴量情報の統合の一例を示す図である。
図13(A)は、S802で位置関係ベクトルの対応づけが行われた結果の一例を示す。ここでは5個の登録局所特徴量情報があり、登録局所特徴量F1〜F5は、それぞれ「類似局所特徴量」の欄の局所特徴量と類似している。そして、「追加位置関係ベクトル」の欄の位置関係ベクトルは、追加で対応付けされた局所特徴量となる。この欄での表記は、例えば、G2_E1は、局所特徴量F2の位置関係ベクトルG2を、局所特徴量F1の局所特徴点E1が対応する座標系に変換したものであることを示す。
図13(B)は、S1201において、図13(A)の登録局所特徴量情報群について、登録局所特徴量情報の統合処理を行った結果の一例を示す。図13(A)において、局所特徴量F1,F2,F3は、自分自身も含めると、共通してF1,F2,F3,F4と類似している。そこで、局所特徴量F1,F2,F3が含まれる局所特徴量情報の統合処理を行う。まず、局所特徴量F1,F2,F3を平均して、その重心を求め、局所特徴量F6とする。次に、局所特徴点E6の値を局所特徴点E1の値とする。そして座標系に関する情報(正規化方向及びスケールに関する情報)は、局所特徴点E1に対応する情報を利用する。最後に、位置関係ベクトルG1,G2,G3,G4について、座標系に関する情報を利用して、座標系の変換を行う。それを図示したのが、図13(B)である。ここでも、例えば、G1_E6は、局所特徴量F1の位置関係ベクトルG1を、局所特徴量F6の局所特徴点E6が対応する座標系に変換したことを示す。図13(A)と図13(B)とを比較すると、登録局所特徴量が5点から3点に減少していることが分かる。
次に、類似した局所特徴量が存在しやすい理由を図14を参照して説明する。
図14は、実施形態3に係る、登録したい特定パターンの一例を示す図である。
ここでは、特定パターンの局所特徴点として、P1〜P9が検出されている。ここで、L(X)を局所特徴点Xの局所特徴量と定義する。そして、類似関係「≒」で表現する。その場合に、不変性がない局所特徴量を利用すると、L(P1)≒L(P4),L(P2)≒L(P6),L(P3)≒L(P5)となる。L(P7),L(P8),L(P9)は、類似した局所特徴量は存在しない。不変性がない局所特徴量であっても、類似した形状があれば、類似した局所特徴量となる。
次に、回転不変性がある局所特徴量を利用すると、L(P1)≒L(P2)≒L(P3)≒L(P4)≒L(P5)≒L(P6)及びL(P7)≒L(P8)≒L(P9)となる。ここでは回転不変性があるため、回転して同じ形状になる場合も類似した局所特徴量となる。このように回転不変性があると、回転不変性がない場合に比べて、類似した局所特徴量が増えることが分かる。最後に、回転不変性及び拡大・縮小不変性がある局所特徴量を利用した場合を説明する。
この場合は、L(P1)≒L(P2)≒L(P3)≒L(P4)≒L(P5)≒L(P6)≒L(P7)≒L(P8)≒L(P9)となり、全ての局所特徴量が類似した局所特徴量となる。これは、回転及び拡大・縮小して同じ形状になる場合も類似した局所特徴量となるためである。このように、回転及び拡大・縮小に対して不変性がある局所特徴量を利用すると、類似した局所特徴量が存在しやすくなるため、実施形態3のような形で、登録局所特徴量情報をまとめることによる情報の削減効果が大きくなる。
以上説明した処理により、局所特徴量と1つ以上の位置関係ベクトルとが対応付けられた状態で、特定パターンを登録することが可能となる。
実施形態3に係る特定パターンの検出処理は、実施形態1に係る図9のフローチャートと同様であるため、その説明を省略する。但し、登録局所特徴量の統合により、登録局所特徴量の数が減少しているため、マッチングの判定処理に要する時間が減少する。マッチングを総当たりで行う場合は、マッチングによる判定処理に要する時間は、登録局所特徴量の数に比例するためである。
尚、複数の特定パターンが登録されている場合には、図9に示す特定パターンの検出処理を特定パターンごとに実施すればよい。但し、S501及びS502は、共通して実施することが可能である。更に、実施形態3では、S901を共通して実施することによる高速化も可能である。即ち、S1201における登録局所特徴量の統合を、特定パターン単位ではなく、全ての特定パターンが持つ局所特徴量全体で実施しておけば良い。このように異なる特定パターンであっても、局所的には類似した局所特徴量が存在する場合があるため、これら局所特徴量を統合することが可能である。このようにすれば、全ての特定パターンが保持する登録局所特徴量の総数を減らすことができ、特定パターンの有無の判定処理を高速化できる。
以上説明したように実施形態3によれば、登録されている特定パターンの局所特徴量が複数の類似した局所特徴量を含む場合でも、高い精度で、クエリー画像からの特定パターンを検出できる。また、類似している登録局所特徴量を統合して登録局所特徴量の数を少なくすることにより、マッチング処理に要する時間を削減できる。
[実施形態4]
以下、本発明の実施形態4について、前述の実施形態1と異なる部分について説明する。実施形態1との差分は、図4のフローチャートであるため、図15のフローチャートを参照して説明する。
以下、本発明の実施形態4を説明する。実施形態4では、
従って実施形態1との差異を、図4のフローチャートに対応する図15のフローチャートを参照して説明する。尚、実施形態3に係る画像処理装置100及び画像検出装置200のハードウェア構成は、前述の実施形態1と同様であるため、その説明を省略する。
図15は、実施形態4に係る画像検出装置200における特定パターンの登録処理を説明するフローチャートである。この処理は、ユーザインターフェース206を介してユーザからの特定パターンの登録指示を受け付けることにより開始される。尚、この処理は、CPU207が記憶部209に記憶されているプログラムをRAM208に展開して実行することにより達成される。尚、図15において、前述の図4と共通する処理は同じ参照番号で示し、それらの説明を省略する。
S1501でCPU207は特定パターン登録部204として機能し、ユーザから登録を行いたい特定パターンに必要な不変性を受付ける。実施形態3でも説明したように、不変性がある局所特徴量は、類似した局所特徴量が生じる可能性が高く、誤マッチング等による精度の低下の可能性が存在する。そのため、ユーザから必要な不変性についての情報を受け付ける。この情報の受付は、表示部210に、例えば図16の示すようなUIを表示し、ユーザインターフェース206を介して、ユーザが指定した内容を受け付ける。
図16は、実施形態4に係る画像検出装置200の表示部に表示される不変性についての情報を受付ける画面例を示す図である。
ここでは、ユーザに、3種類の不変性について提示して、必要な不変性について受付けている。尚、必要な不変性は、図16に示す例に限るものではなく、例えば、アフィン不変性等を提示してもよい。
次にS402でCPU207は、図4のS402と同様に、S1501で指定を受けた不変性を持つ局所特徴量から局所特徴量を算出する。次にS1502に進みCPU207は特定パターン登録部204として機能し、S402で算出した局所特徴量群の質を表現する指標を算出する。ここで「質が高い」とは、類似した局所特徴量がないユニークな局所特徴量が十分な数存在していることを示す。ここでは、類似した局所特徴量は、誤マッチングの可能性があるため、「質が低い」としている。よって、例えば、類似した局所特徴量がないユニークな局所特徴量の数を局所特徴量群の質を表現する指標とすることが考えられる。具体的には、登録局所特徴量間の距離を算出し、他の局所特徴量と類似していないユニークな局所特徴量を算出する。そして、そのユニークな局所特徴量の数をカウントする。ここで、更に、そのユニークな局所特徴量が一般的な画像に存在する局所特徴量とも類似しているか否かも考慮してカウントしてもよい。これは特定パターンではユニークな局所特徴量であっても、一般的な画像では検出されやすい局所特徴量である可能性があるためである。ここで説明した指標は一例であり、この指標に限定されるものではない。
次にS1503に進みCPU207は特定パターン登録部204として機能し、S1502で算出した局所特徴量群の質が所定の閾値を上回っているかを判定する。ここで上回っていると判定した場合はS1504に進みそうでないときはS403に進む。S1504でCPU207は特定パターン登録部204として機能し、登録局所特徴量情報群から類似した登録局所特徴量を除去する。S1503で十分な質があると判定した場合は、マッチングにかかる時間を削減するために、このようにして、類似した局所特徴量を削除する。類似した局所特徴量の抽出は、S1502の結果を利用して行う。
以上説明した処理により、局所特徴量と位置関係ベクトルが対付けられた状態で特定パターンの登録処理を行うことが可能となる。
このときの特定パターンの検出処理は、前述の図9のフローチャートと同様であるため、その説明を省略する。但し、算出する局所特徴量は、S1501で指定を受けた不変性を持つ局所特徴量となる。
尚、複数の特定パターンが登録されている場合には、図9の特定パターンの検出処理を、各特定パターンごとに実施すればよい。但し、S501及びS502は、共通して実施することが可能である。
以上説明したように実施形態4によれば、登録されている特定パターンから複数の類似した局所特徴量が抽出されている場合であっても、高い精度で、クエリー画像から特定パターンを検出できる。また、ユーザから必要な不変性を受け付けることにより、類似した局所特徴量の発生を抑え、パターン検出の精度向上につなげることができる。更に、登録局所特徴量の「質が高い」場合には、類似した局所特徴量を利用しないようして、パターン検出の精度を維持したまま局所特徴量のマッチングに要する時間を削減することができる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。