TOP > 国内特許検索 > 認識システム > 明細書

明細書 :認識システム

発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2015-079308 (P2015-079308A)
公開日 平成27年4月23日(2015.4.23)
発明の名称または考案の名称 認識システム
国際特許分類 G06N   3/00        (2006.01)
G06T   7/00        (2006.01)
FI G06N 3/00 560A
G06T 7/00 350B
G06T 7/00 250
G06N 3/00 560C
請求項の数または発明の数 13
出願形態 OL
全頁数 14
出願番号 特願2013-214982 (P2013-214982)
出願日 平成25年10月15日(2013.10.15)
発明者または考案者 【氏名】マタウシュ ハンスユルゲン
【氏名】安 豊偉
【氏名】ウィジャクソノ インドラ バグス
出願人 【識別番号】504136568
【氏名又は名称】国立大学法人広島大学
個別代理人の代理人 【識別番号】110001427、【氏名又は名称】特許業務法人前田特許事務所
審査請求 未請求
テーマコード 5L096
Fターム 5L096GA51
5L096GA59
5L096JA03
5L096JA11
5L096KA04
5L096LA13
5L096MA07
要約 【課題】識別精度に優れ、ハードウェア処理に適した認識システムを提供する。
【解決手段】認識システム(100)は、未知クラスの入力データが共通に与えられ、他と重複しない特徴記述子によって入力データの特徴ベクトルを生成し、各クラスタの代表ベクトルのうち特徴ベクトルに最近傍の1または複数の代表ベクトルを選出し、入力データのクラス分類結果として、該選出した代表ベクトルに対応付けられたクラスラベルを出力する複数の識別分類器(10)と、複数の識別分類器からクラス分類結果を受け、これらクラス分類結果の多数決によって入力データのクラスを判定する判定部(20)と、を備えている。
【選択図】図1
特許請求の範囲 【請求項1】
未知クラスの入力データが共通に与えられ、他と重複しない特徴記述子によって前記入力データの特徴ベクトルを生成し、各クラスタの代表ベクトルのうち前記特徴ベクトルに最近傍の1または複数の代表ベクトルを選出し、前記入力データのクラス分類結果として、該選出した代表ベクトルに対応付けられたクラスラベルを出力する複数の識別分類器と、
前記複数の識別分類器からクラス分類結果を受け、これらクラス分類結果の多数決によって前記入力データのクラスを判定する判定部と、を備えている認識システム。
【請求項2】
前記複数の識別分類器は、さらに、前記選出した代表ベクトルと前記特徴ベクトルとの距離を出力するものであり、
前記判定部は、前記複数の識別分類器によるクラス分類結果に前記距離を重み付け加算した重み付き多数決によって前記入力データのクラスを判定する、請求項1に記載の認識システム。
【請求項3】
前記判定部は、前記多数決が同数となった場合、前記複数の識別分類器から出力されるクラスラベルのうち優先度が最も高いクラスラベルを採用する、請求項1または2に記載の認識システム。
【請求項4】
前記複数の識別分類器のそれぞれは、前記入力データから前記特徴ベクトルを生成する特徴抽出部と、前記各クラスタの代表ベクトルを記憶するメモリと、前記特徴ベクトルと前記各クラスタの代表ベクトルとの距離を計算する距離計算回路と、前記距離計算回路によって計算された距離のうち最小のものを探索する最小距離探索回路とを有する、請求項1から3のいずれかに記載の認識システム。
【請求項5】
前記複数の識別分類器のそれぞれは、複数のサンプルデータを前記特徴抽出部に入力して複数の学習用特徴ベクトルを生成し、それら学習用特徴ベクトルに対してK平均法によりクラスタリングを実施して前記各クラスタの代表ベクトルを生成するものであり、
クラスタリングにおいて、前記距離計算回路および前記最小距離探索回路が、各クラスタの重心と各学習用特徴ベクトルとの最短距離の計算に使用される、請求項4に記載の認識システム。
【請求項6】
前記距離計算回路は、前記特徴ベクトルと前記各クラスタの代表ベクトルとが所定数の要素単位で区切られて入力され、パイプライン処理により前記距離を計算する、請求項4または請求項5に記載の認識システム。
【請求項7】
前記最小距離探索回路は、閾値よりも小さい距離を探索する、請求項4から6のいずれかに記載の認識システム。
【請求項8】
前記複数の識別分類器のそれぞれは、前記入力データから前記特徴ベクトルを生成する特徴抽出部と、前記各クラスタの代表ベクトルを参照データとして記憶しており、前記特徴ベクトルが検索データとして入力され、記憶している参照データの中から前記特徴ベクトルに距離が近いものを選び出す連想メモリとを有する、請求項1から3のいずれかに記載の認識システム。
【請求項9】
前記複数の識別分類器のそれぞれは、複数のサンプルデータを前記特徴抽出部に入力して複数の学習用特徴ベクトルを生成し、それら学習用特徴ベクトルに対してK平均法によりクラスタリングを実施して前記各クラスタの代表ベクトルを生成するものであり、
クラスタリングにおいて、前記連想メモリが、各クラスタの重心と各学習用特徴ベクトルとの最短距離の計算に使用される、請求項8に記載の認識システム。
【請求項10】
前記距離が、ユークリッド距離またはユークリッド2乗距離である、請求項1から9のいずれかに記載の認識システム。
【請求項11】
前記入力データが、画像データである、請求項1から10のいずれかに記載の認識システム。
【請求項12】
前記複数の識別分類器、および前記判定部が、前記画像データが人の画像であるか否かを判定する、請求項11に記載の認識システム。
【請求項13】
前記特徴記述子が、HOG(Histograms of Oriented Gradients)およびLBP(Local Binary Pattern)を含む、請求項11または請求項12に記載の認識システム。
発明の詳細な説明 【技術分野】
【0001】
本発明は、認識システムに関し、特に、ハードウェア処理に適した認識システムに関する。
【背景技術】
【0002】
画像認識や音声認識などの各種認識システムにおいて処理の高速化は共通の課題である。認識処理は、ソフトウェアで実施するよりもハードウェアで実行する方がより高速化することができる。しかし、認識システムをハードウェアに実装するとなると、計算処理上の制約、効率的なリソース利用、消費電力、回路規模などのさまざまな問題を解決しなければならない。
【0003】
サポートベクターマシン(SVM)は、最も識別能力に優れたクラス分類器の一つとして知られている。しかし、SVMは、通常、ソフトウェアによって実施され、ハードウェア処理には向いていない。SVMをハードウェアに実装しようとすると、学習アルゴリズムを大幅に縮減しなければならなくなるであろう。一方、ハードウェア処理に適したクラス分類手法として最近傍探索(Nearest Neighbor Search)がある(例えば、非特許文献1を参照)。しかし、最近傍探索には、SVMと比べて識別精度が劣るという欠点がある。
【先行技術文献】
【0004】

【非特許文献1】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
【発明の概要】
【発明が解決しようとする課題】
【0005】
単純に最近傍探索の識別精度を上げようとすると計算量が大幅に増大しかねない。計算量の増大は、処理速度の低下や、消費電力および回路規模の増大といった好ましくない結果を招いてしまう。
【0006】
上記問題に鑑み、本発明は、識別精度に優れ、ハードウェア処理に適した認識システムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一局面に従った認識システムは、未知クラスの入力データが共通に与えられ、他と重複しない特徴記述子によって前記入力データの特徴ベクトルを生成し、各クラスタの代表ベクトルのうち前記特徴ベクトルに最近傍の1または複数の代表ベクトルを選出し、前記入力データのクラス分類結果として、該選出した代表ベクトルに対応付けられたクラスラベルを出力する複数の識別分類器と、前記複数の識別分類器からクラス分類結果を受け、これらクラス分類結果の多数決によって前記入力データのクラスを判定する判定部と、を備えている。
【0008】
これによると、各識別分類器によって未知クラスの入力データが相補的な特徴領域(ドメイン)においてクラス分類され、各ドメインにおけるクラス分類結果が判定部に集約されて最終的に多数決によってクラス判定が行われる。したがって、個々の識別分類器は、計算量を増大させずに識別精度が比較的低いものであっても、それらの識別結果を総合的に評価することで、システム全体としての識別精度を向上させることができる。また、個々の識別分類器で実施される最近傍探索はハードウェア処理に適しているため、識別分類器をハードウェアに実装することは容易である。これにより、システム全体としての認識速度を高速化することができる。
【0009】
前記複数の識別分類器は、さらに、前記選出した代表ベクトルと前記特徴ベクトルとの距離を出力してもよく、また、前記判定部は、前記複数の識別分類器によるクラス分類結果に前記距離を重み付け加算した重み付き多数決によって前記入力データのクラスを判定してもよい。
【0010】
前記判定部は、前記多数決が同数となった場合、前記複数の識別分類器から出力されるクラスラベルのうち優先度が最も高いクラスラベルを採用してもよい。
【0011】
前記複数の識別分類器のそれぞれは、前記入力データから前記特徴ベクトルを生成する特徴抽出部と、前記各クラスタの代表ベクトルを記憶するメモリと、前記特徴ベクトルと前記各クラスタの代表ベクトルとの距離を計算する距離計算回路と、前記距離計算回路によって計算された距離のうち最小のものを探索する最小距離探索回路とを有していてもよい。
【0012】
前記複数の識別分類器のそれぞれは、複数のサンプルデータを前記特徴抽出部に入力して複数の学習用特徴ベクトルを生成し、それら学習用特徴ベクトルに対してK平均法によりクラスタリングを実施して前記各クラスタの代表ベクトルを生成するものであってもよく、クラスタリングにおいて、前記距離計算回路および前記最小距離探索回路が、各クラスタの重心と各学習用特徴ベクトルとの最短距離の計算に使用されてもよい。
【0013】
さらに、前記距離計算回路は、前記特徴ベクトルと前記各クラスタの代表ベクトルとが所定数の要素単位で区切られて入力され、パイプライン処理により前記距離を計算してもよい。さらに、前記最小距離探索回路は、閾値よりも小さい距離を探索してもよい。
【0014】
あるいは、前記複数の識別分類器のそれぞれは、前記入力データから前記特徴ベクトルを生成する特徴抽出部と、前記各クラスタの代表ベクトルを参照データとして記憶しており、前記特徴ベクトルが検索データとして入力され、記憶している参照データの中から前記特徴ベクトルに距離が近いものを選び出す連想メモリとを有していてもよい。
【0015】
前記複数の識別分類器のそれぞれは、複数のサンプルデータを前記特徴抽出部に入力して複数の学習用特徴ベクトルを生成し、それら学習用特徴ベクトルに対してK平均法によりクラスタリングを実施して前記各クラスタの代表ベクトルを生成するものであってもよく、クラスタリングにおいて、前記連想メモリが、各クラスタの重心と各学習用特徴ベクトルとの最短距離の計算に使用されてもよい。
【0016】
前記距離が、ユークリッド距離またはユークリッド2乗距離であってもよい。
【0017】
前記入力データが、画像データであってもよい。
【0018】
前記複数の識別分類器、および前記判定部が、前記画像データが人の画像であるか否かを判定してもよい。
【0019】
前記特徴記述子が、HOG(Histograms of Oriented Gradients)およびLBP(Local Binary Pattern)を含み得る。
【発明の効果】
【0020】
以上のように、本発明によると、識別精度に優れ、ハードウェア処理に適した認識システムを提供することができる。
【図面の簡単な説明】
【0021】
【図1】本発明の実施形態の一般例に係る認識システムの一般的な構成図
【図2A】一例に係る識別分類器の構成図
【図2B】別例に係る識別分類器の構成図
【図3】一例に係る距離計算回路および最小距離探索回路の構成図
【図4】ベクトルを格納するメモリブロックを模式的に示す図
【図5】一例に係るタイミング信号生成回路の構成図
【図6】距離計算回路および最小距離探索回路のパイプライン動作のタイミングチャート
【図7】具体例に係る認識システムにおける主要部の構成図
【図8】学習用特徴ベクトルのクラス分類結果の一例を示すグラフ
【図9】判定部における判定処理の例を示すフローチャート
【発明を実施するための形態】
【0022】
以下、図面を参照しながら本発明を実施するための形態について説明する。なお、本発明は、以下の実施形態に限定されるものではない。

【0023】
<認識システムの一般例>
図1は、本発明の実施形態の一般例に係る認識システムの構成を示す。一般例に係る認識システム100は、複数の識別分類器10と、判定部20とを備えている。

【0024】
各識別分類器10は、未知クラスの入力データを受け、入力データのクラスを判定してクラス分類結果を出力する。より詳細には、各識別分類器10は、あらかじめサンプルデータの学習によって所定数のクラスタを生成し、各クラスタの重心(centroid)で定義される代表ベクトル(プロトタイプともいう)を獲得している。各識別分類器10は、所定の特徴記述子(局所記述子、局所特徴記述子ともいう)によって入力データから特徴ベクトルを生成し、特徴ベクトルと各クラスタのプロトタイプとの距離を計算し、特徴ベクトルに最近傍の1または複数のプロトタイプを選出する。各プロトタイプには、クラスラベル、クラスタラベル、およびクラスタの重心位置の各情報が対応付けられている。各識別分類器10は、選出したプロトタイプ(以下、「ウィナー(winner)」と称することがある)に対応付けられたクラスラベルおよびウィナーと特徴ベクトルとの距離(以下、「ウィナー距離」と称することがある)を入力データのクラス分類結果として出力する。

【0025】
判定部20は、複数の識別分類器10からクラス分類結果を受け、これらクラス分類結果の多数決によって入力データのクラスを判定する。より詳細には、判定部20は、複数の識別分類器10によるクラス分類結果にウィナー距離を重み付けした重み付き多数決によって入力データのクラスを判定する。

【0026】
ここで重要な点は、複数の識別分類器10に共通の入力データが与えられ、各識別分類器10は、他の識別分類器10と重複しない特徴記述子によって入力データの特徴ベクトルを生成する点である。すなわち、認識システム100は、未知クラスの入力データを相補的な複数の特徴領域(局所特徴領域またはドメインともいう)においてクラス分類し、各ドメインにおけるクラス分類結果を集約して最終的に重み付き多数決によって入力データのクラスを判定する。

【0027】
次に、識別分類器10の構成について説明する。図2Aは、一例に係る識別分類器10の構成を示す。一例に係る識別分類器10は、メモリ11と、距離計算回路12と、最小距離探索回路13と、特徴抽出部14とを備えている。図2Bは、別例に係る識別分類器10の構成を示す。別例に係る識別分類器10は、特徴抽出部14と、連想メモリ15とを備えている。

【0028】
特徴抽出部14は、所定の特徴記述子によって、入力データの特徴ベクトルを生成する。ここで、特徴ベクトルの次元数が大きいとベクトル間の距離計算の負荷が大きくなってしまう。そこで、特徴抽出部14は、PCA(Principal Component Analysis)法やPLS(Partial Least Squares)法などを適用して、次元を縮小した特徴ベクトルを扱うようにしてもよい。PCA法やPLS法などによってベクトルの次元が縮小されても、識別分類器10のクラス分類精度は低下しない。

【0029】
メモリ11は、あらかじめ学習によって獲得したプロトタイプを記憶する記憶装置である。メモリ11は、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)などの揮発性メモリおよび/またはフラッシュメモリなどの不揮発性メモリで構成することができる。

【0030】
連想メモリ15は、あらかじめ学習によって獲得したプロトタイプを参照データとして記憶している。連想メモリ15は、特徴抽出部14によって生成された特徴ベクトルが検索データとして入力され、記憶しているプロトタイプの中から特徴ベクトルとの距離が近いものを選び出す。距離として、例えば、ユークリッド距離またはユークリッド2乗距離を採用することができる。連想メモリ15が最近傍連想メモリの場合、特徴ベクトルと最も距離が近い1個のプロトタイプが選択される。連想メモリ15がk近傍連想メモリの場合、特徴ベクトルと最も距離が近いk個のプロトタイプが選択される。なお、k近傍連想メモリについては、本願発明者による特願2013-154887の明細書などに詳しく記載されている。

【0031】
メモリ11または連想メモリ15に記憶されるプロトタイプは、複数のサンプルデータを特徴抽出部14に入力して複数の学習用特徴ベクトルを生成し、それら学習用特徴ベクトルに対してクラスタリングを実施することで獲得することができる。

【0032】
クラスタリングは、K平均法などを用いて実施することができる。例えば、任意の次元の空間においてn個の学習用特徴ベクトルX(i=1,2,…,n)をm個のクラスタに分類するとする。K近傍法によると、次の4つのステップでクラスタリングが実施される。
ステップ1:各学習用特徴ベクトルXに対してランダムにクラスタを割り当てる。
ステップ2:各クラスタの重心(プロトタイプ)P(i=1,2,…,m)を計算する。
ステップ3:各学習用特徴ベクトルXと各プロトタイプPとの距離を計算し、各学習用特徴ベクトルXを最近傍のプロトタイプPのクラスタに割り当る。
ステップ4:各学習用特徴ベクトルXのクラスタの割り当てが変化しなくなるまでステップ2およびステップ3を繰り返す。

【0033】
上記4つのステップのうち、ステップ3は、図2Aの構成における距離計算回路12および最小距離探索回路13によって、または、図2Bの構成における連想メモリ15によって、それぞれハードウェア処理することができ、それ以外のステップは、図示しない演算処理装置によってソフトウェア処理することができる。このように、距離計算回路12および最小距離探索回路13、または連想メモリ15を使用して、ハードウェアおよびソフトウェアが協働して学習用特徴ベクトルのクラスタリングを実施してプロトタイプを獲得することができる。

【0034】
距離計算回路12は、特徴ベクトルとプロトタイプとの距離を計算するハードウェアである。距離計算回路12には、メモリ11に記憶されているすべてのプロトタイプが一つずつ順に入力される。最小距離探索回路13は、距離計算回路12によって計算された距離のうち最小のものを探索するハードウェアである。距離計算回路12および最小距離探索回路13は、例えば、FPGA(Field Programmable Gate Array)などに実装することができる。2つのベクトル間の距離としてさまざまなものがあるが、ユークリッド距離を採用することが好ましい。ユークリッド距離は、マンハッタン距離やハミング距離などよりも正確な尺度となり得るからである。特徴ベクトルをF={F,F,…,F}、プロトタイプをP={P,P,…,P}とすると、特徴ベクトルFとプロトタイプPとのユークリッド距離Dは次式(1)で与えられる。ただし、1≦j≦dである。

【0035】
=√Σ(F-P … (1)
ユークリッド距離の計算には平方根計算が含まれるため、ハードウェアによる処理に向いていない。したがって、次式(2)で与えられるユークリッド2乗距離Dを採用する。

【0036】
=Σ(F-P … (2)
ユークリッド2乗距離だと平方根計算が不要となり、ハードウェアで計算回路を実現しやすくなる。なお、ユークリッド2乗距離を採用してもマンハッタン距離やハミング距離などに対する優位性は失われない。

【0037】
図3は、距離計算回路12および最小距離探索回路13の構成例を示す。本例に係る距離計算回路12は、特徴ベクトルFとプロトタイプPとのユークリッド2乗距離を計算する回路である。特徴ベクトルFの要素FおよびプロトタイプPの要素Pはいずれも16ビット値であり、距離計算回路12は特徴ベクトルFとプロトタイプPとのユークリッド2乗距離として42ビット値を計算する。

【0038】
特徴抽出部14およびメモリ11から特徴ベクトルFおよびプロトタイプPが1ワード単位、すなわち、4要素単位で読み出され、距離計算回路12に入力される。第1ステージ(Stage1)において、距離計算回路12に入力された特徴ベクトルFおよびプロトタイプPの各要素は、8個の16ビットレジスタ1201に格納される。第2ステージ(Stage2)において、4個の16ビット減算器1202は、それぞれ、2個の16ビットレジスタ1201の値どうしを減算し、計算結果が4個の16ビットレジスタ1203に格納される。第3ステージ(Stage3)において、4個の16ビット乗算器1204は、それぞれ、4個の16ビットレジスタ1203の値を2乗し、計算結果が4個の32ビットレジスタ1205に格納される。第4ステージ(Stage4)において、2個の32ビット加算器1206は、それぞれ、2個の32ビットレジスタ1205の値を加算し、計算結果が32ビットレジスタ1207に格納される。第5ステージ(Stage5)において、32ビット加算器1208は、2個の32ビットレジスタ1207の値を加算し、計算結果が32ビットレジスタ1209に格納される。第6ステージ(Stage6)において、42ビット加算器1210は、32ビットレジスタ1209の値と、マルチプレクサ1211の出力とを加算し、計算結果が42ビットレジスタ1212に格納される。なお、42ビットレジスタ1212は、距離計算の開始前に、リセット信号resetによって初期化され、保持値が“0”に設定される。

【0039】
マルチプレクサ1211は、42ビットレジスタ1212の値と“0”が入力され、制御信号Load_cmpに応じてこれらのいずれか一方を出力する。制御信号Load_cmpは、特徴抽出部14およびメモリ11から特徴ベクトルFおよびプロトタイプPの最終ワードの読み出しが完了したことを示すタイミング信号One_sampleを所定量だけ遅延させた信号である。したがって、特徴ベクトルFおよびプロトタイプPの最終ワードの読み出しが完了するまでマルチプレクサ1211から42ビットレジスタ1212の値が出力され、上記の第2ステージから第5ステージまでの計算結果が累積加算される。加算器1210のビット幅を42ビットにしている理由は、このような累積加算によるキャリーオーバーに対応するためである。このように、距離計算回路12は、特徴ベクトルFおよびプロトタイプPの次元が4よりも大きい場合、これらベクトルの要素を4個単位で分割して計算することができる。

【0040】
図4は、プロトタイプを格納するメモリブロックを模式的に示す。メモリ11において、プロトタイプは、n(ただし、nは整数)ワード分のメモリブロック単位で格納されている。nは、格納されるプロトタイプのサイズに応じて変わり得る。プロトタイプの1要素が16ビット値の場合、1ワード当たりちょうど4個の要素が格納される。したがって、プロトタイプの次元数が4の倍数の場合、メモリブロックはすべてプロトタイプの要素によって埋められる。一方、図4の拡大部分に示したようにプロトタイプの次元数が4の倍数でない場合、メモリブロックの最終ワードにおいてプロトタイプの要素が存在しない部分は“0”で埋めるようにする。値“0”がプロトタイプの要素として距離計算回路12に入力されても計算結果に何ら影響はない。このように、認識システム100は、ハードウェアによって任意の次元のベクトル間のユークリッド2乗距離を計算することができる。

【0041】
図5は、タイミング信号One_sampleの生成回路の構成例を示す。カウンタ回路15は、クロック信号CLKに同期して初期値からカウントアップする。なお、カウンタ回路15は、距離計算の開始前に、リセット信号resetによって初期化され、保持値が“0”に設定される。比較器16は、カウンタ回路15の値とベクトルのサイズを表す値Onesampe_defが入力され、これらが一致するとき、“1”を出力し、それ以外は“0”を出力する。比較器16の出力がタイミング信号One_sampleである。値Onesampe_defは、上述したように、メモリ11においてプロトタイプが格納されるメモリブロックのワード数nを表す。例えば、プロトタイプが11次元の場合、値Onesampe_defは“3”であり、プロトタイプが20次元の場合、値Onesampe_defは“5”である。カウンタ回路15の値Addr_prtは、各メモリブロックにおけるワードのリードアドレスとして使用される。すなわち、値Addr_prtが“0”のとき、プロトタイプの先頭ワードが読み出され、値Addr_prtが“n-1”のとき、プロトタイプの最終ワードが読み出される。

【0042】
図3へ戻り、最小距離検索回路13において、42ビットレジスタ131は、距離計算の開始前に、リセット信号resetによって初期化され、制御信号Load_cmpが入力されたタイミングで42ビットレジスタ1212の値を格納する。制御信号Load_cmpが“1”となることで最小距離の検索が開始される。42ビットレジスタ132は、検索して得られた42ビット値の最小距離、すなわち、ウィナー距離を格納するレジスタである。42ビットレジスタ131は、距離計算の開始前に、リセット信号resetによって初期化され、制御信号Load_minが入力されたタイミングで42ビットレジスタ131の値を格納する。制御信号Load_minは、新たな最小距離が見つかったときに“1”となる信号である。

【0043】
マルチプレクサ133は、42ビットレジスタ132の値と閾値Radiusとが入力され、制御信号1NN/RNNに応じてこれらのいずれか一方を出力する。閾値Radiusは、後述するように、最近傍探索(Nearest Neighbor Search)において探索範囲を制限するための閾値である。42ビット比較器134は、42ビットレジスタ131の値Aとマルチプレクサ133の出力Bが入力され、これらの大小を比較し、A<Bのとき、すなわち、新たな最小距離が見つかったときに“1”を出力し、それ以外は“0”を出力する。ANDゲート135は、42ビット比較器134の出力と、制御信号Load_cmpを保持するフリップフロップ136の出力との論理積を演算する。ANDゲート135の出力が制御信号Load_minである。新たな最小距離が見つかったとき、制御信号Load_minは“1”となる。レジスタ137は、特徴ベクトルFとの距離が最小となるプロトタイプP、すなわち、ウィナーのアドレスを格納するレジスタである。レジスタ137は、制御信号Load_minが入力されたタイミングでプロトタイプPのアドレスP_Addrを格納する。

【0044】
なお、レジスタ132および137を、複数のデータを記憶可能なスタックメモリに置き換えてもよい。スタックメモリを使用することで、最小距離探索回路13において複数のウィナーおよびウィナー距離を保持することができ、識別分類器10が特徴ベクトルに最近傍の複数のプロトタイプを選出できるようになる。

【0045】
上記構成の距離計算回路12の第1ステージから第6ステージの各ステージおよび最小距離探索回路13は、パイプライン動作が可能である。図6は、32次元の特徴ベクトルFおよびプロトタイプPが入力された場合における、距離計算回路12および最小距離探索回路13のパイプライン動作のタイミングチャートである。1クロックごとに値Addr_prtがインクリメントされて特徴抽出部14およびメモリ11から特徴ベクトルFおよびプロトタイプPの次のワードが距離計算回路12へ入力され、前ステージの計算結果が次ステージへ渡される。そして、15クロックで、32次元のベクトル間の距離計算および最小距離の探索を完了することができる。

【0046】
以上のように、本実施形態によると、未知クラスの入力データが各識別分類器10によって相補的な特徴領域(ドメイン)においてクラス分類され、各ドメインにおけるクラス分類結果が判定部20に集約されて最終的に多数決によってクラス判定が行われる。したがって、個々の識別分類器10は、計算量を増大させずに識別精度が比較的低いものであっても、それらの識別結果を総合的に評価することで、システム全体としての識別精度を向上させることができる。また、個々の識別分類器10で実施される最近傍探索はハードウェア処理に適しているため、識別分類器10をハードウェアに実装することは容易である。これにより、システム全体としての認識速度を高速化することができる。

【0047】
なお、図3の距離計算回路12ではベクトルが4要素単位で区切られてパイプライン処理されるが、各ステージにおけるレジスタの個数を増やすことで、一度に処理可能なベクトルの要素数を増やすことができる。これにより、ベクトル間の距離計算をより短時間で完了することができる。あるいは、ベクトルの次元数よりも十分に多い数のレジスタを設けてベクトルの全要素を一度に処理するようにしてもよい。これにより、ベクトル間の距離計算を最小時間で完了することができる。

【0048】
また、特徴抽出部14が生成した特徴ベクトルをメモリ11に一時的に記憶させてもよい。この場合、距離計算回路12は、メモリ11から特徴ベクトルおよびプロトタイプを読み出し、これらベクトル間の距離を計算する。

【0049】
<認識システムの一例>
次に、本発明の実施形態の一例に係る認識システムについて説明する。図7は、本発明の実施形態の一例に係る認識システム10における主要部の構成を示す。一例に係る認識システム10は、入力された画像データが人の画像であるか否かを認識するシステムである。認識システム10は、入力された画像データからエッジ特徴量およびテクスチャ特徴量を抽出し、エッジドメインおよびテクスチャドメインの両観点から、入力された画像データが人の画像であるか(クラス1)、または、人の画像でないか(クラス2)を相補的に判定し、各ドメインにおけるクラス判定結果を総合的に評価して、入力された画像データのクラスを最終的に決定する。

【0050】
具体的には、認識システム10は、2個の識別分類器10_1および10_2と、判定部20とを備えている。識別分類器10_1は、特徴記述子としてHOG(Histograms of Oriented Gradients)を用いる。周知のように、HOG特徴量を用いることで画像データからエッジ特徴量を抽出することができる。したがって、識別分類器10_1は、特徴ベクトルとしてエッジ特徴量を用いる。一方、識別分類器10_2は、特徴記述子としてLBP(Local Binary Pattern)を用いる。周知のように、LBP特徴量を用いることで画像データからテクスチャ(texture)特徴量を抽出することができる。したがって、識別分類器10_2は、特徴ベクトルとしてテクスチャ特徴量を用いる。

【0051】
識別分類器10_1および10_2は、サンプルデータの学習によって複数のプロトタイプを生成し、それら複数のプロトタイプは、2つのクラス1またはクラス2のいずれかに対応付けられる。すなわち、識別分類器10_1および10_2は、マルチプロトタイプの分類器である。識別分類器10_1および10_2において、特徴ベクトル空間は、クラス1およびクラス2に対応する2つのボロノイセルに分割され、各ボロノイセルには1または複数のプロトタイプが含まれている。識別分類器10_1および10_2は、特徴ベクトルに最近傍のプロトタイプを見つけ、そのプロトタイプを含むボロノイセルに対応するクラスを、入力された画像データのクラスとして判定する。

【0052】
識別分類器10_1および10_2は、最近傍探索により、入力データから生成した特徴ベクトルに最近傍のプロトタイプ(ウィナー)を見つける。ここで、特徴ベクトルとウィナーとの距離(ウィナー距離)が小さいほど、その入力データのクラス分類結果の信頼度は高い。逆に言うと、ウィナー距離が大きいほど、入力データのクラス分類結果の信頼度は低い。そこで、より高い信頼度のクラス分類結果が得られるように、識別分類器10_1および10_2において最近傍探索の探索範囲を制限するための閾値を設けてもよい。

【0053】
図8は、学習用特徴ベクトルのクラス分類結果の一例を示す。学習用特徴ベクトルには、人の画像のサンプルデータから抽出した特徴量、および人以外の画像のサンプルデータから抽出した特徴量の2種類が含まれる。そのような学習用特徴ベクトルについて、クラス1のプロトタイプとのウィナー距離と度数との関係をグラフ化すると図8に示したようになる。すなわち、ウィナー距離が小さい学習用特徴ベクトルはクラス1に分類される傾向にあり、ウィナー距離が大きい学習用特徴ベクトルはクラス2に分類される傾向にあり、その分布は一部重なり合っている。しかし、ウィナー距離がある値以上になると、もはや学習用特徴ベクトルはクラス1に分類されることなく、すべてクラス2に分類されるようになる。そして、そのようなウィナー距離の上限値を、最小距離探索回路13における閾値Radius(図3を参照)として設定することができる。

【0054】
入力された画像データが人の画像であるか否かを認識するシステムでは、人の画像であるというポジティブな判定よりも、人の画像でないというネガティブな判定の方が重視される場合がある。そこで、そのような場合には、判定部20は、クラス1よりもクラス2の優先度を高めて、入力された画像データの判定を行うことができる。

【0055】
図9は、判定部20における判定処理の例を示すフローチャートである。まず、判定部20は、各識別分類器10_1および10_2からクラス分類結果とウィナー距離を取得する(S1)。そして、判定部20は、クラス分類結果を比較し、両者が一致すれば(S2でYES)、ステップS1で取得したクラス分類結果を最終判定結果として出力する(S4)。一方、クラス分類結果が不一致ならば(S2でNO)、判定部20は、優先度が高いクラス分類結果(この場合、人の画像ではないというクラス2)を採用し、それを最終判定結果として出力する(S4)。

【0056】
なお、ステップS1において、各識別分類器10_1および10_2から取得したクラス分類結果に各ウィナー距離を重み付けしてもよい。この場合、ステップS2において、クラス分類結果が不一致であっても、クラス1のウィナー距離が小さく、それに比べてクラス2のウィナー距離が大きければ、判定部20は、優先度の高いクラス2ではなく、よりウィナー距離の小さい、すなわち、より信頼度が高いクラス1を採用することができる。

【0057】
特徴記述子は、HOGおよびLBPに限定されない。それ以外に、SIFT(Scale Invariant Feature Transform)、SURF(Speeded Up Robust Features)、Fern、Haarなどの特徴記述子が使用可能である。

【0058】
本発明の実施形態の一例として、入力された画像が人の画像であるか否かを認識する認識システム10について説明したが、入力データは画像データに限定されない。本発明に係る認識システムは、画像データ以外にも、音声データ、テキストデータなどの任意の種類のデータについて認識可能である。例えば、認識システム100を、入力された音声データが特定人物の音声であるか否かを認識するシステムに変形することは容易である。
【符号の説明】
【0059】
100 認識システム
10,10_1,10_2 識別分類器
11 メモリ
12 距離計算回路
13 最小距離探索回路
14 特徴抽出部
15 連想メモリ
20 判定部
図面
【図1】
0
【図2A】
1
【図2B】
2
【図3】
3
【図4】
4
【図5】
5
【図6】
6
【図7】
7
【図8】
8
【図9】
9