JP5552981B2 - 索引方法、検索方法、及びその記憶媒体 - Google Patents

索引方法、検索方法、及びその記憶媒体 Download PDF

Info

Publication number
JP5552981B2
JP5552981B2 JP2010207361A JP2010207361A JP5552981B2 JP 5552981 B2 JP5552981 B2 JP 5552981B2 JP 2010207361 A JP2010207361 A JP 2010207361A JP 2010207361 A JP2010207361 A JP 2010207361A JP 5552981 B2 JP5552981 B2 JP 5552981B2
Authority
JP
Japan
Prior art keywords
image
node
tree
attribute
sample
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
Application number
JP2010207361A
Other languages
English (en)
Other versions
JP2012063959A (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.)
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 JP2010207361A priority Critical patent/JP5552981B2/ja
Publication of JP2012063959A publication Critical patent/JP2012063959A/ja
Application granted granted Critical
Publication of JP5552981B2 publication Critical patent/JP5552981B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、画像の特徴ベクトルデータに基づく索引付けにより画像検索を行う技術に関し、特に、高次元を有するベクトル空間において索引付けを効果的に行う技術に関する。
近年、画像処理技術の発達に伴って、同一又は類似の画像を検索することが行われるようになってきた。画像に含まれる多くの特徴が含まれ、索引付けをする際には高次元の特徴ベクトルデータを扱った最近傍探索(NNS:Nearest neighbor search)技術を用いて、質問画像に最も近い画像を検索することが行われている。例えば、QBIC(Query By Image Content)システムでは、ユーザはデジタル画像を選択し、その選択されたデジタル画像を質問画像とする問合せ(クエリー)に対してデータベースから1以上の類似する画像を検索することが知られている。
このシステムでは、K個の最も類似する画像が問合せに対する結果として返される。"K"は、ユーザ又は検索エンジン設計者によって設定される整数のちである。K個の画像は、質問画像に近いk個の近隣画像として参照され、問合せの質問画像の特徴を表す複数次元のデータポイント"q"に近い複数次元のデータポイント"p"が、索引及び検索する際に用いられている。
典型的なマルチメディアデータを表現する高次元(例えば、数1000次元)にもなる特徴ベクトルは、効果的な索引手法を設計する際に大きな問題となっている、それにより、種々の索引構造が提案されてきた。
広く適応されている索引手法の一つとして、非特許文献1で提案されているANN(Approximate Nearest Neighbor)及びLSH(Locality Sensitive Hashing)がある。この技術は、ハッシュを用いて索引付けを行うものである。また、他索引手法として、kdツリーを用いた手法が非特許文献2で提案されている。
しかしながら、非特許文献1で提案されている手法では、kdツリー(k-dimensional tree)において最も強く集中するポイントに適用されるビンサイズが固定のため、ハッシュテーブルが非効率的となっている。また、ハッシングを用いた探索では、問合せのポイント地点となるビン内の多数のポイントを用いるため、線形探索の処理時間が長くなる。また、最良の近接点を決定する前に、近隣のビンに範囲を広げて探索することが要求され、更には、適切なビンサイズを選択することが難しいと言った問題がある。
また、非特許文献2で提案されている手法では、高次元空間における最近傍の検索が非効率的である。通常のルールでは、次元をDとすると、データ内のポイント数Nは2Dより大きく(N>>2D)なければならない。kdツリーが高次元データで使用された場合、ツリー内のほとんどのポイントを評価するため、探索負荷が大きく効率的に行うことができない。高次元ベクトル空間のため、データセットを左右のサブセットに分ける超平面を分割する計算処理が適切に行われないと言った問題がある。
上記課題を解決するため、本発明は、コンピュータが、サンプル画像の特徴を現す高次元特徴ベクトルによる高次元ベクトル空間において該サンプル画像を索引付けする索引方法であって、該コンピュータが、前記高次元特徴ベクトルを表現する複数の属性からランダムに選択された所定数の属性を用いて、複数のサンプル画像の該ランダムに選択された属性の属性値に基づいて該所定数を次元とするツリーを生成するツリー生成手順を実行する索引方法のように構成される。
上記課題を解決するための手段として、本発明は、上記索引方法での手順をコンピュータ実行させるプログラムを記憶したコンピュータ読取可能な記憶媒体とすることもできる。
本発明によれば、ランダムに選択された所定数の属性によって次元数を小さくすることができ、効率的にツリーを作成することができる。
画像索引付け検索システムの構成例を示す図である。 情報処理装置のハードウェア構成を示す図である。 データベースのデータ構成例を示す図である。 索引構築マスターでの索引構築処理を説明するためのフローチャート図である。 RKDツリーのデータ構造例を示す図である。 スレーブ装置のツリー生成部による処理を説明するためのフローチャート図である。 RKDツリーテーブルのデータ例を示す図である。 図7のRKDツリーテーブルに基づくRKDツリー構造例を示す図である。 RKDツリーテーブルの他のデータ例を示す図である。 図9のRKDツリーテーブルに基づくRKDツリー構造例を示す図である。 リーフノード間の距離の算出方法を説明するための図である。 DB検索部による検索処理を説明するための図である。 索引構築マスターによる探索指示処理を説明するための図である。 各スレーブ装置の探索部による探索処理を説明するための図である。 探索処理例を示す図である。
以下、本発明の実施の形態について図面を参照して説明する。質問画像に対して同一又は類似画像の効果的な検索を実現するために、蓄積された画像の特徴ベクトルに基づいて索引付けを行う本発明の実施形態に係る画像索引付け検索システムは、図1に示すようなシステム構成を有する。図1は、画像索引付け検索システムの構成例を示す図である。
図1に示すシステム1000は、情報処理装置100と、1以上のスレーブ装置200と、ユーザ端末30とを有する。情報処理装置100は、LAN(Local Area Network)等のローカルネットワーク4を介してスレーブ装置200と接続され、インターネット5を介して1以上のユーザ端末30と接続される。
情報処理装置100は、コンピュータ装置であり、DBマネージャー50と、索引構築マスター51と、DB検索部52とを有し、記憶領域にデータベース40を有する。情報処理装置100がプログラムを実行することによって、DBマネージャー50と、索引構築マスター51と、DB検索部52として機能する。
データベース40は、サンプル画像を識別するためのIDと、URI(Uniform Resource Identifier)などの格納場所を特定するための格納場所情報と、サンプル画像の高次元特徴ベクトル等のデータ構造によってサンプル画像毎の特徴情報を蓄積し管理する。
DBマネージャー50は、索引構築マスター51又はDB検索部52からのアクセスに応じて、サンプル画像の特徴情報を検索する処理部である。
索引構築マスター51は、複数の属性によって表現される高次元特徴ベクトルからランダムに所定数の属性を選択して次元数を少なくし、各スレーブ装置200にランダムに選択した属性に基づくkdツリー(以下、RKDツリーと言う)を構築させる。スレーブ装置200毎に異なる属性の組み合わせとなる。ランダムに選択する方法は、既存のアルゴリズムを適用すればよい。
また、索引構築マスター51は、DB検索部52からの要求に応じて、各スレーブ装置200に質問画像3qと一致又は類似するサンプル画像を探索させ、各スレーブ装置200からの探索結果をDB検索部52に返す。
DB検索部52は、インターネット5を介してユーザ端末30からの質問画像3qの検索要求を受信すると、索引構築マスター51に転送することによって、索引構築マスター51からRKDツリーを用いて探索した探索結果を取得し、探索結果に基づいてランキング付けした後、そのランキング結果を含めた探索結果をインターネット5を介してユーザ端末30へ提供する。
各スレーブ装置200は、コンピュータ装置であり、ツリー生成部21と、探索部23とを有し、自装置の記憶領域にツリー生成部21によって生成されたRKDツリー2を有する。各スレーブ装置200がプログラムを実行することによって、ツリー生成部21と、探索部23として機能する。
ツリー生成部21は、ローカルネットワーク4を介して索引構築マスター51からツリー生成指示を受信すると、索引構築マスター51がランダムに選択した属性に従ってRKDツリー(random k-dimensional tree)2を生成し自装置の記憶領域に格納し保持する。索引構築マスター51がランダムに選択した属性は、スレーブ装置200毎に異なるため、夫々異なるRKDツリー2を生成する。
探索部23は、ローカルネットワーク4を介して索引構築マスター51から質問画像3qに基づく探索指示を受信すると、記憶領域に格納されたRKDツリー2を用いて、質問画像3qに一致又は類似するサンプル画像を探索し、その探索結果をローカルネットワーク4を介して索引構築マスター51へ送信する。
ユーザ端末30は、PC(Personal Computer)であり、インターネット5対応のブラウザを有し、ブラウザから質問画像3qによって情報処理装置100へ検索要求を行い、情報処理装置100から受信した検索結果3rをブラウザに表示させる。
上述したように、高次元特徴ベクトルからランダムに選択した属性によって特徴ベクトルの次元数を制限して、各スレーブ装置200にてRKDツリー2を生成するため、高速に効率よくツリー生成処理が行える。また、情報処理装置100側の処理負荷を軽減できる。
一方で、画像検索する際には、各スレーブ装置200で異なるRKDツリー2を用いて質問画像に対するサンプル画像を探索させることにより、種々の特徴に関して候補となるサンプル画像を取得でき、更にランク付けすることによって、効率的に画像検索を行うことができる。
図2は、情報処理装置のハードウェア構成を示す図である。図2において、情報処理装置100は、コンピュータによって制御される装置であって、CPU(Central Processing Unit)11と、メモリユニット12と、表示ユニット13と、出力ユニット14と、入力ユニット15と、通信ユニット16と、記憶装置17と、ドライバ18とを有し 、システムバスBに接続される。
CPU11は、メモリユニット12に格納されたプログラムに従って情報処理装置100を制御する。メモリユニット12には、RAM(Random Access Memory)及びROM(Read-Only Memory)等が用いられ、CPU11にて実行されるプログラム、CPU11での処理に必要なデータ、CPU11での処理にて得られたデータ等を格納する。また、メモリユニット12の一部の領域が、CPU11での処理に利用されるワークエリアとして割り付けられている。
表示ユニット13は、CPU11の制御のもとに必要な各種情報を表示する。出力ユニット14は、プリンタ等を有し、ユーザからの指示に応じて各種情報を出力するために用いられる。入力ユニット15は、マウス、キーボード等を有し、ユーザが情報処理装置100が処理を行なうための必要な各種情報を入力するために用いられる。通信ユニット16は、例えばローカルネットワーク4、インターネット5等に接続し、外部装置との間の通信制御をするための装置である。
記憶装置17には、例えば、ハードディスクユニットが用いられ、各種処理を実行するプログラム等のデータを格納する。データベース40が記憶装置17に格納される。
情報処理装置100によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read-Only Memory)等の記憶媒体19によって情報処理装置100に提供される。即ち、プログラムが保存された記憶媒体19がドライバ18にセットされると、ドライバ18が記憶媒体19からプログラムを読み出し、その読み出されたプログラムがシステムバスBを介して記憶装置17にインストールされる。そして、プログラムが起動されると、記憶装置17にインストールされたプログラムに従ってCPU11がその処理を開始する。
尚、プログラムを格納する媒体としてCD−ROMに限定するものではなく、コンピュータが読み取り可能な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
各スレーブ装置200のハードウェア構成は、図2に示すハードウェア構成と同様であるため、その説明を省略する。各スレーブ装置200の記憶装置17には、RKDツリー2が格納される。
図3は、データベースのデータ構成例を示す図である。図3に示すデータベース40は、サンプル画像IDと、URIと、高次元特徴ベクトルとを有する。
サンプル画像IDは、各サンプル画像を特定する1からnのユニークな番号を示す。URIは、サンプル画像の格納先を特定する。
高次元特徴ベクトルは、サンプル画像の属性B、C、・・・Q毎の特徴量を示している。例えば、全サンプル画像に対して各属性B〜Qの値をヒストグラムで表して正規化した値(以下、分散値として参照される)が設定されている。ここでは、16次元の特徴ベクトルの例として属性B、C、・・・Qを例示しているが、この例によって次元数を制限するものではない。更に高次元であっても良い。
本発明では、データベース40で管理されるサンプル画像を属性毎に分散値の昇順にソートし、その昇順をサンプル画像IDで示したソート済み索引順テーブルT42を作成しておく。
図4は、索引構築マスターでの索引構築処理を説明するためのフローチャート図である。図4において、索引構築マスター51は、データベース40の高次元特徴ベクトルの属性B〜Qから所定次元数分の属性をランダムに選択して特徴ベクトルセットを作成する(ステップS11)。索引構築マスター51は、スレーブ装置200の台数分の所定次元数の特徴ベクトルセットを作成する。
所定次元数"K"は、ユーザによって与えられるか、又は、索引構築マスター51が、データベース40で管理されている高次元特徴ベクトルの次元数"D"から"D"の平方根を計算することによって自動的に算出してもよい。例えば、高次元特徴ベクトルの次元数"D"が「16」の場合、"16"の平方根から「4」を得ることにより、「4」つの属性をランダムに選択して特徴ベクトルセットとする。
このステップS11での処理をスレーブ装置200の台数分行うことによって、各スレーブ装置200に異なる特徴ベクトルセットでRKDツリー2を作成させることができる。
続けて、索引構築マスター51は、ステップS11で作成した特徴ベクトルセットを指定したツリー生成指示を各スレーブ装置200に送信する(ステップS12)。ツリー生成指示には、特徴ベクトルセットに加えて、図5に示すツリーノード構造体が含まれ、各スレーブ装置200は、与えられたツリーノード構造体を用いて、RKDツリー2を生成し管理する。
図5は、RKDツリーのデータ構造例を示す図である。図5(A)に示すツリーノード構造体5aは、RKDツリー2の各ノードを管理するための構造体であり、ノードID、属性、開始、サイズ、左分岐ノード、右分岐ノード、分岐属性、分岐分散値、深さ、ノードタイプ、距離等の項目を有する。
ノードIDは、自ノードを識別するノード識別子である。属性は、自ノードに適用される属性を示し、特徴ベクトルセットに含まれる索引構築マスター51がランダムに選択した属性である。
開始は、ノード内で昇順で属性値をソートした場合の開始のノードを示す。サイズは、ノードのサイズを示す。
左分岐ノードは、自ノードから左に分岐したノードを示す。自ノードがリーフ(末端)の場合は、1以上のサンプル画像IDが示される。右分岐ノードは、自ノードから右に分岐したノードを示す。自ノードがリーフの場合は、1以上のサンプル画像IDが示される。
分岐属性は、分岐に適用された索引構築マスター51によってランダムに選択された属性を示す。分岐分散値は、サンプル画像の分岐属性における中間値を示す。
深さは、ルートを0階層としたときの自ノードの階層を示す。ノードタイプは、自ノードがルート、ブランチ、又はリーフを示す。距離は、自ノードからの分岐がリーフとなる場合にリーフ間の距離が設定される。
図5(B)に示すオブジェクト構造5bは、スレーブ装置200のツリー生成部21での処理を示すオブジェクト構造である。ツリー生成指示に含まれる特徴ベクトルセットから属性数を特定してRKDツリー2で対象となる特徴ベクトルの次元数を設定している。また、サンプル画像IDで特定されるサンプル画像をインスタンスとし、分岐属性毎の分散値からRDKツリー2を生成し管理する処理について示している。
以下、各スレーブ装置200で実行されるツリー生成部21での処理について説明する。ここでは、データベース40は20のサンプル画像に対して16次元の特徴ベクトルで管理し、索引構築マスター51がスレーブ装置200毎にランダムに選択した4つの属性によって、各スレーブ装置200が4次元の特徴ベクトルでRKDツリー2を生成するものとして説明する。
図6は、スレーブ装置のツリー生成部による処理を説明するためのフローチャート図である。図7は、RKDツリーテーブルのデータ例を示す図である。図8は、図7のRKDツリーテーブルに基づくRKDツリー構造例を示す図である。
図6において、ツリー生成部21は、索引構築マスター51から受信したツリー生成指示に含まれる特徴ベクトルセットで指定されるランダムに選択された属性毎にデータベース40をアクセスすることによって、サンプル画像の分散値を取得する(ステップS211)。ツリー生成部21は、属性毎にサンプル画像IDに対応付けた分散値を示すデータを取得する。
そして、ツリー生成部21は、属性毎の分散値から中間値を算出し(ステップS212)、ステップS211で取得したデータと算出した中間値とに基づいて、図7に示すようなRKDツリーテーブルT25−1にルートノードのレコードを追加する(ステップS213)。この時点では、例えば、ノードID「0」に対応させて、ノードタイプに「ルート」、ランダム選択属性に「B、D、G、L」、サンプル画像IDに「NULL」、サンプル画像数に「20」が設定される。
以下に説明するステップS214からS216は、同一の深さのノード全てに対して、ノード毎に行われる処理である。ツリー生成部21は、処理対象ノードの属性毎にソート済み索引順テーブルT42を参照して、属性の中間値に基づいて、サンプル画像IDを左右に分岐させる仮分岐処理を行う(ステップS214)。この仮分岐処理の結果に基づいて、ツリー生成部21は、分岐された左右のサンプル画像数の差が最も小さくなる属性を決定する(ステップS215)。処理対象ノードのレコードの分岐属性IDに決定した属性の属性IDを設定し、中間値に値を設定する。ノードID「0」が処理対象ノードの場合、処理対象ノードのレコードの分岐属性IDに「G」、中間値に「0.473745」が設定される。
そして、ツリー生成部21は、決定した属性の中間値でサンプル画像IDを分岐させ、各左右ノードレコードをRKDツリーテーブルT25−1に追加する本分岐処理を行う(ステップS216)。ノードID「0」が処理対象ノードの場合、左ノードIDに「1」、右ノードIDに「2」、サンプル画像IDに「NULL」が設定され、ノードID「1」及び右ノードID「2」の夫々のレコードが追加される。
ソート済み索引順テーブルT42を参照して本分岐処理を行うため、分岐した各ノードに属するサンプル画像IDは昇順に管理される。
同一の深さで分岐処理が終了していないノードがある場合、上記ステップS214からS216での処理を繰り返す。後述される図8を参照すると、深さ「0」では、ノードID「0」が処理対象のノードとなる。深さ「1」では、ノードID「1」及び「2」が処理対象のノードとなる。深さ「2」では、ノードID「3」、「4」、「5」、及び「6」が処理対象のノードとなる。
そして、ツリー生成部21は、分岐後のノードがリーフノードであるか否かを判断する(ステップS217)。リーフノードでない場合、ツリー生成部21は、次の特徴ベクトルセットを取得して、データベース40からランダムに選択された属性毎のサンプル画像の分散値を取得し、中間値を算出する(ステップS218)。そして、ツリー生成部21は、上記ステップS214からS216を繰り返す。
ツリー生成部21は、階層が深くなる毎に追加されたノード数分の特徴ベクトルセットを索引構築マスター51へ要求しても良い。或いは、索引構築マスター51から送信されるツリー生成指示に階層数に応じたノード数分の特徴ベクトルセットが予め含まれるようにしておいても良い。また、既に、中間値を算出済みの属性の場合、その中間値を用いればよい。
一方、リーフノードである場合、同じ親ノード毎にリーフ間の距離を算出して(ステップS219)、この処理を終了する。図8の例では、深さ「2」では、ノードID「3」、「4」、「5」、及び「6」から分岐した、深さ「3」におけるノード「7」、「8」、「9」、「10」、「11」、「12」、「13」、及び「14」がリーフノードである。従って、ノードID「3」から分岐したノード「7」、「8」の距離、ノードID「4」から分岐したノード「9」、「10」の距離、ノードID「5」から分岐したノード「11」、「12」の距離、ノードID「6」から分岐したノード「13」、「14」の距離が算出される。
上述したような処理によって、図7及び図8に示すRKDツリー2−1のように、深さ「0」において、ルートノード「0」に適用したランダムに選択された4属性が「B」、「D」、「G」、及び「L」であった場合、ステップS215によって決定された属性「G」の中間値「0.473745」を用いて、この中間値以下の分散値を有するサンプル画像を左ノード1に分岐させ、この中間値より大きい分散値を有するサンプル画像を右ノード2に分岐させる。よって、次の深さ「1」の処理対象ノードは、ノード1及びノード2となる。
深さ「1」において、ルートノード0から分岐した左ノード1に適用したランダムに選択された4属性が「C」、「F」、「K」、及び「P」であった場合、ステップS215によって決定された属性「C」の中間値「0.55079」を用いて、この中間値以下の分散値を有するサンプル画像を左ノード3に分岐させ、この中間値より大きい分散値を有するサンプル画像を右ノード4に分岐させる。
また、ルートノード0から分岐した左ノード2に適用したランダムに選択された4属性が「J」、「M」、「O」、及び「Q」であった場合、ステップS215によって決定された属性「O」の中間値「0.517217」を用いて、この中間値以下の分散値を有するサンプル画像を左ノード5に分岐させ、この中間値より大きい分散値を有するサンプル画像を右ノード6に分岐させる。よって、次の深さ「2」の処理対象ノードは、ノード3、4、5、及び6となる。
深さ「2」において、ノード3、4、5、及び6の夫々について同様にランダムに選択された4属性に基づいて分岐処理を行うことによって、深さ「3」において、リーフノードとなるノード3から分岐したノード7及びノード8、ノード4から分岐したノード9及びノード10、ノード5から分岐したノード11及びノード12、そして、ノード6から分岐したノード13及びノード14が生成される。
深さ「3」において、ノード7にはサンプル画像ID「3」、「14」、及び「1」が属し、ノード8にはサンプル画像ID「2」、「4」、及び「17」が属する。ノード9にはサンプル画像ID「13」及び「10」が属し、ノード10にはサンプル画像ID「6」、「20」、及び「16」が属する。ノード11にはサンプル画像ID「8」及び「11」が属し、ノード12にはサンプル画像ID「12」及び「9」が属する。ノード13にはサンプル画像ID「5」及び「7」が属し、ノード12にはサンプル画像ID「19」、「18」、及び「15」が属する。
図7及び図8に示すようなツリー生成処理が複数のスレーブ装置200のうちの1台で行われる。他スレーブ装置200では、同一のサンプル画像1から20に対して異なる4属性に基づいてRKDツリー2が生成されるため、ノードに属するサンプル画像が異なる別のRKDツリーとなる。図9及び図10でRKDツリー2の他の例を示す。
図9は、RKDツリーテーブルの他のデータ例を示す図である。図10は、図9のRKDツリーテーブルに基づくRKDツリー構造例を示す図である。図9に示すRKDツリーテーブルT25−2及び図10に示すRKDツリー2−2に示すように、ルートとなるノード0に対してランダムに選択された4属性「E」、「I」、「N」、及び「Q」が適用され、属性「E」で分岐することが示されている。
ノード1に対してランダムに選択された4属性「C」、「F」、「O」、及び「P」が適用され、属性「C」で分岐することが示されている。ノード2に対してランダムに選択された4属性「B」、「E」、「L」、及び「Q」が適用され、属性「B」で分岐することが示されている。
ノード3に対してランダムに選択された4属性「D」、「I」、「M」、及び「P」が適用され、属性「P」で分岐することが示されている。ノード4に対してランダムに選択された4属性「H」、「K」、「N」、及び「R」が適用され、属性「H」で分岐することが示されている。
ノード5に対してランダムに選択された4属性「G」、「H」、「K」、及び「O」が適用され、属性「H」で分岐することが示されている。ノード4に対してランダムに選択された4属性「E」、「J」、「N」、及び「R」が適用され、属性「E」で分岐することが示されている。
分岐する各ノードでランダムに選択された4属性が適用されるため、図10に示すRKDツリー2−2が、図8に示すRKDツリー2−1と同じになることはない。
次に、リーフノード間の距離について、図10のノード7とノード8との間の距離10dを例として図11で説明する。図11は、リーフノード間の距離の算出方法を説明するための図である。
図11において、ツリー生成部21は、RKDツリーテーブルT25−2を参照して、ノード7とノード8の分岐元である親ノードを特定する(ステップS231)。RKDツリーテーブルT25−2より、左ノードID「7」と右ノードID「8」の組み合わせを持つノードIDは「3」であることが判る。また、ツリー生成部21は、ノードID「3」のレコードからランダムに選択された属性「D」、「I」、「M」、及び「P」を取得する(ステップS232)。
続けて、ツリー生成部21は、左ノードID「7」に属するサンプル画像「17」、「2」、及び「8」に関して、属性毎の平均値を算出し、算出した平均値を左ベクトル値VLとする(ステップS233)。図11中、Sample(17,D)はサンプル画像「17」の属性「D」の分散値を示し、Sample(2,D)はサンプル画像「2」の属性「D」の分散値を示し、Sample(8,D)はサンプル画像「8」の属性「D」の分散値を示している。分散値を合計して、左ノードID「7」に属するサンプル画像数で割る。同様にして、属性「I」、「M」、及び「P」の夫々に関して平均値を算出する。左ベクトル値VLは、各属性の平均値のセットである。
同様にして、ツリー生成部21は、右ノードID「8」に属するサンプル画像「14」及び「15」に関して、属性毎の平均値を算出し、算出した平均値を右ベクトル値VRとする(ステップS234)。
ツリー生成部21は、左ベクトル値VLと右ベクトル値VRとから距離を算出する(ステップS235)。距離の算出方法は、この例では4次元のユークリッド距離によって算出することができる。又は、コサイン距離など他既存の算出方法を適用して算出してもよい。図11の例では、距離10dが「0.744491」となり、親ノード「3」のデータ構造5aのリーフ間の距離に設定される。
同様にして、ノード9とノード10間の距離が算出され、親ノード「4」のデータ構造5aのリーフ間の距離に設定される。ノード11とノード12間の距離は親ノード「5」のデータ構造5aのリーフ間の距離に設定され、ノード13とノード14間の距離は親ノード「6」のデータ構造5aのリーフ間の距離に設定される。
以下に、ユーザ端末30から送信される質問画像3qに基づく検索処理について説明する。図12は、DB検索部による検索処理を説明するための図である。図12において、DB検索部52は、ユーザ端末30からの検索要求に応じて、質問画像3qの特徴量を抽出して、質問画像3qの高次元特徴ベクトルを作成する(ステップS41)。そして、DB検索部52は、作成した質問画像3qの高次元特徴ベクトルを索引構築マスター51に転送する(ステップS42)。
その後、索引構築マスター51から画像探索結果を受信すると、DB検索部52は、画像探索結果に含まれるサンプル画像の類似度を算出する(ステップS43)。画像探索結果には、探索されたサンプル画像のIDと、リーフ間の距離とが含まれている。
DB検索部52は、DBマネージャー50を介してデータベース40から画像探索結果に含まれているサンプル画像のIDを用いて高次元特徴ベクトルを取得する。類似度は、質問画像の高次元特徴ベクトルと、各サンプル画像の高次元特徴ベクトルとの距離で示され、数1を用いて算出される。
Figure 0005552981
ここで、Cは距離の値の大きさを調整するためのシステムパラメタを示し、Lkは基準値を示す。類似度が大きいほど、質問画像との差が大きいことを示している。
そして、DB検索部52は、算出したサンプル画像の類似度を用いてランキングする(ステップS44)。DB検索部52は、リーフ間の距離を考慮して類似度を用いてランキングを算出する。類似度及びランキングの算出例は、後述される。
DB検索部52は、ランキングを含む検索結果3rをユーザ端末30へ送信し(ステップS45)、この処理を終了する。
図13は、索引構築マスターによる探索指示処理を説明するための図である。図13において、索引構築マスター51は、DB検索部52から画像探索要求を受信すると、転送された質問画像3qの高次元特徴ベクトルを各スレーブ装置200に送信して探索指示を行い、各スレーブ装置200を用いて並列に探索処理を行う(ステップS61)。
その後、全てのスレーブ装置200から探索結果を受信すると、索引構築マスター51は、探索結果に基づいて、サンプル画像ID毎にリーフ間の距離を対応させた情報と、質問画像3qの高次元特徴ベクトルとを含む画像探索結果をDB検索部52へ送信する(ステップS62)。
図14は、各スレーブ装置の探索部による探索処理を説明するための図である。図14において、各スレーブ装置200の探索部23は、索引構築マスター51から探索指示を受信すると、RKDツリーテーブルT52を参照して、各ノードで適用された属性の中間値と質問画像の同一属性の分散値とを比較することによって分岐して、リーフノードまで辿る(ステップS71)。
探索部23は、リーフノードからサンプル画像IDのセットを取得し(ステップS72)、また、リーフノードの親ノードからリーフ間の距離を取得する(ステップS73)。そして、探索部23は、サンプル画像IDのセットとリーフ間の距離とを含む探索結果を索引構築マスター51へ送信して(ステップS74)、この探索処理を終了する。
図15は、探索処理例を示す図である。図15に示す探索処理例では、問合画像3qの高次元特徴ベクトル37qが各スレーブ装置200に与えられるとする。2台のスレーブ装置200−1及び200−2によって探索処理が並列に行われ、その結果を用いて、DB検索52がランキングを行った場合を例示している。
スレーブ装置200−1は、図7のRKDツリーテーブルT25−1及び図8のRKDツリー2−1に従って探索処理を行う。また、スレーブ装置200−2は、図9のRKDツリーテーブルT25−2及び図10のRKDツリー2−2に従って探索処理を行う。
先ず、スレーブ装置200−1での探索処理について説明する。深さ「0」において、高次元特徴ベクトル37qの属性Gの分散値「0.85388」が、ルートノード0で適用した属性Gの中間値「0.473745」より大きいため、右へ分岐しノード2へと進む。深さ「1」において、高次元特徴ベクトル37qの属性Oの分散値「0.38516」が、ノード2で適用した属性Oの中間値「0.517217」より小さいため、左へ分岐しノード5へと進む。
そして、深さ「2」において、高次元特徴ベクトル37qの属性Hの分散値「0.37244」が、ノード5で適用した属性Hの中間値「0.491845」より小さいため、左へ分岐しノード11へと進む。ノード11はリーフノードであるため、ノード11に属するサンプル画像ID「8」及び「11」を得る。
ノード11に属するサンプル画像ID「8」及び「11」の近傍のノードはノード12であり、ノード12に属するサンプル画像IDは「12」及び「9」である(Neighbor(<8 11>)=<12 9>)。また、サンプル画像ID「8」及び「11」の親ノードはノード5であり(Parent(<8 11>)=5)、ノード5に適用した属性は「E」、「H」、「N」、及び「P」である。そして、図11に説明したリーフ間の距離の算出方法に従って、距離「0.817123」を得る。
次に、スレーブ装置200−2での探索処理について説明する。深さ「0」において、高次元特徴ベクトル37qの属性Eの分散値「0.43292」が、ルートノード0で適用した属性Eの中間値「0.514374」より小さいため、左へ分岐しノード1へと進む。深さ「1」において、高次元特徴ベクトル37qの属性Cの分散値「0.08145」が、ノード1で適用した属性Cの中間値「0.5548267」より小さいため、左へ分岐しノード3へと進む。
そして、深さ「2」において、高次元特徴ベクトル37qの属性Pの分散値「0.17853」が、ノード3で適用した属性Pの中間値「0.0372614」より小さいため、左へ分岐しノード7へと進む。ノード7はリーフノードであるため、ノード7に属するサンプル画像ID「17」、「2」、及び「8」を得る。
ノード7に属するサンプル画像ID「17」、「2」、及び「8」の近傍のノードはノード8であり、ノード8に属するサンプル画像IDは「14」及び「15」である(Neighbor(<17 2 8>)=<14 15>)。また、サンプル画像ID「17」、「2」、及び「8」の親ノードはノード3であり(Parent(<17 2 8>)=3)、ノード3に適用した属性は「D」、「I」、「M」、及び「P」である。そして、図11に説明したリーフ間の距離の算出方法に従って、距離「0.744491」を得る。
DB検索部52は、全てのスレーブ装置200からの探索結果から、質問画像3qと探索されたサンプル画像ID「8」、「11」、「2」、及び「17」の各々との類似度を数1を用いて算出する。その結果、質問画像3qとサンプル画像ID「8」との類似度「0.50178」、サンプル画像ID「11」との類似度「0.328384」、サンプル画像ID「2」との類似度「0.493379」、サンプル画像ID「17」との類似度「0.381667」を得る。
そして、DB検索部52は、各スレーブ装置200で算出したリーフ間の距離と、類似度の算出結果とからランク付けする。
サンプル画像ID「8」に対するランクは、
rankscore(8) = λ × (0.817123 + 0.74491) + β × 0.50178、
サンプル画像ID「11」に対するランクは、
rankscore(11) = λ × (0.817123) + β × 0.328384、
サンプル画像ID「2」に対するランクは、
rankscore(2) = λ × (0.817123) + β × 0.493379、
サンプル画像ID「17」に対するランクは、
rankscore(17) = λ × (0.817123) + β × 0.381667、
によって算出される。λ及びβは重み付け係数である。
上述の計算式を見て分かるように、サンプル画像ID「8」に対しては、複数のスレーブ装置200で抽出されているため、夫々のスレーブ装置200で算出された距離を合算するようにしている。ランクは値が大きいほど、より質問画像3qに近いことを示す。
上述したように、本発明に係るシステムでは、サンプル画像の高次元特徴ベクトルを用いてkdツリーを作成するのではなく、高次元特徴ベクトルからランダムに選択した複数の画像の属性を用いてkdツリーを作成することにより、kdツリーの作成の負荷処理を小さくすることができる。
また、複数のスレーブ装置200の夫々に高次元特徴ベクトルからランダムに選択した複数の画像の属性を用いてRKDツリー2を作成させておき、質問画像3qの近傍画像となるサンプル画像を探索させることによって、探索処理を並列に行え、高速処理を実現することができる。
高次元特徴ベクトルからランダムに選択した複数の画像の属性を用いたkdツリーであることから、各スレーブ装置200で作成されるRKDツリー2は全て異なっており、各RKDツリー2で探索した結果は、高次元特徴ベクトルで作成したkdツリーによる探索結果を十分に網羅していると言える。
更に、RKDツリー2を作成する際には、各ノードで適用され異なる組み合わせの属性において、最もバランスよく左右に分岐する属性を選択する仕組みにより、近傍画像の抽出精度を改善することができる。
また、本発明に係るシステムでは、全てのRKDツリー2の探索結果に対して、異なるRKDツリー2から同一の近傍画像が重複して抽出された場合には、各RKDツリー2内でのその近傍画像の親ノードから分岐したサンプル画像との距離を考慮しつつ、質問画像3qと近傍画像との類似度を用いて、近傍画像のランク付けを行う。従って、質問画像3qとの比較精度の高い探索結果をユーザに提供することができる。
3q 質問画像
3r 検索結果
4 ローカルネットワーク
5 インターネット
21 ツリー生成部
23 探索部
30 ユーザ端末
40 データベース
50 DBマネージャー
51 索引構築マスター
52 DB検索部
100 情報処理装置
200 スレーブ装置
1000 システム
T42 ソート済み索引順テーブル
T52、T52−1、T52−2 RKDツリーテーブル
特開2003−271601号公報
Alexandr Andoni and Piotr Indyk, Near-Optimal Hashing Algorithms for Approximate Nearest Neighbor in High dimensions , In Proceedings of the Symposium on Foundations of Computer Science , 2006 S. Arya, D. M. Mount, N. S. Netanyahu, R. Silverman and A. Wu, An optimal algorithm for approximate nearest neighbor searching, Journal of the ACM, 45(6):891-923, 1998 S. Arya, D. M. Mount, N. S. Netanyahu, R. Silverman and A. Wu, An optimal algorithm for approximate nearest neighbor searching, and SODA, 1994

Claims (8)

  1. コンピュータが、サンプル画像の特徴を現す高次元特徴ベクトルによる高次元ベクトル空間において該サンプル画像を索引付けする索引方法であって、該コンピュータが、
    前記高次元特徴ベクトルを表現する複数の属性からランダムに選択された所定数の属性を用いて、複数のサンプル画像の該ランダムに選択された属性の属性値に基づいて該所定数を次元とするツリーを生成するツリー生成手順を実行することを特徴とする索引方法。
  2. 前記ツリー生成手順は、
    前記所定数の属性のうち前記複数のサンプル画像を均等に分岐させる中間値を有する属性を決定する属性決定手順と、
    前記決定した属性で前記複数のサンプル画像を分岐させた2ノードを追加するノード追加手順とを特徴とする請求項1記載の索引方法。
  3. 前記ノード追加手順は、前記属性毎に前記複数のサンプル画像の属性値を所定順にソートし、該所定順を各サンプル画像のサンプル画像IDで示したソート済み索引順を用いて、前記決定した属性で前記複数のサンプル画像を分岐させることを特徴とする請求項記載の索引方法。
  4. 前記ツリー生成手順は、前記ツリーのノード毎にランダムに選択された所定数の属性を適用することを特徴とする請求項1乃至3のいずれか一項記載の索引方法。
  5. コンピュータが、請求項1乃至4のいずれか一項記載の索引方法で生成されたツリーを参照して、複数のサンプル画像から質問画像に類似の近傍画像を検索する検索方法であって、該コンピュータが、
    前記質問画像の高次元特徴ベクトルの前記ランダムに選択された属性の属性値に基づいて、前記ツリーを探索することによって、該質問画像の近傍画像を特定する近傍画像特定手順と、
    前記近傍画像の親ノードから分岐したサンプル画像との距離を算出する距離算出手順と、
    前記近傍画像を特定するサンプル画像IDと前記距離とを探索結果として出力する探索結果出力手順と
    を実行することを特徴とする検索方法。
  6. 前記近傍画像特定手順は、前記質問画像に対して複数の近傍画像を特定し、
    前記距離算出手順は、
    前記ランダムに選択された属性毎に前記複数の近傍画像の属性値の第一平均値を算出する第一平均値算出手順と、
    前記ランダムに選択された属性毎に前記質問画像の属性値の第二平均値を算出する第二平均値算出手順と、
    前記第一平均値と前記第二平均値とを用いて前記距離を算出することを特徴とする請求項5記載の検索方法。
  7. コンピュータに、サンプル画像の特徴を現す高次元特徴ベクトルによる高次元ベクトル空間において該サンプル画像を索引付けさせるプログラムを記憶したコンピュータ読取可能な記憶媒体であって、該コンピュータに、
    前記高次元特徴ベクトルを表現する複数の属性からランダムに選択された所定数の属性を用いて、複数のサンプル画像の該ランダムに選択された属性の属性値に基づいて該所定数を次元とするツリーを生成するツリー生成手順を実行させることを特徴とするコンピュータ読取可能な記憶媒体。
  8. 請求項記載のコンピュータ読取可能な記憶媒体によって前記コンピュータに生成させたツリーを参照させて、複数のサンプル画像から質問画像に類似の近傍画像を検索せるプログラムを記憶したコンピュータ読取可能な記憶媒体であって、該コンピュータに、
    前記質問画像の高次元特徴ベクトルの前記ランダムに選択された属性の属性値に基づいて、前記ツリーを探索することによって、該質問画像の近傍画像を特定する近傍画像特定手順と、
    前記近傍画像の親ノードから分岐したサンプル画像との距離を算出する距離算出手順と、
    前記近傍画像を特定するサンプル画像IDと前記距離とを探索結果として出力する探索結果出力手順と
    を実行させることを特徴とするコンピュータ読取可能な記憶媒体。
JP2010207361A 2010-09-15 2010-09-15 索引方法、検索方法、及びその記憶媒体 Expired - Fee Related JP5552981B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010207361A JP5552981B2 (ja) 2010-09-15 2010-09-15 索引方法、検索方法、及びその記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010207361A JP5552981B2 (ja) 2010-09-15 2010-09-15 索引方法、検索方法、及びその記憶媒体

Publications (2)

Publication Number Publication Date
JP2012063959A JP2012063959A (ja) 2012-03-29
JP5552981B2 true JP5552981B2 (ja) 2014-07-16

Family

ID=46059611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010207361A Expired - Fee Related JP5552981B2 (ja) 2010-09-15 2010-09-15 索引方法、検索方法、及びその記憶媒体

Country Status (1)

Country Link
JP (1) JP5552981B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303717B2 (en) 2014-02-10 2019-05-28 Nec Corporation Search system, search method and program recording medium
CN110046236B (zh) * 2019-03-20 2022-12-20 腾讯科技(深圳)有限公司 一种非结构化数据的检索方法及装置
JP6918397B1 (ja) * 2020-02-10 2021-08-11 株式会社エイシング 情報処理装置、方法、プログラム及びシステム
WO2021161603A1 (ja) * 2020-02-10 2021-08-19 株式会社エイシング 情報処理装置、方法、プログラム及びシステム
CN113342831A (zh) * 2021-08-02 2021-09-03 长沙海信智能系统研究院有限公司 数据处理方法及相关设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6681060B2 (en) * 2001-03-23 2004-01-20 Intel Corporation Image retrieval using distance measure
JP5035596B2 (ja) * 2006-09-19 2012-09-26 ソニー株式会社 情報処理装置および方法、並びにプログラム
US8139860B2 (en) * 2008-07-31 2012-03-20 Fuji Xerox Co., Ltd. Retrieving and sharing electronic documents using paper

Also Published As

Publication number Publication date
JP2012063959A (ja) 2012-03-29

Similar Documents

Publication Publication Date Title
JP5749279B2 (ja) アイテム関連付けのための結合埋込
US7039634B2 (en) Semantic querying a peer-to-peer network
Liu et al. Clustering billions of images with large scale nearest neighbor search
KR101266358B1 (ko) 다중 길이 시그니처 파일 기반 분산 색인 시스템 및 방법
US8352494B1 (en) Distributed image search
JP5798503B2 (ja) ファイルリスト生成方法及びシステム、ファイルリスト生成装置並びにプログラム
US9165068B2 (en) Techniques for cloud-based similarity searches
JP6183376B2 (ja) インデックス生成装置及び方法並びに検索装置及び検索方法
JP6216467B2 (ja) 視覚・意味複合ネットワーク、および当該ネットワークを形成するための方法
JP5552981B2 (ja) 索引方法、検索方法、及びその記憶媒体
CN106095920B (zh) 面向大规模高维空间数据的分布式索引方法
CN108399213B (zh) 一种面向用户个人文件的聚类方法及系统
US10235387B2 (en) Method for selecting images for matching with content based on metadata of images and content in real-time in response to search queries
US10275472B2 (en) Method for categorizing images to be associated with content items based on keywords of search queries
US20130054566A1 (en) Acceleration of ranking algorithms using a graphics processing unit
CN114817717A (zh) 搜索方法、装置、计算机设备和存储介质
JP5470082B2 (ja) 情報蓄積検索方法及び情報蓄積検索プログラム
Ma et al. In-memory distributed indexing for large-scale media data retrieval
KR102205061B1 (ko) 메타데이터 추천 서비스 제공 방법 및 장치
Barge et al. A skyline based technique for web service selection
JP2022153632A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
Antaris et al. Similarity search over the cloud based on image descriptors' dimensions value cardinalities
Zhou et al. Large scale nearest neighbors search based on neighborhood graph
Morgan et al. Socio-cultural cognitive mapping
Vargas Munoz et al. A genetic programming approach for searching on nearest neighbors graphs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140513

R151 Written notification of patent or utility model registration

Ref document number: 5552981

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees