JP6621206B2 - Program, apparatus, and method for quantization using hierarchical codebook based on probability model - Google Patents
Program, apparatus, and method for quantization using hierarchical codebook based on probability model Download PDFInfo
- Publication number
- JP6621206B2 JP6621206B2 JP2016194343A JP2016194343A JP6621206B2 JP 6621206 B2 JP6621206 B2 JP 6621206B2 JP 2016194343 A JP2016194343 A JP 2016194343A JP 2016194343 A JP2016194343 A JP 2016194343A JP 6621206 B2 JP6621206 B2 JP 6621206B2
- Authority
- JP
- Japan
- Prior art keywords
- codebook
- representative
- primary
- probability model
- vectors
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Analysis (AREA)
Description
本発明は、データを量子化する際に用いられるコードブックの技術に関する。コードブックは、リファレンスコンテンツ(検索対象のコンテンツ)の集合から、クエリコンテンツ(検索キーとなるコンテンツ)に類似したリファレンスコンテンツを検索する技術に適用される。 The present invention relates to a codebook technique used when quantizing data. The code book is applied to a technique for searching for reference content similar to query content (content serving as a search key) from a set of reference content (content to be searched).
近年、局所特徴点に基づいた画像認識や検索技術が注目されている(例えば特許文献1参照)。物体認識に用いる局所特徴抽出アルゴリズムとしては、回転やスケールの変化にロバストな、例えばSIFT(Scale-Invariant Feature Transform)やSURF(Speeded Up Robust Features)がある。例えば、SIFTの場合、1枚の画像からは128次元の局所特徴の集合が抽出される。SIFTとは、スケールスペースを用いて特徴的な局所領域を解析し、そのスケール変化及び回転に不変となる局所特徴を記述する技術である。一方で、SURFの場合、SIFTよりも高速処理が可能であって、1枚の画像から64次元の局所特徴の集合が抽出される。SIFTは、処理コストが高く且つリアルタイムマッチングが困難であるのに対し、SURFは、積分画像を利用することによって処理を高速化している。 In recent years, image recognition and search techniques based on local feature points have attracted attention (for example, see Patent Document 1). Local feature extraction algorithms used for object recognition include, for example, SIFT (Scale-Invariant Feature Transform) and SURF (Speeded Up Robust Features) which are robust to changes in rotation and scale. For example, in the case of SIFT, a set of 128-dimensional local features is extracted from one image. SIFT is a technique for describing a local feature that is invariant to scale change and rotation by analyzing a characteristic local region using a scale space. On the other hand, in the case of SURF, higher-speed processing is possible than SIFT, and a set of 64-dimensional local features is extracted from one image. While SIFT has a high processing cost and is difficult to perform real-time matching, SURF uses an integral image to speed up the processing.
また、スマートフォンやタブレットのようなモバイル端末が普及する中で、コンテンツ検索処理に対して、更なる省メモリ化及び高速マッチング化が要求されてきている。特に、拡張現実感(AR(Augmented Reality))の用途における画像認識の技術分野によれば、リアルタイムに処理するべく、SIFTやSURFよりも更に高速にコンテンツを検索することが要求される。そのために、局所特徴抽出アルゴリズムとして、ORB(例えば非特許文献2参照)やFREAK(例えば非特許文献3参照)が注目されている。これは、SIFTやSURFよりも局所特徴を高速に抽出できると共に、局所特徴をコンパクトにすることができる。 In addition, as mobile terminals such as smartphones and tablets have become widespread, further memory saving and faster matching have been required for content search processing. In particular, according to the technical field of image recognition in the use of augmented reality (AR), it is required to search for content at a higher speed than SIFT or SURF in order to perform real-time processing. Therefore, ORB (for example, see Non-Patent Document 2) and FREEK (for example, Non-Patent Document 3) are attracting attention as local feature extraction algorithms. This makes it possible to extract local features faster than SIFT and SURF, and to make the local features compact.
局所特徴点に基づいた画像認識では、特徴点同士のマッチングの処理コストが高いため、BoVW(Bag-of-Visual Words)と称されるフレームワークが広く利用されている(例えば非特許文献1又は4参照)。BoVWでは、予め大量の訓練ベクトルの集合から、VW(Visual Words)と称される代表的なベクトルの集合(以下では「コードブック」と称する)を、k-means等のクラスタリングアルゴリズムを用いて生成する。そして、各局所特徴は、最も類似する代表ベクトルに量子化される。同じ代表ベクトルに量子化された局所特徴はマッチしたと判断され、異なる代表ベクトルに量子化された局所特徴はマッチしないと判断される。これによって、データベース中の局所特徴の数に寄らずに、一定時間でのマッチングが可能となる。
In image recognition based on local feature points, since the processing cost of matching between feature points is high, a framework called BoVW (Bag-of-Visual Words) is widely used (for example, Non-Patent
また、クエリコンテンツとリファレンスコンテンツとの間の幾何的な整合性を、局所特徴点間のマッチングの結果を用いて検証することによって、高精度な検索結果を得る技術もある(例えば非特許文献5参照)。一般に、BoVWにおける代表ベクトルの数を多くすることによって、認識精度が向上することが知られている。しかしながら、代表ベクトルの数が大きくなるに従って、量子化に必要となる時間が増加し、更に代表ベクトルを保存するためのメモリ使用量が増加するという問題がある。 There is also a technique for obtaining a highly accurate search result by verifying the geometric consistency between the query content and the reference content by using the result of matching between local feature points (for example, Non-Patent Document 5). reference). In general, it is known that recognition accuracy is improved by increasing the number of representative vectors in BoVW. However, as the number of representative vectors increases, there is a problem that the time required for quantization increases and the amount of memory used for storing the representative vectors further increases.
これに対し、木構造を用いて量子化することによって、量子化の処理時間を短くする技術もある(例えば非特許文献4又は5参照)。
また、残差量子化を用いることによって、メモリ使用量を最小限に抑えつつ、大量の代表ベクトルによって量子化する技術もある(例えば非特許文献6参照)。
更に、残差ベクトルの集合をクラスタリングし、残差ベクトルの分布に応じた残差量子化によって、量子化誤差を低減する技術もある(例えば特許文献3参照)。
On the other hand, there is a technique for shortening the quantization processing time by performing quantization using a tree structure (see, for example, Non-Patent
In addition, there is a technique of performing quantization with a large number of representative vectors while using the residual quantization to minimize the memory usage (see, for example, Non-Patent Document 6).
Furthermore, there is a technique for reducing a quantization error by clustering a set of residual vectors and performing residual quantization according to the distribution of the residual vectors (see, for example, Patent Document 3).
尚、残差ベクトルの集合に対して、主成分分析によってモデル化する技術もある(例えば非特許文献7参照)。この技術によれば、主成分分析の後、直積量子化の際に、量子化誤差を低減するための回転行列を算出するものである。 There is also a technique for modeling a set of residual vectors by principal component analysis (see, for example, Non-Patent Document 7). According to this technique, after the principal component analysis, a rotation matrix for reducing a quantization error is calculated in the product quantization.
非特許文献5に記載の技術によれば、全てのコードブックを保存する必要があり、メモリ使用量が大きくなってしまうという問題がある。
また、非特許文献6に記載の技術によれば、異なる分布を持つ残差ベクトルを、同一のコードブックで量子化しているために、量子化誤差が大きくなってしまうという問題がある。
更に、特許文献3の記載の技術によれば、残差ベクトルの集合のクラスタリングの際に、訓練ベクトルを全て実際に量子化する必要があり、代表ベクトルの数を大きくすることができないという問題がある。
According to the technique described in Non-Patent
Further, according to the technique described in
Furthermore, according to the technique described in
そこで、本発明は、データを量子化するために、メモリ使用量を最小限に抑えつつ、量子化誤差を小さくしたコードブックを作成することができるプログラム、装置及び方法を提供することを目的とする。 Therefore, an object of the present invention is to provide a program, an apparatus, and a method capable of creating a code book with a reduced quantization error while minimizing memory usage in order to quantize data. To do.
本発明によれば、対象データを、階層的な複数のコードブックを用いて量子化するようにコンピュータを機能させるプログラムであって、
コードブックを生成するために、
訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出し、K1個の代表ベクトルS={S1, …, SK1}からなる1次コードブックを作成する1次コードブック作成手段と、
訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する確率モデル生成手段と、
1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当て、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する2次コードブック作成手段と
としてコンピュータを機能させることを特徴とする。
According to the present invention, a program for causing a computer to function to quantize target data using a plurality of hierarchical codebooks,
To generate a codebook,
A set X of training vectors is classified into a group of K1 primary clusters, a representative vector Sk is derived for each primary cluster, and 1 consisting of K1 representative vectors S = {S 1 ,..., S K1 } A primary code book creating means for creating a next code book;
A set X of training vectors x is assigned to each representative vector S k using a primary codebook, and a probability model is derived from a set of residual vectors (= xS k ) between the training vectors x for each representative vector S k ∈ S. A probability model generating means for generating
The K1 pieces of probabilistic models of primary codebook, classified into groups of secondary codebook number of M secondary cluster, assign a representative vector S k primary codebook secondary cluster, each secondary cluster A computer as secondary codebook creation means for creating secondary codebooks T m from a set of residual vectors based on the assigned representative vectors S k and creating a total of M secondary codebooks T 1 to M Is made to function.
本発明のプログラムにおける他の実施形態によれば、
2次コードブック作成手段について、
1次コードブックのK1個の確率モデルを、M個の2次クラスタに初期的に割り当てる初期手段と、
2次クラスタ毎に、当該2次クラスタに含まれる複数の確率モデルから代表確率モデルを生成する生成手段と、
確率モデルを、最も距離が短くなる代表確率モデルに改めて割り当てて、2次クラスタを更新する割当手段と
を有し、生成手段及び割当手段を所定条件まで繰り返す
ようにコンピュータを機能させることも好ましい。
According to another embodiment of the program of the present invention,
About secondary codebook creation means
An initial means for initially assigning K1 probability models of the primary codebook to M secondary clusters;
Generating means for generating a representative probability model from a plurality of probability models included in the secondary cluster for each secondary cluster;
It is also preferable that the probability model is newly assigned to the representative probability model with the shortest distance and has an assigning unit that updates the secondary cluster, and the computer functions so that the generating unit and the assigning unit are repeated up to a predetermined condition.
本発明のプログラムにおける他の実施形態によれば、
2次コードブック作成手段は、kをM個としたk-meansアルゴリズムよって実行される
ようにコンピュータを機能させることも好ましい。
According to another embodiment of the program of the present invention,
The secondary code book creation means preferably causes the computer to function so as to be executed by a k-means algorithm where M is k.
本発明のプログラムにおける他の実施形態によれば、
2次コードブック作成手段について、
1次コードブックの中で、ランダムに選択した代表ベクトルSkの確率モデルを代表確率モデルとして割り当てる選択手段と、
選択されていない代表ベクトルSkの確率モデルの中で、最も距離が短くなる代表確率モデルとの距離に比例する確率で、確率モデルを次の代表確率モデルとして新たに選択する次選択手段と
を有し、次選択手段を代表確率モデルがM個となるまで繰り返す
ようにコンピュータを機能させることも好ましい。
According to another embodiment of the program of the present invention,
About secondary codebook creation means
Selecting means for assigning a probability model of a representative vector S k selected at random in the primary codebook as a representative probability model;
Among the probabilistic model of the representative vector S k is not selected, with a probability proportional to the distance between the highest distance is shortened representative probability model, and the next selection means newly selects a probability model as the following representative probability model It is also preferable to have the computer function so that the next selection means is repeated until there are M representative probability models.
本発明のプログラムにおける他の実施形態によれば、
2次コードブック作成手段は、kをM個としたk-means++アルゴリズムによって実行される
ようにコンピュータを機能させることも好ましい。
According to another embodiment of the program of the present invention,
The secondary code book creation means preferably causes the computer to function so as to be executed by the k-means ++ algorithm where k is M.
本発明のプログラムにおける他の実施形態によれば、
確率モデルと代表確率モデルとの間の距離は、KL(Kullback Leibler)ダイバージェンスによって算出される
ようにコンピュータを機能させることも好ましい。
According to another embodiment of the program of the present invention,
It is also preferable to cause the computer to function so that the distance between the probability model and the representative probability model is calculated by KL (Kullback Leibler) divergence.
本発明のプログラムにおける他の実施形態によれば、
確率モデルは、多変量ガウス分布、多変量ベルヌーイ分布、多項分布、ディリクレ分布、又は、多変量ラプラス分布のいずれかである
ようにコンピュータを機能させることも好ましい。
According to another embodiment of the program of the present invention,
It is also preferable to cause the computer to function so that the probability model is one of a multivariate Gaussian distribution, a multivariate Bernoulli distribution, a multinomial distribution, a Dirichlet distribution, or a multivariate Laplace distribution.
本発明のプログラムにおける他の実施形態によれば、
訓練ベクトルの集合は、入力された訓練コンテンツにおける局所特徴の集合であり、
対象データxについて、1次コードブックのいずれかの代表ベクトルSkに量子化し、
対象データxと量子化された代表ベクトルSkとの残差ベクトルを、代表ベクトルSkが割り当てられた2次コードブックのいずれかの代表ベクトルTに量子化する
量子化手段としてコンピュータを機能させることも好ましい。
According to another embodiment of the program of the present invention,
A set of training vectors is a set of local features in the input training content,
For target data x, quantized to one representative vector S k primary codebook,
The residual vector of the representative vector S k which are target data x and the quantized, causes a computer to function as a quantization means for quantizing the one representative vector T of the secondary codebook representative vector S k is assigned It is also preferable.
本発明のプログラムにおける他の実施形態によれば、
入力されたリファレンスコンテンツ及びクエリコンテンツそれぞれについて、局所特徴の集合を抽出する局所特徴抽出手段と、
リファレンスコンテンツの各局所特徴について、コードブックを用いて量子化された量子化識別子iに対応する転置インデックスのリストに、局所特徴の情報を記憶する転置インデックス記憶手段と、
クエリコンテンツの各局所特徴について、コードブックを用いて量子化された量子化識別子iに対応する転置インデックスのリストを探索し、リストに記憶されている局所特徴に対応したリファレンスコンテンツに対しスコアを累積し、累積されたスコアを類似度としてリファレンスコンテンツを検索する検索手段と
して更にコンピュータを機能させ、クエリコンテンツに類似したリファレンスコンテンツを検索することも好ましい。
According to another embodiment of the program of the present invention,
Local feature extraction means for extracting a set of local features for each of the input reference content and query content;
For each local feature of the reference content, transposed index storage means for storing local feature information in a list of transposed indexes corresponding to the quantized identifier i quantized using the codebook;
For each local feature of the query content, search the transposed index list corresponding to the quantized identifier i quantized using the codebook, and accumulate the score for the reference content corresponding to the local feature stored in the list It is also preferable to search the reference content similar to the query content by further causing the computer to function as search means for searching the reference content using the accumulated score as a similarity.
本発明によれば、対象データを、階層的な複数のコードブックを用いて量子化する量子化装置であって、
コードブックを生成するために、
訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出し、K1個の代表ベクトルS={S1, …, SK1}からなる1次コードブックを作成する1次コードブック作成手段と、
訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する確率モデル生成手段と、
1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当て、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する2次コードブック作成手段と
を有することを特徴とする。
According to the present invention, a quantization device that quantizes target data using a plurality of hierarchical codebooks,
To generate a codebook,
A set X of training vectors is classified into a group of K1 primary clusters, a representative vector Sk is derived for each primary cluster, and 1 consisting of K1 representative vectors S = {S 1 ,..., S K1 } A primary code book creating means for creating a next code book;
A set X of training vectors x is assigned to each representative vector S k using a primary codebook, and a probability model is derived from a set of residual vectors (= xS k ) between the training vectors x for each representative vector S k ∈ S. A probability model generating means for generating
The K1 pieces of probabilistic models of primary codebook, classified into groups of secondary codebook number of M secondary cluster, assign a representative vector S k primary codebook secondary cluster, each secondary cluster And a secondary codebook creating means for creating a secondary codebook T m from a set of residual vectors based on the assigned representative vector S k and creating a total of M secondary codebooks T 1 to M. It is characterized by that.
本発明によれば、対象データを、階層的な複数のコードブックを用いて量子化する装置のコードブック作成方法であって、
装置は、
コードブックを生成するために、
訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出し、K1個の代表ベクトルS={S1, …, SK1}からなる1次コードブックを作成する第1のステップと、
訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する第2のステップと、
1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当て、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する第3のステップと
を実行することを特徴とする。
According to the present invention, there is provided a codebook creation method for an apparatus that quantizes target data using a plurality of hierarchical codebooks,
The device
To generate a codebook,
A set X of training vectors is classified into a group of K1 primary clusters, a representative vector Sk is derived for each primary cluster, and 1 consisting of K1 representative vectors S = {S 1 ,..., S K1 } A first step of creating a next codebook;
A set X of training vectors x is assigned to each representative vector S k using a primary codebook, and a probability model is derived from a set of residual vectors (= xS k ) between the training vectors x for each representative vector S k ∈ S. A second step of generating
The K1 pieces of probabilistic models of primary codebook, classified into groups of secondary codebook number of M secondary cluster, assign a representative vector S k primary codebook secondary cluster, each secondary cluster Generating a secondary codebook T m from a set of residual vectors based on the assigned representative vector S k , and executing a third step of generating a total of M secondary codebooks T 1 to M It is characterized by.
本発明のプログラム、装置及び方法によれば、データを量子化するために、メモリ使用量を最小限に抑えつつ、量子化誤差を小さくしたコードブックを作成することができる。即ち、メモリ量と検索精度とのトレードオフを考慮した小さいコードブックを用いて、リファレンスとなる高次元の局所特徴の集合から、クエリとなる局所特徴に類似した局所特徴を検索することができる。 According to the program, apparatus, and method of the present invention, in order to quantize data, it is possible to create a code book with a reduced quantization error while minimizing the memory usage. That is, a local feature similar to a local feature serving as a query can be retrieved from a set of high-dimensional local features serving as a reference, using a small codebook that takes into account the trade-off between the memory amount and the retrieval accuracy.
以下、本発明の実施の形態について、図面を用いて詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
検索装置は、リファレンスコンテンツの集合から、クエリコンテンツに類似したリファレンスコンテンツを検索する。その際に実行される量子化処理では、階層的な複数のコードブックが用いられる。 The search device searches for reference content similar to the query content from the set of reference content. In the quantization process executed at that time, a plurality of hierarchical code books are used.
検索装置には、訓練コンテンツ、リファレンスコンテンツ及びクエリコンテンツが入力される。ここで、コンテンツは、例えば画像であってもよい。本発明の検索装置は、多数の訓練画像から1次コードブック及び2次コードブックを作成し、クエリ画像に類似するリファレンス画像を検索する。 Training content, reference content, and query content are input to the search device. Here, the content may be, for example, an image. The search device of the present invention creates a primary codebook and a secondary codebook from a large number of training images, and searches for a reference image similar to a query image.
図1は、本発明のコードブックを用いた量子化処理を表す概念図である。 FIG. 1 is a conceptual diagram showing quantization processing using the code book of the present invention.
図1によれば、クエリコンテンツ及びリファレンスコンテンツから導出された局所特徴と、訓練コンテンツから導出された階層型のコードブックとのマッチングを表している。
コードブックは、訓練コンテンツから予め作成されたものであり、1次コードブックと複数の2次コードブックとによって階層化されている。
FIG. 1 shows matching between local features derived from query content and reference content and a hierarchical codebook derived from training content.
The code book is created in advance from training content, and is layered by a primary code book and a plurality of secondary code books.
訓練ベクトルの集合X={x1,x2,・・・,xN}から、1次コードブックSと、M個の2次コードブックT1,T2,・・・,TMとが作成される。また、1次コードブックSの量子化結果となる代表ベクトルに、次に、どの2次コードブックで量子化すべきかを対応付けた割当情報m[k]も作成する。
訓練ベクトルxは、D次元ベクトルであり、n番目の訓練ベクトルをxnと表す。
1次コードブックSは、K1個の代表ベクトルS={S1,S2,・・・,SK1}を記憶し、各代表ベクトルもD次元のベクトルで表現される。
M個の2次コードブックの集合T1,T2,・・・,TMはそれぞれ、K2個の代表ベクトルTm1,Tm2,・・・,TmK2を記憶し、各代表ベクトルもD次元のベクトルで表現される。
割り当て情報m[k](k=1,2,・・・,K1)は、K1個の要素を持つ配列である。これは、1次コードブックでk番目の代表ベクトルに割り当てられたベクトルは、更にm[k]番目の2次コードブックで量子化されることを規定している。
A set of training vectors X = {x 1, x 2 , ···, x N} from primary codebook S and, M pieces of secondary codebook T 1, T 2, · · ·, and the T M Created. Also, allocation information m [k] is created in which the secondary codebook to be quantized next is associated with the representative vector that is the quantization result of the primary codebook S.
The training vector x is a D-dimensional vector, and the nth training vector is represented as xn .
The primary codebook S stores K1 representative vectors S = {S 1 , S 2 ,..., S K1 }, and each representative vector is also expressed by a D-dimensional vector.
A set of M secondary codebooks T 1 , T 2 ,..., T M stores K2 representative vectors T m1 , T m2 ,. Expressed as a vector of dimensions.
The allocation information m [k] (k = 1, 2,..., K1) is an array having K1 elements. This prescribes that the vector assigned to the kth representative vector in the primary codebook is further quantized in the m [k] th secondary codebook.
クエリコンテンツの局所特徴と、リファレンスコンテンツの局所特徴とはそれぞれ、コードブックの中で、その距離が最も近い代表ベクトルに紐付けられる。そして、2次コードブックの同一の代表ベクトルに紐付けられた局所特徴同士は、マッチングしたと認識される。 The local feature of the query content and the local feature of the reference content are each associated with a representative vector having the closest distance in the code book. The local features associated with the same representative vector in the secondary codebook are recognized as matched.
図2は、本発明におけるコンテンツの検索装置の機能構成図である。 FIG. 2 is a functional configuration diagram of the content search apparatus according to the present invention.
図2によれば、検索装置1は、1次コードブック記憶部101と、2次コードブック記憶部102と、局所特徴抽出部11と、1次コードブック作成部121と、確率モデル生成部122と、2次コードブック作成部123と、量子化部13と、転置インデックス記憶部14と、検索部15とを有する。これら機能構成部は、装置に搭載されたコンピュータを機能させるプログラムを実行することによって実現される。また、これら機能構成部の処理の流れは、装置のコードブック作成方法及び量子化方法としても理解できる。
According to FIG. 2, the
前述した機能構成部は、<訓練フェーズ>、<インデックス構築フェーズ>、<検索フェーズ>の各フェーズに応じて機能する。 The functional configuration unit described above functions according to each phase of <training phase>, <index construction phase>, and <search phase>.
<訓練フェーズ>
訓練フェーズによれば、検索装置1は、多数の訓練コンテンツを入力し、訓練コンテンツ毎に局所特徴の集合を抽出する。そして、局所特徴の集合を用いて1次コードブック及び2次コードブックを作成する。
訓練フェーズでは、局所特徴抽出部11と、1次コードブック作成部121と、確率モデル生成部122と、2次コードブック作成部123とが機能する。
<Training phase>
According to the training phase, the
In the training phase, the local
<インデックス構築フェーズ>
インデックス構築フェーズによれば、検索装置1は、多数のリファレンスコンテンツ(検索対象のコンテンツ)を入力し、リファレンスコンテンツ毎に局所特徴の集合を抽出する。そして、局所特徴毎に、1次コードブック及び2次コードブックを用いて量子化する。その量子化対象データは、検索用の転置インデックスとして記憶される。
インデックス構築フェーズでは、局所特徴抽出部11と、量子化部13と、転置インデックス記憶部14とが機能する。
<Index construction phase>
According to the index construction phase, the
In the index construction phase, the local
<検索フェーズ>
検索フェーズによれば、検索装置1は、クエリコンテンツ(検索キーのコンテンツ)を入力し、クエリコンテンツから局所特徴の集合を抽出する。次に、局所特徴毎に、1次コードブック及び2次コードブックを用いて量子化する。その量子化対象データから、転置インデックスを参照して、最も類似するリファレンスコンテンツを検索する。
検索フェーズでは、局所特徴抽出部11と、量子化部13と、検索部15とが機能する。
<Search phase>
According to the search phase, the
In the search phase, the local
以下では、検索装置1の機能構成部毎に、詳述する。
Below, it explains in full detail for every function structure part of the
[局所特徴抽出部11]<訓練・インデックス構築・検索フェーズ>
局所特徴抽出部11は、入力された訓練コンテンツ、リファレンスコンテンツ及びクエリコンテンツそれぞれについて、任意の局所特徴抽出アルゴリズムによって局所特徴の集合を抽出する。局所特徴抽出アルゴリズムとしては、回転やスケールの変化にロバストな、従来技術における例えばSIFTやSURF、ORB、FREAKが用いられる。
訓練フェーズの場合、抽出された局所特徴の集合は、1次コードブック作成部121へ出力される。
インデックス構築フェーズ及び検索フェーズの場合、抽出された局所特徴の集合は、量子化部13へ出力される。
[Local Feature Extraction Unit 11] <Training / Index Building / Search Phase>
The local
In the training phase, the extracted set of local features is output to the primary
In the index construction phase and the search phase, the set of extracted local features is output to the
図3は、本発明の検索装置における訓練フェーズの説明図である。 FIG. 3 is an explanatory diagram of the training phase in the search device of the present invention.
[1次コードブック作成部121]<訓練フェーズ>
1次コードブック作成部121は、訓練ベクトルの集合X={x1,x2,・・・,xN}をK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出する。
[Primary codebook creation unit 121] <Training phase>
The primary
具体的には、k-meansアルゴリズムを用いて、以下のステップを実行する。
(S1)訓練ベクトルを、K1個の1次クラスタに初期的に割り当てる。
(S2)1次クラスタ毎に、当該1次クラスタに含まれる複数の訓練ベクトルから代表ベクトルSkを生成する。
(S3)訓練ベクトルを、最も距離が短くなる代表ベクトルSkに改めて割り当てて、1次クラスタを更新する。
そして、S2及びS3を、所定条件まで繰り返す。
Specifically, the following steps are executed using the k-means algorithm.
(S1) Initially assign training vectors to K1 primary clusters.
(S2) For each primary cluster, a representative vector S k is generated from a plurality of training vectors included in the primary cluster.
(S3) the training vectors and again assigned to the most distance becomes shorter representative vector S k, updating the primary cluster.
Then, S2 and S3 are repeated up to a predetermined condition.
局所特徴が、バイナリ特徴ベクトルである場合、代表ベクトルを2値化する。具体的には、i番目のクラスタの代表ベクトルが、(vi1,vi2,・・・,viK2)であるとすると、各次元の値が0.5以上であれば"1"、そうでなければ"0"とする。
Sij=1 if vij≧0.5
=0 otherwise
If the local feature is a binary feature vector, the representative vector is binarized. Specifically, if the representative vector of the i-th cluster is (v i1 , v i2 , ..., v iK2 ), it is “1” if the value of each dimension is 0.5 or more. "0" for example.
S ij = 1 if v ij ≧ 0.5
= 0 otherwise
そして、1次コードブック作成部121は、K1個の代表ベクトルS={S1,S2,・・・,SK1}からなる1次コードブックを作成する。作成された1次コードブックは、1次コードブック記憶部101で記憶される。
The primary code
[確率モデル生成部122]<訓練フェーズ>
確率モデル生成部122は、訓練ベクトルxの集合X={x1,x2,・・・,xN}を1次コードブックを用いて各代表ベクトルSkに割り当てる。そして、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x−Sk)の集合から確率モデルを生成する。
[Probability Model Generation Unit 122] <Training Phase>
図4は、代表ベクトルと残差ベクトルとを表す説明図である。
図4によれば、クラスタ毎に、代表ベクトルと訓練ベクトルとの間の残差ベクトルが表されている。
FIG. 4 is an explanatory diagram showing a representative vector and a residual vector.
According to FIG. 4, the residual vector between the representative vector and the training vector is represented for each cluster.
図5は、確率モデルの概念図である。 FIG. 5 is a conceptual diagram of the probability model.
確率モデルは、残差ベクトルをパラメトリックにモデル化したものである。図5によれば、確率モデルは、多変量に対する分布頻度で表されている。
局所特徴が実数特徴ベクトルである場合、確率モデルとして「多変量ガウス分布」が採用され、局所特徴がバイナリ特徴ベクトルである場合、「多変量ベルヌーイ分布」が採用される。このように、本発明によれば、実数特徴ベクトル及びバイナリ特徴ベクトルの両方に適用することができる。
勿論、確率モデルは、これらに限られず、局所特徴に応じて、多項分布、ディリクレ分布、又は、多変量ラプラス分布を採用してもよい。
The probabilistic model is obtained by modeling a residual vector parametrically. According to FIG. 5, the probability model is represented by the distribution frequency for the multivariate.
When the local feature is a real feature vector, “multivariate Gaussian distribution” is adopted as the probability model, and when the local feature is a binary feature vector, “multivariate Bernoulli distribution” is adopted. Thus, according to the present invention, the present invention can be applied to both real number feature vectors and binary feature vectors.
Of course, the probability model is not limited to these, and a multinomial distribution, a Dirichlet distribution, or a multivariate Laplace distribution may be adopted according to local features.
「多変量ガウス分布」(局所特徴が実数特徴ベクトルである場合)
k番目の1次コードブックの代表ベクトルに対する残差ベクトルを、平均0、分散共分散行列Σkの多変量ガウス分布によってモデル化する。ここで、分散共分散行列Σkは、以下のように表される。
Σk=UkUk T
Uk:Skに割り当てられた訓練ベクトルxiの残差ベクトルxi−Skの集合
"Multivariate Gaussian distribution" (when local features are real feature vectors)
The residual vector the representative vector of the k-th primary codebook, average 0, modeled by a multivariate Gaussian distribution of the variance-covariance matrix sigma k. Here, the variance-covariance matrix Σ k is expressed as follows.
Σ k = U k U k T
U k : set of residual vectors x i −S k of training vectors x i assigned to S k
「多変量ベルヌーイ分布」(局所特徴がバイナリ特徴ベクトルである場合)
k番目の1次コードブックの代表ベクトルに対する残差ベクトルを、多変量ベルヌーイ分布によって、以下のようにモデル化する。
pk(x)=Πd=1 Dμkd xd(1−μkd)1-xd
μkd:k番目の1次コードブックに紐づく残差ベクトルのd次元目のビットが、
"1"となる確率
μkdは、1次コードブックに紐づく残差ベクトルのd次元のビットの平均値によって算出される。
尚、バイナリ特徴ベクトルの場合、残差ベクトルは、入力ベクトルと代表ベクトルとのXORによって算出される。
"Multivariate Bernoulli distribution" (when local features are binary feature vectors)
The residual vector for the representative vector of the kth primary codebook is modeled by the multivariate Bernoulli distribution as follows.
p k (x) = Π d = 1 D μ kd xd (1-μ kd ) 1-xd
μ kd : The d-th bit of the residual vector associated with the k-th primary codebook is
The probability μ kd of “1” is calculated by the average value of d-dimensional bits of the residual vector associated with the primary codebook.
In the case of a binary feature vector, the residual vector is calculated by XOR between the input vector and the representative vector.
ベルヌーイ分布とは、確率pで1を、確率q=1-pで0をとる離散確率分布をいう。ベルヌーイ分布に従う確率変数Xについて、平均p、分散pq=p(1-p)となる。「多変量ベルヌーイ分布」は、バイナリ特徴ベクトルxtが生成される確率p(xt|λ)を表現する。 The Bernoulli distribution is a discrete probability distribution with a probability p of 1 and a probability q = 1−p of 0. For a random variable X following a Bernoulli distribution, the mean p and the variance pq = p (1-p). The “multivariate Bernoulli distribution” expresses a probability p (x t | λ) that a binary feature vector x t is generated.
[2次コードブック作成部123]
2次コードブック作成部123は、1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当てる。即ち、ベクトルxの残差ベクトルx−Skの分布が類似している代表ベクトルが、同じクラスタになるように分類する。
[Secondary codebook creation unit 123]
Secondary
そして、2次コードブック作成部123は、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する。作成されたM個の2次コードブックT1〜Mは、2次コードブック記憶部102によって記憶される。
The secondary
尚、2次コードブック数Mを小さくするほど、残差ベクトルの分布が、クラスタ毎に大きく異なるために、残差ベクトルを量子化する際の量子化誤差が増加し、結果的に近似最近傍検索の精度が悪くなる。一方で、2次コードブック数Mを大きくするほど、コードブックの情報量(メモリ量)が非常に大きくなる。 As the number of secondary codebooks M decreases, the distribution of residual vectors varies greatly from one cluster to another, so the quantization error when quantizing the residual vector increases, resulting in an approximate nearest neighbor. Search accuracy is poor. On the other hand, as the number M of secondary codebooks is increased, the information amount (memory amount) of the codebook becomes very large.
2次コードブック作成部123における2次クラスタの分類方法として、例えば<k-meansアルゴリズム><k-means++アルゴリズム>の2つがある。
As a secondary cluster classification method in the secondary
図6は、本発明の検索装置における2次コードブック作成部のフローチャートである。 FIG. 6 is a flowchart of the secondary codebook creation unit in the search device of the present invention.
<k-meansアルゴリズム>
図6(a)によれば、2次コードブック作成部123は、kをM個としたk-meansアルゴリズムよって実行される。
<K-means algorithm>
According to FIG. 6A, the secondary
具体的には、以下のステップを実行する。
(S611:初期ステップ)K1個の確率モデルを、M個の2次クラスタに初期的に割り当てる。具体的には、K1個の確率モデルの割当情報m[k](k=1, …, K1)を初期化する。これは、k番目の1次コードブックの代表ベクトルがm[k]番目のクラスタに属していることを表す。この初期化は、m[k]のkにランダムに、1〜Mのラベルを割り当てるものであってもよい。
Specifically, the following steps are executed.
(S611: Initial step) K1 probability models are initially assigned to M secondary clusters. Specifically, the allocation information m [k] (k = 1,..., K1) of K1 probability models is initialized. This represents that the representative vector of the kth primary codebook belongs to the m [k] th cluster. This initialization may be performed by randomly assigning
(S612:生成ステップ)2次クラスタ毎に、当該2次クラスタに含まれる複数の確率モデルから代表確率モデルを生成する。 (S612: Generation step) For each secondary cluster, a representative probability model is generated from a plurality of probability models included in the secondary cluster.
実数特徴ベクトルに対しては、確率モデルの「多変量ガウス分布」から、代表多変量ガウス分布を生成する。m番目の代表多変量ガウス分布の平均を0、分散共分散行列をΣ'mとすると、Σ'mは、以下のように定義される。
Σ'm=1/βm Σm[k]=mαkΣk
βm=Σm[k]=mαk
For real feature vectors, a representative multivariate Gaussian distribution is generated from the “multivariate Gaussian distribution” of the probability model. When the average of the m-th representative multivariate Gaussian distribution is 0 and the variance-covariance matrix is Σ ′ m , Σ ′ m is defined as follows.
Σ ' m = 1 / β m Σ m [k] = m α k Σ k
β m = Σ m [k] = m α k
バイナリ特徴ベクトルに対しては、確率モデルの「多変量ベルヌーイ分布」から、代表多変量ベルヌーイ分布を生成する。m番目の代表多変量ベルヌーイ分布パラメータをμ'm1,・・・,μ'mDとすると、μ'mdは、以下のように定義される。
μ'md=1/βm Σm[k]=mαkμkd
βm=Σm[k]=mαk
For binary feature vectors, a representative multivariate Bernoulli distribution is generated from the “multivariate Bernoulli distribution” of the probability model. When the m-th representative multivariate Bernoulli distribution parameter is μ ′ m1 ,..., μ ′ mD , μ ′ md is defined as follows.
μ ' md = 1 / β m Σ m [k] = m α k μ kd
β m = Σ m [k] = m α k
αkは、k番目の1次コードブックの代表ベクトルに割り当てられた訓練ベクトルの数である。m番目のクラスタに割り当てられた確率モデルについて、割り当てられた訓練ベクトルの数を重みとして、重み付き平均によって算出することに相当する。
βmは、正規化項である。
α k is the number of training vectors assigned to the representative vector of the kth primary codebook. This is equivalent to calculating the probability model assigned to the m-th cluster by weighted average using the number of assigned training vectors as a weight.
β m is a normalization term.
(S613:割当ステップ)K1個の確率モデルを、最も距離が短くなる代表確率モデルに改めて割当てて、2次クラスタを更新する。 (S613: Allocation step) The K1 probability models are newly allocated to the representative probability model with the shortest distance, and the secondary cluster is updated.
更新されたM個の代表確率モデルについて、確率モデルの割当情報m[k](k=1,2,・・・,K1)を更新する。これは、各確率モデルについて、最も類似した代表確率モデルを算出する。この確率モデル間の距離には、KL(Kullback Leibler)ダイバージェンスを用いることが好ましい。KLダイバージェンスとは、相対エントロピーとも称され、分布と分布と間の差の大きさを導出するものである。 For the updated M representative probability models, the probability model allocation information m [k] (k = 1, 2,..., K1) is updated. This calculates the most similar representative probability model for each probability model. KL (Kullback Leibler) divergence is preferably used for the distance between the probability models. KL divergence is also referred to as relative entropy, and derives the magnitude of the difference between distributions.
実数特徴ベクトルに対しては、k番目の確率モデルfkと、m番目の代表確率モデルgmとの間のKLダイバージェンスDKLは、以下のように算出される。
DKL(fk||gm)=1/2[log(|Σ'm|/|Σk|)+tr(Σ'm -1Σk)−d]
For real feature vectors, the KL divergence D KL between the k-th probability model f k and the m-th representative probability model g m is calculated as follows.
D KL (f k || g m ) = 1/2 [log (| Σ ′ m | / | Σ k |) + tr (Σ ′ m −1 Σ k ) −d]
バイナリ特徴ベクトルに対しては、k番目の確率モデルと、m番目の代表確率モデルとの間のKLダイバージェンスは、以下のように算出される。
Σd=1 D(μkdlog(μkd/μ'md)+(1−μkd)log((1−μkd)/(1−μ'md)))
For binary feature vectors, the KL divergence between the kth probability model and the mth representative probability model is calculated as follows.
Σ d = 1 D (μ kd log (μ kd / μ ' md ) + (1−μ kd ) log ((1−μ kd ) / (1−μ ′ md )))
そして、S612及びS613を、所定条件まで繰り返す。所定条件としては、例えばKLダイバージェンスが所定値に収束するまでであってもよいし、所定回数まで単に繰り返すものであってもよい。 Then, S612 and S613 are repeated up to a predetermined condition. The predetermined condition may be, for example, until KL divergence converges to a predetermined value, or may simply be repeated a predetermined number of times.
<k-means++アルゴリズム>
図6(b)によれば、2次コードブック作成部123は、kをM個としたk-means++アルゴリズムによって実行される。
<K-means ++ algorithm>
According to FIG. 6B, the secondary
具体的には、以下のステップを実行する。
(S621:選択ステップ)1次コードブックの中で、ランダムに選択した代表ベクトルSkの確率モデルを代表確率モデルとして割り当てる。
Specifically, the following steps are executed.
Among: (S621 selection step) primary codebook, assigning a probability model of the representative vector S k randomly selected as a representative probability model.
(S622:次選択ステップ)選択されていない代表ベクトルSkの確率モデルの中で、最も距離が短くなる代表確率モデルとの距離に比例する確率で、確率モデルを次の代表確率モデルとして新たに選択する。
ここで、「比例する確率」とは、全ての代表確率モデルとの距離が遠い確率モデルほど、高い確率で選択されることを意味する。
Among: (S622 next selection step) probability model representative vector S k is not selected, with a probability proportional to the distance between the highest distance is shortened representative probability model, new probability model as the following representative probability model select.
Here, the “proportional probability” means that a probability model that is far from all representative probability models is selected with a higher probability.
そして、S622の次選択ステップを、代表確率モデルがM個となるまで繰り返す。
尚、実数特徴ベクトル及びバイナリ特徴ベクトルに基づく確率モデル間の距離の算出は、前述したk-meansアルゴリズムと同様に、KLダイバージェンスを用いる。
Then, the next selection step of S622 is repeated until there are M representative probability models.
Note that the KL divergence is used to calculate the distance between the probability models based on the real number feature vector and the binary feature vector, similarly to the k-means algorithm described above.
[量子化部13]<インデックス構築・検索フェーズ>
量子化部13は、リファレンスコンテンツの局所特徴と、クエリコンテンツの局所特徴とを、対象データxとして入力する。量子化部13は、対象データxについて、1次コードブックのいずれかの代表ベクトルSkに量子化する。ここで、量子化結果として、1次コードブックの代表ベクトル識別子k'が得られる。次に、対象データxと量子化された代表ベクトルSkとの残差ベクトルを、代表ベクトルSkに割り当てられた2次コードブックのいずれかの代表ベクトルTで量子化する。ここで、量子化結果として、2次コードブックの代表ベクトル識別子l’が得られる。
[Quantization unit 13] <Index construction / search phase>
The
実数特徴ベクトルについては、k'及びl'は、理想的には、量子化誤差||x−(Sk'+Tm[k']l')||2を最小化するものである。
バイナリ特徴ベクトルについては、k'及びl'は、理想的には、量子化誤差popcnt(x XOR Sk’ XOR Tm[k’]l’)を最小化するものである。
しかしながら、このk'及びl'を厳密にすると計算量が大きくなってしまう。
そのために、本発明によれば、k'の解を、1次コードブックの代表ベクトルのうちxのr近傍に限定する。
即ち、実数特徴ベクトルについては、量子化時にはまず、S1,S2,・・・,SK1から、xとの2乗距離が小さくなる上位r件のk'1,k'2,・・・,k'rを算出し、それらの残差x−Sk'1, x−Sk'2,・・・, x−Sk'rを更に2次コードブックで量子化することによって、k'及びl'を算出する。
また、バイナリ特徴ベクトルについては、量子化時にはまず、S1,S2,・・・,SK1から、xとのハミング距離が小さくなる上位r件のk'1,k'2,・・・,k'rを算出し、それらの残差x XOR Sk'1,Sk'2,・・・,Sk'rを更に2次コードブックで量子化することによって、k'及びl'を算出する。
For real feature vectors, k ′ and l ′ ideally minimize the quantization error || x− (S k ′ + Tm [k ′] l ′ ) || 2 .
For binary feature vectors, k ′ and l ′ ideally minimize the quantization error popcnt (x XOR S k ′ XOR T m [k ′] l ′ ).
However, if k ′ and l ′ are strictly set, the amount of calculation increases.
Therefore, according to the present invention, the solution of k ′ is limited to the vicinity of r of x in the representative vector of the primary codebook.
That is, for the real number feature vector, at the time of quantization, first, from S 1 , S 2 ,..., S K1 , the highest r k ′ 1 , k ′ 2 ,. , K ′ r is calculated, and the residuals x−S k ′ 1 , x−S k ′ 2 ,..., X−S k′r are further quantized with a secondary codebook, k ′ and l ′ are calculated.
As for the binary feature vector, at the time of quantization, first, S 1 , S 2 ,..., S K1 , k ′ 1 , k ′ 2 ,. , k ′ r and further quantizing their residuals x XOR S k′1 , S k′2 ,..., S k′r with a quadratic codebook, k ′ and l ′ Is calculated.
量子化部13について、リファレンスコンテンツの局所特徴から得られた量子化結果は、転置インデックス記憶部14へ出力する。
また、クエリコンテンツの局所特徴から得られた量子化結果は、検索部15へ出力する。
With respect to the
The quantization result obtained from the local feature of the query content is output to the
[転置インデックス記憶部14]
転置インデックス記憶部14は、リファレンスコンテンツの各局所特徴について、コードブックを用いて量子化された量子化識別子iに対応する転置インデックスのリストに、局所特徴の情報を記憶する。「転置インデックス」とは、リファレンス局所特徴を、識別値に置き換えたものであり、代表識別値n毎に作成されたリファレンス局所特徴のリストである。
[Transposed index storage unit 14]
The transposed
図7は、本発明の検索部によって参照される転置インデックスを表す説明図である。 FIG. 7 is an explanatory diagram showing the transposed index referred to by the search unit of the present invention.
リファレンスベクトルのメタデータには、何が割り当てられてもよい。例えば、リファレンスベクトルが画像検索における画像特徴量である場合、リファレンスベクトルが所属する画像識別値を割り当てる。メタデータ(リファレンスベクトルの付加情報)には、例えば、コンテンツID(識別子、例えば画像ID)、局所特徴の座標、局所特徴のスケール、局所特徴の角度、局所特徴ベクトル等を保存してもよい。 Anything may be assigned to the metadata of the reference vector. For example, when the reference vector is an image feature amount in image search, an image identification value to which the reference vector belongs is assigned. For example, content ID (identifier, for example, image ID), local feature coordinates, local feature scale, local feature angle, local feature vector, and the like may be stored in the metadata (additional information of the reference vector).
[検索部15]<検索フェーズ>
検索部15は、クエリコンテンツに類似したリファレンスコンテンツを検索する。検索部15は、クエリコンテンツの各局所特徴について、コードブックを用いて量子化された量子化識別子iに対応する転置インデックスのリストを探索する。次に、リストに記憶されている局所特徴に対応したリファレンスコンテンツに対しスコアを累積する。そして、累積されたスコアを類似度としてリファレンスコンテンツを検索する。
[Search unit 15] <Search phase>
The
ここで、クエリコンテンツの局所特徴とリファレンスコンテンツの局所特徴との距離を算出し、その距離に応じてスコアを算出することができる。例えば、クエリコンテンツの局所特徴とリファレンスの局所特徴との2乗距離をdとすると、スコアとしてexp(-d/a)を利用することができる。ここで、aは調整可能なパラメータである。また、IDF(Inverse Document Frequency)を利用して、各量子化される識別子の出現頻度に応じてスコアを修正してもよい。 Here, the distance between the local feature of the query content and the local feature of the reference content can be calculated, and the score can be calculated according to the distance. For example, if the square distance between the local feature of the query content and the local feature of the reference is d, exp (-d / a) can be used as the score. Here, a is an adjustable parameter. Further, the score may be corrected according to the appearance frequency of each quantized identifier using IDF (Inverse Document Frequency).
以上、詳細に説明したように、本発明のプログラム、装置及び方法によれば、データを量子化するために、メモリ使用量を最小限に抑えつつ、量子化誤差を小さくしたコードブックを作成することができる。即ち、メモリ量と検索精度とのトレードオフを考慮した小さいコードブックを用いて、リファレンスとなる高次元の局所特徴の集合から、クエリとなる局所特徴に類似した局所特徴を検索することができる。 As described above in detail, according to the program, apparatus, and method of the present invention, in order to quantize data, a code book with a reduced quantization error is generated while minimizing memory usage. be able to. That is, a local feature similar to a local feature serving as a query can be retrieved from a set of high-dimensional local features serving as a reference, using a small codebook that takes into account the trade-off between the memory amount and the retrieval accuracy.
図8は、従来技術におけるコードブックを表す概念図である。
図9は、本発明におけるコードブックを表す概念図である。
図10は、本発明における確率モデルのクラスタリングを表す概念図である。
FIG. 8 is a conceptual diagram showing a code book in the prior art.
FIG. 9 is a conceptual diagram showing a code book in the present invention.
FIG. 10 is a conceptual diagram showing clustering of probability models in the present invention.
図8のような従来技術によれば、残差ベクトルの集合を確率モデルでモデル化していないために、1次コードブックにおける残差ベクトル(量子化誤差)の集合から直接的に、2次コードブックを作成している。
これに対し、図9のような本発明によれば、残差ベクトルの集合を確率モデルでパラメトリックにモデル化することによって、確率モデルの類似度に応じた2次コードブックを作成している。
特に、図10(a)及び図10(b)を繰り返すことによって、残差ベクトルの確率モデルを最適化することできる。
即ち、本発明によれば、確率モデルの類似度に応じた2次コードブックを作成することによって、全ての1次クラスタに対する2次コードブックを作成しない。
また、1次コーブックの量子化結果に応じて2次コードブックを切り替えることによって、量子化誤差を最小化することができる。
更に、1次コードブックの代表ベクトルの数が大量であっても、残差ベクトルの確率モデルに応じた2次コードブックで残差量子化することができるので、現実的な時間で量子化することができる。
According to the prior art as shown in FIG. 8, since a set of residual vectors is not modeled by a probabilistic model, a secondary code is directly generated from a set of residual vectors (quantization errors) in the primary codebook. You are creating a book.
On the other hand, according to the present invention as shown in FIG. 9, a secondary codebook according to the similarity of the probability model is created by modeling a set of residual vectors parametrically with a probability model.
In particular, the probability model of the residual vector can be optimized by repeating FIGS. 10 (a) and 10 (b).
That is, according to the present invention, the secondary codebook for all the primary clusters is not created by creating the secondary codebook corresponding to the similarity of the probability model.
Also, the quantization error can be minimized by switching the secondary codebook according to the quantization result of the primary cobook.
Further, even if the number of representative vectors in the primary codebook is large, residual quantization can be performed with a secondary codebook corresponding to the residual vector probability model. be able to.
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。 Various changes, modifications, and omissions of the above-described various embodiments of the present invention can be easily made by those skilled in the art. The above description is merely an example, and is not intended to be restrictive. The invention is limited only as defined in the following claims and the equivalents thereto.
1 検索装置
101 1次コードブック記憶部
102 2次コードブック記憶部
11 局所特徴抽出部
121 1次コードブック作成部
122 確率モデル生成部
123 2次コードブック作成部
13 量子化部
14 転置インデックス記憶部
15 検索部
DESCRIPTION OF
Claims (11)
前記コードブックを生成するために、
訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出し、K1個の代表ベクトルS={S1, …, SK1}からなる1次コードブックを作成する1次コードブック作成手段と、
訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する確率モデル生成手段と、
1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当て、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する2次コードブック作成手段と
としてコンピュータを機能させることを特徴とするプログラム。 A program that causes a computer to function to quantize target data using a plurality of hierarchical codebooks,
In order to generate the codebook,
A set X of training vectors is classified into a group of K1 primary clusters, a representative vector Sk is derived for each primary cluster, and 1 consisting of K1 representative vectors S = {S 1 ,..., S K1 } A primary code book creating means for creating a next code book;
A set X of training vectors x is assigned to each representative vector S k using a primary codebook, and a probability model is derived from a set of residual vectors (= xS k ) between the training vectors x for each representative vector S k ∈ S. A probability model generating means for generating
The K1 pieces of probabilistic models of primary codebook, classified into groups of secondary codebook number of M secondary cluster, assign a representative vector S k primary codebook secondary cluster, each secondary cluster A computer as secondary codebook creation means for creating secondary codebooks T m from a set of residual vectors based on the assigned representative vectors S k and creating a total of M secondary codebooks T 1 to M A program characterized by functioning.
1次コードブックのK1個の確率モデルを、M個の2次クラスタに初期的に割り当てる初期手段と、
2次クラスタ毎に、当該2次クラスタに含まれる複数の確率モデルから代表確率モデルを生成する生成手段と、
確率モデルを、最も距離が短くなる代表確率モデルに改めて割り当てて、2次クラスタを更新する割当手段と
を有し、生成手段及び割当手段を所定条件まで繰り返す
ようにコンピュータを機能させることを特徴とする請求項1に記載のプログラム。 Regarding the secondary codebook creation means,
An initial means for initially assigning K1 probability models of the primary codebook to M secondary clusters;
Generating means for generating a representative probability model from a plurality of probability models included in the secondary cluster for each secondary cluster;
An allocation means for re-assigning a probability model to a representative probability model with the shortest distance and updating the secondary cluster, and causing the computer to function so that the generation means and the assignment means are repeated up to a predetermined condition. The program according to claim 1.
ようにコンピュータを機能させることを特徴とする請求項2に記載のプログラム。 The program according to claim 2, wherein the secondary codebook creating unit causes the computer to function so as to be executed by a k-means algorithm in which k is M.
1次コードブックの中で、ランダムに選択した代表ベクトルSkの確率モデルを代表確率モデルとして割り当てる選択手段と、
選択されていない代表ベクトルSkの確率モデルの中で、最も距離が短くなる代表確率モデルとの距離に比例する確率で、確率モデルを次の代表確率モデルとして新たに選択する次選択手段と
を有し、次選択手段を代表確率モデルがM個となるまで繰り返す
ようにコンピュータを機能させることを特徴とする請求項1に記載のプログラム。 Regarding the secondary codebook creation means,
Selecting means for assigning a probability model of a representative vector S k selected at random in the primary codebook as a representative probability model;
Among the probabilistic model of the representative vector S k is not selected, with a probability proportional to the distance between the highest distance is shortened representative probability model, and the next selection means newly selects a probability model as the following representative probability model 2. The program according to claim 1, wherein the computer functions so that the next selection means is repeated until there are M representative probability models.
ようにコンピュータを機能させることを特徴とする請求項4に記載のプログラム。 5. The program according to claim 4, wherein the secondary codebook creating means causes the computer to function so as to be executed by a k-means ++ algorithm in which k is M.
ようにコンピュータを機能させることを特徴とする請求項2から5のいずれか1項に記載のプログラム。 6. The program according to claim 2, which causes the computer to function such that a distance between the probability model and the representative probability model is calculated by KL (Kullback Leibler) divergence.
ようにコンピュータを機能させることを特徴とする請求項1から6のいずれか1項に記載のプログラム The computer according to any one of claims 1 to 6, wherein the probability model is a multivariate Gaussian distribution, a multivariate Bernoulli distribution, a multinomial distribution, a Dirichlet distribution, or a multivariate Laplace distribution. Or the program according to item 1
対象データxについて、1次コードブックのいずれかの代表ベクトルSkに量子化し、
対象データxと量子化された代表ベクトルSkとの残差ベクトルを、代表ベクトルSkが割り当てられた2次コードブックのいずれかの代表ベクトルTに量子化する
量子化手段としてコンピュータを機能させることを特徴とする請求項1から7のいずれか1項に記載のプログラム。 The set of training vectors is a set of local features in the input training content;
For target data x, quantized to one representative vector S k primary codebook,
The residual vector of the representative vector S k which are target data x and the quantized, causes a computer to function as a quantization means for quantizing the one representative vector T of the secondary codebook representative vector S k is assigned The program according to any one of claims 1 to 7, characterized in that:
前記リファレンスコンテンツの各局所特徴について、前記コードブックを用いて量子化された量子化識別子iに対応する転置インデックスのリストに、前記局所特徴の情報を記憶する転置インデックス記憶手段と、
クエリコンテンツの各局所特徴について、前記コードブックを用いて量子化された量子化識別子iに対応する転置インデックスのリストを探索し、リストに記憶されている局所特徴に対応したリファレンスコンテンツに対しスコアを累積し、累積されたスコアを類似度としてリファレンスコンテンツを検索する検索手段と
して更にコンピュータを機能させ、クエリコンテンツに類似したリファレンスコンテンツを検索する
ことを特徴とする請求項1から8のいずれか1項に記載のプログラム。 Local feature extraction means for extracting a set of local features for each of the input reference content and query content;
For each local feature of the reference content, a transposed index storage unit that stores information of the local feature in a list of transposed indexes corresponding to a quantized identifier i quantized using the codebook;
For each local feature of the query content, a list of transposed indexes corresponding to the quantized identifier i quantized using the codebook is searched, and a score is obtained for the reference content corresponding to the local feature stored in the list. 9. The reference content similar to the query content is searched for by further causing the computer to function as search means for searching for reference content using the accumulated score as a degree of similarity. The program described in.
前記コードブックを生成するために、
訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出し、K1個の代表ベクトルS={S1, …, SK1}からなる1次コードブックを作成する1次コードブック作成手段と、
訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する確率モデル生成手段と、
1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当て、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する2次コードブック作成手段と
を有することを特徴とする量子化装置。 A quantization device that quantizes target data using a plurality of hierarchical codebooks,
In order to generate the codebook,
A set X of training vectors is classified into a group of K1 primary clusters, a representative vector Sk is derived for each primary cluster, and 1 consisting of K1 representative vectors S = {S 1 ,..., S K1 } A primary code book creating means for creating a next code book;
A set X of training vectors x is assigned to each representative vector S k using a primary codebook, and a probability model is derived from a set of residual vectors (= xS k ) between the training vectors x for each representative vector S k ∈ S. A probability model generating means for generating
The K1 pieces of probabilistic models of primary codebook, classified into groups of secondary codebook number of M secondary cluster, assign a representative vector S k primary codebook secondary cluster, each secondary cluster And a secondary codebook creating means for creating a secondary codebook T m from a set of residual vectors based on the assigned representative vector S k and creating a total of M secondary codebooks T 1 to M. A quantizer characterized by that.
前記装置は、
前記コードブックを生成するために、
訓練ベクトルの集合XをK1個の1次クラスタの群に分類し、1次クラスタ毎に代表ベクトルSkを導出し、K1個の代表ベクトルS={S1, …, SK1}からなる1次コードブックを作成する第1のステップと、
訓練ベクトルxの集合Xを1次コードブックを用いて各代表ベクトルSkに割り当て、代表ベクトルSk∈S毎に、訓練ベクトルxと間の残差ベクトル(=x-Sk)の集合から確率モデルを生成する第2のステップと、
1次コードブックのK1個の確率モデルを、2次コードブック数M個の2次クラスタの群に分類し、1次コードブックの代表ベクトルSkを2次クラスタに割り当て、2次クラスタ毎に、割り当てられた代表ベクトルSkに基づく残差ベクトルの集合から2次コードブックTmを作成し、合計M個の2次コードブックT1〜Mを作成する第3のステップと
を実行することを特徴とする装置のコードブック作成方法。 A codebook creation method for a device that quantizes target data using a plurality of hierarchical codebooks,
The device is
In order to generate the codebook,
A set X of training vectors is classified into a group of K1 primary clusters, a representative vector Sk is derived for each primary cluster, and 1 consisting of K1 representative vectors S = {S 1 ,..., S K1 } A first step of creating a next codebook;
A set X of training vectors x is assigned to each representative vector S k using a primary codebook, and a probability model is derived from a set of residual vectors (= xS k ) between the training vectors x for each representative vector S k ∈ S. A second step of generating
The K1 pieces of probabilistic models of primary codebook, classified into groups of secondary codebook number of M secondary cluster, assign a representative vector S k primary codebook secondary cluster, each secondary cluster Generating a secondary codebook T m from a set of residual vectors based on the assigned representative vector S k , and executing a third step of generating a total of M secondary codebooks T 1 to M A method for creating a codebook for an apparatus.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016194343A JP6621206B2 (en) | 2016-09-30 | 2016-09-30 | Program, apparatus, and method for quantization using hierarchical codebook based on probability model |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016194343A JP6621206B2 (en) | 2016-09-30 | 2016-09-30 | Program, apparatus, and method for quantization using hierarchical codebook based on probability model |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018055618A JP2018055618A (en) | 2018-04-05 |
JP6621206B2 true JP6621206B2 (en) | 2019-12-18 |
Family
ID=61836880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016194343A Active JP6621206B2 (en) | 2016-09-30 | 2016-09-30 | Program, apparatus, and method for quantization using hierarchical codebook based on probability model |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6621206B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113039534A (en) * | 2018-11-16 | 2021-06-25 | 富士通株式会社 | Similarity calculation device, similarity calculation method, and similarity calculation program |
US11025317B2 (en) | 2019-05-09 | 2021-06-01 | Samsung Electronics Co., Ltd. | Adaptation of hierarchical codebooks |
EP4160434A4 (en) | 2021-08-16 | 2023-12-13 | Baidu Online Network Technology (Beijing) Co., Ltd | Method and apparatus for constructing search database, and device and storage medium |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH066316A (en) * | 1992-06-18 | 1994-01-14 | Matsushita Electric Ind Co Ltd | Code book preparating device and vector quantization device |
JPH0765168A (en) * | 1993-08-31 | 1995-03-10 | Hitachi Ltd | Device and method for function approximation |
US8682086B2 (en) * | 2010-06-02 | 2014-03-25 | Nec Laboratories America, Inc. | Systems and methods for determining image representations at a pixel level |
-
2016
- 2016-09-30 JP JP2016194343A patent/JP6621206B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2018055618A (en) | 2018-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Perez-Rua et al. | Incremental few-shot object detection | |
Guo et al. | Quantization based fast inner product search | |
Bu et al. | Learning high-level feature by deep belief networks for 3-D model retrieval and recognition | |
Song et al. | Deep region hashing for efficient large-scale instance search from images | |
WO2013129580A1 (en) | Approximate nearest neighbor search device, approximate nearest neighbor search method, and program | |
Li et al. | Hybrid shape descriptor and meta similarity generation for non-rigid and partial 3D model retrieval | |
WO2015004434A1 (en) | Compact and robust signature for large scale visual search, retrieval and classification | |
Yang et al. | Dynamic match kernel with deep convolutional features for image retrieval | |
Yu et al. | Efficient object instance search using fuzzy objects matching | |
Zhou et al. | Multiple distance-based coding: toward scalable feature matching for large-scale web image search | |
JP6621206B2 (en) | Program, apparatus, and method for quantization using hierarchical codebook based on probability model | |
Lin et al. | Optimizing ranking measures for compact binary code learning | |
Khalid et al. | Accurate and efficient shape matching approach using vocabularies of multi-feature space representations | |
Wang et al. | Beauty product image retrieval based on multi-feature fusion and feature aggregation | |
Tu et al. | Topic modeling and improvement of image representation for large-scale image retrieval | |
Passalis et al. | Spectral clustering using optimized bag-of-features | |
JP6601965B2 (en) | Program, apparatus and method for quantizing using search tree | |
Magliani et al. | Landmark recognition: From small-scale to large-scale retrieval | |
Zhou et al. | RFSEN-ELM: SELECTIVE ENSEMBLE OF EXTREME LEARNING MACHINES USING ROTATION FOREST FOR IMAGE CLASSIFICATION. | |
JP2013246739A (en) | Search device and program for precisely searching content represented by set of high dimensional feature vectors | |
Manzo et al. | A novel graph embedding framework for object recognition | |
Liu et al. | Multiview Cross-Media Hashing with Semantic Consistency | |
Hua et al. | Cross-modal correlation learning with deep convolutional architecture | |
Orhei et al. | Urban landmark detection using A-KAZE features and vector of aggregated local descriptors | |
Niedermayer et al. | Retrieval of binary features in image databases: A study |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181203 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191112 |
|
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: 20191118 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191118 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6621206 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |