(57)【要約】【課題】識別精度に優れ、ハードウェア処理に適した認識システムを提供する。【解決手段】認識システム（１００）は、未知クラスの入力データが共通に与えられ、他と重複しない特徴記述子によって入力データの特徴ベクトルを生成し、各クラスタの代表ベクトルのうち特徴ベクトルに最近傍の１または複数の代表ベクトルを選出し、入力データのクラス分類結果として、該選出した代表ベクトルに対応付けられたクラスラベルを出力する複数の識別分類器（１０）と、複数の識別分類器からクラス分類結果を受け、これらクラス分類結果の多数決によって入力データのクラスを判定する判定部（２０）と、を備えている。【選択図】図１
2015079308.tif 000002
【特許請求の範囲】
【請求項１】
未知クラスの入力データが共通に与えられ、他と重複しない特徴記述子によって前記入力データの特徴ベクトルを生成し、各クラスタの代表ベクトルのうち前記特徴ベクトルに最近傍の１または複数の代表ベクトルを選出し、前記入力データのクラス分類結果として、該選出した代表ベクトルに対応付けられたクラスラベルを出力する複数の識別分類器と、
前記複数の識別分類器からクラス分類結果を受け、これらクラス分類結果の多数決によって前記入力データのクラスを判定する判定部と、を備えている認識システム。
【請求項２】
前記複数の識別分類器は、さらに、前記選出した代表ベクトルと前記特徴ベクトルとの距離を出力するものであり、
前記判定部は、前記複数の識別分類器によるクラス分類結果に前記距離を重み付け加算した重み付き多数決によって前記入力データのクラスを判定する、請求項１に記載の認識システム。
【請求項３】
前記判定部は、前記多数決が同数となった場合、前記複数の識別分類器から出力されるクラスラベルのうち優先度が最も高いクラスラベルを採用する、請求項１または２に記載の認識システム。
【請求項４】
前記複数の識別分類器のそれぞれは、前記入力データから前記特徴ベクトルを生成する特徴抽出部と、前記各クラスタの代表ベクトルを記憶するメモリと、前記特徴ベクトルと前記各クラスタの代表ベクトルとの距離を計算する距離計算回路と、前記距離計算回路によって計算された距離のうち最小のものを探索する最小距離探索回路とを有する、請求項１から３のいずれかに記載の認識システム。
【請求項５】
前記複数の識別分類器のそれぞれは、複数のサンプルデータを前記特徴抽出部に入力して複数の学習用特徴ベクトルを生成し、それら学習用特徴ベクトルに対してＫ平均法によりクラスタリングを実施して前記各クラスタの代表ベクトルを生成するものであり、
クラスタリングにおいて、前記距離計算回路および前記最小距離探索回路が、各クラスタの重心と各学習用特徴ベクトルとの最短距離の計算に使用される、請求項４に記載の認識システム。
【請求項６】
前記距離計算回路は、前記特徴ベクトルと前記各クラスタの代表ベクトルとが所定数の要素単位で区切られて入力され、パイプライン処理により前記距離を計算する、請求項４または請求項５に記載の認識システム。
【請求項７】
前記最小距離探索回路は、閾値よりも小さい距離を探索する、請求項４から６のいずれかに記載の認識システム。
【請求項８】
前記複数の識別分類器のそれぞれは、前記入力データから前記特徴ベクトルを生成する特徴抽出部と、前記各クラスタの代表ベクトルを参照データとして記憶しており、前記特徴ベクトルが検索データとして入力され、記憶している参照データの中から前記特徴ベクトルに距離が近いものを選び出す連想メモリとを有する、請求項１から３のいずれかに記載の認識システム。
【請求項９】
前記複数の識別分類器のそれぞれは、複数のサンプルデータを前記特徴抽出部に入力して複数の学習用特徴ベクトルを生成し、それら学習用特徴ベクトルに対してＫ平均法によりクラスタリングを実施して前記各クラスタの代表ベクトルを生成するものであり、
クラスタリングにおいて、前記連想メモリが、各クラスタの重心と各学習用特徴ベクトルとの最短距離の計算に使用される、請求項８に記載の認識システム。
【請求項１０】
前記距離が、ユークリッド距離またはユークリッド２乗距離である、請求項１から９のいずれかに記載の認識システム。
【請求項１１】
前記入力データが、画像データである、請求項１から１０のいずれかに記載の認識システム。
【請求項１２】
前記複数の識別分類器、および前記判定部が、前記画像データが人の画像であるか否かを判定する、請求項１１に記載の認識システム。
【請求項１３】
前記特徴記述子が、ＨＯＧ（Histograms of Oriented Gradients）およびＬＢＰ（Local Binary Pattern）を含む、請求項１１または請求項１２に記載の認識システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認識システムに関し、特に、ハードウェア処理に適した認識システムに関する。
【背景技術】
【０００２】
画像認識や音声認識などの各種認識システムにおいて処理の高速化は共通の課題である。認識処理は、ソフトウェアで実施するよりもハードウェアで実行する方がより高速化することができる。しかし、認識システムをハードウェアに実装するとなると、計算処理上の制約、効率的なリソース利用、消費電力、回路規模などのさまざまな問題を解決しなければならない。
【０００３】
サポートベクターマシン（ＳＶＭ）は、最も識別能力に優れたクラス分類器の一つとして知られている。しかし、ＳＶＭは、通常、ソフトウェアによって実施され、ハードウェア処理には向いていない。ＳＶＭをハードウェアに実装しようとすると、学習アルゴリズムを大幅に縮減しなければならなくなるであろう。一方、ハードウェア処理に適したクラス分類手法として最近傍探索（Nearest Neighbor Search）がある（例えば、非特許文献１を参照）。しかし、最近傍探索には、ＳＶＭと比べて識別精度が劣るという欠点がある。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】T.Chen, S.Chien, "Flexible hardware architecture of hierarchical k-means clustering for large cluster number," IEEE Transactions on VLSI Systems 19(8), 2011, p.1336-1345
【発明の概要】
【発明が解決しようとする課題】
【０００５】
単純に最近傍探索の識別精度を上げようとすると計算量が大幅に増大しかねない。計算量の増大は、処理速度の低下や、消費電力および回路規模の増大といった好ましくない結果を招いてしまう。
【０００６】
上記問題に鑑み、本発明は、識別精度に優れ、ハードウェア処理に適した認識システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一局面に従った認識システムは、未知クラスの入力データが共通に与えられ、他と重複しない特徴記述子によって前記入力データの特徴ベクトルを生成し、各クラスタの代表ベクトルのうち前記特徴ベクトルに最近傍の１または複数の代表ベクトルを選出し、前記入力データのクラス分類結果として、該選出した代表ベクトルに対応付けられたクラスラベルを出力する複数の識別分類器と、前記複数の識別分類器からクラス分類結果を受け、これらクラス分類結果の多数決によって前記入力データのクラスを判定する判定部と、を備えている。
【０００８】
これによると、各識別分類器によって未知クラスの入力データが相補的な特徴領域（ドメイン）においてクラス分類され、各ドメインにおけるクラス分類結果が判定部に集約されて最終的に多数決によってクラス判定が行われる。したがって、個々の識別分類器は、計算量を増大させずに識別精度が比較的低いものであっても、それらの識別結果を総合的に評価することで、システム全体としての識別精度を向上させることができる。また、個々の識別分類器で実施される最近傍探索はハードウェア処理に適しているため、識別分類器をハードウェアに実装することは容易である。これにより、システム全体としての認識速度を高速化することができる。
【０００９】
前記複数の識別分類器は、さらに、前記選出した代表ベクトルと前記特徴ベクトルとの距離を出力してもよく、また、前記判定部は、前記複数の識別分類器によるクラス分類結果に前記距離を重み付け加算した重み付き多数決によって前記入力データのクラスを判定してもよい。
【００１０】
前記判定部は、前記多数決が同数となった場合、前記複数の識別分類器から出力されるクラスラベルのうち優先度が最も高いクラスラベルを採用してもよい。
【００１１】
前記複数の識別分類器のそれぞれは、前記入力データから前記特徴ベクトルを生成する特徴抽出部と、前記各クラスタの代表ベクトルを記憶するメモリと、前記特徴ベクトルと前記各クラスタの代表ベクトルとの距離を計算する距離計算回路と、前記距離計算回路によって計算された距離のうち最小のものを探索する最小距離探索回路とを有していてもよい。
【００１２】
前記複数の識別分類器のそれぞれは、複数のサンプルデータを前記特徴抽出部に入力して複数の学習用特徴ベクトルを生成し、それら学習用特徴ベクトルに対してＫ平均法によりクラスタリングを実施して前記各クラスタの代表ベクトルを生成するものであってもよく、クラスタリングにおいて、前記距離計算回路および前記最小距離探索回路が、各クラスタの重心と各学習用特徴ベクトルとの最短距離の計算に使用されてもよい。
【００１３】
さらに、前記距離計算回路は、前記特徴ベクトルと前記各クラスタの代表ベクトルとが所定数の要素単位で区切られて入力され、パイプライン処理により前記距離を計算してもよい。さらに、前記最小距離探索回路は、閾値よりも小さい距離を探索してもよい。
【００１４】
あるいは、前記複数の識別分類器のそれぞれは、前記入力データから前記特徴ベクトルを生成する特徴抽出部と、前記各クラスタの代表ベクトルを参照データとして記憶しており、前記特徴ベクトルが検索データとして入力され、記憶している参照データの中から前記特徴ベクトルに距離が近いものを選び出す連想メモリとを有していてもよい。
【００１５】
前記複数の識別分類器のそれぞれは、複数のサンプルデータを前記特徴抽出部に入力して複数の学習用特徴ベクトルを生成し、それら学習用特徴ベクトルに対してＫ平均法によりクラスタリングを実施して前記各クラスタの代表ベクトルを生成するものであってもよく、クラスタリングにおいて、前記連想メモリが、各クラスタの重心と各学習用特徴ベクトルとの最短距離の計算に使用されてもよい。
【００１６】
前記距離が、ユークリッド距離またはユークリッド２乗距離であってもよい。
【００１７】
前記入力データが、画像データであってもよい。
【００１８】
前記複数の識別分類器、および前記判定部が、前記画像データが人の画像であるか否かを判定してもよい。
【００１９】
前記特徴記述子が、ＨＯＧ（Histograms of Oriented Gradients）およびＬＢＰ（Local Binary Pattern）を含み得る。
【発明の効果】
【００２０】
以上のように、本発明によると、識別精度に優れ、ハードウェア処理に適した認識システムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態の一般例に係る認識システムの一般的な構成図
【図２Ａ】一例に係る識別分類器の構成図
【図２Ｂ】別例に係る識別分類器の構成図
【図３】一例に係る距離計算回路および最小距離探索回路の構成図
【図４】ベクトルを格納するメモリブロックを模式的に示す図
【図５】一例に係るタイミング信号生成回路の構成図
【図６】距離計算回路および最小距離探索回路のパイプライン動作のタイミングチャート
【図７】具体例に係る認識システムにおける主要部の構成図
【図８】学習用特徴ベクトルのクラス分類結果の一例を示すグラフ
【図９】判定部における判定処理の例を示すフローチャート
【発明を実施するための形態】
【００２２】
以下、図面を参照しながら本発明を実施するための形態について説明する。なお、本発明は、以下の実施形態に限定されるものではない。
【００２３】
＜認識システムの一般例＞
図１は、本発明の実施形態の一般例に係る認識システムの構成を示す。一般例に係る認識システム１００は、複数の識別分類器１０と、判定部２０とを備えている。
【００２４】
各識別分類器１０は、未知クラスの入力データを受け、入力データのクラスを判定してクラス分類結果を出力する。より詳細には、各識別分類器１０は、あらかじめサンプルデータの学習によって所定数のクラスタを生成し、各クラスタの重心（centroid）で定義される代表ベクトル（プロトタイプともいう）を獲得している。各識別分類器１０は、所定の特徴記述子（局所記述子、局所特徴記述子ともいう）によって入力データから特徴ベクトルを生成し、特徴ベクトルと各クラスタのプロトタイプとの距離を計算し、特徴ベクトルに最近傍の１または複数のプロトタイプを選出する。各プロトタイプには、クラスラベル、クラスタラベル、およびクラスタの重心位置の各情報が対応付けられている。各識別分類器１０は、選出したプロトタイプ（以下、「ウィナー（winner）」と称することがある）に対応付けられたクラスラベルおよびウィナーと特徴ベクトルとの距離（以下、「ウィナー距離」と称することがある）を入力データのクラス分類結果として出力する。
【００２５】
判定部２０は、複数の識別分類器１０からクラス分類結果を受け、これらクラス分類結果の多数決によって入力データのクラスを判定する。より詳細には、判定部２０は、複数の識別分類器１０によるクラス分類結果にウィナー距離を重み付けした重み付き多数決によって入力データのクラスを判定する。
【００２６】
ここで重要な点は、複数の識別分類器１０に共通の入力データが与えられ、各識別分類器１０は、他の識別分類器１０と重複しない特徴記述子によって入力データの特徴ベクトルを生成する点である。すなわち、認識システム１００は、未知クラスの入力データを相補的な複数の特徴領域（局所特徴領域またはドメインともいう）においてクラス分類し、各ドメインにおけるクラス分類結果を集約して最終的に重み付き多数決によって入力データのクラスを判定する。
【００２７】
次に、識別分類器１０の構成について説明する。図２Ａは、一例に係る識別分類器１０の構成を示す。一例に係る識別分類器１０は、メモリ１１と、距離計算回路１２と、最小距離探索回路１３と、特徴抽出部１４とを備えている。図２Ｂは、別例に係る識別分類器１０の構成を示す。別例に係る識別分類器１０は、特徴抽出部１４と、連想メモリ１５とを備えている。
【００２８】
特徴抽出部１４は、所定の特徴記述子によって、入力データの特徴ベクトルを生成する。ここで、特徴ベクトルの次元数が大きいとベクトル間の距離計算の負荷が大きくなってしまう。そこで、特徴抽出部１４は、ＰＣＡ（Principal Component Analysis）法やＰＬＳ（Partial Least Squares）法などを適用して、次元を縮小した特徴ベクトルを扱うようにしてもよい。ＰＣＡ法やＰＬＳ法などによってベクトルの次元が縮小されても、識別分類器１０のクラス分類精度は低下しない。
【００２９】
メモリ１１は、あらかじめ学習によって獲得したプロトタイプを記憶する記憶装置である。メモリ１１は、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）などの揮発性メモリおよび／またはフラッシュメモリなどの不揮発性メモリで構成することができる。
【００３０】
連想メモリ１５は、あらかじめ学習によって獲得したプロトタイプを参照データとして記憶している。連想メモリ１５は、特徴抽出部１４によって生成された特徴ベクトルが検索データとして入力され、記憶しているプロトタイプの中から特徴ベクトルとの距離が近いものを選び出す。距離として、例えば、ユークリッド距離またはユークリッド２乗距離を採用することができる。連想メモリ１５が最近傍連想メモリの場合、特徴ベクトルと最も距離が近い１個のプロトタイプが選択される。連想メモリ１５がｋ近傍連想メモリの場合、特徴ベクトルと最も距離が近いｋ個のプロトタイプが選択される。なお、ｋ近傍連想メモリについては、本願発明者による特願２０１３−１５４８８７の明細書などに詳しく記載されている。
【００３１】
メモリ１１または連想メモリ１５に記憶されるプロトタイプは、複数のサンプルデータを特徴抽出部１４に入力して複数の学習用特徴ベクトルを生成し、それら学習用特徴ベクトルに対してクラスタリングを実施することで獲得することができる。
【００３２】
クラスタリングは、Ｋ平均法などを用いて実施することができる。例えば、任意の次元の空間においてｎ個の学習用特徴ベクトルＸｉ（ｉ＝１，２，…，ｎ）をｍ個のクラスタに分類するとする。Ｋ近傍法によると、次の４つのステップでクラスタリングが実施される。
ステップ１：各学習用特徴ベクトルＸｉに対してランダムにクラスタを割り当てる。
ステップ２：各クラスタの重心（プロトタイプ）Ｐｊ（ｉ＝１，２，…，ｍ）を計算する。
ステップ３：各学習用特徴ベクトルＸｉと各プロトタイプＰｊとの距離を計算し、各学習用特徴ベクトルＸｉを最近傍のプロトタイプＰｊのクラスタに割り当る。
ステップ４：各学習用特徴ベクトルＸｉのクラスタの割り当てが変化しなくなるまでステップ２およびステップ３を繰り返す。
【００３３】
上記４つのステップのうち、ステップ３は、図２Ａの構成における距離計算回路１２および最小距離探索回路１３によって、または、図２Ｂの構成における連想メモリ１５によって、それぞれハードウェア処理することができ、それ以外のステップは、図示しない演算処理装置によってソフトウェア処理することができる。このように、距離計算回路１２および最小距離探索回路１３、または連想メモリ１５を使用して、ハードウェアおよびソフトウェアが協働して学習用特徴ベクトルのクラスタリングを実施してプロトタイプを獲得することができる。
【００３４】
距離計算回路１２は、特徴ベクトルとプロトタイプとの距離を計算するハードウェアである。距離計算回路１２には、メモリ１１に記憶されているすべてのプロトタイプが一つずつ順に入力される。最小距離探索回路１３は、距離計算回路１２によって計算された距離のうち最小のものを探索するハードウェアである。距離計算回路１２および最小距離探索回路１３は、例えば、ＦＰＧＡ（Field Programmable Gate Array）などに実装することができる。２つのベクトル間の距離としてさまざまなものがあるが、ユークリッド距離を採用することが好ましい。ユークリッド距離は、マンハッタン距離やハミング距離などよりも正確な尺度となり得るからである。特徴ベクトルをＦ＝｛Ｆ１，Ｆ２，…，Ｆｄ｝、プロトタイプをＰ＝｛Ｐ１，Ｐ２，…，Ｐｄ｝とすると、特徴ベクトルＦとプロトタイプＰとのユークリッド距離ＤＥは次式（１）で与えられる。ただし、１≦ｊ≦ｄである。
【００３５】
ＤＥ＝√Σ（Ｆｊ−Ｐｊ）２  …  （１）
ユークリッド距離の計算には平方根計算が含まれるため、ハードウェアによる処理に向いていない。したがって、次式（２）で与えられるユークリッド２乗距離ＤＥ２を採用する。
【００３６】
ＤＥ２＝Σ（Ｆｊ−Ｐｊ）２  …  （２）
ユークリッド２乗距離だと平方根計算が不要となり、ハードウェアで計算回路を実現しやすくなる。なお、ユークリッド２乗距離を採用してもマンハッタン距離やハミング距離などに対する優位性は失われない。
【００３７】
図３は、距離計算回路１２および最小距離探索回路１３の構成例を示す。本例に係る距離計算回路１２は、特徴ベクトルＦとプロトタイプＰとのユークリッド２乗距離を計算する回路である。特徴ベクトルＦの要素ＦｊおよびプロトタイプＰの要素Ｐｊはいずれも１６ビット値であり、距離計算回路１２は特徴ベクトルＦとプロトタイプＰとのユークリッド２乗距離として４２ビット値を計算する。
【００３８】
特徴抽出部１４およびメモリ１１から特徴ベクトルＦおよびプロトタイプＰが１ワード単位、すなわち、４要素単位で読み出され、距離計算回路１２に入力される。第１ステージ（Ｓｔａｇｅ１）において、距離計算回路１２に入力された特徴ベクトルＦおよびプロトタイプＰの各要素は、８個の１６ビットレジスタ１２０１に格納される。第２ステージ（Ｓｔａｇｅ２）において、４個の１６ビット減算器１２０２は、それぞれ、２個の１６ビットレジスタ１２０１の値どうしを減算し、計算結果が４個の１６ビットレジスタ１２０３に格納される。第３ステージ（Ｓｔａｇｅ３）において、４個の１６ビット乗算器１２０４は、それぞれ、４個の１６ビットレジスタ１２０３の値を２乗し、計算結果が４個の３２ビットレジスタ１２０５に格納される。第４ステージ（Ｓｔａｇｅ４）において、２個の３２ビット加算器１２０６は、それぞれ、２個の３２ビットレジスタ１２０５の値を加算し、計算結果が３２ビットレジスタ１２０７に格納される。第５ステージ（Ｓｔａｇｅ５）において、３２ビット加算器１２０８は、２個の３２ビットレジスタ１２０７の値を加算し、計算結果が３２ビットレジスタ１２０９に格納される。第６ステージ（Ｓｔａｇｅ６）において、４２ビット加算器１２１０は、３２ビットレジスタ１２０９の値と、マルチプレクサ１２１１の出力とを加算し、計算結果が４２ビットレジスタ１２１２に格納される。なお、４２ビットレジスタ１２１２は、距離計算の開始前に、リセット信号ｒｅｓｅｔによって初期化され、保持値が“０”に設定される。
【００３９】
マルチプレクサ１２１１は、４２ビットレジスタ１２１２の値と“０”が入力され、制御信号Ｌｏａｄ＿ｃｍｐに応じてこれらのいずれか一方を出力する。制御信号Ｌｏａｄ＿ｃｍｐは、特徴抽出部１４およびメモリ１１から特徴ベクトルＦおよびプロトタイプＰの最終ワードの読み出しが完了したことを示すタイミング信号Ｏｎｅ＿ｓａｍｐｌｅを所定量だけ遅延させた信号である。したがって、特徴ベクトルＦおよびプロトタイプＰの最終ワードの読み出しが完了するまでマルチプレクサ１２１１から４２ビットレジスタ１２１２の値が出力され、上記の第２ステージから第５ステージまでの計算結果が累積加算される。加算器１２１０のビット幅を４２ビットにしている理由は、このような累積加算によるキャリーオーバーに対応するためである。このように、距離計算回路１２は、特徴ベクトルＦおよびプロトタイプＰの次元が４よりも大きい場合、これらベクトルの要素を４個単位で分割して計算することができる。
【００４０】
図４は、プロトタイプを格納するメモリブロックを模式的に示す。メモリ１１において、プロトタイプは、ｎ（ただし、ｎは整数）ワード分のメモリブロック単位で格納されている。ｎは、格納されるプロトタイプのサイズに応じて変わり得る。プロトタイプの１要素が１６ビット値の場合、１ワード当たりちょうど４個の要素が格納される。したがって、プロトタイプの次元数が４の倍数の場合、メモリブロックはすべてプロトタイプの要素によって埋められる。一方、図４の拡大部分に示したようにプロトタイプの次元数が４の倍数でない場合、メモリブロックの最終ワードにおいてプロトタイプの要素が存在しない部分は“０”で埋めるようにする。値“０”がプロトタイプの要素として距離計算回路１２に入力されても計算結果に何ら影響はない。このように、認識システム１００は、ハードウェアによって任意の次元のベクトル間のユークリッド２乗距離を計算することができる。
【００４１】
図５は、タイミング信号Ｏｎｅ＿ｓａｍｐｌｅの生成回路の構成例を示す。カウンタ回路１５は、クロック信号ＣＬＫに同期して初期値からカウントアップする。なお、カウンタ回路１５は、距離計算の開始前に、リセット信号ｒｅｓｅｔによって初期化され、保持値が“０”に設定される。比較器１６は、カウンタ回路１５の値とベクトルのサイズを表す値Ｏｎｅｓａｍｐｅ＿ｄｅｆが入力され、これらが一致するとき、“１”を出力し、それ以外は“０”を出力する。比較器１６の出力がタイミング信号Ｏｎｅ＿ｓａｍｐｌｅである。値Ｏｎｅｓａｍｐｅ＿ｄｅｆは、上述したように、メモリ１１においてプロトタイプが格納されるメモリブロックのワード数ｎを表す。例えば、プロトタイプが１１次元の場合、値Ｏｎｅｓａｍｐｅ＿ｄｅｆは“３”であり、プロトタイプが２０次元の場合、値Ｏｎｅｓａｍｐｅ＿ｄｅｆは“５”である。カウンタ回路１５の値Ａｄｄｒ＿ｐｒｔは、各メモリブロックにおけるワードのリードアドレスとして使用される。すなわち、値Ａｄｄｒ＿ｐｒｔが“０”のとき、プロトタイプの先頭ワードが読み出され、値Ａｄｄｒ＿ｐｒｔが“ｎ−１”のとき、プロトタイプの最終ワードが読み出される。
【００４２】
図３へ戻り、最小距離検索回路１３において、４２ビットレジスタ１３１は、距離計算の開始前に、リセット信号ｒｅｓｅｔによって初期化され、制御信号Ｌｏａｄ＿ｃｍｐが入力されたタイミングで４２ビットレジスタ１２１２の値を格納する。制御信号Ｌｏａｄ＿ｃｍｐが“１”となることで最小距離の検索が開始される。４２ビットレジスタ１３２は、検索して得られた４２ビット値の最小距離、すなわち、ウィナー距離を格納するレジスタである。４２ビットレジスタ１３１は、距離計算の開始前に、リセット信号ｒｅｓｅｔによって初期化され、制御信号Ｌｏａｄ＿ｍｉｎが入力されたタイミングで４２ビットレジスタ１３１の値を格納する。制御信号Ｌｏａｄ＿ｍｉｎは、新たな最小距離が見つかったときに“１”となる信号である。
【００４３】
マルチプレクサ１３３は、４２ビットレジスタ１３２の値と閾値Ｒａｄｉｕｓとが入力され、制御信号１ＮＮ／ＲＮＮに応じてこれらのいずれか一方を出力する。閾値Ｒａｄｉｕｓは、後述するように、最近傍探索（Nearest Neighbor Search）において探索範囲を制限するための閾値である。４２ビット比較器１３４は、４２ビットレジスタ１３１の値Ａとマルチプレクサ１３３の出力Ｂが入力され、これらの大小を比較し、Ａ＜Ｂのとき、すなわち、新たな最小距離が見つかったときに“１”を出力し、それ以外は“０”を出力する。ＡＮＤゲート１３５は、４２ビット比較器１３４の出力と、制御信号Ｌｏａｄ＿ｃｍｐを保持するフリップフロップ１３６の出力との論理積を演算する。ＡＮＤゲート１３５の出力が制御信号Ｌｏａｄ＿ｍｉｎである。新たな最小距離が見つかったとき、制御信号Ｌｏａｄ＿ｍｉｎは“１”となる。レジスタ１３７は、特徴ベクトルＦとの距離が最小となるプロトタイプＰ、すなわち、ウィナーのアドレスを格納するレジスタである。レジスタ１３７は、制御信号Ｌｏａｄ＿ｍｉｎが入力されたタイミングでプロトタイプＰのアドレスＰ＿Ａｄｄｒを格納する。
【００４４】
なお、レジスタ１３２および１３７を、複数のデータを記憶可能なスタックメモリに置き換えてもよい。スタックメモリを使用することで、最小距離探索回路１３において複数のウィナーおよびウィナー距離を保持することができ、識別分類器１０が特徴ベクトルに最近傍の複数のプロトタイプを選出できるようになる。
【００４５】
上記構成の距離計算回路１２の第１ステージから第６ステージの各ステージおよび最小距離探索回路１３は、パイプライン動作が可能である。図６は、３２次元の特徴ベクトルＦおよびプロトタイプＰが入力された場合における、距離計算回路１２および最小距離探索回路１３のパイプライン動作のタイミングチャートである。１クロックごとに値Ａｄｄｒ＿ｐｒｔがインクリメントされて特徴抽出部１４およびメモリ１１から特徴ベクトルＦおよびプロトタイプＰの次のワードが距離計算回路１２へ入力され、前ステージの計算結果が次ステージへ渡される。そして、１５クロックで、３２次元のベクトル間の距離計算および最小距離の探索を完了することができる。
【００４６】
以上のように、本実施形態によると、未知クラスの入力データが各識別分類器１０によって相補的な特徴領域（ドメイン）においてクラス分類され、各ドメインにおけるクラス分類結果が判定部２０に集約されて最終的に多数決によってクラス判定が行われる。したがって、個々の識別分類器１０は、計算量を増大させずに識別精度が比較的低いものであっても、それらの識別結果を総合的に評価することで、システム全体としての識別精度を向上させることができる。また、個々の識別分類器１０で実施される最近傍探索はハードウェア処理に適しているため、識別分類器１０をハードウェアに実装することは容易である。これにより、システム全体としての認識速度を高速化することができる。
【００４７】
なお、図３の距離計算回路１２ではベクトルが４要素単位で区切られてパイプライン処理されるが、各ステージにおけるレジスタの個数を増やすことで、一度に処理可能なベクトルの要素数を増やすことができる。これにより、ベクトル間の距離計算をより短時間で完了することができる。あるいは、ベクトルの次元数よりも十分に多い数のレジスタを設けてベクトルの全要素を一度に処理するようにしてもよい。これにより、ベクトル間の距離計算を最小時間で完了することができる。
【００４８】
また、特徴抽出部１４が生成した特徴ベクトルをメモリ１１に一時的に記憶させてもよい。この場合、距離計算回路１２は、メモリ１１から特徴ベクトルおよびプロトタイプを読み出し、これらベクトル間の距離を計算する。
【００４９】
＜認識システムの一例＞
次に、本発明の実施形態の一例に係る認識システムについて説明する。図７は、本発明の実施形態の一例に係る認識システム１０における主要部の構成を示す。一例に係る認識システム１０は、入力された画像データが人の画像であるか否かを認識するシステムである。認識システム１０は、入力された画像データからエッジ特徴量およびテクスチャ特徴量を抽出し、エッジドメインおよびテクスチャドメインの両観点から、入力された画像データが人の画像であるか（クラス１）、または、人の画像でないか（クラス２）を相補的に判定し、各ドメインにおけるクラス判定結果を総合的に評価して、入力された画像データのクラスを最終的に決定する。
【００５０】
具体的には、認識システム１０は、２個の識別分類器１０＿１および１０＿２と、判定部２０とを備えている。識別分類器１０＿１は、特徴記述子としてＨＯＧ（Histograms of Oriented Gradients）を用いる。周知のように、ＨＯＧ特徴量を用いることで画像データからエッジ特徴量を抽出することができる。したがって、識別分類器１０＿１は、特徴ベクトルとしてエッジ特徴量を用いる。一方、識別分類器１０＿２は、特徴記述子としてＬＢＰ（Local Binary Pattern）を用いる。周知のように、ＬＢＰ特徴量を用いることで画像データからテクスチャ（texture）特徴量を抽出することができる。したがって、識別分類器１０＿２は、特徴ベクトルとしてテクスチャ特徴量を用いる。
【００５１】
識別分類器１０＿１および１０＿２は、サンプルデータの学習によって複数のプロトタイプを生成し、それら複数のプロトタイプは、２つのクラス１またはクラス２のいずれかに対応付けられる。すなわち、識別分類器１０＿１および１０＿２は、マルチプロトタイプの分類器である。識別分類器１０＿１および１０＿２において、特徴ベクトル空間は、クラス１およびクラス２に対応する２つのボロノイセルに分割され、各ボロノイセルには１または複数のプロトタイプが含まれている。識別分類器１０＿１および１０＿２は、特徴ベクトルに最近傍のプロトタイプを見つけ、そのプロトタイプを含むボロノイセルに対応するクラスを、入力された画像データのクラスとして判定する。
【００５２】
識別分類器１０＿１および１０＿２は、最近傍探索により、入力データから生成した特徴ベクトルに最近傍のプロトタイプ（ウィナー）を見つける。ここで、特徴ベクトルとウィナーとの距離（ウィナー距離）が小さいほど、その入力データのクラス分類結果の信頼度は高い。逆に言うと、ウィナー距離が大きいほど、入力データのクラス分類結果の信頼度は低い。そこで、より高い信頼度のクラス分類結果が得られるように、識別分類器１０＿１および１０＿２において最近傍探索の探索範囲を制限するための閾値を設けてもよい。
【００５３】
図８は、学習用特徴ベクトルのクラス分類結果の一例を示す。学習用特徴ベクトルには、人の画像のサンプルデータから抽出した特徴量、および人以外の画像のサンプルデータから抽出した特徴量の２種類が含まれる。そのような学習用特徴ベクトルについて、クラス１のプロトタイプとのウィナー距離と度数との関係をグラフ化すると図８に示したようになる。すなわち、ウィナー距離が小さい学習用特徴ベクトルはクラス１に分類される傾向にあり、ウィナー距離が大きい学習用特徴ベクトルはクラス２に分類される傾向にあり、その分布は一部重なり合っている。しかし、ウィナー距離がある値以上になると、もはや学習用特徴ベクトルはクラス１に分類されることなく、すべてクラス２に分類されるようになる。そして、そのようなウィナー距離の上限値を、最小距離探索回路１３における閾値Ｒａｄｉｕｓ（図３を参照）として設定することができる。
【００５４】
入力された画像データが人の画像であるか否かを認識するシステムでは、人の画像であるというポジティブな判定よりも、人の画像でないというネガティブな判定の方が重視される場合がある。そこで、そのような場合には、判定部２０は、クラス１よりもクラス２の優先度を高めて、入力された画像データの判定を行うことができる。
【００５５】
図９は、判定部２０における判定処理の例を示すフローチャートである。まず、判定部２０は、各識別分類器１０＿１および１０＿２からクラス分類結果とウィナー距離を取得する（Ｓ１）。そして、判定部２０は、クラス分類結果を比較し、両者が一致すれば（Ｓ２でＹＥＳ）、ステップＳ１で取得したクラス分類結果を最終判定結果として出力する（Ｓ４）。一方、クラス分類結果が不一致ならば（Ｓ２でＮＯ）、判定部２０は、優先度が高いクラス分類結果（この場合、人の画像ではないというクラス２）を採用し、それを最終判定結果として出力する（Ｓ４）。
【００５６】
なお、ステップＳ１において、各識別分類器１０＿１および１０＿２から取得したクラス分類結果に各ウィナー距離を重み付けしてもよい。この場合、ステップＳ２において、クラス分類結果が不一致であっても、クラス１のウィナー距離が小さく、それに比べてクラス２のウィナー距離が大きければ、判定部２０は、優先度の高いクラス２ではなく、よりウィナー距離の小さい、すなわち、より信頼度が高いクラス１を採用することができる。
【００５７】
特徴記述子は、ＨＯＧおよびＬＢＰに限定されない。それ以外に、ＳＩＦＴ（Scale Invariant Feature Transform）、ＳＵＲＦ（Speeded Up Robust Features）、Ｆeｒｎ、Ｈａａｒなどの特徴記述子が使用可能である。
【００５８】
本発明の実施形態の一例として、入力された画像が人の画像であるか否かを認識する認識システム１０について説明したが、入力データは画像データに限定されない。本発明に係る認識システムは、画像データ以外にも、音声データ、テキストデータなどの任意の種類のデータについて認識可能である。例えば、認識システム１００を、入力された音声データが特定人物の音声であるか否かを認識するシステムに変形することは容易である。
【符号の説明】
【００５９】
１００  認識システム
１０，１０＿１，１０＿２  識別分類器
１１    メモリ
１２    距離計算回路
１３    最小距離探索回路
１４    特徴抽出部
１５    連想メモリ
２０    判定部
【図１】
2015079308.tif 000003
【図２Ａ】
2015079308.tif 000004
【図２Ｂ】
2015079308.tif 000005
【図３】
2015079308.tif 000006
【図４】
2015079308.tif 000007
【図５】
2015079308.tif 000008
【図６】
2015079308.tif 000009
【図７】
2015079308.tif 000010
【図８】
2015079308.tif 000011
【図９】
2015079308.tif 000012