(57)【要約】【課題】文字認識を正確に実行すること。【解決手段】文字認識装置１００は、分類部１６２が入力画像に対して文字認識を実行することで確信度を求め、求めた確信度に基づいて文字領域とノイズ付文字領域を特定する。そして、仮行候補位置推定部１６３、行矩形補正部１６４が、文字領域とヒストグラムの頻度に基づいて、仮行候補矩形を特定し、文字矩形確定部１６５が、仮行候補矩形の重なる領域を文字領域として特定する。文字認識処理部１６６は、文字矩形特定部１６５に特定された文字領域に対して文字認識を実行する。【選択図】図２
2011022938.tif 000002
【特許請求の範囲】
【請求項１】
文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識部と、
前記文字認識部が取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定部と、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理部と、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計部と、
前記集計部が集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定部と、
前記延伸した領域と重畳する領域から、前記座標位置特定部が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定部と
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力部と
を有することを特徴とする文字認識装置。
【請求項２】
前記座標位置特定部は、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第１の閾値を超え、かつ、画素数の最小値が第２の閾値未満の場合に、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定することを特徴とする請求項１に記載の文字認識装置。
【請求項３】
前記座標位置特定部は、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第１の閾値以下、または、画素数の最小値が第２の閾値以上の場合に、画素数が最小値となる座標位置を特定することを特徴とする請求項２に記載の文字認識装置。
【請求項４】
コンピュータに、
文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識手順と、
前記文字認識手順が取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定手順と、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理手順と、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計手順と、
前記集計手順が集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定手順と、
前記延伸した領域と重畳する領域から、前記座標位置特定手順が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定手順と
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力手順と
を実行させることを特徴とする文字認識プログラム。
【請求項５】
文字認識装置が、
文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識ステップと、
前記文字認識ステップにおいて取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定ステップと、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理ステップと、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計ステップと、
前記集計ステップにおいて集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定ステップと、
前記延伸した領域と重畳する領域から、前記座標位置特定ステップが特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定ステップと
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力ステップと
を実行することを特徴とする文字認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字の認識を行う文字認識装置等に関する。
【背景技術】
【０００２】
従来、スキャナ等で読取った入力画像に含まれる文字を認識する文字認識システムが利用されている。かかる文字認識システムは、文字にノイズが含まれている場合、文字の認識精度が著しく低下する。したがって、どのようにして文字に含まれるノイズを除去するのか、また、どのようにノイズの影響を受けにくくするのか、という課題があり、この課題を解消するべく各種の技術が考案されている。
【０００３】
例えば、ノイズの影響で文字認識結果を誤った場合に、辞書の単語情報などを用いて、文字列を補正するという技術が存在する。また、認識対象となる文字の周囲の文字情報を用いることで、文字周辺に存在するノイズ要素を文字要素として認識対象にしないように制御するという技術も存在する。
【０００４】
しかし、上記の技術は、文字に重畳するノイズを考慮していない。したがって、例えば、文字列が丸印で囲まれていると、丸印で囲まれた文字列を一つの文字として誤認識し、文字認識を正確に実行することが出来ない。図４２は、丸印で囲まれた文字列の一例を示す図である。例えば、図４２に示すように、帳票上に記載された文字列「普通貯金」に丸印（ノイズ）が重畳していると、丸印の影響で「普通貯金」を一つの文字と誤認識し、例えば、文字認識結果が、
2011022938.tif 000003
となってしまう。
【０００５】
かかる難点を解消するためには、文字に重畳するノイズを取り除き、文字認識を実行すればよい。文字に重畳するノイズを取り除く技術としては、例えば、ノイズと文字の色情報、濃淡情報の違いを利用して文字からノイズを取り除く技術や、原画像とノイズの存在する画像とを比較して、ノイズを取り除く技術が存在する。また、予想されるノイズの形状を予め保持しておき、保持しておいたノイズの形状に基づいて、文字に重畳したノイズを取り除く技術も存在する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０２−０２１３８７号公報
【特許文献２】特開昭５６−１６２１８４号公報
【特許文献３】特開平５−２６６２５４号公報
【特許文献４】特開平６−２９０３０２号公報
【特許文献５】特開平１０−１８７８６５号公報
【特許文献６】特開２００２−１８３６６３号公報
【特許文献７】特許第３９２３０３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来の技術では、ノイズを含む文字の認識を正確に実行するためには各種の制約があり、必ずしも、ノイズを含む文字の認識を正確に実行することができないという問題があった。
【０００８】
具体的に、ノイズと文字の色情報、濃淡情報の違いからノイズを取り除く技術では、各色情報、濃淡情報に違いが無い場合、ノイズを除去することが出来ない。また、原画像とノイズの存在する画像とを比較してノイズを除去する技術では、原画像が存在しない場合には、ノイズを除去することが出来ない。また、予め保持しておいたノイズの形状に基づいてノイズを除去する技術では、保持しておいたノイズ形状と一致しなければ、ノイズを除去することができない。
【０００９】
すなわち、文字とノイズの色情報、濃淡情報に違いが無く、原画像やノイズの形状を利用しなくても、ノイズを含む文字の認識を正確に実行することが重要になる。
【００１０】
さらに、図４２に示した丸印は、ノイズである一方、丸印自体は選択項目等を示す情報として意味を持つものなので、単に、文字に重畳したノイズを取り除いて文字認識すればよいというものではない。
【００１１】
開示の技術は、上記に鑑みてなされたものであって、文字の認識を正確に実行することが出来る文字認識装置、文字認識プログラムおよび文字認識方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願の開示する文字認識装置は、文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識部と、前記文字認識部が取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定部と、前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理部と、前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計部と、前記集計部が集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定部と、前記延伸した領域と重畳する領域から、前記座標位置特定部が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定部と前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力部とを有することを要件とする。
【発明の効果】
【００１３】
この文字認識装置によれば、文字の認識を正確に実行することが出来る。
【図面の簡単な説明】
【００１４】
【図１】図１は、本実施例１にかかる文字認識装置の構成を示す図である。
【図２】図２は、本実施例２にかかる文字認識装置の構成を示す図である。
【図３】図３は、ハッシュテーブル登録部によるハッシュテーブルの登録について説明する図である。
【図４】図４は、入力画像に対するレイアウト解析結果を示す図である。
【図５】図５は、画像の特徴算出と文字カテゴリ検索について説明する図である。
【図６】図６は、検索結果の文字カテゴリ毎の集計について説明する図である。
【図７】図７は、部分画像のグラフ化処理について説明する図である。
【図８】図８は、ノード間でのパス接続について説明する説明図である。
【図９】図９は、クリークの抽出と評価について説明する図である。
【図１０】図１０は、文字領域の認識について説明する説明図である。
【図１１】図１１は、分類部の分類結果の一例を示す図である。
【図１２】図１２は、分類部による検索結果から作成する投票結果データである。
【図１３】図１３は、分類部が作成するグラフデータである。
【図１４】図１４は、文字矩形情報のデータ構造の一例を示す図である。
【図１５】図１５は、図１４に示す文字矩形情報の生成元となった入力画像を示す図である。
【図１６】図１６は、仮行候補位置推定部の処理を説明するための図である。
【図１７】図１７は、その他の入力画像に対する仮行候補矩形の抽出結果を示す図である。
【図１８】図１８は、仮行矩形情報のデータ構造の一例を示す図である。
【図１９】図１９は、仮行候補矩形の重なりを調整する処理を説明するための図（１）である。
【図２０】図２０は、仮行候補矩形の重なりを調整する処理を説明するための図（２）である。
【図２１】図２１は、行矩形特定部が特定したヒストグラムの一例を示す図である。
【図２２】図２２は、行矩形特定部の処理を説明するための図（１）である。
【図２３】図２３は、行矩形特定部の処理を説明するための図（２）である。
【図２４】図２４は、行矩形特定部の処理を説明するための図（３）である。
【図２５】図２５は、文字矩形確定部の処理を説明するための図である。
【図２６】図２６は、本実施例２にかかる文字認識装置の処理手順を示すフローチャートである。
【図２７】図２７は、分類処理の処理手順を示すフローチャートである。
【図２８】図２８は、仮行候補生成処理の処理手順を示すフローチャートである。
【図２９】図２９は、第２の仮行候補生成処理の処理手順を示すフローチャートである。
【図３０】図３０は、行候補同士の干渉を解決する処理の処理手順を示すフローチャートである。
【図３１】図３１は、文字枠の確定処理の処理手順を示すフローチャートである。
【図３２】図３２は、縦方向の補正処理の処理手順を示すフローチャート（１）である。
【図３３】図３３は、縦方向の補正処理の処理手順を示すフローチャート（２）である。
【図３４】図３４は、横方向の補正処理の処理手順を示すフローチャート（１）である。
【図３５】図３５は、横方向の補正処理の処理手順を示すフローチャート（２）である。
【図３６】図３６は、仮行候補矩形追加処理の処理手順を示すフローチャートである。
【図３７】図３７は、確定処理の処理手順を示すフローチャートである。
【図３８】図３８は、仮行候補矩形の境界を特定するその他の方法を説明するための図である。
【図３９】図３９は、文字領域を確定するその他の処理を説明するための図である。
【図４０】図４０は、文字の縦横比が異なる場合に仮行候補矩形を特定する場合の処理を説明するための図である。
【図４１】図４１は、実施例にかかる文字認証装置を構成するコンピュータのハードウェア構成を示す図である。
【図４２】図４２は、丸印で囲まれた文字列の一例を示す図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する（発明の名称）の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１６】
本実施例１にかかる文字認識装置の構成について説明する。図１は、本実施例１にかかる文字認識装置の構成を示す図である。図１に示すように、この文字認識装置１０は、文字認識部１１と、重畳判定部１２と、延伸処理部１３と、集計部１４と、座標位置特定部１５と、文字領域判定部１６と、出力部１７を有する。
【００１７】
文字認識部１１は、文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識した文字の確信度と文字の座標位置を取得する処理部である。重畳判定部１２は、確信度に基づいて文字認識対象となった文字にノイズが重畳しているか否かを判定する処理部である。
【００１８】
延伸処理部１３は、ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸する。そして、延伸処理部１３は、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する処理部である。
【００１９】
集計部１４は、ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する処理部である。
【００２０】
座標位置特定部１５は、集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する処理部である。文字領域判定部１６は、延伸した領域と重畳する領域から、座標位置特定部１５が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する処理部である。出力部１７は、文字領域判定部１６が文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する処理部である。
【００２１】
このように、本実施例１にかかる文字認識装置１０は、ノイズが重畳した文字と判定した領域と、ノイズが重畳していない文字の文字幅・文字高を延伸した領域との重畳する領域を判定し、判定した領域内の画素数に基づいて文字領域を判定する。そして、文字認識装置１０は、判定した文字領域に対して文字認識を実行するので、文字の認識を正確に実行することができる。
【実施例２】
【００２２】
次に、本実施例２にかかる文字認識装置について説明する。図２は、本実施例２にかかる文字認識装置の構成を示す図である。図２に示すように、この文字認識装置１００は、入力部１１０と、画像入力部１２０と、出力部１３０と、通信制御部１４０と、入出力制御部１４５と、記憶部１５０と、制御部１６０を有する。
【００２３】
入力部１１０は、キーボードやマウス等の入力装置に接続される。ユーザは、キーボードやマウスを操作して、各種の情報を文字認識装置１００に入力する。例えば、ユーザは、ディスプレイ（出力部１３０）に出力される画像を参照し、キーボードやマウスを操作して、文字の領域を指定する。
【００２４】
画像入力部１２０は、カメラやスキャナ等の撮影装置に接続される。画像入力部１２０は、撮影装置から取得した入力画像を制御部１６０に出力する。出力部１３０は、ディスプレイやプリンタなどに接続され、制御部１６０から出力される情報をディスプレイやプリンタ等に出力する。
【００２５】
通信制御部１４０は、ＬＡＮ（local  area  network）、無線ＬＡＮ等のネットワークを介して、他の端末装置に接続される。例えば、通信制御部１４０は、他の端末装置から入力画像を取得し、取得した入力画像を制御部１６０に出力する。
【００２６】
入出力制御部１４５は、入力部１１０と、画像入力部１２０と、出力部１３０と、通信制御部１４０と、記憶部１５０と、制御部１６０との間におけるデータの入出力を制御する処理部である。
【００２７】
記憶部１５０は、各種の情報を記憶する記憶部である。記憶部１５０は、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（flash  memory）などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。図２に示すように、この記憶部１５０は、ハッシュテーブル１５１と、文字矩形情報１５２と、仮行矩形情報１５３と、辞書情報１５４とを有する。記憶部１５０が記憶する各情報１５０〜１５４の説明は後述する。
【００２８】
制御部１６０は、画像入力部１２０または通信制御部１４０から入力画像を取得し、取得した入力情報に含まれる文字の領域を判定する。そして、制御部１６０は、文字の領域に対して文字認識を実行することで、入力画像に含まれる文字認識を実行する処理部である。制御部１６０は、例えば、ＡＳＩＣ（Application  Specific  Integrated  Curcuit）や、ＰＦＧＡ（Field  Programmable  Gate  Array）などの集積装置、または、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路である。図２に示すように、この制御部１６０は、ハッシュテーブル登録部１６１と、分類部１６２と、仮行候補位置推定部１６３と、行矩形特定部１６４と、文字矩形確定部１６５と、文字認識処理部１６６と、意味解析処理部１６７を有する。
【００２９】
ハッシュテーブル登録部１６１は、入力部１１０、画像入力部１２０、通信制御部１４０を介して取得した学習用の文字画像サンプルを用いてハッシュテーブル１５１を生成し、記憶部１５０に登録を行う処理部である。
【００３０】
ハッシュテーブル登録部１６１は、入力部１１０、画像入力部１２０、通信制御部１４０を介して学習用の文字画像サンプルを取得し、取得した文字画像をｎ×ｎ（例えばｎ＝５）でメッシュに分割する。そして、分割により得られた各メッシュをその文字画像の部分文字画像とし、メッシュごと（部分文字画像ごと）に特徴を算出する。
【００３１】
この特徴算出について種々の方法を適用することができ、例えば、加速方向指数ヒストグラム（電子情報通信学会論文誌D'87/7  Vol.J70-D  No.7  pp1390-1397  ”加速方向指数ヒストグラム法による手書き漢字・ひらがな認識”等）を適用することができる。この加速方向指数ヒストグラムは、方向指数の個数分の次元を持つベクトルが特徴として得られるものであり、本実施例では４次元の特徴ベクトルを用いる場合を例に説明を行う。
【００３２】
図３に示した例では、ハッシュテーブル登録部２２は、学習用の文字サンプルである「配」の文字画像を５×５で分割している。そして分割によって得られた各メッシュをｉ行ｊ列の行列と見なし、各メッシュを「配」（１，１）〜「配」（５，５）と識別して各メッシュの特徴ベクトルを算出すると、「配」（１，１）の特徴ベクトルは（２９，８，１３，１５）、「配」（１，２）の特徴ベクトルは（３２，１４，１８，２５）、「配」（２，１）の特徴ベクトルは（１２，２，４，３７）となっている。
【００３３】
さらに、同一文字カテゴリについて複数の学習用の文字サンプルがある場合、ハッシュテーブル登録部２２は、同一文字カテゴリに属する学習用サンプル画像数分に関して平均をとることによって個々の文字画像に依存する特徴成分を除去し、文字カテゴリ自体の特徴ベクトルを求める。
【００３４】
その結果、１つの文字カテゴリに対して、ｎ×ｎのメッシュ特徴ベクトルが得られる。また、このメッシュ特徴ベクトルの算出は、各文字カテゴリについてそれぞれ行なう。
【００３５】
次に、ハッシュテーブル登録部１６１は、メッシュ特徴ベクトルをハッシュ値に変換し、ハッシュ値から文字カテゴリとメッシュの位置を引けるようにする。メッシュ特徴ベクトルは方向指数の個数分の次元のベクトルであるが、値域を０から９の整数をとるように正規化を行う。この結果、メッシュ特徴ベクトルは１０の方向指数の個数分（＝４）の累乗（＝１００００）通りの値をとることになる。
【００３６】
正規化の方法は任意の方法を用いることができるが、類似の値が同一の値に変換される手法を採用することが好ましい。例えば、所定数で除算して整数商を求め、商が９を越える場合は強制的に９に置き換える、といった手法が好適である。
【００３７】
図３に示した例では、ハッシュテーブル登録部１６１は、特徴ベクトルの各次元の値を「４」で除算し、整数商を求めている。その結果、「配」（１，１）の特徴ベクトル（２９，８，１３，１５）は（７，２，３，３）に正規化され、「配」（１，２）の特徴ベクトル（３２，１４，１８，２５）は（８，３，４，６）に正規化され、「配」（２，１）の特徴ベクトル（１２，２，４，３７）は（３，０，１，９）に正規化されている。
【００３８】
そして、ハッシュテーブル登録部１６１は、正規化したメッシュ特徴ベクトル値に対して、文字カテゴリ名、メッシュの位置(i, j)を対応付けて、ハッシュテーブル１５１に登録する。すなわち、メッシュ特徴ベクトル(va, vb, vc, vd)が与えられたとき、(va, vb, vc, vd)に正規化を行なって(Va, Vb, Vc, Vd)に変換し、H=Va×1000+Vb×100+Vc×10+Vdを求め、Hに(文字カテゴリ名, i, j)を記録する。
【００３９】
図３に示した例では、正規化した特徴ベクトルが（７，２，３，３）である「配」（１，１）はハッシュ値（７２３３）に対応付けられ、正規化した特徴ベクトルが（８，３，４，６）である「配」（１，２）はハッシュ値（８３４６）に対応付けられ、正規化した特徴ベクトルが（３，０，１，９）である「配」（２，１）はハッシュ値（３０１９）に対応付けられている。
【００４０】
ハッシュテーブル登録部１６１は、以上の処理を全て文字カテゴリについて行なうことで、ハッシュテーブル１５１を作成し、記憶部１５０に格納する。同図に示した例では、ハッシュ値（７２３３）には「配」（１，１）に加えて「酸」（１，１），「王」（３，２）などが対応付けて登録され、ハッシュ値（３０１９）には「配」（２，１）に加えて「酸」（２，１），「祖」（１，３）などが対応付けて登録され、ハッシュ値（８３４６）には「配」（１，２）に加えて「祖」（３，２），「酉」（１，３）などが対応付けて登録されている。
【００４１】
分類部１６２は、入力画像に対して文字認識を実行し、認識した文字の確信度を判定する。そして、分類部１６２は、判定した確信度に基づいて、入力画像内の、ノイズが含まれない文字の領域と、ノイズが含まれる文字の領域とを判定する。以下の説明において、ノイズが含まれない文字の領域を文字領域と表記し、ノイズが含まれる文字の領域をノイズ付文字領域と表記する。
【００４２】
以下において、分類部１６１の処理を具体的に説明する。まず、分類部１６１は、画像入力部１２０、通信制御部１４０を介して入力画像を取得し、入力画像に対してレイアウト解析を実行する。レイアウト解析は、二値化処理と、ラベリング処理が含まれる。
【００４３】
レイアウト解析において、分類部１６１は、入力画像を二値化し、二値化（白黒化）した画像のピクセルを走査して、ピクセル（黒色の画素）の塊を特定する。そして、分類部１６１は、ピクセルの塊をそれぞれ文字矩形として抽出する。図４は、入力画像に対するレイアウト解析結果を示す図である。図４の上段に示す入力画像は、図４の下段に示すようなレイアウト解析結果となる。図４に示す例では、レイアウト解析結果により、５個の文字矩形１ａ〜１ｅが抽出されている。
【００４４】
レイアウト解析を実行した後に、分類部１６２は、各文字矩形に含まれる文字の文字認識を実行し、認識結果に応じて確信度を特定する。ここで、分類部１６２による文字認識について説明する。
【００４５】
図５は、画像の特徴算出と文字カテゴリ検索について説明する図である。図５に示すように、分類部１６２は、文字矩形内の画像を取得し、取得した画像をメッシュに分割する。この時、メッシュの大きさは、画像内の１文字がｎ×ｎで分割される大きさを基準にして設定する。例えば、画像の解像度が４００ｄｐｉのとき平均的な文字の大きさを縦横各４０画素として、メッシュの大きさを縦横各８画素と設定すれば、一文字を５×５に相当する大きさでメッシュ分割することができる。その他の解像度の画像に対しては、解像度に比例してメッシュの大きさを設定すればよい。また、周辺の文字の大きさが認識可能である場合には、周辺の文字の大きさに基づいてメッシュの大きさを設定すればよい。
【００４６】
なお、分類部１６２は、画像のメッシュ分割によって得られたメッシュ（部分画像）について、それぞれ画像のどの位置から切出されたかを記憶部１５０に格納して記憶させる。
【００４７】
次に、分類部１６２は、切出された各メッシュについてそれぞれ特徴ベクトルを求める。この特徴ベクトルの算出には、ハッシュテーブル作成時と同様に、例えば加重方向指数ヒストグラムを用いる。図５に示した例では、入力画像から切出されたメッシュｍ４３の特徴ベクトルは（１３，１，５，６２）、同じくメッシュｍ１０４の特徴ベクトルは（３６，７，３，４）と求められている。
【００４８】
次に、分類部１６２は、特徴ベクトルをそれぞれ正規化する処理を行なう。この正規化についてもハッシュテーブル作成時と同様に行ない、例えば、所定数で除算して整数商を求め、商が９を越える場合は強制的に９に置き換える。
【００４９】
図５に示した例では、分類部１６２は、特徴ベクトルの各次元の値を「４」で除算し、整数商を求めている。その結果、メッシュｍ４３の特徴ベクトル（１３，１，５，６２）は（３，０，１，９）に正規化され、メッシュｍ１０４の特徴ベクトル（３６，７，３，４）は（９，２，１，１）に正規化されている。
【００５０】
次に、分類部１６２は、正規化された特徴ベクトルをキーとしてハッシュテーブル１５１を参照し、部分画像の各々について特徴量が類似する文字カテゴリの部分文字画像を検索する。
【００５１】
その結果、図５に示した例では、メッシュｍ４３に類似する部分文字画像として、ハッシュ値（３０１９）に紐付けられた部分文字画像、すなわち文字カテゴリ「配」の（２，１）、文字カテゴリ「酸」の（２，１）、文字カテゴリ「祖」の（１，３）などが検索結果として得られる。同じく、メッシュｍ１０４に類似する部分文字画像として、ハッシュ値（９２１１）に紐付けられた部分文字画像、すなわち文字カテゴリ「祖」の（４，４）、文字カテゴリ「酸」の（５，３）などが検索結果として得られる。
【００５２】
分類部１６２は、画像から切出された全てのメッシュ、すなわち部分画像について類似する部分文字画像を検索した後、検索結果として得られた複数の部分文字画像を文字カテゴリ毎に集計する。
【００５３】
図６は、検索結果の文字カテゴリ毎の集計について説明する図である。同図に示した例では、メッシュｍ４３，ｍ１０４の検索結果を文字カテゴリの対応する位置に投票して集計している。具体的には、文字カテゴリ「配」について、（２，１）の位置にメッシュｍ４３を投票し、（５，３）の位置にメッシュｍ１０４を投票している。同様に、文字カテゴリ「酸」の（２，１）にメッシュｍ４３を投票し、文字カテゴリ「祖」の（１，３）にメッシュｍ４３、文字カテゴリ「祖」の（４，４）にメッシュｍ１０４を投票している。
【００５４】
つぎに、分類部１６２は、各文字カテゴリに投票された部分画像について、画像での位置関係と文字カテゴリ内での位置関係とを比較し、その整合性を判定する。具体的に分類部１６２は、同一の文字カテゴリの各位置に投票された部分画像をノードとして、文字カテゴリのメッシュ間での関係と入力画像のメッシュ間の関係が保たれるノード同士をパスで結ぶことでグラフを生成する。
【００５５】
図７は、部分画像のグラフ化処理について説明する図である。同図に示した例では、画像から切出した部分画像であるメッシュｍ２１、メッシュｍ４３、メッシュｍ４４、メッシュｍ１０４、メッシュｍ１０５、メッシュｍ１０８が全て文字カテゴリ「配」に投票されている。
【００５６】
ここで、メッシュｍ２１は文字カテゴリ「配」の（１，１）に投票されている。同様に、メッシュｍ４３は（２，１）に、メッシュｍ４４は（２，２）に、メッシュｍ１０４は（５，４）に、メッシュｍ１０５は（５，５）に、メッシュｍ１０８は（４，４）に投票されている。
【００５７】
分類部１６２は、「配」に登録された全ての部分入力画像（メッシュｍ２１、メッシュｍ４３、メッシュｍ４４、メッシュｍ１０４、メッシュｍ１０５、メッシュｍ１０８）をノードとし、ノード間の位置関係に基づいてパスを引く。
【００５８】
図８は、ノード間でのパス接続について説明する説明図である。同図を参照し、メッシュｍ４３、メッシュｍ１０５、メッシュｍ１０８の位置関係を例にノード接続について説明する。
【００５９】
まず、メッシュｍ４３とメッシュｍ１０５について考える。画像においては、メッシュｍ４３に対して右下方向にメッシュｍ１０５が位置する。また、文字カテゴリ内においてもメッシュｍ４３に対して右下方向にメッシュｍ１０５が位置する。このように、メッシュｍ４３とメッシュｍ１０５との間では、画像内での相対位置関係と文字カテゴリ内での相対位置関係との整合が取れている（位置関係が保たれている）ので、分類部１６２は、メッシュｍ４３とメッシュｍ１０５との間をパスで結ぶ（図７に示すグラフ参照。）。
【００６０】
つぎに、メッシュｍ１０５とメッシュｍ１０８について考える。画像においては、メッシュｍ１０５と同じ高さの右方向にメッシュｍ１０８が位置する。これに対し、文字カテゴリ内ではメッシュｍ１０５に対して左上方向にメッシュｍ１０８が位置する。このように、メッシュｍ１０５とメッシュｍ１０８との間では、入力画像内での相対位置関係と文字カテゴリ内での相対位置関係との整合が取れていないので、メッシュｍ１０５とメッシュｍ１０８との間にはパスを引かない（図７に示すグラフ参照。）。
【００６１】
さらに、メッシュｍ４３とメッシュｍ１０８について考える。入力画像においては、メッシュｍ４３に対して右下方向にメッシュｍ１０８が位置する。また、文字カテゴリ内においてもメッシュｍ４３に対して右下方向にメッシュｍ１０８が位置する。このように、メッシュｍ４３とメッシュｍ１０８との間では、画像内での相対位置関係と文字カテゴリ内での相対位置関係との整合が取れているので、メッシュｍ４３とメッシュｍ１０８との間にパスを引く（図７に示すグラフ参照。）。
【００６２】
分類部１６２は、文字カテゴリごとに、投票されたメッシュのすべての２つの関係に対して位置の関係が満たされているかどうかを調べ、グラフを作成する。その後、分類部１６２は、作成したグラフから完全部分グラフであるクリークを抽出する処理を行なう。分類部１６２が抽出するクリークは、部分文字画像の位置関係と整合する部分画像の組み合わせであり、画像内における文字候補となる。グラフからクリークを抽出するアルゴリズムとしては、種々の方法を用いることができる（例えば、C.Bron and J.Kerbosch Algorithm 457. Finding all cliques of an undirected graph [H]. Comm. ACM. 16(9) (September 1973).など。）。
【００６３】
分類部１６２は、抽出したクリークを評価することで、文字カテゴリが認識対象領域のどことマッチングしたかを識別する。具体的には、クリークのノードの個数がある閾値以上の場合にその対応が正しいとみなして、ノードに対応する対象領域にその文字カテゴリが存在すると判定する。
【００６４】
図９は、クリークの抽出と評価について説明する図である。同図に示したように、メッシュｍ２１、メッシュｍ４３、メッシュｍ４４、メッシュｍ１０４、メッシュｍ１０５、メッシュｍ１０８を有するグラフＧ１からクリークを抽出すると、メッシュｍ２１、メッシュｍ４３、メッシュｍ４４、メッシュｍ１０４、メッシュｍ１０５の５つのノードを有するクリークＧ２、メッシュｍ２１、メッシュｍ４３、メッシュｍ４４、メッシュｍ１０８の４つのノードを有するクリークＧ３とが得られる。
【００６５】
ここで、分類部１６２による判定閾値が５であるとすると、クリークＧ２は閾値以上のノード数を有するので、分類部１６２は、クリークＧ２の各ノードに対応する画像内の領域が文字カテゴリ「配」の文字が存在する文字領域であると判定する。一方、クリークＧ３のノード数は閾値に満たないため、分類部１６２は、クリークＧ３のノードの組み合わせは「配」の文字ではないと判定する。
【００６６】
分類部１６２は、閾値以上のノード数を有するクリークについて、各ノードに対応する部分画像に外接する矩形を求め、この外接矩形を文字領域と認識する。
【００６７】
図１０は、文字領域の認識について説明する説明図である。図１０に示した例では、分類部１６２は、クリークＧ２を構成するメッシュｍ２１、メッシュｍ４３、メッシュｍ４４、メッシュｍ１０４、メッシュｍ１０５の外接矩形を文字領域Ａ１として判定し、この文字領域Ａ１に「配」の文字が存在すると認識する。
【００６８】
次に、分類部１６２は、認識した文字の確信度を特定する。例えば、分類部１６２は、認識した文字のクリークに含まれるノードの数を、予め定めた規定値で除算することで、確信度を特定する。図９において説明したように、認識した文字「配」のクリークＧ２に含まれるノード数は５である。そして、予め定めた規定値を例えば５とすると、認識した文字「配」の確信度は１となる。
【００６９】
分類部１６２は、特定した確信度が、閾値（例えば、０．９）を上回っている場合に、認識した文字に対応する文字領域を、文字領域またはノイズ付文字領域に分類する。例えば、上述した「配」の確信度は１であったため、かかる文字「配」の文字領域Ａ１は、そのまま、文字領域となる。仮に、「配」の確信度が閾値以下の場合、かかる文字「配」の文字領域Ａ１は、ノイズ付文字領域に分類される。
【００７０】
図１１は、分類部１６２の分類結果の一例を示す図である。図１１の左側に示す入力画像において、分類部１６２は、文字矩形１ａ〜１ｄを文字領域と判定し、文字矩形１ｅをノイズ付文字領域と判定する。図１１の右側に示す入力画像において、分類部１６２は、文字矩形２ａ〜２ｅを文字領域と判定し、文字矩形２ｆをノイズ付文字領域と判定する。
【００７１】
ここまでの説明では、文字矩形内の画像と文字カテゴリでの位置関係を明確にすべく概念的な図面を用いて各処理部の動作を説明したが、各処理において実際に生成・使用されるデータは装置内での処理に適した形式で記憶部１５０に格納される。
【００７２】
例えば、図１２は、分類部による検索結果から作成する投票結果データである。この投票結果データは、図６を参照して説明した分類部による集計の結果として得られたものであり、文字カテゴリ、カテゴリ内位置、入力画像メッシュ、の３つの項目を有する表の形式でデータを保持する。
【００７３】
図１３は、分類部が作成するグラフデータである。このグラフデータでは、そのグラフが有する各ノード間について、パスを接続する場合には値「１」を、パスを接続しない場合には値「０」を持つ表の形式でデータを保持している。
【００７４】
また、分類部１６３は、特定した文字領域あるいはノイズ付文字領域の情報を、文字矩形情報１５２として記憶部１５０に格納する。図１４は、文字矩形情報のデータ構造の一例を示す図である。図１４に示すように、文字矩形情報１５２は、領域（文字領域あるいはノイズ付文字領域）を識別するＩＤ、領域の左上座標、領域の幅、領域の高さ、属性、含まれる画素情報、含まれる画素情報の数、行方向、認識結果、確信度を有する。
【００７５】
図１５は、図１４に示す文字矩形情報の生成元となった入力画像を示す図である。図１５に示す入力画像には、文字「文字列」、図、ノイズが含まれている。図１４のＩＤ「３」に対応する各情報は、図１５の「文」を含む文字領域に対応する情報である。ＩＤ「４」に対応する各情報は、図１５の「字」を含む文字領域に対応する情報である。ＩＤ「５」に対応する各情報は、図１５の「列」を含む文字領域に対応する情報である。
【００７６】
図１４において、属性は、該当領域に含まれる文字が、ノイズの重畳する文字であるのか、ノイズの重畳しない文字であるのかを識別する情報である。属性が「文字」であれば、ノイズの重畳する文字を示し、属性が「ノイズ付文字」であれば、ノイズの重畳しない文字を示す。ノイズの重畳しない文字は、確信度が閾値を上回る文字に対応する。ノイズの重畳する文字は、確信度が閾値未満の文字に対応する。
【００７７】
含まれる画素情報は、該当領域に含まれる文字において、画素が一続きになった部分を識別する番号を格納する。含まれる画素情報の数は、画素が一続きになった部分の数を格納する。例えば、文字「文」は、文字全体がつながっているので、含まれる画素情報の数は、「１」となる。文字「字」は、文字が２つに分かれているので、含まれる画素情報の数は「２」となる。文字「列」は、文字が３つに分かれているので、含まれる画素情報の数は「３」となる。
【００７８】
行方向は、入力画像に含まれる文字列の向きを示す。図１４では、「文字列」が横に並んでいるので、行方向は「横」となる。なお、認識結果および確信度は、上記した処理にしたがって分類部が認識した文字の認識結果と確信度が登録される。
【００７９】
図２の説明に戻ると、仮行候補位置推定部１６３は、分類部１６２が判定した文字領域に基づいて、仮の行候補の領域を判定する。以下の説明において、仮の行候補の領域を仮行候補矩形と表記する。図１６は、仮行候補位推定部の処理を説明するための図である。
【００８０】
仮行候補位置推定部１６３は、文字領域を一つ選択する。図１６では一例として、仮行候補位置推定部１６３は、文字領域３ａを選択する。仮行候補位置推定部１６３は、文字領域３ａの枠の縦横の幅を所定の値だけ大きくすることで、文字領域３ａよりも一回り大きな「行候補枠」を生成する。
【００８１】
仮行候補位置推定部１６３は、行候補枠の高さで横方向に延伸した領域と、行候補枠の幅で縦方向に延伸した領域を、仮行候補矩形として特定する。仮行候補位置推定部１６３は、残りの文字領域３ｂ〜３ｄに対しても、文字領域３ａの場合と同様にして、仮行候補矩形を特定する。図１６の上段に示す文字領域３ａ〜３ｄから、図１６の下段に示す仮行候補矩形が特定される。
【００８２】
図１７は、その他の入力画像に対する仮行候補矩形の抽出結果を示す図である。図１７の入力画像には、文字領域４ａ〜４ｅが含まれる。仮行候補位置推定部１６３は、図１６の場合と同様にして、各文字領域４ａ〜４ｅから仮行候補矩形を特定すると、図１７の右側のような仮行候補矩形が特定される。
【００８３】
仮行候補位置推定部１６３は、仮行候補矩形を特定した場合に、特定した仮行候補矩形の情報を、仮行矩形情報１５３として、記憶部１５０に格納する。図１８は、仮行矩形情報１５３のデータ構造の一例を示す図である。
【００８４】
図１８に示すように、この仮行矩形情報１５３は、仮行候補矩形を識別するＩＤ、仮行候補矩形の左上座標、仮行候補矩形の幅、仮行候補矩形の高さ、属性、含まれる画素情報、含まれる画素情報の数、行方向を有する。
【００８５】
図１８において、属性は、仮行候補矩形である旨を示す「行」が登録されている。含まれる画素情報は、仮行候補矩形に含まれる文字領域を識別する情報が登録される。例えば、仮行候補矩形に、文字「文」、「字」、「列」の文字領域が含まれている場合には、含まれる画素情報は、文字「文」、「字」、「列」に対応するＩＤ「３，４，５」が登録される。例えば、図１４、図１５を参照。
【００８６】
含まれる画素情報の数は、仮行候補矩形に含まれる文字の数が登録される。行方向は、仮行候補矩形の向きが横方向であるか、縦方向であるかを識別する情報が登録される。行候補矩形の向きが横方向であれば、行方向は「横」となる。行候補矩形の向きが縦方向であれば、行方向は「縦」となる。
【００８７】
ところで、仮行候補位置推定部１６３は、行方向「横」の仮行候補矩形が重なりを持つ場合、左側の仮行候補矩形を優先して、同じ行方向の仮行候補矩形が重ならないように調整する。また、行方向「縦」の仮行候補矩形が重なりを持つ場合、上側の仮行候補矩形を優先して、同じ行方向の仮行候補矩形が重ならないように調整する。
【００８８】
ここで、仮行候補位置推定部１６３が、各仮行候補矩形の重なりを調整する処理について説明する。図１９および図２０は、仮行候補矩形の重なりを調整する処理を説明するための図である。図１９の上段に示すように、文字領域５ａ〜５ｅが存在し、文字領域５ａ〜５ｄまでの仮行候補矩形が生成されているものとする。
【００８９】
図１９の中段に示すように、仮行候補位置推定部１６３が、文字領域５ｅを選択し、文字領域５ｅの仮行候補矩形を生成する。すると、文字領域５ｄ（５ａ〜５ｄ）の仮行候補矩形と、文字領域５ｅの仮行候補矩形が重なる。
【００９０】
このような場合、仮行候補位置推定部１６３は、図１９の下段に示すように、文字領域５ｅよりも左側の仮行候補矩形を、文字領域５ｄの仮行候補矩形とする。また、仮行候補位置推定部１６３は、文字領域５ｅを含む右側の仮行候補矩形を、文字領域５ｅの仮行候補矩形とする。
【００９１】
図２０の説明に移行する。図２０の上段に示すように、文字領域６ａ〜６ｄが存在し、文字領域６ａの仮行候補矩形が生成されているものとする。図２０の中段に示すように、仮行候補位置推定部１６３が、文字領域６ｂを選択し、文字領域６ｂの仮行候補矩形を生成する。すると、文字領域６ｂの仮行候補矩形と、文字領域６ａの仮行候補矩形が重なり、更に、文字領域６ｂの仮行候補矩形が、文字領域６ａの仮行候補矩形を完全に含む。
【００９２】
このような場合、仮行候補位置推定部１６３は、図２０の下段に示すように、文字領域６ａの仮行候補矩形を削除し、文字領域６ｂの仮行候補矩形を残す。
【００９３】
図２の説明に戻ると、行矩形補正部１６４は、仮行候補位置推定部１６３が判定した仮行候補矩形を補正する処理、および、新規に仮行候補矩形を特定する処理部である。以下において、行矩形補正部１６４の処理を具体的に説明する。まず、行矩形補正部１６４は、二値化された入力画像を走査し、位置毎の画素数の頻度を示すヒストグラムを特定する。図２１は、行矩形補正部１６４が特定したヒストグラムの一例を示す図である。図２１に示すように、画素が集中している箇所は、ヒストグラムの頻度が大きくなっている。
【００９４】
続いて、行矩形補正部１６４は、各仮行候補矩形のうち、ヒストグラムの射影方向と同じ方向の仮行候補矩形を抽出し、仮行候補矩形を補正する。図２２〜図２４は、行矩形補正部１６４の処理を説明するための図である。
【００９５】
図２２に示すように、行矩形補正部１６４は、仮行候補矩形（行方向：縦）の外枠（端）から所定の範囲内において、ヒストグラムの頻度の最大値および最小値を抽出する。以下の説明において、ヒストグラムの頻度の最大値を最大頻度、頻度の最小値を最小頻度と表記する。
【００９６】
行矩形補正部１６４は、
最大頻度＞文字サイズ×０．５・・・条件（１）
最小頻度＜文字サイズ×０．５・・・条件（２）
最大頻度および最小頻度が、上記の条件（１）、（２）を満たすか否かを判定する。条件（１）、（２）に含まれる文字サイズは、例えば、文字領域の幅に対応する。
【００９７】
行矩形補正部１６４は、上記の条件（１）および条件（２）を満たすと判定した場合、仮行候補矩形の外枠から内側に向かって順に、ヒストグラムの頻度を検出する。行矩形判定部１６４は、ヒストグラムの頻度の大きさが「文字サイズ×０．５」を超える位置を、仮行候補矩形の外枠の位置として判定する。一方、行矩形判定部１６４は、上記の条件（１）または条件（２）のどちらか一方の条件を満たさないと判定した場合、ヒストグラムの頻度が最小頻度となる位置を、仮行候補矩形の外枠の位置として判定する。行矩形補正部１６４は、判定結果に基づいて、仮行候補矩形（仮行矩形情報１５３）の幅または高さを補正する。
【００９８】
ところで、行矩形補正部１６４は、ノイズ付文字領域内において、ヒストグラムの射影方向と同じ行方向の仮行候補矩形が存在しない領域については、異なる行方向の仮行候補矩形の幅と、ヒストグラムの頻度に基づいて、仮行候補矩形を特定する。
【００９９】
図２３では、ヒストグラムの射影方向（横）と同じ行方向の仮行候補矩形が存在せず、ヒストグラムの射影方向と異なる行方向の仮行候補矩形が存在しているものとする。行矩形補正部１６４は、異なる行方向の仮行候補矩形の幅を特定する。以下の説明において、異なる行方向の仮行候補矩形の幅を文字幅と表記する。
【０１００】
行矩形補正部１６４は、ノイズ付文字領域の範囲内で、文字幅を移動させ、文字幅に含まれるヒストグラムの頻度が最大となる文字幅の位置を特定する。行矩形補正部１６４は、特定した文字幅の両端の位置を、仮行候補矩形の両端と仮定し、仮行候補矩形を特定する。行矩形補正部１６４は、特定した文字幅の両端を所定値だけ広げ、広げた文字幅の両端の位置を、仮行候補矩形の両端としても良い。なお、仮行候補矩形を補正する処理は、図２２にて説明した処理と同様である。
【０１０１】
次に、処理対象となる画像をかえて、行矩形特定部の処理を説明する。図２４の上段に示すように、行矩形補正部１６４は、仮行候補矩形（行方向：横）の外枠（端）から所定の範囲内において、ヒストグラムの最大頻度、最小頻度を抽出する。
【０１０２】
そして、上記と同様にして、行矩形判定部１６４は、上記の条件（１）および条件（２）を満たすと判定した場合、仮行候補矩形の外枠から内側に向かって順に、ヒストグラムの頻度を検出する。行矩形判定部１６４は、ヒストグラムの頻度の大きさが「文字サイズ×０．５」を超える位置を、仮行候補矩形の外枠の位置として判定する。一方、行矩形判定部１６４は、上記の条件（１）または条件（２）のどちらか一方の条件を満たさないと判定した場合、ヒストグラムの頻度が最小頻度となる位置を、仮行候補矩形の外枠の位置として判定する。行矩形判定部１６４は、判定結果に基づいて、仮行候補矩形（仮行矩形情報１５３）の幅または高さを補正する。
【０１０３】
続いて、行矩形補正部１６４は、図２４の下段左側に示すように、異なる行方向の仮行候補矩形の文字幅を特定する。行矩形補正部１６４は、ノイズ付文字領域の範囲内で、文字幅を移動させ、文字幅に含まれるヒストグラムの頻度が最大となる文字幅の位置を特定する。行矩形補正部１６４は、特定した文字幅の両端の位置を、仮行候補矩形の両端と仮定し、仮行候補矩形とする。行矩形補正部１６４は、特定した文字幅の両端を所定値だけ広げ、広げた文字幅の両端の位置を、仮行候補矩形の両端としても良い。行矩形補正部１６４は、特定した仮行候補矩形の情報を、仮行矩形情報１５３に登録する。
【０１０４】
また、行矩形補正部１６４は、図２４の下段右側に示すように、ノイズ付文字領域内において、仮行候補矩形の領域を除いた残りの領域について、再度、文字幅を移動させ、文字幅に含まれるヒストグラムの頻度が最大となる文字幅の位置を特定し、特定した文字幅の両端の位置を、仮行候補矩形の両端と仮定し、仮行候補矩形を特定する。なお、仮行候補矩形の両端から仮行候補矩形を特定する処理は、図２２にて説明した処理と同様である。
【０１０５】
文字矩形確定部１６５は、ノイズ付文字領域と、仮行候補矩形に基づいて、ノイズ付文字領域の文字領域を確定する処理部である。以下において、文字矩形確定部１６５の処理を具体的に説明する。図２５は、文字矩形確定部１６５の処理を説明するための図である。まず、文字矩形確定部１６５は、文字矩形情報１５２と仮行矩形情報１５３とを比較して、ノイズ付文字領域と重なりを持つ仮行候補矩形を特定する。図２５に示す例では、ノイズ付文字領域と重なりを持つ仮行候補矩形は、仮行候補矩形Ａ〜Ｅとなる。
【０１０６】
文字矩形確定部１６５は、特定した各仮行候補矩形が交差する領域を新しい文字領域として判定する。図２５の下段に示すように、文字矩形確定部１６５は、仮行候補矩形Ａ〜Ｅが交差する領域を、文字領域ａ〜ｂとして特定する。文字矩形確定部１６５は、特定した文字領域の情報を、文字矩形情報１５２に登録する。
【０１０７】
ここで、仮行候補位置推定部１６３は、文字矩形確定部１６５が特定した文字領域に基づいて、仮行候補矩形を生成し、生成した仮行候補矩形の情報を、仮行矩形情報１５３に登録してもよい。
【０１０８】
図２の説明に戻ると、文字認識処理部１６６は、文字矩形特定部１６５が特定した文字領域および分類部１６２が特定した文字領域に対して文字認識を実行する処理部である。文字認証処理部１６６が実行する文字認識の処理は、上記の分類部１６２の文字認識と同様であるため、説明を省略する。
【０１０９】
意味解析部１６７は、文字認識処理部１６６の文字認識結果を取得し、辞書情報１５４に基づいて、取得した文字認識結果を修正する処理部である。辞書情報１５４は、国語辞典に含まれる熟語や、適切な文字列の情報が含まれる。
【０１１０】
意味解析処理部１６７は、例えば、文字認識結果として、「普通預金」を取得した場合には、普通預金が辞書情報１５４に含まれているか否かを判定する。「普通預金」は、辞書情報１５４に含まれているので、意味解析処理部１６７は、「普通預金」を認識結果として出力部１３０に出力する。
【０１１１】
一方、意味解析部１６７は、文字認識結果として、例えば、「普通豫金」を取得した場合、「普通豫金」は、辞書情報１５４に含まれない。この場合、意味解析部１６７は、類似する文字列「普通預金」の前後関係等から、「普通豫金」の「豫」を「預」に修正して、「普通預金」を認識結果として出力部１３０に出力する。なお、意味解析部１６７が、誤った文字を正しい文字に修正する処理は、周知技術を用いて実行することが出来る。
【０１１２】
次に、本実施例２にかかる文字認識装置１００の処理手順について説明する。図２６は、本実施例２にかかる文字認識装置１００の処理手順を示すフローチャートである。図２６に示すように、文字認識装置１００は、分類部１６２が、分類処理を実行し（ステップＳ１０１）、仮行候補位置推定部１６３および行矩形補正部１６５が、第１の仮行候補生成処理を実行する（ステップＳ１０２）。
【０１１３】
続いて、文字矩形確定部１６５が、文字枠の確定処理を実行し（ステップＳ１０３）、文字認識処理部１６６が、文字領域に基づいて文字認識を実行する（ステップＳ１０４）。そして、意味解析処理部１６７が、文字認識結果の文字修正を実行する（ステップＳ１０５）。
【０１１４】
次に、図２６のステップＳ１０１に示した分類処理の処理手順について説明する。図２７は、分類処理の処理手順を示すフローチャートである。図２７に示すように、分類部１６２は、レイアウト解析を実行する（ステップＳ１５１）。レイアウト解析は、上述したように、二値化処理とラベリング処理が含まれる。
【０１１５】
分類部１６２は、未処理の文字矩形を選択し（ステップＳ１５２）、文字矩形内の画像に対して文字認識を実行する（ステップＳ１５３）。分類部１６２は、文字矩形内の文字認証結果に対する確信度が閾値以上か否かを判定する（ステップＳ１５４）。
【０１１６】
分類部１６２は、確信度が閾値未満の場合（ステップＳ１５５，Ｎｏ）、該当文字矩形の属性をノイズ付文字に設定し（ステップＳ１５６）、ステップＳ１５８に移行する。一方、分類部１６２は、確信度が閾値以上の場合（ステップＳ１５５，Ｙｅｓ）、該当文字矩形の属性を文字に設定する（ステップＳ１５７）。
【０１１７】
分類部１６２は、全ての文字矩形を選択したか否かを判定する（ステップＳ１５８）。分類部１６２は、全ての文字矩形を選択していない場合（ステップＳ１５９，Ｎｏ）、ステップＳ１５２に移行する。一方、分類部１６２は、全ての文字矩形を選択した場合（ステップＳ１５９，Ｙｅｓ）、分類処理を終了する。
【０１１８】
次に、図２６のステップＳ１０２に示した第１の仮行候補生成処理の処理手順について説明する。図２８は、仮行候補生成処理の処理手順を示すフローチャートである。図２８に示すように、仮行候補位置推定部１６３は、文字領域の左上座標で、文字領域を左上優先でソートし（ステップＳ２０１）、未処理の基準となる文字領域を選択する（ステップＳ２０２）。
【０１１９】
仮行候補位置推定部１６３は、選択した文字領域が、既に存在する仮行候補矩形に包含されるか否かを判定する（ステップＳ２０３）。仮行候補位置推定部１６３は、既に存在する仮行候補矩形に包含される場合（ステップＳ２０４，Ｙｅｓ）、別の行方向の仮行候補矩形を作成できるか否かを判定する（ステップＳ２０５）。
【０１２０】
仮行候補位置推定部１６３は、別の行方向の仮行候補矩形を作成できる場合（ステップＳ２０６、Ｙｅｓ）、第２の仮行候補生成処理を実行し（ステップＳ２０７）、ステップＳ２０９に移行する。ステップＳ２０７において、仮行候補位置推定部１６３は、縦方向の仮行候補矩形を生成可能な場合、縦方向の仮行候補矩形を生成する。一方、仮行候補位置推定部１６３は、横方向の仮行候補矩形を生成可能な場合、横方向の仮行候補矩形を生成する。
【０１２１】
一方、ステップＳ２０６において、仮行候補位置推定部１６３は、別の行方向の仮行候補矩形を作成できない場合（ステップＳ２０６，Ｎｏ）、ステップＳ２１０に移行する。
【０１２２】
ところで、仮行候補位置推定部１６３は、ステップＳ２０４において、既に存在する仮行候補矩形に包含されていない場合（ステップＳ２０４，Ｎｏ）、第２の仮行候補生成処理を実行する（ステップＳ２０８）。ステップＳ２０８において、仮行候補位置推定部１６３は、縦方向と横方向の仮行候補矩形を生成する。
【０１２３】
仮行候補位置推定部１６３は、行候補同士の干渉を解決し（ステップＳ２０９）、仮行候補矩形に含まれる文字領域を、仮行矩形情報１５３に追加する（ステップＳ２１０）。仮行候補位置推定部１６３は、全ての文字領域を選択したか否かを判定する（ステップＳ２１１）。
【０１２４】
全ての文字領域を選択していない場合（ステップＳ２１２，Ｎｏ）、仮行候補位置推定部１６３は、ステップＳ２０２に移行する。一方、全ての文字候補を選択した場合（ステップＳ２１２，Ｙｅｓ）、仮行候補位置推定部１６３は、第１の仮行候補生成処理を終了する。
【０１２５】
次に、図２８のステップＳ２０７、ステップＳ２０８に示した第２の仮行候補生成処理の処理手順について説明する。図２９は、第２の仮行候補生成処理の処理手順を示すフローチャートである。図２９に示すように、仮行候補位置推定部１６３は、文字領域よりも一回り大きな行候補枠を生成する（ステップＳ２５１）。
【０１２６】
仮行候補位置推定部１６３は、対象領域（行候補枠）の幅と等しい大きさを設定して、横方向の仮行候補矩形を設定し（ステップＳ２５２）、対象領域の高さと等しい大きさを設定して、縦方向の仮行候補矩形を設定する（ステップＳ２５３）。図２８のステップＳ２０７では、図２０９のステップＳ２５２、または、ステップＳ２５３のうちいずれか一方が実行される。図２８のステップＳ２０７では、ステップＳ２５２、ステップＳ２５３の双方が実行される。
【０１２７】
次に、図２８のステップＳ２０９に示した行候補同士の干渉を解決する処理について説明する。図３０は、行候補同士の干渉を解決する処理の処理手順を示すフローチャートである。図３０に示すように、仮行候補位置推定部１６３は、未比較の他の仮行候補矩形を選択し（ステップＳ３０１）、作成した仮行候補矩形が、選択した仮行候補矩形と重なりを持つか否かを判定する（ステップＳ３０２）。
【０１２８】
仮行候補位置推定部１６３は、重なりを持たない場合（ステップＳ３０３，Ｎｏ）、ステップＳ３１１に移行する。一方、仮行候補位置推定部１６３は、重なりを持つ場合（ステップＳ３０２，Ｙｅｓ）、各仮行候補矩形の行方向が同じであるか否かを判定する（ステップＳ３０４）。
【０１２９】
仮行候補位置推定部１６３は、行方向が異なる場合（ステップＳ３０５，Ｎｏ）、ステップＳ３１１に移行する。一方、仮行候補位置推定部１６３は、行方向が同じ場合（ステップＳ３０５，Ｙｅｓ）、行方向に含まれる文字領域でも重なりを持つか否かを判定する（ステップＳ３０６）。
【０１３０】
仮行候補位置推定部１６３は、行方向に含まれる文字領域で重なりを持たない場合（ステップＳ３０７，Ｎｏ）、ステップＳ３１１に移行する。一方、仮行候補位置推定部１６３は、行方向に含まれる文字領域で重なりを持つ場合（ステップＳ３０７，Ｙｅｓ）、作成した仮行候補矩形が、選択した仮行候補矩形を完全に含むか否かを判定する（ステップＳ３０８）。
【０１３１】
仮行候補位置推定部１６３は、選択した仮行候補矩形を完全に含む場合（ステップＳ３０９，Ｙｅｓ）、含まれる仮行候補矩形に属する文字領域の情報を、作成した仮行候補矩形に移動して、含まれる仮行候補矩形を削除する（ステップＳ３１０）。
【０１３２】
仮行候補位置推定部１６３は、全ての仮行候補矩形と比較したか否かを判定する（ステップＳ３１１）。仮行候補位置推定部１６３は、全ての仮行候補矩形と比較していない場合（ステップＳ３１２，Ｎｏ）、ステップＳ３０１に移行する。一方、仮行候補位置推定部１６３は、全ての仮行候補矩形と比較した場合（ステップＳ３１２，Ｙｅｓ）、行候補同士の干渉を解決する処理を終了する。
【０１３３】
ところで、仮行候補位置推定部１６３は、ステップＳ３０９において、選択した仮行候補矩形を完全に含まない場合（ステップＳ３０９，Ｎｏ）、選択した仮行候補矩形の文字領域が、作成した仮行候補矩形の文字領域よりも左に存在するか否かを判定する（ステップＳ３１３）。
【０１３４】
仮行候補位置推定部１６３は、右に存在する場合（ステップＳ３１４，Ｎｏ）、選択した仮行候補矩形の左辺の座標を、その仮行候補矩形に含まれる一番左の文字領域の左辺の座標に設定する（ステップＳ３１５）。仮行候補位置推定部１６３は、作成した仮行候補矩形の右辺の座標を、選択した仮行候補矩形に含まれる一番左の文字領域の左辺の座標から１を減算した値に設定し（ステップＳ３１６）、ステップＳ３１９に移行する。
【０１３５】
一方、仮行候補位置推定部１６３は、左に存在する場合（ステップＳ３１４，Ｙｅｓ）、選択した仮行候補矩形の右辺の座標を、作成した仮行候補矩形に含まれる文字猟奇の左辺の座標から１を減算した値に設定する（ステップＳ３１７）。仮行候補位置推定部１６３は、作成した仮行候補矩形の左辺の座標を、基準とした文字領域の座標の座標に設定する（ステップＳ３１８）。
【０１３６】
仮行候補位置推定部１６３は、また、他の仮行候補矩形と重なりを持つか否かを判定する（ステップＳ３１９）。仮行候補位置推定部１６３は、他の仮行候補矩形と重なりを持つ場合（ステップＳ３２０，Ｙｅｓ）、ステップＳ３０１に移行する。一方、仮行候補位置推定部１６３は、他の仮行候補矩形と重なりを持たない場合（ステップＳ３２０，Ｎｏ）、ステップＳ３１１に移行する。
【０１３７】
次に、図２６に示した文字枠の確定処理について説明する。図３１は、文字枠の確定処理の処理手順を示すフローチャートである。図３１に示すように、行矩形補正部１６４は、処理対象となるノイズ付文字領域を選択し（ステップＳ３５１）、縦方向の補正処理を実行する（ステップＳ３５２）。
【０１３８】
行矩形補正部１６４は、横方向の補正処理を実行し（ステップＳ３５３）、ノイズ付文字領域内に、まだ仮行候補矩形を作成する余裕があるか否かを判定する（ステップＳ３５４）。
【０１３９】
行矩形補正部１６４は、まだ仮行候補矩形を生成する余裕がない場合（ステップＳ３５５，Ｎｏ）、ステップＳ３５７に移行する。一方、行矩形補正部１６４は、まだ仮行候補矩形を生成する余裕がある場合（ステップＳ３５５，Ｙｅｓ）、仮行候補矩形追加処理を実行する（ステップＳ３５６）。そして、行矩形補正部１６４は、確定処理を実行し（ステップＳ３５７）、文字枠の確定処理を終了する。
【０１４０】
次に、図３１のステップＳ３５２に示した縦方向の補正処理について説明する。図３２、図３３は、縦方向の補正処理の処理手順を示すフローチャートである。図３２に示すように、行矩形補正部１６４は、選択したノイズ付文字領域の射影ヒストグラム（縦）を求め（ステップＳ４０１）、選択したノイズ付文字領域と、重なりを持つ未処理の仮行候補矩形（縦）を選択する（ステップＳ４０２）。
【０１４１】
行矩形補正部１６４は、重なりを持つ仮行候補矩形（縦）が存在するか否かを判定する（ステップＳ４０３）。行矩形補正部１６４は、重なりを持つ仮行候補矩形（縦）が存在しない場合（ステップＳ４０４，Ｎｏ）、仮行候補矩形追加処理を実行し（ステップＳ４０５）、図３３のステップＳ４１６に移行する。
【０１４２】
一方、行矩形補正部１６４は、重なりを持つ仮行候補矩形（縦）が存在する場合（ステップＳ４０４，Ｙｅｓ）、ノイズ付文字領域の幅が、仮行候補矩形の幅に比べて小さいか否かを判定する（ステップＳ４０６）。行矩形補正部１６４は、ノイズ付文字領域の幅が、仮行候補矩形の幅に比べて小さい場合（ステップＳ４０７，Ｙｅｓ）、図３３のステップＳ４１６に移行する。
【０１４３】
一方、行矩形補正部１６４は、ノイズ付文字領域の幅が、仮行候補矩形の幅に比べて小さくない場合（ステップＳ４０７，Ｎｏ）、選択した仮行候補とノイズ付文字領域との重なりを持つ範囲の仮行候補矩形（縦）を作成する（ステップＳ４０８）。
【０１４４】
行矩形補正部１６４は、仮行候補矩形の（左右）両端に境界探索範囲を設定し（ステップＳ４０９）、境界探索範囲内でヒストグラムの頻度が最大・最小となる位置を求める（ステップＳ４１０）。
【０１４５】
行矩形補正部１６４は、最大頻度と最小頻度が条件（１）、（２）を満たすか否かを判定する（ステップＳ４１１）。図３３に移行し、行矩形補正部１６４は、条件（１）、（２）を満たさない場合（ステップＳ４１２，Ｎｏ）、最小頻度を示す位置を仮行候補矩形の座標として求め（ステップＳ４１３）、ステップＳ４１５に移行する。
【０１４６】
一方、行矩形補正部１６４は、条件（１）、（２）を満たす場合（ステップＳ４１２，Ｙｅｓ）、各境界探索範囲について、仮行候補矩形の外側（左右）からみて最初に頻度が（文字サイズ×０．５）を超える位置（座標）を求める（ステップＳ４１４）。
【０１４７】
行矩形補正部１６４は、仮行候補矩形の左右の座標を、求めた座標に変更し（ステップＳ４１５）、全ての仮行候補矩形（縦）を処理したか否かを判定する（ステップＳ４１６）。行矩形補正部１６４は、全ての仮行候補矩形（縦）を処理していない場合（ステップＳ４１７）、図３２のステップＳ４０１に移行する。一方、行矩形補正部１６４は、全ての仮行候補矩形（縦）を処理した場合（ステップＳ４１７，Ｙｅｓ）、縦方向の補正処理を終了する。
【０１４８】
次に、図３１のステップＳ３５３に示した横方向の補正処理について説明する。図３４、図３５は、横方向の補正処理の処理手順を示すフローチャートである。図３４に示すように、行矩形補正部１６４は、選択したノイズ付文字領域の射影ヒストグラム（横）を求め（ステップＳ４５１）、選択したノイズ付文字領域と、重なりを持つ未処理の仮行候補矩形（横）を選択する（ステップＳ４５２）。
【０１４９】
行矩形補正部１６４は、重なりを持つ仮行候補矩形（横）が存在するか否かを判定する（ステップＳ４５３）。行矩形補正部１６４は、重なりを持つ仮行候補矩形（横）が存在しない場合（ステップＳ４５４，Ｎｏ）、仮行候補矩形追加処理を実行し（ステップＳ４５５）、図３５のステップＳ４６６に移行する。
【０１５０】
一方、行矩形補正部１６４は、重なりを持つ仮行候補矩形（横）が存在する場合（ステップＳ４５４，Ｙｅｓ）、ノイズ付文字領域の高さが、仮行候補矩形の高さに比べて小さいか否かを判定する（ステップＳ４５６）。行矩形補正部１６４は、ノイズ付文字領域の高さが、仮行候補矩形の高さに比べて小さい場合（ステップＳ４５７，Ｙｅｓ）、図３３のステップＳ４６６に移行する。
【０１５１】
一方、行矩形補正部１６４は、ノイズ付文字領域の高さが、仮行候補矩形の高さに比べて小さくない場合（ステップＳ４５７，Ｎｏ）、選択した仮行候補とノイズ付文字領域との重なりを持つ範囲の仮行候補矩形（横）を作成する（ステップＳ４５８）。
【０１５２】
行矩形補正部１６４は、仮行候補矩形の（上下）両端に境界探索範囲を設定し（ステップＳ４５９）、境界探索範囲内でヒストグラムの頻度が最大・最小となる位置を求める（ステップＳ４６０）。
【０１５３】
行矩形補正部１６４は、最大頻度と最小頻度が条件（１）、（２）を満たすか否かを判定する（ステップＳ４６１）。図３５に移行し、行矩形補正部１６４は、条件（１）、（２）を満たさない場合（ステップＳ４６２，Ｎｏ）、最小頻度を示す位置を仮行候補矩形の座標として求め（ステップＳ４６３）、ステップＳ４６５に移行する。
【０１５４】
一方、行矩形補正部１６４は、条件（１）、（２）を満たす場合（ステップＳ４６２，Ｙｅｓ）、各境界探索範囲について、仮行候補矩形の外側（上下）からみて最初に頻度が（文字サイズ×０．５）を超える位置（座標）を求める（ステップＳ４６４）。
【０１５５】
行矩形補正部１６４は、仮行候補矩形の上下の座標を、求めた座標に変更し（ステップＳ４６５）、全ての仮行候補矩形（横）を処理したか否かを判定する（ステップＳ４６６）。行矩形補正部１６４は、全ての仮行候補矩形（横）を処理していない場合（ステップＳ４６７，Ｎｏ）、図３４のステップＳ４５１に移行する。一方、行矩形補正部１６４は、全ての仮行候補矩形（横）を処理した場合（ステップＳ４５７，Ｙｅｓ）、横方向の補正処理を終了する。
【０１５６】
次に、図３１のステップＳ３５６、図３２のステップＳ４０５、図３４のステップＳ４５５に示した仮行候補矩形追加処理について説明する。図３６は、仮行候補矩形追加処理の処理手順を示すフローチャートである。図３６に示すように、行矩形補正部１６４は、選択対象となるノイズ付文字領域を選択し（ステップＳ５０１）、選択したノイズ付文字領域の射影ヒストグラムを求める（ステップＳ５０２）。
【０１５７】
行矩形補正部１６４は、選択したノイズ付文字領域と、最も近い距離にある仮行候補矩形から文字サイズを求め（ステップＳ５０３）、ノイズ付文字領域の範囲で、推定した文字幅内の画素数が最も多くなる位置を求める（ステップＳ５０４）。
【０１５８】
行矩形補正部１６４は、推定した位置と文字幅から仮行候補矩形を生成し、境界探索範囲を設定し（ステップＳ５０５）、境界探索範囲内でヒストグラムの頻度が最大・最小となる位置を求める（ステップＳ５０６）。
【０１５９】
行矩形補正部１６４は、最大頻度と最小頻度が条件（１）、（２）を満たすか否かを判定する（ステップＳ５０７）。行矩形補正部１６４は、条件（１）、（２）を満たさない場合（ステップＳ５０８，Ｎｏ）、最小頻度を示す位置を仮行候補矩形の境界に設定し（ステップＳ５０９）、ステップＳ５１１に移行する。
【０１６０】
一方、行矩形補正部１６４は、条件（１）、（２）を満たす場合（ステップＳ５０８，Ｙｅｓ）、仮行候補矩形の外側からみて、最初に頻度が（文字サイズ×０．５）を超える位置を仮行候補矩形の境界に設定する（ステップＳ５１０）。
【０１６１】
行矩形補正部１６４は、文字の可能性のある領域が残っているか否かを判定する（ステップＳ５１１）。行矩形補正部１６４は、文字の可能性のある領域が残っている場合（ステップＳ５１２，Ｙｅｓ）、ステップＳ５０４に移行する。一方、行矩形補正部１６４は、文字の可能性のある領域が残っていない場合（ステップＳ５１２，Ｎｏ）、仮行候補矩形追加処理を終了する。
【０１６２】
次に、図３１のステップＳ３５７に示した確定処理の処理手順について説明する。図３７は、確定処理の処理手順を示すフローチャートである。図３７に示すように、文字矩形確定部１６５は、処理対象となるノイズ付文字領域（未選択のノイズ文字領域）を選択し（ステップＳ５５１）、選択したノイズ付文字領域と重なりを持つ仮行候補矩形を選択する（ステップＳ５５２）。
【０１６３】
文字矩形確定部１６５は、選択した仮行候補矩形と重なりを持つ、仮行候補矩形を探し（ステップＳ５５３）、該当する仮行候補矩形が存在するか否かを判定する（ステップＳ５５４）。文字矩形確定部１６５は、該当する仮行候補矩形が存在しない場合（ステップＳ５５５，Ｎｏ）、ステップＳ５５１に移行する。
【０１６４】
一方、文字矩形確定部１６５は、該当する仮行候補矩形が存在する場合（ステップＳ５５５，Ｙｅｓ）、仮行候補矩形同士が交差する領域を新しい文字領域として生成する（ステップＳ５５６）。
【０１６５】
文字矩形確定部１６５は、新たに生成した文字領域を含む仮行候補矩形を探す（ステップＳ５５７）。行矩形補正部１６４は、検索対象の仮行候補矩形が存在しない場合（ステップＳ５５８，Ｎｏ）、文字領域を基に新しい仮行候補矩形を生成し（ステップＳ５５９）、ステップＳ５６１に移行する。
【０１６６】
一方、文字矩形確定部１６５は、検索対象の仮行候補矩形が存在する場合（ステップＳ５５８，Ｙｅｓ）、検索対象の仮行候補矩形の下位要素として、生成した文字領域を登録する（ステップＳ５６０）。
【０１６７】
文字矩形確定部１６５は、全ての仮行候補矩形を処理したか否かを判定する（ステップＳ５６１）。文字矩形確定部１６５は、全ての仮候補矩形を処理していない場合（ステップＳ５６２，Ｎｏ）、ステップＳ５５１に移行する。一方、文字矩形確定部１６５は、全ての仮行候補矩形を処理した場合（ステップＳ５６２，Ｙｅｓ）、仮行候補矩形を行に設定する（ステップＳ５６３）。
【０１６８】
上述してきたように、本実施例２にかかる文字認識装置１００は、文字認識結果の確信度に基づいて文字領域とノイズ付文字領域を特定する。そして、文字認識装置１００は、文字領域とヒストグラムの頻度に基づいて、仮行候補矩形を特定し、ノイズ付文字領域内において、仮行候補矩形の重なる領域を文字領域として特定する。また、文字認識装置１００は、特定した文字領域に対して文字認識を実行する。したがって、入力画像の文字にノイズが重畳している場合であっても、文字の認識を正確に実行することが出来る。
【実施例３】
【０１６９】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例１、２以外にも種々の異なる形態にて実施されてよいものである。そこで、以下では実施例３として本発明に含まれる他の実施例を説明する。
【０１７０】
（１）ヒストグラム以外による仮行候補矩形の補正について
例えば、図２２等で説明したように、行矩形補正部１６４はヒストグラムの頻度に基づいて仮行候補矩形の境界を補正していたが、これに限定されるものではない。図３８は、仮行候補矩形の境界を特定するその他の方法を説明するための図である。
【０１７１】
図３８に示すように、行矩形補正部１６４は、隣接する画素を比較し、白画素から黒画素に変化する回数のヒストグラムを求め、変化する回数が閾値以上となる位置を、仮行候補矩形の境界として判定しても良い。
【０１７２】
図３８において、左から１列目では、変化の回数が０となり、左から２列目では、変化の回数が１となり、左から３列目では、変化の回数が０となり、左から４列目では、変化の回数が６となり、左から５列目では、変化の回数が０となる。例えば、閾値を５とした場合、行矩形補正部１６４は、図３８の横から４列目の位置を、仮行候補矩形の境界の位置として判定し、仮行候補矩形を補正する。
【０１７３】
（２）文字領域を確定する処理について
例えば、図２５等で説明したように、文字矩形確定部１６５は、ノイズ付文字領域において、仮行候補矩形が重なる領域を文字領域として特定していたが、これに限定されるものではない。例えば、文字矩形確定部１６５は、ノイズ付文字領域の情報を、モニタに表示させ、ノイズ付文字領域内に含まれる文字領域を、ユーザに指定させても良い。
【０１７４】
図３９は、文字領域を確定するその他の処理を説明するための図である。図３９の上段に示すように、文字矩形確定部１６５は、文字領域と、ノイズ付文字領域をモニタに表示させる。そして、図３９の下段に示すように、ユーザがマウス等を用いてノイズ付文字領域中の文字領域を指定した場合、指定された文字領域の情報を取得し、文字領域を確定する。
【０１７５】
（３）文字の縦横比が異なる場合に仮行候補矩形を特定する場合について
例えば、図２３等で説明したように、行矩形補正部１６４は、異なる行方向の仮行候補矩形の文字幅を特定し、特定した文字幅をそのまま利用して、文字幅に含まれるヒストグラムの頻度が最大となる文字幅の位置を特定していた。しかし、ノイズ付文字領域から所定の範囲内に既知の文字が存在している場合には、かかる文字の縦横比に合わせて、文字幅を調整しても良い。図４０は、文字の縦横比が異なる場合に仮行候補矩形を特定する場合の処理を説明するための図である。
【０１７６】
例えば、図４０に示すように、異なる行方向の仮行候補矩形が縦方向の仮行候補矩形であり、既知の文字が縦長の文字の場合には、文字幅を所定の割合大きくする。なお、異なる行方向の仮行候補矩形が横方向の仮行候補矩形であり、既知の文字が縦長の文字の場合には、文字幅を所定の割合小さくする。このように、文字幅を調整することで、より正確に文字領域を特定することができる。
【０１７７】
（４）システムの構成など
本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。例えば、ハッシュテーブル登録部１６１が、ハッシュテーブル１５１を生成していたが、利用者が、予め作成しておいたハッシュテーブルを入力部１１０から入力し、記憶部１５０に登録してもよい。
【０１７８】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１７９】
図４１は、実施例にかかる文字認識装置を構成するコンピュータのハードウェア構成を示す図である。図４１に示すように、このコンピュータ（文字認識装置）２００は、入力装置２０１、モニタ２０２、ＲＡＭ（Random  Access  Memory）２０３を有する。また、コンピュータ２００は、ＲＯＭ（Read  Only  Memory）２０４、他の装置と通信を行う通信制御装置２０５、記憶媒体からデータを読み取る媒体読取装置２０６、ＣＰＵ（Central  Processing  Unit）２０７、ＨＤＤ（Hard  Disk  Drive）２０８を有する。各装置２０１〜２０８は、バス２０９に接続する。
【０１８０】
ＨＤＤ２０８には、上記した文字認識装置１００の機能と同様の機能を発揮する文字認識プログラム２０８ｂが記憶されている。ＣＰＵ２０７が文字認識プログラム２０８ｂを読み出して実行することにより、文字認識プロセス２０７ａが起動される。ここで、文字認識プロセス２０７ａは、図２に示した、ハッシュテーブル登録部１６１と、分類部１６２と、仮行候補位置推定部１６３と、行矩形特定部１６４と、文字矩形確定部１６５と、文字認識処理部１６６と、意味解析処理部１６７に対応する。
【０１８１】
また、ＨＤＤ２０８は、記憶部１５０に記憶される情報に対応する各種データ２０８ａを記憶する。ＣＰＵ２０７は、ＨＤＤ２０８に格納された各種データ２０８ａを読み出して、ＲＡＭ２０３に格納し、ＲＡＭ２０３に格納された各種データ２０３ａに基づいて、文字認識を実行する。
【０１８２】
ところで、図４１に示した文字認識プログラム２０８ｂは、必ずしも最初からＨＤＤ２０８に記憶させておく必要はない。たとえば、コンピュータに挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、または、コンピュータの内外に備えられるハードディスクドライブ（ＨＤＤ）などの「固定用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータに接続される「他のコンピュータ（またはサーバ）」などに文字認識プログラム２０８ｂを記憶しておき、コンピュータがこれらから文字認識プログラム２０８ｂを読み出して実行するようにしてもよい。
【０１８３】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１８４】
（付記１）文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識部と、
前記文字認識部が取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定部と、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理部と、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計部と、
前記集計部が集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定部と、
前記延伸した領域と重畳する領域から、前記座標位置特定部が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定部と
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力部と
を有することを特徴とする文字認識装置。
【０１８５】
（付記２）前記座標位置特定部は、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第１の閾値を超え、かつ、画素数の最小値が第２の閾値未満の場合に、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定することを特徴とする付記１に記載の文字認識装置。
【０１８６】
（付記３）前記座標位置特定部は、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第１の閾値以下、または、画素数の最小値が第２の閾値以上の場合に、画素数が最小値となる座標位置を特定することを特徴とする付記２に記載の文字認識装置。
【０１８７】
（付記４）前記座標位置特定部は、前記延伸した領域と重複する領域内において、位置毎の画素数の最大値及び最小値を抽出する場合に、前記ノイズが重畳していないと判定した文字のサイズに基づいて、前記最大値及び最小値を抽出する範囲を調整することを特徴とする付記２または３に記載の文字認識装置。
【０１８８】
（付記５）コンピュータに、
文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識手順と、
前記文字認識手順が取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定手順と、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理手順と、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計手順と、
前記集計手順が集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定手順と、
前記延伸した領域と重畳する領域から、前記座標位置特定手順が特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定手順と
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力手順と
を実行させることを特徴とする文字認識プログラム。
【０１８９】
（付記６）前記座標位置特定手順は、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第１の閾値を超え、かつ、画素数の最小値が第２の閾値未満の場合に、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定することを特徴とする付記５に記載の文字認識プログラム。
【０１９０】
（付記７）前記座標位置特定手順は、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第１の閾値以下、または、画素数の最小値が第２の閾値以上の場合に、画素数が最小値となる座標位置を特定することを特徴とする付記６に記載の文字認識プログラム。
【０１９１】
（付記８）前記座標位置特定手順は、前記延伸した領域と重複する領域内において、位置毎の画素数の最大値及び最小値を抽出する場合に、前記ノイズが重畳していないと判定した文字のサイズに基づいて、前記最大値及び最小値を抽出する範囲を調整することを特徴とする付記６または７に記載の文字認識プログラム。
【０１９２】
（付記９）文字認識装置が、
文字認識を行う領域の指定を受け付け、指定された領域を対象に文字認識を行い、認識をした文字の確信度と文字の座標位置を取得する文字認識ステップと、
前記文字認識ステップにおいて取得した確信度に基づいて、文字認識対象となった文字にノイズが重畳しているか否かを判定する重畳判定ステップと、
前記ノイズが重畳していないと判定した文字について、各々の文字の座標位置から、文字高で行方向に、または、文字幅で列方向に延伸して、延伸した領域とノイズが重畳した文字と判断をした領域の座標位置と重畳する部分が存在するか否かを判定する延伸処理ステップと、
前記ノイズが重畳した文字と判断をした領域の中で、延伸した領域と重畳をする領域について、行方向に延伸をした場合には列方向、列方向に延伸をした場合には行方向の座標にある文字を構成する画素数を集計する集計ステップと、
前記集計ステップにおいて集計した画素数を、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定する座標位置特定ステップと、
前記延伸した領域と重畳する領域から、前記座標位置特定ステップが特定をした座標位置から外接する位置までの領域を除いた領域を、文字領域として判定する文字領域判定ステップと
前記文字領域と判定をした領域を対象として文字認識を行い、文字認識結果を出力する出力ステップと
を実行することを特徴とする文字認識方法。
【０１９３】
（付記１０）前記座標位置特定ステップは、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第１の閾値を超え、かつ、画素数の最小値が第２の閾値未満の場合に、外接する座標位置から調べて画素数が所定の閾値を超える座標位置を特定することを特徴とする付記９に記載の文字認識方法。
【０１９４】
（付記１１）前記座標位置特定ステップは、前記延伸した領域と重複する領域内において、位置毎の画素数を比較し、画素数の最大値が第１の閾値以下、または、画素数の最小値が第２の閾値以上の場合に、画素数が最小値となる座標位置を特定することを特徴とする付記１０に記載の文字認識方法。
【０１９５】
（付記１２）前記座標位置特定ステップは、前記延伸した領域と重複する領域内において、位置毎の画素数の最大値及び最小値を抽出する場合に、前記ノイズが重畳していないと判定した文字のサイズに基づいて、前記最大値及び最小値を抽出する範囲を調整することを特徴とする付記１０または１１に記載の文字認識方法。
【符号の説明】
【０１９６】
１０    文字認識装置
１１    文字認識部
１２    重畳判定部
１３    延伸処理部
１４    集計部
１５    座標位置特定部
１６    文字領域判定部
１７    出力部
１００    文字認識装置
１１０    入力部
１２０    画像入力部
１３０    出力部
１４０    通信制御部
１４５    入出力制御部
１５０    記憶部
１５１    ハッシュテーブル
１５２    文字矩形情報
１５３    仮文字矩形情報
１５４    辞書情報
１６０    制御部
１６１    ハッシュテーブル登録部
１６２    分類部
１６３    仮行候補位置推定部
１６４    行矩形補正部
１６５    文字矩形確定部
１６６    文字認識処理部
１６７    意味解析処理部
２００    コンピュータ
２０１    入力装置
２０２    モニタ
２０３    ＲＡＭ
２０３ａ，２０８ａ  各種データ
２０４    ＲＯＭ
２０５    通信制御装置
２０６    媒体読取装置
２０７    ＣＰＵ
２０７ａ  文字認識プロセス
２０８    ＨＤＤ
２０８ｂ  文字認識プログラム
２０９    バス
【図１】
2011022938.tif 000004
【図２】
2011022938.tif 000005
【図３】
2011022938.tif 000006
【図４】
2011022938.tif 000007
【図５】
2011022938.tif 000008
【図６】
2011022938.tif 000009
【図７】
2011022938.tif 000010
【図８】
2011022938.tif 000011
【図９】
2011022938.tif 000012
【図１０】
2011022938.tif 000013
【図１１】
2011022938.tif 000014
【図１２】
2011022938.tif 000015
【図１３】
2011022938.tif 000016
【図１４】
2011022938.tif 000017
【図１５】
2011022938.tif 000018
【図１６】
2011022938.tif 000019
【図１７】
2011022938.tif 000020
【図１８】
2011022938.tif 000021
【図１９】
2011022938.tif 000022
【図２０】
2011022938.tif 000023
【図２１】
2011022938.tif 000024
【図２２】
2011022938.tif 000025
【図２３】
2011022938.tif 000026
【図２４】
2011022938.tif 000027
【図２５】
2011022938.tif 000028
【図２６】
2011022938.tif 000029
【図２７】
2011022938.tif 000030
【図２８】
2011022938.tif 000031
【図２９】
2011022938.tif 000032
【図３０】
2011022938.tif 000033
【図３１】
2011022938.tif 000034
【図３２】
2011022938.tif 000035
【図３３】
2011022938.tif 000036
【図３４】
2011022938.tif 000037
【図３５】
2011022938.tif 000038
【図３６】
2011022938.tif 000039
【図３７】
2011022938.tif 000040
【図３８】
2011022938.tif 000041
【図３９】
2011022938.tif 000042
【図４０】
2011022938.tif 000043
【図４１】
2011022938.tif 000044
【図４２】
2011022938.tif 000045