(57)【特許請求の範囲】
【請求項１】
学習用画像データについて複数種類の特徴量のそれぞれの分布を判定する分布判定手段と、
前記複数種類の特徴量のそれぞれの分布に基づいて、当該特徴量の種類毎に、該特徴量を算出すべき位置を指定する走査パターンを決定する決定手段と、
識別用画像データにおいて、前記複数種類の特徴量のそれぞれを、当該特徴量の種類毎に決定された前記走査パターンにより指定された位置から算出する算出手段と、
算出された前記複数種類の特徴量に基づいて、前記識別用画像データにおける所定パターンの位置を判定する位置判定手段とを有することを特徴とするパターン識別装置。
【請求項２】
前記算出手段は、算出の処理を階層的に行い、
前記決定手段は、階層毎に前記走査パターンを決定することを特徴とする請求項１に記載のパターン識別装置。
【請求項３】
前記走査パターンは、一定方向について所定の間隔で走査するパターンであり、
前記決定手段は、前記分布判定手段により判定された分布が特定の方向性を有する場合に、当該方向性と類似する方向について所定の間隔で走査するパターンを前記走査パターンに決定することを特徴とする請求項１に記載のパターン識別装置。
【請求項４】
学習用画像データについて複数種類の特徴量のそれぞれの分布を判定する分布判定工程と、
前記複数種類の特徴量のそれぞれの分布に基づいて、当該特徴量の種類毎に、該特徴量を算出すべき位置を指定する走査パターンを決定する決定工程と、
識別用画像データにおいて、前記複数種類の特徴量のそれぞれを、当該特徴量の種類毎に決定された前記走査パターンにより指定された位置から算出する算出工程と、
算出された前記複数種類の特徴量に基づいて、前記識別用画像データにおける所定パターンの位置を判定する位置判定工程とを有することを特徴とするパターン識別方法。
【請求項５】
請求項４に記載のパターン識別方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパターン識別装置、パターン識別方法及びプログラムに関し、特に、画像データ等の多次元データに含まれる所定のパターンを識別するために用いて好適な技術に関する。
【背景技術】
【０００２】
パターン識別において、幾何学的な変形や照明条件等の変動に対してロバストな特徴抽出を高速に処理することは、性能を律する重要なタスクである。特許文献１、２及び非特許文献１、２には、変動に対して頑健な特徴抽出手法として知られるConvolutional Neural Networks（以下、ＣＮＮ）を用いたパターン識別装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第２９２３９１３号公報
【特許文献２】特開２００２−８０３３号公報
【非特許文献】
【０００４】
【非特許文献１】Yann LeCun, Koray Kavukvuoglu and Clement Farabet: Convolutional Networks and Applications in Vision, Proc. International Symposium on Circuits and Systems (ISCAS'10), IEEE, 2010
【非特許文献２】Y. Simard, Patrice, D. Steinkraus, and J. C. Platt, "Best practices for  convolutional neural networks applied to visual document analysis," in  ICDAR'03.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１、２及び非特許文献１に開示されているように、ＣＮＮでは、特長抽出層と呼ばれる複数の異なる特徴抽出処理モジュールの結果を統合し、統合層と呼ばれる統合結果に対して再び特徴抽出処理を行う。そして、統合時はガウシアンフィルタ等の低周波フィルタ処理を行った後にサブサンプリング処理を実行する。ＣＮＮはこの様に特徴抽出処理と統合処理とを階層的に繰り返すことにより所望のパターンをロバストに抽出する。
【０００６】
図２はＣＮＮの構成例を示す図であり、画像中の特定のパターンを識別する場合の一例を示している。２００は入力画像データであり、２０１ａ〜ｃはコンボリューション演算のラスタスキャンにより得られる特徴量を格納する画像面としての第一階層の特徴抽出面である。２０２ａ〜ｃはガウシアンフィルタにより算出された平滑化特徴量を格納する画像面としての第一階層の統合面である。２０３ａ〜ｃは第二階層の特徴抽出面であり、２０４は識別対象パターンの存在確率に相当する尤度マップとしての判定層である。
【０００７】
また、判定層２０４は２次元コンボリューションカーネルを模式的に表しており、画像データ２００に対して所定の空間フィルタ演算を実行する。第一階層の特徴抽出面２０１ａ〜ｃは画像データ２００に対して空間フィルタ演算を実行した結果の２次元データである。実際には、第一階層の特徴抽出面２０１ａ〜ｃに対応する異なるコンボリューションカーネルを適用する。また、特徴抽出面への演算結果格納の際、tanh関数等により非線形変換処理する。
【０００８】
ガウシアンカーネル演算２０５は、第一階層の統合面２０２ｃを算出するためのコンボリューションカーネルを模式的に表している。ここではガウシアンカーネル等により平滑化処理を実行する。ここで得られた結果の２次元データが第一階層の統合面２０２ｃとなる。第一階層の統合面２０２ａ、ｂも同様にそれぞれ第一階層の特徴抽出面２０１ａ、ｂから算出する。さらに、サブサンプリング処理しながらガウシアンカーネル演算２０５を実行する。
【０００９】
コンボリューションカーネル２０６は、第一階層の統合面２０２ｃに対して処理する２次元コンボリューションカーネルを模式的に表している。第二階層の特徴抽出面２０３ａ〜ｃは、前階層の統合面２０２ａ〜ｃの全てに対するコンボリューション演算出力結果を非線形変換した値である。従って、ここでは９種類の異なるコンボリューションカーネルが用いられる。
【００１０】
判定層２０４は、第二階層の特徴抽出面２０３ａ〜ｃに対するコンボリューション演算結果の総和となる特徴面であり、画像中に所定のパターンが有るか否かの判定を行うための尤度マップに相当する。２０７は特徴抽出面２０３ｃに対するコンボリューションカーネルである。
【００１１】
ＣＮＮはロバストなパターン抽出処理として知られているが、上記の様に、極めて多数のコンボリューション演算を要し、処理負荷が高い。また、非特許文献２では、高速化のため、平滑化フィルタによる統合面の算出を省略して特徴抽出面のデータを単純にサブサンプリングする構成が開示されているが、サブサンプリングによる情報の欠落により、識別性能が低下する場合がある。特に入力データのコントラストが低く抽出された特徴量のレベルが低い場合影響が大きい。
【００１２】
本発明は前述の問題点に鑑み、ＣＮＮ等のような複数の特徴を利用したパターン識別装置において、性能の劣化を抑えて処理を高速化できるようにすることを目的としている。
【課題を解決するための手段】
【００１３】
本発明のパターン識別装置は、学習用画像データについて複数種類の特徴量のそれぞれの分布を判定する分布判定手段と、前記複数種類の特徴量のそれぞれの分布に基づいて、当該特徴量の種類毎に、該特徴量を算出すべき位置を指定する走査パターンを決定する決定手段と、識別用画像データにおいて、前記複数種類の特徴量のそれぞれを、当該特徴量の種類毎に決定された前記走査パターンにより指定された位置から算出する算出手段と、算出された前記複数種類の特徴量に基づいて、前記識別用画像データにおける所定パターンの位置を判定する位置判定手段とを有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、高速かつ高性能なパターン識別装置を実現することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態に係るパターン識別装置の論理的な構成例を示す図である。
【図２】一般のＣＮＮの構成例を示す図である。
【図３】サブサンプリングパターンを説明する図である。
【図４】特徴面の出力分布の例と好ましいサブサンプリングとの関係の例を示す図である。
【図５】実施形態のパターン識別装置の構成例を示す図である。
【図６】第１の実施形態のＣＮＮ学習処理及びパターン識別処理の手順の一例を示すフローチャートである。
【図７】第２の実施形態のＣＮＮ学習処理の手順の一例を示すフローチャートである。
【図８】第３の実施形態のパターン識別装置の構成例を説明するブロック図である。
【図９】サブサンプリングパターンと特徴抽出結果との対応例を模式的に説明する図である。
【図１０】第５の実施形態において、識別性能評価に基づいてサブサンプリングパターンを決定する処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
（第１の実施形態）
以下、本発明の第１の実施形態の動作について図面を参照しながら説明する。
図１は、本実施形態に係るパターン識別装置の論理的な構成例を示す図である。本実施形態では、画像中の顔や特定の物体等の特定のパターンを検出する場合の例について説明する。
【００１７】
先ず、図１を用いて本実施形態の処理内容について説明する。１００は投入画像である。１０１ａ〜ｃは第１階層の特徴面であり、それぞれ２次元のコンボリューションカーネル１０２ａ〜ｃに基づくコンボリューション演算結果を非線形変換した値を格納する２次元データである。以下の式（１）はここでのコンボリューション演算の演算式である。
【００１８】
【数１】
0005777367.tif 000002
【００１９】
ここで、
input(x,y)：座標（ｘ、ｙ）での参照画素値
output(x,y)：座標（ｘ、ｙ）での演算結果
weight(column, row)：座標（ｘ＋column、ｙ＋row）での重み係数
columnSize, rowSize：フィルタサイズ（フィルタタップ数）
【００２０】
input(x,y)は、投入画像１００の画素値（輝度値）に相当する。ここで得られたoutput(x,y)をtanh()関数等により非線形処理した結果が特徴面１０１ａ〜ｃの値となる。なお、以後、特徴面の値の２次元面上の分布を出力分布と呼ぶ。１０７は第１階層の特徴面１０１ａ〜ｃを算出する際のサブサンプリングパターンである。サブサンプリングパターンとはコンボリューションカーネル演算処理の走査パターンに相当する。つまり、サブサンプリングパターンに従って特徴量算出位置（コンボリューション演算位置）をパターンに応じた間隔で走査する。
【００２１】
図３はサブサンプリングパターンを説明する図である。３０１〜３０３はコンボリューション演算の結果データを模式に説明するものである。また、図３では、水平４画素、垂直４ラインの画像データに対してサブサンプリングを実施した結果を示している。図３において黒塗りの矩形はコンボリューション演算結果を格納する画素位置であり、白塗りの矩形は演算結果を格納しない（演算しない）画素位置を示す。
【００２２】
サブサンプリングパターン０（３０１）はサブサンプリングされていない。従って全画素領域の演算結果が格納されている。サブサンプリングパターン１（３０２）は水平方向に１／２倍のサブサンプリングを実行した結果を模式的に示している。同様に、サブサンプリングパターン２（３０３）は、垂直方向に１／２倍のサブサンプリングを実施した結果を模式的に示している。
【００２３】
図１において、コンボリューションカーネル１０２ａ〜ｃを用いたコンボリューション演算は、サブサンプリングパターン０（１０７）に従って、サブサンプリングすることなく投入画像１００に対して処理を実行する。サブサンプリングパターン０（１０７）は図３のサブサンプリングパターン０（３０１）に示すパターンである。従って第一階層の特徴面１０１ａ〜ｃは、投入画像１００と同じサイズの２次元データである。
【００２４】
次に、第二階層の特徴面１０３ａ〜ｂを算出する。特徴面１０３ａはコンボリューションカーネル１０４ａ、１０４ｃ、１０４ｅを用いてそれぞれ前階層の特徴面に対して実行したコンボリューション演算出力の総和を非線形変換した結果である。ここでのコンボリューション演算式は、以下の式（２）に示すものである。
【００２５】
【数２】
0005777367.tif 000003
【００２６】
ここで、
value(x,y,i)：座標（ｘ、ｙ）での前階層特徴面ｉの参照画素値
output(x,y,)：座標（ｘ、ｙ）での演算結果
weight(column, row,i)：座標（ｘ＋column、ｙ＋row）での前階層特徴面ｉに対する重み係数
columnSize, rowSize：フィルタサイズ（フィルタタップ数）
feature：前階層の特徴面番号
【００２７】
図１に示す例の場合、featureは０から１の整数値をとる。ここで適用するサブサンプリングパターン１（１０８）は、図３のサブサンプリングパターン１（３０２）に示すパターンである。即ち水平方向に１／２倍のサブサンプリング率でコンボリューション演算を実行する。従って特徴面１０３ａは入力画像に対して水平方向の画素数が１／２倍になる。同様に特徴面１０３ｂはコンボリューションカーネル１０４ｂ、１０４ｄ、１０４ｆを使用して、上記式（２）によりその値を算出する。
【００２８】
ここではサブサンプリングパターン２（１０９）を選択する。サブサンプリングパターン２（１０９）は、図３に示すサブサンプリングパターン２（３０３）であり、垂直方向に１／２倍のサブサンプリングを実行する。従って特徴面１０３ｃは入力画像に対して垂直方向のライン数が１／２倍になる。最終特徴面１０５は特徴面１０３ａ、ｂに対してそれぞれコンボリューションカーネル１０６ａ、ｂによりコンボリューション演算した結果である。
【００２９】
ここで、コンボリューションカーネル１０６ａに対しては、サブサンプリングパターン２（１０９）でサブサンプリングしながら演算を実行する。即ち垂直方向に１／２倍された演算結果を得る。同様に、コンボリューションカーネル１０６ｂに対しては、サブサンプリングパターン１（１０８）でサブサンプリングしながら演算し、水平方向に１／２倍された演算結果を得る。
【００３０】
以上の処理により、投入画像に対して水平・垂直共に１／２倍されたサイズの最終特徴面１０５を算出する。ＣＮＮ演算では最終特徴面１０５の出力分布をしきい値処理することで所定のパターンが画像中に存在するか否かを判定する。即ち、最終特徴面１０５内の大きな値の位置を所定パターンの存在位置と判定する。
【００３１】
ここで特徴毎に異なるサブサンプリングパターンを適用する場合の効果について説明する。図４は、特徴面の出力分布の例と好ましいサブサンプリングとの関係の例を示す図である。４０１ａは水平・垂直方向に均等な出力分布であり、４０１ｂ、４０１ｃはそれぞれ水平方向・垂直方向に強い出力分布である。４０２ａ、ｂは１／２倍にサブサンプリングする場合のサブサンプリングパターンであり、４０３ａ〜ｃは１／４倍にサブサンプリングする場合のサブサンプリングパターンである。
【００３２】
ここでの模式形態は図３に記載と同じ意味であり、黒い矩形がコンボリューション演算を実行する位置に相当し、白い矩形が演算しない位置に相当する。ここで出力分布が方向性を有しない出力分布４０１ａである場合、サブサンプリングパターン４０３ａに示す均等なサンプリングでサブサンプリングしても情報が保持される。一方、コンボリューション演算の結果が、例えば出力分布４０１ｂに示す水平方向に偏った出力分布の場合もある。この場合、サブサンプリングパターン４０３ａに示す均等サンプリングやサブサンプリングパターン４０２ｂに示す垂直方向サブサンプリングを行うと、ケース４０４、４０５のように得られる情報が欠落する。
【００３３】
この様な出力分布の偏りは抽出する特徴によって生じる。水平エッジに近い特徴を抽出する場合は、出力分布４０１ｂに示す様な水平方向に偏った分布になり、垂直エッジに近い特徴を抽出する場合は、出力分布４０１ｃに示す様な垂直方向に偏った分布になる。一般的に、抽出する特徴に応じて、分布に偏りを生じることが多い。
【００３４】
図１の場合、特徴面１０３ａが水平方向に強い出力分布を有する前提でサブサンプリングパターン１（１０８）を用いてコンボリューション演算を実行する。また、特徴面１０３ｂは垂直方向に強い出力分布を有する前提でサブサンプリングパターン２（１０９）を用いてコンボリューション演算を実行する。
【００３５】
なお、サブサンプリングパターンは、処理の開始に先立って予め決定する。具体的には、サブサンプリングを行わない状態で特徴面を算出し、その出力分布の形状からサブサンプリングパターンを判定する。形状の判定は目視で判定しても良いし、形状に基づいて計算により算出しても良い。階層的な処理の場合、下位層から順番にサブサンプリングパターンを決定していく。
【００３６】
図５は、本実施形態のパターン識別装置の構成例を示す図である。
５０１は画像入力部である。画像入力部５０１は光学系デバイス、光電変換デバイス及びセンサーを制御するドライバー回路／ＡＤコンバーター／各種画像補正を司る信号処理回路／フレームバッファ等により構成する。５０４はＣＰＵ（Central Processing Unit）であり、本実施形態に係る主要な処理を実行すると共に本装置全体の動作を制御する。５０５はＲＯＭ（Read Only Memory）であり、ＣＰＵ５０４の動作を規定する命令やデータを格納する。
【００３７】
ＲＡＭ（Random Access Memory）５０６はＣＰＵ５０４の動作に必要な作業データ及び画像入力部５０１で取得した画像データを格納する。また、ＲＡＭ５０６はＤＲＡＭ（Dynamic RAM）等の比較的容量の大きいメモリで構成し、図示しないメモリコントローラを介して、ＣＰＵバス５０２に接続する。ＣＰＵ５０４はＲＡＭ５０６に格納した画像データに対してパターン認識処理を実行する。５０３は外部インターフェース部であり、パターン識別結果を出力する場合のインターフェースである。また、外部インターフェース部５０３は、本装置を用いてパターン識別装置を学習する場合のデータインターフェースとしても機能する。
【００３８】
図６（ａ）は、本実施形態のパターン識別装置の学習方法の処理手順の一例を示すフローチャートである。また、図６（ｂ）は、本実施形態のパターン識別処理動作の手順の一例を示すフローチャートである。当該フローチャートはＣＰＵ５０４の動作を示している。また、当該フローチャートを実行するためのプログラムはＲＯＭ５０５に格納されているものとする。
【００３９】
まず、図９（ａ）に示す学習処理について説明する。ステップＳ６０１では、学習する特徴のサブサンプリングは行わない様に設定する。そして、ステップＳ６０２では、コンボリューションカーネルの係数を学習する。ここでの学習は、例えば非特許文献１に記載されているような一般的な勾配降下法を用いた学習等、従来提案されている様々な手法を適用して良い。一般的に、多数の学習用データ（正例・負例の学習データ）を用意して、所定の最適化手法でカーネルの係数を決定する。また、学習用画像やデータは画像入力部５０１及び外部インターフェース部５０３を介して読み込み、ＲＡＭ５０６に格納して処理する。教師有り学習の場合、正解データとして与えた、抽出したいパターンに対してよく出力する係数を学習する。
【００４０】
コンボリューションカーネルの学習が終了すると、ステップＳ６０３で評価用データセットを用いて実際にコンボリューション演算及び非線形変換処理を実行し、特徴面の出力分布を生成する。そして、ステップＳ６０４では、出力分布の形状を計測する。具体的には出力分布４０１ａ〜ｃに示す様な偏りを計測する。出力分布の計測は学習データで正解として与えた位置の出力状況に基づいて分布判定を行う。即ち、特徴面から正解データ付近の局所領域を切り出しその平均的な形状を計測対象の出力分布とする。その形状（分布の方向性）の測定は従来提案されている計測手法によって判定することが可能である。また、人の目視によって判定しても良い。以上の処理により特徴量の出力分布の判定を行う。
【００４１】
次に、ステップＳ６０５では、計測結果に基づいてサブサンプリングパターンを決定する。出力分布及びサブサンプリングパターンは例えば図４に示す関係である。出力分布が出力分布４０１ｂに示すように水平方向の形状の場合、サブサンプリングパターン４０２ａ、４０３ａに示すような水平方向のサブサンプリングパターンを選択する。一方、出力分布が出力分布４０１ｃに示すように垂直方向の形状の場合、サブサンプリングパターン４０２ｂ、４０３ｂに示すような垂直方向のサブサンプリングパターンを選択する。即ち、出力分布が方向性を有する場合、当該方向に類似する方向のサブサンプリングパターンを選択する。
【００４２】
次に、ステップＳ６０６では、学習したコンボリューションカーネル係数やサブサンプリングパターンを所定の書式で記録する。以下の表１には、サブサンプリングパターンの例を示す。
【００４３】
【表１】
0005777367.tif 000004
【００４４】
表１は、結合先特徴（コンボリューション演算を算出する際の参照特徴面）に対する算出対象特徴のサブサンプリングパターンを示している。表１に示す様に算出する特徴毎に、特徴算出時のサブサンプリングパターンを決定し、所定の形式で記録する。
【００４５】
ステップＳ６０７では、以上の処理を同一階層の全特徴に対して処理したか否かを判定し、全特徴に対して処理が終了するまで、ステップＳ６０１に戻り、処理を繰り返す。一つの階層に対する学習が終了すると、ステップＳ６０８において、当該階層の結果を用いて次の階層の学習を行う。そして、全階層に対して処理が終了するまで、ステップＳ６０１に戻り、処理を繰り返す。以上の様に、コンボリューションカーネルの学習と評価に基づいて、サブサンプリングパターンを下位階層から順次決定していく。なお、学習処理はＣＰＵ５０４で処理するのではなく、他の外部処理装置（コンピュータ装置）で処理しても良い。その場合、パターン識別動作に先だって、学習結果を外部インターフェース部５０３を介して装置に取り込む。
【００４６】
次に、図９（ｂ）に示すパターン識別処理の動作について説明する。まず、ステップＳ６０９では、画像入力部５０１を介して識別対象画像データをＲＡＭ５０６に取り込む。そして、ステップＳ６１０では、外部インターフェース部５０３を介して取り込んだ動作パラメータに従ってＣＮＮの結合関係・結合係数を設定する。さらに、ステップＳ６１１では、サブサンプリングパターンを設定する。サンプリングパターンは、例えば表１に示す関係のデータとして記録されたものであり、ステップＳ６１１では当該表に対応するデータから特徴毎にサブサンプリングパターンを設定する。
【００４７】
次に、ステップＳ６１２では、ＣＰＵ５０４はステップＳ６１１設定したサブサンプリングパターンに従ってコンボリューション演算を実行する。そして、ステップＳ６１３では、非線形演算を実行する。ここで、接続する前階層の特徴面が複数ある場合（例えば特徴面１０３ａ等の場合）、対応する前階層の特徴面に対してコンボリューション演算を実行し、その総和を非線形変換処理する。
【００４８】
次に、ステップＳ６１４では、非線形変換処理した結果を特徴面データとしてＲＡＭ５０６に格納する。そして、ステップＳ６１５では、以上の処理を全領域について処理したか否かを判定し、全領域に対して行うまでステップＳ６１０に戻り、処理を繰り返す。これにより１つの特徴面を生成する。
【００４９】
更に、ステップＳ６１６では、以上の処理を全特徴について処理したか否かを判定し、全特徴に対して行うまでステップＳ６１０に戻り、処理を繰り返す。さらに、ステップＳ６１７では、以上の処理を全階層について処理したか否かを判定し、全階層に対して行うまでステップＳ６１０に戻り、処理を繰り返す。これにより最終的な識別のための特徴面を得る。
【００５０】
次に、ステップＳ６１８では、ＣＰＵ５０４は得られた最終特徴面１０５をスキャンして、しきい値を超える位置を所望のパターンが存在する位置と判定する（ステップＳ６１８）。ここで判定した結果を外部インターフェース部５０３を介して外部の装置に送信する。
【００５１】
以上のように本実施形態によれば、ＣＮＮ演算のサブサンプリング時に特徴毎にサブサンプリングパターンを設定することで、サブサンプリングによる情報の欠落を軽減することができる。これにより、高速化を目的として統合層を排除した構成において、識別性能の低下を軽減することが可能になる。
【００５２】
（第２の実施形態）
第１の実施形態では、サブサンプリングの無い状態で学習したＣＮＮ演算器に所定のサブサンプリングパターンによるサブサンプリングを実施する場合に説明した。本実施形態では、サブサンプリング処理を組み込んだＣＮＮ演算器を更に再学習する場合について説明する。なお、本実施形態に係るパターン識別装置の構成例は図５と同様であるため、説明は省略する。
【００５３】
図７は、本実施形態のＣＮＮ学習処理の手順の一例を示すフローチャートである。なお、ステップＳ７０１〜Ｓ７０８はそれぞれ、第１の実施形態で説明した図６（ａ）のステップＳ６０１〜Ｓ６０８と同じであるため説明を省略する。
【００５４】
１つの特徴の学習及びサブサンプリングパターンの決定が終了すると、ステップＳ７０９では、コンボリューションカーネルの再学習を開始する。ここでは、ステップＳ７０５で決定したサブサンプルパターンを用いて学習を行う。即ちステップＳ７０５で決定したサブサンプリングパターンでコンボリューションカーネル演算を実行し、係数を更新学習する。学習は、その初期係数をステップＳ７０２で決定した係数として再学習を行う。ここで使用する学習データはステップＳ７０２で用いた学習データセットと同一でも良いし、更に異なる学習データセットを追加しても良い。また、乱数を使用する学習方式の場合、乱数系列を変えて学習する等の方法でも良い。学習方法も従来提案されている手法が適用可能である。
【００５５】
次に、ステップＳ７１０では、ステップＳ７０９で得られた再学習結果を、特徴を演算する際に必要なコンボリューションカーネル係数としてＲＡＭ５０６に記録保持する。
【００５６】
以上のように本実施形態によれば、サブサンプリングパターンを決定後に、決定したサブサンプリングパターンを用いて追加再学習することでサブサンプリングを行った場合の特徴抽出性能を向上させることができる。
【００５７】
（第３の実施形態）
第１の実施形態ではＣＮＮに適用する場合について説明したが、本実施形態では、これ以外に適用する例について説明する。
図８は本実施形態のパターン識別装置の構成例を説明するブロック図である。本実施形態のパターン識別装置は一般的な複数の特徴抽出器とその結果に基づく判別器とからなる。
８００は識別対象となる画像データである。８０１ａ〜ｃは特徴抽出器であり、画像データから所望の特徴を抽出する。例えば特定の方向のエッジを抽出する、或いは特定の小パターンを抽出する等を目的とする特徴抽出器である。
【００５８】
特徴抽出器８０１ａ〜ｃは、画像データ８００をスキャンしながら予め定める小領域の特徴を抽出する。８０２ａ〜ｃはサブサンプリングパターンを模式的に説明したものであり、図１の１０７〜１０９と同じである。特徴抽出器８０１ａに対しては、サブサンプリングパターン１を適用し、特徴抽出器８０１ｂに対してはサブサンプリングパターン２を適用する。さらに、特徴抽出器８０１ｃに対してはサブサンプリングパターン３を適用する。
【００５９】
そして、指定するサブサンプリングパターンに従ってラスタスキャン動作する。ここで、サブサンプリングパターンの決定方法は第１の実施形態で説明した方法と同様で良い。即ち、特徴毎の出力分布の状態に応じて好適なサブサンプリングパターンを選択する。或いは、予め特徴抽出器の出力分布が予想される場合、その必要もなく予め決定することも可能である。
【００６０】
８０４は判別器であり、特徴抽出器８０１ａ〜ｃの出力ベクトルを連結してＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）等の判別器により前記小領域が所望のパターンであるか否かを判定する。
【００６１】
以上のように本実施形態においても、特徴抽出器の特性に応じてサブサンプリングパターンを選択することで、サブサンプリングによる性能の低下を軽減することが可能になる。
【００６２】
（第４の実施形態）
第１〜第３の実施形態では、画像データから特定のパターンを抽出する場合について説明したが、これに限るわけではない。例えば、人物の行動認識等においては連続する複数の画像データから抽出した特徴に基づいて所定の行動パターンを識別する場合がある。この場合、識別の対象となるデータは時間軸も加えた３次元データとなる。３次元データから特徴を抽出する際にも高速化のためサブサンプリングを実施する。その際、特徴抽出器の結果分布が３次元座標の各座標軸に対して偏りを有する場合、第１の実施形態と同様に、各座標軸に対して非対称なサブサンプリングが有効である。本実施形態では、このような場合の例について説明する。
【００６３】
図９は、サブサンプリングパターンと特徴抽出結果との対応例を模式的に説明する図である。
９００は識別対象データであり、複数の画像データをまとめて３次元データとして表現したものである。座標系のｘは画像データの水平方向、ｙは垂直方向、ｔは時間方向である。９０１は垂直方向にサブサンプリングして特徴抽出した場合のサブサンプリングパターンであり、９０２は水平方向にサブサンプリングして特徴抽出した場合のサブサンプリングパターンである。また、９０３は時間軸方向にサブサンプリングして特徴抽出した場合のサブサンプリングパターンである。
【００６４】
例えば、サブサンプリングパターン９０３は、時間軸方向に偏った出力分布を有する特徴に対して、時間軸方向にサブサンプリングを行った結果の特徴立方体である。このようにサブサンプリングパターン９０１〜９０３はサブサンプリングによって得られる特徴面に相当する特徴立方体である。本実施形態の場合も、第１〜第３の実施形態と同様に、サブサンプリングの無い状態で特徴抽出を実行し、その立方体内の出力分布に基づいてサブサンプリングパターンを決定する。なお、図９は、３次元特徴の場合のサブサンプリングパターンの一例を示しており、２軸以上の方向にサブサンプリングを行うなど、算出する特徴の出力分布に合わせて決定して良い。
【００６５】
以上のように、特徴抽出器の特性に合わせてサブサンプリングを行うことで２次元を超える多次元データ空間内のパターン識別においても識別性能の低下を軽減して高速化することができる。
【００６６】
（第５の実施形態）
第１の実施形態では、特徴面の出力分布に基づいてサブサンプリングパターンを決定する手法について説明したが、本実施形態では、特徴量抽出性能に基づいて決定する例について説明する。この場合、図６に対してステップＳ６０４のみが異なる。具体的には、候補となる全てのサブサンプリングパターンで特徴面をサブサンプリングし、ステップＳ６０４に代わる処理で、それぞれ特徴量抽出性能を判定した上で最も良い性能を示すサブサンプリングパターンを選択する。特徴量抽出性能の判断は、単純なしきい値処理としきい値を超えた値の数の総和等の簡単な手法で実現することができる。
【００６７】
更には、最終パターン識別性能に基づいて決定しても良い。この場合、サブサンプリングを実施しない設定で全ての特徴抽出器を学習後、実際に識別性能を評価しながらサブサンプリングパターンを決定する。
【００６８】
図１０は、識別性能評価に基づいてサブサンプリングパターンを決定する処理手順の一例を示すフローチャートである。
まず、ステップＳ１００１では、候補となるサブサンプリングパターンを選択する。そして、ステップＳ１００２では、選択したサブサンプリングパターンを用いて識別処理を実行し、その識別性能を評価する。識別性能の評価は、評価用のデータセットを用いて評価する。なお、サブサンプリングによって後続（上位の階層）の処理が影響を受ける場合、ここで後続の処理の学習やパラメータの変更を行う。
【００６９】
ステップＳ１００３では、以上の処理を全てのサブサンプリングパターン候補に対して行ったか否かを判定し、全てのサブサンプリングパターン候補に対して行うまで、ステップＳ１００１に戻り、処理を繰り返す。次に、ステップＳ１００４では、サブサンプリングパターン毎の性能評価結果を比較して、対象とする特徴に最も好適なサブサンプリングパターンを決定する。そして、ステップＳ１００５では、その結果をＲＡＭ５０６に記録保持する。ステップＳ１００６では、以上の処理を全ての特徴について行ったか否かを判定し、全ての特徴に対して行うまでステップＳ１００１に戻り、処理を繰り返す。
【００７０】
以上のように本実施形態によれば、識別性能を基準にして、サブサンプリングパターンを特徴毎に順に決定していく。これにより、サブサンプリングによる性能の劣化を軽減して高速な処理を実現することができる。
【００７１】
（その他の実施形態）
前述した各実施形態では、多次元のデータに対する処理について説明したが、音声信号などの１次元信号に対しても同様に適用可能である。また、前述した各実施形態では特徴毎にサブサンプリングパターンを変える場合について説明したが、階層毎に変える方法でも良い。その場合、各階層の特徴面のサイズが同一となるため、上位層でそのサイズを意識して処理する必要がない。また、サブサンプリングパターンは、複数の特徴面の出力分布の平均を使用する、或いは重要度の高い特徴面の出力分布に基づいてする等の手法により決定する。また、第５の実施形態で説明した様にパターン識別性能に基づいて判定しても良い。
【００７２】
さらに、前述した各実施形態では、サブサンプリングの間隔を次元軸毎に変える場合について説明したが、これに限るわけではない。特徴抽出器の特性に合わせた様々なサンプリングパターンを適用することが可能である。例えば、サンプリングの間隔は同じだが、位相が異なる場合も含む。
【００７３】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００７４】
５０４  ＣＰＵ
【図１】
0005777367.tif 000005
【図２】
0005777367.tif 000006
【図３】
0005777367.tif 000007
【図４】
0005777367.tif 000008
【図５】
0005777367.tif 000009
【図６】
0005777367.tif 000010
【図７】
0005777367.tif 000011
【図８】
0005777367.tif 000012
【図９】
0005777367.tif 000013
【図１０】
0005777367.tif 000014