(57)【要約】【課題】効率的にパターンを認識する処理を行うことができるパターン認識方法、文字認識方法、パターン認識プログラムおよび文字認識プログラムを提供できる。【解決手段】情報処理装置（１１）は、複数段階の部分パターンからなるパターン全体を認識する処理において、各段階の認識候補となりうる各認識候補を検出し（Ｓ７１）、各段階の各認識候補に属する次の段階の認識候補を展開し（Ｓ７５）、展開された各認識候補に対して、認識処理済みの認識候補に対する全認識処理結果を条件とした事後確率に基づく評価値を算出し（Ｓ７６）、算出した各認識候補に対する評価値が高い順に所定数の認識候補を選出し（Ｓ７３）、選出された各認識候補に次の段階の認識候補がない終端の認識候補が含まれる場合（Ｓ７４、ＹＥＳ）、前記終端の認識候補に対する評価値が所定の閾値以上であれば（Ｓ７８、ＹＥＳ）、当該終端の認識候補に基づく各段階の認識候補の組合せを認識結果とする（Ｓ８０）。【選択図】      図１９
2010152697.tif 000002
【特許請求の範囲】
【請求項１】
複数段階の認識処理で得られる情報によりパターン全体を認識する処理を行う情報処理装置に用いられるパターン認識方法であって、
各段階の認識処理における処理結果候補としての各認識候補に従属する次の段階の認識候補を展開し、
展開された各認識候補に対して実行済みの認識処理の結果を条件とした事後確率に基づく評価値を算出し、
算出した各認識候補に対する評価値が高い順に所定数の認識候補を選出し、
選出された所定数の認識候補に次の段階の認識候補がない終端の認識候補が含まれる場合、前記終端の認識候補に対する評価値が所定の閾値以上かであるか否かを判定し、
前記評価値が所定の閾値以上となる終端の認識候補が存在しない場合、前記選出された各認識候補に対して次の段階の認識候補の展開および評価値の算出を行い、
評価値が所定の閾値以上となる終端の認識候補が存在する場合、当該終端の認識候補に基づく各段階の認識候補の組合せをパターン全体の認識結果とする、
ことを特徴とするパターン認識方法。
【請求項２】
さらに、各認識候補に従属する次の段階以降の認識候補に対する認識処理に要する時間を推定し、
前記評価値の算出は、前記事後確率と前記推定した認識処理に要する時間とに基づいて評価値を算出する、
ことを特徴とする前記請求項１に記載のパターン認識方法。
【請求項３】
前記認識候補の事後確率は、当該認識候補を条件として当該認識候補に対する認識処理結果が出力される確率と、当該認識結果に対する認識処理結果が出力される確率と、当該認識候補の１つ前の段階の認識候補に対する事後確率とに基づいて算出される、
ことを特徴とする前記請求項１または２の何れかに記載のパターン認識方法。
【請求項４】
複数段階の単語の認識処理で得られる情報により文字情報を認識する処理を行う情報処理装置に用いられる文字認識方法であって、
各段階の認識処理における処理結果候補としての各単語候補に従属する次の段階の単語候補を展開し、
展開された各単語候補に対して実行済みの認識処理の結果を条件とした事後確率に基づく評価値を算出し、
算出した各単語候補に対する評価値が高い順に所定数の単語候補を選出し、
選出された所定数の単語候補に次の段階の単語候補がない終端の単語候補が含まれる場合、前記終端の単語候補に対する評価値が所定の閾値以上かであるか否かを判定し、
前記評価値が所定の閾値以上となる終端の単語候補が存在しない場合、前記選出された各単語候補に対して次の段階の単語候補の展開および評価値の算出を行い、
評価値が所定の閾値以上となる終端の単語候補が存在する場合、当該終端の単語候補に基づく各段階の単語候補の組合せを文字情報の認識結果とする、
ことを特徴とする文字認識方法。
【請求項５】
コンピュータに複数段階の認識処理で得られる情報によりパターン全体を認識する処理を行わせるためのパターン認識プログラムであって、
各段階の認識処理における処理結果候補としての各認識候補に従属する次の段階の認識候補を展開する機能と、
展開された各認識候補に対して実行済みの認識処理の結果を条件とした事後確率に基づく評価値を算出する機能と、
算出した各認識候補に対する評価値が高い順に所定数の認識候補を選出する機能と、
選出された所定数の認識候補に次の段階の認識候補がない終端の認識候補が含まれる場合、前記終端の認識候補に対する評価値が所定の閾値以上かであるか否かを判定する機能と、
前記評価値が所定の閾値以上となる終端の認識候補が存在しない場合、前記選出された各認識候補に対して次の段階の認識候補の展開および評価値の算出を行う機能と、
評価値が所定の閾値以上となる終端の認識候補が存在する場合、当該終端の認識候補に基づく各段階の認識候補の組合せをパターン全体の認識結果とする機能と、
を実現させるためのパターン認識プログラム。
【請求項６】
コンピュータに複数段階の単語の認識処理で得られる情報により文字情報を認識する処理を行わせるための文字認識プログラムであって、
各段階の認識処理における処理結果候補としての各単語候補に従属する次の段階の単語候補を展開する機能と、
展開された各単語候補に対して実行済みの認識処理の結果を条件とした事後確率に基づく評価値を算出する機能と、
算出した各単語候補に対する評価値が高い順に所定数の単語候補を選出する機能と、
選出された所定数の単語候補に次の段階の単語候補がない終端の単語候補が含まれる場合、前記終端の単語候補に対する評価値が所定の閾値以上かであるか否かを判定する機能と、
前記評価値が所定の閾値以上となる終端の単語候補が存在しない場合、前記選出された各単語候補に対して次の段階の単語候補の展開および評価値の算出を行う機能と、
評価値が所定の閾値以上となる終端の単語候補が存在する場合、当該終端の単語候補に基づく各段階の単語候補の組合せを文字情報の認識結果とする機能と、
を実現させるための文字認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、たとえば、被読取物上に記載されている文字を認識する文字認識装置あるいは生体情報により人物を認識する生体照合装置などに用いられるパターン認識方法、文字認識方法、パターン認識プログラムおよび文字認識プログラムに関する。
【背景技術】
【０００２】
従来、パターン認識方法には、種々の手法が提案されている。たとえば、特開２００４−１７８２８０号公報（特許文献１）および特開２００１−２８３１５６号公報（特許文献２）には、階層構造を持つ住所情報に対するパターン認識方法が開示されている。  
上記特開２００４−１７８２８０号公報には、ある階層における認識結果の候補に対する各単語の信頼度の和を評価値とし、評価値が上位Ｅ個の認識結果の候補のみ残し、残りを破棄する手法が開示されている。  
また、上記特開２００１−２８３１５６号公報には、各単語内の文字が単語長に対し一定割合以上認識されていない認識結果の候補を破棄する手法が開示されている。
【０００３】
また、IEEE Trans. Pattern Analysis and Machine Intelligence, vol.11, no.1, pp.68-83, Jan.1989（非特許文献１）には、事後確率を事前確率で除した値を評価値とし、評価値が最大となる候補を次の探索対象とする手法が開示されている。なお、事後確率は、Ｐ（ｃ｜ｘ）と書き表される。事後確率Ｐ（ｃ｜ｘ）は、認識処理により得られた出力ｘを条件とし、候補ｃが正解である確率を意味するものと定義されている。また、事前確率は、Ｐ（ｃ）と書き表されるものとする。事前確率Ｐ（ｃ）は、認識処理を行っていない段階において、候補ｃが正解である確率のことを意味するものと定義されている。
【０００４】
しかしながら、特開２００４−１７８２８０号公報に開示されている手法では、誤って正解候補が破棄されてしまうことがある。これは、各単語の信頼度の和に基づく評価値を用いて認識結果の候補を並べ替えているためである。  
また、特開２００１−２８３１５６号公報に開示されている手法は、実際の運用面において非現実的であることがある。これは、認識対象とする各パターンに対する認識処理が複雑かつ詳細である場合、破棄されない認識結果も全て探索対象となることにより、膨大な処理時間が必要となるためである。  
また、IEEE Trans. Pattern Analysis and Machine Intelligence, vol.11, no.1, pp.68-83, Jan.1989 に開示されている手法は、正解となる認識結果を得るのに処理時間がかかってしまう。特に、認識対象となる各パターンの事前確率に偏りがある場合、膨大な処理時間がかかるものと考えられる。これは、評価値として、事後確率を事前確率で除した値を用いているためである。
【特許文献１】特開２００４−１７８２８０号公報
【特許文献２】特開２００１−２８３１５６号公報
【非特許文献１】「IEEE Trans. Pattern Analysis and Machine Intelligence, vol.11, no.1, pp.68-83, Jan.1989」
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この発明の一形態は、効率的にパターンを認識することができるパターン認識方法、文字認識方法、パターン認識プログラムおよび文字認識プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明の一形態としてのパターン認識方法は、複数段階の認識処理で得られる情報によりパターン全体の認識処理を行う情報処理装置に用いられる方法であって、各段階の認識処理における処理結果候補としての各認識候補に従属する次の段階の認識候補を展開し、展開された各認識候補に対して実行済みの認識処理の結果を条件とした事後確率に基づく評価値を算出し、算出した各認識候補に対する評価値が高い順に所定数の認識候補を選出し、選出された所定数の認識候補に次の段階の認識候補がない終端の認識候補が含まれる場合、前記終端の認識候補に対する評価値が所定の閾値以上かであるか否かを判定し、前記評価値が所定の閾値以上となる終端の認識候補が存在しない場合、前記選出された各認識候補に対して次の段階の認識候補の展開および評価値の算出を行い、評価値が所定の閾値以上となる終端の認識候補が存在する場合、当該終端の認識候補に基づく各段階の認識候補の組合せをパターン全体の認識結果とすることを特徴とするパターン認識方法。
【０００７】
この発明の一形態としての文字認識方法は、複数段階の単語の認識処理で得られる情報により文字情報を認識する処理を行う情報処理装置に用いられる方法であって、各段階の認識処理における処理結果候補としての各単語候補に従属する次の段階の単語候補を展開し、展開された各単語候補に対して実行済みの認識処理の結果を条件とした事後確率に基づく評価値を算出し、算出した各単語候補に対する評価値が高い順に所定数の単語候補を選出し、選出された所定数の単語候補に次の段階の単語候補がない終端の単語候補が含まれる場合、前記終端の単語候補に対する評価値が所定の閾値以上かであるか否かを判定し、前記評価値が所定の閾値以上となる終端の単語候補が存在しない場合、前記選出された各単語候補に対して次の段階の単語候補の展開および評価値の算出を行い、評価値が所定の閾値以上となる終端の単語候補が存在する場合、当該終端の単語候補に基づく各段階の単語候補の組合せを文字情報の認識結果とする。
【０００８】
この発明の一形態としてのパターン認識プログラムは、コンピュータに複数段階の認識処理で得られる情報によりパターン全体を認識する処理を行わせるためのプログラムであって、各段階の認識処理における処理結果候補としての各認識候補に従属する次の段階の認識候補を展開する機能と、展開された各認識候補に対して実行済みの認識処理の結果を条件とした事後確率に基づく評価値を算出する機能と、算出した各認識候補に対する評価値が高い順に所定数の認識候補を選出する機能と、選出された所定数の認識候補に次の段階の認識候補がない終端の認識候補が含まれる場合、前記終端の認識候補に対する評価値が所定の閾値以上かであるか否かを判定する機能と、前記評価値が所定の閾値以上となる終端の認識候補が存在しない場合、前記選出された各認識候補に対して次の段階の認識候補の展開および評価値の算出を行う機能と、評価値が所定の閾値以上となる終端の認識候補が存在する場合、当該終端の認識候補に基づく各段階の認識候補の組合せをパターン全体の認識結果とする機能とを実現させる。
【０００９】
この発明の一形態としての文字認識プログラムは、コンピュータに複数段階の単語の認識処理で得られる情報により文字情報を認識する処理を行わせるためのプログラムであって、各段階の認識処理における処理結果候補としての各単語候補に従属する次の段階の単語候補を展開する機能と、展開された各単語候補に対して実行済みの認識処理の結果を条件とした事後確率に基づく評価値を算出する機能と、算出した各単語候補に対する評価値が高い順に所定数の単語候補を選出する機能と、選出された所定数の単語候補に次の段階の単語候補がない終端の単語候補が含まれる場合、前記終端の単語候補に対する評価値が所定の閾値以上かであるか否かを判定する機能と、前記評価値が所定の閾値以上となる終端の単語候補が存在しない場合、前記選出された各単語候補に対して次の段階の単語候補の展開および評価値の算出を行う機能と、評価値が所定の閾値以上となる終端の単語候補が存在する場合、当該終端の単語候補に基づく各段階の単語候補の組合せを文字情報の認識結果とする機能とを実現させる。
【発明の効果】
【００１０】
この発明の一形態によれば、効率的にパターンを認識することができるパターン認識方法、文字認識方法、パターン認識プログラムおよび文字認識プログラムを提供することができる。
【発明を実施するための最良の形態】
【００１１】
本発明の実施の形態について図面を参照しつつ詳細に説明する。  
まず、本実施の形態としてのパターン認識処理について概略的に説明する。  
パターン認識処理では、所定時間内での処理の必要性から、高速化な処理が必要となることがしばしば起こる。例えば、パターン認識処理の代表的な例としては、住所情報などように複数の階層の情報から構成される文字情報全体を認識する処理がある。住所情報の認識処理では、先に候補数の少ない上位階層を認識し、その結果を用いて下位階層の候補を絞り込むことがしばしば行われる。このような複数段階の処理からなるパターン認識処理（複数段構成のパターン認識）では、処理全体を高速化するため、初期段階の処理において、高速動作する粗い識別器による認識処理（つまり、処理速度を重視して候補を選出する認識処理）が実行される。この場合、後段の処理では、前段の処理結果を用いて、順次、処理範囲あるいは処理対象を絞り込むという方法が取られることがある。このような複数段階の候補から正解となる候補を選出する問題は、探索問題と捉えることが可能である。
【００１２】
すなわち、複数段構成のパターン認識では、前段の認識結果などを用いて、後段の処理範囲あるいは対象を絞ることが可能である。このような手法は、ビーム探索を行っていることに相当する。本実施の形態で説明する複数段構成のパターン認識処理には、各段階の候補を事後確率などによる評価値に基づいて順次絞り込む探索手法が適用される。また、探索方法としては、たとえば、各段において所定数の候補を順次絞り込む手法、あるいは、最良優先探索の手法などが想定される。なお、事後確率は、Ｐ（ｃ｜ｘ）と書き表され、認識処理により得られた出力ｘを条件とし、候補ｃが正解である確率を意味するものとする。事後確率Ｐ（ｃ｜ｘ）は、後述する近似計算法により近似値が算出されるものである。また、事前確率は、Ｐ（ｃ）と書き表され、認識処理を行っていない段階において、候補ｃが正解である確率のことを意味するものとする。
【００１３】
一方、複数段構成のパターン認識処理の代表的な例としては、顔画像などの生体情報による人物の認識処理、あるいは、複数層の情報から構成される住所情報の認識処理などがある。たとえば、住所情報は、第１階層の情報（例えば、都市名）、第２階層の情報（例えば、町名、ストリート名）、第３階層の情報（たとえば、番地、ストリート番号）などの複数階層の情報から構成される。これらの各階層の情報を組み合わせて構成される住所情報の総数は、数百万から数千万に及ぶ。このため、全住所情報について認識処理を行うことは、効率的ではない。本実施の形態で説明するパターン認識方法は、複数層の情報からなる情報（たとえば、住所情報）の認識処理に適用することにより、情報の認識処理を効率的かつ高速に認識結果を得ることが可能である。
【００１４】
ここで、単語の認識処理に関する技術として、文献１「浜村倫行、赤木琢磨、水谷博之、入江文平：“ワード長正規化されたベイズ推定によるワードマッチング”、画像の認識・理解シンポジウム(MIRU2000) 講演論文集II、pp.1-6(Jul.2000).」、文献２（「浜村倫行、赤木琢磨、入江文平：“単語認識における事後確率を用いた評価関数”、信学技報、PRMU2006-92,(Oct.2006).」）、文献３（「浜村倫行、赤木琢磨、入江文平：“事後確率を用いた解析的単語認識−文字切り出し数の正規化−”、信学技報、PRMU2006-238,(Mar. 2007).」）には、単語候補の評価値としての事後確率を算出する手法が開示されている。
【００１５】
上記文献１には、各文字の認識結果が独立であるとする近似を用いることにより、単語候補の事後確率比（事前確率と事後確率の比）が各文字の事後確率比の積に分解できることが記載されている。上記文献２には、上記文献１において大きな誤差を起こす近似を避ける式展開を行うことにより、正規化事後確率比を算出する手法が記載されている。上記文献３には、注目している場所以外にも何らかの文字が書かれていることを用いて、拡張事後確率比を算出する手法が記載されている。
【００１６】
しかしながら、上記文献２あるいは上記文献３に記載されている正規化事後確率比あるいは拡張事後確率比の計算には、いずれも単語辞書内の全単語についての処理が必要である。これは、単語辞書内の単語の数が多ければ多いほど、正規化事後確率比あるいは拡張事後確率比の計算に時間がかかってしまうことを示唆している。これに対して、本実施の形態では、注目する１つの単語についての処理のみを行った状況においても、文献３のアイデアを適用できるような式展開について後述する。すなわち、本実施の形態で説明するパターン認識方法では、効率的な候補の探索が可能となる手法に利用可能な計算式により事後確率を算出するようになっている。
【００１７】
次に、複数段構成のパターン認識と探索問題との関係について説明する。  
ここでは、複数段構成のパターン認識処理の例として、顔認識処理と住所認識処理とについて説明する。  
まず、顔認識処理の例について説明する。  
顔認識処理は、バイオメトリクスの一種である。顔認識処理では、生体情報としての人物の顔画像に基づいて個人を特定する。顔認識処理は、大きく分けて、以下のような３段階の処理により、認識結果が得られるようになっている。すなわち、顔認識処理は、第１段階の処理として取得した画像（入力画像）内から人物の画像を検出し、第２段階の処理として検出した人物の画像から顔画像を検出し、第３段階の処理として検出した顔画像と登録者の顔画像との照合を行う。
【００１８】
第１段階の処理は、入力画像に対して人物検出用識別器を適用することにより実行される人物検出処理である。上記人物検出用識別器は、入力画像に対して位置及びサイズを変化させた人物検出用のテンプレートを重ね合わせることにより人物の画像を検出するものである。この第１段階の処理は、たとえば、高速に処理結果を得るために、低解像度の画像において実施される。
【００１９】
第２段階の処理は、第１段階の処理で得られた人物の画像に対して顔検出用識別器を適用することより実行される顔検出処理である。上記顔検出用識別器は、人物の画像に対して位置及びサイズを変化させた顔検出用のテンプレートを重ね合わせることにより顔画像を検出する。この第２段階の処理は、たとえば、高精度に顔を検出するために、高解像度の画像において実施される。
【００２０】
第３段階の処理は、第２段階の処理で得られた顔画像と登録者の顔画像との照合を行う顔照合処理である。第３段階の処理は、たとえば、高精度に顔を識別するために、高解像度の顔画像において実行される。
【００２１】
図１は、顔認識処理の各段階の処理を探索木で表現したものである。なお、探索木とは、複数階層の候補をノードとして表示した場合の探索の様子を示す概念図である。図１に示す探索木では、登録者の人数が３人であるものとする。  
図１に示すような探索木では、各段階の候補がそれぞれノードとして表現される。第１段階の処理では、人物検出用識別器を種々の位置及びサイズで走らせて複数の人物検出結果を得る。図１に示す探索木では、１段目の各ノードが第１段階の候補として得られる複数の人物検出結果に対応する。つまり、探索木においてルートノードに従属する１段目の各ノードは、人物検出用識別器が１つの位置及びサイズで検出した人物の検出結果に相当している。第２段階の処理では、第１段階の処理として得られた各人物検出結果（人物の画像）に対して、複数の顔検出結果が得られる。図１に示す探索木では、２段目の各ノードが第２段階の処理結果として得られる複数の顔検出結果に対応する。従って、探索木における１段目の各ノードには、それぞれ複数の２段目のノードが従属している。第３段階の処理では、第２段階の処理として得られた各顔検出結果（顔画像）に対して、登録人数分の照合結果が得られる。図１に示す探索木では、３段目の各ノードが第３段階の処理結果として得られる各登録者に対する照合結果に対応する。従って、探索木における２段目の各ノードには、それぞれ登録人数分の３段目のノードが従属している。
【００２２】
図１に示すような各ノードの親子関係は、包含関係を意味する。例えば、図１に示す第１段階の１つの処理結果としてのノードＡには、４つのノードＢ〜Ｅが従属している。ノードＢ〜Ｅは、ノードＡの処理結果に基づく４つの第２段階の処理結果（顔検出結果）に相当している。ノードＣには、３つのノードＦ〜Ｈが従属している。ノードＦ〜ノードＨは、第２段階の処理結果としてのノードＣに基づく３つの第３段階の処理結果（３人の登録者との照合結果）に相当する。
【００２３】
顔認識処理では、３段目の全ノードに対応する顔認識処理を全て実行できれば理想的ではある。しかしながら、処理を高速化するためには、第１段階の処理結果および第２段階の処理結果を利用して効率的に第３段階の処理（照合処理）を行う必要がある。これは、図１に示すような探索木を効率的に探索するという探索問題の解決方法に相当する。
【００２４】
次に、住所情報の認識処理の例について説明する。  
図２は、住所データベースの例を示す図である。ここでは、認識対象とする住所情報は、複数段階の情報から構成されているものとする。図２に示す例では、認識対象とする住所情報は、１段目が都市名、２段目が町名、３段目が番地である。
【００２５】
また、図３は、住所情報の表記例を示す図である。図３は、認識処理の入力画像として与えれる画像の例を示しているものとする。たとえば、図３に示すような画像は、住所情報が記載された媒体をスキャナなどで読取ることにより得られる情報であるものとする。図３に示すような住所情報を含む画像に対しては、行候補検出、単語候補切出し、文字候補切出し、各文字候補に対する個別文字認識などが実行される。個別の文字認識結果が得られると、個別の文字認識結果に基づいて複数の単語候補が選出される。以下の説明では、各単語候補と住所データベース内の各単語とをマッチングする処理について説明するものである。
【００２６】
図４は、図３に示す住所情報の画像から得られた単語候補の例を示す図である。図４に示す例では、単語候補として、Ｉ１〜Ｉ１０までの候補が検出されている。また、図５は、マッチング処理を探索木で示すものである。すなわち、単語候補Ｉｉと住所データベース内の単語との組が、探索木の１つのノードに対応し、１組に対してマッチングを行うことが、１つのノードを探索することに相当する。
【００２７】
住所情報の認識処理としては、住所データベース内の全単語について、全単語候補とマッチングすれば理想的である。しかしながら、住所データベースに記憶されている単語は膨大である。このため、複数段構成のパターン認識方法では、上位の階層からマッチング処理を行うことにより、効率的に解を探索（住所情報全体の認識結果を決定）する。
【００２８】
上述したような複数段構成のパターン認識では、通常、上位の段の処理から順に行い、各段ごとに候補を絞り込んでから次の段の処理を行うという手順が取られる。例えば、図１の例では、１段目のノードに対して全て処理を行い、その中からｎ個のノードに絞り込む。次に、絞り込んだ１段目の各ノードに従属する２段目の各ノードを全て処理し、それらの２段目のノードの中からｎ個に絞り込む。さらに、絞り込んだ２段目の各ノードに従属する３段目の各ノードを全て処理し、それらの３段目のノードの中から最適な認識結果を決定する。このような一連の処理の流れを探索問題の視点から見ると、ビーム探索を行っていることに相当する。
【００２９】
一方、優れた探索問題の解法として、最良優先探索という方法が知られている。最良優先探索という方法は、処理済のノードに従属する各子ノードのうち、未処理のものを全て記憶しておき、その中で最も評価値の高いノードを次の探索対象とする方法である。例えば、図１に示す例において、ノードＡとノードＣとが処理済、かつ、他のノードが未処理であるとすると、ノードＡおよびノードＣの子ノードで未処理のものは、ノードＢ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈの６つのノードである。この場合、、ノードＢ、Ｄ、Ｅ、Ｆ、Ｇ、Ｈの６つのノードから次の探索対象を選ぶことになる。複数段構成のパターン認識においても、上記のような最良優先探索を用いることができれば、探索効率を向上することが可能と考えられる。
【００３０】
一般に、ビーム探索では、同一段内のノード間での比較のみできればよい。このため、例えば、その段の識別器の出力する類似度等を評価値とすればよい。しかしながら、最良優先探索では、異なる段のノード間での比較が必要となる。このため、最良優先探索では、識別器の出力をそのまま用いても比較しても意味がないものとなってしまう。つまり、既存のビーム探索で用いられている評価値は、最良優先探索には用いることができない。
【００３１】
そこで、本実施の形態では、事後確率を評価値として用いるパターン認識方法を提供するものである。一般に、上述した非特許文献３などで定義される事後確率は、直接計算することが難しい。ただし、上述した文献１、２、３に記載の方法によれば、たとえば、単語認識において、個別文字認識の出力から近似的に事後確率を計算することが可能である。本実施の形態のバーコード認識処理では、上述した文献１、２、３に記載されている計算テクニックを応用することにより、評価値としての近似的な事後確率を計算する。
【００３２】
次に、最良優先探索に用いる評価値としての事後確率の計算法について説明する。  
ここで、ノードｎｉに対応する処理結果をｘｉとする。たとえば、最良優先探索を顔認識認識に応用する場合、各ノードｎｉに対応する各段階の識別器の出力が処理結果ｘｉに相当する。また、最良優先探索を住所情報の認識処理に応用する場合、各ノードｎｉに対応する各段階における各単語候補内の文字認識などの結果が処理結果ｘｉに相当する。なお、以下の説明では、Ｘ、ｎｉ、Ｕｉ、Ｘｅｔｃを以下のように定義する。処理済の全ノードに対応する全処理結果をＸとする。ｎｉの親ノードを辿ることで到達できるノードの集合をＵｉとする。ｎｉはＵｉに属さないとする。Ｕｉに含まれないノードのうち、処理済のノードの全処理結果をＸｅｔｃとする。
【００３３】
図６は、探索木で表される各ノードの状態を示す図である。図６において、黒丸は処理済のノード、白丸と二重丸は未処理のノードであり、二重丸は処理済のノードを親に持つノードである。つまり、図６に示す例では、二重丸で表されたノードが次の探索対象の候補である。これらの各ノードについては、事後確率Ｐ（ｎｉ｜Ｘ）が計算される。ここで、事後確率Ｐ（ｎｉ｜Ｘ）とは、ノードｎｉだけでなく、Ｕｉに含まれる全ノードが満たされる確率を意味するものとする。たとえば、住所情報の認識処理の例では、単独の階層（町等）の単語が書かれている確率ではなく、その上位の階層の単語も同時に書かれている確率となり、住所が書かれている確率に相当する。なお、顔認識処理の例では、子ノードが満たされれば、親ノードが自動的に満たされる。
【数１】
2010152697.tif 000003
【００３４】
式（２）では、Ｕｉに含まれる各ノードの処理結果が、他の処理結果とは独立に起こっているとする近似を用いている。式（３）では、Ｐ（ｘｊ｜ｎｉ）≒Ｐ（ｘｊ｜ｎｊ）  とする近似を用いた。式（３）を用いることで、ノードｎｉの事後確率Ｐ（ｎｉ｜Ｘ）を近似的に計算できる。顔認識処理の例では、ｘｊは単独の識別器の出力である。このため、データを集めることにより、Ｐ（ｘｊ｜ｎｊ）、Ｐ（ｘｊ）は容易に得ることが可能であり、事後確率の計算が可能となる。一方、住所情報の認識処理の例では、ｘｊには単語候補内の複数の文字認識結果が含まれている。このため、式（３）の計算が単純ではない。住所情報の認識処理における事後確率の計算方法については、後で詳細にするものとする。
【００３５】
式（３）は、更に、
【数２】
2010152697.tif 000004
【００３６】
と変形することができる。事前確率と事後確率との比を事後確率比と呼ぶことにすると、「ノードｎｉの事後確率比は、その親ノードの事後確率比の積である」と表現できる。
【００３７】
次に、住所情報の認識処理における事後確率比の計算方法について説明する。  
住所情報の認識処理において、ｘｊには、単語候補内の複数の文字認識結果が含まれている。このため、式（３）の事後確率比Ｐ（ｘｊ｜ｎｊ）／Ｐ（ｘｊ）の計算が容易ではないことが多い。上記文献１、２、３では、事後確率比の計算式がいくつか提案されている。それらの事後確率比の分母Ｐ（ｘｊ）に注目して整理する。まず、文献１では、ｘｊに含まれる各文字候補の文字認識結果を全て独立と近似している。これは、大きな誤差を起こしてしまうことと、文字候補構造（説明は後述）あるいは経路の選択に関する項が残ってしまい計算が困難となることがある。文献２に記載されている正規化事後確率比は、分母をＰ（ｘｊ）＝ΣｋＰ（ｘｊ、ｗｋ）とする変形により、分母の計算を単語辞書内の全単語で展開し、大きな誤差を起こす近似変形を避けることに成功している。また、同時に、計算のしにくい項を分母と分子とでうまくキャンセルさせることに成功している。更に、文献３に記載されている拡張事後確率比では、注目している単語候補以外の場所にも何らかの文字が書かれていることを考慮することにより、近似誤差を低減している。何らかの文字が書かれていることを考慮することにより、計算利便性を落とす項が発生する。しかし、正規化事後確率比と同様に分母の計算を単語辞書内の全単語で展開することにより、計算し難い項が分母と分子とでキャンセルされている。
【００３８】
ただし、探索時にも事後確率比を用いることができるようにするためには、全単語の処理を必要とせず、注目する１つの単語のみの処理で計算できるのが望ましい。そこで、本実施の形態では、以下の式展開により、分母の計算を単語辞書内の全単語に展開せず、「何らかの文字が書かれている」とする。これにより、拡張事後確率比の利点、すなわち、文字認識結果を全て独立とするよりも近似精度が高まるという利点がある上に、計算が困難な項のキャンセルもできていることを示す。
【００３９】
ノードｎｉに対応する単語候補をＬｉ、単語をｗｉとする。ノードｎｉを探索することが、単語候補Ｌｉに対し単語ｗｉをマッチングすることに相当する。単語候補Ｌｉ内の全文字候補の集合をＡｉ、各文字候補をａ∈Ａｉとする。
【００４０】
図７は、文字候補の例を示す図である。図７に示すような構造は、ラティス構造と呼ばれる。つまり、ここでは、文字候補が、図７のようなラティス構造を取っているものとする。また、以下の説明では、ａｉ、ｒｉ、Ｌｉ、Ｓｉ、ｘｉ、ｗｉなどを以下のように定義するものとする。文字候補ａｉの文字認識結果をｒｉとする。単語候補Ｌｉ内の全文字認識結果をｒｉ、文字候補構造をＳｉとする。文字候補の構造とは、文字候補同士の隣接情報、あるいは、文字候補数などの文字認識結果以外の情報を指す。上述した処理結果ｘｉを、ｘｉ＝（ｒｉ、Ｓｉ）と定義する。単語ｗｉのｊ番目の文字をｃｉｊ∈Ｃ（Ｃはアルファベットの集合）とする。Ｃ＊を任意文字列とする。
【００４１】
単語候補Ｌｉ内の左端から右端に至る全経路の集合をＦｉ＝｛ｆｐ｝、ｐ＝１、２、…、経路をｆｐ＝（ａｆ１ｐ、ａｆ２ｐ、…）、ａｆｊｐ∈Ａｉとする。ａｆ（ｊ＋１）ｐは、ａｆｊｐの右側に隣接して位置するものとする。図７には、太線で経路ｆｐなどの例を示している。経路ｆｐ上の文字候補の集合をＥ´ｐ＝｛ａｆｊｐ｝、ｊ＝１、２、…、Ｅ´ｐに含まれないがＡｉに含まれる文字候補の集合をＥｐとする。Ｅｐ∩Ｅ´ｐ＝φ、Ｅｐ∪Ｅ´ｐ＝Ａｉである。事後確率比Ｐ（ｘｊ｜ｎｊ）／Ｐ（ｘｊ）を以下の通り変形する。
【数３】
2010152697.tif 000005
【００４２】
式（４）左辺の分子Ｐ（ｘｊ｜ｎｊ）は、その親ノードを辿って得られるノードをｎｐ１、ｎｐ２、…とすると、Ｐ（ｘｊ｜Ｌｊ、ｗｊ、Ｌｐ１、ｗｐ１、Ｌｐ２、ｗｐ２、…）という意味になる。ｘｊは単語候補Ｌｊに関する情報以外の影響を受けないとする近似を行うと、Ｐ（ｘｊ｜Ｌｊ、ｗｊ）となる。  
式（４）の分母において、Ｐ（ｘｊ）≒Ｐ（ｘｊ｜Ｌｊ、Ｃ＊）としているのは、先に述べたとおり、どの単語候補にも何らかの文字が書かれているとする近似であるからである。  
式（６）では、確率が最大となる経路の確率に比べ、その他の経路の確率は無視できるとする近似を用いている。続いて以下の近似を行う。
【数４】
2010152697.tif 000006
【００４３】
ここで、Ｋｊはｐによらない定数とする。この近似は、どのパスが正解である確率も同様に確からしい、とする近似である。
【００４４】
式（７）、式（８）  を用いることにより、式（６）は以下のように計算される。（どのｆｐでも単語ｗｊと長さの一致しない場合、式（６）は０となる。以後の計算はそれ以外の場合の計算とする。）
【数５】
2010152697.tif 000007
【００４５】
ただし、ｍａｔｃｈ（）は、以下の通りに定義している。
【数６】
2010152697.tif 000008
【００４６】
式（１０）では、各文字認識結果が互いに独立であるとする近似を用いている。式（１０）から式（１１）への変形では、ｆｐに依存しない値
【数７】
2010152697.tif 000009
【００４７】
で分母分子を割っている。また、式（９）において、計算の困難な文字候補構造Ｓｊや経路ｆｐに関する項がキャンセルできていることに注意する。
【００４８】
式（１１）が本実施の形態で提案する事後確率比の計算式である。式（１１）では、拡張事後確率比と同じアイデアによる近似精度の向上を行いつつ、余計な項のキャンセルもできている。更に、注目する一単語ｗｊのみの処理で計算可能であり、探索時にも用いることができる。
【００４９】
上述したように、本実施の形態に係るパターン認識方法では、複数の段階からなるパターン認識処理の一部を探索問題と捉えている。上記パターン認識方法では、各段階で得られる各候補をそれぞれノードとし、得られたノードを事後確率に基づいて選択的に処理する。これにより、上記パターン認識方法では、複数段階からなるパターン認識処理を効率的かつ高速化に実行することができる。
【００５０】
また、上記パターン認識方法では、処理対象とする各段のノードを選択する場合、最良優先探索などの手法が適用可能である。最良優先探索では、異なる段階のノードを比較する必要がある。そのための評価値として、上記パターン認識方法では、事後確率が用いられる。事後確率は、各ノードにおける事後確率比（事前確率と事後確率の比）の積により算出される。特に、住所情報の認識に特化した場合、探索時にも計算可能な形で各ノードの事後確率比が計算される。
【００５１】
以下、上述したようなパターン認識方法の適用例について説明する。  
図８は、上述したようなパターン認識方法によるパターン認識機能を有する情報処理装置１１の構成例を示す図である。  
図８に示す例では、情報処理装置１１には、画像入力装置１２が接続されている。画像入力装置１２は、スキャナあるいはカメラなどにより構成される。上記画像入力装置１２は、情報処理装置１１により処理すべき画像を取得するものである。たとえば、上記画像入力装置１２は、スキャナあるいはカメラなどにより構成される。上記画像入力装置１２は、取得した画像情報を情報処理装置１１へ供給するようになっている。なお、上記画像入力装置１２は、記録媒体に記憶された画像情報を読み出して、記録媒体から読み出した画像情報を上記情報処理装置１１へ供給するものであっても良い。
【００５２】
上記情報処理装置１１は、パターン認識装置あるいは文字認識装置として機能するものである。上記情報処理装置１１は、上記画像入力装置１２から供給される画像に含まれる所望の情報（たとえば、住所情報あるいは顔画像など）をパターン認識処理により認識するものである。
【００５３】
上記情報処理装置１１は、たとえば、コンピュータとして実現される。また、図８に示す構成例では、上記情報処理装置１１は、画像インターフェース（Ｉ／Ｆ）２１、プロセッサ２２、ワーキングメモリ２３、プログラムメモリ２４、データメモリ２５、出力インターフェース（Ｉ／Ｆ）２６などを有している。すなわち、上記情報処理装置１１は、たとえば、画像インターフェース２１および出力インターフェース２６としてのデータ入出力部と、プロセッサ２２としての制御部と、ワーキングメモリ２３、プログラムメモリ２４およびデータメモリ２５などの各種の記憶部などを有するコンピュータにより実現される。
【００５４】
上記画像インターフェース２１は、上記画像入力装置１２から供給される画像を取り込むためのインターフェースである。つまり、上記画像インターフェース２１は、パターン認識処理の対象となる画像を取得するためのインターフェースである。  
図９は、上記画像インターフェース２１により取り込まれるパターン認識処理の対象となる画像の例を示す図である。図９に示す例は、複数層の情報からなる住所情報が記載された紙葉類の読取画像の例であるものとする。図９示す例では、パターン認識処理としての複数層の情報からなる住所情報の認識処理の対象となる画像の例を示している。
【００５５】
上記プロセッサ２２は、当該情報処理装置１１における種々の処理機能を実行するものである。上記プロセッサ２２は、たとえば、ＣＰＵなどの演算ユニットにより構成される。上記プロセッサ２２は、上記プログラムメモリ２４あるいはデータメモリ２５に記憶されているプログラムを実行することにより、種々の処理機能を実現している。たとえば、上記プロセッサ２２は、プログラムを実行することにより実現される機能の１つとしてパターン認識処理を行うパターン認識部２２ａを有している。上記パターン認識部２２ａの構成例については、後で詳細に説明するものとする。
【００５６】
上記ワーキングメモリ２３は、一時的にデータを格納するための記憶部である。上記ワーキングメモリ２３は、たとえば、ＲＡＭ（ランダムアクセスメモリ）などにより構成される。上記プログラムメモリ２４は、制御プログラムおよび制御データなどが記憶されている記憶部である。上記プログラムメモリ２４は、たとえば、ＲＯＭ（リードオンリーメモリ）などにより構成される。上記データメモリ２５は、データを記憶するための大容量の記憶部である。上記データメモリ２５は、たとえば、ハードディスクドライブ（ＨＤＤ）などにより構成される。
【００５７】
上記データメモリ２５には、バターン認識処理に用いられる辞書データベース２５ａが設けられている。たとえば、当該情報処理装置１１がパターン認識処理として住所情報を認識するものである場合、上記辞書データベース２５ａは、住所情報が格納される住所データベースとして構成される。当該情報処理装置１１がパターン認識処理として顔画像などの生体情報による個人認証を行うものである場合、上記辞書データベース２５ａは、登録者の生体情報が格納される生体情報データベースとして構成される。なお、ここでは、情報処理装置１１が住所情報を認識するものであること想定する。このため、上記辞書データベース２５ａは、住所データベースであるものとする。
【００５８】
図１０は、辞書データベース２５ａとしての住所データベースの構成例を示す図である。図１０に示す構成例では、辞書データベース（住所データベース）２５ａには、複数階層（ＣＩＴＹ階層、ＳＴＲＥＥＴ階層、ＤＩＲＥＣＴＩＯＮ階層）の各単語からなる住所情報が記憶されている。つまり、辞書データベース２５ａには、各階層の各情報には、次の下階層の情報が従属するように記憶されている。
【００５９】
図１０に示す例では、ＣＩＴＹ階層には、「ＳＴＯＣＫＨＯＬＭ」（単語Ｄ１）、「ＧＯＴＥＢＯＲＧ」（単語Ｄ２）、「ＡＢＣＤＥ」（単語Ｄ３）、…などの単語が存在し、ＳＴＲＥＥＴ階層には、「ＡＧＡＴＡＮ」（単語Ｄ４）、「ＴＯＳＨＩＢＡ」（単語Ｄ５）、「ＢＧＡＴＡＮ」（単語Ｄ６）、…などの単語が存在し、ＤＩＲＥＣＴＩＯＮ階層には、「ＥＡＳＴ」、「ＷＥＳＴ」、「ＮＯＲＴＨ」などの単語が存在している。さらに、図１０に示す例では、ＣＩＴＹ階層の「ＳＴＯＣＫＨＯＬＭ」（単語Ｄ１）という１つの単語には、ＳＴＲＥＥＴ階層の「ＡＧＡＴＡＮ」（単語Ｄ４）と「ＴＯＳＨＩＢＡ」（単語Ｄ５）という２つの単語が従属している。
【００６０】
上記出力インターフェース２６は、上記プロセッサ２２により得られた情報などを外部へ出力するためのインターフェースである。たとえば、上記プロセッサ２２内のパターン認識処理により得られた認識結果は、上記出力インターフェース２６により外部へ出力されるようになっている。
【００６１】
次に、上記パターン認識部２２ａの構成について説明する。  
図１１は、上記パターン認識部２２ａの構成例を示す図である。なお、以下の説明では、主として、当該情報処理装置１１が住所情報などの複数階層の情報からなる文字情報を認識するものであることを想定している。  
上記パターン認識部２２ａは、認識制御部３０、候補抽出部３１、ノード展開部３２、評価値算出部３３、ノード選別部３４、決定部３５などにより構成されている。上述したように、上記パターン認識部２２ａは、プロセッサ２２がプログラムを実行することにより実現される機能である。つまり、上記候補抽出部３１、ノード展開部３２、評価値算出部３３、ノード選別部３４、決定部３５も、プロセッサ２２がプログラムが実行することにより実現される機能である。
【００６２】
上記認識制御部３０は、パターン認識部２２ａにおけるパターン認識処理全体を制御する機能を司るものである。上記候補抽出部３１は、上記画像インターフェース２１を介して上記画像入力装置１２から供給された入力画像から認識結果における各階層の候補となる情報を抽出するものである。たとえば、当該情報処理装置１１が住所情報などの複数階層の情報からなる文字情報を認識するものである場合、上記候補抽出部３１は、入力画像から各階層の単語候補を抽出する処理を行う。  
図１２は、図９に示す入力画像から抽出される単語候補の例を示す図である。図１２に示す例では、アルファベットを認識対象の住所情報を構成する文字として想定している。このため、図１２に示す例では、７つの単語候補が抽出されている。なお、図１２に示す７つの単語候補は、当該画像における位置情報により示される位置Ｐ１〜Ｐ７に存在しているものとする。
【００６３】
上記ノード展開部３２は、上記候補抽出部３１により抽出された候補に対する探索木を構成するための各ノードを生成するものである。上記ノード展開部３２は、各ノードに属する次の階層のノードを得る処理である。つまり、上記ノード展開部３２では、ある階層の各候補に対して次の階層の候補となり得る全ての候補を選出することにより、複数階層の各ノードからなる探索木を生成する。
【００６４】
例えば、図１２に示す位置Ｐ６の単語候補が図１０に示す住所データベース２５ａの単語Ｄ１であることを示すノードを（Ｄ１、Ｐ６）と表すものとする。ここで、図１０に示す住所データベース２５ａでは、単語Ｄ１（「ＣＩＴＹ」階層の「ＳＴＯＣＫＨＯＬＭ」）には、単語Ｄ４（「ＳＴＲＥＥＴ」階層の「ＡＧＡＴＡＮ」）と単語Ｄ５（「ＳＴＲＥＥＴ」階層の「ＴＯＳＨＩＢＡ」）とが属している。また、位置Ｐ６がＣＩＴＹ階層の情報である場合、ＳＴＲＥＥＴ階層は、図１２に示す入力画像において、位置Ｐ７あるいは位置Ｐ３の何れかであることが、当該住所情報の記載順序（各階層の情報の表記上のルール）により判別可能であるものとする。これらの状況に従って、上記ノード展開部３２は、ノード（Ｄ１、Ｐ６）に属するノードとして、（Ｄ４、Ｐ７）、（Ｄ４、Ｐ３）、（Ｄ５、Ｐ７）、（Ｄ５、Ｐ３）の４つのノードを展開する。
【００６５】
上記評価値算出部３３では、上記ノード展開部３２により生成された各ノードの評価値を算出するものである。たとえば、上記評価値算出部３３では、各ノードとしての各候補に対する認識処理を実行することにより、各ノードの評価値を算出する。本実施形態では、上記評価値算出部３３は、上述した手法により算出される事後確率を評価値として算出するものとする。
【００６６】
上記ノード選別部３４は、各ノードのうち最終的に評価すべきノードを選別するものである。上記ノード選別部３４では、上記評価値算出部３３により算出された評価値に基づいて各ノードを最終的に評価すべきノードとするか否かを判定する。たとえば、上記ノード選別部３４は、各階層ごとに上記評価値算出部３３により算出された評価値が高い順に所定数（つまり、上位Ｎ個）のノードを選出する。また、探索手法として最良優先探索が適用される場合、上記ノード選別部３４は、各階層に関わらずに、後述する複数の終端ノードから最も評価値の高いものを選択する。
【００６７】
上記決定部３５は、一連のパターン認識処理としての最終的な認識結果を決定するものである。上記決定部３５は、上記ノード選別部３４により最終階層のノードが選別された場合、それらの最終階層のノードに基づいて最終的な認識結果を決定する。たとえば、上記ノード選別部３４により最終階層のノードが複数得られた場合、上記決定部３５は、最大評価値となるノードに基づく認識結果を最終的な認識結果として出力する。また、上記決定部３５は、上記ノード選別部３４により得られた最終階層のノードのうち所定値以上の評価値となる各ノードに基づく各認識結果（１つ又は複数の認識結果）を最終的な認識結果として出力するようにしても良い。さらに、上記決定部３５は、上記ノード選別部３４により得られた最終階層のノードの評価値が所定値未満である場合、最終的な認識結果として当該パターンが認識不能であったことを出力するようにしても良い。
【００６８】
次に、上記のように構成される情報処理装置１１におけるパターン認識処理の第１、第２、第３の処理例について説明する。  
まず、上記情報処理装置１１におけるパターン認識処理の第１の処理例について説明する。  
図１３は、パターン認識処理の第１の処理例としての処理の流れを説明するためのフローチャートである。  
まず、上記画像入力装置１２から供給されるパターン認識処理の対象となる画像は、画像インターフェース２１により情報処理装置１１に取り込まれる（ステップＳ１０）。画像インターフェース２１によりパターン認識処理の対象となる画像が取り込まれると、プロセッサ２２は、パターン認識部２２ａによるパターン認識処理を開始する。すなわち、上記パターン認識部２２ａの認識制御部３０は、まず、上記候補抽出部３１により入力画像から単語候補を抽出する処理を実行する（ステップＳ１１）。たとえば、図９に示すような画像が与えられた場合、上記候補抽出部３１は、図１２に示すような単語候補を抽出する。この際、上記候補抽出部３１は、抽出した各単語候補を識別するための識別情報を付与するとともに、各単語候補の位置を示す情報を特定する。
【００６９】
入力画像から単語候補が抽出されると、上記認識制御部３０は、抽出された各単語候補に対する探索処理を開始する。まず、上記認識制御部３０は、探索木のルートノードを設定する処理を行う。これは、バッファ上において探索木の生成を開始することに相当する。すなわち、上記認識制御部３０は、ワーキングメモリ２３などに設けられたバッファにルートノードを格納する（ステップＳ１２）。ルートノードを設定すると、上記認識制御部３０は、処理中の階層を示す変数Ｌに初期値としての「Ｌ＝１」を設定する（ステップＳ１３）。
【００７０】
変数Ｌが設定されると、上記認識制御部３０は、Ｌ階層の各ノードを生成し、各ノードの評価値を算出する処理を行う（ステップＳ１４〜Ｓ１７）。すなわち、上記認識制御部３０は、既にバッファに格納されているノードを１つ取り出す（ステップＳ１４）。たとえば、Ｌ＝１の場合、認識制御部３０は、バッファからルートノードを取り出す。また、Ｌ＝２の場合、認識制御部３０は、バッファに格納されている第１階層の各ノードを順次取り出す。
【００７１】
上記バッファからノードが１つ取り出されると（ステップＳ１４）、上記認識制御部３０は、上記ノード展開部３２により取り出したノードに属する１つ下の階層（Ｌ階層）の各ノードを得るノード展開処理を行う（ステップＳ１５）。例えば、Ｌ＝１の場合、上記ノード展開部３２は、上記候補抽出部３１により抽出された候補のうち第１階層の候補に相当する各ノードをルートノードに従属する各ノードとしてバッファに格納する。また、図１２に示す単語候補の抽出例に対して、上記ステップ１４で取り出されたノードが（Ｄ１、Ｐ６）である場合、上記ノード展開部３２は、上述したように、（Ｄ４、Ｐ７）、（Ｄ４、Ｐ３）、（Ｄ５、Ｐ７）、（Ｄ５、Ｐ３）の４通りのノードを展開する。
【００７２】
上記ノード展開部３２により取り出したノードに属するＬ階層の各ノードが得られた場合、上記評価値算出部３３は、得られた各ノードに対する評価値を計算する（ステップＳ１６）。ここでは、上述した計算式により、各ノードに対する認識処理によって近似的に得られる事後確率が評価値として算出されるものとする。
【００７３】
上記評価値算出部３３により展開された各ノードの評価値が算出されると、上記認識制御部３０は、バッファに未処理のノードが存在するか否かを判断する（ステップＳ１７）。つまり、上記認識制御部３０は、Ｌ階層のノードに対して親ノードとなりうるノードのうち未処理のノードが存在するか否かを判断する。上記バッファに未処理のノードが存在すると判断した場合（ステップＳ１７、ＮＯ）、上記認識制御部３０は、上記ステップＳ１４へ戻り、次のノードをバッファから取り出すことにより、上記ステップＳ１４〜Ｓ１６の処理を繰り返し実行する。
【００７４】
また、上記バッファに未処理のノードが存在しないと判断した場合（ステップＳ１７、ＹＥＳ）、上記認識制御部３０は、上記ノード選別部３４により上記ステップ１６で計算された各ノードの評価値順に上位Ｎ個のノードを選択し、バッファに格納する（ステップＳ１８）。つまり、上記ステップＳ１８の処理では、上記ノード選別部３４により選別された各ノード（評価値が上位Ｎのノード）がＬ階層のノード（つまり、Ｌ階層の候補）として得られる。ここで、上記ノード選別部３４が評価値順に選出するノードの数は、正解となる候補が破棄されしまうことがないような値が設定される。ただし、選出するノードの数が多くなればなるほど、処理の速度が低下する。従って、選出するノードの数は、認識対象とするパターンの性質および必要とされる処理時間などの運用形態に応じて適宜設定すべきものである。
【００７５】
上位Ｎ個のノードをＬ階層のノードとしてバッファに格納すると、上記認識制御部３０は、Ｌ階層が当該パターン認識における最終階層であるか否かを判断する。この判断によりＬ階層が最終階層でないと判断した場合（ステップＳ１９、ＮＯ）、上記認識制御部３０は、上記変数Ｌを「Ｌ＝Ｌ＋１」に更新することにより、変数Ｌをインクリメントする（ステップＳ２０）。変更Ｌをインクリメントした場合、上記認識制御部３０は、上記ステップＳ１４へ進み、更新されたＬ階層の各ノードに対する処理を行う。
【００７６】
また、上記判断によりＬ階層が最終階層であると判断した場合（ステップＳ１９、ＹＥＳ）、上記認識制御部３０は、上記決定部３５により最終的な認識結果を決定する処理を行う（ステップＳ２１）。この場合、上記決定部３５では、各ノードの評価値に基づいて当該パターン認識処理の最終的な認識結果を決定する。たとえば、所定の閾値に基づいて各ノードの評価値を評価する場合、上記決定部３５は、所定の閾値以上の評価値となった各ノードにより特定される各候補を認識結果として出力する。また、パターン認識処理の認識結果を一意に決定する場合、上記決定部３５は、最大評価値となるノード（あるいは所定の閾値以上でかつ最大評価値となるノード）により特定される候補を認識結果として出力する。
【００７７】
上記のように、第１の処理例では、複数段階からなるパターン認識処理において、各階層ごとに評価値が上位Ｎ個のノードに絞り込んで探索を行う。これにより、第１の処理例によれば、誤って正解候補が破棄される可能性が低く、かつ、高速に正解となる候補を選出することが可能となる。
【００７８】
次に、上記情報処理装置１１におけるパターン認識処理の第２の処理例について説明する。  
本第２の処理例は、複数階層の候補から正解となる候補を探索する手法として最良優先探索を適用したパターン認識処理の例である。上述したように、最良優先探索では、異なる階層のノードについても、比較対象として、最も評価値が高いノードを優先的に処理してく探索手法である。また、ここでは、各ノードの評価値は、上述したような計算手法により算出されるものとする。
【００７９】
図１４は、上記情報処理装置１１におけるパターン認識処理の第２の処理例としての処理の流れを説明するためのフローチャートである。
【００８０】
まず、上記画像入力装置１２から供給されるパターン認識処理の対象となる画像は、画像インターフェース２１により情報処理装置１１に取り込まれる（ステップＳ３０）。画像インターフェース２１によりパターン認識処理の対象となる画像が取り込まれると、プロセッサ２２は、パターン認識部２２ａによるパターン認識処理を開始する。すなわち、上記パターン認識部２２ａの認識制御部３０は、まず、上記候補抽出部３１により入力画像から単語候補を抽出する処理を実行する（ステップＳ３１）。
【００８１】
入力画像から単語候補が抽出されると、上記認識制御部３０は、抽出された各単語候補に対する探索処理を開始する。まず、上記認識制御部３０は、探索木のルートノードを設定する処理を行う。これは、バッファ上において探索木の生成を開始することに相当する。すなわち、上記認識制御部３０は、ワーキングメモリ２３などのバッファにルートノードを格納する（ステップＳ３２）。ルートノードを設定すると、上記認識制御部３０は、順次評価値が最大となるノードを探索していく処理を行う。
【００８２】
すなわち、上記認識制御部３０は、既にバッファに格納されているノードから評価値が最大となっているノードを１つ取り出す（ステップＳ３３）。なお、ルートノードのみがバッファに格納されている状態では、上記認識制御部３０は、バッファからルートノードを取り出す。また、バッファに複数のノードが格納されている場合、上記認識制御部３０は、各ノードの階層に係らずに、バッファに格納されている各ノードから評価値が最大となるノードを取り出す。
【００８３】
バッファからノードを１つ取り出すと、上記認識制御部３０は、取り出したノードが終端ノードであるか否かを判断する（ステップＳ３４）。ここで、終端ノードとは、従属するノードが存在しないノードのことである。つまり、終端ノードは、ルートノードから構成される探索木において末端となるノードである。たとえば、図１５は、探索木の構成例を示す概念図である。図１５に示す例において、各白丸、黒丸は、探索における各状態を示すノードである。さらに、図１５に示す例では、黒丸は、下位にノードのない（従属するノードがない）終端ノードを示している。
【００８４】
上記判断により終端ノードでないと判断した場合（ステップＳ３４、ＮＯ）、上記認識制御部３０は、上記ノード展開部３２により取り出したノードに対するノード展開処理を行う（ステップＳ３５）。上述したように、ノード展開処理は、取り出したノードに属する１つ下の階層（Ｌ階層）の各ノードを得る処理である。なお、ルートノードが取り出された場合、上記ノード展開部３２は、上記候補抽出部３１により抽出された候補のうち第１階層の候補に相当する各ノードをルートノードに従属する各ノードとしてバッファに格納する。
【００８５】
上記ノード展開部３２により取り出したノードに属する各ノードが得られた場合、上記評価値算出部３３は、得られた各ノードに対する評価値を計算する（ステップＳ３６）。ここでは、上述した計算手法により、各ノードに対する認識処理によって近似的に得られる事後確率が評価値として算出されるものとする。
【００８６】
上記評価値算出部３３により展開された各ノードの評価値が算出されると、上記認識制御部３０は、これらの各ノードと各評価値とを対応づけてバッファに格納する（ステップＳ３７）。得られた各ノードと各評価値とをバッファに格納すると、上記認識制御部３０は、上記ステップＳ３３へ戻り、上述した処理を繰り返し実行する。上記ステップＳ３３〜Ｓ３７の処理は、上記ステップＳ３３で取り出したノードが終端ノードと判断されるまで繰り返し実行される。この結果として、最大評価値となるノードが終端ノードに到達するまでの探索木が得られる。
【００８７】
すなわち、上記ステップＳ３４で取り出したノードが終端ノードであると判断した場合（ステップＳ３４、ＹＥＳ）、上記認識制御部３０は、当該ノードの評価値が所定の閾値以上であるか否かを上記決定部３５により判定する（ステップＳ３８）。この判定により当該ノードの評価値が所定の閾値未満であると判定された場合（ステップＳ３８、ＮＯ）、上記認識制御部３０は、上記バッファに当該ノード以外に未処理のノードが存在するか否かを判断する（ステップＳ３９）。
【００８８】
上記バッファに未処理のノードが存在すると判断した場合（ステップＳ３９、ＮＯ）、上記認識制御部３０は、上記ステップＳ３３へ戻り、当該ノード以外で未処理のノードから最大評価値となるノードを取り出すことにより、上記ステップＳ３３〜Ｓ３７の処理を実行する。また、上記バッファに未処理のノードが存在しないと判断した場合（ステップＳ３９、ＹＥＳ）、上記認識制御部３０は、評価値が所定の閾値以上となる候補が得られなかったものとして、処理を終了する。
【００８９】
また、上記ステップＳ３８の判定により当該ノードの評価値が所定の閾値以上であると判定された場合（ステップＳ３８、ＹＥＳ）、上記認識制御部３０は、上記決定部３５により当該ノードにより特定される各階層の候補で示されるパターンを最終的な認識結果として出力する（ステップＳ４０）。なお、第２の処理例としては、最終的な認識結果として所定の閾値以上の全ノードを出力するようにしても良い。これは、上記ステップＳ４０で最終的な認識結果が得られた場合であっても、上記ステップＳ３９へ進み、バッファに存在する未処理のノードに対して上記ステップＳ３３以降の処理を実行することにより実現可能である。これにより、最終的な認識結果としてノードの評価値が所定の閾値以上となる複数の認識結果を出力するようにできる。
【００９０】
上記のように、第２の処理例では、複数段階からなるパターン認識処理において、最良優先探索により認識結果としての候補を絞り込み、絞り込んだ候補のうち所定の閾値以上の評価値となる候補に基づいて最終的な認識結果を得るようになっている。これにより、第２の処理例によれば、効率的に認識結果の候補を絞り込むことができ、絞り込んだ候補から最終的な認識結果を得ることが可能である。  
また、第２の処理例に適用される最良優先探索では、必要がある。このため、第２の処理例では、評価値として、上述した計算式により近似的に算出される事後確率が用いられる。これにより、第２の処理例によれば、異なる段階のノードについても比較することが可能となり、最良優先探索を実現可能となっている。
【００９１】
次に、上記情報処理装置１１におけるパターン認識処理の第３の処理例について説明する。  
本第３の処理例は、第２の処理例と同様に、複数階層の候補から正解となる候補を探索する手法として最良優先探索を適用したパターン認識処理の例である。第３の処理例では、第２の処理例の変形例である。第３の処理例では、各ノードの評価値として、各ノードの事後確率を推定される処理時間で割った値が用いられるものである。
【００９２】
図１６は、上記情報処理装置１１におけるパターン認識処理の第３の処理例としての処理の流れを説明するためのフローチャートである。なお、図１６に示すステップＳ５０〜Ｓ６０は、それぞれ第２の処理例として説明した図１４に示すステップＳ３０〜Ｓ４０と同等な処理である。
【００９３】
まず、上記画像入力装置１２から供給されるパターン認識処理の対象となる画像は、画像インターフェース２１により情報処理装置１１に取り込まれる（ステップＳ５０）。画像インターフェース２１によりパターン認識処理の対象となる画像が取り込まれると、プロセッサ２２は、パターン認識部２２ａによるパターン認識処理を開始する。すなわち、上記パターン認識部２２ａの認識制御部３０は、まず、上記候補抽出部３１により入力画像から単語候補を抽出する処理を実行する（ステップＳ５１）。
【００９４】
入力画像から単語候補が抽出されると、上記認識制御部３０は、抽出された各単語候補に対する探索処理を開始する。まず、上記認識制御部３０は、探索木のルートノードを設定する処理を行う。これは、バッファ上において探索木の生成を開始することに相当する。すなわち、上記認識制御部３０は、ワーキングメモリ２３などのバッファにルートノードを格納する（ステップＳ５２）。ルートノードを設定すると、上記認識制御部３０は、順次評価値が最大となるノードを探索していく処理を行う。
【００９５】
すなわち、上記認識制御部３０は、既にバッファに格納されているノードから評価値が最大となっているノードを１つ取り出す（ステップＳ５３）。バッファからノードを１つ取り出すと、上記認識制御部３０は、取り出したノードが終端ノードであるか否かを判断する（ステップＳ５４）。上記判断により終端ノードでないと判断した場合（ステップＳ５４、ＮＯ）、上記認識制御部３０は、上記ノード展開部３２により取り出したノードに対するノード展開処理を行う（ステップＳ５５）。
【００９６】
上記ノード展開部３２により取り出したノードに属する各ノードが得られた場合、上記評価値算出部３３は、得られた各ノードに対する評価値を計算する（ステップＳ５６）。この第３の処理例では、事後確率を推定処理時間で割った値を評価値として算出する。  
すなわち、上記評価値算出部３３は、まず、上記ノード展開部３２により得られた各ノードに対して事後確率を算出する（ステップＳ６１）。各ノードの事後確率は、上述した計算手法により、各ノードに対する認識処理によって近似的に算出される。
【００９７】
各ノードの事後確率が算出されると、上記評価値算出部３３は、各ノードに関する処理に要する時間を推定する処理を行う（ステップＳ６２）。ここでは、各ノードの属する下位階層の認識処理に要する処理時間が推定されるものとする。このような処理時間は、たとえば、下位階層の単語の総文字数から想定する方法が考えられる。  
各ノードの事後確率と推定処理時間とが得られると、上記評価値算出部３３は、各ノードごとに上記ステップＳ６１で算出された事後確率を上記ステップＳ６２で算出された推定処理時間で割った値を各ノードの評価値として算出する（ステップＳ６３）。
【００９８】
このような手法により上記評価値算出部３３で得られた各ノードの評価値が算出されると、上記認識制御部３０は、これらの各ノードと各評価値とを対応づけてバッファに格納する（ステップＳ５７）。得られた各ノードと各評価値とをバッファに格納すると、上記認識制御部３０は、上記ステップＳ５３へ戻り、上述した処理を繰り返し実行する。
【００９９】
すなわち、上記ステップＳ５４で取り出したノードが終端ノードであると判断した場合（ステップＳ５４、ＹＥＳ）、上記認識制御部３０は、当該ノードの評価値が所定の閾値以上であるか否かを上記決定部３５により判定する（ステップＳ５８）。この判定により当該ノードの評価値が所定の閾値未満であると判定された場合（ステップＳ５８、ＮＯ）、上記認識制御部３０は、上記バッファに当該ノード以外に未処理のノードが存在するか否かを判断する（ステップＳ５９）。
【０１００】
上記バッファに未処理のノードが存在すると判断した場合（ステップＳ５９、ＮＯ）、上記認識制御部３０は、上記ステップＳ５３へ戻り、当該ノード以外で未処理のノードから最大評価値となるノードを取り出すことにより、上記ステップＳ５３〜Ｓ５７の処理を実行する。また、上記バッファに未処理のノードが存在しないと判断した場合（ステップＳ５９、ＹＥＳ）、上記認識制御部３０は、評価値が所定の閾値以上となる候補が得られなかったものとして、処理を終了する。
【０１０１】
また、上記ステップＳ５８の判定により当該ノードの評価値が所定の閾値以上であると判定された場合（ステップＳ５８、ＹＥＳ）、上記認識制御部３０は、上記決定部３５により当該ノードにより特定される各階層の候補で示されるパターンを最終的な認識結果として出力する（ステップＳ６０）。なお、第３の処理例としては、最終的な認識結果として所定の閾値以上の全ノードを出力するようにしても良い。これは、上記ステップＳ６０で最終的な認識結果が得られた場合であっても、上記ステップＳ５９へ進み、バッファに存在する未処理のノードに対して上記ステップＳ５３以降の処理を実行することにより実現可能である。これにより、最終的な認識結果としてノードの評価値が所定の閾値以上となる複数の認識結果を出力するようにできる。
【０１０２】
上記のように、第３の処理例では、複数段階からなるパターン認識処理において、各候補に対する事後確率を推定処理時間で割った値を評価値とし、最良優先探索により認識結果としての候補を絞り込み、絞り込んだ候補のうち所定の閾値以上の評価値となる候補に基づいて最終的な認識結果を得るようになっている。これにより、第３の処理例によれば、処理時間を加味した評価値により効率的に認識結果の候補を絞り込むことができ、絞り込んだ候補から最終的な認識結果を得ることが可能である。
【０１０３】
次に、上記情報処理装置１１におけるパターン認識処理の第４の処理例について説明する。  
本第４の処理例は、評価値が上位Ｎ個のノード（複数のノード）を探索していく手法を適用したパターン認識処理である。第４の処理例では、上記第２の処理例で説明した最良優先探索と同様に異なる階層のノードも比較対象として、評価値が上位Ｎ個のノードを探索する。また、第４の処理例では、抽出したＮ個のノードに評価値が所定閾値以上となる終端ノード（パターン全体の認識結果）が存在するか否かを判定する。抽出したノードに評価値が所定閾値以上の終端ノードが存在しない場合、第４の処理例では、抽出した各ノードをさらに展開することにより、上述した処理を繰り返す。
【０１０４】
以下に説明する第４の処理例において、抽出するノード数は、予め設定されるものとする。抽出するノード数は、認識処理時間、情報処理装置の処理能力、および、認識対象とするパターン（文字あるいは単語）の特徴などの条件に応じて設定される。図１７は、図１１に示すパターン認識部２２ａに、抽出するノード数の設定値を保持するための設定情報記憶部３０ａを設けた構成例を示す図である。
【０１０５】
図１７に示す構成例では、設定情報記憶部３０ａは、上記認識制御部３０に設けられている。たとえば、上記設定情報記憶部３０ａに記憶されるノード数の設定値は、認識制御部３０に適用される認識アルゴリズムの設計段階で設定される。ただし、上記設定情報記憶部３０ａに記憶されるノード数の設定値は、図示しないキーボード等の操作部によりオペレータが適宜指定できるようにしても良い。
【０１０６】
図１８は、抽出するノード数とそれらのノードに対する処理時間との関係を概念的に示す図である。図１８に示すように、１つのノードに対する処理時間に比べて、２つ目以降のノードに対する処理時間は短い。たとえば、図１８に示す例では、各ノードが日本語あるいはアルファベット等の文字からなる単語候補である場合、１つ目のノードに対する処理時間に比べて、２つ目以降のノードに対する処理時間は非常に短くなっている。このような傾向は、一般に、パターン認識を行うためのアルゴリズムに当てはまる。
【０１０７】
つまり、パターン認識処理では、認識候補としての各ノードを個別に処理するよりも、複数のノードをまとめて処理を実行した方が効率が良いと考えられる。ただし、まとめて処理するノード数を無制限に増やしても、必ずしも認識精度の向上が望めるものではない。従って、まとめて処理するノード数（抽出するノード数）は、許容される認識処理時間、認識対象となるパターンの特徴、および、パターン認識処理を実行する情報処理装置１１の処理能力に応じて適宜設定されるのが好ましい。
【０１０８】
たとえば、日本語と英語とでは、文字自体の複雑さ及び辞書の単語数などが大きく異なる。一般には、日本語は、アルファベットに比べて文字自体が複雑で、かつ、辞書の単語数も多いと考えられる。このため、日本語の文字認識処理では、アルファベットの文字認識処理に比べて、抽出するノード数を多く設定するのが好ましい。また、図１８に示す例では、１つ目のノードに対する処理時間は、アルファベットに比べて日本語の方が長い。１つ目のノードに対する処理時間が長くなるようなパターンの認識処理では、処理時間の許容範囲内において、多くのノードをまとめて処理する方が効率及び精度が良くなると考えられる。
【０１０９】
次に、第４の処理例としてのパターン認識処理の流れについて説明する。  
図１９は、上記情報処理装置１１におけるパターン認識処理の第４の処理例としての処理の流れを説明するためのフローチャートである。  
まず、上記画像入力装置１２から供給されるパターン認識処理の対象となる画像は、画像インターフェース２１により情報処理装置１１に取り込まれる（ステップＳ７０）。画像インターフェース２１によりパターン認識処理の対象となる画像が取り込まれると、プロセッサ２２は、パターン認識部２２ａによるパターン認識処理を開始する。すなわち、上記パターン認識部２２ａの認識制御部３０は、まず、上記候補抽出部３１により入力画像から単語候補を抽出する処理を実行する（ステップＳ７１）。
【０１１０】
入力画像から単語候補が抽出されると、上記認識制御部３０は、抽出された各単語候補に対する探索処理を開始する。まず、上記認識制御部３０は、探索木のルートノードを設定する処理を行う。これは、バッファ上において探索木の生成を開始することに相当する。すなわち、上記認識制御部３０は、ワーキングメモリ２３などのバッファにルートノードを格納する（ステップＳ７２）。
【０１１１】
上記バッファにノードを格納する処理が行われると、上記認識制御部３０は、評価値が大きい順から所定数までのノード（上位Ｎ個のノード）を抽出する処理を行う。すなわち、上記認識制御部３０は、バッファに格納されている複数のノードから評価値が大きい順にＮ番目までのＮ個のノードを取り出す（ステップＳ７３）。なお、バッファに格納されているノードがＮ個未満である場合（たとえば、ルートノードのみがバッファに格納されている場合）、上記認識制御部３０は、バッファに格納されている全てのノードを取り出すようにすれば良い。
【０１１２】
上記バッファからＮ個までのノードを取り出す場合、上記認識制御部３０は、上記バッファから抽出するノードに終端ノードが含まれるか否かを判断する（ステップＳ７４）。上述したように、たとえば、図１５に示す探索木の概念図において、探索木の末端となる黒丸で示すノードが終端ノードである。図１５に示すように、終端ノードには、従属するノードが存在しない。これは、終端ノードが、各階層のノードの組合せからなる１つのパターン全体（例えば、住所情報などの文字列）を示すものであることを意味している。
【０１１３】
上記バッファから取り出したＮ個のノードに終端ノードが含まれないと判断した場合（ステップＳ７４、ＮＯ）、上記認識制御部３０は、上記ノード展開部３２により取り出したＮ個の各ノードに対するノード展開処理を行う（ステップＳ７５）。ノード展開処理は、各ノードに属する１つ下の階層の各ノードを得る処理である。なお、ルートノードが取り出された場合、上記ノード展開部３２は、上記候補抽出部３１により抽出された候補のうち第１階層の候補に相当する各ノードをルートノードに従属する各ノードとしてバッファに格納する。
【０１１４】
上記ノード展開部３２により取り出した各ノードに従属する複数のノードが得られた場合、上記評価値算出部３３は、得られた各ノードに対する評価値を計算する（ステップＳ７６）。ここでは、上述した計算手法により、各ノードに対する認識処理によって近似的に得られる事後確率が評価値として算出されるものとする。
【０１１５】
上記評価値算出部３３により展開された各ノードの評価値が算出されると、上記認識制御部３０は、これらの各ノードと各評価値とを対応づけてバッファに格納する（ステップＳ７７）。得られた各ノードと各評価値とをバッファに格納すると、上記認識制御部３０は、上記ステップＳ７３へ戻り、上述した処理を繰り返し実行する。上記ステップＳ７３〜Ｓ７７の処理は、上記ステップＳ７３で取り出すノードから認識結果として採用される終端ノードが検出されるまで繰り返し実行される。この結果として、評価値が上位Ｎ個となる各ノードを順に結合した探索木が得られる。
【０１１６】
また、上記ステップＳ７４でバッファから取り出したノードに終端ノードが含まれると判断した場合（ステップＳ７４、ＹＥＳ）、上記認識制御部３０は、各終端ノードの評価値が所定の閾値以上であるか否かを上記決定部３５により判定する（ステップＳ７８）。上記バッファには、各ノードに対する評価値が記憶されている。従って、バッファから抽出される終端ノードにも評価値が算出されている。終端ノードは、パターン全体を一意に特定するものである。このため、終端ノードに対する評価値は、当該終端パターンで特定されるパターン全体が確からしいか否かを評価する値でもある。従って、上記認識制御部３０は、終端ノードに対する評価値が所定の閾値以上であれば、当該終端ノードで特定されるパターン全体が認識結果として確からしいと判定する。
【０１１７】
すなわち、抽出したＮ個のノードに含まれる終端ノードの評価値が所定の閾値以上である場合（ステップＳ７８、ＹＥＳ）、上記認識制御部３０は、当該終端ノードにより特定されるノードの組合せ（パターン全体）を最終的なパターン全体の認識結果として採用する。つまり、上記認識制御部３０は、評価値が所定の閾値以上となる終端ノードで特定される各段階のノードの組合せからなるパターン全体を最終的な認識結果として出力する（ステップＳ８０）。
【０１１８】
なお、第４の処理例としては、所定の閾値以上の全ての終端ノードをパターン全体の認識結果の候補として出力するようにしても良い。これは、上記ステップＳ７８で所定閾値以上の終端ノードが得られた場合であっても、上記ステップＳ７５へ進むことにより実現できる。この場合、所定閾値以上の終端ノードを蓄積しつつ、バッファが空になるまで上記ステップＳ７３〜７９の処理を実行すれば良い。これにより、上記認識制御部３０は、評価値が所定閾値以上となった全ての終端ノードに基づく複数の認識結果を出力することができる。
【０１１９】
また、上記判定により抽出した終端ノードの評価値が所定の閾値以上でないと判定された場合（ステップＳ７８、ＮＯ）、上記認識制御部３０は、上記ステップＳ７５へ進み、終端ノード以外の各ノードに対するノード展開処理を行う。上記ノード展開処理により展開した各ノードに対する評価値をバッファに格納すると（ステップＳ７９、ＹＥＳ）、上記認識制御部３０は、上記ステップＳ７３へ戻り、上記バッファから評価値が上位Ｎ番目までのＮ個のノードを取り出すことにより、上記ステップＳ７３〜Ｓ７７の処理を実行する。ただし、バッファから取り出した全ノードが終端ノードで、かつ、それらの終端ノードが全て所定の閾値未満である場合、上記バッファにはノードが格納されない。このようにバッファが空となった場合（ステップＳ７９、ＹＥＳ）、上記認識制御部３０は、評価値が所定の閾値以上となる候補が得られなかったものとして当該処理を終了する。
【０１２０】
上記のように、第４の処理例では、複数段階の部分パターン（例えば、単語）からなるパターン全体（文字列）を認識する処理において、最良優先探索により各段階の部分パターンの候補（ノード）をＮ個ずつ絞り込み、絞り込んだＮ個のノードのうち評価値が所定閾値以上となる終端ノードを最終的な認識結果として得るようになっている。これにより、第４の処理例では、正解となるノードが破棄されることなく、効率的に各段階のノードを絞り込むことができ、効率的かつ高精度なパターン認識処理を実現できる。  
また、第４の処理例では、評価値が上位Ｎ個のノードを抽出するために、各ノードに従属するノードを展開し、展開した各ノードに対する評価値としての事後確率を近似的に算出する。これにより、第４の処理例では、事後確率が評価値となるため、異なる段階のノードについても比較でき、それらのノードから上位Ｎ個のノードを容易に抽出できる。
【０１２１】
次に、上記情報処理装置１１におけるパターン認識処理の第５の処理例について説明する。  
第５の処理例は、第４の処理例の変形例である。第５の処理例では、第４の処理例と同様に最良優先探索により評価値が上位Ｎ個のノードを探索していく手法を適用したパターン認識処理である。第５の処理例では、上記第４の処理例で説明した各処理における各ノードの評価値の算出処理として、各ノードの事後確率を推定される処理時間で割った値を算出する処理を行う。
【０１２２】
図２０は、上記情報処理装置１１におけるパターン認識処理の第５の処理例としての処理の流れを説明するためのフローチャートである。なお、図２０に示すステップＳ９０〜Ｓ９５、Ｓ９７〜Ｓ１００の各処理は、それぞれ第４の処理例で説明した図１９に示すステップＳ７０〜Ｓ７５、Ｓ７７〜Ｓ８０と同様な説明が可能である。
【０１２３】
上記画像入力装置１２から供給されるパターン認識処理の対象となる画像は、画像インターフェース２１により情報処理装置１１に取り込まれる（ステップＳ９０）。画像インターフェース２１によりパターン認識処理の対象となる画像が取り込まれると、上記パターン認識部２２ａの認識制御部３０は、上記候補抽出部３１により入力画像から単語候補となる画像領域を抽出する（ステップＳ９１）。入力画像から単語候補の領域が抽出されると、上記認識制御部３０は、まず、ワーキングメモリ２３などのバッファにルートノードを格納する（ステップＳ９２）。
【０１２４】
上記バッファにノードが格納されると、上記認識制御部３０は、バッファに格納されている複数のノードから評価値が大きい順にＮ個までのノードを取り出す（ステップＳ９３）。上記バッファから上位Ｎ個までのノードを取り出す場合、上記認識制御部３０は、上記バッファから抽出するノードに終端ノードが含まれるか否かを判断する（ステップＳ９４）。上記バッファから取り出したＮ個のノードに終端ノードが含まれない場合（ステップＳ９４、ＮＯ）、上記認識制御部３０は、上記ノード展開部３２により取り出したＮ個の各ノードに対するノード展開処理を行う（ステップＳ９５）。ノード展開処理は、各ノードに属する１つ下の階層の各ノードを得る処理である。
【０１２５】
上記ノード展開部３２により取り出した各ノードに従属する複数のノードが得られた場合、上記評価値算出部３３は、得られた各ノードに対する評価値を計算する（ステップＳ９６）。この第５の処理例では、事後確率を推定処理時間で割った値を評価値として算出する（ステップＳ１０１〜Ｓ１０３）。  
すなわち、上記評価値算出部３３は、上記ノード展開部３２により得られた各ノードに対して事後確率を算出する（ステップＳ１０１）。各ノードの事後確率は、上述した計算手法により、各ノードに対する認識処理によって近似的に算出される。
【０１２６】
各ノードの事後確率が算出されると、上記評価値算出部３３は、各ノードに関する処理に要する時間を推定する処理を行う（ステップＳ１０２）。ここでは、各ノードの属する下位階層の認識処理に要する処理時間が推定されるものとする。このような処理時間は、たとえば、下位階層の単語の総文字数から想定する方法が考えられる。  
各ノードの事後確率と推定処理時間とが得られると、上記評価値算出部３３は、各ノードごとに上記ステップＳ１０１で算出された事後確率を上記ステップＳ１０２で算出された推定処理時間で割った値を各ノードの評価値として算出する（ステップＳ１０３）。
【０１２７】
このような手法により上記評価値算出部３３により展開された各ノードの評価値が算出されると、上記認識制御部３０は、これらの各ノードと各評価値とを対応づけてバッファに格納する（ステップＳ９７）。得られた各ノードと各評価値とをバッファに格納すると、上記認識制御部３０は、上記ステップＳ９３へ戻り、上述した処理を繰り返し実行する。上記ステップＳ９３〜Ｓ９７の処理は、上記ステップＳ９３で取り出すノードから認識結果として採用される終端ノードが検出されるまで繰り返し実行される。この結果として、評価値が上位Ｎ個となる各ノードを順に結合した探索木が得られる。
【０１２８】
また、上記ステップＳ９４でバッファから取り出したノードに終端ノードが含まれると判断した場合（ステップＳ９４、ＹＥＳ）、上記認識制御部３０は、各終端ノードの評価値が所定の閾値以上であるか否かを上記決定部３５により判定する（ステップＳ９８）。上記決定部３５により抽出したＮ個のノードに含まれる終端ノードの評価値が所定の閾値以上であると判定された場合（ステップＳ９８、ＹＥＳ）、上記認識制御部３０は、当該終端ノードにより特定されるノードの組合せからなるパターン全体の最終的な認識結果として出力する（ステップＳ１００）。
【０１２９】
なお、第５の処理例としては、所定の閾値以上となる全ての終端ノードに基づくパターンを最終的な認識結果の候補として出力するようにしても良い。これは、上記ステップＳ９８で所定閾値以上の終端ノードが得られた場合であっても、上記ステップＳ９５へ進むことにより実現可能である。この場合、所定閾値以上となった終端ノードを蓄積しつつ、バッファが空になるまで上記ステップＳ９３〜９９の処理が実行される。これにより、上記認識制御部３０は、評価値が所定閾値以上となった全ての終端ノードに基づく複数の認識結果を最終的な認識結果として出力すれば良い。
【０１３０】
また、上記判定により抽出した終端ノードの評価値が所定の閾値以上でないと判定された場合（ステップＳ９８、ＮＯ）、上記認識制御部３０は、上記ステップＳ９５へ進み、終端ノード以外の各ノードに対するノード展開処理を行う。上記ノード展開処理により展開した各ノードに対する評価値をバッファに格納すると（ステップＳ９９、ＹＥＳ）、上記認識制御部３０は、上記ステップＳ９３へ戻り、上記バッファから評価値が上位Ｎ番目までのＮ個のノードを取り出すことにより、上記ステップＳ９３〜Ｓ９７の処理を実行する。ただし、バッファから取り出した全ノードが終端ノードで、かつ、それらの終端ノードが全て所定の閾値未満である場合、上記バッファにはノードが格納されない。このようにバッファが空となった場合（ステップＳ９９、ＹＥＳ）、上記認識制御部３０は、評価値が所定の閾値以上となる候補が得られなかったものとして当該処理を終了する。
【０１３１】
上記のように、第５の処理例では、各ノードに対する評価値として、事後確率を推定処理時間で割った値を算出する。このような評価値に基づいてノードをＮ個ずつ絞り込むことにより、第５の処理例では、評価値が所定閾値以上となる終端ノードを最終的な認識結果として得るようになっている。これにより、第５の処理例によれば、処理時間を加味した評価値により効率的に認識結果の候補を絞り込むことができる。
【図面の簡単な説明】
【０１３２】
【図１】本実施の形態のパターン認識方法に係る顔認識処理における各段階の処理を探索木で表現したものである。
【図２】住所データベースの例を示す図である。
【図３】住所情報の表記例を示す図である。
【図４】図３に示す住所情報の画像から得られた単語候補の例を示す図である。
【図５】マッチング処理を探索木で示す概念図である。
【図６】探索木で表される各ノードの状態を示す図である。
【図７】文字候補の例を示す図である。
【図８】パターン認識機能を有する情報処理装置の構成例を示す図である。
【図９】パターン認識処理の対象となる画像の例を示す図である。
【図１０】辞書データベースとしての住所データベースの構成例を示す図である。
【図１１】パターン認識部の構成例を示す図である。
【図１２】図９に示す入力画像から抽出される単語候補の例を示す図である。
【図１３】パターン認識処理の第１の処理例としての処理の流れを説明するためのフローチャートである。
【図１４】情報処理装置におけるパターン認識処理の第２の処理例としての処理の流れを説明するためのフローチャートである。
【図１５】探索木の構成例を示す概念図である。
【図１６】情報処理装置におけるパターン認識処理の第３の処理例としての処理の流れを説明するためのフローチャートである。
【図１７】第４の処理例に係る情報処理装置におけるパターン認識部の構成例を示す図である。
【図１８】ノード数とそれらのノードに対する処理時間との関係を概念的に示す図である。
【図１９】情報処理装置におけるパターン認識処理の第４の処理例としての処理の流れを説明するためのフローチャートである。
【図２０】情報処理装置におけるパターン認識処理の第５の処理例としての処理の流れを説明するためのフローチャートである。
【符号の説明】
【０１３３】
１１…情報処理装置、２１…画像インターフェース、２２…プロセッサ、２２ａ…パターン認識部、２３…ワーキングメモリ、２４…プログラムメモリ、２５…データメモリ、２５ａ…辞書データベース（住所データベース）、２６…出力インターフェース、３０…認識制御部、３１…候補抽出部、３２…ノード展開部、３３…評価値算出部、３４…ノード選別部、３５…決定部、３０ａ…設定情報記憶部。
【図１】
2010152697.tif 000010
【図２】
2010152697.tif 000011
【図３】
2010152697.tif 000012
【図４】
2010152697.tif 000013
【図５】
2010152697.tif 000014
【図６】
2010152697.tif 000015
【図７】
2010152697.tif 000016
【図８】
2010152697.tif 000017
【図９】
2010152697.tif 000018
【図１０】
2010152697.tif 000019
【図１１】
2010152697.tif 000020
【図１２】
2010152697.tif 000021
【図１３】
2010152697.tif 000022
【図１４】
2010152697.tif 000023
【図１５】
2010152697.tif 000024
【図１６】
2010152697.tif 000025
【図１７】
2010152697.tif 000026
【図１８】
2010152697.tif 000027
【図１９】
2010152697.tif 000028
【図２０】
2010152697.tif 000029