説明

パターン識別装置およびパターン識別方法

【課題】より少ない演算負荷で、高精度にパターンのクラスを識別することができるパターン識別装置およびパターン識別方法を提供すること。
【解決手段】次元拡張部220は、学習サンプルの特徴ベクトルを、成分の線形結合により次元を拡張する。識別ベクトル学習部230は、高次元の特徴ベクトルから、特徴ベクトルを線形分離可能な高次元の識別ベクトルを生成する。次元縮退部240は、高次元の識別ベクトルの次元を縮退した低次元の識別ベクトルを参照テーブルに記述するとともに低次元の特徴ベクトルと対応付けたインデックス値を設定する。インデックス算出部420は、入力画像の特徴ベクトルに基づいてインデックス値を算出する。線形識別器430は、参照テーブルでインデックス値を検索し、該当する低次元の識別ベクトルを取得して入力画像の特徴ベクトルとの内積演算を実行して識別結果を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力パターンの種類を識別するパターン識別装置およびパターン識別方法に係り、特に、学習サンプルの特徴量に基づいて生成された識別ベクトルを用いるパターン識別装置およびパターン識別方法に関する。
【背景技術】
【0002】
パターン識別の技術は、画像解析や音声解析など、様々な分野で利用されている。多くのパターン識別では、まず、区分けしようとするパターンの種類(以下「クラス」という)ごとにパターンの学習サンプルを用意し、学習サンプルから特徴量を抽出して、抽出した特徴量に基づいて識別ベクトルを生成する(たとえば非特許文献1参照)。以下、この処理を「学習」という。そして、パターン識別の対象となる入力パターンから特徴量を抽出し、学習段階で生成した識別ベクトルを用いて、入力パターンがいずれのクラスに属するかを判定する。以下、この処理を「識別」という。
【0003】
従来のパターン識別では、学習段階と識別段階とで、同じ次元空間を用いる。高次元空間を用いる場合、高い精度で学習を行うことができるというメリットがある。また、低次元空間を用いる場合、識別段階で行われる内積演算を高速化することができるというメリットがある。
【非特許文献1】Bernhard Scholkopf, Alexander Smola, and Klaus‐Robert Muller, “Nonlinear component analysis as a kernel eigenvalue problem”, Neural Computation, 1998
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、一方では、高次元空間を用いる場合、識別段階で行われる内積演算に時間が掛かり、識別処理速度が低下するという問題がある。また、低次元空間を用いる場合、学習サンプルのパターンの学習が困難となり、高次元空間を用いた場合と同等の識別精度を得るためには識別ベクトルの複雑なセットが必要となり、やはり識別処理速度が低下するという問題がある。
【0005】
リアルタイムアプリケーションや、リソースの限られたアプリケーションにおいては、演算負荷の高い処理や、多くのメモリを必要とする処理を実行することは難しい。したがって、できるだけ演算負荷を抑えた状態でより高精度なパターン識別を実現できることが望ましい。
【0006】
本発明は、かかる点に鑑みてなされたものであり、より少ない演算負荷で、高精度にパターンのクラスを識別することができるパターン識別装置およびパターン識別方法を提供する。
【課題を解決するための手段】
【0007】
本発明のパターン識別装置は、入力パターンから特徴ベクトルを抽出する特徴抽出部と、入力パターンの種類を識別するための識別ベクトルと、特徴空間を分割した分割領域と、を対応付けて記述した参照テーブルから、前記特徴抽出部により抽出される特徴ベクトルが属する分割領域に対応する識別ベクトルを取得し、取得した識別ベクトルと前記入力パターンの特徴ベクトルとの内積演算を実行して前記入力パターンの種類を識別する識別部とを具備する構成を採る。
【0008】
また、本発明のパターン識別装置は、学習サンプルから所定の次元の特徴ベクトルを抽出するサンプル特徴抽出部と、前記学習サンプルの特徴ベクトルの成分を線形結合して次元を拡張した高次元特徴ベクトルを生成する次元拡張部と、高次元特徴ベクトルに基づいてパターンの種類を識別するための高次元識別ベクトルを生成する識別ベクトル学習部と、高次元識別ベクトルの次元を縮退して前記所定の次元の識別ベクトルを生成し、特徴空間を分割した複数の分割領域のうち、基となる特徴ベクトルが属する分割領域と対応付けて前記識別ベクトルを記述した参照テーブルを作成する次元縮退部と、を有する学習部と、入力パターンから前記所定の次元の特徴ベクトルを抽出する特徴抽出部と、前記学習装置が作成した参照テーブルから前記入力パターンの特徴ベクトルが属する分割領域に対応する識別ベクトルを取得し、取得した識別ベクトルと前記入力パターンの特徴ベクトルとの内積演算を実行して前記入力パターンの種類を識別する線形識別部と、を有するパターン識別部とを具備する構成を採る。
【0009】
本発明のパターン識別方法は、入力パターンから特徴ベクトルを抽出する特徴抽出ステップと、入力パターンの種類を識別するための識別ベクトルと、特徴空間を分割した分割領域と、を対応付けて記述した参照テーブルから、前記特徴抽出ステップで抽出した特徴ベクトルが属する分割領域に対応する識別ベクトルを取得する識別ベクトル取得ステップと、前記識別ベクトル取得ステップで取得した識別ベクトルと前記特徴抽出ステップで抽出した特徴ベクトルとの内積演算を実行して、前記入力パターンの種類を識別するパターン識別ステップとを有するようにした。
【0010】
また、本発明のパターン識別方法は、学習サンプルから所定の次元の特徴ベクトルを抽出するサンプル特徴抽出ステップと、特徴ベクトルの成分を線形結合して次元を拡張した高次元特徴ベクトルを生成する次元拡張ステップと、高次元特徴ベクトルに基づいてパターンの種類を識別するための高次元識別ベクトルを生成する識別ベクトル学習ステップと、高次元識別ベクトルの次元を縮退して前記所定の次元の識別ベクトルを生成し、特徴空間を分割した複数の分割領域のうち、基となる特徴ベクトルが属する分割領域と対応付けて前記識別ベクトルを記述した参照テーブルを作成する次元縮退ステップと、入力パターンから前記所定の次元の特徴ベクトルを抽出する特徴抽出ステップと、参照テーブルから前記特徴抽出ステップで抽出した特徴ベクトルが属する分割領域に対応する識別ベクトルを取得する識別ベクトル取得ステップと、前記識別ベクトル取得ステップで取得した識別ベクトルと前記特徴抽出ステップで抽出した特徴ベクトルとの内積演算を実行して前記入力パターンの種類を識別するパターン識別ステップとを有するようにした。
【発明の効果】
【0011】
本発明によれば、より少ない演算負荷で、高精度にパターンの種類を識別することができる。すなわち、特徴空間における特徴ベクトルが属する領域ごとに識別ベクトルを使い分けることができるため、たとえば、学習段階で得た高次元の識別ベクトルを、特徴ベクトルが属する領域ごとに識別精度を保った状態で低次元化し、低次元化された識別ベクトルのうち適切なものを用いてパターン識別を実施することが可能となる。
【発明を実施するための最良の形態】
【0012】
以下、本発明の一実施の形態について、図面を参照して詳細に説明する。
【0013】
図1は、本発明の一実施の形態に係るパターン識別システムの構成を示すブロック図である。
【0014】
図1において、パターン識別システム100は、学習装置200、情報格納装置300、および識別装置400を有する。このパターン識別システム100は、入力画像のパターンを識別することによって入力画像からオブジェクトを検出する装置であり、たとえば、車の後方に人がいないかどうかをカメラ画像から判別する事故防止システムに用いられるものである。以下、オブジェクト検出のためにあらかじめ定められたパターンの種類をクラスという。
【0015】
学習装置200は、入力画像のクラスを識別するための識別ベクトルの学習を行う。学習装置200は、サンプル特徴抽出部210、次元拡張部220、識別ベクトル学習部230、および次元縮退部240を有する。
【0016】
サンプル特徴抽出部210は、クラスごとに用意された画像の学習サンプルから特徴を抽出して低次元の特徴ベクトル(以下「低次元特徴ベクトル」という)を生成し、次元拡張部220へ出力する。
【0017】
次元拡張部220は、低次元特徴ベクトルの次元を拡張させて高次元の特徴ベクトル(以下「高次元特徴ベクトル」)を生成し、識別ベクトル学習部230へ出力する。
【0018】
識別ベクトル学習部230は、高次元特徴ベクトルに基づいて高次元の識別ベクトル(以下「高次元識別ベクトル」という)を生成し、次元縮退部240へ出力する。
【0019】
次元縮退部240は、高次元識別ベクトルの次元を縮退させて低次元の識別ベクトル(以下「低次元識別ベクトル」)を複数生成し、生成した低次元識別ベクトルを記述した参照テーブルを生成する。そして、次元縮退部240は、生成した参照テーブルを、情報格納装置300に格納する。
【0020】
情報格納装置300は、フラッシュメモリなどの情報記録媒体を備えており、学習装置200によって格納された参照テーブルを保持する。
【0021】
識別装置400は、学習装置200による学習結果である参照テーブルを用いて、入力画像のクラスを識別する。識別装置400は、画像特徴抽出部410、インデックス算出部420、および線形識別器430を有する。
【0022】
画像特徴抽出部410は、入力画像の特徴を抽出して低次元特徴ベクトルを生成し、インデックス算出部420および線形識別器430のそれぞれへ出力する。
【0023】
インデックス算出部420は、低次元特徴ベクトルに基づいて、情報格納装置300に格納されている参照テーブルを検索するための数値である参照テーブルインデックス(以下単に「インデックス値」という)を算出し、算出したインデックス値を線形識別器430へ出力する。
【0024】
線形識別器430は、インデックス値を用いて参照テーブルから適切な低次元識別ベクトルを検索し、検索した低次元識別ベクトルを用いて低次元特徴ベクトルのクラスを識別して、入力画像の識別結果として出力する。
【0025】
図1に示す学習装置200および識別装置400は、図示しないが、それぞれCPU(central processing unit)、制御プログラムを格納したROM(read only memory)などの記憶媒体、RAM(random access memory)などの作業用メモリを有する。すなわち、それぞれのCPUが制御プログラムを実行することで、上記した各部の機能は実現される。
【0026】
たとえば、上記した車の事故防止システムに本実施の形態のパターン識別システム100を適用する場合、学習結果は同タイプの車に共通で使用することができる。このため、学習装置200は車の生産者側に配置され、参照テーブルを格納済みの情報格納装置300および識別装置400は個々の車本体に配置される。
【0027】
まず、学習装置200の各部の動作について、詳細に説明を行う。
【0028】
学習段階において、学習サンプルが、学習装置200のサンプル特徴抽出部210へ入力される。学習サンプルは、複数のピクセルにより構成されるディジタル画像データであり、クラスごとに用意される。たとえば、上記した監視カメラの例では、人物が映っている画像の画像サンプル群と、人物が映っていない画像サンプル群とが用意され、それぞれを別のクラスに属する画像としてサンプル特徴抽出部210へ入力される。
【0029】
ここでは、画像に存在するエッジを検出し、画像全体におけるエッジ方向の分布情報を用いて、画像に人物が映っているか否かを判別する場合を例として説明を行う。したがって、サンプル特徴抽出部210は、エッジ方向の分布情報に対応する特徴量を、学習サンプルから抽出する。
【0030】
ここでは、水平方向または垂直方向においてピクセル値の変化の度合い(勾配)が大きい部分を、画像のエッジ部分として扱う。サンプル特徴抽出部210は、学習サンプルの各ピクセル位置に対して、水平方向におけるピクセル値の差(以下単に「水平勾配」という)、および垂直方向におけるピクセル値の差(以下単に「垂直勾配」という)を求める。水平勾配Dおよび垂直勾配Dは、ピクセル位置(x,y)におけるピクセル値をPx,yとすると、たとえば、それぞれ以下の式(1)、(2)に従って算出することができる。
= Px+1,y − Px−1,y ・・・・・・(1)
= Px,y+1− Px,y−1 ・・・・・・(2)
【0031】
これら水平勾配Dおよび垂直勾配Dは、正と負のいずれであるかによって、ピクセル値の変化の向きをも示す値となる。サンプル特徴抽出部210は、エッジの方向を示す情報を保持した状態で、ピクセル値の変化の向きを示す情報を除去するために、水平勾配Dおよび垂直勾配Dを、以下に示すアルゴリズム(3)を用いて、Gx+‐Gx−‐Gy空間へ写像する。
if (Dy = 0)
Gx = abs(Dx);
else if (Dy < 0)
Gx = −Dx;
else
Gx = Dx;
Gy = abs(Dy);
if (Gx > 0)
Gx+ = Gx;
Gx− = 0;
else
Gx+ = 0;
Gx− = −Gx; ……(3)
【0032】
図2は、サンプル特徴抽出部210による特徴量の写像の様子を示す説明図である。サンプル特徴抽出部210は、D‐D空間211に特徴量として一連の点を得たとき、まずG‐G空間212へ変換し、最終的にG‐G‐G空間213へと変換する。
【0033】
サンプル特徴抽出部210は、D‐D空間211におけるβ(β<180)度の勾配と、(180−β)度の勾配とを区別するため、Gを、GとG-とに分けるようにしている。たとえば、D‐D空間211における45度の勾配と135度の勾配は、G‐G‐G空間213では、区別して扱われる。これにより、画像のエッジの方向を右上がりと左上がりとで区別することができる。
【0034】
一方、サンプル特徴抽出部210は、Gの値をとるかG-の値をとるかによって、エッジの方向が右上がりか左上がりかを区別できるため、GについてはGのように分けない。すなわち、サンプル特徴抽出部210は、β度の勾配と(180+β)度の勾配とを区別しない。たとえば、G‐G‐G空間213では、D‐D空間211における45度の勾配と225度の勾配は同様に扱われる。
【0035】
このように、サンプル特徴抽出部210は、学習サンプルのそれぞれのピクセル位置に対して、G‐G‐G空間213での座標を、調整勾配G、G-、およびGとして算出する。調整勾配G、G-、およびGは、学習サンプルの各ピクセル位置におけるエッジの有無およびエッジの方向に対応した値となる。
【0036】
サンプル特徴抽出部210は、算出した調整勾配G、G-、およびGから、3つの学習サンプルの特徴量x、x、xを決定する。ここでは、サンプル特徴抽出部210は、たとえば、学習サンプルの画像全体についてのエッジ方向の分布情報を特徴量として抽出する関数Fを用いて、以下の式(4)〜(6)に従って学習サンプルの特徴量x、x、xを算出する。
= F(G) ……(4)
= F(G) ……(5)
= F(G) ……(6)
【0037】
さらに、サンプル特徴抽出部210は、特徴量x〜xを用いて、以下の式(7)に従って低次元特徴ベクトルxを生成する。
x=[x ……(7)
【0038】
各ピクセル位置のG‐G‐G空間213における勾配は、そのピクセル位置におけるエッジの方向に対応し、その値はエッジの強さに対応している。したがって、低次元特徴ベクトルxは、学習サンプルの画像全体におけるエッジ方向の分布情報を示す特徴ベクトルとなる。
【0039】
サンプル特徴抽出部210は、生成した低次元特徴ベクトルxを、図1に示す次元拡張部220へ出力する。
【0040】
次元拡張部220は、低次元特徴ベクトルxの成分である特徴量x〜xを線形結合することにより、低次元特徴ベクトルxよりも次元を拡張した高次元特徴ベクトルを、拡張部分が対象対かつスパースベクトルとなるように生成する。具体的には、次元拡張部220は、以下の式(8)を用いて、拡張された特徴量(以下「拡張特徴量」という)を生成する。
= x
= x
= x
= f(z−z)
= f(−z+z)
= f(z−z)
= f(−z+z)
= f(2z−z)
= f(-2z+z)
= f(2z−z)
10 = f(−2z+z)
11 = f(z−2z)
12 = f(−z+2z)
13 = f(z−2z)
14 = f(−z+2z) ……(8)
【0041】
ただし、関数f(α)は、数学的に、以下の式(9)で表されるものとする。
f(α) = α (α>0)
f(α) = 0 (α≦0) ……(9)
【0042】
そして、次元拡張部220は、生成した拡張特徴量z〜z14を用いて、以下の式(10)に従って高次元特徴ベクトルzを生成する。
z = [z … z121314 ……(10)
【0043】
このようにして生成される15次元の高次元特徴ベクトルzは、関数f(α)により、その成分の約半分が値「0」であるスパースベクトルとなる。また、高次元特徴ベクトルzの各成分は、いずれも負の値ではなく、ほとんどが、一方が値「0」のときに他方が「0」以上となる対象対となる。たとえば、z>zの場合には、z = z−z>0、z = 0であり、逆にz≦zの場合には、z = 0、z = z−z>0である。
【0044】
なお、次元拡張部220は、式(8)〜(10)を用いて生成したベクトルを正規化し、正規化されたベクトルを高次元特徴ベクトルzとして出力するようにしてもよい。この正規化は、具体的には、式(8)〜(10)を用いて生成したベクトルの各成分を、ベクトルの成分の合計で除することによって実現される。
【0045】
式(8)から明らかなように、特徴空間であるG‐G‐G空間213における低次元特徴ベクトルxの勾配に応じて、つまり特徴空間を分割した複数の分割領域のうちいずれの分割領域に低次元特徴ベクトルxが属するかによって、拡張特徴量z〜z14の値は変化する。また、上記したように、低次元特徴ベクトルxの特徴空間における勾配は、学習サンプルの画像全体におけるエッジ方向の分布情報に対応している。すなわち、高次元特徴ベクトルzは、学習サンプルの画像全体におけるエッジ方向の分布を示す情報となる。
【0046】
次に、識別ベクトル学習部230は、学習サンプルから得られた高次元特徴ベクトルzに基づいて、入力画像のクラスを識別するための高次元識別ベクトルを学習する。ここで、高次元識別ベクトルの学習とは、クラスごとに、そのクラスに属する画像から抽出された高次元特徴ベクトルzを識別するための線形識別関数を学習し、その重みパラメータを高次元識別ベクトルの成分として決定することである。このような線形識別関数の決定手法としては、各種の既知の技術を適用することが可能である。
【0047】
具体的には、識別ベクトル学習部230は、たとえば、アダブースト(AdaBoost)アルゴリズムを実行すればよい。アダブーストアルゴリズムの詳細については、たとえば、Paul Viola and MICHAEL JONES, “Robust Real‐time Object Detection”, International Journal of Computer Vision, 2002 に記載されているため、ここでの説明を省略する。
【0048】
識別ベクトル学習部230で生成される高次元識別ベクトルbは、以下の式(11)で示すことができる。
b = [b … b121314 ……(11)
【0049】
ここで、従来のパターン識別で実行されるパターン識別について説明する。従来のパターン識別では、学習段階で仮に上記した高次元識別ベクトルbが生成されたとすると、識別結果yを得るために、識別段階において以下の式(12)に示す内積演算が実行される。
y = z・b
= [z … z121314
・[b … b121314
= z+z+ … +z1414 ……(12)
【0050】
すなわち、従来のパターン識別では、15次元の内積演算が実行される。ところが、上記したように、このような高次元の内積演算を行うと、識別処理に時間が掛かるという問題がある。一方で、たとえば低次元特徴ベクトルxから生成した低次元識別ベクトルを用いて同等の識別性能を得ようとしても、上記したように、やはり識別処理に時間が掛かってしまう。
【0051】
そこで、本実施の形態のパターン識別システム100では、高次元特徴ベクトルzの各成分が特徴量x、x、およびxの線形結合であることを利用して、高次元識別ベクトルbの次元を縮退させ、識別性能を維持した状態で識別処理の高速化を実現する。
【0052】
たとえば、低次元特徴ベクトルxにおいて、x> 2x、x > 2xのとき、拡張特徴量z〜z14のうち、z、z、z、z10、z12、およびz14は、関数f(α)により、それぞれ値「0」となる。したがって、識別結果yを算出するための式(12)は、以下に示す式(13)のように変形が可能である。
y = z・b
= z+z+z+z+z+z+z+z1111
+z1313
= x(b+b+b+b11)+x(b+b+b+b13)+x(b−b−b−b−b−b11−b13
= x+x+x
= [x・[p
= x・p ……(13)
【0053】
ただし、このとき、ベクトルpの各成分p、p、およびpは、それぞれ以下の式(14)で示される値となる。
= b+b+b+b11
= b+b+b+b13
= b−b−b−b−b−b11−b13 ……(14)
【0054】
すなわち、元の低次元特徴ベクトルxとベクトルpとの3次元の内積演算により、高次元特徴ベクトルzと高次元識別ベクトルbとの15次元の内積演算と同一の識別結果を得ることができる。低次元特徴ベクトルxとベクトルpとの内積演算を、従来の内積演算に置き換えることにより、識別性能を維持した状態で、識別段階における識別処理を格段に高速化できることは明らかである。
【0055】
しかしながら、ベクトルpをその都度算出すると、識別処理を効果的に高速化することができない。一方で、ベクトルpは、上記したように、特徴空間における低次元特徴ベクトルxの属する分割領域(以下、単に「領域」という)に応じて異なる値をとる。そこで、本実施の形態のパターン識別システム100は、学習段階において、ベクトルpが異なる値をとる領域のすべてについてベクトルpの値をあらかじめ算出しておき、識別段階において、入力画像ごとに適切なベクトルpの値を用いる。高次元識別ベクトルbを基に構築した3次元のベクトルpを、以下、低次元識別ベクトルpという。
【0056】
学習装置200の次元縮退部240は、すべての低次元識別ベクトルpの値を特徴空間の領域に対応付けて記述した参照テーブルを生成する。
【0057】
図3は、次元縮退部240によって生成される参照テーブルの内容を示す説明図である。
【0058】
図3に示すように、参照テーブル350は、参照テーブルインデックス、低次元識別ベクトルpの成分p、p、およびpのフィールドを持つ複数のレコードから構成されている。参照テーブルインデックスには、6ビットの値が記述される。低次元識別ベクトルpの成分p、p、およびpのフィールドには、図3に示す式を用いて算出される値がそれぞれ記述される。
【0059】
参照テーブル350の各レコードは、それぞれ特徴空間における異なる領域に対応し、それぞれ異なる値の低次元識別ベクトルpに対応している。なお、図3では、各レコードの低次元識別ベクトルpの成分p〜pには、算出に用いられる式を記載しているが、高次元識別ベクトルbの成分b〜b14の値は既知であることから、実際には数値が記述されることはいうまでもない。
【0060】
参照テーブルインデックスは、識別装置400側で低次元識別ベクトルpを検索するためのキーとなる情報である。参照テーブルインデックスの値は、低次元識別ベクトルpの成分p〜pの算出に用いられる式に対応して設定されているが、これについては後に詳しく説明する。
【0061】
次元縮退部240は、各レコードに数値を記述して参照テーブル350を生成すると、図1に示す情報格納装置300に格納する。
【0062】
次に、識別装置400の各部の動作について、詳細に説明を行う。
【0063】
識別段階では、クラス分類の対象となる画像が、サンプル特徴抽出部210へ入力される。この入力画像も、学習パターンと同様に、複数のピクセルにより構成されるディジタル画像データでる。
【0064】
サンプル特徴抽出部210は、入力画像から特徴を抽出して低次元特徴ベクトルxを生成し、インデックス算出部420および線形識別器430へ出力する。この低次元特徴ベクトルxの生成処理は、上記したサンプル特徴抽出部210と同様であり、たとえば、上記した式(1)、(2)、アルゴリズム(3)〜(7)が用いられる。サンプル特徴抽出部210で生成される低次元特徴ベクトルxは、たとえば以下の式(15)で表される。
x=[x ……(15)
【0065】
インデックス算出部420は、低次元特徴ベクトルxを入力するごとに、線形識別器430が適切な低次元識別ベクトルpを検索するためのインデックス値を算出するインデックス算出処理を実行する。
【0066】
図4は、インデックス算出部420によるインデックス算出処理の流れを示すフローチャートである。
【0067】
ステップS1000において、インデックス算出部420は、インデックス値として6ビットを用意し、すべてのビットを値「0」に設定する。これにより、インデックス値は、初期状態として「000000」に設定される。また、インデックス算出部420は、低次元特徴ベクトルxから、特徴量x〜xを抽出する。
【0068】
次に、ステップS1050において、インデックス算出部420は、特徴量xが特徴量xよりも大きいか否かを判断する。これは、特徴量xと特徴量xのどちらが値「0」であるかの判断と等価である。インデックス算出部420は、特徴量xが特徴量xよりも大きい場合には(S1050:YES)、ステップS1100へ進み、特徴量xが特徴量x以下の場合には(S1050:NO)、ステップS1100を経ずにそのままステップS1150へ進む。
【0069】
ステップS1100において、インデックス算出部420は、インデックス値の最初のビット(たとえば最下位ビット)を値「1」に設定し、ステップS1150へ進む。
【0070】
ステップS1150において、インデックス算出部420は、特徴量xが特徴量xよりも大きいか否かを判断する。これは、特徴量xと特徴量xのどちらが値「0」であるかの判断と等価である。インデックス算出部420は、特徴量xが特徴量xよりも大きい場合には(S1150:YES)、ステップS1200へ進み、特徴量xが特徴量x以下の場合には(S1150:NO)、ステップS1200を経ずにそのままステップS1250へ進む。
【0071】
ステップS1200において、インデックス算出部420は、インデックス値の2番目のビット(たとえば最下位から2番目のビット)を値「1」に設定し、ステップS1250へ進む。
【0072】
ステップS1250において、インデックス算出部420は、特徴量xの2倍が特徴量xよりも大きいか否かを判断する。これは、特徴量xと特徴量xのどちらが値「0」であるかの判断と等価である。インデックス算出部420は、特徴量xの2倍が特徴量xよりも大きい場合には(S1250:YES)、ステップS1300へ進み、特徴量xの2倍が特徴量x以下の場合には(S1250:NO)、ステップS1300を経ずにそのままステップS1350へ進む。
【0073】
ステップS1300において、インデックス算出部420は、インデックス値の3番目のビット(たとえば最下位から3番目のビット)を値「1」に設定し、ステップS1350へ進む。
【0074】
ステップS1350において、インデックス算出部420は、特徴量xの2倍が特徴量xよりも大きいか否かを判断する。これは、特徴量xと特徴量x10のどちらが値「0」であるかの判断と等価である。インデックス算出部420は、特徴量xの2倍が特徴量xよりも大きい場合には(S1350:YES)、ステップS1400へ進み、特徴量xの2倍が特徴量x以下の場合には(S1350:NO)、ステップS1400を経ずにそのままステップS1450へ進む。
【0075】
ステップS1400において、インデックス算出部420は、インデックス値の4番目のビット(たとえば最下位から4番目のビット)を値「1」に設定し、ステップS1450へ進む。
【0076】
ステップS1450において、インデックス算出部420は、特徴量xが特徴量xの2倍よりも大きいか否かを判断する。これは、特徴量x11と特徴量x12のどちらが値「0」であるかの判断と等価である。インデックス算出部420は、特徴量xが特徴量xの2倍よりも大きい場合には(S1450:YES)、ステップS1500へ進み、特徴量xが特徴量xの2倍以下の場合には(S1450:NO)、ステップS1500を経ずにそのままステップS1550へ進む。
【0077】
ステップS1500において、インデックス算出部420は、インデックス値の5番目のビット(たとえば最下位から5番目のビット)を値「1」に設定し、ステップS1550へ進む。
【0078】
ステップS1550において、インデックス算出部420は、特徴量xが特徴量xの2倍よりも大きいか否かを判断する。これは、特徴量x13と特徴量x14のどちらが値「0」であるかの判断と等価である。インデックス算出部420は、特徴量xが特徴量xの2倍よりも大きい場合には(S1550:YES)、ステップS1600へ進み、特徴量xが特徴量xの2倍以下の場合には(S1550:NO)、ステップS1600を経ずにそのまま一連の処理を終了する。
【0079】
ステップS1600において、インデックス算出部420は、インデックス値の6番目のビット(たとえば最上位ビット)を値「1」に設定し、一連の処理を終了する。
【0080】
このようなインデックス算出処理によって算出されるインデックス値は、低次元特徴ベクトルxにおける値「0」の配置パターンに対応したものとなる。学習装置200の次元縮退部240は、図3に示す参照テーブル350を生成する際に、上記インデックス算出処理の結果と対応するように、あらかじめ参照テーブルインデックスの値と低次元識別ベクトルpの算出に用いる式とを対応付けている。したがって、ある低次元特徴ベクトルxから算出されたインデックス値に一致する参照テーブルインデックスに対応付けて記述された低次元識別ベクトルpは、その低次元特徴ベクトルxに適切なものとなっている。
【0081】
たとえば、低次元特徴ベクトルxにおいて、x > 2x、x> 2xのとき、インデックス算出部420は、「111111」を設定する。また、既に説明したように、x > 2x、x > 2xのときには、識別結果yは、式(13)を用いて演算することができる。したがって、図3に示すように、参照テーブル350のうち、式(14)に示すベクトルpの各成分p〜pが記述された最下行のレコードには、参照テーブルインデックス「111111」が設定されている。
【0082】
線形識別器430は、低次元インデックス算出部420からインデックス値を入力すると、情報格納装置300に格納された参照テーブル350の参照テーブルインデックスで、そのインデックス値を検索する。そして、該当するレコードの低次元識別ベクトルpを取得し、画像特徴抽出部410から入力された低次元特徴ベクトルxとの内積演算を実行し、識別結果を出力する。この識別結果は、上記したように、高次元特徴ベクトルzと高次元識別ベクトルbとの内積演算による識別結果と同一となる。
【0083】
このような参照テーブル350を用いる手法により、本実施の形態のパターン識別システム100では、15次元の特徴ベクトルを用いて学習を行うにもかかわらず、識別処理の際に必要な乗算演算および加算演算は、それぞれわずか3回ずつに抑えられている。これは、従来の手法では必要とされる乗算演算および加算演算の回数がそれぞれ15回であるのと比較して、大幅に演算付加を低減するものである。すなわち、本実施の形態のパターン識別システム100は、識別性能を維持した状態で、識別段階における識別処理を従来よりも格段に高速化することができる。
【0084】
なお、以上説明したパターン識別システム100では、画像全体から特徴を抽出するとしたが、これに限るものではない。たとえば、サンプル特徴抽出部210は、入力された学習サンプルの画像を、特徴の抽出の単位となる領域に分割し、分割領域ごとに特徴を抽出して低次元特徴ベクトルxを生成するようにしてもよい。
【0085】
以下、学習サンプルの画像を複数領域に分割して学習を行う場合について説明する。
【0086】
図5は、学習サンプルの分割の様子の一例を示す説明図である。図5に示すように、サンプル特徴抽出部210は、学習サンプル500を、複数のサブブロック510により構成されるブロック520に分割する。ブロック520の個数および1つのブロック520を構成するサブブロック510の個数は、任意とすることができる。
【0087】
たとえば、ブロック520を32×32のピクセルサイズとし、各ブロック520を構成するサブブロック510の個数を2×2とすることができる。この場合、各サブブロック510は、16×16のピクセルサイズとなる。
【0088】
また、隣り合うブロック520で、それぞれのブロック520を構成する一部のサブブロック520が重なるように、学習サンプル500を分割してもよい。この場合、ブロック520が重なり合う部分に位置するサブブロック520は、複数のブロック520に属することになる。
【0089】
サンプル特徴抽出部210は、各ピクセル位置の調整勾配G、G-、およびGを算出した後、サブブロック510全体についてのエッジ方向の分布情報を示す低次元特徴ベクトルxを、たとえば上記した式(4)〜(7)を用いて生成する。
【0090】
サンプル特徴抽出部210は、ブロック520レベルにおいて、同一ブロック520に属する各サブブロック510の高次元特徴ベクトルzを連結する。すなわち、図5に示すようにブロック520が2×2のサブブロック510により構成される場合には、高次元特徴ベクトルzは60次元となる。また、上記した式(8)に示す線形結合よりもさらに多くの線形結合を行うことによって、より多くの成分を有する高次元特徴ベクトルzを生成することも可能である。このように、複数のピクセルを含む領域単位で特徴量を抽出することにより、領域単位での識別処理が可能となる。ブロック520およびサブブロック510のサイズは、パターン識別の内容に応じて、適切な値を適用すればよい。
【0091】
以上説明したように、本実施の形態によれば、学習段階において、特徴ベクトルを、成分の線形結合により次元を拡張し、高次元の特徴ベクトルから、クラスごとに特徴ベクトルを線形分離可能な高次元の識別ベクトルを生成する。そして、高次元の識別ベクトルの次元を縮退して低次元の識別ベクトルを生成するとともに、特徴空間における低次元の特徴ベクトルが属する領域と対応付けて設定したインデックス値を付して低次元の識別ベクトルを記述した参照テーブルを生成する。一方、識別段階において、入力画像から抽出した低次元の特徴ベクトルに基づいてインデックス値を算出し、参照テーブルでインデックス値を検索する。そして、該当する低次元の識別ベクトルを取得し、入力画像から抽出した低次元の特徴ベクトルとの内積演算を実行して識別結果を出力する。これにより、高次元空間で学習を行い、低次元空間で識別を行うことが可能となる。すなわち、より少ない演算負荷で、高精度にパターンのクラスを識別することができる。また、スパースなベクトルである高次元の特徴ベクトルを生成することにより、特徴ベクトルのある要素が「0」以上の値を持つかどうかを判別するだけでクラスの識別が可能となるため、識別性能を向上させることができる。さらに、ほとんどの成分が対称対である高次元の特徴ベクトルを生成することにより、インデックス値のビット数を最小限とすることができ、インデックス値を簡単に算出することができる。すなわち、識別処理のさらなる高速化を図ることができる。
【0092】
なお、以上説明した実施の形態を、パターン識別システムを、車の前方の歩行者や他車をカメラ画像から検出するシステムや、運転者の顔の方向を検出するシステムに適用してもよい。
【0093】
また、以上説明した実施の形態では、画像データのピクセル値から特徴ベクトルを抽出する画像レベルのパターン認識について説明したが、音声データ、テキストデータ、その他のデータに対する各種のパターン認識に本発明を適用できることはいうまでもない。
【0094】
さらに、参照テーブルを格納した情報格納部をインターネットなどのネットワーク上に配置し、ネットワークを介して識別装置を情報格納部にアクセスさせ、参照テーブルを取得して保持させるようにしてもよい。また、学習装置、情報格納部、および識別装置を1つの装置に組み込むことにより、パターン識別装置を構成することも可能である。
【産業上の利用可能性】
【0095】
本発明に係るパターン識別装置およびパターン識別方法は、より少ない演算負荷で、高精度にパターンのクラスを識別することができるパターン識別装置およびパターン識別方法として有用である。
【図面の簡単な説明】
【0096】
【図1】本発明の一実施の形態に係るパターン識別システムの構成を示すブロック図
【図2】本実施の形態における特徴量の写像の様子を示す説明図
【図3】本実施の形態における参照テーブルの内容を示す説明図
【図4】本実施の形態におけるインデックス算出処理の流れを示すフローチャート
【図5】本実施の形態における学習サンプルの分割の様子の一例を示す説明図
【符号の説明】
【0097】
100 パターン識別システム
200 学習装置
210 サンプル特徴抽出部
220 次元拡張部
230 識別ベクトル学習部
240 次元縮退部
300 情報格納装置
400 識別装置
410 画像特徴抽出部
420 インデックス算出部
430 線形識別器

【特許請求の範囲】
【請求項1】
入力パターンから特徴ベクトルを抽出する特徴抽出部と、
入力パターンの種類を識別するための識別ベクトルと、特徴空間を分割した分割領域と、を対応付けて記述した参照テーブルから、前記入力パターンの特徴ベクトルが属する分割領域に対応する識別ベクトルを取得し、取得した識別ベクトルと前記入力パターンの特徴ベクトルとの内積演算を実行して前記入力パターンの種類を識別する識別部と、
を有するパターン識別装置。
【請求項2】
前記参照テーブルを格納した情報格納部、をさらに有する、
請求項1記載のパターン識別装置。
【請求項3】
前記識別部は、
前記参照テーブルを格納した情報格納装置にアクセスし、情報格納装置から参照テーブルを取得して保持する、
請求項1記載のパターン識別装置。
【請求項4】
前記特徴ベクトルは、所定の次元のベクトルであり、
前記参照テーブルに記述された識別ベクトルは、学習サンプルの特徴ベクトルの成分を線形結合することにより次元を拡張した高次元特徴ベクトルを生成し、高次元特徴ベクトルに基づいて生成された高次元識別ベクトルを前記所定の次元に縮退することによって得られたベクトルである、
請求項1記載のパターン識別装置。
【請求項5】
前記参照テーブルは、前記識別ベクトルの基となる前記高次元特徴ベクトルの各成分の値に対応し、前記特徴空間における同一の分割領域に属する特徴ベクトルから生成された高次元特徴ベクトルで同一の値をとるインデックス値を、識別ベクトルのインデックスとして記述し、
前記識別部は、
前記高次元特徴ベクトルと同様の次元拡張を前記入力パターンの特徴ベクトルに対して行った場合の前記インデックス値を算出するインデックス算出部と、
前記インデックス算出部が算出したインデックス値を前記参照テーブルで検索し、該当する識別ベクトルと前記入力パターンの特徴ベクトルとの内積演算を実行して前記入力パターンの種類を識別する線形識別器と、
を有する請求項4記載のパターン識別装置。
【請求項6】
前記特徴空間は、画像に存在するエッジの方向に対応する3次元空間であり、
前記特徴ベクトルは、入力画像に存在するエッジの方向に応じた成分を有する3次元のベクトルである、
請求項1記載のパターン識別装置。
【請求項7】
請求項1記載のパターン識別装置で用いられる参照テーブルを作成する識別ベクトル学習装置であって、
学習サンプルから特徴ベクトルを抽出するサンプル特徴抽出部と、
前記学習サンプルの特徴ベクトルの成分を線形結合して次元を拡張した高次元特徴ベクトルを生成する次元拡張部と、
高次元特徴ベクトルに基づいて、パターンの種類を識別するための高次元識別ベクトルを生成する識別ベクトル学習部と、
高次元識別ベクトルを前記所定の次元に縮退して識別ベクトルを生成し、特徴空間を分割した複数の分割領域のうち、基となる特徴ベクトルが属する分割領域と対応付けて識別ベクトルを記述した参照テーブルを作成する次元縮退部と、
を有する識別ベクトル学習装置。
【請求項8】
学習サンプルから所定の次元の特徴ベクトルを抽出するサンプル特徴抽出部と、前記学習サンプルの特徴ベクトルの成分を線形結合して次元を拡張した高次元特徴ベクトルを生成する次元拡張部と、高次元特徴ベクトルに基づいてパターンの種類を識別するための高次元識別ベクトルを生成する識別ベクトル学習部と、高次元識別ベクトルの次元を縮退して前記所定の次元の識別ベクトルを生成し、特徴空間を分割した複数の分割領域のうち、基となる特徴ベクトルが属する分割領域と対応付けて前記識別ベクトルを記述した参照テーブルを作成する次元縮退部と、を有する学習部と、
入力パターンから前記所定の次元の特徴ベクトルを抽出する特徴抽出部と、前記学習装置が作成した参照テーブルから前記入力パターンの特徴ベクトルが属する分割領域に対応する識別ベクトルを取得し、取得した識別ベクトルと前記入力パターンの特徴ベクトルとの内積演算を実行して前記入力パターンの種類を識別する線形識別部と、を有するパターン識別部と、
を具備するパターン識別装置。
【請求項9】
前記次元縮退部は、
前記識別ベクトルの基となる前記高次元特徴ベクトルの各成分の値に対応し、前記特徴空間における同一の分割領域に属する特徴ベクトルから生成された高次元特徴ベクトルで同一の値をとるインデックス値を、識別ベクトルのインデックスとして記述し、
前記線形識別部は、
前記高次元特徴ベクトルと同様の次元拡張を前記入力パターンの特徴ベクトルに対して行った場合の前記インデックス値を算出するインデックス算出部と、前記インデックス算出部が算出したインデックス値を前記参照テーブルで検索し、該当する識別ベクトルと前記入力パターンの特徴ベクトルとの内積演算を実行して前記入力パターンの種類を識別する線形識別器と、を有する、
請求項8記載のパターン識別装置。
【請求項10】
前記特徴空間は、画像に存在するエッジの方向に対応する3次元空間であり、
前記特徴ベクトルは、画像に存在するエッジの方向に応じた成分を有する3次元のベクトルである、
請求項8記載のパターン識別装置。
【請求項11】
学習サンプルから抽出された所定の次元の特徴ベクトルの成分を線形結合することにより次元を拡張した高次元特徴ベクトルを生成し、高次元特徴ベクトルに基づいて生成された入力パターンの種類を識別するための高次元識別ベクトルの次元を縮退して得られた前記所定の次元の識別ベクトルを記述するとともに、識別ベクトルの基となる高次元特徴ベクトルの各成分の値に対応し、特徴空間を分割した分割領域のうち同一の分割領域に属する特徴ベクトルから生成された高次元特徴ベクトルで同一の値をとるインデックス値を、識別ベクトルのインデックスとして記述した参照テーブルを格納する、情報格納装置。
【請求項12】
入力パターンから特徴ベクトルを抽出する特徴抽出ステップと、
入力パターンの種類を識別するための識別ベクトルと、特徴空間を分割した分割領域と、を対応付けて記述した参照テーブルから、前記特徴抽出ステップで抽出した特徴ベクトルが属する分割領域に対応する識別ベクトルを取得する識別ベクトル取得ステップと、
前記識別ベクトル取得ステップで取得した識別ベクトルと前記特徴抽出ステップで抽出した特徴ベクトルとの内積演算を実行して、前記入力パターンの種類を識別するパターン識別ステップと、
を有するパターン識別方法。
【請求項13】
前記参照テーブルが、前記識別ベクトルの基となる前記高次元特徴ベクトルの各成分の値に対応し、前記特徴空間における同一の分割領域に属する特徴ベクトルから生成された高次元特徴ベクトルで同一の値をとるインデックス値を、識別ベクトルのインデックスとして記述したものであるとき、
前記識別ベクトル取得ステップは、
前記高次元特徴ベクトルと同様の次元拡張を前記特徴抽出ステップで抽出した特徴ベクトルに対して行った場合の前記インデックス値を算出するインデックス算出ステップと、
前記インデックス算出ステップで算出したインデックス値を前記参照テーブルで検索するインデックス検索ステップと、
を有する請求項12記載のパターン識別方法。
【請求項14】
学習サンプルから所定の次元の特徴ベクトルを抽出するサンプル特徴抽出ステップと、
特徴ベクトルの成分を線形結合して次元を拡張した高次元特徴ベクトルを生成する次元拡張ステップと、
高次元特徴ベクトルに基づいてパターンの種類を識別するための高次元識別ベクトルを生成する識別ベクトル学習ステップと、
高次元識別ベクトルの次元を縮退して前記所定の次元の識別ベクトルを生成し、特徴空間を分割した複数の分割領域のうち、基となる特徴ベクトルが属する分割領域と対応付けて前記識別ベクトルを記述した参照テーブルを作成する次元縮退ステップと、
入力パターンから前記所定の次元の特徴ベクトルを抽出する特徴抽出ステップと、
参照テーブルから前記特徴抽出ステップで抽出した特徴ベクトルが属する分割領域に対応する識別ベクトルを取得する識別ベクトル取得ステップと、
前記識別ベクトル取得ステップで取得した識別ベクトルと前記特徴抽出ステップで抽出した特徴ベクトルとの内積演算を実行して前記入力パターンの種類を識別するパターン識別ステップと、
を有するパターン識別方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate