特徴量算出装置、画像接続装置、画像検索装置、特徴量算出方法、および特徴量算出プログラム
【課題】画像の回転に強い特徴量を、コントラストによらずに算出することができる特徴量算出装置、画像接続装置、画像検索装置、特徴量算出方法、および特徴量算出プログラムを提供する。
【解決手段】特徴量算出装置として、コーナー量を算出するコーナー量算出部と、特徴点を検出する特徴点検出部と、支配的配向を算出する支配的配向算出部と、特徴点を中心とするp個の円の円周上の画素データを検出する同心円検出部と、各画素データにおける画素値の勾配の角度と支配的勾配との差分値に円の半径の平方根を乗じた重み付き差分値をそれぞれ算出する重み付き差分値算出部と、重み付き差分値についてのq個の階級を有する度数分布を作成する度数分布作成部と、各円についての各度数を成分とするq次元のベクトルから、p×q次元の記述子ベクトルを算出する記述子ベクトル算出部とを設ける。
【解決手段】特徴量算出装置として、コーナー量を算出するコーナー量算出部と、特徴点を検出する特徴点検出部と、支配的配向を算出する支配的配向算出部と、特徴点を中心とするp個の円の円周上の画素データを検出する同心円検出部と、各画素データにおける画素値の勾配の角度と支配的勾配との差分値に円の半径の平方根を乗じた重み付き差分値をそれぞれ算出する重み付き差分値算出部と、重み付き差分値についてのq個の階級を有する度数分布を作成する度数分布作成部と、各円についての各度数を成分とするq次元のベクトルから、p×q次元の記述子ベクトルを算出する記述子ベクトル算出部とを設ける。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特徴量算出装置、画像接続装置、画像検索装置、特徴量算出方法、および特徴量算出プログラムに関する。
【背景技術】
【0002】
複数の画像を接続してパノラマ画像を合成したり、一の画像の中から他の画像を検索したりするために、各画像における特徴的な点(特徴点)を利用することが一般的に行われている。たとえば、各画像において対応する特徴点を検出し、お互いに重ね合わせる特徴点で、パノラマ画像を合成できる。
【0003】
各特徴点は、各特徴点について固有の量である特徴量によって規定される。特徴量は、特徴量の算出方法によって異なる。特許文献1には、SIFT(Scale Invariant Feature Transformation)と称される特徴量の算出方法が記載されている。SIFTによれば、画像のスケール変換に強い特徴量を算出できるとされている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第6711293号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、SIFTによって算出される特徴量は画像の回転に弱いという課題がある。また、SIFTは、コントラストの弱い画像の特徴量の算出には適していないという課題がある。
【0006】
本発明は、上述した課題を解決するためのものであり、画像の回転に強い特徴量を、コントラストによらずに算出することができる特徴量算出装置、画像接続装置、画像検索装置、特徴量算出方法、および特徴量算出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、入力された画像データを構成する複数の画素データについて、ハリス行列をそれぞれ算出し、算出したハリス行列を用いてコーナー量をそれぞれ算出するコーナー量算出部と、
前記画像データを構成する画素データのうち、周囲の画素データについてのコーナー量よりも大きなコーナー量を有する画素データを、特徴点として検出する特徴点検出部と、
前記特徴点の画素値および該特徴点の隣域の画素データの画素値から、該特徴点付近における画素値の勾配の角度を示す支配的配向を算出する支配的配向算出部と、
前記画像データにおいて、前記特徴点を中心とする半径の異なるp(p≧2)個の円の円周上の画素データを検出する同心円検出部と、
p個の各円について、円周上の各画素データにおける画素値の勾配の角度と前記支配的勾配との差分値に円の半径の平方根を乗じた重み付き差分値を、それぞれ算出する重み付き差分値算出部と、
前記重み付き差分値についてのq(q≧2)個の階級を有する度数分布を、p個の各円についてそれぞれ作成する度数分布作成部と、
p個の各円について、各度数を成分とするq次元のベクトルをそれぞれ算出し、算出された各q次元ベクトルから、p×q次元の記述子ベクトルを算出する記述子ベクトル算出部とを備えることを特徴とする特徴量算出装置である。
【0008】
また本発明は、一の画像データと該一の画像データを平滑化した後に縮小化して得られる他の画像データとを含む画像データ群を作成し、作成した画像データ群を、前記画像データの代わりに、前記コーナー量算出部に入力する画像データ群作成部を備えることを特徴とする。
【0009】
また本発明は、前記支配的配向算出部は、前記特徴点および該特徴点の周囲の8個の画素データにおける画素値の勾配の角度の平均値、該特徴点を中心とする半径が3画素の円上の画素データのうち該円上の画素データ全体における画素値の勾配の角度の平均値よりも大きな勾配の角度を有する画素データにおける勾配の角度の平均値、または、該特徴点を中心とする半径が3画素の円上の画素データのうち該円上の画素データ全体における画素値の勾配の角度の平均値よりも小さな勾配の角度を有する画素データにおける勾配の角度の平均値を、前記支配的配向として算出するように構成されることを特徴とする。
【0010】
また本発明は、前記同心円検出部は、pの値を8に設定するように構成され、
前記度数分布作成部は、qの値を8に設定するように構成されることを特徴とする。
【0011】
また本発明は、前記特徴量算出装置と、
前記記述子ベクトルを用いて2以上の画像データを接続して1つの画像データに合成する画像接続部とを備えることを特徴とする画像接続装置である。
【0012】
また本発明は、前記特徴量算出装置と、
前記記述子ベクトルを用いて一の画像データの中から他の画像データを検索する画像検索部とを備えることを特徴とする画像検索装置である。
【0013】
また本発明は、入力された画像データを構成する複数の画素データについて、ハリス行列をそれぞれ算出し、算出したハリス行列を用いてコーナー量をそれぞれ算出するステップと、
前記画像データを構成する画素データのうち、周囲の画素データについてのコーナー量よりも大きなコーナー量を有する画素データを、特徴点として検出するステップと、
前記特徴点の画素値および該特徴点の隣域の画素データの画素値から、該特徴点付近における画素値の勾配の角度を示す支配的配向を算出するステップと、
前記画像データにおいて、前記特徴点を中心とする半径の異なるp(p≧2)個の円の円周上の画素データを検出するステップと、
p個の各円について、円周上の各画素データにおける画素値の勾配の角度と前記支配的勾配との差分値に円の半径の平方根を乗じた重み付き差分値を、それぞれ算出するステップと、
前記重み付き差分値についてのq(q≧2)個の階級を有する度数分布を、p個の各円についてそれぞれ作成するステップと、
p個の各円について、度数を要素とするq次元のベクトルをそれぞれ算出し、算出された各q次元ベクトルから、p×q次元の記述子ベクトルを算出するステップとを含むことを特徴とする特徴量算出方法である。
【0014】
また本発明は、コンピュータを、前記特徴量算出装置として機能させることを特徴とする特徴量算出プログラムである。
【発明の効果】
【0015】
本発明によれば、記述子ベクトル算出部によって、特徴量として、p×q次元の記述子ベクトルが算出される。この記述子ベクトルは、スケール変換および回転の影響を受け難い。また、コントラストの弱い画像データであっても、各特徴点の各記述子ベクトルは、それぞれ独立性が高い。したがって、画像の回転に強い特徴量を、画像のコントラストによらずに算出する特徴量算出装置を提供することができる。
【0016】
また本発明によれば、画像データ群作成部によって作成された画像データ群を用いて特徴点の検出が行われるので、より独立性の高い記述子ベクトルを算出することができる。
【0017】
また本発明によれば、支配的配向算出部によって、特徴点付近における画素値の勾配の角度がより反映された支配的配向が得られるので、より独立性の高い記述子ベクトルを算出することができる。
【0018】
また本発明によれば、pおよびqの値が8に設定することで、より独立性の高い記述子ベクトルを算出することができる。
【0019】
また本発明によれば、上記特徴量算出装置を備えることで精度良く画像データを接続する画像接続装置を提供することができる。
【0020】
また本発明によれば、上記特徴量算出装置を備えることで精度良く画像データを検索する画像接続装置を提供することができる。
【0021】
また本発明によれば、特徴量として、p×q次元の記述子ベクトルが算出される。この記述子ベクトルは、スケール変換および回転の影響を受け難い。また、コントラストの弱い画像データであっても、各特徴点の各記述子ベクトルは、それぞれ独立性が高い。したがって、画像の回転に強い特徴量を、画像のコントラストによらずに算出する特徴量算出方法を提供することができる。
【0022】
また本発明によれば、コンピュータを上記特徴量算出装置として機能させる特徴量算出プログラムを提供することができる。
【図面の簡単な説明】
【0023】
【図1】特徴量算出装置1の構成を示す模式図である。
【図2】記述子ベクトル算出処理を示すフローチャートである。
【図3】画像ピラミッドGの概念図である。
【図4】ステップA21の処理の詳細を示すフローチャートである。
【図5】ステップA23の処理の詳細を示すフローチャートである。
【図6】ステップA24の処理の詳細を示すフローチャートである。
【図7】ステップA25の処理の詳細を示すフローチャートである。
【図8】ステップA251の処理の詳細を示すフローチャートである。
【図9】画像接続処理を示すフローチャートである。
【図10】被写体100を示す図である。
【図11】4つの画像データ200A,200B,200C,200Dを示す図である。
【図12】接続後の画像データ300Aを示す図である。
【図13】トリミング処理後の画像データ300Bを示す図である。
【図14】画像検索処理を示すフローチャートである。
【発明を実施するための形態】
【0024】
以下に、本発明の実施形態である特徴量算出装置1について説明する。特徴量算出装置1は、デジタルカメラ、スキャナなどから入力された画像データを構成する複数の画素データから、該画像データの特徴を表す量(特徴量)を算出する装置である。
【0025】
図1は、特徴量算出装置1の構成を示す模式図である。特徴量算出装置1は、制御演算部11と、記憶部12と、操作部13と、表示部14と、通信部15と、インターフェイス部16とを備える。
【0026】
制御演算部11は、プログラムに基づく演算処理、および異なる電子デバイス間でのデータの転送制御処理などを行う装置である。制御演算部11としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)などが用いられる。
【0027】
記憶部12は、DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)などの揮発性メモリと、HDD(Hard Disk Drive)などの不揮発性メモリとを含む。不揮発性メモリには、後述する特徴量算出プログラムが記憶されている。
【0028】
操作部13は、たとえば、マウス、キーボード、タッチパネルなどである。ユーザは、操作部13を介して、特徴量算出装置1を操作することができる。表示部14は、たとえば、液晶表示装置などである。表示部14には、制御演算部11による演算処理の結果などが画像として表示される。通信部15は、電話回線、インターネットなどによって、特徴量算出装置1以外の装置と通信する装置である。
【0029】
インターフェイス部16は、USB(Universal Serial Bus)接続、ETHERネット接続などのための接続部である。たとえば、特徴量算出装置1は、インターフェイス部16を介してデジタルカメラなどと接続でき、当該デジタルカメラに記憶されている画像データを記憶部12に記憶することができる。
【0030】
また、特徴量算出装置1は、通信部15によって受信した画像データを記憶部12に記憶するように構成される。また、特徴量算出装置1は、図示しないスキャナを備え、該スキャナによって取得した画像データを記憶部12に記憶するように構成される。
【0031】
記憶部12に記憶されている特徴量算出プログラムは、上記のようにして記憶部12に記憶された画像データについて、特徴量として記述子ベクトルを算出するためのプログラムである。特徴量算出プログラムに従うことで、制御演算部11および記憶部12は、本発明に係るコーナー量算出部、特徴点検出部、支配的配向算出部、同心円検出部、重み付き差分値算出部、度数分布作成部、記述子ベクトル算出部、および画像データ群作成部として機能する。
【0032】
本発明において、コーナー量算出部は、入力された画像データを構成する複数の画素データについて、ハリス行列をそれぞれ算出し、算出したハリス行列を用いてコーナー量をそれぞれ算出する機能を有している。特徴点検出部は、画像データを構成する画素データのうち、周囲の画素データについてのコーナー量よりも大きなコーナー量を有する画素データを、特徴点として検出する機能を有している。支配的配向算出部は、特徴点の画素値および該特徴点の近傍の画素データの画素値から、該特徴点付近における画素値の勾配の角度を示す支配的配向を算出する機能を有している。
【0033】
同心円検出部は、画像データにおいて、特徴点を中心とする半径の異なるp(p≧2)個の円の円周上の画素データを検出する機能を有している。重み付き差分値算出部は、p個の各円について、円周上の各画素データにおける画素値の勾配の角度と支配的配向との差分値に円の半径の平方根を乗じた重み付き差分値を、それぞれ算出する機能を有している。度数分布作成部は、重み付き差分値についてのq(q≧2)個の階級を有する度数分布を、p個の各円についてそれぞれ作成する機能を有している。記述子ベクトル算出部は、p個の各円について、各度数を成分とするq次元のベクトルをそれぞれ算出し、算出された各q次元ベクトルから、p×q次元の記述子ベクトルを算出する機能を有している。
【0034】
また本実施形態において、画像データ群作成部は、一の画像データと該一の画像データを平滑化した後に縮小化して得られる他の画像データとを含む画像データ群を作成して、コーナー量算出部に入力する機能を有している。また、支配的配向算出部は、特徴点および該特徴点の周囲の8個の画素データにおける画素値の勾配の角度の平均値OLE_LINK1Aoと、該特徴点を中心とする半径が3画素の円内の画素データの画素値の勾配の角度の平均値Acとを算出する。そして、支配的配向算出部は、AcがAoより大きければ、該特徴点を中心とする半径が3画素の円内の画素データのうち、勾配の角度がAcより小さい画素データの勾配の角度の平均値を、支配的配向として算出し、AcがAoより小さければ、該特徴点を中心とする半径が3画素の円内の画素データのうち、勾配の角度がAcより大きい画素データの勾配の角度の平均値を、支配的配向として算出し、AcがAoと等しければ、平均値Aoを支配的配向として算出する。
【0035】
これらの各部の機能によって、特徴量として記述子ベクトルが算出される。算出された記述子ベクトルは、後述する画像の接続、および画像の検索などに利用される。なお、本発明の他の実施形態としては、記憶部12に特徴量算出プログラムが記憶される代わりに、上記機能を有する上記各部がそれぞれ独立した電子回路で構成されてもよい。
【0036】
以下では、特徴量算出装置1が上記各部の機能によって記述子ベクトルを算出する処理(記述子ベクトル算出処理)について、詳細に説明する。図2は、記述子ベクトル算出処理を示すフローチャートである。記述子ベクトル算出処理は、画像ピラミッドを作成する処理(ステップA21)と、画像ピラミッドにおける各画素データのコーナー量を算出する処理(ステップA22)と、各コーナー量に基づいて局所的な特徴点を検出する処理(ステップA23)と、局所的な特徴点の中から顕著な特徴点を検出する処理(ステップA24)と、顕著な特徴点に対する記述子ベクトルを算出する処理(ステップA25)とを含む。
【0037】
まず、ステップA21の処理について説明する。ステップA21の処理は、デジタルカメラなどから入力された画像に基づく、画素値として輝度値を有する画像データ(以下、「第0水準の画像データ」と称する)から、画像ピラミッドを作成する処理である。
【0038】
本発明において、画像ピラミッドとは、第0水準の画像データと、該画像データに所定の処理を行って得られる第n(以下では、nは自然数を表すとする)水準の画像データとを要素とする画像データ群である。ここで、第0水準の画像データを構成する各画素データは、直交座標であるX0Y0座標における各座標値(uX0,vY0)の関数である輝度値I0(uX0,vY0)で表され、該X0Y0座標における各座標値(uX0,vY0)は、X0座標およびY0座標のいずれについても連続した整数値であるとする。また、第n水準の画像データを構成する各画素データは、直交座標であるXnYn座標における各座標値(uXn,vYn)の関数である輝度値In(uXn,vYn)で表され、該XnYn座標における各座標値(uXn,vYn)は、Xn座標およびYn座標のいずれについても連続した整数値であるとする。
【0039】
画像ピラミッドの一例として、図3に、画像ピラミッドGの概念図を示す。図3に示す画像ピラミッドGは、第0水準の画像ピラミッドのG0と、第1水準の画像データG1と、第2水準の画像データG2とからなっている。
【0040】
図4は、ステップA21の処理の詳細を示すフローチャートである。まず、変数mの値に、0が設定される(ステップA211)。次に、第m水準の画像データについて、ガウシアンフィルタとの畳み込みによる平滑化が行われる(ステップA212)。
【0041】
詳細には、ステップA212の処理では、第m水準の画像データを構成する各画素データIm(uXm,vYm)から、下記式(1)によって、XmYm座標における各座標値(sXm,tYm)の関数であるJm(sXm,tYm)が得られる。
【数1】
【0042】
上記式(1)において、定数σの値は、たとえば、√2に設定される。ステップA212の処理によって平滑化された画像データを構成する各画素データは、Jm(sXm,tYm)で表される。
【0043】
ステップA212の処理の後、平滑化された画像データについて、該画像データを構成する画素データの間引き処理により縮小化が行われる(ステップA213)。より詳細には、Xm座標における画素データの総数が1/2となり、かつ、Ym座標における画素データの総数が1/2となるように、均等に間引き処理が行われる。この間引き処理によって、縮小化された画像データである第m+1水準の画像データが得られる。したがって、間引き処理前の座標である第m水準の座標(XmYm座標)で、第m+1水準の画像データの各画素データの座標値を表すことができ、第0水準の座標(X0Y0座標)で第m+1水準の画像データの各画素データの座標値を表すこともできる。
【0044】
ステップA213の処理の後、第m+1水準の画像データについて、画像サイズが32×32未満であるか否かが判定される(ステップA214)。すなわち、第m+1水準の画像データについて、Xm+1座標における画素データの数が32未満であり、かつ、Ym+1座標における画素データの数が32未満であるか否かが判定される。ステップA214の判定の結果、画像サイズが32×32未満でない場合は、変数mの値が1だけ増加し(ステップA215)、ステップA212の処理に戻る。
【0045】
ステップA214の判定の結果、画像サイズが32×32未満である場合は、ステップA21の処理が終了する。ステップA21の処理の開始から終了までの間に作成された第1〜第n水準の画像データ、および第0水準の画像データは、画像ピラミッドとして、記憶部12に記憶される。
【0046】
図2に示すように、ステップA21の処理の後は、画像ピラミッドにおける各画素データのコーナー量を算出するステップA22の処理が行われる。コーナー量の算出は、以下に説明するハリス行列を用いて行われる。
【0047】
画像ピラミッドにおける第z(以下では、zは0以上の整数を表すとする)水準の画像データを構成する各画素データは、Iz(uXz,vYz)で表される。Iz(uXz,vYz)の、Xz座標における偏微分係数を、
【数2】
と表し、Yz座標における偏微分係数を、
【数3】
と表すとき、ハリス行列M(uXz,vYz)は下記式(2)で表される。
【0048】
【数4】
【0049】
各画素データについてのコーナー量R(uXz,vYz)は、その画素データにおけるハリス行列M(uXz,vYz)から、下記式(3)によって算出される。
R(uXz,vYz)=det(M(uXz,vYz))
−k×(trace(M(uXz,vYz)))2
…(3)
【0050】
上記式(3)において、定数kの値は、0.04〜0.15の範囲内で設定される。本実施形態では、k=0.04である。
【0051】
このように、ステップA22の処理では、画像ピラミッドの要素である各水準の画像データを構成する画素データについて、上記式(2),(3)により、コーナー量R(uXz,vYz)が算出される。算出されたコーナー量R(uXz,vYz)は、記憶部12に記憶される。
【0052】
図2に示すように、ステップA22の処理の後は、画像ピラミッドを構成する画像データの中から、各コーナー量に基づいて局所的な特徴点を検出するステップA23の処理が行われる。
【0053】
図5は、ステップA23の処理の詳細を示すフローチャートである。まず、変数jの値に、0が設定される(ステップA231)。次に、変数iの値に、1が設定される(ステップA232)。変数iは、第j水準の画像データを構成する画素データを示す自然数である。
【0054】
次に、第j水準の画像データを構成するi番目の画素データについて、コーナー量が周囲の画素データのコーナー量よりも大きいか否かが判定される(ステップA233)。より詳細には、第j水準の画像データを構成するi番目の画素データのXjYj座標における座標値を(uXj,vYj)とするときに、その画素データのコーナー量R(uXj,vYj)が、R(uXj,vYj+1)、R(uXj+1,vYj+1)、R(uXj+1,vYj)、R(uXj+1,vYj−1)、R(uXj,vYj−1)、R(uXj−1,vYj−1)、R(uXj−1,vYj)、およびR(uXj−1,vYj+1)の8つのコーナー量のいずれよりも大きいか否かが判定される。なお、本実施形態では、i番目の画素データの比較対象とする周囲の画素データの数を8としているけれども、たとえば、15としてもよい。
【0055】
ステップA233の判定の結果、コーナー量が周囲の画素よりも大きくなければ、ステップA235の処理に進む。ステップA233の判定の結果、コーナー量が周囲の画素よりも大きければ、第j水準の画像データを構成するi番目の画素データのXjYj座標における座標値(uXj,vYj)が、記憶部12に記憶され(ステップA234)、その後、ステップA235の処理に進む。
【0056】
ステップA235では、i番目の画素データが、第j水準の画像データにおいて、ステップA233の判定の対象とする最後の画素データであるか否かが判定される。ステップA235の判定の結果、最後の画素データであれば、ステップA236の処理に進み、最後の画素データでなければ、ステップA237の処理に進む。
【0057】
ステップA237の処理では、変数iの値が1だけ増加され、その後、ステップA233の処理に戻る。ステップA236の処理では、第j水準の画像データが、画像ピラミッドにおいて、ステップA233の判定の対象とする最後の画像データであるか否かが判定される。ステップA236の判定の結果、最後の画像データであれば、ステップA23の処理を終了する。ステップA236の判定の結果、最後の画像データでなければ、ステップA238の処理に進む。ステップA238の処理では、変数jの値が1だけ増加され、ステップA232の処理に戻る。
【0058】
このようにして、ステップA23の処理では、画素データの座標値が記憶される。座標値が記憶された画素データが局所的な特徴点である。
【0059】
図2に示すように、ステップA23の処理の後は、局所的な特徴点の中から顕著な特徴点を検出するステップA24の処理が行われる。本実施形態では、ステップA24の処理によって、画像ピラミッドを構成するすべての水準の画像データの中から、F個以下の顕著な特徴点が検出される。
【0060】
図6は、ステップA24の処理の詳細を示すフローチャートである。まず、局所的な特徴点の数が予め定める定数Fの値以上であるか否かが判定される(ステップA241)。すなわち、上述したステップA234の処理において座標値が記憶された画素データの数が、定数Fの値以上であるか否かが判定される。定数Fの値は、たとえば、1000〜10000である。
【0061】
ステップA241の判定の結果、定数Fの値以上であれば、F個以上の局所的な特徴点の中から、コーナー量の大きい順に、コーナー量の大きいF個の局所的な特徴点が抽出され、抽出された局所的な特徴点が顕著な特徴点であるとして、それらの座標値が記憶部12に記憶される(ステップA242)。このとき記憶される座標値は、各局所的な特徴点が属する水準の座標における座標値、および第0水準の座標(X0Y0座標)における座標値である。なお、コーナー量が等しい2以上の局所的な特徴点については、たとえば、ステップA23の処理におけるjの値がより小さいもの、その中でもiの値がより小さいものが、優先的に抽出される。また、異なる水準の画像データをそれぞれ構成する、X0Y0座標における座標値が互いに等しい局所的な特徴点については、それらのうちの1つの局所的な特徴点、たとえば、ステップA23の処理におけるjの値が最も小さな局所的な特徴点が抽出される。
【0062】
ステップA241の判定の結果、定数Fの値以上でなければ、ステップA23で検出された局所的な特徴点のすべてが顕著な特徴点であるとして、それらの局所的な特徴点が属する水準の座標における座標値、および第0水準の座標(X0Y0座標)における座標値が、記憶部12に記憶される(ステップA243)。ただし、異なる水準の画像データをそれぞれ構成する、X0Y0座標における座標値が互いに等しい局所的な特徴点については、それらのうちの1つの局所的な特徴点、たとえば、ステップA23におけるjの値が最も小さな局所的な特徴点の座標値のみが記憶される。
【0063】
ステップA242またはステップA243の処理の終了により、ステップA24の処理が終了する。このようにして、ステップA24の処理では、顕著な特徴点が検出される。
【0064】
図2に示すように、ステップA24の処理の後は、顕著な特徴点に対する記述子ベクトルを算出するステップA25の処理が行われる。ステップA25の処理は、各顕著な特徴点についてそれぞれ行われる。
【0065】
図7は、ステップA25の処理の詳細を示すフローチャートである。ステップA25の処理は、支配的配向を算出する処理(ステップA251)と、顕著な特徴点を中心とする同心円の円周上の画素データを検出する処理(ステップA252)と、重み付き差分値を算出する処理(ステップA253)と、度数分布を作成する処理(ステップA254)と、記述子ベクトルを算出する処理(ステップA255)とを含む。
【0066】
まず、ステップA251の処理について説明する。ステップA251の処理は、顕著な特徴点の輝度値および該顕著な特徴点の近傍の画素データの輝度値から、該顕著な特徴点付近における輝度値の勾配の角度を示す支配的配向を算出する処理である。
【0067】
図8は、ステップA251の処理の詳細を示すフローチャートである。まず、顕著な特徴点が属する第z水準の画像データにおける、該顕著な特徴点を中心とする円上の各画素データについて、輝度値の勾配の角度(配向)がそれぞれ算出される(ステップA2511)。この円の半径は、たとえば3画素である。
【0068】
このとき、顕著な特徴点のXzYz座標における座標値を(uz,vz)とすれば、第z水準の画像データにおいて、下記式(4)を満たすXzYz座標における座標値(αz、βz)を有する画素データが、この円上の画素データであり、下記式(5)を満たすXzYz座標における座標値(αz、βz)を有する画素データが、この円の円周上の画素データである。
【0069】
【数5】
【数6】
【0070】
このような円上の画素データについて、勾配を表す次式、
【数7】
は、Sobel演算子により、下記式(6)に従って算出され、勾配の角度である配向は、下記式(7)に従って算出される。なお、本発明において、下記式(7)に基づいて算出されるすべての配向は、0°以上360°未満であるとする。
【0071】
【数8】
【数9】
【0072】
次に、顕著な特徴点およびその顕著な特徴点の周囲の8個の画素データの配向についての平均値である第1平均配向Aoが算出される(ステップA2512)。第1平均配向Aoは、下記式(8)に従って算出される。
【0073】
【数10】
【0074】
次に、ステップA2511で勾配が算出された円領域内のすべての画素データの配向を表す次式、
【数11】
の平均値である第2平均配向Acが算出される(ステップA2513)。次に、第1平均配向Aoと第2平均配向Acとが等しいか否かが判定される(ステップA2514)。ステップA2514の判定の結果、2つの値が等しければ、第1平均配向Aoが、支配的配向Adとして記憶部12に記憶される(ステップA2515)。
【0075】
ステップA2514の判定の結果、2つの値が等しくなければ、第1平均配向Aoが第2平均配向Acよりも大きいか否かが判定される(ステップA2516)。ステップA2516の判定の結果、第1平均配向Aoが大きければ、第2平均配向Acよりも大きな値が、支配的配向Adとして記憶部12に記憶される(ステップA2517)。より詳細には、ステップA2511で勾配が算出された円領域内の画素データのうち、第2平均配向Acよりも大きな配向を有する画素データにおける配向の平均値が、支配的配向Adとして記憶部12に記憶される。
【0076】
ステップA2516の判定の結果、第1平均配向Aoが大きくなければ、第2平均配向Acよりも小さな値が、支配的配向Adとして記憶部12に記憶される(ステップA2518)。より詳細には、ステップA2511で勾配が算出された円領域内の画素データのうち、第2平均配向Acよりも小さな配向を有する画素データにおける配向の平均値が、支配的配向Adとして記憶部12に記憶される。
【0077】
ステップA2515、ステップA2517、またはステップA2518の処理の終了により、ステップA251の処理が終了する。このようにして、ステップA251の処理では、各顕著な特徴点について、支配的配向Adが算出される。
【0078】
図7に示すように、ステップA251の処理の後は、顕著な特徴点が属する第z水準の画像データにおける、該顕著な特徴点を中心とする同心円の円周上の画素データを検出するステップA252の処理が行われる。本実施形態では、半径が3画素〜10画素の、8個の各円について、それぞれの円周上の各画素データの座標値が、記憶部12に記憶される。なお、円の半径および個数は、これに限られない。
【0079】
次に、上記の8個の各円における、円周上の各画素データの配向と、ステップA251で算出された支配的勾配との差分値θが算出され、該差分値と各画素データが属する円の半径の平方根との乗算によって、重み付き差分値Dが、各画素データについてそれぞれ算出される(ステップA253)。円周上の各画素データの配向は、上記式(6),(7)に従って算出される。
【0080】
たとえば、半径が3画素の円の円周上の画素データの数が10個であるとき、10個の重み付き差分値を表す次式、
【数12】
が、それぞれ算出される。そして、半径4画素〜10画素の他の円についても、同様に、重み付き差分値Dが算出される。なお、重み付き差分値Dの数値範囲は、0以上360未満であるとし、この範囲外となる場合には、360が加算または減算される。算出された重み付き差分値Dは、記憶部12に記憶される。
【0081】
次に、算出された重み付き差分値について、0以上45未満、45以上90未満、90以上135未満、135以上180未満、180以上225未満、225以上270未満、270以上315未満、および315以上360未満の、8個の階級を有する度数分布が、8個の各円についてそれぞれ作成される(ステップA254)。したがって、8個の階級を有する度数分布が、8個作成される。ここで、円の半径の平方根は重み付きとして、異なる差分値間の距離を増大することができる。これにより、得られた度数の分布が分散となり、度数の分布が1つの区間に集中することが低減され、記述子ベクトルの唯一性が向上される。
【0082】
次に、作成された8個の度数分布から、記述子ベクトルが算出される(ステップA255)。より詳細には、作成された度数分布における各階級の度数を成分とする8次元のベクトルが、8個の各円の度数分布について作成される。そして、8個の8次元ベクトルが1つにまとめられ、8×8=64次元のベクトルが作成される。最後に、この64次元のベクトルが、64個の各成分の2乗の和の平方根で除されて、大きさが1の記述子ベクトルが算出される。
【0083】
記述子ベクトルは、顕著な特徴点ごとに算出され、各顕著な特徴点のX0Y0座標における座標値とともに、記憶部12に記憶される。これによって、ステップA25の処理が終了し、図2に示す記述子ベクトル算出処理がすべて終了する。
【0084】
このように、図2に示す記述子ベクトル算出処理により、画像データにおける特徴的な点(特徴点)のX0Y0座標における座標値と、その特徴点に対する記述子ベクトルとが算出される。本発明では、特徴点の検出にハリス行列が用いられるので、コントラストが弱い画像データであっても、各特徴点の記述子ベクトルは、独立性が高いものとなっている。したがって、たとえば、2つの画像データにおいて一致する特徴点を検出するときに、誤検出の可能性を減らすことができる。
【0085】
また、本発明では、特徴点を中心とする同心円の円周上の配向と特徴点付近における支配的配向との差分値に基づいて、記述子ベクトルが算出されるので、該記述子ベクトルは、回転およびスケール変換の影響を受けにくい特徴量となっている。記述子ベクトルが回転およびスケール変換の影響を受けにくい特徴量となるのは、主には、円自身は回転に対して優れた不変性を持つことからであり、かつ、円周上の画素の配向と支配的配向は回転に対して同期性を持ち、その差分値は回転に対して不変であるからである。たとえば、円周が10°回転しても、支配的配向と該円周上の画素の配向も10°回転する。たとえそれらの配向の角度は変換したが、それら間の差分値はやはり不変である。
【0086】
また本実施形態では、画像データ群である画像ピラミッドを用いて特徴点の検出が行われるので、より独立性の高い記述子ベクトルを算出することができる。また、第1平均配向Aoと第2平均配向Acとが用いられることで、特徴点付近における支配的配向Adが得られ、その支配的配向Adに対する特徴点を中心とする円周上の画素の配向の回転不変性との特徴で、両者の固定な差分値によって、より独立性の高い記述子ベクトルを算出することができる。さらに、8個の階級を有する8個の度数分布によって、より独立性の高い64次元の記述子ベクトルを算出することができる。
【0087】
特徴量算出装置1は、上記のようにして算出された記述子ベクトルを用いて複数の画像データの接続を行う画像接続装置としても機能する。すなわち、記憶部12に記憶される特徴量算出プログラムに従うことで、制御演算部11および記憶部12は、記述子ベクトルを用いて2以上の画像データを接続して1つの画像データに合成する処理(画像接続処理)を行う画像接続部として機能する。
【0088】
以下に、特徴量算出装置1による画像接続処理について説明する。図9は、画像接続処理を示すフローチャートである。まず、デジタルカメラ、スキャナなどから、画像接続処理の対象となる2以上の画像データが入力される(ステップB1)。
【0089】
次に、入力された各画像データについて、記述子ベクトル算出処理が行われる(ステップB2)。ステップB2の処理は、図2に示すステップA21〜ステップA25の記述子ベクトル算出処理と同様の処理である。
【0090】
次に、複数の画像データ間において、一致点の検索が行われる(ステップB3)。一致点とは、記述子ベクトル間の距離が予め定める閾値より小さい特徴点の対である。すなわち、一の特徴点に付随する記述子ベクトルの各成分と、他の特徴点の記述子ベクトルの各成分との差の2乗の和の平方根が、予め定める閾値より小さいとき、それらの特徴点は一致点である。各画像データにおける一致点の座標値(X0Y0座標値)は、記憶部12に記憶される。
【0091】
次に、一致点の数が2対以上であるか否かが判定される(ステップB4)。ステップB4の判定の結果、2対以上でない場合、画像データの接続ができないことを示す画像が、表示部14に表示される(ステップB6)。
【0092】
ステップB4の判定の結果、一致点の数が2対以上である場合、画像データの接続処理が行われる(ステップB5)。画像データの接続処理は、X0Y0座標値に基づいて行われる。
【0093】
以下に、2つの画像データL,L’において2対の一致点(w1,w1’),(w2,w2’)が検出されたときの画像データの接続処理について示す。なお、特徴点w1,w2は画像データL中の画素データであり、特徴点w1’,w2’は画像データL’中の画素データであるとする。また、X0Y0座標において、各特徴点w1,w2,w1’,w2’の座標値はそれぞれ、(g1,r1),(g2,r2),(g1’,r1’),(g2’,r2’)であるとする。
【0094】
これらの各座標値に基づいて、各画像データL,L’における特徴点間の距離、すなわち、座標値の差の2乗の和の平方根が算出される。画像データLにおける2つの特徴点(w1,w2)間の距離Eは、
【数13】
であり、画像データL’における2つの特徴点(w1’,w2’)間の距離E’は、
【数14】
である。そして、距離Eと距離E’とから、距離の比E’/Eが算出される。
【0095】
また、各座標値に基づいて、各画像データL,L’における特徴点間の傾斜角度が算出される。画像データLにおける2つの特徴点(w1,w2)間の傾斜角度δは、
【数15】
であり、画像データL’における2つの特徴点(w1’,w2’)間の傾斜角度δ’は、
【数16】
である。そして、傾斜角度δと傾斜角度δ’とから、傾斜角度の差δ’−δが算出される。
【0096】
その後、画像データLに対して、算出された距離の比E’/Eで等倍処理が行われ、かつ、算出された傾斜角度の差δ’−δの値で回転処理が行われる。これらの処理後の画像データLは、特徴点w1が特徴点w1’に重なり、特徴点w2が特徴点w2’に重なるように、画像データL’に接続される。そして、接続によって得られた画像データに対して、必要に応じてトリミング処理が行われ、1つの画像データが合成される。
【0097】
なお、2つの画像データにおいて一致点が3対以上検出された場合は、各画像データにおける複数の距離の比の平均値と、複数の傾斜角度の差の平均値を用いて、画像データの接続が行われる。たとえば、一致点の数が3対の場合は、距離の比が3つ算出され、傾斜角度の差も3つ算出される。よって、この場合は、3つの距離の比の平均値で等倍処理が行われ、3つの傾斜角度の差の平均値で回転処理が行われる。
【0098】
ステップB5の処理では、上記のような画像データの接続処理によって得られた画像データに基づく画像が、表示部14に表示される。ステップB5またはステップB6の処理の終了により、特徴量算出装置1の画像接続処理が終了する。
【0099】
特徴量算出装置1の画像接続処理によって得られる画像データの具体例を以下に示す。図10は、被写体100を示しており、図11は、4つの画像データ200A,200B,200C,200Dを示している。4つの画像データ200A,200B,200C,200Dは、それぞれ、デジタルカメラによって被写体100を撮影することで得られた画像データである。図12は、接続後の画像データ300Aを示している。画像データ300Aは、特徴量算出装置1によって、画像データ200A,200Dに対して回転処理が行われ、画像データ200Cに対して等倍処理が行われた上で、これらの画像データ200A,200C,200Dと画像データ200Bとが接続されて得られた画像データである。図13は、トリミング処理後の画像データ300Bを示している。画像データ300Bは、特徴量算出装置1によって、画像データ300Aにトリミング処理が行われて得られた画像データである。
【0100】
図11に示すように、画像データに基づく画像は、互いに傾いていたり、互いにスケールが異なっていたりする。しかしながら、特徴量算出装置1は、記述子ベクトルを用いて画像データの接続を行うので、図12に示すように、傾きおよびスケールの異なる画像同士を精度良く接続することができる。なお、特徴量算出装置1は、図13に示す画像データ300Bの代わりに、トリミング処理前の、図12に示す画像データ300Aに基づく画像を、表示部14に表示するように構成されてもよい。
【0101】
また、特徴量算出装置1は、算出された記述子ベクトルを用いて一の画像データの中から他の画像データの検索を行う画像検索装置としても機能する。すなわち、記憶部12に記憶される特徴量算出プログラムに従うことで、制御演算部11および記憶部12は、記述子ベクトルを用いて一の画像データの中から他の画像データを検索する処理(画像検索処理)を行う画像検索部として機能する。
【0102】
以下に、特徴量算出装置1による画像検索処理について説明する。図14は、画像検索処理を示すフローチャートである。まず、デジタルカメラ、スキャナなどから、画像検索処理の対象となる2以上の画像データが入力される(ステップC1)。
【0103】
次に、入力された各画像データについて、記述子ベクトル算出処理が行われる(ステップC2)。ステップC2の処理は、図2に示すステップA21〜ステップA25の記述子ベクトル算出処理と同様の処理である。
【0104】
次に、複数の画像データ間において、一致点の検索が行われる(ステップC3)。一致点とは、記述子ベクトル間の距離が予め定める閾値より小さい特徴点の対である。すなわち、一の特徴点に付随する記述子ベクトルの各成分と、他の特徴点の記述子ベクトルの各成分との差の2乗の和の平方根が、予め定める閾値より小さいとき、それらの特徴点は一致点である。各画像データにおける一致点の座標値(X0Y0座標値)は、記憶部12に記憶される。
【0105】
次に、一致点の数が多いか否かが判定される(ステップC4)。一致点の数が多いか否かの判定は、一致点の絶対的な数に基づいて行われてもよいし、特徴点の数に対する相対的な数に基づいて行われてもよい。たとえば、被検索対象画像データQの中から、検索対象画像データQ’を検索しようとする場合に、検索対象画像データQ’における特徴点の数が50個であり、ステップC3で検出された一致点の数が45個であるとき、検索対象画像データQ’中の9割の特徴点に一致する特徴点が被検索対象画像データQ中から検出されることになるので、一致点の数は多いと判定される。
【0106】
ステップC4の判定の結果、一致点の数が少ない場合、検索対象画像データQ’が発見されなかったことを示す画像が、表示部14に表示される(ステップC6)。
【0107】
ステップC4の判定の結果、一致点の数が多い場合、被検索対象画像データQにおいて、検索対象画像データQ’に相当する部分の画像データに基づく画像が、表示部14に表示される(ステップC5)。検索対象画像データQ’に相当する部分とは、被検索対象画像データQにおいて、ステップC3で検出された一致点をすべて含む部分である。ステップC5またはステップC6の処理の終了により、特徴量算出装置1の画像検索処理が終了する。
【0108】
このように、特徴量算出装置1は、記述子ベクトルを用いて、被検索対象画像データの中から検索対象画像データの検索を行うので、精度良く検索を行うことができる。
【符号の説明】
【0109】
1 特徴量算出装置
11 制御演算部
12 記憶部
13 操作部
14 表示部
15 通信部
16 インターフェイス部
【技術分野】
【0001】
本発明は、特徴量算出装置、画像接続装置、画像検索装置、特徴量算出方法、および特徴量算出プログラムに関する。
【背景技術】
【0002】
複数の画像を接続してパノラマ画像を合成したり、一の画像の中から他の画像を検索したりするために、各画像における特徴的な点(特徴点)を利用することが一般的に行われている。たとえば、各画像において対応する特徴点を検出し、お互いに重ね合わせる特徴点で、パノラマ画像を合成できる。
【0003】
各特徴点は、各特徴点について固有の量である特徴量によって規定される。特徴量は、特徴量の算出方法によって異なる。特許文献1には、SIFT(Scale Invariant Feature Transformation)と称される特徴量の算出方法が記載されている。SIFTによれば、画像のスケール変換に強い特徴量を算出できるとされている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第6711293号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、SIFTによって算出される特徴量は画像の回転に弱いという課題がある。また、SIFTは、コントラストの弱い画像の特徴量の算出には適していないという課題がある。
【0006】
本発明は、上述した課題を解決するためのものであり、画像の回転に強い特徴量を、コントラストによらずに算出することができる特徴量算出装置、画像接続装置、画像検索装置、特徴量算出方法、および特徴量算出プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明は、入力された画像データを構成する複数の画素データについて、ハリス行列をそれぞれ算出し、算出したハリス行列を用いてコーナー量をそれぞれ算出するコーナー量算出部と、
前記画像データを構成する画素データのうち、周囲の画素データについてのコーナー量よりも大きなコーナー量を有する画素データを、特徴点として検出する特徴点検出部と、
前記特徴点の画素値および該特徴点の隣域の画素データの画素値から、該特徴点付近における画素値の勾配の角度を示す支配的配向を算出する支配的配向算出部と、
前記画像データにおいて、前記特徴点を中心とする半径の異なるp(p≧2)個の円の円周上の画素データを検出する同心円検出部と、
p個の各円について、円周上の各画素データにおける画素値の勾配の角度と前記支配的勾配との差分値に円の半径の平方根を乗じた重み付き差分値を、それぞれ算出する重み付き差分値算出部と、
前記重み付き差分値についてのq(q≧2)個の階級を有する度数分布を、p個の各円についてそれぞれ作成する度数分布作成部と、
p個の各円について、各度数を成分とするq次元のベクトルをそれぞれ算出し、算出された各q次元ベクトルから、p×q次元の記述子ベクトルを算出する記述子ベクトル算出部とを備えることを特徴とする特徴量算出装置である。
【0008】
また本発明は、一の画像データと該一の画像データを平滑化した後に縮小化して得られる他の画像データとを含む画像データ群を作成し、作成した画像データ群を、前記画像データの代わりに、前記コーナー量算出部に入力する画像データ群作成部を備えることを特徴とする。
【0009】
また本発明は、前記支配的配向算出部は、前記特徴点および該特徴点の周囲の8個の画素データにおける画素値の勾配の角度の平均値、該特徴点を中心とする半径が3画素の円上の画素データのうち該円上の画素データ全体における画素値の勾配の角度の平均値よりも大きな勾配の角度を有する画素データにおける勾配の角度の平均値、または、該特徴点を中心とする半径が3画素の円上の画素データのうち該円上の画素データ全体における画素値の勾配の角度の平均値よりも小さな勾配の角度を有する画素データにおける勾配の角度の平均値を、前記支配的配向として算出するように構成されることを特徴とする。
【0010】
また本発明は、前記同心円検出部は、pの値を8に設定するように構成され、
前記度数分布作成部は、qの値を8に設定するように構成されることを特徴とする。
【0011】
また本発明は、前記特徴量算出装置と、
前記記述子ベクトルを用いて2以上の画像データを接続して1つの画像データに合成する画像接続部とを備えることを特徴とする画像接続装置である。
【0012】
また本発明は、前記特徴量算出装置と、
前記記述子ベクトルを用いて一の画像データの中から他の画像データを検索する画像検索部とを備えることを特徴とする画像検索装置である。
【0013】
また本発明は、入力された画像データを構成する複数の画素データについて、ハリス行列をそれぞれ算出し、算出したハリス行列を用いてコーナー量をそれぞれ算出するステップと、
前記画像データを構成する画素データのうち、周囲の画素データについてのコーナー量よりも大きなコーナー量を有する画素データを、特徴点として検出するステップと、
前記特徴点の画素値および該特徴点の隣域の画素データの画素値から、該特徴点付近における画素値の勾配の角度を示す支配的配向を算出するステップと、
前記画像データにおいて、前記特徴点を中心とする半径の異なるp(p≧2)個の円の円周上の画素データを検出するステップと、
p個の各円について、円周上の各画素データにおける画素値の勾配の角度と前記支配的勾配との差分値に円の半径の平方根を乗じた重み付き差分値を、それぞれ算出するステップと、
前記重み付き差分値についてのq(q≧2)個の階級を有する度数分布を、p個の各円についてそれぞれ作成するステップと、
p個の各円について、度数を要素とするq次元のベクトルをそれぞれ算出し、算出された各q次元ベクトルから、p×q次元の記述子ベクトルを算出するステップとを含むことを特徴とする特徴量算出方法である。
【0014】
また本発明は、コンピュータを、前記特徴量算出装置として機能させることを特徴とする特徴量算出プログラムである。
【発明の効果】
【0015】
本発明によれば、記述子ベクトル算出部によって、特徴量として、p×q次元の記述子ベクトルが算出される。この記述子ベクトルは、スケール変換および回転の影響を受け難い。また、コントラストの弱い画像データであっても、各特徴点の各記述子ベクトルは、それぞれ独立性が高い。したがって、画像の回転に強い特徴量を、画像のコントラストによらずに算出する特徴量算出装置を提供することができる。
【0016】
また本発明によれば、画像データ群作成部によって作成された画像データ群を用いて特徴点の検出が行われるので、より独立性の高い記述子ベクトルを算出することができる。
【0017】
また本発明によれば、支配的配向算出部によって、特徴点付近における画素値の勾配の角度がより反映された支配的配向が得られるので、より独立性の高い記述子ベクトルを算出することができる。
【0018】
また本発明によれば、pおよびqの値が8に設定することで、より独立性の高い記述子ベクトルを算出することができる。
【0019】
また本発明によれば、上記特徴量算出装置を備えることで精度良く画像データを接続する画像接続装置を提供することができる。
【0020】
また本発明によれば、上記特徴量算出装置を備えることで精度良く画像データを検索する画像接続装置を提供することができる。
【0021】
また本発明によれば、特徴量として、p×q次元の記述子ベクトルが算出される。この記述子ベクトルは、スケール変換および回転の影響を受け難い。また、コントラストの弱い画像データであっても、各特徴点の各記述子ベクトルは、それぞれ独立性が高い。したがって、画像の回転に強い特徴量を、画像のコントラストによらずに算出する特徴量算出方法を提供することができる。
【0022】
また本発明によれば、コンピュータを上記特徴量算出装置として機能させる特徴量算出プログラムを提供することができる。
【図面の簡単な説明】
【0023】
【図1】特徴量算出装置1の構成を示す模式図である。
【図2】記述子ベクトル算出処理を示すフローチャートである。
【図3】画像ピラミッドGの概念図である。
【図4】ステップA21の処理の詳細を示すフローチャートである。
【図5】ステップA23の処理の詳細を示すフローチャートである。
【図6】ステップA24の処理の詳細を示すフローチャートである。
【図7】ステップA25の処理の詳細を示すフローチャートである。
【図8】ステップA251の処理の詳細を示すフローチャートである。
【図9】画像接続処理を示すフローチャートである。
【図10】被写体100を示す図である。
【図11】4つの画像データ200A,200B,200C,200Dを示す図である。
【図12】接続後の画像データ300Aを示す図である。
【図13】トリミング処理後の画像データ300Bを示す図である。
【図14】画像検索処理を示すフローチャートである。
【発明を実施するための形態】
【0024】
以下に、本発明の実施形態である特徴量算出装置1について説明する。特徴量算出装置1は、デジタルカメラ、スキャナなどから入力された画像データを構成する複数の画素データから、該画像データの特徴を表す量(特徴量)を算出する装置である。
【0025】
図1は、特徴量算出装置1の構成を示す模式図である。特徴量算出装置1は、制御演算部11と、記憶部12と、操作部13と、表示部14と、通信部15と、インターフェイス部16とを備える。
【0026】
制御演算部11は、プログラムに基づく演算処理、および異なる電子デバイス間でのデータの転送制御処理などを行う装置である。制御演算部11としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)などが用いられる。
【0027】
記憶部12は、DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)などの揮発性メモリと、HDD(Hard Disk Drive)などの不揮発性メモリとを含む。不揮発性メモリには、後述する特徴量算出プログラムが記憶されている。
【0028】
操作部13は、たとえば、マウス、キーボード、タッチパネルなどである。ユーザは、操作部13を介して、特徴量算出装置1を操作することができる。表示部14は、たとえば、液晶表示装置などである。表示部14には、制御演算部11による演算処理の結果などが画像として表示される。通信部15は、電話回線、インターネットなどによって、特徴量算出装置1以外の装置と通信する装置である。
【0029】
インターフェイス部16は、USB(Universal Serial Bus)接続、ETHERネット接続などのための接続部である。たとえば、特徴量算出装置1は、インターフェイス部16を介してデジタルカメラなどと接続でき、当該デジタルカメラに記憶されている画像データを記憶部12に記憶することができる。
【0030】
また、特徴量算出装置1は、通信部15によって受信した画像データを記憶部12に記憶するように構成される。また、特徴量算出装置1は、図示しないスキャナを備え、該スキャナによって取得した画像データを記憶部12に記憶するように構成される。
【0031】
記憶部12に記憶されている特徴量算出プログラムは、上記のようにして記憶部12に記憶された画像データについて、特徴量として記述子ベクトルを算出するためのプログラムである。特徴量算出プログラムに従うことで、制御演算部11および記憶部12は、本発明に係るコーナー量算出部、特徴点検出部、支配的配向算出部、同心円検出部、重み付き差分値算出部、度数分布作成部、記述子ベクトル算出部、および画像データ群作成部として機能する。
【0032】
本発明において、コーナー量算出部は、入力された画像データを構成する複数の画素データについて、ハリス行列をそれぞれ算出し、算出したハリス行列を用いてコーナー量をそれぞれ算出する機能を有している。特徴点検出部は、画像データを構成する画素データのうち、周囲の画素データについてのコーナー量よりも大きなコーナー量を有する画素データを、特徴点として検出する機能を有している。支配的配向算出部は、特徴点の画素値および該特徴点の近傍の画素データの画素値から、該特徴点付近における画素値の勾配の角度を示す支配的配向を算出する機能を有している。
【0033】
同心円検出部は、画像データにおいて、特徴点を中心とする半径の異なるp(p≧2)個の円の円周上の画素データを検出する機能を有している。重み付き差分値算出部は、p個の各円について、円周上の各画素データにおける画素値の勾配の角度と支配的配向との差分値に円の半径の平方根を乗じた重み付き差分値を、それぞれ算出する機能を有している。度数分布作成部は、重み付き差分値についてのq(q≧2)個の階級を有する度数分布を、p個の各円についてそれぞれ作成する機能を有している。記述子ベクトル算出部は、p個の各円について、各度数を成分とするq次元のベクトルをそれぞれ算出し、算出された各q次元ベクトルから、p×q次元の記述子ベクトルを算出する機能を有している。
【0034】
また本実施形態において、画像データ群作成部は、一の画像データと該一の画像データを平滑化した後に縮小化して得られる他の画像データとを含む画像データ群を作成して、コーナー量算出部に入力する機能を有している。また、支配的配向算出部は、特徴点および該特徴点の周囲の8個の画素データにおける画素値の勾配の角度の平均値OLE_LINK1Aoと、該特徴点を中心とする半径が3画素の円内の画素データの画素値の勾配の角度の平均値Acとを算出する。そして、支配的配向算出部は、AcがAoより大きければ、該特徴点を中心とする半径が3画素の円内の画素データのうち、勾配の角度がAcより小さい画素データの勾配の角度の平均値を、支配的配向として算出し、AcがAoより小さければ、該特徴点を中心とする半径が3画素の円内の画素データのうち、勾配の角度がAcより大きい画素データの勾配の角度の平均値を、支配的配向として算出し、AcがAoと等しければ、平均値Aoを支配的配向として算出する。
【0035】
これらの各部の機能によって、特徴量として記述子ベクトルが算出される。算出された記述子ベクトルは、後述する画像の接続、および画像の検索などに利用される。なお、本発明の他の実施形態としては、記憶部12に特徴量算出プログラムが記憶される代わりに、上記機能を有する上記各部がそれぞれ独立した電子回路で構成されてもよい。
【0036】
以下では、特徴量算出装置1が上記各部の機能によって記述子ベクトルを算出する処理(記述子ベクトル算出処理)について、詳細に説明する。図2は、記述子ベクトル算出処理を示すフローチャートである。記述子ベクトル算出処理は、画像ピラミッドを作成する処理(ステップA21)と、画像ピラミッドにおける各画素データのコーナー量を算出する処理(ステップA22)と、各コーナー量に基づいて局所的な特徴点を検出する処理(ステップA23)と、局所的な特徴点の中から顕著な特徴点を検出する処理(ステップA24)と、顕著な特徴点に対する記述子ベクトルを算出する処理(ステップA25)とを含む。
【0037】
まず、ステップA21の処理について説明する。ステップA21の処理は、デジタルカメラなどから入力された画像に基づく、画素値として輝度値を有する画像データ(以下、「第0水準の画像データ」と称する)から、画像ピラミッドを作成する処理である。
【0038】
本発明において、画像ピラミッドとは、第0水準の画像データと、該画像データに所定の処理を行って得られる第n(以下では、nは自然数を表すとする)水準の画像データとを要素とする画像データ群である。ここで、第0水準の画像データを構成する各画素データは、直交座標であるX0Y0座標における各座標値(uX0,vY0)の関数である輝度値I0(uX0,vY0)で表され、該X0Y0座標における各座標値(uX0,vY0)は、X0座標およびY0座標のいずれについても連続した整数値であるとする。また、第n水準の画像データを構成する各画素データは、直交座標であるXnYn座標における各座標値(uXn,vYn)の関数である輝度値In(uXn,vYn)で表され、該XnYn座標における各座標値(uXn,vYn)は、Xn座標およびYn座標のいずれについても連続した整数値であるとする。
【0039】
画像ピラミッドの一例として、図3に、画像ピラミッドGの概念図を示す。図3に示す画像ピラミッドGは、第0水準の画像ピラミッドのG0と、第1水準の画像データG1と、第2水準の画像データG2とからなっている。
【0040】
図4は、ステップA21の処理の詳細を示すフローチャートである。まず、変数mの値に、0が設定される(ステップA211)。次に、第m水準の画像データについて、ガウシアンフィルタとの畳み込みによる平滑化が行われる(ステップA212)。
【0041】
詳細には、ステップA212の処理では、第m水準の画像データを構成する各画素データIm(uXm,vYm)から、下記式(1)によって、XmYm座標における各座標値(sXm,tYm)の関数であるJm(sXm,tYm)が得られる。
【数1】
【0042】
上記式(1)において、定数σの値は、たとえば、√2に設定される。ステップA212の処理によって平滑化された画像データを構成する各画素データは、Jm(sXm,tYm)で表される。
【0043】
ステップA212の処理の後、平滑化された画像データについて、該画像データを構成する画素データの間引き処理により縮小化が行われる(ステップA213)。より詳細には、Xm座標における画素データの総数が1/2となり、かつ、Ym座標における画素データの総数が1/2となるように、均等に間引き処理が行われる。この間引き処理によって、縮小化された画像データである第m+1水準の画像データが得られる。したがって、間引き処理前の座標である第m水準の座標(XmYm座標)で、第m+1水準の画像データの各画素データの座標値を表すことができ、第0水準の座標(X0Y0座標)で第m+1水準の画像データの各画素データの座標値を表すこともできる。
【0044】
ステップA213の処理の後、第m+1水準の画像データについて、画像サイズが32×32未満であるか否かが判定される(ステップA214)。すなわち、第m+1水準の画像データについて、Xm+1座標における画素データの数が32未満であり、かつ、Ym+1座標における画素データの数が32未満であるか否かが判定される。ステップA214の判定の結果、画像サイズが32×32未満でない場合は、変数mの値が1だけ増加し(ステップA215)、ステップA212の処理に戻る。
【0045】
ステップA214の判定の結果、画像サイズが32×32未満である場合は、ステップA21の処理が終了する。ステップA21の処理の開始から終了までの間に作成された第1〜第n水準の画像データ、および第0水準の画像データは、画像ピラミッドとして、記憶部12に記憶される。
【0046】
図2に示すように、ステップA21の処理の後は、画像ピラミッドにおける各画素データのコーナー量を算出するステップA22の処理が行われる。コーナー量の算出は、以下に説明するハリス行列を用いて行われる。
【0047】
画像ピラミッドにおける第z(以下では、zは0以上の整数を表すとする)水準の画像データを構成する各画素データは、Iz(uXz,vYz)で表される。Iz(uXz,vYz)の、Xz座標における偏微分係数を、
【数2】
と表し、Yz座標における偏微分係数を、
【数3】
と表すとき、ハリス行列M(uXz,vYz)は下記式(2)で表される。
【0048】
【数4】
【0049】
各画素データについてのコーナー量R(uXz,vYz)は、その画素データにおけるハリス行列M(uXz,vYz)から、下記式(3)によって算出される。
R(uXz,vYz)=det(M(uXz,vYz))
−k×(trace(M(uXz,vYz)))2
…(3)
【0050】
上記式(3)において、定数kの値は、0.04〜0.15の範囲内で設定される。本実施形態では、k=0.04である。
【0051】
このように、ステップA22の処理では、画像ピラミッドの要素である各水準の画像データを構成する画素データについて、上記式(2),(3)により、コーナー量R(uXz,vYz)が算出される。算出されたコーナー量R(uXz,vYz)は、記憶部12に記憶される。
【0052】
図2に示すように、ステップA22の処理の後は、画像ピラミッドを構成する画像データの中から、各コーナー量に基づいて局所的な特徴点を検出するステップA23の処理が行われる。
【0053】
図5は、ステップA23の処理の詳細を示すフローチャートである。まず、変数jの値に、0が設定される(ステップA231)。次に、変数iの値に、1が設定される(ステップA232)。変数iは、第j水準の画像データを構成する画素データを示す自然数である。
【0054】
次に、第j水準の画像データを構成するi番目の画素データについて、コーナー量が周囲の画素データのコーナー量よりも大きいか否かが判定される(ステップA233)。より詳細には、第j水準の画像データを構成するi番目の画素データのXjYj座標における座標値を(uXj,vYj)とするときに、その画素データのコーナー量R(uXj,vYj)が、R(uXj,vYj+1)、R(uXj+1,vYj+1)、R(uXj+1,vYj)、R(uXj+1,vYj−1)、R(uXj,vYj−1)、R(uXj−1,vYj−1)、R(uXj−1,vYj)、およびR(uXj−1,vYj+1)の8つのコーナー量のいずれよりも大きいか否かが判定される。なお、本実施形態では、i番目の画素データの比較対象とする周囲の画素データの数を8としているけれども、たとえば、15としてもよい。
【0055】
ステップA233の判定の結果、コーナー量が周囲の画素よりも大きくなければ、ステップA235の処理に進む。ステップA233の判定の結果、コーナー量が周囲の画素よりも大きければ、第j水準の画像データを構成するi番目の画素データのXjYj座標における座標値(uXj,vYj)が、記憶部12に記憶され(ステップA234)、その後、ステップA235の処理に進む。
【0056】
ステップA235では、i番目の画素データが、第j水準の画像データにおいて、ステップA233の判定の対象とする最後の画素データであるか否かが判定される。ステップA235の判定の結果、最後の画素データであれば、ステップA236の処理に進み、最後の画素データでなければ、ステップA237の処理に進む。
【0057】
ステップA237の処理では、変数iの値が1だけ増加され、その後、ステップA233の処理に戻る。ステップA236の処理では、第j水準の画像データが、画像ピラミッドにおいて、ステップA233の判定の対象とする最後の画像データであるか否かが判定される。ステップA236の判定の結果、最後の画像データであれば、ステップA23の処理を終了する。ステップA236の判定の結果、最後の画像データでなければ、ステップA238の処理に進む。ステップA238の処理では、変数jの値が1だけ増加され、ステップA232の処理に戻る。
【0058】
このようにして、ステップA23の処理では、画素データの座標値が記憶される。座標値が記憶された画素データが局所的な特徴点である。
【0059】
図2に示すように、ステップA23の処理の後は、局所的な特徴点の中から顕著な特徴点を検出するステップA24の処理が行われる。本実施形態では、ステップA24の処理によって、画像ピラミッドを構成するすべての水準の画像データの中から、F個以下の顕著な特徴点が検出される。
【0060】
図6は、ステップA24の処理の詳細を示すフローチャートである。まず、局所的な特徴点の数が予め定める定数Fの値以上であるか否かが判定される(ステップA241)。すなわち、上述したステップA234の処理において座標値が記憶された画素データの数が、定数Fの値以上であるか否かが判定される。定数Fの値は、たとえば、1000〜10000である。
【0061】
ステップA241の判定の結果、定数Fの値以上であれば、F個以上の局所的な特徴点の中から、コーナー量の大きい順に、コーナー量の大きいF個の局所的な特徴点が抽出され、抽出された局所的な特徴点が顕著な特徴点であるとして、それらの座標値が記憶部12に記憶される(ステップA242)。このとき記憶される座標値は、各局所的な特徴点が属する水準の座標における座標値、および第0水準の座標(X0Y0座標)における座標値である。なお、コーナー量が等しい2以上の局所的な特徴点については、たとえば、ステップA23の処理におけるjの値がより小さいもの、その中でもiの値がより小さいものが、優先的に抽出される。また、異なる水準の画像データをそれぞれ構成する、X0Y0座標における座標値が互いに等しい局所的な特徴点については、それらのうちの1つの局所的な特徴点、たとえば、ステップA23の処理におけるjの値が最も小さな局所的な特徴点が抽出される。
【0062】
ステップA241の判定の結果、定数Fの値以上でなければ、ステップA23で検出された局所的な特徴点のすべてが顕著な特徴点であるとして、それらの局所的な特徴点が属する水準の座標における座標値、および第0水準の座標(X0Y0座標)における座標値が、記憶部12に記憶される(ステップA243)。ただし、異なる水準の画像データをそれぞれ構成する、X0Y0座標における座標値が互いに等しい局所的な特徴点については、それらのうちの1つの局所的な特徴点、たとえば、ステップA23におけるjの値が最も小さな局所的な特徴点の座標値のみが記憶される。
【0063】
ステップA242またはステップA243の処理の終了により、ステップA24の処理が終了する。このようにして、ステップA24の処理では、顕著な特徴点が検出される。
【0064】
図2に示すように、ステップA24の処理の後は、顕著な特徴点に対する記述子ベクトルを算出するステップA25の処理が行われる。ステップA25の処理は、各顕著な特徴点についてそれぞれ行われる。
【0065】
図7は、ステップA25の処理の詳細を示すフローチャートである。ステップA25の処理は、支配的配向を算出する処理(ステップA251)と、顕著な特徴点を中心とする同心円の円周上の画素データを検出する処理(ステップA252)と、重み付き差分値を算出する処理(ステップA253)と、度数分布を作成する処理(ステップA254)と、記述子ベクトルを算出する処理(ステップA255)とを含む。
【0066】
まず、ステップA251の処理について説明する。ステップA251の処理は、顕著な特徴点の輝度値および該顕著な特徴点の近傍の画素データの輝度値から、該顕著な特徴点付近における輝度値の勾配の角度を示す支配的配向を算出する処理である。
【0067】
図8は、ステップA251の処理の詳細を示すフローチャートである。まず、顕著な特徴点が属する第z水準の画像データにおける、該顕著な特徴点を中心とする円上の各画素データについて、輝度値の勾配の角度(配向)がそれぞれ算出される(ステップA2511)。この円の半径は、たとえば3画素である。
【0068】
このとき、顕著な特徴点のXzYz座標における座標値を(uz,vz)とすれば、第z水準の画像データにおいて、下記式(4)を満たすXzYz座標における座標値(αz、βz)を有する画素データが、この円上の画素データであり、下記式(5)を満たすXzYz座標における座標値(αz、βz)を有する画素データが、この円の円周上の画素データである。
【0069】
【数5】
【数6】
【0070】
このような円上の画素データについて、勾配を表す次式、
【数7】
は、Sobel演算子により、下記式(6)に従って算出され、勾配の角度である配向は、下記式(7)に従って算出される。なお、本発明において、下記式(7)に基づいて算出されるすべての配向は、0°以上360°未満であるとする。
【0071】
【数8】
【数9】
【0072】
次に、顕著な特徴点およびその顕著な特徴点の周囲の8個の画素データの配向についての平均値である第1平均配向Aoが算出される(ステップA2512)。第1平均配向Aoは、下記式(8)に従って算出される。
【0073】
【数10】
【0074】
次に、ステップA2511で勾配が算出された円領域内のすべての画素データの配向を表す次式、
【数11】
の平均値である第2平均配向Acが算出される(ステップA2513)。次に、第1平均配向Aoと第2平均配向Acとが等しいか否かが判定される(ステップA2514)。ステップA2514の判定の結果、2つの値が等しければ、第1平均配向Aoが、支配的配向Adとして記憶部12に記憶される(ステップA2515)。
【0075】
ステップA2514の判定の結果、2つの値が等しくなければ、第1平均配向Aoが第2平均配向Acよりも大きいか否かが判定される(ステップA2516)。ステップA2516の判定の結果、第1平均配向Aoが大きければ、第2平均配向Acよりも大きな値が、支配的配向Adとして記憶部12に記憶される(ステップA2517)。より詳細には、ステップA2511で勾配が算出された円領域内の画素データのうち、第2平均配向Acよりも大きな配向を有する画素データにおける配向の平均値が、支配的配向Adとして記憶部12に記憶される。
【0076】
ステップA2516の判定の結果、第1平均配向Aoが大きくなければ、第2平均配向Acよりも小さな値が、支配的配向Adとして記憶部12に記憶される(ステップA2518)。より詳細には、ステップA2511で勾配が算出された円領域内の画素データのうち、第2平均配向Acよりも小さな配向を有する画素データにおける配向の平均値が、支配的配向Adとして記憶部12に記憶される。
【0077】
ステップA2515、ステップA2517、またはステップA2518の処理の終了により、ステップA251の処理が終了する。このようにして、ステップA251の処理では、各顕著な特徴点について、支配的配向Adが算出される。
【0078】
図7に示すように、ステップA251の処理の後は、顕著な特徴点が属する第z水準の画像データにおける、該顕著な特徴点を中心とする同心円の円周上の画素データを検出するステップA252の処理が行われる。本実施形態では、半径が3画素〜10画素の、8個の各円について、それぞれの円周上の各画素データの座標値が、記憶部12に記憶される。なお、円の半径および個数は、これに限られない。
【0079】
次に、上記の8個の各円における、円周上の各画素データの配向と、ステップA251で算出された支配的勾配との差分値θが算出され、該差分値と各画素データが属する円の半径の平方根との乗算によって、重み付き差分値Dが、各画素データについてそれぞれ算出される(ステップA253)。円周上の各画素データの配向は、上記式(6),(7)に従って算出される。
【0080】
たとえば、半径が3画素の円の円周上の画素データの数が10個であるとき、10個の重み付き差分値を表す次式、
【数12】
が、それぞれ算出される。そして、半径4画素〜10画素の他の円についても、同様に、重み付き差分値Dが算出される。なお、重み付き差分値Dの数値範囲は、0以上360未満であるとし、この範囲外となる場合には、360が加算または減算される。算出された重み付き差分値Dは、記憶部12に記憶される。
【0081】
次に、算出された重み付き差分値について、0以上45未満、45以上90未満、90以上135未満、135以上180未満、180以上225未満、225以上270未満、270以上315未満、および315以上360未満の、8個の階級を有する度数分布が、8個の各円についてそれぞれ作成される(ステップA254)。したがって、8個の階級を有する度数分布が、8個作成される。ここで、円の半径の平方根は重み付きとして、異なる差分値間の距離を増大することができる。これにより、得られた度数の分布が分散となり、度数の分布が1つの区間に集中することが低減され、記述子ベクトルの唯一性が向上される。
【0082】
次に、作成された8個の度数分布から、記述子ベクトルが算出される(ステップA255)。より詳細には、作成された度数分布における各階級の度数を成分とする8次元のベクトルが、8個の各円の度数分布について作成される。そして、8個の8次元ベクトルが1つにまとめられ、8×8=64次元のベクトルが作成される。最後に、この64次元のベクトルが、64個の各成分の2乗の和の平方根で除されて、大きさが1の記述子ベクトルが算出される。
【0083】
記述子ベクトルは、顕著な特徴点ごとに算出され、各顕著な特徴点のX0Y0座標における座標値とともに、記憶部12に記憶される。これによって、ステップA25の処理が終了し、図2に示す記述子ベクトル算出処理がすべて終了する。
【0084】
このように、図2に示す記述子ベクトル算出処理により、画像データにおける特徴的な点(特徴点)のX0Y0座標における座標値と、その特徴点に対する記述子ベクトルとが算出される。本発明では、特徴点の検出にハリス行列が用いられるので、コントラストが弱い画像データであっても、各特徴点の記述子ベクトルは、独立性が高いものとなっている。したがって、たとえば、2つの画像データにおいて一致する特徴点を検出するときに、誤検出の可能性を減らすことができる。
【0085】
また、本発明では、特徴点を中心とする同心円の円周上の配向と特徴点付近における支配的配向との差分値に基づいて、記述子ベクトルが算出されるので、該記述子ベクトルは、回転およびスケール変換の影響を受けにくい特徴量となっている。記述子ベクトルが回転およびスケール変換の影響を受けにくい特徴量となるのは、主には、円自身は回転に対して優れた不変性を持つことからであり、かつ、円周上の画素の配向と支配的配向は回転に対して同期性を持ち、その差分値は回転に対して不変であるからである。たとえば、円周が10°回転しても、支配的配向と該円周上の画素の配向も10°回転する。たとえそれらの配向の角度は変換したが、それら間の差分値はやはり不変である。
【0086】
また本実施形態では、画像データ群である画像ピラミッドを用いて特徴点の検出が行われるので、より独立性の高い記述子ベクトルを算出することができる。また、第1平均配向Aoと第2平均配向Acとが用いられることで、特徴点付近における支配的配向Adが得られ、その支配的配向Adに対する特徴点を中心とする円周上の画素の配向の回転不変性との特徴で、両者の固定な差分値によって、より独立性の高い記述子ベクトルを算出することができる。さらに、8個の階級を有する8個の度数分布によって、より独立性の高い64次元の記述子ベクトルを算出することができる。
【0087】
特徴量算出装置1は、上記のようにして算出された記述子ベクトルを用いて複数の画像データの接続を行う画像接続装置としても機能する。すなわち、記憶部12に記憶される特徴量算出プログラムに従うことで、制御演算部11および記憶部12は、記述子ベクトルを用いて2以上の画像データを接続して1つの画像データに合成する処理(画像接続処理)を行う画像接続部として機能する。
【0088】
以下に、特徴量算出装置1による画像接続処理について説明する。図9は、画像接続処理を示すフローチャートである。まず、デジタルカメラ、スキャナなどから、画像接続処理の対象となる2以上の画像データが入力される(ステップB1)。
【0089】
次に、入力された各画像データについて、記述子ベクトル算出処理が行われる(ステップB2)。ステップB2の処理は、図2に示すステップA21〜ステップA25の記述子ベクトル算出処理と同様の処理である。
【0090】
次に、複数の画像データ間において、一致点の検索が行われる(ステップB3)。一致点とは、記述子ベクトル間の距離が予め定める閾値より小さい特徴点の対である。すなわち、一の特徴点に付随する記述子ベクトルの各成分と、他の特徴点の記述子ベクトルの各成分との差の2乗の和の平方根が、予め定める閾値より小さいとき、それらの特徴点は一致点である。各画像データにおける一致点の座標値(X0Y0座標値)は、記憶部12に記憶される。
【0091】
次に、一致点の数が2対以上であるか否かが判定される(ステップB4)。ステップB4の判定の結果、2対以上でない場合、画像データの接続ができないことを示す画像が、表示部14に表示される(ステップB6)。
【0092】
ステップB4の判定の結果、一致点の数が2対以上である場合、画像データの接続処理が行われる(ステップB5)。画像データの接続処理は、X0Y0座標値に基づいて行われる。
【0093】
以下に、2つの画像データL,L’において2対の一致点(w1,w1’),(w2,w2’)が検出されたときの画像データの接続処理について示す。なお、特徴点w1,w2は画像データL中の画素データであり、特徴点w1’,w2’は画像データL’中の画素データであるとする。また、X0Y0座標において、各特徴点w1,w2,w1’,w2’の座標値はそれぞれ、(g1,r1),(g2,r2),(g1’,r1’),(g2’,r2’)であるとする。
【0094】
これらの各座標値に基づいて、各画像データL,L’における特徴点間の距離、すなわち、座標値の差の2乗の和の平方根が算出される。画像データLにおける2つの特徴点(w1,w2)間の距離Eは、
【数13】
であり、画像データL’における2つの特徴点(w1’,w2’)間の距離E’は、
【数14】
である。そして、距離Eと距離E’とから、距離の比E’/Eが算出される。
【0095】
また、各座標値に基づいて、各画像データL,L’における特徴点間の傾斜角度が算出される。画像データLにおける2つの特徴点(w1,w2)間の傾斜角度δは、
【数15】
であり、画像データL’における2つの特徴点(w1’,w2’)間の傾斜角度δ’は、
【数16】
である。そして、傾斜角度δと傾斜角度δ’とから、傾斜角度の差δ’−δが算出される。
【0096】
その後、画像データLに対して、算出された距離の比E’/Eで等倍処理が行われ、かつ、算出された傾斜角度の差δ’−δの値で回転処理が行われる。これらの処理後の画像データLは、特徴点w1が特徴点w1’に重なり、特徴点w2が特徴点w2’に重なるように、画像データL’に接続される。そして、接続によって得られた画像データに対して、必要に応じてトリミング処理が行われ、1つの画像データが合成される。
【0097】
なお、2つの画像データにおいて一致点が3対以上検出された場合は、各画像データにおける複数の距離の比の平均値と、複数の傾斜角度の差の平均値を用いて、画像データの接続が行われる。たとえば、一致点の数が3対の場合は、距離の比が3つ算出され、傾斜角度の差も3つ算出される。よって、この場合は、3つの距離の比の平均値で等倍処理が行われ、3つの傾斜角度の差の平均値で回転処理が行われる。
【0098】
ステップB5の処理では、上記のような画像データの接続処理によって得られた画像データに基づく画像が、表示部14に表示される。ステップB5またはステップB6の処理の終了により、特徴量算出装置1の画像接続処理が終了する。
【0099】
特徴量算出装置1の画像接続処理によって得られる画像データの具体例を以下に示す。図10は、被写体100を示しており、図11は、4つの画像データ200A,200B,200C,200Dを示している。4つの画像データ200A,200B,200C,200Dは、それぞれ、デジタルカメラによって被写体100を撮影することで得られた画像データである。図12は、接続後の画像データ300Aを示している。画像データ300Aは、特徴量算出装置1によって、画像データ200A,200Dに対して回転処理が行われ、画像データ200Cに対して等倍処理が行われた上で、これらの画像データ200A,200C,200Dと画像データ200Bとが接続されて得られた画像データである。図13は、トリミング処理後の画像データ300Bを示している。画像データ300Bは、特徴量算出装置1によって、画像データ300Aにトリミング処理が行われて得られた画像データである。
【0100】
図11に示すように、画像データに基づく画像は、互いに傾いていたり、互いにスケールが異なっていたりする。しかしながら、特徴量算出装置1は、記述子ベクトルを用いて画像データの接続を行うので、図12に示すように、傾きおよびスケールの異なる画像同士を精度良く接続することができる。なお、特徴量算出装置1は、図13に示す画像データ300Bの代わりに、トリミング処理前の、図12に示す画像データ300Aに基づく画像を、表示部14に表示するように構成されてもよい。
【0101】
また、特徴量算出装置1は、算出された記述子ベクトルを用いて一の画像データの中から他の画像データの検索を行う画像検索装置としても機能する。すなわち、記憶部12に記憶される特徴量算出プログラムに従うことで、制御演算部11および記憶部12は、記述子ベクトルを用いて一の画像データの中から他の画像データを検索する処理(画像検索処理)を行う画像検索部として機能する。
【0102】
以下に、特徴量算出装置1による画像検索処理について説明する。図14は、画像検索処理を示すフローチャートである。まず、デジタルカメラ、スキャナなどから、画像検索処理の対象となる2以上の画像データが入力される(ステップC1)。
【0103】
次に、入力された各画像データについて、記述子ベクトル算出処理が行われる(ステップC2)。ステップC2の処理は、図2に示すステップA21〜ステップA25の記述子ベクトル算出処理と同様の処理である。
【0104】
次に、複数の画像データ間において、一致点の検索が行われる(ステップC3)。一致点とは、記述子ベクトル間の距離が予め定める閾値より小さい特徴点の対である。すなわち、一の特徴点に付随する記述子ベクトルの各成分と、他の特徴点の記述子ベクトルの各成分との差の2乗の和の平方根が、予め定める閾値より小さいとき、それらの特徴点は一致点である。各画像データにおける一致点の座標値(X0Y0座標値)は、記憶部12に記憶される。
【0105】
次に、一致点の数が多いか否かが判定される(ステップC4)。一致点の数が多いか否かの判定は、一致点の絶対的な数に基づいて行われてもよいし、特徴点の数に対する相対的な数に基づいて行われてもよい。たとえば、被検索対象画像データQの中から、検索対象画像データQ’を検索しようとする場合に、検索対象画像データQ’における特徴点の数が50個であり、ステップC3で検出された一致点の数が45個であるとき、検索対象画像データQ’中の9割の特徴点に一致する特徴点が被検索対象画像データQ中から検出されることになるので、一致点の数は多いと判定される。
【0106】
ステップC4の判定の結果、一致点の数が少ない場合、検索対象画像データQ’が発見されなかったことを示す画像が、表示部14に表示される(ステップC6)。
【0107】
ステップC4の判定の結果、一致点の数が多い場合、被検索対象画像データQにおいて、検索対象画像データQ’に相当する部分の画像データに基づく画像が、表示部14に表示される(ステップC5)。検索対象画像データQ’に相当する部分とは、被検索対象画像データQにおいて、ステップC3で検出された一致点をすべて含む部分である。ステップC5またはステップC6の処理の終了により、特徴量算出装置1の画像検索処理が終了する。
【0108】
このように、特徴量算出装置1は、記述子ベクトルを用いて、被検索対象画像データの中から検索対象画像データの検索を行うので、精度良く検索を行うことができる。
【符号の説明】
【0109】
1 特徴量算出装置
11 制御演算部
12 記憶部
13 操作部
14 表示部
15 通信部
16 インターフェイス部
【特許請求の範囲】
【請求項1】
入力された画像データを構成する複数の画素データについて、ハリス行列をそれぞれ算出し、算出したハリス行列を用いてコーナー量をそれぞれ算出するコーナー量算出部と、
前記画像データを構成する画素データのうち、周囲の画素データについてのコーナー量よりも大きなコーナー量を有する画素データを、特徴点として検出する特徴点検出部と、
前記特徴点の画素値および該特徴点の隣域の画素データの画素値から、該特徴点付近における画素値の勾配の角度を示す支配的配向を算出する支配的配向算出部と、
前記画像データにおいて、前記特徴点を中心とする半径の異なるp(p≧2)個の円の円周上の画素データを検出する同心円検出部と、
p個の各円について、円周上の各画素データにおける画素値の勾配の角度と前記支配的勾配との差分値に円の半径の平方根を乗じた重み付き差分値を、それぞれ算出する重み付き差分値算出部と、
前記重み付き差分値についてのq(q≧2)個の階級を有する度数分布を、p個の各円についてそれぞれ作成する度数分布作成部と、
p個の各円について、各度数を成分とするq次元のベクトルをそれぞれ算出し、算出された各q次元ベクトルから、p×q次元の記述子ベクトルを算出する記述子ベクトル算出部とを備えることを特徴とする特徴量算出装置。
【請求項2】
一の画像データと該一の画像データを平滑化した後に縮小化して得られる他の画像データとを含む画像データ群を作成し、作成した画像データ群を、前記画像データの代わりに、前記コーナー量算出部に入力する画像データ群作成部を備えることを特徴とする請求項1に記載の特徴量算出装置。
【請求項3】
前記支配的配向算出部は、前記特徴点および該特徴点の周囲の8個の画素データにおける画素値の勾配の角度の平均値、該特徴点を中心とする半径が3画素の円上の画素データのうち該円上の画素データ全体における画素値の勾配の角度の平均値よりも大きな勾配の角度を有する画素データにおける勾配の角度の平均値、または、該特徴点を中心とする半径が3画素の円上の画素データのうち該円上の画素データ全体における画素値の勾配の角度の平均値よりも小さな勾配の角度を有する画素データにおける勾配の角度の平均値を、前記支配的配向として算出するように構成されることを特徴とする請求項1または2に記載の特徴量算出装置。
【請求項4】
前記同心円検出部は、pの値を8に設定するように構成され、
前記度数分布作成部は、qの値を8に設定するように構成されることを特徴とする請求項1〜3のいずれか1つに記載の特徴量算出装置。
【請求項5】
請求項1〜4のいずれか1つに記載の特徴量算出装置と、
前記記述子ベクトルを用いて2以上の画像データを接続して1つの画像データに合成する画像接続部とを備えることを特徴とする画像接続装置。
【請求項6】
請求項1〜4のいずれか1つに記載の特徴量算出装置と、
前記記述子ベクトルを用いて一の画像データの中から他の画像データを検索する画像検索部とを備えることを特徴とする画像検索装置。
【請求項7】
入力された画像データを構成する複数の画素データについて、ハリス行列をそれぞれ算出し、算出したハリス行列を用いてコーナー量をそれぞれ算出するステップと、
前記画像データを構成する画素データのうち、周囲の画素データについてのコーナー量よりも大きなコーナー量を有する画素データを、特徴点として検出するステップと、
前記特徴点の画素値および該特徴点の隣域の画素データの画素値から、該特徴点付近における画素値の勾配の角度を示す支配的配向を算出するステップと、
前記画像データにおいて、前記特徴点を中心とする半径の異なるp(p≧2)個の円の円周上の画素データを検出するステップと、
p個の各円について、円周上の各画素データにおける画素値の勾配の角度と前記支配的勾配との差分値に円の半径の平方根を乗じた重み付き差分値を、それぞれ算出するステップと、
前記重み付き差分値についてのq(q≧2)個の階級を有する度数分布を、p個の各円についてそれぞれ作成するステップと、
p個の各円について、度数を要素とするq次元のベクトルをそれぞれ算出し、算出された各q次元ベクトルから、p×q次元の記述子ベクトルを算出するステップとを含むことを特徴とする特徴量算出方法。
【請求項8】
コンピュータを、請求項1〜4のいずれか1つに記載の特徴量算出装置として機能させることを特徴とする特徴量算出プログラム。
【請求項1】
入力された画像データを構成する複数の画素データについて、ハリス行列をそれぞれ算出し、算出したハリス行列を用いてコーナー量をそれぞれ算出するコーナー量算出部と、
前記画像データを構成する画素データのうち、周囲の画素データについてのコーナー量よりも大きなコーナー量を有する画素データを、特徴点として検出する特徴点検出部と、
前記特徴点の画素値および該特徴点の隣域の画素データの画素値から、該特徴点付近における画素値の勾配の角度を示す支配的配向を算出する支配的配向算出部と、
前記画像データにおいて、前記特徴点を中心とする半径の異なるp(p≧2)個の円の円周上の画素データを検出する同心円検出部と、
p個の各円について、円周上の各画素データにおける画素値の勾配の角度と前記支配的勾配との差分値に円の半径の平方根を乗じた重み付き差分値を、それぞれ算出する重み付き差分値算出部と、
前記重み付き差分値についてのq(q≧2)個の階級を有する度数分布を、p個の各円についてそれぞれ作成する度数分布作成部と、
p個の各円について、各度数を成分とするq次元のベクトルをそれぞれ算出し、算出された各q次元ベクトルから、p×q次元の記述子ベクトルを算出する記述子ベクトル算出部とを備えることを特徴とする特徴量算出装置。
【請求項2】
一の画像データと該一の画像データを平滑化した後に縮小化して得られる他の画像データとを含む画像データ群を作成し、作成した画像データ群を、前記画像データの代わりに、前記コーナー量算出部に入力する画像データ群作成部を備えることを特徴とする請求項1に記載の特徴量算出装置。
【請求項3】
前記支配的配向算出部は、前記特徴点および該特徴点の周囲の8個の画素データにおける画素値の勾配の角度の平均値、該特徴点を中心とする半径が3画素の円上の画素データのうち該円上の画素データ全体における画素値の勾配の角度の平均値よりも大きな勾配の角度を有する画素データにおける勾配の角度の平均値、または、該特徴点を中心とする半径が3画素の円上の画素データのうち該円上の画素データ全体における画素値の勾配の角度の平均値よりも小さな勾配の角度を有する画素データにおける勾配の角度の平均値を、前記支配的配向として算出するように構成されることを特徴とする請求項1または2に記載の特徴量算出装置。
【請求項4】
前記同心円検出部は、pの値を8に設定するように構成され、
前記度数分布作成部は、qの値を8に設定するように構成されることを特徴とする請求項1〜3のいずれか1つに記載の特徴量算出装置。
【請求項5】
請求項1〜4のいずれか1つに記載の特徴量算出装置と、
前記記述子ベクトルを用いて2以上の画像データを接続して1つの画像データに合成する画像接続部とを備えることを特徴とする画像接続装置。
【請求項6】
請求項1〜4のいずれか1つに記載の特徴量算出装置と、
前記記述子ベクトルを用いて一の画像データの中から他の画像データを検索する画像検索部とを備えることを特徴とする画像検索装置。
【請求項7】
入力された画像データを構成する複数の画素データについて、ハリス行列をそれぞれ算出し、算出したハリス行列を用いてコーナー量をそれぞれ算出するステップと、
前記画像データを構成する画素データのうち、周囲の画素データについてのコーナー量よりも大きなコーナー量を有する画素データを、特徴点として検出するステップと、
前記特徴点の画素値および該特徴点の隣域の画素データの画素値から、該特徴点付近における画素値の勾配の角度を示す支配的配向を算出するステップと、
前記画像データにおいて、前記特徴点を中心とする半径の異なるp(p≧2)個の円の円周上の画素データを検出するステップと、
p個の各円について、円周上の各画素データにおける画素値の勾配の角度と前記支配的勾配との差分値に円の半径の平方根を乗じた重み付き差分値を、それぞれ算出するステップと、
前記重み付き差分値についてのq(q≧2)個の階級を有する度数分布を、p個の各円についてそれぞれ作成するステップと、
p個の各円について、度数を要素とするq次元のベクトルをそれぞれ算出し、算出された各q次元ベクトルから、p×q次元の記述子ベクトルを算出するステップとを含むことを特徴とする特徴量算出方法。
【請求項8】
コンピュータを、請求項1〜4のいずれか1つに記載の特徴量算出装置として機能させることを特徴とする特徴量算出プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−38290(P2012−38290A)
【公開日】平成24年2月23日(2012.2.23)
【国際特許分類】
【出願番号】特願2011−26592(P2011−26592)
【出願日】平成23年2月9日(2011.2.9)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
【公開日】平成24年2月23日(2012.2.23)
【国際特許分類】
【出願日】平成23年2月9日(2011.2.9)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】
[ Back to top ]