説明

パターン識別装置、パターン識別方法及びプログラム

【課題】CNN等のような複数の特徴を利用したパターン識別装置において、性能の劣化を抑えて処理を高速化できるようにする。
【解決手段】複数の特徴量を算出し、当該複数の特徴量を用いて空間内の特定のパターンを識別するパターン識別装置であって、前記特徴量を算出する算出手段と、前記特徴量を算出する位置を走査する走査手段と、前記走査手段の走査パターンを指定する指定手段とを有し、前記指定手段は、算出する特徴毎に前記走査パターンを指定することを特徴とする装置である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はパターン識別装置、パターン識別方法及びプログラムに関し、特に、画像データ等の多次元データに含まれる所定のパターンを識別するために用いて好適な技術に関する。
【背景技術】
【0002】
パターン識別において、幾何学的な変形や照明条件等の変動に対してロバストな特徴抽出を高速に処理することは、性能を律する重要なタスクである。特許文献1、2及び非特許文献1、2には、変動に対して頑健な特徴抽出手法として知られるConvolutional Neural Networks(以下、CNN)を用いたパターン識別装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第2923913号公報
【特許文献2】特開2002−8033号公報
【非特許文献】
【0004】
【非特許文献1】Yann LeCun, Koray Kavukvuoglu and Clement Farabet: Convolutional Networks and Applications in Vision, Proc. International Symposium on Circuits and Systems (ISCAS'10), IEEE, 2010
【非特許文献2】Y. Simard, Patrice, D. Steinkraus, and J. C. Platt, "Best practices for convolutional neural networks applied to visual document analysis," in ICDAR'03.
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1、2及び非特許文献1に開示されているように、CNNでは、特長抽出層と呼ばれる複数の異なる特徴抽出処理モジュールの結果を統合し、統合層と呼ばれる統合結果に対して再び特徴抽出処理を行う。そして、統合時はガウシアンフィルタ等の低周波フィルタ処理を行った後にサブサンプリング処理を実行する。CNNはこの様に特徴抽出処理と統合処理とを階層的に繰り返すことにより所望のパターンをロバストに抽出する。
【0006】
図2はCNNの構成例を示す図であり、画像中の特定のパターンを識別する場合の一例を示している。200は入力画像データであり、201a〜cはコンボリューション演算のラスタスキャンにより得られる特徴量を格納する画像面としての第一階層の特徴抽出面である。202a〜cはガウシアンフィルタにより算出された平滑化特徴量を格納する画像面としての第一階層の統合面である。203a〜cは第二階層の特徴抽出面であり、204は識別対象パターンの存在確率に相当する尤度マップとしての判定層である。
【0007】
また、判定層204は2次元コンボリューションカーネルを模式的に表しており、画像データ200に対して所定の空間フィルタ演算を実行する。第一階層の特徴抽出面201a〜cは画像データ200に対して空間フィルタ演算を実行した結果の2次元データである。実際には、第一階層の特徴抽出面201a〜cに対応する異なるコンボリューションカーネルを適用する。また、特徴抽出面への演算結果格納の際、tanh関数等により非線形変換処理する。
【0008】
ガウシアンカーネル演算205は、第一階層の統合面202cを算出するためのコンボリューションカーネルを模式的に表している。ここではガウシアンカーネル等により平滑化処理を実行する。ここで得られた結果の2次元データが第一階層の統合面202cとなる。第一階層の統合面202a、bも同様にそれぞれ第一階層の特徴抽出面201a、bから算出する。さらに、サブサンプリング処理しながらガウシアンカーネル演算205を実行する。
【0009】
コンボリューションカーネル206は、第一階層の統合面202cに対して処理する2次元コンボリューションカーネルを模式的に表している。第二階層の特徴抽出面203a〜cは、前階層の統合面202a〜cの全てに対するコンボリューション演算出力結果を非線形変換した値である。従って、ここでは9種類の異なるコンボリューションカーネルが用いられる。
【0010】
判定層204は、第二階層の特徴抽出面203a〜cに対するコンボリューション演算結果の総和となる特徴面であり、画像中に所定のパターンが有るか否かの判定を行うための尤度マップに相当する。207は特徴抽出面203cに対するコンボリューションカーネルである。
【0011】
CNNはロバストなパターン抽出処理として知られているが、上記の様に、極めて多数のコンボリューション演算を要し、処理負荷が高い。また、非特許文献2では、高速化のため、平滑化フィルタによる統合面の算出を省略して特徴抽出面のデータを単純にサブサンプリングする構成が開示されているが、サブサンプリングによる情報の欠落により、識別性能が低下する場合がある。特に入力データのコントラストが低く抽出された特徴量のレベルが低い場合影響が大きい。
【0012】
本発明は前述の問題点に鑑み、CNN等のような複数の特徴を利用したパターン識別装置において、性能の劣化を抑えて処理を高速化できるようにすることを目的としている。
【課題を解決するための手段】
【0013】
本発明のパターン識別装置は、複数の特徴量を算出し、当該複数の特徴量を用いて空間内の特定のパターンを識別するパターン識別装置であって、前記特徴量を算出する算出手段と、前記特徴量を算出する位置を走査する走査手段と、前記走査手段の走査パターンを指定する指定手段とを有し、前記指定手段は、算出する特徴毎に前記走査パターンを指定することを特徴とする。
【発明の効果】
【0014】
本発明によれば、高速かつ高性能なパターン識別装置を実現することができる。
【図面の簡単な説明】
【0015】
【図1】第1の実施形態に係るパターン識別装置の論理的な構成例を示す図である。
【図2】一般のCNNの構成例を示す図である。
【図3】サブサンプリングパターンを説明する図である。
【図4】特徴面の出力分布の例と好ましいサブサンプリングとの関係の例を示す図である。
【図5】実施形態のパターン識別装置の構成例を示す図である。
【図6】第1の実施形態のCNN学習処理及びパターン識別処理の手順の一例を示すフローチャートである。
【図7】第2の実施形態のCNN学習処理の手順の一例を示すフローチャートである。
【図8】第3の実施形態のパターン識別装置の構成例を説明するブロック図である。
【図9】サブサンプリングパターンと特徴抽出結果との対応例を模式的に説明する図である。
【図10】第5の実施形態において、識別性能評価に基づいてサブサンプリングパターンを決定する処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0016】
(第1の実施形態)
以下、本発明の第1の実施形態の動作について図面を参照しながら説明する。
図1は、本実施形態に係るパターン識別装置の論理的な構成例を示す図である。本実施形態では、画像中の顔や特定の物体等の特定のパターンを検出する場合の例について説明する。
【0017】
先ず、図1を用いて本実施形態の処理内容について説明する。100は投入画像である。101a〜cは第1階層の特徴面であり、それぞれ2次元のコンボリューションカーネル102a〜cに基づくコンボリューション演算結果を非線形変換した値を格納する2次元データである。以下の式(1)はここでのコンボリューション演算の演算式である。
【0018】
【数1】

【0019】
ここで、
input(x,y):座標(x、y)での参照画素値
output(x,y):座標(x、y)での演算結果
weight(column, row):座標(x+column、y+row)での重み係数
columnSize, rowSize:フィルタサイズ(フィルタタップ数)
【0020】
input(x,y)は、投入画像100の画素値(輝度値)に相当する。ここで得られたoutput(x,y)をtanh()関数等により非線形処理した結果が特徴面101a〜cの値となる。なお、以後、特徴面の値の2次元面上の分布を出力分布と呼ぶ。107は第1階層の特徴面101a〜cを算出する際のサブサンプリングパターンである。サブサンプリングパターンとはコンボリューションカーネル演算処理の走査パターンに相当する。つまり、サブサンプリングパターンに従って特徴量算出位置(コンボリューション演算位置)をパターンに応じた間隔で走査する。
【0021】
図3はサブサンプリングパターンを説明する図である。301〜303はコンボリューション演算の結果データを模式に説明するものである。また、図3では、水平4画素、垂直4ラインの画像データに対してサブサンプリングを実施した結果を示している。図3において黒塗りの矩形はコンボリューション演算結果を格納する画素位置であり、白塗りの矩形は演算結果を格納しない(演算しない)画素位置を示す。
【0022】
サブサンプリングパターン0(301)はサブサンプリングされていない。従って全画素領域の演算結果が格納されている。サブサンプリングパターン1(302)は水平方向に1/2倍のサブサンプリングを実行した結果を模式的に示している。同様に、サブサンプリングパターン2(303)は、垂直方向に1/2倍のサブサンプリングを実施した結果を模式的に示している。
【0023】
図1において、コンボリューションカーネル102a〜cを用いたコンボリューション演算は、サブサンプリングパターン0(107)に従って、サブサンプリングすることなく投入画像100に対して処理を実行する。サブサンプリングパターン0(107)は図3のサブサンプリングパターン0(301)に示すパターンである。従って第一階層の特徴面101a〜cは、投入画像100と同じサイズの2次元データである。
【0024】
次に、第二階層の特徴面103a〜bを算出する。特徴面103aはコンボリューションカーネル104a、104c、104eを用いてそれぞれ前階層の特徴面に対して実行したコンボリューション演算出力の総和を非線形変換した結果である。ここでのコンボリューション演算式は、以下の式(2)に示すものである。
【0025】
【数2】

【0026】
ここで、
value(x,y,i):座標(x、y)での前階層特徴面iの参照画素値
output(x,y,):座標(x、y)での演算結果
weight(column, row,i):座標(x+column、y+row)での前階層特徴面iに対する重み係数
columnSize, rowSize:フィルタサイズ(フィルタタップ数)
feature:前階層の特徴面番号
【0027】
図1に示す例の場合、featureは0から1の整数値をとる。ここで適用するサブサンプリングパターン1(108)は、図3のサブサンプリングパターン1(302)に示すパターンである。即ち水平方向に1/2倍のサブサンプリング率でコンボリューション演算を実行する。従って特徴面103aは入力画像に対して水平方向の画素数が1/2倍になる。同様に特徴面103bはコンボリューションカーネル104b、104d、104fを使用して、上記式(2)によりその値を算出する。
【0028】
ここではサブサンプリングパターン2(109)を選択する。サブサンプリングパターン2(109)は、図3に示すサブサンプリングパターン2(303)であり、垂直方向に1/2倍のサブサンプリングを実行する。従って特徴面103cは入力画像に対して垂直方向のライン数が1/2倍になる。最終特徴面105は特徴面103a、bに対してそれぞれコンボリューションカーネル106a、bによりコンボリューション演算した結果である。
【0029】
ここで、コンボリューションカーネル106aに対しては、サブサンプリングパターン2(109)でサブサンプリングしながら演算を実行する。即ち垂直方向に1/2倍された演算結果を得る。同様に、コンボリューションカーネル106bに対しては、サブサンプリングパターン1(108)でサブサンプリングしながら演算し、水平方向に1/2倍された演算結果を得る。
【0030】
以上の処理により、投入画像に対して水平・垂直共に1/2倍されたサイズの最終特徴面105を算出する。CNN演算では最終特徴面105の出力分布をしきい値処理することで所定のパターンが画像中に存在するか否かを判定する。即ち、最終特徴面105内の大きな値の位置を所定パターンの存在位置と判定する。
【0031】
ここで特徴毎に異なるサブサンプリングパターンを適用する場合の効果について説明する。図4は、特徴面の出力分布の例と好ましいサブサンプリングとの関係の例を示す図である。401aは水平・垂直方向に均等な出力分布であり、401b、401cはそれぞれ水平方向・垂直方向に強い出力分布である。402a、bは1/2倍にサブサンプリングする場合のサブサンプリングパターンであり、403a〜cは1/4倍にサブサンプリングする場合のサブサンプリングパターンである。
【0032】
ここでの模式形態は図3に記載と同じ意味であり、黒い矩形がコンボリューション演算を実行する位置に相当し、白い矩形が演算しない位置に相当する。ここで出力分布が方向性を有しない出力分布401aである場合、サブサンプリングパターン403aに示す均等なサンプリングでサブサンプリングしても情報が保持される。一方、コンボリューション演算の結果が、例えば出力分布401bに示す水平方向に偏った出力分布の場合もある。この場合、サブサンプリングパターン403aに示す均等サンプリングやサブサンプリングパターン402bに示す垂直方向サブサンプリングを行うと、ケース404、405のように得られる情報が欠落する。
【0033】
この様な出力分布の偏りは抽出する特徴によって生じる。水平エッジに近い特徴を抽出する場合は、出力分布401bに示す様な水平方向に偏った分布になり、垂直エッジに近い特徴を抽出する場合は、出力分布401cに示す様な垂直方向に偏った分布になる。一般的に、抽出する特徴に応じて、分布に偏りを生じることが多い。
【0034】
図1の場合、特徴面103aが水平方向に強い出力分布を有する前提でサブサンプリングパターン1(108)を用いてコンボリューション演算を実行する。また、特徴面103bは垂直方向に強い出力分布を有する前提でサブサンプリングパターン2(109)を用いてコンボリューション演算を実行する。
【0035】
なお、サブサンプリングパターンは、処理の開始に先立って予め決定する。具体的には、サブサンプリングを行わない状態で特徴面を算出し、その出力分布の形状からサブサンプリングパターンを判定する。形状の判定は目視で判定しても良いし、形状に基づいて計算により算出しても良い。階層的な処理の場合、下位層から順番にサブサンプリングパターンを決定していく。
【0036】
図5は、本実施形態のパターン識別装置の構成例を示す図である。
501は画像入力部である。画像入力部501は光学系デバイス、光電変換デバイス及びセンサーを制御するドライバー回路/ADコンバーター/各種画像補正を司る信号処理回路/フレームバッファ等により構成する。504はCPU(Central Processing Unit)であり、本実施形態に係る主要な処理を実行すると共に本装置全体の動作を制御する。505はROM(Read Only Memory)であり、CPU504の動作を規定する命令やデータを格納する。
【0037】
RAM(Random Access Memory)506はCPU504の動作に必要な作業データ及び画像入力部501で取得した画像データを格納する。また、RAM506はDRAM(Dynamic RAM)等の比較的容量の大きいメモリで構成し、図示しないメモリコントローラを介して、CPUバス502に接続する。CPU504はRAM506に格納した画像データに対してパターン認識処理を実行する。503は外部インターフェース部であり、パターン識別結果を出力する場合のインターフェースである。また、外部インターフェース部503は、本装置を用いてパターン識別装置を学習する場合のデータインターフェースとしても機能する。
【0038】
図6(a)は、本実施形態のパターン識別装置の学習方法の処理手順の一例を示すフローチャートである。また、図6(b)は、本実施形態のパターン識別処理動作の手順の一例を示すフローチャートである。当該フローチャートはCPU504の動作を示している。また、当該フローチャートを実行するためのプログラムはROM505に格納されているものとする。
【0039】
まず、図9(a)に示す学習処理について説明する。ステップS601では、学習する特徴のサブサンプリングは行わない様に設定する。そして、ステップS602では、コンボリューションカーネルの係数を学習する。ここでの学習は、例えば非特許文献1に記載されているような一般的な勾配降下法を用いた学習等、従来提案されている様々な手法を適用して良い。一般的に、多数の学習用データ(正例・負例の学習データ)を用意して、所定の最適化手法でカーネルの係数を決定する。また、学習用画像やデータは画像入力部501及び外部インターフェース部503を介して読み込み、RAM506に格納して処理する。教師有り学習の場合、正解データとして与えた、抽出したいパターンに対してよく出力する係数を学習する。
【0040】
コンボリューションカーネルの学習が終了すると、ステップS603で評価用データセットを用いて実際にコンボリューション演算及び非線形変換処理を実行し、特徴面の出力分布を生成する。そして、ステップS604では、出力分布の形状を計測する。具体的には出力分布401a〜cに示す様な偏りを計測する。出力分布の計測は学習データで正解として与えた位置の出力状況に基づいて分布判定を行う。即ち、特徴面から正解データ付近の局所領域を切り出しその平均的な形状を計測対象の出力分布とする。その形状(分布の方向性)の測定は従来提案されている計測手法によって判定することが可能である。また、人の目視によって判定しても良い。以上の処理により特徴量の出力分布の判定を行う。
【0041】
次に、ステップS605では、計測結果に基づいてサブサンプリングパターンを決定する。出力分布及びサブサンプリングパターンは例えば図4に示す関係である。出力分布が出力分布401bに示すように水平方向の形状の場合、サブサンプリングパターン402a、403aに示すような水平方向のサブサンプリングパターンを選択する。一方、出力分布が出力分布401cに示すように垂直方向の形状の場合、サブサンプリングパターン402b、403bに示すような垂直方向のサブサンプリングパターンを選択する。即ち、出力分布が方向性を有する場合、当該方向に類似する方向のサブサンプリングパターンを選択する。
【0042】
次に、ステップS606では、学習したコンボリューションカーネル係数やサブサンプリングパターンを所定の書式で記録する。以下の表1には、サブサンプリングパターンの例を示す。
【0043】
【表1】

【0044】
表1は、結合先特徴(コンボリューション演算を算出する際の参照特徴面)に対する算出対象特徴のサブサンプリングパターンを示している。表1に示す様に算出する特徴毎に、特徴算出時のサブサンプリングパターンを決定し、所定の形式で記録する。
【0045】
ステップS607では、以上の処理を同一階層の全特徴に対して処理したか否かを判定し、全特徴に対して処理が終了するまで、ステップS601に戻り、処理を繰り返す。一つの階層に対する学習が終了すると、ステップS608において、当該階層の結果を用いて次の階層の学習を行う。そして、全階層に対して処理が終了するまで、ステップS601に戻り、処理を繰り返す。以上の様に、コンボリューションカーネルの学習と評価に基づいて、サブサンプリングパターンを下位階層から順次決定していく。なお、学習処理はCPU504で処理するのではなく、他の外部処理装置(コンピュータ装置)で処理しても良い。その場合、パターン識別動作に先だって、学習結果を外部インターフェース部503を介して装置に取り込む。
【0046】
次に、図9(b)に示すパターン識別処理の動作について説明する。まず、ステップS609では、画像入力部501を介して識別対象画像データをRAM506に取り込む。そして、ステップS610では、外部インターフェース部503を介して取り込んだ動作パラメータに従ってCNNの結合関係・結合係数を設定する。さらに、ステップS611では、サブサンプリングパターンを設定する。サンプリングパターンは、例えば表1に示す関係のデータとして記録されたものであり、ステップS611では当該表に対応するデータから特徴毎にサブサンプリングパターンを設定する。
【0047】
次に、ステップS612では、CPU504はステップS611設定したサブサンプリングパターンに従ってコンボリューション演算を実行する。そして、ステップS613では、非線形演算を実行する。ここで、接続する前階層の特徴面が複数ある場合(例えば特徴面103a等の場合)、対応する前階層の特徴面に対してコンボリューション演算を実行し、その総和を非線形変換処理する。
【0048】
次に、ステップS614では、非線形変換処理した結果を特徴面データとしてRAM506に格納する。そして、ステップS615では、以上の処理を全領域について処理したか否かを判定し、全領域に対して行うまでステップS610に戻り、処理を繰り返す。これにより1つの特徴面を生成する。
【0049】
更に、ステップS616では、以上の処理を全特徴について処理したか否かを判定し、全特徴に対して行うまでステップS610に戻り、処理を繰り返す。さらに、ステップS617では、以上の処理を全階層について処理したか否かを判定し、全階層に対して行うまでステップS610に戻り、処理を繰り返す。これにより最終的な識別のための特徴面を得る。
【0050】
次に、ステップS618では、CPU504は得られた最終特徴面105をスキャンして、しきい値を超える位置を所望のパターンが存在する位置と判定する(ステップS618)。ここで判定した結果を外部インターフェース部503を介して外部の装置に送信する。
【0051】
以上のように本実施形態によれば、CNN演算のサブサンプリング時に特徴毎にサブサンプリングパターンを設定することで、サブサンプリングによる情報の欠落を軽減することができる。これにより、高速化を目的として統合層を排除した構成において、識別性能の低下を軽減することが可能になる。
【0052】
(第2の実施形態)
第1の実施形態では、サブサンプリングの無い状態で学習したCNN演算器に所定のサブサンプリングパターンによるサブサンプリングを実施する場合に説明した。本実施形態では、サブサンプリング処理を組み込んだCNN演算器を更に再学習する場合について説明する。なお、本実施形態に係るパターン識別装置の構成例は図5と同様であるため、説明は省略する。
【0053】
図7は、本実施形態のCNN学習処理の手順の一例を示すフローチャートである。なお、ステップS701〜S708はそれぞれ、第1の実施形態で説明した図6(a)のステップS601〜S608と同じであるため説明を省略する。
【0054】
1つの特徴の学習及びサブサンプリングパターンの決定が終了すると、ステップS709では、コンボリューションカーネルの再学習を開始する。ここでは、ステップS705で決定したサブサンプルパターンを用いて学習を行う。即ちステップS705で決定したサブサンプリングパターンでコンボリューションカーネル演算を実行し、係数を更新学習する。学習は、その初期係数をステップS702で決定した係数として再学習を行う。ここで使用する学習データはステップS702で用いた学習データセットと同一でも良いし、更に異なる学習データセットを追加しても良い。また、乱数を使用する学習方式の場合、乱数系列を変えて学習する等の方法でも良い。学習方法も従来提案されている手法が適用可能である。
【0055】
次に、ステップS710では、ステップS709で得られた再学習結果を、特徴を演算する際に必要なコンボリューションカーネル係数としてRAM506に記録保持する。
【0056】
以上のように本実施形態によれば、サブサンプリングパターンを決定後に、決定したサブサンプリングパターンを用いて追加再学習することでサブサンプリングを行った場合の特徴抽出性能を向上させることができる。
【0057】
(第3の実施形態)
第1の実施形態ではCNNに適用する場合について説明したが、本実施形態では、これ以外に適用する例について説明する。
図8は本実施形態のパターン識別装置の構成例を説明するブロック図である。本実施形態のパターン識別装置は一般的な複数の特徴抽出器とその結果に基づく判別器とからなる。
800は識別対象となる画像データである。801a〜cは特徴抽出器であり、画像データから所望の特徴を抽出する。例えば特定の方向のエッジを抽出する、或いは特定の小パターンを抽出する等を目的とする特徴抽出器である。
【0058】
特徴抽出器801a〜cは、画像データ800をスキャンしながら予め定める小領域の特徴を抽出する。802a〜cはサブサンプリングパターンを模式的に説明したものであり、図1の107〜109と同じである。特徴抽出器801aに対しては、サブサンプリングパターン1を適用し、特徴抽出器801bに対してはサブサンプリングパターン2を適用する。さらに、特徴抽出器801cに対してはサブサンプリングパターン3を適用する。
【0059】
そして、指定するサブサンプリングパターンに従ってラスタスキャン動作する。ここで、サブサンプリングパターンの決定方法は第1の実施形態で説明した方法と同様で良い。即ち、特徴毎の出力分布の状態に応じて好適なサブサンプリングパターンを選択する。或いは、予め特徴抽出器の出力分布が予想される場合、その必要もなく予め決定することも可能である。
【0060】
804は判別器であり、特徴抽出器801a〜cの出力ベクトルを連結してSVM(Support Vector Machine)等の判別器により前記小領域が所望のパターンであるか否かを判定する。
【0061】
以上のように本実施形態においても、特徴抽出器の特性に応じてサブサンプリングパターンを選択することで、サブサンプリングによる性能の低下を軽減することが可能になる。
【0062】
(第4の実施形態)
第1〜第3の実施形態では、画像データから特定のパターンを抽出する場合について説明したが、これに限るわけではない。例えば、人物の行動認識等においては連続する複数の画像データから抽出した特徴に基づいて所定の行動パターンを識別する場合がある。この場合、識別の対象となるデータは時間軸も加えた3次元データとなる。3次元データから特徴を抽出する際にも高速化のためサブサンプリングを実施する。その際、特徴抽出器の結果分布が3次元座標の各座標軸に対して偏りを有する場合、第1の実施形態と同様に、各座標軸に対して非対称なサブサンプリングが有効である。本実施形態では、このような場合の例について説明する。
【0063】
図9は、サブサンプリングパターンと特徴抽出結果との対応例を模式的に説明する図である。
900は識別対象データであり、複数の画像データをまとめて3次元データとして表現したものである。座標系のxは画像データの水平方向、yは垂直方向、tは時間方向である。901は垂直方向にサブサンプリングして特徴抽出した場合のサブサンプリングパターンであり、902は水平方向にサブサンプリングして特徴抽出した場合のサブサンプリングパターンである。また、903は時間軸方向にサブサンプリングして特徴抽出した場合のサブサンプリングパターンである。
【0064】
例えば、サブサンプリングパターン903は、時間軸方向に偏った出力分布を有する特徴に対して、時間軸方向にサブサンプリングを行った結果の特徴立方体である。このようにサブサンプリングパターン901〜903はサブサンプリングによって得られる特徴面に相当する特徴立方体である。本実施形態の場合も、第1〜第3の実施形態と同様に、サブサンプリングの無い状態で特徴抽出を実行し、その立方体内の出力分布に基づいてサブサンプリングパターンを決定する。なお、図9は、3次元特徴の場合のサブサンプリングパターンの一例を示しており、2軸以上の方向にサブサンプリングを行うなど、算出する特徴の出力分布に合わせて決定して良い。
【0065】
以上のように、特徴抽出器の特性に合わせてサブサンプリングを行うことで2次元を超える多次元データ空間内のパターン識別においても識別性能の低下を軽減して高速化することができる。
【0066】
(第5の実施形態)
第1の実施形態では、特徴面の出力分布に基づいてサブサンプリングパターンを決定する手法について説明したが、本実施形態では、特徴量抽出性能に基づいて決定する例について説明する。この場合、図6に対してステップS604のみが異なる。具体的には、候補となる全てのサブサンプリングパターンで特徴面をサブサンプリングし、ステップS604に代わる処理で、それぞれ特徴量抽出性能を判定した上で最も良い性能を示すサブサンプリングパターンを選択する。特徴量抽出性能の判断は、単純なしきい値処理としきい値を超えた値の数の総和等の簡単な手法で実現することができる。
【0067】
更には、最終パターン識別性能に基づいて決定しても良い。この場合、サブサンプリングを実施しない設定で全ての特徴抽出器を学習後、実際に識別性能を評価しながらサブサンプリングパターンを決定する。
【0068】
図10は、識別性能評価に基づいてサブサンプリングパターンを決定する処理手順の一例を示すフローチャートである。
まず、ステップS1001では、候補となるサブサンプリングパターンを選択する。そして、ステップS1002では、選択したサブサンプリングパターンを用いて識別処理を実行し、その識別性能を評価する。識別性能の評価は、評価用のデータセットを用いて評価する。なお、サブサンプリングによって後続(上位の階層)の処理が影響を受ける場合、ここで後続の処理の学習やパラメータの変更を行う。
【0069】
ステップS1003では、以上の処理を全てのサブサンプリングパターン候補に対して行ったか否かを判定し、全てのサブサンプリングパターン候補に対して行うまで、ステップS1001に戻り、処理を繰り返す。次に、ステップS1004では、サブサンプリングパターン毎の性能評価結果を比較して、対象とする特徴に最も好適なサブサンプリングパターンを決定する。そして、ステップS1005では、その結果をRAM506に記録保持する。ステップS1006では、以上の処理を全ての特徴について行ったか否かを判定し、全ての特徴に対して行うまでステップS1001に戻り、処理を繰り返す。
【0070】
以上のように本実施形態によれば、識別性能を基準にして、サブサンプリングパターンを特徴毎に順に決定していく。これにより、サブサンプリングによる性能の劣化を軽減して高速な処理を実現することができる。
【0071】
(その他の実施形態)
前述した各実施形態では、多次元のデータに対する処理について説明したが、音声信号などの1次元信号に対しても同様に適用可能である。また、前述した各実施形態では特徴毎にサブサンプリングパターンを変える場合について説明したが、階層毎に変える方法でも良い。その場合、各階層の特徴面のサイズが同一となるため、上位層でそのサイズを意識して処理する必要がない。また、サブサンプリングパターンは、複数の特徴面の出力分布の平均を使用する、或いは重要度の高い特徴面の出力分布に基づいてする等の手法により決定する。また、第5の実施形態で説明した様にパターン識別性能に基づいて判定しても良い。
【0072】
さらに、前述した各実施形態では、サブサンプリングの間隔を次元軸毎に変える場合について説明したが、これに限るわけではない。特徴抽出器の特性に合わせた様々なサンプリングパターンを適用することが可能である。例えば、サンプリングの間隔は同じだが、位相が異なる場合も含む。
【0073】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0074】
504 CPU

【特許請求の範囲】
【請求項1】
複数の特徴量を算出し、当該複数の特徴量を用いて空間内の特定のパターンを識別するパターン識別装置であって、
前記特徴量を算出する算出手段と、
前記特徴量を算出する位置を走査する走査手段と、
前記走査手段の走査パターンを指定する指定手段とを有し、
前記指定手段は、算出する特徴毎に前記走査パターンを指定することを特徴とするパターン識別装置。
【請求項2】
前記算出手段は、算出の処理を階層的に行い、
前記指定手段は、階層毎に前記走査手段の走査パターンを指定することを特徴とする請求項1に記載のパターン識別装置。
【請求項3】
前記算出手段の出力分布を判定する分布判定手段をさらに有し、
前記指定手段は、前記分布判定手段による判定の結果に基づいて特徴毎に前記走査手段の走査パターンを指定することを特徴とする請求項1に記載のパターン識別装置。
【請求項4】
複数の特徴量を算出し、当該複数の特徴量を用いて空間内の特定のパターンを識別するパターン識別方法であって、
前記特徴量を算出する算出工程と、
前記特徴量を算出する位置を走査する走査工程と、
前記走査工程の走査パターンを指定する指定工程とを有し、
前記指定工程は、算出する特徴毎に前記走査パターンを指定することを特徴とするパターン識別方法。
【請求項5】
請求項4に記載のパターン識別方法の各工程をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−208597(P2012−208597A)
【公開日】平成24年10月25日(2012.10.25)
【国際特許分類】
【出願番号】特願2011−72239(P2011−72239)
【出願日】平成23年3月29日(2011.3.29)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】