説明

画像特徴点検出装置および画像特徴点検出プログラム

【課題】ヘシアン値を算出する際の畳み込み処理の回数を減少させ、処理速度を高速化させることができる画像特徴点検出装置および画像特徴点検出プログラムを提供する。
【解決手段】画像特徴点検出装置1は、スケール画像生成手段10と、ヘシアン値算出手段20と、ヘシアン値判定手段30と、ヘシアン値解析手段40と、閾値記憶手段50と、を備え、ヘシアン値算出手段20は、各スケール画像上の画素のLxx(X,σ)を算出する垂直方向畳み込み手段210と、Lyy(X,σ)を算出する水平方向畳み込み手段220と、Lxy(X,σ)を算出する斜め方向畳み込み手段230と、Lxx(X,σ)およびLyy(X,σ)が第1の閾値lminを超えるか否かを判定する垂直方向畳み込み判定手段240および水平方向畳み込み判定手段250と、ヘシアン値H(X,σ)を算出するヘシアン値演算手段260と、を備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力された画像の特徴点を検出する画像特徴点検出装置および画像特徴点検出プログラムに関する。
【背景技術】
【0002】
従来、画像処理の前処理として、入力された画像の特徴点を検出する処理が広く行われている。画像から特徴点を検出する検出装置としては、例えば、非特許文献1に示されるようなヘシアンベース特徴点検出装置が提案されている。このヘシアンベース特徴点検出装置は、下記式(1)に示すように、近似ヘシアン行列(ヘッセ行列)の行列式を用いて、異なるスケールσの画像における画素(点)Xのヘシアン値H(X,σ)を算出することで、画像上の特徴点を検出している。
【0003】
【数1】

【0004】
ここで、前記式(1)におけるLxx(X,σ)は、画像上の画素X=(x,y)において、スケールσのLoG(Laplacian-of-Gaussian)フィルタを画像の垂直(縦)方向に畳み込み(積分)したものである。また、Lyy(X,σ)は、画像上の画素X=(x,y)において、スケールσのLoGフィルタを画像の水平(横)方向に畳み込みしたものである。そして、Lxy(X,σ)は、画像上の画素X=(x,y)において、スケールσのLoGフィルタを画像の斜め方向に畳み込みしたものである。
【0005】
なお、LoGフィルタは、例えば下記式(2)のように表すことができる。下記式(2)におけるrは、着目した画素からの距離を示している。
【0006】
【数2】

【先行技術文献】
【非特許文献】
【0007】
【非特許文献1】H. Bay, A. Ess, T. Tuytelaars, L. V. Gool: “Speeded-Up Robust Features(SURF)” Computer Vision and Image Understanding, Vol.110, No.3, pp.346-359, (2008)
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、非特許文献1で提案されたヘシアンベース特徴点検出装置は、前記した垂直方向、水平方向、斜め方向への畳み込みをスケールσごとに順次行う。すなわち、640ピクセル×480ピクセルのサイズの画像の場合、垂直方向、水平方向、斜め方向のそれぞれにおいて、640×480×σ分の畳み込み処理が必要となる。従って、非特許文献1で提案されたヘシアンベース特徴点検出装置は、画像のサイズが大きくなればなるほど処理回数が増加し、処理速度が低下してしまうという問題があった。
【0009】
本発明はかかる点に鑑みてなされたものであって、ヘシアン値を算出する際の畳み込み処理の回数を減少させ、処理速度を高速化させることができる画像特徴点検出装置および画像特徴点検出プログラムを提供することを課題とする。
【課題を解決するための手段】
【0010】
前記課題を解決するために請求項1に係る画像特徴点検出装置は、入力された画像の特徴点を検出する画像特徴点検出装置であって、スケール画像生成手段と、垂直方向畳み込み手段と、水平方向畳み込み手段と、斜め方向畳み込み手段と、垂直方向畳み込み判定手段と、水平方向畳み込み判定手段と、ヘシアン値演算手段と、ヘシアン値判定手段と、ヘシアン値解析手段と、閾値記憶手段と、を備える構成とした。
【0011】
このような構成によれば、画像特徴点検出装置は、スケール画像生成手段によって、画像から異なるスケールのスケール画像を生成する。また、垂直方向畳み込み手段によって、スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の垂直方向に畳み込む。また、垂直方向畳み込み判定手段によって、垂直方向畳み込み手段によって算出された値が第1の閾値を超えるか否かを判定し、当該第1の閾値を超える場合、水平方向畳み込み手段に対して畳み込み指示を行う。なお、第1の閾値とは、垂直方向畳み込み手段または水平方向畳み込み手段によって算出された値が一定以上であるかを判定するために設定されるものであり、閾値記憶手段に予め記憶されている。
【0012】
そして、水平方向畳み込み手段によって、垂直方向畳み込み判定手段からの畳み込み指示に基づいて、スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の水平方向に畳み込む。また、水平方向畳み込み判定手段によって、水平方向畳み込み手段によって算出された値が第1の閾値を超えるか否かを判定し、当該第1の閾値を超える場合、斜め方向畳み込み手段に対して畳み込み指示を行う。また、斜め方向畳み込み手段によって、水平方向畳み込み判定手段からの畳み込み指示に基づいて、スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の斜め方向に畳み込む。なお、前記した3つの畳み込み処理は、水平方向の畳み込みの後に垂直方向の畳み込みを行い、最後に斜め方向の畳み込みを行ってもよい。
【0013】
そして、ヘシアン値演算手段によって、垂直方向畳み込み手段および水平方向畳み込み手段によって算出された値を乗算し、当該乗算した値から、斜め方向畳み込み手段によって算出された値を2乗した値を減算することで、画素のヘシアン値を算出する。また、ヘシアン値演算手段は、垂直方向畳み込み手段または水平方向畳み込み手段によって算出された値が第1の閾値以下である場合は、該当する画素のヘシアン値を0に設定する。すなわち、垂直方向畳み込み手段または水平方向畳み込み手段によって算出された値が第1の閾値以下である場合、ヘシアン値の演算は行われない。また、ヘシアン値判定手段によって、ヘシアン値演算手段によって算出されたヘシアン値が、予め定められた第2の閾値を超えるか否かを判定する。なお、第2の閾値とは、ヘシアン値が一定以上であるかを判定するために設定されるものであり、閾値記憶手段に予め記憶されている。また、ヘシアン値解析手段によって、ヘシアン値判定手段によって第2の閾値を超えると判定されたヘシアン値のうち、画素の位置またはスケールが隣接する画素のヘシアン値同士を比較し、勾配の大きさが極大となるヘシアン値が示す画素を特徴点とする。
【0014】
また、請求項2に係る画像特徴点検出装置は、入力された画像の特徴点を検出する画像特徴点検出装置であって、スケール画像生成手段と、垂直方向畳み込み手段と、水平方向畳み込み手段と、斜め方向畳み込み手段と、斜め方向畳み込み判定手段と、垂直方向畳み込み判定手段と、水平方向畳み込み判定手段と、ヘシアン値演算手段と、ヘシアン値判定手段と、ヘシアン値解析手段と、閾値記憶手段と、を備える構成とした。
【0015】
このような構成によれば、画像特徴点検出装置は、スケール画像生成手段によって、画像から異なるスケールのスケール画像を生成する。また、斜め方向畳み込み手段によって、スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の斜め方向に畳み込む。また、斜め方向畳み込み判定手段によって、斜め方向畳み込み手段によって算出された値が第1の閾値未満であるか否かを判定し、当該第1の閾値未満である場合、垂直方向畳み込み手段に対して畳み込み指示を行う。
【0016】
そして、垂直方向畳み込み手段によって、斜め方向畳み込み判定手段からの畳み込み指示に基づいて、スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の垂直方向に畳み込む。また、垂直方向畳み込み判定手段によって、垂直方向畳み込み手段によって算出された値が第1の閾値を超えるか否かを判定し、当該第1の閾値を超える場合、水平方向畳み込み手段に対して畳み込み指示を行う。また、水平方向畳み込み手段によって、垂直水平方向畳み込み判定手段からの畳み込み指示に基づいて、スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の水平方向に畳み込む。なお、前記した3つの畳み込み処理は、斜め方向の畳み込みの後に水平方向の畳み込みを行い、最後に垂直方向の畳み込みを行ってもよい。
【0017】
そして、ヘシアン値演算手段によって、垂直方向畳み込み手段および水平方向畳み込み手段によって算出された値を乗算し、当該乗算した値から、斜め方向畳み込み手段によって算出された値を2乗した値を減算することで、画素のヘシアン値を算出する。また、ヘシアン値演算手段は、斜め方向畳み込み手段によって算出された値が第1の閾値以上であるか、または垂直方向畳み込み手段によって算出された値が第1の閾値以下である場合に、該当する画素のヘシアン値を0に設定する。すなわち、斜め方向畳み込み手段によって算出された値が第1の閾値以上であるか、垂直方向畳み込み手段によって算出された値が第1の閾値以下である場合、ヘシアン値の演算は行われない。また、ヘシアン値判定手段によって、ヘシアン値演算手段によって算出されたヘシアン値が、予め定められた第2の閾値を超えるか否かを判定する。また、ヘシアン値解析手段によって、ヘシアン値判定手段によって第2の閾値を超えると判定されたヘシアン値のうち、画素の位置またはスケールが隣接する画素のヘシアン値同士を比較し、勾配の大きさが極大となるヘシアン値が示す画素を特徴点とする。
【0018】
また、請求項3に係る画像特徴点検出装置は、請求項1または請求項2に記載の画像特徴点検出装置であって、垂直方向畳み込み手段が、スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の垂直方向に畳み込むことで、下記式(1)におけるLxx(X,σ)を算出し、水平方向畳み込み手段が、スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の水平方向に畳み込むことで、下記式(1)におけるLyy(X,σ)を算出し、斜め方向畳み込み手段が、スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の斜め方向に畳み込むことで、下記式(1)におけるLxy(X,σ)を算出し、ヘシアン値演算手段が、下記式(1)におけるH(X,σ)を算出する構成とした。
【0019】
【数3】

【0020】
そして、請求項4に係る画像特徴点検出プログラムは、入力された画像の特徴点を検出するために、コンピュータを、スケール画像生成手段、垂直方向畳み込み手段、水平方向畳み込み手段、斜め方向畳み込み手段、垂直方向畳み込み判定手段、水平方向畳み込み判定手段、ヘシアン値演算手段、ヘシアン値判定手段、ヘシアン値解析手段、として機能させる構成とした。
【0021】
このような構成によれば、画像特徴点検出プログラムは、スケール画像生成手段によって、画像から異なるスケールのスケール画像を生成する。また、垂直方向畳み込み手段によって、スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の垂直方向に畳み込む。また、垂直方向畳み込み判定手段によって、垂直方向畳み込み手段によって算出された値が第1の閾値を超えるか否かを判定し、当該第1の閾値を超える場合、水平方向畳み込み手段に対して畳み込み指示を行う。
【0022】
そして、水平方向畳み込み手段によって、垂直方向畳み込み判定手段からの畳み込み指示に基づいて、スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の水平方向に畳み込む。また、水平方向畳み込み判定手段によって、水平方向畳み込み手段によって算出された値が第1の閾値を超えるか否かを判定し、当該第1の閾値を超える場合、斜め方向畳み込み手段に対して畳み込み指示を行う。また、斜め方向畳み込み手段によって、水平方向畳み込み判定手段からの畳み込み指示に基づいて、スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の斜め方向に畳み込む。なお、前記した3つの畳み込み処理は、水平方向の畳み込みの後に垂直方向の畳み込みを行い、最後に斜め方向の畳み込みを行ってもよい。
【0023】
そして、ヘシアン値演算手段によって、垂直方向畳み込み手段および水平方向畳み込み手段によって算出された値を乗算し、当該乗算した値から、斜め方向畳み込み手段によって算出された値を2乗した値を減算することで、画素のヘシアン値を算出する。また、ヘシアン値演算手段によって、垂直方向畳み込み手段または水平方向畳み込み手段によって算出された値が第1の閾値以下である場合に、該当する画素のヘシアン値を0に設定する。すなわち、垂直方向畳み込み手段または水平方向畳み込み手段によって算出された値が第1の閾値以下である場合、ヘシアン値の演算は行われない。また、ヘシアン値判定手段によって、ヘシアン値演算手段によって算出されたヘシアン値が、予め定められた第2の閾値を超えるか否かを判定する。また、ヘシアン値解析手段によって、ヘシアン値判定手段によって第2の閾値を超えると判定されたヘシアン値のうち、画素の位置またはスケールが隣接する画素のヘシアン値同士を比較し、勾配の大きさが極大となるヘシアン値が示す画素を特徴点とする。
【発明の効果】
【0024】
請求項1、請求項3および請求項4に係る発明によれば、前記式(1)の演算において、1番目の処理である垂直方向または水平方向の畳み込みによって算出された値が予め定められた第1の閾値を超える場合のみ、2番目の処理である水平方向または垂直方向の畳み込みを行う。そして、2番目の処理である水平方向または垂直方向の畳み込みによって算出された値が第1の閾値を超える場合のみ、3番目の処理である斜め方向の畳み込みを行ってヘシアン値を算出する。すなわち、閾値処理によって画像上における画素の特徴点の有無を判断しているため、画素の特徴量を示すヘシアン値を算出する画素Xの数を絞り込むことができる。従って、画像の特徴点を検出する際の全体の処理回数を減少させ、かつ、処理速度を高速化することができる。
【0025】
請求項3に係る発明によれば、前記式(1)の演算において、1番目の処理である斜め方向の畳み込みによって算出された値が予め定められた第1の閾値未満である場合のみ、2番目の処理である垂直方向または水平方向の畳み込みを行う。そして、2番目の処理である垂直方向または水平方向の畳み込みによって算出された値が第1の閾値を超える場合のみ、3番目の処理である水平方向または垂直方向の畳み込みを行ってヘシアン値を算出する。すなわち、閾値処理によって画像上における画素の特徴点の有無を判断しているため、画素の特徴量を示すヘシアン値を算出する画素Xの数を絞り込むことができる。従って、画像の特徴点を検出する際の全体の処理回数を減少させ、かつ、処理速度を高速化することができる。
【図面の簡単な説明】
【0026】
【図1】本発明の第1実施形態に係る画像特徴点検出装置を示すブロック図である。
【図2】本発明の第1実施形態に係る画像特徴点検出装置のヘシアン値算出手段のブロック図である。
【図3】本発明の第1実施形態の変形例に係る画像特徴点検出装置のヘシアン値算出手段のブロック図である。
【図4】本発明の第1実施形態に係る画像特徴点検出装置の処理手順を示すフローチャートである。
【図5】本発明の第2実施形態に係る画像特徴点検出装置のヘシアン値算出手段のブロック図である。
【図6】本発明の第2実施形態の変形例に係る画像特徴点検出装置のヘシアン値算出手段のブロック図である。
【図7】本発明の第2実施形態に係る画像特徴点検出装置の処理手順を示すフローチャートである。
【図8】本発明の実施形態に係る画像特徴点検出装置の効果を確認した実験結果を示す図であって、第1の閾値と特徴点検出の処理時間との関係を示すグラフである。
【図9】本発明の実施形態に係る画像特徴点検出装置の効果を確認した実験結果を示す図であって、画像中におけるボケの増加と特徴点検出の再現率との関係を示すグラフである。
【図10】本発明の実施形態に係る画像特徴点検出装置の効果を確認した実験結果を示す図であって、画像の回転を伴うスケールの増加と特徴点検出の再現率との関係を示すグラフである。
【図11】本発明の実施形態に係る画像特徴点検出装置の効果を確認した実験結果を示す図であって、画像の光量の減少と特徴点検出の再現率との関係を示すグラフである。
【図12】本発明の実施形態に係る画像特徴点検出装置の効果を確認した実験結果を示す図であって、画像のJPEG圧縮率の増加と特徴点検出の再現率との関係を示すグラフである。
【図13】本発明の実施形態に係る画像特徴点検出装置の効果を確認した実験結果を示す図であって、画像の視点変更と特徴点検出の再現率との関係を示すグラフである。
【発明を実施するための形態】
【0027】
[第1実施形態]
第1実施形態に係る画像特徴点検出装置1について、図面を参照しながら詳細に説明する。
【0028】
画像特徴点検出装置1は、入力された画像の特徴点を検出するものである。画像特徴点検出装置1は、図1に示すように、スケール画像生成手段10と、ヘシアン値算出手段20と、ヘシアン値判定手段30と、ヘシアン値解析手段40と、閾値記憶手段50と、を備えている。
【0029】
スケール画像生成手段10は、画像から異なるスケールσのスケール画像を生成するものである。スケール画像生成手段10は、具体的には、特徴点の検出対象として入力された画像のサイズを縮小し、解像度の異なる複数のスケール画像を生成する。スケール画像生成手段10は、例えば640ピクセル×480ピクセルの画像が入力された場合、予め定められた縮小率に従って、逆ピラミッド型となるように解像度を2分の1(320ピクセル×240ピクセル)、4分の1(160ピクセル×120ピクセル)、等に縮小し、複数のスケール画像を生成する。
【0030】
スケール画像生成手段10には、図1に示すように、特徴点の抽出対象となる画像が入力される。そして、スケール画像生成手段10は、前記した手法によって解像度の異なる複数のスケール画像を生成し、これらをヘシアン値算出手段20に出力する。なお、スケール画像生成手段10は、ここでは入力された画像の解像度を8段階に縮小させた8枚のスケール画像をヘシアン値算出手段20に出力している。
【0031】
ヘシアン値算出手段20は、画像上におけるそれぞれの画素Xのヘシアン値H(X,σ)を算出するものである。ヘシアン値算出手段20は、具体的には、前記式(1)を用いて、スケール画像生成手段10から入力された異なるスケールσのスケール画像上におけるヘシアン値H(X,σ)を算出する。ヘシアン値算出手段20は、ここでは、入力されたスケール画像の画素Xのヘシアン値H(X,σ)を、左上から右下の方向に順番に算出する。
【0032】
ここで、前記式(1)によって算出されるヘシアン値H(X,σ)は、該当する画素Xの特徴量を示しており、このヘシアン値H(X,σ)が大きいほど特徴量が大きく、特徴点として検出され易いということを意味している。また、前記式(1)では、Lxx(X,σ)とLyy(X,σ)とを乗算した左辺からLxy(X,σ)を2乗した右辺を減算している。従って、スケール画像上のある画素Xが特徴点として検出される可能性が高いか否かは、前記式(1)の左辺の値であるLxx(X,σ)およびLyy(X,σ)が一定以上の値であるか、あるいは右辺の値であるLxy(X,σ)が一定以下の値であるか、を判定することによって、推定できることになる。
【0033】
このような観点から、ヘシアン値算出手段20は、前記式(1)によってスケール画像上の左上の画素Xから右下の画素Xまでの全ての画素Xのヘシアン値H(X,σ)を算出するのではなく、前記式(1)の左辺の値であるLxx(X,σ)およびLyy(X,σ)が所定の閾値を超える画素Xについてのみ、ヘシアン値H(X,σ)を算出することを特徴としている。
【0034】
以下、ヘシアン値算出手段20の具体的構成について説明する。ヘシアン値算出手段20は、図2に示すように、垂直方向畳み込み部210と、水平方向畳み込み部220と、斜め方向畳み込み部230と、垂直方向畳み込み判定部240と、水平方向畳み込み判定部250と、ヘシアン値演算部260と、を備えている。
【0035】
垂直方向畳み込み部(手段)210は、画像上の画素Xに対して、垂直方向の畳み込み処理を行うものである。垂直方向畳み込み部210は、具体的には、スケール画像生成手段10によって生成されたそれぞれのスケール画像上の画素Xに対して、LoGフィルタを画像の垂直方向に畳み込むことで、前記式(1)におけるLxx(X,σ)を算出する。
【0036】
水平方向畳み込み部(手段)220は、画像上の画素Xに対して、水平方向の畳み込み処理を行うものである。水平方向畳み込み部220は、具体的には、スケール画像生成手段10によって生成されたそれぞれのスケール画像上の画素Xに対して、LoGフィルタを画像の水平方向に畳み込むことで、前記式(1)におけるLyy(X,σ)を算出する。なお、水平方向畳み込み部220は、後記するように、ここでは垂直方向畳み込み判定部240から畳み込み指示が入力された場合のみ、Lyy(X,σ)を算出する。
【0037】
斜め方向畳み込み部(手段)230は、画像上の画素Xに対して、斜め方向の畳み込み処理を行うものである。斜め方向畳み込み部230は、スケール画像生成手段10によって生成されたそれぞれのスケール画像上の画素Xに対して、LoGフィルタを画像の斜め方向に畳み込むことで、前記式(1)におけるLxy(X,σ)を算出する。なお、斜め方向畳み込み部230は、後記するように、ここでは水平方向畳み込み判定部250から畳み込み指示が入力された場合のみ、Lxy(X,σ)を算出する。
【0038】
垂直方向畳み込み判定部(手段)240は、垂直方向畳み込み部210によって算出された値の閾値処理を行うものである。垂直方向畳み込み判定部240は、具体的には、垂直方向畳み込み部210によって算出されたLxx(X,σ)の値が、予め定められた第1の閾値lminを超えるか否かを判定することで、前記式(1)の左辺が大きい値であるか否かを判定する。この第1の閾値(ラプラシアン閾値)lminは、Lxx(X,σ)の値を一定以上とするために設定されたものであり、実験的および経験的に予め求められるものである。
【0039】
垂直方向畳み込み判定部240は、Lxx(X,σ)の値が第1の閾値lminを超える場合、水平方向畳み込み部220に対して畳み込み指示を出力するとともに、ヘシアン値演算部260に対してLxx(X,σ)を出力する。一方、垂直方向畳み込み判定部240は、Lxx(X,σ)の値が第1の閾値lmin以下である場合、ヘシアン値演算部260に対して、当該Lxx(X,σ)を算出した画素Xのヘシアン値H(X,σ)を0に設定する旨の指示を出力する。
【0040】
水平方向畳み込み判定部(手段)250は、水平方向畳み込み部220によって算出された値の閾値処理を行うものである。水平方向畳み込み判定部250は、具体的には、水平方向畳み込み部220によって算出されたLyy(X,σ)の値が、予め定められた第1の閾値lminを超えるか否かを判定することで、前記式(1)の左辺が大きい値であるか否かを判定する。
【0041】
水平方向畳み込み判定部250は、Lyy(X,σ)の値が第1の閾値lminを超える場合、斜め方向畳み込み部230に対して畳み込み指示を出力するとともに、ヘシアン値演算部260に対してLyy(X,σ)を出力する。一方、水平方向畳み込み判定部250は、Lyy(X,σ)の値が第1の閾値lmin以下である場合、ヘシアン値演算部260に対して、当該Lyy(X,σ)を算出した画素Xのヘシアン値H(X,σ)を0に設定する旨の指示を出力する。
【0042】
ヘシアン値演算部(手段)260は、画像上におけるそれぞれの画素Xのヘシアン値H(X,σ)を算出するとともに、当該ヘシアン値H(X,σ)を0に設定するものである。ヘシアン値演算部260は、具体的には、垂直方向畳み込み部210によって算出されたLxx(X,σ)の値と、水平方向畳み込み部220によって算出されたLyy(X,σ)の値と、が第1の閾値lminを超える場合、すなわち、垂直方向畳み込み部210からLxx(X,σ)の値が入力されるとともに、水平方向畳み込み部220からLyy(X,σ)の値が入力された場合、Lxx(X,σ)の値とLyy(X,σ)の値とを乗算する。そして、当該乗算した値から、斜め方向畳み込み部230によって算出されたLxy(X,σ)の値を2乗した値を減算し、画素Xのヘシアン値H(X,σ)を算出する。
【0043】
一方、ヘシアン値演算部260は、垂直方向畳み込み部210によって算出されたLxx(X,σ)の値と、水平方向畳み込み部220によって算出されたLyy(X,σ)の値と、のいずれかが第1の閾値以下である場合、すなわち、垂直方向畳み込み判定部240または水平方向畳み込み判定部250からヘシアン値H(X,σ)を0に設定する旨の指示が入力された場合、該当する画素Xのヘシアン値H(X,σ)を0に設定する。
【0044】
ここで、ヘシアン値H(X,σ)を0に設定するとは、Lxx(X,σ)の値およびLyy(X,σ)の値が第1の閾値lmin以下である場合は、該当する画素Xは特徴点ではないとみなし、当該画素Xについて前記式(1)の演算を行わないということを意味する。このように、ヘシアン値演算部260は、Lxx(X,σ)の値とLyy(X,σ)の値とが第1の閾値lminを超える場合、すなわち前記式(1)の左辺が大きい値である場合のみ、前記式(1)の演算を行う。なお、ヘシアン値演算部260がヘシアン値H(X,σ)を0に設定した場合、画素Xの次の画素Xの特徴点検出処理に移り、垂直方向畳み込み部210は画素Xの次の画素のLxx(X,σ)の値を算出する。
【0045】
以下、ヘシアン値算出手段20におけるヘシアン値H(X,σ)の算出手順について、簡単に説明する。
【0046】
まず、図2に示すように、スケール画像生成手段10によって生成されたスケール画像が、垂直方向畳み込み部210、水平方向畳み込み部220および斜め方向畳み込み部230にそれぞれ入力される。すると、垂直方向畳み込み部210が、スケール画像上の画素Xに対して、前記式(2)で示すLoGフィルタを画像の垂直方向に畳み込むことで、前記式(1)で示すLxx(X,σ)の値を算出し、これを垂直方向畳み込み判定部240に出力する。
【0047】
次に、垂直方向畳み込み判定部240が、Lxx(X,σ)の値が第1の閾値lminを超えるか否かを判定する。そして、垂直方向畳み込み判定部240は、Lxx(X,σ)の値が第1の閾値lminを超える場合、水平方向畳み込み部220に対して畳み込み指示を出力するとともに、ヘシアン値演算部260に対してLxx(X,σ)を出力する。一方、垂直方向畳み込み判定部240は、Lxx(X,σ)の値が第1の閾値lmin以下である場合、ヘシアン値演算部260に対してヘシアン値H(X,σ)を0に設定する旨の指示を出力する。この場合、ヘシアン値演算部260は、前記式(1)の演算を行わない。そして、次の画素Xの処理に移り、垂直方向畳み込み部210が、画素Xの隣の画素XのLxx(X,σ)の値を算出する。
【0048】
次に、水平方向畳み込み部220が、垂直方向畳み込み判定部240の畳み込み指示に基づいて、スケール画像上の画素Xに対して、前記式(2)で示すLoGフィルタを画像の水平方向に畳み込むことで、前記式(1)で示すLyy(X,σ)の値を算出し、これを水平方向畳み込み判定部250に出力する。
【0049】
次に、水平方向畳み込み判定部250が、Lyy(X,σ)の値が第1の閾値lminを超えるか否かを判定する。そして、水平方向畳み込み判定部250は、Lyy(X,σ)の値が第1の閾値lminを超える場合、斜め方向畳み込み部230に対して畳み込み指示を出力するとともに、ヘシアン値演算部260に対してLyy(X,σ)を出力する。一方、水平方向畳み込み判定部250は、Lyy(X,σ)の値が第1の閾値lmin以下である場合、ヘシアン値演算部260に対してヘシアン値H(X,σ)を0に設定する旨の指示を出力する。この場合、ヘシアン値演算部260は、前記式(1)の演算を行わない。そして、次の画素Xの処理に移り、垂直方向畳み込み部210が、画素Xの隣の画素XのLxx(X,σ)の値を算出する。
【0050】
次に、斜め方向畳み込み部230が、水平方向畳み込み判定部250の畳み込み指示に基づいて、スケール画像上の画素Xに対して、前記式(2)で示すLoGフィルタを画像の斜め方向に畳み込むことで、前記式(1)で示すLxy(X,σ)の値を算出し、これをヘシアン値演算部260に出力する。
【0051】
次に、ヘシアン値演算部260が、入力されたLxx(X,σ)、Lyy(X,σ)およびLxy(X,σ)の値を用いて前記式(1)を演算することでヘシアン値H(X,σ)を算出し、これをヘシアン値判定手段30に出力する。なお、ヘシアン値演算部260は、垂直方向畳み込み判定部240または水平方向畳み込み判定部250からヘシアン値H(X,σ)を0に設定する旨の指示が入力された場合、ヘシアン値H(X,σ)を0に設定する。
【0052】
このように、ヘシアン値算出手段20は、従来のようにスケール画像上の全ての画素Xについて、前記式(1)を用いてヘシアン値H(X,σ)を算出するのではなく、閾値処理によってヘシアン値H(X,σ)を算出する画素Xと算出しない画素Xとを判定し、ヘシアン値H(X,σ)を算出する画素Xを絞り込むため、前記式(1)における畳み込み処理の回数を減少させることができる。
【0053】
ヘシアン値算出手段20には、図1に示すように、スケール画像生成手段10から解像度の異なる複数のスケール画像が入力される。そして、ヘシアン値算出手段20は、前記手法によってスケール画像上の画素Xのヘシアン値H(X,σ)を算出し、これらをヘシアン値判定手段30に出力する。
【0054】
ヘシアン値判定手段30は、ヘシアン値H(X,σ)の閾値処理を行うものである。ヘシアン値判定手段30は、具体的には、ヘシアン値算出手段20(ヘシアン値演算部260)によって算出されたヘシアン値H(X,σ)が、予め定められた第2の閾値hthを超えるか否かを判定する。この第2の閾値(ヘシアン閾値)hthは、ヘシアン値H(X,σ)を一定以上とするために設定されたものであり、実験的および経験的に予め求められるものである。
【0055】
ヘシアン値判定手段30は、画素Xのヘシアン値H(X,σ)が第2の閾値hthを超える場合、これをヘシアン値解析手段40に出力する。一方、ヘシアン値判定手段30は、画素Xのヘシアン値H(X,σ)が第2の閾値hth以下である場合、該当するヘシアン値H(X,σ)を0に設定し、これを破棄する。このように、ヘシアン値判定手段30は、ヘシアン値H(X,σ)が第2の閾値hth以下である場合は、該当する画素Xは特徴点ではないと判定し、特徴点の候補から除外する。
【0056】
ヘシアン値判定手段30には、図1に示すように、ヘシアン値算出手段20からそれぞれのスケール画像上の画素Xのヘシアン値H(X,σ)が入力される。そして、ヘシアン値判定手段30は、前記した手法によって閾値処理を行い、第2の閾値hthを超えるヘシアン値H(X,σ)をヘシアン値解析手段40に出力する。
【0057】
ヘシアン値解析手段40は、閾値処理を経た特徴点の候補を解析し、特徴点を決定するものである。ヘシアン値解析手段40は、ヘシアン値判定手段30を経た画素Xに対して、ノンマキシマムサプレッション(non-maximum suppression、非最大抑制)処理を行う。このノンマキシマムサプレッション処理とは、画像のエッジ部の勾配方向に沿って、画素Xの極大値のみを残す処理のことをいう。
【0058】
ヘシアン値解析手段40は、具体的には、ヘシアン値判定手段30によって第2の閾値hthを超えると判定されたヘシアン値H(X,σ)のうち、画素Xの位置またはスケールσが隣接する画素Xのヘシアン値H(X,σ)同士を比較し、勾配の大きさが極大となるヘシアン値H(X,σ)が示す画素Xを特徴点とする。一方、ヘシアン値解析手段40は、前記した勾配の大きさが極大とならないヘシアン値H(X,σ)が示す画素Xは特徴点ではないと判定し、特徴点の候補から除外する。
【0059】
ヘシアン値解析手段40には、図1に示すように、ヘシアン値判定手段30から閾値処理後のヘシアン値H(X,σ)が入力される。そして、ヘシアン値解析手段40は、前記した手法によって特徴点を決定し、これを出力する。
【0060】
閾値記憶手段50は、第1の閾値lminと第2の閾値hthを予め記憶するものである。閾値記憶手段50は、具体的には、データを記憶することができるメモリ、ハードディスク等で具現される。閾値記憶手段50は、図1に示すように、ヘシアン値算出手段20に対して第1の閾値lminを出力し、ヘシアン値判定手段30に対して第2の閾値hthを出力する。なお、閾値記憶手段50は、第1の閾値lminと第2の閾値hthとを別々に記憶するために、2つに分割して設けてもよい。
【0061】
以上のような構成を備える画像特徴点検出装置1は、前記式(1)の演算において、1番目の処理である垂直方向の畳み込みによって算出された値が予め定められた第1の閾値lminを超える場合のみ、2番目の処理である水平方向の畳み込みを行う。そして、2番目の処理である水平方向の畳み込みによって算出された値が第1の閾値lminを超える場合のみ、3番目の処理である斜め方向の畳み込みを行ってヘシアン値H(X,σ)を算出する。
【0062】
このように、画像特徴点検出装置1は、閾値処理によって画像上における画素Xの特徴点の有無を判断しているため、画素Xの特徴量を示すヘシアン値H(X,σ)を算出する画素Xの数を絞り込むことができる。従って、画像の特徴点を検出する際の全体の処理回数を減少させ、かつ、処理速度を高速化することができる。
【0063】
[画像特徴点検出プログラム]
ここで、画像特徴点検出装置1は、一般的なコンピュータを、前記した各手段および各部として機能させるプログラムにより動作させることで実現することができる。このプログラムは、通信回線を介して配布することも可能であるし、CD−ROM等の記録媒体に書き込んで配布することも可能である。
【0064】
[第1実施形態に係る画像特徴点検出装置の処理手順]
以下、第1実施形態に係る画像特徴点検出装置1の全体の処理手順について、図4を参照しながら説明する。画像特徴点検出装置1の第1の処理手順では、前記したように、前記式(1)の左辺の値を大きくするために、Lxx(X,σ)およびLyy(X,σ)が第1の閾値lminを超える場合のみ、ヘシアン値H(X,σ)を算出する。
【0065】
処理が開始されると、まずスケール画像生成手段10が、解像度の異なる複数のスケール画像を生成する(ステップS1)。次に、垂直方向畳み込み部210が、Lxx(X,σ)の値を算出する(ステップS2)。次に、垂直方向畳み込み判定部240が、Lxx(X,σ)の値が第1の閾値lminを超えるか否かを判定する(ステップS3)。そして、Lxx(X,σ)の値が第1の閾値lminを超える場合(ステップS3でYes)、ステップS4に進む。一方、Lxx(X,σ)の値が第1の閾値lmin以下である場合(ステップS3でNo)、ステップS10に進み、ヘシアン値H(X,σ)を0として処理を終了する。
【0066】
次に、水平方向畳み込み部220が、Lyy(X,σ)の値を算出する(ステップS4)。次に、水平方向畳み込み判定部250が、Lyy(X,σ)の値が第1の閾値lminを超えるか否かを判定する(ステップS5)。そして、Lyy(X,σ)の値が第1の閾値lminを超える場合(ステップS5でYes)、ステップS6に進む。一方、Lyy(X,σ)の値が第1の閾値lmin以下である場合(ステップS5でNo)、ステップS10に進み、ヘシアン値H(X,σ)を0として処理を終了する。
【0067】
次に、斜め方向畳み込み部230が、Lxy(X,σ)の値を算出する(ステップS6)。次に、ヘシアン値演算部260が、ヘシアン値H(X,σ)を算出する(ステップS7)。次に、ヘシアン値判定手段30が、ヘシアン値H(X,σ)が第2の閾値hthを超えるか否かを判定する(ステップS8)。そして、ヘシアン値H(X,σ)が第2の閾値hthを超える場合(ステップS8でYes)、ステップS9に進む。一方、ヘシアン値H(X,σ)が第2の閾値hth以下である場合(ステップS8でNo)、ステップS10に進み、ヘシアン値H(X,σ)を0として処理を終了する。
【0068】
そして、ヘシアン値解析手段40が、入力されたヘシアン値H(X,σ)について、ノンマキシマムサプレッション処理を行って(ステップS9)、処理を終了する。
【0069】
[第1実施形態の変形例]
以下、第1実施形態の変形例に係る画像特徴点検出装置について、図3を参照しながら詳細に説明する。第1実施形態の変形例に係る画像特徴点検出装置は、図2のヘシアン値算出手段20を、図3に示すヘシアン値算出手段21とした以外は、前記した第1実施形態に係る画像特徴点検出装置1と同様の構成を備えている。従って、前記した第1実施形態に係る画像特徴点検出装置1と重複する構成については、同じ符号を付して説明を省略する。また、画像特徴点検出装置の全体の処理手順についても、説明を省略する。
【0070】
ヘシアン値算出手段21は、前記したヘシアン値算出手段20のように、先に垂直方向の畳み込みを行った後に水平方向の畳み込みを行うのではなく、先に水平方向の畳み込みを行った後に垂直方向の畳み込みを行うことを特徴としている。
【0071】
以下、ヘシアン値算出手段21におけるヘシアン値H(X,σ)の算出手順について、簡単に説明する。
【0072】
まず、図3に示すように、スケール画像生成手段10によって生成されたスケール画像が、垂直方向畳み込み部210、水平方向畳み込み部220および斜め方向畳み込み部230にそれぞれ入力される。すると、水平方向畳み込み部220が、スケール画像上の画素Xに対して、前記式(2)で示すLoGフィルタを画像の水平方向に畳み込むことで、前記式(1)で示すLyy(X,σ)の値を算出し、これを水平方向畳み込み判定部250に出力する。
【0073】
次に、水平方向畳み込み判定部250が、Lyy(X,σ)の値が第1の閾値lminを超えるか否かを判定する。そして、水平方向畳み込み判定部250は、Lyy(X,σ)の値が第1の閾値lminを超える場合、垂直方向畳み込み部210に対して畳み込み指示を出力するとともに、ヘシアン値演算部260に対してLyy(X,σ)を出力する。一方、水平方向畳み込み判定部250は、Lyy(X,σ)の値が第1の閾値lmin以下である場合、ヘシアン値演算部260に対してヘシアン値H(X,σ)を0に設定する旨の指示を出力する。この場合、ヘシアン値演算部260は、前記式(1)の演算を行わず、水平方向畳み込み部220は、画素Xの隣の画素XのLyy(X,σ)の値を算出する。
【0074】
次に、垂直方向畳み込み部210が、水平方向畳み込み判定部250の畳み込み指示に基づいて、スケール画像上の画素Xに対して、前記式(2)で示すLoGフィルタを画像の垂直方向に畳み込むことで、前記式(1)で示すLxx(X,σ)の値を算出し、これを垂直方向畳み込み判定部240に出力する。
【0075】
次に、垂直方向畳み込み判定部240が、Lxx(X,σ)の値が第1の閾値lminを超えるか否かを判定する。そして、垂直方向畳み込み判定部240は、Lxx(X,σ)の値が第1の閾値lminを超える場合、斜め方向畳み込み部230に対して畳み込み指示を出力するとともに、ヘシアン値演算部260に対してLxx(X,σ)を出力する。一方、垂直方向畳み込み判定部240は、Lxx(X,σ)の値が第1の閾値lmin以下である場合、ヘシアン値演算部260に対してヘシアン値H(X,σ)を0に設定する旨の指示を出力する。この場合、ヘシアン値演算部260は、前記式(1)の演算を行わない。そして、次の画素Xの処理に移り、水平方向畳み込み部220が、画素Xの隣の画素XのLyy(X,σ)の値を算出する。
【0076】
以降の処理手順は前記したヘシアン値算出手段20と同様であるため、省略する。このように、ヘシアン値算出手段21は、従来のようにスケール画像上の全ての画素Xについて、前記式(1)を用いてヘシアン値H(X,σ)を算出するのではなく、閾値処理によってヘシアン値H(X,σ)を算出する画素Xと算出しない画素Xとを判定し、ヘシアン値H(X,σ)を算出する画素Xを絞り込むことで、前記式(1)における畳み込み処理の回数を減少させることができる。
【0077】
[第2実施形態]
以下、第2実施形態に係る画像特徴点検出装置について、図5を参照しながら詳細に説明する。第2実施形態に係る画像特徴点検出装置は、図2のヘシアン値算出手段20を、図5に示すヘシアン値算出手段22とした以外は、前記した第1実施形態に係る画像特徴点検出装置1と同様の構成を備えている。従って、前記した第1実施形態に係る画像特徴点検出装置1と重複する構成については、同じ符号を付して説明を省略する。
【0078】
ヘシアン値算出手段22は、前記したヘシアン値算出手段20のように、先に垂直方向の畳み込みを行った後に水平方向の畳み込みを行うのではなく、先に斜め方向の畳み込みを行った後に垂直方向の畳み込みを行うことを特徴としている。そのため、ヘシアン値算出手段22は、前記したヘシアン値算出手段20の水平方向畳み込み判定部250の代わりに、斜め方向畳み込み判定部270を備えている。
【0079】
斜め方向畳み込み判定部(手段)270は、斜め方向畳み込み部230によって算出された値の閾値処理を行うものである。斜め方向畳み込み判定部270は、斜め方向畳み込み部230によって算出されたLxy(X,σ)の値が、予め定められた第1の閾値lmin未満であるか否かを判定することで、前記式(1)の右辺が小さい値であるか否かを判定する。
【0080】
斜め方向畳み込み判定部270は、Lxy(X,σ)の値が第1の閾値lmin未満である場合、垂直方向畳み込み部210に対して畳み込み指示を出力するとともに、ヘシアン値演算部260に対してLxy(X,σ)を出力する。一方、斜め方向畳み込み判定部270は、Lxy(X,σ)の値が第1の閾値lmin以上である場合、ヘシアン値演算部260に対して、当該Lxy(X,σ)を算出した画素Xのヘシアン値H(X,σ)を0に設定する旨の指示を出力する。
【0081】
以下、ヘシアン値算出手段22におけるヘシアン値H(X,σ)の算出手順について、簡単に説明する。
【0082】
まず、図5に示すように、スケール画像生成手段10によって生成されたスケール画像が、垂直方向畳み込み部210、水平方向畳み込み部220および斜め方向畳み込み部230にそれぞれ入力される。すると、斜め方向畳み込み部230が、スケール画像上の画素Xに対して、前記式(2)で示すLoGフィルタを画像の斜め方向に畳み込むことで、前記式(1)で示すLxy(X,σ)の値を算出し、これを斜め方向畳み込み判定部270に出力する。
【0083】
次に、斜め方向畳み込み判定部270が、Lxy(X,σ)の値が第1の閾値lmin未満であるか否かを判定する。そして、斜め方向畳み込み判定部270は、Lxy(X,σ)の値が第1の閾値lminを未満である場合、垂直方向畳み込み部210に対して畳み込み指示を出力するとともに、ヘシアン値演算部260に対してLxy(X,σ)を出力する。一方、斜め方向畳み込み判定部270は、Lxy(X,σ)の値が第1の閾値lmin以上である場合、ヘシアン値演算部260に対してヘシアン値H(X,σ)を0に設定する旨の指示を出力する。この場合、ヘシアン値演算部260は、前記式(1)の演算を行わない。そして、次の画素Xの処理に移り、斜め方向畳み込み部230が、画素Xの隣の画素XのLxy(X,σ)の値を算出する。
【0084】
次に、垂直方向畳み込み部210が、斜め方向畳み込み判定部270の畳み込み指示に基づいて、スケール画像上の画素Xに対して、前記式(2)で示すLoGフィルタを画像の垂直方向に畳み込むことで、前記式(1)で示すLxx(X,σ)の値を算出し、これを垂直方向畳み込み判定部240に出力する。
【0085】
次に、垂直方向畳み込み判定部240が、Lxx(X,σ)の値が第1の閾値lminを超えるか否かを判定する。そして、垂直方向畳み込み判定部240は、Lxx(X,σ)の値が第1の閾値lminを超える場合、水平方向畳み込み部220に対して畳み込み指示を出力するとともに、ヘシアン値演算部260に対してLxx(X,σ)を出力する。一方、垂直方向畳み込み判定部240は、Lxx(X,σ)の値が第1の閾値lmin以下である場合、ヘシアン値演算部260に対してヘシアン値H(X,σ)を0に設定する旨の指示を出力する。この場合、ヘシアン値演算部260は、前記式(1)の演算を行わず、前記した斜め方向畳み込み部230は、画素Xの隣の画素XのLxy(X,σ)の値を算出する。
【0086】
次に、水平方向畳み込み部220が、垂直方向畳み込み判定部240の畳み込み指示に基づいて、スケール画像上の画素Xに対して、前記式(2)で示すLoGフィルタを画像の水平方向に畳み込むことで、前記式(1)で示すLyy(X,σ)の値を算出し、これをヘシアン値演算部260に出力する。
【0087】
以降の処理手順は前記したヘシアン値算出手段20と同様であるため、省略する。このように、ヘシアン値算出手段22、従来のようにスケール画像上の全ての画素Xについて、前記式(1)を用いてヘシアン値H(X,σ)を算出するのではなく、閾値処理によってヘシアン値H(X,σ)を算出する画素Xと算出しない画素Xとを判定し、ヘシアン値H(X,σ)を算出する画素Xを絞り込むことで、前記式(1)における畳み込み処理の回数を減少させることができる。
【0088】
[第2実施形態に係る画像特徴点検出装置の処理手順]
以下、第2実施形態に係る画像特徴点検出装置の全体の処理手順について、図7を参照しながら説明する。第2実施形態に係る画像特徴点検出装置の処理手順は、第1実施形態の処理手順とは異なり、前記式(1)の右辺の値を小さくするために、Lxy(X,σ)が第1の閾値lmin未満であり、かつ、Lxx(X,σ)が第1の閾値lminを超える場合のみ、ヘシアン値H(X,σ)を算出する。
【0089】
処理が開始されると、まずスケール画像生成手段10が、解像度の異なる複数のスケール画像を生成する(ステップS11)。次に、斜め方向畳み込み部230が、Lxy(X,σ)の値を算出する(ステップS12)。次に、斜め方向畳み込み判定部270が、Lxy(X,σ)の値が第1の閾値lmin未満であるか否かを判定する(ステップS13)。そして、Lxy(X,σ)の値が第1の閾値lmin未満である場合(ステップS13でYes)、ステップS14に進む。一方、Lxy(X,σ)の値が第1の閾値lmin以上である場合(ステップS13でNo)、ステップS20に進み、ヘシアン値H(X,σ)を0として処理を終了する。
【0090】
次に、垂直方向畳み込み部210が、Lxx(X,σ)の値を算出する(ステップS14)。次に、垂直方向畳み込み判定部240が、Lxx(X,σ)の値が第1の閾値lminを超えるか否かを判定する(ステップS15)。そして、Lxx(X,σ)の値が第1の閾値lminを超える場合(ステップS15でYes)、ステップS16に進む。一方、Lxx(X,σ)の値が第1の閾値lmin以下である場合(ステップS15でNo)、ステップS20に進み、ヘシアン値H(X,σ)を0として処理を終了する。
【0091】
次に、水平方向畳み込み部220が、Lyy(X,σ)の値を算出する(ステップS16)。次に、ヘシアン値演算部260が、ヘシアン値H(X,σ)を算出する(ステップS17)。次に、ヘシアン値判定手段30が、ヘシアン値H(X,σ)が第2の閾値hthを超えるか否かを判定する(ステップS18)。そして、ヘシアン値H(X,σ)が第2の閾値hthを超える場合(ステップS18でYes)、ステップS19に進む。一方、ヘシアン値H(X,σ)が第2の閾値hth以下である場合(ステップS18でNo)、ステップS20に進み、ヘシアン値H(X,σ)を0として処理を終了する。
【0092】
そして、ヘシアン値解析手段40が、入力されたヘシアン値H(X,σ)について、ノンマキシマムサプレッション処理を行って(ステップS19)、処理を終了する。
【0093】
[第2実施形態の変形例]
以下、第2実施形態の変形例に係る画像特徴点検出装置について、図6を参照しながら詳細に説明する。第2実施形態の変形例に係る画像特徴点検出装置は、図5のヘシアン値算出手段22を、図6に示すヘシアン値算出手段23とした以外は、前記した第2実施形態に係る画像特徴点検出装置と同様の構成を備えている。従って、前記した第2実施形態に係る画像特徴点検出装置と重複する構成については、同じ符号を付して説明を省略する。また、画像特徴点検出装置の全体の処理手順についても、説明を省略する。
【0094】
ヘシアン値算出手段23は、前記したヘシアン値算出手段22のように、斜め方向の畳み込みを行なった後に垂直方向の畳み込みを行うのではなく、斜め方向の畳み込みを行った後に水平方向の畳み込みを行うことを特徴としている。そのため、ヘシアン値算出手段23は、前記したヘシアン値算出手段22の垂直方向畳み込み判定部240の代わりに、水平方向畳み込み判定部250を備えている。
【0095】
以下、ヘシアン値算出手段23におけるヘシアン値H(X,σ)の算出手順について、簡単に説明する。
【0096】
まず、図6に示すように、スケール画像生成手段10によって生成されたスケール画像が、垂直方向畳み込み部210、水平方向畳み込み部220および斜め方向畳み込み部230にそれぞれ入力される。すると、斜め方向畳み込み部230が、スケール画像上の画素Xに対して、前記式(2)で示すLoGフィルタを画像の斜め方向に畳み込むことで、前記式(1)で示すLxy(X,σ)の値を算出し、これを斜め方向畳み込み判定部270に出力する。
【0097】
次に、斜め方向畳み込み判定部270が、Lxy(X,σ)の値が第1の閾値lmin未満であるか否かを判定する。そして、斜め方向畳み込み判定部270は、Lxy(X,σ)の値が第1の閾値lmin未満である場合、水平方向畳み込み部220に対して畳み込み指示を出力するとともに、ヘシアン値演算部260に対してLxy(X,σ)を出力する。一方、斜め方向畳み込み判定部270は、Lxy(X,σ)の値が第1の閾値lmin以上である場合、ヘシアン値演算部260に対してヘシアン値H(X,σ)を0に設定する旨の指示を出力する。この場合、ヘシアン値演算部260は、前記式(1)の演算を行わない。そして、次の画素Xの処理に移り、斜め方向畳み込み部230が、画素Xの隣の画素XのLxy(X,σ)の値を算出する。
【0098】
次に、水平方向畳み込み部220が、斜め方向畳み込み判定部270の畳み込み指示に基づいて、スケール画像上の画素Xに対して、前記式(2)で示すLoGフィルタを画像の水平方向に畳み込むことで、前記式(1)で示すLyy(X,σ)の値を算出し、これを水平方向畳み込み判定部250に出力する。
【0099】
次に、水平方向畳み込み判定部250が、Lyy(X,σ)の値が第1の閾値lminを超えるか否かを判定する。そして、水平方向畳み込み判定部250は、Lyy(X,σ)の値が第1の閾値lminを超える場合、垂直方向畳み込み部210に対して畳み込み指示を出力するとともに、ヘシアン値演算部260に対してLyy(X,σ)を出力する。一方、水平方向畳み込み判定部250は、Lyy(X,σ)の値が第1の閾値lmin以下である場合、ヘシアン値演算部260に対してヘシアン値H(X,σ)を0に設定する旨の指示を出力する。この場合、ヘシアン値演算部260は、前記式(1)の演算を行わず、前記した斜め方向畳み込み部230は、画素Xの隣の画素XのLxy(X,σ)の値を算出する。
【0100】
次に、垂直方向畳み込み手段210が、水平方向畳み込み判定部250の畳み込み指示に基づいて、スケール画像上の画素Xに対して、前記式(2)で示すLoGフィルタを画像の垂直方向に畳み込むことで、前記式(1)で示すLxx(X,σ)の値を算出し、これをヘシアン値演算部260に出力する。
【0101】
以降の処理手順は前記したヘシアン値算出手段22と同様であるため、省略する。このように、ヘシアン値算出手段23は、従来のようにスケール画像上の全ての画素Xについて、前記式(1)を用いてヘシアン値H(X,σ)を算出するのではなく、閾値処理によってヘシアン値H(X,σ)を算出する画素Xと算出しない画素Xとを判定し、ヘシアン値H(X,σ)を算出する画素Xを絞り込むことで、前記式(1)における畳み込み処理の回数を減少させることができる。
【実施例】
【0102】
以下、本発明に係る画像特徴点検出装置の効果を確認する実験例について、図8〜13を参照しながら説明する。本実験例では、本発明に係る画像特徴点検出装置を用いて、実際の画像中における特徴点の検出を行った。本実験例では、Mikolajaczykが(http://www.robots.ox.ac.uk/~vgg/research/affine/)で提供している5種類の画像、すなわち、bikes(increasing blur)、boat(increasing scale(with rotation))、cars(decreasing light)、ubc(JPEG compression[%])、bricks (viewpoint angle)、を用いた。
【0103】
前記した5種類の画像のうち、bikes(increasing blur)は、バイクの画像に対して、ボケを段階的に増加させた複数の画像である。また、boat(increasing scale(with rotation))は、ボートの画像に対して、回転を加えながらスケールを段階に増加させた複数の画像である。また、cars(decreasing light)は、車の画像に対して、光量を段階的に減少させた複数の画像である。また、ubc(JPEG compression[%])は、建物の画像に対して、JPEG圧縮率を段階的に増加させた複数の画像である。そして、bricks (viewpoint angle)は、レンガの壁に対して、視点を段階的に変更した複数の画像である。
【0104】
なお、本実験例では、測定にラップトップコンピュータ(dual-core 2.8GHz CPU)を使用した。また、ヘシアン値算出手段で用いる第1の閾値(ラプラシアン閾値)lminは0〜0.04までの範囲とし、ヘシアン値判定手段で用いる第2の閾値(ヘシアン閾値)hthは、0.0004とした。また、畳み込みの順序は、前記した第1実施形態に係る特徴点検出装置と同様に、垂直方向、水平方向、斜め方向の順で行った。
【0105】
本実験例では、まず図8に示すように、第1の閾値lminを0〜0.04までの範囲で増加させた場合における特徴点検出の処理時間(processing time)を測定した。ここで、図8における縦軸は特徴点検出の処理時間であり、横軸は第1の閾値lminの値である。図8を参照すると、第1の閾値lminの増加に伴って処理時間が減少していることがわかる。従って、本発明に係る画像特徴点検出装置のように、第1の閾値lminを設定することで、処理速度を高速化することができることがわかる。
【0106】
なお、従来技術に係るヘシアンベース特徴点検出装置は、本発明のように第1の閾値lminを設定していない。従って、従来技術に係るヘシアンベース特徴点検出装置を用いた場合の処理速度は、図8における閾値lminを0とした場合の処理時間に相当する。そのため、本発明に係る画像特徴点検出装置は、従来技術に係るヘシアンベース特徴点検出装置と比較すると、処理時間を60%〜70%短縮できることがわかる。
【0107】
次に、本実験例では、図9に示すように、画像のボケを増加させた場合における特徴点検出の再現率(repeatability)を測定した。ここで、図9における横軸はボケの増加量であり、縦軸は特徴点検出の再現率である。図9を参照すると、第1の閾値lminを0.02とした場合が最も再現率の低下が緩やかであることがわかる。
【0108】
次に、本実験例では、図10に示すように、画像のスケールを増加させながら回転を加えた場合における特徴点検出の再現率を測定した。ここで、図10における横軸はスケールおよび回転の増加量であり、縦軸は特徴点検出の再現率である。図10を参照すると、第1の閾値lminを0とした場合が最も再現率の低下が緩やかであることがわかる。
【0109】
次に、本実験例では、図11に示すように、画像の光量を減少させた場合における特徴点検出の再現率を測定した。ここで、図11における横軸は光量の減少量であり、縦軸は特徴点検出の再現率である。図11を参照すると、第1の閾値lminを0.02とした場合が最も再現率の低下が緩やかであることがわかる。
【0110】
次に、本実験例では、図12に示すように、画像のJPEG圧縮率を増加させた場合における特徴点検出の再現率を測定した。ここで、図12における横軸はJPEG圧縮率スケールの増加量であり、縦軸は特徴点検出の再現率である。図12を参照すると、第1の閾値lminを0.04とした場合が最も再現率の低下が緩やかであることがわかる。
【0111】
次に、本実験例では、図13に示すように、画像の視点を変更した場合における特徴点検出の再現率を測定した。ここで、図13における横軸は視点の変更量であり、縦軸は特徴点検出の再現率である。図13を参照すると、第1の閾値lminを0.02とした場合が最も再現率の低下が緩やかであることがわかる。
【0112】
このように、図8〜図13を総合的に勘案すると、本発明に係る画像特徴点検出装置を用いて、第1の閾値lminを0.02とした場合が、最も再現率の低下が緩やかであることがわかる。従って、本発明に係る画像特徴点検出装置は、従来技術に係るヘシアンベース特徴点検出装置と比較して、特徴点検出の再現率、すなわち特徴点検出の精度も高いことがわかる。
【符号の説明】
【0113】
1 画像特徴点検出装置
10 スケール画像生成手段
20,21,22,23 ヘシアン値算出手段
30 ヘシアン値判定手段
40 ヘシアン値解析手段
50 閾値記憶手段
210 垂直方向畳み込み部
220 水平方向畳み込み部
230 斜め方向畳み込み部
240 垂直方向畳み込み判定部
250 水平方向畳み込み判定部
260 ヘシアン値演算部
270 斜め方向畳み込み判定部

【特許請求の範囲】
【請求項1】
入力された画像の特徴点を検出する画像特徴点検出装置であって、
前記画像から異なるスケールのスケール画像を生成するスケール画像生成手段と、
前記スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の垂直方向に畳み込む垂直方向畳み込み手段と、
前記スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の水平方向に畳み込む水平方向畳み込み手段と、
前記スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の斜め方向に畳み込む斜め方向畳み込み手段と、
前記垂直方向畳み込み手段によって算出された値が予め定められた第1の閾値を超えるか否かを判定し、当該値が前記第1の閾値を超える場合に、前記水平方向畳み込み手段または前記斜め方向畳み込み手段に対して、畳み込み指示を行う垂直方向畳み込み判定手段と、
前記水平方向畳み込み手段によって算出された値が前記第1の閾値を超えるか否かを判定し、当該値が前記第1の閾値を超える場合に、前記垂直方向畳み込み手段または前記斜め方向畳み込み手段に対して、畳み込み指示を行う水平方向畳み込み判定手段と、
前記垂直方向畳み込み手段および前記水平方向畳み込み手段によって算出された値を乗算し、当該乗算した値から、前記斜め方向畳み込み手段によって算出された値を2乗した値を減算することで、前記画素のヘシアン値を算出するとともに、前記垂直方向畳み込み手段または前記水平方向畳み込み手段によって算出された値が前記第1の閾値以下である場合に、前記画素のヘシアン値を0に設定するヘシアン値演算手段と、
前記ヘシアン値演算手段によって算出された前記ヘシアン値が、予め定められた第2の閾値を超えるか否かを判定するヘシアン値判定手段と、
前記ヘシアン値判定手段によって前記第2の閾値を超えると判定されたヘシアン値のうち、画素の位置またはスケールが隣接する画素のヘシアン値同士を比較し、勾配の大きさが極大となるヘシアン値が示す画素を特徴点とするヘシアン値解析手段と、
前記第1の閾値および前記第2の閾値を記憶する閾値記憶手段と、
を備えることを特徴とする画像特徴点検出装置。
【請求項2】
入力された画像の特徴点を検出する画像特徴点検出装置であって、
前記画像から異なるスケールのスケール画像を生成するスケール画像生成手段と、
前記スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の垂直方向に畳み込む垂直方向畳み込み手段と、
前記スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の水平方向に畳み込む水平方向畳み込み手段と、
前記スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の斜め方向に畳み込む斜め方向畳み込み手段と、
前記斜め方向畳み込み手段によって算出された値が前記第1の閾値未満であるか否かを判定し、当該値が前記第1の閾値未満である場合に、前記垂直方向畳み込み手段または前記水平方向畳み込み手段に対して、畳み込み指示を行う斜め方向畳み込み判定部と、
前記垂直方向畳み込み手段によって算出された値が予め定められた第1の閾値を超えるか否かを判定し、当該値が前記第1の閾値を超える場合に、前記水平方向畳み込み手段に対して、畳み込み指示を行う垂直方向畳み込み判定手段と、
前記水平方向畳み込み手段によって算出された値が予め定められた第1の閾値を超えるか否かを判定し、当該値が前記第1の閾値を超える場合に、前記垂直方向畳み込み手段に対して、畳み込み指示を行う水平方向畳み込み判定手段と、
前記垂直方向畳み込み手段および前記水平方向畳み込み手段によって算出された値を乗算し、当該乗算した値から、前記斜め方向畳み込み手段によって算出された値を2乗した値を減算することで、前記画素のヘシアン値を算出するとともに、前記斜め方向畳み込み手段によって算出された値が前記第1の閾値以上であるか、前記垂直方向畳み込み手段または前記水平方向畳み込み手段によって算出された値が前記第1の閾値以下である場合に、前記画素のヘシアン値を0に設定するヘシアン値演算手段と、
前記ヘシアン値演算手段によって算出された前記ヘシアン値が、予め定められた第2の閾値を超えるか否かを判定するヘシアン値判定手段と、
前記ヘシアン値判定手段によって前記第2の閾値を超えると判定されたヘシアン値のうち、画素の位置またはスケールが隣接する画素のヘシアン値同士を比較し、勾配の大きさが極大となるヘシアン値が示す画素を特徴点とするヘシアン値解析手段と、
前記第1の閾値および前記第2の閾値を記憶する閾値記憶手段と、
を備えることを特徴とする画像特徴点検出装置。
【請求項3】
前記垂直方向畳み込み手段は、前記スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の垂直方向に畳み込むことで、下記式(1)におけるLxx(X,σ)を算出し、
前記水平方向畳み込み手段は、前記スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の水平方向に畳み込むことで、下記式(1)におけるLyy(X,σ)を算出し、
前記斜め方向畳み込み手段は、前記スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の斜め方向に畳み込むことで、下記式(1)におけるLxy(X,σ)を算出し、
前記ヘシアン値演算手段は、下記式(1)におけるH(X,σ)を算出することを特徴とする請求項1または請求項2に記載の画像特徴点検出装置。
【数4】

【請求項4】
入力された画像の特徴点を検出するために、コンピュータを、
前記画像から異なるスケールのスケール画像を生成するスケール画像生成手段、
前記スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の垂直方向に畳み込む垂直方向畳み込み手段、
前記スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の水平方向に畳み込む水平方向畳み込み手段、
前記スケール画像生成手段によって生成されたそれぞれのスケール画像上の画素に対して、LoGフィルタを画像の斜め方向に畳み込む斜め方向畳み込み手段、
前記垂直方向畳み込み手段によって算出された値が予め定められた第1の閾値を超えるか否かを判定し、当該値が前記第1の閾値を超える場合に、前記水平方向畳み込み手段または前記斜め方向畳み込み手段に対して、畳み込み指示を行う垂直方向畳み込み判定手段、
前記水平方向畳み込み手段によって算出された値が前記第1の閾値を超えるか否かを判定し、当該値が前記第1の閾値を超える場合に、前記垂直方向畳み込み手段または前記斜め方向畳み込み手段に対して、畳み込み指示を行う水平方向畳み込み判定手段、
前記垂直方向畳み込み手段および前記水平方向畳み込み手段によって算出された値を乗算し、当該乗算した値から、前記斜め方向畳み込み手段によって算出された値を2乗した値を減算することで、前記画素のヘシアン値を算出するとともに、前記垂直方向畳み込み手段または前記水平方向畳み込み手段によって算出された値が前記第1の閾値以下である場合に、前記画素のヘシアン値を0に設定するヘシアン値演算手段、
前記ヘシアン値演算手段によって算出された前記ヘシアン値が、予め定められた第2の閾値を超えるか否かを判定するヘシアン値判定手段、
前記ヘシアン値判定手段によって前記第2の閾値を超えると判定されたヘシアン値のうち、画素の位置またはスケールが隣接する画素のヘシアン値同士を比較し、勾配の大きさが極大となるヘシアン値が示す画素を特徴点とするヘシアン値解析手段、
として機能させることを特徴とする画像特徴点検出プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−53653(P2012−53653A)
【公開日】平成24年3月15日(2012.3.15)
【国際特許分類】
【出願番号】特願2010−195454(P2010−195454)
【出願日】平成22年9月1日(2010.9.1)
【出願人】(000004352)日本放送協会 (2,206)
【Fターム(参考)】