(57)【要約】【課題】  高速なフィルタ演算を実現する。【解決手段】  複数のフィルタ成分とそれぞれの重みとを用いてフィルタを設定し（Ｓ２０）、フィルタ演算の対象とするフィルタ演算対象データを入力し（Ｓ２２）、前記複数のフィルタ成分の各領域における前記演算対象データの値の総和を算出し、前記フィルタ成分の重みに基づいて、前記各領域の総和の重み付き総和を求める（Ｓ２４）。【選択図】  図２
2009105725.tif 000002
【特許請求の範囲】
【請求項１】
複数のフィルタ成分とそれぞれの重みとを用いてフィルタを設定する設定工程と、
フィルタ演算の対象とするフィルタ演算対象データを入力する入力工程と、
前記複数のフィルタ成分の各領域における前記演算対象データの値の総和を算出する領域総和算出工程と、
前記フィルタ成分の重みに基づいて、前記各領域の総和の重み付き総和を求める重み付き総和算出工程と
を有することを特徴とするフィルタ演算方法。
【請求項２】
前記領域総和算出工程では、前記フィルタ演算対象データを累積型データに変換し、該累積型データに基づいて、前記複数のフィルタ成分の各領域における前記フィルタ演算対象データの値の総和を算出することを特徴とする請求項１に記載のフィルタ演算方法。
【請求項３】
前記フィルタ成分は、所定の領域が１でそれ以外は０であるフィルタであることを特徴とする請求項１または２に記載のフィルタ演算方法。
【請求項４】
前記累積型データは、任意の点における値が、前記フィルタ演算対象データを原点から当該任意の点までの累積した値であることを特徴とする請求項２に記載のフィルタ演算方法。
【請求項５】
請求項１ないし４のフィルタ演算方法において、前記フィルタ演算対象データとして画像データを入力し、
前記重み付き総和に基づいて、当該画像データを所定の複数のクラスのいずれかへ分類する分類工程を有することを特徴とするパターン識別方法。
【請求項６】
前記分類工程では、前記重み付総和を非線形変換し、該非線形変換の結果を用いて分類を行うことを特徴とする請求項５に記載のパターン識別方法。
【請求項７】
前記重み付き総和算出工程においては、前記各領域の総和を順に算出しながら、それぞれの領域に対応した重みを乗じて累積して加算することにより、前記重み付き総和を求めるようにし、当該加算した値が所定の条件を満たした場合に、前記重み付き総和の算出を中断し、前記重み付総和の非線形変換後の値を、所定の値とすることを特徴とする請求項６に記載のパターン識別方法。
【請求項８】
前記所定の条件は、前記加算した値が所定の閾値より大きいもしくは小さいという条件であることを特徴とする請求項７に記載のパターン識別方法。
【請求項９】
前記非線形変換した重み付き総和を新たなフィルタ演算対象データとして用いることを特徴とする請求項７もしくは請求項８に記載のパターン識別方法。
【請求項１０】
複数のフィルタ成分とそれぞれの重みとを用いてフィルタを設定する設定手段と、
フィルタ演算の対象とするフィルタ演算対象データを入力する入力手段と、
前記複数のフィルタ成分の各領域における前記演算対象データの値の総和を算出する領域総和算出手段と、
前記フィルタ成分の重みに基づいて、前記各領域の総和の重み付き総和を求める重み付き総和算出手段と
を有することを特徴とするフィルタ演算装置。
【請求項１１】
請求項１乃至１０に記載の方法をコンピュータに実行させるコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、空間的もしくは時間的な分布を有するフィルタを用いたフィルタ演算方法、またはフィルタ演算を用いたパターン識別方法に関するものである。
【背景技術】
【０００２】
従来から、空間的もしくは時間的フィルタ演算は、多くの技術領域において利用されている。しかし、フィルタ演算には多大な演算コストを要する場合が多い。そのため、処理の高速化を目的とした様々な手法が提案されている。
【０００３】
例えば、予め周波数空間データに変換しておいたフィルタを用い、フィルタ演算対象を、ＦＦＴを用いて周波数空間データに変換し、それらの周波数空間における積を求め、それを逆ＦＦＴすることにより、高速にフィルタ演算を実行する手法がある。
【０００４】
また、特にパターン認識の分野では、多大なフィルタ演算を必要とする場合が多く、その演算コストが問題となることがある。それに対し、非特許文献１のように、非常に短時間で演算が可能な弱判別方法を用い、ＡｄａＢｏｏｓｔによる学習法と、弱判別方法のカスケード識別手法の組み合わせにより、高速、且つ高精度なパターン識別方法が提案されている。
【０００５】
このように、様々な技術分野において、フィルタ演算を高速に行うことができる技術が望まれている。
【非特許文献１】Ｐ．Ｖｉｏｌａ，Ｍ．Ｊｏｎｅｓ，“Ｒａｐｉｄ  Ｏｂｊｅｃｔ  Ｄｅｔｅｃｔｉｏｎ  ｕｓｉｎｇ  ａ  Ｂｏｏｓｔｅｄ  Ｃａｓｃａｄｅ  ｏｆ  Ｓｉｍｐｌｅ  Ｆｅａｔｕｒｅｓ”，Ｐｒｏｃ．ＩＥＥＥ  Ｃｏｎｆ．  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ  ａｎｄ  Ｐａｔｔｅｒｎ  Ｒｅｃｏｇｎｉｔｉｏｎ，Ｖｏｌ．１，ｐｐ．５１１−５１８，Ｄｅｃｅｍｂｅｒ  ２００１
【非特許文献２】Ｙ．ＬｅＣｕｎ，Ｙ．Ｂｅｎｇｉｏ，“Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｔｗｏｒｋｓ  ｆｏｒ  Ｉｍａｇｅｓ，Ｓｐｅｅｃｈ，ａｎｄ  Ｔｉｍｅ−Ｓｅｒｉｅｓ”，Ｉｎ  Ｍｉｃｈａｅｌ  Ａ．Ａｒｂｉｂ，ｅｄｉｔｏｒ，Ｔｈｅ  Ｈａｎｄｂｏｏｋ  ｏｆ  Ｂｒａｉｎ  Ｔｈｅｏｒｙ  ａｎｄ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ，  ＭＩＴ  Ｐｒｅｓｓ，Ｃａｍｂｒｉｄｇｅ，Ｍａｓｓａｃｈｕｓｅｔｔｓ，１９９５，ｐｐ．２５５−２５８
【非特許文献３】Ｓ．Ｈａｙｋｉｎ，“Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ  Ａ  Ｃｏｍｐｒｅｈｅｎｓｉｖｅ  Ｆｏｕｎｄａｔｉｏｎ  ２ｎｄ  Ｅｄｉｔｉｏｎ”，Ｐｒｅｎｔｉｃｅ  Ｈａｌｌ，ｐｐ．１５６−２５５，Ｊｕｌｙ  １９９８
【特許文献１】特開２００５−２４４９２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、このような点に鑑みなされたものであり、高速なフィルタ演算方法、及びそのフィルタ演算方法を用いたパターン識別方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明によれば、フィルタ演算方法に、複数のフィルタ成分とそれぞれの重みとを用いてフィルタを設定する設定工程と、フィルタ演算の対象とするフィルタ演算対象データを入力する入力工程と、前記複数のフィルタ成分の各領域における前記演算対象データの値の総和を算出する領域総和算出工程と、前記フィルタ成分の重みに基づいて、前記各領域の総和の重み付き総和を求める重み付き総和算出工程とを備える。
【０００８】
また、本発明の他の態様によれば、フィルタ演算装置に、複数のフィルタ成分とそれぞれの重みとを用いてフィルタを設定する設定手段と、フィルタ演算の対象とするフィルタ演算対象データを入力する入力手段と、前記複数のフィルタ成分の各領域における前記演算対象データの値の総和を算出する領域総和算出手段と、前記フィルタ成分の重みに基づいて、前記各領域の総和の重み付き総和を求める重み付き総和算出手段とを備える。
【発明の効果】
【０００９】
本発明によれば、高速なフィルタ演算及びパターン識別を実現することができる。
【発明を実施するための最良の形態】
【００１０】
以下、添付図面を参照しながら、本発明の実施形態を説明する。
【００１１】
（第１の実施の形態）
本発明の第１の実施形態として、時間方向に分布する、１次元の時系列データをフィルタ演算対象データとし、それに対して、所定の１次元フィルタを用いたフィルタ演算を行う、フィルタ演算方法を示す。
【００１２】
図１に、第１の実施形態におけるフィルタ演算方法の処理ブロック図を示す。以下、このフィルタ演算方法の各処理ブロックでの処理の概要について図１を用いて説明する。
【００１３】
時系列信号入力部１０には、フィルタ演算対象である、１次元の時系列信号ｆ（ｔ）が入力される処理部である。この時系列信号ｆ（ｔ）は、時刻ｔにおける信号値であり、時間的に一定のサンプリングで順次入力される。
【００１４】
矩形成分フィルタ入力部１１は、複数の矩形のフィルタ成分（矩形成分フィルタ）と、それぞれに対応する重みを入力する。ここで、矩形成分フィルタとは、所定の領域（本実施形態では、時間座標上での所定区間）が１であり、それ以外は０であるようなフィルタである。以下では、この時間座標上での所定区間が１である領域を、単に、その矩形成分フィルタの領域と呼ぶ。
【００１５】
この複数の矩形成分に分解された矩形成分フィルタと、それぞれに対応する重みについて具体的に説明する。図３に、所望のフィルタ演算を行うためのフィルタの例を示す。本実施形態では、図３に太実線で示したｗ（ｔ）を、予め、複数の矩形成分フィルタＲｋと、それぞれに対応する重みαｋに分解する。
【００１６】
図４に、図３に示したフィルタｗ（ｔ）を、５つの矩形成分フィルタと、各領域の重みとに分解した例を示す。ここで、例えば、図４の最上部に示した第１の矩形成分フィルタＲ１及びその重みα１は、ｔが−１０から０までの幅１１の領域が１である矩形成分フィルタＲ１と、その重みα１が２であることを示している。また、第２の矩形成分フィルタＲ２及びその重みα２は、ｔが−６から−４までの幅３の領域が１である矩形成分フィルタＲ２と、その重みα２が−６である。以下の３つの矩形成分フィルタ及びそれぞれの重みについても同様である。
【００１７】
図４に示した５つの矩形成分フィルタは、それぞれの重み付線形和が、ｗ（ｔ）に一致するようになっている。本実施形態のフィルタ演算方法では、このように、予め所望のフィルタを、複数の矩形成分フィルタとその重みに分解しておき、それらを用いて演算を行う。
【００１８】
この具体例では、分解した矩形成分フィルタの重み付線形和がｗ（ｔ）と一致しているが、これに限るものではなく、分解した矩形成分フィルタの重み付線形和が、ｗ（ｔ）の近似であっても構わない。つまり、例えば、図４の最下部に示した、第５の矩形成分フィルタＲ５を省略し、第４の矩形成分フィルタまでの４つを利用するというようにし、ｗ（ｔ）に略一致したフィルタによる演算を行うというようにする。どこまで近似するかに関しては、求められる処理速度や精度等に応じて決めてやればよい。
【００１９】
上記のような、予め分解された矩形成分フィルタと、それぞれに対応する重みが、矩形成分フィルタ入力部１１から入力され、それらは、矩形成分フィルタの総数とともに、矩形成分フィルタ保持部１２に保持される。
【００２０】
続いて、領域総和値算出部１３は、まず時系列信号入力部１０に入力された時系列信号を順次受け取り、所定期間分を保持しておく。そして、所定期間分を保持した信号を用い、矩形成分フィルタ保持部１２に保持された、それぞれの矩形成分フィルタの領域に対応した時系列信号の総和を求める処理を行う処理部である。ここで求めた、各矩形成分フィルタの領域に対応した時系列信号の総和は、次の重み付総和算出部１４に送られる。
【００２１】
重み付総和算出部１４は、領域総和算出部１３からの入力を受け、各矩形成分フィルタの領域ごとの、時系列信号の総和に、それに対応した、矩形成分フィルタ保持部１２に保持されている重みを乗じ、それらの総和を求める処理部である。
【００２２】
そして最後の、演算結果出力部１５は、重み付総和算出部１４で求めた総和を、フィルタ演算結果として外部に出力する処理部である。
【００２３】
以上が、第１の実施形態におけるフィルタ演算方法の処理ブロックでの処理の概要である。次に、本実施形態におけるフィルタ演算処理の流れと、各処理部における処理の詳細を、図２に示した、第１の実施形態におけるフィルタ演算処理の流れを用いて説明する。
【００２４】
まず初期設定として、矩形成分フィルタ入力ステップＳ２０において、予め分解した、複数の矩形成分フィルタデータと、それぞれに対応した重みデータを入力する。本実施形態では、図４に示した５つの矩形成分フィルタＲ１からＲ５と、それぞれに対応した重みα１からα５を入力するとする。そして、ここで入力されたデータをメモリに格納しておく。具体的には、各矩形成分フィルタの領域と、それぞれの重みを格納しておくことになる。例えば、図４の３番目に示した矩形成分フィルタＲ３であれば、−９から−７の領域で、重みが２というデータを格納しておくようにする。この処理は、図１の矩形成分フィルタ入力部１１、及び矩形成分フィルタ保持部１２での処理に対応する。
【００２５】
次に、処理メモリ確保ステップＳ２１では、矩形成分フィルタ入力ステップＳ２０で格納した、各矩形成分フィルタのデータに基づいて、演算処理用のメモリ領域を確保する。確保するメモリは、入力される時系列信号を所定時間分保持するためのメモリ配列ＭＡ、各矩形成分フィルタの領域に対応する範囲の、時系列信号の総和を保持するメモリＳｋ、及び、入力された各矩形成分フィルタに対応する重みを保持するメモリＷｋである。また、時系列信号を所定時間分保持するメモリのどのアドレスが、現時刻に対応するのかを格納するメモリＴも、合わせて確保し、初期値を０にセットする。
【００２６】
時系列信号を所定時間分保持するためのメモリＭＡは、所定時間分の時系列信号を保持できるメモリ配列であり、少なくともフィルタ演算に必要な時間分の長さを持てば良い。この長さは、入力された、複数の矩形成分フィルタによって決まる。具体的には、複数の矩形成分フィルタの、それぞれの領域全ての内、時間ｔ方向の最小値と最大値の幅分のメモリ配列となる。図４に示した矩形成分フィルタの場合は、時間ｔ方向の最小値と最大値は、共に矩形成分フィルタＲ１の−１０と０なので、必要となるメモリ配列の長さは、−１０から０までの、１１の長さとなる。このような長さのメモリ配列を確保し、全ての要素の初期値を０にセットしておく。
【００２７】
各矩形成分フィルタの領域に対応する範囲の、時系列信号の総和を保持するメモリＳｋは、入力された矩形成分フィルタ個数分を確保し、これも全ての初期値を０にしておく。添え字ｋは、矩形成分フィルタの番号に対応し、本実施形態では、図４に示した５つの矩形成分フィルタを入力とするので、ｋ＝１〜５である。
【００２８】
また、入力された各矩形成分フィルタに対応する重みを保持するメモリＷｋも、入力された矩形成分フィルタ個数分を確保する。そして、入力されたそれぞれの重みを設定する。以降、このメモリの値は、処理を終了する場合や、演算を行うフィルタを変える等が無い限り変更されない。この添え字ｋも、各矩形成分フィルタの領域に対応する範囲の、時系列信号の総和を保持するメモリＳｋの添え字と同義である。
【００２９】
この処理メモリ確保ステップＳ２１での処理は、領域総和算出部１３と重み付総和算出部１４における初期設定の処理となる。
【００３０】
ここまでで初期設定が終了し、次に、フィルタ演算処理として、時系列信号入力ステップＳ２２において時系列信号が入力される。ここでの処理は、図１の時系列信号入力部１０での処理に対応する。
【００３１】
次いで、ステップＳ２３において、ステップＳ２１で確保した所定のメモリを更新する。具体的には、時系列信号を所定時間分保持するためのメモリＭＡ、各矩形成分フィルタの領域に対応する範囲の、時系列信号の総和を保持するメモリＳｋ、現時刻を格納してあるメモリＴの値を更新する。ここでの処理は、図１の領域総和値算出部１３での処理に対応する。
【００３２】
処理メモリデータ更新ステップＳ２３での具体的な処理について、図４に示した矩形成分フィルタを用いた場合を例として説明する。
【００３３】
まず、各矩形成分フィルタの領域に対応する範囲の、時系列信号の総和を保持するメモリＳｋの１次更新を行う。この１次更新では、各矩形成分フィルタの領域の内、時間ｔ方向の最小位置に対応する信号を、時系列信号を所定時間分保持するメモリＭＡから読み出し、その値をＳｋから差し引く。例えば、図４の、第２の矩形成分フィルタＲ２の領域であれば、時間ｔ方向の最小位置は−６であるので、現時刻がｔならば、ｔ−６の位置に対応する値を、時系列信号保持メモリＭＡから読み出し、Ｓ２から差し引く。これを、全てのＳｋ（図４の例では、ｋ＝１〜５）対して行い、各矩形成分フィルタの領域に対応する範囲の、時系列信号の総和を保持するメモリＳｋの１次更新が終了する。
【００３４】
次に、現時刻を記録してあるメモリＴの値をインクリメントし、時系列信号入力ステップＳ２２において、現時刻に入力された信号を、時系列信号を所定時間分保持するメモリＭＡの、現時刻に対応する位置にセットする。
【００３５】
最後に、各矩形成分フィルタの領域に対応する範囲の、時系列信号の総和を保持するメモリＳｋの２次更新を行う。この２次更新では、１次更新とは逆に、各矩形成分フィルタの領域の、時間ｔ方向の最大位置に対応する信号を、時系列信号を所定時間分保持するメモリＭＡから読み出し、その値をＳｋに加算する。例えば、図４の、第３の矩形成分フィルタＲ３の領域であれば、時間ｔ方向の最大位置は−７であるので、現時刻がｔならば、ｔ−７の位置に対応する値を、時系列信号保持メモリＭＡから読み出し、Ｓ３に加算する。これも、全てのＳｋに対して行い、各矩形成分フィルタの領域に対応する範囲の、時系列信号の総和を保持するメモリＳｋの２次更新が終了する。
【００３６】
以上が、処理メモリデータ更新ステップＳ２３での処理である。この処理により、各矩形成分フィルタの領域に対応する範囲の、時系列信号の総和を保持するメモリＳｋの値を、常に、各矩形成分フィルタの領域に対応する範囲の、時系列信号の総和値としておくことができる。本実施形態では、上記の処理により、これを実現するが、各矩形成分フィルタの領域に対応する範囲の、時系列信号の総和値を求めることができる方法であれば、その他の方法を用いても構わない。
【００３７】
続いて、次の処理である、重み付き総和算出ステップＳ２４の処理について説明する。ここでは、処理メモリデータ更新ステップＳ２３で得られた、Ｓｋの値に、メモリ確保ステップＳ２１で設定した、各矩形成分フィルタに対応する重みＷｋの値を乗じて、それら全ての値の総和Ｙを算出する。図４に示した５つの矩形成分フィルタの例であれば、Ｙ＝Ｓ１×Ｗ１＋Ｓ２×Ｗ２＋Ｓ３×Ｗ３＋Ｓ４×Ｗ４＋Ｓ５×Ｗ５を求めることになる。
【００３８】
最後に、演算結果出力ステップＳ２５で、重み付き総和算出ステップＳ２４で求めたＹを、フィルタ演算結果として外部に出力する。フィルタ演算を終了する場合は、この時点で処理終了となり、続行する場合は、時系列信号入力ステップＳ２２に戻って、時系列信号入力ステップＳ２２から演算結果出力ステップＳ２５までの処理を繰り返し行う。
【００３９】
以上の処理により、時系列信号に対するフィルタ演算処理が可能となる。通常のフィルタ演算では、例えば図３に示したフィルタを用いた場合、乗算が１１回、加減算が１０回必要となる。一方、本実施形態のフィルタ演算方法では、図３に示したフィルタを、図４に示したような、複数の矩形成分フィルタに分解しておき、それを利用して演算することで、全く等価な演算を、乗算５回、加減算１０回で実行でき、処理コスト低減が可能となる。
【００４０】
以上、第１の実施の形態は、時間方向に分布する、１次元の時系列データをフィルタ演算対象データとし、それに対して、所定の１次元フィルタを用いたフィルタ演算を行う、フィルタ演算方法の例として説明した。
【００４１】
（第２の実施の形態）
第２の実施形態では、入力として２次元濃淡画像を用い、入力された２次元画像内の特定パターン検出処理を行う、パターン識別方法の例を示す。
【００４２】
本実施形態では、パターン検出処理に、Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ（以下ＣＮＮ）を用いる（ＣＮＮの詳細に関しては、非特許文献２を参照）。
【００４３】
ＣＮＮの基本的な構造について、図５、及び図６を用いて説明する。図５に、入力された２次元画像データから、特定のパターンを検出するようなＣＮＮの基本的な構成を示す。処理の流れは、左端を入力とし、右方向へ処理が進んでいく。ＣＮＮは、特徴検出層（Ｓ層）と特徴統合層（Ｃ層）と呼ばれる２つの層をひとつのセットとし、それが階層的に構成されている。
【００４４】
ＣＮＮでは、まずＳ層で、前段階層で検出された特徴をもとに次の特徴を検出する。それをＣ層で統合し、その階層の検出結果として次の階層に送るという構成になっている。
【００４５】
Ｓ層は特徴検出細胞面からなり、特徴検出細胞面ごとに異なる特徴を検出する。また、Ｃ層は特徴統合細胞面からなり、前段の特徴検出細胞面での検出結果をプール（統合）する処理を行う。以下では、特に区別をする必要がない場合、特徴検出細胞面、及び特徴統合細胞面を総称して特徴面と呼ぶ。本実施形態では、最終段階層である出力層ではＣ層は用いず、Ｓ層のみで構成している。
【００４６】
特徴検出細胞面での特徴検出処理、及び特徴統合細胞面での特徴統合処理の詳細について、図６を用いて説明する。特徴検出細胞面は、複数の特徴検出ニューロンにより構成され、特徴検出ニューロンは前段階層のＣ層に所定の構造で結合している。また特徴統合細胞面は、複数の特徴統合ニューロンにより構成され、特徴統合ニューロンは同階層のＳ層に所定の構造で結合している。図６中に示した、第Ｌ階層目のＳ層の、第Ｍ番目の特徴検出細胞面内の、位置（ξ，ζ）の特徴検出ニューロンの出力値をｙＬＳＭ（ξ，ζ）、同位置の特徴統合ニューロンの出力値をｙＬＣＭ（ξ，ζ）と表記する。その時、それぞれのニューロンの結合係数をｗＬＳＭ（ｎ，ｕ，ｖ）、ｗＬＣＭ（ｕ，ｖ）とすると、各出力値は以下のように表すことができる。
【００４７】
【数１】
2009105725.tif 000003
【００４８】
【数２】
2009105725.tif 000004
【００４９】
式（１）のｆは活性化関数であり、ロジスティック関数や双曲正接関数（以下ｔａｎｈ関数）などのシグモイド関数が用いられる。本実施形態では、この活性化関数としてｔａｎｈ関数を用いる。活性化関数ｆ内のｕＬＳＭ（ξ，ζ）は、第Ｌ番目のＳ層の第Ｍ番目の特徴検出細胞面内の、位置（ξ、ζ）の特徴検出ニューロンの内部状態である。２番目の式は、活性化関数ｆを用いず単純な線形和をとっている。この式のように、活性化関数を用いない場合は、ニューロンの内部状態と出力値は等しい。また、式（１）の右辺のｙＬ−１Ｃｎ（ξ＋ｕ，ζ＋ｖ）、式（２）の右辺のｙＬＳＭ（ξ＋ｕ，ζ＋ｖ）を、それぞれ特徴検出ニューロン、特徴統合ニューロンの結合先出力値と呼ぶ。
【００５０】
式中の各変数ξ、ζ、ｕ、ｖ、ｎについて説明する。位置（ξ、ζ）は入力画像における位置座標に対応しており、例えばｙＬＳＭ（ξ，ζ）が高い出力値である場合は、入力画像の画素位置（ξ、ζ）に、第Ｌ階層の第Ｍ番目の特徴検出細胞面において検出する特徴が存在する可能性が高いということを意味する。またｎは、上式において、前階層のＣ層の第ｎ番目の特徴統合細胞面を意味しており、結合先特徴番号と呼ぶ。基本的に前階層のＣ層に存在するすべての特徴統合細胞面についての積和演算を行う。（ｕ、ｖ）は、結合係数の相対位置座標であり、検出する特徴のサイズに応じて有限の範囲の（ｕ、ｖ）において積和演算を行う。このような有限な（ｕ、ｖ）の範囲を受容野と呼ぶ。また受容野の大きさを、以下では受容野サイズと呼び、これは結合している範囲の横画素数×縦画素数で表すことにする。
【００５１】
また、式（１）においてＬ＝１つまり一番初めの特徴検出の時は、式（１）中のｙＬ−１Ｃｎ（ξ＋ｕ，ζ＋ｖ）は、入力画像ｙｉｎｐｕｔ（ξ＋ｕ，ζ＋ｖ）となる。ちなみにニューロンや画素の分布は離散的であり、結合先特徴番号も離散的なものなので、ξ、ζ、ｕ、ｖ、ｎは連続な変数ではなく、離散的な値をとる。ここでは、ξ、ζは非負整数、ｎは自然数、ｕ、ｖは整数とし、いずれも有限な範囲となる。
【００５２】
式（１）中のｗＬＳＭ（ｎ，ｕ，ｖ）は、所定の特徴を検出するための結合係数分布であり、これを適切な値に調整することによって、所定の特徴を検出することが可能になる。この結合係数分布の調整が学習であり、ＣＮＮの構築においては、さまざまなテストパターンを提示して、ｙＬＳＭ（ξ，ζ）が適切な出力値になるように、結合係数を繰返し徐々に修正していくことで結合係数の調整を行う。
【００５３】
次に、式（２）中のｗＬＣＭ（ｕ，ｖ）は、２次元のガウシアン関数を用いており、以下の式（３）のように表すことができる。
【００５４】
【数３】
2009105725.tif 000005
【００５５】
ここでも（ｕ、ｖ）は有限の範囲としてあるので、先ほどの特徴検出ニューロンについての説明と同様に、この有限の範囲を受容野といい、範囲の大きさを受容野サイズと呼ぶ。この受容野サイズは、ここでは第Ｌ層−第Ｍ特徴のサイズに応じて適当な値に設定すればよい。式（３）中の、σは特徴サイズ因子であり、受容野サイズに応じて適当な定数に設定しておけばよい。具体的には、受容野の一番外側の値がほぼ０とみなせるような値になるように設定するのが良い。
【００５６】
上記のような演算を各階層で行うことで、最終段階層のＳ層において、所望のパターンを検出するというのが、本実施形態におけるＣＮＮの構成である。
【００５７】
具体的な結合係数ｗＬＳＭ（ｎ，ｕ，ｖ）の調整の方法について説明する。結合係数の調整、すなわち学習の方法としては、さまざまな方法が提案されており、大きく２つに分けると、教師なしの学習と教師ありの学習とに分けられる。本実施形態では教師ありの学習により、結合係数の調整を行う。教師ありの学習では、テストパターンを与えて実際にニューロンの出力値を求め、その出力値と教師信号（そのニューロンが出力すべき望ましい出力値）の関係から結合係数ｗＬＳＭ（ｎ，ｕ，ｖ）の修正を行えばよい。本実施形態の学習においては、最終層の特徴検出層は最小二乗法を用い、中間層の特徴検出層は誤差逆伝播法を用いて結合係数の修正を行う（最小二乗法や、誤差逆伝播法等の、結合係数の修正手法の詳細は、非特許文献３を参照）。
【００５８】
本実施形態では、学習用のテストパターンとして、検出すべき特定パターンと、それ以外のパターンを多数用意する。活性化関数は、本実施形態では、ｔａｎｈ関数ｆ（ｕ）＝ｔａｎｈ（ｕ）を用いるので、検出すべき特定パターンを提示した時は、最終層の特徴検出細胞面の、特定パターンが存在する中心位置のニューロンに対し、出力が１となるように教師信号を与える。逆に、検出すべき特定パターン以外のパターンを提示した時は、そのパターンの中心位置のニューロンに対し、出力が−１となるように教師信号を与えることになる。
【００５９】
上記のような手続きにより、２次元画像データから特定パターンを検出するためのＣＮＮが構築される。実際の検出においては、学習により構築した結合係数ｗＬＳＭ（ｎ，ｕ，ｖ）を用いて演算を行い、最終層の特徴検出細胞面上のニューロン出力が、所定値以上であれば、そこに特定パターンが存在すると判定する。このＣＮＮの演算では非常に多数のフィルタ演算が必要になり、処理コストが膨大となる。そこで、第１の実施形態で説明したフィルタ演算方法を適用して処理コストを低減し、高速な特定パターン検出を実現する。
【００６０】
図７に、第２の実施形態におけるＣＮＮを用いた特定パターン検出方法の処理ブロック図を示す。以下、この特定パターン検出方法の各処理ブロックでの処理の概要について図７を用いて説明する。
【００６１】
画像入力部７０は、入力画像として、特定パターン検出処理の実行対象となる２次元濃淡画像を入力する処理部である。
【００６２】
次の矩形成分フィルタ入力部７１では、テストパターンを与えて学習により構築した結合係数を各結合先に適用する空間フィルタとみなし、それぞれ複数の矩形成分に分解した矩形成分フィルタと、それぞれに対応する重みとを入力する。ここで用いる矩形成分フィルタは、第１の実施形態と同様にヒューリスティックに分解して得られたものを用いても構わないが、基本的に結合係数は複雑な構造をしていることが多いため、ヒューリスティックな分解は困難である。そこで本実施形態では、結合係数の分解を特許文献１に開示されている手法を利用することにより行う。
【００６３】
本実施形態では、特許文献１に開示されている手法における適応化基底に、図１０に示したような、２次元的な幅Ｗ、高さＨ、中心座標（ｃｘ、ｃｙ）、振幅αで定義される、基底Ｒｅｃｔ（Ｗ、Ｈ、ｃｘ、ｃｙ、α）を用いる。この基底Ｒｅｃｔは、中心座標（ｃｘ、ｃｙ）を中心とする、幅Ｗ、高さＨの、２次元座標上での矩形領域のみの値がαであり、それ以外の領域の値は０であるような関数である。本実施形態では、分解すべき結合係数を、１つの結合先ごと適用する空間フィルタとみなし、それを複数の基底Ｒｅｃｔを用いて符号化していく。具体的には、この基底Ｒｅｃｔの各変数Ｗ、Ｈ、ｃｘ、ｃｙ、αを、特許文献１に開示されている手法により逐次修正していく。そして誤差が極小値になったところで、その基底成分を差し引き、さらに新たな基底を用意し、逐次修正を行うという手順を繰り返すことで、複数の基底Ｒｅｃｔｋ（Ｗｋ、Ｈｋ、ｃｘｋ、ｃｙｋ、αｋ）に分解する。このようにして得られたそれぞれの基底Ｒｅｃｔｋで定義される、２次元空間上の矩形領域が１であり、それ以外が０であるようなフィルタを、矩形成分フィルタＲｋとし、そのＲｅｃｔｋの振幅αｋを、矩形成分フィルタＲｋに対応する重みαｋとする。
【００６４】
尚、本実施形態では、結合係数における、位置に関する変数は離散的であるため、４つの変数Ｗ、Ｈ、ｃｘ、ｃｙは離散的な値で構わない。その為、この４つの変数に関しては、予め定義域を指定しておき、その中で考え得る組み合わせ全数において、αのみの修正を行い、試行した全数の内、最小誤差であるものを選択するようにした。
【００６５】
また、本実施形態では、２次元上でのある矩形領域内が１でそれ以外が０であるフィルタを矩形成分フィルタとしたが、これに限るものではない。矩形成分フィルタとしては、所定の空間上もしくは時間上の領域が１であり、それ以外が０であるフィルタであれば良いため、領域の形状は任意である。本実施形態では、後述する２次元データ上の矩形領域内のデータの総和を高速に求める手法を用いるため、この領域を矩形領域とした。しかし、例えばその領域が、円形領域や、多角形の領域であっても、その領域内の総和が少ない処理コストで求められるならば、どのような形状の領域であっても構わない。第１の実施形態では、時間座標上での所定区間が１である領域を、矩形成分フィルタの領域と呼んだが、本実施形態では、この２次元座標上での所定区間が１である矩形領域を、その矩形成分フィルタの領域と呼ぶ。
【００６６】
矩形成分フィルタ入力部７１では、上記説明した手法により、複数の矩形成分フィルタと、それに対応する重みに分解された、それぞれの結合係数を入力し、それを矩形成分フィルタ保持部７２に記録しておく。
【００６７】
前段層結果入力部７３は、現時点で演算を実行するＣＮＮの階層の、前段階層の結果を入力する処理部である。例えば、ＣＮＮの第１階層での特徴検出の場合、前段階層は入力画像となるので、この前段層結果入力部７３は、画像入力部７０において入力された入力画像を入力することになる。また例えば、ＣＮＮの第４層での特徴検出の場合は、第３層の特徴統合層が前段層となるので、フィルタ演算処理部７５において演算され、演算結果保持部７６に保持された、第３層の特徴統合層の結果を入力するというようにする。
【００６８】
累積型データ生成部７４は、前段層結果入力部７３により入力された前段階層のデータから、累積型データを生成する処理部である。この累積型データとは、非特許文献１において述べられているＩｎｔｅｇｒａｌ  Ｉｍａｇｅである（Ｉｎｔｅｇｒａｌ  Ｉｍａｇｅの詳細については、非特許文献１を参照）。この累積型データ（Ｉｎｔｅｇｒａｌ  Ｉｍａｇｅ）を用いると、２次元データ上の、任意の矩形領域内の、データの総和を高速に求めることができる。これにより、本実施形態で用いる矩形成分フィルタの、それぞれの領域におけるデータの総和が高速に得られる。
【００６９】
フィルタ演算処理部７５は、矩形成分フィルタ保持部７２に保持された矩形成分フィルタ、及びそれらに対応する重みと、累積型データ生成部７４において生成された、前段階層の累積型データを用いて、式１、または式２に示した演算を行う処理部である。ここでの処理については、後に詳細に述べる。
【００７０】
演算結果保持部７６は、フィルタ演算処理部７５での処理により得られた演算結果を保持する処理部である。ＣＮＮの演算では、前段階層の演算結果を用いて、その後段階層の演算を行うため、演算結果を保持しておく必要がある。そこで、フィルタ演算処理部７５で得られた結果を、演算結果保持部７６において一時的に保持しておく。またここでは、演算に用いなくなった結果、つまり、後段階層の演算も終わり、その結果を利用することが無くなったものを、クリアする処理も行う。
【００７１】
そして最後に、検出結果出力部７７は、演算結果保持部７６に一時的に保持された、最終層の特徴検出細胞面での演算結果を用い、それを閾値処理することによって、最終的な特定パターン検出結果を出力する処理部である。
【００７２】
以上が、第２の実施形態におけるＣＮＮを用いた特定パターン検出方法の処理ブロックでの処理の概要である。次に、本実施形態におけるＣＮＮを用いた特定パターン検出方法の、処理の全体の流れを、図８に示した、第２の実施形態におけるＣＮＮを用いた特定パターン検出方法の処理の流れを用いて説明する。
【００７３】
まず、矩形成分フィルタ入力ステップＳ８０において、予め結合先ごとに分解した複数の矩形成分フィルタＲＬＳＭ，ｋ｜ｎまたはＲＬＣＭ，ｋ｜ｎと、それに対応する重みαＬＳＭ，ｋ｜ｎまたはαＬＳＭ，ｋ｜ｎ、更に上限打ち切り閾値ＴＬＳ，ＵｐｐｅｒＭ，ｋ｜ｎ及び下限打ち切り閾値ＴＬＳ，ＬｏｗｅｒＭ，ｋ｜ｎを入力する。ここで、第Ｌ階層のＳ層の第Ｍ番目の特徴検出細胞面から、第Ｌ−１階層のＣ層の第ｎ番目の特徴統合細胞面に結合する結合係数ｗＬＳＭ（ｎ，ｕ，ｖ）を、上記説明した手法で分解した時の、ｋ番目の矩形成分フィルタがＲＬＳＭ，ｋ｜ｎであり、それに対応する重みがαＬＳＭ，ｋ｜ｎである。また、第Ｌ階層のＣ層の第Ｍ番目の特徴統合細胞面から、同階層のＳ層の第Ｍ番目の特徴検出細胞面に結合する結合係数ｗＬＣＭ（ｎ，ｕ，ｖ）を、上記説明した手法で分解した時の、ｋ番目の矩形成分フィルタがＲＬＣＭ，ｋであり、それに対応する重みがαＬＣＭ，ｋである。上限、下限打ち切り閾値ＴＬＳ，ＵｐｐｅｒＭ，ｋ｜ｎ及びＴＬＳ，ＬｏｗｅｒＭ，ｋ｜ｎは、後述の演算途中打ち切りに用いるものであり、これに関しては、後に詳細に述べる。Ｃ層の特徴統合細胞面は、結合先が１つに限られているため、Ｓ層の特徴検出細胞面に比べ単純である。そのため、以下では、Ｓ層の特徴検出細胞面での場合を中心に説明する。
【００７４】
もし、結合係数ｗＬＳＭ（ｎ，ｕ，ｖ）がＮ個の矩形成分フィルタと、それに対応する重みに分解された場合、以下の式（４）の関係が成り立つ。
【００７５】
【数４】
2009105725.tif 000006
【００７６】
このため、このＮ個全ての矩形成分フィルタと、それに対応する重みを用いて演算を行うことで、元の結合係数を用いて演算した場合と等価な演算結果を得ることができる。しかし、本実施形態では、演算コスト低減のため、Ｎ個全てを用いず、元の結合係数が、充分近似できた段階までの個数までを用いる。
【００７７】
いくつまでの個数を用いるかに関しては、例えば、元の結合係数との誤差が、所定値以下となるような基準で決めてやるようにすればよい。または、予め、元の結合係数を用いた場合の演算結果と、幾つかの個数での演算結果を比較し、それらの結果の誤差が、所定値以下となるような基準で決めてやる手法等でも良い。また、処理コストが重視されるのであれば、求められる処理コストに応じて決めてやるようにする等しても構わない。ただしこの場合、充分な近似ができていなければ、演算結果が適正でなくなる可能性もあるので、注意が必要である。
【００７８】
この矩形成分フィルタ入力ステップＳ８０で入力するＲＬＳＭ，ｋ｜ｎ及びαＬＳＭ，ｋ｜ｎは、後述の演算途中打ち切りを実現するため、予め並べ替えを行っておく。この並べ替えについて、具体的な例として、第Ｌ階層のＳ層の、Ｍ番目の特徴検出細胞面での場合を用いて説明する。例えば、この特徴検出細胞面が、第Ｌ−１層のＣ層の、８個の特徴統合細胞面に結合しているとする。その場合、結合係数ｗＬＳＭ（ｎ，ｕ，ｖ）は、ｎ＝１からｎ＝８の８通りあり、これらの１通りごとに、複数の矩形成分フィルタに分解されたものが存在する。第Ｌ−１層のＣ層の、ｎ番目の特徴統合細胞面への結合係数ｗＬＳＭ（ｎ，ｕ，ｖ）を、ｋｎ個の矩形成分フィルタで近似した場合、この特徴検出細胞面が演算に利用する矩形成分フィルタの全数Ｋは、
【００７９】
【数５】
2009105725.tif 000007
【００８０】
となる。並べ替えでは、この全数Ｋ個の矩形成分フィルタを、各矩形フィルタの、演算寄与度の大きさの順に並べ替える。演算寄与度とは、フィルタ演算を実行する際の、演算結果に対する寄与の大きさを示すものであり、本実施形態では、矩形成分フィルタの領域の面積と、その矩形成分フィルタに対応する重みの積の絶対値を、演算寄与度として利用する。このような並べ替えを行うことにより、演算の初期段階で、比較的高い精度で、最終的な演算結果の推定ができ、後述の演算途中打ち切りの精度が向上する。本実施形態では、矩形成分フィルタの領域の面積と、その重みの積の絶対値を、その矩形成分フィルタの演算寄与度として用いた。しかし、演算寄与度の算出方法は、特にこれに限るものではなく、その他の手法を用いて算出しても良い。例えば、まず、実際に多数のサンプルを入力して、その矩形成分フィルタと、その重みを用いて演算を実行、つまり、矩形成分フィルタの領域内の、データの総和に重みを乗じたものを算出し、これらの分散を求めておく。詳しくは後に述べるが、本実施形態でのフィルタ演算では、このデータの総和に重みを乗じたものを、順次加算していき、最終的なフィルタ演算結果とする。そのため、ここで求めた分散の大小は、順次加算していく時の増減幅が大小を意味するため、これを演算寄与度として利用するような方法でも構わない。
【００８１】
以上、Ｓ層の特徴検出細胞面の場合について、矩形成分フィルタの利用個数と、並べ替えについて説明した。Ｃ層の特徴統合細胞面の場合、矩形成分フィルタの利用個数は、Ｓ層の特徴検出細胞面の場合と同様にすればよい。しかし、Ｃ層の特徴統合細胞面の場合、演算途中打ち切りは実行しないので、特に並べ替えをする必要は無く、適当な順番で演算を行っていけばよい。
【００８２】
次に、演算途中打ち切りに利用する、上限打ち切り閾値ＴＬＳ，ＵｐｐｅｒＭ，ｋ｜ｎ及び下限打ち切り閾値ＴＬＳ，ＬｏｗｅｒＭ，ｋ｜ｎについて説明する。この各打ち切り閾値は、本実施形態では、Ｓ層の特徴検出細胞面での演算に用いられ、１つの矩形成分フィルタＲＬＳＭ，ｋ｜ｎごとに、それぞれ予め定めたものである。Ｓ層の特徴検出細胞面での演算は、式１に示すように、フィルタ演算後の値を、シグモイド関数により非線形変換をする。本実施形態では、このシグモイド関数として、ｔａｎｈ関数ｆ（ｕ）＝ｔａｎｈ（ｕ）を用いるので、ｕ、つまりフィルタ演算後の値の絶対値が充分に大きければ、最終的な出力は、１、もしくは−１になる。そこで、この特性を利用して、演算の途中打ち切りを行うことで、処理コストを低減させる。具体的には、ある矩形成分フィルタＲＬＳＭ，ｋ｜ｎを用いた演算が終了した時の演算途中での値が、この矩形成分フィルタＲＬＳＭ，ｋ｜ｎに対応する上限打ち切り閾値ＴＬＳ，ＵｐｐｅｒＭ，ｋ｜ｎ以上、もしくは、対応する下限打ち切り閾値ＴＬＳ，ＬｏｗｅｒＭ，ｋ｜ｎ以下であった場合に演算を中断する。そして、上限打ち切り閾値以上であった場合は、最終的な出力が１になると推定して、出力値を１に設定し、逆に、下限打ち切り閾値以下であった場合は、最終的な出力が−１になると推定して、出力値を−１に設定する。このように、演算の途中結果を用いて、最終的な出力値を推定し、演算を中断することで、処理コストの低減が可能になる。
【００８３】
この各打ち切り閾値は、充分なサンプルでの統計に基づいて、予め定めておく。具体的には、まず、上記説明した並べ替えを行った後の矩形成分フィルタを用いて、その順番通りに演算を実行（実際の演算手法に関しては後に詳細に述べる）する。この際に、全ての演算途中結果、つまり各矩形成分フィルタを用いた演算を行った後の演算途中結果を記録しておく。そして、多数のサンプルでの演算結果の内、最終出力値、つまり、非線形変換後の値が、所定範囲内のものをサンプリングする。ここでの所定範囲は、１、もしくは−１とみなすべきでないと思われる値の範囲であるので、例えば、−０．９５以上、０．９５以下というようにすればよい。ここでサンプリングされたものを、非打ち切り対象サンプルとする。そして、記録しておいた、この非打ち切り対象サンプルの、各矩形成分フィルタを用いた演算を行った後の演算途中結果を利用して、打ち切り閾値を決定する。本実施形態では、それぞれの矩形成分フィルタごとに、演算途中結果の平均と標準偏差を求め、平均＋標準偏差×３を、上限打ち切り閾値とし、平均−標準偏差×３を下限打ち切り閾値としている。このような設定方法により、最終出力値が上記所定範囲内になるような入力の場合に、誤った推定に基づき演算が打ち切られる可能性を減らすことができる。このように、本実施形態では、非打ち切り対象サンプルでの、それぞれの矩形成分フィルタごとの演算途中結果を、正規分布と仮定して、それに基づいて打ち切り閾値を決めるようにしているが、打ち切り閾値の決定手法はこれに限るものではない。例えば、非打ち切り対象サンプルでの、それぞれの矩形成分フィルタごとの、演算途中結果の最大値や最小値を、それぞれ上限打ち切り閾値、下限打ち切り閾値とするようにしても良い。また逆に、非打ち切り対象サンプル以外、例えば、最終出力値が１、もしくは−１になるサンプルの統計的性質を用いて決めるようにしても良い。
【００８４】
以上、ステップＳ８０で入力する、複数の矩形成分フィルタと、それに対応する重み、その利用個数と並び替え、及び特徴検出細胞面での演算途中打ち切りに用いる、各矩形成分フィルタに対応する上限・下限打ち切り閾値について説明した。矩形成分フィルタ入力ステップＳ８０で、これらを入力し、記録して保持する処理は、図７の矩形成分フィルタ入力部７１、及び矩形成分フィルタ保持部７２での処理に対応する。
【００８５】
続いて、図８の画像入力ステップＳ８１では、特定パターン検出を行う対象の、２次元濃淡画像データである入力画像を入力する。ここでの処理は、図７の画像入力部７０での処理に対応する。
【００８６】
次いで、結合先データ入力ステップＳ８２では、実際に演算を行う階層の、前段階層の結果を入力する。前段階層の結果としては、前述のように、例えば第１階層の演算を実行するならば、入力画像が前段階層の結果となる。また、例えば、第３階層のＣ層の演算であれば、第３階層のＳ層の演算結果が、前段階層の結果となる。前段階層の結果が複数個ある場合、つまり、前段階層が複数の特徴面から構成されている場合は、その全てをここで入力する。ここでの処理は、図７の前段層結果入力部７３での処理に対応する。
【００８７】
そして、累積型データ生成ステップＳ８３では、結合先データ入力ステップＳ８２において入力された、前段階層の結果の累積型データを生成し、記録しておく。前段階層の結果が複数である場合は、それらの全てについて、それぞれ累積型データを生成するようにする。ここでの処理は、図７の累積型データ生成部７４での処理に対応する。
【００８８】
次に、フィルタ演算処理ステップＳ８４では、矩形成分フィルタ入力ステップＳ８０で入力された複数の矩形成分フィルタ等のデータと、累積型データ生成ステップＳ８３で生成して記録した、前段階層の累積型データを用いてフィルタ演算を行う。このフィルタ演算では、演算を行う階層の特徴面の演算を、１つずつ順に行っていく。１つの特徴面での演算では、ラスタスキャン的に、入力画像の各点に対応する位置での矩形成分フィルタ等を用いたフィルタ演算を行い、全点でのフィルタ演算が終了した段階で、１つの特徴面での演算処理が終了する。この１つの特徴面での演算処理の詳細について、図９に示したフィルタ演算処理での、１つの特徴面での演算処理の流れを示したものを用いて説明する。
【００８９】
まず、処理点選択ステップＳ９００において、処理対象点、つまりフィルタ演算を行う点を１つ選択する。演算結果は、選択する処理対象点の順番には依存しないので、処理すべき点の内、まだ処理が実行されていない点を、順にラスタスキャン的に選択していけば良い。ここで処理対象点を選択すると共に、演算の途中結果を示す値ｕを０に初期化する。以下では、この演算の途中結果を示す値ｕを内部状態値と呼ぶ。
【００９０】
続いて、矩形成分フィルタ選択ステップＳ９０１において、矩形成分フィルタを１つ選択する。Ｓ層の特徴検出細胞面での演算の場合、ここでは、上記説明した、並べ替えを行った順で、１番目の矩形成分フィルタから順に選んでいけば良い。Ｃ層の特徴統合細胞面での演算の場合、演算結果は、選択する矩形成分フィルタの順番には依存しないので、適当な順に１つずつ選択していけば良い。
【００９１】
次に、矩形内総和算出ステップＳ９０２において、矩形成分フィルタ選択ステップＳ９０１において選択した矩形成分フィルタの領域に対応する範囲のデータの総和を求める。この処理を、具体的に、例えば、選択した矩形成分フィルタが、前段階層のｎ番目の特徴面への結合係数から分解されたものであり、それが図１０に示したような、２次元的な幅Ｗ、高さＨ、中心座標（ｃｘ、ｃｙ）、を持つようなものである場合を例として説明する。この場合、まず、処理点選択ステップＳ９００で選択した点と同位置である、前段階層の、ｎ番目の特徴面上の点を、原点（０、０）と考える。そして、その座標上において、前段階層の、ｎ番目の特徴面の、中心座標（ｃｘ、ｃｙ）を中心とする、幅Ｗ、高さＨの領域内の、ニューロン出力の総和を求めれば良い。
【００９２】
続いて、重み付加算ステップＳ９０３で、矩形内総和算出ステップＳ９０２において算出した矩形成分フィルタ内のデータの総和に、その矩形成分フィルタに対応する重みを乗じ、その値を内部状態値ｕに加算する。
【００９３】
その後、Ｓ層の特徴検出細胞面での演算の場合は、上限打ち切り判定分岐９０４、及び下限打ち切り判定分岐９０６において、それぞれの打ち切り条件を満たしたかの判定がなされる。上限打ち切り判定分岐９０４では、内部状態値ｕが、直前の演算に用いた矩形成分フィルタに対応する、上限打ち切り閾値より大きいか否かの比較を行う。そして、内部状態値ｕが上限打ち切り閾値より大きい場合は、上限値設定ステップＳ９０５に進み、大きくない場合には、下限打ち切り判定分岐９０６に進む。下限打ち切り閾値判定分岐９０６では、上限打ち切り閾値判定分岐９０４と同様に、内部状態値ｕが、直前の演算に用いた矩形成分フィルタに対応する、下限打ち切り閾値より小さいか否かの比較を行う。そして、内部状態値ｕが下限打ち切り閾値より小さい場合は、下限値設定ステップＳ９０７に進み、小さくない場合には、次の、全フィルタ選択判定分岐９０８に進む。Ｃ層の、特徴統合細胞面での演算の場合は、演算途中打ち切りは実行しないので、これら２つの上限打ち切り判定分岐９０４、及び下限打ち切り判定分岐９０６は無視し、全フィルタ選択判定分岐９０８に進むようにすれば良い。
【００９４】
上限打ち切り判定分岐９０４において、内部状態値ｕが上限打ち切り閾値より大きいと判定された場合、前述の通り、本実施形態では、最終的な出力値が１になると推定されたことを意味する。そこで、上限値設定ステップＳ９０５において、処理点選択９００で選択した点の最終出力値を１に設定して、全点選択判定分岐９１０に進む。同様に、下限打ち切り判定分岐９０６において、内部状態値ｕが下限打ち切り閾値より小さいと判定された場合、今度は、最終的な出力値が−１になると推定されたことを意味する。そこで、下限値設定ステップＳ９０７において、処理点選択９００で選択した点の最終出力値を−１に設定して、全点選択判定分岐９１０に進む。
【００９５】
全フィルタ選択判定分岐９０８では、矩形成分フィルタ選択ステップＳ９０１において全ての矩形成分フィルタを選択したか否かを判定する。そして、全てを選択した場合は、演算値変換ステップＳ９０９に進み、まだ選択していない矩形成分フィルタがある場合は、矩形成分フィルタ選択ステップＳ９０１に戻り、新たな矩形成分フィルタを選択していくようにする。つまり、全フィルタが選択されるか、途中で演算が打ち切られるまで、矩形成分フィルタ選択ステップＳ９０１から、全フィルタ選択分岐９０８までの処理が繰り返し実行されることになる。
【００９６】
全フィルタ選択判定分岐９０８において、全ての矩形成分フィルタを選択したと判定された場合は、処理点選択９００ステップＳで選択した点の、内部状態値ｕの演算が終了したことを意味する。そこで、Ｓ層の特徴検出細胞面での演算の場合は、演算値変換ステップＳ９０９で、その内部状態値ｕの非線形変換、本実施形態では、ｔａｎｈ関数ｆ（ｕ）＝ｔａｎｈ（ｕ）での変換を求め、処理点選択ステップＳ９００で選択した点の最終出力値をその値に設定する。そしてその後、全点選択判定分岐９１０に進む。Ｃ層の特徴統合細胞面での演算の場合、本実施形態では、非線形変換を行わないので、内部状態値ｕの値を、そのままステップＳ９００で選択した点の最終出力値として設定し、次のステップＳ９１０に進む。
【００９７】
最後に、全点選択判定分岐ステップＳ９１０では、処理点選択ステップＳ９００において全ての処理対象点を選択したか否かを判定する。全てを選択したと判定された場合、この特徴面の演算が終了となる。まだ選択していない処理対象点がある場合は、処理点選択ステップＳ９００に戻り、新たな処理対象点を選択していくようにする。つまりここでは、全ての処理対象点が選択され、各々について演算が実行されるまで、ステップＳ９００からステップＳ９１０までの処理が繰り返し実行されることになる。
【００９８】
上記説明した処理により、１つの特徴面での演算処理が終了し、１つの階層が有する全特徴面の演算が終了した段階で、図８のフィルタ演算処理ステップＳ８４での処理が終了する。ここでの処理は、図７のフィルタ演算処理部７５での処理に対応する。本実施形態においては、Ｓ層の特徴検出細胞面での演算に、上限、及び下限打ち切り閾値を導入し、演算を途中で打ち切って省略することで、処理コストの低減を行っている。しかし、本発明はこれに限るものではなく、例えば、どちらの打ち切りも導入しない構成や、上限打ち切りのみを導入するような構成であっても構わない。
【００９９】
演算結果保持ステップＳ８５は、後段階層での演算に用いるため、フィルタ演算処理８４で求めた各特徴面の結果を保持しておく。また、保持すると同時に、今までに保持した特徴面の結果の内、後の演算において必要が無くなった特徴面の結果を消去する。ここでの処理は、図７の演算結果保持部７６での処理に対応する。
【０１００】
以上の、結合先データ入力ステップＳ８２から演算結果保持ステップＳ８５までの処理により、ＣＮＮのＳ層、またはＣ層、１層分の演算が終了する。この処理を、階層数分繰り返すことで、ＣＮＮの演算が実行される。そして最後の検出結果出力ステップＳ８６では、演算結果保持ステップＳ８５に保持されたＣＮＮの最終階層の、Ｓ層の結果を閾値処理し、閾値を超えた出力の位置に、所望の特定パターンが存在するとして、その位置を外部に出力する。この閾値処理では、例えば０．９以上の最終出力値であるものを選択するというように行えば良い。また、ここでの処理で、もし閾値以上のものが無ければ、特定のパターンは存在しないという結果を出力するようにしても良い。この検出結果出力ステップＳ８６での処理は、図７の検出結果出力部７７での処理に対応する。
【０１０１】
以上の処理により、ＣＮＮによる特定パターン検出処理が可能となる。上記手法を用いることによって、結合係数を、充分少ない矩形成分フィルタと、それに対応する重みで近似できた場合には、第１の実施形態と同様に、演算の途中打ち切りを導入しなくても、通常のＣＮＮの演算に比べ演算コストを低減させることができる。また、結合係数が、充分少ない矩形成分フィルタと、それに対応する重みで近似できなかった場合であっても、上記実施形態のように、演算途中打ち切りを導入することで、処理コストを低減することができる。また当然、結合係数が、充分少ない矩形成分フィルタと、それに対応する重みで近似できた場合にも、演算途中打ち切りを導入することで、さらに処理コストを低減させることが可能である。
【０１０２】
以上、第２の実施の形態は、入力として２次元濃淡画像を用い、入力された２次元画像内の特定パターン検出処理を行う、パターン識別方法の例として説明した。また、入力された画像が特定のパターンを含むか否かという２つのクラスへ分類することが可能となった。
【０１０３】
なお本発明は、コンピュータ読み取り可能な記憶媒体からＣＰＵがプログラムを読出して実行することによって、前述した実施形態の各機能が実現される場合も含まれる。
【０１０４】
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ、ＤＶＤ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１０５】
さらに、画像入力装置、情報蓄積機器、またこれらが複合または接続された装置において、両方またはいずれかの装置に備わるＣＰＵなどが実際の処理の一部または全部を行うことで前述した実施形態の機能が実現される場合も含まれる。
【０１０６】
上記画像入力装置としては、ビデオカメラ、デジタルカメラ、監視カメラなど各種ＣＣＤを利用したカメラやスキャナ、アナログ画像入力装置からＡＤ変換によりデジタル画像に変換された画像入力装置が利用できる。上記情報蓄積機器としては、外部ハードディスク、ビデオレコーダなどが利用できる。
【図面の簡単な説明】
【０１０７】
【図１】第１の実施形態におけるフィルタ演算方法の機能構成を示すブロック図である。
【図２】第１の実施形態におけるフィルタ演算処理手順を示すフローチャートである。
【図３】第１の実施形態における所望のフィルタ演算を行うためのフィルタの例を示す図である。
【図４】所望のフィルタを矩形成分フィルタとそれぞれの重みとに分解した例を示す図である。
【図５】第２の実施形態におけるＣＮＮの全体構成の例を示す図である。
【図６】第２の実施形態におけるＣＮＮの部分構造例を示す図である。
【図７】第２の実施形態におけるパターン識別方法の機能構成を示すブロック図である。
【図８】第２の実施形態におけるパターン識別処理手順を示すフローチャートである。
【図９】第２の実施形態におけるフィルタ演算処理の１つの特徴面での演算処理手順を示すフローチャートである。
【図１０】領域パターンの例を示す図である。
【図１】
2009105725.tif 000008
【図２】
2009105725.tif 000009
【図３】
2009105725.tif 000010
【図４】
2009105725.tif 000011
【図５】
2009105725.tif 000012
【図６】
2009105725.tif 000013
【図７】
2009105725.tif 000014
【図８】
2009105725.tif 000015
【図９】
2009105725.tif 000016
【図１０】
2009105725.tif 000017