JP5137339B2 - クラスタリングされたベクトルデータを検索するサーバ、システム及び方法 - Google Patents

クラスタリングされたベクトルデータを検索するサーバ、システム及び方法 Download PDF

Info

Publication number
JP5137339B2
JP5137339B2 JP2006162105A JP2006162105A JP5137339B2 JP 5137339 B2 JP5137339 B2 JP 5137339B2 JP 2006162105 A JP2006162105 A JP 2006162105A JP 2006162105 A JP2006162105 A JP 2006162105A JP 5137339 B2 JP5137339 B2 JP 5137339B2
Authority
JP
Japan
Prior art keywords
vector data
search
cluster
clusters
received
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.)
Active
Application number
JP2006162105A
Other languages
English (en)
Other versions
JP2007334402A (ja
Inventor
敦 廣池
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2006162105A priority Critical patent/JP5137339B2/ja
Publication of JP2007334402A publication Critical patent/JP2007334402A/ja
Application granted granted Critical
Publication of JP5137339B2 publication Critical patent/JP5137339B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、計算機上でのベクトルデータの検索に関する。
ベクトルデータの検索として一般的なのは、地図データ等の空間位置情報に基づく検索である。この場合、ベクトルデータの次元数は、高々2〜数次元程度となる。これに対して、画像・映像等を対象とする類似検索では、各データを特徴付けるデータとして、数10次元〜数100次元のベクトルが用いられる。類似検索では、検索のキーとなるデータと、ベクトル空間中で距離が小さいデータの検索、すなわち、ベクトル空間中での最近接検索が行われる。例えば、静止画像の類似検索では、画像中の色分布のヒストグラム等が、データを特徴付ける特徴量ベクトルとして用いられる。
最近接検索では、ベクトル間の距離を知る必要がある。距離計算の対象データ数をN、特徴量ベクトルの次元数をMとすれば、検索キーデータと距離計算の対象データとの間でN回の距離計算が必要となり、かつ、各距離計算に必要となる時間は、Mに比例する。従って、最近接検索を線形探索で実現した場合、1回の検索時間のN×Mに比例した計算時間が必要となる。
最近接検索の処理を高速化する手法として、検索キーデータに応じて距離計算の対象データを絞り込む方法が複数提案されている。多次元インデキシングと総称される一群の手法は、データベースの分野で利用されているバランス木の概念を多次元空間の処理に拡張したものである。多次元インデキシングでは、空間中の領域が木構造で管理される。そして、検索キーデータが与えられると、その検索キーデータを含む領域が定義されたリーフをLog Nのオーダで検索する。一方、パターン認識の分野では、距離が近いもの同士を予め分類しておく、クラスタリングに基づく高速化がしばしば用いられる。具体的な分類の手法としては、k-means法が一般的である。
一方、非特許文献1は、高次元で分布する確率ベクトルに関する解析によって、通常の確率分布で成立するある条件の下で、任意の点と他の標本分布中の中との最小距離と最大距離との比が、空間の高次元化に伴い1に収束すること、すなわち、全ての標本点間の距離の差が無くなって行くことを示した。従って、上記の各種高速化手法が、高次元空間の処理で、一般的な意味で良好な効果を生むことは困難であり、通常は、その性能は線形探索に劣るものとなる、と結論付けている。ただし、非特許文献1は、標本の分布が一様構造ではなく、クラスタ構造を持つ場合は、クラスタリング処理が有効性を発揮することも指摘している。
Kevin Beyer, Jonathan Goldstein, Raghu Rmakrishnan, Uri Shaft.: "When Is Nearest Neighbor Meaningful", Proceeding of International Conference on Database Theory, 1999, p.217-235.
対象となるデータに対して適切な特徴量ベクトルが抽出されていると仮定すれば、標本分布は、ある程度のクラスタ構造を持っていると想定される。従って、そこから適切にクラスタ構造を抽出することが出来れば、クラスタリングに基づく検索の高速化が期待できる。ただし、実際にどの程度の高速化が可能かは、存在しているクラスタが互いにどの程度分離しているか、及び、検索キーとクラスタとの関係に依存する。
例えば、データ全体がNc個のクラスタに分類されており、各クラスタには、それを構成するメンバ(すなわち、各クラスタに含まれるデータ)の平均ベクトルが保存されているものとする。検索時には、まず、検索キーのベクトルと各クラスタの平均ベクトルとの距離が計算される。次に、その距離が小さい順序にクラスタを参照していき、各クラスタのメンバと検索キーとの距離計算を行うことによって、類似検索の結果、すなわち、検索キー近傍のデータを取得する。
真の検索結果は、全数検索(すなわち、全クラスタの全メンバを対象とする検索)を行った場合の結果である。次に、上記の手続きにおいて、幾つのクラスタを参照すれば、真の結果と一致する結果を得られるか、について検討する。
クラスタ間の分離が良く、かつ、検索キーが何れかのクラスタの平均ベクトルの近傍にある場合は、少数個のクラスタを参照するだけで十分であろう。仮に、最近接クラスタのメンバ数が、要求される検索結果数より十分大きければ、一つのクラスタのみの参照で済むかも知れない。逆に、検索キーが、クラスタ境界付近に位置する場合は、少なくとも、その境界に接するクラスタを参照する必要が生じる。また、検索キー近傍のクラスタの分離が悪い場合は、多数のクラスタを参照する必要が生じる。
実際の検索時には、真の結果は未知である。従って、真の結果になるべく近い結果を得たければ、なるべく多くのクラスタを参照する必要がある。しかし、あまり多数のクラスタを参照すると、線形探索と同等の計算量となってしまうため、検索の高速化は実現しない。このことは、クラスタリングではなく、多次元インデキシングを用いた場合も同様である。この場合、多数のリーフを参照することになる。
さらに、クラスタリング及び多次元インデキシングのいずれが用いられる場合にも、データとの距離計算以外の処理が必要となる。すなわち、クラスタリングでは、クラスタ平均との距離計算、多次元インデキシングでは、木構造を辿る際の領域判定が必要である。また、大量のデータへのアクセスに関しては、一般に、単純な線形探索の方が効率的である。従って、これらの高速化手法は、少なくとも、アルゴリズム評価のレベルで十分な有効性を示す必要がある。
現在、類似検索を必要とする多くの分野で、扱うべきデータ量が増大しており、線形探索に代わる高速な検索が必要とされている。従って、上述した問題点を克服する高速検索技術がますます必要となっている。
実際の類似検索の利用を考えた場合、必ずしも、真の結果を正確に知る必要がなく、それよりも、アプリケーション上での迅速な応答が要求される場合が多い。本発明では、クラスタリングに基づいた検索エンジンにおいて、検索エンジンとそれを使用するアプリケーションが以下のようなデータを送受信することによって、類似検索を行うアプリケーションにとって最適な処理系を実現する。
検索エンジンは、クライアントのアプリケーションから検索要求を受けると、所定の個数のクラスタを参照して類似検索を実行し、取得した類似検索の結果をアプリケーション側に返す。この際、検索エンジンは、検索のために参照したクラスタに関する情報も合わせてアプリケーション側に渡す。アプリケーション側に返された検索結果は、一般に、上位、すなわち、高類似度の結果の信頼性は高いが、下位の結果の信頼性は低い。アプリケーション側が、より真の結果に近い検索結果を必要とする場合、再度、同一の検索条件での検索要求をエンジン側に発行する。この際、アプリケーションは、以前に取得した検索結果及び以前に参照したクラスタに関する情報も合わせて検索エンジンに送信する。検索エンジンは、以前に参照したクラスタに関する処理を省略し、より低類似度の所定の個数のクラスタを参照し、クラスタメンバのデータに関する類似検索処理を行う。その結果、以前の検索結果よりも高類似度のデータを発見した場合、検索エンジンは、検索結果を更新し、参照したクラスタの情報とともに、検索結果をアプリケーション側に返す。このような処理を繰り返すことによって、アプリケーションは、必要に応じて、より精度の高い類似検索の結果を取得することが可能となる。
より具体的には、本願で開示する代表的な発明は、データを入出力するインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続される一つ以上の記憶装置と、を備える検索サーバにおいて、前記記憶装置には、各々が複数のクラスタのいずれかに含まれる複数の第1ベクトルデータと、前記複数の第1ベクトルデータの前記クラスタごとの代表値と、が格納され、前記プロセッサは、第2ベクトルデータを含む検索要求を受信すると、受信した前記第2ベクトルデータをキーとして前記代表値を検索し、前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、第1の所定の数の前記クラスタに含まれる複数の第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、前記第2ベクトルデータと、前記第2ベクトルデータをキーとした前記第1ベクトルデータの検索が終了した前記クラスタを示す情報と、を含む検索要求を受信すると、前記受信した情報によって示されるクラスタ以外の前記クラスタの前記代表値を、前記第2ベクトルデータをキーとして検索し、前記受信した情報によって示されるクラスタ以外の前記クラスタのうち、前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、前記第1の所定の数の前記クラスタに含まれる複数の前記第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、前記検索された第1ベクトルデータのうち、前記第2ベクトルデータとの距離が近い第2の所定の数の前記第1ベクトルデータを、前記インターフェースを介して出力することを特徴とする。
検索エンジン側においては、1回の検索要求に対して常に一定個数のクラスタのみが参照されるため、ほぼ一定の応答時間が実現される。アプリケーション側においては、その利用の文脈に応じて、要求する検索精度を制御可能であるため、エンドユーザにとって最適な処理系を構成することが可能となる。
以下、本発明の実施の一形態として、画像を対象とした類似検索システムについて説明する。
図1は、本発明の実施の形態の類似検索システムの構成を示すブロック図である。
検索エンジンが稼動するサーバ計算機110は、通信基盤120を経由して、アプリケーションプログラムが稼動するクライアント計算機130と接続され、クライアント計算機130に検索等のサービスを提供する。
通信基盤120は、サーバ計算機110とクライアント計算機130とを接続するネットワーク(例えば、IPネットワーク)である。
サーバ計算機110は、少なくとも、相互に接続されたインターフェース(I/F)151、CPU152、メモリ153及びハードディスク154を備える。
I/F151は、通信基盤120に接続され、サーバ計算機110とクライアント計算機130の間の通信に使用される。
CPU152は、メモリ153に格納されたプログラムを実行するプロセッサである。
メモリ153は、CPU152によって実行されるプログラム及びCPU152によって参照されるデータを格納する記憶装置である。本実施の形態のメモリ153は、いわゆる主記憶装置であり、例えば、ランダムアクセス可能な半導体記憶装置である。本実施の形態のメモリ153は、少なくとも、検索サーバプロセス111を実現するためのサーバ・プログラム及びデータを格納する。
ハードディスク154は、一つ以上のハードディスクドライブ(HDD)からなる記憶装置である。本実施の形態のハードディスク154は、画像サーバ140に格納された画像の特徴量ベクトルに関する情報を特徴量データ114及びクラスタ管理情報115として格納する。
特徴量ベクトルとは、画像サーバ140に格納されている画像の特徴をベクトルデータとして数値化したものである。特徴量ベクトルは、従来から知られている種々の方法によって算出することができる。
本実施の形態において、各特徴量ベクトルは、複数のクラスタのいずれかに分類される。相互に距離が近い特徴量ベクトルは、同じクラスタに分類されることが望ましい。特徴量ベクトルは、どのような方法でクラスタに分類されてもよいが、本実施の形態では、k-means法によって分類される。
一つの特徴量データ114は、一つのクラスタに分類された一つ以上の画像を識別するデータIDと、そのIDによって識別される画像データの特徴量ベクトルと、の組を含む。なお、各クラスタに分類された画像及び特徴ベクトルは、クラスタメンバとも記載される。
クラスタ管理情報115は、各クラスタを識別するクラスタIDと、そのクラスタIDによって識別されるクラスタの代表値と、の組を含む。
本実施の形態において、各クラスタの代表値とは、各クラスタに含まれる特徴量ベクトルの平均ベクトル(クラスタ平均)である。しかし、平均ベクトル以外の値がクラスタの代表値として使用されてもよい。例えば、平均ベクトルに近接するクラスタメンバの特徴量ベクトルが使用されてもよいし、他の統計的な代表値、例えば、最頻値、中央値等が使用されてもよい。k-means法による最適化の結果、各クラスタが完全に分離している場合、各特徴量ベクトルは、その特徴量ベクトルと最も距離が近い代表値を含むクラスタに含まれる。
なお、本実施の形態のハードディスク154は、光ディスク装置、フラッシュメモリのような半導体記憶装置、又は、その他のいかなる種類の記憶装置によって置き換えられてもよい。
画像サーバ140は、画像データを格納する記憶装置(図示省略)を備え、通信基盤120に接続される計算機である。
サーバ計算機110内の検索サーバプロセス111は、クラスタリングされた(すなわち、クラスタに分類された)検索対象を管理している。システム稼動時には、クラスタ管理情報115は、サーバ計算機のメモリ153内にクラスタ管理情報112として展開されている。各クラスタ情報113として、各クラスタID、そのIDによって識別されるクラスタの代表値である平均ベクトル、及び、クラスタメンバを識別するデータID列等が格納されている。各クラスタメンバの特徴量ベクトルは、特徴量データ114として一括してハードディスク154上で管理される。このため、メモリ153内のクラスタ情報113として、さらに、各クラスタメンバの特徴量ベクトルを格納したハードディスク上の位置が格納されている。
なお、クラスタ管理情報112は、ハードディスク154上に記録されたクラスタ管理情報のコピーである。このため、クラスタに対する更新が生じた場合、クラスタ管理情報112だけでなく、ハードディスク154上のクラスタ管理情報115も更新される。しかし、検索処理においてクラスタ管理情報115が直接参照されることはない。
クライアント計算機130は、通信基盤120に接続され、アプリケーションプログラム(図示省略)が稼動する計算機である。図1には二つのクライアント計算機130を示すが、本類似検索システムは任意の数のクライアント計算機130を備えてもよい。
クライアント計算機130は、いかなる構成の計算機であってもよい。図1には、典型的なクライアント計算機130の構成を示す。すなわち、図1のクライアント計算機130は、CPU131、メモリ132、I/F133、入力装置134及び出力装置135を備える。
CPU131は、メモリ132に格納されたプログラムを実行するプロセッサである。
メモリ132は、CPU131によって実行されるプログラム等を格納する記憶装置である。メモリ132は、少なくとも、アプリケーションプログラム(図示省略)を格納する。
I/F133は、通信基盤120に接続され、クライアント計算機130とサーバ計算機110との間の通信に使用されるインターフェースである。
入力装置134は、クライアント計算機130のユーザから入力を受け付ける装置である。入力装置134は、例えば、キーボード、ポインティングデバイス又は画像スキャナ等を含んでもよい。
出力装置135は、クライアント計算機130のユーザに情報を表示する装置である。具体的には、例えば、類似検索の結果として取得された画像が出力装置135に表示される。出力装置135は、例えばCRT又は液晶ディスプレイのような画像表示装置である。
次に、本類似検索システムにおけるデータ登録時の処理について説明する。
本システムでは、k-means法に基づいたクラスタリングを採用している。ただし、データの登録ごとに、全データのクラスタリングを行ったのでは、実用的な処理時間で登録処理を行うことは不可能である。本システムでは、新規データ登録時に、そのデータと距離が近いクラスタを、近接クラスタとして所定の個数検索し、検索された近接クラスタに関してk-means法の最適化を実行する。また、各クラスタのメンバのハードディスク上の格納領域を、物理的にも連続的に確保するために、クラスタ生成時に所定の量のディスク領域を確保する。それに従い、各クラスタメンバの最大数も制限される。
図2は、本発明の実施の形態においてデータ登録時に実行される処理を示すフローチャートである。
図2に示す処理は、検索サーバプロセス111を実現するサーバ・プログラムの一部として実行される。従って、図2に示す処理は、CPU152によって実行される。
CPU152は、登録対象の新規データxを与えられると、まず、近接クラスタを検索し、近接クラスタの集合C*を取得する(210)。具体的には、CPU152は、各クラスタの平均ベクトルと新規データxとを比較し、新規データxと距離が近い平均ベクトルによって代表されるクラスタから順に、所定の数のクラスタを近接クラスタの集合C*として取得する。
次に、CPU152は、近接クラスタの集合C*の中の最近接クラスタc*(すなわち、新規データxと最も距離が近い平均ベクトルによって代表されるクラスタ)に、新規データxを追加する(220)。
次に、CPU152は、パラメータt及びパラメータiを、それぞれ、「0」及び「1」に初期化する(221、222)。パラメータtは、k-means法の更新の反復回数を計数するために使用される。パラメータiは、近接クラスタの集合C*に要素として含まれるクラスタを指示するために使用される。
その後、ステップ230以降に示す、k-means法による最適化のループに入る。
具体的には、CPU152は、近接クラスタの集合C*の要素である各クラスタについて(230)、クラスタのメンバ数が制限M_maxを超えるか否かを判定する(231)。
具体的には、CPU152は、ステップ230において、パラメータiが集合C*の要素数以下であるか否かを判定する。ステップ230において、パラメータiが集合C*の要素数以下であると判定された場合、CPU152は、集合C*のi番目の要素であるクラスタcを対象として(234)、クラスタcのメンバ数がM_maxを超えるか否かを判定する(231)。なお、最適化ループに入った時点では、新規データxが追加された最近接クラスタc*以外のクラスタは、メンバ数制限を超えないことが前提となる。
仮に最近接クラスタc*のメンバ数がM_maxを超えた場合、CPU152は、そのクラスタを2分割し(232)、新たに生成されたクラスタdを近接クラスタの集合C*の要素に加える(233)。クラスタを2分割する方法としては、種々の方法が考えられる。ここでは、そのクラスタ内のベクトル分布に関して主軸を求め、各メンバのベクトルの主軸への射影が、クラスタ平均ベクトルの射影のどちら側に存在するかを判定することによって、メンバを二つのクラスタに群分けする。
ステップ233が実行された後、CPU152の処理は、ステップ231に戻る。ステップ231では、分割後のクラスタのメンバ数がM_maxを超えているか否かが判定される。分割後のクラスタのメンバ数がM_maxを超えていると判定された場合、そのクラスタをさらに分割するために、処理はステップ232に進む。一方、分割後のクラスタのメンバ数がM_maxを超えていないと判定された場合、次のクラスタについてステップ231の判定を実行するために、CPU152は、パラメータiの値に1を加算して(235)、ステップ230に戻る。
ステップ230において、パラメータiが集合C*の要素数を超えたと判定された場合、集合C*の要素である全てのクラスタのメンバ数がM_max以内であることが確認された。この場合、CPU152は、k-means法による最適化の反復回数tをチェックする(240)。
本システムにおいて、図2に示す最適化は、あくまでクラスタの部分集合を対象としたものであり、クラスタ全体での最適化を意味しない。また、データの追加は、その後も繰り返し行われることを想定しており、その度に最適化が実行される。従って、ある時点での最適化を極端に重視する必要はなく、反復の最大数t_maxは、数回程度で十分である。
ステップ240において、反復回数を示すパラメータtが反復の最大数t_max以上であると判定された場合、k-means法による最適化が所定の回数実行されたため、図2の処理が終了する。あるいは、ステップ240において、集合C*が変化していないと判定された場合、さらに最適化を実行する必要がないと考えられる。従って、この場合も、図2の処理が終了する。
一方、ステップ240において、反復回数を示すパラメータtが反復の最大数t_maxより小さく、かつ、集合C*が変化していると判定された場合、クラスタの最適化を実行する必要があるため、CPU152は、k-means法によって集合C*を更新する(250)。
ステップ250の処理は、通常のk-means法と同様である。すなわち、近接クラスタに含まれる全データは、その時点での最も近接したクラスタ平均を持つクラスタに配分される。これによって、各近接クラスタのメンバ、及び、クラスタ平均が更新され、ステップ230に戻る。最適化ループに入った時点とは異なり、今回は、大きくクラスタの状態が変化した場合、複数のクラスタがメンバ数の上限を超える可能性がある。また、2分割しただけでは不十分であるため、再度分割が必要となる場合、あるいは、新たに生成されたクラスタが上限を超える場合も生じる可能性がある。このため、CPU152は、全てのクラスタのメンバ数が上限M_max以下となるように処理(ステップ230からステップ235)した後、ステップ240に移行する。ステップ240で、反復数が最大数t_maxに達したか、あるいは、近接クラスタの集合C*の状態に全く変化がない場合、処理を終了する。
図2に示した一連の処理は、メモリ153上の作業領域で実行され、最終的な近接クラスタの状態が、ハードディスク154上に保存される。このハードディスク154上への保存時には、オプションとして、以下の機能が用意されている。
一般に、類似性が高いクラスタは、更新時、及び、検索時に同時に参照される可能性が高い。従って、類似性が高いクラスタ同士が、ハードディスク上でなるべく近傍に集まるように配列すれば、ディスク走査の負荷を低減できるはずである。
Figure 0005137339
式(1)は、クラスタ位置の再配列の手続きを定義するためのエネルギー関数である。Ncは、クラスタ数、v_iは、i番目の位置にあるクラスタの平均ベクトルを表す。本エネルギー関数は、相前後する位置にあるクラスタ平均の2乗距離の総和として定義されている。
ただし、両端の位置、すなわち、1番目の位置とNc番目の位置での境界条件は、両端で折り返しを行った形式で定義している。具体的には、存在しない0番目の位置のクラスタの平均ベクトルv_0の代わりに、2番目の位置のクラスタの平均ベクトルv_2が用いられる。また、存在しないNc+1番目の位置のクラスタの平均ベクトルv_Nc+1の代わりに、Nc-1番目の位置のクラスタの平均ベクトルv_Nc-1が用いられる。この時、i番目の位置にあるクラスタとj番目の位置にあるクラスタを交換した場合のエネルギー関数の変化量は、式(2)によって算出される。ただし、j>iとする。
Figure 0005137339
上記のエネルギー変化量に基づき、エネルギー関数が減少するように配列内のクラスタ位置を更新すれば、配列中で隣り合う位置に存在するクラスタ同士の距離が相対的に小さい状態が実現できる。
図3は、本発明の実施の形態において実行されるクラスタ位置の再配列の処理を示すフローチャートである。
図3に示す処理は、検索サーバプロセス111を実現するサーバ・プログラムの一部として実行される。従って、図3に示す処理は、CPU152によって実行される。
まず、CPU152は、現在更新対象となっている近接クラスタの集合C*から、式(1)によって算出されるエネルギーの減少量が最大となるクラスタの組を探す(310)。
次に、CPU152は、ステップ310の条件に該当するクラスタの組を発見したか否かを判定する(320)。
該当するクラスタの組が発見されない場合、エネルギーを減少させる位置の交換が存在しない(言い換えると、現在のクラスタの配列のエネルギーが最も小さい)。この場合、各クラスタは最適に配置されていると考えられるため、処理を終了する。
一方、該当するクラスタの組が発見された場合、CPU152は、その位置を交換することによって配列を更新し(330)、次のクラスタの組を探すためにステップ310に戻る。最終的には、こうして得られた配列上の位置に従って、クラスタメンバの特徴量ベクトルをハードディスク154上へ保存する。
次に、本システムにおける検索処理について説明する。
図4は、本発明の実施の形態の類似検索における、クライアント・サーバ間の情報の流れ、及び、各プログラム内での処理の概略を示す説明図である。
クライアント・プログラムは、クライアント計算機130のメモリ132に格納され、CPU131によって実行されるアプリケーションプログラムである。CPU131は、必要に応じて入力装置134及び出力装置135を制御しながら、図4に示すクライアント側の処理を実行する。一方、サーバ・プログラムは、サーバプロセス111を実現するプログラムであり、サーバ計算機110のメモリ153に格納され、CPU152によって実行される。
また、以下の説明においてクライアント・プログラムからサーバ・プログラムに送信されるデータ、及び、サーバ・プログラムからクライアント・プログラムに返されるデータは、実際には、I/F133、通信基盤120及びI/F151を介して送受信される。
クライアント計算機のユーザは、入力装置134を使用して、検索要求を入力することができる。ユーザからの要求(401)を受け付けたクライアント・プログラムは、類似検索のキーとなるベクトルデータ(以下、キーデータ)を検索条件として含む検索要求を、サーバ・プログラムに送信する(402)。
サーバ・プログラムは、まず、クラスタを対象とした類似検索を実行する(403)。以下、これをクラスタ間検索処理と呼ぶ。クラスタ間検索処理によって、キーデータと全クラスタの平均ベクトルとの間の距離計算が実行され、距離が小さい(すなわち、近い)順序にソートされた所定の個数Rc個のクラスタからなる配列が得られる。
次に、このソートされたクラスタ配列中のメンバを参照し、各クラスタメンバの特徴量ベクトルとキーデータとの間の距離計算を実行することによって、類似検索の結果を導出する(404)。具体的には、ソートされたRc個のクラスタの全メンバの特徴量ベクトルとキーデータとの間の距離を計算し、その距離が小さい順にクラスタメンバをソートする。以下、この処理をクラスタ内検索処理と呼ぶ。
サーバ・プログラムは、類似検索の結果を、クライアント・プログラムに返す(405)。クライアント・プログラムに返される類似検索の結果は、少なくとも、キーデータとの距離が近いものから順に、所定の個数のクラスタメンバの識別子を含む。この際、サーバ・プログラムは、実際に参照されたクラスタ(すなわち、類似検索が終了したクラスタ)に関する情報を類似検索の結果に付加して返す。以下、前回までの類似検索の際に実際に参照されたクラスタに関する情報を「参照クラスタ情報」と記載する。検索結果及び参照クラスタ情報については、後で図5及び図6を参照して説明する。
検索結果を受信したクライアント・プログラムは、検索結果の表示等の処理を実行する(406)。例えば、クライアント・プログラムは、受信した検索結果に含まれる識別子によって識別される画像を、出力装置135に表示してもよい。検索結果の表示の例については、後で図8を参照して説明する。
その後、再度、ユーザから同一条件の検索要求を受け付けると(407)、クライアント・プログラムは、検索条件とともに、以前取得した参照クラスタ情報及び検索結果を、検索要求としてサーバ・プログラムに送信する(408)。
検索要求を受信すると、サーバ・プログラムは、再びクラスタ間検索処理を実行する(409)。この際、サーバ・プログラムは、参照クラスタ情報を用いて、参照済みのクラスタに関する距離計算を省略することができる。ステップ409の検索の結果、前回検索されたクラスタ数RcにさらにRc個加えたRc×2個のクラスタが、各クラスタの平均ベクトルとキーデータとの間の距離が小さい順にソートされる。その結果、ソートされたRc×2個のクラスタからなる配列が得られる。
次のクラスタ内検索処理(410)において、サーバ・プログラムは、前回参照された上位Rc個のクラスタのメンバの検索を省略し、Rc+1位からRc×2位までの順位にあるRc個のクラスタについて、キーデータを用いてクラスタメンバとの類似検索を実行し、その検索結果を前回の検索結果とマージする。具体的には、今回得られた検索結果と前回得られた検索結果を合わせて、それらの検索結果であるクラスタメンバをキーデータとの間の距離が近い順にソートする。
サーバ・プログラムは、こうして更新された検索結果と、Rc×2個の参照クラスタに関する情報とを、クライアント・プログラムに返す(411)。
以下、同様の処理を繰り返すことによって、参照クラスタの個数が増えていく。これによって、クライアント・プログラムは、より高い精度の検索結果を、ユーザからの要求に応じて、逐次的に取得することができる。1回の検索要求に応じて新たに検索されるクラスタの数は一定(Rc個)である。そして、各クラスタのメンバ数には上限(M_max)がある。このため、1回の検索要求に応じた検索処理に要する時間は、一定の上限を超えることがない。各クラスタのメンバ数が概ね同じであれば、1回の検索要求に応じた検索処理に要する時間も概ね同じとなる。
図5は、本発明の実施の形態の参照クラスタ情報の説明図である。
具体的には、図5は、例えば図4のステップ405、408及び411において、クライアント・プログラムとサーバ・プログラムの間で送受信される参照クラスタ情報の説明図である。
各クラスタは、各クラスタを識別するクラスタIDによって管理されている。参照クラスタ情報は、タイムスタンプ510、既に検索のために参照されたクラスタを識別するクラスタIDの列、及び、各クラスタの平均ベクトルとキーデータとの間の距離を示す情報を含む。タイムスタンプ510には、その参照クラスタ情報が生成された時刻が記録される。
なお、図5において、各クラスタIDと距離の組は、距離の値が昇順となるように整列される。すなわち、距離の値が最も小さいクラスタIDが参照クラスタ情報の先頭となる。
図6は、本発明の実施の形態の検索結果の説明図である。
具体的には、図6は、例えば図4のステップ405、408及び411において、クライアント・プログラムとサーバ・プログラムの間で送受信される検索結果の説明図である。
検索結果は、クラスタ内検索処理の結果として得られたクラスタメンバを識別するデータIDの列、及び、各クラスタメンバの特徴量ベクトルとキーデータとの間の距離を示す情報を含む。
なお、図5と同様、図6のデータIDと距離の組は、距離の値が昇順となるように整列される。
図7は、本発明の実施の形態のサーバ・プログラムにおいて実行されるクラスタ内検索処理を示すフローチャートである。
図7の処理は、図4のステップ404及び410において実行される。従って、図7の処理は、サーバ・プログラムの一部として、サーバ計算機110のCPU152によって実行される。
最初に、処理の概要を説明する。
ステップ710の判定は、クラスタ間検索によって得られたクラスタ配列の先頭から、参照済みのクラスタをスキップするための判定である。クラスタのメンバ及びクラスタの順序に変更がない場合、クラスタ間検索の結果は不変である。この場合、参照済みクラスタを対象としたクラスタ内検索処理の結果は、既に取得した結果と同じになるはずである。従って、この場合、参照済みクラスタを対象としたクラスタ内検索処理を省略することができる。
ただし、データの更新処理によって、クラスタ全体の状態が変わった場合、クラスタ間検索の結果は、変わってしまう可能性がある。例えば、クラスタに新たなメンバが追加された場合(図2参照)、さらに、クラスタの順序が変更された場合(図3参照)、それらのクラスタについては、クラスタ内検索処理を実行する必要がある。クラスタ内検索処理を省略できるか否かの判定が、ステップ720において実行される。
ステップ730以降のループにおいて、参照済みクラスタを除く所定のRc個のクラスタのメンバを対象とする類似検索が実行される。類似検索のために最後に参照された後に状態が変わってしまったクラスタがある場合、そのクラスタは参照済みクラスタに含まれない。
次に、処理の詳細を説明する。
以下の説明において、配列Aは、参照クラスタ情報によって示されるクラスタの配列に相当する。配列Bは、クラスタ間検索処理の結果として得られた配列に相当する。例えば、図7の処理が図4のステップ410において実行される場合、ステップ408においてクライアント・プログラムから送信された参照クラスタ情報(1)が示すクラスタの配列が配列Aに相当し、ステップ409のクラスタ間検索処理の結果が配列Bに相当する。また、パラメータi及びjは、配列A又はBに含まれる要素を示すために使用される。
最初に、サーバ・プログラムは、パラメータiの値を「0」に初期化する(701)。
次に、サーバ・プログラムは、パラメータiの値が配列Aの要素数以下であるか否かを判定する(710)。
ステップ710において、パラメータiの値が配列Aの要素数以下であると判定された場合、次に、サーバ・プログラムは、クラスタA[i]とクラスタB[i]が同一であるか否かを判定する(720)。
クラスタはクラスタIDによって管理される。従って、A[i]とB[i]のクラスタIDが異なる場合、これらのクラスタは同一でないと判定される。さらに、A[i]とB[i]のクラスタIDが同一であっても、状態が異なる場合がある。したがって、ステップ720の判定のために、タイムスタンプ510が参照される。A[i]とB[i]のクラスタIDが同一でも、A[i]に関するタイムスタンプ510が示す時刻以降にB[i]が更新されていた場合、これらのクラスタは異なるクラスタであると判定される。
ステップ720において、A[i]とB[i]が異なるクラスタであると判定された場合、クラスタB[i]の状態は、最後に参照された後で更新されている。この場合、クラスタB[i]及びその下位のクラスタを対象とするクラスタ内検索処理を実行するため、サーバ・プログラムはステップ722に進む。
一方、ステップ720において、A[i]とB[i]が同一のクラスタであると判定された場合、参照済みクラスタであるB[i]を対象とするクラスタ内検索処理は、省略することができる。この場合、次の要素について判定するため、サーバ・プログラムは、パラメータiの値を1加算して(721)、ステップ710に戻る。
ステップ710において、パラメータiの値が配列Aの要素数を超えると判定された場合、クラスタB[i]及びそれより下位のクラスタは、まだクラスタ内検索処理の対象になったことがない。この場合、クラスタB[i]及びその下位のクラスタを対象とするクラスタ内検索処理を実行するため、サーバ・プログラムはステップ722に進む。
新たに参照すべきクラスタの開始位置(すなわち、ステップ722の時点のB[i])が確定したら、サーバ・プログラムは、そのクラスタから始まるRc個のクラスタに関してクラスタ内検索処理を実行する。
具体的には、サーバ・プログラムは、ステップ722において、パラメータjの値を「1」に初期化する。
次に、サーバ・プログラムは、パラメータjの値が、所定の参照クラスタ数Rc以下であるか否かを判定する(730)。
ステップ730において、パラメータjの値がRc以下であると判定された場合、まだRc個のクラスタを対象とするクラスタ内検索処理が終了していない。この場合、サーバ・プログラムは、クラスタB[i+j]を対象とするクラスタ内検索処理を実行する(740)。具体的には、サーバ・プログラムは、クラスタB[i+j]のメンバとキーデータとの間の距離を計算する。
次に、サーバ・プログラムは、既に取得した検索結果に、クラスタB[i+j]から得られた結果をマージすることによって、検索結果を更新する(750)。ここで、既に取得した検索結果とは、クライアント・プログラムから送信された検索要求に含まれる検索結果(例えば、図4のステップ408に示す検索結果(1))である。具体的には、サーバ・プログラムは、既に取得した検索結果であるクラスタメンバに、ステップ740において検索されたクラスタのメンバを追加し、それらのクラスタメンバを、検索キーデータからの距離が小さい順にソートする。
次に、サーバ・プログラムは、次のクラスタについて処理するため、パラメータjの値を1加算して(751)、ステップ730に戻る。
ステップ730において、パラメータjの値がRcを超えると判定された場合、Rc個のクラスタを対象とするクラスタ内検索処理が終了した。この場合、サーバ・プログラムは、処理を終了する。
次に、本システムにおけるユーザに対する検索結果の表示について説明する。
図8は、本発明の実施の形態において表示される検索結果表示画面の状態遷移の例の説明図である。
図1から図7を参照して説明したように、本実施の形態のサーバ・プログラムは、クライアント・プログラムから送信されたベクトルデータをキーとして、多数のベクトルデータを対象とする類似検索を実行する。そして、サーバ・プログラムは、検索結果をクライアント・プログラムに返す。クライアント・プログラムは、検索結果であるベクトルデータ自体を表示してもよいが、ベクトルデータに関連付けられたデータを表示してもよい。
本実施の形態において、検索対象のベクトルデータは、画像の特徴量ベクトルである。この場合、クライアント・プログラムは、検索によって得られた特徴量ベクトル自体を表示するのではなく、その特徴量ベクトルに対応する画像を検索結果として表示する。特徴量ベクトルに対応する画像は、画像サーバ140に格納されている。
図6に示すように、サーバ・プログラムからクライアント・プログラムに送信される検索結果がデータIDを含む場合、クライアント・プログラムは、受信したデータIDによって識別される画像を画像サーバ140から取得して、検索結果として出力装置135に表示する。
図8には、検索によって得られた特徴量ベクトルに対応する画像を、検索結果として表示する画面の例を示す。なお、図8の画面は、クライアント計算機の出力装置135に表示される。
図8の例では、検索結果の最大数を100件とし、1画面上に20件ずつ画像を表示する画面構成となっている。画面上の表示は、20件だけであるが、クライアント・プログラムは、サーバ・プログラムに対して、特徴量ベクトルとキーデータとの間の類似性が高い上位100件の検索結果を常に要求するよう設定されている。
図8は、類似検索結果表示画面810、820、830及び840が順次表示される例を示す。各画面810等は、検索結果811及びボタン812等を含む。検索結果811は、検索結果である画像、又は、その画像を縮小したサムネイル画像である。
検索結果表示の初期画面810には、検索結果100件中の1位から20位までが、特徴量ベクトルとキーデータとの間の類似性が高い順序に配列され、表示されている(811)。初期画面810の表示は、図4のステップ406に相当する。従って、このとき表示される検索結果は、図4のステップ405における検索結果(1)に相当する。
初期画面810には、さらに、ボタン812及び813が表示される。ボタン812は、検索結果の最初の20件(すなわち、1位から20位までの検索結果)を表示する要求を受け付けるボタンである。一方、ボタン813は、次の20件(すなわち、21位から40位までの検索結果)を表示する要求を受け付けるボタンである。
初期画面には、最初の20件が表示されている。このため、ユーザは、ボタン812を操作することができない。この場合、ボタン812は、ボタン813と異なる態様(例えば、異なる色彩又は形状)で表示される。
ここで、ユーザがボタン813を操作すると、再度、クライアント・プログラムが検索要求をサーバに送信する。入力装置がマウスを含む場合、ボタン813の操作は、マウスクリックであってもよい。ユーザによるボタン813の操作が図4のステップ407に相当し、その結果送信される検索要求がステップ408に相当する。サーバ・プログラムは、受信した検索要求に従って、類似検索処理を実行し、その結果をクライアント・プログラムに返す(図4のステップ409、410及び411)。
その結果、クライアント・プログラムは、更新された100件の検索結果を取得する。検索結果取得後、画面810は画面820に遷移する。本システムでは、上位の検索結果は相対的に安定しており、通常の場合、画面820には、更新された検索結果中の21位から40位までの画像が、類似性が高い順序で表示される。
ただし、検索結果の更新の結果、上位20位以内に変動が生じる場合も当然ある。この場合、画面820には、更新された検索結果中の上位40位以内の画像で、かつ、まだ画面810に表示されていない画像が、類似性が高い順に20件表示される。例えば、更新された検索結果中の4位と8位の画像が、以前の検索結果中の20位以内に含まれていなかった場合、画面820に表示される検索結果は、先頭に、4位、次に8位の画像が表示され、その後に、21位から38位までの画像が表示される。この場合、39位と40位の画像は画面820に表示されない。
画面820には、ボタン821、822及び823が表示される。ボタン821及び822の機能は、それぞれ、画面810のボタン812及び813と同等である。ボタン823は、画面820に表示されている検索結果の次の20件(すなわち、41位から60位までの検索結果)を表示する要求を受け付けるボタンである。従って、ユーザがボタン821を操作すると、上位20位までの検索結果表示に戻る。ユーザがボタン823を操作すると、41位から60位までの検索結果が表示される。ユーザは、ボタン822を操作することができない。
例えば、ユーザがボタン821をクリックすると、画面820は画面830に遷移する。この際には、検索結果は更新されない。画面830に表示されている検索結果の画像は、画像810に表示されているものと全く同一である。しかし、画面830に表示されているボタンの数は、画面820と同じである。
具体的には、画面830には、ボタン831、832及び833が表示される。これらのボタンの機能は、それぞれ、画面820のボタン821、822及び823と同等である。ただし、画面810のボタン812と同様、ユーザは、ボタン831を操作することができない。
その後、ユーザが、まだ表示されていない下位の検索結果の表示を順次要求すると、上記と同様の手順によって検索結果が更新され、ボタンの数が増加する。最終的に81位から100位までの検索結果を表示する画面840に至るまで、上記の処理が実行される。画面840には、81位から100位までの検索結果の画像と、五つのボタン841から845が表示される。ボタン841から843の機能は、それぞれ、画面820のボタン821から823と同等である。ボタン844は、61位から80位までの検索結果の表示を要求するためのボタンである。ボタン845は、81位から100位までの検索結果の表示を要求するためのボタンである。
仮に、画面810において、はじめから、41位以降の検索結果の表示を要求するボタンが表示される場合、例えば、41位から60位までの検索結果の表示が要求される場合がある。この要求がなされた時点で、21位から40位までの検索結果もまだ表示されていない。このため、サーバ・プログラムは、21位から40位までの検索結果を表示するためのRc個のクラスタを対象とするクラスタ内検索処理と、41位から60位までの検索結果を表示するための次のRc個のクラスタを対象とするクラスタ内検索処理とを実行する必要がある。言い換えると、サーバ・プログラムは、1回の検索要求に応じて、Rc×2個のクラスタを対象とするクラスタ内検索処理を実行する必要がある。その結果、Rc個のクラスタを対象とするクラスタ内検索処理が実行される場合と比較して、1回の検索要求に対する応答時間が長くなる。
一方、図8に示すユーザインタフェースによれば、上位の検索結果が表示された場合のみ、その表示された検索結果の下位に連続する検索結果の表示要求を受け付けることが許可される。例えば、最初に上位20位までの20件の検索結果を表示することが要求されたとき、その要求に応じて表示される画面810には、1位から20位までの検索結果が表示される。しかし、この画面810には、次の20件(すなわち21位から40位まで)の表示を要求するためのボタン813が表示されるが、41位以降の検索結果の表示を要求するボタンは表示されない。ボタン813が操作され、21位から40位までの検索結果が一度表示されると、その後、41位から60位までの検索結果を表示するボタン823、833又は843が表示される(画面820、830又は840)。このため、サーバ・プログラムは、Rc個を超える数のクラスタを対象とする検索要求を受けることがない。このため、サーバ・プログラムは、1回の検索要求に対して、概ね一定の応答時間内に検索結果を返すことができる。
上記画面構成の特徴は、検索結果の表示範囲指定に制約を設け、ある範囲の表示が、その一つ上位の範囲が表示された後に、はじめて可能になるようにした点である。この制約は、上位から順番に見ていく、という、通常に行われるユーザ操作を妨げるものではなく、そのような操作を自然に促すものである。特に、類似性に限らず何かしらの基準でソートされたデータを見る場合、上位から順番に内容を確認していくのが、操作の流れとしては最も自然である。従って、操作性の点でユーザに対して不満を与えることはない。また、不用な機能が除かれている分、より分かり易い画面となっている。
図8に示す画面による検索結果表示は、類似検索結果の順位を正確に反映するものではない。また、最終的な検索結果の上位100件に含まれているにも関わらず、検索結果として表示されない画像も、稀には存在する。まず、順位に関して言えば、類似検索の場合、目的は類似したデータを閲覧することであり、正確な順位は、ユーザにとって特に意味のある情報とは言えない。従って、ユーザにとって特に不都合は生じない。検索結果の内容に関しては、先述したように、本システムでは、上位の検索結果は相対的に安定しており、表示から外れるデータは、検索結果中で類似性が低い方のデータとなる。類似検索では、類似性が高いデータに対してユーザが関心を持っている、と想定されるので、これも、ユーザにとっての不都合とはならない。
一方、図8のような画面構成と異なり、大量の検索結果、例えば、上位1000件を表示するようなユーザインタフェースも存在する。このような大量のデータを表示する方法に関しては、特開2000−29885号公報及び特開2004−62356号公報に記載されている。大量のデータを表示する場合、画像データの転送に時間を要するため、一度に全画像が表示されることはない。この場合、検索結果の更新は、所定の時間間隔で自動的に実行される。検索結果が更新された時点で、クライアント・プログラムが表示するべき画像も更新される。更新によって検索結果から外れたデータは、画面上からも除去される。この自動更新は、使用者が、別の検索条件を指定するまで繰り返される。この方式を採用した場合、画面上には、常に最新の検索結果が表示されることになる。また、自動更新による表示画像の変動は、更新回数に応じて減少し、アプリケーション側が新たに取得する必要がある画像の数も減少する。従って、不必要に通信負荷等が生じることはない。
以上の本発明の実施の形態は、検索対象のベクトルデータが画像の特徴量ベクトルである場合を例として説明したが、本発明は、いかなる種類のベクトルデータの検索に対しても適用することができる。
以上、本発明の実施の形態によれば、検索対象のベクトルデータが予めクラスタに分類され、各クラスタの代表値が定められる。任意のベクトルデータをキーとする検索要求が発行された場合、キーデータとの距離が近い代表値によって代表される所定の数のクラスタのみを対象として、類似検索が実行される。このため、高速な類似検索を実現することができる。各クラスタが、相互に類似するベクトルデータによって構成される場合、1回目の検索にある程度の精度を期待することができる。1回目の検索要求に応じた検索によって目的のデータを取得できなかった場合、前回と同一のベクトルデータをキーとする検索要求を繰り返し発行することによって、類似検索の対象クラスタの範囲が順次拡大される。その結果、検索要求を繰り返すごとに、検索精度が向上する。ユーザは、必要な精度の検索結果を得るまで検索要求を繰り返し発行することができる。検索要求を繰り返す場合、既に検索が実行されたクラスタを対象とする類似検索が省略される。このため、類似検索の対象の範囲を拡大しても、1回の検索要求に対応して実際に類似検索が実行されるクラスタの数を一定とすることができる。その結果、検索要求に対する応答時間が一定の値以下に抑えられる。
本発明の実施の形態の類似検索システムの構成を示すブロック図である。 本発明の実施の形態においてデータ登録時に実行される処理を示すフローチャートである。 本発明の実施の形態において実行されるクラスタ位置の再配列の処理を示すフローチャートである。 本発明の実施の形態の類似検索における、クライアント・サーバ間の情報の流れ、及び、各プログラム内での処理の概略を示す説明図である。 本発明の実施の形態の参照クラスタ情報の説明図である。 本発明の実施の形態の検索結果の説明図である。 本発明の実施の形態のサーバ・プログラムにおいて実行されるクラスタ内検索処理を示すフローチャートである。 本発明の実施の形態において表示される検索結果表示画面の状態遷移の例の説明図である。
符号の説明
110 サーバ計算機。
111 検索サーバプロセス。
112 クラスタ管理情報
113 クラスタ情報
114 クラスタメンバの特徴量データ
115 記録されたクラスタ管理情報
120 通信基盤
130 クライアント計算機
131、152 CPU
132、153 メモリ
133、151 インターフェース
134 入力装置
135 出力装置
154 ハードディスク
210 近接クラスタの取得
220 最近接クラスタへのデータ追加
230 近接クラスタ要素数に関するループの判定部分
231 クラスタメンバ数のチェック
232 クラスタの分割
233 クラスタの追加
240 k-means法の反復回数のチェック
250 k-means法の実行
310 配置交換する組の探索
320 組が発見できたか否かの判定
330 クラスタ配列の更新
401 ユーザ入力
402 クライアントからサーバへの送信情報(初回)
403 クラスタ間検索処理
404 クラスタ内検索処理
405 サーバからクライアントへの返信情報(初回)
406 検索結果表示
407 ユーザ入力
408 クライアントからサーバへの送信情報(2回目)
409 クラスタ間検索処理
410 クラスタ内検索処理
411 サーバからクライアントへの返信情報(2回目)
510 タイムスタンプ
710 参照済みクラスタ数の判定
720 クラスタ同一性の判定
730 新規参照するクラスタ数の判定
740 クラスタ内での類似検索
750 検索結果の更新
810 類似画像検索結果表示画面/1位から20位
811 検索結果
812、821、831、841 1位から20位を表示するためのボタン
813、822、832、842 21位から40位を表示するためのボタン
820 類似画像検索結果表示画面/21位から40位
823、833、843 41位から60位を表示するためのボタン
830 類似画像検索結果再表示画面/1位から20位
831 表示する順位を切り替えるボタンの列
821 1位から20位を表示するためのボタン
840 類似画像検索結果表示画面/81位から100位
841 表示する順位を切り替えるボタンの列
844 61位から80位を表示するためのボタン
845 81位から100位を表示するためのボタン

Claims (14)

  1. データを入出力するインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続される一つ以上の記憶装置と、を備える検索サーバにおいて、
    前記記憶装置には、各々が複数のクラスタのいずれかに含まれる複数の第1ベクトルデータと、前記複数の第1ベクトルデータの前記クラスタごとの代表値と、が格納され、
    前記プロセッサは、
    第2ベクトルデータを含む検索要求を受信すると、受信した前記第2ベクトルデータをキーとして前記代表値を検索し、
    前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、第1の所定の数の前記クラスタに含まれる複数の第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記第2ベクトルデータと、前記第2ベクトルデータをキーとした前記第1ベクトルデータの検索が終了した前記クラスタを示す情報と、を含む検索要求を受信すると、前記受信した情報によって示されるクラスタ以外の前記クラスタの前記代表値を、前記第2ベクトルデータをキーとして検索し、
    前記受信した情報によって示されるクラスタ以外の前記クラスタのうち、前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、前記第1の所定の数の前記クラスタに含まれる複数の前記第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記検索された第1ベクトルデータのうち、前記第2ベクトルデータとの距離が近い第2の所定の数の前記第1ベクトルデータを、前記インターフェースを介して出力することを特徴とする検索サーバ。
  2. データを入出力するインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続される一つ以上の記憶装置と、を備える検索サーバにおいて、
    前記記憶装置には、各々が複数のクラスタのいずれかに含まれる複数の第1ベクトルデータと、前記複数の第1ベクトルデータの前記クラスタごとの代表値と、が格納され、
    前記プロセッサは、
    第2ベクトルデータを含む検索要求を受信すると、受信した前記第2ベクトルデータをキーとして前記代表値を検索し、
    前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、第1の所定の数の前記クラスタに含まれる複数の第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記検索された第1ベクトルデータのうち、前記第2ベクトルデータとの距離が近い第2の所定の数の前記第1ベクトルデータ、及び、前記第2ベクトルデータをキーとした前記第1ベクトルデータの検索が終了した前記クラスタを示す情報を、前記インターフェースを介して出力することを特徴とする検索サーバ。
  3. 前記プロセッサは、
    前記第2ベクトルデータと、前記第2ベクトルデータをキーとした前記第1ベクトルデータの検索が終了した前記クラスタを示す情報と、を含む検索要求を受信すると、前記受信した情報によって示されるクラスタ以外の前記クラスタの前記代表値を、前記第2ベクトルデータをキーとして検索し、
    前記受信した情報によって示されるクラスタ以外の前記クラスタのうち、前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、前記第1の所定の数の前記クラスタに含まれる複数の前記第1ベクトルデータを、前記第2ベクトルデータをキーとして検索することを特徴とする請求項2に記載の検索サーバ。
  4. データを入出力するインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続される一つ以上の記憶装置と、を備える検索サーバにおいて、
    前記記憶装置には、各々が複数のクラスタのいずれかに含まれる複数の第1ベクトルデータと、前記複数の第1ベクトルデータの前記クラスタごとの代表値と、が格納され、
    前記プロセッサは、
    第2ベクトルデータを含む検索要求を受信すると、受信した前記第2ベクトルデータをキーとして前記代表値を検索し、
    前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、第1の所定の数の前記クラスタに含まれる複数の第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記検索された第1ベクトルデータのうち、前記第2ベクトルデータとの距離が近い第2の所定の数の前記第1ベクトルデータを、前記インターフェースを介して出力し、
    前記複数のクラスタを配列として前記記憶装置に格納する場合に、前記配列中で隣り合う位置に存在するクラスタ同士の代表値の距離が相対的に小さくなるよう再配置することを特徴とする検索サーバ。
  5. ネットワークを介して接続された端末計算機及び検索サーバを備える検索システムにおいて、
    前記検索サーバは、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続される一つ以上の記憶装置と、を備え、
    前記記憶装置には、各々が複数のクラスタのいずれかに含まれる複数の第1ベクトルデータと、前記複数の第1ベクトルデータの前記クラスタごとの代表値と、が格納され、
    前記端末計算機は、第2ベクトルデータの入力を受け付けると、前記受け付けた第2ベクトルデータを含む検索要求を、前記ネットワークを介して前記検索サーバに送信し、
    前記プロセッサは、
    前記インターフェースを介して前記第2ベクトルデータを含む検索要求を受信すると、受信した前記第2ベクトルデータをキーとして前記代表値を検索し、
    前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、第1の所定の数の前記クラスタに含まれる複数の第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記第2ベクトルデータと、前記第2ベクトルデータをキーとした前記第1ベクトルデータの検索が終了した前記クラスタを示す情報と、を含む検索要求を受信すると、前記受信した情報によって示されるクラスタ以外の前記クラスタの前記代表値を、前記第2ベクトルデータをキーとして検索し、
    前記受信した情報によって示されるクラスタ以外の前記クラスタのうち、前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、前記第1の所定の数の前記クラスタに含まれる複数の前記第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記検索された第1ベクトルデータのうち、前記第2ベクトルデータとの距離が近い第2の所定の数の前記第1ベクトルデータを、前記インターフェースを介して出力し、
    前記端末計算機は、前記検索サーバから前記第1ベクトルデータを受信すると、前記受信した第1ベクトルデータ又は前記受信した第1ベクトルデータに関連付けられたデータを検索結果として表示することを特徴とする検索システム。
  6. ネットワークを介して接続された端末計算機及び検索サーバを備える検索システムにおいて、
    前記検索サーバは、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続される一つ以上の記憶装置と、を備え、
    前記記憶装置には、各々が複数のクラスタのいずれかに含まれる複数の第1ベクトルデータと、前記複数の第1ベクトルデータの前記クラスタごとの代表値と、が格納され、
    前記端末計算機は、第2ベクトルデータの入力を受け付けると、前記受け付けた第2ベクトルデータを含む検索要求を、前記ネットワークを介して前記検索サーバに送信し、
    前記プロセッサは、
    前記インターフェースを介して前記第2ベクトルデータを含む検索要求を受信すると、受信した前記第2ベクトルデータをキーとして前記代表値を検索し、
    前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、第1の所定の数の前記クラスタに含まれる複数の第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記検索された第1ベクトルデータのうち、前記第2ベクトルデータとの距離が近い第2の所定の数の前記第1ベクトルデータ、及び、前記第2ベクトルデータをキーとした前記第1ベクトルデータの検索が終了した前記クラスタを示す情報を、前記インターフェースを介して出力し、
    前記端末計算機は、前記検索サーバから前記第1ベクトルデータを受信すると、前記受信した第1ベクトルデータ又は前記受信した第1ベクトルデータに関連付けられたデータを検索結果として表示することを特徴とする検索システム。
  7. 前記プロセッサは、
    前記第2ベクトルデータと、前記第2ベクトルデータをキーとした前記第1ベクトルデータの検索が終了した前記クラスタを示す情報と、を含む検索要求を受信すると、前記受信した情報によって示されるクラスタ以外の前記クラスタの前記代表値を、前記第2ベクトルデータをキーとして検索し、
    前記受信した情報によって示されるクラスタ以外の前記クラスタのうち、前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、前記第1の所定の数の前記クラスタに含まれる複数の前記第1ベクトルデータを、前記第2ベクトルデータをキーとして検索することを特徴とする請求項6に記載の検索システム。
  8. ネットワークを介して接続された端末計算機及び検索サーバを備える検索システムにおいて、
    前記検索サーバは、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続される一つ以上の記憶装置と、を備え、
    前記記憶装置には、各々が複数のクラスタのいずれかに含まれる複数の第1ベクトルデータと、前記複数の第1ベクトルデータの前記クラスタごとの代表値と、が格納され、
    前記端末計算機は、第2ベクトルデータの入力を受け付けると、前記受け付けた第2ベクトルデータを含む検索要求を、前記ネットワークを介して前記検索サーバに送信し、
    前記プロセッサは、
    前記インターフェースを介して前記第2ベクトルデータを含む検索要求を受信すると、受信した前記第2ベクトルデータをキーとして前記代表値を検索し、
    前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、第1の所定の数の前記クラスタに含まれる複数の第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記検索された第1ベクトルデータのうち、前記第2ベクトルデータとの距離が近い第2の所定の数の前記第1ベクトルデータを、前記インターフェースを介して出力し、
    前記端末計算機は、
    前記検索サーバから前記第1ベクトルデータを受信すると、前記受信した第1ベクトルデータ又は前記受信した第1ベクトルデータに関連付けられたデータを検索結果として表示し、
    前記第2ベクトルデータをキーとして検索された前記第1ベクトルデータと、前記第1ベクトルデータの検索が終了した前記クラスタを示す情報とを前記検索サーバから受信すると、前記第2ベクトルデータと、受信した前記第1ベクトルデータと、受信した前記クラスタを示す情報と、を含む検索要求を、前記ネットワークを介して前記検索サーバに送信することを特徴とする検索システム。
  9. 前記端末計算機は、
    前記第2の所定の数の検索結果の表示要求を受け付けると、前記検索要求を前記検索サーバに送信し、
    前記第2の所定の数の検索結果を、前記第2ベクトルデータと前記第1ベクトルデータとの間の距離が近い順に表示し、
    前記第2の所定の数の検索結果を表示した場合のみ、前記表示された検索結果の下位に連続する前記第2の所定の検索結果の表示要求の受け付けを許可されることを特徴とする請求項8に記載の検索システム。
  10. ネットワークを介して接続された端末計算機及び検索サーバを備える検索システムにお
    いて、
    前記検索サーバは、前記ネットワークに接続されるインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続される一つ以上の記憶装置と、を備え、
    前記記憶装置には、各々が複数のクラスタのいずれかに含まれる複数の第1ベクトルデータと、前記複数の第1ベクトルデータの前記クラスタごとの代表値と、が格納され、
    前記端末計算機は、第2ベクトルデータの入力を受け付けると、前記受け付けた第2ベクトルデータを含む検索要求を、前記ネットワークを介して前記検索サーバに送信し、
    前記プロセッサは、
    前記インターフェースを介して前記第2ベクトルデータを含む検索要求を受信すると、受信した前記第2ベクトルデータをキーとして前記代表値を検索し、
    前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、第1の所定の数の前記クラスタに含まれる複数の第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記検索された第1ベクトルデータのうち、前記第2ベクトルデータとの距離が近い第2の所定の数の前記第1ベクトルデータを、前記インターフェースを介して出力し、
    前記複数のクラスタを配列として前記記憶装置に格納する場合に、前記配列中で隣り合う位置に存在するクラスタ同士の代表値の距離が相対的に小さくなるよう再配置し、
    前記端末計算機は、前記検索サーバから前記第1ベクトルデータを受信すると、前記受信した第1ベクトルデータ又は前記受信した第1ベクトルデータに関連付けられたデータを検索結果として表示することを特徴とする検索システム。
  11. データを入出力するインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続される一つ以上の記憶装置と、を備える計算機がベクトルデータを検索する方法であって、
    前記記憶装置には、各々が複数のクラスタのいずれかに含まれる複数の第1ベクトルデータと、前記複数の第1ベクトルデータの前記クラスタごとの代表値と、が格納され、
    前記方法は、
    第2ベクトルデータを含む検索要求を受信すると、受信した前記第2ベクトルデータをキーとして前記代表値を検索し、
    前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、第1の所定の数の前記クラスタに含まれる複数の第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記第2ベクトルデータと、前記第2ベクトルデータをキーとした前記第1ベクトルデータの検索が終了した前記クラスタを示す情報と、を含む検索要求を受信すると、前記受信した情報によって示されるクラスタ以外の前記クラスタの前記代表値を、前記第2ベクトルデータをキーとして検索し、
    前記受信した情報によって示されるクラスタ以外の前記クラスタのうち、前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、前記第1の所定の数の前記クラスタに含まれる複数の前記第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記検索された第1ベクトルデータのうち、前記第2ベクトルデータとの距離が近い第2の所定の数の前記第1ベクトルデータを、前記インターフェースを介して出力することを特徴とする方法。
  12. データを入出力するインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続される一つ以上の記憶装置と、を備える計算機がベクトルデータを検索する方法であって、
    前記記憶装置には、各々が複数のクラスタのいずれかに含まれる複数の第1ベクトルデータと、前記複数の第1ベクトルデータの前記クラスタごとの代表値と、が格納され、
    前記方法は、
    第2ベクトルデータを含む検索要求を受信すると、受信した前記第2ベクトルデータをキーとして前記代表値を検索し、
    前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、第1の所定の数の前記クラスタに含まれる複数の第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記検索された第1ベクトルデータのうち、前記第2ベクトルデータとの距離が近い第2の所定の数の前記第1ベクトルデータ、及び、前記第2ベクトルデータをキーとした前記第1ベクトルデータの検索が終了した前記クラスタを示す情報を、前記インターフェースを介して出力することを特徴とする方法。
  13. 前記方法は、
    前記第2ベクトルデータと、前記第2ベクトルデータをキーとした前記第1ベクトルデータの検索が終了した前記クラスタを示す情報と、を含む検索要求を受信すると、前記受信した情報によって示されるクラスタ以外の前記クラスタの前記代表値を、前記第2ベクトルデータをキーとして検索し、
    前記受信した情報によって示されるクラスタ以外の前記クラスタのうち、前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、前記第1の所定の数の前記クラスタに含まれる複数の前記第1ベクトルデータを、前記第2ベクトルデータをキーとして検索することを特徴とする請求項12に記載の方法。
  14. データを入出力するインターフェースと、前記インターフェースに接続されるプロセッサと、前記プロセッサに接続される一つ以上の記憶装置と、を備える計算機がベクトルデータを検索する方法であって、
    前記記憶装置には、各々が複数のクラスタのいずれかに含まれる複数の第1ベクトルデータと、前記複数の第1ベクトルデータの前記クラスタごとの代表値と、が格納され、
    前記方法は、
    第2ベクトルデータを含む検索要求を受信すると、受信した前記第2ベクトルデータをキーとして前記代表値を検索し、
    前記第2ベクトルデータとの距離が近い前記代表値を含む前記クラスタから順に、第1の所定の数の前記クラスタに含まれる複数の第1ベクトルデータを、前記第2ベクトルデータをキーとして検索し、
    前記検索された第1ベクトルデータのうち、前記第2ベクトルデータとの距離が近い第2の所定の数の前記第1ベクトルデータを、前記インターフェースを介して出力し、
    前記複数のクラスタを配列として前記記憶装置に格納する場合に、前記配列中で隣り合う位置に存在するクラスタ同士の代表値の距離が相対的に小さくなるよう再配置することを特徴とする方法。
JP2006162105A 2006-06-12 2006-06-12 クラスタリングされたベクトルデータを検索するサーバ、システム及び方法 Active JP5137339B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006162105A JP5137339B2 (ja) 2006-06-12 2006-06-12 クラスタリングされたベクトルデータを検索するサーバ、システム及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006162105A JP5137339B2 (ja) 2006-06-12 2006-06-12 クラスタリングされたベクトルデータを検索するサーバ、システム及び方法

Publications (2)

Publication Number Publication Date
JP2007334402A JP2007334402A (ja) 2007-12-27
JP5137339B2 true JP5137339B2 (ja) 2013-02-06

Family

ID=38933857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006162105A Active JP5137339B2 (ja) 2006-06-12 2006-06-12 クラスタリングされたベクトルデータを検索するサーバ、システム及び方法

Country Status (1)

Country Link
JP (1) JP5137339B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9626421B2 (en) 2007-09-21 2017-04-18 Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh ETL-less zero-redundancy system and method for reporting OLTP data
JP5155025B2 (ja) * 2008-06-04 2013-02-27 株式会社日立製作所 類似データ検索システム
JP4917575B2 (ja) * 2008-06-27 2012-04-18 株式会社デンソーアイティーラボラトリ 画像検索用データベース装置、画像検索用データベース管理方法およびプログラム
JP4438014B1 (ja) * 2008-11-06 2010-03-24 株式会社ネイクス 有害顧客検知システム、その方法及び有害顧客検知プログラム
JP5337673B2 (ja) * 2009-11-13 2013-11-06 株式会社日立製作所 画像検索システム
JP2011158980A (ja) * 2010-01-29 2011-08-18 Brother Industries Ltd 消費者情報処理装置
JP6393230B2 (ja) 2015-04-20 2018-09-19 株式会社日立製作所 オブジェクト検出方法及び画像検索システム
CN106127241A (zh) * 2016-06-17 2016-11-16 中国电子科技集团公司第二十八研究所 一种串并案分类方法及串并案分类***
JP6770454B2 (ja) * 2017-02-16 2020-10-14 日本電信電話株式会社 異常検知システム及び異常検知方法
JP6562984B2 (ja) * 2017-09-11 2019-08-21 ヤフー株式会社 生成装置、生成方法、及び生成プログラム
JP7119630B2 (ja) * 2018-06-20 2022-08-17 日本電信電話株式会社 情報処理装置、情報交換システム、情報処理方法および情報処理プログラム
CN111914142B (zh) * 2020-07-30 2023-07-04 重庆电子工程职业学院 分时段记忆信息检索***

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06251156A (ja) * 1993-02-26 1994-09-09 Canon Inc パターン認識装置
US5675819A (en) * 1994-06-16 1997-10-07 Xerox Corporation Document information retrieval using global word co-occurrence patterns
JP3903613B2 (ja) * 1998-11-04 2007-04-11 富士ゼロックス株式会社 検索装置及び検索プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2001084252A (ja) * 1999-09-10 2001-03-30 Mitsubishi Electric Corp 類似文書検索システム及び方法並びに類似文書検索プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2003316819A (ja) * 2002-04-22 2003-11-07 Shinkichi Himeno オブジェクト分類検索装置及びそれを実行するためのプログラム
JP2004185259A (ja) * 2002-12-03 2004-07-02 Renesas Technology Corp 蓄積画像管理装置及びプログラム
JP3880534B2 (ja) * 2003-04-02 2007-02-14 輝一 金沢 文書分類方法及び文書分類プログラム
JP2006031460A (ja) * 2004-07-16 2006-02-02 Advanced Telecommunication Research Institute International データ検索方法及びコンピュータプログラム

Also Published As

Publication number Publication date
JP2007334402A (ja) 2007-12-27

Similar Documents

Publication Publication Date Title
JP5137339B2 (ja) クラスタリングされたベクトルデータを検索するサーバ、システム及び方法
US7962500B2 (en) Digital image retrieval by aggregating search results based on visual annotations
KR100385528B1 (ko) 다차원 데이터 표시 방법 및 기록 매체
JP4634214B2 (ja) リンクおよびページレイアウトの分析を利用することによりイメージ関連性を識別する方法およびシステム
CN101882149B (zh) 重排序和提高搜索结果的相关性
US7831595B2 (en) Predicting and ranking search query results
US8527564B2 (en) Image object retrieval based on aggregation of visual annotations
EP2410446A1 (en) Personal music recommendation mapping
Drosou et al. Diverse set selection over dynamic data
JP5155025B2 (ja) 類似データ検索システム
Zhou et al. Real-time context-aware social media recommendation
JP6680956B1 (ja) 検索ニーズ評価装置、検索ニーズ評価システム、及び検索ニーズ評価方法
Budgaga et al. A framework for scalable real‐time anomaly detection over voluminous, geospatial data streams
JP5337673B2 (ja) 画像検索システム
EP3821351A1 (en) Data exploration as search over automated pre-generated plot objects
Zhao et al. Monochromatic and bichromatic ranked reverse boolean spatial keyword nearest neighbors search
US20170255691A1 (en) Information processing system, information processing method, and program
Bansal et al. Ad-hoc aggregations of ranked lists in the presence of hierarchies
Zekri et al. Optimized image retrieval system in Oracle DBMS
Han et al. Ranking the big sky: efficient top-k skyline computation on massive data
Zhang et al. PARROT: pattern-based correlation exploitation in big partitioned data series
JP6065001B2 (ja) データ検索装置、データ検索方法およびデータ検索用プログラム
JP2020109689A (ja) 検索ニーズ評価装置、検索ニーズ評価システム、及び検索ニーズ評価方法
Rodrigues et al. Clustering techniques in sensor networks
KR100426341B1 (ko) 지정 웹 사이트 문서 검색 보고 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120828

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121016

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 5137339

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151122

Year of fee payment: 3