(57)【要約】【課題】従来の頻度値適用による誤補正を押さえて文字認識精度を向上すること。【解決手段】ＣＰＵ１０１が、イメージデータ上の文字認識を行い演算値で順位付けされた候補列を生成し、該候補列の候補文字順位をベンダより提供された頻度値に基づき並べ替えて認識文字を決定し、該認識文字の修正情報を入力可能とし、また、該修正情報入力結果に基づいて、前記候補列の第１候補と前記認識文字の認識の正誤を判断し、前記認識文字が前記候補列の第２候補に対応する場合、前記第１候補と第２候補からなる順位付けされたリストに対する蓄積データとして、第１候補第２候補の演算値差と前記判断結果とを蓄積しておき、蓄積データに基づいて、前記或リストに対する頻度値の補正値を算出して、以後、第１，第２候補に対応する補正値が存在する候補列の並べ替えを行う際には、前記ベンダ等より提供された頻度値の代わりに前記補正値を用いる構成を特徴とする。【選択図】図１
2006172379.tif 000002
【特許請求の範囲】
【請求項１】
イメージデータ上の文字の文字認識を行い当該文字に対して確からしさを示す演算値により順位付けされた複数の候補文字から構成される候補列を生成する初期認識処理手段と、文字ごとの頻度値を記憶保持する頻度値保持手段と、前記候補列の候補順位を前記文字ごとの頻度値に基づいて並べ替えて認識文字を決定する頻度値適用手段と、前記認識文字の修正情報を入力可能な入力手段とを有する文字認識処理装置において、
前記入力手段による修正情報の入力結果に基づいて、前記候補列の第１候補と前記認識文字の認識の正誤を判断する判断手段と、
前記認識文字が前記候補列の第１候補以外の候補に対応する場合、前記第１候補と前記認識文字に対応する候補からなるリストに対する蓄積データとして、前記第１候補と前記認識文字に対応する候補の演算値に関するデータと前記判断手段の判断結果とを蓄積する蓄積手段と、
前記蓄積手段に蓄積された或リストに対する蓄積データに基づいて、前記或リストに対する頻度値の補正値を算出して補正頻度値保持手段に記憶させる算出手段とを有し、
前記頻度値適用手段は、前記候補列内の第１候補，他の候補に対応する補正値が前記補正頻度値保持手段に保持されている場合には、前記候補列の候補順位の並べ替えを行う際に前記補正値を用いることを特徴とする文字認識処理装置。
【請求項２】
前記算出手段は、前記蓄積手段に蓄積された或リストに対する蓄積データに基づいて、前記候補列の第１候補が誤りであり且つ前記認識文字が正しい場合を示す第１の事象と、前記候補列の第１候補が正しく且つ前記認識文字が誤りである場合を示す第２の事象の、前記第１候補と前記認識文字に対応する候補の演算値差に対する分布状態を分析し、該分析結果に基づいて、前記或リストに対する頻度値の補正値を算出することを特徴とする請求項１記載の文字認識処理装置。
【請求項３】
前記第１の事象と前記第２の事象の前記演算値差に対する分布状態は、特に、前記第１候補と前記認識文字に対応する候補の頻度値又は補正値の差以内の、前記演算値差に対する分布状態であることを特徴とする請求項２記載の文字認識処理装置。
【請求項４】
前記算出手段は、前記蓄積手段に蓄積されたデータ数が所定の閾値を超えたリストに対して、前記補正値を算出することを特徴とする請求項１〜３のいずれかに記載の文字認識処理装置。
【請求項５】
前記認識文字が前記候補列の第２候補に対応する場合に、前記蓄積手段に前記第１候補と前記第２候補からなる順位付けされたリストに対する蓄積データとして、前記第１候補と前記第２候補の演算値に関するデータと前記判断手段の判断結果とを蓄積し、
前記頻度値適用手段は、前記候補列内の第１候補，第２候補に対応する補正値が前記補正頻度値保持手段に保持されている場合には、前記候補列の候補順位の並べ替えを行う際に前記補正値を用いることを特徴とする請求項１〜４のいずれかに記載の文字認識処理装置。
【請求項６】
イメージデータ上の文字の文字認識を行い当該文字に対して確からしさを示す演算値により順位付けされた複数の候補文字から構成される候補列を生成する初期認識処理ステップと、
該生成された前記候補列の候補文字順位を、予め記憶手段に保持される文字ごとの頻度値に基づき並べ替えて認識文字を決定する頻度値適用ステップと、
該決定された認識文字の修正情報を入力可能な入力ステップと、
該修正情報の入力結果に基づいて、前記候補列の第１候補と前記認識文字の認識の正誤を判断する判断ステップと、
前記認識文字が前記候補列の第１候補以外の候補に対応する場合、前記第１候補と前記認識文字に対応する候補からなるリストに対する蓄積データとして、前記第１候補と前記認識文字に対応する候補の演算値に関するデータと前記判断ステップの判断結果とを蓄積手段に蓄積する蓄積ステップと、
前記蓄積手段に蓄積された或リストに対する蓄積データに基づいて、前記或リストに対する頻度値の補正値を算出して補正頻度値保持手段に記憶させる算出ステップとを有し、
前記頻度値適用ステップでは、前記候補列内の第１候補，他の候補に対応する補正値が前記補正頻度値保持手段に保持されている場合には、前記候補列の候補順位の並べ替えを行う際に前記補正値を用いることを特徴とする文字認識処理方法。
【請求項７】
請求項６に記載された文字認識処理方法をコンピュータが実行するためのプログラム。
【請求項８】
請求項６に記載された文字認識処理方法をコンピュータが実行するためのプログラムをコンピュータが読み取り可能に記憶した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャナ等から読み取った文書画像の中にある数字，文字，記号等を認識する文字認識装置および文字認識方法およびプログラムおよび記録媒体に関するものである。
【背景技術】
【０００２】
特許文献１にあるような従来のＯＣＲ技術として、文字頻度による認識補助というものがある。
【０００３】
これは、初期段階（未調整）のＯＣＲ結果の候補文字の確からしさを表す「演算値」というものに対し、文字の出現確立を数値化した「頻度値」を加算し、再度候補文字を並び替えることで、ＯＣＲの認識結果をより高精度にしている。
【０００４】
以下、図２０を参照して、上述した文字頻度による認識補助について説明する。
【０００５】
図２０は、従来の文字頻度による認識補助を説明する図である。
【０００６】
図２０に示すように、上述した文字頻度による認識補助は以下の手順で行う。
【０００７】
（１）認識対象イメージを認識する。
【０００８】
ここでは、「あ」というイメージが認識されている。
【０００９】
（２）演算値（確からしさ）と候補となる文字を選出する。
【００１０】
ここでは、第１候補として「い」（演算値：９０００），第２候補として「あ」（演算値：８９００）が選出されている。
【００１１】
（３）頻度値（出現頻度が高いほど数値が高い）を演算値に加算し、加算結果に基づいて候補の順序を変更する。
【００１２】
例えば、「い」の出現頻度を「１００」，「あ」の出現頻度を「３００」とすると、頻度加算後の演算値は、「い」が「９１００」，「あ」が「９２００」となる。
【００１３】
よって、第１候補と第２候補を並べ替え、「あ」を第１候補、「い」を第２
候補とする。
【００１４】
これにより、「あ」というイメージは、正しく認識されたこととなる。
【００１５】
また、特許文献２には、実際の使用環境から文字の出現確立を算出し、より環境に適するように頻度値を補正し、精度を高める技術が提案されている。
【特許文献１】特開平８−１６７３０号公報
【非特許文献１】特開平７−２７１９２０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかしながら、特許文献１における文字頻度による認識補助は、ベンダ等の出荷時の設定された既定頻度値、またＯＣＲ認識辞書内に存在する文字種の全てにおいての割合に基づく文字頻度であるため、例えば特定文字の出現確立が高い原稿をＯＣＲ処理する環境や、またはイメージが類似しているような、ある特定の文字間における頻度の関係性がない。
【００１７】
そのため、初期段階ＯＣＲ結果では正解していても、頻度による認識補助の結果、不正解（以後、誤認識と呼ぶ）となり、認識の精度（以後、認識率と呼ぶ）が低下すると言った問題につながっていた。
【００１８】
また、特許文献２では、特定文字間の関係性にはやはり依存しないため、ＯＣＲ結果時によく生じる問題であるイメージが類似したような文字という特定文字間における認識率の低下問題は依然として残っている。
【００１９】
本発明は、上記の問題点を解決するためになされたもので、本発明の目的は、イメージデータ上の文字の文字認識を行い当該文字に対して確からしさを示す演算値により順位付けされた複数の候補文字から構成される候補列を生成し、該生成された前記候補列の候補文字順位を、ベンダ等より提供された文字ごとの頻度値に基づき並べ替えて認識文字を決定し、該決定された認識文字の修正情報を入力可能とし、また、該修正情報の入力結果に基づいて、前記候補列の第１候補と前記認識文字の認識の正誤を判断し、前記認識文字が前記候補列の第１候補以外の候補に対応する場合、前記第１候補と前記認識文字に対応する候補からなる順位付けされたリストに対する蓄積データとして、前記第１候補と前記認識文字に対応する候補の演算値に関するデータと前記判断結果とを蓄積手段に蓄積しておき、さらに、前記蓄積手段に蓄積された或リストに対する蓄積データに基づいて、前記或リストに対する頻度値の補正値を算出して補正頻度値保持手段に記憶させ、以後、第１候補，他の候補に対応する補正値が前記補正頻度値保持手段に保持されている候補列の候補文字順位の並べ替えを行う際には、前記ベンダ等より提供された頻度値の代わりに前記補正値を用いるように制御することにより、使用環境（文字認識する文書の種類）や候補文字間の関係性に特化した頻度値を用いて、従来の頻度値適用による誤補正を押さえて文字認識精度を向上することができる精度の高い文字認識処理環境を構築することができる文字認識装置および文字認識処理方法およびプログラムおよび記録媒体を提供することである。
【課題を解決するための手段】
【００２０】
本発明は、イメージデータ上の文字の文字認識を行い当該文字に対して確からしさを示す演算値により順位付けされた複数の候補文字から構成される候補列を生成する初期認識処理手段と、文字ごとの頻度値を記憶保持する頻度値保持手段と、前記候補列の候補順位を前記文字ごとの頻度値に基づいて並べ替えて認識文字を決定する頻度値適用手段と、前記認識文字の修正情報を入力可能な入力手段とを有する文字認識処理装置において、前記入力手段による修正情報の入力結果に基づいて、前記候補列の第１候補と前記認識文字の認識の正誤を判断する判断手段と、前記認識文字が前記候補列の第１候補以外の候補に対応する場合、前記第１候補と前記認識文字に対応する候補からなる順位付けされたリストに対する蓄積データとして、前記第１候補と前記認識文字に対応する候補の演算値に関するデータと前記判断手段の判断結果とを蓄積する蓄積手段と、前記蓄積手段に蓄積された或リストに対する蓄積データに基づいて、前記或リストに対する頻度値の補正値を算出して補正頻度値保持手段に記憶させる算出手段とを有するものであり、前記頻度値適用手段は、前記候補列内の第１候補，他の候補に対応する補正値が前記補正頻度値保持手段に保持されている場合には、前記候補列の候補順位の並べ替えを行う際に前記補正値を用いることを特徴とする。
【発明の効果】
【００２１】
本発明によれば、イメージデータ上の文字の文字認識を行い当該文字に対して確からしさを示す演算値により順位付けされた複数の候補文字から構成される候補列を生成し、該生成された前記候補列の候補文字順位を、予め記憶手段に保持される文字ごとの頻度値に基づき並べ替えて認識文字を決定し、該決定された認識文字の修正情報を入力可能とし、また、該修正情報の入力結果に基づいて、前記候補列の第１候補と前記認識文字の認識の正誤を判断し、前記認識文字が前記候補列の第１候補以外の候補に対応する場合、前記第１候補と前記認識文字に対応する候補からなる順位付けされたリストに対する蓄積データとして、前記第１候補と前記認識文字に対応する候補の演算値に関するデータと前記判断結果とを蓄積手段に蓄積しておき、さらに、前記蓄積手段に蓄積された或リストに対する蓄積データに基づいて、前記或リストに対する頻度値の補正値を算出して補正頻度値保持手段に記憶させ、以後、第１候補，他の候補に対応する補正値が前記補正頻度値保持手段に保持されている候補列の候補文字順位の並べ替えを行う際には、前記ベンダ等より提供された頻度値の代わりに前記補正値を用いるように制御するので、使用環境（文字認識する文書の種類）や候補文字間の関係性に特化した頻度値を用いて、従来の頻度値適用による誤補正を押さえて文字認識精度を向上することができる精度の高い文字認識処理環境を構築することができる等の効果を奏する
そして、認識処理精度が向上した結果、ユーザによる誤認識の修正処理の手間を減少させることができ、文字認識処理効率を大幅にアップして、工数や人件費を削減することも可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明を適用するのに好適である実施形態について説明を行う。
【００２３】
図１は、本発明の一実施形態を示す文字認識処理装置を適用可能なパーソナルコンピュータ（情報処理装置）の構成の一例を示すブロック図である。
【００２４】
なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、図２に示すようにＬＡＮ，ＷＡＮ等のネットワークを介して接続がなされて、本発明の文字認識機能に対応する処理を行う構成であっても本発明を適用できる。
【００２５】
図１において、１００はホストコンピュータであり、本装置全体の制御を行うＣＰＵ１０１を備えている。このＣＰＵ１０１は、システムバス１０４に接続される各デバイスをＣＰＵ１０１が総括的に制御する。このＣＰＵ１０１は、ＲＯＭ１０３のプログラム用ＲＯＭ、外部メモリ１１１、又は図示しないその他の記録媒体に格納された各種プログラムをＲＡＭ１０２上にロードして実行することにより、各種制御を行う。なお、外部メモリ１１１には、ＣＰＵ１０１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）、ＯＣＲ処理プログラムおよびＯＣＲ処理の際に用いる後述する各種データ等が記憶される。
【００２６】
また、ＲＡＭ１０２は、ＣＰＵ１０１の作業領域として使用され、認識対象となるイメージ等も記憶される。
【００２７】
１０５はキーボードコントローラ（ＫＢＣ）で、キーボード（ＫＢ）１０９や不図示のポインティングデバイスからのキー入力を制御する。１０６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）１１０の表示を制御する。
【００２８】
１０７はディスクコントローラ（ＤＫＣ）で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、スキャナ制御プログラム（以下スキャナドライバ）等を記憶するハードディスク（ＨＤ）、フレキシブルディスク（ＦＤ）等の外部メモリ１１１とのアクセスを制御する。イメージボード（ＩＢ）１０８は、双方向性インタフェース（インタフェース）１１２を介してスキャナ１１３に接続されて、スキャナ１１３との通信制御処理を実行する。
【００２９】
スキャナ１１３によって読み込まれたイメージデータは、ＩＢ１０８を介してホストコンピュータ１００に入力され、ＲＡＭ１０２又は外部メモリ１１１に記憶される。
【００３０】
図２は、本発明の文字認識処理装置を適用可能なシステム構成の一例を示すブロック図であり、図１に示したホストコンピュータ１００をクライアントＰＣ及びサーバＰＣにそれぞれに適用している。
【００３１】
図２に示すように、クライアントＰＣ３，４が、ＬＡＮ等のネットワーク，サーバＰＣ１を介して接続されるスキャナ２（直接、ＬＡＮに接続される構成であってもよい）で読み込まれたイメージデータを文字認識処理する構成であっても、本発明を適用可能である。
【００３２】
また、図示しない複合機等のスキャナ部で読み込んだイメージデータを複合機内のコントローラで文字認識処理する構成であっても本発明を適用可能である。
【００３３】
ここで、本発明のパーソナルコンピュータ等の情報処理装置内で実行する文字認識処理方法の概要を説明する。
【００３４】
本発明では、ＯＣＲの初期結果に頻度値を適用する際に、あるイメージ（１文字分）の認識結果の第１候補文字と第２候補文字の関係性に着目し、データを集計、分析し、頻度値に補正を加えることにより、利用者の使用環境や文字間の関係性に特化した頻度値を用いた文字認識処理を行う。
【００３５】
例えば、上述したような頻度値の適用によって、ＯＣＲの初期結果が「正解」から「誤認識」になるならば、この「誤認識」させる原因となっている頻度値を低下させ、「誤認識」となる文字数を少なくすればよい。
【００３６】
しかしながら、頻度値の適用により、ＯＣＲの初期結果が「誤認識」から「正解」に変換されていたものも存在する。
【００３７】
そのため、前者の「誤認識」となる文字数を減らしつつ、後者の「正解」となる文字数が多くなるような「最適な関係性」をもとめるための分析を行う。
【００３８】
そして、この分析結果を、頻度値へフィードバックして頻度値を補正し、トータルの認識率向上を促すことにより、頻度情報による補正処理の精度を向上し、より高い認識精度を実現し、ユーザによるＯＣＲ結果の修正処理の工数を削減することができる。結果として、利便性の向上とコストの削減を可能にする。
【００３９】
以下、図３，図４のフローチャートを参照して、本発明の文字認識処理装置の文字認識処理について詳細に説明する。
【００４０】
図３，図４は、本発明の文字認識処理装置における第１の制御処理手順の一例を示すフローチャートであり、本実施形態の文字認識処理の全体処理に対応する。なお、このフローチャートの処理は、ホストコンピュータ１００のＣＰＵ１０１が、外部メモリ１１１に記憶されるプログラムをＲＡＭ１０２にロードして実行することにより実現される。また、図中、Ｓ３０１〜Ｓ３２４は各ステップを示す。
【００４１】
まず、ステップＳ３０１において、ＣＰＵ１０１は、予め与えられた設定に基づいて、スキャナ１１３で読み取られてＲＡＭ１０２等のメモリ内に格納された認識対象となるイメージデータに対してＯＣＲ処理を開始する。このステップＳ３０１では、ＣＰＵ１０１は、スキャンした各文字の確からしさを、認識対象となるイメージと、辞書と呼ばれるイメージデータベースとの合致の度合いをもとにして演算値を算出し、候補文字の抽出をおこなう。
【００４２】
次に、ステップＳ３０２において、ＣＰＵ１０１は、ステップＳ３０１で抽出した候補文字の演算値を初期結果データとしてＲＡＭ１０２等のメモリに登録する。ここでメモリに登録される１文字分の初期結果データの一例を図５に示す。
【００４３】
図５は、本発明の文字認識処理装置における初期結果データのデータ構成の一例を示す図である。
【００４４】
図５に示すように、初期結果データは、ステップＳ３０１で算出した演算値、及びその演算値によって決定された候補文字から構成される。このような１文字分の初期結果データが、ステップＳ３０１でＯＣＲ処理された文字毎にＲＡＭ１０２等のメモリに登録される（Ｓ３０２）。
【００４５】
次に、図３のステップＳ３０３において、ＣＰＵ１０１は、１文字分の初期結果出データを読み出す。
【００４６】
次に、ステップＳ３０４において、ＣＰＵ１０１は、ステップＳ３０３で読み出した、あるイメージ１文字に対応する初期結果データの第１候補，第２候補に対して対応する頻度補正情報が、図６に示す補正された頻度値を記憶するデータベース内に存在するかどうかを判断する。
【００４７】
図６は、本発明の文字認識処理装置における補正された頻度値を記憶するデータベースのデータ構成の一例を示す図である。
【００４８】
図６に示すように、補正された頻度値を記憶するデータベースは、第１候補の文字コード１１０１，第２候補の文字コード１１０２，第１候補の頻度値（補正頻度値）１１０３，第２候補の頻度値（補正頻度値）１１０４から構成される。この補正された頻度値を記憶するデータベース内のデータは、外部メモリ１１１内に記憶されており、後述するステップＳ３２４の頻度データベース処理により登録される。
【００４９】
図３のステップＳ３０４で、初期結果の第１候補の文字コード，第２候補の文字コードが、図６に示した補正された頻度値を記憶するデータベース内に存在するリストの第１候補の文字コード１１０１，第２候補の文字コード１１０２とそれぞれ合致しているかどうかを判断する。
【００５０】
図３のステップＳ３０４で、ＣＰＵ１０１が、ステップＳ３０３で読み出した、あるイメージ１文字の初期結果データに対応する頻度補正情報があると判断した場合には、ステップＳ３０５において、ＣＰＵ１０１は、補正された頻度値を記憶するデータベース（図６）から対応する第１の候補の補正頻度値１１０３，第２の候補の補正頻度値１１０４を読み出す。
【００５１】
次に、ステップＳ３０６において、ＣＰＵ１０１は、ステップＳ３０５で読み出した第１の候補の補正頻度値１１０３，第２の候補の補正頻度値１１０４を、ステップＳ３０３で読み出した初期結果データの第１候補，第２候補の演算値に対して加算する（適用する）。
【００５２】
次に、ステップＳ３０７において、ＣＰＵ１０１は、適用外の候補（初期結果データの第３以降の候補データ）に関して、図７に示す基準頻度値データベースから対応する基準頻度値を呼び出す。
【００５３】
図７は、本発明の文字認識処理装置における補正された頻度値を記憶するデータベースのデータ構成の一例を示す図である。
【００５４】
次に、図３のステップＳ３０８において、ＣＰＵ１０１は、ステップＳ３０７で読み出した基準頻度値を、適用外の候補（ステップＳ３０３で読み出した初期結果データの第３以降の候補データ）の演算値に加算する（適用する）。次に、ステップＳ３０９において、ステップＳ３０６，Ｓ３０８での頻度値適用結果に基づいて、ステップＳ３０３で読み出した初期結果データの候補の並び替えを行う。
【００５５】
一方、ステップＳ３０４で、ＣＰＵ１０１が、ステップＳ３０３で読み出した、あるイメージ１文字の初期結果データに対応する頻度補正情報がないと判断した場合には、ステップＳ３１０において、ＣＰＵ１０１は、ステップＳ３０３で読み出した初期結果データの全ての候補データに関して、図７に示す基準頻度値データベースから対応する基準頻度値を呼び出す。
【００５６】
次に、ステップＳ３１１において、ＣＰＵ１０１は、ステップＳ３１０で読み出した基準頻度値を、ステップＳ３０３で読み出した初期結果データの全ての候補データの演算値に加算する（適用する）。そして、ステップＳ３１２において、ステップＳ３１１での頻度値適用結果に基づいて、ステップＳ３０３で読み出した初期結果データの候補の並び替えを行い、ステップＳ３１３の処理を進める。
【００５７】
次に、ステップＳ３１３において、ＣＰＵ１０１は、ステップＳ３０９又はＳ３１２で並び替えられた候補データを、頻度結果データとしてＲＡＭ１０２等のメモリに登録する。ここでメモリに登録される１文字分の頻度結果データの一例を図８に示す。
【００５８】
図８は、本発明の文字認識処理装置における頻度結果データのデータ構成の一例を示す図である。
【００５９】
図８に示すように、初期結果データは、ステップＳ３０５〜Ｓ３１２の処理で並べ替えられた候補文字から構成される。このような１文字分の頻度結果データが、ステップＳ３０１でＯＣＲ処理された文字毎にＲＡＭ１０２等のメモリに登録される。
【００６０】
次に、ステップＳ３１４において、ＣＰＵ１０１は、ステップＳ３０１でＯＣＲ処理した全ての文字のなかで、まだステップＳ３０３〜Ｓ３１３の処理が行われていない文字があるか否かを判断し、まだ処理されていない文字がある（ＹＥＳ）と判断した場合には、ステップＳ３０３に処理を戻し、次の文字の処理へ移行する。
【００６１】
一方、ステップＳ３１４で、ＣＰＵ１０１が、処理がなされていない文字がない（ＮＯ）と判断した場合には、ステップＳ３１５に処理を進める。
【００６２】
ステップＳ３１５において、ＣＰＵ１０１は、ステップＳ３０１〜Ｓ３１４で処理された文字認識結果（即ち、頻度結果データに登録された結果）をＣＲＴ１１０に表示させ、ＫＢ１０９又は図示しないマウス等によるユーザからの修正入力を可能にする。
【００６３】
そして、修正の終了を示す指示がＫＢ１０９又は図示しないマウス等により入力されると、ステップＳ３１６において、ＣＰＵ１０１は、修正されたデータを修正後結果データとして１文字毎にＲＡＭ１０２等のメモリに登録する。
【００６４】
図９は、本発明の文字認識処理装置における修正結果データのデータ構成の一例を示す図である。
【００６５】
図９に示すような１文字分の修正結果データが、ステップＳ３０１でＯＣＲ処理された文字毎にＲＡＭ１０２等のメモリに登録される。
【００６６】
そして、ステップＳ３１６の修正後結果データの登録が終了すると、ＣＰＵ１０１は、頻度を補正するために、ステップＳ３１７〜Ｓ３２４の処理を行う。
【００６７】
まず、ステップＳ３１７〜Ｓ３２２までの処理が、頻度を補正するために必要なデータの収集の処理に対応する。
【００６８】
ここで収集された第１候補と第２候補の関係データは後述する図１２に示すデータ集計データベースに登録される。なお、以後、このデータ集計データベースに登録されたデータの１リストを「関係候補文字」と呼ぶこととする。また、このデータ集計データベースに集計されるデータは、ＣＰＵ１０１が自動的に補正された頻度を算出するために必要なデータであり、１つの関係候補文字に対して２種類のデータが集計される。
【００６９】
１種類目のデータは、イメージの認識結果が、『初期結果データで「誤認識」であったが頻度結果データで「正解」となった』ときである。
【００７０】
２種類目のデータは、イメージの認識結果が、『初期結果データで「正解」であったが頻度結果データで「誤認識」となった』ときである。
【００７１】
ステップＳ３１９，Ｓ３２０の処理では、あるイメージの認識結果が『初期結果データで「誤認識」であったが頻度結果データで「正解」となった』ときのデータ（１種類目のデータ）が集計される。
【００７２】
ステップＳ３２２の処理では、あるイメージの認識結果が『初期結果データで「正解」であったが頻度結果データで「誤認識」となった』ときのデータ（１種類目のデータ）が集計される。
【００７３】
以下、ステップＳ３１７〜Ｓ３２２について詳細に説明する。
【００７４】
ステップＳ３１７において、ＣＰＵ１０１は、ステップＳ３１３で登録された頻度結果データをメモリから１文字（候補文字を含みつつ）読み出し、ステップＳ３１８において、ステップＳ３１７で読み出した頻度結果データ（着目中の頻度結果データ）対して、キーボード１０９から入力された修正（修正処理）があったかどうかを判断する（修正結果データがメモリに登録されているか否かを判断する）。
【００７５】
ステップＳ３１８で、ＣＰＵ１０１が、着目中の頻度結果データに修正処理があったと判断した場合には、ステップＳ３２１に処理を移行して上述の２種類目のデータの集計を行う。
【００７６】
ステップＳ３２１において、ＣＰＵ１０１は、図１０に示す修正結果照合処理を行う。以下、図１０を参照して修正結果照合処理について説明する。
【００７７】
図１０は、本発明の文字認識処理装置における第２の制御処理手順の一例を示すフローチャートであり、図４のステップＳ３２１に示した修正結果照合処理に対応する。なお、このフローチャートの処理は、ホストコンピュータ１００のＣＰＵ１０１が、外部メモリ１１１に記憶されるプログラムをＲＡＭ１０２にロードして実行することにより実現される。また、図中、Ｓ４０１〜Ｓ４０５は各ステップを示す。
【００７８】
まず、ステップＳ４０１において、ＣＰＵ１０１は、着目中の頻度結果データに対応する初期結果データと修正結果データを読み出し、該読み出した初期結果データと修正結果データとを照合する。
【００７９】
ステップＳ４０２において、ＣＰＵ１０１は、ステップＳ４０１の照合結果から、初期結果データの第１候補と修正後結果データの第１候補が一致するかどうか（つまり、初期結果で「正解」しているかどうか）を判断する。
【００８０】
そして、ステップＳ４０２において、ＣＰＵ１０１が、初期結果データの第１候補と修正後結果データの第１候補が一致しない（つまり、初期結果で「誤認識」している）と判断した場合には、そのまま処理を終了し、図３，図４のフローチャートに処理を戻す。
【００８１】
一方、ステップＳ４０２で、ＣＰＵ１０１が、初期結果データの第１候補と修正後結果データの第１候補が一致している（つまり、初期結果で「正解」している）と判断した場合には、ステップＳ４０３において、ＣＰＵ１０１は、初期結果データと頻度結果データとを照合する。
【００８２】
次に、ステップＳ４０４において、ＣＰＵ１０１は、ステップＳ４０３での照合結果から、初期結果データの第１候補と頻度結果データの第２候補が一致するかどうか（つまり、初期結果で「正解」していたが、頻度適用により第１候補と第２候補が入れ替えられた結果、頻度結果データで「誤認識」となったかどうか）を判断する。
【００８３】
そして、ステップＳ４０４で、ＣＰＵ１０１が、初期結果データの第１候補と頻度結果データの第２候補が一致しないと判断した場合には、そのまま処理を終了し、図３，図４のフローチャートに処理を戻す。
【００８４】
一方、ステップＳ４０４で、ＣＰＵ１０１が、初期結果データの第１候補と頻度結果データの第２候補が一致する（初期結果で「正解」していたが頻度結果データで「誤認識」となった）と判断した場合には、ステップＳ４０５において、ＣＰＵ１０１は、着目中の頻度結果データに対応する初期結果データ（着目中の初期結果データ）の第１候補，第２候補に対するデータ集計処理（図１１）を行う。なお、図１１に示すデータ集計処理を呼び出す際に、集計する初期結果データが『初期結果で「正解」していたが頻度結果データで「誤認識」となった』データに該当することを示すフラグ「０」を引き渡すものとする。
【００８５】
そして、ステップＳ４０５のデータ集計処理が終了すると、本フローチャートの処理を終了し、図３，図４のフローチャートに処理を戻す。
【００８６】
以下、図１１を参照してデータ集計処理について説明する。
【００８７】
図１１は、本発明の文字認識処理装置における第３の制御処理手順の一例を示すフローチャートであり、図１０のステップＳ４０５（又は、後述する図１３のステップＳ５０４）に示したデータ集計処理に対応する。なお、このフローチャートの処理は、ホストコンピュータ１００のＣＰＵ１０１が、外部メモリ１１１に記憶されるプログラムをＲＡＭ１０２にロードして実行することにより実現される。また、図中、Ｓ６０１〜Ｓ６０３は各ステップを示す。
【００８８】
まず、ステップＳ６０１において、ＣＰＵ１０１は、図１２に示すデータ集計データベースに、着目中の初期結果データの第１候補，第２候補に対応する既存の関係候補文字（リスト）があるかどうかを判断する。
【００８９】
ここでは、着目中の初期結果データの第１候補の文字コード，第２候補の文字コードが、後述する図１２に示す関係候補文字内の初期結果データの第１候補の文字コード７０１，第２候補の文字コード７０２とそれぞれ合致しているかどうかを判断することにより、着目中の初期結果データの第１候補，第２候補に対応する既存の関係候補文字（リスト）があるかどうかを判断する。
【００９０】
ステップＳ６０１で、ＣＰＵ１０１が、図１２に示すデータ集計データベースに、着目中の初期結果データの第１候補，第２候補に対応する既存の関係候補文字（リスト）がないと判断した場合には、ステップＳ６０３に処理を進める。
【００９１】
ステップＳ６０３において、ＣＰＵ１０１は、着目中の初期結果データの第１候補，第２候補に対応する関係候補文字（リスト）を新規に図１２に示すデータ集計データベースに登録し、本フローチャートの処理を終了し、図１０のフローチャートに処理を戻す。
【００９２】
図１２は、本発明の文字認識処理装置におけるデータ集計データベースのデータ構成の一例を示す図であり、各関係候補文字（７０１，７０２）毎に外部メモリ１１１内に記憶されている。以下、図１２を参照して、上記図１１のステップＳ６０３の処理について説明する。
【００９３】
図１１のステップＳ６０３の処理では、まず、ＣＰＵ１０１は、着目中の初期結果データの第１候補の文字コード，第２の候補の文字コードを、初期結果の第１候補文字コード（ＪＩＳ）７０１，初期結果の第２候補文字コード（ＪＩＳ）７０２として登録する（即ち、関係候補文字を登録する）。
【００９４】
次に、ＣＰＵ１０１は、着目中の初期結果データの第１候補の演算値と第２の候補の演算値の差を算出して第１第２候補の演算値の差７０３として登録する。
【００９５】
さらに、ＣＰＵ１０１は、着目中の初期結果データの正誤状態（０：初期結果データで「正解」であったが頻度結果データで「誤認識」となった，１：初期結果データで「誤認識」であったが頻度結果データで「正解」となった）を、データの状態フラグ７０４として登録する。即ち、ＣＰＵ１０１は、データ集計処理（図１１）が呼び出される際に、図１０に示した修正結果照合処理又は後述する図１３に示す結果照合処理から引き渡されたフラグの値を、データの状態フラグ７０４として登録する。よって、図１０に示した修正結果照合処理から呼び出された場合はデータの状態フラグ７０４に「０」が登録され、一方、図１３に示す結果照合処理から呼び出された場合はデータの状態フラグ７０４に「１」が登録されることとなる。
【００９６】
次に、ＣＰＵ１０１は、着目中の初期結果データの第１候補の演算値，第２の候補の演算値を、第１候補演算値７０５，第２候補演算値７０６として登録する。
【００９７】
さらに、ＣＰＵ１０１は、７０３〜７０７に対応するデータにシリアル番号を付加し、インデックス７０７として登録する。
【００９８】
また、ＣＰＵ１０１は、データの状態フラグ７０４の値が「０」が「関係候補文字」１リストにつき何個登録されているかを示すトータル数を集計し、データフラグ０のトータル個数７０８として登録する。
【００９９】
さらに、ＣＰＵ１０１は、データの状態フラグ７０４の値が「１」が「関係候補文字」１リストにつき何個登録されているかを示すトータル数を集計し、データフラグ１のトータル個数７０９として登録する。
【０１００】
以上で、図１１のステップＳ６０３の処理の説明を終了する。
【０１０１】
以下、図１１のフローチャートの説明に戻る。
【０１０２】
一方、ステップＳ６０１で、ＣＰＵ１０１が、図１２に示すデータ集計データベースに、着目中の初期結果データの第１候補，第２候補に対応する既存の関係候補文字（リスト）がないと判断した場合には、ステップＳ６０２において、ＣＰＵ１０１は、着目中の初期結果データの第１候補，第２候補に関するデータを、着目中の初期結果データの第１候補，第２候補に対応する関係候補文字（リスト）に追加登録し、本フローチャートの処理を終了し、図１０のフローチャートに処理を戻す。
【０１０３】
以下、図１２を参照して、図１１のステップＳ６０２の処理について説明する。
【０１０４】
図１１のステップＳ６０２の処理では、まず、ＣＰＵ１０１は、着目中の初期結果データの第１候補の演算値と第２の候補の演算値との差を算出して第１第２候補の演算値の差７０３として追加登録する。
【０１０５】
さらに、ＣＰＵ１０１は、着目中の初期結果データの正誤状態（０：初期結果データで「正解」であったが頻度結果データで「誤認識」となった，１：初期結果データで「誤認識」であったが頻度結果データで「正解」となった）を、データの状態フラグ７０４として追加登録する。
【０１０６】
また、ＣＰＵ１０１は、着目中の初期結果データの第１候補の演算値，第２の候補の演算値を、第１候補演算値７０５，第２候補演算値７０６として追加登録する。
【０１０７】
さらに、ＣＰＵ１０１は、７０３〜７０７に対応するデータにシリアル番号を付加し、インデックス７０７として追加登録する。以上により、７０３〜７０７に対応するデータがデータ集計データベースに追加される。
【０１０８】
また、ＣＰＵ１０１は、データの状態フラグ７０４の値が「０」が「関係候補文字」１リストにつき何個登録されているかを示すトータル数を集計し、データフラグ０のトータル個数７０８として変更登録する。
【０１０９】
さらに、ＣＰＵ１０１は、データの状態フラグ７０４の値が「１」が「関係候補文字」１リストにつき何個登録されているかを示すトータル数を集計し、データフラグ１のトータル個数７０９として変更登録する。
【０１１０】
以上で、図１１のステップＳ６０２の処理の説明を終了する。
【０１１１】
以下、図３，図４のフローチャートの説明に戻る。
【０１１２】
ステップＳ３２１の修正結果照合処理が終了すると、ＣＰＵ１０１は、ステップＳ３２２に処理を進める。
【０１１３】
一方、ステップＳ３１８で、ＣＰＵ１０１が、着目中の頻度結果データに修正処理がなかったと判断した場合には、ステップＳ３１９に処理を移行して上述の１種類目のデータの集計を行う。
【０１１４】
まず、ステップＳ３１９において、ＣＰＵ１０１は、図１２に示すデータ集計データベースに、着目中の頻度結果データの第２候補の文字コード，第１候補の文字コードに対応するデータ集計情報があるかどうかを判断する。この判断は、図１２に示したデータ集計データベース内の初期結果データの第１候補の文字コード７０１，第２候補の文字コード７０２中に、着目中の頻度結果データの第２候補の文字コード，第１候補の文字コードと合致したものがある場合に、対応するデータ集計情報があると判断する。
【０１１５】
ステップＳ３１９で、ＣＰＵ１０１が、図１２に示すデータ集計データベースに、着目中の頻度結果データの第２候補の文字コード，第１候補の文字コードに対応するデータ集計情報がないと判断した場合には、そのままステップＳ３２２に処理を進める。
【０１１６】
一方、ステップＳ３１９で、ＣＰＵ１０１が、図１２に示すデータ集計データベースに、着目中の頻度結果データの第２候補の文字コード，第１候補の文字コードに対応するデータ集計情報があると判断した場合には、ステップＳ３２０に処理を移行して上述の１種類目のデータの集計を行う。
【０１１７】
ステップＳ３２０において、ＣＰＵ１０１は、図１０に示す結果照合処理を行う。以下、図１３を参照して修正結果照合処理について説明する。
【０１１８】
図１３は、本発明の文字認識処理装置における第４の制御処理手順の一例を示すフローチャートであり、図４のステップＳ３２０に示した結果照合処理に対応する。なお、このフローチャートの処理は、ホストコンピュータ１００のＣＰＵ１０１が、外部メモリ１１１に記憶されるプログラムをＲＡＭ１０２にロードして実行することにより実現される。また、図中、Ｓ５０１〜Ｓ５０４は各ステップを示す。
【０１１９】
まず、ステップＳ５０１において、ＣＰＵ１０１は、着目中の頻度結果データに対応する初期結果データと頻度結果データを読み出し、該読み出した初期結果データと頻度結果データとを照合する。
【０１２０】
ステップＳ５０２において、ＣＰＵ１０１は、ステップＳ４０１の照合結果から、初期結果データの第１候補と頻度結果データの第１候補が一致するかどうか（つまり、初期結果で「正解」しているかどうか）を判断する。
【０１２１】
そして、ステップＳ５０２において、ＣＰＵ１０１が、初期結果データの第１候補と頻度結果データの第１候補が一致している（つまり、初期結果で「正解」している）と判断した場合には、そのまま処理を終了し、図３，図４のフローチャートに処理を戻す。
【０１２２】
一方、ステップＳ５０２で、ＣＰＵ１０１が、初期結果データの第１候補と頻度結果データの第１候補が一致していない（つまり、初期結果で「誤認識」している）と判断した場合には、ステップＳ５０３において、ＣＰＵ１０１は、ステップＳ５０１での照合結果から、初期結果データの第１候補と頻度結果データの第２候補が一致するかどうか（つまり、初期結果で「誤認識」していたが、頻度適用により第１候補と第２候補が入れ替えられた結果、頻度結果データで「正解」となったかどうか）を判断する。
【０１２３】
そして、ステップＳ５０３で、ＣＰＵ１０１が、初期結果データの第１候補と頻度結果データの第２候補が一致しないと判断した場合には、そのまま処理を終了し、図３，図４のフローチャートに処理を戻す。
【０１２４】
一方、ステップＳ５０３で、ＣＰＵ１０１が、初期結果データの第１候補と頻度結果データの第２候補が一致しする（初期結果で「誤認識」していたが頻度結果データで「正解」となった）と判断した場合には、ステップＳ５０４において、ＣＰＵ１０１は、着目中の頻度結果データに対応する初期結果データ（着目中の初期結果データ）の第１候補，第２候補に対するデータ集計処理（図１１）を行う。なお、図１１に示したデータ集計処理を呼び出す際に、集計する初期結果データが『初期結果で「誤認識」していたが頻度結果データで「正解」となった』データに該当することを示すフラグ「１」を引き渡すものとする。
【０１２５】
そして、ステップＳ５０４のデータ集計処理が終了すると、本フローチャートの処理を終了し、図３，図４のフローチャートに処理を戻す。
【０１２６】
以下、図３，図４のフローチャートの説明に戻る。
【０１２７】
ステップＳ３２０の結果照合処理が終了すると、ＣＰＵ１０１は、ステップＳ３２２に処理を進める。
【０１２８】
ステップＳ３２２において、ＣＰＵ１０１は、ステップＳ３０１でＯＣＲ処理した全ての文字のなかで、まだステップＳ３０７〜Ｓ３２１の処理が行われていない文字があるか否かを判断し、まだ処理されていない文字がある（ＹＥＳ）と判断した場合には、ステップＳ３１７に処理を戻し、次の文字の処理へ移行する。
【０１２９】
一方、ステップＳ３２２で、ＣＰＵ１０１が、処理がなされていない文字がない（ＮＯ）と判断した場合には、ステップＳ３２３に処理を進める。
【０１３０】
次に、ステップＳ３２３において、ＣＰＵ１０１は、図１２に示したデータ集計データベース内の１リスト（関係候補文字）のデータの個数が内部的に規定された規定数に達したものがあるか否かを判断する。この判断は、データフラグ０のトータル個数７０８（ｎ１）が規定数Ｘ以上で、且つ、データフラグ１のトータル個数７０９（ｎ２）が規定数Ｙ以上となるリストを規定数に達したものと判断する。
【０１３１】
即ち、初期結果で「正解」していたが頻度結果データで「誤認識」となった回数（ｎ１）が規定数Ｘ以上で、且つ、初期結果で「誤認識」していたが頻度結果データで「正解」となった回数（ｎ２）が規定数Ｙ以上となるリストを規定数に達したものと判断するものであり、上記規定数Ｘ，Ｙは頻度補正処理をおこなうための、必要なサンプルデータ数であるといえる（一定以上のデータが集計できないと正確な補正情報を生成できない）。
【０１３２】
ステップＳ３２３で、ＣＰＵ１０１が、データ集計データベース内の１リストのデータの個数が規定数に達したものがあると判断した場合には、該当するリスト（関係候補文字）を１つ読み出し（着目中の関係候補文字）、ステップＳ３２４に処理を進める。
【０１３３】
ステップＳ３２４において、ＣＰＵ１０１は、着目中の関係候補文字に対して頻度データベース処理（図１４）を施し、ステップＳ３２３に処理を戻し、規定数に達したリストがなくなるまでステップＳ３２４の処理を繰り返す。
【０１３４】
そして、ステップＳ３２３で、ＣＰＵ１０１が、データ集計データベース内の１リストのデータの個数が規定数に達したものがないと判断した場合には、本フローチャートの処理を終了する。
【０１３５】
以下、この頻度データベース処理について、図１４を参照して説明する。
【０１３６】
図１４は、本発明の文字認識処理装置における第５の制御処理手順の一例を示すフローチャートであり、図４のステップＳ３２４に示した頻度データベース処理に対応する。なお、このフローチャートの処理は、ホストコンピュータ１００のＣＰＵ１０１が、外部メモリ１１１に記憶されるプログラムをＲＡＭ１０２にロードして実行することにより実現される。また、図中、Ｓ９０１〜Ｓ９０５は各ステップを示す。
【０１３７】
まず、ステップＳ９０１において、ＣＰＵ１０１は、着目中の関係候補文字に対して頻度補正処理（図１５）を実行して、着目中の関係候補文字に対する補正された頻度値を算出する。
【０１３８】
次に、ステップＳ９０２において、ＣＰＵ１０１は、ステップＳ９０１で補正頻度処理に用いた、着目中の関係候補文字に対応する集計データを「データ集計データベース」から消去する。
【０１３９】
次に、ステップＳ９０３において、ＣＰＵ１０１は、着目中の関係候補文字に対応するデータが、図６に示した補正された頻度値を記憶するデータベースにあるか否かを判定し、既にあると判断した場合には、ステップＳ９０４において、ステップＳ９０１で算出した、着目中の関係候補文字に対応する「補正された頻度値」をデータベース（図６に示した補正された頻度値を記憶するデータベース）に上書き登録し、本フローチャートの処理を終了し、図３，図４のフローチャートに処理を戻す。
【０１４０】
一方、ステップＳ９０３で、ＣＰＵ１０１が、着目中の関係候補文字に対応するデータが、図６に示した補正された頻度値を記憶するデータベースにないと判断した場合には、ステップＳ９０５において、ステップＳ９０１で算出した、着目中の関係候補文字に対応する「補正された頻度値」をデータベース（図６に示した補正された頻度値を記憶するデータベース）に新規登録し、本フローチャートの処理を終了し、図３，図４のフローチャートに処理を戻す。
【０１４１】
以下、図１４のステップＳ９０１で示した頻度補正処理について、図１５を参照して説明する。
【０１４２】
図１５は、本発明の文字認識処理装置における第６の制御処理手順の一例を示すフローチャートであり、図１４のステップＳ９０１に示した頻度補正処理に対応する。なお、このフローチャートの処理は、ホストコンピュータ１００のＣＰＵ１０１が、外部メモリ１１１に記憶されるプログラムをＲＡＭ１０２にロードして実行することにより実現される。また、図中、Ｓ１００１〜Ｓ１０１６は各ステップを示す。
【０１４３】
まず、ステップＳ１００１において、ＣＰＵ１０１は、着目中の関係候補文字に対応する既存の情報が、図６に示した「補正された頻度値を記憶するデータベース」内にあるか否かを判定し、あると判断した場合には、ステップＳ１００２に処理を移行させる。
【０１４４】
ステップＳ１００２において、ＣＰＵ１０１は、図６に示した「補正された頻度値を記憶するデータベース」から着目中の関係候補文字の第１候補の頻度値（補正頻度値）１１０３，第２候補の頻度値（補正頻度値）１１０４をそれぞれ抽出する。
【０１４５】
次に、ステップＳ１００３において、ＣＰＵ１０１は、ステップＳ１００２で抽出した第１候補の頻度値（補正頻度値）１１０３，第２候補の頻度値（補正頻度値）１１０４の差を算出し、ステップＳ１００６に処理を移行させる。
【０１４６】
例えば、第１候補の頻度値「Ａ」の頻度値を「Ａ１」（例えば４０）とし、第２候補「Ｂ」の頻度値を「Ｂ１」（例えば１０）とすると、頻度値の差Ａｚは「Ａｚ＝Ａ１−Ｂ１」（例えば３０＝４０−１０）のように算出される。
【０１４７】
一方、ステップＳ１００１で、ＣＰＵ１０１が、着目中の関係候補文字に対応する既存の情報が、図６に示した「補正された頻度値を記憶するデータベース」内にないと判断した場合には、ステップＳ１００４において、ＣＰＵ１０１は、図７に示した基準頻度データから着目中の関係候補文字の第１候補の頻度値，第２候補の頻度値をそれぞれ抽出する。
【０１４８】
次に、ステップＳ１００５において、ＣＰＵ１０１は、ステップＳ１００４で抽出した第１候補の頻度値，第２候補の頻度値の差を算出し、ステップＳ１００６に処理を移行させる。
【０１４９】
次に、ステップＳ１００６において、ＣＰＵ１０１は、ステップＳ１００３，Ｓ１００５で算出した頻度値差をもとに、データ集計データベース（図１２）から、着目中の「関係候補文字」のデータ状態フラグ７０４が「１」（即ち、初期結果が「誤認識」で頻度結果が「正解」）で、且つ、第１第２候補の演算値の差７０３が上記頻度値差内の値となるデータの個数を抽出する。
【０１５０】
次に、ステップＳ１００７において、ＣＰＵ１０１は、ステップＳ１００３，Ｓ１００５で算出した頻度値差をもとに、データ集計データベース（図１２）から、着目中の「関係候補文字」のデータ状態フラグ７０４が「０」（即ち、初期結果が「正解」で頻度結果が「誤認識」）で、且つ、第１第２候補の演算値の差７０３が上記頻度値差内の値となるデータの個数を抽出する。
【０１５１】
以下、ステップＳ１００６，Ｓ１００７の個数の抽出処理を、図１６，図１７を参照して説明する。
【０１５２】
図１６は、図１２に示したデータ集計データベース内に登録された、ある「関係候補文字」の演算値差に対応するデータの個数をある演算値差範囲で示したグラフの一例を示す図である。
【０１５３】
図１７は、図１２に示したデータ集計データベース内に登録されたデータをある演算値差範囲で集計する際の概念を示す図である。
【０１５４】
まず、図１６に示すように、横軸を「第１候補と第２候補の演算値差」とし、縦軸を該演算値差に対応する、集計されているデータの「個数」とする。
【０１５５】
そして、『初期結果が「誤認識」で頻度結果が「正解」』となるデータの個数をグラフ化すると、図１６に示す「誤認識から正解グラフｇ（ｘ）」のようになる。
【０１５６】
よって、図１５のステップＳ１００６で抽出する個数は、図１７（ｂ）に示す「誤認識から正解グラフｇ（ｘ）」，横軸，縦軸，演算値＝「Ａｚ」の線で囲まれる範囲の面積に対応することとなる。
【０１５７】
また、『初期結果が「正解」で頻度結果が「誤認識」』となるデータの個数をグラフ化すると、図１６に示す「正解から誤認識グラフｆ（ｘ）」のようになる。
【０１５８】
よって、図１５のステップＳ１００７で抽出する個数は、図１７（ａ）に示す「正解から誤認識グラフｆ（ｘ）」，横軸，縦軸，演算値＝「Ａｚ」の線で囲まれる範囲の面積に対応することとなる。
【０１５９】
なお、ステップＳ１００６によって取得された個数から、ある頻度値差のときの『初期結果では「誤認識」であったが、頻度適用によって「正解」になっている個数』がわかる。
【０１６０】
また、ステップＳ１００７によって取得された個数から、ある頻度値差のときの『初期結果では「正解」であったが、頻度適用によって「誤認識」になっている個数』がわかる。
【０１６１】
よって、このステップＳ１００６で抽出した個数とステップＳ１００７で抽出した個数の差をとることによって、ある頻度値差のとき頻度値を適用することによって増える「正解」の「トータル数」が算出できる。
【０１６２】
具体的には、ステップＳ１００６で抽出した『初期結果では「誤認識」であったが、頻度適用によって「正解」になっている個数』を１文字「＋１」とし、ステップＳ１００７で抽出した『初期結果では「正解」であったが、頻度適用によって「誤認識」になっている個数』を１文字「−１」としてトータルする。これをステップＳ１００８により行う。
【０１６３】
ステップＳ１００８では、ＣＰＵ１０１は、ステップＳ１００６で取得された個数とステップＳ１００７で取得された個数との差（上述したトータル数）を算出する。
【０１６４】
次に、ステップＳ１００９において、ＣＰＵ１０１は、ある規定された演算値差の間隔内のデータの個数を取得するため、間隔の幅を演算する。
【０１６５】
詳細には、「関係候補文字」の頻度値の差を基準とし、０方向へ、演算した間隔値ごとに閾値Ｑｎを設定する。以下の数式で演算される。
【０１６６】
「Ｑｎ＝Ａｚ−（Ａｚ／ｎ）×ｉ」
なお、ｉは０からｎまでの整数値、Ｑｎ≧０とし、また、ｎは内部的に規定された整数とする。
【０１６７】
例えば、ｎ＝３，Ａｚ＝３０のとき、Ｑ０＝３０、Ｑ１＝２０、Ｑ２＝１０、Ｑ３＝０となる。
【０１６８】
そして、以下、閾値Ｑｎの「Ｑ０」〜「Ｑｎ」までのそれぞれに対して、ステップＳ１０１０〜Ｓ１０１２の処理を行う。
【０１６９】
ステップＳ１０１０において、ＣＰＵ１０１は、ステップＳ１００９で求めた閾値Ｑｎに対するデータの個数を、『初期結果が「誤認識」で頻度結果が「正解」』の場合で取得する。なお、データの個数の取得方法はステップＳ１００６時と同様である。即ち、ここでは、閾値ＱｎをステップＳ１００６の頻度値差として捉えた場合の『初期結果が「誤認識」で頻度結果が「正解」』となるデータの個数を抽出している。この抽出結果の一例を図１８の１２０２に示す。なお、ここで抽出される個数は「正解文字」の個数であるので、１文字を「＋１」として示す。
【０１７０】
図１８は、図１２に示したデータ集計データベース内に登録された、ある「関係候補文字」の演算値差に対応するデータの状態（初期結果と頻度結果の認識正誤に関する事象）毎の分布を示す図である。
【０１７１】
次に、ステップＳ１０１１において、ＣＰＵ１０１は、ステップＳ１００９で求めた閾値Ｑｎに対するデータの個数を、『初期結果が「正解」で頻度結果が「誤認識」』の場合で取得する。なお、データの個数の取得方法はステップＳ１００７時と同様である。即ち、ここでは、閾値ＱｎをステップＳ１００７の頻度値差として捉えた場合の『初期結果が「正解」で頻度結果が「誤認識」』となるデータの個数を抽出している。この結果の一例を図１８の１２０１に示す。なお、ここで抽出される個数は「誤認識文字」の個数であるので、１文字を「−１」として示す。
【０１７２】
なお、このように、閾値Ｑｎを頻度値差として捉えた場合、第１候補と第２候補が頻度値により影響を受けなくなる部分がでてくる。以下（１）（２）に示す。
【０１７３】
（１）ステップＳ１００６の頻度値差では『初期結果「正解」→頻度結果「誤認識」』だったが、閾値Ｑｎを頻度値差とした場合には『初期結果「正解」→頻度結果「正解」（頻度値適用の影響なし）』に変わる部分である。
【０１７４】
これは、ステップＳ１００６で抽出した「個数」と、ステップＳ１０１０で抽出した閾値Ｑｎに対応する「個数」の差として求められる。
【０１７５】
（２）ステップＳ１００７の頻度値差では『初期結果「誤認識」→頻度結果「正解」』だった部分が閾値Ｑｎを頻度値差とした場合には『初期値「誤認識」→頻度値「誤認識」（頻度値適用の影響なし）』に変わる部分である。
【０１７６】
これは、ステップＳ１００７で抽出した「個数」と、ステップＳ１０１１で抽出した閾値Ｑｎに対応する「個数」の差として求められる。この部分の個数を、図１８の１２０３〜１２０６に示す。なお、ここでは「正解文字」を１文字「＋１」、「誤認識文字」を１文字を「−１」として示す。
【０１７７】
次に、ステップＳ１０１２において、ＣＰＵ１０１は、ステップＳ１０１０で求めたデータの個数（図１８の１２０２）と、ステップＳ１０１１で求めたデータの個数（図１８の１２０１）と、さらに上述した（１）（２）対応する個数（図１８の１２０３〜１２０６のいずれか）から、閾値Ｑｎに対応する「トータル数」を算出する。このトータル数の一例を図１８の１２０７に示す。
【０１７８】
そして、ステップＳ１０１３において、ＣＰＵ１０１が、全ての間隔（閾値Ｑｎ）で処理が終了したか否かを判断し、まだ終了していないと判断した場合には、ステップＳ１０１０に処理を戻し、次の間隔（閾値）に対する処理に移行する。
【０１７９】
一方、ステップＳ１０１３で、ＣＰＵ１０１が、全ての間隔（閾値Ｑｎ）で処理が終了したと判断した場合には、ステップＳ１０１４に処理を移行させる。
【０１８０】
以上のステップＳ１０１０〜Ｓ１０１１の処理により、『初期「正解」→頻度「誤認識」』となったケース（事象），『初期「誤認識」→頻度「正解」』となったケース（事象）が、第１，第２候補の演算値差に対してどのように分布しているかを分析できる。
【０１８１】
なお、上述したように、ステップ１０１０〜Ｓ１０１２で算出されたトータル数は、正解文字を「＋１」とし、誤認識文字を「−１」として算出したので、各閾値「Ｑ０」〜「Ｑｎ」のトータル数（図１８の１２０７）のうち、トータル数が最も大きい閾値が、最適な頻度値（「正解文字」が最も多くなる頻度値）ということになる。
【０１８２】
よって、ステップＳ１０１４において、ＣＰＵ１０１は、各演算値差（「Ｑ０」〜「Ｑｎ」）のトータル数（図１８の１２０７）を比較し、現在使用されている頻度値差（ステップＳ１００３又はＳ１００５で算出された頻度値差）と同じ数値の演算値差（閾値Ｑｎ）のトータル数（図１８の１２０７）がもっとも大きいか否かを判断する。
【０１８３】
ステップＳ１０１４において、ＣＰＵ１０１は、現在使用されている頻度値差と同じ数値の演算値差（閾値Ｑｎ）のトータル数がもっとも大きいと判断した場合には、補正を必要としないため、補正頻度処理を終了する（つまり現在の頻度値差がもっとも適しているということになる）。
【０１８４】
一方、ステップＳ１０１４で、ＣＰＵ１０１が、現在使用されている頻度値差と同じ数値の演算値差（閾値Ｑｎ）のトータル数がもっとも大きいものではないと判断した場合には、ステップＳ１０１６に処理を移行させる。
【０１８５】
次に、ステップＳ１０１５において、ＣＰＵ１０１０は、各演算値差（閾値「Ｑ０」〜「Ｑｎ」）のトータル数（図１８の１２０７）のうち、最も大きいトータル数に対応する演算値差（閾値Ｑｎ）を取得し、ステップ１０１６において、該取得した演算値差（閾値Ｑｎ）に適合する、着目中の関係候補文字における頻度値を算出する。この際、第１候補の頻度値を基準として固定し、第１候補第２候補の頻度値差が、上記取得した演算値差（閾値Ｑｎ）となるように、第２候補の頻度値を算出する。
【０１８６】
例えば、ある関係候補文字を第１候補文字「Ａ」，第２候補文字「Ｂ」とし、Ａの頻度値を「１０」，Ｂの頻度値を「４０」とした場合、頻度値の差は「Ｂ（４０）−Ａ（１０）＝３０」となるである。
【０１８７】
そして、トータル数が図１８に示したように算出されたとする。
【０１８８】
この場合、トータル数の最も多い（２７５文字）場合の閾値がＱ２＝１０という値となる。
【０１８９】
よって、この場合、ステップＳ１０１６では、上記頻度値の差「３０」が、第１候補文字であるＡを基準にして「１０」となるように、第２候補文字であるＢの頻度値を修正算出する。即ち、第２候補文字であるＢの頻度値を「２０」と算出する。よって、補正された頻度値は、第１候補文字Ａの頻度値：「１０」，第２候補文字Ｂの頻度値：「２０」となる。
【０１９０】
そして、ステップＳ１０１６の処理を終了すると、ＣＰＵ１０１は、補正された頻度値（第１候補文字Ａの頻度値：「１０」，第２候補文字Ｂの頻度値：「２０」）を図１４のフローチャートに戻す。そして、この補正された頻度値は、上述したように、図１４のステップＳ９０４又はＳ９０５で、図６に示した「補正された頻度を記憶するデータベース」に登録される。
【０１９１】
以上示したように、本フローチャートの頻度補正処理は、上述した『初期「正解」→頻度「誤認識」』となったケース（事象），『初期「誤認識」→頻度「正解」』となったケース（事象）の、第１第２候補の演算値差に対する分布状態に基づいて、最適な補正頻度値を算出する処理に対応するものである。
【０１９２】
以上説明したように、本発明のパーソナルコンピュータ等の情報処理装置内で実行する文字認識処理方法では、ＯＣＲ初期結果に頻度値を適用する際に、あるイメージ（１文字分）の認識結果の第１候補文字と第２候補文字の関係性に着目し、データを集計、分析し、頻度値に補正を加えることにより、利用者の使用環境や文字間の関係性に特化した頻度値を用いた文字認識処理を行うことができる。
【０１９３】
例えば、上述したような頻度値の適用によって、ＯＣＲの初期結果が「正解」から「誤認識」になるならば、この「誤認識」させる原因となっている頻度値を低下させ、「誤認識」となる文字数を少なくすればよい。
【０１９４】
しかしながら、頻度値の適用により、ＯＣＲの初期結果が「誤認識」から「正解」に変換されていたものも存在する。
【０１９５】
そのため、前者の「誤認識」となる文字数を減らしつつ、後者の「正解」となる文字数が多くなるような「最適な関係性」をもとめるための分析を行う。
【０１９６】
そして、この分析結果を、頻度値へフィードバックして、トータルの認識率向上を促す。
【０１９７】
即ち、データ集計データベースに蓄積された、ある関係候補文字に対応する、第１の事象（初期結果が「正解」で頻度結果が「誤認識」となった事象），第２の事象（初期結果が「誤認識」で頻度結果が「正解」となった事象）の、第１第２候補の演算値差に対する分布状態（図１８に示した各閾値Ｑｎに対する個数１２０１，１２０２の分布状態）に基づいて、各閾値Ｑｎに対するトータル数（トータルで見たとき「正解」となる個数）を算出し、トータル数が最も大きくなる閾値Ｑｎに頻度値の差が等しくなるように前記ある候補文字群に対応する補正頻度値を算出する。
【０１９８】
これにより、頻度情報による補正処理の精度を向上し、より高い認識精度を実現し、ユーザによるＯＣＲ結果の修正処理の工数を削減することができる。結果として、利便性の向上とコストの削減を可能にする。
【０１９９】
なお、本実施形態では、初期結果の第１候補文字と第２候補文字の関係性のみに着目し、データを集計、分析し、初期結果の第１候補文字と第２候補文字の頻度値の補正値を算出する構成について説明したが、初期結果の第１候補と頻度結果の第１候補に対応する初期結果の候補（第１候補以外）との関係性に着目し、データを集計、分析し、初期結果の第１候補と頻度結果の第１候補に対応する初期結果の候補（第１候補以外）に着目するように構成してもよい。
【０２００】
また、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
【０２０１】
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０２０２】
なお、上述した第実施形態の各変形例のいずれか複数又は全てを組み合わせた構成も全て本発明に含まれるものである。
【０２０３】
以下、図１９に示すメモリマップを参照して本発明に係る文字認識処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０２０４】
図１９は、本発明に係る文字認識処理装置で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【０２０５】
なお、特に図示しないが、記録媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０２０６】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、インストールするプログラムやデータが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０２０７】
本実施形態における図３，図４，図１０，図１１，図１３，図１４，図１５に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤーＲＯＭやフラッシュメモリやＦＤ等の記録媒体により、あるいはネットワークを介して外部の記録媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０２０８】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０２０９】
この場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【０２１０】
プログラムコードを供給するための記録媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤーＲＯＭ，ＣＤーＲ，ＤＶＤーＲＯＭ，磁気テープ，不揮発性のメモリカード，ＲＯＭ，ＥＥＰＲＯＭ，シリコンディスク等を用いることができる。
【０２１１】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２１２】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０２１３】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウエアによって表されるプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【０２１４】
さらに、本発明を達成するためのソフトウエアによって表されるプログラムをネットワーク上のサーバ，データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【図面の簡単な説明】
【０２１５】
【図１】本発明の一実施形態を示す文字認識処理装置を適用可能なパーソナルコンピュータ（情報処理装置）の構成の一例を示すブロック図である。
【図２】本発明の文字認識処理装置を適用可能なシステム構成の一例を示すブロック図である。
【図３】本発明の文字認識処理装置における第１の制御処理手順の一例を示すフローチャートである。
【図４】本発明の文字認識処理装置における第１の制御処理手順の一例を示すフローチャートである。
【図５】本発明の文字認識処理装置における初期結果データのデータ構成の一例を示す図である。
【図６】本発明の文字認識処理装置における補正された頻度値を記憶するデータベースのデータ構成の一例を示す図である。
【図７】本発明の文字認識処理装置における補正された頻度値を記憶するデータベースのデータ構成の一例を示す図である。
【図８】本発明の文字認識処理装置における頻度結果データのデータ構成の一例を示す図である。
【図９】本発明の文字認識処理装置における修正結果データのデータ構成の一例を示す図である。
【図１０】本発明の文字認識処理装置における第２の制御処理手順の一例を示すフローチャートである。
【図１１】本発明の文字認識処理装置における第３の制御処理手順の一例を示すフローチャートである。
【図１２】本発明の文字認識処理装置におけるデータ集計データベースのデータ構成の一例を示す図である。
【図１３】本発明の文字認識処理装置における第４の制御処理手順の一例を示すフローチャートである。
【図１４】本発明の文字認識処理装置における第５の制御処理手順の一例を示すフローチャートである。
【図１５】本発明の文字認識処理装置における第６の制御処理手順の一例を示すフローチャートである。
【図１６】図１２に示したデータ集計データベース内に登録された、ある「関係候補文字」の演算値差に対応するデータの個数をある演算値差範囲で示したグラフである。
【図１７】図１２に示したデータ集計データベース内に登録されたデータをある演算値差範囲で集計する際の概念を示す図である。
【図１８】図１２に示したデータ集計データベース内に登録された、ある「関係候補文字」の演算値差に対応するデータの状態（初期結果と頻度結果の認識正誤に関する事象）毎の分布を示す図である。
【図１９】本発明に係る文字認識処理装置で読み取り可能な各種データ処理プログラムを格納する記録媒体（記憶媒体）のメモリマップを説明する図である。
【図２０】従来の文字頻度による認識補助を説明する図である。
【符号の説明】
【０２１６】
１００  ホストコンピュータ
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ＲＯＭ
１０４  システムバス
１０５  キーボードコントローラ（ＫＢＣ）
１０６  ＣＲＴコントローラ（ＣＲＴＣ）
１０７  ディスクコントローラ（ＤＫＣ）
１０８  イメージボード（ＩＢ）
１０９  キーボード（ＫＢ）
１１０  ＣＲＴ
１１１  外部メモリ
１１２  双方向インタフェース
１１３  スキャナ
【図１】
2006172379.tif 000003
【図２】
2006172379.tif 000004
【図３】
2006172379.tif 000005
【図４】
2006172379.tif 000006
【図５】
2006172379.tif 000007
【図６】
2006172379.tif 000008
【図７】
2006172379.tif 000009
【図８】
2006172379.tif 000010
【図９】
2006172379.tif 000011
【図１０】
2006172379.tif 000012
【図１１】
2006172379.tif 000013
【図１２】
2006172379.tif 000014
【図１３】
2006172379.tif 000015
【図１４】
2006172379.tif 000016
【図１５】
2006172379.tif 000017
【図１６】
2006172379.tif 000018
【図１７】
2006172379.tif 000019
【図１８】
2006172379.tif 000020
【図１９】
2006172379.tif 000021
【図２０】
2006172379.tif 000022