JP6375420B2 - Relevance determination device and relevance determination program - Google Patents
Relevance determination device and relevance determination program Download PDFInfo
- Publication number
- JP6375420B2 JP6375420B2 JP2017139451A JP2017139451A JP6375420B2 JP 6375420 B2 JP6375420 B2 JP 6375420B2 JP 2017139451 A JP2017139451 A JP 2017139451A JP 2017139451 A JP2017139451 A JP 2017139451A JP 6375420 B2 JP6375420 B2 JP 6375420B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- real
- matrix
- vectors
- feature vector
- 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
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、画像、音声、文字等のコンテンツの特徴ベクトルを用いた演算処理を行う関連性判定装置、関連性判定プログラム、及び関連性判定方法に関し、特に、複数の実数ベクトルと二値ベクトルに変換された特徴ベクトルとの内積の計算を含むベクトル演算によって特徴ベクトルと複数の実数ベクトルの各々との関連性の判定を行う関連性判定装置、及び関連性判定プログラムに関するものである。 The present invention relates to a relevance determination device, a relevance determination program, and a relevance determination method that perform arithmetic processing using feature vectors of content such as images, sounds, and characters, and more particularly to a plurality of real vectors and binary vectors. The present invention relates to a relevance determination device and a relevance determination program for determining relevance between a feature vector and each of a plurality of real vectors by a vector operation including calculation of an inner product with a converted feature vector.
従来より、画像検索、音声認識、文章検索、パターン認識など、多くの分野で特徴量が用いられている。特徴量とは、画像、音声、文章などの情報を、計算機で扱いやすいように変換したものである。特徴量は、D次元のベクトル(特徴ベクトル)で表される。 Conventionally, feature quantities are used in many fields such as image search, voice recognition, sentence search, and pattern recognition. The feature amount is information obtained by converting information such as images, sounds, and sentences so as to be easily handled by a computer. The feature amount is represented by a D-dimensional vector (feature vector).
特徴ベクトルを用いた演算を行うことで、例えば、コンテンツの類似度を判定することができる。すなわち、画像αの特徴ベクトルと、画像βの特徴ベクトルの距離が小さければ、αとβは似ているとみなすことができる。同様に、音声波形αの特徴ベクトルと、音声波形βの特徴ベクトルとの距離が小さければ、αとβは似ているとみなすことができる。このように、音声認識、文章検索、パターン認識等の情報処理では、情報を特徴ベクトルに変換して、特徴ベクトル同士を比較して、その距離を求めることにより情報の類似度を判断する。 By performing the calculation using the feature vector, for example, the similarity of content can be determined. That is, if the distance between the feature vector of the image α and the feature vector of the image β is small, it can be considered that α and β are similar. Similarly, if the distance between the feature vector of the speech waveform α and the feature vector of the speech waveform β is small, it can be considered that α and β are similar. As described above, in information processing such as speech recognition, sentence search, and pattern recognition, information is converted into feature vectors, the feature vectors are compared with each other, and the distance between them is determined to determine information similarity.
特徴ベクトル間の距離の尺度としては、L1ノルム、L2ノルム、ベクトル間角度などが用いられる。これらは、特徴ベクトルx,y∈RDについて、次のように計算できる。
L1ノルム
L1 norm
特徴ベクトルが実数ベクトルである場合には、以下のような問題がある。まず、2つの特徴ベクトルx,y∈RDの間の距離の計算が遅くなるという問題がある。例えば、L2ノルムの二乗を距離の尺度として用いる場合、
また、大量のメモリを消費する点も問題となる。特徴ベクトルを4バイトの単精度実数で表現する場合、D次元の特徴ベクトルは4Dバイトのメモリを消費する。特徴ベクトルが高次元になれば、このメモリ消費量は大きくなる。大量の特徴ベクトルを扱う場合、扱う特徴ベクトルの数だけメモリを消費することになる。 Another problem is that a large amount of memory is consumed. When a feature vector is represented by a 4-byte single-precision real number, the D-dimensional feature vector consumes 4D bytes of memory. As the feature vector becomes higher in dimension, the memory consumption increases. When dealing with a large amount of feature vectors, the memory is consumed by the number of feature vectors to be handled.
そこで近年、特徴ベクトルを0と1の列から成るバイナリコードに変換することにより、これら2つの問題を解決する手法が提案されている。代表的な手法として、ランダムプロジェクション(random projection、非特許文献1参照)、ベリースパースランダムプロジェクション(very sparse random projection、非特許文献2参照)、及びスペクトラルハッシング(Spectral Hashing、非特許文献3参照)がある。 Therefore, in recent years, a method for solving these two problems by converting a feature vector into a binary code composed of a sequence of 0 and 1 has been proposed. Typical techniques include random projection (see random projection, Non-Patent Document 1), belly sparse random projection (see Non-Patent Document 2), and spectral hashing (Spectral Hashing, see Non-Patent Document 3). is there.
これらの手法では、D次元の特徴ベクトルがdビットのバイナリコードに変換される。この変換は、もともとの空間における距離が、変換後の空間におけるハミング距離と強く相関するように行われる(もともとの空間における距離と、変換後の空間におけるハミング距離と強く相関する根拠については、非特許文献1の1121ページのLemma3.2を参照)。これによって、特徴ベクトル間の距離の計算を、バイナリコード同士のハミング距離計算で代用できるようになる。 In these methods, a D-dimensional feature vector is converted into a d-bit binary code. This conversion is performed so that the distance in the original space strongly correlates with the Hamming distance in the converted space (for the reason that the distance in the original space and the Hamming distance in the converted space are strongly correlated) (See Lemma 3.2 on page 1121 of Patent Document 1). As a result, the calculation of the distance between feature vectors can be replaced by the calculation of the Hamming distance between binary codes.
ハミング距離とは、二つのバイナリコードのうち、異なるビットの数を数えたものである。この計算は、二つのコードのXORをとった後に1が立っているビット数を数えるだけなので、非常に高速に行うことができる。多くの場合、バイナリコード変換によって、数十〜数百倍程度の高速化が可能である。また、特徴ベクトル間の距離の計算を、バイナリコード同士のハミング距離計算で代用することにより、もともと4Dバイトであったメモリの必要容量を、d/8バイトまで削減できる。これにより、数十〜数百分の一にメモリ容量を節約できる。 The Hamming distance is obtained by counting the number of different bits in two binary codes. This calculation can be performed very quickly because it only counts the number of bits that are 1 after XORing the two codes. In many cases, binary code conversion can increase the speed by several tens to several hundred times. Further, by substituting the calculation of the distance between feature vectors with the calculation of the Hamming distance between binary codes, the required memory capacity, which was originally 4D bytes, can be reduced to d / 8 bytes. Thereby, memory capacity can be saved to tens to hundreds of times.
抽出された特徴量をバイナリコードに変換して、さまざまなアルゴリズムを適用することで、コンテンツの検索や認識などが可能となる。例えば類似コンテンツを検索する場合には、あらかじめデータベースに登録されているコンテンツの特徴量を、すべてバイナリコードに変換しておく。また、入力クエリとして与えられたコンテンツの特徴量をバイナリコードに変換する。そして、入力クエリのバイナリコードと、データベースに登録されているすべてのバイナリコードとの間のハミング距離を計算することで、入力クエリに類似するコンテンツを検索して出力できる。 By converting the extracted feature quantity into binary code and applying various algorithms, it becomes possible to search and recognize content. For example, when searching for similar content, all the feature quantities registered in the database in advance are converted into binary codes. Also, the feature amount of the content given as an input query is converted into a binary code. Then, by calculating the Hamming distance between the binary code of the input query and all the binary codes registered in the database, it is possible to search and output content similar to the input query.
バイナリコードはdビットの0と1の列からなる。これを、各要素が−1及び1の二値のみを取るd次元のベクトルと考えることもできる。以下の説明における混乱を避けるために、「バイナリコード」と「二値ベクトル」という用語について、以下のように区別をする。「バイナリコード」は、0と1の列からなるデータ表現である。例えば、C言語において128ビットのバイナリコードをメモリ上に格納する場合は、符号無し整数(unsigned char)型の16要素分の配列を用意すればよい(8bit×16=128bit)。 The binary code consists of a sequence of 0's and 1's of d bits. This can be considered as a d-dimensional vector in which each element takes only binary values of −1 and 1. In order to avoid confusion in the following description, the terms “binary code” and “binary vector” are distinguished as follows. A “binary code” is a data representation consisting of a sequence of 0s and 1s. For example, when a 128-bit binary code is stored in a memory in the C language, an array for 16 elements of an unsigned integer type may be prepared (8 bits × 16 = 128 bits).
一方、「二値ベクトル」は、各要素が二値のみを取るベクトルである。例えば、二値ベクトルを各要素が−1及び1のみをとるベクトルとする場合には、バイナリコード「01101110」に対応する二値ベクトルは、(−1,1,1,−1,1,1,1,−1)Tである。もちろん、各要素が0及び1の二値のみを取るベクトルも二値ベクトルであるし、さらには、各要素が任意のα及びβ(ここでα≠βである)の二値のみを取るベクトルも二値ベクトルである。ただし、「バイナリコード」と「二値ベクトル」の違いは、情報の表現に関するものであり、両者に本質的な違いはない。 On the other hand, a “binary vector” is a vector in which each element takes only binary values. For example, when a binary vector is a vector in which each element takes only −1 and 1, the binary vector corresponding to the binary code “01101110” is (−1, 1, 1, −1, 1, 1). , 1, -1) T. Of course, a vector in which each element takes only binary values of 0 and 1 is also a binary vector, and furthermore, a vector in which each element takes only binary values of arbitrary α and β (where α ≠ β) Is also a binary vector. However, the difference between the “binary code” and the “binary vector” relates to the expression of information, and there is no essential difference between the two.
特徴ベクトルを、各要素が−1及び1の二値のみを取るd次元の二値ベクトルに変換すれば、SVM(サポートベクトルマシン)による識別処理や、k−meansクラスタリングなど、さまざまな処理をバイナリコードに対しても適用できる。しかしながら、これらのケースではハミング距離による高速距離計算の恩恵を受けることができないことがある。すなわち、アルゴリズムによっては、バイナリコード変換による高速距離計算の恩恵を受けられないことがある。 If a feature vector is converted into a d-dimensional binary vector in which each element takes only binary values of -1 and 1, various processes such as identification processing by SVM (support vector machine) and k-means clustering are binary. It can also be applied to code. However, in these cases, it may not be possible to benefit from high-speed distance calculation by Hamming distance. That is, depending on the algorithm, there are cases where the benefits of high-speed distance calculation by binary code conversion cannot be obtained.
バイナリコード変換による高速距離計算の恩恵を受けられない例として、以下では、識別器(Classifier)による認識処理及びk−meansクラスタリングを説明する。まず、識別器による認識処理については、例えば、二値ベクトルx∈{−1,1}dを2クラスに識別する問題に対して、線形SVM(線形サポートベクトルマシン)等の線形識別器を適用することを考える。線形SVMでは以下の式を評価する。
ここで、学習用に用意した特徴量が二値ベクトルであっても、w∈Rdは二値にならず、実数値になってしまう。f(x)の計算にはwTxが含まれているが、xが二値である一方でwが実数値のベクトルであるため、wTxの計算には、浮動小数点演算が必要になってしまう。このように、SVMを適用する識別器による認識処理では、特徴ベクトルを二値ベクトルとすることによる計算高速化の恩恵を受けることができない。 Here, even if the feature quantity prepared for learning is a binary vector, wεR d is not a binary value but a real value. The calculation of f (x) includes w T x, but since x is binary and w is a real-valued vector, the calculation of w T x requires a floating point operation. turn into. As described above, the recognition processing by the discriminator to which the SVM is applied cannot benefit from the speeding up of calculation by making the feature vector a binary vector.
次に、二値ベクトルに対して、k−meansクラスタリングを適用する場合、すなわち、d次元の二値ベクトルがN個与えられたとき、互いに距離が近い二値ベクトルをまとめたk個のクラスタを求める問題を考える。k−meansとは、次の手順によりk個のクラスタと代表ベクトルを算出するアルゴリズムである。 Next, when k-means clustering is applied to a binary vector, i.e., when n d-dimensional binary vectors are given, k clusters obtained by collecting binary vectors that are close to each other are obtained. Think about the problem you want. k-means is an algorithm for calculating k clusters and representative vectors according to the following procedure.
ステップ1:N個の特徴量からk個をランダムに選出し、これをクラスタの代表ベクトルとする。
ステップ2:入力として与えられたN個の特徴量それぞれについて、最も距離が近い代表ベクトルを求める。
ステップ3:各代表ベクトルに所属する特徴量の平均を計算し、これを新しい代表ベクトルとする。
ステップ4:ステップ2、ステップ3を収束するまで繰り返す。
Step 1: k features are randomly selected from N feature amounts and set as cluster representative vectors.
Step 2: For each of the N feature values given as input, a representative vector having the closest distance is obtained.
Step 3: The average of the feature quantities belonging to each representative vector is calculated and set as a new representative vector.
Step 4: Repeat Step 2 and Step 3 until convergence.
k−meansクラスタリングにおいて問題となるのは、ステップ3において、新しい代表ベクトルが二値ベクトルの平均で定義される点である。入力として与えられたデータが二値ベクトルであっても、平均の演算により、代表ベクトルは実数のベクトルになる。そのため、ステップ2における距離計算では、二値ベクトルと実数ベクトルとの間の距離を求めなければならなくなる。つまり、浮動小数点演算が必要になってしまう。このように、k−meansクラスタリングにおいても、特徴ベクトルを二値ベクトルとすることによる計算高速化の恩恵を受けることができない。 The problem in k-means clustering is that in step 3 a new representative vector is defined by the average of the binary vectors. Even if the data given as input is a binary vector, the representative vector becomes a real vector by the average calculation. Therefore, in the distance calculation in step 2, it is necessary to obtain the distance between the binary vector and the real vector. In other words, floating point arithmetic is required. As described above, even in k-means clustering, it is not possible to receive the benefit of speeding up the calculation by making the feature vector a binary vector.
上記のように、識別器(Classifier)による認識処理やk−meansクラスタリングでは、特徴ベクトルを二値ベクトルとすることによる計算高速化の恩恵を受けることができない。その理由は、いずれもd次元の二値ベクトルp∈{−1,1}dと、d次元の実数ベクトルq∈Rdとの内積演算が必要であるという点にある。なお、k−meansクラスタリングで必要なのは、dビットの二値ベクトルp∈{−1,1}dと、d次元の実数ベクトルq∈Rdとの間の「距離」であるが、これも結局のところ、pTqという内積の演算に帰着される。なぜなら、pとqとの間のユークリッド距離の二乗は、下式で表現されるからである。
よって、識別器による認識処理においてもk−meansクラスタリングにおいても、二値ベクトルとd次元の実数ベクトルとの内積の演算を高速化することこそが、問題の解決につながる。 Therefore, speeding up the calculation of the inner product of a binary vector and a d-dimensional real vector in both recognition processing by the classifier and k-means clustering leads to the solution of the problem.
そこで、本出願人は、特徴ベクトルがd次元の二値ベクトルp∈{−1,1}dである場合において、そのような特徴ベクトルとd次元の実数ベクトルq∈Rdとの間の内積(pTqもしくはqTp)の演算を高速に行う関連性判定装置を提案している(特願2013−214182号、以下、「先願」という。)。 Therefore, the present applicant has determined that the inner product between such a feature vector and a d-dimensional real vector qεR d when the feature vector is a d-dimensional binary vector pε {−1,1} d. (Japanese Patent Application No. 2013-214182, hereinafter referred to as “Prior Application”) has been proposed (Japanese Patent Application No. 2013-214182), which proposes a high-speed calculation of p T q or q T p.
先願の関連性判定装置は、二値化された特徴ベクトルを取得する特徴ベクトル取得部と、実数ベクトルを二値または三値の離散値のみから構成された要素を持つ複数の基底ベクトルの線形和に分解することで得られた前記複数の基底ベクトルを取得する基底ベクトル取得部と、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算を順次行うことで、前記実数ベクトルと前記特徴ベクトルとの関連性を判定するベクトル演算部とを備えている。この構成により、実数ベクトルは複数の二値の基底ベクトルの線形和に分解されたうえで二値化された特徴ベクトルとの内積計算が行なわれるので、特徴ベクトルと実数ベクトルの内積計算を高速化できる。 The relevance determination device of the prior application includes a feature vector acquisition unit that acquires a binarized feature vector, and a linear vector of a plurality of base vectors each having an element composed of only a binary or ternary discrete value as a real vector A basis vector acquisition unit that acquires the plurality of basis vectors obtained by decomposing into a sum, and sequentially performing inner product calculation of the feature vector and each of the plurality of basis vectors, thereby the real vector and the feature A vector operation unit for determining relevance with the vector. With this configuration, real vectors are decomposed into linear sums of multiple binary basis vectors, and the inner product calculation of the binarized feature vector is performed, so the inner product calculation of the feature vector and the real vector is accelerated. it can.
ところで、二値化された特徴ベクトルと複数の実数ベクトルとの内積を計算することで、特徴ベクトルと複数の実数ベクトルの各々との関連性を判定する必要がある場合がある。例えば、上述のように、線形SVMでは、特徴ベクトルがクラスAに属するか、クラスBに属するか、即ち、特徴ベクトルがある識別基準に該当するか否かのみを判断するものであるが、このような識別を複数の基準について行いたい場合がある。具体的な例としては、撮影された画像に映っているのが、大人であるか否か、子供であるか否か、車であるか否か、道路標識であるか否かをそれぞれ判断したい場合がある。 Incidentally, it may be necessary to determine the relevance between the feature vector and each of the plurality of real vectors by calculating the inner product of the binarized feature vector and the plurality of real vectors. For example, as described above, in linear SVM, only whether a feature vector belongs to class A or class B, that is, whether or not the feature vector falls under a certain identification criterion, is determined. There are cases where such identification is desired for a plurality of criteria. As a specific example, I would like to determine whether the captured image is an adult, a child, a car, or a road sign. There is a case.
また、上述のk−meansクラスタリングでは、入力として与えられたN個の特徴ベクトルの各々について、k個の代表ベクトルとの間で内積計算を伴う距離の計算を行う。ここで、k個の代表ベクトルの各々は、上述のように、二値ベクトルの平均で定義されるので、実数ベクトルである。よって、k−meansクラスタリングでも、二値化された特徴ベクトルと複数の実数ベクトルとの内積計算が必要となる。 In the k-means clustering described above, for each of the N feature vectors given as an input, a distance with an inner product calculation is calculated with k representative vectors. Here, each of the k representative vectors is a real vector because it is defined by the average of the binary vectors as described above. Therefore, k-means clustering also requires inner product calculation of binarized feature vectors and a plurality of real vectors.
そこで、本発明は、二値化された特徴ベクトルと複数の実数ベクトルとの内積計算を高速化することで、そのような特徴ベクトルと複数の実数ベクトルとの関連性の判定を高速に行うことを目的とする。 Therefore, the present invention speeds up the inner product calculation of a binarized feature vector and a plurality of real vectors, thereby quickly determining the relevance between such a feature vector and a plurality of real vectors. With the goal.
本発明の関連性判定装置は、二値化された特徴ベクトルを取得する特徴ベクトル取得部と、複数の実数ベクトルからなる実数行列を、係数行列と、要素として二値または三値の離散値のみを持つ複数の基底ベクトルからなる基底行列との積に分解して得られた前記ベクトルと前記係数行列とを含む辞書データを記憶するデータベースと、前記特徴ベクトルと前記複数の実数ベクトルの各々との内積の計算として、前記特徴ベクトルと前記基底行列との積を計算し、さらに当該積と前記係数行列との積を計算して、その結果を用いて、前記複数の実数ベクトルの各々と前記特徴ベクトルとの関連性を判定するベクトル演算部とを備えた構成を有している。この構成により、特徴ベクトルと複数の実数ベクトルの各々との内積を計算のために、複数の実数ベクトルからなる実数行列が離散値の基底行列と係数行列に分解されており、特徴ベクトルと基底行列との積を計算し、さらに係数行列との積を計算するので、特徴ベクトルと複数の実数ベクトルの各々との内積演算の結果を高速に取得でき、よって特徴ベクトルと複数の実数ベクトルとの関連性の判定を高速に行うことができる。 The relevance determination device of the present invention includes a feature vector acquisition unit that acquires a binarized feature vector, a real matrix composed of a plurality of real vectors, a coefficient matrix, and only binary or ternary discrete values as elements. A database storing dictionary data including the vector and the coefficient matrix obtained by decomposing the product into a base matrix composed of a plurality of basis vectors having a plurality of basis vectors, and the feature vector and each of the plurality of real vectors As an inner product calculation, a product of the feature vector and the base matrix is calculated, a product of the product and the coefficient matrix is further calculated, and the result is used to calculate each of the plurality of real vectors and the feature. It has the structure provided with the vector calculating part which determines the relationship with a vector. With this configuration, in order to calculate the inner product of a feature vector and each of a plurality of real vectors, a real matrix made up of a plurality of real vectors is decomposed into a discrete value base matrix and a coefficient matrix. And the product with the coefficient matrix, the result of the inner product operation between the feature vector and each of multiple real vectors can be obtained at high speed, and the relationship between the feature vector and multiple real vectors can be obtained. Sex determination can be performed at high speed.
上記の関連性判定装置は、前記複数の実数ベクトルを並べることで前記実数行列を生成する実数行列生成部をさらに備えていてよい。この構成により、容易に複数の実数ベクトルから実数行列を生成できる。 The relevance determination device may further include a real matrix generation unit that generates the real matrix by arranging the plurality of real vectors. With this configuration, a real matrix can be easily generated from a plurality of real vectors.
上記の関連性判定装置において、前記実数行列生成部は、前記複数の実数ベクトルが所定のパラメータを有する場合に、当該パラメータの順に従って前記複数の実数ベクトルを並べることにより前記実数行列を生成してよい。この構成により、実数行列において互いに似た実数ベクトルが隣り合うこととなるので、隣り合う係数行列もまた類似するようになる。 In the above relevance determination device, when the plurality of real vectors have predetermined parameters, the real matrix generation unit generates the real matrix by arranging the plurality of real vectors according to the order of the parameters. Good. With this configuration, since real vectors similar to each other in the real number matrix are adjacent to each other, adjacent coefficient matrices are also similar.
上記の関連性判定装置において、前記特徴ベクトルは、HOG特徴量であってよく、前記複数の実数ベクトルは、複数の線形識別器のパラメータに対応する複数の重みベクトルであってよく、前記ベクトル演算部は、前記関連性の判定として、前記複数の線形識別器の識別関数によって、前記複数の基準の各々に対する前記特徴ベクトルの識別を行なってよい。この構成により、複数の線形識別器による特徴ベクトルの識別を高速化できる。 In the above relevance determination device, the feature vector may be a HOG feature, the plurality of real vectors may be a plurality of weight vectors corresponding to parameters of a plurality of linear classifiers, and the vector calculation The unit may identify the feature vector for each of the plurality of criteria by using an identification function of the plurality of linear classifiers as the determination of the relevance. With this configuration, it is possible to speed up feature vector identification by a plurality of linear classifiers.
上記の関連性判定装置において、前記実数行列生成部は、前記特徴ベクトル及び前記複数の実数ベクトルが1又は複数のパラメータを有する場合に、当該パラメータの順に従って前記複数の実数ベクトルを並べることにより前記実数行列を生成し、前記ベクトル演算部は、前記係数行列を構成する複数のベクトルであって前記複数の実数ベクトルが並べられた方向と同方向の複数のベクトルの各々を前記パラメータに関する連続関数で表現し、前記識別関数を最大にする前記パラメータを、前記特徴ベクトルのパラメータ値として求めてよい。この構成により、複数の実数ベクトルをまとめて実数行列を生成する際に、複数の実数ベクトルをそれが滑らかに変化するパラメータの順に並べて実数行列を生成することで、識別関数をそのパラメータに関する連続関数で表現できるので、高い分解能で特徴ベクトルのパラメータ値を求めることができる。 In the above-described relevance determination device, when the feature vector and the plurality of real vectors have one or a plurality of parameters, the real matrix generation unit arranges the plurality of real vectors according to the order of the parameters. A real number matrix is generated, and the vector calculation unit is a continuous function related to the parameter for each of a plurality of vectors constituting the coefficient matrix and having the same direction as the direction in which the plurality of real number vectors are arranged. The parameter that expresses and maximizes the discriminant function may be obtained as a parameter value of the feature vector. With this configuration, when a real matrix is generated by combining a plurality of real vectors, a real matrix is generated by arranging a plurality of real vectors in the order of parameters in which they change smoothly. Therefore, the parameter value of the feature vector can be obtained with high resolution.
上記の関連性判定装置において、前記特徴ベクトルは、k−meansクラスタリングによるクラスタリングの対象となるベクトルであってよく、前記実数ベクトルは、k−meansクラスタリングにおける代表ベクトルであってよく、前記ベクトル演算部は、前記関連性の判定として、前記特徴ベクトルと前記代表ベクトルとの間の距離の演算を含むクラスタリング処理を行なってよい。この構成により、k−meansクラスタリングにおける特徴ベクトルと代表ベクトルとの間の距離の演算を高速化できる。 In the above-described relevance determination device, the feature vector may be a vector to be clustered by k-means clustering, the real vector may be a representative vector in k-means clustering, and the vector calculation unit May perform a clustering process including a calculation of a distance between the feature vector and the representative vector as the determination of the relevance. With this configuration, the calculation of the distance between the feature vector and the representative vector in k-means clustering can be speeded up.
上記の関連性判定装置において、前記特徴ベクトルは、k−means treeによる近似最近傍探索の対象となるベクトルであってよく、前記実数ベクトルは、k−分木のノードに登録されている代表ベクトルであってよく、前記ベクトル演算部は、前記関連性の判定として、前記特徴ベクトルと前記代表ベクトルとの間の距離の演算を含むクラスタリング処理を行なってよい。この構成により、k−means treeによる近似最近傍探索における特徴ベクトルとk−分木のノードに登録されている代表ベクトルとの間の距離の演算を高速化できる。 In the above-described relevance determination apparatus, the feature vector may be a vector to be subjected to an approximate nearest neighbor search by k-means tree, and the real vector is a representative vector registered in a node of a k-ary tree. The vector calculation unit may perform a clustering process including calculation of a distance between the feature vector and the representative vector as the determination of the relevance. With this configuration, it is possible to speed up the calculation of the distance between the feature vector in the approximate nearest neighbor search by k-means tree and the representative vector registered in the node of the k-ary tree.
上記の関連性判定装置において、前記特徴ベクトルは、画像の特徴量を表すベクトルであってよい。この構成により、画像の特徴量の演算における特徴ベクトルと複数の実数ベクトルの内積計算を高速化できる。 In the above-described relevance determination device, the feature vector may be a vector that represents a feature amount of an image. With this configuration, it is possible to speed up the inner product calculation of the feature vector and the plurality of real vectors in the calculation of the feature amount of the image.
本発明の関連性判定プログラムは、コンピュータを、上記の関連性判定装置として機能させるための関連性判定プログラムである。この構成によっても、特徴ベクトルと複数の実数ベクトルの各々との内積を計算のために、複数の実数ベクトルからなる実数行列を離散値の基底行列と係数行列に分解したうえで、特徴ベクトルと基底行列との積を計算し、さらに係数行列との積を計算するので、特徴ベクトルと複数の実数ベクトルの各々との内積演算の結果を高速に取得でき、よって特徴ベクトルと複数の実数ベクトルとの関連性の判定を高速に行うことができる。 The relevance determination program of the present invention is a relevance determination program for causing a computer to function as the above-described relevance determination device. Even with this configuration, in order to calculate the inner product of a feature vector and each of a plurality of real vectors, a real matrix composed of a plurality of real vectors is decomposed into a discrete value base matrix and a coefficient matrix, and then the feature vector and the base Since the product with the matrix is calculated and the product with the coefficient matrix is further calculated, the result of the inner product operation between the feature vector and each of the plurality of real vectors can be obtained at high speed, and thus the feature vector and the plurality of real vectors can be obtained. Relevance can be determined at high speed.
本発明によれば、二値化された特徴ベクトルと複数の実数ベクトルの各々との内積計算を高速化でき、そのような特徴ベクトルと複数の実数ベクトルの各々との関連性の判定を高速に行うことができる。 According to the present invention, it is possible to speed up the inner product calculation of a binarized feature vector and each of a plurality of real vectors, and to quickly determine the relevance between such a feature vector and each of a plurality of real vectors. It can be carried out.
以下、本発明の実施の形態の特徴量演算装置について、図面を参照しながら説明する。 Hereinafter, a feature value computing device according to an embodiment of the present invention will be described with reference to the drawings.
まず、特徴ベクトルとの内積を計算すべき実数ベクトルが複数ある場合について説明する。図1は、複数の識別基準で画像中の人を識別する場合の線形SVMの例を示す図である。この例では、入力されたある特徴ベクトルに対して、図1に示すように、単にその特徴ベクトルの画像内に人がいるか否かの識別ではなく、それが「大人(正面)」であるか否か、「大人(横)」であるか否か、「子供(正面)」であるか否かをそれぞれ識別する。即ち、特徴ベクトルを識別する基準が複数ある。この場合、図1に示すように、識線形SVMの評価式f(x)の重みパラメータ(以下、「辞書」ともいう。)qは、識別基準ごとに複数(q1,q2,q3,…,qL)用意する必要があり、バイアスbも識別基準ごとに複数(b1,b2,b3,…,bL)用意する必要がある。 First, a case where there are a plurality of real vectors whose inner products with feature vectors are to be calculated will be described. FIG. 1 is a diagram illustrating an example of a linear SVM when a person in an image is identified based on a plurality of identification criteria. In this example, for an input feature vector, as shown in FIG. 1, it is not simply identification of whether or not there is a person in the image of the feature vector, but whether it is “adult (front)”. No, “adult (horizontal)”, and “child (front)” are identified. That is, there are a plurality of criteria for identifying feature vectors. In this case, as shown in FIG. 1, a plurality of (q 1 , q 2 , q 3 ) weight parameters (hereinafter also referred to as “dictionaries”) q of the evaluation formula f (x) of the linac SVM are provided for each identification criterion. ,..., Q L ) and a plurality of bias b (b 1 , b 2 , b 3 ,..., B L ) must be prepared for each identification criterion.
図2は、被写体までの距離に応じた複数の識別基準で画像中の人を識別する場合の線形SVMの例を示す図である。この例では、人の識別が、被写体までの距離、即ち画像内の被写体のスケールの変化に対してロバストとなるように、入力されたある特徴ベクトルに対して、図2に示すように、単にその特徴ベクトルの画像内に大人がいるか否かを識別するだけでなく、それが「大人(遠)」であるか否か、「大人(中距離)」であるか否か、「大人(近)」であるか否かをそれぞれ識別する。即ち、この場合も、特徴ベクトルを識別する基準が複数あり、よって、図2に示すように、線形SVMの辞書qは、識別基準ごとに複数(q1,q2,q3,…,qL)用意する必要があり、バイアスbも識別基準ごとに複数(b1,b2,b3,…,bL)用意する必要がある。 FIG. 2 is a diagram illustrating an example of a linear SVM when a person in an image is identified based on a plurality of identification criteria according to the distance to the subject. In this example, as shown in FIG. 2, for a certain feature vector input, the identification of a person is robust to the distance to the subject, that is, the change in the scale of the subject in the image. In addition to identifying whether there is an adult in the image of the feature vector, whether it is “adult (far)”, whether it is “adult (medium distance)”, “adult (near) ) ”Or not. That is, in this case as well, there are a plurality of criteria for identifying feature vectors. Therefore, as shown in FIG. 2, the linear SVM dictionary q is divided into a plurality (q 1 , q 2 , q 3 ,. L ) must be prepared, and a plurality of bias b (b 1 , b 2 , b 3 ,..., B L ) must be prepared for each identification criterion.
このように、ある特徴ベクトルに対して複数の基準で識別を行う場合には、それらの複数の基準が互いに似ていることが多い。図1及び図2もそのような例を示しており、即ち、図1の例では、「大人(正面)」と「大人(横)」は、大人という共通点を有し、「大人(正面)」と「子供(正面)」は、人の正面という共通点を有し、また、「大人(正面)」と「大人(横)」と「子供(正面)」は、人という共通点を有する。図2の例でも、「大人(遠)」と「大人(中距離)」と「大人(近)」は、「大人」という共通点を有する。よって、図1及び図2の複数の実数ベクトルである辞書(q1,q2,q3,…,qL)は互いに似ている。また、k−meansクラスタリングにおいても、k個の実数ベクトルである代表ベクトルが互いに似ていることが多い。本発明の実施の形態の関連性判定装置は、このように複数の実数ベクトルが互いに似ているという性質を生かして、処理を高速化する。 As described above, when a certain feature vector is identified by a plurality of criteria, the plurality of criteria are often similar to each other. FIG. 1 and FIG. 2 also show such an example, that is, in the example of FIG. 1, “adult (front)” and “adult (horizontal)” have the common point of adults. ) ”And“ Children (front) ”have the common feature of people, and“ Adults (front) ”,“ Adults (horizontal) ”and“ Children (front) ”have the common features of people. Have. Also in the example of FIG. 2, “adult (far)”, “adult (medium distance)”, and “adult (near)” have a common point of “adult”. Therefore, the dictionaries (q 1 , q 2 , q 3 ,..., Q L ) that are a plurality of real vectors in FIGS. 1 and 2 are similar to each other. In k-means clustering, representative vectors that are k real vectors are often similar to each other. The relevance determination apparatus according to the embodiment of the present invention speeds up processing by taking advantage of the property that a plurality of real vectors are similar to each other.
1.実施の形態
1−1.第1の実施の形態
図3は、本発明の実施の形態の特徴量演算装置100の構成を示すブロック図である。特徴量演算装置100は、コンテンツ取得部101と、特徴ベクトル生成部102と、特徴ベクトル二値化部103と、実数行列取得部104と、実数行列分解部105と、ベクトル演算部106と、データベース107とを備えている。
1. Embodiment 1-1. First Embodiment FIG. 3 is a block diagram showing a configuration of a feature
本実施の形態の特徴量演算装置100は、後述するように、特徴ベクトルと辞書データとしてデータベースに保存された複数の実数ベクトルとの内積演算を伴うベクトル演算によって、特徴ベクトルと複数の実数ベクトルとの関連性を判定する関連性判定装置として機能する。即ち、特徴演算装置100は、本発明の関連性判定装置に相当する。
As will be described later, the feature
関連性判定装置としての特徴量演算装置100は、コンピュータが本発明の実施の形態の関連性判定プログラムを実行することにより実現される。関連性判定プログラムは、記録媒体に記録されて、記録媒体からコンピュータによって読み出されてもよいし、ネットワークを通じてコンピュータにダウンロードされてもよい。
The feature
コンテンツ取得部101は、画像データ、音声データ、文字データ等のコンテンツデータを取得する。これらのコンテンツデータは、外部機器から与えられるものであってもよく、コンテンツ取得部101で生成されるものであってもよい。例えば、コンテンツ取得部101がカメラであり、そこでコンテンツデータとして画像データが生成されてよい。
The
特徴ベクトル生成部102は、コンテンツ取得部101にて取得されたコンテンツデータからD次元の特徴ベクトルを生成する。例えばコンテンツが画像である場合には、特徴ベクトル生成部102は、画像の特徴量を抽出する。特徴ベクトル二値化部103は、特徴ベクトル生成部102で生成されたD次元の特徴ベクトルを二値化して、各要素が−1及び1の二値のみをとるd次元の二値ベクトルp∈{−1,1}dを生成する。この特徴ベクトル二値化部103は、本発明の「特徴ベクトル取得部」に相当する。
The feature
なお、コンテンツ取得部101、特徴ベクトル生成部102、及び特徴ベクトル二値化部103からなる構成は、最終的に二値化された特徴ベクトルを取得できる構成であればよく、例えば、コンテンツ取得部101及び特徴ベクトル生成部102を備えずに、特徴ベクトル二値化部103が外部機器から特徴ベクトルを取得して、その取得した特徴ベクトルを二値化する構成であってよいし、また、特徴ベクトル二値化部103外部機器から二値化された特徴ベクトルを直接取得する構成であってもよい。
The configuration including the
実数行列取得部104は、複数のd次元の実数ベクトルqn∈Rd(n=1,2,…,L)を取得する。複数の実数ベクトルqnは、外部機器から与えられるものであってもよく、特徴量演算装置100の図示しない記憶装置から読み出されるものであってもよく、実数行列取得部104で生成されるものであってもよい。各実数ベクトルqnは、その要素に浮動小数を含む実数を持つ。ここで、複数の実数ベクトルqnを並べたものを実数行列Q=(q1,q2,q3,…,qL)∈Rd×Lと表記する。
The real
このように複数の実数ベクトルqnをまとめた実数行列Qを用いると、図1及び図2の複数の線形SVMは、下式(1)のようにまとめて表現することができる。
実数行列分解部105は、図4に示すように、d行L列の実数行列Qを、二値の基底行列M∈{−1,1}d×kと係数行列との積に分解する。具体的には、実数行列分解部105は、d行L列の実数行列Qを、下式(2)によって、二値の要素を持つ基底行列Mと実数の要素を持つ係数行列Cに分解する。
すなわち、基底行列Mは、k個の基底ベクトルmiからなり、ここで、基底ベクトルmiは、要素が−1及び1のみをとるd次元の二値ベクトルであり、従って、基底行列Mは、要素が−1及び1のみをとるd行k列の二値行列である。 That is, the basis matrix M is composed of k basis vectors m i , where the basis vector mi is a d-dimensional binary vector having elements of only −1 and 1, and thus the basis matrix M is , Is a binary matrix of d rows and k columns in which elements take only -1 and 1.
また、係数行列Cは、L個(Lはクラス数)の係数ベクトルcnからなり、ここで、係数ベクトルcnは、k個(kは基底数)の基底ベクトルに係る実数の係数を要素として持つk次元の実数ベクトルである。もちろん、QとMCはなるべく一致するように分解することが好ましいが、誤差を含んでもよい。以下、実数行列分解部105が実数行列Qを式(2)のように分解する手法を説明する。
The coefficient matrix C, L number (L is the number of classes) a coefficient vector c n of where the coefficient vector c n, k pieces (k is the number of base) coefficients of real elements according to basis vectors As a k-dimensional real vector. Of course, it is preferable to decompose Q and MC so that they coincide as much as possible, but an error may be included. Hereinafter, a method in which the real
(第1の分解手法)
第1の分解手法として、データ非依存型の分解手法を説明する。第1の分解手法では、実数行列分解部105は、分解誤差を表す下式(3)のコスト関数g1を解くことで分解
を行う。
As a first decomposition method, a data-independent decomposition method will be described. In the first decomposition method, a real
実数行列分解部105は、以下の手順で上記のコスト関数g1を解く。
(1)基底行列M及び係数行列Cをランダムに初期化する。
(2)基底行列Mの要素を固定して、係数行列Cの要素を最小二乗法により最適化することで、コスト関数g1が最小になるように係数行列Cの要素を更新する。
(3)係数行列Cの要素を固定して、コスト関数g1が最小になるように全探索で基底行列Mの要素を更新する。この最小化アルゴリズムである全探索については、後に詳しく述べる。
(4)収束するまで(2)及び(3)を繰り返す。例えば、コスト関数g1が所定の収束条件(例えば、減少量が一定値以下となる)を満たしたときに、収束したと判定する。
(5)ステップ(1)〜ステップ(4)により得た解を候補として保持する。
(6)ステップ(1)〜ステップ(5)を繰り返し、最もコスト関数g1を小さくできた候補基底行列M及び候補係数行列Cを最終結果として採用する。なお、このステップ(1)〜ステップ(5)の繰り返しはなくてもよいが、複数回繰り返すことで、初期値依存の問題を回避できる。
The real
(1) The base matrix M and the coefficient matrix C are initialized at random.
(2) fixing the elements of a basis matrix M, the elements of the coefficient matrix C by optimizing the least squares method, the cost function g 1 updates the elements of the coefficient matrix C to minimize.
(3) to fix the elements of the coefficient matrix C, the cost function g 1 updates the elements of the basis matrix M at full search to minimize. The full search which is this minimization algorithm will be described in detail later.
(4) Repeat (2) and (3) until convergence. For example, when the cost function g 1 satisfies a predetermined convergence condition (for example, the amount of decrease is a certain value or less), it is determined that the cost function g 1 has converged.
(5) The solutions obtained in steps (1) to (4) are held as candidates.
(6) Step (1) to repeat steps (5), to adopt the most cost function g 1 Decrease be candidate basis matrix M and the candidate coefficient matrix C as the final result. Note that the steps (1) to (5) need not be repeated, but the problem of initial value dependency can be avoided by repeating a plurality of times.
次に、ステップ(3)における基底行列Mの更新処理を説明する。図5の破線枠で囲ったように、基底行列Mのj行目の行ベクトルの要素は、実数行列のj行目の要素のみに依存する。よって、基底行列Mの各行ベクトルの値は、他の行とは独立して最適化することができるので、基底行列Mは、行ごとに網羅探索(全探索)を行うことができる。基底行列Mのj行目の行ベクトルは、本実施の形態のように二値分解の場合は2k通りしか存在しない(なお、後述の第2の実施の形態の三値分解の場合にも3k通りしか存在しない)。よって、実数行列分解部105は、これらをすべて網羅的にチェックし、コスト関数g1を最小化する行ベクトルを採用する。これを基底行列Mのすべての行ベクトルに対して適用して、基底行列Mの要素を更新する。
Next, the update process of the base matrix M in step (3) will be described. As surrounded by the broken line frame in FIG. 5, the element of the row vector of the jth row of the base matrix M depends only on the element of the jth row of the real number matrix. Therefore, the value of each row vector of the base matrix M can be optimized independently of other rows, so that the base matrix M can perform an exhaustive search (full search) for each row. Row vector of the j-th row of the base matrix M is absent only 2 k as in the case of binary decomposition as in the present embodiment (Also in the case of a three-value decomposition of the second embodiment described later There are only 3k ways). Therefore, the real number
(第2の分解手法)
第2の分解手法として、係数行列Cを疎にするデータ非依存型の分解手法を説明する。第2の分解手法では、実数行列分解部105は、分解誤差である下式(4)のコスト関数g2を解くことで分解を行う。
As a second decomposition method, a data-independent decomposition method that makes the coefficient matrix C sparse will be described. In the second decomposition techniques, real
実数行列分解部105は、以下の手順で上記のコスト関数g2を解く。
(1)基底行列M及び係数行列Cをランダムに初期化する。
(2)基底行列Mの要素を固定して、係数行列Cの要素を近接勾配法で最適化する。
(3)係数行列Cの要素を固定して、コスト関数g2が最小になるように全探索で基底行列Mの要素を更新する。
(4)収束するまで(2)及び(3)を繰り返す。例えば、コスト関数g2が所定の収束条件(例えば、減少量が一定値以下となる)を満たしたときに、収束したと判定する。
(5)ステップ(1)〜ステップ(4)により得た解を候補として保持する。
(6)ステップ(1)〜ステップ(5)を繰り返し、最もコスト関数g2を小さくできた候補基底行列M及び候補係数行列Cを最終結果として採用する。なお、このステップ(1)〜ステップ(5)の繰り返しはなくてもよいが、複数回繰り返すことで、初期値依存の問題を回避できる。
Real
(1) The base matrix M and the coefficient matrix C are initialized at random.
(2) The elements of the base matrix M are fixed, and the elements of the coefficient matrix C are optimized by the proximity gradient method.
(3) to fix the elements of the coefficient matrix C, the cost function g 2 updates the elements of the basis matrix M at full search to minimize.
(4) Repeat (2) and (3) until convergence. For example, when the cost function g 2 satisfies a predetermined convergence condition (e.g., decrease amount is less than a predetermined value), it is judged to have converged.
(5) The solutions obtained in steps (1) to (4) are held as candidates.
(6) Step (1) to repeat steps (5), adopts the highest cost function g 2 Decrease be candidate basis matrix M and the candidate coefficient matrix C as the final result. Note that the steps (1) to (5) need not be repeated, but the problem of initial value dependency can be avoided by repeating a plurality of times.
第2の分解手法によれば、係数行列Cを疎にすることができる。係数行列Cを疎にすることで、積MCの計算において、係数行列Cのゼロ要素にかかわる部分を省略することができ、さらに高速に内積計算を行うことができる。 According to the second decomposition method, the coefficient matrix C can be made sparse. By making the coefficient matrix C sparse, in the calculation of the product MC, the portion related to the zero element of the coefficient matrix C can be omitted, and the inner product calculation can be performed at higher speed.
(第3の分解手法)
次に、第3の分解手法を説明する。第1の分解手法では、コスト関数g1として、分解誤差
Next, the third decomposition method will be described. In the first decomposition method, the decomposition error is expressed as the cost function g 1.
そこで、第3の分解手法では、特徴ベクトルpをあらかじめS個集め、これをまとめたものをP∈Rd×Sとする。そして、分解誤差を
この近似分解は、基底ベクトルmiを逐次的に求めることで行うことができる。第3の分解手法の手順は以下のとおりである。
(1)第1又は第2の分解手法によって、基底行列M及び係数行列Cを求めて、これをそれらの初期値とする。
(2)基底行列Mの要素を固定して、係数行列Cの要素を最小二乗法で最適化する。
(3)係数行列Cの要素を固定して、基底行列Mの要素を最適化することで、基底行列Mの要素を更新する。この基底行列Mの更新処理については後述する。
(4)収束するまで(2)及び(3)を繰り返し、コスト関数g3を最小化した基底行列M及び係数行列Cを候補として保持する。
(5)ステップ(1)〜(6)を繰り返し、コスト関数g3を最小化した基底行列M及び係数行列Cを最終結果として採用する。なお、ステップ(1)では再度第1又は第2の分解手法による基底行列M及び係数行列Cの最適化が行われるので、初期値が変更される。また、ステップ(5)の繰り返しはなくてもよいが、複数回繰り返すことで、初期値依存の問題を軽減できる。
This approximation decomposition can be performed by obtaining the basis vectors m i sequentially. The procedure of the third decomposition method is as follows.
(1) The base matrix M and the coefficient matrix C are obtained by the first or second decomposition method and set as initial values thereof.
(2) The elements of the base matrix M are fixed, and the elements of the coefficient matrix C are optimized by the least square method.
(3) The elements of the base matrix M are updated by fixing the elements of the coefficient matrix C and optimizing the elements of the base matrix M. The update process of the base matrix M will be described later.
(4) until convergence Repeat (2) and (3), to hold the cost function g 3 as a minimized basis matrix M and the candidate coefficient matrix C have.
(5) Step (1) repeatedly to (6), employs a cost function g 3 as a final result a basis matrix M and the coefficient matrix C minimized. In step (1), since the base matrix M and the coefficient matrix C are optimized again by the first or second decomposition method, the initial values are changed. In addition, although step (5) may not be repeated, the problem of initial value dependency can be reduced by repeating a plurality of times.
次に、ステップ(3)における基底行列Mの更新処理を説明する。データ依存分解の場合、基底行列Mの行ベクトルの値は、もはや他の行と独立せず、依存してしまう。基底行列Mの要素は、二値又は三値、即ち離散値であるため、基底行列Mの最適化は、組合最適化問題となる。よって、基底行列Mの最適化には、例えば、グリーディアルゴリズム(Greedy algorithm)、タブーサーチ(Tabu search)、シミュレイテッドアニーリング(Simulated annealing)等のアルゴリズムを用いることができる。ステップ(1)でよい初期値が得られているので、これらのアルゴリズムでも良好に分解誤差を最小化できる。 Next, the update process of the base matrix M in step (3) will be described. In the case of data-dependent decomposition, the value of the row vector of the base matrix M is no longer independent of other rows and is dependent. Since the elements of the base matrix M are binary or ternary, that is, discrete values, the optimization of the base matrix M becomes a combinatorial optimization problem. Thus, for example, an algorithm such as a greedy algorithm, a tabu search, or a simulated annealing can be used to optimize the base matrix M. Since a good initial value is obtained in step (1), these algorithms can satisfactorily minimize the decomposition error.
例えばグリーディアルゴリズムを用いる場合は、以下の手順で基底行列Mを最適化する。
(3−1)基底行列Mの要素のうち、ランダムにT個を選択する。
(3−2)2T通りの組み合わせ(後述の三値分解の場合は3T通り)を試し、最もコスト関数g3を最小化したものを採用する。
(3−3)ステップ(3−1)及びステップ(3−2)を収束するまで繰り返す。
For example, when the greedy algorithm is used, the base matrix M is optimized by the following procedure.
(3-1) T elements of the base matrix M are selected at random.
(3-2) tried combination of street 2 T (3 T as if 3 value decomposition described later), it is taken from the one cost function g 3 minimized.
(3-3) Repeat step (3-1) and step (3-2) until convergence.
(第4の分解手法)
第4の分解手法は、第2の分解手法と第3の分解手法とを組み合わせてものである。具体的には、実数行列分解部105は、下式(6)のコスト関数g4を解くことで分解を行う。
The fourth decomposition method is a combination of the second decomposition method and the third decomposition method. Specifically, real
(第1及び第2の分解手法の変形例)
上記の第1及び第2のデータ非依存分解の手法は、分解数をkとしたとき、k2通り(三値分解の場合はk3通り)の探索が必要であるため、kが大きいときは、適用が難しい。そのような場合は、あらかじめ実数行列Qに所属する実数ベクトルqnの互いの類似度を調べ、似ている実数ベクトルどうしをクラスタリングし、各クラスタに対して第1又は第2の分解手法を適用すればよい。
(Modification of the first and second decomposition methods)
In the first and second data-independent decomposition methods, when the number of decompositions is k, k 2 types of search (k 3 types in the case of ternary decomposition) are required. Is difficult to apply. In such a case, the similarities of the real vectors q n belonging to the real matrix Q are examined in advance, the similar real vectors are clustered, and the first or second decomposition method is applied to each cluster. do it.
ベクトル演算部106は、特徴ベクトルを用いた演算を行なう。演算の具体的内容については、後述にて、本実施の形態の特徴量演算装置100の応用例とともに具体的に説明する。この特徴ベクトルを用いた演算には、二値化された特徴ベクトルp∈{−1,1}dと実数行列分解部105にて分解された実数行列Qとの積QTpの計算が含まれる。以下では、まず、この積QTpの計算について説明する。
The
積QTpは、下式(7)のように式変形できる。
二値ベクトル同士の内積は、ハミング距離の演算に帰着できる。ハミング距離とは、2つのバイナリコードにおいて、値が異なるビットを数えたものであり、2つの二値ベクトルの間のハミング距離は、すなわち値が異なる要素数を数えたものである。ここで、miとpのハミング距離をDhamming(mi,p)と記述すると、内積mi Tpは、Dhamming(mi,p)と下式(8)の関係がある。
ハミング距離の演算は、2つのバイナリコードにおいて、XORを適用した後に、1が立っているビットを数えることで計算できるので、極めて高速である。二値ベクトルがバイナリコード(0と1のビット列)で表現されているのであれば、ハミング距離は、下式(9)で計算できる。
以上をまとめると、積QTpは下式(10)のように変形できる。
データベース107には、実数行列分解部105にて分解された複数の実数行列Qについて、基底行列Mと係数行列Cの積が辞書データとして記憶されている。ベクトル演算部106は、データベース107から基底行列Mと係数行列Cとの積を読み出して、上記の演算を行う。
The
以上のように、本実施の形態の特徴量演算装置100によれば、特徴ベクトルを用いた演算処理に特徴ベクトルと実数行列との積演算が含まれている場合にも、特徴ベクトルを二値化した上で、実数行列についても、二値行列である基底行列と係数行列との積に分解するので、特徴ベクトルと実数行列との積の計算において、特徴ベクトルと基底行列との積を計算した上で、さらに係数行列との積を計算することで、特徴ベクトルと実数行列との積演算を高速化できる。
As described above, according to the feature
また、複数の実数ベクトルを1つの実数行列としてまとめ、その実数行列を二値行列である基底行列と係数行列とに分解するので、先願の技術のように各実数ベクトルをそれぞれ分解する場合と比較して、基底行列を構成する基底ベクトルの個数、即ち基底数を小さくすることができる。原理的には、1クラスあたり1個以下の基底数(即ち、基底数k≦クラス数L)とすることも可能である。 In addition, since a plurality of real vectors are combined into one real matrix and the real matrix is decomposed into a binary matrix, a base matrix and a coefficient matrix, each real vector is decomposed as in the prior application technique. In comparison, the number of basis vectors constituting the basis matrix, that is, the number of basis can be reduced. In principle, it is possible to set the number of bases to one or less per class (that is, base number k ≦ number of classes L).
1−2.第1の実施の形態の拡張
上記の第1の実施の形態では、二値ベクトルmi、pを、それぞれ、mi∈{−1,1}d、p∈{−1,1}dと定義して、実数行列を二値の基底行列と実数の係数行列との積に分解することで積演算QTpが高速になることを説明した。しかしながら、mi、pをより一般的な二値ベクトルmi´∈{−a,a}d、p´∈{−a,a}dとしても、それらの高速な積演算が可能である。この場合、mi´Tp´=a2(mi Tp)であることから、−1及び1により定義される二値ベクトル同士の内積にa2を掛ければよい。
1-2. Extension of the First Embodiment In the first embodiment described above, the binary vectors m i and p are converted to m i ε {−1,1} d and pε {−1,1} d , respectively. By definition, it has been explained that the product operation Q T p becomes faster by decomposing a real matrix into a product of a binary base matrix and a real coefficient matrix. However, even if m i and p are more general binary vectors m i ′ ε {−a, a} d and p′ε {−a, a} d , their high-speed product operations can be performed. In this case, since m i ′ T p ′ = a 2 (m i T p), the inner product of binary vectors defined by −1 and 1 may be multiplied by a 2 .
さらに、特徴ベクトル及び基底ベクトルを任意の二値ベクトルmi´´∈{α,β}d、p´´∈{γ,δ}dとしても、高速な内積演算が可能である。ここで、係数α、β、γ、δは実数であり、α≠β、γ≠δである。この場合、mi´´及びp´´は、−1及び1により定義される二値ベクトルmi及びpの各要素に線形変換を施すことで得られ、下式(11)及び(12)のように展開される。
内積mi´´Tp´´は、下式(13)のように展開できる。
1−3.第2の実施の形態
次に、第2の実施の形態の特徴量演算装置を説明する。第2の実施の形態の特徴量演算装置の構成は、図1に示した第1の実施の形態のそれと同じである。第1の実施の形態では、実数行列分解部105は、実数行列Qを式(1)によって二値の基底行列と実数の係数行列に分解したが、本実施の形態の特徴量演算装置100の実数行列分解部105は、実数行列を三値の基底行列と実数の係数行列に分解する。
1-3. Second Embodiment Next, a feature amount computing device according to a second embodiment will be described. The configuration of the feature quantity computing device of the second embodiment is the same as that of the first embodiment shown in FIG. In the first embodiment, the real number
実数行列分解部105は、d行L列の実数行列Q∈Rd×Lを、三値の基底行列と実数の係数行列の積に分解する。具体的には、実数行列分解部105は、d行L列の実数行列Q∈Rd×Lを、下式(14)によって、三値の要素を持つ基底行列Mと実数の要素を持つ係数行列Cに分解する。
また、係数行列Cは、L個(Lはクラス数)の係数ベクトルcnからなり、ここで、係数ベクトルcnは、k個の基底ベクトルに係る実数の係数を要素として持つk次元の実数ベクトルである。もちろん、QとMCはなるべく一致するように分解することが好ましいが、誤差を含んでもよい。実数行列分解部105は、第1の実施の形態と同様にして、第1〜第3の分解手法によって実数行列Qを分解できる。
The coefficient matrix C, L number (L is the number of classes) a coefficient vector c n of where the coefficient vector c n, k-dimensional real number having real coefficients according to the k basis vectors as elements Is a vector. Of course, it is preferable to decompose Q and MC so that they coincide as much as possible, but an error may be included. The real number
ベクトル演算部106は、積QTpを計算する。以下では、積QTpを計算するベクトル演算部106を特に、積演算部106とも呼ぶ。積QTpは、下式(15)のように式変形できる。
まず、積演算部106は、miの0の要素を、−1又1に置き換える。miの各要素について、それを−1に置き換えるか、1に置き換えるかは、いずれでもよい。この置き換えによって、0置換ベクトルmi bin∈{−1,1}dが生成される。この0置換ベクトルmi bin∈{−1,1}dは二値ベクトルである。
First,
また、積演算部106は、miの0の要素を−1に置き換え、0以外の要素を1に置き換える。この置き換えによって、フィルタベクトルmi filter∈{−1,1}dが生成される。このフィルタベクトルmi filterも二値ベクトルである。
Also,
さらに、積演算部106は、miの0の要素数ziを求める。ziは整数となる。積演算部106は、これらの二値ベクトルmi bin、フィルタベクトルmi filter、及び0要素数ziを用いて、式(15)におけるmi Tpを、下の式(16)及び式(17)によって計算する。
以下、図6の具体例を用いて、式(16)及び(17)の導出を説明する。図6は、本実施の形態の計算例を示す図である。図6の例では、p={−1,1,−1,1,−1,1}であり、mi={−1,0,1,0,1,1}である。この例では、mi bin={−1,*,1,*,1,1}となる。ここで、「*」は−1又は1の任意のいずれかを示す。また、mi filter={1,−1,1,−1,1,1}となり、zi=2となる。 Hereinafter, the derivation of Expressions (16) and (17) will be described using the specific example of FIG. FIG. 6 is a diagram illustrating a calculation example of the present embodiment. In the example of FIG. 6, p = {- 1,1, -1,1, -1,1} and is, m i = - a {1,0,1,0,1,1}. In this example, m i bin = {- 1 , *, 1, *, 1,1} a. Here, “*” represents any one of −1 or 1. Also, m i filter = {1, -1,1, -1,1,1} , and becomes a z i = 2.
式(17)におけるpとmi binとの排他的論理和は、XOR(p,mi bin)={−1,*,1,*,1,−1}となり、すなわち、pとmiの要素のうち、非0で異なっている要素すなわち−1と1又は1と−1の組となる要素が1となり、−1と−1又は1と1の組となる要素が−1となる。 The exclusive OR of p and m i bin in equation (17) is XOR (p, m i bin ) = {− 1, *, 1, *, 1, −1}, that is, p and mi Among the elements of, elements that are non-zero and different, that is, elements that are a pair of -1 and 1 or 1 and -1, are 1, and elements that are a pair of -1 and -1 or 1 and 1 are -1. .
次に、その排他的論理和とmi filterとの論理積は、AND(XOR(p,mi bin),mi filter))={−1,−1,1,−1,1,−1}となり、pとmiの要素のうち、非0で異なっている要素に1が立ち、それ以外は−1となる。このビットカウントを取ると、1である要素の個数、すなわち非0で異なっている要素の個数が数え上げられ、Dfiltered_hamming(p,mi bin,mi filter)=2となる。
Next, the logical product of the exclusive OR and m i filter is, AND (XOR (p, m i bin), m i filter)) = {- 1, -1,1, -1,1, - 1}, and the elements of p and
ここで、pとmiの要素のうち、1と1又は−1と−1の組となる要素の個数は、全要素数d=6から、非0で異なっている要素の個数Dfiltered_hamming=2と0である要素の個数zi=2を引くことで求められる。すなわち、1と1又は−1と−1の組となる要素の数=d−Dfiltered_hamming−zi=6−2−2=2となる。 Among the elements of p and m i, 1 and 1 or -1 and the number of sets to become elements of -1, the total number of elements d = 6, elements that differ nonzero number D filtered_hamming = It is obtained by subtracting the number z i = 2 of elements that are 2 and 0. That is, the number of elements that are a set of 1 and 1 or −1 and −1 = d−D filtered_hamming− z i = 6-2-2 = 2.
mi Tpは、1と1又は−1と−1の組となる要素(積が1になる要素の組)の個数から、−1と1又は1と−1との組となる要素(積が−1になる要素の組)の個数を引いた値と等しいため、mi Tp=(d−Dfiltered_hamming−zi)−Dfiltered_hamming=d−zi−2Dfiltered_hammingとなり、式(16)が得られ、その値は、6−2−2×2=0となる。なお、この結果は、当然ながら、pTmi={−1,1,−1,1,−1,1}×{−1,0,1,0,1,1}=1+0+(−1)+0+(−1)+1=0と一致する。 m i T p is an element (a set of −1 and 1 or 1 and −1) from the number of elements (a set of elements whose product is 1) that is a set of 1 and 1 or −1 and −1. since the product is equal to the value obtained by subtracting the number of pairs) of the elements becomes -1, m i T p = ( d-D filtered_hamming -z i) -D filtered_hamming = d-z i -2D filtered_hamming next, formula (16 ), And the value is 6-2-2 × 2 = 0. It should be noted that, as a matter of course, p T m i = {− 1,1, −1,1, −1,1} × {−1,0,1,0,1,1} = 1 + 0 + (− 1 ) +0 + (− 1) + 1 = 0.
式(15)〜(17)をまとめると、積QTpは、下式(18)のように変形できる。
関数Dfiltered_hamming(p,mi bin,mi filter)は、ハミング距離演算と非常に似ており、AND演算が加わっただけである。したがって、Q∈Rd×Lを、三値行列と係数行列との積に分解した場合でも、QTpを浮動小数点精度で計算するよりも、はるかに高速にQTpを計算できるようになる。 The function D filtered_hamming (p, m i bin , m i filter ) is very similar to the Hamming distance calculation and only an AND operation is added. Therefore, the Q∈R d × L, even when decomposed into a product of the three value matrix and the coefficient matrix, rather than calculating the Q T p in floating point precision, so that it can calculate the Q T p much faster Become.
以上のように、d次元の実数行列Q∈Rd×Lを、二値ではなく三値の基底行列と係数行列との積に分解することの利点は、式(10)の近似が、より少ない数の基底数の基底行列でも成立するようになることにある。すなわち、基底数を小さく抑えられることになるため、さらなる高速化につながる。 As described above, the advantage of decomposing a d-dimensional real matrix Q∈R d × L into a product of a ternary basis matrix and a coefficient matrix instead of binary is that the approximation of Equation (10) is more The reason is that even a basis matrix with a small number of basis numbers is established. That is, since the number of bases can be kept small, the speed is further increased.
1−4.第2の実施の形態の拡張
上記の第2の実施の形態では、二値ベクトルp及び三値ベクトルmiを、それぞれ、p∈{−1,1}d、mi∈{−1,0,1}dと定義して、複数の実数ベクトルからなる実数行列を三値の基底行列と係数行列との積に分解することで内積演算pTmiが高速になることを説明した。しかしながら、p、miをより一般的な二値ベクトルp´∈{−a,a}d、三値ベクトルmi∈{−a,0,a}dとしても、それらの高速な内積演算が可能である。この場合、p´Tmi´=a2(pTmi)であることから、−1及び1により定義される二値ベクトル同士の内積にa2を掛ければよい。
1-4. In the second embodiment of the extension above second embodiment, the binary vector p and ternary vector m i, respectively, p∈ {-1,1} d, m i ∈ {-1,0 , 1} d , it has been explained that the inner product operation p T m i is accelerated by decomposing a real matrix composed of a plurality of real vectors into a product of a ternary basis matrix and a coefficient matrix. However, even if p and m i are more general binary vectors p′∈ {−a, a} d and ternary vectors m i ∈ {−a, 0, a} d , their high-speed inner product operations can be performed. Is possible. In this case, since p ′ T m i ′ = a 2 (p T m i ), the inner product of binary vectors defined by −1 and 1 may be multiplied by a 2 .
さらに、二値ベクトルp及び三値ベクトルmiをp∈{α,β}d、mi∈{γ−δ,γ,γ+δ}dと一般化しても、高速な内積演算が可能である。ここで、α、β、γ、δは実数であり、α≠β、δ≠0である。この場合、mi及びpの各要素に下式(19)及び(20)の線形変換を施すことで、それぞれmi´´及びp´´が得られる。
内積mi´´Tp´´は、下式(21)のように展開できる。
2.応用例
次に、ベクトル演算部106における演算処理について説明する。上記の第1及び第2の実施の形態のベクトル演算部106は、二値化された特徴ベクトルpと複数の実数ベクトルqをまとめた実数行列Qとの積の計算を伴うものであるが、そのような演算処理は種々ある。すなわち、本発明の上記の実施の形態は、特徴ベクトルを用いて演算処理を行なう種々の装置に応用できる。
2. Application Example Next, calculation processing in the
2−1.第1の応用例
本応用では、本発明がHOG特徴量を用いてSVMにより複数種類の物体を認識する物体認識装置に応用される。図7は、物体認識装置の構成を示すブロック図である。物体認識装置10は、ピラミッド画像生成部11と、HOG特徴量抽出部12と、バイナリコード変換部13と、パラメータ決定部14と、パラメータ行列分解部15と、線形SVM識別部16と、ピーク検出部17とを備えている。
2-1. First Application Example In this application, the present invention is applied to an object recognition apparatus that recognizes a plurality of types of objects by SVM using HOG feature values. FIG. 7 is a block diagram illustrating a configuration of the object recognition apparatus. The
ピラミッド画像生成部11は、入力クエリとしての画像を取得して、当該画像を複数段階の倍率でそれぞれ縮小してなるG段のピラミッド画像を生成する。これにより、サイズの異なる物体に対処できる。このピラミッド画像生成部11は、図3に示したコンテンツ取得部101に対応する。HOG特徴量抽出部12は、ピラミッド画像の各段における画像を、16×16ピクセルのサイズのブロックに分割し、各ブロックからHOG特徴量を抽出する。HOG特徴量抽出部12は、各ブロックからD次元の特徴量を抽出する。このHOG特徴量抽出部12は、図3に示した特徴ベクトル抽出部102に対応する。バイナリコード変換部13は、各セルに与えられたD次元の特徴量を、d次元の二値ベクトルに変換する。このバイナリコード変換部13は、図3に示した特徴ベクトル二値化部103に対応する。
The pyramid
パラメータ決定部14は、認識したい対象の種類(大人、子供、車、バイクといった種類であって、パラメータで定義される)ごとに、それぞれ線形SVM識別部16における線形SVMにて用いる重みベクトルwn(n=1,2,…,L)及び実数のバイアスbn(n=1,2,…,L)を決定する。パラメータ決定部14は、学習用に用意された特徴量を用いて、学習処理によってL種類の重みベクトルwn及びバイアスbnを決定して、重みベクトルwnをまとめた重み行列Wを生成する。このパラメータ決定部14は、図3に示した実数行列取得部104に対応する。パラメータ行列分解部15は、重み行列Wを第1又は第2の実施の形態で説明した式(2)又は式(14)によって離散値の基底行列と係数行列との積に分解する。このパラメータ行列分解部15は、図3に示した実数行列分解部105に対応する。
The
線形SVM識別部16は、線形SVMによって特徴ベクトルの識別を行なう。線形SVM識別部16は、まず、sx×syブロックをひとまとまりとして、検出ウィンドウを構成する。1つの検出ウィンドウから抽出される特徴ベクトルは、sx×sy×d次元のベクトルとなる。線形SVM識別部16は、この特徴ベクトルに対して、下式(22)の線形SVMを適用する。
検出位置付近では、検出結果が固まることがある。そこで、ピーク検出部17は、周辺でf(x)の値が最大になったところを、代表的な検出位置とする。この線形SVM識別部16及びピーク検出部17は、特徴ベクトルを用いた処理を行なう構成であり、図3のベクトル演算部106に対応する。
The detection result may be hardened in the vicinity of the detection position. Therefore, the
次に、この物体認識装置10において、HOG特徴量により、回転し得る物体を検出する例を説明する。図8は、回転する道路標識について、それぞれの回転角度で辞書qn及びバイアスbnを作成する場合を示している。図8において左右方向は道路標識の回転角度θを示している。
Next, an example will be described in which the
従来のアプローチでは、回転角度ごとに学習処理を行って辞書qn及びバイアスbnを取得する。その後、入力画像からHOG特徴量を抽出して、検出ウィンドウ(スライディングウィンドウ)をL回適用することでこの道路標識の検出を行っている。しかしながら、このような従来の手法では、1検出ウィンドウあたりL回の内積計算が必要となり、計算量が多くなる。また、検出の角度分解能は2pi/Lであり、粗い。 In the conventional approach, the learning process is performed for each rotation angle to obtain the dictionary q n and the bias b n . Thereafter, the HOG feature amount is extracted from the input image, and this road sign is detected by applying a detection window (sliding window) L times. However, such a conventional method requires L times of inner product calculation per detection window, which increases the amount of calculation. Further, the angular resolution of detection is 2 pi / L, which is rough.
そこで、本応用例では、パラメータ決定部14が辞書qnをまとめて行列Qとし、SVM識別部16は、下式(23)により複数の辞書qnと特徴ベクトルpとの内積計算をまとめて行う。
本応用例では、さらに、ピーク検出部17が、係数行列Cの性質に着目した検出分解能の高精度化を行う。図9は、係数行列Cの性質を示す図である。実数ベクトルqnが回転角度θをパラメータとして、そのパラメータに従って変化するものである場合には、複数の実数ベクトルqnをまとめて実数行列Qを生成する際に、図8に示すように、複数の実数ベクトルqnをパラメータθの順に並べると、図9に示すように、係数行列Cの実数ベクトルqnが並べられた方向と同方向の各ベクトル、即ち係数行列Cの各行ベクトルの要素の行方向の変化が滑らかになる。
In this application example, the
そこで、ピーク検出部17は、係数行列Cの行ベクトルを多項式でフィッティングして、下式(24)のように連続関数で表現する。
これを用いて識別関数の式を整理すると、回転角度θにおける識別関数は下式(25)のようにパラメータθに関する連続関数の形式で表現できる。
以上のように、複数の辞書qnをまとめて行列Qを生成する際に、複数の辞書qnをそれが滑らかに変化するように、パラメータ(図8の例ではθ)の順に並べて行列Qを生成することで、識別関数をそのパラメータに関する多項式の形式で表現できるので、高い分解能でそのパラメータを検出できるようになる。 As described above, when generating a matrix Q together multiple dictionaries q n, as the multiple dictionaries q n it changes smoothly, the parameter matrix arranged in the order of (the θ in the example of FIG. 8) Q Since the discriminant function can be expressed in the form of a polynomial related to the parameter, the parameter can be detected with high resolution.
なお、上記ではパラメータを回転角度として説明したが、パラメータは例えばスケールであってもよい。すなわち、図2のように検出ウィンドウの大きさは固定とし、検出ウィンドウ内における人物のサイズ(スケール)ごとに、別々に識別器を学習しておき、スケールσに関して多項式のフィッティングを行い、スケールσに関して識別器のピークを求めることで、高精度にスケール推定をおこなえるようになる。また、このように工夫することで、ピラミッド画像自体の生成を不要とできる。さらにパラメータが複数であってもよい。例えば、回転角度θとスケールσの両方に関して上記の多項式へのフィッティングを行ってもよい。この場合、係数はci(θ,σ)のように、二次元の多項式となる。 In the above description, the parameter is described as the rotation angle, but the parameter may be a scale, for example. That is, as shown in FIG. 2, the size of the detection window is fixed, the classifier is separately learned for each person size (scale) in the detection window, the polynomial is fitted to the scale σ, and the scale σ By obtaining the peak of the discriminator for, the scale can be estimated with high accuracy. Further, by devising in this way, generation of the pyramid image itself can be made unnecessary. Furthermore, there may be a plurality of parameters. For example, fitting to the above polynomial may be performed for both the rotation angle θ and the scale σ. In this case, the coefficient is a two-dimensional polynomial such as c i (θ, σ).
また、係数αiは、まず係数行列Cを求めてから各行をフィッティングして求めることができるが、係数行列Cの個々の要素cn,iを求めずに直接係数αiを求めてもよい。さらに、フィッティングする関数は多項式でなくてもよく、例えば三角関数(サイン、コサイン)にフィッティングしてもよい。 The coefficient α i can be obtained by first obtaining the coefficient matrix C and then fitting each row. However, the coefficient α i may be obtained directly without obtaining the individual elements cn , i of the coefficient matrix C. . Furthermore, the function to be fitted may not be a polynomial, and may be fitted to a trigonometric function (sine, cosine), for example.
2−2.第2の応用例
本実施の形態では、本発明がk−meansクラスタリングに応用される。図11は、k−meansクラスタリング装置の構成を示すブロック図である。k−meansクラスタリング装置20は、コンテンツ取得部21と、特徴ベクトル生成部22と、特徴ベクトル二値化部23と、代表行列更新部24と、収束判定部25と、代表行列分解部26と、最近接代表ベクトル探索部27とを備えている。
2-2. Second Application Example In the present embodiment, the present invention is applied to k-means clustering. FIG. 11 is a block diagram illustrating a configuration of the k-means clustering apparatus. The k-
コンテンツ取得部21は、クラスタリングの対象となるN個のコンテンツを取得する。特徴ベクトル生成部22は、コンテンツ取得部21にて取得した各コンテンツからそれらの特徴量を特徴ベクトルpとして抽出する。特徴ベクトル二値化部23は、特徴ベクトル抽出部22にて抽出された各特徴ベクトルを二値化する。
The
代表行列更新部24は、まず、特徴ベクトル二値化部23で二値化されたN個の特徴ベクトルからk(=L)個をランダムに選出してこれを代表ベクトルqn(n=1,2,…,L)とし、これらの代表ベクトルqnをまとめた行列を代表行列Qとする。収束判定部25は、代表行列更新部24が代表行列を更新するごとに収束判定を行なう。収束判定部25にて収束したと判定された場合には、k−meansクラスタリング装置20はクラスタリングの処理を終了する。代表行列分解部26は、代表行列更新部24にて更新された代表行列を離散値(二値又は三値)行列に分解する。
First, the representative
最近接代表ベクトル探索部27は、特徴ベクトル二値化部23より入力されるN個の二値ベクトルをそれぞれ最も近傍の代表ベクトルqnに所属させる。最近接代表ベクトル探索部27は、この結果を代表行列更新部24に出力する。代表行列更新部24は、各代表ベクトルqnについて、それに所属する特徴ベクトル(二値化されている)の平均ベクトルを算出して、これを新しい代表ベクトルqnとする。このようにして代表行列更新部24で更新される代表ベクトルqnは、二値ベクトルの平均で算出されるので、実数ベクトルとなる。
The closest representative vector search unit 27 causes the N binary vectors input from the feature
従って、仮に代表行列分解部26がなければ、最近接代表ベクトル探索部27は、更新された代表ベクトル(実数ベクトル)と特徴ベクトル(二値ベクトル)との距離を求めるためにそれらの内積を計算しなければならない。そこで、本実施の形態では、上記のように、この代表ベクトルqn(実数ベクトル)の集合である代表行列Qを代表行列分解部26によって、第1又は第2の実施の形態で説明したように、離散値(二値又は三値)行列と実数の係数行列との積に分解する。それによって、最近接代表ベクトル探索部27における、各特徴ベクトルと各代表ベクトルとの距離の計算を高速にでき、よって各特徴ベクトルが最も近接する代表ベクトル(すなわち、所属すべき代表ベクトル)を高速に探索できる。
Accordingly, if there is no representative
2−3.第3の応用例
本実施の形態では、本発明がk−means treeによる近似最近傍探索に応用される。本実施の形態の近似最近傍探索装置は、k−meansを用いたk−分木による近似最近傍探索手法として、Marius Muja and David G. Lowe, "Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration", in International Conference on Computer Vision Theory and Applications (VISAPP' 09), 2009(http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN、http://people .cs.ubc.ca/~mariusm/uploads/FLANN/flann_visapp09.pdf)に提案されている手法を採用する。
2-3. Third Application Example In the present embodiment, the present invention is applied to an approximate nearest neighbor search by k-means tree. The approximate nearest neighbor search apparatus according to the present embodiment uses Marius Muja and David G. Lowe, “Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration”, in as an approximate nearest neighbor search method using a k-ary tree using k-means. International Conference on Computer Vision Theory and Applications (VISAPP '09), 2009 (http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN, http: // people .cs.ubc.ca /~mariusm/uploads/FLANN/flann_visapp09.pdf)
具体的には、本実施の形態の近似最近傍探索装置は、N個のデータに対してk−meansを再帰的に適用することでk−分木を構築し、上記提案の木探索の原理により近似的に最近傍点を探索する。この手法は、データが実数ベクトルであり、かつノードに登録されている代表ベクトルが二値ベクトルである場合を前提として設計される。但し、データが二値ベクトルであって、ノードに登録されている代表ベクトルが実数ベクトルである場合にも、第1又は第2の実施の形態を採用することで、木探索を高速化できる。 Specifically, the approximate nearest neighbor search apparatus of the present embodiment constructs a k-ary tree by recursively applying k-means to N pieces of data, and the principle of the tree search proposed above. To search for the nearest neighbor point approximately. This method is designed on the assumption that the data is a real vector and the representative vector registered in the node is a binary vector. However, even when the data is a binary vector and the representative vector registered in the node is a real vector, the tree search can be speeded up by adopting the first or second embodiment.
3.変形例
特徴量演算装置100において、コンテンツ取得部101、特徴ベクトル生成部102、特徴ベクトル二値化部103、実数行列取得部104、実数行列分解部105、及びベクトル演算部106の一部と他の部分とが別々の装置として構成されていてもよい。特に、コンテンツ取得部101、特徴ベクトル生成部102、特徴ベクトル二値化部103、及びベクトル演算部106が特徴演算装置100に搭載され、実数行列取得部104、及び実数行列分解部105が別の装置に搭載されてよい。この場合には、実数行列分解部105にて分解された複数の実数行列が特徴演算装置100のデータベース107に記憶され、ベクトル演算部106は、データベース107から分解された複数の実数行列を取得する。
3. Modified Example In the feature
上記の実施の形態では、基底行列Mが二値又は三値であったが、基底行列Mが二値又は三値でなくともよい。基底行列Mのとり得る要素の種類が有限の数であれば上記の分解手法を適用して実数行列を分解することができる。また、係数行列Cも、基底行列Mと同様にあらかじめ定められた離散的な値でもよい。例えば、係数行列Cの要素を2のべき乗に制約してもよく、そうすることで、処理を高速化できる。また、分解する実数行列Qの要素の平均値が著しく大きい(若しくは小さい)場合、すなわち、平均値が0から著しく離れている場合には、この平均値をあらかじめ実数行列Qの各要素から引いてオフセット実数行列を生成し、このオフセット実数行列Q´を基底行列Mと係数行列Cに分解すると、より少ない基底で式(2)や式(14)の近似分解を行うことができる。 In the above embodiment, the base matrix M is binary or ternary, but the base matrix M may not be binary or ternary. If the number of types of elements that the base matrix M can take is a finite number, the real matrix can be decomposed by applying the above decomposition method. Also, the coefficient matrix C may be a discrete value determined in advance as in the base matrix M. For example, the elements of the coefficient matrix C may be constrained to a power of 2, and the processing can be speeded up by doing so. When the average value of the elements of the real number matrix Q to be decomposed is remarkably large (or small), that is, when the average value is significantly different from 0, the average value is subtracted from each element of the real number matrix Q in advance. When an offset real number matrix is generated and the offset real number matrix Q ′ is decomposed into a base matrix M and a coefficient matrix C, approximate decomposition of Expression (2) and Expression (14) can be performed with fewer bases.
なお、第1及び第2の実施の形態において、コンテンツ取得部101にて取得されるコンテンツデータは、車両から得られる計測データであってよい。さらに、車両から得られる計測データは、例えば、車両に設置されたカメラで撮影された画像データ、車両に設置されたセンサで計測されたセンシングデータであってよい。この場合に、関連性判定装置としての特徴演算装置100のベクトル演算部106は、計測データと辞書データとの関連性を判定する。例えば、計測データとして、車両に設置されたカメラで撮影された画像データが取得される場合には、辞書データとして複数の人物画像のデータがデータベースに保存されており、関連性判定装置としての特徴演算装置100のベクトル演算部106は、上記の応用例のいずれかによって、画像データの画像に人物が含まれるか否かを判定してよい。
In the first and second embodiments, the content data acquired by the
本発明は、二値化された特徴ベクトルと複数の実数ベクトルの各々との内積計算を高速化でき、そのような特徴ベクトルと複数の実数ベクトルの各々との関連性の判定を高速に行うことができるという効果を有し、複数の実数ベクトルと二値ベクトルに変換された特徴ベクトルとの内積の計算を含むベクトル演算によって特徴ベクトルと複数の実数ベクトルの各々との関連性の判定を行う関連性判定装置等として有用である。 The present invention is capable of speeding up the inner product calculation of a binarized feature vector and each of a plurality of real vectors, and determining the relevance between such a feature vector and each of a plurality of real vectors at high speed. A relationship that determines the relationship between a feature vector and each of a plurality of real vectors by a vector operation including the calculation of the inner product of a plurality of real vectors and a feature vector converted to a binary vector. It is useful as a sex determination device.
100 特徴量演算装置
101 コンテンツ取得部
102 特徴ベクトル生成部
103 特徴ベクトル二値化部
104 実数行列取得部
105 実数行列分解部
106 ベクトル演算部(積演算部)
10 物体認識装置
11 ピラミッド画像生成部
12 HOG特徴量抽出部
13 バイナリコード変換部
14 パラメータ決定部
15 パラメータ行列分解部
16 線形SVM識別部
17 ピーク検出部
20 k−meansクラスタリング装置
21 コンテンツ取得部
22 特徴ベクトル生成部
23 特徴ベクトル二値化部
24 代表行列更新部
25 収束判定部
26 代表行列分解部
27 最近接代表ベクトル算出部
DESCRIPTION OF
DESCRIPTION OF
Claims (9)
複数の実数ベクトルからなる実数行列を、係数行列と、要素として二値または三値の離散値のみを持つ複数の基底ベクトルからなる基底行列との積に分解して得られた前記ベクトルと前記係数行列とを含む辞書データを記憶するデータベースと、
前記特徴ベクトルと前記複数の実数ベクトルの各々との内積の計算として、前記特徴ベクトルと前記基底行列との積を計算し、さらに当該積と前記係数行列との積を計算して、その結果を用いて、前記複数の実数ベクトルの各々と前記特徴ベクトルとの関連性を判定するベクトル演算部と、
を備えたことを特徴とする関連性判定装置。 A feature vector acquisition unit for acquiring a binarized feature vector;
The vector obtained by decomposing a real matrix composed of a plurality of real vectors into a product of a coefficient matrix and a base matrix composed of a plurality of base vectors having only binary or ternary discrete values as elements and the coefficients A database for storing dictionary data including a matrix;
As the calculation of the inner product of the feature vector and each of the plurality of real vectors, the product of the feature vector and the base matrix is calculated, the product of the product and the coefficient matrix is calculated, and the result is A vector operation unit for determining the relevance between each of the plurality of real vectors and the feature vector;
A relevance determination device characterized by comprising:
前記複数の実数ベクトルは、複数の線形識別器のパラメータに対応する複数の重みベクトルであり、
前記ベクトル演算部は、前記関連性の判定として、前記複数の線形識別器の識別関数によって、複数の基準の各々に対する前記特徴ベクトルの識別を行なう
ことを特徴とする請求項2に記載の関連性判定装置。 The feature vector is a HOG feature amount,
The plurality of real vectors are a plurality of weight vectors corresponding to parameters of a plurality of linear classifiers,
The relevance according to claim 2, wherein the vector calculation unit identifies the feature vector for each of a plurality of criteria by using an identification function of the plurality of linear classifiers as the relevance determination. Judgment device.
前記ベクトル演算部は、前記係数行列を構成する複数のベクトルであって前記複数の実数ベクトルが並べられた方向と同方向の複数のベクトルの各々を前記パラメータに関する連続関数で表現し、前記識別関数を最大にする前記パラメータを、前記特徴ベクトルのパラメータ値として求めることを特徴とする請求項4に記載の関連性判定装置。 When the feature vector and the plurality of real vectors have one or more parameters, the real matrix generation unit generates the real matrix by arranging the plurality of real vectors according to the order of the parameters,
The vector calculation unit represents each of a plurality of vectors constituting the coefficient matrix in the same direction as a direction in which the plurality of real vectors are arranged as a continuous function related to the parameter, and the identification function The relevance determination apparatus according to claim 4, wherein the parameter that maximizes the value is obtained as a parameter value of the feature vector.
前記実数ベクトルは、k−meansクラスタリングにおける代表ベクトルであり、
前記ベクトル演算部は、前記関連性の判定として、前記特徴ベクトルと前記代表ベクトルとの間の距離の演算を含むクラスタリング処理を行なう
ことを特徴とする請求項1ないし3のいずれか一項に記載の関連性判定装置。 The feature vector is a vector to be clustered by k-means clustering,
The real vector is a representative vector in k-means clustering,
The said vector calculating part performs the clustering process including the calculation of the distance between the said feature vector and the said representative vector as determination of the said relationship. The Claim 1 thru | or 3 characterized by the above-mentioned. Relevance determination device.
前記実数ベクトルは、k−分木のノードに登録されている代表ベクトルであり、
前記ベクトル演算部は、前記関連性の判定として、前記特徴ベクトルと前記代表ベクトルとの間の距離の演算を含むクラスタリング処理を行なう
ことを特徴とする請求項1ないし3のいずれか一項に記載の関連性判定装置。 The feature vector is a vector to be subjected to an approximate nearest neighbor search by k-means tree,
The real vector is a representative vector registered in a node of the k-ary tree,
The said vector calculating part performs the clustering process including the calculation of the distance between the said feature vector and the said representative vector as determination of the said relationship. The Claim 1 thru | or 3 characterized by the above-mentioned. Relevance determination device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017139451A JP6375420B2 (en) | 2017-07-18 | 2017-07-18 | Relevance determination device and relevance determination program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017139451A JP6375420B2 (en) | 2017-07-18 | 2017-07-18 | Relevance determination device and relevance determination program |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014010648A Division JP6259671B2 (en) | 2014-01-23 | 2014-01-23 | Relevance determination device, relevance determination program, and relevance determination method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017215984A JP2017215984A (en) | 2017-12-07 |
JP6375420B2 true JP6375420B2 (en) | 2018-08-15 |
Family
ID=60577100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017139451A Active JP6375420B2 (en) | 2017-07-18 | 2017-07-18 | Relevance determination device and relevance determination program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6375420B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111492049B (en) | 2017-11-08 | 2023-11-03 | 株式会社钟化 | Inspection equipment |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5258915B2 (en) * | 2011-02-28 | 2013-08-07 | 株式会社デンソーアイティーラボラトリ | Feature conversion device, similar information search device including the same, coding parameter generation method, and computer program |
-
2017
- 2017-07-18 JP JP2017139451A patent/JP6375420B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017215984A (en) | 2017-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6566397B2 (en) | Recognition device, real matrix decomposition method, recognition method | |
JP7360497B2 (en) | Cross-modal feature extraction method, extraction device, and program | |
JP6055391B2 (en) | Relevance determination device, relevance determination program, and relevance determination method | |
Shen et al. | A fast optimization method for general binary code learning | |
CN109716362B (en) | Neural network device, vehicle control system, decomposition processing device, and program | |
Al Maadeed et al. | Automatic prediction of age, gender, and nationality in offline handwriting | |
JP6259671B2 (en) | Relevance determination device, relevance determination program, and relevance determination method | |
JP6235414B2 (en) | Feature quantity computing device, feature quantity computing method, and feature quantity computing program | |
Schonberger et al. | Paige: pairwise image geometry encoding for improved efficiency in structure-from-motion | |
CN112163114B (en) | Image retrieval method based on feature fusion | |
Patro et al. | Dictionary-based classifiers for exploiting feature sequence information and their application to hyperspectral remotely sensed data | |
EP4285281A1 (en) | Annotation-efficient image anomaly detection | |
Jayady et al. | Theme Identification using Machine Learning Techniques | |
Ganji et al. | Multi variant handwritten Telugu character recognition using transfer learning | |
Akhand et al. | Human age prediction from facial image using transfer learning in deep convolutional neural networks | |
Salman et al. | Gene expression analysis via spatial clustering and evaluation indexing | |
JP6375420B2 (en) | Relevance determination device and relevance determination program | |
Menon et al. | Document classification with hierarchically structured dictionaries | |
Liu et al. | Multiview Cross-Media Hashing with Semantic Consistency | |
Xia et al. | Graph based family relationship recognition from a single image | |
Jilcha et al. | Machine learning-based advertisement banner identification technique for effective piracy website detection process | |
Kaur et al. | Newspaper text recognition printed in Gurumukhi script: SVM versus MLP | |
CN112149566A (en) | Image processing method and device, electronic equipment and storage medium | |
JP2022131443A (en) | Inference program and inference method | |
Gauquier et al. | Automatically Inferring the Document Class of a Scientific Article |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180629 |
|
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: 20180717 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180723 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6375420 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |