JP6055391B2 - 関連性判定装置、関連性判定プログラム、及び関連性判定方法 - Google Patents

関連性判定装置、関連性判定プログラム、及び関連性判定方法 Download PDF

Info

Publication number
JP6055391B2
JP6055391B2 JP2013214182A JP2013214182A JP6055391B2 JP 6055391 B2 JP6055391 B2 JP 6055391B2 JP 2013214182 A JP2013214182 A JP 2013214182A JP 2013214182 A JP2013214182 A JP 2013214182A JP 6055391 B2 JP6055391 B2 JP 6055391B2
Authority
JP
Japan
Prior art keywords
vector
inner product
feature
relevance determination
binary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013214182A
Other languages
English (en)
Other versions
JP2014112358A (ja
Inventor
満 安倍
満 安倍
幹郎 清水
幹郎 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Denso IT Laboratory Inc
Original Assignee
Denso Corp
Denso IT Laboratory Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp, Denso IT Laboratory Inc filed Critical Denso Corp
Priority to JP2013214182A priority Critical patent/JP6055391B2/ja
Priority to US14/432,592 priority patent/US10409886B2/en
Priority to PCT/JP2013/006482 priority patent/WO2014068990A1/ja
Publication of JP2014112358A publication Critical patent/JP2014112358A/ja
Application granted granted Critical
Publication of JP6055391B2 publication Critical patent/JP6055391B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Algebra (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Description

本発明は、画像、音声、文字等のコンテンツの特徴ベクトルを用いた演算処理を行う関連性判定装置、関連性判定プログラム、及び関連性判定方法に関し、特に、実数ベクトルと二値ベクトルに変換された特徴ベクトルとの内積の計算を含むベクトル演算によって特徴ベクトルと実数ベクトルとの関連性の判定を行う関連性判定装置、関連性判定プログラム、及び関連性判定方法に関するものである。
従来より、画像検索、音声認識、文章検索、パターン認識など、多くの分野で特徴量が用いられている。特徴量とは、画像、音声、文章などの情報を、計算機で扱いやすいように変換したものである。特徴量は、D次元のベクトル(特徴ベクトル)で表される。
特徴ベクトルを用いた演算を行うことで、例えば、コンテンツの類似度を判定することができる。すなわち、画像αの特徴ベクトルと、画像βの特徴ベクトルの距離が小さければ、αとβは似ているとみなすことができる。同様に、音声波形αの特徴ベクトルと、音声波形βの特徴ベクトルとの距離が小さければ、αとβは似ているとみなすことができる。このように、音声認識、文章検索、パターン認識等の情報処理では、情報を特徴ベクトルに変換して、特徴ベクトル同士を比較して、その距離を求めることにより情報の類似度を判断する。
特徴ベクトル間の距離の尺度としては、L1ノルム、L2ノルム、ベクトル間角度などが用いられる。これらは、特徴ベクトルx,y∈RDについて、次のように計算できる。
L1ノルム
Figure 0006055391
L2ノルム
Figure 0006055391
ベクトル間角度
Figure 0006055391
特徴ベクトルが実数ベクトルである場合には、以下のような問題がある。まず、2つの特徴ベクトルx,y∈RDの間の距離の計算が遅くなるという問題がある。例えば、L2ノルムの二乗を距離の尺度として用いる場合、
Figure 0006055391
であるから、D回の引き算、D回の乗算、D−1回の加算が必要である。特に、特徴ベクトルが浮動小数で表現される場合には、この計算負荷は非常に高くなる。特徴ベクトルが高次元になれば、この計算負荷はさらに高くなる。
また、大量のメモリを消費する点も問題となる。特徴ベクトルを4バイトの単精度実数で表現する場合、D次元の特徴ベクトルは4Dバイトのメモリを消費する。特徴ベクトルが高次元になれば、このメモリ消費量は大きくなる。大量の特徴ベクトルを扱う場合、扱う特徴ベクトルの数だけメモリを消費することになる。
そこで近年、特徴ベクトルを0と1の列から成るバイナリコードに変換することにより、これら2つの問題を解決する手法が提案されている。代表的な手法として、ランダムプロジェクション(random projection、非特許文献1参照)、ベリースパースランダムプロジェクション(very sparse random projection、非特許文献2参照)、およびスペクトラルハッシング(Spectral Hashing、非特許文献3参照)がある。
これらの手法では、D次元の特徴ベクトルがdビットのバイナリコードに変換される。この変換は、もともとの空間における距離が、変換後の空間におけるハミング距離と強く相関するように行われる(もともとの空間における距離と、変換後の空間におけるハミング距離と強く相関する根拠については、非特許文献1の1121ページのLemma3.2を参照)。これによって、特徴ベクトル間の距離の計算を、バイナリコード同士のハミング距離計算で代用できるようになる。
なお、ハミング距離とは、二つのバイナリコードのうち、異なるビットの数を数えたものである。この計算は、二つのコードのXORをとった後に1が立っているビット数を数えるだけなので、非常に高速に行うことができる。多くの場合、バイナリコード変換によって、数十〜数百倍程度の高速化が可能である。また、特徴ベクトル間の距離の計算を、バイナリコード同士のハミング距離計算で代用することにより、もともと4Dバイトであったメモリの必要容量を、d/8バイトまで削減できる。これにより、数十〜数百分の一にメモリ容量を節約できる。
抽出された特徴量をバイナリコードに変換して、さまざまなアルゴリズムを適用することで、コンテンツの検索や認識などが可能となる。例えば類似コンテンツを検索する場合には、あらかじめデータベースに登録されているコンテンツの特徴量を、すべてバイナリコードに変換しておく。また、入力クエリとして与えられたコンテンツの特徴量をバイナリコードに変換する。このとき、入力クエリのバイナリコードと、データベースに登録されているすべてのバイナリコードとの間のハミング距離を計算することで、入力クエリに類似するコンテンツを検索して出力できる。
Michel X. Goemans, avid P. Williamson, "Improved approximation algorithms for maximum cut and satisfiability problems using semidefinite programming", Journal of the ACM Volume 42 , Issue 6 (November 1995) Pages: 1115-1145 Ping Li, Trevor J. Hastie, Kenneth W. Church, "very sparse random projections", KDD '06 Proceedings of the 12th ACM SIGKDD international conference on Knowledge discovery and data mining (2006) Y. Weiss, A. Torralba, R. Fergus., "Spectral Hashing",Advances in Neural Information Processing Systems, 2008.
バイナリコードはdビットの0と1の列からなる。これを、各要素が−1及び1の二値のみを取るd次元のベクトルと考えることもできる。以下の説明における混乱を避けるために、「バイナリコード」と「二値ベクトル」という用語について、以下のように区別をする。「バイナリコード」は、0と1の列からなるデータ表現である。例えば、C言語において128ビットのバイナリコードをメモリ上に格納する場合は、符号無し整数(unsigned char)型の16要素分の配列を用意すればよい(8bit×16=128bit)。
一方、「二値ベクトル」は、各要素が二値のみを取るベクトルである。例えば、二値ベクトルを各要素が−1及び1のみをとるベクトルとする場合には、バイナリコード「01101110」に対応する二値ベクトルは、(−1,1,1,−1,1,1,1,−1)Tである。もちろん、各要素が0及び1の二値のみを取るベクトルも二値ベクトルであるし、さらには、各要素が任意のα及びβ(ここでα≠βである)の二値のみを取るベクトルも二値ベクトルである。ただし、「バイナリコード」と「二値ベクトル」の違いは、情報の表現に関するものであり、両者に本質的な違いはない。
特徴ベクトルを、各要素が−1及び1の二値のみを取るd次元の二値ベクトルに変換すれば、SVM(サポートベクトルマシン)による識別処理や、k−meansクラスタリングなど、さまざまな処理をバイナリコードに対しても適用できる。しかしながら、これらのケースではハミング距離による高速距離計算の恩恵を受けることができないことがある。すなわち、アルゴリズムによっては、バイナリコード変換による高速距離計算の恩恵を受けられないことがある。
バイナリコード変換による高速距離計算の恩恵を受けられない例として、以下では、識別器(Classifier)による認識処理およびk−meansクラスタリングを説明する。まず、識別器による認識処理については、例えば、二値ベクトルx∈{−1,1}dを2クラスに識別する問題に対して、線形SVM(線形サポートベクトルマシン)を適用することを考える。線形SVMでは以下の式を評価する。
f(x)=wTx+b
f(x)が正ならばxはクラスAに属し、f(x)が負ならばxはクラスBに属するものとして識別する。 wは、重みパラメータであって、w∈Rdである。bは、バイアスパラメータであって、b∈R1である。パラメータw及びbは、学習用に用意した特徴量を用いて、学習処理により自動的に決定される。
ここで、学習用に用意した特徴量が二値ベクトルであっても、w∈Rdは二値にならず、実数値になってしまう。f(x)の計算にはwTxが含まれているが、xが二値である一方でwが実数値のベクトルであるため、wTxの計算には、浮動小数点演算が必要になってしまう。このように、SVMを適用する識別器による認識処理では、特徴ベクトルを二値ベクトルとすることによる計算高速化の恩恵を受けることができない。
次に、二値ベクトルに対して、k−meansクラスタリングを適用する場合、すなわち、d次元の二値ベクトルがN個与えられたとき、互いに距離が近い二値ベクトルをまとめたk個のクラスタを求める問題を考える。k−meansとは、次の手順によりk個のクラスタと代表ベクトルを算出するアルゴリズムである。
ステップ1:N個の特徴量からk個をランダムに選出し、これをクラスタの代表ベクトルとする。
ステップ2:入力として与えられたN個の特徴量それぞれについて、最も距離が近い代表ベクトルを求める。
ステップ3:各代表ベクトルに所属する特徴量の平均を計算し、これを新しい代表ベクトルとする。
ステップ4:ステップ2、ステップ3を収束するまで繰り返す。
k−meansクラスタリングにおいて問題となるのは、ステップ3において、新しい代表ベクトルが二値ベクトルの平均で定義される点である。入力として与えられたデータが二値ベクトルであっても、平均の演算により、代表ベクトルは実数のベクトルになる。そのため、ステップ2における距離計算では、二値ベクトルと実数ベクトルとの間の距離を求めなければならなくなる。つまり、浮動小数点演算が必要になってしまう。このように、k−meansクラスタリングにおいても、特徴ベクトルを二値ベクトルとすることによる計算高速化の恩恵を受けることができない。
上記のように、識別器(Classifier)による認識処理やk−meansクラスタリングでは、特徴ベクトルを二値ベクトルとすることによる計算高速化の恩恵を受けることができない。その理由は、いずれもd次元の二値ベクトルp∈{−1,1}dと、d次元の実数ベクトルq∈Rdとの内積演算が必要であるという点にある。なお、k−meansクラスタリングで必要なのは、dビットの二値ベクトルp∈{−1,1}dと、d次元の実数ベクトルq∈Rdとの間の「距離」であるが、これも結局のところ、pTqという内積の演算に帰着される。なぜなら、pとqとの間のユークリッド距離の二乗は、下式で表現されるからである。
Figure 0006055391
よって、識別器による認識処理においてもk−meansクラスタリングにおいても、二値ベクトルとd次元の実数ベクトルとの内積の演算を高速化することこそが、問題の解決につながる。
そこで、本発明は、特徴ベクトルがd次元の二値ベクトルp∈{−1,1}dである場合において、そのような特徴ベクトルとd次元の実数ベクトルq∈Rdとの間の内積(pTqもしくはqTp)の演算を高速に行うことを目的とする。
本発明の第1の態様の関連性判定装置は、二値化された特徴ベクトルを取得する特徴ベクトル取得部と、実数ベクトルを二値または三値の離散値のみから構成された要素を持つ複数の基底ベクトルの線形和に分解することで得られた前記複数の基底ベクトルを取得する基底ベクトル取得部と、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算を順次行うことで、前記実数ベクトルと前記特徴ベクトルとの関連性を判定するベクトル演算部とを備えた構成を有している。
本発明の第2の態様の関連性判定装置は、第1の態様の関連性判定装置において、前記特徴ベクトルと前記基底ベクトルとの内積計算は、−1及び1のみを要素としてもつ第1の二値ベクトルと−1及び1のみを要素としてもつ複数の第2の二値ベクトルとの内積計算を含むことを特徴とする。
本発明の第3の態様の関連性判定装置は、第2の態様の関連性判定装置において、前記第1の二値ベクトルは、前記特徴ベクトルであることを特徴とする。
本発明の第4の態様の関連性判定装置は、第2の態様の関連性判定装置において、前記第1の二値ベクトルは、前記特徴ベクトルの各要素を所定の係数で除したベクトルであることを特徴とする。
本発明の第5の態様の関連性判定装置は、第2の態様の関連性判定装置において、前記第1の二値ベクトルは、その各要素を線形変換することで前記特徴ベクトルが得られるベクトルであることを特徴とする。
本発明の第6の態様の関連性判定装置は、第2ないし第5のいずれか一の態様の関連性判定装置において、前記第2の二値ベクトルは、前記基底ベクトルであることを特徴とする。
本発明の第7の態様の関連性判定装置は、第2ないし第5のいずれか一の態様の関連性判定装置において、前記第2の二値ベクトルは、前記基底ベクトルの各要素を所定の係数で除したベクトルであることを特徴とする。
本発明の第8の態様の関連性判定装置は、第2ないし第5のいずれか一の態様の関連性判定装置において、前記第2の二値ベクトルは、その各要素を線形変換することで前記基底ベクトルが得られるベクトルであることを特徴とする。
本発明の第9の態様の関連性判定装置は、第1の態様の関連性判定装置において、前記特徴ベクトルと前記基底ベクトルとの内積計算は、−1及び1のみを要素としてもつ二値ベクトルと−1、0及び1のみを要素としてもつ複数の三値ベクトルとの内積計算を含むことを特徴とする。
本発明の第10の態様の関連性判定装置は、第9の態様の関連性判定装置において、前記二値ベクトルは、前記特徴ベクトルであることを特徴とする。
本発明の第11の態様の関連性判定装置は、第9の態様の関連性判定装置において、前記二値ベクトルは、前記特徴ベクトルの各要素を所定の係数で除したベクトルであることを特徴とする。
本発明の第12の態様の関連性判定装置は、第9の態様の関連性判定装置において、前記二値ベクトルは、その各要素を線形変換することで前記特徴ベクトルが得られるベクトルであることを特徴とする。
本発明の第13の態様の関連性判定装置は、第9ないし12のいずれか一の態様の関連性判定装置において、前記複数の三値ベクトルは、前記複数の基底ベクトルであることを特徴とする。
本発明の第14の態様の関連性判定装置は、第9ないし12のいずれか一の態様の関連性判定装置において、前記複数の三値ベクトルは、前記複数の基底ベクトルの各要素を所定の係数で除したベクトルであることを特徴とする。
本発明の第15の態様の関連性判定装置は、第9ないし12のいずれか一の態様の関連性判定装置において、前記複数の三値ベクトルは、その各要素を線形変換することで前記複数の基底ベクトルが得られるベクトルであることを特徴とする。
本発明の第16の態様の関連性判定装置は、第2の態様の関連性判定装置において、前記ベクトル演算部は、前記第1の二値ベクトルと前記第2の二値ベクトルとの排他的論理和をとることで、前記第1の二値ベクトルと前記第2の二値ベクトルとの内積を計算することを特徴とする。
本発明の第17の態様の関連性判定装置は、第9の態様の関連性判定装置において、前記ベクトル演算部は、前記二値ベクトルと前記三値ベクトルとの内積計算において、前記三値ベクトルの0の要素を−1又は1の任意のいずれかに置換して0置換ベクトルを生成し、前記三値ベクトルの0の要素を−1に置換し、かつ0以外の要素を1に置換してフィルタベクトルを生成し、前記二値ベクトルと前記0置換ベクトルとの排他的論理和と前記フィルタベクトルとの論理積をとることで、前記二値ベクトルと前記三値ベクトルとの間の非0で異なる要素の要素数Dfilterd_hammingを求め、前記要素数Dfilterd_hamming及び非0の要素数を前記二値ベクトルの要素数から引くことで、前記二値ベクトルと前記三値ベクトルとの間の非0で同一の要素の要素数を求め、前記二値ベクトルと前記三値ベクトルとの間の非0で同一の要素の要素数から前記二値ベクトルと前記三値ベクトルとの間の非0で異なる要素の要素数を引くことで、前記二値ベクトルと前記三値ベクトルとの内積を求めることを特徴とする。
本発明の第18の態様の関連性判定装置は、第1の態様の関連性判定装置において、前記複数の基底ベクトルは、前記実数ベクトルと、前記複数の基底ベクトルの線形和との差分を分解誤差として、前記分解誤差が最小になるように、求められることを特徴とする。
本発明の第19の態様の関連性判定装置は、第1の態様の関連性判定装置において、前記複数の基底ベクトルは、前記実数ベクトルと前記特徴ベクトルとの内積と、前記複数の基底ベクトルの線形和と前記特徴ベクトルとの内積との差分を分解誤差として、前記分解誤差が最小になるように、求められることを特徴とする。
本発明の第20の態様の関連性判定装置は、第18又は19の態様の関連性判定装置において、前記複数の基底ベクトルは、前記複数の基底ベクトルの要素を固定して、前記分解誤差が最小になるように、前記複数の基底ベクトルに係る複数の係数を更新する第1の更新と、前記複数の係数を固定して、前記分解誤差が最小になるように前記基底ベクトルの要素を更新する第2の更新とを繰り返すことで、前記複数の係数とともに求められることを特徴とする。
本発明の第21の態様の関連性判定装置は、第20の態様の関連性判定装置において、前記複数の基底ベクトルは、前記分解誤差の減少量が所定の値以下になるまで前記第1の更新と前記第2の更新を繰り返すことで求められることを特徴とする。
本発明の第22の態様の関連性判定装置は、第20又は21の態様の関連性判定装置において、前記複数の基底ベクトルは、前記複数の基底ベクトル及び前記複数の係数の初期値を変えて、複数とおりの前記複数の基底ベクトル及び前記複数の係数を求め、前記分解誤差が最小となる前記複数の基底ベクトル及び前記複数の係数を採用することで求められることを特徴とする。
を含むことを特徴とする関連性判定方法。
本発明の第23の態様の関連性判定装置は、第20又は21の態様の関連性判定装置において、前記複数の基底ベクトルに係る複数の係数は離散値であることを特徴とする。
本発明の第24の態様の関連性判定装置は、第18又は19の態様の関連性判定装置において、前記複数の基底ベクトルは、前記実数ベクトルの要素の平均値を前記実数ベクトルの各要素から引いたオフセット実数ベクトルを前記基底ベクトルの線形和に分解することで求められることを特徴とする。
本発明の第25の態様の関連性判定装置は、第1の態様の関連性判定装置において、前記ベクトル演算部は、前記特徴ベクトルと前記基底ベクトルとの前記内積計算を実行する度に、前記内積計算の結果の合計と、前記実数ベクトルと前記特徴ベクトルとが関連している場合に前記合計がとり得る範囲を求め、前記合計が前記とり得る範囲外である場合に、前記内積計算を打ち切って、前記特徴ベクトルと前記基底ベクトルとの内積と所定の閾値との大小関係を判定することを特徴とする。
本発明の第26の態様の関連性判定装置は、第25の態様の関連性判定装置において、前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算ごとに、当該基底ベクトルまでの前記内積計算の結果の合計が、最大側早期判定用閾値より大きい場合に、前記内積計算を打ち切って、前記実数ベクトルと前記特徴ベクトルとの内積が前記閾値より大きいと判定することを特徴とする。
本発明の第27の態様の関連性判定装置は、第26の態様の関連性判定装置において、前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積がとり得る最小値を学習によって求めて、前記閾値から前記内積計算を行なっていない前記基底ベクトルと前記特徴ベクトルとの内積がとり得る値の最小値の合計を引いて、前記最大側早期判定用閾値を求めることを特徴とする。
本発明の第28の態様の関連性判定装置は、第27の態様の関連性判定装置において、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積がとり得る最小値は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積がとり得る値のうちの最小側の上位の所定の割合にある値であることを特徴とする。
本発明の第29の態様の関連性判定装置は、第26ないし28のいずれか一の態様の関連性判定装置において、前記最大側早期判定用閾値は、前記実数ベクトルと前記特徴ベクトルとが関連している場合にとり得る前記内積計算の結果の合計の最小値であることを特徴とする。
本発明の第30の態様の関連性判定装置は、第29の態様の関連性判定装置において、前記ベクトル演算部は、前記実数ベクトルと前記特徴ベクトルとの内積が前記閾値より大きいと判定したときに、前記特徴ベクトルと前記基底ベクトルとは関連していと判定することを特徴とする。
本発明の第31の態様の関連性判定装置は、第25ないし30のいずれか一の態様の関連性判定装置において、前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算ごとに、当該基底ベクトルまでの前記内積計算の結果の合計が、最小側早期判定用閾値より小さい場合に、前記内積計算を打ち切って、前記実数ベクトルと前記特徴ベクトルとの内積が前記閾値より小さいと判定することを特徴とする。
本発明の第32の態様の関連性判定装置は、第31の態様の関連性判定装置において、前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積がとり得る最大値を学習によって求めて、前記閾値から前記内積計算を行なっていない前記基底ベクトルと前記特徴ベクトルとの内積がとり得る値の最大値の合計を引いて、前記最小側早期判定用閾値を求めることを特徴とする。
本発明の第33の態様の関連性判定装置は、第32の態様の関連性判定装置において、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積がとり得る最大値は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積がとり得る値のうちの最大側の上位の所定の割合にある値であることを特徴とする。
本発明の第34の態様の関連性判定装置は、第31ないし33のいずれか一の態様の関連性判定装置において、前記最小側早期判定用閾値は、前記実数ベクトルと前記特徴ベクトルとが関連していない場合にとり得る前記内積計算の結果の合計の最値であることを特徴とする。
本発明の第35の態様の関連性判定装置は、第34の態様の関連性判定装置において、前記ベクトル演算部は、前記実数ベクトルと前記特徴ベクトルとの内積が前記閾値より小さいと判定したときに、前記特徴ベクトルと前記基底ベクトルとは関連していないと判定することを特徴とする。
本発明の第36の態様の関連性判定装置は、第25ないし35のいずれか一の態様の関連性判定装置において、前記ベクトル演算部は、係数の絶対値が大きい前記基底ベクトルから順に前記内積計算を行うことを特徴とする。
本発明の第37の態様の関連性判定装置は、第1の態様の関連性判定装置において、前記ベクトル演算部は、前記特徴ベクトルと、分解された前記実数ベクトルをそれぞれ複数の部分ベクトルに分解し、前記特徴ベクトルの分解ベクトルと分解された前記実数ベクトルの部分ベクトルとの内積が、所定の閾値よりも大きくなるか否か、及び/又は前記閾値よりも小さくなるか否かを判断することを特徴とする。
本発明の第38の態様の関連性判定装置は、第1ないし37のいずれか一の態様の関連性判定装置において、前記特徴ベクトルは、HoG特徴量であり、前記実数ベクトルは、線形SVMの重みベクトルであり、前記ベクトル演算部は、前記関連性の判定として、線形SVMによって前記特徴ベクトルの識別を行なうことを特徴とする。
本発明の第39の態様の関連性判定装置は、第1ないし37のいずれか一の態様の関連性判定装置において、前記特徴ベクトルは、k−meansクラスタリングによるクラスタリングの対象となるベクトルであり、前記実数ベクトルは、k−meansクラスタリングにおける代表ベクトルであり、前記ベクトル演算部は、前記関連性の判定として、前記特徴ベクトルと前記代表ベクトルとの間の距離の演算を含むクラスタリング処理を行なうことを特徴とする。
本発明の第40の態様の関連性判定装置は、第1ないし37のいずれか一の態様の関連性判定装置において、前記特徴ベクトルは、k−means treeによる近似最近傍探索の対象となるベクトルであり、前記実数ベクトルは、k−分木のノードに登録されている代表ベクトルであり、前記ベクトル演算部は、前記関連性の判定として、前記特徴ベクトルと前記代表ベクトルとの間の距離の演算を含むクラスタリング処理を行なうことを特徴とする。
本発明の第41の態様の関連性判定装置は、第38ないし40のいずれか一の態様の関連性判定装置において、前記特徴ベクトルは、画像の特徴量を表すベクトルであることを特徴とする。
本発明の関連性判定プログラムは、コンピュータを、第1ないし41のいずれか一の態様の関連性判定装置として機能させる構成を有している。
本発明の関連性判定方法は、二値化された特徴ベクトルを取得する特徴ベクトル取得ステップと、実数ベクトルを二値または三値の離散値のみから構成された要素を持つ複数の基底ベクトルの線形和に分解して得られた前記複数の基底ベクトルを取得する基底ベクトル取得ステップと、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算を順次行うことで、前記実数ベクトルと前記特徴ベクトルとの関連性を判定するベクトル演算ステップとを含む構成を有している。
本発明によれば、実数ベクトルは二値の基底ベクトルの線形和に分解されたうえで二値化された特徴ベクトルとの内積計算が行なわれるので、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
本発明の第1の実施の形態の特徴量演算装置の構成を示すブロック図 本発明の第1の実施の形態における実数ベクトルの分解を示す図 本発明の第2の実施の形態における計算例を示す図 本発明の第3の実施の形態のベクトル演算部におけるカスケードによる閾値処理の高速化のフロー図 本発明の第4の実施の形態の物体認識装置の構成を示すブロック図 本発明の第5の実施の形態のk−meansクラスタリング装置の構成を示すブロック図
以下、本発明の実施の形態の特徴量演算装置について、図面を参照しながら説明する。
(第1の実施の形態)
図1は、本発明の実施の形態の特徴量演算装置100の構成を示すブロック図である。特徴量演算装置100は、コンテンツ取得部101と、特徴ベクトル生成部102と、特徴ベクトル二値化部103と、実数ベクトル取得部104と、実数ベクトル分解部105と、ベクトル演算部106と、データベース107とを備えている。
本実施の形態の特徴量演算装置100は、後述するように、特徴ベクトルと辞書データとしてデータベースに保存された実数ベクトルとの内積演算を伴うベクトル演算によって、特徴ベクトルと実数ベクトルとの関連性を判定する関連性判定装置として機能する。即ち、特徴演算装置100は、本発明の関連性判定装置に相当する。
関連性判定装置としての特徴量演算装置100は、コンピュータが本発明の実施の形態の関連性判定プログラムを実行することにより実現される。関連性判定プログラムは、記録媒体に記録されて、記録媒体からコンピュータによって読み出されてもよいし、ネットワークを通じてコンピュータにダウンロードされてもよい。
コンテンツ取得部101は、画像データ、音声データ、文字データ等のコンテンツデータを取得する。これらのコンテンツデータは、外部機器から与えられるものであってもよく、コンテンツ取得部101で生成されるものであってもよい。例えば、コンテンツ取得部101がカメラであり、そこでコンテンツデータとして画像データが生成されてよい。
特徴ベクトル生成部102は、コンテンツ取得部101にて取得されたコンテンツデータからD次元の特徴ベクトルを生成する。例えばコンテンツが画像である場合には、特徴ベクトル生成部102は、画像の特徴量を抽出する。特徴ベクトル二値化部103は、特徴ベクトル生成部102で生成されたD次元の特徴ベクトルを二値化して、各要素が−1及び1の二値のみをとるd次元の二値ベクトルp∈{−1,1}dを生成する。
なお、コンテンツ取得部101、特徴ベクトル生成部102、及び特徴ベクトル二値化部103からなる構成は、最終的に二値化された特徴ベクトルを取得できる構成であればよく、例えば、コンテンツ取得部101及び特徴ベクトル102を備えずに、特徴ベクトル二値化部103が外部機器から特徴ベクトルを取得して、その取得した特徴ベクトルを二値化する構成であってよいし、また、外部機器から二値化された特徴ベクトルを直接取得する構成であってもよい。
実数ベクトル取得部104は、d次元の実数ベクトルq∈Rdを取得する。実数ベクトルは、外部機器から与えられるものであってもよく、特徴量演算装置100の図示しない記憶装置から読み出されるものであってもよく、実数ベクトル取得部104で生成されるものであってもよい。実数ベクトルは、その要素に浮動小数を含む実数を持つ。
実数ベクトル分解部105は、d次元の実数ベクトルq∈Rdを、二値の基底ベクトルmi∈{−1,1}dの線形和に分解する。具体的には、実数ベクトル分解部105は、d次元の実数ベクトルq∈Rdを、下式(1)によって、二値の要素を持つ基底行列Mと実数の要素を持つ係数ベクトルcに分解する。
Figure 0006055391
ここで、M=(m1,m2,…,mk)∈{−1,1}d×kであり、c=(c1,c2,…,ckT∈Rkである。すなわち、基底行列Mは、k個の基底ベクトルmiからなり、ここで、基底ベクトルmiは、要素が−1及び1のみをとるd次元の二値ベクトルであり、従って、基底行列Mは、要素が−1及び1のみをとるd行k列の二値行列である。また、係数ベクトルcは、k個の基底ベクトルに係る実数の係数を要素として持つk次元の実数ベクトルである。もちろん、qとMcはなるべく一致するように分解することが好ましいが、誤差を含んでもよい。
(第1の分解手法)
実数ベクトル分解部105は、誤差最少化によって実数ベクトルを分解する。第1の分解手法の手順は、以下のとおりである。
(1)基底行列M及び係数ベクトルcをランダムに初期化する。
(2)基底行列Mを固定して、分解の誤差
Figure 0006055391
が最小になるように係数ベクトルcを更新する。これは、最小二乗法により求めることができる。
(3)係数ベクトルcを固定して、分解の誤差
Figure 0006055391
が最小になるように基底行列Mを更新する。この最小化アルゴリズムについては、後に詳しく述べる。
(4)収束するまで(2)及び(3)を繰り返す。例えば、
Figure 0006055391
の減少量が一定値以下になったとき、収束したと判定する。
(5)ステップ(1)〜ステップ(4)により得た解を候補として保持する。
(6)ステップ(1)〜ステップ(5)を繰り返し、最も
Figure 0006055391
を小さくできた候補基底行列M及びcを最終結果として採用する。なお、このステップ(1)〜ステップ(5)の繰り返しはなくてもよいが、複数回繰り返すことで、初期値依存の問題を回避できる。
次に、ステップ(3)における基底行列Mの更新処理を説明する。図2は、式(1)を図式化したものである。図2の破線枠で囲ったように、基底行列Mのi行目の行ベクトルの要素は、実数ベクトルqのi番目の要素のみに依存する。基底行列Mのi行目の行ベクトルは、本実施の形態のように二値分解の場合は2k通りしか存在しない(なお、後述の第2の実施の形態の三値分解の場合にも3k通りしか存在しない)。よって、実数ベクトル分解部105は、これらをすべて網羅的にチェックし、分解誤差
Figure 0006055391
を最小化する行ベクトルを採用する。これを基底行列Mのすべての行ベクトルに対して適用して、基底行列Mの要素を更新する。
(第2の分解手法)
次に、第2の分解手法を説明する。第1の分解手法では、分解誤差を
Figure 0006055391
として定義し、この分解誤差を最小化することを考えた。しかしながら、実数ベクトルを基底ベクトルの線形和に近似した後に実際に近似をしたいのは、特徴ベクトルと実数ベクトルの内積pTqである。
そこで、第2の分解手法では、特徴ベクトルpをあらかじめN個集め、これをまとめたものをP∈Rd×Nとする。そして、分解誤差を
Figure 0006055391
と定義して、これを最小化する。こうすることで、実数ベクトルは、実際のデータの分布に従って分解されることになるため、内積の近似精度が向上する。
この近似分解は、miを逐次的に求めることで行うことができる。第2の分解手法の手順は以下のとおりである。
(1)rにqを代入する(r←q)
(2)iに1を代入する(i←1)
(3)第1の分解手法によって
Figure 0006055391
を最小化してmi、ciを得る。
(4)ステップ(3)で得られたmi、ciを初期値として、次の手順で
Figure 0006055391
を最小化する。
(4−1)miを固定して、
Figure 0006055391
が最小になるように、ciを更新する。これは、最小二乗法により求めることができる。
(4−2)ciを固定して、
Figure 0006055391
が最小になるように、miを更新する。miが離散値であるため、これは組合最適化問題となり、例えば、グリーディアルゴリズム(Greedy algorithm)、タブ−サーチ(tabu search)、シミュレイテッドアニーリング(simulated annealing)等のアルゴリズムを用いて最小化を行うことができる。ステップ(3)でよい初期値が得られているので、これらのアルゴリズムでも良好に分解誤差を最小化できる。
(4−3)収束するまで(4−1)及び(4−2)を繰り返す。例えば、
Figure 0006055391
の減少量が一定値以下になったときに、収束したと判定する。
(5)rにr−miiを代入し(r←r−mii)、iにi+1を代入し(i←i+1)、i≦kであればステップ(3)に戻り、i>kであればステップ(6)に進む。
(6)ステップ(1)〜(6)により得た解M、cを候補として保持する。
(7)ステップ(1)〜(6)を繰り返し、最も
Figure 0006055391
を小さくできた候補M、cを最終結果として採用する。なお、ステップ(7)の繰り返しはなくてもよいが、複数回繰り返すことで、初期値依存の問題を軽減できる。
なお、上記の第1及び第2の分解手法は、かならずしも基底行列Mが二値(又は第2の実施の形態の三値)でなくともよく、基底行列Mのとり得る要素の種類が有限の数であれば適用可能である。また、係数ベクトルcも、基底行列Mと同様にあらかじめ定められた離散的な値でもよい。たとえば、2のべき乗に制約してもよく、そうすることで、処理を高速化できる。また、分解する実数ベクトルqの要素の平均値が著しく大きい(若しくは小さい)場合、すなわち、平均値が0から著しく離れている場合には、この平均値をあらかじめ実数ベクトルqの各要素から引いてオフセット実数ベクトルを生成し、このオフセット実数ベクトルを基底行列Mと係数ベクトルcに分解すると、より少ない基底で式(1)の近似分解を行うことができる。
ベクトル演算部106は、特徴ベクトルを用いた演算を行なう。演算の具体的内容については、後述にて、本実施の形態の特徴量演算装置100の応用例とともに具体的に説明する。この特徴ベクトルを用いた演算には、二値化された特徴ベクトルp∈{−1,1}dと実数ベクトル分解部105にて二値ベクトルの線形和に分解された実数ベクトルqとの内積pTqの計算が含まれる。以下では、まず、この内積pTqの計算について説明する。
内積pTqは、下式(2)のように式変形できる。
Figure 0006055391
ここで、pTiは二値ベクトル同士の内積である。この二値ベクトル同士の内積pTiは、極めて高速に計算可能である。その理由は以下のとおりである。
二値ベクトル同士の内積は、ハミング距離の演算に帰着できる。ハミング距離とは、2つのバイナリコードにおいて、値が異なるビットを数えたものであり、2つの二値ベクトルの間のハミング距離は、すなわち値が異なる要素数を数えたものである。ここで、pとmiのハミング距離をDhamming(p,mi)と記述すると、内積pTiは、
hamming(p,mi)と下式(3)の関係がある。
Figure 0006055391
ここで、前述のとおり、dはバイナリコードのビット数である。
ハミング距離の演算は、2つのバイナリコードにおいて、XORを適用した後に、1が立っているビットを数えることで計算できるので、極めて高速である。二値ベクトルがバイナリコード(0と1のビット列)で表現されているのであれば、ハミング距離は、下式(4)で計算できる。
Figure 0006055391
ここで、XOR関数はpとmiをバイナリコード表現で考えたときに排他的論理和を
取る操作であり、BITCOUNT関数はバイナリコードの1が立っているビット数を数えあげる処理のことである。
以上をまとめると、内積pTqは下式(5)のように変形できる。
Figure 0006055391
すなわち、dビットのハミング距離計算をk回行い、k個のハミング距離について、係数ベクトルcに関する重み付け和を計算し、定数項を足したものがpTqになる。よって、kが十分小さければ、pTqを浮動小数点精度で計算するよりも、はるかに高速に計算できるようになる。
なお、上記の内積計算において、二値化された特徴ベクトルpは、「第1の二値ベクトル」に相当し、基底ベクトルmiは、「第2の二値ベクトル」に相当する。
データベース107には、実数ベクトル分解部105にて分解された複数の実数ベクトル、即ち複数の基底ベクトルの線形和が辞書データとして記憶されている。ベクトル演算部106は、データベース107から基底ベクトルの線形和を読み出して、上記の演算を行う。このデータベース107は、「基底ベクトル取得部」に相当する。
以上のように、本実施の形態の特徴量演算装置100によれば、特徴ベクトルを用いた演算処理に特徴ベクトルと他の実数ベクトルとの内積演算が含まれている場合にも、特徴ベクトルを二値化したうえで、実数ベクトルについても二値ベクトルの線形和に分解するので、それらの内積演算を高速化できる。
(第1の実施の形態の拡張)
上記の第1の実施の形態では、二値ベクトルp、miを、それぞれ、p∈{−1,1}d、mi∈{−1,1}dと定義して、実数ベクトルを二値ベクトルの線形和に分解することで内積演算pTiが高速になることを説明した。しかしながら、p、miをより一般的な二値ベクトルp´∈{−a,a}d、mi´∈{−a,a}dとしても、それらの高速な内積演算が可能である。この場合、p´Ti´=a2(pTi)であることから、−1及び1により定義される二値ベクトル同士の内積にa2を掛ければよい。なお、この場合には、特徴ベクトルp´を係数aで除して得られる二値ベクトルpが「第1の二値ベクトル」に相当し、基底ベクトルmi´を係数aで除して得られる二値ベクトルmiが「第2の二値ベクトル」に相当する。
さらに、特徴ベクトル及び基底ベクトルを任意の二値ベクトルp´´∈{α,β}d、mi´´∈{γ,δ}dとしても、高速な内積演算が可能である。ここで、係数α、β、γ、δは実数であり、α≠β、γ≠δである。この場合、p´´およびmi´´は、−1及び1により定義される二値ベクトルp及びmiの各要素に線形変換を施すことで得られ、下式(6)及び(7)のように展開される。
Figure 0006055391
Figure 0006055391
なお、式(6)及び(7)中の太字の「1」は、長さがdですべての要素が1であるベクトルである。また、式(6)及び(7)中のA、B、C、Dは実数であり、式(6)及び(7)が成立するようにあらかじめ計算しておけばよい。
内積p´´Ti´´は、下式(8)のように展開できる。
Figure 0006055391
式(8)の括弧内の計算は、−1及び1からなる二値ベクトル同士の内積である。従って、特徴ベクトルが任意の二値の要素をもつ二値ベクトルにされ、かつ、実数ベクトルを任意の二値の要素を持つ二値ベクトルの線形和に展開した場合にも、高速演算が可能である。なお、この場合には、各要素を線形変換することで特徴ベクトルp´´が得られる上記の二値ベクトルpが「第1の二値ベクトル」に相当し、各要素を線形変換することで基底ベクトルmi´´が得られる上記の二値ベクトルmiが「第2の二値ベクトル」に相当する。
(第2の実施の形態)
次に、第2の実施の形態の特徴量演算装置を説明する。第2の実施の形態の特徴量演算装置の構成は、図1に示した第1の実施の形態のそれと同じである。第1の実施の形態では、実数ベクトル分解部105は、実数ベクトルを式(1)によって二値ベクトルの線形和に分解したが、本実施の形態の特徴量演算装置100の実数ベクトル分解部105は、実数ベクトルを三値ベクトルの線形和に分解する。
実数ベクトル分解部105は、d次元の実数ベクトルq∈Rdを、三値ベクトルの線形和に分解する。具体的には、実数ベクトル分解部105は、d次元の実数ベクトルq∈Rdを、下式(9)によって、三値の要素を持つ基底行列Mと実数の要素を持つ係数ベクトルcに分解する。
Figure 0006055391
ここで、M=(m1,m2,…,mk)∈{−1,0,1}d×kであり、c=(c1,c2,…,ckT∈Rkである。すなわち、基底行列Mは、k個の基底ベクトルmiからなり、ここで、基底ベクトルmiは、要素が−1、0、及び1のみをとるd次元の三値ベクトルであり、従って、基底行列Mは、要素が−1、0、及び1のみをとるd行k列の三値行列である。また、係数ベクトルcは、k個の基底ベクトルに係る実数の係数を要素として持つk次元の実数ベクトルである。もちろん、qとMcはなるべく一致するように分解することが好ましいが、誤差を含んでもよい。実数ベクトル分解部105は、第1の実施の形態と同様にして、誤差最小化によって実数ベクトルを分解する。
ベクトル演算部106は、内積pTqを計算する。以下では、内積pTqを計算するベクトル演算部106を特に、内積演算部106とも呼ぶ。内積pTqは、下式(10)のように式変形できる。
Figure 0006055391
ここで、pTiは、二値ベクトルpと三値ベクトルmiとの内積である。内積演算部106は、ここで、三値ベクトルmiの代わりに、以下に定義する0置換ベクトルmi bin、フィルタベクトルmi filter、及び0要素数ziを用いる。
まず、内積演算部106は、miの0の要素を、−1又1に置き換える。miの各要素について、それを−1に置き換えるか、1に置き換えるかは、いずれでもよい。この置き換えによって、0置換ベクトルmi bin∈{−1,1}dが生成される。この0置換ベクトルmi bin∈{−1,1}dは二値ベクトルである。
また、内積演算部106は、miの0の要素を−1に置き換え、0以外の要素を1に置き換える。この置き換えによって、フィルタベクトルmi filter∈{−1,1}dが生成される。このフィルタベクトルmi filterも二値ベクトルである。
さらに、内積演算部106は、miの0の要素数ziを求める。ziは整数となる。内積演算部106は、これらの二値ベクトルmi bin、フィルタベクトルmi filter、及び0要素数ziを用いて、式(10)におけるpTiを、下の式(11)及び式(12)によって計算する。
Figure 0006055391
Figure 0006055391
ここで、式(11)のAND関数は、二値ベクトルをバイナリコード表現で考えたときに、論理積を取る操作である。
以下、図3を参照して、具体例を用いて、式(11)及び(12)の導出を説明する。図3は、本実施の形態の計算例を示す図である。図3の例では、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となる。
式(11)におけるpとmi binとの排他的論理和は、XOR(p,mi bin)={−1,*,1,*,1,−1}となり、すなわち、pとmiの要素のうち、非0で異なっている要素すなわち−1と1又は1と−1の組となる要素が1となり、−1と−1又は1と1の組となる要素が−1となる。
次に、その排他的論理和とmi filterとの論理積は、AND(XOR(p,mi bin),mi filter))={−1,−1,1,−1,1,−1}となり、pとmiの要素のうち、非0で異なっている要素に1が立ち、それ以外は−1となる。このビットカウントを取ると、1である要素の個数、すなわち非0で異なっている要素の個数が数え上げられ、Dfilterd_hamming(p,mi bin,mi filter)=2となる。
ここで、pとmiの要素のうち、1と1又は−1と−1の組となる要素の個数は、全要素数d=6から、非0で異なっている要素の個数Dfilterd_hamming=2と0である要素の個数zi=2を引くことで求められる。すなわち、1と1又は−1と−1の組となる要素の数=d−Dfilterd_hamming−zi=6−2−2=2となる。
pとmiは、1と1又は−1と−1の組となる要素(積が1になる要素の組)の個数から、−1と1又は1と−1との組となる要素(積が−1になる要素の組)の個数を引いた値と等しいため、pTi=(d−Dfilterd_hamming−zi)−Dfilterd_hamming=d−zi−2Dfilterd_hammingとなり、式(12)が得られ、その値は、6−2−2×2=0となる。なお、この結果は、当然ながら、pTi={−1,1,−1,1,−1,1}×{−1,0,1,0,1,1}=1+0+(−1)+0+(−1)+1=0と一致する。
式(10)〜(12)をまとめると、内積pTqは、下式(13)のように変形できる。
Figure 0006055391
内積演算部106は、この式(13)によって、内積pTqを計算する。
関数Dfilterd_hamming(p,mi bin,mi filter)は、ハミング距離演算と非常に似ており、AND演算が加わっただけである。したがって、q∈Rdを、三値ベクトルの線形和に分解した場合でも、pTqを浮動小数点精度で計算するよりも、はるかに高速にpTqを計算できるようになる。
以上のように、d次元の実数ベクトルq∈Rdを、二値ではなく三値ベクトルの線形和に分解することの利点は、式(9)の近似が、より少ない数のベクトルの線形和でも成立するようになることにある。すなわち、kの値を小さく抑えられることになるため、さらなる高速化につながる。
(第2の実施の形態の拡張)
上記の第2の実施の形態では、二値ベクトルp及び三値ベクトルmiを、それぞれ、p∈{−1,1}d、mi∈{−1,0,1}dと定義して、実数ベクトルを三値ベクトルの線形和に分解することで内積演算pTiが高速になることを説明した。しかしながら、p、miをより一般的な二値ベクトルp´∈{−a,a}d、三値ベクトルmi∈{−a,0,a}dとしても、それらの高速な内積演算が可能である。この場合、p´Ti´=a2(pTi)であることから、−1及び1により定義される二値ベクトル同士の内積にa2を掛ければよい。
さらに、二値ベクトルp及び三値ベクトルmiをp∈{α,β}d、mi∈{γ−δ,γ,γ+δ}dと一般化しても、高速な内積演算が可能である。ここで、α、β、γ、δは実数であり、α≠β、δ≠0である。この場合、p及びmiの各要素に下式(14)及び(15)の線形変換を施すことで、それぞれp´´およびmi´´が得られる。
Figure 0006055391
Figure 0006055391
なお、式(14)及び(15)中の太字の「1」は、長さがdですべての要素が1であるベクトルである。また、式(14)及び(15)中のA、B、C、Dは実数であり、式(14)及び(15)が成立するようにあらかじめ計算しておく。
内積p´´Ti´´は、下式(16)のように展開できる。
Figure 0006055391
式(16)の括弧内の計算は、−1及び1からなる二値ベクトル同士の内積、又は−1及び1からなる二値ベクトルと−1、0、1からなる三値ベクトルとの内積である。従って、特徴ベクトルが任意の二値ベクトルにされ、かつ、実数ベクトルを上記のとおり一般化した三値ベクトルの線形和に展開した場合にも、高速演算が可能である。
(第3の実施の形態)
第1及び第2の実施の形態では、ベクトル演算部106における演算処理において行なわれる特徴ベクトルpと実数ベクトルqとの内積演算について説明した。特徴ベクトルpと実数ベクトルqとの内積演算を伴う演算処理については、後述にて応用例として説明するが、演算処理として、内積pTqがある閾値Tと比較されることがある。例えば、特徴ベクトルの識別を行なう場合には、内積pTqがある閾値Tと比較される。
第1の実施の形態及び第2の実施の形態において、内積pTqは、式(2)(実数ベクトルqを二値ベクトルの線形和に分解する場合)及び式(10)(実数ベクトルqを三値ベクトルの線形和に分解する場合)に示すように、下式(17)で表される。
Figure 0006055391
この点に着目して、ベクトル演算部106は、特徴ベクトルを用いた演算に、内積pTqと閾値との比較の処理(閾値処理)が含まれる場合には、閾値処理をk段階に分けること(カスケード)により、閾値処理を高速化できる。
(第1のカスケード)
以下、第1のカスケードによる閾値処理の高速化をする。以下の例では、閾値をTとして、pTq>Tを判定する。図4は、ベクトル演算部106おけるカスケードによる閾値処理の高速化のフロー図である。ベクトル演算部106は、まずi=1、y=0とする(ステップS11)。次に、yをy+ci(pTi)に更新する(ステップS12)。次に、yがTi minより大きいか否かを判断する(ステップS13)。なお、Ti minは、pTq<Tを早期に判定するための最小側早期判定閾値であり、その決定方法については、後述する。yがTi minより小さい場合には(ステップS13にてYES)、pTq<Tであると判定して(ステップS14)、そこで特徴ベクトルpと実数ベクトルqとの内積演算を打ち切って、処理を終了する。
yがTi min以上である場合は(ステップS13にてNO)、次にyがTi maxより大きいか否かを判断する(ステップS15)。なお、Ti maxは、pTq>Tを早期に判定するための最大側早期判定閾値であり、その決定方法については、後述する。yがTi maxより大きい場合には(ステップS15にてYES)、pTq>Tであると判定して(ステップS16)、そこで特徴ベクトルpと実数ベクトルqとの内積演算を打ち切って、処理を終了する。
yがTi max以下である場合には(ステップS15にてNO)、i=kであるか否か、すなわち、まだ計算していない基底miがあるか否かを判断する(ステップS17)、i=kでない場合には(ステップS17にてNO)、iをインクリメントして(ステップS18)、ステップS12に戻る。i=kである場合、すなわちすべての基底miを計算している場合には(ステップS17にてYES)、ステップS14に移行して、pTq<Tであると判断して処理を終了する。
以上のように、二値ベクトルpと実数ベクトルqとの内積を計算する際に、実数ベクトルqを二値ベクトル又は三値ベクトルの線形和に分解することで、閾値処理をk段階に分けることができ、それによって、pTq<Tが明らかに成立する場合、及びpTq>Tが明らかに成立する場合は、そのような閾値処理の結果を早期に得ることができる。これによって、二値ベクトルpと実数ベクトルqの内積演算をk回より少ない回数に抑えることができる。
なお、判定結果は、カスケードを採用しない(非カスケード)場合と完全に一致はしないが、Ti min及びTi maxを適切に選択することで、判定結果を非カスケードの場合と限りなく一致させることができる。
なお、ciを大きさによって並べ替えることで、早期判定の効果を高めることができる。また、ciの大きさに差がつくように分解することで、早期判定の効果を高めることができる。
次に、最小側早期判定用閾値Ti min及び最大側早期判定用閾値Ti maxの決定方法について説明する。カスケード一段目における最小側早期判定用閾値T1 min及び最大側早期判定用閾値T1 maxを決定することを考えると、ci(pTi)(i=2,3,…,k)が未知の状態で、安全に判定できる閾値を決めなければならない。そこで、あらかじめci(pTi)のとり得る最大値Pi max及び最小値Pi minを求めておく。これは、事前に学習用に準備した複数のデータから抽出した二値の特徴量pをci(pTi)に代入することで得られる。
最小側早期判定用閾値Ti minは、次のようにして決定できる。
Figure 0006055391
すなわち、
Figure 0006055391
が成立するのであれば、カスケードの二段目以降は、どのような大きな値が入ってきたとしてもpTq<Tが成立するので、この時点で必ずpTq<Tが成立するといえる。従って、下式(18)によってTi minを求めることができる。
Figure 0006055391
二段目以降のTi minについても、同じ要領で決定することができる。
最大側早期判定用閾値Ti maxは、次のようにして決定できる。
Figure 0006055391
すなわち、
Figure 0006055391
が成立するのであれば、カスケードの二段目以降は、どのような小さな値が入ってきたとしてもpTq>Tが成立するので、この時点で必ずpTq>Tが成立するといえる。従って、下式(19)によってTi maxを求めることができる。
Figure 0006055391
二段目以降のTi maxについても、同じ要領で決定することができる。なお、上記説明から明らかなように、Tk min及びTk maxはTである。
なお、式(19)において、Pi minは最小でなくても、十分小さい上位数%内の値として選択してもよい。また、式(18)においても、Pi maxは最大でなくても、十分に大きい上位数%の値として選択してもよい。
(第2のカスケード)
第2のカスケードでは、実数ベクトルを複数のサブベクトルに分解することでより深いカスケードを実施し、これにより、閾値との比較処理をより高速化する。即ち、第1のカスケードでは、
Figure 0006055391
であることに着目して、閾値処理をk段階に分けた。第2のカスケードでは、これを以下のように拡張する。
まず、下式(20)のように、q∈Rdをm個の部分ベクトルに分解する。
Figure 0006055391
同様に、下式(21)のように、p∈{1,1}dをm個の部分ベクトルに分解する。
Figure 0006055391
ここで、qiとpiの次元数は同じであるものとする。
このとき、内積pTqは、下式(22)のように書ける。
Figure 0006055391
m個のそれぞれの内積pi Tiは、二値ベクトルと実数ベクトルの内積であるため、これらもまた、それぞれ二値/三値分解法を適用可能である。例えば、内積pi Tiをそれぞれk個に分解するのであれば、pTqは、mk段階のカスケード処理に分解できる。これによりカスケードの段階数が増加し、早期判定の効果を向上できる。なお、第2のカスケードにおいても、カスケード処理の順序は、係数の絶対値順、又は誤識別が少なくなるような順序に選ぶことで、早期判定の効果をより向上できる。
なお、上記の第3の実施の形態では、pTq>Tを判断するために、基底ごとに、明らかにpTq<Tが成立する(すなわち明らかにpTq>Tが成立しない)か否か、及び明らかにpTq>Tが成立するか否かを判断したが、このいずれか一方のみを判断してもよい。
次に、ベクトル演算部106における演算処理について説明する。上記の第1及び第2の実施の形態のベクトル演算部106は、二値化された特徴ベクトルpと実数ベクトルqの内積計算を伴うものであるが、そのような演算処理は種々ある。すなわち、本発明の上記の実施の形態は、特徴ベクトルを用いて演算処理を行なう種々の装置に応用できる。なお、上記の第3の実施の形態は、上述のとおり、特に特徴ベクトルを閾値と比較する処理を伴う演算処理を行なう種々の装置に応用できる。そこで、以下、本発明の応用例を第4ないし第6の実施の形態として説明する。
(第4の実施の形態)
本実施の形態では、本発明がHoGによる物体認識に応用される。図5は、物体認識装置の構成を示すブロック図である。物体認識装置10は、HoGによる物体認識を行なう。物体認識装置10は、ピラミッド画像生成部11と、HoG特徴量抽出部12と、バイナリコード変換部13と、パラメータ決定部14と、パラメータ行列分解部15と、線形SVM識別部16と、ピーク検出部17とを備えている。
ピラミッド画像生成部11は、入力クエリとしての画像を取得して、当該画像を複数段階の倍率でそれぞれ縮小してなるピラミッド画像を生成する。これにより、サイズの異なる物体に対処できる。このピラミッド画像生成部11は、図1に示したコンテンツ取得部101に対応する。HoG特徴量抽出部12は、ピラミッド画像の各段における画像を、8×8ピクセルのサイズのセルに分割し、各セルからHoG特徴量を抽出する。HoG特徴量抽出部12は、各セルからD次元の特徴量を抽出する。このHoG特徴量抽出部12は、図1に示した特徴ベクトル抽出部102に対応する。バイナリコード変換部13は、各セルに与えられたD次元の特徴量を、d次元の二値ベクトルに変換する。このバイナリコード変換部13は、図1に示した特徴ベクトル二値化部103に対応する。
パラメータ決定部14は、線形SVM識別部16における線形SVMにて用いる重みベクトルw及び実数のバイアスbを決定する。パラメータ決定部14は、学習用に用意された特徴量を用いて、学習処理によって重みベクトルw及びバイアスbを決定する。パラメータ行列分解部15は、重みベクトルwを第1又は第2の実施の形態で説明した式(1)又は式(9)によって離散値ベクトルの線形和に分解する。
線形SVM識別部16は、線形SVMによって特徴ベクトルの識別を行なう。線形SVM識別部16は、まず、W×Hセルをひとまとまりとして、検出ウィンドウを構成する。1つの検出ウィンドウから抽出される特徴ベクトルは、W×H×d次元のベクトルとなる。線形SVM識別部16は、この特徴ベクトルに対して、下式(20)の線形SVMを適用する。
Figure 0006055391
ここで、線形SVMにおける内積演算wTxは、第1又は第2の実施の形態として説明した実数ベクトルと二値ベクトルの高速内積演算により実現できる。
検出位置付近では、検出結果が固まることがある。そこで、ピーク検出部17は、周辺でf(x)の値が最大になったところを、代表的な検出位置とする。この線形SVM識別部16及びピーク検出部17は、特徴ベクトルを用いた処理を行なう構成であり、図1のベクトル演算部106に対応する。この線形SVM識別部16及びピーク検出部17の演算に、第3の実施の形態として説明したカスケードによる閾値処理の高速化技術を採用することが可能である。
(第5の実施の形態)
本実施の形態では、本発明がk−meansクラスタリングに応用される。図6は、k−meansクラスタリング装置の構成を示すブロック図である。k−meansクラスタリング装置20は、コンテンツ取得部21と、特徴ベクトル生成部22と、特徴ベクトル二値化部23と、代表ベクトル更新部24と、収束判定部25と、代表ベクトル分解部26と、最近接代表ベクトル探索部27とを備えている。
コンテンツ取得部21は、クラスタリングの対象となるN個のコンテンツを取得する。特徴ベクトル生成部22は、コンテンツ取得部21にて取得した各コンテンツからそれらの特徴量を特徴ベクトルとして抽出する。特徴ベクトル二値化部23は、特徴ベクトル抽出部22にて抽出された各特徴ベクトルを二値化する。
代表ベクトル更新部24は、まず、特徴ベクトル二値化部23で二値化されたN個の特徴ベクトルからk個をランダムに選出してこれを代表ベクトルとする。収束判定部25は、代表ベクトル更新部24が代表ベクトルを更新するごとに収束判定を行なう。収束判定部25にて収束したと判定された場合には、k−meansクラスタリング装置20はクラスタリングの処理を終了する。代表ベクトル分解部26は、代表ベクトル更新部24にて更新された代表ベクトルを離散値(二値又は三値)ベクトルに分解する。
最近接代表ベクトル探索部27は、特徴ベクトル二値化部23より入力されるN個の二値ベクトルをそれぞれ最も近傍の代表ベクトルに所属させる。最近接代表ベクトル27は、この結果を代表ベクトル更新部24に出力する。代表ベクトル更新部24は、各代表ベクトルについて、それに所属する特徴ベクトル(二値化されている)の平均ベクトルを算出して、これを新しい代表ベクトルとする。このようにして代表ベクトル更新部24で更新される代表ベクトルは、二値ベクトルの平均で算出されるので、実数ベクトルとなる。
従って、仮に代表ベクトル分解部26がなければ、最近接代表ベクトル探索部27は、更新された代表ベクトル(実数ベクトル)と特徴ベクトル(二値ベクトル)との距離を求めるためにそれらの内積を計算しなければならない。そこで、本実施の形態では、上記のように、この代表ベクトル(実数ベクトル)を代表ベクトル分解部26によって、第1又は第2の実施の形態で説明したように、離散値(二値又は三値)ベクトルに分解する。それによって、最近接代表ベクトル探索部27における、各特徴ベクトルと各代表ベクトルとの距離の計算を高速にでき、よって各特徴ベクトルが最も近接する代表ベクトル(すなわち、所属すべき代表ベクトル)を高速に探索できる。
(第6の実施の形態)
本実施の形態では、本発明が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)に提案されている手法を採用する。
具体的には、本実施の形態の近似最近傍探索装置は、N個のデータに対してk−meansを再帰的に適用することでk−分木を構築し、上記提案の木探索の原理により近似的に最近傍点を探索する。この手法は、データが実数ベクトルであり、かつノードに登録されている代表ベクトルが二値ベクトルである場合を前提として設計される。但し、データが二値ベクトルであって、ノードに登録されている代表ベクトルが実数ベクトルである場合にも、第1又は第2の実施の形態を採用することで、木探索を高速化できる。
(変形例)
特徴量演算装置100において、コンテンツ取得部101、特徴ベクトル生成部102、特徴ベクトル二値化部103、実数ベクトル取得部104、実数ベクトル分解部105、及びベクトル演算部106の一部と他の部分とが別々の装置として構成されていてもよい。特に、コンテンツ取得部101、特徴ベクトル生成部102、特徴ベクトル二値化部103、及びベクトル演算部106が特徴演算装置100に搭載され、実数ベクトル取得部104、及び実数ベクトル分解部105が別の装置に搭載されてよい。この場合には、実数ベクトル分解部105にて分解された複数の実数ベクトル(複数の係数ベクトルと基底ベクトルの組)が特徴演算装置100のデータベースに記憶され、ベクトル演算部106は、データベースから分解された複数の実数ベクトルを取得する。このとき、ベクトル演算部106は、基底ベクトル取得部(第1及び第2の実施の形態)、あるいは、二値ベクトル取得部(第1の実施の形態)、三値ベクトル取得部(第2の実施の形態)として機能する。
なお、コンテンツ取得部101にて取得されるコンテンツデータは、車両から得られる計測データであってよい。さらに、車両から得られる計測データは、例えば、車両に設置されたカメラで撮影された画像データ、車両に設置されたセンサで計測されたセンシングデータであってよい。この場合に、関連性判定装置としての特徴演算装置100のベクトル演算部106は、計測データと辞書データとの関連性を判定する。例えば、計測データとして、車両に設置されたカメラで撮影された画像データが取得される場合には、辞書データとして複数の人物画像のデータがデータベースに保存されており、関連性判定装置としての特徴演算装置100のベクトル演算部106は、第4ないし第6の実施の形態のいずれかによって、画像データの画像に人物が含まれるか否かを判定してよい。
(付記)
上記の第1ないし第6の実施の形態には、以下の技術(これらに限られない)が含まれている。
(付記1−1)
二値化された特徴ベクトルを取得する特徴ベクトル取得部と、
実数ベクトルを取得する実数ベクトル取得部と、
前記実数ベクトルを複数の二値の基底ベクトルの線形和に分解する実数ベクトル分解部と、
前記特徴ベクトルと分解された前記実数ベクトルとの内積計算を含む演算を行なうベクトル演算部と、
を備えたことを特徴とする特徴量演算装置。
この構成により、実数ベクトルは二値の基底ベクトルの線形和に分解されたうえで二値化された特徴ベクトルとの内積計算が行なわれるので、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記1−2)
前記特徴ベクトルと分解された前記実数ベクトルとの内積計算は、−1及び1のみを要素としてもつ第1の二値ベクトルと−1及び1のみを要素としてもつ複数の第2の二値ベクトルとの内積計算を含むことを特徴とする付記1−1に記載の特徴量演算装置。
この構成により、第1の二値ベクトル及び第2の二値ベクトルはいずれも−1及び1のみを要素としてもつので、それらの内積の計算は、ハミング距離の計算によって行なうことができ、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記1−3)
前記第1の二値ベクトルは、前記特徴ベクトルであることを特徴とする付記1−2に記載の特徴量演算装置。
この構成により、二値化された特徴ベクトルは、−1及び1のみを要素としてもつので、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記1−4)
前記第1の二値ベクトルは、前記特徴ベクトルの各要素を所定の係数で除したベクトルであることを特徴とする付記1−2に記載の特徴量演算装置。
この構成により、二値化された特徴ベクトルは、任意の係数aを用いて、p´∈{−a,a}dと表される二値ベクトルとすることができる。
(付記1−5)
前記第1の二値ベクトルは、その各要素を線形変換することで前記特徴ベクトルが得られるベクトルであることを特徴とする付記1−2に記載の特徴量演算装置。
この構成により、二値化された特徴ベクトルは、任意の係数α及びβを用いて、p´´∈{α,β}d(但し、α≠β)と表される二値ベクトルとすることができる。
(付記1−6)
前記第2の二値ベクトルは、前記基底ベクトルであることを特徴とする付記1−2ないし1−5のいずれか一項に記載の特徴量演算装置。
この構成により、二値の基底ベクトルは、−1及び1のみを要素としてもつので、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記1−7)
前記第2の二値ベクトルは、前記基底ベクトルの各要素を所定の係数で除したベクトルであることを特徴とする付記1−2ないし1−5のいずれか一項に記載の特徴量演算装置。
この構成により、二値の基底ベクトルは、任意の係数aを用いて、mi´∈{−a,a}dと表される二値ベクトルとすることができる。
(付記1−8)
前記第2の二値ベクトルは、その各要素を線形変換することで前記基底ベクトルが得られるベクトルであることを特徴とする付記1−2ないし1−5のいずれか一項に記載の特徴量演算装置。
この構成により、二値の基底ベクトルは、任意の係数γ及びδを用いて、mi´´∈{γ,δ}d(但し、γ≠δ)と表される二値ベクトルとすることができる。
(付記1−9)
前記ベクトル演算部は、前記第1の二値ベクトルと前記第2の二値ベクトルとの排他的論理和をとることで、前記第1の二値ベクトルと前記第2の二値ベクトルとの内積を計算することを特徴とする付記1−2ないし1−8のいずれか一項に記載の特徴量演算装置。
この構成により、第1の二値ベクトルと第2の二値ベクトルとの排他的論理和をとるという負荷の少ない計算で、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記1−10)
前記実数ベクトル分解部は、前記複数の基底ベクトルの要素を固定して、分解の誤差が最小になるように、前記複数の基底ベクトルに係る複数の係数を更新する第1の更新と、前記複数の係数を固定して、分解の誤差が最小になるように前記基底ベクトルの要素を更新する第2の更新とを繰り返すことで、前記複数の基底ベクトル及び前記複数の係数を求めることを特徴とする付記1−2ないし1−9のいずれか一項に記載の特徴量演算装置。
この構成により、好適に実数ベクトルを二値の基底ベクトルの線形和に分解できる。特に、基底ベクトルは、二値のベクトルであるので、その要素の組み合わせの候補は有限であり、高速に第1の更新を行なうことができる。
(付記1−11)
前記実数ベクトル分解部は、前記分解誤差の減少量が所定の値以下になるまで前記第1の更新と前記第2の更新を繰り返すことを特徴とする付記1−10に記載の特徴量演算装置。
この構成により、分解の誤差を所定の範囲内に抑えることができる。
(付記1−12)
前記実数ベクトル分解部は、前記複数の基底ベクトル及び前記複数の係数の初期値を変えて、複数とおりの前記複数の基底ベクトル及び前記複数の係数を求め、前記分解誤差が最小となる前記複数の基底ベクトル及び前記複数の係数を採用することを特徴とする付記1−10又は1−11に記載の特徴量演算装置。
この構成により、初期値によるばらつきを軽減して、分解の誤差をより小さくできる。
(付記1−13)
前記実数ベクトル分解部は、前記複数の基底ベクトルに係る複数の係数を離散値とすることを特徴とする付記1−1ないし1−12のいずれか一項に記載の特徴量演算装置。
この構成により、実数ベクトルの基底ベクトルの線形和への分解における係数が離散値に限られるので、第2の更新を高速化できる。
(付記1−14)
前記実数ベクトル分解部は、前記実数ベクトルの要素の平均値を前記実数ベクトルの各要素から引いてオフセット実数ベクトルを生成し、当該オフセット実数ベクトルを前記基底ベクトルの線形和に分解することを特徴とする付記1−1ないし1−13のいずれか一項に記載の特徴量演算装置。
この構成により、実数ベクトルの要素が0付近にシフトするので、基底ベクトルの線形和への分解を高速化できる。
(付記1−15)
前記特徴ベクトルは、HoG特徴量であり、
前記実数ベクトルは、線形SVMの重みベクトルであり、
前記ベクトル演算部は、線形SVMによって前記特徴ベクトルの識別を行なう
ことを特徴とする付記1−1ないし1−14のいずれか一項に記載の特徴量演算装置。
この構成により、線形SVMにおける重みベクトルと特徴ベクトルとの内積計算を高速化できる。
(付記1−16)
前記特徴ベクトルは、k−meansクラスタリングによるクラスタリングの対象となるベクトルであり、
前記実数ベクトルは、k−meansクラスタリングにおける代表ベクトルであり、
前記ベクトル演算部は、前記特徴ベクトルと前記代表ベクトルとの間の距離の演算を含むクラスタリング処理を行なう
ことを特徴とする付記1−1ないし1−14のいずれか一項に記載の特徴量演算装置。
この構成により、k−meansクラスタリングにおける特徴ベクトルと代表ベクトルとの間の距離の演算を高速化できる。
(付記1−17)
前記特徴ベクトルは、k−means treeによる近似最近傍探索の対象となるベクトルであり、
前記実数ベクトルは、k−分木のノードに登録されている代表ベクトルであり、
前記ベクトル演算部は、前記特徴ベクトルと前記代表ベクトルとの間の距離の演算を含むクラスタリング処理を行なう
ことを特徴とする付記1−1ないし1−14のいずれか一項に記載の特徴量演算装置。
この構成により、k−means treeによる近似最近傍探索における特徴ベクトルとk−分木のノードに登録されている代表ベクトルとの間の距離の演算を高速化できる。
(付記1−18)
前記特徴ベクトルは、画像の特徴量を表すベクトルであることを特徴とする付記1−15ないし1−17のいずれか一項に記載の特徴量演算装置。
この構成により、画像の特徴量の演算における特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記1−19)
コンピュータを、付記1−1ないし1−18のいずれか一項に記載の特徴量演算装置として機能させるための特徴量演算プログラム。
この構成によっても、実数ベクトルは二値の基底ベクトルの線形和に分解されたうえで二値化された特徴ベクトルとの内積計算が行なわれるので、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記1−20)
二値化された特徴ベクトルを取得する特徴ベクトル取得ステップと、
実数ベクトルを取得する実数ベクトル取得ステップと、
前記実数ベクトルを複数の二値の基底ベクトルの線形和に分解する実数ベクトル分解ステップと、
前記特徴ベクトルと分解された前記実数ベクトルとの内積計算を含む演算を行なう特徴ベクトル演算ステップと、
を含むことを特徴とする特徴量演算方法。
この構成によっても、実数ベクトルは二値の基底ベクトルの線形和に分解されたうえで二値化された特徴ベクトルとの内積計算が行なわれるので、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記2−1)
二値化された特徴ベクトルを取得する特徴ベクトル取得部と、
実数ベクトルを取得する実数ベクトル取得部と、
前記実数ベクトルを複数の三値の基底ベクトルの線形和に分解する実数ベクトル分解部と、
前記特徴ベクトルと分解された前記実数ベクトルとの内積計算を含む演算を行なうベクトル演算部と、
を備えたことを特徴とする特徴量演算装置。
この構成により、実数ベクトルは三値の基底ベクトルの線形和に分解されたうえで二値化された特徴ベクトルとの内積計算が行なわれるので、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記2−2)
前記特徴ベクトルと分解された前記実数ベクトルとの内積計算は、−1及び1のみを要素としてもつ二値ベクトルと−1、0及び1のみを要素としてもつ複数の三値ベクトルとの内積計算を含むことを特徴とする付記2−1に記載の特徴量演算装置。
この構成により、二値ベクトルは−1及び1のみを要素としてもち、三値ベクトルは−1、0及び1のみを要素としてもつので、それらの内積の計算は、ハミング距離の計算を利用して行なうことができ、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記2−3)
前記二値ベクトルは、前記特徴ベクトルであることを特徴とする付記2−2に記載の特徴量演算装置。
この構成により、二値化された特徴ベクトルは、−1及び1のみを要素としてもつので、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記2−4)
前記二値ベクトルは、前記特徴ベクトルの各要素を所定の係数で除したベクトルであることを特徴とする付記2−2に記載の特徴量演算装置。
この構成により、二値化された特徴ベクトルは、任意の係数aを用いて、p´∈{−a,a}dと表される二値ベクトルとすることができる。
(付記2−5)
前記二値ベクトルは、その各要素を線形変換することで前記特徴ベクトルが得られるベクトルであることを特徴とする付記2−2に記載の特徴量演算装置。
この構成により、二値化された特徴ベクトルは、任意の係数α及びβを用いて、p´´∈{α,β}d(但し、α≠β)と表される二値ベクトルとすることができる。
(付記2−6)
前記複数の三値ベクトルは、前記複数の基底ベクトルであることを特徴とする付記2−2ないし2−5のいずれか一項に記載の特徴量演算装置。
この構成により、三値の基底ベクトルは、−1、0、及び1のみを要素としてもつので、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記2−7)
前記複数の三値ベクトルは、前記複数の基底ベクトルの各要素を所定の係数で除したベクトルであることを特徴とする付記2−2ないし2−5のいずれか一項に記載の特徴量演算装置。
この構成により、三値の基底ベクトルは、任意の係数aを用いて、mi´∈{−a,0,a}dと表される三値ベクトルとすることができる。
(付記2−8)
前記複数の三値ベクトルは、その各要素を線形変換することで前記複数の基底ベクトルが得られるベクトルであることを特徴とする付記2−2ないし2−5のいずれか一項に記載の特徴量演算装置。
この構成により、三値の基底ベクトルは、任意の係数γ及びδを用いて、mi´´∈{γ−δ,γ,γ+δ}d(但し、γ≠δ)と表される三値ベクトルとすることができる。
(付記2−9)
前記ベクトル演算部は、前記二値ベクトルと前記三値ベクトルとの内積計算において、前記三値ベクトルの0の要素を−1又は1の任意のいずれかに置換して0置換ベクトルを生成し、前記三値ベクトルの0の要素を−1に置換し、かつ0以外の要素を1に置換してフィルタベクトルを生成し、前記二値ベクトルと前記0置換ベクトルとの排他的論理和と前記フィルタベクトルとの論理積をとることで、前記二値ベクトルと前記三値ベクトルとの間の非0で異なる要素の要素数Dfilterd_hammingを求め、前記要素数Dfilterd_hamming及び非0の要素数を前記二値ベクトルの要素数から引くことで、前記二値ベクトルと前記三値ベクトルとの間の非0で同一の要素の要素数を求め、前記二値ベクトルと前記三値ベクトルとの間の非0で同一の要素の要素数から前記二値ベクトルと前記三値ベクトルとの間の非0で異なる要素の要素数を引くことで、前記二値ベクトルと前記三値ベクトルとの内積を求めることを特徴とする付記2−2ないし2−8のいずれか一項に記載の特徴量演算装置。
この構成により、0置換ベクトル及びフィルタベクトルを利用して、二値ベクトルと三値ベクトルとの内積演算をハミング距離の計算によって行なうことができ、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記2−10)
前記実数ベクトル分解部は、前記複数の基底ベクトルの要素を固定して、分解の誤差が最小になるように、前記複数の基底ベクトルに係る複数の係数を更新する第1の更新と、前記複数の係数を固定して、分解の誤差が最小になるように前記基底ベクトルの要素を更新する第2の更新とを繰り返すことで、前記複数の基底ベクトル及び前記複数の係数を求めることを特徴とする付記2−1ないし2−9のいずれか一項に記載の特徴量演算装置。
この構成により、好適に実数ベクトルを三値の基底ベクトルの線形和に分解できる。特に、基底ベクトルは、三値のベクトルであるので、その要素の組み合わせの候補は有限であり、高速に第1の更新を行なうことができる。
(付記2−11)
前記実数ベクトル分解部は、前記分解誤差の減少量が所定の値以下になるまで前記第1の更新と前記第2の更新を繰り返すことを特徴とする付記2−10に記載の特徴量演算装置。
この構成により、分解の誤差を所定の範囲内に抑えることができる。
(付記2−12)
前記実数ベクトル分解部は、前記複数の基底ベクトル及び前記複数の係数の初期値を変えて、複数とおりの前記複数の基底ベクトル及び前記複数の係数を求め、前記分解誤差が最小となる前記複数の基底ベクトル及び前記複数の係数を採用することを特徴とする付記2−10又は2−11に記載の特徴量演算装置。
この構成により、初期値によるばらつきを軽減して、分解の誤差をより小さくできる。
(付記2−13)
前記実数ベクトル分解部は、前記複数の基底ベクトルに係る複数の係数を離散値とすることを特徴とする付記2−1ないし2−12のいずれか一項に記載の特徴量演算装置。
この構成により、実数ベクトルの基底ベクトルの線形和への分解における係数が離散値に限られるので、第2の更新を高速化できる。
(付記2−14)
前記実数ベクトル分解部は、前記実数ベクトルの要素の平均値を前記実数ベクトルの各要素から引いてオフセット実数ベクトルを生成し、当該オフセット実数ベクトルを前記基底ベクトルの線形和に分解することを特徴とする付記2−1ないし2−13のいずれか一項に記載の特徴量演算装置。
この構成により、実数ベクトルの要素が0付近にシフトするので、基底ベクトルの線形和への分解を高速化できる。
(付記2−15)
前記特徴ベクトルは、HoG特徴量であり、
前記実数ベクトルは、線形SVMの重みベクトルであり、
前記ベクトル演算部は、線形SVMによって前記特徴ベクトルの識別を行なう
ことを特徴とする付記2−1ないし2−14のいずれか一項に記載の特徴量演算装置。
この構成により、線形SVMにおける重みベクトルと特徴ベクトルとの内積計算を高速化できる。
(付記2−16)
前記特徴ベクトルは、k−meansクラスタリングによるクラスタリングの対象となるベクトルであり、
前記実数ベクトルは、k−meansクラスタリングにおける代表ベクトルであり、
前記ベクトル演算部は、前記特徴ベクトルと前記代表ベクトルとの間の距離の演算を含むクラスタリング処理を行なう
ことを特徴とする付記2−1ないし2−14のいずれか一項に記載の特徴量演算装置。
この構成により、k−meansクラスタリングにおける特徴ベクトルと代表ベクトルとの間の距離の演算を高速化できる。
(付記2−17)
前記特徴ベクトルは、k−means treeによる近似最近傍探索の対象となるベクトルであり、
前記実数ベクトルは、k−分木のノードに登録されている代表ベクトルであり、
前記ベクトル演算部は、前記特徴ベクトルと前記代表ベクトルとの間の距離の演算を含むクラスタリング処理を行なう
ことを特徴とする付記2−1ないし2−14のいずれか一項に記載の特徴量演算装置。
この構成により、k−means treeによる近似最近傍探索における特徴ベクトルとk−分木のノードに登録されている代表ベクトルとの間の距離の演算を高速化できる。
(付記2−18)
前記特徴ベクトルは、画像の特徴量を表すベクトルであることを特徴とする付記2−15ないし2−17のいずれか一項に記載の特徴量演算装置。
この構成により、画像の特徴量の演算における特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記2−19)
コンピュータを、付記2−1ないし2−18のいずれか一項に記載の特徴量演算装置として機能させるための特徴量演算プログラム。
この構成によっても、実数ベクトルは三値の基底ベクトルの線形和に分解されたうえで二値化された特徴ベクトルとの内積計算が行なわれるので、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記2−20)
二値化された特徴ベクトルを取得する特徴ベクトル取得ステップと、
実数ベクトルを取得する実数ベクトル取得ステップと、
前記実数ベクトルを複数の三値の基底ベクトルの線形和に分解する実数ベクトル分解ステップと、
前記特徴ベクトルと分解された前記実数ベクトルとの内積計算を含む演算を行なう特徴ベクトル演算ステップと、
を含むことを特徴とする特徴量演算方法。
この構成によっても、実数ベクトルは三値の基底ベクトルの線形和に分解されたうえで二値化された特徴ベクトルとの内積計算が行なわれるので、特徴ベクトルと実数ベクトルの内積計算を高速化できる。
(付記3−1)
二値化された特徴ベクトルを取得する特徴ベクトル取得部と、
実数ベクトルを取得する実数ベクトル取得部と、
前記実数ベクトルを離散値の要素を持つ複数の基底ベクトルの線形和に分解する実数ベクトル分解部と、
前記特徴ベクトルと分解された前記実数ベクトルとの内積を所定の閾値とを比較するための演算を行なうベクトル演算部と、
を備え、
前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算ごとに、前記特徴ベクトルと分解された前記実数ベクトルとの内積が、前記閾値よりも大きくなるか否か、及び/又は前記閾値よりも小さくなるか否かを判断する
ことを特徴とする特徴量演算装置。
この構成により、実数ベクトルが離散値の要素を持つ複数の基底ベクトルの線形和に分解されるので、特徴ベクトルと分解された実数ベクトルとの内積計算を基底ベクトルの数に応じた段階に分けることができ、このために、閾値処理もそれらの段階ごとに行なうことができ、すべての段階の計算を終える前に早期に、特徴ベクトルと分解された実数ベクトルとの内積が閾値より大きい、又は小さいという判断が可能になる。
(付記3−2)
前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算ごとに、当該基底ベクトルまでの内積の合計が、最大側早期判定用閾値より大きいか否かによって、前記特徴ベクトルと分解された前記実数ベクトルとの内積が、前記閾値よりも大きくなるか否かを判断することを特徴とする付記3−1に記載の特徴量演算装置。
この構成により、特徴ベクトルと複数の基底ベクトルの各々との内積計算ごとに、それまでに計算された内積の合計と、その段階の最大側早期判定用閾値とを比較することで、特徴ベクトルと分解された実数ベクトルとの内積が閾値より大きくなるか否かを判断できる。
(付記3−3)
前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積が取りうる最小値を学習によって求めて、前記閾値から内積計算を行なっていない前記基底ベクトルと前記特徴ベクトルとの内積がとりうる値の最小値の合計を引いて、前記最大側早期判定用閾値を求めることを特徴とする付記3−2に記載の特徴量演算装置。
この構成により、まだ内積計算を行なっていない前記基底ベクトルと前記特徴ベクトルとの内積の合計が最も小さくなったとしても、特徴ベクトルと分解された実数ベクトルとの最終的な内積が閾値を下回ることはないことを判断できるので、それによって、特徴ベクトルと分解された実数ベクトルとの内積は閾値より大きくなると判断できる。
(付記3−4)
前記特徴ベクトルと前記複数の基底ベクトルの各々との内積が取りうる最小値は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積が取りうる値のうちの最小側の上位の所定の割合にある値であることを特徴とする付記3−3に記載の特徴量演算装置。
この構成により、学習による特徴ベクトルと基底ベクトルとの内積が取りうる最小値の決定を高速化できる。
(付記3−5)
前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算ごとに、当該基底ベクトルまでの内積の合計が、最小側早期判定用閾値より小さいか否かによって、前記特徴ベクトルと分解された前記実数ベクトルとの内積が、前記閾値よりも小さくなるか否かを判断することを特徴とする付記3−1ないし3−4のいずれか一項に記載の特徴量演算装置。
この構成により、特徴ベクトルと複数の基底ベクトルの各々との内積計算ごとに、それまでに計算された内積の合計と、その段階の最小側早期判定用閾値とを比較することで、特徴ベクトルと分解された実数ベクトルとの内積が閾値より小さくなるか否かを判断できる。
(付記3−6)
前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積が取りうる最大値を学習によって求めて、前記閾値から内積計算を行なっていない前記基底ベクトルと前記特徴ベクトルとの内積がとりうる値の最大値の合計を引いて、前記最小側早期判定用閾値を求めることを特徴とする付記3−5に記載の特徴量演算装置。
この構成により、まだ内積計算を行なっていない前記基底ベクトルと前記特徴ベクトルとの内積の合計が最も大きくなったとしても、特徴ベクトルと分解された実数ベクトルとの最終的な内積が閾値を上回ることはないことを判断できるので、それによって、特徴ベクトルと分解された実数ベクトルとの内積は閾値より小さくなると判断できる。
(付記3−7)
前記特徴ベクトルと前記複数の基底ベクトルの各々との内積が取りうる最大値は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積が取りうる値のうちの最大側の上位の所定の割合にある値であることを特徴とする付記3−6に記載の特徴量演算装置。
この構成により、学習による特徴ベクトルと基底ベクトルとの内積が取りうる最大値の決定を高速化できる。
(付記3−8)
前記実数ベクトル分解部は、前記複数の基底ベクトルの各係数を絶対値の大きさの順にすることを特徴とする付記3−1ないし3−7のいずれか一項に記載の特徴量演算装置。
この構成により、早い段階で特徴ベクトルと分解された実数ベクトルとの内積が閾値よりも大きくなるか否か、及び/又は閾値よりも小さくなるか否かを判断できる。
(付記3−9)
前記特徴ベクトルは、HoG特徴量であり、
前記実数ベクトルは、線形SVMの重みベクトルであり、
前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算ごとに、線形SVMによって前記特徴ベクトルの識別を行なうことを特徴とする付記3−1ないし3−8のいずれか一項に記載の特徴量演算装置。
この構成により、線形SVMにおいて、すべての段階の計算を終える前に早期に、特徴ベクトルの識別を行なうことができる。
(付記3−10)
コンピュータを、付記3−1ないし3−9のいずれか一項に記載の特徴量演算装置として機能させるための特徴量演算プログラム。
この構成によっても、実数ベクトルが離散値の要素を持つ複数の基底ベクトルの線形和に分解されるので、特徴ベクトルと分解された実数ベクトルとの内積計算を基底ベクトルの数に応じた段階に分けることができ、このために、閾値処理もそれらの段階ごとに行なうことができ、すべての段階の計算を終える前に早期に、特徴ベクトルと分解された実数ベクトルとの内積が閾値より大きい、又は小さいという判断が可能になる。
(付記3−11)
二値化された特徴ベクトルを取得する特徴ベクトル取得ステップと、
実数ベクトルを取得する実数ベクトル取得ステップと、
前記実数ベクトルを離散値の要素を持つ複数の基底ベクトルの線形和に分解する実数ベクトル分解ステップと、
前記特徴ベクトルと分解された前記実数ベクトルとの内積を所定の閾値とを比較するための演算を行なう特徴ベクトル演算ステップと、
を含み、
前記特徴ベクトル演算ステップは、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算ごとに、前記特徴ベクトルと分解された前記実数ベクトルとの内積が、前記閾値よりも大きくなるか否か、及び/又は前記閾値よりも小さくなるか否かを判断する
ことを特徴とする特徴量演算方法。
この構成によっても、実数ベクトルが離散値の要素を持つ複数の基底ベクトルの線形和に分解されるので、特徴ベクトルと分解された実数ベクトルとの内積計算を基底ベクトルの数に応じた段階に分けることができ、このために、閾値処理もそれらの段階ごとに行なうことができ、すべての段階の計算を終える前に早期に、特徴ベクトルと分解された実数ベクトルとの内積が閾値より大きい、又は小さいという判断が可能になる。
(付記4−1)
二値化された特徴ベクトルを取得する特徴ベクトル取得部と、
二値の離散値のみから構成された要素を持つ複数の二値ベクトルを取得する二値ベクトル取得部と、
前記特徴ベクトルと前記複数の二値ベクトルの各々との内積計算を順次行うベクトル演算部と、
を備え、
前記ベクトル演算部は、前記特徴ベクトルと前記二値ベクトルとの排他的論理和をとることで、前記特徴ベクトルと前記二値ベクトルとの内積を計算することを特徴とする特徴量演算装置。
この構成により、二値化された特徴ベクトルと二値ベクトルとの排他的論理和をとるという負荷の少ない計算で、二値化された特徴ベクトルと二値ベクトルの内積計算を高速化できる。
(付記4−2)
二値化された特徴ベクトルを取得する特徴ベクトル取得部と、
−1、0、1の三値のみから構成された要素を持つ複数の三値ベクトルを取得する三値ベクトル取得部と、
前記特徴ベクトルと前記複数の三値ベクトルの各々との内積計算を順次行うベクトル演算部と、
を備え、
前記ベクトル演算部は、前記特徴ベクトルと前記三値ベクトルとの内積計算において、前記三値ベクトルの0の要素を−1又は1の任意のいずれかに置換して0置換ベクトルを生成し、前記三値ベクトルの0の要素を−1に置換し、かつ0以外の要素を1に置換してフィルタベクトルを生成し、前記特徴ベクトルと前記0置換ベクトルとの排他的論理和と前記フィルタベクトルとの論理積をとることで、前記特徴ベクトルと前記三値ベクトルとの間の非0で異なる要素の要素数Dfilterd_hammingを求め、前記要素数Dfilterd_hamming及び非0の要素数を前記特徴ベクトルの要素数から引くことで、前記特徴ベクトルと前記三値ベクトルとの間の非0で同一の要素の要素数を求め、前記特徴ベクトルと前記三値ベクトルとの間の非0で同一の要素の要素数から前記特徴ベクトルと前記三値ベクトルとの間の非0で異なる要素の要素数を引くことで、前記特徴ベクトルと前記三値ベクトルとの内積を求めることを特徴とする特徴量演算装置。
この構成により、0置換ベクトル及びフィルタベクトルを利用して、二値化された特徴ベクトルと三値ベクトルとの内積演算をハミング距離の計算によって行なうことができ、二値化された特徴ベクトルと三値ベクトルの内積計算を高速化できる。
本発明は、特徴ベクトルと実数ベクトルの内積計算を高速化できるという効果を有し、画像、音声、文字等のコンテンツの特徴ベクトルを用いた演算処理を行う特徴量演算装置等として有用である。
100 特徴量演算装置
101 コンテンツ取得部
102 特徴ベクトル生成部
103 特徴ベクトル二値化部
104 実数ベクトル取得部
105 実数ベクトル分解部
106 ベクトル演算部(内積演算部)
10 物体認識装置
11 ピラミッド画像生成部
12 HoG特徴量抽出部
13 バイナリコード変換部
14 パラメータ決定部
15 パラメータ行列分解部
16 線形SVM識別部
20 k−meansクラスタリング装置
21 コンテンツ取得部
22 特徴ベクトル生成部
23 特徴ベクトル二値化部
24 代表ベクトル更新部
25 収束判定部
26 代表ベクトル分解部
27 最近接代表ベクトル算出部

Claims (43)

  1. 二値化された特徴ベクトルを取得する特徴ベクトル取得部と、
    実数ベクトルを二値または三値の離散値のみから構成された要素を持つ複数の基底ベクトルの線形和に分解することで得られた前記複数の基底ベクトルを取得する基底ベクトル取得部と、
    前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算を順次行うことで、前記実数ベクトルと前記特徴ベクトルとの関連性を判定するベクトル演算部と
    を備えたことを特徴とする関連性判定装置。
  2. 前記特徴ベクトルと前記基底ベクトルとの内積計算は、−1及び1のみを要素としてもつ第1の二値ベクトルと−1及び1のみを要素としてもつ複数の第2の二値ベクトルとの内積計算を含むことを特徴とする請求項1に記載の関連性判定装置。
  3. 前記第1の二値ベクトルは、前記特徴ベクトルであることを特徴とする請求項2に記載の関連性判定装置。
  4. 前記第1の二値ベクトルは、前記特徴ベクトルの各要素を所定の係数で除したベクトルであることを特徴とする請求項2に記載の関連性判定装置。
  5. 前記第1の二値ベクトルは、その各要素を線形変換することで前記特徴ベクトルが得られるベクトルであることを特徴とする請求項2に記載の関連性判定装置。
  6. 前記第2の二値ベクトルは、前記基底ベクトルであることを特徴とする請求項2ないし5のいずれか一項に記載の関連性判定装置。
  7. 前記第2の二値ベクトルは、前記基底ベクトルの各要素を所定の係数で除したベクトルであることを特徴とする請求項2ないし5のいずれか一項に記載の関連性判定装置。
  8. 前記第2の二値ベクトルは、その各要素を線形変換することで前記基底ベクトルが得られるベクトルであることを特徴とする請求項2ないし5のいずれか一項に記載の関連性判定装置。
  9. 前記特徴ベクトルと前記基底ベクトルとの内積計算は、−1及び1のみを要素としてもつ二値ベクトルと−1、0及び1のみを要素としてもつ複数の三値ベクトルとの内積計算を含むことを特徴とする請求項1に記載の関連性判定装置。
  10. 前記二値ベクトルは、前記特徴ベクトルであることを特徴とする請求項9に記載の関連性判定装置。
  11. 前記二値ベクトルは、前記特徴ベクトルの各要素を所定の係数で除したベクトルであることを特徴とする請求項9に記載の関連性判定装置。
  12. 前記二値ベクトルは、その各要素を線形変換することで前記特徴ベクトルが得られるベクトルであることを特徴とする請求項9に記載の関連性判定装置。
  13. 前記複数の三値ベクトルは、前記複数の基底ベクトルであることを特徴とする請求項9ないし12のいずれか一項に記載の関連性判定装置。
  14. 前記複数の三値ベクトルは、前記複数の基底ベクトルの各要素を所定の係数で除したベクトルであることを特徴とする請求項9ないし12のいずれか一項に記載の関連性判定装置。
  15. 前記複数の三値ベクトルは、その各要素を線形変換することで前記複数の基底ベクトルが得られるベクトルであることを特徴とする請求項9ないし12のいずれか一項に記載の関連性判定装置。
  16. 前記ベクトル演算部は、前記第1の二値ベクトルと前記第2の二値ベクトルとの排他的論理和をとることで、前記第1の二値ベクトルと前記第2の二値ベクトルとの内積を計算することを特徴とする請求項2に記載の関連性判定装置。
  17. 前記ベクトル演算部は、前記二値ベクトルと前記三値ベクトルとの内積計算において、前記三値ベクトルの0の要素を−1又は1の任意のいずれかに置換して0置換ベクトルを生成し、前記三値ベクトルの0の要素を−1に置換し、かつ0以外の要素を1に置換してフィルタベクトルを生成し、前記二値ベクトルと前記0置換ベクトルとの排他的論理和と前記フィルタベクトルとの論理積をとることで、前記二値ベクトルと前記三値ベクトルとの間の非0で異なる要素の要素数Dfilterd_hammingを求め、前記要素数Dfilterd_hamming及び非0の要素数を前記二値ベクトルの要素数から引くことで、前記二値ベクトルと前記三値ベクトルとの間の非0で同一の要素の要素数を求め、前記二値ベクトルと前記三値ベクトルとの間の非0で同一の要素の要素数から前記二値ベクトルと前記三値ベクトルとの間の非0で異なる要素の要素数を引くことで、前記二値ベクトルと前記三値ベクトルとの内積を求めることを特徴とする請求項9に記載の関連性判定装置。
  18. 前記複数の基底ベクトルは、前記実数ベクトルと、前記複数の基底ベクトルの線形和との差分を分解誤差として、前記分解誤差が最小になるように、求められることを特徴とする請求項1に記載の関連性判定装置。
  19. 前記複数の基底ベクトルは、前記実数ベクトルと前記特徴ベクトルとの内積と、前記複数の基底ベクトルの線形和と前記特徴ベクトルとの内積との差分を分解誤差として、前記分解誤差が最小になるように、求められることを特徴とする請求項1に記載の関連性判定装置。
  20. 前記複数の基底ベクトルは、前記複数の基底ベクトルの要素を固定して、前記分解誤差が最小になるように、前記複数の基底ベクトルに係る複数の係数を更新する第1の更新と、前記複数の係数を固定して、前記分解誤差が最小になるように前記基底ベクトルの要素を更新する第2の更新とを繰り返すことで、前記複数の係数とともに求められることを特徴とする請求項18又は19に記載の関連性判定装置。
  21. 前記複数の基底ベクトルは、前記分解誤差の減少量が所定の値以下になるまで前記第1の更新と前記第2の更新を繰り返すことで求められることを特徴とする請求項20に記載の関連性判定装置。
  22. 前記複数の基底ベクトルは、前記複数の基底ベクトル及び前記複数の係数の初期値を変えて、複数とおりの前記複数の基底ベクトル及び前記複数の係数を求め、前記分解誤差が最小となる前記複数の基底ベクトル及び前記複数の係数を採用することで求められることを特徴とする請求項20又は21に記載の関連性判定装置。
  23. 前記複数の基底ベクトルに係る複数の係数は離散値であることを特徴とする請求項20又は21に記載の関連性判定装置。
  24. 前記複数の基底ベクトルは、前記実数ベクトルの要素の平均値を前記実数ベクトルの各要素から引いたオフセット実数ベクトルを前記基底ベクトルの線形和に分解することで求められることを特徴とする請求項18又は19に記載の関連性判定装置。
  25. 前記ベクトル演算部は、前記特徴ベクトルと前記基底ベクトルとの前記内積計算を実行する度に、前記内積計算の結果の合計と、前記実数ベクトルと前記特徴ベクトルとが関連している場合に前記合計がとり得る範囲を求め、前記合計が前記とり得る範囲外である場合に、前記内積計算を打ち切って、前記特徴ベクトルと前記基底ベクトルとの内積と所定の閾値との大小関係を判定することを特徴とする請求項1に記載の関連性判定装置。
  26. 前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算ごとに、当該基底ベクトルまでの前記内積計算の結果の合計が、最大側早期判定用閾値より大きい場合に、前記内積計算を打ち切って、前記実数ベクトルと前記特徴ベクトルとの内積が前記閾値より大きいと判定することを特徴とする請求項25に記載の関連性判定装置。
  27. 前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積がとり得る最小値を学習によって求めて、前記閾値から前記内積計算を行なっていない前記基底ベクトルと前記特徴ベクトルとの内積がとり得る値の最小値の合計を引いて、前記最大側早期判定用閾値を求めることを特徴とする請求項26に記載の関連性判定装置。
  28. 前記特徴ベクトルと前記複数の基底ベクトルの各々との内積がとり得る最小値は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積がとり得る値のうちの最小側の上位の所定の割合にある値であることを特徴とする請求項27に記載の関連性判定装置。
  29. 前記最大側早期判定用閾値は、前記実数ベクトルと前記特徴ベクトルとが関連している場合にとり得る前記内積計算の結果の合計の最小値であることを特徴とする請求項26ないし28のいずれか一項に記載の関連性判定装置。
  30. 前記ベクトル演算部は、前記実数ベクトルと前記特徴ベクトルとの内積が前記閾値より大きいと判定したときに、前記特徴ベクトルと前記基底ベクトルとは関連していと判定することを特徴とする請求項29に記載の関連性判定装置。
  31. 前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算ごとに、当該基底ベクトルまでの前記内積計算の結果の合計が、最小側早期判定用閾値より小さい場合に、前記内積計算を打ち切って、前記実数ベクトルと前記特徴ベクトルとの内積が前記閾値より小さいと判定することを特徴とする請求項25ないし30のいずれか一項に記載の関連性判定装置。
  32. 前記ベクトル演算部は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積がとり得る最大値を学習によって求めて、前記閾値から前記内積計算を行なっていない前記基底ベクトルと前記特徴ベクトルとの内積がとり得る値の最大値の合計を引いて、前記最小側早期判定用閾値を求めることを特徴とする請求項31に記載の関連性判定装置。
  33. 前記特徴ベクトルと前記複数の基底ベクトルの各々との内積がとり得る最大値は、前記特徴ベクトルと前記複数の基底ベクトルの各々との内積がとり得る値のうちの最大側の上位の所定の割合にある値であることを特徴とする請求項32に記載の関連性判定装置。
  34. 前記最小側早期判定用閾値は、前記実数ベクトルと前記特徴ベクトルとが関連していない場合にとり得る前記内積計算の結果の合計の最値であることを特徴とする請求項31ないし33のいずれか一項に記載の関連性判定装置。
  35. 前記ベクトル演算部は、前記実数ベクトルと前記特徴ベクトルとの内積が前記閾値より小さいと判定したときに、前記特徴ベクトルと前記基底ベクトルとは関連していないと判定することを特徴とする請求項34に記載の関連性判定装置。
  36. 前記ベクトル演算部は、係数の絶対値が大きい前記基底ベクトルから順に前記内積計算を行うことを特徴とする請求項25ないし35のいずれか一項に記載の関連性判定装置。
  37. 前記ベクトル演算部は、前記特徴ベクトルと、分解された前記実数ベクトルをそれぞれ複数の部分ベクトルに分解し、前記特徴ベクトルの分解ベクトルと分解された前記実数ベクトルの部分ベクトルとの内積が、所定の閾値よりも大きくなるか否か、及び/又は前記閾値よりも小さくなるか否かを判断することを特徴とする請求項1に記載の関連性判定装置。
  38. 前記特徴ベクトルは、HoG特徴量であり、
    前記実数ベクトルは、線形SVMの重みベクトルであり、
    前記ベクトル演算部は、前記関連性の判定として、線形SVMによって前記特徴ベクトルの識別を行なう
    ことを特徴とする請求項1ないし37のいずれか一項に記載の関連性判定装置。
  39. 前記特徴ベクトルは、k−meansクラスタリングによるクラスタリングの対象となるベクトルであり、
    前記実数ベクトルは、k−meansクラスタリングにおける代表ベクトルであり、
    前記ベクトル演算部は、前記関連性の判定として、前記特徴ベクトルと前記代表ベクトルとの間の距離の演算を含むクラスタリング処理を行なう
    ことを特徴とする請求項1ないし37のいずれか一項に記載の関連性判定装置。
  40. 前記特徴ベクトルは、k−means treeによる近似最近傍探索の対象となるベクトルであり、
    前記実数ベクトルは、k−分木のノードに登録されている代表ベクトルであり、
    前記ベクトル演算部は、前記関連性の判定として、前記特徴ベクトルと前記代表ベクトルとの間の距離の演算を含むクラスタリング処理を行なう
    ことを特徴とする請求項1ないし37のいずれか一項に記載の関連性判定装置。
  41. 前記特徴ベクトルは、画像の特徴量を表すベクトルであることを特徴とする請求項38ないし40のいずれか一項に記載の関連性判定装置。
  42. コンピュータを、請求項1ないし41のいずれか一項に記載の関連性判定装置として機能させるための関連性判定プログラム。
  43. 二値化された特徴ベクトルを取得する特徴ベクトル取得ステップと、
    実数ベクトルを二値または三値の離散値のみから構成された要素を持つ複数の基底ベクトルの線形和に分解して得られた前記複数の基底ベクトルを取得する基底ベクトル取得ステップと、
    前記特徴ベクトルと前記複数の基底ベクトルの各々との内積計算を順次行うことで、前記実数ベクトルと前記特徴ベクトルとの関連性を判定するベクトル演算ステップと
    を含むことを特徴とする関連性判定方法。
JP2013214182A 2012-11-05 2013-10-11 関連性判定装置、関連性判定プログラム、及び関連性判定方法 Active JP6055391B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013214182A JP6055391B2 (ja) 2012-11-05 2013-10-11 関連性判定装置、関連性判定プログラム、及び関連性判定方法
US14/432,592 US10409886B2 (en) 2012-11-05 2013-11-01 Relatedness determination device, non-transitory tangible computer-readable medium for the same, and relatedness determination method
PCT/JP2013/006482 WO2014068990A1 (ja) 2012-11-05 2013-11-01 関連性判定装置、同上用持続的有形コンピュータ読み取り媒体、及び関連性判定方法

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP2012243491 2012-11-05
JP2012243491 2012-11-05
JP2012243490 2012-11-05
JP2012243494 2012-11-05
JP2012243490 2012-11-05
JP2012243494 2012-11-05
JP2013214182A JP6055391B2 (ja) 2012-11-05 2013-10-11 関連性判定装置、関連性判定プログラム、及び関連性判定方法

Publications (2)

Publication Number Publication Date
JP2014112358A JP2014112358A (ja) 2014-06-19
JP6055391B2 true JP6055391B2 (ja) 2016-12-27

Family

ID=50626935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013214182A Active JP6055391B2 (ja) 2012-11-05 2013-10-11 関連性判定装置、関連性判定プログラム、及び関連性判定方法

Country Status (3)

Country Link
US (1) US10409886B2 (ja)
JP (1) JP6055391B2 (ja)
WO (1) WO2014068990A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6324264B2 (ja) * 2014-08-22 2018-05-16 ルネサスエレクトロニクス株式会社 三値内積演算回路、三値内積演算処理プログラム、及び、三値内積演算回路による演算処理方法
JP6558765B2 (ja) * 2014-12-18 2019-08-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 処理装置、処理方法、推測装置、推測方法、およびプログラム
WO2017082875A1 (en) 2015-11-10 2017-05-18 Hewlett Packard Enterprise Development Lp Data allocation based on secure information retrieval
US11657267B2 (en) * 2016-07-21 2023-05-23 Denso It Laboratory, Inc. Neural network apparatus, vehicle control system, decomposition device, and program
US11080301B2 (en) 2016-09-28 2021-08-03 Hewlett Packard Enterprise Development Lp Storage allocation based on secure data comparisons via multiple intermediaries
US10394930B2 (en) * 2016-10-01 2019-08-27 Intel Corporation Binary vector factorization
JP6999885B2 (ja) * 2017-05-08 2022-01-19 株式会社プロアシスト 二値化ニューラルネットワーク用プロセッサ、データ処理方法、および、プログラム
US10210137B2 (en) * 2017-06-28 2019-02-19 Intel Corporation Binary multiplier for binary vector factorization
JP6867929B2 (ja) * 2017-10-26 2021-05-12 株式会社デンソーアイティーラボラトリ 行列分解装置及び行列分解方法
WO2020100289A1 (ja) * 2018-11-16 2020-05-22 富士通株式会社 類似度計算装置、類似度計算方法および類似度計算プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4416010A (en) * 1980-04-14 1983-11-15 Victor Company Of Japan, Ltd. Double error correcting system in digital signal reproducing apparatus
JPS62180488A (ja) * 1986-02-03 1987-08-07 Ricoh Co Ltd パタ−ンマツチング方式
JPH0636034A (ja) * 1992-07-15 1994-02-10 Mitsubishi Heavy Ind Ltd パターン認識装置
JP3352761B2 (ja) * 1993-06-01 2002-12-03 武藤工業株式会社 画像データの位置変換方法
JP2000322571A (ja) * 1999-05-13 2000-11-24 Sharp Corp 画像処理方法および画像処理装置
JP2004133637A (ja) * 2002-10-09 2004-04-30 Sony Corp 顔検出装置、顔検出方法及びプログラム、並びにロボット装置
KR100723406B1 (ko) * 2005-06-20 2007-05-30 삼성전자주식회사 국부이진패턴 구별 방법을 이용한 얼굴 검증 방법 및 장치
US7839407B2 (en) * 2006-01-25 2010-11-23 Pixar Methods and apparatus for accelerated animation using point multiplication
JP4917351B2 (ja) * 2006-05-16 2012-04-18 ローランドディー.ジー.株式会社 3次元形状測定装置におけるキャリブレーション方法
US8355539B2 (en) * 2007-09-07 2013-01-15 Sri International Radar guided vision system for vehicle validation and vehicle motion characterization
EP2515541A4 (en) * 2009-12-18 2015-08-26 Sharp Kk BILDFILTER, CODING DEVICE, DECODING DEVICE AND DATA STRUCTURE
JP2011188083A (ja) * 2010-03-05 2011-09-22 Sony Corp 情報処理装置、情報処理方法、プログラム、及び光学顕微鏡を搭載した撮像装置
AU2011305154B2 (en) * 2010-09-24 2015-02-05 Irobot Corporation Systems and methods for VSLAM optimization

Also Published As

Publication number Publication date
WO2014068990A1 (ja) 2014-05-08
US10409886B2 (en) 2019-09-10
US20150278156A1 (en) 2015-10-01
JP2014112358A (ja) 2014-06-19

Similar Documents

Publication Publication Date Title
JP6055391B2 (ja) 関連性判定装置、関連性判定プログラム、及び関連性判定方法
JP6566397B2 (ja) 認識装置、実数行列分解方法、認識方法
CN109885692B (zh) 知识数据存储方法、装置、计算机设备和存储介质
CN109669962B (zh) 精确指数和准确softmax计算
Al-Anazi et al. Finding similar documents using different clustering techniques
CN110059181B (zh) 面向大规模分类体系的短文本标签方法、系统、装置
JP5258915B2 (ja) 特徴変換装置、それを含む類似情報探索装置、コード化パラメータ生成方法、及びコンピュータ・プログラム
US20160232254A1 (en) Efficient calculation of all-pair path-based distance measures
CN111986792B (zh) 医疗机构评分方法、装置、设备及存储介质
JP6235414B2 (ja) 特徴量演算装置、特徴量演算方法、及び特徴量演算プログラム
CN109783547B (zh) 一种相似性连接查询方法及装置
JP2015203946A (ja) ヒストグラムの重心を計算する方法
CN112784009B (zh) 一种主题词挖掘方法、装置、电子设备及存储介质
EP2953062A1 (en) Learning method, image processing device and learning program
JP6259671B2 (ja) 関連性判定装置、関連性判定プログラム、及び関連性判定方法
Jayady et al. Theme Identification using Machine Learning Techniques
Wang et al. File fragment type identification with convolutional neural networks
CN111611395A (zh) 一种实体关系的识别方法及装置
EP4285281A1 (en) Annotation-efficient image anomaly detection
CN111488400B (zh) 数据分类方法、装置和计算机可读存储介质
JP6375420B2 (ja) 関連性判定装置、及び関連性判定プログラム
CN109299260B (zh) 数据分类方法、装置以及计算机可读存储介质
CN112149566A (zh) 一种图像处理方法、装置、电子设备及存储介质
CN111090743A (zh) 一种基于词嵌入和多值形式概念分析的论文推荐方法及装置
Rangan et al. Kannada document classification using unicode term encoding over vector space

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161013

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161202

R150 Certificate of patent or registration of utility model

Ref document number: 6055391

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250