(58)【調査した分野】(Int.Cl.,DB名)
前記画像解析部は、前記入力画像の全体に対する特徴点検出を行うことによって前記入力画像の全体の特徴点の分布状況を取得し、前記小領域毎に対する特徴点検出を行うことによって小領域毎の特徴点の分布状況を取得することを特徴とする請求項1に記載の画像処理装置。
前記画像解析部は、前記入力画像の全体の画素分散を算出することによって前記入力画像の全体の特徴点の分布状況を取得し、前記小領域毎の画素分散を算出することによって小領域毎の特徴点の分布状況を取得することを特徴とする請求項1に記載の画像処理装置。
前記画像解析部は、前記入力画像の全体のテクスチャ解析をすることによって前記入力画像の全体の特徴点の分布状況を取得し、前記小領域毎のテクスチャ解析をすることによって小領域毎の特徴点の分布状況を取得することを特徴とする請求項1に記載の画像処理装置。
前記期待点数が前記目標点数に達するまで、前記感度設定部による前記感度の設定と前記特徴点検出部による前記特徴点検出とが繰り返されることを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。
複数の入力画像の全体のマッチング点の分布状況と前記複数の入力画像のそれぞれに設定される複数の小領域毎のマッチング点の分布状況とを画像解析により取得する画像解析部と、
前記入力画像の全体のマッチング点の分布状況に基づいて、マッチング点検出の際に検出されるべき目標のマッチング点の数である目標点数を前記小領域毎に設定する目標点数設定部と、
前記小領域毎のマッチング点の分布状況に基づいて、マッチング点検出の際に前記小領域において検出されることが期待されるマッチング点の数である期待点数を前記小領域毎に設定する期待点数設定部と、
前記目標点数と前記期待点数とを前記小領域毎に比較する比較部と、
前記比較部の比較結果に基づき、前記小領域毎にマッチング点検出の際の検出感度を設定する感度設定部と、
前記感度設定部で設定された検出感度に従ってマッチング点検出を行うマッチング部と、
を具備することを特徴とする画像処理装置。
【発明を実施するための形態】
【0020】
以下、図面を参照して本発明の実施形態を説明する。
[第1の実施形態]
まず、本発明の第1の実施形態について説明する。本実施形態は、1画像から特徴点を検出するにあたり、画像全体及び画像全体を複数の領域に分けた小領域毎に画像解析を行い、画像全体及び小領域毎の画像解析結果に基づいて小領域毎に検出感度を設定し、小領域毎に設定した検出感度に基づいて特徴点を検出するものである。ここで、画像解析の手法として所定のパラメータによる特徴点検出を用いる。
【0021】
また、以下の各実施形態で説明する画像処理装置は、特定の機器に限定されるものではない。例えば、以下の各実施形態で説明する画像処理装置は、パーソナルコンピュータ、デジタルカメラ等の各種の機器に搭載され得る。また、以下の各実施形態で説明する画像処理装置と同等の機能が、クラウドコンピューティングを利用して実現されても良い。
【0022】
図1は、第1の実施形態に係る画像処理装置の構成を示すブロック図である。
図1に示す画像処理装置は、制御部102と、記憶部104と、画像処理部106と、画像入力部108と、を有している。
【0023】
制御部102は、画像処理部106の動作を制御すべく、各種の制御信号を画像処理部106に対して入力する。例えば、制御部102は、画像処理部106に対して特徴点検出の実行やマッチング点検出の実行を指示する。
【0024】
記憶部104は、ハードディスクドライブ(HDD)及びダイナミックRAM(DRAM)といった記憶媒体を有している。HDDは、画像入力部108によって入力される画像データ、後述の特徴点候補検出で用いられる初期パラメータ、制御部102で実行される各種のプログラム等を記憶している。DRAMは、制御部102及び画像処理部106における処理データを一時記憶しておく作業メモリとして使用される。
【0025】
画像処理部106は、画像入力部108から入力された画像データに対して画像処理を施す。本実施形態における画像処理部106は、画像データにおける特徴点を検出する画像処理を行う。
【0026】
画像入力部108は、記憶部104のHDDからDRAMに展開された画像データを読み出して画像処理部106に入力する。
【0027】
また、画像処理部106は、画像解析部1061と、検出感度設定部1062と、特徴点検出部1063と、を有している。
【0028】
画像解析部1061は、画像入力部108から入力された画像データを解析することにより、入力された画像データにおける特徴点の分布状況を取得する。この画像解析部1061は、特徴点候補検出部1061aを有している。特徴点候補検出部1061aは、画像入力部108から入力された画像データの各画素値に基づいて画像データを解析し、画像データ中の特徴点候補となる点(画素)を検出することによって特徴点の分布状況を取得する。ここで、本実施形態において、特徴点候補検出部1061aは、画像データの全体についての特徴点候補と画像データ内の小領域毎の特徴点候補とをそれぞれ検出する。
【0029】
検出感度設定部1062は、画像解析部1061における画像データの解析結果に基づいて画像データの小領域毎の特徴点の検出感度を設定するものであり、目標点数設定部1062aと、期待点数設定部1062bと、比較部1062cと、感度設定部1062dと、を有している。
【0030】
目標点数設定部1062aは、画像データの全体の特徴点候補数に基づいて、最終的に検出されるべき特徴点の点数である目標点数を小領域毎に設定する。期待点数設定部1062bは、検出されることが期待される特徴点の点数である期待点数を小領域毎に設定する。比較部1062cは、期待点数と目標点数とを小領域毎に比較する。感度設定部1062dは、期待点数と目標点数の比較に基づいて小領域毎の特徴点の検出感度を設定する。
【0031】
特徴点検出部1063は、感度設定部1062dで設定された検出感度に応じて画像データ中の特徴点を検出する。
【0032】
図2は、第1の実施形態に係る画像処理装置を用いた画像処理方法としての特徴点検出の全体の流れを示すフローチャートである。
【0033】
まず、画像入力部108は、記憶部104に記憶されている画像データを読み出して画像解析部1061の特徴点候補検出部1061aに入力する(S11)。以後、この画像解析部1061に入力される画像データを入力画像と呼ぶ。
【0034】
画像入力処理の後、特徴点候補検出部1061aは、入力画像中の特徴点候補を検出することによって入力画像の解析を行う(S12)。入力画像を解析する目的は、入力画像からどの程度の特徴点が検出され得るかを試算するものである。本実施形態においては、特徴点の候補となる点(特徴点候補)を検出することで試算を行う。より詳しくは、本実施形態における特徴点候補検出処理において、特徴点候補検出部1061aは、入力画像の全体についての特徴点候補と入力画像に対して設定される小領域毎の特徴点候補とをそれぞれ検出する。以下、
図3を参照して特徴点候補検出処理についてさらに説明する。
【0035】
図3において、特徴点候補検出部1061aは、入力画像に対して複数の小領域を設定する(S101)。小領域設定処理として、特徴点候補検出部1061aは、例えば、8×8のブロックで入力画像を等分割するように小領域を定める。小領域は、64(8×8)個の小領域のそれぞれの入力画像上での位置と範囲とによって定義される。
【0036】
続いて、特徴点候補検出部1061aは、特徴点候補検出のための初期パラメータを記憶部104から呼び出して設定する(S102)。ここで設定される初期パラメータは、評価値算出に用いられる初期スケールパラメータpar_scale0、閾値判定に用いられる初期評価閾値 par_v0、及び極大性評価に用いられる初期極大性評価範囲par_maximum0である。これらの初期パラメータの詳細については、次の特徴点検出メイン処理の説明の際に述べる。
【0037】
初期パラメータの設定後、特徴点候補検出部1061aは、特徴点検出メイン処理を行う(S103)。特徴点検出メイン処理において、特徴点候補検出部1061aは、初期パラメータを用いて入力画像の全体及び小領域毎の特徴点候補を検出する。以下、
図4を参照して特徴点検出メイン処理についてさらに説明する。
【0038】
図4に示す特徴点検出メイン処理において、特徴点候補検出部1061aは、入力画像の座標(画素)毎に評価値を算出し、入力画像と同等の解像度を有する評価値マップを生成する(S201)。ここで、評価値とは、入力画像における特徴点らしさを指標化した値である。また、特徴点らしさとは、ある座標を中心とした画像領域の画像構造の変化の強さを示したものである。したがって、画像中の平坦な領域では評価値が低くなり、エッジ領域では評価値が高くなる。なお、評価値の具体的な算出手法については限定されるものではないが、例えばある座標値における Harris Corner Detectorの評価値Rは下式で算出することができる。
【数1】
【0039】
ここで、一般的な特徴点検出アルゴリズムにおいては、どの程度のスケールで評価値を算出するかをパラメータで定めている。このときの初期パラメータが、初期スケールパラメータpar_scale0である。スケールとは、注目座標の周辺の画像領域の範囲及び平滑化処理の平滑化パラメータの組み合わせからなる概念である。
【0040】
評価値の算出後、特徴点候補検出部1061aは、閾値判定を行う(S202)。閾値判定処理において、特徴点候補検出部1061aは、評価値マップの各評価値と所定の閾値とを比較し、閾値以上の点の座標と評価値とを記憶しておく。この所定の閾値が、初期評価閾値par_v0である。
【0041】
閾値判定の後、特徴点候補検出部1061aは、極大性評価を行う(S203)。極大性評価処理において、特徴点候補検出部1061aは、初期評価閾値thr_v0以上の評価値を有している座標について、この座標の評価値が周囲座標の評価値と比較して最も大きな評価値を持つか否かを評価する。例えば、評価範囲として3×3画素の合計9画素の画像領域を考えると、注目座標の評価値とその周囲の8座標の評価値の各々とを比較し、注目画素の評価値が最も大きければその座標を特徴点候補とする。この評価範囲が、初期極大性評価範囲par_maximum0である。
【0042】
ここで、再び
図3の説明に戻る。特徴点検出メイン処理の終了後、特徴点候補検出部1061aは、特徴点候補の座標値を出力する(S104)。出力処理において、特徴点候補検出部1061aは、入力画像の全体における各特徴点の座標値を目標点数設定部1062aに出力する。また、特徴点候補検出部1061aは、入力画像の小領域毎の各特徴点の座標値を期待点数設定部1062bに出力する。
【0043】
ここで、再び
図2の説明に戻る。特徴点候補検出の後、目標点数設定部1062aは、入力画像の全体の特徴点候補検出の結果を基に、小領域毎に最終的にどの程度の特徴点数の検出を目標とするのかを目標点数として設定する(S13)。目標点数設定処理において、目標点数設定部1062aは、例えば、入力画像の全体の特徴点候補の数を小領域数で割った数を目標点数とする。即ち、以下の式に従って目標点数を設定する。
【数2】
また、期待点数設定部1062bは、小領域毎の特徴点候補検出の結果を基に、初期パラメータに基づいて特徴点検出をした場合に、どの程度の数の特徴点が検出され得るかを期待点数として設定する(S14)。期待点数設定処理において、期待点数設定部1062bは、特徴点候補検出処理で検出された小領域毎の特徴点候補の数をそのまま期待点数として採用する。即ち、小領域が64(8×8)個ある場合は、64個の期待点数が設定される。
【0044】
目標点数及び期待点数が設定されると、比較部1062cは、小領域毎に設定された目標点数と期待点数とを比較する(S15)。比較処理において、比較部1062cは、目標点数と期待点数とがどの程度乖離しているのかを判定する。そして、期待点数が目標点数より小さい場合、特徴点の検出感度を初期パラメータより高くする必要があると判定し、比較部1062cは、再検出フラグをONに設定する。反対に、期待点数が目標点数以上である場合、比較部1062cは、再検出フラグをOFFに設定する。
【0045】
比較部1062cにおける比較処理の後、感度設定部1062dは、小領域毎の目標点数と期待点数との比較結果に基づき、小領域毎の特徴点の検出感度を設定する(S16)。検出感度設定処理において、感度設定部1062dは、再検出フラグの状態により、小領域毎の特徴点検出のパラメータを設定する。再検出フラグがOFFである場合には、期待点数が目標点数以上であるので、特徴点候補を削減する。特徴点候補の削減の処理自体は、次の特徴点検出の際に行う。また、再検出フラグがOFFである場合には、検出感度として前述の初期パラメータを用いる。一方、再検出フラグがONである場合には、期待点数が目標点数未満である。この場合、感度設定部1062dは、特徴点がより検出されるように特徴点検出の際のパラメータを設定する。具体的には、感度設定部1062dは、以下のようにパラメータを設定する。
(1)スケールパラメータpar_scale_nを初期スケールパラメータpar_scale0より小さな値に設定する。
par_scale_n<par_scale0
(2)評価閾値par_v_nを初期評価閾値par_v0より小さな値に設定する。
par_v_n<par_v0
(3)極大性評価範囲par_maximum_nを初期極大性評価範囲par_maximum0より小さな値に設定する。
par_maximum_n<par_maximum0
感度設定の変形例として、比較処理において期待点数と目標点数の乖離度を求め、この乖離度に応じて感度設定処理におけるパラメータの変更の程度を変えても良い。具体的には、スケールパラメータpar_scale_n、評価閾値par_v_n、極大性評価範囲 par_maximum_nを小さくすると特徴点がより検出されるようになるので、乖離度が大きくなるほどにこれらのパラメータを小さくする。
【0046】
小領域毎に検出感度を設定した後、特徴点検出部1063は、設定された特徴点の検出感度に基づき、入力画像中の特徴点を検出する(S17)。その後、
図2の処理を終了させる。以下、
図5を参照して特徴点検出についてさらに説明する。
図5に示す特徴点検出処理は、小領域の数だけ繰り返して行うものである。
【0047】
図5において、まず、特徴点検出部1063は、再検出フラグがONか否かを判定する(S301)。S301において、再検出フラグがONであると判定した場合、特徴点検出部1063は、特徴点検出メイン処理を行う(S302)。ある小領域における期待点数が目標点数未満である場合に特徴点検出メイン処理を再実行する。具体的な処理の流れは
図4で示した処理の流れと同様である。ただし、特徴点候補検出中の特徴点検出メイン処理では初期パラメータを用いたのに対し、S302の特徴点検出メイン処理では、感度設定処理において設定したパラメータを用いて特徴点を検出する。したがって、S302の特徴点検出メイン処理では、特徴点候補検出中の特徴点検出メイン処理よりも多くの特徴点が検出される可能性が高い。
【0048】
特徴点検出メイン処理の後、特徴点検出部1063は、特徴点検出メイン処理にて検出された特徴点数と目標点数とを比較し、特徴点数が目標点数に達しているかをチェックする(S303)。その後に該当の小領域に対する特徴点検出処理を終了させる。なお、特徴点数が目標点数に達していない場合、計算コストが許すならば、より多くの点が検出されるように、感度設定部1062dによって特徴点検出のパラメータを再設定し、再度の特徴点検出を行うようにしても良い(S305)。ここで、特徴点数が目標点数に達するまで、感度設定部1062dによる特徴点検出のパラメータの設定と、特徴点検出部1063による特徴点検出処理を繰り返しても良い。また、計算コストが許さないのであれば、該当の小領域において検出された特徴点の数が目標点数に達していない旨を例えば制御部102に出力するだけでも良い。
【0049】
また、S301において、再検出フラグがOFFであると判定した場合、特徴点検出部1063は、特徴点削減処理を行う(S304)。その後に該当の小領域に対する特徴点検出処理を終了させる。特徴点削減処理として、特徴点検出部1063は、特徴点候補の数を目標点数に合うように削減する。例えば、特徴点候補を、評価値(特徴点検出メイン処理で算出されているもの)でソートし、評価値の高い順に目標点数分の特徴点候補を選択して最終的な特徴点とする。
【0050】
ここで、感度設定と特徴点検出の処理は、種々の変形が可能である。例えば、前述の例では、感度設定において、3つのパラメータを一度に変更する様に説明している。実際には、計算コスト等を鑑みて、例えば以下のようにしても良い。
比較処理における目標点数と期待点数との比較結果にて、期待点数が目標点数未満であるがその乖離度がそれほど大きくない場合、まず、評価閾値par_v_nのみを小さく設定し、par_v_n以上の評価値を持つ特徴点の数を算出し、この数に基づいて、評価値算出のためのスケールパラメータpar_scale_nを変更して再度の評価値の算出を行う必要があるかどうかを判定する。一般に、評価値の算出は計算コストが高いことが知られている。評価値の再計算を行うのに先立ってその必要性を判定することにより、不要な評価値の再算出を抑制することができる。
【0051】
以上説明したように、本実施形態によれば、入力画像における特徴点の分布状況を入力画像の全体と小領域毎とに分けて画像解析し、入力画像の全体の解析結果に基づいて設定された目標点数と小領域毎の解析結果に基づいて設定された期待点数とに基づいた特徴点検出を行うことで、入力画像の像面に対して特徴点が一様に分布するように特徴点検出をすることが可能である。つまり、期待点数が目標点数に満たない小領域については、その小領域でより特徴点が検出され易くなるように特徴点検出のパラメータを設定することにより、その小領域で検出される特徴点の数を目標点数に近づけることが可能である。また、特徴点が多く検出される小領域については、特徴点数を削減することにより、その小領域で検出される特徴点の数を目標点数に近づけることが可能である。このようにして、各小領域で検出される特徴点数を目標点数に近づけて、特徴点の分布を一様にすることが可能である。
【0052】
ここで、前述の例は、8×8のブロックで入力画像を等分割するように小領域を設定している。しかしながら、小領域の数や形状はこれに限るものではない。例えば、分割数を変更することによって小領域の数を変更しても良い。また、入力画像の位置によって特徴点を一様に検出したい程度が異なる場合等は、不等分割で小領域を設定しても良い。その場合は小領域の面積に応じて目標点数や期待点数に重み付けをすれば良い。
【0053】
また、
図2においては、S13の処理とS14の処理をこの順で行う例を説明したが、S13の処理とS14の処理は、逆順で行っても良いし、並列に行っても良い。
【0054】
[第2の実施形態]
次に、本発明の第2の実施形態について説明する。第1の実施形態においては、入力画像の解析に特徴点候補検出を用いている。特徴点候補検出を用いる場合、特徴点の分布を一様にする効果は高いものの、特徴点候補検出処理と特徴点検出処理とのそれぞれの処理において特徴点検出メイン処理を行う必要がある。第2の実施形態は、第1の実施形態よりも簡便な画像解析を行うことで、第1の実施形態よりも計算コストを低減させる例である。
【0055】
図6は、第2の実施形態に係る画像処理装置の構成を示すブロック図である。ここで、
図6において
図1と対応する構成については、
図1と同様の参照符号を付すことで説明を省略する。
図6に示す画像処理装置は、画像解析部1061が画素分散算出部1061bを有している点が
図1と異なっている。
【0056】
画素分散算出部1061bは、画像入力部108からの入力画像の画素値の分散を算出することにより、特徴点の分布状況を取得する。
【0057】
図7は、第2の実施形態に係る画像処理装置における特徴点検出の全体の流れを示すフローチャートである。
図7に示すフローチャートは、
図2のS12で示す特徴点候補検出を、S18で示す画素分散算出に置き換えたものである。したがって、
図2と同一であるS11、S15、S16、S17の処理については説明を省略する。
【0058】
図8は、画素分散算出のフローチャートである。前述したように、画像解析の目的は、特徴点検出を行うのに先立ってどの程度の特徴点が検出されうるかを試算するものである。特徴点は、構造変化が大きい画像領域で多く検出される傾向にある。構造変化の大きい画像領域とは、例えば画素値の変化が大きい画像領域である。画素分散算出においては、画像構造の変化を指標化するために画素分散を計算する。
【0059】
図8において、画素分散算出部1061bは、入力画像に対して複数の小領域を設定する(S401)。ここでの小領域設定は、
図3で説明したものと同様である。したがって、詳細な説明は省略する。
【0060】
小領域の設定後、画素分散算出部1061bは、入力画像の全体の画素分散と小領域毎の画素分散とを算出する(S402)。画素分散算出処理において、画素分散算出部1061bは、以下の式に従って画素分散を算出する。
【数3】
上式の画像範囲Iは、入力画像の全体の画素分散の場合には、入力画像の全範囲であり、小領域の画素分散の場合には、各小領域の範囲である。
【0061】
本実施形態では、画素分散を用いて画像構造の変化を指標化したが、画像構造の変化の指標化に必ずしも画素分散を用いる必要はなく、種々の計算法が使用可能である。例えば、コントラストや、入力画像の濃淡のヒストグラムや同時生起行列等を算出して得られたテクスチャ特徴を解析するテクスチャ解析手法を用いたりしても良い。
【0062】
画素分散算出処理の後、目標点数設定部1062aは、入力画像の全体の画素分散算出の結果を基に、小領域毎に最終的にどの程度の特徴点数の検出を目標とするのかを目標点数として設定する(S13)。この目標点設定処理において、目標点数設定部1062aは、後述のS14と同様の考え方に従って、入力画像の全体の分散値から入力画像の全体で検出され得る特徴点の期待点数を求め、この期待点数を小領域の数で割った値を目標点数として設定する。
【0063】
また、期待点数設定部1062bは、小領域毎の画素分散算出の結果を基に、どの程度の数の特徴点が検出され得るかを期待点数として設定する(S14)。この期待点数設定処理において、期待点数設定部1062bは、小領域毎の画素分散の値と予め作成しておいた画素分散及び期待点数の対応表とを比較し、対応する期待点数を取得する。この対応表は、ある画素分散を持つ画像領域に対して実際に特徴点検出を行って特徴点数を求める処理を、種々の画素分散及び種々の画像領域に対して行うことで得られる。
【0064】
S15以後の処理は、
図2、
図4、
図5で示した処理が適用できる。したがって、説明を省略する。
【0065】
ここで、第2の実施形態においては、画素分散算出処理の結果から得られた画素分散の値から、入力画像の全体の特徴点数及び小領域毎の特徴点数を求め、これらの特徴点数に基づき、第1の実施形態に倣って目標点数及び期待点数を設定している。これに対して、特徴点数を求めずに目標点数及び期待点数を設定しても良い。例えば、小領域毎の画素分散を期待点数とし、入力画像の全体の画素分散を目標点数としても良い。即ち、予め作成しておいた画素分散及び期待点数の対応表や、画素分散及び目標点数の対応表を用いずに、小領域毎の画素分散と入力画像全体の画素分散との大小関係に応じて、小領域毎の検出感度を設定しても良い。
【0066】
以上説明したように、本実施形態によれば、特徴点検出を行う前に簡易な画像解析によって入力画像の特徴点の分布状況を解析して小領域毎の感度設定をすることができる。これにより、計算負荷を軽減しつつ入力画像の全体で一様となるように特徴点を検出することができる。
【0067】
[第3の実施形態]
次に、本発明の第3の実施形態について説明する。第1及び第2の実施形態は、1画像における特徴点検出の際の感度設定をするものである。これに対し、第3の実施形態は、2画像間で特徴点マッチングをする際のマッチングの感度設定をするものである。
【0068】
図9は、第3の実施形態に係る画像処理装置の構成を示すブロック図である。ここで、
図9において
図1と対応する構成については、
図1と同様の参照符号を付すことで説明を省略する。
図9に示す画像処理装置は、画像処理部106が特徴点検出部1064及び特徴量算出部1065、マッチング感度設定部1066、マッチング部1067を有している点と、画像解析部1061がマッチング点候補検出部1061cを有している点が
図1と異なっている。また、第3の実施形態においては、画像入力部108が、2枚の入力画像を画像処理部106に入力する点も異なっている。
【0069】
特徴点検出部1064は、画像入力部108から入力された2枚の入力画像のそれぞれの特徴点を検出する。特徴点の検出手法は、特に限定されるものではない。例えば、第1及び第2の実施形態で説明した手法を適用しても良いし、より簡便な手法を適用しても良い。
【0070】
特徴量算出部1065は、特徴点検出部1064で検出された2枚の入力画像の特徴点のそれぞれの特徴量を算出する。
【0071】
画像解析部1061のマッチング点候補検出部1061cは、特徴量算出部1065で算出された特徴量から、2枚の入力画像のうちのマッチング点の候補となる点をマッチング点候補として検出する。
【0072】
マッチング感度設定部1066は、画像解析部1061における画像データの解析結果に基づいて画像データの小領域毎のマッチング検出感度を設定するものであり、目標点数設定部1066aと、期待点数設定部1066bと、比較部1066cと、感度設定部1066dと、を有している。これらの目標点数設定部1066aと、期待点数設定部1066bと、比較部1066cと、感度設定部1066dは、
図1で示したものと対応している。ただし、これらのブロックは、2枚の入力画像に対する処理を行う点が異なる。詳細については後で詳しく説明する。
【0073】
マッチング部1067は、感度設定部1066dで設定された検出感度に従って2枚の入力画像におけるマッチング点を検出する。
【0074】
図10は、第3の実施形態に係る画像処理装置におけるマッチング点検出の全体の流れを示すフローチャートである。
【0075】
まず、画像入力部108は、記憶部104に記憶されている2枚の画像データを読み出して特徴点検出部1064に入力する(S21)。以後、この特徴点検出部1064に入力される2枚の画像データをそれぞれ入力画像IA、入力画像IBと呼ぶ。
【0076】
入力処理の後、特徴点検出部1064は、入力画像IA及びIBのそれぞれの特徴点を検出する(S22)。この特徴点検出処理における特徴点の検出手法は、任意の手法を用いることができる。
【0077】
特徴点検出処理の後、特徴量算出部1065は、特徴点検出部1064によって検出された入力画像IA及びIBの特徴点の特徴量を算出する(S23)。この特徴量算出処理における特徴量の算出手法は限定されるものではない。例えば、SIFT descriptorの場合、一般的に128次元の特徴量が計算される。この計算を特徴点数numP分だけ行い、以下の特徴量ベクトルvをnumP個得る。
【数4】
【0078】
特徴量算出の後、マッチング点候補検出部1061cは、マッチング点候補を検出することによって2枚の入力画像の解析を行う(S24)。以下、
図11を参照してマッチング点候補検出処理についてさらに詳しく説明する。
【0079】
図11において、マッチング点候補検出部1061cは、2枚の入力画像IA及びIBのそれぞれに対して複数の小領域を設定する(S501)。この小領域設定処理は、特徴点候補検出処理における小領域設定処理と基本的には同様である。ただし、S501においては、入力画像IAと入力画像IBの両方に同じ小領域を設定する点が異なる。
【0080】
続いて、マッチング点候補検出部1061cは、マッチング点候補検出のための初期パラメータを記憶部104から呼び出して設定する(S502)。ここで設定される初期パラメータは、初期マッチング閾値par_match_thr0、初期マッチング比par_match_ratio0である。これらの初期パラメータの詳細については、次のマッチングメイン処理の説明の際に述べる。
【0081】
初期パラメータの設定後、マッチング点候補検出部1061cは、マッチングメイン処理を行う(S503)。以下、マッチングメイン処理について詳しく説明する。
【0082】
特徴量算出までの処理により、入力画像IA及びIBのそれぞれの特徴点の座標と特徴量とが得られている。マッチングメイン処理として、マッチング点候補検出部1061cは、入力画像IAの特徴点及び入力画像IBの特徴点の特徴量のユークリッド距離dを比較し、入力画像IAのある特徴点に対し、ユークリッド距離が最も近くなる入力画像IBの特徴点をマッチング点として決定する。ユークリッド距離dは下式で計算される。
【数5】
【0083】
ここで、ミスマッチを避けるために、最もユークリッド距離が近い点であっても、そのユークリッド距離がある閾値以上である場合にはマッチング点としないことが一般的に行われている。この閾値が、初期マッチング閾値par_match_thr0である。即ち、ユークリッド距離が最も近くなる特徴点に対し、そのユークリッド距離dとpar_match_thr0とを比較する。そして、d<par_match_thr0であれば、そのユークリッド距離が最も近くなる特徴点がマッチング点であると判定する。また、d≧par_match_thr0であれば、そのユークリッド距離が最も近くなる特徴点がマッチング点でないと判定する。
【0084】
また、ユークリッド距離が最も近いものをマッチング点とする手法はシンプルであるが、入力画像に類似構造が多く含まれている等しているとミスマッチが起こりやすい。このため、ユークリッド距離が最も近い点とその次に近い点との距離比をある閾値で判定することによってマッチング点を決定する手法も一般的に行われている。この閾値が、初期マッチング比par_match_ratio0である。d
1を入力画像IAのある特徴点に対して最もユークリッド距離が近くなる特徴点へのユークリッド距離とし、d
2をその次にユークリッド距離が近くなる特徴点へのユークリッド距離とすると、距離比ratioは、以下の式で表される。
【数6】
距離比ratioを算出した後、算出した距離比ratioとpar_match_ratio0とを比較する。そして、ratio<par_match_ratio0であれば、ユークリッド距離が最も近い特徴点がマッチング点であると判定する。また、ratio≧par_match_ratio0であれば、ユークリッド距離が最も近い特徴点がマッチング点でないと判定する。
【0085】
以上のようなマッチングメイン処理を、入力画像IA及び入力画像IBの全体及び小領域毎に対して行い、この結果として決定されたマッチング点をマッチング点候補とする。マッチングメイン処理の終了後、マッチング点候補検出部1061cは、マッチング点候補の座標値を出力する。
【0086】
出力処理において、マッチング点候補検出部1061cは、入力画像の全体における各マッチング点候補の座標値を目標点数設定部1062aに出力する。また、マッチング点候補検出部1061cは、入力画像の小領域毎の各マッチング点候補の座標値を期待点数設定部1062bに出力する。
【0087】
ここで、再び
図10の説明に戻る。マッチング点候補検出の後、目標点数設定部1066aは、入力画像の全体のマッチング点候補検出の結果を基に、小領域毎に最終的にどの程度のマッチング点数の検出を目標とするのかを目標点数として設定する(S25)。目標点数の設定手法は、第1の実施形態と同様である。したがって、説明を省略する。
【0088】
また、期待点数設定部1066bは、小領域毎のマッチング点候補検出の結果を基に、初期パラメータに従ってマッチング点検出をした場合に、どの程度の数のマッチング点が検出され得るかを期待点数として設定する(S26)。期待点数の設定手法は、第1の実施形態と同様である。したがって、説明を省略する。
【0089】
目標点数及び期待点数が設定されると、比較部1062cは、設定された目標点数と期待点数とを比較する(S27)。比較処理も第1の実施形態と同様である。
【0090】
比較部1066cにおける比較処理の後、感度設定部1066dは、小領域毎の目標点数と期待点数との比較結果に基づき、小領域毎のマッチング点の検出感度を設定する(S28)。検出感度設定処理も、基本的には第1の実施形態と同様である。ただし、設定する検出感度がマッチングメイン処理に関する検出感度である点が異なる。具体的には、感度設定部1066dは、以下のようにパラメータを設定する。
(1)マッチング閾値 par_match_thr_nを初期マッチング閾値par_match_thr0より小さな値に設定する。
par_match_thr_n<par_match_thr_0
(2)マッチング比par_match_ratio_nを初期マッチング比par_match_ratio0より大きな値に設定する。
par_match_ratio__n>par_match_ratio0
検出感度の設定後、マッチング部1067は、設定されたマッチング点の検出感度に基づき、入力画像IA及びIB中のマッチング点を検出する(S29)。その後、
図10の処理を終了させる。マッチング点検出処理の具体的な処理の内容は、第1の実施形態で説明した
図5の特徴点検出処理と同様である。ただし、
図5のS302の特徴点検出メイン処理は、S503のマッチングメイン処理に置き換える。同様に、S304は、特徴点を削減するのではなく、マッチング点を削減する処理となる。
【0091】
以上説明したように、本実施形態によれば、マッチング点に関し、像面全体の分布を鑑みて、小領域毎に検出感度を設定することで、像面全体でなるべく一様なマッチング点検出を行うことができる。
【0092】
ここで、本実施形態では、入力画像IA及びIBにおいて同じ小領域を設定する例を示しているが、異なる小領域を設定しても良い。また、入力画像IA及びIBのどちらかのみにおいて均等なマッチング点分布を所望する場合は、マッチング点候補検出(S24)以降の処理は、所望する入力画像に対してのみ行うようにしても良い。
【0093】
ここで、本実施形態では、2枚の入力画像のマッチング点を検出する例を示しているが、3枚以上の入力画像のマッチング点を検出する場合であっても、本実施形態の手法を適用することができる。
【0094】
[第4の実施形態]
次に、本発明の第4の実施形態について説明する。前述の第1の実施形態では、1画像から特徴点を検出するにあたり、画像全体及び小領域毎に画像解析を行い、画像全体及び小領域毎の画像解析結果に基づいて、小領域毎に検出感度を設定し、小領域毎に定められた検出感度に基づいて特徴点を検出している。また、画像解析の結果を用いて小領域毎に特徴点の目標点数と期待点数を設定し、目標点数と期待点数との比較結果に従って特徴点の検出感度を設定している。これに対し、第4の実施形態は、小領域毎に期待点数を求めることなく、目標点数のみから特徴点の検出感度を設定する例である。
【0095】
図12は、第4の実施形態に係る画像処理装置の構成を示すブロック図である。ここで、
図12において
図1と対応する構成については、
図1と同様の参照符号を付すことで説明を省略する。
図12の画像処理装置は、期待点数設定部1062bと比較部1062cとが無い点以外は
図1と同様である。
【0096】
図13は、第4の実施形態に係る画像処理装置における特徴点検出の全体の流れを示すフローチャートである。以下、第1の実施形態と同様の処理については適宜説明を省略する。即ち、S11、S13については説明を省略する。また、S12の特徴点候補検出処理は、小領域毎の特徴点候補を検出せず、入力画像の全体の特徴点候補のみを検出する点が異なるだけである。したがって、S12についても詳細については説明を省略する。
【0097】
目標点数の設定後、感度設定部1062d及び特徴点検出部1063は、特徴点検出処理を行う(S17)。第1の実施形態と異なり、小領域毎に期待点数を設定していないので、検出感度(特徴点検出におけるパラメータ)を一度に決定することは難しい。このため、特徴点検出の処理を行いながら適宜パラメータを変更するようにする。以下、
図14を参照して特徴点検出処理についてさらに詳しく説明する。
図14に示す特徴点検出処理は、小領域の数だけ繰り返して行うものである。
【0098】
図14において、感度設定部1062dは、特徴点候補検出のための初期パラメータを記憶部104から呼び出して設定する(S601)。ここで設定される初期パラメータは、第1の実施形態で説明した、評価値算出に用いられる初期スケールパラメータpar_scale0、閾値判定に用いられる初期評価閾値 par_v0、及び極大性評価に用いられる初期極大性評価範囲par_maximum0である。ただし、初期評価閾値par_v0はできる限り小さい値に設定しておく。これは、特徴点検出の途中段階においてなるべく多くの特徴点になり得る評価値マップ上の座標を残しておき、最終的に特徴点を決定する際に、評価値の大きい座標から目標点数分だけを特徴点として決定することを想定している為である。
【0099】
初期パラメータの設定後、特徴点検出部1063は、S201と同様にして入力画像の座標(画素)毎に評価値を算出し、入力画像と同等の解像度を有する評価値マップを生成する(S602)。
【0100】
評価値の算出後、特徴点検出部1063は、S202と同様の閾値判定を行う(S603)。前述したように、初期評価閾値par_v0が小さな値に設定されているので、閾値判定の結果として記憶される座標及び評価値の数は、S202の場合と比較して多くなる。
【0101】
閾値判定の後、特徴点検出部1063は、S203と同様の極大性評価を行う(S604)。
【0102】
極大性評価の後、特徴点検出部1063は、極大性評価によって特徴点であるとされた特徴点数と目標点数とを比較し、特徴点数が目標点数に達しているかをチェックする(S605)。
【0103】
S605において、特徴点数が目標点数に達していない場合、感度設定部1062dは、評価値を再計算する必要があるか否かを判定する(S606)。この判定において、感度設定部1062dは、極大性評価を一度しか行っていない場合に、評価値を再計算する必要がないと判定する。極大性評価を一度しか行っていない場合とは、初期極大性評価範囲 par_maximum0で極大性評価を行っている場合である。この場合、再度の極大性評価によって特徴点を検出できる可能性がある。このような場合には、評価値算出よりも極大性評価を優先する。前述したように、評価値算出のほうが、極大性評価よりも計算コストが高いので、評価値算出よりも極大性評価を優先することにより、不要な計算コストの増大を抑制することが可能である。
【0104】
S606において、評価値の再計算を行う必要がないと判定した場合に、感度設定部1062dは、極大性評価範囲par_maximum_nを、par_maximum0よりも小さい値に設定する(S608)。その後、特徴点検出部1063は、再度の極大性評価を行う。極大性評価範囲par_maximum_nにて極大性評価の処理を再度行うことにより、より多くの特徴点が検出されることが期待される。
【0105】
また、S606において、評価値の再計算を行う必要があると判定した場合に、感度設定部1062dは、スケールパラメータpar_scale_nを、もとの値よりも小さい値に設定する(S607)。その後、特徴点検出部1063は、再度の評価値算出を行う。
【0106】
また、S605において、特徴点数が目標点数に達している場合、特徴点検出部1063は、特徴点決定処理を行う(S609)。この特徴点決定処理において、特徴点検出部1063は、目標点数を超えた小領域の特徴点を削減する。例えば、検出された特徴点を、評価値でソートし、評価値の高い順に目標点数分の特徴点を選択して最終的な特徴点とする。
【0107】
ここで、S606においては、極大性評価の回数が1回か否かを評価値の再計算が必要か否かの判定基準としている。しかしながら、この回数は1回に限るものでない。この場合には、S608の感度設定処理を行う毎に、極大性評価範囲par_maximum_nを元の値よりも段階的に小さな値に設定する。また、計算コストを鑑みて、極大性評価の繰り返し回数及び評価値算出の繰り返し回数を所定回数に制限しても良い。
【0108】
以上説明したように、本実施形態によれば、期待点数を設定しなくとも、入力画像の像面に対して特徴点が一様に分布するように特徴点検出をすることが可能である。
【0109】
ここで、第4の実施形態においては、小領域毎の期待点数を設定する必要がない反面、検出感度の設定が第1の実施形態よりも煩雑になる。したがって、用途により、第1の実施形態の手法と第4の実施形態の手法とを使い分けることが望ましい。また、第4の実施形態は特徴点検出の例であるが、第4の実施形態の手法をマッチング点検出にも適用して良い。この場合、用途によって第3の実施形態の手法と第4の実施形態の手法とを使い分けるようにして良い。
【0110】
[第5の実施形態]
次に、本発明の第5の実施形態について説明する。前述の実施形態においては、入力画像の全体を解析(特徴点候補検出又は画素分散算出)して目標点数を設定している。これに対し、第5の実施形態は、固定の目標点数を予め設定しておくか又はユーザが任意の目標点数を設定する例である。
【0111】
図15は、第5の実施形態に係る画像処理装置の構成を示すブロック図である。ここで、
図15において
図1と対応する構成については、
図1と同様の参照符号を付すことで説明を省略する。
図15の画像処理装置は、特徴点候補検出部1061aと目標点数設定部1062aとが接続されていない点のみが
図1と異なる。
【0112】
図16は、第5の実施形態に係る画像処理装置における特徴点検出の全体の流れを示すフローチャートである。以下、第1の実施形態と同様の処理については適宜説明を省略する。即ち、S11、S14、S15、S16、S17については説明を省略する。また、S12の特徴点候補検出処理は、入力画像の全体の特徴点候補を検出せず、小領域毎の特徴点候補のみを検出する点が異なるだけである。したがって、S12についても詳細については説明を省略する。
【0113】
第5の実施形態において、目標点数設定部1062aは、例えば記憶部104に予め記憶された目標点数の値を読み出すか又はユーザによって設定された目標点数を取得することにより、目標点数を設定する(S13)。なお、ユーザによって目標点数を設定させる場合には、そのためのユーザインタフェースを設ける必要がある。
【0114】
以上説明したように、第5の実施形態によれば、簡易な手法で目標点数を設定することによって、入力画像の像面に対して特徴点が一様に分布するように特徴点検出をすることが可能である。
【0115】
以上実施形態に基づいて本発明を説明したが、本発明は上述した実施形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形や応用が可能なことは勿論である。また、前述の各動作フローチャートの説明において、便宜上「まず」、「次に」等を用いて動作を説明しているが、この順で動作を実施することが必須であることを意味するものではない。
【0116】
また、上述した実施形態における画像処理装置による各処理の手法、即ち、各フローチャートに示す処理は、何れも制御部102に実行させることができるプログラムとして記憶させておくこともできる。この他、メモリカード(ROMカード、RAMカード等)、磁気ディスク(フロッピディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の外部記憶装置の記憶媒体に格納して配布することができる。そして、制御部102は、この外部記憶装置の記憶媒体に記憶されたプログラムを読み込み、この読み込んだプログラムによって動作が制御されることにより、上述した処理を実行することができる。
【0117】
さらに、上記した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適当な組合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、上述したような課題を解決でき、上述したような効果が得られる場合には、この構成要件が削除された構成も発明として抽出され得る。