(57)【特許請求の範囲】
【請求項１】
画像ベクトルの属するクラスを認識するための信号処理方法であって、
各クラスの代表ベクトルに所定の初期ベクトルを割り当てる初期ベクトル割り当て工程と、
所定の画像ベクトルとその画像ベクトルが所属すべきクラス識別子のペアを入力する第１の入力工程と、
前記第１の入力工程で入力されたクラス識別子が示すクラスの代表ベクトルを、前記所定の画像ベクトルと前記代表ベクトルとの差ベクトルに基づく修正量で修正する代表ベクトル修正工程と、
前記画像ベクトルとそのクラス識別子のペアと前記代表ベクトル修正工程で前記代表ベクトルを修正した修正回数に基づいて、前記クラス識別子が示すクラスにおける当該画像ベクトルの時間軸方向での分散を表す分散ベクトルを計算する分散ベクトル計算工程と、
前記第１の入力工程と前記代表ベクトル修正工程と前記分散ベクトル計算工程とを、少なくとも、前記所定の画像ベクトルとその画像ベクトルが所属すべきクラス識別子のペアの数分、繰り返し実行させる繰り返し実行工程と、
分類対象の画像ベクトルを入力する第２の入力工程と、
前記第２の入力工程で入力された分類対象の画像ベクトルが各クラスに所属するか否かに関する当該クラスに対応した出力値について、当該分類対象の画像ベクトルと第ｋクラスの代表ベクトルと前記第ｋクラスの分散ベクトルと干渉強度行列と現在の各クラスに対応した前記出力値に基づく修正量で、前記第ｋクラスに対応した前記出力値を修正する修正処理を、全てのｋに関して繰り返し実行する出力値修正工程とを備えることを特徴とする信号処理方法。
【請求項２】
前記画像ベクトルは、ＭｘＮ個のピクセルで構成される画像を前記ピクセルをベクトル要素として表現したものであることを特徴とする請求項１に記載の信号処理方法。
【請求項３】
前記代表ベクトル修正工程における修正量は、前記所定の画像ベクトルと前記クラス識別子が示すクラスの代表ベクトルとの差ベクトルに所定の更新係数値を掛けた値であることを特徴とする請求項１に記載の信号処理方法。
【請求項４】
前記分散ベクトルは、前記代表ベクトルの各ピクセルの有効度を示す指標であることを特徴とする請求項１に記載の信号処理方法。
【請求項５】
前記分散ベクトル計算工程は、前記画像ベクトルとそのクラス識別子のペアと前記代表ベクトル修正工程で前記代表ベクトルを修正した修正回数に基づいて、前記クラス識別子が示すクラスにおける当該画像ベクトルの時間軸方向での分散を表す分散ベクトルを計算し、さらに、計算された分散ベクトルの各要素を所定の閾値で２値化して、２値化分散ベクトルを生成することを特徴とする請求項１に記載の信号処理方法。
【請求項６】
前記干渉強度行列は、前記修正量に影響を与える、各クラスに対応した前記出力値間の干渉値を要素とする行列であることを特徴とする請求項１に記載の信号処理方法。
【請求項７】
前記出力値修正工程は、
前記第２の入力工程で入力された画像ベクトルと第ｋクラスの代表ベクトルとの前記第ｋクラスの分散ベクトルで重みづけされた内積を求める第１計算工程と、
干渉強度行列の第ｋ行ベクトルと現在の各クラスに所属する出力値間の内積を求める第２計算工程と、
前記第１計算工程で求められた内積値と前記第２計算工程で求められた内積値を加算する第３計算工程と、
前記第３計算工程で加算された結果の加算値に基づいて修正量を求める第４計算工程と、
前記第４計算工程で求められた修正量に基づいて、前記第ｋのクラスに対応した出力値を修正し、前記修正処理を全てのｋに関して繰り返し実行する第５計算工程と、
前記ｋの全ての値に関して、前記第２計算工程から第５計算工程を繰り返す制御を行う繰り返し制御工程とを備えることを特徴とする請求項１に記載の信号処理方法。
【請求項８】
前記修正処理を全てのｋに関して繰り返し実行する実行は、前記各出力値の変化量が所定値より小さくなるまで繰り返されることを特徴とする請求項１に記載の信号処理方法。
【請求項９】
前記修正処理を全てのｋに関して繰り返し実行する実行は、所定の回数まで繰り返されることを特徴とする請求項１に記載の信号処理方法。
【請求項１０】
画像ベクトルの属するクラスを認識するための信号処理装置であって、
各クラスの代表ベクトルに所定の初期ベクトルを割り当てる初期ベクトル割り当て手段と、
所定の画像ベクトルとその画像ベクトルが所属すべきクラス識別子のペアを入力する第１の入力手段と、
前記第１の入力手段で入力されたクラス識別子が示すクラスの代表ベクトルを、前記所定の画像ベクトルと前記代表ベクトルとの差ベクトルに基づく修正量で修正する代表ベクトル修正手段と、
前記画像ベクトルとそのクラス識別子のペアと前記代表ベクトル修正手段で前記代表ベクトルを修正した修正回数に基づいて、前記クラス識別子が示すクラスにおける当該画像ベクトルの時間軸方向での分散を表す分散ベクトルを計算する分散ベクトル計算手段と、
前記第１の入力手段と前記代表ベクトル修正手段と前記分散ベクトル計算手段とによる処理を、少なくとも、前記所定の画像ベクトルとその画像ベクトルが所属すべきクラス識別子のペアの数分、繰り返し実行させる繰り返し実行手段と、
分類対象の画像ベクトルを入力する第２の入力手段と、
前記第２の入力手段で入力された分類対象の画像ベクトルが各クラスに所属するか否かに関する当該クラスに対応した出力値について、当該分類対象の画像ベクトルと第ｋクラスの代表ベクトルと前記第ｋクラスの分散ベクトルと干渉強度行列と現在の各クラスに対応した前記出力値に基づく修正量で、前記第ｋクラスに対応した前記出力値を修正する修正処理を、全てのｋに関して繰り返し実行する出力値修正手段とを備えることを特徴とする信号処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、信号処理方法とその装置、特に、カテゴリの代表ベクトルの生成、生成された代表ベクトルに基づき、パターン認識やベクトル量子化を行う信号処理方法とその装置に関する。
【０００２】
【従来の技術】
ベクトル量子化装置は、音声や画像等の信号を符号化復号化したり、認識したりする場合に盛んに用いられる。その目的は、一般に多次元の信号を、１次元の整数で表現することによって、データ圧縮を行うことにある。
例えば、データ通信では、送信側と受信側は同じコードブックを予め持っていることを前提とする。ここで、コードブックとは、代表ベクトルと符号語（整数）を対応させている表である。入力ベクトルは、一般に連続ベクトル、符号語は離散値であるから、ベクトル量子化による過程は歪みを伴う。
【０００３】
送信側では、コードブックをもとに、入力ベクトルを符号語に量子化する。また、受信側では、コードブックをもとに符号語をベクトルに復号する。ベクトル量子化装置は、ベクトル量子化の前後の処理の方法や、コードブックの獲得方法によって、様々な組み合わせが可能である。詳しくは、
１．RM.Gray:"Vector Quantization",IEEE ASSP Magazine,(Apr.1984).
２．NM.Nasrabadi,et.al.:"Image Coding Using Vector Quantization:A
Review",IEEE Trans.Communications,vol.36,no.8(Aug.1988).
等を参照されたい。
【０００４】
パターン認識に用いるときには、例えば、まず、画像（例えば、'Ａ'の文字パターン）とそれに対応する符号語（例えば、'Ａ'のＡＳＣＩＩコード）の組の集合を入力データセットとして用意する。そして、同じ符号語と組になっている画像から統計的処理で代表ベクトルを獲得することによって、コードブックを作成する。このコードブックを用いて、入力画像の認識を行う。
【０００５】
また、ベクトル量子化装置を２次元画像符号化に適用する場合、画像全てを１つのベクトルとして扱い１つの符号語で表現するのか、或いは分割した部分画像をそれぞれ対応する符号語で表現し、画像をこれらの符号語の組で表現するのかは、ベクトル量子化装置を設計する重要な設計要因である。
一般に、画像には様々な物体が様々な大きさで任意の位置に出現しているから、画像全体を１つのベクトルとして扱う方法は効率的とは言えない。そこで、画像を等間隔に分割したり、さらに階層的に表現したりした後、ベクトル量子化を施すという方法が取られている。
【０００６】
例えば、CU.Lee:"Adaptive block size image compression method and systeem",PATno.(US5107345).
【０００７】
【発明が解決しようとする課題】
しかしながら、これらの方法では、代表ベクトルの定義域は単連結領域（矩形領域）であり、入力ベクトルの符号化は、この単連結領域上での、入力ベクトルと代表ベクトルの間の距離で決定されてしまう。
すると、例えば、図１（ａ）に示すようなパターンは、図１（ｂ）よりも、図１（ｃ）に近いと判断されてしまう。この例は、自然画像では頻繁に起こりうるケースである。
【０００８】
本発明は、上記従来例に鑑みてなされたもので、所定の画像パターンの背景に左右されない適切なカテゴリの代表ベクトルの生成を行い、それに基づいて、高精度のパターン認識やベクトル量子化を行う信号処理方法とその装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記の目的を達成するための本発明の信号処理方法は、
画像ベクトルの属するクラスを認識するための信号処理方法であって、
各クラスの代表ベクトルに所定の初期ベクトルを割り当てる初期ベクトル割り当て工程と、
所定の画像ベクトルとその画像ベクトルが所属すべきクラス識別子のペアを入力する第１の入力工程と、
前記第１の入力工程で入力されたクラス識別子が示すクラスの代表ベクトルを、前記所定の画像ベクトルと前記代表ベクトルとの差ベクトルに基づく修正量で修正する代表ベクトル修正工程と、
前記画像ベクトルとそのクラス識別子のペアと前記代表ベクトル修正工程で前記代表ベクトルを修正した修正回数に基づいて、前記クラス識別子が示すクラスにおける当該画像ベクトルの時間軸方向での分散を表す分散ベクトルを計算する分散ベクトル計算工程と、
前記第１の入力工程と前記代表ベクトル修正工程と前記分散ベクトル計算工程とを、少なくとも、前記所定の画像ベクトルとその画像ベクトルが所属すべきクラス識別子のペアの数分、繰り返し実行させる繰り返し実行工程と、
分類対象の画像ベクトルを入力する第２の入力工程と、
前記第２の入力工程で入力された分類対象の画像ベクトルが各クラスに所属するか否かに関する当該クラスに対応した出力値について、当該分類対象の画像ベクトルと第ｋクラスの代表ベクトルと前記第ｋクラスの分散ベクトルと干渉強度行列と現在の各クラスに対応した前記出力値に基づく修正量で、前記第ｋクラスに対応した前記出力値を修正する修正処理を、全てのｋに関して繰り返し実行する出力値修正工程とを備える。
【００１０】
また、本発明による信号処理装置は以下の構成を備える。すなわち、
画像ベクトルの属するクラスを認識するための信号処理装置であって、
各クラスの代表ベクトルに所定の初期ベクトルを割り当てる初期ベクトル割り当て手段と、
所定の画像ベクトルとその画像ベクトルが所属すべきクラス識別子のペアを入力する第１の入力手段と、
前記第１の入力手段で入力されたクラス識別子が示すクラスの代表ベクトルを、前記所定の画像ベクトルと前記代表ベクトルとの差ベクトルに基づく修正量で修正する代表ベクトル修正手段と、
前記画像ベクトルとそのクラス識別子のペアと前記代表ベクトル修正手段で前記代表ベクトルを修正した修正回数に基づいて、前記クラス識別子が示すクラスにおける当該画像ベクトルの時間軸方向での分散を表す分散ベクトルを計算する分散ベクトル計算手段と、
前記第１の入力手段と前記代表ベクトル修正手段と前記分散ベクトル計算手段とによる処理を、少なくとも、前記所定の画像ベクトルとその画像ベクトルが所属すべきクラス識別子のペアの数分、繰り返し実行させる繰り返し実行手段と、
分類対象の画像ベクトルを入力する第２の入力手段と、
前記第２の入力手段で入力された分類対象の画像ベクトルが各クラスに所属するか否かに関する当該クラスに対応した出力値について、当該分類対象の画像ベクトルと第ｋクラスの代表ベクトルと前記第ｋクラスの分散ベクトルと干渉強度行列と現在の各クラスに対応した前記出力値に基づく修正量で、前記第ｋクラスに対応した前記出力値を修正する修正処理を、全てのｋに関して繰り返し実行する出力値修正手段とを備える。
【００１８】
【実施の形態】
はじめに、本発明の実施の形態の信号処理方法とその装置のポイントを要約した後に、その詳細な説明に入るものとする。
本発明の実施の形態の信号処理方法とその装置におけるコードブックは、例えば、図２の外枠で囲まれたような領域をパターン“Ａ”の定義域とする。即ち、後述する属性ベクトル計算部２０３で生成される部分画像のピクセル要素に対応する信頼度（属性ベクトルνkの各要素値）に基づいて、その定義域を定めることで、実際は全く異なるパターンのカテゴリを選択してしまうようなパターンミスマッチングを防ぐことが、本実施の形態における１つのポイントである。
【００１９】
これによって、任意のベクトルを分類するために計算される内積の値が、背景の値に影響されないため、所定のパターンと背景が予め分離されていないような一般の画像を入力されても、適正な各カテゴリを代表する代表ベクトルを生成することができ、また、その代表ベクトルと上述の属性ベクトルνkに基づいて、精度の高いベクトル量子化、並びに、認識率の高いパターン認識を行うことができる。
【００２０】
以下、本発明の実施の形態の信号処理方法とその装置の詳細な説明を行う。
図３は、本実施の形態１を最もよく表わす図であり、
１０１は、２次元信号入力装置およびＡ／Ｄ変換装置であり、２次元信号を２次元デジタル信号に変換する。
１０２は、領域切り出し装置であり、２次元デジタル画像から部分画像を切り出す。これは、通常の描画ソフトウエアの機能として提供されている切り出しを利用すればよい。また、領域の形状は矩形で構わない。
【００２１】
１０３は、部分ベクトル記憶用バッファであり、領域切り出し装置１０２で切り出された２次元部分デジタル画像（以下、単に"部分ベクトル"と呼ぶ）と符号語ベクトルの組が適当な時間このバッファに保持される。
ここで、符号語ベクトルとは、対応する部分ベクトルが属するクラスの番号を表すもので、例えば、部分ベクトルが３番目のクラスに属する時の符号語ベクトルは、（０、０、１、０、．．．、０）になる。
【００２２】
１０４は、入力した部分ベクトルの数を記憶する部分ベクトル入力回数記憶用バッファであり、部分ベクトル記憶用バッファ１０３の内容が演算素子に送信された回数を保持している。
１０５は、各演算素子である。各演算素子は、部分ベクトルを分類するためのクラスと１対１に対応しており、１つのカテゴリを表現する代表ベクトル（後述する係数ベクトルωk）と属性ベクトルνkを生成する。
【００２３】
この演算素子１０５の詳細な構成と関連処理部のインターフェイスの具体的構成例を図４に示す。
１０６はモード選択信号であり、演算素子１０５の処理動作モードを指定する。演算素子１０５は、基本的に２つの動作モードを有しており、モード指定信号１０６によって、その動作モードが指定される。
【００２４】
２つのモードとは：
係数／属性ベクトル更新モード
部分ベクトル認識モード
であり、各演算素子１０５ではこれらのいづれかに指定されたモードに対応する処理を行う。この係数／属性ベクトル更新モードは、係数ベクトルや属性ベクトルを更新するモードであり、部分ベクトル認識モードは部分ベクトルを認識するモードである。各モードでの処理の詳細は後述する。
【００２５】
次に、図４を参照して、演算素子１０５は、係数ベクトル計算部２０１とその計算結果を格納する係数ベクトル記憶用バッファ２０２、属性ベクトル計算部２０３とその計算結果を格納する属性ベクトル記憶用バッファ２０４、干渉強度行列計算部２０５とその計算結果を格納する干渉強度行列記憶用バッファ２０６、演算素子の出力値を計算する出力値計算部２０７とその計算結果を格納する出力値記憶バッファ２０８を備える。この演算素子１０５はＫ個用意されている。
【００２６】
ｋ番目の演算素子ＰＥkは、例えば、大きさがＭ×Ｎの２次元部分ベクトルに対して、
Ｍ×Ｎ次元係数ベクトルωkを一個、
３種類のＭ×Ｎ次元属性ベクトルａk，ｂk，νk、
ＫｘＫ個の要素を持つ干渉強度行列Ｃor、
出力値ｏk
とを持っている。各演算素子１０５内の各構成要素での処理は、上述の２つのモードのいづれかで異なるため、その詳細は、以下に記述する各モードでの処理説明部で行う。
【００２７】
尚、各演算素子１０５の出力計算部２０７とその出力結果を格納する出力値記憶バッファと干渉強度行列計算部２０５とその計算結果を格納する干渉強度行列記憶用バッファ２０６は、後述する係数／属性ベクトル更新モードでは使われず、部分ベクトル認識モードで使われる。
次に、モード指定信号１０６によって、係数／属性ベクトル更新モードが指定された場合の処理手順を以下に説明する。
＜＜係数／属性ベクトル更新モードでの処理＞＞
２次元画像データに応用する際の各演算素子１０５の係数ベクトルと３種類の属性ベクトルを更新する場合での処理内容について、図３、図４を参照して説明する。
【００２８】
１．所定の画像を入力して、Ａ／Ｄ変換装置１０１にて、対応する２次元デジタル画像ｆ：
ｆ＝｛ｆi,j｝                                  （１）
ここで、０≦ｉ＜Ｉ
０≦ｊ＜Ｊ
i,j∈Ｚ
に変換する。
【００２９】
２．領域切り出し装置１０２では、２次元デジタル画像から部分デジタル画像ｇ（以下、部分ベクトルｇと呼ぶ）：
ｇ＝｛ｇm,n｝                                  （２）
ここで、０≦ｍ＜Ｍ≦Ｉ
０≦ｎ＜Ｎ≦Ｊ
ｍ,ｎ∈Ｚ
を切り出す。図２は、文字Ａが切り出された領域の一例を示すものである。
【００３０】
３．部分ベクトル記憶用バッファ１０３は、領域切り出し装置１０２で切り出された部分画像（部分ベクトルｇ）を格納する。また、各演算素子１０５を識別するための符号語ベクトルｄ：
ｄ＝｛ｄk｝                                    （３）
ここで、０≦ｋ＜Ｋ
ｋ：演算素子番号
を予め格納している。ここで、符号語ベクトルｄは、対応する部分ベクトルｇがクラスｋに属するときの符号語ベクトルｄの要素ｄkは"１"であり、それ以外は"０"となる要素構成を有するベクトルである。例えば、クラス４に属する部分ベクトルｇに対応する符号語ベクトルｄは、
（000100...0000）
の様に第４番目のベクトル要素が"１"となる要素構成を有する。
【００３１】
この様に、各演算素子に対応する符号語ベクトルｄを部分ベクトル記憶用バッファ１０３では予め格納している。
そして、各演算素子１０５には、部分ベクトルｇとその部分ベクトルが所属すべきカテゴリを代表する演算素子の符号語ベクトルｄがペアで送信される。これらは、各演算素子１０５の係数ベクトル計算手段２０１と属性ベクトル計算手段２０３に入力される。
【００３２】
また、部分ベクトル入力回数記憶用バッファ１０４は、部分ベクトル記憶用バッファ１０３に入力した部分ベクトルの入力回数ｎを、各演算素子１０５の属性ベクトル計算部１０４に転送する。
４．各演算素子１０５では、部分ベクトルｇと各演算素子１０５に対応する符号語ベクトルｄと入力回数ｎを入力して、下記の各処理を実行する。
＜係数ベクトル計算部２０１での処理＞
５．係数ベクトル計算部２０１では、演算素子ＰＥkの係数ベクトルωkを次式の更新規則で計算して、更新する。
【００３３】
ωk←ωk＋ηωｄk（ｇ−ωk）                  （４）
ここで、ηωは、適当な係数ベクトルωkの更新係数である。そして、計算された係数ベクトルωkを係数ベクトル記憶バッファ２０２に送り、格納させる。
ここで、各演算素子１０５が有する係数ベクトルωkは 、各演算素子１０５がサポートするカテゴリの代表ベクトルを意味する。
【００３４】
尚、各係数ベクトルωkの初期値として、各カテゴリの代表ベクトルの所定の基準値が、、例えば、記憶バッファ２０２に予め格納されているものとする。そして、各演算素子の係数ベクトル計算部２０１では、記憶バッファ２０２に予め格納されている係数ベクトルωkの初期値をロードして、式（４）の繰り返し演算を行う。
＜属性ベクトル計算部２０３での処理＞
６．属性ベクトル計算部２０３では、部分ベクトルｇと各演算素子１０５に対応する符号語ベクトルｄと入力回数ｎを入力して、各演算素子ＰＥkのＭｘＮ次元属性ベクトル
ａk，ｂk，νk
を以下の式を計算することで更新する。
【００３５】
ａkm,n ← ａkm,nｄkｇm,n                    （５）
ｂkm,n ← ｂkm,nｄkｇm,nｇm,n               （６）
νkm,n ← θ(ｂkm,n/ｎ − ａkm,nａkm,n/ｎ)  （７）
ここで、
ｎ    ：記憶バッファ１０４に記憶されている入力した部分ベクトルｇの数
θ(ｘ)：変数ｘの値が予め設定された値を越えれば"０"、それ以外は"１"を返す関数
νkm,n：現時刻までに与えられた部分ベクトルの要素ｇm,nの時間軸方向での分散を反映させた値。従って、νkm,nが大きいということは、その画素値を平均値で代表させた時に、誤差が非常に大きくなることを示す。
【００３６】
次に、計算された上記３種類の属性ベクトルは、属性ベクトル記憶バッファ２０４に格納される。
ここで、νkm,nは、後述のパターン認識やベクトル量子化処理で、本処理で最終的に獲得された各代表ベクトルの各要素の信頼性を反映する１つの尺度として用いられる。
【００３７】
θ（ｘ）として、予め設定された値の付近で、ｘの増加に伴って、１から０に単調減少していく関数を採用すれば、分散ベクトルの要素は、０から１の範囲の実数値をとり、要素の信頼性を連続的に表現することもできる。
７．上述した領域切り出し装置１０２から次々入力される部分ベクトルに対応して、上述の各処理を繰り返す。
【００３８】
以上の処理により、最終的に、各演算素子がサポートするクラスの代表ベクトルである係数ベクトルωk、その信頼性の尺度を与える属性ベクトルνk を求めることができる。
以上、係数／属性ベクトル更新モードでの処理手順を説明した。
次に、モード指定信号１０６によって、部分ベクトル認識モードが指定された場合の処理手順を以下に説明する。
＜＜部分ベクトル認識モードでの処理＞＞
以下、部分ベクトル認識モードでの処理、言い換えれば、パターン認識及びベクトル量子化処理手順を、図３、図４、図５を参照しながら説明する。
【００３９】
ここで、パターン認識及びベクトル量子化処理対象の入力ベクトルは、グレーレベルのデジタル画像とする。また、最終的な係数ベクトルωk、属性ベクトルνk 、及び、干渉強度行列ｃｏｒi,j は、既に、上述の係数／属性ベクトル更新モードでの処理手順を実行することにより、既に、計算されているものとする。図５の（ａ）は、入力画像から生成されたデジタル画像の一例を示す。また、図５の（ｂ）と（ｃ）はそれぞれ、演算素子ＰＥ1とＰＥ2の係数ベクトルを所定の閾値に基づいて２値化した結果を示す。さらに、図５の（ｄ）と（ｅ）はそれぞれ、演算素子ＰＥ1とＰＥ2の属性ベクトルを所定の閾値に基づいて２値化したものを示す。
【００４０】
ただし、図中、色の黒さがそれぞれの値の大きさを表している（例えば、白が０、黒が２５５）ものとする。
以下、順に、対象の入力画像を、パターン認識またはベクトル量子化する処理手順を以下に説明する。
１．  パターン認識またはベクトル量子化される対象入力画像は、Ａ／Ｄ変換装置１０１に入力され、デジタル画像に変換される。この変換されたデジタル画像の一例を図５の（ａ）に示す。
【００４１】
２．  Ａ／Ｄ変換装置１０１で生成されたデジタル画像は、領域切り出し装置１０２によって、適当な部分デジタル画像領域を切り出す。そして、切り出された部分画像ｈを部分ベクトル記憶用バッファ１０３に格納する。
ここで、読者の理解を容易にするために、切り出された部分デジタル画像領域は、図５の（ａ）と同じ領域であったとする。
【００４２】
３．  部分ベクトル記憶用バッファ１０３から、全ての演算素子１０５に、格納された部分デジタル画像ｈを送信する。
また、部分ベクトル提示回数記憶用バッファ１０４に格納されている、領域切り出し装置１０２から出力された部分画像の数をカウントするカウント値ｎをインクリメントする。そして、このカウント値ｎも全ての演算素子１０５に送信する。
【００４３】
次に、演算素子１０５での処理手順を説明する。
４．各演算素子１０５の出力値計算部２０７では、部分ベクトル記憶用バッファ１０３から部分デジタル画像ｈ、記憶バッファ２０２から係数ベクトルωk、記憶バッファ２０４から属性ベクトルνk、記憶バッファ２０６から干渉強度行列
ｃｏｒと、出力値記憶バッファ２０８に記憶されている演算素子１０５の１時刻前の出力値olとを入力して、式（９）に対応する演算を行って、olを出力する。
【００４４】
ここで、図５の（ａ）は、切り出された部分画像（部分ベクトルｈ）の一例を示す。また、図５の（ｂ）は、演算素子ＰＥ1の係数ベクトルωkの一例を示す。また、図５の（ｃ）は、演算素子ＰＥ2の係数ベクトルωkの一例を示す。また、図５の（ｄ）は、演算素子ＰＥ1の属性ベクトルνkの一例を示す。図５の（ｅ）は、演算素子ＰＥ2の属性ベクトルνkの一例を示す。
【００４５】
入力の１つである干渉強度行列ｃｏｒは、予め干渉強度行列計算部２０５で計算されたものである。ここで、干渉強度行列ｃｏｒに関する説明を行った上で、出力値計算部２０７での処理を説明することとする。
干渉強度行列計算部２０５は、演算子間の干渉強度行列ｃｏｒを計算する。干渉強度行列ｃｏｒは、任意の２個の演算素子ｉ，ｊ間の干渉強度：
ｃｏｒi,j   （０≦ ｉ,ｊ ＜Ｋ）
を要素として持つ。即ち、演算素子の数の２乗の要素数を持つ行列で記述できる。  干渉強度の各要素は、例えば、次式による：
ｃｏｒi,j ＝ａ   （ｉ＝ｊの場合）
＝−ｂ （ｉ≠ｊの場合）                  （８）
ここで、ａ，ｂは適当な定数である。
【００４６】
尚、干渉強度行列計算部２０５は、式（８）によって生成される干渉強度行列ｃｏｒを、予め、内蔵する不図示のメモリに格納しておいてもよい。この場合、式（８）の計算は不要であることは言うまでもない。
以下、出力値計算部２０７での処理内容を説明する。
出力値計算部２０７では、上述の各入力に基づいて、以下の式によって、演算素子ＰＥkの次の時刻での出力値ｏkを算出し、出力値記憶バッファ２０８に記憶する。
【００４７】
0003862314.tif 000002
ただし、sig(ｘ)は単調増加関数を表す。
上式から明らかなように、演算素子の出力値は再帰的に計算されるので、出力値の収束を判定する機構、或いは値の更新関数に対する制限によって、出力値を確定することができる。
【００４８】
５．演算素子の値が出力値の変化量が所定の閾値より小さくなるまで、或いは、予め設定した更新回数に達するまで、出力値計算部２０７での計算を繰り返す。
以上の繰り返し処理によって、最終的に、演算素子１０５の出力ｏl（ｌ=1,2,...）のうちの１つの出力が論理"１"（他の演算素子の出力は論理"０"）となり、その演算素子が代表するクラスがパターン認識結果、あるいは、ベクトル量子化結果として得られる。
（第２の実施の形態）
第２の実施の形態では、図６に示す構成のハードウエア上で、上述した各処理に対応する処理プログラムを実行することによって実現する信号処理方法を示す。
【００４９】
図６は、本実施の形態の信号処理を実行するための情報処理装置の構成を示す。
ＣＰＵ２００は、本情報処理装置全体の制御を、メモリ２０２に格納された各種制御プログラムを読み出し、解釈し、実行することで行う。また、メモリ２０２には、ＡＤＣ（アナログ-デジタル変換器）２０５で変換された、カテゴリの代表ベクトルを求めるための複数の画像データと、パターン認識対象の画像データが既に格納されている。
【００５０】
ＡＤＣ（アナログ-デジタル変換器）２０５は、外部からアナログ画像データを入力し、デジタルデータに変換して、ＣＰＵ２００へ転送する。
キーボード２０３とポインティングデバイス２０４は、コマンドやデータの入力を行う。
ディスプレイモニタ２０１は、ＣＰＵ２００での処理結果や、キーボード２０３とポインティングデバイス２０４から入力したコマンドやデータを表示する。
【００５１】
次に、図７のフローチャート参照して、係数／属性ベクトル生成処理を説明する。
ステップＳ１では、ＡＤＣ２０５を経由して入力したデジタル画像データを読み込んで、メモリ２０２に格納する。
ステップＳ２では、部分ベクトル入力カウンタｎを１に初期化する。
【００５２】
ステップＳ３では、メモリ２０２に格納された画像データから部分画像を切り出す。
ステップＳ４では、演算素子番号ｋを１に初期化する。
ステップＳ５では、演算素子ＰＥkに対応する係数ベクトルωk
を式（４）に従って更新する。
【００５３】
ステップＳ６では、演算素子ＰＥkに対応する属性ベクトルνkを式（５）、式（６）、式（７）に従って更新する。
ステップＳ７では、ｋを１インクリメントする。
ステップＳ８では、ｋがＫ（演算素子数）より大きくなったか、言い換えれば、１つの部分画像に対応する処理を全演算素子に対応して終了したかどうかを判定し、大きくなければ、即ち、終了していなければ、ステップＳ５へ戻り、次の演算素子ＰＥkに対応する同様の演算を繰り返す。逆に、大きければ、即ち、終了していれば、ステップＳ９へ進む。
【００５４】
ステップＳ９では、ｎを１インクリメントする。
ステップＳ１０では、ｎがＮ（全部分画像数）より大きくなければ、言い換えれば、未処理の部分画像が残っていれば、ステップＳ３に戻り、次の部分画像を切り出して、同様の処理を繰り返す。逆に、未処理の部分画像がなくなれば、処理を終了する。
【００５５】
以上の処理により、各クラスを代表する代表ベクトルである係数ベクトルωkと部分画像の有効な定義域を示す属性ベクトルνkを求めることができる。
次に、図８を参照して、図７のフローチャートの処理に従って生成された係数ベクトルωkと属性ベクトルνkに基づいて、部分画像の認識、或いは量子化を行う処理の手順を説明する。
【００５６】
ステップＳ１１は、ＡＤＣ２０５を経由して入力した、パターン認識を行う対象画像であるデジタル画像データを読み込んで、メモリ２０２に格納する。
ステップＳ１２では、部分ベクトル入力カウンタｎを１に初期化する。
ステップＳ１３では、メモリ２０２に格納された画像データから部分画像を切り出す。
【００５７】
ステップＳ１４では、演算素子番号ｋを１に初期化する。
ステップＳ１５では、式（９）に基づいて、出力ｏkを更新する。
ステップＳ１６では、ｋを１インクリメントする。
ステップＳ１７では、ｋがＫ（演算素子数）より大きくなったか、言い換えれば、１つの部分画像に対応する処理を全演算素子に対応して終了したかどうかを判定し、大きくなければ、即ち、終了していなければ、ステップＳ１５へ戻り、次の演算素子ＰＥkに対応する同様の演算を繰り返す。逆に、大きければ、即ち、終了していれば、ステップＳ２０へ進む。
【００５８】
ステップＳ２０では、所定の収束条件、即ち、各演算素子ＰＥkの出力値の変化量が所定の閾値より小さくなるまで、或いは、予め設定した更新回数に達するまで、ステップＳ１４に戻って、繰り返し処理を行う。収束すれば、ステップＳ１８へ進む。
ステップＳ１８では、ｎを１インクリメントする。
【００５９】
ステップＳ１９では、ｎがＮ（全部分画像数）より大きければ、言い換えれば、未処理の部分画像が残っていれば、ステップＳ１３に戻り、次の部分画像を切り出して、同様の処理を繰り返す。逆に、未処理の部分画像がなくなれば、処理を終了する。
以上の繰り返し処理によって、最終的に、各演算素子ＰＥkの出力ｏk（ｋ=1,2,...）のうちの１つの出力が論理"１"（他の演算素子の出力は論理"０"）となり、その演算素子が代表するクラスが部分ベクトルに対するパターン認識結果、あるいは、ベクトル量子化結果として得られる。
【００６０】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００６１】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００６２】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６３】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６４】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードを格納することになるが、簡単に説明すると、図９のメモリマップ例に示す各モジュールを記憶媒体に格納することになる。
すなわち、少なくとも、図７のフローチャートの処理に対応するプログラムモジュールである「係数／属性ベクトル生成モジュール」と、図８のフローチャートの処理に対応するプログラムモジュールである「部分ベクトル認識モジュール」
の各モジュールのプログラムコードを記憶媒体に格納すればよい。
【００６５】
上記構成と処理によって、パターンと背景が分離されていない画像の集合から、そこに存在する特徴的パターン（背景に影響されない）を学習によって抽出し、さらに、認識、符号化を行うことが可能になる。
【００６６】
【発明の効果】
以上説明したように本発明によれば、所定の画像パターンの背景に左右ない適切なカテゴリの代表ベクトルの生成を行い、それに基づいて、高精度のパターン認識やベクトル量子化を行うことができる。
【図面の簡単な説明】
【図１】従来の技術での問題点を説明するための図である。
【図２】本実施の形態の信号処理方法のポイントとなる基本的処理概念を説明するための図である。
【図３】本実施の形態の信号処理装置の概念構成図である。
【図４】演算素子の詳細構成と、関連処理部の構成図である。
【図５】本実施の形態の信号処理装置での処理方法を説明するための図である。
【図６】本実施の形態の信号処理をソフトウエアで実現したときの、そのソフトウエアを実行するための情報処理装置の構成を示す図である。
【図７】本実施の形態の信号処理の係数／属性ベクトル生成処理手順を示すフローチャートである。
【図８】本実施の形態の信号処理の部分画像認識処理手順を示すフローチャートである。
【図９】図７と図８のフローチャートに対応するプログラムモジュールを、所定の記録媒体に格納したときの、レイアウトの一例を示す図である。
【符号の説明】
１０１  Ａ／Ｄ変換装置
１０２  領域分離装置
１０３  部分ベクトル記憶バッファ
１０４  部分ベクトル提示回数記憶バッファ
１０５  演算素子
２０１  係数ベクトル計算部
２０３  属性ベクトル計算部
２０５  干渉強度行列計算部
２０７  出力値計算部
【図１】
0003862314.tif 000003
【図２】
0003862314.tif 000004
【図３】
0003862314.tif 000005
【図４】
0003862314.tif 000006
【図５】
0003862314.tif 000007
【図６】
0003862314.tif 000008
【図７】
0003862314.tif 000009
【図８】
0003862314.tif 000010
【図９】
0003862314.tif 000011