検索対象画像内でテンプレート画像と類似している画像領域を検索する画像処理技術として、フルサーチ法が最も使用されている。このフルサーチ法では、最も類似しているT箇所(Tは1以上の整数)を検出する場合、検索対象画像上でテンプレート画像を1ピクセル間隔でシフトしつつ、各位置で検索対象画像とテンプレート画像間の類似度を測る類似尺度として、例えば絶対差分値和Sum of Absolute Differences(SAD)を計算し、最も小さいSADからT番目に小さいSADまでを与えるT個の検索対象画像内のテンプレート画像、若しくはテンプレート画像の類似画像の位置を見つけるものである。
ここで、テンプレート画像Aにおける位置(i,j)での画素値をa(i,j)(1≦i≦N,1≦j≦M)、検索対象画像Bにおける位置(i,j)での画素値をb(i,j)(1≦i≦X,1≦j≦Y,N≦X,M≦Y)、検索位置としてテンプレート画像Aの座標(1,1)と同じ位置の検索対象画像Bの座標値を(c,d)(1≦c≦X−N+1,1≦d≦Y−M+1)とすると、検索位置(c,d)でのSADは以下の(1)式により求めることができる。
フルサーチ法では、閾値としてT個の値を準備し、検索位置までの中でSADが一番小さい値からT番目に小さいSADまでを、SADmin,1からSADmin,tとし、検出位置でのSADがT番目に小さい値であるSADmin,tよりも大きい場合は検出候補ではないとしてスキップし、SADmin,t以下である場合は、SADmin,tを破棄し、検出位置のSADを新たに閾値として追加し、T個の中でソートしてT番目に小さい値を新たにSADmin,tとする。全ての画素で以上の処理を実施後、T個の閾値が算出された位置をそれぞれ検出位置として出力する。また場合に応じて、小さい閾値順に結果を出力する。
一方、フルサーチ法における計算時間を削減する手法の一つとして、Coarse−to−fine法が提案されている。この手法はテンプレート画像を1画素間隔でシフトしてSADを計算するフルサーチ法とは異なり、まず、粗い画素間隔で検索対象画像全体を探索して、最も小さいSADからT番目に小さいSADを与えるT個の位置を粗く推定し、その後探索で得られた位置の周囲をより細かい画素間隔で探索してより最適な位置を推定するという、coarse−to−fineの探索戦略に基づいて、最も小さいSADからT番目に小さいSADまでの値を与えるT個の検索対象画像内のテンプレート画像の位置を見つけるものである。
また、フルサーチ法より高速に検索するための手法として、検索対象画像とテンプレート画像との類似度として、例えばSADやユークリッド距離等のフルサーチ法と同様の繰り返し演算によって得られる類似度を適用し、検索位置での演算途中の類似度が、それまでに得られた閾値を超えたところで当該演算を打ち切って次の検索位置に移動するSequential Similarity Detection Algorithm(SSDA法)(例えば、非特許文献1参照)が提案されている。以下、上記閾値を超えたところで当該演算を打ち切った時点における類似度を、「ssda距離」という。
また、フルサーチ法より高速な検索をするための別の手法として、Successive Elimination Algorithm(SEA法)が提案されている(例えば非特許文献2参照)。SEA法は、三角不等式|a+b|≦|a|+|b|を用いて、各検索位置においてSADを計算する必要があるか否かを判定することによりSADを計算する回数を削減して、画像検索処理を高速化する手法である。
図4は、SEA法の処理動作の流れを示すフローチャートである。図4に示すように、SEA法においては、各検索位置においてsea距離であるsea(c,d)を、以下の(2)式により計算する(ステップS31)。
次に、このsea距離が、それまでの検索で得られたT番目に小さいSADであるSADmin,tより大きいか否かを判定し(ステップS32)、sea(c,d)>SADmin,tであれば検索位置(c,d)をスキップし、次の検索位置に移る。一方、sea(c,d)≦SADmin,tあれば、この検索位置でSAD(c,d)を計算し(ステップS33)、このSAD(c,d)のSADmin,tに対する大小を判定する(ステップS34)。SAD(c,d)>SADmin,tの場合、そのまま次の検索位置に移る。SAD(c,d)≦SADmin,tの場合は、既に記憶されているSADmin,tを破棄し、検出位置のSADを新たに閾値として追加し、T個の中でソートしてT番目に小さい値を新たにSADmin,tとし、この検索位置を記憶する(ステップS35)。この処理を全ての検索位置で実施し(ステップS36、S37)、最後の検索位置まで検索が終了した後、最も小さいSADmin,tの値、該値が算出された検索位置(c,d)を検索結果として出力する(ステップS38)。これにより、テンプレート画像に最も類似している画像領域の検索位置が出力される。なお、この際の出力対象はSADmin,tの値と検索位置(c,d)に限定されず、最終的なSADmin,1からSADmin,tまでが得られたT個の検索位置を検索結果として出力する形態としても良い。
ここで、SEA法により、SADを用いて類似する画像領域を検索する場合に、sea(c,d)としてSADmin,tより大きな値が得られた時点で、SAD(c,d)>SADmin,tとなり、検索位置をスキップすることができる理由について説明する。
三角不等式|x|+|y|≧|x+y|から、
…(6)
となるので、当該検索位置でのSADを計算する必要がなく、スキップ可能となる。
また、画像を複数の矩形に複数の階層で等分割し、閾値を超えるようになるまでより深い階層の矩形毎にsea距離およびmsea距離を計算するMultilevel Successive Elimination Algorithm(MSEA法)が提案されている(例えば、非特許文献3参照)。
図5は、MSEA法の処理動作の流れを示すフローチャートである。図5に示すように、MSEA法においては、SEA法と同様に、各検索位置においてsea距離であるsea(c,d)を計算する(ステップS41)。
次に、このsea距離がそれまでの検索で得られたT番目に小さいSADであるSADmin,tより大きいか否かを判定し(ステップS42)、sea(c,d)>SADmin,tであれば検索位置(c,d)をスキップし、次の検索位置に移る。sea(c,d)≦SADmin,tの場合、この検索位置で第一段階のmsea距離であるmsea(c,d)を、以下の(7)式と(8)式とにより計算する(ステップS43)。
ここで、P1(1)=0,P1(2)=N/2,P1(3)=N,Q1(1)=0,Q1(2)=N/2,Q1(3)=Mである。
msea距離は、テンプレート画像を分割した矩形領域内で個別に計算したsea距離であるpsea距離を総計した値である。MSEA法では、矩形領域はテンプレート画像をx軸方向およびy軸方向ごとに等分割することにより得られる。
次に、このmsea距離がSADmin,tより大きいか否かを判定し(ステップS44)、msea(c,d)>SADmin,tであれば検索位置(c,d)をスキップし、次の検索位置に移る。msea(c,d)<SADmin,tの場合、事前に設定した全ての段階のmsea(c,d)を計算したか否かを判定する(ステップS45)。全ての段階のmsea(c,d)を計算していない場合、ステップS43に移行し、この検索位置で次の段階のmsea距離を、(9)式と(10)式とを用いて計算する。
ここで、P2(1)=0,P2(2)=N/4,P2(3)=2×N/4,P2(4)=3×N/4,P2(5)=N,Q2(1)=0,Q2(2)=N/4,Q2(3)=2×N/4,Q2(4)=3×N/4,Q2(5)=Mである。
第2段階目のmsea距離は、第1段階目の各矩形領域を更に等分割して得られる矩形領域を用いて計算する。続いて、同様に、このmsea距離とSADmin,tとの大小関係により、検索をスキップするか、次の段階のmsea距離を計算するかを判定する(ステップS45)。
事前に設定した全ての段階までmsea距離を計算し、かつ最後の段階において得られたmsea距離がmsea(c,d)<SADmin,tの場合、この検索位置でSAD(c,d)を計算し(ステップS46)、このSAD(c,d)のSADmin,tに対する大小を判定する(ステップS47)。
SAD(c,d)>SADmin,tの場合、次の検索位置に移る。SAD(c,d)≦SADmin,tの場合は、SADmin,tを破棄し、検出位置のSADを新たに閾値として追加し、T個の中でソートしてT番目に小さい値を新たにSADmin,tとし、この検索位置を記憶する(ステップS48)。
この処理を全ての検索位置で実施し(ステップS49、S50)、最後の検索位置まで検索が終了した後、最も小さいSADmin,tの値、該値が算出された検索位置(c,d)を検索結果として出力する(ステップS51)。これにより、テンプレート画像に最も類似している画像領域の検索位置が出力される。なお、この際の出力対象はSADmin,tの値と検索位置(c,d)に限定されず、最終的なSADmin,1からSADmin,tまでが得られたT個の検索位置を検索結果として出力する形態としても良い。
ここで、MSEA法により、SADを用いて類似する画像領域を検索する場合に、msea(c,d)としてSADmin,tより大きな値が得られた時点で、SAD(c,d)>SADmin,tとなり、検索位置をスキップすることができる理由について説明する。
MSEA法により、SADを用いて類似する画像領域を検索する場合には、SEA法により、SADを用いる場合と同様に、三角不等式から、
…(13)
となり、第1段階(sea距離)から順にチェックしていき、SAD
min,tより大きな値が得られた時点で、SAD(c,d)>SAD
min,tとなり、検索位置をスキップできる。
図6は、以上の従来技術における画像検索の処理動作の説明に供する模式図である。図6に示すように、フルサーチ法では、検索対象画像50上でテンプレート画像51を1画素ずつスライドさせながら、その位置での類似性を判断する。類似度としてSADを使用した場合、その検索位置(c,d)でのSAD(c,d)がそれまで検索した中で最小のSADmin,tより小さければ、SADmin,t=SAD(c,d)とし、検索位置(c,d)を記憶する。当該処理を検索対象画像の全ての画像領域において実施し、SADmin,tおよびSADmin,tをとる位置(c,d)を出力する。
SAD(c,d)は計算処理量が多い(すなわち処理が重い)ことを考慮し、各検索位置(c,d)においてSAD(c,d)を計算する前に、計算処理量が少ないSEA法、MSEA法を用いて、SADを計算する必要があるのか、計算せずにスキップして次の検索位置に移って良いのかの判定を行うことにより、SADの計算を回避した分の処理量を削減し、より高速な検索を行う。この際の判定方法として、簡略化した処理で求められるsea距離若しくはmsea距離を用い、上記値とSADminを比較する。
一方、SEA法およびMSEA法に対し、sea距離若しくはmsea距離を用いて、検索対象画像中でsea距離若しくはmsea距離が最小若しくはそれに類する値となる複数の位置を検出し、この位置に対してのみSADを計算し、最小のSADをとる位置を検索結果とすることにより、SADの計算処理回数を削減するGlobal Elimination Algorithm(GEA法)が提案されている(例えば、非特許文献4参照)。GEA法において、T個の結果を出力する場合、sea距離若しくはmsea距離が最小若しくはそれに類する値となるT個以上の位置を検出し、検出した位置に対してのみSADを計算し、最も小さいSADからT番目に小さいSADまでの値をとるT個の位置を検索結果とする処理が可能である。
また、SEA法およびMSEA法に対し、sea距離若しくはmsea距離を用いて、検索対象画像中でsea距離若しくはmsea距離が最小となる位置を検出し、この位置でSADを計算し、計算したSADを閾値として用いて再度開始位置から検索を行い、最小のSADをとる位置を検索結果とすることにより、SADの計算処理回数を削減するInitial Threshold Estimation(ITE法)が提案されている(例えば、非特許文献5参照)。
以下、図面を参照して、本発明の実施の形態に係る画像検索装置を説明する。図1は本実施の形態の構成を示すブロック図である。図1において、符号100は、コンピュータ装置で構成され、検索対象画像内でテンプレート画像と類似している画像領域を検索する画像検索装置である。画像検索装置100は、入力部10、初期閾値設定部20、画像検索部30および出力部40を含んで構成される。
入力部10は、検索対象画像を示す画像情報(以下、検索対象画像情報という。)と、検索対象画像上にて検索したい画像であるテンプレート画像を示す画像情報(以下、テンプレート画像情報という。)とを入力する。この際の入力方法は任意であり、有線通信や無線通信により外部装置から入力しても良く、画像検索装置100に記録媒体を接続して当該記録媒体から入力しても良い。
初期閾値設定部20は、入力部10により入力された検索対象画像情報が示す検索対象画像上に、同じく入力部10により入力されたテンプレート画像情報が示すテンプレート画像と同じ大きさの検索対象領域(検索位置)を設定し、テンプレート画像による検索位置を移動させつつ、各検索位置における検索対象画像とテンプレート画像との類似度を示す第1の類似度を算出する。
初期閾値設定部20は、第1の類似度を算出する際、例えば検索対象画像の左上隅の座標(0,0)から検索位置を1画素ずつ移動させつつ、各検索位置における検索対象画像とテンプレート画像との第1の類似度を計算する。なお、この際の検索位置の開始位置は検索対象画像の左上隅に限らず、右上隅、左下隅、右下隅等、検索対象画像の何れの位置も採り得る。
初期閾値設定部20は、算出した第1の類似度のうち、最も類似していることを示す値から予め定められた順位で類似していることを示す値までの類似度が算出された検索位置を特定する。なお、本実施の形態では、上記予め定められた順位Tとして、1以上の整数を適用する。
そして、初期閾値設定部20は、特定した検索位置における第2の類似度を算出する。
さらに、初期閾値設定部20は、Tが1でない場合には、算出したT個の第2の類似度を類似の度合いが高い順にソーティングした後、算出した第2の類似度の値を画像検索部30に出力する。なお、出力した第2の類似度の値は、画像検索部30による検索時に各種判定処理の初期閾値として用いられる。以下では、錯綜を回避するため、順位Tが2以上である場合について説明する。
本実施形態に係る第1の類似度および第2の類似度は、以下の(A)および(B)に示す条件の何れか一方が成り立つものである。
(A)演算負荷:「第1の類似度」<「第2の類似度」
(B)算出精度:「第1の類似度」<「第2の類似度」
なお、第1の類似度および第2の類似度は、上記(A)及び(B)の双方の条件が成り立つものであってもよい。以下、本実施形態では、第1の類似度および第2の類似度が上記(A)及び(B)の双方の条件を満たすものとして説明する。
本実施の形態では、第1の類似度として前述したsea距離およびmsea距離を用いており(msea距離において分割数が0(零)の場合がsea距離である)、第2の類似度として前述したSADを用いている。
なお、第1および第2の類似度は、値が小さいほど、類似していることを意味する。よって、各類似度において最も類似している画像領域とは、検索対象画像とテンプレート画像との間のsea距離、msea距離ないしSADが最小となる画像領域を意味する。同様に、各類似度においてT番目に類似している画像領域とは、検索対象画像とテンプレート画像との間のsea距離、msea距離ないしSADがT番目に小さい値となる画像領域を意味する。
また、初期閾値設定部20は、検索対象画像内の各検索位置における第1の類似度を計算する際に、検索対象画像に対する積分画像とテンプレート画像に対する積分画像とをそれぞれ生成し、生成した各々の積分画像を用いて計算しても良い。
一方、画像検索部30は、初期閾値設定部20から入力した第2の類似度を初期閾値として、検索対象画像に対するテンプレート画像による画像検索を行う。この際、画像検索部30は、第2の類似度の値を、最も小さい値からT番目に小さい値までのT個の初期閾値として設定し、検索対象画像においてテンプレート画像と同じ大きさの画像領域を切り出し、この切り出した画像領域(検索位置)において、予め定められた類似度を用いて画像検索を実行する。
例えば、検索方法としてSSDA法を用いる場合、テンプレート画像と検索対象画像における検索位置との間の類似度の計算途中のssda距離と、それまで検索して得られたT番目に類似の度合いが高い閾値(SADmin,t)とを比較し、ssda距離が当該閾値より大きい場合は、そのときの検索位置をスキップする。この検索位置において、一度もスキップせず類似度の計算を終えた場合は、最後に得られた類似度(ssda距離=SAD)とそれまで検索して得られたT番目に類似の度合いが高い閾値とを比較し、計算した類似度が当該閾値より小さい値である場合のみ、当該閾値を破棄し、計算した類似度を新たに閾値として追加し、T個の閾値をソートして最も類似の度合いが高い閾値からT番目に類似の度合いが高い閾値までをSADmin,1からSADmin,tまでのT個の閾値として新たに設定する。
また、検索方法としてフルサーチ法を用いた場合は、テンプレート画像と検索対象画像における検索位置と間のSADをT番目に類似の度合いが高い閾値(SADmin,t)と比較し、SADが当該閾値より大きい値である場合は、そのときの検索位置をスキップする。そうでない場合は、T番目に類似の度合いが高い閾値(SADmin,t)を破棄し、計算したSADを新たに閾値として追加し、T個の閾値をソートして最も類似の度合いが高い閾値からT番目に類似の度合いが高い閾値までをSADmin,1からSADmin,tまでのT個の閾値として新たに設定する。この処理を検索対象画像上で検索位置をずらしながら繰り返し、テンプレート画像との間の類似度の、最も類似の度合いが高い値からT番目に類似の度合いが高い値までに対応するT個の検索位置を、検索対象画像内でテンプレート画像と類似しているT箇所の画像領域として検索する。
また、検索手法としてSEA法若しくはMSEA法を用いる場合、テンプレート画像と検索対象画像における検索位置との間の各分割段階での類似度(sea距離若しくはmsea距離)を計算し、計算した類似度とそれまでの検索で得られたT番目に類似の度合いが高い閾値(SADを用いた場合はSADmin,t)とを比較することにより、その時点の検索対象画像の検索位置についてテンプレート画像との詳細な類似度(SAD)を計算するか否かを決定する。このとき、各検索位置において、最終段階での類似度がそれまでの検索で得られた類似度の最も類似の度合いが高い閾値よりも類似の度合いが高い場合には上記詳細な類似度を計算し、この類似度がそれまでの検索で得られているT番目に類似の度合いが高い閾値よりも値が小さい場合のみ、当該閾値を破棄し、計算した上記詳細な類似度を新たに閾値として追加した後、T個の閾値をソートして最も類似の度合いが高い値からT番目に類似の度合いが高い値までをSADmin,1からSADmin,tとして新たに設定する。この処理を検索対象画像上で検索位置をずらしながら繰り返し、テンプレート画像との上記詳細な類似度が最も類似の高い値からT番目に類似の度合いが高い値までに対応するT個の検索位置を、検索対象画像内でテンプレート画像と最も類似している画像領域として検索する。
出力部40は、画像検索部30による検索結果、すなわち、検索対象画像内でテンプレート画像と類似している画像領域を示す情報を出力する。なお、この画像領域を示す情報は、検索対象画像内におけるテンプレート画像と類似している画像領域の、検索対象画像内における位置を示す情報としても良い。この位置を示す情報は、例えば当該画像領域の検索対象画像における左上隅の座標値を例示することができる。
次に、図2を参照して、本実施の形態に係る画像検索装置100の処理動作を説明する。図2は、本実施の形態に係る画像検索装置100の処理動作の流れを示すフローチャートである。
まず、入力部10は、検索対象画像情報を入力する。そして、入力部10は、検索クエリーであるテンプレート画像情報を入力する(ステップS1)。双方の画像情報が入力された後、初期閾値設定部20は、入力部10により入力したテンプレート画像情報により示されるテンプレート画像に対して、第1の類似度の値が最も類似していることを示す値(最小値)から予め定められた順位Tで類似していることを示す値までのT個の第1の類似度となる検索位置を特定する(ステップS2)。
次に、初期閾値設定部20は、特定したT個の検索位置における第2の類似度を求め、そして、T個の第2の類似度をソーティングし、最も値が小さい第2の類似度からT番目に値が小さい第2の類似度までのT個の値を画像検索部30に対して出力する(ステップS3)。
続いて、画像検索部30は、初期閾値設定部20から入力したT個の値を初期閾値として、この初期閾値を用いて画像検索処理を行い、T個の画像領域を類似箇所として検出する(ステップS4)。
出力部40は、画像検索部30により検出された類似箇所を検索結果として出力する(ステップS5)。
以上の処理動作により、本実施の形態に係る画像検索装置100は、検索対象画像内においてテンプレート画像と類似しているT個の画像領域を検索することができる。なお、出力部40により出力される検索結果は、T個の画像領域を出力するものに限定されず、テンプレート画像に最も類似している1個の画像領域を出力するものとしても良い。また、出力部40は、画像領域を出力する際、表示装置(図示省略。)に検索対象画像を表示させると共に、表示させた検索対象画像上に、テンプレート画像と類似しているT個の画像領域を、例えば矩形状の枠で表示させても良い。
次に、図3を参照して、図2に示すステップS2において実行される、初期閾値算出部20による処理について詳細に説明する。まず、初期閾値設定部20は、第1の類似度および第2の類似度を算出する際に画素値の積分値を高速に求めるため、テンプレート画像および検索対象画像から各々に対応する積分画像を作成する(ステップS20)。例えば、テンプレート画像aに対する積分画像aiの座標(i,j)における積分値ai(i,j)は、(14)式により算出する。
但し、a(0,0)=a(0,1)=a(1,0)=0である。
同様に、検索対象画像bに対する積分画像biの座標(i,j)における積分値bi(i,j)は、(15)式により算出する。
但し、b(0,0)=b(0,1)=b(1,0)=0である。
次に、初期閾値設定部20は、検索対象画像上にテンプレート画像と同じ大きさの領域(検索位置)を設定し、例えば左上隅の座標(0,0)から検索位置を1画素ずつ移動させながら、各検索位置における検索対象画像とテンプレート画像との間の第1の類似度を計算する(ステップS21)。この第1の類似度は、画像検索部30における閾値検索向けの類似度であり、sea距離を示す(2)式や、msea距離を示す(7)式などを利用する。なお、以下のステップでは、sea距離および1段階目のmsea距離を利用する場合について説明する。
初期閾値設定部20は、検索対象画像の検索位置(c,d)におけるsea距離を算出する処理を行う。続いて、初期閾値設定部20は、このsea距離がそれまでの画像検索で得られたT番目に小さい閾値であるTHmin,t以上であるか否かを判定する(ステップS22)。本実施の形態では、本ステップS2の実行を始める前の初期値として、THmin,1からTHmin,tまでのT個の各閾値は十分に大きい値に設定されている。この判定の結果が、sea(c,d)≧THmin,tである場合、初期閾値設定部20は、検索位置(c,d)をスキップし、全ての位置での検索が終了しているか否かを判定する(ステップS26)。ステップS26で判定した結果が、全ての位置での検索が終了していない場合、初期閾値設定部20は、次の検索位置に移る(ステップS27)。
一方、ステップS22の判定結果が、sea(c,d)≧THmin,tでない場合、初期閾値設定部20は、この検索位置で第1段階のmsea距離であるmsea(c,d)を(16)式により計算する(ステップS23)。
ここで、初期閾値設定部20は、各psea距離を高速に算出するために、先に作成した積分画像aiおよびbiを用いる。ここで、U1(k)<x≦U1(k+1)およびV1(k)<y≦V1(k+1)のpsea距離は、(17)式、(18)式および(19)式により算出する。
このU1(1),…,U2(3)は、第1段階のmsea距離を求める際のx軸方向の分割位置の各座標である。また、V1(1),…,V1(3)も、U1(1),…,U2(3)と同様に、第1段階のmsea距離を求める際のy軸方向の分割位置の座標である。
次に、初期閾値設定部20は、計算したmsea距離がTHmin,t以上であるか否かを判定する(ステップS24)。この判定した結果がmsea(c,d)≧THmin,tである場合、初期閾値設定部20は、検索位置(c,d)をスキップし、次の検索位置に移る(ステップS26、S27)。一方、判定した結果がmsea(c,d)≧THmin,tでない場合(msea(c,d)<THmin,tの場合)、初期閾値設定部20は、THmin,tをこのmsea(c,d)に更新し、THmin,1からTHmin,tまでのT個をソートし、最小の値からT番目に小さい各閾値を再度THmin,1からTHmin,tとして設定する。
また、初期閾値設定部20は、このときの検索位置(c,d)を記憶する(ステップS25)。初期閾値設定部20は、このような処理を検索対象画像における全ての検索位置で実行する(ステップS26、S27)。このようにして、検索対象画像における最後の検索位置まで検索が終了する。
次に、画像検索部30の処理動作(図2におけるステップS4の処理動作)の詳細を説明する。前述したように、ステップS3において、初期閾値設定部20は、THmin,1からTHmin,tまでに対応するT個の検索位置(c,d)において、SAD(c,d)を計算し、得られたT個のSADをソーティングし、画像検索部30に出力する。これを受けて、画像検索部30は、最も小さいSADからT番目に小さいSADであるSADmin,1からSADmin,tまでのT個の値を各々の初期閾値として設定する。画像検索部30は、このSADmin,1からSADmin,tまでのT個の値を閾値として用いて、検索対象画像に対する画像検索を各検索位置で実行する。
画像検索部30は、例えば公知のMSEA法(図5参照)を用いて、画像検索処理を行う。ここで、画像検索部30は、SADmin,1からSADmin,tまでを閾値として用いることにより、計算処理量の削減が可能である画像検索方法であれば、MSEA法でない手法を適用しても良い。例えば、SEA法(図4参照)や前述したSSDA法により画像検索処理を実行してもよい。その後、画像検索部30は、SADmin,1からSADmin,tまでの値が得られた各検索位置(c,d)およびSADを検索結果として、出力部40を介して出力する。
なお、以上の説明においては、全ての検索位置において、sea距離およびmsea距離の計算を行うが、SADを用いたフルサーチ法とは異なり、極めて少ない計算量で実行することが可能である。この場合、SEA法およびMSEA法での検索結果の出力とは、SADの計算を実施しない点が異なる。
また、本実施の形態は、第1の類似度を算出する際にsea距離およびmsea距離の双方を用いているが、これに限定されず、sea距離およびmsea距離のいずれか一方のみを用いるようにしても良い。例えば、msea距離のみを用いる場合には、ステップS21及びS22の処理が省略される。一方、例えば、sea距離のみを用いる場合には、ステップS21及びS22の処理が省略され、ステップS23乃至S25においてmsea距離の代わりにsea距離が用いられる。
以上説明したように、本実施の形態に係る画像検索装置100は、初期閾値設定部20が、検索対象画像に対して第1の類似度を用いて、この第1の類似度が最も小さい値からT番目に小さい値までのT個の検索位置を検出する。そして、初期閾値設定部20が、これらの検索位置において、最終的な画像検索の判定に用いる第2の類似度であるSADを計算する。次に、初期閾値設定部20が、このT個のSADをソーティングし、最も値が小さいSADからT番目に値が小さいSADまでを決定する。そして、初期閾値設定部20は、決定したT個のSADを画像検索部30に出力する。画像検索部30は、初期閾値設定部20から入力したT個のSADについて、最も値が小さいSADからT番目に値が小さいSADを、それぞれSADmin,1からSADmin,tまでの初期閾値として設定し、設定した初期閾値を用いて検索対象画像内を検索し、複数の画像領域との類似度が最も類似の度合いが高いものからT番目に類似の度合いが高いものまでの画像領域を、検索対象画像内でテンプレート画像と類似している画像領域として検索する。
これにより、画像検索装置100は、検索対象画像内でテンプレート画像と類似している複数の画像領域を検索する場合に、より少ない階層および処理回数でSADを計算するか、その時点の検索位置をスキップするか否かの判定や、より少ない計算回数でのssda距離の計算の打ち切り等を可能とし、検索対象画像内でテンプレート画像と類似している画像領域を高速に検索することができる。
また、初期閾値設定部20において、矩形領域内の画素値の積算値を、積分画像を用いて計算することにより、sea距離およびmsea距離の高速な計算が可能である。
また、前述した説明では、第1の類似度としてsea距離およびmsea距離の第1段階を用いたが、sea距離のみ、若しくはmsea距離の第2段階以降の距離を使用することも可能である。
また、初期閾値設定部20において、検索位置を1画素ずつ移動させながら第1の類似度を計算したが、さらに高速化する為に、2画素以上の間隔で移動しながら第1の類似度を計算する事も可能である。
また、前述した説明では、T>1を想定しているが、T=1とすることで従来のITE法と同等の処理を実施する事も可能である。
また、前述した説明では、画素値の積分値を算出する際に積分画像を用いたが、当然ながら処理時間は増えるものの、都度画素値の加算処理を実行する手法も使用可能である。
また、前述した説明では、画像検索部30の画像検索処理の方法としてMSEA法を用いたが、類似度の値(SADmin,t等)を閾値として用いることにより画像検索処理の高速化を図る画像検索処理の方法(SSDA法やSEA法等)であれば、本発明を適用することが可能である。
これらにより、従来手法より早い分割段階でSAD等の画像検索の最終結果の判定に用いる類似度の計算の途中打ち切りや、この類似度の計算を省略する回数が増加し、より高速な画像検索処理が可能となる。また、Coarse−to−fine法と異なり、画像検索部30で網羅的な検索を実行することで、必ず最適な結果を得ることが可能である。また、本発明による画像検索装置100は、画像検索のみならず、ブロックマッチング動き予測法の手法として、ビデオシーケンスの圧縮処理において、2つの隣り合う時間軸の画面上で現在処理中のブロックに最も近いブロックをサーチする目的にも利用可能である。
また、前述した説明では、初期閾値設定部20において、画像間の類似性を判定する第1の類似度としてsea距離およびmsea距離を用い、画像検索部30における検索結果を判定する第2の類似度としてSADを用いたが、これらとは異なる類似度や判定基準を用いることも可能である。
以下に、例えば、SADの代わりに正規化相関(NCC)を、sea距離およびmsea距離の代わりに、コーシー・シュワルツの不等式から得られるNCCの近似値を各々用いる場合の形態例について説明する。
なお、第1の類似度としてsea距離およびmsea距離を用いる場合と異なり、第1の類似度としてNCCを用いる場合、第1の類似度は、NCCの値が大きいほど、類似していることを意味する。
NCCの値は、以下の(20)式で与えられる。
…(23)
である。また、ここで‖A‖は最初に一度計算すれば良く、また、‖B(c,d)‖は各検索箇所で1度計算すれば良く、それぞれ以後の計算は不要である。
コーシー・シュワルツの不等式は、以下の(24)式で与えられる。
この場合、ψ(c,d)にコーシー・シュワルツの不等式を適用すると、以下の(25)式となる。
第q段目に分割された状態から得られる値をmcclevelqとすると、
…(26)
となるので、MSEA法の場合と同様に、
上記値に、‖A‖と‖B(c,d)‖を用いて、検索位置のmncc(c,d)を以下の(28)式により計算する。
従って、例えば前述の例における初期閾値設定部20における検索でのsea距離およびmsea距離の代わりに、mnccを第0段目から予め指定した段階までを利用して、最も大きいmnccからT番目に大きいmnccまでのT個の位置を検出し、この検出位置で得られるT個のNCCをソーティングして大きい順に1番目からT番目までのNCCの値を求め、各NCCの値を画像検索部30に出力し、画像検索部30で最も値が大きいNCCからT番目に値が大きいNCCまでを、NCCmax,1からNCCmax,tまでの初期閾値として設定し、これらのT個の閾値を用いて、画像検索部30において画像検索結果を判定する類似度としてNCCを用いて画像検索処理をすることにより、より少ない計算量で画像検索を実行することが可能となる。
また、SADの計算時に事前に積分画像を作成しておくことで、各矩形領域内の値の加算(=積分)を高速に計算可能なことと同様に、事前に2乗値の積分画像を作成しておけば、容易に各矩形領域内の2乗値の加算(=積分)を計算することが可能となる。具体的には、テンプレート画像aに対する2乗値の積分画像ai2の座標(i,j)における積分値ai2(i,j)は、以下の(29)式により算出する。
ただし、ai2(0,0)=ai2(1,0)=ai2(0,1)=0である。
同様に、検索対象画像bに対する2乗値の積分画像bi2の座標(i,j)における積分値bi2(i,j)は、以下の(30)式により算出される。
ただし、bi2(0,0)=bi2(1,0)=bi2(0,1)=0である。各座標値に囲まれた2乗積分値もSADを用いた場合の積分画像の例と同様の方法で求められる。
なお、本実施の形態では、検索対象画像およびテンプレート画像がグレイスケールの画像であるものとして説明したが、これに限定されず、検索対象画像およびテンプレート画像がカラー画像であっても良い。この場合、カラー画像情報におけるR(赤)、G(緑)、B(青)の原色毎に本実施の形態に記載の第1の類似度および第2の類似度を演算し、これら類似度を用いて画像検索時の初期閾値の算出等を行う。
また、本実施の形態に係る画像検索装置100が備えている入力部10、初期閾値設定部20、画像検索部30および出力部40という各構成は、専用のハードウェアにより実現されるものであってもよく、また、メモリおよびマイクロプロセッサにより実現させるものであってもよい。また、この各構成は、メモリおよびCPU(中央演算装置)により構成され、各構成の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
以上説明したように、本発明では、テンプレート画像および検索対象画像間で、演算負荷が小さい第1の類似度を用いて当該類似度が最も類似していることを示すものからT番目に類似していることを示すものまでの検索位置を特定し、特定した検索位置においてSAD等の最終的な画像検索処理結果の判定に用いる第2の類似度を計算し、このT個の第2の類似度をソーティングして、最も類似の度合いが高い値からT番目に類似の度合いが高い値までのT個の第2の類似度を画像検索の各種判定処理に閾値として用いる初期閾値として設定し、このT個の初期閾値を用いて再度通常の検索処理を検索開始位置から実行する。本実施の形態では、第1の類似度としてsea距離やmsea距離、若しくはコーシー・シュワルツの不等式から得られるNCCの近似値であるmnccを用い、さらにsea距離やmsea距離及びmnccを積分画像を用いて計算するようにした。
これにより、適切な検索位置で得られるSAD等の検索結果の判定に用いられる類似度の値と同等、若しくは当該類似度の値により近い値を、判定処理で閾値として用いる最も類似の度合いが高い値からT番目に類似の度合いが高い値までの初期閾値として設定して画像検索を実行することにより、検索開始時からより速い段階でのSAD等の類似度の計算の打ち切りや、より少ない計算処理および比較回数で類似度の計算をするか、検索位置をスキップするか否かの判定ができ、検索対象画像内でテンプレート画像と類似している画像領域をより高速に検索することができる。また、本発明による初期閾値を用いて網羅的な画像検索処理を実行することにより、Coarse−to−fine法やGEA法とは異なり、必ず最適な検索結果を得ることが可能になる。
なお、本実施の形態に係る画像検索装置100の各処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより画像検索処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
以上、この発明の実施の形態を図面を参照して詳述してきたが、具体的な構成はこの実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。