JP2007073063A - 空間インデックス方法 - Google Patents

空間インデックス方法 Download PDF

Info

Publication number
JP2007073063A
JP2007073063A JP2006276903A JP2006276903A JP2007073063A JP 2007073063 A JP2007073063 A JP 2007073063A JP 2006276903 A JP2006276903 A JP 2006276903A JP 2006276903 A JP2006276903 A JP 2006276903A JP 2007073063 A JP2007073063 A JP 2007073063A
Authority
JP
Japan
Prior art keywords
spatial
spatial data
index
search
data
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.)
Granted
Application number
JP2006276903A
Other languages
English (en)
Other versions
JP4440246B2 (ja
Inventor
Masajiro Iwasaki
雅二郎 岩崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2006276903A priority Critical patent/JP4440246B2/ja
Publication of JP2007073063A publication Critical patent/JP2007073063A/ja
Application granted granted Critical
Publication of JP4440246B2 publication Critical patent/JP4440246B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】動的にオブジェクトを挿入することができることを前提としつつ、検索速度を高速度化する。
【解決手段】空間データを登録し、登録された空間データについて予め木構造をなすM−tree形式の空間インデックス1を生成しておき、ユーザが指定した空間データに類似する空間データを空間インデックス1を利用して検索する。この場合、空間インデックス1の木構造を構成する各ノードの領域を下位に存在するすべての空間データを包含する領域とすることで、各ノード領域間のオーバーラップを削除し、検索速度を高速化する。
【選択図】 図1

Description

本発明は、大量の画像特徴データからユーザが指定する画像特徴データに類似する特徴を検索するような空間データの検索を高速化する空間インデックス方法及び空間インデックス処理プログラムを格納した媒体に関する。
近年、CPUの高速化及び一次/二次記憶装置の大容量化により、画像を手軽に扱えるようになっただけでなく、ワールドワイドウェブ(WWW)やデジタルカメラの普及により画像データを容易にパーソナルコンピュータ等に取り込むことが可能となっている。このため、我々の身の回りに大量の画像データが氾濫しつつある。このため、近年、このような大量の画像データからユーザが所望する画像を検索するための技術が要望され、脚光を浴び始めている。
従来の画像検索では予め人手により画像に属性情報を付与し、この属性情報をもとに検索する方法が一般的であった。しかし、これでは画像データの急増には対応することができない。そこで、近年、画像データから自動的に特徴を抽出し、抽出された画像特徴をもとに指定された画像に類似する画像を検索する類似画像検索の研究が進められ、成果を収めている。
画像から抽出される特徴として代表的なものには、色(ヒストグラム)、テクスチャ、形状などがある。類似画像検索では、これらの画像特徴を予め画像から抽出し保管しておく。そして、検索時には、指定された問い合わせ画像から同様に画像特徴を抽出し、すでに抽出されている画像特徴と逐次比較(距離計算)を行なうことで類似する画像を検索する。この方法では、画像特徴の数が少ない場合には処理速度に問題がないが、画像特徴が大量になると必然的に処理速度が遅くなってしまう。そこで、画像特徴のインデックスを生成し検索の高速化を図るというようなことが一般的に行なわれている。
画像特徴として代表的であるヒストグラム特徴では、類似度を計算する場合に、類似する色のビンも考慮して類似度を求めなければならない。つまり、ヒストグラムは、ビンで構成される多次元データで表現され、類似度の計算には多次元データの要素間の相関を考慮した距離が利用される。多次元データということから多次元空間インデックスを利用する方法が考えられるが、多次元空間インデックスは一般にユークリッド空間を前提としているため、相関を考慮した距離に応用することは困難である。
そこで、距離空間インデックスの研究が進められている。多次元インデックスでは多次元空間上でのオブジェクトの座標値をもとにしてインデックスを生成するのに対し、距離空間インデックスでは距離のみに基づいてインデックスを生成する。つまり、距離空間インデックスは、オブジェクトの座標はまったく関知せず、オブジェクト間の距離のみによってインデックスを生成する。したがって、相関を考慮した距離でも問題なくインデックスを生成することが可能となる。
ここで、距離空間インデックスによる類似画像検索の手法について説明する。まず、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の集合を求める方法である。
類似画像検索では、類似する尺度を表す距離定義が重要となる。代表的な特徴間の距離として、次式で表される距離がある。
De(F(X),F(Y))={Σ(X−Y)k1/k
この距離は、k=2のときにはユークリッド距離であり、K=1のときには市街区距離となる。しかし、色のヒストグラム特徴では、各特徴間の相関を考慮する必要があるため、以下のヒストグラム距離が提案されている。
Dh(F(X),F(Y))=(X−Y)TA(X−Y)
次いで、距離空間インデックスとしては、M−treeやvp−treeがある。
M−treeは、例えば、非特許文献1に示されているような空間インデックスである。このようなM−treeにおいては、M−treeの各ノードNは中心オブジェクトOと半径とによって形成され、ノードNは複数の子ノードnを有する。図12に示すように、ノードNの円は子ノードnの円を完全に包囲し、ノードNの円は必ずいずれかの子ノードnの円に接する。M−treeでは、各ノードNが中心オブジェクトOとノードNに属するすべての子ノードnの円を包含する円の半径を保持する。さらに、各ノードNは、中心オブジェクトOと親ノードNの中心オブジェクトOとの間の距離を持つ。この距離により、三角不等式に基づいて検索時に距離計算回数を削減することができる。
一方、vp−treeは、非特許文献2等に示されているような空間インデックスである。このようなvp−treeでは、各ノードの空間はひとつの中心オブジェクト(vantage point)と分割円(二次元空間ではないので実際には円ではないが、説明の都合上円と表す)とによって順次分割される。検索時には、ルートノードから辿り、問い合わせオブジェクトが中心オブジェクトと半径とによって分割されている領域のいずれに属するかを判断し、辿るべき子ノードを決定する。これを繰り返すことで、検索範囲に適合するリーフを探す。
距離空間インデックスの検索処理に占める時間は二次記憶へのアクセス時間は勿論のこと、距離計算時間が大きな割合を占める。特に、ヒストグラム距離のように相関を考慮した距離の場合には増大する。したがって、距離計算の回数を減らすことが大きな課題となっている。
vp−treeでは、一つの中心オブジェクトに対して複数の分割円を設定した分岐とすることで、中心オブジェクトからの距離を一回計算するだけで複数のノード領域のいずれに属するかを判断することができ、距離計算回数を減らすことができる。しかし、画像特徴の場合には、空間を一つの中心オブジェクトのみで数多く分割しても各領域はきわめて細いリング状になるため、検索時にすべての分割領域が検索範囲と交差してしまい、分割の意味が薄れてしまう傾向がある。
M-tree: An Efficient Access Method for Similarity Search in Metric Spaces(Proc. of the 23rd VLDB Conf. Athens, Greece, 1997) 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は、静的にインデックスを生成するアルゴリズムであり、インデックスを構築した後にオブジェクトを追加登録したり削除したりするというような操作ができないという問題がある。また、前述したように、画像特徴の検索に適用した場合、空間を一つの中心オブジェクトのみで数多く分割しても各領域はきわめて細いリング状になるため、検索時にすべての分割領域が検索範囲と交差してしまい、充分な検索速度を得ることができないという問題もある。さらに、空間を一つの中心オブジェクトで数多く分割するという構造上、単一の空間での検索にしか対応することができないという問題もある。
一方、前述したM−treeによれば、動的にオブジェクトの挿入をすることができる。しかしながら、各ノード領域は子ノードの領域を包含するために、各ノード領域が大きくなりすぎる傾向がある。したがって、兄弟ノード同士の領域のオーバーラップが大きくなり、その結果、検索時に木構造を辿る場合の分別率が悪くなり、その結果、多くの子ノードを辿ることとなるために検索速度が低下してしまうという問題がある。また、各ノードは、親ノードとの距離を予め保持することで、検索時に距離計算回数をある程度押さえることができるが、これも充分とはいえない。さらに、vp−tree同様、単一の空間での検索にしか対応することができないという問題もある。
本発明の目的は、動的にオブジェクトを挿入することができることを前提としつつ、検索速度を高速度化することである。
本発明の別の目的は、複数空間での検索に対応することができる空間インデックス構造を得ることである。
上述した課題を解決し、目的を達成するために、請求項1記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすM−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、前記空間インデックスの木構造を構成する各ノードの領域にそれらのノードの下位に存在するすべての空間データを包含させるようにした。
請求項2記載の発明は、請求項1記載の空間インデックス方法の発明において、前記空間データの削除によって前記空間データに属していたリーフノードの領域が狭められた場合、そのすべての上位ノードの領域を狭め、その上位ノードの領域にその下位ノードの領域が包含されるようにした。
請求項3記載の発明は、請求項1記載の空間インデックス方法の発明において、空間データの削除によってノードの領域がその下位ノードに属する空間データを包含する領域よりも大きくなったことを示すフラグを前記ノード毎に設け、最少領域より大きくなった前記ノードの数が特定の基準値を超えた場合に空間インデックスを再構成するようにした。
請求項4記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすM−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、空間インデックスの木構造を構成する各ノードとそれらの親ノード及び兄弟ノードとの間の距離を予め保持するようにした。
請求項5記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすM−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成し、前記空間データの各種別に重み付けをして検索を行なうようにした。
請求項6記載の発明は、請求項5記載の空間インデックス方法の発明において、個々の前記空間インデックスに基づく検索結果から距離に関するスコアの小さいものから順に最終スコアを算出し、算出したスコアの個々の空間の最大スコアを合計した値よりも小さい最終スコアのオブジェクトのランキングを順次確定するようにした。
請求項7記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすM−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、コンピュータに読み込まれ、前記空間インデックスの木構造を構成する各ノードの領域にそれらのノードの下位に存在するすべての空間データを包含させるような機能をコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体である。
請求項8記載の発明は、前記空間データの削除によって前記空間データに属していたリーフノードの領域が狭められた場合、そのすべての上位ノードの領域を狭め、その上位ノードの領域にその下位ノードの領域が包含されるような機能をコンピュータに実行させるようにした請求項7記載のコンピュータ読み取り可能な記録媒体である。
請求項9記載の発明は、空間データの削除によってノードの領域がその下位ノードに属する空間データを包含する領域よりも大きくなったことを示すフラグを前記ノード毎に設け、最少領域より大きくなった前記ノードの数が特定の基準値を超えた場合に空間インデックスを再構成するような機能をコンピュータに実行させるようにした請求項7記載のコンピュータ読み取り可能な記録媒体である。
請求項10記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすM−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、コンピュータに読み込まれ、空間インデックスの木構造を構成する各ノードとそれらの親ノード及び兄弟ノードとの間の距離を予め保持するような機能をコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体である。
請求項11記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすM−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、コンピュータに読み込まれ、異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成し、前記空間データの各種別に重み付けをして検索を行なうような機能をコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体である。
請求項12記載の発明は、個々の前記空間インデックスに基づく検索結果から距離に関するスコアの小さいものから順に最終スコアを算出し、算出したスコアの個々の空間の最大スコアを合計した値よりも小さい最終スコアのオブジェクトのランキングを順次確定するような機能をコンピュータに実行させるようにした請求項11記載のコンピュータ読み取り可能な記録媒体である。
請求項13記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、前記空間インデックスは追加された空間データを動的に追加する。
請求項14の発明は、請求項13記載の空間インデックス方法の発明において、リーフノードとこのリーフノードに属する空間データとの距離をそのリーフノードに保持し、検索時にその距離を利用することで前記空間データが検索されるべきデータか否かを前記空間インデックスにアクセスすることなく判断するようにした。
請求項15記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成し、個々の前記空間インデックスから所定の検索数を検索してバッファリングした後にこれらの結果をマージして検索結果を求めるという処理を指定された検索結果数まで繰り返し、前記空間データの各種別に重み付けをして検索を行なうようにした。
請求項16記載の発明は、請求項15記載の空間インデックス方法の発明において、バッファリングされた検索数のうちスコアの増加量が多い前記空間インデックスを優先的に処理するようにした。
請求項17記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成し、個々の前記空間インデックスの検索結果において未処理の最上位及び次に位置するオブジェクト間の距離に関するスコアの増加量が多いものから順にスコアを算出し、次の順位の最大スコアをそれぞれ合計した値を最大確定スコアとし、その最大確定スコアより小さい最終スコアのオブジェクトの順位を順位確定することで、前記空間データの各種別に重み付けをして検索を行なうようにした。
請求項18記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成し、前記空間データの各種別に付けられた重み付けを等分に設定し、複数の前記空間データを統合して単一の空間インデックスを生成し、指定された重み付けに従い生ずる不確定部分を包含する範囲をインデックスで検索し、重み付けによる最終スコアを算出して順位付けを行なうことにより前記空間データの各種別に重み付けをして検索を行なうようにした。
請求項19記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、コンピュータに読み込まれ、前記空間インデックスは追加された空間データを動的に追加するような機能をコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体である。
請求項20記載の発明は、リーフノードとこのリーフノードに属する空間データとの距離をそのリーフノードに保持し、検索時にその距離を利用することで前記空間データが検索されるべきデータか否かを前記空間インデックスにアクセスすることなく判断するような機能をコンピュータに実行させるようにした請求項19記載のコンピュータ読み取り可能な記録媒体である。
請求項21記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、コンピュータに読み込まれ、異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成し、個々の前記空間インデックスから所定の検索数を検索してバッファリングした後にこれらの結果をマージして検索結果を求めるという処理を指定された検索結果数まで繰り返し、前記空間データの各種別に重み付けをして検索を行なうような機能をコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体である。
請求項22記載の発明は、バッファリングされた検索数のうちスコアの増加量が多い前記空間インデックスを優先的に処理するような機能をコンピュータに実行させるようにした請求項21記載のコンピュータ読み取り可能な記録媒体である。
請求項23記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、コンピュータに読み込まれ、異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成する機能と、個々の前記空間インデックスの検索結果において未処理の最上位及び次に位置するオブジェクト間の距離に関するスコアの増加量が多いものから順にスコアを算出する機能と、次の順位の最大スコアをそれぞれ合計した値を最大確定スコアとし、その最大確定スコアより小さい最終スコアのオブジェクトの順位を順位確定することで、前記空間データの各種別に重み付けをして検索を行なうような機能とをコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体である。
請求項24記載の発明は、空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、コンピュータに読み込まれ、異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成する機能と、前記空間データの各種別に付けられた重み付けを等分に設定し、複数の前記空間データを統合して単一の空間インデックスを生成する機能と、指定された重み付けに従い生ずる不確定部分を包含する範囲をインデックスで検索し、重み付けによる最終スコアを算出して順位付けを行なうことにより前記空間データの各種別に重み付けをして検索を行なうような機能とをコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体である。
請求項1ないし3及び7ないし9にかかる発明によれば、空間インデックスの木構造を構成する各ノードの領域が下位に存在するすべての空間データを包含する領域となるので、ノードの領域間のオーバーラップが削除され、検索速度を高速化することが可能となる。また、オブジェクトの削除により、オーバーラップが増加した場合には、自動的に再度空間インデックスを構築しなおすことができるので(請求項3)、検索速度の低下を防止することができる、という効果を奏する。
また、請求項4及び10にかかる発明によれば、空間インデックスの木構造を構成する各ノードは親ノードとの距離だけでなくすべての兄弟ノードとの間の距離を予め保持するので、検索時に距離計算回数を削減し、検索速度の高速化を図ることができる、という効果を奏する。
また、請求項5及び6並びに11及び12にかかる発明によれば、記載の発明は、複数の空間種別に対し、検索時に空間単位で重み付けを指定して検索する場合、予め個々の空間単位に空間インデックスを生成しておき、個々の空間インデックスから検索した結果に基づいて個々の距離スコアの小さいものから順に最終スコアを算出し、同時に、既に算出したスコアの個々の空間の最大スコアを合計した値よりも小さい最終スコアのオブジェクトのランキングを順次確定することで、複数の空間インデックスに対しても検索速度を高速化することができる、という効果を奏する。
また、請求項13及び19にかかる発明によれば、追加オブジェクトを適合するリーフノードにリンクし、必要に応じて動的にノードを分割することにより、動的にインデックスの追加を行なうことができる、という効果を奏する。同様に、削除も可能である。
また、請求項14及び20にかかる発明によれば、リーフノードにオブジェクトとの距離情報を加えることで、距離の比較回数を減少させて検索の高速化を図ることができる、という効果を奏する。
また、請求項16及び22にかかる発明によれば、インデックスを空間単位に生成し、それぞれの検索結果をマージすることにより、重み付きで複数の空間を検索することができる、という効果を奏する。
また、請求項17及び18並びに23及び24にかかる発明によれば、検索時の重み付けの設定がインデックス生成時の重み付けと大きく異ならない場合には、複数の空間の重み付けを予め設定して一つのインデックスを生成し、検索時に指定された重み付けで複数インデックスよりも高速に検索することができる、という効果を奏する。
本発明の第1の実施の形態を図1ないし図8に基づいて説明する。本実施の形態は、木構造をなすM−tree形式の空間インデックスへの適用例である。
[構成]
図1は、空間インデックスを利用した空間データ管理システムの構成を示す模式図である。図1に示すように、空間インデックス1に登録部2と検索部3とが接続されている。これらは、実際には、図示しないマイクロコンピュータによって実現される。登録部2には、例えば画像特徴データのような空間データ4を格納するメモリ装置か接続され、検索部3には、検索空間データ5及び類似空間データ6を構成するメモリ装置が接続されている。つまり、このようなシステムは、図示しないCPUやメモリ装置等を主体として構成されるハードウェアと、このハードウェアの一部であり、空間インデックス1や空間データ4等のような空間データを登録及び検索目的で格納するメモリ領域と、ハードウェアのシステムを構築するオペレーティングシステムのようなシステムソフトウェアと、ハードウェアに各種処理を実行させるアプリケーションプログラムとによって構築されている。アプリケーションプログラムは、コンピュータ読み取り可能な媒体、例えば、ハードディスクやCD−ROM等に格納されている。
次いで、図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がエントリである。
ノードNは、次のデータからなる。
・ノードID
・ノード種別(リーフノードか否か)
・子ノードのノードID(リーフノードの場合にはエントリID)
・親ノードのID
・すべての兄弟ノードの中心との距離
・中心オブジェクト
・半径
・親ノードの中心オブジェクトと当ノードの中心オブジェクトとの距離
・ノード半径不適合フラグ
また、ノードテーブルのプロフィル情報として、以下のデータを持つ。
・ルートノードID
・Fanout(子ノードの数)の最大値/最小値
・中心ポイントのオブジェクトのサイズ
ここで、「すべての兄弟ノードの中心との距離」を事前にノードに設定しておくことにより、距離計算の回数を削減することができ、検索速度を向上させることができる。また、「ノード半径不適合フラグ」は、ノード半径が適切な半径を示しているか否かを示すフラグである。
エントリEは、次のデータからなる。
・エントリID
・オブジェクト
・親ノードの中心オブジェクトとオブジェクトとの距離
また、エントリテーブルのプロファイル情報として、以下の情報を持つ。
・オブジェクトのサイズ
図5は、図4に示す空間インデックス1の木構造をなすデータ構造を格納する二次記憶のデータ構造を示す模式図である。図5に示すように、空間インデックス1は、画像IDテーブルとエントリテーブルとノードテーブルとからなる。IDテーブルは、オブジェクト名とIDとを対応つけている。エントリテーブルは、各オブジェクトデータを保持している。ノードテーブルは、各ノードデータを保持している。そして、個々のテーブルは、Space Page クラスというページ管理クラスを承継している。
図6は、図5に示す各テーブルの基本となるSpace Page クラスのデータ構造を示す模式図である。各ページが、前述の各IDやノードNやエントリEに対応している。各ページの先頭には削除フラグ7があり、そのページが削除されているか否かを示している。そのページが削除されている場合には削除リスト8に加えられ、削除フラグ7が次の削除ページの番号を示すことになる。なお、Space Page クラスのデータ構造は、データ数9及びデータサイズ10の領域も含んでいる。
[登録処理]
新たなオブジェクトを登録するアルゴリズムを次に示す。このアルゴリズムによって図2に例示するような木構造が構築され、このアルゴリズム中の( *1)で示す部分でノードNの半径が設定され、前述のように、オブジェクトを包含するノード領域が設定される。
Figure 2007073063
但し、上記アルゴリズム中、
Nc:子ノードの中心点
Nr:子ノードの半径
Oc:オブジェクトの中心点
D(a,b):a,b間の距離
である。
Figure 2007073063
Splite()中のオブジェクト集合を2分するアルゴリズムは、現状では計算コストが比較的少ない次のようなアルゴリズムを採用しいている。まず、ランダムに選んだオブジェクトから最遠にあるオブジェクトを一つ目の集合の中心オブジェクトとする。そして、その中心オブジェクトから最遠にあるオブジェクトを二つ目の中心オブジェクトとする。さらに、すべてのオブジェクトを近い方の中心オブジェクトに振り分けて集合を二分する。なお、上記アルゴリズム中、( *2)の部分において、兄弟ノードとの距離を設定することで、検索時に距離計算回数を削減することができる。
なお、以上のアルゴリズムの他にも、多様なアルゴリズムを利用することが可能である。
[検索処理]
以下に、従来のM−treeの検索アルゴリズムの一例を示す。検索時には、検索中心点と半径とによって指定される検索領域が入力となる。従来のM−treeの検索アルゴリズムでは、基本的には、ノード領域と検索領域とが交わるノードNを辿っていき検索領域に包含されるオブジェクトを検索するのであるが、一般に、距離計算に時間がかかるので、距離計算の回数を削減することが検索速度の高速化につながる。
M−treeでは、距離d(Pc,Nc)やd(Pc,Oc)は、ノードやエントリに予め設定されているデータなので、( *4)( *6)を計算せずとも適合しないノードNまたはエントリEであることを判断することができる場合がある。( *3)( *5)によって交差しない判断をしているが、その理屈は図7に示すとおりである。つまり、( *3)の式を満足しなければ、図7より、QとNとは交差しないことが明白である。
Figure 2007073063
但し、
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)は、ノード中に予め設定されているので、距離計算する必要がない。このようにして距離計算を削除することが可能である。
Figure 2007073063
但し、
Pc:カレントノードの中心点
Nc:子ノードの中心点
Qc:検索の中心点
Nr:子ノードの半径
Qr:検索の半径
Oc:オブジェクトの中心点
d(a,b):a,b間の距離
である。
[削除処理]
オブジェクトを削除するアルゴリズムを以下に示す。削除をするには、本来、個々のノードNに属すオブジェクトとノードNの中心との距離を計算しなければならないが、この処理には多くの時間がかかり、処理が極めて遅い。そこで、処理の高速化のため、ノードの半径の修正が必要な場合にはその属するすべてのオブジェクトを包含するのではなく、個ノードnの領域を包含する領域の半径を設定するようにしている。
Figure 2007073063
このようにすることによって、削除処理の低速化が防止される。また、個のアルゴリズムにより、本来設定されるべき領域半径よりも大きい領域半径が設定されたノード( *9)には、ノード半径不適合フラグが設定される。ノード半径不適合フラグがセットされているノードNが多ければ多いほど、ノードNのオーバーラップが大きくなり、検索速度が遅くなる。そこで、本実施の形態では、ノード半径不適合フラグが全ノードNのある基準値以上の割合に達した場合には、自動的に木構造を再構築することにより、検索速度の低下を避けるようにしている。ここで、ある基準というのは、例えば、50%というように、アプリケーションによって適宜設定すれば良い。
[複数空間インデックスの検索]
画像検索といったアプリケーションを考えた場合、空間データとしては色特徴やテクスチャ特徴といったように複数空間データを扱う必要があり、かつ、個々の特徴(空間)単位に重み付けを設定して検索する必要がある。このような場合には、個々の空間単位に予め前述の空間インデックス1を生成しておく。個々の空間単位の重み付けを指定して検索するアルゴリズムを以下に示す。検索の入力は、検索の中心点と上位何位までを結果とするか、すなわち、結果の個数である。
Figure 2007073063
図8には、3つの空間に対する上記のアルゴリズムによる検索の様子を示す。Nを6として個々の空間を検索した結果が左の3つのテーブルである。検索結果のスコアはすでに正規化されているものとする。個々のスコアの小さいものから順に(左番号順)最終スコアが計算され、右側の総合順位テーブルに順位付けされる。図8(a)の段階では確定最大スコアが19であり、総合順位でこれを下回る最終スコアがないので確定できる順位はない。さらに続けて小さいものから順に6番目まで計算したのが図9(b)である。この段階で、確定最大スコアが31になるので総合順位の1位が確定する。同様に、9位まで算出したのが図9(c)である。この段階で、総合順位の2位までが確定する。このように操作を繰り返し、指定された順位までが確定すると、検索が終了する。
本発明の第2の実施の形態を図9ないし図11に基づいて説明する。本実施の形態は、木構造をなすvp−tree形式の空間インデックスへの適用例である。なお、第1の実施の形態と同一部分は同一符号で示し説明も省略する。
[構成]
図1に示すような基本構造は第1の実施の形態と共通である。空間インデックス1は、従来のvp−treeと同様に、図2のように空間を分割する。全空間は、R1で示される分割円により分割され、それぞれがルートノードの子ノードとなる。このようにして2分岐の木構造が生成され、空間は分割されていく。分割された最下位のノード(リーフノード)には、空間データがリンクされている。
[データ構造]
図10は、空間インデックス1の木構造をなすデータ構造を示す模式図である。木構造は、ノードデータと個々の空間データ(以下、オブジェクトと呼ぶ)を保持し、オブジェクトはエントリとしてリーフノード(最先端のノード)にリンクされている。図9中、Nがノードであり、Eがエントリである。
ノードNは、次のデータからなる。
・ノードID
・ノード種別(リーフノードか否か)
・子ノードのノードID(リーフノードの場合にはエントリID)
・分割円の中心ポイントデータ
・分割円の半径
・各エントリと分割円の中心ペイントとの距離(リーフのノードの場合)
また、ノードテーブルのプロフィル情報として、以下のデータを持つ。
・ルートノードID
・リーフノードの子ノードの数の最大値
・中心ポイントのオブジェクトのサイズ
エントリEは、次のデータからなる。
・エントリID
・オブジェクト
また、エントリテーブルのプロファイル情報として、以下の情報を持つ。
・オブジェクトのサイズ
vp−treeでは、空間データが予め与えられており、vp−treeはこのような木構造インデックスを静的に生成するアルゴリズムである。したがって、後に空間データ(オブジェクト)を追加することができない。そこで、本実施の形態では、以下のように登録を行なうことで、動的に空間データの登録を可能としている。
Figure 2007073063
ここで、ノードを分割する一例を以下に示す。分割円の中心ポイントを選択する方法として単純に任意のポイントとしたり、分割円が最も小さくなるようなポイントを選択したりなど、いろいろなアルゴリズムが考えられる。
Figure 2007073063
このようにすることで、動的に空間データを登録することができる。削除時には、以下のような処理を行なう。
Figure 2007073063
次いで、指定オブジェクトに類似する検索結果を指定個数だけ繰り返す検索のアルゴリズムを以下に示す。検索処理の時間の多くは距離計算(類似度算出)であり、距離計算の回数を減らすことで検索の高速化が実現される。 *1で示される判定では、オブジェクトを獲得せずに、かつ、個々のオブジェクトとの距離計算なしに判定が可能であり、 *2では、オブジェクトを獲得し、かつ、距離計算をしなければ判定をすることができない。そこで、 *1で示される条件判定により、 *2の判定をせずにその判定を行なうことができる場合があり、これによって検索の高速化が可能である。なお、Search()を呼び出すときのQrの初期値は、無限大とする。
Figure 2007073063
但し、
Pc:カレントノードの中心点
Qc:検索の中心点
Nr:子ノードの半径
Qr:検索の半径
Oc:オブジェクトの中心点
d(a,b):a,b間の距離
である。
[複数空間インデックスの検索]
画像検索といったアプリケーションを考えた場合、空間データとしては色特徴やテクスチャ特徴といったように複数空間データを扱う必要があり、かつ、個々の特徴(空間)単位に重み付けを設定して検索する必要がある。このような場合には、個々の空間単位に予め前述の空間インデックス1を生成しておく。個々の空間単位の重み付けを指定して検索するアルゴリズムを以下に示す。検索の入力は、検索の中心点と上位何位までを結果とするか、すなわち、結果の個数である。
検索前に個々のインデックスに対し、検索結果をいくつにすれば良いか判断することはできない。したがって、個々のインデックスに対し、特定の検索個数(例えば、ユーザが指定した検索数)だけ検索し、検索された結果をバッファリングし、最終結果のマージ処理を行なう。この処理を繰り返すことで、無駄に大量のデータを検索することなく、高速に複数インデックスの検索を行なうことが可能となる。
上記のように各空間毎に求めた検索結果について順位の最終検索スコアを求め総合順位のリストに加えていく。ここで、既に求めた順位の次の順位にあたるオブジェクトのスコアを各空間について合計した値よりも、これから処理するオブジェクトのスコアのほうが大きいことはありえない。そこで、この合計スコアを順位確定スコアとし、このスコアより小さい総合順位のオブジェクトは最終順位を確定することができる。したがって、スコアをできるだけ早く増加させるほど、順位を早く確定することができ、検索速度を向上させることができる。そこで、順位間の差分が多い空間を選択し、処理する。具体的なアルゴリズムは次の通りである。
Figure 2007073063
図11に、3つの空間に対して上記アルゴリズムを用いて行なった検索の結果を示す。Nを6として個々の空間を検索した結果が左の3つのテーブルである。検索結果のスコアは重み付けに従い既に正規化されているとする。図11(a)は、網掛けの部分まで処理が終わった状態を示す。円で囲まれた差分のうち最も大きい空間Aが次の処理対象となる。空間Aの順位2位の最終スコアを計算し総合順位に加える。空間Aの3位のオブジェクトは既に最終スコアを算出済みなので、処理済みとする。その結果、図11(b)のような状態となる。さらに、差分が最も大きいオブジェクトが空間Bなので、空間Bの順位2位を処理した結果が図11(c)の状態である。
登録されているデータの量が多くなると各空間の検索結果のスコアが同じとなる場合が頻繁に起こるようになる。そういった場合には、差分がすべて同じになる可能性が高いので、空間を選択することができなくなる。そこで、差分が同じになった場合には、検索バッファの先頭と最後尾とのオブジェクトのスコアの差分が最も大きい空間を選択し、処理することとする。ミクロ的には差分が同じでも、マクロ的には差分が異なるので、マクロ的に見ることによって検索の効率を上げることができる。
複数インデックスを検索するよりも一つのインデックスを検索するほうが早いが、インデックスを生成するときに重み付けを指定しなければならないので、検索時にインデックス生成時と異なる重み付けを指定することが一般にできなくなる。検索時に指定された重み付けによって生じる不確定部分を包含する範囲でインデックスを検索し、最終スコアにより順位付けを行なうことで検索を行なうことにより、1インデックスにより複数空間の検索が可能となる。
但し、特定の空間の重み付けが小さくなればなるほど不確定部分が大きくなるので、検索範囲が広くなる。その結果、検索速度が低下してしまう。しかし、インデックス生成時の重み付けに近い範囲で重み付けを変更する分には複数のインデックスにより検索する場合よりも高速に検索することができる。
インデックス生成時には、例えば、等分の重み付け(33:33:33)でインデックスを生成する。インデックス検索時には、以下のアルゴリズムにより検索する。 *3では、以下のようにQrを設定する。
Figure 2007073063
なお、Search()を呼び出すときのQrの初期値は無限大とする。
Figure 2007073063
但し、
Pc:カレントノードの中心点
Qc:検索の中心点
Nr:子ノードの半径
Qr:検索の半径
Oc:オブジェクトの中心点
d(a,b):インデックス生成時の重み付けによるa,b間の距離
である。
本発明の第1の実施の形態における空間インデックスを利用した空間データ管理システムの構成を示す模式図である。 空間インデックスの構造を示す模式図である。 空間インデックスを図2とは異なる視点から見た模式図である。 空間インデックスの木構造をなすデータ構造を示す模式図である。 図4に示す空間インデックスの木構造をなすデータ構造を格納する二次記憶のデータ構造を示す模式図である。 図5に示す各テーブルの基本となるSpace Page クラスのデータ構造を示す模式図である。 所定の計算することなく適合しないノードNまたはエントリEであることを判断することができる理屈を示すための模式図である。 3つの空間に対して各空間単位で重み付けを指定して検索するアルゴリズムを実行する際の処理過程を示す模式図である。 本発明の第2の実施の形態として、空間インデックスの構造を示す模式図である。 空間インデックスの木構造をなすデータ構造を示す模式図である。 3つの空間に対して各空間単位で重み付けを指定して検索するアルゴリズムを実行する際の処理過程を示す模式図である。 従来の空間インデックスとしてM−treeの構造を例示する模式図である。
符号の説明
1 空間インデックス
N ノード
n 下位ノード(子ノード)

Claims (24)

  1. 空間データを登録し、登録された前記空間データについて予め木構造をなすM−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    前記空間インデックスの木構造を構成する各ノードの領域にそれらのノードの下位に存在するすべての空間データを包含させるようにしたことを特徴とする空間インデックス方法。
  2. 前記空間データの削除によって前記空間データに属していたリーフノードの領域が狭められた場合、そのすべての上位ノードの領域を狭め、その上位ノードの領域にその下位ノードの領域が包含されるようにしたことを特徴とする請求項1記載の空間インデックス方法。
  3. 空間データの削除によってノードの領域がその下位ノードに属する空間データを包含する領域よりも大きくなったことを示すフラグを前記ノード毎に設け、最少領域より大きくなった前記ノードの数が特定の基準値を超えた場合に空間インデックスを再構成するようにしたことを特徴とする請求項1記載の空間インデックス方法。
  4. 空間データを登録し、登録された前記空間データについて予め木構造をなすM−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    空間インデックスの木構造を構成する各ノードとそれらの親ノード及び兄弟ノードとの間の距離を予め保持するようにしたことを特徴とする空間インデックス方法。
  5. 空間データを登録し、登録された前記空間データについて予め木構造をなすM−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成し、前記空間データの各種別に重み付けをして検索を行なうようにしたことを特徴とする空間インデックス方法。
  6. 個々の前記空間インデックスに基づく検索結果から距離に関するスコアの小さいものから順に最終スコアを算出し、算出したスコアの個々の空間の最大スコアを合計した値よりも小さい最終スコアのオブジェクトのランキングを順次確定するようにしたことを特徴とする請求項5記載の空間インデックス方法。
  7. 空間データを登録し、登録された前記空間データについて予め木構造をなすM−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    コンピュータに読み込まれ、前記空間インデックスの木構造を構成する各ノードの領域にそれらのノードの下位に存在するすべての空間データを包含させるような機能をコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体。
  8. 前記空間データの削除によって前記空間データに属していたリーフノードの領域が狭められた場合、そのすべての上位ノードの領域を狭め、その上位ノードの領域にその下位ノードの領域が包含されるような機能をコンピュータに実行させるようにした請求項7記載のコンピュータ読み取り可能な記録媒体。
  9. 空間データの削除によってノードの領域がその下位ノードに属する空間データを包含する領域よりも大きくなったことを示すフラグを前記ノード毎に設け、最少領域より大きくなった前記ノードの数が特定の基準値を超えた場合に空間インデックスを再構成するような機能をコンピュータに実行させるようにした請求項7記載のコンピュータ読み取り可能な記録媒体。
  10. 空間データを登録し、登録された前記空間データについて予め木構造をなすM−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    コンピュータに読み込まれ、空間インデックスの木構造を構成する各ノードとそれらの親ノード及び兄弟ノードとの間の距離を予め保持するような機能をコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体。
  11. 空間データを登録し、登録された前記空間データについて予め木構造をなすM−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    コンピュータに読み込まれ、異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成し、前記空間データの各種別に重み付けをして検索を行なうような機能をコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体。
  12. 個々の前記空間インデックスに基づく検索結果から距離に関するスコアの小さいものから順に最終スコアを算出し、算出したスコアの個々の空間の最大スコアを合計した値よりも小さい最終スコアのオブジェクトのランキングを順次確定するような機能をコンピュータに実行させるようにした請求項11記載のコンピュータ読み取り可能な記録媒体。
  13. 空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    前記空間インデックスは追加された空間データを動的に追加することを特徴とする空間インデックス方法。
  14. リーフノードとこのリーフノードに属する空間データとの距離をそのリーフノードに保持し、検索時にその距離を利用することで前記空間データが検索されるべきデータか否かを前記空間インデックスにアクセスすることなく判断するようにしたことを特徴とする請求項13記載の空間インデックス方法。
  15. 空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成し、個々の前記空間インデックスから所定の検索数を検索してバッファリングした後にこれらの結果をマージして検索結果を求めるという処理を指定された検索結果数まで繰り返し、前記空間データの各種別に重み付けをして検索を行なうようにしたことを特徴とする空間インデックス方法。
  16. バッファリングされた検索数のうちスコアの増加量が多い前記空間インデックスを優先的に処理するようにしたことを特徴とする請求項15記載の空間インデックス方法。
  17. 空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成し、個々の前記空間インデックスの検索結果において未処理の最上位及び次に位置するオブジェクト間の距離に関するスコアの増加量が多いものから順にスコアを算出し、次の順位の最大スコアをそれぞれ合計した値を最大確定スコアとし、その最大確定スコアより小さい最終スコアのオブジェクトの順位を順位確定することで、前記空間データの各種別に重み付けをして検索を行なうようにしたことを特徴とする空間インデックス方法。
  18. 空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成し、前記空間データの各種別に付けられた重み付けを等分に設定し、複数の前記空間データを統合して単一の空間インデックスを生成し、指定された重み付けに従い生ずる不確定部分を包含する範囲をインデックスで検索し、重み付けによる最終スコアを算出して順位付けを行なうことにより前記空間データの各種別に重み付けをして検索を行なうようにしたことを特徴とする空間インデックス方法。
  19. 空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    コンピュータに読み込まれ、前記空間インデックスは追加された空間データを動的に追加するような機能をコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体。
  20. リーフノードとこのリーフノードに属する空間データとの距離をそのリーフノードに保持し、検索時にその距離を利用することで前記空間データが検索されるべきデータか否かを前記空間インデックスにアクセスすることなく判断するような機能をコンピュータに実行させるようにした請求項19記載のコンピュータ読み取り可能な記録媒体。
  21. 空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    コンピュータに読み込まれ、異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成し、個々の前記空間インデックスから所定の検索数を検索してバッファリングした後にこれらの結果をマージして検索結果を求めるという処理を指定された検索結果数まで繰り返し、前記空間データの各種別に重み付けをして検索を行なうような機能をコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体。
  22. バッファリングされた検索数のうちスコアの増加量が多い前記空間インデックスを優先的に処理するような機能をコンピュータに実行させるようにした請求項21記載のコンピュータ読み取り可能な記録媒体。
  23. 空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    コンピュータに読み込まれ、異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成する機能と、個々の前記空間インデックスの検索結果において未処理の最上位及び次に位置するオブジェクト間の距離に関するスコアの増加量が多いものから順にスコアを算出する機能と、次の順位の最大スコアをそれぞれ合計した値を最大確定スコアとし、その最大確定スコアより小さい最終スコアのオブジェクトの順位を順位確定することで、前記空間データの各種別に重み付けをして検索を行なうような機能とをコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体。
  24. 空間データを登録し、登録された前記空間データについて予め木構造をなすvp−tree形式の空間インデックスを生成しておき、ユーザが指定した前記空間データに類似する前記空間データを前記空間インデックスを利用して検索するようにした空間インデックス方法において、
    コンピュータに読み込まれ、異なる種別の前記空間データに対して各種別単位でそれぞれ前記空間インデックスを生成する機能と、前記空間データの各種別に付けられた重み付けを等分に設定し、複数の前記空間データを統合して単一の空間インデックスを生成する機能と、指定された重み付けに従い生ずる不確定部分を包含する範囲をインデックスで検索し、重み付けによる最終スコアを算出して順位付けを行なうことにより前記空間データの各種別に重み付けをして検索を行なうような機能とをコンピュータに実行させるプログラムが格納されたコンピュータ読み取り可能な記録媒体。
JP2006276903A 2006-10-10 2006-10-10 空間インデックス方法 Expired - Fee Related JP4440246B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006276903A JP4440246B2 (ja) 2006-10-10 2006-10-10 空間インデックス方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006276903A JP4440246B2 (ja) 2006-10-10 2006-10-10 空間インデックス方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP28178298A Division JP3938815B2 (ja) 1998-10-02 1998-10-02 ノード作成方法、画像検索方法及び記録媒体

Publications (2)

Publication Number Publication Date
JP2007073063A true JP2007073063A (ja) 2007-03-22
JP4440246B2 JP4440246B2 (ja) 2010-03-24

Family

ID=37934402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006276903A Expired - Fee Related JP4440246B2 (ja) 2006-10-10 2006-10-10 空間インデックス方法

Country Status (1)

Country Link
JP (1) JP4440246B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079871A (ja) * 2008-06-09 2010-04-08 Yahoo Japan Corp ベクトルデータ検索装置
EP2811418A1 (en) 2013-06-07 2014-12-10 Ricoh Company, Ltd. Information processing system and information processing method
US9116961B2 (en) 2011-05-06 2015-08-25 Fujitsu Limited Information processing device, information processing system and search method
US10019832B2 (en) 2015-08-31 2018-07-10 Samsung Electronics Co., Ltd. Method of generating and traversing acceleration structure

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010079871A (ja) * 2008-06-09 2010-04-08 Yahoo Japan Corp ベクトルデータ検索装置
US9116961B2 (en) 2011-05-06 2015-08-25 Fujitsu Limited Information processing device, information processing system and search method
EP2811418A1 (en) 2013-06-07 2014-12-10 Ricoh Company, Ltd. Information processing system and information processing method
US9402013B2 (en) 2013-06-07 2016-07-26 Ricoh Company, Ltd. Information processing system and information processing method
US9767124B2 (en) 2013-06-07 2017-09-19 Ricoh Company, Ltd. Information processing system and information processing method
US10019832B2 (en) 2015-08-31 2018-07-10 Samsung Electronics Co., Ltd. Method of generating and traversing acceleration structure

Also Published As

Publication number Publication date
JP4440246B2 (ja) 2010-03-24

Similar Documents

Publication Publication Date Title
Zhang et al. Inverted linear quadtree: Efficient top k spatial keyword search
Rocha-Junior et al. Top-k spatial keyword queries on road networks
Zhang et al. Processing spatial keyword query as a top-k aggregation query
CN104199827B (zh) 基于局部敏感哈希的大规模多媒体数据的高维索引方法
CN108052514B (zh) 一种处理地理文本Skyline查询的混合空间索引方法
JP6183376B2 (ja) インデックス生成装置及び方法並びに検索装置及び検索方法
US20150161178A1 (en) Distributed Image Search
CN106503223B (zh) 一种结合位置和关键词信息的在线房源搜索方法及装置
JP2002519748A (ja) 像検索システム
Ashokkumar et al. Intelligent optimal route recommendation among heterogeneous objects with keywords
JP6434162B2 (ja) データ管理システム、データ管理方法およびプログラム
CN112395288A (zh) 基于希尔伯特曲线的r树索引合并更新方法、装置及介质
Georgiadis et al. Efficient rewriting algorithms for preference queries
JP4440246B2 (ja) 空間インデックス方法
JP3938815B2 (ja) ノード作成方法、画像検索方法及び記録媒体
JP2010277329A (ja) 近傍探索装置
JP6705764B2 (ja) 生成装置、生成方法、及び生成プログラム
JP2004127055A (ja) データ検索システム、データ検索方法、コンピュータに対してデータ検索を実行させるためのプログラム、該プログラムを記憶したコンピュータ可読な記憶媒体、検索されたドキュメントを表示するためのグラフィカル・ユーザ・インタフェイス・システム、グラフィカル・ユーザ・インタフェイスを実現するためのコンピュータ実行可能なプログラムおよび該プログラムを記憶した記憶媒体
Li et al. Aggregate nearest keyword search in spatial databases
CN106055690A (zh) 一种基于属性匹配的快速检索与获取数据特征方法
JP2004046612A (ja) データマッチング方法、データマッチング装置、データマッチングプログラムおよびコンピュータで読み取り可能な記録媒体
JP2000035965A (ja) 類似特徴量の検索方法及び装置及び類似特徴量の検索プログラムを格納した記憶媒体
JP3615439B2 (ja) 類似特徴量の検索方法,その検索装置およびその検索プログラム記録媒体
CN108090182B (zh) 一种大规模高维数据的分布式索引方法及系统
Manta-Caro et al. Advances in real-time indexing models and techniques for the web of things

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090924

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: 20100105

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100106

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130115

Year of fee payment: 3

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: 20140115

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees