(57)【特許請求の範囲】
【請求項１】
入力データの特徴を階層的に抽出して当該入力データのパターンを識別するパターン識別方法において、
第１の階層の特徴を抽出する第１の特徴抽出工程と、
前記第１の特徴抽出工程における特徴抽出結果の分布を分析する分析工程と、
前記分析工程で分析された分布における前記第１の階層の特定の特徴の位置または尤度が、前記第１の階層の特徴を構成要素とする第２の階層の特徴に対して複数の変動カテゴリの各々の変動が生じた特徴の抽出をそれぞれ実行するために前記特定の特徴の位置または尤度について予め設定された条件を満足するかを判定する判定工程と、
前記判定工程により前記条件を満足すると判定された変動カテゴリの変動が生じた前記第２の階層の特徴を対象として、当該第２の階層の特徴を抽出する第２の特徴抽出工程とを有することを特徴とするパターン識別方法。
【請求項２】
前記第２の特徴抽出工程では、前記変動カテゴリ毎にそれぞれ異なる特徴抽出モジュールを利用し、前記特定の特徴の位置または尤度が前記条件を満足すると判定された変動カテゴリに対応する特徴抽出モジュールを選択的に起動して、前記第２の階層の特徴を抽出することを特徴とする請求項１に記載のパターン識別方法。
【請求項３】
前記第１または第２の特徴抽出工程において、所定の特徴に所定の変換を与えて得られる特徴を抽出することを特徴とする請求項１に記載のパターン識別方法。
【請求項４】
前記第２の特徴抽出工程における上位の階層の特徴抽出結果に基づいて、下位の階層の特徴を再抽出する再抽出工程を有することを特徴とする請求項１に記載のパターン識別方法。
【請求項５】
前記分析工程では、複数の前記特徴抽出結果の各々の分布を分析し、それぞれの分析結果の相対関係を分析することを特徴とする請求項１に記載のパターン識別方法。
【請求項６】
前記分析工程では、少なくとも１つの前記特徴抽出結果の特定の範囲内での分布を分析することを特徴とする請求項１に記載のパターン識別方法。
【請求項７】
前記分析工程では、少なくとも１つの前記特徴抽出結果の分布において、所定の範囲内に前記特徴が抽出されている、もしくは抽出されていないことを分析することを特徴とする請求項１に記載のパターン識別方法。
【請求項８】
前記分析工程では、少なくとも１つの前記特徴抽出結果の分布の重心位置を分析することを特徴とする請求項１に記載のパターン識別方法。
【請求項９】
前記分析工程では、少なくとも１つの前記特徴抽出結果の分布において、前記特徴が抽出されている範囲もしくは抽出されていない範囲の大きさを分析することを特徴とする請求項１に記載のパターン識別方法。
【請求項１０】
前記分析工程では、少なくとも１つの前記特徴抽出結果の尤度もしくは特徴検出レベルの累計を分析することを特徴とする請求項１に記載のパターン識別方法。
【請求項１１】
前記分析工程では、少なくとも１つの前記特徴抽出結果の分布に対して、所定のフィルタを用いたフィルタリングを行うことにより分析することを特徴とする請求項１に記載のパターン識別方法。
【請求項１２】
前記所定のフィルタは、前記第２の特徴抽出工程において抽出すべき特徴カテゴリのパターンと、抽出すべきでないパターンとを分離するためのフィルタであることを特徴とする請求項１１に記載のパターン識別方法。
【請求項１３】
前記第２の特徴抽出工程では、前記分析工程により得られた少なくとも１つの分析結果に対して所定の判別処理を行うことにより、前記第２の階層の複数の特徴の尤度を算出することを特徴とする請求項２に記載のパターン識別方法。
【請求項１４】
入力データの特徴を階層的に抽出して当該入力データのパターンを識別するパターン識別装置であって、
第１の階層の特徴を抽出する第１の特徴抽出手段と、
前記第１の特徴抽出手段による特徴抽出結果の分布を分析する分析手段と、
前記分析手段で分析された分布における前記第１の階層の特定の特徴の位置または尤度が前記第１の階層の特徴を構成要素とする第２の階層の特徴に対して複数の変動カテゴリの各々の変動が生じた特徴の抽出をそれぞれ実行するために前記特定の特徴の位置または尤度について予め設定された条件を満足するかを判定する判定手段と、
前記判定手段により前記条件を満足すると判定された変動カテゴリの変動が生じた前記第２の階層の特徴を対象として、当該第２の階層の特徴を抽出する第２の特徴抽出手段とを有することを特徴とするパターン識別装置。
【請求項１５】
コンピュータに、入力データの特徴を階層的に抽出させて当該入力データのパターンを識別させるパターン識別プログラムであって、
第１の階層の特徴を抽出する第１の特徴抽出工程と、
前記第１の特徴抽出工程におけ特徴抽出結果の分布を分析する分析工程と、
前記分析工程で分析された分布における前記第１の階層の特定の特徴の位置または尤度が前記第１の階層の特徴を構成要素とする第２の階層の特徴に対して複数の変動カテゴリの各々の変動が生じた特徴の抽出をそれぞれ実行するために前記特定の特徴の位置または尤度について予め設定された条件を満足するかを判定する判定工程と、
前記判定工程により前記条件を満足すると判定された変動カテゴリの変動が生じた前記第２の階層の特徴を対象として、当該第２の階層の特徴を抽出する第２の特徴抽出工程とを有することを特徴とするパターン識別プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像認識、音声認識等において、階層的に特徴を抽出していくことにより、入力信号のパターンを識別する方法及びその装置、そのプログラムに関する。
【背景技術】
【０００２】
階層的に特徴を抽出していくことにより、入力信号のパターンを識別する技術がある。この方法では、高次の特徴を抽出する際に、その抽出する特徴を構成する、その特徴より低次の特徴を用いて、特徴抽出を行うため、識別パターンの変動に対して頑健な識別が可能であるという特徴がある。しかし、パターンの変動に対する頑健性を高めようとすると、抽出すべき特徴の種類を増やす必要があり、結果として処理コストが増大してしまう。そこで、抽出すべき特徴の種類を増やさないようにすると、誤識別を生じる可能性が高くなる、などの問題があった。
【０００３】
上記の問題に対して、各クラスのパターンの特徴ベクトルを、ベクトル成分の分散が大きい順に並べたものを辞書パターンとし、入力パターンから特徴ベクトルを生成し、上位Ｎ次元まで辞書パターンとのマッチングを行い、その結果に基づいて、下位次元とのマッチングを行うことで、処理コストを低減させるという、パターン認識方法が提案されている（例えば特許文献１参照）。
【０００４】
また、入力データから特徴ベクトルを抽出し、各クラスタの標準ベクトルとの一致度によって、クラスタに分類し、入力パターンが分類されたクラスタ内の、カテゴリ標準ベクトルと特徴ベクトルの一致度によって、カテゴリ分類することで、マッチングの処理コストを低減させるという、パターン認識用辞書作成装置及びパターン認識装置も提案されている（例えば特許文献２参照）。
【特許文献１】特公平７−１１８１９号公報
【特許文献２】特開平１０−１１５４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、入力パターンの変動に対して頑健な識別が可能であり、誤識別が生じる可能性を低減させながら、より処理コストの少ないパターン認識を行うことが望まれている。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明によれば、入力データの特徴を階層的に抽出して当該入力データのパターンを識別するパターン識別方法に、第１の階層の特徴を抽出する第１の特徴抽出工程と、前記第１の特徴抽出工程における特徴抽出結果の分布を分析する分析工程と、前記分析工程で分析された分布における前記第１の階層の特定の特徴の位置または尤度が前記第１の階層の特徴を構成要素とする第２の階層の特徴に対して複数の変動カテゴリの各々の変動が生じた特徴の抽出をそれぞれ実行するために前記特定の特徴の位置または尤度について予め設定された条件を満足するかを判定する判定工程と、前記判定工程により前記条件を満足すると判定された変動カテゴリの変動が生じた前記第２の階層の特徴を対象として、当該第２の階層の特徴を抽出する第２の特徴抽出工程とを備える。
【０００７】
また、本発明の他の態様によれば、入力データの特徴を階層的に抽出して当該入力データのパターンを識別するパターン識別装置に、第１の階層の特徴を抽出する第１の特徴抽出手段と、前記第１の特徴抽出手段による特徴抽出結果の分布を分析する分析手段と、前記分析手段により分析された分布における前記第１の階層の特定の特徴の位置または尤度が前記第１の階層の特徴を構成要素とする第２の階層の特徴に対して複数の変動カテゴリの各々の変動が生じた特徴の抽出をそれぞれ実行するために前記特定の特徴の位置または尤度について予め設定された条件を満足するかを判定する判定手段と、前記判定手段により前記条件を満足すると判定された変動カテゴリの変動が生じた前記第２の階層の特徴を対象として、当該第２の階層の特徴を抽出する第２の特徴抽出手段とを備える。
【０００８】
また、本発明の他の態様によれば、コンピュータに、入力データの特徴を階層的に抽出させて当該入力データのパターンを識別させるパターン識別プログラムに、第１の階層の特徴を抽出する第１の特徴抽出工程と、前記第１の特徴抽出工程におけ特徴抽出結果の分布を分析する分析工程と、前記分析工程で分析された分布における前記第１の階層の特定の特徴の位置または尤度が前記第１の階層の特徴を構成要素とする第２の階層の特徴に対して複数の変動カテゴリの各々の変動が生じた特徴の抽出をそれぞれ実行するために前記特定の特徴の位置または尤度について予め設定された条件を満足するかを判定する判定工程と、前記判定工程により前記条件を満足すると判定された変動カテゴリの変動が生じた前記第２の階層の特徴を対象として、当該第２の階層の特徴を抽出する第２の特徴抽出工程とを備える。
【発明の効果】
【０００９】
本発明によれば、入力パターンの変動に対して頑健な識別が可能であり、誤識別が生じる可能性を低減させながら、より処理コストの少ないパターン認識を行うことが可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、添付図面を参照しながら、本発明の実施形態を説明する。
【００１１】
（第１の実施形態）
本発明の第１の実施形態として、入力データとして２次元画像データを用い、その画像データが、ある特定のカテゴリであるかどうかを識別する方法を示す。
【００１２】
本実施形態では、識別カテゴリとして、図４の（i）から（iv）に示すような、顔の中心付近が入力画像のほぼ中央に存在する顔存在画像と、図４の（v）に示すような、それ以外の画像である顔不在画像を想定し、入力された画像データに対し、上記２つのカテゴリのいずれであるかを識別する方法について説明する。
【００１３】
本実施形態では、顔の存在する画像かどうかという識別を行うが、これに限るものではなく、その他の画像パターンや、入力データが音声データであるような場合にも適用可能である。また、本実施形態では、説明を簡単にするため、顔という単一のカテゴリについて、そのカテゴリ内であるか否かの識別のみを行うが、このような単一のカテゴリではなく、複数のカテゴリについて識別する場合にも適用可能である。
【００１４】
図１にパターン識別装置の基本構成を示す。以下、このパターン識別装置の概要について図１を用いて説明する。
【００１５】
図１の（Ａ）のデータ入力部１１は、パターン識別を行う入力データを入力する。階層的特徴抽出処理部１２は、入力されたデータから階層的に特徴抽出を行い、入力データのパターン識別を行う処理部であり、１次的特徴抽出処理を行う１次的特徴抽出処理部１２１と、２次的特徴抽出処理を行う２次的特徴抽出処理部１２２とを備えている。抽出結果分布分析部１３は、１次的特徴抽出処理部１２１において抽出された特徴抽出結果の分布を分析する。
【００１６】
このパターン識別装置では、まずデータ入力部１１において識別処理を行うデータを入力する。この入力したデータに対し、階層的特徴抽出処理部１２において階層的特徴抽出処理を行う。この階層的抽出処理では、まず１次的特徴抽出処理部１２１において、入力データから階層的に複数の１次的特徴の抽出を行う。次に、１次的特徴抽出処理部１２１において抽出された少なくとも１種類の１次的特徴の分布を、抽出結果分布分析部１３において分析し、その分析結果に基づいて、２次的特徴抽出処理部１２２において２次的特徴抽出を行う。
【００１７】
次に、図１の（Ｂ）にパターン識別装置の別の基本構成を示す。以下、このパターン識別装置の概要について図１の（Ｂ）を用いて説明する。
【００１８】
図１の（Ｂ）において、データ入力部１１は、パターン識別を行う入力データを入力する。階層的特徴抽出処理部１２は、入力されたデータから階層的に特徴抽出を行い、入力データのパターン識別を行う処理部であり、１次的特徴抽出処理を行う１次的特徴抽出処理部１２１と、２次的特徴抽出処理を行う２次的特徴抽出処理部１２２とを備えている。抽出結果分布分析部１３は、１次的特徴抽出処理部１２１において抽出された特徴抽出結果の分布を分析する。カテゴリ別尤度算出部１４は、抽出結果分布分析部１３により分析された分析結果から、２次的特徴の各カテゴリの尤度を算出する処理部である。
【００１９】
このパターン識別装置では、まずデータ入力部１１において識別処理を行うデータを入力する。この入力したデータに対し、階層的特徴抽出処理部１２において階層的特徴抽出処理を行う。この階層的抽出処理では、まず１次的特徴抽出処理部１２１において、入力データから階層的に複数の１次的特徴の抽出を行う。次に、１次的特徴抽出処理部１２１において抽出された少なくとも１種類の１次的特徴の抽出結果分布を、抽出結果分布分析部１３において分析する。抽出結果分布分析部１３により分析された結果に基づき、カテゴリ別尤度算出部において、２次的特徴抽出処理部１２２において抽出する２次的特徴の各カテゴリの尤度の算出を行い、２次的特徴抽出処理部１２２において、算出した尤度が所定値以上であったカテゴリに属する２次的特徴抽出を行う。
【００２０】
図２は、本実施形態におけるパターン識別装置の機能構成を示したものである。また、図３は、本実施形態における処理の流れを示したものである。以下、本実施形態における処理について、図２及び３を用いて説明する。図２の中の実線の矢印は、実際の信号データの流れを示しており、破線の矢印は、実際の信号データではなく動作指示等の命令信号の流れを示したものである。後述する図８及び図１０でも同様の表現とする。
【００２１】
まず、ステップＳ３０１で、画像入力部２１より、識別対象となる画像データを入力する。入力する画像データとして、本実施形態ではグレースケール画像を用いるが、ＲＧＢカラー画像などでもかまわない。
【００２２】
ステップＳ３０２では、初期特徴抽出部２２により、入力された画像中の特定方向のエッジなどの初期的な特徴を、少なくとも１つ抽出する。ステップＳ３０３では、局所特徴抽出部２３により、初期特徴抽出部２２で抽出された初期特徴を用いて、特定の長さを持つエッジ線分、エッジ線分の端点等の局所的な特徴を抽出する。ステップＳ３０４では、部分特徴抽出部２４において、局所特徴抽出部２３で抽出された局所特徴を用いて、目、口等の部分特徴を抽出する。
【００２３】
ステップＳ３０５では、部分特徴分布判定部２５により、部分特徴抽出部２４で抽出された部分特徴の画像内での分布を分析する。ステップＳ３０６では、部分特徴分布判定部２５は、その分析結果に応じて、顔抽出部２６に対し起動命令を発し、起動する顔抽出モジュールのフラグをオンする。
【００２４】
顔抽出部２６は、部分特徴抽出部２４において抽出された部分特徴を用いて顔の抽出を行う処理部である。顔抽出部２６は、特定のサイズや向きに対応した顔抽出を行う複数のモジュールから構成されており、起動命令を受けたモジュールのみ、顔の抽出を行う。ステップＳ３０７〜３０９では、順次、フラグがオンになっている顔抽出モジュールによる顔抽出処理を行い、顔抽出を実行した顔抽出モジュールのフラグをオフにする。フラグがオンになっている顔抽出モジュールがなくなると、顔抽出処理を終了する。
【００２５】
ステップＳ３１０〜３１１では、検出結果出力部２７において、顔抽出モジュールによる顔の抽出結果を統合して、入力画像が顔存在画像であるのか、顔不在画像であるのかの判別を行い、その結果を出力する。
【００２６】
以下で、画像入力部２１において入力された画像データに対する、初期特徴抽出部２２以降の各処理部での処理について詳細に説明する。
【００２７】
初期特徴抽出部２２において、入力画像から抽出する初期的な特徴は、上位階層である局所特徴抽出部２３において抽出される特徴の構成要素となる特徴であることが望ましい。本実施形態では、単純に縦方向、横方向、右上がり斜め方向、左上がり斜め方向の微分フィルタを用いて、入力画像の各位置でフィルタリング処理を行い、垂直エッジ、水平エッジ、斜め方向エッジ等の４種の特徴を抽出する。本実施形態では上記のようなフィルタリング処理を行うが、予め用意した初期的な特徴を示すテンプレート画像などを用い、入力画像の各位置でテンプレートマッチングを行うことにより、特徴を抽出するなどしても構わない。
【００２８】
ここで抽出された特徴は、その特徴の種類、画像中での位置、抽出すべき特徴の尤度や特徴検出レベルといった情報として保持する。本実施形態では、この段階で入力画像から、図５の（ａ）から（ｄ）に示すような特徴が抽出される。図５の（ａ）は垂直エッジの抽出結果を示し、（ｂ）は水平エッジ、（ｃ）は右斜めエッジ、（ｄ）は左斜めエッジの抽出結果である。
【００２９】
図５では、それぞれ画像の各位置でフィルタリングを行った結果が０である位置をグレーとし、正の値を高輝度値、負の値を低輝度値としてあらわすようにしてある。つまり、図５の画像内において、輝度値が高く示されている位置が各フィルタの種類に対応した方向のエッジが抽出された位置である。逆に輝度値が低く示されている位置は、各フィルタの種類に対応した方向と逆方向のエッジが存在する位置である。また輝度の中間値であるグレーの部分はエッジが抽出されていない位置を示している。
【００３０】
ここでは特徴の抽出に微分フィルタを用いているので、フィルタリングを行った値の絶対値はエッジの急峻さを示す。つまり入力画像において、フィルタの種類に応じた方向に輝度値の変化が大きい位置ほど、高輝度値、もしくは低輝度値として示してある。
【００３１】
局所特徴抽出部２３において、初期特徴抽出部２２において抽出された初期特徴抽出結果を用いて抽出する局所的な特徴は、初期特徴抽出部２２において抽出する特徴と同様に、上位階層である部分特徴抽出部２４において抽出される特徴の構成要素となる特徴であることが望ましい。
【００３２】
本実施形態では、部分特徴抽出部２４において目と口を抽出するため、局所特徴抽出部２３では、図６の（１−ａ）から（１−ｄ）内の円で囲われた部分に示すような、目尻、目頭や口の両端等に相当するエッジ線分の端点として、左側端点と右側端点の２種類の特徴と、目の上部や口唇上部に相当する特徴、目の下部や口唇下部に相当する特徴の、２種類の特定の長さを持ったエッジ線分を抽出する。
【００３３】
図６の（１−ａ）から（１−ｄ）は、左側端点（図は左目の目頭）が存在する位置における初期特徴抽出結果である。（１−ａ）は垂直エッジの抽出結果であり、（１−ｂ）は水平エッジ、（１−ｃ）は右斜めエッジ、（１−ｄ）は左斜めエッジの抽出結果となっている。その他（２−ａ）から（２−ｄ）は、右端点（図は口の端点）が存在する位置における各初期特徴（順に、垂直、水平、右斜め、左斜めエッジ）抽出結果であり、（３−ａ）から（３−ｄ）は目の上部や口唇上部（図は右目の上部）、（４−ａ）から（４−ｄ）は、目の下部や口唇下部（図は口唇下部）が存在する位置における各初期特徴（順に、垂直、水平、右斜め、左斜めエッジ）抽出結果である。
【００３４】
本実施形態では、各々の特徴の抽出方法として、初期特徴抽出部２２で抽出された特徴ごとに特有の２次元マスクを予め用意しておき、図５の（ａ）から（ｄ）に示したような、それぞれの特徴抽出結果の各位置において、予め用意した抽出予定の特徴に固有の２次元マスクにより、フィルタリング処理（コンボリューション演算）を行う。そして、それぞれの初期特徴抽出結果に対してフィルタリングを行った結果を統合することで、それぞれの特徴の抽出を行う。
【００３５】
予め用意しておく固有の２次元マスクは、抽出すべき特徴、ここでは例えば左端点のような特徴において、その特徴が存在する位置における、それぞれの初期特徴抽出結果の分布、すなわち（１−ａ）から（１−ｄ）に対応している。つまり、初期特徴抽出結果の分布が、抽出すべき特徴が存在する位置周辺に特有の初期特徴抽出結果の分布である場合にフィルタリングを行った値が高いものになるような２次元マスクを設定する。
【００３６】
２次元マスクの設定の方法としては、単純に複数のテストパターンを与え、与えたテストパターンが抽出すべき特徴である場合は、フィルタリングを行った結果が高い値になるように２次元マスクの各要素の値を調整し、逆に抽出すべき特徴でない場合は、フィルタリングを行った値が低い値になるように、２次元マスクの各要素の値を調整することにより設定すればよい。またその他の方法として、事前に有する知識を利用して、２次元マスクの各要素の値を設定するようにしても構わない。
【００３７】
上記のような処理を行い抽出した特徴は、初期特徴抽出部２２と同様に、抽出した特徴の種類、画像中での位置、抽出すべき特徴の尤度や特徴検出レベルといった情報として保持する。本実施形態では、２種類の端点と、２種類の特定の長さを持つエッジ線分の４種類の特徴ごとに、抽出された特徴の位置と、各特徴に固有の２次元マスクを用いて、それぞれの初期特徴に対してフィルタリングを行い、その結果を統合したものを、その特徴の尤度として記録して保持しておく。
【００３８】
部分特徴抽出部２４での処理も、局所特徴抽出部２３での処理と同様であり、下位の層の特徴抽出結果である局所特徴抽出部２３において抽出した複数の局所特徴の抽出結果から、部分特徴の抽出を行う。抽出する部分特徴は、これも同様に、上位階層である顔抽出部２６において抽出される特徴、つまり実施形態中では顔の構成要素となる特徴であることが望ましい。
【００３９】
本実施形態では、前述のように、部分特徴抽出部２４では、目、口等の抽出を行う。抽出の処理としては、局所特徴抽出部２３での抽出方法と同様であり、特定の２次元マスクを用いたフィルタリングにより特徴を抽出すればよい。または単純に、局所特徴抽出部２３における特徴抽出結果の内、ある一定値以上の尤度を持った特徴が、特定の空間配置関係にあるかどうかによって、目、口の抽出を行うなどしてもよい。
【００４０】
上記のようにして抽出した目、口に関しても、抽出した特徴の種類、画像中での位置、抽出すべき特徴の尤度や特徴量といった情報として保持する。本実施形態では、目、口ごとに、それぞれに固有の２次元マスクによる局所特徴抽出結果に対するフィルタリングの結果を、画像中の各位置で統合したものを、各部分特徴の各位置での尤度として保持する。
【００４１】
部分特徴分布判定部２５では、部分特徴抽出部２４において抽出された特徴の抽出結果に対して、簡単な分布の分析を行い、その結果に基づいて、顔抽出部２６に対し、所定の顔抽出モジュール（複数可）に対して起動命令を与える。
【００４２】
ここで行う分析は、初期特徴抽出部２２から部分特徴抽出部２４までで行ったような処理とは異なり、起動命令を与える所定の顔抽出モジュールごとの必要条件を抽出する。例えば本実施形態では、入力画像の所定の座標付近において、部分特徴抽出部２４の処理により目が抽出されているか、もしくは抽出されていないかを判別するという分析や、部分特徴抽出部２４の処理による口抽出結果の重心位置が所定の座標付近にあるかどうかを判別する分析、或いは部分特徴抽出部２４の処理結果である目の尤度の累計が所定値以上であるかどうかを判別する分析などを行う。
【００４３】
ここで行う上記のような分析は、顔抽出部２６を構成している、複数の変動に対応した顔抽出を行うモジュールに対応した条件などを、予め設定しておけばよい。ここで変動とは、例えば回転変換やサイズ変換等のアフィン変換や、顔が横を向いたときなどに対応する変換等によって得られる特徴の変化のことである。例えば、時計回り面内回転変動に対応した顔抽出モジュールであれば、口抽出結果の重心位置が、画像中央より左寄り下部の位置に存在し、さらに目抽出結果の重心位置が、口抽出結果の重心位置の、右上部の位置に存在するというような条件を、時計回り面内回転変動に対応した顔抽出モジュールの必要条件の１つとして設定しておく。
【００４４】
このような分析をいくつか行い、分析の条件を満たす所定の顔抽出モジュールに対して起動命令を発する。重心の分析、尤度の累計の分析等は、例えば目が存在するだろうと予測される位置等の、所定の範囲内で行うようにしてもよい。また、２つ以上の特徴の、尤度の累計に関する比較などを行ってもよい。このような簡単な必要条件の分析により、特徴抽出を行うモジュールを選択することで、処理コストの低減が可能になり、さらに誤識別の低減も可能になる。
【００４５】
顔抽出部２６では、部分特徴分布抽出部２５から起動命令を受けた所定の顔抽出モジュールのみ、部分特徴抽出部２４で抽出された、目、口の抽出結果を用いて、部分特徴抽出部２４等と同様な特徴抽出処理を行う。特定の変動に対応したモジュールとしては、例えばサイズによる変動（図４のii）、面内回転による変動（図４のiii）、顔の横振り（図４のiv）、縦振りによる変動等に特化したモジュールを用意しておく。
【００４６】
本実施形態では、前記のような変動に対応したモジュールごとに、特定の２次元マスクを予め用意しておき、起動命令を受けたモジュールのみ、前記特定の２次元マスクを用いてフィルタリング処理を行う。２次元マスクの設定は、局所特徴抽出部２３で説明したのと同様であり、モジュールごとに対応する変動に特化するように、モジュールに対応した特定の変動を有する顔をテストパターンとして与えることによって設定を行う。
【００４７】
この顔抽出では、画像中央付近を中心とする顔を目標とした抽出を行うため、部分特徴抽出部２４までの特徴抽出処理とは異なり、フィルタリングを画像の各位置で行う必要はなく、画面内の顔を抽出するための範囲でのみフィルタリングを行えばよい。
【００４８】
検出結果出力部２７では、起動命令を受け、顔抽出処理を行った、変動に対応したモジュールによるフィルタリングの結果から、最終的な入力画像のカテゴリ分別を行う。ここでは単純に、起動された顔抽出モジュールの出力値が、それぞれのモジュールに応じて設定された閾値を超えているか否かを判定して、少なくとも１つのモジュールの出力値が閾値を超えていた時、入力画像が顔存在画像であると判定し、そうでない場合は、顔不在画像であると判定する。
【００４９】
ここでの判定は、この方法に限るものではなく、例えば起動されたモジュールの出力値を統合して、最終的な判定を行うというようにしてもよい。具体的には、時計回り面内回転変動に対応したモジュールの出力値を、変動としては逆のカテゴリである、反時計回り面内回転変動に対応したモジュールの出力値に所定の重み付けをして減算したものとする、等というように、変動が相反するようなモジュール間で、お互いの出力を抑制することで、誤識別を低減することができる。
【００５０】
また、特定のサイズの顔に対応したモジュールの出力値に対し、変動としては類似したカテゴリである前記特定のサイズよりやや大きいサイズの顔に対応したモジュールの出力値に所定の重み付けをして加算する、等というよう、変動が似通ったモジュール間で、お互いの出力を促進することで、識別のための閾値を高く設定することができ、結果として誤識別が低減できる。
【００５１】
または、上記のような類似したカテゴリの、２つ以上のモジュールの出力値を重み付け加算、もしくは単純に相加平均演算等をすることにより得られる値を、カテゴリ間の中間の変動に対応する仮想的な特徴抽出モジュールの出力値として新たに設定することで、少ない処理コストで、識別漏れのない高精度な識別が可能である。
【００５２】
以上、第１の実施形態は、入力データとして２次元画像データを用い、その画像データが、ある特定のカテゴリであるかどうかを識別する方法において、識別カテゴリとして、顔の中心付近が入力画像のほぼ中央に存在する顔存在画像と、それ以外の画像の顔不在画像を想定し、入力された画像データに対し、上記２つのカテゴリのいずれであるかを識別する方法の例として説明した。
【００５３】
（第２の実施形態）
第２の実施形態では、上記第１の実施形態の変形として、入力データとして、２次元画像データを用い、画像中のどの位置に顔があるのかを検出する方法を示す。本実施形態においては、画像中の顔を検出するという処理を行うが、第１の実施形態と同様に、これに限るものではなく、その他の画像パターンや、入力データが音声データであるような場合にも適用可能である。また、複数のカテゴリの対象を検出するような場合においても適用可能である。
【００５４】
本実施形態では、２次元画像データから、階層的特徴抽出により、変動に対して頑健に特定のパターンを検出する方法として、Ｃｏｎvｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ（以下ＣＮＮ）の基本構成に変更を与えて用いる。図７に基本的なＣＮＮの構成を示す。ＣＮＮの基本的な処理について、図７を用いて説明をする。図７において、処理の流れは、左端を入力とし、右方向へ処理をされる。
【００５５】
図７の７１は、入力画像の輝度値等に対応した画素値分布である。また図中、７２、７４、７６、７８は、特徴検出層であり、各層内の、Ｌ７・２１、Ｌ７・２２、Ｌ７・２３、Ｌ７・２４、Ｌ７・４１、Ｌ７・４２、Ｌ７・４３、Ｌ７・４４、Ｌ７・６１、Ｌ７・６２、Ｌ７・８１は、特徴検出細胞面である。一方、７３、７５、７７は、特徴統合層であり、各層内の、Ｌ７・３１、Ｌ７・３２、Ｌ７・３３、Ｌ７・３４、Ｌ７・５１、Ｌ７・５２、Ｌ７・５３、Ｌ７・５４、Ｌ７・７１、Ｌ７・７２は、特徴統合細胞面である。
【００５６】
ＣＮＮでは、特徴検出層と特徴統合層の２つの層をひとつのセットとし、それが階層的に構成されている。特徴検出層内の各特徴検出細胞面は、それぞれある特定の特徴を検出する特徴検出ニューロンを有している。各特徴検出ニューロンは、その特徴検出ニューロンの位置に応じた局所的な範囲で、前段階層の特徴検出結果、つまり特徴検出層７４内の特徴検出ニューロンであればＬ７・３１からＬ７・３４までの特徴抽出結果に、特徴検出層７２内の特徴検出ニューロンであれば、入力画像である７１に、特徴検出細胞面ごとに固有の重み分布で結合されている。
【００５７】
この重みは、第１の実施形態において述べた、エッジを抽出するための微分フィルタや、特定の特徴を抽出するための２次元マスクに対応しており、第１の実施形態で述べたように、事前の知識を利用して設定したり、複数のテストパターンを与えて学習により設定したりすればよい。その他誤差逆伝播法による学習や、Ｈｅｂｂの学習則による自己組織化的な学習など、既知のＮｅｕｒａｌ  Ｎｅｔｗｏｒｋの学習方法を利用して設定しても構わない。
【００５８】
各特徴検出ニューロンは、結合先である各特徴細胞面での特徴抽出結果、もしくは特徴検出層７２であれば入力画像の輝度値等に対して、所定の重みで重み付け加算を行い、その演算結果の値を双曲線正接関数等の非線形関数で変換したものを、当該特徴検出ニューロンの出力値とするようにして特徴の検出を行う。
【００５９】
例えば、Ｌ７・２１は垂直エッジを検出する細胞面であるとすると、入力画像の輝度値に対し、微分フィルタに対応する重み付け加算をＬ７・２１内の各特徴検出ニューロンが行い、入力画像において垂直エッジが存在する位置で、Ｌ７・２１内の特徴検出ニューロンで行った演算結果の値が大きくなり、高い出力値を示す、つまり特徴が検出されるというような構成になる。
【００６０】
その他の特徴検出細胞面に関しても同様に、各特徴検出細胞面に特定の特徴が検出された位置において、特徴検出ニューロンが高い出力値となるようになっている。出力値の演算に関しては、一般的には上記のように非線形変換を行うが、特にこれに限るものではない。
【００６１】
特徴統合層内の各特徴統合細胞面は、それぞれ前段階層である特徴検出層の１つの特徴検出細胞面と結合しており、前段の特徴検出結果に対して局所的な範囲において結合し、特徴検出結果をぼかす（統合）処理を行う、特徴統合ニューロンを有している。各特徴統合ニューロンは、基本的には前述の特徴検出ニューロンと同様の演算を行うが、特定の２次元マスクに対応する重み分布がＧａｕｓｓｉａｎ  ＦｉｌｔｅｒやＬｏｗ−Ｐａｓｓ  Ｆｉｌｔｅｒであることが特徴である。
【００６２】
このような階層的な特徴検出、特徴統合処理を用いて、初期的な特徴から、徐々に高次の特徴を検出し、最終的に入力のカテゴライズをするというのがＣＮＮのネットワーク構造である。上記のような処理により、入力画像から高次特徴を検出することで、特定の画像検出が可能である。ＣＮＮは、階層的な特徴抽出と、特徴統合層のぼかしにより、さまざまなパターンの変動に対して頑健な識別が可能であることが特徴である。
【００６３】
本実施形態においては、上記ＣＮＮを基本的な階層的特徴抽出の処理構成として説明を行う。図８は、本実施形態における処理部の構成を示したものである。また、図９は、本実施形態における処理の流れを示したものである。以下、本実施形態における処理について、図８及び９を用いて説明する。
【００６４】
図８における画像入力部８０１、初期特徴抽出部８０２、局所特徴抽出部８０３、部分特徴抽出部８０４は、それぞれ第１の実施形態における画像入力部２１、初期特徴抽出部２２、局所特徴抽出部２３、部分特徴抽出部２４と同様である。そしてステップＳ９０１〜９０４の処理は、図３におけるステップＳ３０１〜３０４の処理と同様である。
【００６５】
本実施形態では、画像入力部８０１においてＲＧＢカラー画像を用い、ＲＧＢカラー画像をグレースケール画像に変換したものを、次の階層である初期特徴抽出部８０２の入力とする。また、特徴抽出に上記ＣＮＮによる処理を用い、各特徴抽出部では、特徴検出層による特徴検出と、特徴統合層による検出された特徴の統合を行う。局所特徴抽出部８０３、部分特徴抽出部８０４で抽出する特徴の種類は、第１の実施形態と同様のものである。またその各特徴を検出するための、特徴検出細胞面ごとに固有の重み分布も、第１の実施形態で説明した固有の２次元マスクの設定方法と同様に、入力として複数のテストパターンを与え、学習によって設定したものを用いる。
【００６６】
本実施形態では、初期特徴抽出部８０１で抽出する特徴は予め限定した特徴を用いず、局所特徴抽出部８０２で検出する特徴を学習する際に、誤差逆伝播法を用いることによって、局所特徴を検出するための各特徴検出細胞面固有の重み分布を学習するとともに、初期特徴を検出する各特徴細胞面固有の重み分布を自動的に設定するようにしている。これにより、初期特徴抽出部８０１では、局所特徴抽出部８０２で検出する局所特徴を構成する特徴であって、その局所特徴を検出するのに必要である初期特徴を抽出するように、入力画像７１との結合重み分布が自動的に設定することができる。
【００６７】
ステップ９０５では、第１の顔抽出部８０５により、部分特徴抽出部８０４において抽出された、目、口の抽出結果に対して、上記の特徴抽出方法と同様の処理を行い、画像内の顔を抽出する。
【００６８】
顔候補存在判定部８０６では、第１の顔抽出部８０５の出力値が所定の閾値を超えた場合に、そこに顔の候補が存在すると判定し（ステップＳ９０６）、顔候補の個数をＣｏｕｎｔに設定して（ステップＳ９０７）、顔候補があると判定された顔候補存在位置の座標を順次出力し、肌色領域抽出部８０７、及び部分特徴分布判定部８０８に対して起動命令を発する（ステップＳ９０８）。
【００６９】
肌色領域抽出部８０７は、顔候補存在判定部８０６からの起動命令を受け、顔候補存在位置座標に基づく範囲において、入力画像から肌色の領域を抽出する（ステップＳ９０９）。部分特徴分布判定部８０８は、顔候補存在位置座標に基づく範囲における部分特徴抽出結果の分布を判定し（ステップＳ９１０）、上記第１の実施形態と同様に、起動する顔抽出モジュールのフラグをオンする（ステップＳ９１１）。
【００７０】
本実施形態の部分特徴分布判定部８０８は、第１の実施形態の部分特徴分布判定部２５とは異なり、部分特徴抽出部８０４での特徴抽出結果だけでなく、肌色領域抽出部８０７での肌色領域抽出結果も利用して、それらの特徴抽出結果に対して、簡単な分布の分析を行い、複数の変動に対応した顔抽出モジュールから構成される、第２の顔抽出部８０９に対して起動命令を発する処理部である。ちなみに、本実施形態での１つの顔抽出モジュールは、上記ＣＮＮにおける１つの特徴検出細胞面に対応する。
【００７１】
第２の顔抽出部８０９は、上記第１の実施形態と同様に、変動に対応した顔抽出モジュールによる顔抽出を行う。すなわち、順次、フラグがオンになっている顔抽出モジュールによる、顔候補存在位置座標での顔抽出処理を行い、顔抽出を実行した顔抽出モジュールのフラグをオフにする（ステップＳ９１１〜９１４）。
【００７２】
本実施形態における顔抽出処理は、第１の実施形態とは異なり、部分特徴抽出部８０４における処理により抽出された目、口の特徴抽出結果だけでなく、局所特徴抽出部８０３において抽出した、目の上部や口唇上部に相当する特徴抽出結果、及び肌色領域抽出部８０７において抽出した肌色領域抽出結果も用いて、特定変動に対応した顔の抽出を行う。
【００７３】
検出結果出力部８１０では、第２の顔抽出部８０９における顔抽出結果に基づいて、入力画像中のどの位置に顔が存在するかという結果を出力する。すなわち、各モジュールの出力結果を統合し（ステップＳ９１４）、その顔候補存在位置における検出結果を出力し（Ｓ９１５）、次の顔候補存在位置における検出へループする（ステップＳ９１７〜９１８）。
【００７４】
本実施形態での、第１の顔抽出部８０５以降の各処理部での詳細な処理について以下に説明する。
【００７５】
第１の顔抽出部８０５で行う顔の抽出処理は、局所特徴抽出部８０３や部分特徴抽出部８０４での特徴抽出処理と同様である。ここでの顔抽出は、第１の実施形態における顔抽出部２６のように、変動に対応した複数の顔抽出モジュールを持っておらず、１つのモジュールのみで構成されている。また本実施形態では、第１の実施形態とは異なり、画像内のどの位置に顔があるのかを検出するため、画像の中央付近においてのみ顔の抽出を行うのではなく、画像の各位置において顔抽出を行う。
【００７６】
ここで抽出処理に用いる、各顔検出ニューロンの部分特徴抽出部８０４において抽出された部分特徴抽出結果に結合する固有の重み分布は、様々な変動のある顔、つまり図４の（i）から（iv）に示すような様々な変動を有する顔をテストデータとして与えた学習によって設定を行っている。このように学習することで、顔でないものを顔と判定する可能性が高くなる等、精度としては低くなるが、単独のモジュールで様々な変動のある顔を抽出することが可能になる。この処理部では、上記のように学習した重み分布を用い特徴検出を行って、その結果を特徴統合層により統合する。
【００７７】
顔候補存在判定部８０６では、第１の顔抽出部８０５における顔抽出処理の結果に対して、所定の閾値以上の出力である部分を判定する。そして、判定された位置に顔の候補が存在するとして、その候補が存在する範囲において、肌色部分特徴分布判定部８０７、及び部分特徴分布判定部８０８の処理を行うように起動命令を発する。
【００７８】
肌色領域抽出部８０７は、顔候補存在判定部８０６からの起動命令を受け、顔の候補が存在する範囲付近において、肌色領域の抽出を行う。本実施形態では、肌色領域の抽出を行う領域において、ＲＧＢカラー入力画像を、ＨＳV表色系に変換し、特定の色相（Ｈ）の範囲の画素のみを肌色領域として抽出するようにする。肌色領域抽出の方法に関しては、これに限るものではなく、一般に知られたその他の方法でも構わない。例えば、彩度（Ｓ）や輝度（V）を利用して抽出するようにしてもよい。また、本実施形態では肌色領域を抽出したが、これ以外にも髪の毛の領域等を抽出するなどしてもよい。
【００７９】
部分特徴分布判定部８０８は、第１の実施形態における部分特徴分布判定部２５と同様の処理を行う。本実施形態では、肌色領域抽出部８０７と同様に、顔候補存在判定部８０６からの起動命令を受け、顔の候補が存在する範囲付近において、所定の特徴抽出結果の分布の分析を行う。そしてその結果に応じて、複数の特定の変動に対応した顔抽出モジュールから構成される、第２の顔抽出部８０９の所定の顔抽出モジュールを選択し、顔候補存在位置において顔抽出処理を行うように起動命令を与える。
【００８０】
部分特徴分布判定部８０６により分析を行う特徴抽出結果は、部分特徴抽出部８０４により抽出された目、口の抽出結果、及び肌色領域抽出部８０７による肌色領域抽出結果である。ここで行う分析は、第１の実施形態において説明したものと同様であり、第２の顔抽出部８０９を構成する、変動に対応した各モジュールが、顔が存在する場合に満足すべき必要条件を抽出する処理を行う。
【００８１】
本実施形態では、第１の実施形態とは異なり、肌色領域抽出結果を用いるので、その結果に対する分析のいくつかを挙げる。いちばん簡単な例としては、抽出された肌色領域の面積を分析するものがある。その他、肌色として抽出された領域の縦横比を分析したり、顔候補が存在すると判定された領域の、上半分の肌色抽出領域の重心位置と、下半分の肌色抽出領域の重心位置の相対位置関係を分析したりしてもよい。
【００８２】
例えば１番目に挙げた例は、その面積に応じて、特定のサイズの顔抽出モジュールにおける必要条件の１つになる。また、２番目の例は、顔の横振りや縦振りに対応したモジュール、３番目の例は、顔の面内回転に対応したモジュールにおける必要条件の１つとして設定することができる。また、部分特徴抽出部８０４により抽出された、部分特徴抽出結果を用い、目が抽出された領域の面積と、肌色領域の面積の比較や、逆に目が抽出されていない領域と肌色領域の面積の比較、さらに目が抽出されていない領域と肌色でない領域の面積の比較といった分析を行ってもよい。
【００８３】
上記のような面積等の分析においても、第１の実施形態において述べたように、特定の領域内においてのみ分析をするようにしてもよい。例えば、髪の毛の位置と思われる領域で、肌色ではない領域の面積の分析を行うようにしてもよい。第１の実施形態で行ったような、目、口の抽出結果に関する分析に加え、上記のような分析を追加することで、より精度の高い起動命令を発することが可能になる。
【００８４】
第２の顔抽出部８０９は、第１の実施形態の顔抽出部２６と同様の処理部であり、特定の変動に対応した複数の顔抽出モジュールから構成されている。本実施形態では、第１の実施形態とは異なり、部分特徴抽出部８０４による目、口の抽出結果だけでなく、肌色領域抽出部８０７による肌色抽出結果、第１の顔抽出部８０５による、様々な変動のある顔の抽出結果、及び局所特徴抽出部８０３により抽出された特徴の内、目の上部や口唇上部に相当する特徴抽出結果を用いて、顔候補存在位置において顔抽出を行う。
【００８５】
このように、直前の階層の特徴抽出結果だけでなく、同レベルの特徴である、同階層内の特徴抽出結果（ここでは第１の顔抽出結果）や、階層的特徴抽出の枠組みの外部から挿入した特徴抽出結果（ここでは肌色領域抽出結果）、直前の階層以前の階層における特徴抽出結果（ここでは目の上部や口唇上部に相当する特徴抽出結果）、さらに後述の第３の実施形態において説明を行う、後段階層の特徴抽出結果等を、特徴抽出の際に補助的に用いることで、特徴抽出の精度を高めることができる。このようにすることにより、処理コストは増加するが、部分特徴分布判定部８０８から起動命令を受けたモジュールの、顔候補が存在する位置でのみ、第２の顔抽出部８０９の特徴抽出処理を行うため、処理コストの増加は最低限で抑えることができる。
【００８６】
検出結果出力部８１０は、第１の実施形態における検出結果出力部２７と同様の処理部であり、第２の顔抽出部８０９を構成する、複数の変動に対応した顔抽出モジュールの内、部分特徴判定部８０８からの起動命令により特徴抽出処理を行った結果から、画像中のどの位置に顔が存在するのかを判定して、その結果を出力する。ここでも、第１の実施形態で説明したのと同様に、複数のモジュールの出力を統合することで、精度の高い検出が可能になる。
【００８７】
以上、第２の実施形態は、入力データとして２次元画像データを用い、その画像内において、ある特定の対象を検出する方法において、顔を検出対象とする例を説明した。
【００８８】
（第３の実施形態）
本発明の第３の実施形態は、上記第２の実施形態を変形したものである。本実施形態も、第２の実施形態と同様に、画像中の顔を検出するという処理を行うが、これに限るものではなく、その他の画像パターンや音声データにも適用可能である。また、複数のカテゴリの対象を検出するような場合にも適用可能である。
【００８９】
図１０は、本実施形態における処理部の構成を示したものである。また、図１１は、本実施形態における処理の流れを示したものである。本実施形態の基本的な処理の構成は第２の実施形態において説明したものと同様である、以下、本実施形態における処理について、図１０を用いて説明する。
【００９０】
図１０の画像入力部１００１から肌色領域抽出部１００７までによる処理（ステップＳ１１０１〜１１０９）は、第２の実施形態のステップＳ９０１〜９０９とまったく同様のものであるので説明を省略する。
【００９１】
部分特徴分布判定部１００８も第２の実施形態における部分特徴分布判定部８０８と同様の処理であるが、特徴抽出結果の分布の分析結果に応じて、第２の顔抽出部１００９の、複数の変動に対応した顔抽出モジュールに、顔候補存在位置において顔抽出処理を行うように起動命令を与えるとともに、複数の変動に対応した、部分特徴抽出モジュールから構成される、第２の部分特徴抽出部１０１１に対しても、起動命令を発する。すなわち、顔候補存在位置座標に基づく範囲における部分特徴抽出結果の分布を判定し（ステップＳ１１１０）、及び起動する顔抽出モジュールのフラグをオンする（ステップＳ１１１１）。
【００９２】
第２の部分特徴抽出部１０１１は、特定の変動に対応した部分特徴の抽出を行う複数のモジュールから構成されており、部分特徴分布判定部１００８からの起動命令を受け、起動命令を受けたモジュールの、顔候補存在位置によって決まる特定の位置でのみ、部分特徴の再抽出を行う。すなわち、フラグがオンになっている顔抽出モジュールに対応した部分特徴抽出モジュールがあれば、顔候補存在位置座標によって定まる位置における部分特徴抽出処理を行う（ステップＳ１１１３〜１１１４）。
【００９３】
第２の顔抽出部１００９は、第２の実施形態の第２の顔抽出部８０９とほぼ同様の処理部である。ただし、第２の部分特徴抽出部１０１１により、ここで起動される顔抽出モジュールに対応した、部分特徴の再抽出が行われた場合は、第２の部分特徴抽出部１０１１で抽出された特徴を用いて顔抽出を行う。すなわち、フラグがオンになっている顔抽出モジュールにより、顔候補存在位置で顔抽出を行い、顔抽出を実行した顔抽出モジュールのフラグをオフにする（ステップＳ１１１５〜１１１６）。
【００９４】
検出結果出力部１０１０は、第２の実施形態の検出結果出力部８１０とまったく同様であり、ステップＳ１１１７〜１１２０は、第２の実施形態のステップＳ９１５〜９１８とまったく同様のものであるので説明を省略する。
【００９５】
本実施形態における部分特徴分布判定部１００８、第２の部分特徴抽出部１０１１、及び第２の顔抽出部１００９での詳細な処理について以下に説明する。
【００９６】
部分特徴分布判定部１００８は、前述のように、部分特徴の抽出結果の分布を分析する処理に関しては、第２の実施形態と同様である。第２の実施形態では、ここで複数の変動に対応した顔の抽出を行うモジュールに対して起動命令を発したが、さらに起動命令を発した顔抽出モジュールの変動に対応した部分特徴の抽出を行う第２の部分特徴抽出部１０１１に対しても、起動命令を発する。具体的には、例えば時計回り面内回転変動に対応した顔抽出モジュールを起動するように起動命令を発したとき、同時に、同じ変動である時計回り面内回転変動に対応した部分特徴抽出モジュールに対しても、起動命令を発するというようにする。
【００９７】
第２の部分特徴抽出部１０１１は、複数の変動に対応した部分特徴の抽出を行う複数のモジュールにより構成される。ここでは、部分特徴分布判定部１００８からの起動命令を受けた、複数の変動に対応した顔の抽出を行うモジュールに対応した部分特徴抽出モジュールを起動し、顔候補存在判定部１００６の結果として得られる顔候補存在位置によって決まる特定の範囲においてのみ、部分特徴の抽出を行う。特徴の抽出方法は、第２の実施形態において説明したものと同様のものである。
【００９８】
各部分特徴モジュールは、基本的には第２の顔抽出部１００９を構成する、複数の変動に対応した顔抽出モジュールのそれぞれに対応しているが、１対１の対応でなくてもよい。例えば、正面向きの顔抽出モジュールに対応した、部分特徴抽出モジュールは存在しない、などとしてもよい。このようにした場合、正面向きの顔抽出モジュールに対して起動命令が発せられた場合は、第２の部分特徴抽出部１０１１での処理は行わない、というようにすればよい。
【００９９】
さらに、複数種類の顔抽出モジュールに対して、１つの部分特徴抽出モジュールを対応させるというようにしてもよい。例えば、時計回り１５度の面内回転変動に対応する顔抽出モジュールと、時計回り３０度の面内回転変動に対応する顔抽出モジュールとでは、１つのモジュールで両方の変動を含めた抽出を行う部分特徴抽出モジュールを対応させるようにしたりする。
【０１００】
このように、上位の階層レベルの特徴抽出結果出力に基づいて、下位の階層レベルの特徴抽出モジュールの動作を制御するフィードバック機構を導入する。すなわち、第２の顔抽出において起動される、特定の変動に対応する顔抽出モジュールに対応した部分特徴抽出モジュールにより、低次の特徴を再抽出することで、さらに高精度な特徴抽出が可能になる。特徴の再抽出により、処理コストは増加するが、起動命令を受けたモジュールの特定の位置のみで処理を行うため、処理コストの増加は最低限で抑えることができる。
【０１０１】
本実施形態では、この処理部において口の抽出は行わず、変動に対応した目の抽出のみを行っている。さらに高精度な特徴抽出を求めるのであれば、変動に対応した口の抽出を行ってもよいし、部分特徴抽出部１００４で抽出した特徴以外の種類の特徴を抽出するようにしてもよい。
【０１０２】
さらに、ここでの特徴抽出は、部分特徴抽出部１００４とは異なり、局所特徴抽出部１００３で抽出された、局所特徴抽出結果に加えて、部分特徴抽出部１００４において抽出された目、口等の部分特徴抽出結果、及び第１の顔抽出１００５において抽出された、第１の顔抽出結果も利用して、目の抽出を行う。第２の実施形態においても述べたように、同レベルの特徴である同階層内の特徴抽出結果や、上位レベルの特徴である上位階層の特徴抽出結果を補助的に利用することで、さらに精度の高い特徴抽出処理が可能になる。
【０１０３】
第２の顔抽出部１００９は、基本的には、第２の実施形態における、第２の顔抽出部８０９と同様の処理を行う。第２の実施形態での第２の顔抽出部８０９との違いは、第２の部分特徴抽出部１０１１において、起動される顔抽出モジュールに対応する、変動に対応した部分特徴抽出が行われた場合、部分特徴抽出部１００４において抽出された部分特徴抽出結果を用いて顔抽出をするのではなく、第２の部分特徴抽出部１０１１において抽出された変動に対応した部分特徴抽出結果を利用して、顔抽出を行う点にある。
【０１０４】
本実施形態では、第２の部分特徴抽出部１０１１においては、目のみの抽出を行っているため、口の抽出結果は、部分特徴抽出部１００４での抽出結果を用いる。上記の第２の部分特徴抽出部１０１１において説明したように、例えば、正面向きの顔抽出モジュールに対応する部分特徴抽出モジュールが存在しないという場合、正面向きの顔抽出モジュールに対して起動命令が発せられた時は、第２の部分特徴抽出部１０１１における特徴の再抽出は行われない。
【０１０５】
このような場合は、部分特徴抽出部１００４の特徴抽出結果をそのまま用いるというようにすればよい。本実施形態では、起動される顔抽出モジュールに対応する、変動に対応した部分特徴抽出が行われた場合、部分特徴抽出部１００４により抽出された目の抽出結果は用いないが、さらなる精度向上のため、この特徴抽出結果も補助的に用いるというようにしてもよい。
【０１０６】
以上、第３の実施形態は、第２の実施形態の変形として、入力データとして２次元画像データを用い、その画像内において、ある特定の対象を検出する方法において、顔を検出する例として説明した。
【０１０７】
（第４の実施形態）
本発明の第４の実施形態は、上記第３の実施形態の変形したものである。本実施形態も、第３の実施形態と同様に、画像中の顔を検出するという処理を行うが、これに限るものではなく、その他の画像パターンや音声データにも適用可能である。また、複数のカテゴリの対象を検出するような場合にも適用可能である。
【０１０８】
本実施形態における処理部の構成及び処理の流れに関しては、図１０及び図１１に示した、第３の実施の形態における処理部の構成及び処理の流れと基本的には同様であるので、詳細な説明は省略する。本実施形態は、第３の実施の形態とは、図１０の部分特徴分布判定部１００８の処理に異なる部分があるため、図１０及び図１１を用いてこれを説明する。
【０１０９】
本実施形態における部分特徴分布判定部１００８は、第３の実施形態の部分特徴分布判定部１００８とほぼ同様の処理であるが、特徴抽出結果の分布の分析（ステップＳ１１１０）の処理内容が、第３の実施形態とは少々異なる。この処理の詳細は後に述べる。部分特徴分布判定部１００８のもう１つの処理である起動命令を発する処理（ステップＳ１１１１）に関しては、第３の実施形態と同様である。
【０１１０】
本実施形態における部分特徴分布判定部１００８での、特徴抽出結果の分布の分析（ステップＳ１１１０）の詳細な処理について以下に説明する。
【０１１１】
部分特徴分布判定部１００８での特徴抽出結果の分布の分析処理では、第３の実施形態と同様に、部分特徴抽出部１００４において抽出された目・口等の特徴検出結果の分布の分析を行うが、起動命令の精度の向上のため、分布の重心や尤度の総和値のみでなく、特徴検出結果の分布に対して所定のフィルタを用いてフィルタリングを行った結果も用いる。また、分布の分析を行う特徴抽出結果に関しても、部分特徴抽出部１００４における特徴検出結果と、肌色領域抽出部１００７における特徴抽出結果だけでなく、初期特徴抽出部１００２、局所特徴抽出部１００３での特徴抽出結果も用い、さらに入力画像も１つの特徴抽出結果とみなして用いる。
【０１１２】
図１３は、ステップＳ１１１０において行う、特徴検出結果の分布に対して所定のフィルタを用いたフィルタリングの処理フローを示したものである。このフィルタリングに関して図１３を用いて説明する。
【０１１３】
まず対象となる特徴検出結果（例えば目検出結果や、局所特徴検出結果の１つや、入力画像等）を選択する（ステップＳ１３０１）。次に、その特徴検出結果の所定の領域を切り出す（ステップＳ１３０２）。次いで、ステップＳ１３０２で切り出した領域に対応するフィルタを、フィルタデータベース１３０３から選択する（ステップＳ１３０４）。そして、選択したフィルタを用いて切り出した領域に対してフィルタ演算を行う（ステップＳ１３０５）。この時のフィルタ演算値を特徴検出結果の分布の分析結果として用いる。本実施形態では、ステップＳ１３０５のフィルタ演算は、線形フィルタ演算を行うが、例えばフィードフォワード型のニューラルネットワークのような、多段非線形フィルタリング等を用いても良い。
【０１１４】
ステップＳ１３０５のフィルタ演算と、そのフィルタ演算に用いる、ステップＳ１３０４において選択したフィルタについて具体的に説明する。例えばステップＳ１３０２において特徴検出結果から切り出した領域が矩形であり、それが１０×１０の要素を有するものだとする。この時、本実施形態のフィルタ演算に用いるフィルタは、切り出したサイズと同じサイズの１０×１０の要素から構成されるフィルタとなる。そして、フィルタ演算では、この１０×１０の要素から構成されるフィルタと、切り出した１０×１０の要素の特徴検出結果との、それぞれ対応する要素の積をとり、それぞれの積の和を求めるという演算を行い、その結果を特徴検出結果の分布の分析結果とする。つまり、切り出した領域の要素を並べた１０×１０＝１００次元のベクトルと、同じくフィルタの要素を並べた１０×１０＝１００次元のベクトルとの内積演算を行い、その内積値を特徴検出結果の分布の分析結果とする。このフィルタ演算で用いるフィルタは、起動命令を発するモジュールにおいて検出すべき特徴カテゴリのパターンと、そうではないパターンとをできるだけ分離できるフィルタを用いるのが好適である。
【０１１５】
上記フィルタ演算で用いるフィルタの作成方法に関して具体的に説明する。本実施形態では、起動命令を発するモジュールにおいて所定の変動の顔を検出するので、まずその所定の変動である顔画像と、そうではないパターンとの２クラスの画像を、それぞれ複数用意する。そして、これらのパターンに対して、部分特徴抽出部１００４までの処理を行い、上記所定の特徴検出結果の所定の領域を切り出して、これらを学習サンプルセットとする。
【０１１６】
次いで、それぞれのクラスから作られた学習サンプルセットを用いて、２クラスを分離する識別面を線形判別法により求め、その識別面の法線ベクトルをフィルタとして用いる。このようなフィルタを用いてフィルタ演算を行うことで、そのフィルタ値は、あるパターンを２クラスのどちらかに分離するのに好適な代表値として扱えるため、このフィルタ値に対して評価を行うことで、精度の高い起動命令を発することができる。このようにして予め作成したフィルタを、フィルタデータベース１３０３に格納しておき、実際の処理の際に参照してフィルタ値を求めるようにする。
【０１１７】
上記説明では、所定の変動である顔画像と、そうでないパターンの画像とを分離するフィルタを作成したが、例えば、複数の所定の変動である顔画像、つまり複数の特徴カテゴリである画像と、そうではないパターンの画像、例えば顔ではない画像との２クラスの画像を複数用意して、同様の手法によりフィルタを作成することで、精度は下がるが、複数のカテゴリにおいて共通に使用できる分析結果を得るようにすることもできる。
【０１１８】
本実施形態では、線形フィルタとして、線形判別法を用いて生成したフィルタを用いたが、これに限るものではなく、例えば最小２乗学習等により、分離度の高いフィルタを構成するようにしても良い。また線形フィルタでない場合も、分離度が高くなるようなフィルタを用いるようにすれば良い。
【０１１９】
次に、これらの分析結果から、起動するモジュールを決定する手法に関して詳細に説明する。第３の実施形態では、そのモジュールが満たすべき必要条件を決めておき、それを満たすかどうかによって起動命令を発していた。これと同様に、例えばあるフィルタ値が所定値以上であるというような条件を予め設定しておき、それらに基づいて起動命令を発するようにしても良いが、本実施形態においては、各フィルタ値や、重心分析位置等の複数の分析結果を総合的に判定して、起動命令を発するか否かの判定を行う。本実施形態におけるこの処理の流れを図１４に示す。以下、図１４を用いてこの処理の詳細について説明する。
【０１２０】
本実施形態では、総合的に判定する手法として、まず各分析結果の値（例えば上記フィルタ値や、所定特徴の重心位置のｘ座標、ｙ座標、特徴検出レベルの累積値等）を単純に並べたベクトルを生成する（ステップＳ１４０１）。次いで、そのベクトルと、起動命令を発する対象であるモジュールごとに特有な、いわゆる辞書データとなるベクトルと、マハラノビス距離を算出するための逆行列を辞書データベース１４０２から選択する（ステップＳ１４０３）。そして、ステップＳ１４０３において選択したベクトルと、ステップＳ１４０１において生成したベクトルのマハラノビス距離を、ステップＳ１４０３において選択した逆行列を利用して算出する（ステップＳ１４０４）。最後に、ステップＳ１４０４で求めた距離が所定閾値以内であれば、そのモジュールに対して起動命令を発する（ステップＳ１４０５）という処理を行う。
【０１２１】
ここで用いる辞書データであるベクトルは、各カテゴリの平均ベクトルデータであり、当該カテゴリの複数の画像のそれぞれから、上記各分析結果の値を算出し、それを上記と同様に単純に並べたベクトルを生成して、その平均を求めることにより予め生成しておく。また、マハラノビス距離の算出のための逆行列は、各カテゴリのベクトル分布に関する分散共分散行列の逆行列であり、当該カテゴリの複数の画像のそれぞれから生成したベクトルと、それらのベクトルの平均を用いて、分散共分散行列を生成し、その逆行列を予め求めておく。検出の際には、この平均ベクトルと逆行列とを利用して、マハラノビス距離を求めるようにする。
【０１２２】
本実施形態では、マハラノビス距離を利用して起動するか否かの判定を行うが、この方法に限るものではなく、例えば単純なユークリッド距離を用いて判定したり、線形や非線形の判別分析を利用したり、ニューラルネットワークを用いて判定したりするようにしても構わない。
【０１２３】
上記のように、本実施形態では、特徴検出結果分布の分析において、分析対象である特徴検出結果を、部分特徴検出結果以外の特徴検出結果や入力画像まで利用するように拡張した。さらにそれらの特徴検出結果に対して所定のフィルタを用いたフィルタ演算を行い、そのフィルタ値を分析結果として、重心位置等の第３の実施形態における分析結果に追加した。さらに起動命令を発するか否かの判定において、各分析結果が必要条件を満たすかどうかを判定するだけでなく、上記のような各分析結果を総合的に判定できる判定処理を用いるようにした。これにより、精度の高い起動命令を発することができるようになり、全体の検出精度を向上させることができる。
【０１２４】
以上、第４の実施形態は、第３の実施形態の変形として、入力データとして２次元画像データを用い、その画像内において、ある特定の対象を検出する方法において、顔を検出する例として説明した。
【０１２５】
＜ソフトウエアなどによる他の実施形態＞
本発明は、複数の機器（例えばホストコンピュータ、インターフェース機器、リーダ、プリンタ等）から構成されるシステムの一部として適用しても、ひとつの機器（たとえば複写機、ファクシミリ装置）からなるものの一部に適用してもよい。
【０１２６】
また、本発明は上記実施形態を実現するための装置及び方法及び実施形態で説明した方法を組み合わせて行う方法のみに限定されるものではなく、上記システムまたは装置内のコンピュータ（ＣＰＵあるいはＭＰＵ）に、上記実施形態を実現するためのソフトウエアのプログラムコードを供給し、このプログラムコードに従って上記システムあるいは装置のコンピュータが上記各種デバイスを動作させることにより上記実施形態を実現する場合も本発明の範疇に含まれる。
【０１２７】
またこの場合、前記ソフトウエアのプログラムコード自体が上記実施形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、具体的には上記プログラムコードを格納した記憶媒体は本発明の範疇に含まれる。
【０１２８】
この様なプログラムコードを格納する記憶媒体としては、例えばフロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【０１２９】
また、上記コンピュータが、供給されたプログラムコードのみに従って各種デバイスを制御することにより、上記実施形態の機能が実現される場合だけではなく、上記プログラムコードがコンピュータ上で稼働しているＯＳ（オペレーティングシステム）、あるいは他のアプリケーションソフト等と共同して上記実施形態が実現される場合にもかかるプログラムコードは本発明の範疇に含まれる。
【０１３０】
更に、この供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施形態が実現される場合も本発明の範疇に含まれる。
【０１３１】
図１２は、本発明を実現する情報処理装置のブロック構成例を示す図である。同図に示すように、この情報処理装置は、ＣＰＵ１２０１、ＲＯＭ１２０２、ＲＡＭ１２０３、ＨＤ（ハードディスク）１２０４、ＣＤ１２０５、ＫＢ（キーボード）１２０６、ＣＲＴ１２０７、カメラ１２０８、ネットワークのインターフェース（Ｉ／Ｆ）１２０９が、バス１２１０を介して互いに通信可能に接続されて構成されている。
【０１３２】
ＣＰＵ１２０１は、情報処理装置全体の動作制御を司るものであり、ＨＤ（ハードディスク）１２０４等から処理プログラム（ソフトウェアプログラム）を読み出して実行することで、情報処理装置全体を制御する。
【０１３３】
ＲＯＭ１２０２は、プログラムやプログラム内で用いられる各種データ等を記憶する。
【０１３４】
ＲＡＭ１２０３は、ＣＰＵ１２０１での各種処理のために、一時的に処理プログラムや処理対象の情報を格納するための作業用エリア等として使用される。
【０１３５】
ＨＤ１２０４は、大容量記憶装置の一例としての構成要素であり、モデルデータなどの各種データ、あるいは各種処理の実行時にＲＡＭ１２０３等へ転送される処理プログラム等を保存する。
【０１３６】
ＣＤ（ＣＤドライブ）１２０５は、外部記憶媒体の一例としてのＣＤ（ＣＤ−Ｒ）に記憶されたデータを読み込み、また、当該ＣＤへデータを書き出す機能を有する。
【０１３７】
キーボード１２０６は、情報処理装置に対する各種指示等をユーザが入力するための操作部である。
【０１３８】
ＣＲＴ１２０７は、ユーザへの各種指示情報や、文字情報或いは画像情報等の各種情報の表示を行う。
【０１３９】
カメラ１２０８は、識別対象画像を撮像して入力する。
【０１４０】
インターフェース１２０９は、ネットワークから情報を取り込んだり、ネットワークへ情報を発信したりするために用いられる。
【図面の簡単な説明】
【０１４１】
【図１】第１の実施形態にかかるパターン識別装置の基本構成を示す図である。
【図２】第１の実施形態におけるパターン識別装置の機能構成を示す図である。
【図３】第１の実施形態における処理の流れを示すフローチャートである。
【図４】第１の実施形態における、識別カテゴリとしての顔存在画像を示す図である。
【図５】４種類の初期特徴抽出結果を示す図である。
【図６】抽出すべき各局所特徴の存在する位置における、各初期特徴抽出結果を示す図である。
【図７】基本的なＣｏｎvｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋの構成を示す図である。
【図８】第２の実施形態におけるパターン識別装置の機能構成を示す図である。
【図９】第２の実施形態における処理の流れを示すフローチャートである。
【図１０】第３の実施形態におけるパターン識別装置の機能構成を示す図である。
【図１１】第３の実施形態における処理の流れを示すフローチャートである。
【図１２】本発明を実現するコンピュータのブロック構成を示す図である。
【図１３】特徴検出結果の分布に対するフィルタリング処理の流れを示すフローチャートである。
【図１４】起動命令を発するか否かを判定する処理の流れを示すフローチャートである。
【図１】
0004827403.tif 000002
【図２】
0004827403.tif 000003
【図３】
0004827403.tif 000004
【図４】
0004827403.tif 000005
【図５】
0004827403.tif 000006
【図６】
0004827403.tif 000007
【図７】
0004827403.tif 000008
【図８】
0004827403.tif 000009
【図９】
0004827403.tif 000010
【図１０】
0004827403.tif 000011
【図１１】
0004827403.tif 000012
【図１２】
0004827403.tif 000013
【図１３】
0004827403.tif 000014
【図１４】
0004827403.tif 000015