JP3938815B2 - ノード作成方法、画像検索方法及び記録媒体 - Google Patents
ノード作成方法、画像検索方法及び記録媒体 Download PDFInfo
- Publication number
- JP3938815B2 JP3938815B2 JP28178298A JP28178298A JP3938815B2 JP 3938815 B2 JP3938815 B2 JP 3938815B2 JP 28178298 A JP28178298 A JP 28178298A JP 28178298 A JP28178298 A JP 28178298A JP 3938815 B2 JP3938815 B2 JP 3938815B2
- Authority
- JP
- Japan
- Prior art keywords
- node
- spatial data
- distance
- memory device
- search
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Analysis (AREA)
Description
【発明の属する技術分野】
本発明は、大量の画像特徴データからユーザが指定する画像特徴データに類似する特徴を検索するような空間データの検索を高速化するノード作成方法、画像検索方法及び記録媒体に関する。
【0002】
【従来の技術】
近年、CPUの高速化及び一時/二次記憶装置の大容量化により、画像を手軽に扱えるようになっただけでなく、ワールドワイドウェブ(WWW)やデジタルカメラの普及により画像データを容易にパーソナルコンピュータ等に取り込むことが可能となっている。このため、我々の身の回りに大量の画像データが氾濫しつつある。このため、近年、このような大量の画像データからユーザが所望する画像を検索するための技術が要望され、脚光を浴び始めている。
【0003】
従来の画像検索では予め人手により画像に属性情報を付与し、この属性情報をもとに検索する方法が一般的であった。しかし、これでは画像データの急増には対応することができない。そこで、近年、画像データから自動的に特徴を抽出し、抽出された画像特徴をもとに指定された画像に類似する画像を検索する類似画像検索の研究が進められ、成果を収めている。
【0004】
画像から抽出される特徴として代表的なものには、色(ヒストグラム)、テクスチャ、形状などがある。類似画像検索では、これらの画像特徴を予め画像から抽出し保管しておく。そして、検索時には、指定された問い合わせ画像から同様に画像特徴を抽出し、すでに抽出されている画像特徴と逐次比較(距離計算)を行なうことで類似する画像を検索する。この方法では、画像特徴の数が少ない場合には処理速度に問題がないが、画像特徴が大量になると必然的に処理速度が遅くなってしまう。そこで、画像特徴のインデックスを生成し検索の高速化を図るというようなことが一般的に行なわれている。
【0005】
画像特徴として代表的であるヒストグラム特徴では、類似度を計算する場合に、類似する色のビンも考慮して類似度を求めなければならない。つまり、ヒストグラムは、ビンで構成される多次元データで表現され、類似度の計算には多次元データの要素間の相関を考慮した距離が利用される。多次元データということから多次元空間インデックスを利用する方法が考えられるが、多次元空間インデックスは一般にユークリッド空間を前提としているため、相関を考慮した距離に応用することは困難である。
【0006】
そこで、距離空間インデックスの研究が進められている。多次元インデックスでは多次元空間上でのオブジェクトの座標値をもとにしてインデックスを生成するのに対し、距離空間インデックスでは距離のみに基づいてインデックスを生成する。つまり、距離空間インデックスは、オブジェクトの座標はまったく関知せず、オブジェクト間の距離のみによってインデックスを生成する。したがって、相関を考慮した距離でも問題なくインデックスを生成することが可能となる。
【0007】
ここで、距離空間インデックスによる類似画像検索の手法について説明する。まず、Oを画像、F(O)を特徴抽出関数、画像特徴をX={X1 ,X2 ,X3 ,……,Xn }とすると、X=F(O)であり、画像間の距離(類似度)は、D(F(Oa),F(Ob))と表される。類似画像検索では、指定した問い合わせ画像に類似する画像を検索する。つまり、問い合わせ画像と各画像との距離を算出し、距離が小さい画像を検索結果とする。なお、検索の指定方法としては、次の二つがある。
・範囲指定検索(range query)
検索範囲を示す円の中心オブジェクト(問い合わせオブジェクト)Oq及び半径Rqを指定し、D(Oq,O)≦Rqを満足するオブジェクトの集合を求める方法である。
・件数指定検索(k−nearest neighbor query)
検索の中心オブジェクトOq及び検索結果kを指定してOqとの距離D(Oq,O)が小さい順に上位k件のオブジェクトOの集合を求める方法である。
【0008】
類似画像検索では、類似する尺度を表す距離定義が重要となる。代表的な特徴間の距離として、次式で表される距離がある。
De(F(X),F(Y))={Σ(X−Y)k}1/k
この距離は、k=2のときにはユークリッド距離であり、K=1のときには市街区距離となる。しかし、色のヒストグラム特徴では、各特徴間の相関を考慮する必要があるため、以下のヒストグラム距離が提案されている。
Dh(F(X),F(Y))=(X−Y)TA(X−Y)
次いで、距離空間インデックスとしては、M−treeやvp−treeがある。
【0009】
M−treeは、例えば、「M-tree: An Efficient Access Method for Similarity Search in Metric Spaces」(Proc. of the 23rd VLDB Conf. Athens, Greece, 1997)に示されているような空間インデックスである。このようなM−treeにおいては、M−treeの各ノードNは中心オブジェクトOと半径とによって形成され、ノードNは複数の子ノードnを有する。図12に示すように、ノードNの円は子ノードnの円を完全に包囲し、ノードNの円は必ずいずれかの子ノードnの円に接する。M−treeでは、各ノードNが中心オブジェクトOとノードNに属するすべての子ノードnの円を包含する円の半径を保持する。さらに、各ノードNは、中心オブジェクトOと親ノードNの中心オブジェクトOとの間の距離を持つ。この距離により、三角不等式に基づいて検索時に距離計算回数を削減することができる。
【0010】
一方、vp−treeは、「Uhlmann, J. K., Satisfying general proximity/similarity queries with metric trees, Information Procedding Letters 40, pp. 175-179, 1991」や「Yianilos, P. N., Data Structure and Algorithms for Nearest Neighbor Search in General Metric Spaces, ACM-SIAM Symp. on Discrete Algorithms, pp. 311-321, 1993」等に示されているような空間インデックスである。このようなvp−treeでは、各ノードの空間はひとつの中心オブジェクト(vantage point)と分割円(二次元空間ではないので実際には円ではないが、説明の都合上円と表す)とによって順次分割される。検索時には、ルートノードから辿り、問い合わせオブジェクトが中心オブジェクトと半径とによって分割されている領域のいずれに属するかを判断し、辿るべき子ノードを決定する。これを繰り返すことで、検索範囲に適合するリーフを探す。
【0011】
距離空間インデックスの検索処理に占める時間は二次記憶へのアクセス時間は勿論のこと、距離計算時間が大きな割合を占める。特に、ヒストグラム距離のように相関を考慮した距離の場合には増大する。したがって、距離計算の回数を減らすことが大きな課題となっている。
【0012】
vp−treeでは、一つの中心オブジェクトに対して複数の分割円を設定した分岐とすることで、中心オブジェクトからの距離を一回計算するだけで複数のノード領域のいずれに属するかを判断することができ、距離計算回数を減らすことができる。しかし、画像特徴の場合には、空間を一つの中心オブジェクトのみで数多く分割しても各領域はきわめて細いリング状になるため、検索時にすべての分割領域が検索範囲と交差してしまい、分割の意味が薄れてしまう傾向がある。
【0013】
【発明が解決しようとする課題】
以上述べた空間距離インデックスのうち、vp−treeは、静的にインデックスを生成するアルゴリズムであり、インデックスを構築した後にオブジェクトを追加登録したり削除したりするというような操作ができないという問題がある。また、前述したように、画像特徴の検索に適用した場合、空間を一つの中心オブジェクトのみで数多く分割しても各領域はきわめて細いリング状になるため、検索時にすべての分割領域が検索範囲と交差してしまい、充分な検索速度を得ることができないという問題もある。さらに、空間を一つの中心オブジェクトで数多く分割するという構造上、単一の空間での検索にしか対応することができないという問題もある。
【0014】
一方、前述したM−treeによれば、動的にオブジェクトの挿入をすることができる。しかしながら、各ノード領域は子ノードの領域を包含するために、各ノード領域が大きくなりすぎる傾向がある。したがって、兄弟ノード同士の領域のオーバーラップが大きくなり、その結果、検索時に木構造を辿る場合の分別率が悪くなり、その結果、多くの子ノードを辿ることとなるために検索速度が低下してしまうという問題がある。また、各ノードは、親ノードとの距離を予め保持することで、検索時に距離計算回数をある程度押さえることができるが、これも充分とはいえない。さらに、vp−tree同様、単一の空間での検索にしか対応することができないという問題もある。
【0015】
本発明の目的は、動的にオブジェクトを挿入することができることを前提としつつ、検索速度を高速度化することである。
【0017】
【課題を解決するための手段】
請求項1記載の発明は、CPUやメモリ装置を主体として構成されるコンピュータで実行される類似度計算に用いられる空間インデックスを構成するノードを作成するノード作成方法において、第1のノードと当該第1のノードに属する複数の空間データとを前記メモリ装置に記憶する記憶ステップと、前記メモリ装置に記憶された複数の前記空間データのうち、一の空間データを選択する選択ステップと、前記メモリ装置から選択した空間データと他の空間データとの距離を算出する距離算出ステップと、算出した前記距離のうち、中間の値を有する距離と、選択した空間データとを用いて第2のノードを作成するノード作成ステップと、を含む。
【0019】
請求項2記載の発明は、CPUやメモリ装置を主体として構成されるコンピュータで実行される類似度計算に用いられる空間インデックスを構成するノードを用いた画像検索方法において、第1のノードと当該第1のノードに属する複数の空間データとを前記メモリ装置に記憶する記憶ステップと、前記メモリ装置に記憶された複数の前記空間データのうち、一の空間データを選択する選択ステップと、前記メモリ装置から選択した空間データと他の空間データとの距離を算出する距離算出ステップと、算出した前記距離のうち、中間の値を有する距離と、選択した空間データとを用いて第2のノードを作成するノード作成ステップと、作成された前記第2のノードに属する空間データ用いて画像検索を行なう検索ステップと、を含む。
【0021】
請求項3記載の発明は、請求項2記載の画像検索方法において、前記メモリ装置は、複数の前記空間データ毎に関連づけて、前記距離算出ステップにおいて算出した距離を記憶しており、前記検索ステップは、前記メモリ装置が記憶している前記空間データ毎に関連付けられている距離を抽出するステップを含み、前記検索ステップでは、抽出された前記距離と、作成された前記第2のノードに属する空間データとを用いて画像検索を行なう。
【0022】
請求項4記載の発明は、CPUやメモリ装置を主体として構成されるコンピュータで実行される類似度計算に用いられる空間インデックスを構成するノードを作成する処理を前記コンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体であって、第1のノードと当該第1のノードに属する複数の空間データとを前記メモリ装置に記憶する記憶ステップと、前記メモリ装置に記憶された複数の前記空間データのうち、一の空間データを選択する選択ステップと、前記メモリ装置から選択した空間データと他の空間データとの距離を算出する距離算出ステップと、算出した前記距離のうち、中間の値を有する距離と、選択した空間データとを用いて第2のノードを作成するノード作成ステップと、を前記コンピュータに実行させるプログラムが格納されている。
【0024】
請求項5記載の発明は、CPUやメモリ装置を主体として構成されるコンピュータで実行される類似度計算に用いられる空間インデックスを構成するノードを用いた画像検索処理を前記コンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体であって、第1のノードと当該第1のノードに属する複数の空間データとを前記メモリ装置に記憶する記憶ステップと、前記メモリ装置に記憶された複数の前記空間データのうち、一の空間データを選択する選択ステップと、前記メモリ装置から選択した空間データと他の空間データとの距離を算出する距離算出ステップと、算出した前記距離のうち、中間の値を有する距離と、選択した空間データとを用いて第2のノードを作成するノード作成ステップと、作成された前記第2のノードに属する空間データ用いて画像検索を行なう検索ステップと、を前記コンピュータに実行させるプログラムが格納されている。
【0026】
請求項6記載の発明は、請求項5記載のコンピュータ読み取り可能な記録媒体において、前記メモリ装置は、複数の前記空間データ毎に関連づけて、前記距離算出ステップにおいて算出した距離を記憶しており、前記検索ステップは、前記メモリ装置が記憶している前記空間データ毎に関連付けられている距離を抽出するステップを含み、抽出された前記距離と、作成された前記第2のノードに属する空間データとを用いて画像検索を行なう。
【0041】
【発明の実施の形態】
本発明の第1の実施の形態を図1ないし図8に基づいて説明する。本実施の形態は、木構造をなすM−tree形式の空間インデックスへの適用例である。
[構成]
図1は、空間インデックスを利用した空間データ管理システムの構成を示す模式図である。図1に示すように、空間インデックス1に登録部2と検索部3とが接続されている。これらは、実際には、図示しないマイクロコンピュータによって実現される。登録部2には、例えば画像特徴データのような空間データ4を格納するメモリ装置か接続され、検索部3には、検索空間データ5及び類似空間データ6を構成するメモリ装置が接続されている。つまり、このようなシステムは、図示しないCPUやメモリ装置等を主体として構成されるハードウェアと、このハードウエアの一部であり、空間インデックス1や空間データ4等のような空間データを登録及び検索目的で格納するメモリ領域と、ハードウエアのシステムを構築するオペレーティングシステムのようなシステムソフトウエアと、ハードウエアに各種処理を実行させるアプリケーションプログラムとによって構築されている。アプリケーションプログラムは、コンピュータ読み取り可能な媒体、例えば、ハードディスクやCD−ROM等に格納されている。
【0042】
次いで、図2は、空間インデックス1の構造を示す模式図である。つまり、空間インデックスは、図2に例示するような木構造をしている。そして、各ノードNは中心点Oと半径とによって形成され、このようなノードNは複数の子ノードnを有する。図3は、空間インデックス1を図2とは異なる視点から見た模式図である。図3に示すように、各ノードNの領域は、下位に属する空間データを包含し、いずれかの空間データに必ず接する。ここで、図12に例示した従来のM−treeとの相違として、従来のM−treeでは、ノードNの円は子ノードnの円を完全に包含し、ノードNの円は必ずいずれかの子ノードnの円に接しているのに対し、本実施の形態の空間インデックス1では、従来との比較においてノード領域間のオーバーラップが明らかに少ない。したがって、検索時に辿る枝の数が減少し、検索処理の高速化が図られる。
[データ構造]
図4は、空間インデックス1の木構造をなすデータ構造を示す模式図である。木構造は、ノードデータと個々の空間データ(以下、オブジェクトと呼ぶ)を保持し、オブジェクトはエントリとしてリーフノード(最先端のノード)にリンクされている。図4中、Nがノードであり、Eがエントリである。
【0043】
ノードNは、次のデータからなる。
・ノードID
・ノード種別(リーフノードか否か)
・子ノードのノードID(リーフノードの場合にはエントリID)
・親ノードのID
・すべての兄弟ノードの中心との距離
・中心オブジェクト
・半径
・親ノードの中心オブジェクトと当ノードの中心オブジェクトとの距離
・ノード半径不適合フラグ
また、ノードテーブルのプロフィル情報として、以下のデータを持つ。
・ルートノードID
・Fanout(子ノードの数)の最大値/最小値
・中心ポイントのオブジェクトのサイズ
ここで、「すべての兄弟ノードの中心との距離」を事前にノードに設定しておくことにより、距離計算の回数を削減することができ、検索速度を向上させることができる。また、「ノード半径不適合フラグ」は、ノード半径が適切な半径を示しているか否かを示すフラグである。
【0044】
エントリEは、次のデータからなる。
・エントリID
・オブジェクト
・親ノードの中心オブジェクトとオブジェクトとの距離
また、エントリテーブルのプロファイル情報として、以下の情報を持つ。
・オブジェクトのサイズ
図5は、図4に示す空間インデックス1の木構造をなすデータ構造を格納する二次記憶のデータ構造を示す模式図である。図5に示すように、空間インデックス1は、画像IDテーブルとエントリテーブルとノードテーブルとからなる。IDテーブルは、オブジェクト名とIDとを対応つけている。エントリテーブルは、各オブジェクトデータを保持している。ノードテーブルは、各ノードデータを保持している。そして、個々のテーブルは、Space Page クラスというページ管理クラスを承継している。
【0045】
図6は、図5に示す各テーブルの基本となるSpace Page クラスのデータ構造を示す模式図である。各ページが、前述の各IDやノードNやエントリEに対応している。各ページの先頭には削除フラグ7があり、そのページが削除されているか否かを示している。そのページが削除されている場合には削除リスト8に加えられ、削除フラグ7が次の削除ページの番号を示すことになる。なお、Space Page クラスのデータ構造は、データ数9及びデータサイズ10の領域も含んでいる。
[登録処理]
新たなオブジェクトを登録するアルゴリズムを次に示す。このアルゴリズムによって図2に例示するような木構造が構築され、このアルゴリズム中の( *1)で示す部分でノードNの半径が設定され、前述のように、オブジェクトを包含するノード領域が設定される。
【0046】
【数1】
但し、上記アルゴリズム中、
Nc:子ノードの中心点
Nr:子ノードの半径
Oc:オブジェクトの中心点
D(a,b):a,b間の距離
【0047】
【数2】
Splite()中のオブジェクト集合を2分するアルゴリズムは、現状では計算コストが比較的少ない次のようなアルゴリズムを採用しいている。まず、ランダムに選んだオブジェクトから最遠にあるオブジェクトを一つ目の集合の中心オブジェクトとする。そして、その中心オブジェクトから最遠にあるオブジェクトを二つ目の中心オブジェクトとする。さらに、すべてのオブジェクトを近い方の中心オブジェクトに振り分けて集合を二分する。なお、上記アルゴリズム中、( *2)の部分において、兄弟ノードとの距離を設定することで、検索時に距離計算回数を削減することができる。
【0048】
なお、以上のアルゴリズムの他にも、多様なアルゴリズムを利用することが可能である。
[検索処理]
以下に、従来のM−treeの検索アルゴリズムの一例を示す。検索時には、検索中心点と半径とによって指定される検索領域が入力となる。従来のM−treeの検索アルゴリズムでは、基本的には、ノード領域と検索領域とが交わるノードNを辿っていき検索領域に包含されるオブジェクトを検索するのであるが、一般に、距離計算に時間がかかるので、距離計算の回数を削減することが検索速度の高速化につながる。
【0049】
M−treeでは、距離d(Pc,Nc)やd(Pc,Oc)は、ノードやエントリに予め設定されているデータなので、( *4)( *6)を計算せずとも適合しないノードNまたはエントリEであることを判断することができる場合がある。( *3)( *5)によって交差しない判断をしているが、その理屈は図7に示すとおりである。つまり、( *3)の式を満足しなければ、図7より、QとNとは交差しないことが明白である。
【0050】
【数3】
【0051】
但し、
Pc:カレントノードの中心点
Nc:子ノードの中心点
Qc:検索の中心点
Nr:子ノードの半径
Qr:検索の半径
Oc:オブジェクトの中心点
d(a,b):a,b間の距離
しかし、本実施の形態では、兄弟ノード間の距離も予め求めておくことによって、さらに、距離計算回数を削減して検索速度を向上させることができる。そのアルゴリズムを以下に示す。( *7)で、d(Nc´,Nc)を計算するので、Nの中心座標を中心とし、Nと未だ検索対象から除外されていない任意の兄弟ノードのN´とが交差するか否かを( *8)で判定する(図7中でのPをN、NをN´に置き換えて考えることができる)。式中のd(Nc´,Nc)は、ノード中に予め設定されているので、距離計算する必要がない。このようにして距離計算を削除することが可能である。
【0052】
【数4】
但し、
Pc:カレントノードの中心点
Nc:子ノードの中心点
Qc:検索の中心点
Nr:子ノードの半径
Qr:検索の半径
Oc:オブジェクトの中心点
d(a,b):a,b間の距離
[削除処理]
オブジェクトを削除するアルゴリズムを以下に示す。削除をするには、本来、個々のノードNに属すオブジェクトとノードNの中心との距離を計算しなければならないが、この処理には多くの時間がかかり、処理が極めて遅い。そこで、処理の高速化のため、ノードの半径の修正が必要な場合にはその属するすべてのオブジェクトを包含するのではなく、個ノードnの領域を包含する領域の半径を設定するようにしている。
【0053】
【数5】
このようにすることによって、削除処理の低速化が防止される。また、個のアルゴリズムにより、本来設定されるべき領域半径よりも大きい領域半径が設定されたノード( *9)には、ノード半径不適合フラグが設定される。ノード半径不適合フラグがセットされているノードNが多ければ多いほど、ノードNのオーバーラップが大きくなり、検索速度が遅くなる。そこで、本実施の形態では、ノード半径不適合フラグが全ノードNのある基準値以上の割合に達した場合には、自動的に木構造を再構築することにより、検索速度の低下を避けるようにしている。ここで、ある基準というのは、例えば、50%というように、アプリケーションによって適宜設定すれば良い。
[複数空間インデックスの検索]
画像検索といったアプリケーションを考えた場合、空間データとしては色特徴やテクスチャ特徴といったように複数空間データを扱う必要があり、かつ、個々の特徴(空間)単位に重み付けを設定して検索する必要がある。このような場合には、個々の空間単位に予め前述の空間インデックス1を生成しておく。個々の空間単位の重み付けを指定して検索するアルゴリズムを以下に示す。検索の入力は、検索の中心点と上位何位までを結果とするか、すなわち、結果の個数である。
【0054】
【数6】
【0055】
図8には、3つの空間に対する上記のアルゴリズムによる検索の様子を示す。Nを6として個々の空間を検索した結果が左の3つのテーブルである。検索結果のスコアはすでに正規化されているものとする。個々のスコアの小さいものから順に(左番号順)最終スコアが計算され、右側の総合順位テーブルに順位付けされる。図8(a)の段階では確定最大スコアが19であり、総合順位でこれを下回る最終スコアがないので確定できる順位はない。さらに続けて小さいものから順に6番目まで計算したのが図9(b)である。この段階で、確定最大スコアが31になるので総合順位の1位が確定する。同様に、9位まで算出したのが図9(c)である。この段階で、総合順位の2位までが確定する。このように操作を繰り返し、指定された順位までが確定すると、検索が終了する。
【0056】
本発明の第2の実施の形態を図9ないし図11に基づいて説明する。本実施の形態は、木構造をなすvp−tree形式の空間インデックスへの適用例である。なお、第1の実施の形態と同一部分は同一符号で示し説明も省略する。
[構成]
図1に示すような基本構造は第1の実施の形態と共通である。
【0057】
空間インデックス1は、従来のvp−treeと同様に、図2のように空間を分割する。全空間は、R1で示される分割円により分割され、それぞれがルートノードの子ノードとなる。このようにして2分岐の木構造が生成され、空間は分割されていく。分割された最下位のノード(リーフノード)には、空間データがリンクされている。
[データ構造]
図10は、空間インデックス1の木構造をなすデータ構造を示す模式図である。木構造は、ノードデータと個々の空間データ(以下、オブジェクトと呼ぶ)を保持し、オブジェクトはエントリとしてリーフノード(最先端のノード)にリンクされている。図9中、Nがノードであり、Eがエントリである。
【0058】
ノードNは、次のデータからなる。
・ノードID
・ノード種別(リーフノードか否か)
・子ノードのノードID(リーフノードの場合にはエントリID)
・分割円の中心ポイントデータ
・分割円の半径
・各エントリと分割円の中心ペイントとの距離(リーフのノードの場合)
また、ノードテーブルのプロフィル情報として、以下のデータを持つ。
・ルートノードID
・リーフノードの子ノードの数の最大値
・中心ポイントのオブジェクトのサイズ
エントリEは、次のデータからなる。
・エントリID
・オブジェクト
また、エントリテーブルのプロファイル情報として、以下の情報を持つ。
・オブジェクトのサイズ
vp−treeでは、空間データが予め与えられており、vp−treeはこのような木構造インデックスを静的に生成するアルゴリズムである。したがって、後に空間データ(オブジェクト)を追加することができない。そこで、本実施の形態では、以下のように登録を行なうことで、動的に空間データの登録を可能としている。
【0059】
【数7】
ここで、ノードを分割する一例を以下に示す。分割円の中心ポイントを選択する方法として単純に任意のポイントとしたり、分割円が最も小さくなるようなポイントを選択したりなど、いろいろなアルゴリズムが考えられる。
【0060】
【数8】
このようにすることで、動的に空間データを登録することができる。削除時には、以下のような処理を行なう。
【0061】
【数9】
次いで、指定オブジェクトに類似する検索結果を指定個数だけ繰り返す検索のアルゴリズムを以下に示す。検索処理の時間の多くは距離計算(類似度算出)であり、距離計算の回数を減らすことで検索の高速化が実現される。 *1で示される判定では、オブジェクトを獲得せずに、かつ、個々のオブジェクトとの距離計算なしに判定が可能であり、 *2では、オブジェクトを獲得し、かつ、距離計算をしなければ判定をすることができない。そこで、 *1で示される条件判定により、 *2の判定をせずにその判定を行なうことができる場合があり、これによって検索の高速化が可能である。なお、Search()を呼び出すときのQrの初期値は、無限大とする。
【0062】
【数10】
但し、
Pc:カレントノードの中心点
Qc:検索の中心点
Nr:子ノードの半径
Qr:検索の半径
Oc:オブジェクトの中心点
d(a,b):a,b間の距離
[複数空間インデックスの検索]
画像検索といったアプリケーションを考えた場合、空間データとしては色特徴やテクスチャ特徴といったように複数空間データを扱う必要があり、かつ、個々の特徴(空間)単位に重み付けを設定して検索する必要がある。このような場合には、個々の空間単位に予め前述の空間インデックス1を生成しておく。個々の空間単位の重み付けを指定して検索するアルゴリズムを以下に示す。検索の入力は、検索の中心点と上位何位までを結果とするか、すなわち、結果の個数である。
【0063】
検索前に個々のインデックスに対し、検索結果をいくつにすれば良いか判断することはできない。したがって、個々のインデックスに対し、特定の検索個数(例えば、ユーザが指定した検索数)だけ検索し、検索された結果をバッファリングし、最終結果のマージ処理を行なう。この処理を繰り返すことで、無駄に大量のデータを検索することなく、高速に複数インデックスの検索を行なうことが可能となる。
【0064】
上記のように各空間毎に求めた検索結果について順位の最終検索スコアを求め総合順位のリストに加えていく。ここで、既に求めた順位の次の順位にあたるオブジェクトのスコアを各空間について合計した値よりも、これから処理するオブジェクトのスコアのほうが大きいことはありえない。そこで、この合計スコアを順位確定スコアとし、このスコアより小さい総合順位のオブジェクトは最終順位を確定することができる。したがって、スコアをできるだけ早く増加させるほど、順位を早く確定することができ、検索速度を向上させることができる。そこで、順位間の差分が多い空間を選択し、処理する。具体的なアルゴリズムは次の通りである。
【0065】
【数11】
図11に、3つの空間に対して上記アルゴリズムを用いて行なった検索の結果を示す。Nを6として個々の空間を検索した結果が左の3つのテーブルである。検索結果のスコアは重み付けに従い既に正規化されているとする。図11(a)は、網掛けの部分まで処理が終わった状態を示す。円で囲まれた差分のうち最も大きい空間Aが次の処理対象となる。空間Aの順位2位の最終スコアを計算し総合順位に加える。空間Aの3位のオブジェクトは既に最終スコアを算出済みなので、処理済みとする。その結果、図11(b)のような状態となる。さらに、差分が最も大きいオブジェクトが空間Bなので、空間Bの順位2位を処理した結果が図11(c)の状態である。
【0066】
登録されているデータの量が多くなると各空間の検索結果のスコアが同じとなる場合が頻繁に起こるようになる。そういった場合には、差分がすべて同じになる可能性が高いので、空間を選択することができなくなる。そこで、差分が同じになった場合には、検索バッファの先頭と最後尾とのオブジェクトのスコアの差分が最も大きい空間を選択し、処理することとする。ミクロ的には差分が同じでも、マクロ的には差分が異なるので、マクロ的に見ることによって検索の効率を上げることができる。
【0067】
複数インデックスを検索するよりも一つのインデックスを検索するほうが早いが、インデックスを生成するときに重み付けを指定しなければならないので、検索時にインデックス生成時と異なる重み付けを指定することが一般にできなくなる。検索時に指定された重み付けによって生じる不確定部分を包含する範囲でインデックスを検索し、最終スコアにより順位付けを行なうことで検索を行なうことにより、1インデックスにより複数空間の検索が可能となる。
【0068】
但し、特定の空間の重み付けが小さくなればなるほど不確定部分が大きくなるので、検索範囲が広くなる。その結果、検索速度が低下してしまう。しかし、インデックス生成時の重み付けに近い範囲で重み付けを変更する分には複数のインデックスにより検索する場合よりも高速に検索することができる。
【0069】
インデックス生成時には、例えば、等分の重み付け(33:33:33)でインデックスを生成する。インデックス検索時には、以下のアルゴリズムにより検索する。 *3では、以下のようにQrを設定する。
【0070】
【数12】
なお、Search()を呼び出すときのQrの初期値は無限大とする。
【0071】
【数13】
但し、
Pc:カレントノードの中心点
Qc:検索の中心点
Nr:子ノードの半径
Qr:検索の半径
Oc:オブジェクトの中心点
d(a,b):インデックス生成時の重み付けによるa,b間の距離
【0072】
【発明の効果】
本発明によれば、検索の高速化を図ることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態における空間インデックスを利用した空間データ管理システムの構成を示す模式図である。
【図2】空間インデックスの構造を示す模式図である。
【図3】空間インデックスを図2とは異なる視点から見た模式図である。
【図4】空間インデックスの木構造をなすデータ構造を示す模式図である。
【図5】図4に示す空間インデックスの木構造をなすデータ構造を格納する二次記憶のデータ構造を示す模式図である。
【図6】図5に示す各テーブルの基本となるSpace Page クラスのデータ構造を示す模式図である。
【図7】所定の計算することなく適合しないノードNまたはエントリEであることを判断することができる理屈を示すための模式図である。
【図8】3つの空間に対して各空間単位で重み付けを指定して検索するアルゴリズムを実行する際の処理過程を示す模式図である。
【図9】本発明の第2の実施の形態として、空間インデックスの構造を示す模式図である。
【図10】空間インデックスの木構造をなすデータ構造を示す模式図である。
【図11】3つの空間に対して各空間単位で重み付けを指定して検索するアルゴリズムを実行する際の処理過程を示す模式図である。
【図12】従来の空間インデックスとしてM−treeの構造を例示する模式図である。
【符号の説明】
1 空間インデックス
N ノード
n 下位ノード(子ノード)
Claims (6)
- CPUやメモリ装置を主体として構成されるコンピュータで実行される類似度計算に用いられる空間インデックスを構成するノードを作成するノード作成方法において、
第1のノードと当該第1のノードに属する複数の空間データとを前記メモリ装置に記憶する記憶ステップと、
前記メモリ装置に記憶された複数の前記空間データのうち、一の空間データを選択する選択ステップと、
前記メモリ装置から選択した空間データと他の空間データとの距離を算出する距離算出ステップと、
算出した前記距離のうち、中間の値を有する距離と、選択した空間データとを用いて第2のノードを作成するノード作成ステップと、
を含むことを特徴とするノード作成方法。 - CPUやメモリ装置を主体として構成されるコンピュータで実行される類似度計算に用いられる空間インデックスを構成するノードを用いた画像検索方法において、
第1のノードと当該第1のノードに属する複数の空間データとを前記メモリ装置に記憶する記憶ステップと、
前記メモリ装置に記憶された複数の前記空間データのうち、一の空間データを選択する選択ステップと、
前記メモリ装置から選択した空間データと他の空間データとの距離を算出する距離算出ステップと、
算出した前記距離のうち、中間の値を有する距離と、選択した空間データとを用いて第2のノードを作成するノード作成ステップと、
作成された前記第2のノードに属する空間データ用いて画像検索を行なう検索ステップと、
を含むことを特徴とする画像検索方法。 - 前記メモリ装置は、複数の前記空間データ毎に関連づけて、前記距離算出ステップにおいて算出した距離を記憶しており、
前記検索ステップは、前記メモリ装置が記憶している前記空間データ毎に関連付けられている距離を抽出するステップを含み、
前記検索ステップでは、抽出された前記距離と、作成された前記第2のノードに属する空間データとを用いて画像検索を行なう、
ことを特徴とする請求項2記載の画像検索方法。 - CPUやメモリ装置を主体として構成されるコンピュータで実行される類似度計算に用いられる空間インデックスを構成するノードを作成する処理を前記コンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体であって、
第1のノードと当該第1のノードに属する複数の空間データとを前記メモリ装置に記憶する記憶ステップと、
前記メモリ装置に記憶された複数の前記空間データのうち、一の空間データを選択する選択ステップと、
前記メモリ装置から選択した空間データと他の空間データとの距離を算出する距離算出ステップと、
算出した前記距離のうち、中間の値を有する距離と、選択した空間データとを用いて第2のノードを作成するノード作成ステップと、
を前記コンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体。 - CPUやメモリ装置を主体として構成されるコンピュータで実行される類似度計算に用いられる空間インデックスを構成するノードを用いた画像検索処理 を前記コンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体であって、
第1のノードと当該第1のノードに属する複数の空間データとを前記メモリ装置に記憶する記憶ステップと、
前記メモリ装置に記憶された複数の前記空間データのうち、一の空間データを選択する選択ステップと、
前記メモリ装置から選択した空間データと他の空間データとの距離を算出する距離算出ステップと、
算出した前記距離のうち、中間の値を有する距離と、選択した空間データとを用いて第2のノードを作成するノード作成ステップと、
作成された前記第2のノードに属する空間データ用いて画像検索を行なう検索ステップと、
を前記コンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体。 - 前記メモリ装置は、複数の前記空間データ毎に関連づけて、前記距離算出ステップにおいて算出した距離を記憶しており、
前記検索ステップは、前記メモリ装置が記憶している前記空間データ毎に関連付けられている距離を抽出するステップを含み、抽出された前記距離と、作成された前記第2のノードに属する空間データとを用いて画像検索を行なう、
ことを特徴とする請求項5記載のコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28178298A JP3938815B2 (ja) | 1998-10-02 | 1998-10-02 | ノード作成方法、画像検索方法及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28178298A JP3938815B2 (ja) | 1998-10-02 | 1998-10-02 | ノード作成方法、画像検索方法及び記録媒体 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006276903A Division JP4440246B2 (ja) | 2006-10-10 | 2006-10-10 | 空間インデックス方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000112973A JP2000112973A (ja) | 2000-04-21 |
JP3938815B2 true JP3938815B2 (ja) | 2007-06-27 |
Family
ID=17643907
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28178298A Expired - Fee Related JP3938815B2 (ja) | 1998-10-02 | 1998-10-02 | ノード作成方法、画像検索方法及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3938815B2 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080235184A1 (en) * | 2004-03-31 | 2008-09-25 | Pioneer Corporation | Image Search Method, Image Search Apparatus, and Recording Medium Having Image Search Program Code Thereon |
JP4070211B2 (ja) | 2004-05-11 | 2008-04-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 選択装置、選択方法、プログラム、及び記録媒体 |
JP4878178B2 (ja) * | 2006-02-28 | 2012-02-15 | 株式会社日立製作所 | データ処理方法および装置並びにその処理プログラム |
JP5151394B2 (ja) | 2007-10-25 | 2013-02-27 | 株式会社リコー | 情報管理装置、情報管理方法、及びプログラム |
JP5208001B2 (ja) * | 2008-06-09 | 2013-06-12 | ヤフー株式会社 | ベクトルデータ検索装置 |
SG11201401213UA (en) * | 2011-10-03 | 2014-08-28 | Nec Corp | Similarity detecting apparatus and directional nearest neighbor detecting method |
WO2014109127A1 (ja) | 2013-01-11 | 2014-07-17 | 日本電気株式会社 | インデックス生成装置及び方法並びに検索装置及び検索方法 |
-
1998
- 1998-10-02 JP JP28178298A patent/JP3938815B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000112973A (ja) | 2000-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hjaltason et al. | Distance browsing in spatial databases | |
Zhang et al. | Scheme for visual feature-based image indexing | |
Rocha-Junior et al. | Top-k spatial keyword queries on road networks | |
Pfoser et al. | Novel approaches to the indexing of moving object trajectories. | |
US7599916B2 (en) | System and method for personalized search | |
Traina et al. | Fast indexing and visualization of metric data sets using slim-trees | |
US8761512B1 (en) | Query by image | |
US10754887B1 (en) | Systems and methods for multimedia image clustering | |
CN108052514B (zh) | 一种处理地理文本Skyline查询的混合空间索引方法 | |
JP2002519748A (ja) | 像検索システム | |
US20080071843A1 (en) | Systems and methods for indexing and visualization of high-dimensional data via dimension reorderings | |
WO2014109127A1 (ja) | インデックス生成装置及び方法並びに検索装置及び検索方法 | |
CN110070121A (zh) | 一种基于树策略与平衡k均值聚类的快速近似k近邻方法 | |
US11281645B2 (en) | Data management system, data management method, and computer program product | |
CN106095920A (zh) | 面向大规模高维空间数据的分布式索引方法 | |
CN111078952B (zh) | 一种基于层次结构的跨模态可变长度哈希检索方法 | |
KR100419575B1 (ko) | 고차원 색인구조를 위한 벌크 로딩방법 | |
CN112395288A (zh) | 基于希尔伯特曲线的r树索引合并更新方法、装置及介质 | |
JP4440246B2 (ja) | 空間インデックス方法 | |
JP3938815B2 (ja) | ノード作成方法、画像検索方法及び記録媒体 | |
JP2010277329A (ja) | 近傍探索装置 | |
JP2004127055A (ja) | データ検索システム、データ検索方法、コンピュータに対してデータ検索を実行させるためのプログラム、該プログラムを記憶したコンピュータ可読な記憶媒体、検索されたドキュメントを表示するためのグラフィカル・ユーザ・インタフェイス・システム、グラフィカル・ユーザ・インタフェイスを実現するためのコンピュータ実行可能なプログラムおよび該プログラムを記憶した記憶媒体 | |
Papadopoulos et al. | Distributed processing of similarity queries | |
CN116383247A (zh) | 一种大规模图数据高效查询方法 | |
JP2004046612A (ja) | データマッチング方法、データマッチング装置、データマッチングプログラムおよびコンピュータで読み取り可能な記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050609 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060721 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060808 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061219 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070219 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070320 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070326 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100406 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110406 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120406 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130406 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140406 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |