JP2011257970A - 高次元の特徴ベクトルの集合から類似した特徴ベクトルを検索する検索装置及びプログラム - Google Patents

高次元の特徴ベクトルの集合から類似した特徴ベクトルを検索する検索装置及びプログラム Download PDF

Info

Publication number
JP2011257970A
JP2011257970A JP2010131612A JP2010131612A JP2011257970A JP 2011257970 A JP2011257970 A JP 2011257970A JP 2010131612 A JP2010131612 A JP 2010131612A JP 2010131612 A JP2010131612 A JP 2010131612A JP 2011257970 A JP2011257970 A JP 2011257970A
Authority
JP
Japan
Prior art keywords
residual
vector
codebook
representative
clusters
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
JP2010131612A
Other languages
English (en)
Other versions
JP5436346B2 (ja
Inventor
Yusuke Uchida
祐介 内田
Koichi Takagi
幸一 高木
Ryoichi Kawada
亮一 川田
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.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2010131612A priority Critical patent/JP5436346B2/ja
Publication of JP2011257970A publication Critical patent/JP2011257970A/ja
Application granted granted Critical
Publication of JP5436346B2 publication Critical patent/JP5436346B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】検索精度とメモリ量とのトレードオフを考慮して、高次元の特徴ベクトルの集合から、クエリ特徴ベクトルに類似した特徴ベクトルを検索する検索装置等を提供する。
【解決手段】登録ベクトルfをコードブックで量子化するベクトル量子化手段と、代表ベクトルfに対する残差ベクトルfを導出する残差ベクトル導出手段と、残差ベクトルを分割する残差ベクトル分割手段と、残差部分ベクトルf を残差コードブックで量子化する残差部分ベクトル量子化手段と、残差部分ベクトルf の残差識別値l(1≦t≦T)の集合の転置インデックスを生成する転置インデックス生成手段とを有する。残差コードブックは、残差識別値lと残差代表ベクトルfとを対応付けた残差コードブックをM×T個記憶すると共に、登録ベクトルfの残差部分ベクトルftが、M×T個の残差コードブックのどれで量子化すべきかを示す残差テーブルT[n][t]を記憶する。
【選択図】図1

Description

本発明は、検索用データベースに登録された高次元の特徴ベクトルの集合から、クエリ特徴ベクトル(検索キー)に類似した特徴ベクトルを検索する最近傍探索技術に関する。
最近傍検索技術として、木構造を用いた、R-tree(Rectangle-tree:矩形木)やANN(Approximate Nearest Neighbor)がある。R-treeは、階層的に入れ子になった最小外接矩形により空間を分割するものであって、主に低次元データ空間に対するインデックス化に用いられる。例えば、所定範囲内に存在するベクトルを検索することに適する。また、ANNは、所要程度の検索誤りを許容(近似最近傍検索)ことによって、検索を高速化することができる。
更に、空間における特徴ベクトルの密度に応じてインデックスを生成する技術もある(例えば特許文献1参照)。この技術によれば、R-treeよりも高速に検索することができるが、特徴ベクトルが高次元になるほど、ほぼ全検索と同等の速度になるという問題がある(例えば「次元の呪い」と称される)。即ち、特徴ベクトルが高次元になるほど、最近傍探索の効率が重要となる。
これに対し、高次元の特徴ベクトルに対する検索技術として、ハッシュでデータを構造化(インデキシング)したLSH(Locality Sensitive Hashing)がある。LSHもANNと同様に検索誤りを許容した近似最近傍探索技術である。LSHによれば、類似するデータ同士のハッシュ値は一致し、非類似のデータ同士のハッシュ値は異なる可能性が高くなるように、ハッシュ値を出力するハッシュ関数が用いられる。尚、LSHについて、各バケットに登録される特徴ベクトルの数をなるべく均一にすることで、効率的に検索する技術も提案されている(例えば特許文献2参照)。
更に、ランダムに生成した木構造(kd-tree)のインデックスを複数利用することによって、検索の高精度化を実現する技術もある(例えば非特許文献1参照)。これは、高次元ベクトルを構成する各次元のうち分散の大きな次元を順に決定的に分割するkd-treeに対して、分割する次元や閾値に自由度を持たせたkd-treeを利用している。しかしながら、このような技術についても、特徴ベクトルそのものを登録して、クエリベクトルとの距離計算を行う必要がある。そのために、メモリ効率が悪く、登録ベクトルが高次元且つ大量にある場合には、メモリ上で動作することができないという問題がある。
これに対し、インデックスに、特徴ベクトルそのものを登録するのではなく、最初に、特徴ベクトルを荒く量子化し、その残差ベクトルを更に量子化し、その量子化されたコードを転置インデックスとして登録することによってメモリ使用量を削減する技術がある(例えば非特許文献2参照)。この技術によれば、検索が高速化されると共に、メモリ効率も向上する。尚、この技術は、LSHや非特許文献1に記載された技術と比較して、検索精度とメモリ使用量とのトレードオフに優れる。
特開2002−163272号公報 特開2009−020769号公報
Marius Muja andDavid G. Lowe、「Fast Approximate Nearest Neighbors with Automatic AlgorithmConfiguration」、IEEE International Conference on Computer Vision、Theory andApplications (VISAPP'09)、2009. Herve Jegou, Matthijs Douze, Cordelia Schmid、「ProductQuantization for Nearest Neighbor Search」、IEEE Transactions on Pattern Analysisand Machine Intelligence、25 Feb. 2010. D. G. Lowe, 「Distinctive Image Features fromScale-Invariant Keypoints」、International Journal of Computer Vision、vol. 60,no. 2, pp. 91-110, 2004.
しかしながら、非特許文献2に記載された技術によれば、残差ベクトルを単一のコードブックで量子化しているために、近似最近傍検索の精度が悪くなるという問題があった。これは、最初に荒く量子化した際に、残差ベクトルの分布が、クラスタ毎に大きく異なるためである。一方で、この残差ベクトルのコードブックを、クラスタ毎に生成してしまうと、コードブックの情報量(メモリ量)が非常に膨大となってしまう。
そこで、本発明は、検索精度とメモリ量とのトレードオフを考慮して、高次元の特徴ベクトルの集合から、クエリ特徴ベクトルに類似した特徴ベクトルを検索することができる検索装置及びプログラムを提供することを目的とする。
本発明によれば、高次元の登録ベクトルの集合から、クエリベクトルに類似したベクトルを検索する検索装置であって、
登録ベクトルfを量子化するために、代表識別値n(=1〜N)と代表ベクトルfとを対応付けたコードブックを記憶するコードブック記憶手段と、
登録ベクトルfを、コードブックを用いて、代表識別値nに量子化するベクトル量子化手段と、
登録ベクトルfから代表ベクトルfを引いた残差ベクトルfを導出する残差ベクトル導出手段と、
残差ベクトルをT個の残差部分ベクトルに分割する残差ベクトル分割手段と、
各残差部分ベクトルf を更に量子化するために、残差識別値l(=1〜L)と残差部分代表ベクトルfとを対応付けた残差コードブックをM×T個記憶すると共に、代表識別値nに対応付けられた登録ベクトルfの残差部分ベクトルftが、M×T個の残差コードブックのどれで量子化すべきかを示す残差テーブルT[n][t]を記憶する残差コードブック記憶手段と、
残差部分ベクトルf を、T[n][t]番目の残差コードブックで量子化する残差部分ベクトル量子化手段と、
登録ベクトルfの代表識別値n毎に、複数の残差部分ベクトルf の残差識別値l(1≦t≦T)の集合と、登録ベクトルfに関する付加情報とを、各登録ベクトルfの登録情報として登録した転置インデックスを生成する転置インデックス生成手段と、
転置インデックスを、登録ベクトルの集合として記憶する転置インデックス記憶手段と
を有することを特徴とする。
本発明の検索装置における他の実施形態によれば、転置インデックス記憶手段を用いて、クエリベクトルに類似したベクトルを検索するために、
ベクトル量子化手段は、クエリベクトルfを、コードブックを用いて、代表識別値nに量子化し、
残差ベクトル導出手段は、クエリベクトルfから代表ベクトルfを引いたクエリ残差ベクトルfを導出し、
残差ベクトル分割手段は、クエリ残差ベクトルをT個のクエリ残差部分ベクトルに分割する
と共に、
クエリ残差部分ベクトルf と、残差テーブルT[n][t]により指定される残差コードブックの各残差代表ベクトルft,l(1≦l≦L)との距離を算出しテーブルD[t][l]に保持する残差ベクトル距離算出手段と、
登録ベクトルの登録情報である残差識別値l(1≦t≦T)を基に、テーブルD[t][l]を参照することで、クエリベクトルと登録ベクトルの近似距離を、距離の和d(=Σt=1 TD[t][l])として算出する登録ベクトル距離算出手段と、
距離の和dが、所定閾値以下となる登録ベクトルを、検索結果として出力する検索判定手段と
を有することも好ましい。
本発明の検索装置における他の実施形態によれば、
学習ベクトルの集合を用いて、コードブック記憶手段に記憶すべきコードブックを生成するコードブック生成手段と、
残差コードブック記憶手段に記憶すべき残差コードブックを生成する残差コードブック生成手段と
を更に有し、
コードブック生成手段は、
学習ベクトルの集合を、N個のクラスタにクラスタリングする第1の機能と、
クラスタ毎に、代表ベクトルを導出する第2の機能と、
各代表ベクトルに、一意の代表識別値n(=1〜N)を割り当てたコードブックを生成する第3の機能と
を実行するものであり、
残差コードブック生成手段は、
代表ベクトルfと、当該代表ベクトルfに属する学習ベクトルfとの間の残差ベクトルf(=f−f)を導出することによってN個の残差クラスタを作成する第1の機能と、
残差ベクトルfをT個の残差部分ベクトルに分割する第2の機能と、
残差部分ベクトル毎に、以下の第3から第8の機能をそれぞれ実行するものであって、
N個の残差クラスタから任意のM個の残差クラスタを選択する第3の機能と、
M個の各残差クラスタについて、各残差クラスタに所属する残差部分ベクトルを更にL個のクラスタにクラスタリングする第4の機能と、
M個の残差クラスタからそれぞれ作成されたL個のクラスタの代表ベクトル集合から、L個の要素を持つ残差コードブックをM個生成する第5の機能と、
N個の残差クラスタについて、各残差クラスタに属する残差部分ベクトルの全てを、M個の残差コードブック各々を用いて量子化した場合の量子化誤差の合計値を算出する第6の機能と、
量子化誤差の合計値が最小となる残差コードブックに、当該残差クラスタを割り当てる第7の機能と、
M個の残差コードブックについて、各残差コードブックに割り当てられた残差クラスタに含まれる全ての残差部分ベクトルを用いて、更にL個のクラスタにクラスタリングし、そのL個の新たな代表ベクトルによって残差コードブックを更新する第8の機能と
を実行することも好ましい。
本発明の検索装置における他の実施形態によれば、残差コードブック生成手段は、第6から第8の機能を、所定回数、又は、先の量子化誤差の合計値と後の量子化誤差の合計値との差が所定閾値以下となるまで、繰り返すことも好ましい。
本発明の検索装置における他の実施形態によれば、
ベクトルは、画像の局所特徴領域から抽出された局所特徴ベクトルであり、
登録ベクトルの付加情報は、画像識別子(IDentifier)、局所特徴領域のスケール、局所特徴領域の角度のいずれか1つを含むことも好ましい。
本発明によれば、高次元の登録ベクトルの集合から、クエリベクトルに類似したベクトルを検索する装置に搭載されたコンピュータを機能させる検索プログラムであって、
登録ベクトルfを量子化するために、代表識別値n(=1〜N)と代表ベクトルfとを対応付けたコードブックを記憶するコードブック記憶手段と、
登録ベクトルfを、コードブックを用いて、代表識別値nに量子化するベクトル量子化手段と、
登録ベクトルfから代表ベクトルfを引いた残差ベクトルfを導出する残差ベクトル導出手段と、
残差ベクトルをT個の残差部分ベクトルに分割する残差ベクトル分割手段と、
各残差部分ベクトルf を更に量子化するために、残差識別値l(=1〜L)と残差部分代表ベクトルfとを対応付けた残差コードブックをM×T個記憶すると共に、代表識別値nに対応付けられた登録ベクトルfの残差部分ベクトルftが、M×T個の残差コードブックのどれで量子化すべきかを示す残差テーブルT[n][t]を記憶する残差コードブック記憶手段と、
残差部分ベクトルf を、T[n][t]番目の残差コードブックで量子化する残差部分ベクトル量子化手段と、
登録ベクトルfの代表識別値n毎に、複数の残差部分ベクトルf の残差識別値l(1≦t≦T)の集合と、登録ベクトルfに関する付加情報とを、各登録ベクトルfの登録情報として登録した転置インデックスを生成する転置インデックス生成手段と、
転置インデックスを、登録ベクトルの集合として記憶する転置インデックス記憶手段と
してコンピュータを機能させることを特徴とする。
本発明の検索プログラムにおける他の実施形態によれば、転置インデックス記憶手段を用いて、クエリベクトルに類似したベクトルを検索するために、
ベクトル量子化手段は、クエリベクトルfを、コードブックを用いて、代表識別値nに量子化し、
残差ベクトル導出手段は、クエリベクトルfから代表ベクトルfを引いたクエリ残差ベクトルfを導出し、
残差ベクトル分割手段は、クエリ残差ベクトルをT個のクエリ残差部分ベクトルに分割する
と共に、
クエリ残差部分ベクトルf と、残差テーブルT[n][t]により指定される残差コードブックの各残差代表ベクトルft,l(1≦l≦L)との距離を算出しテーブルD[t][l]に保持する残差ベクトル距離算出手段と、
登録ベクトルの登録情報である残差識別値l(1≦t≦T)を基に、テーブルD[t][l]を参照することで、クエリベクトルと登録ベクトルの近似距離を、距離の和d(=Σt=1 TD[t][l])として算出する登録ベクトル距離算出手段と、
距離の和dが、所定閾値以下となる登録ベクトルを、検索結果として出力する検索判定手段と
してコンピュータを更に機能させることも好ましい。
本発明の検索プログラムにおける他の実施形態によれば、
学習ベクトルの集合を用いて、コードブック記憶手段に記憶すべきコードブックを生成するコードブック生成手段と、
残差コードブック記憶手段に記憶すべき残差コードブックを生成する残差コードブック生成手段と
を更に有し、
コードブック生成手段は、
学習ベクトルの集合を、N個のクラスタにクラスタリングする第1の機能と、
クラスタ毎に、代表ベクトルを導出する第2の機能と、
各代表ベクトルに、一意の代表識別値n(=1〜N)を割り当てたコードブックを生成する第3の機能と
を実行するものであり、
残差コードブック生成手段は、
代表ベクトルfと、当該代表ベクトルfに属する学習ベクトルfとの間の残差ベクトルf(=f−f)を導出することによってN個の残差クラスタを作成する第1の機能と、
残差ベクトルfをT個の残差部分ベクトルに分割する第2の機能と、
残差部分ベクトル毎に、以下の第3から第8の機能をそれぞれ実行するものであって、
N個の残差クラスタから任意のM個の残差クラスタを選択する第3の機能と、
M個の各残差クラスタについて、各残差クラスタに所属する残差部分ベクトルを更にL個のクラスタにクラスタリングする第4の機能と、
M個の残差クラスタからそれぞれ作成されたL個のクラスタの代表ベクトル集合から、L個の要素を持つ残差コードブックをM個生成する第5の機能と、
N個の残差クラスタについて、各残差クラスタに属する残差部分ベクトルの全てを、M個の残差コードブック各々を用いて量子化した場合の量子化誤差の合計値を算出する第6の機能と、
量子化誤差の合計値が最小となる残差コードブックに、当該残差クラスタを割り当てる第7の機能と、
M個の残差コードブックについて、各残差コードブックに割り当てられた残差クラスタに含まれる全ての残差部分ベクトルを用いて、更にL個のクラスタにクラスタリングし、そのL個の新たな代表ベクトルによって残差コードブックを更新する第8の機能と
してコンピュータを更に機能させることも好ましい。
本発明の検索プログラムにおける他の実施形態によれば、残差コードブック生成手段は、第4から第6の機能を、所定回数、又は、先の量子化誤差の合計値と後の量子化誤差の合計値との差が所定閾値以下となるまで、繰り返すようにコンピュータを更に機能させることも好ましい。
本発明の検索プログラムにおける他の実施形態によれば、
ベクトルは、画像の局所特徴領域から抽出された局所特徴ベクトルであり、
登録ベクトルの付加情報は、画像識別子(IDentifier)、局所特徴領域のスケール、局所特徴領域の角度のいずれか1つを含むことも好ましい。
本発明の検索装置及びプログラムによれば、検索精度とメモリ量とのトレードオフを考慮して、高次元の特徴ベクトルの集合から、クエリ特徴ベクトルに類似した特徴ベクトルを検索することができる。
本発明における検索装置の機能構成図である。 登録部における処理内容の説明図である。 クラスタFに含まれるベクトルを代表ベクトルfに対応付けた説明図である。 検索部における処理内容の説明図である。 学習部を更に含む検索装置の機能構成図である。 コードブック生成部の処理ステップを表すフローチャートである。 残差コードブック生成部の処理ステップを表すフローチャートである。 残差コードブック生成部における処理内容の第1の説明図である。 残差コードブック生成部における処理内容の第2の説明図である。
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
図1は、本発明における検索装置の機能構成図である。
本発明が対象とする検索装置1は、高次元の登録ベクトルの集合から、クエリベクトルに類似したベクトルを検索する。図1によれば、検索装置1は、コードブック記憶部101と、残差コードブック記憶部102と、転置インデックス記憶部103と、登録部11と、検索部12とを有する。これら機能構成部は、装置に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。以下では、[登録部][検索部]の順に説明すると共に、その中で記憶部101〜103について説明する。
[登録部]
図2は、登録部における処理内容の説明図である。以下では、図2を参照しつつ、図1の登録部11の各機能が説明される。また、図3は、クラスタFに含まれるベクトルを代表ベクトルfに対応付けた説明図である。
登録部11は、ベクトル量子化部111と、残差ベクトル導出部112と、残差ベクトル分割部113と、残差部分ベクトル量子化部114と、転置インデックス生成部115とを有する。
コードブック記憶部101は、登録ベクトルfを量子化するために、代表識別値n(=1〜N)と代表ベクトルfとを対応付けたコードブックを記憶する(図2のコードブック記憶部101参照)。
代表識別値n: 代表ベクトルf
1: f=(f11,f12,・・・,f1D
2: f=(f21,f22,・・・,f2D
3: f=(f31,f32,・・・,f3D
・・・
N: f=(fN1,fN2,・・・,fND
ベクトル量子化部111は、登録ベクトルfを入力する。ここで、ベクトルは、高次元の特徴ベクトルであって、例えば128次元(D=128)で表されるものであってもよい。
登録ベクトルf: f=(f,f,・・・,f
そして、ベクトル量子化部111は、登録ベクトルfを、コードブック記憶部101に記憶されたコードブックを用いて、代表識別値n(=1〜N、n:整数値)に量子化する(図2のベクトル量子化部111参照)。
n=q(f)=argmin||f−f||
(登録ベクトルfの量子化関数q(f)は、||f−f||が最小となるnを導出
する)
q:R->N(量子化を意味する)
:代表ベクトル
残差ベクトル導出部112は、登録ベクトルfから代表ベクトルfを引いた残差ベクトルfを導出する(図2の残差ベクトル導出部112参照)。尚、図3(a)によれば、クラスタF毎に、多数のベクトルfに対する代表ベクトルfが表されている。また、fとfとの差分となる残差ベクトルもfも表されている。
=f−fn(=q(f)):残差ベクトル
残差ベクトル分割部113は、残差ベクトルをT個の残差部分ベクトルに分割する(図2の残差ベクトル分割部113参照)。ここで、例えば1つの残差部分ベクトルを、16次元にしたとする。この場合、残差ベクトルは、8個(T=D/D'=128/16)の残差部分ベクトルに分割される。
=(f 1,1 ,f 1,2 ,・・・,f 1,D'
=(f 2,D'+1 ,f 2,D'+2 ,・・・,f 2,D'+D'
・・・・・
=(f T,(T-1)・D'+1,f T,(T-1)・D'+2,・・・,f T,(T-1)・D'+D'
残差コードブック記憶部102は、各残差部分ベクトルf を更に量子化するために、残差識別値l(=1〜L)と残差部分代表ベクトルfとを対応付けた残差コードブックをM×T個記憶する(図2の残差コードブック記憶部102及び図3(b)参照)。また、代表識別値nに対応付けられた登録ベクトルfの残差部分ベクトルf が、M×T個の残差コードブックのどれで量子化すべきかを示す残差テーブルT[n][t]も記憶する。
ここで、Mは、1<<M<<Nの関係にある。M=1にすると、残差ベクトルの分布が、クラスタ毎に大きく異なるために、残差ベクトルを量子化する際の量子化誤差が増加し、結果的に近似最近傍検索の精度が悪くなる。一方で、M=Nにすると、コードブックの情報量(メモリ量)が非常に膨大となってしまう。そこで、本発明は、1<<M<<Nの関係にすることが重要となる。
残差部分ベクトル量子化部114は、代表識別値n=q(f)とすると、残差部分ベクトルf をT[n][t]番目の残差コードブックで量子化する。残差テーブルT[n][t]には、Mが対応付けられている。量子化結果は、以下のように表される。
=q T[n][t](f
転置インデックス生成部115は、登録ベクトルfの代表識別値n毎に、複数の残差部分ベクトルf の残差識別値l(1≦t≦T)の集合と、登録ベクトルfに関する付加情報(メタデータ)とを、各登録ベクトルfの登録情報として登録した転置インデックスを生成する。「転置インデックス」とは、ベクトルを、識別値に置き換えたものである。これは、代表識別値n(=1〜N)毎に作成された登録ベクトルのリストである。
登録ベクトルのメタデータには、何が割り当てられてもよい。例えば、登録ベクトルが画像検索における画像特徴量である場合、登録ベクトルが所属する画像識別値を割り当てる。例えば画像の局所特徴領域から抽出された局所特徴ベクトルである場合、メタデータ(登録ベクトルの付加情報)は、画像識別子(IDentifier)、局所特徴領域のスケール、局所特徴領域の角度のいずれか1つを含むことも好ましい。また、高精度に検索する場合、登録ベクトルそのものをメタデータに追加的に登録するものであってもよい。
転置インデックス記憶部103は、転置インデックスを、登録ベクトルの集合として記憶する。
[検索部]
検索部12は、登録部11と同様に、ベクトル量子化部111と、残差ベクトル導出部112と、残差ベクトル分割部113とを有し、更に、残差ベクトル距離算出部124と、登録ベクトル距離算出部125と、検索判定部126とを有する。
図4は、検索部における処理内容の説明図である。以下では、図4を参照しつつ、図1の検索部12の各機能が説明される。
検索部12は、クエリベクトルfを入力する。クエリベクトルfは、登録ベクトルと同じ次元のベクトルである。そして、ベクトル量子化部111は、クエリベクトルfを、コードブック記憶部101に記憶されたコードブックを用いて、代表識別値n(=1〜N、n:整数値)に量子化する。残差ベクトル導出部112は、クエリベクトルfから代表ベクトルfを引いたクエリ残差ベクトルfを導出する。残差ベクトル分割部113は、クエリ残差ベクトルをT個のクエリ残差部分ベクトルに分割する。
残差ベクトル距離算出部124は、クエリ残差部分ベクトルf と、残差テーブルT[n][t]により指定される残差コードブックの各残差代表ベクトルft,l(1≦l≦L)との距離を算出し、テーブルD[t][l]に保持する(図4の残差ベクトル距離算出部124参照)。
登録ベクトル距離算出部125は、登録ベクトルの登録情報である残差識別値l(1≦t≦T)を基に、テーブルD[t][l]を参照することで、クエリベクトルと登録ベクトルの近似距離を、距離の和d(=Σt=1 TD[t][l])として算出する(図4の登録ベクトル距離算出部125参照)。
検索判定部126は、距離の和dが、所定閾値以下となる登録ベクトルを、検索結果として出力する(図4の検索判定部126参照)。この検索結果として、複数の登録ベクトルが導出されてもよい。
[学習部]
図5は、学習部を更に含む検索装置の機能構成図である。
図5によれば、図1と比較して、学習部13を更に有する。学習部13は、学習ベクトルを入力する。学習部13は、コードブック生成部131と、残差コードブック生成部132とを有する。
コードブック生成部131は、学習ベクトルの集合を用いて、コードブック記憶部101に記憶すべきコードブックを生成する。
図6は、コードブック生成部の処理ステップを表すフローチャートである。
(S601)学習ベクトルの集合Fを、N個のクラスタにクラスタリングする。
F -> F,F,・・・,F
例えばk-means又はk-means++のようなクラスタリングアルゴリズムが用いられる。
(S602)クラスタ毎に、代表ベクトルfを導出する。
,f,・・・,f
(S603)各代表ベクトルに、一意の代表識別値n(=1〜N)を割り当てたコードブックを生成する。が得られる。
残差ベクトル集合:F ={f−f|f∈F
残差コードブック生成部132は、残差コードブック記憶部102に記憶すべき残差コードブックを生成する。
図7は、残差コードブック生成部の処理ステップを表すフローチャートである。図8は、残差コードブック生成部における処理内容の第1の説明図である。図9は、残差コードブック生成部における処理内容の第2の説明図である。以下では、図8及び9を参照しつつ、図7のフローチャートの処理内容が説明される。
(S701)代表ベクトルfと、当該代表ベクトルfに属する学習ベクトルfとの間の残差ベクトルf(=f−f)を導出する(図8のS701参照)。これによって、N個の残差クラスタを作成する。
(S702)残差ベクトルfを、T個の残差部分ベクトルf に分割する(図8のS702参照)。
(S703)残差部分ベクトルf それぞれについて、以下のS704〜S711の処理を実行する。
(S704)N個の残差クラスタから任意のM個の残差クラスタを選択する(図8のS704参照)。
(S705)M個の各残差クラスタについて、各残差クラスタに属する残差部分ベクトルを更にL個のクラスタにクラスタリングする(図8のS705参照)。S601と同様に、例えばk-means又はk-means++のようなクラスタリングアルゴリズムが用いられる。
(S706)M個の残差クラスタからそれぞれ作成されたL個のクラスタの代表ベクトル集合から、L個の要素を持つ残差コードブックをM個生成する(図8のS706参照)。ここで、N個の残差クラスタは、M個の中のいずれか1つの残差コードブックに対応付けられる。
(S707)以下、S708〜S710を、所定回数、又は、先の量子化誤差の合計値と後の量子化誤差の合計値との差が所定閾値以下となるまで、繰り返す(図9参照)。
(S708)N個の残差クラスタについて、各残差クラスタに属する残差部分ベクトルの全てを、M個の残差コードブック各々を用いて量子化した場合の量子化誤差の合計値を算出する。
(S709)量子化誤差の合計値が最小となる残差コードブックに、当該残差クラスタを割り当てる。
(S710)M個の残差コードブックについて、各残差コードブックに割り当てられた残差クラスタに含まれる全ての残差部分ベクトルを用いて、更にL個のクラスタにクラスタリングする。そして、そのL個の新たな代表ベクトルによって残差コードブックを更新する。
以上、詳細に説明したように、本発明の検索装置及びプログラムによれば、検索精度とメモリ量とのトレードオフを考慮して、高次元の特徴ベクトルの集合から、クエリ特徴ベクトルに類似した特徴ベクトルを検索することができる。
従来技術によれば、特徴ベクトルを量子化し、その量子化ベクトルの残差ベクトルに識別値を割り当てている。しかしながら、残差符号化のための残差コードブックが、特徴ベクトルで同一であったために、検索精度が低くなってしまう。これに対し、本発明によれば、クラスタ毎にコードブックを変更することによって、高次元ベクトルを高精度に検索することができる。即ち、クラスタ毎の残差ベクトルの分布に基づいてM個のコードブックを最適化することによって、全てのクラスタの残差コードブックを生成することなく(M=N)、単一の残差コードブックを用いるよりも(M=1)、高精度に検索することができる。
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
1 検索装置
101 コードブック記憶部
102 残差コードブック記憶部
103 転置インデックス記憶部
11 登録部
111 ベクトル量子化部
112 残差ベクトル導出部
113 残差ベクトル分割部
114 残差部分ベクトル量子化部
115 転置インデックス生成部
12 検索部
125 残差ベクトル距離算出部
126 登録ベクトル距離算出部
127 検索判定部

Claims (10)

  1. 高次元の登録ベクトルの集合から、クエリベクトルに類似したベクトルを検索する検索装置であって、
    前記登録ベクトルfを量子化するために、代表識別値n(=1〜N)と代表ベクトルfとを対応付けたコードブックを記憶するコードブック記憶手段と、
    前記登録ベクトルfを、前記コードブックを用いて、代表識別値nに量子化するベクトル量子化手段と、
    前記登録ベクトルfから代表ベクトルfを引いた残差ベクトルfを導出する残差ベクトル導出手段と、
    前記残差ベクトルをT個の残差部分ベクトルに分割する残差ベクトル分割手段と、
    各残差部分ベクトルf を更に量子化するために、残差識別値l(=1〜L)と残差部分代表ベクトルfとを対応付けた残差コードブックをM×T個記憶すると共に、前記代表識別値nに対応付けられた登録ベクトルfの残差部分ベクトルftが、前記M×T個の残差コードブックのどれで量子化すべきかを示す残差テーブルT[n][t]を記憶する残差コードブック記憶手段と、
    前記残差部分ベクトルf を、T[n][t]番目の前記残差コードブックで量子化する残差部分ベクトル量子化手段と、
    前記登録ベクトルfの代表識別値n毎に、複数の残差部分ベクトルf の残差識別値l(1≦t≦T)の集合と、登録ベクトルfに関する付加情報とを、各登録ベクトルfの登録情報として登録した転置インデックスを生成する転置インデックス生成手段と、
    前記転置インデックスを、登録ベクトルの集合として記憶する転置インデックス記憶手段と
    を有することを特徴とする検索装置。
  2. 前記転置インデックス記憶手段を用いて、クエリベクトルに類似したベクトルを検索するために、
    前記ベクトル量子化手段は、前記クエリベクトルfを、前記コードブックを用いて、代表識別値nに量子化し、
    前記残差ベクトル導出手段は、前記クエリベクトルfから代表ベクトルfを引いたクエリ残差ベクトルfを導出し、
    前記残差ベクトル分割手段は、前記クエリ残差ベクトルをT個のクエリ残差部分ベクトルに分割する
    と共に、
    前記クエリ残差部分ベクトルf と、前記残差テーブルT[n][t]により指定される残差コードブックの各残差代表ベクトルft,l(1≦l≦L)との距離を算出しテーブルD[t][l]に保持する残差ベクトル距離算出手段と、
    前記登録ベクトルの登録情報である残差識別値l(1≦t≦T)を基に、前記テーブルD[t][l]を参照することで、クエリベクトルと登録ベクトルの近似距離を、距離の和d(=Σt=1 TD[t][l])として算出する登録ベクトル距離算出手段と、
    前記距離の和dが、所定閾値以下となる登録ベクトルを、検索結果として出力する検索判定手段と
    を有することを特徴とする請求項1に記載の検索装置。
  3. 学習ベクトルの集合を用いて、前記コードブック記憶手段に記憶すべきコードブックを生成するコードブック生成手段と、
    前記残差コードブック記憶手段に記憶すべき残差コードブックを生成する残差コードブック生成手段と
    を更に有し、
    前記コードブック生成手段は、
    前記学習ベクトルの集合を、N個のクラスタにクラスタリングする第1の機能と、
    前記クラスタ毎に、代表ベクトルを導出する第2の機能と、
    各代表ベクトルに、一意の代表識別値n(=1〜N)を割り当てたコードブックを生成する第3の機能と
    を実行するものであり、
    前記残差コードブック生成手段は、
    代表ベクトルfと、当該代表ベクトルfに属する学習ベクトルfとの間の残差ベクトルf(=f−f)を導出することによってN個の残差クラスタを作成する第1の機能と、
    前記残差ベクトルfをT個の残差部分ベクトルに分割する第2の機能と、
    前記残差部分ベクトル毎に、以下の第3から第8の機能をそれぞれ実行するものであって、
    N個の残差クラスタから任意のM個の残差クラスタを選択する第3の機能と、
    M個の各残差クラスタについて、各残差クラスタに所属する残差部分ベクトルを更にL個のクラスタにクラスタリングする第4の機能と、
    M個の残差クラスタからそれぞれ作成されたL個のクラスタの代表ベクトル集合から、L個の要素を持つ残差コードブックをM個生成する第5の機能と、
    N個の残差クラスタについて、各残差クラスタに属する残差部分ベクトルの全てを、M個の残差コードブック各々を用いて量子化した場合の量子化誤差の合計値を算出する第6の機能と、
    前記量子化誤差の合計値が最小となる残差コードブックに、当該残差クラスタを割り当てる第7の機能と、
    M個の残差コードブックについて、各残差コードブックに割り当てられた残差クラスタに含まれる全ての残差部分ベクトルを用いて、更にL個のクラスタにクラスタリングし、そのL個の新たな代表ベクトルによって残差コードブックを更新する第8の機能と
    を実行することを特徴とする請求項1又は2に記載の検索装置。
  4. 前記残差コードブック生成手段は、第6から第8の機能を、所定回数、又は、先の量子化誤差の合計値と後の量子化誤差の合計値との差が所定閾値以下となるまで、繰り返すことを特徴とする請求項3に記載の検索装置。
  5. 前記ベクトルは、画像の局所特徴領域から抽出された局所特徴ベクトルであり、
    前記登録ベクトルの付加情報は、画像識別子(IDentifier)、局所特徴領域のスケール、局所特徴領域の角度のいずれか1つを含むことを特徴とする請求項1から4のいずれか1項に記載の検索装置。
  6. 高次元の登録ベクトルの集合から、クエリベクトルに類似したベクトルを検索する装置に搭載されたコンピュータを機能させる検索プログラムであって、
    前記登録ベクトルfを量子化するために、代表識別値n(=1〜N)と代表ベクトルfとを対応付けたコードブックを記憶するコードブック記憶手段と、
    前記登録ベクトルfを、前記コードブックを用いて、代表識別値nに量子化するベクトル量子化手段と、
    前記登録ベクトルfから代表ベクトルfを引いた残差ベクトルfを導出する残差ベクトル導出手段と、
    前記残差ベクトルをT個の残差部分ベクトルに分割する残差ベクトル分割手段と、
    各残差部分ベクトルf を更に量子化するために、残差識別値l(=1〜L)と残差部分代表ベクトルfとを対応付けた残差コードブックをM×T個記憶すると共に、前記代表識別値nに対応付けられた登録ベクトルfの残差部分ベクトルftが、前記M×T個の残差コードブックのどれで量子化すべきかを示す残差テーブルT[n][t]を記憶する残差コードブック記憶手段と、
    前記残差部分ベクトルf を、T[n][t]番目の前記残差コードブックで量子化する残差部分ベクトル量子化手段と、
    前記登録ベクトルfの代表識別値n毎に、複数の残差部分ベクトルf の残差識別値l(1≦t≦T)の集合と、登録ベクトルfに関する付加情報とを、各登録ベクトルfの登録情報として登録した転置インデックスを生成する転置インデックス生成手段と、
    前記転置インデックスを、登録ベクトルの集合として記憶する転置インデックス記憶手段と
    してコンピュータを機能させることを特徴とする検索プログラム。
  7. 前記転置インデックス記憶手段を用いて、クエリベクトルに類似したベクトルを検索するために、
    前記ベクトル量子化手段は、前記クエリベクトルfを、前記コードブックを用いて、代表識別値nに量子化し、
    前記残差ベクトル導出手段は、前記クエリベクトルfから代表ベクトルfを引いたクエリ残差ベクトルfを導出し、
    前記残差ベクトル分割手段は、前記クエリ残差ベクトルをT個のクエリ残差部分ベクトルに分割する
    と共に、
    前記クエリ残差部分ベクトルf と、前記残差テーブルT[n][t]により指定される残差コードブックの各残差代表ベクトルft,l(1≦l≦L)との距離を算出しテーブルD[t][l]に保持する残差ベクトル距離算出手段と、
    前記登録ベクトルの登録情報である残差識別値l(1≦t≦T)を基に、前記テーブルD[t][l]を参照することで、クエリベクトルと登録ベクトルの近似距離を、距離の和d(=Σt=1 TD[t][l])として算出する登録ベクトル距離算出手段と、
    前記距離の和dが、所定閾値以下となる登録ベクトルを、検索結果として出力する検索判定手段と
    してコンピュータを更に機能させることを特徴とする請求項6に記載の検索プログラム。
  8. 学習ベクトルの集合を用いて、前記コードブック記憶手段に記憶すべきコードブックを生成するコードブック生成手段と、
    前記残差コードブック記憶手段に記憶すべき残差コードブックを生成する残差コードブック生成手段と
    を更に有し、
    前記コードブック生成手段は、
    前記学習ベクトルの集合を、N個のクラスタにクラスタリングする第1の機能と、
    前記クラスタ毎に、代表ベクトルを導出する第2の機能と、
    各代表ベクトルに、一意の代表識別値n(=1〜N)を割り当てたコードブックを生成する第3の機能と
    を実行するものであり、
    前記残差コードブック生成手段は、
    代表ベクトルfと、当該代表ベクトルfに属する学習ベクトルfとの間の残差ベクトルf(=f−f)を導出することによってN個の残差クラスタを作成する第1の機能と、
    前記残差ベクトルfをT個の残差部分ベクトルに分割する第2の機能と、
    前記残差部分ベクトル毎に、以下の第3から第8の機能をそれぞれ実行するものであって、
    N個の残差クラスタから任意のM個の残差クラスタを選択する第3の機能と、
    M個の各残差クラスタについて、各残差クラスタに所属する残差部分ベクトルを更にL個のクラスタにクラスタリングする第4の機能と、
    M個の残差クラスタからそれぞれ作成されたL個のクラスタの代表ベクトル集合から、L個の要素を持つ残差コードブックをM個生成する第5の機能と、
    N個の残差クラスタについて、各残差クラスタに属する残差部分ベクトルの全てを、M個の残差コードブック各々を用いて量子化した場合の量子化誤差の合計値を算出する第6の機能と、
    前記量子化誤差の合計値が最小となる残差コードブックに、当該残差クラスタを割り当てる第7の機能と、
    M個の残差コードブックについて、各残差コードブックに割り当てられた残差クラスタに含まれる全ての残差部分ベクトルを用いて、更にL個のクラスタにクラスタリングし、そのL個の新たな代表ベクトルによって残差コードブックを更新する第8の機能と
    してコンピュータを更に機能させることを特徴とする請求項6又は7に記載の検索プログラム。
  9. 前記残差コードブック生成手段は、第4から第6の機能を、所定回数、又は、先の量子化誤差の合計値と後の量子化誤差の合計値との差が所定閾値以下となるまで、繰り返すようにコンピュータを更に機能させることを特徴とする請求項8に記載の検索プログラム。
  10. 前記ベクトルは、画像の局所特徴領域から抽出された局所特徴ベクトルであり、
    前記登録ベクトルの付加情報は、画像識別子(IDentifier)、局所特徴領域のスケール、局所特徴領域の角度のいずれか1つを含むようにコンピュータを機能させることを特徴とする請求項6から9のいずれか1項に記載の検索プログラム。
JP2010131612A 2010-06-09 2010-06-09 高次元の特徴ベクトルの集合から類似した特徴ベクトルを検索する検索装置及びプログラム Active JP5436346B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010131612A JP5436346B2 (ja) 2010-06-09 2010-06-09 高次元の特徴ベクトルの集合から類似した特徴ベクトルを検索する検索装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010131612A JP5436346B2 (ja) 2010-06-09 2010-06-09 高次元の特徴ベクトルの集合から類似した特徴ベクトルを検索する検索装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2011257970A true JP2011257970A (ja) 2011-12-22
JP5436346B2 JP5436346B2 (ja) 2014-03-05

Family

ID=45474086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010131612A Active JP5436346B2 (ja) 2010-06-09 2010-06-09 高次元の特徴ベクトルの集合から類似した特徴ベクトルを検索する検索装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5436346B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013140494A (ja) * 2012-01-05 2013-07-18 Kddi Corp 高次元の特徴ベクトルを検索する検索装置及びプログラム
CN103294813A (zh) * 2013-06-07 2013-09-11 北京捷成世纪科技股份有限公司 一种敏感图片搜索方法和装置
JP2013246739A (ja) * 2012-05-29 2013-12-09 Kddi Corp 高次元の特徴ベクトル集合で表現されるコンテンツを高精度で検索する検索装置及びプログラム
WO2014109127A1 (ja) 2013-01-11 2014-07-17 日本電気株式会社 インデックス生成装置及び方法並びに検索装置及び検索方法
JP2015022383A (ja) * 2013-07-16 2015-02-02 Kddi株式会社 画像に基づくバイナリ局所特徴ベクトルを用いた検索装置、システム、プログラム及び方法
JP2015106346A (ja) * 2013-12-02 2015-06-08 株式会社Nttドコモ レコメンド情報生成装置およびレコメンド情報生成方法
US10437803B2 (en) 2014-07-10 2019-10-08 Nec Corporation Index generation apparatus and index generation method
US11960455B2 (en) 2021-08-16 2024-04-16 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for building database for retrieval, device and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003281190A (ja) * 2002-03-22 2003-10-03 Fumiyoshi Adachi 汎用データ検索方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003281190A (ja) * 2002-03-22 2003-10-03 Fumiyoshi Adachi 汎用データ検索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6013058931; 小野 文孝: '5.ベクトル量子化' 国際標準画像符号化の基礎技術 , 19980320, 98-109ページ, 株式会社コロナ社 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013140494A (ja) * 2012-01-05 2013-07-18 Kddi Corp 高次元の特徴ベクトルを検索する検索装置及びプログラム
JP2013246739A (ja) * 2012-05-29 2013-12-09 Kddi Corp 高次元の特徴ベクトル集合で表現されるコンテンツを高精度で検索する検索装置及びプログラム
WO2014109127A1 (ja) 2013-01-11 2014-07-17 日本電気株式会社 インデックス生成装置及び方法並びに検索装置及び検索方法
US10713229B2 (en) 2013-01-11 2020-07-14 Nec Corporation Index generating device and method, and search device and search method
CN103294813A (zh) * 2013-06-07 2013-09-11 北京捷成世纪科技股份有限公司 一种敏感图片搜索方法和装置
JP2015022383A (ja) * 2013-07-16 2015-02-02 Kddi株式会社 画像に基づくバイナリ局所特徴ベクトルを用いた検索装置、システム、プログラム及び方法
JP2015106346A (ja) * 2013-12-02 2015-06-08 株式会社Nttドコモ レコメンド情報生成装置およびレコメンド情報生成方法
US10437803B2 (en) 2014-07-10 2019-10-08 Nec Corporation Index generation apparatus and index generation method
US11960455B2 (en) 2021-08-16 2024-04-16 Baidu Online Network Technology (Beijing) Co., Ltd. Method and apparatus for building database for retrieval, device and storage medium

Also Published As

Publication number Publication date
JP5436346B2 (ja) 2014-03-05

Similar Documents

Publication Publication Date Title
JP5436346B2 (ja) 高次元の特徴ベクトルの集合から類似した特徴ベクトルを検索する検索装置及びプログラム
JP7055187B2 (ja) ディープバイナリハッシュおよび量子化を介した効率的なクロスモーダル検索
He et al. Scalable similarity search with optimized kernel hashing
CN109271486B (zh) 一种相似性保留跨模态哈希检索方法
WO2013129580A1 (ja) 近似最近傍探索装置、近似最近傍探索方法およびそのプログラム
Ai et al. Optimized residual vector quantization for efficient approximate nearest neighbor search
Ercoli et al. Compact hash codes for efficient visual descriptors retrieval in large scale databases
CN103902704A (zh) 面向大规模图像视觉特征的多维倒排索引与快速检索算法
Iwasaki Pruned bi-directed k-nearest neighbor graph for proximity search
Wei et al. Projected residual vector quantization for ANN search
JP7006966B2 (ja) ベクトル量子化の混合に基づく符号化方法及びこれを用いた最近傍探索(nns)方法
Chiu et al. Learning to index for nearest neighbor search
US9298757B1 (en) Determining similarity of linguistic objects
CN111801665A (zh) 用于大数据应用的分层局部敏感哈希(lsh)分区索引
Ozan et al. K-subspaces quantization for approximate nearest neighbor search
Rafailidis et al. Cluster-based joint matrix factorization hashing for cross-modal retrieval
CN108027816B (zh) 数据管理系统、数据管理方法及记录介质
JP5637939B2 (ja) 少ないコードブックの情報量によって高次元の特徴ベクトルを検索する検索装置及びプログラム
Kan et al. Zero-shot learning to index on semantic trees for scalable image retrieval
CN112182262A (zh) 一种基于特征分类的图像查询方法
CN111597371A (zh) 外观专利的多模态图像检索方法及系统
Jain et al. Approximate search with quantized sparse representations
Li et al. Embedding Compression in Recommender Systems: A Survey
Feng et al. A novel ECOC algorithm with centroid distance based soft coding scheme
CN109446408B (zh) 检索相似数据的方法、装置、设备及计算机可读存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131210

R150 Certificate of patent or registration of utility model

Ref document number: 5436346

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150