(57)【要約】【課題】原稿を光学的に読み取ったスキャン画像に対して行分割を適切に行う。【解決手段】行分割装置は、行・文字情報取得部１４０１により取得した文字情報から文字高さ情報抽出部１４０２により抽出した文字高さ情報に基づき文字が高さ方向で他の文字と接触するかを判定する文字接触判定部１４０３、行・文字情報取得部により取得した行情報と文字接触判定部による判定結果に基づいて、注目する行が高さ方向で他の行と接触するかを判定する行接触判定部１４０４、他の行と接触すると判定された注目する行において、当該注目する行における幅方向にて、黒画素の数のカウント値を導出するカウント値導出部１４０５、他の行と接触すると判定された注目する行に対し、行情報と文字高さ情報から導出される基準点の周辺にて、カウント値において注目する行の高さ方向で最少となる第１の位置を行分割位置として行分割を実行する行分割部１４０６を有する。【選択図】図１４
2020201864.tif 000002
【特許請求の範囲】
【請求項１】
原稿を光学的に読み取ったスキャン画像を二値化して得た二値画像内における行単位の大きさと位置を示す行情報と、前記二値画像内の行における文字単位の大きさと位置を示す文字情報とを取得する取得手段と、
前記文字情報から文字の高さを示す文字高さ情報を抽出する抽出手段と、
前記文字高さ情報に基づき、文字が高さ方向で他の文字と接触するかどうかを判定する第１の判定手段と、
前記行情報と前記第１の判定手段による判定結果に基づいて、前記原稿における行のうち注目する行が高さ方向で他の行と接触するかどうかを判定する第２の判定手段と、
前記第２の判定手段により他の行と接触すると判定された注目する行において、当該注目する行における幅方向にて、黒画素の数をカウントしたカウント値を導出する導出手段と、
前記第２の判定手段により他の行と接触すると判定された前記注目する行に対し、前記行情報で示される行の位置と前記文字高さ情報とから導出される基準点の周辺にて、前記カウント値において前記注目する行の高さ方向で最少となる第１の位置を行分割位置として行分割を実行する行分割手段と、
を有する、ことを特徴とする行分割装置。
【請求項２】
前記行分割手段は、前記カウント値の最少値が前記カウント値の合計値から導出した平均値より小さい、かつ、前記第１の位置で分割されときの前記第１の位置の下側または上側の行の高さが、前記文字高さ情報から導出された文字の高さより大きいときに、前記第１の位置を前記行分割位置として行分割を実行する
ことを特徴とする請求項１に記載の行分割装置。
【請求項３】
前記行分割手段は、前記カウント値の最少値が前記カウント値の合計値から導出した平均値以上であるときに、前記基準点および前記文字高さ情報から導出された第２の基準点の周りにて、前記カウント値が最少となる第２の位置を前記行分割位置として行分割を実行する
ことを特徴とする請求項２に記載の行分割装置。
【請求項４】
前記行分割手段は、前記カウント値の最少値が前記カウント値の合計値から導出した平均値以上であり、かつ、前記基準点および前記文字高さ情報から導出された第２の基準点の周りにて、前記カウント値が最少となる第２の位置のカウント値が前記平均値より小さいときに、前記第２の位置を前記行分割位置として行分割を実行する
ことを特徴とする請求項２に記載の行分割装置。
【請求項５】
前記行分割手段は、前記カウント値の最少値が前記カウント値の計値から導出した平均値以上であり、前記基準点および前記文字高さ情報から導出された第２の基準点の周りにて、前記カウント値が最少となる第２の位置のカウント値が前記平均値より小さい、かつ、前記第２の位置で分割されときの当該第２の位置の下側または上側の行の高さが前記文字高さ情報から導出された文字の高さより大きいときに、前記第２の位置を前記行分割位置として行分割を実行する
ことを特徴とする請求項２に記載の行分割装置。
【請求項６】
前記抽出手段は、前記文字高さ情報から文字高さの最頻値を抽出し、
前記第１の判定手段は、前記文字情報で示される各文字の高さが前記最頻値と同じであるときに、前記文字が通常文字であると判定し、
前記第２の判定手段は、前記第１の判定手段により前記通常文字と判定された文字が前記注目する行に存在しないときに、前記注目する行が行接触行であると判定し、
前記行分割手段は、前記注目する行に対し、前記第１の位置を前記行分割位置として行分割を実行する
ことを特徴とする請求項２から５の何れか一項に記載の行分割装置。
【請求項７】
前記第２の判定手段は、前記第１の判定手段により前記通常文字と判定された文字が前記注目する行に存在しない、かつ、前記注目する行の高さが前記最頻値と異なるときに、前記注目する行が行接触行であると判定する
ことを特徴とする請求項６に記載の行分割装置。
【請求項８】
前記第１の判定手段は、前記文字情報で示される各文字の高さが前記最頻値と異なるときに、前記文字が行接触文字であると判定し、
前記第２の判定手段は、前記第１の判定手段により前記通常文字と判定された文字が前記注目する行に存在しない、前記注目する行の高さが前記最頻値と異なる、かつ、前記第１の判定手段により前記行接触文字と判定された文字が前記注目する行に存在するときに、前記注目する行が行接触行であると判定する
ことを特徴とする請求項７に記載の行分割装置。
【請求項９】
前記第１の判定手段は、前記文字情報で示される各文字の高さが前記最頻値と異なる、かつ、前記文字情報で示される各文字の信頼度が所定の閾値未満であるときに、前記文字が行接触文字であると判定する
ことを特徴とする請求項８に記載の行分割装置。
【請求項１０】
前記第１の判定手段は、前記文字情報で示される各文字の高さが前記最頻値と異なる、前記文字情報で示される各文字の信頼度が所定の閾値未満である、かつ、前記文字情報で示される各文字の高さが前記最頻値の２以上の整数倍と同じであるときに、前記文字が行接触文字であると判定する
ことを特徴とする請求項８または９に記載の行分割装置。
【請求項１１】
前記第１の判定手段は、前記文字情報で示される各文字の高さが前記最頻値と異なる、前記文字情報で示される各文字の信頼度が所定の閾値未満である、前記文字情報で示される各文字の高さが前記最頻値の２以上の整数倍と同じである、かつ、前記文字のアスペクト比が２であるときに、前記文字が縦倍角文字であると判定し、
前記行分割手段は、前記第１の判定手段により前記縦倍角文字と判定された文字が前記注目する行に存在するときに、前記縦倍角文字の最下位置を前記行分割位置として行分割を実行する
ことを特徴とする請求項６から１０の何れか一項に記載の行分割装置。
【請求項１２】
前記行分割手段は、前記行情報で示される行上端位置から前記文字高さ情報に基づき導出された前記最頻値だけ下へ進めた位置を前記基準点としたときの前記行分割位置にて行分割を実行する
ことを特徴とする請求項６から１１の何れか一項に記載の行分割装置。
【請求項１３】
前記行分割手段は、前記行情報で示される行下端位置から前記文字高さ情報に基づき導出された前記最頻値だけ上へ進めた位置を前記基準点としたときの前記行分割位置にて行分割を実行する
ことを特徴とする請求項６から１１の何れか一項に記載の行分割装置。
【請求項１４】
前記行分割手段は、
前記行情報で示される行上端位置から前記文字高さ情報に基づき導出された前記最頻値だけ下へ進めた位置を前記基準点としたときの前記行分割位置にて行分割を実行する第一の行分割手段と、
前記行情報で示される行下端位置から前記文字高さ情報に基づき導出された前記最頻値だけ上へ進めた位置を前記基準点としたときの前記行分割位置にて行分割を実行する第二の行分割手段と、
を有し、
前記第一の行分割手段による前記行分割位置と、前記第二の行分割手段による前記行分割位置とに基づき、前記第一の行分割手段による行分割結果を採用するか、または前記第二の行分割手段による行分割結果を採用するかを決定する決定手段をさらに有する
ことを特徴とする請求項６から１１の何れか一項に記載の行分割装置。
【請求項１５】
前記決定手段は、前記第一の行分割手段による前記行分割位置と、前記第二の行分割手段による前記行分割位置が同じであるときに、前記第一の行分割手段による行分割結果、または前記第二の行分割手段による行分割結果のどちらかを採用すると決定する
ことを特徴とする請求項１４に記載の行分割装置。
【請求項１６】
前記決定手段は、前記第一の行分割手段による前記行分割位置と、前記第二の行分割手段による前記行分割位置が異なるときに、前記第一の行分割手段および前記第二の行分割手段により得られた行分割結果に対してＯＣＲ処理を行い、前記ＯＣＲ処理により認識した文字の信頼度に基づき採用する行分割結果を決定する
ことを特徴とする請求項１４または１５に記載の行分割装置。
【請求項１７】
前記二値画像から罫線を除去する第一の除去手段を有し、
前記取得手段は、前記第一の除去手段により前記罫線を除去した前記二値画像から前記行情報および前記文字情報を取得する
ことを特徴とする請求項１から１６の何れか一項に記載の行分割装置。
【請求項１８】
前記二値画像からノイズを除去する第二の除去手段を有し、
前記取得手段は、前記第二の除去手段により前記ノイズを除去した前記二値画像から前記行情報および前記文字情報を取得する
ことを特徴とする請求項１７に記載の行分割装置。
【請求項１９】
原稿を光学的に読み取ったスキャン画像を二値化して得た二値画像内における行単位の大きさと位置を示す行情報と、前記二値画像内の行における文字単位の大きさと位置を示す文字情報を取得する取得ステップと、
前記文字情報から文字の高さを示す文字高さ情報を抽出する抽出ステップと、
前記文字高さ情報に基づき、文字の高さ方向で他の文字と接触するかどうかを判定する第１の判定ステップと、
前記行情報と前記第１の判定ステップによる判定結果に基づいて、前記原稿における行のうち注目する行が高さ方向で他の行と接触するかどうかを判定する第２の判定ステップと、
前記第２の判定ステップにて他の行と接触すると判定された前記注目する行において、当該注目する行における幅方向にて、黒画素の数をカウントしたカウント値を導出する導出ステップと、
前記第２の判定ステップにて他の行と接触すると判定された前記注目する行に対し、前記行情報で示される行の位置と前記文字高さ情報とから導出される基準点の周辺にて、前記カウント値において前記注目する行の高さ方向で最少となる第１の位置を行分割位置として行分割を実行する行分割ステップと、
を有する、ことを特徴とする行分割方法。
【請求項２０】
コンピュータに、請求項１から１８の何れか一項に記載の行分割装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スキャン画像の文字領域から行画像を分割する技術に関する。
【背景技術】
【０００２】
従来、カメラやスキャナなどにより光学的に原稿を読み取って得たスキャン画像内の文字を認識する文字認識技術（ＯＣＲ技術）がある。ＯＣＲ技術では、スキャン画像の文字領域を行単位に分割したり（以下、行分割と称す）、文字単位に分割したりする（以下、文字分割と称す）ことで、各文字の位置や大きさを正確に把握する必要がある。原稿の読み取り時にゴミなどによってスキャン画像内の文字が行間でつながると、行分割を適切に行うことができず、ＯＣＲ精度を低下させてしまう。
【０００３】
特許文献１には、画像を二値化して行の幅方向にて黒画素の数をカウントしてカウント値を取得し、取得した黒画素のカウント値から導出した平均文字高さを基準として、文字が行間でつながる接触行であるかどうかを判定する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−２２３２２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、行間が極めて狭く複数箇所で行同士が接触する行接触を生じて、文字が行間でつながる接触行がある帳票では、特許文献１の技術を用いてもスキャン画像にて行分割を適切に行うことができない場合があった。例えば、印刷に使用するロール紙を節約するレシート印刷機では、文字領域の行間が極めて狭く、複数箇所で行接触を生じているレシートが生成される場合がある。
【０００６】
特許文献１の技術では、黒画素のカウント値から導出した平均文字高さを基準として接触行であるかどうかを判定しており、接触行が複数存在すると、接触行を含めた平均の文字高さと実際の行高さとのずれが大きくなる。これにより、接触行であるかどうかを正確に判定できず、行分割を適切に行うことができない可能性があった。また、行数が少ない原稿のスキャン画像では、数箇所でも接触行があると平均文字高さが実際の文字高さから大きくずれてしまい、同様に、接触行であるかどうかを正確に判定できず、行分割を適切に行うことができない可能性があった。
【０００７】
本発明は、原稿を光学的に読み取ったスキャン画像に対して行分割を適切に行うことを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一態様に係る行分割装置は、原稿を光学的に読み取ったスキャン画像を二値化して得た二値画像内における行単位の大きさと位置を示す行情報と、前記二値画像内の行における文字単位の大きさと位置を示す文字情報とを取得する取得手段と、前記文字情報から前記文字の高さを示す文字高さ情報を抽出する抽出手段と、前記文字高さ情報に基づき、前記文字が高さ方向で他の文字と接触するかどうかを判定する第１の判定手段と、前記行情報と第１の判定手段による判定結果に基づいて、前記原稿における行のうち注目する行が高さ方向で他の行と接触するかどうかを判定する第２の判定手段と、前記第２の判定手段により他の行と接触すると判定された前記注目する行において、当該注目する行における幅方向にて、黒画素の数をカウントしたカウント値を導出する導出手段と、前記第２の判定手段により他の行と接触すると判定された前記注目する行に対し、前記行情報で示される行の位置と前記文字高さ情報とから導出される基準点の周辺にて、前記カウント値において前記注目する行の高さ方向で最少となる第１の位置を行分割位置として行分割を実行する行分割手段と、を有する、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、原稿を光学的に読み取ったスキャン画像に対して行分割を適切に行うことができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理システムの概略を示す図である。
【図２】行分割処理の手順例を示すフローチャートである。
【図３】スキャン画像例を示す図である。
【図４】文字属性判定処理の手順例を示すフローチャートである。
【図５】行属性判定処理の手順例を示すフローチャートである。
【図６】第二の行分割処理の手順例を示すフローチャートである。
【図７】スキャン画像の二値画像例を示す図である。
【図８】行接触行を含む領域の二値画像例およびその射影画像例を示す図である。
【図９】文字属性判定処理の手順例を示すフローチャートである。
【図１０】第二の行分割処理の手順例を示すフローチャートである。
【図１１】第二の行分割処理の手順例を示すフローチャートである。
【図１２】行分割処理の手順例を示すフローチャートである。
【図１３】行分割結果決定処理の手順例を示すフローチャートである。
【図１４】情報処理装置における機能構成例を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。ただし、この実施形態に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらに限定する趣旨のものではない。また、実施形態で説明されている構成要素の組み合わせのすべてが、課題を解決するための手段に必須のものとは限らず、種々の変形及び変更が可能である。
【００１２】
（実施形態１）
図１は、本実施形態に係る情報処理システムの概略構成例を示す図である。情報処理システムは、複写機１００と、情報処理装置１１０とを有する。複写機１００は、スキャナ１０１と、プリンタ１０２と、複写機側通信部１０３とを有する。スキャナ１０１は、原稿を光学的に読み取るスキャンを行って得たスキャン画像を生成する。プリンタ１０２は、紙などの記録媒体に画像を形成する。複写機側通信部１０３は、ネットワークを介して外部装置と通信処理を行う。複写機側通信部１０３は、例えば、後述の情報処理装置１１０の通信部１１７との通信処理を行う。
【００１３】
情報処理装置１１０は、ＣＰＵ１１１と、ＲＯＭ１１２と、ＲＡＭ１１３と、ＨＤＤ１１４と、表示部１１５と、入力部１１６と、情報処理装置側通信部１１７とを有する。ＣＰＵ１１１は、ＲＯＭ１１２に記憶された制御プログラムを読み出して各種処理を実行する。ＲＡＭ１１３は、ＣＰＵ１１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ１１４は、各種データや各種プログラム等を記憶する。なお、後述する情報処理装置１１０の機能や処理は、ＣＰＵ１１１がＲＯＭ１１２又はＨＤＤ１１４に格納されているプログラムを読み出し、このプログラムを実行することにより実現されるものである。
【００１４】
情報処理装置側通信部１１７は、ネットワークを介して外部装置と通信処理を行う。情報処理装置側通信部１１７は、例えば、複写機１００の通信部１０３との通信処理を行う。表示部１１５は、各種情報を表示する。入力部１１６は、キーボードやマウスなどの入力装置を有し、ユーザによる各種操作を受け付ける。なお、表示部１１５と入力部１１６は、タッチパネルのように一体に設けられていてもよい。また、表示部１１５は、プロジェクタによる投影を行うものであってもよく、入力部１１６は、投影された画像に対する指先の位置を、カメラで認識するものであってもよい。
【００１５】
本実施形態においては、複写機１００のスキャナ１０１がレシートなどの原稿をスキャンし、入力画像（スキャン画像３０１）を生成する。そして、入力画像は、複写機側通信部１０３により情報処理装置１１０に送信される。情報処理装置１１０においては、情報処理装置側通信部１１７が入力画像を受信し、これをＨＤＤ１１４などの記憶部に記憶する。
【００１６】
図２は、本実施形態に係る行分割処理の手順例を示すフローチャートである。なお、レシートなどの処理対象の原稿は、スキャナ１０１でスキャン可能に複写機１００の所定の位置に載置されているとする。
【００１７】
Ｓ２０１において、複写機１００のスキャナ１０１により原稿（文書）を光学的にスキャンしてスキャン画像を取得する。複写機１００が取得したスキャン画像は、通信部１０３による情報処理装置１１０の通信部１１７との通信処理により、情報処理装置１１０に送られる。情報処理装置１１０のＣＰＵ１１１が複写機１００から送られたスキャン画像をＨＤＤ１１４に格納する。図３は、原稿のスキャン画像例を示す図である。スキャン画像３０１は、レシートをスキャンした画像である。本実施形態では、レシートのスキャン画像を用いたが、レシート以外の、行間が狭く、複数箇所で行同士が接触する行接触が発生している原稿や、スキャン時のゴミやノイズによって文字が行間でつながって行接触した原稿のスキャン画像でもよい。原稿の罫線に対応する領域であるスキャン画像３０１の罫線領域３０２よりも上方側にあっては、文字列の行間が広く、各文字列の文字を認識可能な状態となっている。スキャン画像３０１の罫線領域３０２よりも下方側にあっては、文字列の行間が狭く、各文字列の文字を認識しづらい状態となっている。スキャン画像３０１の詳細は後述する。
【００１８】
図２のフローの説明に戻る。Ｓ２０２において、ＣＰＵ１１１は、スキャン画像３０１に対して二値化処理を行い、ＣＰＵ１１１が二値化処理で取得した二値画像をＲＡＭ１１３に格納する。二値化処理とは、画像を白と黒の２階調に変換する処理のことであり、閾値より濃い色の画素は黒画素、その閾値より薄い色の画素は白画素となる。本実施形態では、スキャン画像３０１全体のヒストグラムから閾値を決定して二値画像を作成する手法を用いたが、その後の文字認識が可能な精度で白と黒の二値に変換されれば具体的な手法は問わない。
【００１９】
Ｓ２０３において、ＣＰＵ１１１は、Ｓ２０２の処理で取得した二値画像に対して罫線除去（罫線領域除去）を行う。罫線除去とは、スキャン画像３０１の罫線領域３０２に対応する二値画像内の罫線領域を検出し、検出した罫線領域を二値画像から除去する処理である。除去対象の罫線領域としては、罫線領域３０２のような破線だけでなく、例えば実線や縦方向の罫線などの罫線が存在する原稿のスキャン画像であれば、同様に、スキャン画像に対する二値処理により取得した二値画像に対して罫線除去を実行する。
【００２０】
Ｓ２０４において、ＣＰＵ１１１は、Ｓ２０３の処理を行った二値画像に対してモルフォロジー変換処理などのノイズ除去を行う。スキャン時のゴミの混入などによってスキャン画像３０１に微小な黒画素がノイズとして混入することがあり、そのノイズを除去する。本実施形態では、二値画像に対してモルフォロジー変換処理を行うことによりノイズ除去を行っているが、その後のＯＣＲが可能な精度でノイズが除去されれば具体的な手法は問わない。
【００２１】
Ｓ２０５において、ＣＰＵ１１１は、Ｓ２０４の処理を行った二値画像に対して第一の行分割を行い、ＣＰＵ１１１が分割した行の情報をＲＡＭ１１３に格納する。本実施形態では、二値画像全体を行の幅方向に射影をとり、行の高さ方向にて黒画素数が所定の閾値以上の領域を行と判定する。二値画像全体を行の幅方向に射影をとるとは、行の高さ方向のそれぞれの位置にて黒画素の数を行の幅方向でカウントして黒画素数を取得することである。例えば、行の幅方向にて黒画素の出現頻度を表す行方向の黒画素の射影ヒストグラムを作成し、作成した黒画素の射影ヒストグラムに基づき黒画素数を取得してもよい。ＣＰＵ１１１は、行と判定した領域の位置、高さ、幅の情報を行情報としてＲＡＭ１１３に格納する。
【００２２】
Ｓ２０６において、ＣＰＵ１１１は、Ｓ２０５の処理で取得した行の情報を基に、Ｓ２０４の処理を行った二値画像に対して文字分割を行い、ＣＰＵ１１１が文字分割で取得した、分割した文字の情報をＲＡＭ１１３に格納する。本実施形態では、分割した各行に対して行と垂直な方向に射影をとり、黒画素数が所定の閾値以上の領域を文字と判定する。ＣＰＵ１１１は、文字と判定した領域の位置、高さ、幅の情報を文字情報として取得し、行情報と関連付けてＲＡＭ１１３に格納する。Ｓ２０５の行分割、Ｓ２０６の文字分割については、行接触した文字を除き、原稿の二値画像における文字領域を行単位、文字単位に分割できれば本実施形態以外の手法を用いてもよい。
【００２３】
Ｓ２０７において、ＣＰＵ１１１は、Ｓ２０６で取得した文字情報を基に、Ｓ２０４の処理を行った二値画像に対してＯＣＲ処理を行い、ＣＰＵ１１１がＯＣＲ処理結果を文字情報と関連付けてＲＡＭ１１３に格納する。ＯＣＲ処理結果には、各文字情報に複数の認識結果候補が格納されており、各認識結果候補には信頼度が関連付けられている。本実施形態において、信頼度とは、認識対象文字の特徴量と、ＯＣＲ処理結果の文字の特徴量の一致度を数値化（０〜２５５）したものである。信頼度の数値が低いほどＯＣＲ処理結果が認識対象文字とＯＣＲ処理結果の文字との一致率が高いことを表し、より信頼できる結果であることを示す。また、信頼度は、各文字のＯＣＲ結果の確からしさが客観的に比較できれば、その表現方法は問わない。
【００２４】
Ｓ２０８において、ＣＰＵ１１１は、Ｓ２０５で取得した各文字の高さ情報から文字高さ最頻値Ｈを導出し、導出結果である文字高さ最頻値Ｈを文字情報と関連付けてＲＡＭ１１３に格納する。本実施形態では、文字高さ情報を用いて文字高さの頻度グラフを作成し、最も頻度の高い中央値を文字高さ最頻値Ｈと定義する。
【００２５】
Ｓ２０９において、ＣＰＵ１１１は、文字属性判定処理を行い、Ｓ２０７の処理で取得した各文字（認識対象文字）に対して文字属性を付与し、文字情報と関連付けてＲＡＭ１１３に格納する。
【００２６】
図４は、本実施形態に係る文字属性判定処理の手順例を示すフローチャートである。Ｓ４０１において、ＣＰＵ１１１は、原稿の文字領域内の各文字の文字情報をＲＡＭ１１３から取得する。
【００２７】
Ｓ４０２において、ＣＰＵ１１１は、Ｓ４０１で取得した原稿の文字領域内の文字情報に対して文字属性未判定の文字を検索し、未判定の文字が存在するか存在しないかを判定する。ＣＰＵ１１１は、未判定の文字が存在するとの判定結果を得た場合（Ｓ４０２のＹＥＳ）、処理をＳ４０３へ移行する。ＣＰＵ１１１は、未判定文字が存在しないとの判定結果を得た場合（Ｓ４０２のＮＯ）、文字属性判定処理を終了する。
【００２８】
Ｓ４０３において、ＣＰＵ１１１は、Ｓ４０２の処理で未判定の文字と判定された当該未判定文字の文字高さおよび文字信頼度を含む文字情報を取得する。Ｓ４０３に続くＳ４０４、Ｓ４０６、Ｓ４０７において、未判定文字の文字属性を判定する。
【００２９】
Ｓ４０４において、ＣＰＵ１１１は、Ｓ４０３で取得した文字情報に基づき、処理対象の文字の文字高さがＳ２０８で取得した文字高さ最頻値Ｈと同程度であるか否かを判定する。ＣＰＵ１１１は、処理対象の文字の文字高さが文字高さ最頻値Ｈと同程度であるとの判定結果を得た場合（Ｓ４０４のＹＥＳ）、処理をＳ４０５へ移行する。ＣＰＵ１１１は、処理対象の文字の文字高さが文字高さ最頻値Ｈと同程度ではないとの判定結果を得た場合（Ｓ４０４のＮＯ）、処理をＳ４０６へ移行する。本実施形態において、文字高さ最頻値Ｈの±３０％以内の文字高さの文字を、文字高さ最頻値Ｈと同程度とした。なお、文字高さ最頻値Ｈと同程度は文字高さ最頻値Ｈの±３０％以内に限定されない。文字高さ最頻値Ｈと同程度は、文字高さ最頻値Ｈの±２５％以内などのよりも狭い範囲や文字高さ最頻値Ｈの±３５％以内などのより広い範囲としてもよい。
【００３０】
Ｓ４０５において、ＣＰＵ１１１は、処理対象の文字の文字属性を通常文字と判定する。ＣＰＵ１１１は、文字属性の判定結果である通常文字をＳ４０３で取得した文字情報と関連付けてＲＡＭ１１３に格納する。ＣＰＵ１１１は、文字属性の判定結果をＲＡＭ１１３へ格納した後、処理をＳ４０２へ移行する。
【００３１】
Ｓ４０６において、ＣＰＵ１１１は、Ｓ４０３で取得した文字情報に基づき、処理対象の文字の信頼度が閾値以上か否かを判定する。ＣＰＵ１１１は、処理対象の文字の信頼度が閾値以上であるとの判定結果を得た場合（Ｓ４０６のＹＥＳ）、処理をＳ４０５へ移行する。そして、上述の通り、文字属性を通常文字と判定し、通常文字をＳ４０３で取得した文字情報と関連付けてＲＡＭ１１３に格納する。ＣＰＵ１１１は、処理対象の文字の信頼度が閾値未満であって、処理対象の文字の信頼度が閾値以上ではないとの判定結果を得た場合（Ｓ４０６のＮＯ）、処理をＳ４０７へ移行する。本実施形態では、閾値を１５０とした。なお、文字の信頼度判定用の閾値は１５０に限定されない。文字の信頼度判定用の閾値は１５０より小さい数値や１５０より大きい数値としてもよい。
【００３２】
Ｓ４０７において、ＣＰＵ１１１は、取得した文字高さ（処理対象の文字の文字高さ）が文字高さ最頻値Ｈの２以上の整数倍と同程度であるか否かを判定する。本実施形態において、文字高さ最頻値Ｈの２以上の整数倍の±３０％以内の文字高さの文字を文字高さ最頻値Ｈの２以上の整数倍と同程度とした。なお、文字高さ最頻値Ｈの２以上の整数倍と同程度はこの範囲に限定されない。文字高さ最頻値Ｈの２以上の整数倍と同程度は、文字高さ最頻値Ｈの２以上の整数倍のマイナス２５％から文字高さ最頻値Ｈの２以上の整数倍のプラス２５％範囲内などのより狭い範囲としてもよい。文字高さ最頻値Ｈの２以上の整数倍と同程度は、文字高さ最頻値Ｈの２以上の整数倍のマイナス３５％から文字高さ最頻値Ｈの２以上の整数倍のプラス３５％範囲内などのより広い範囲としてもよい。ＣＰＵ１１１は、処理対象の文字の文字高さが文字高さ最頻値Ｈの２以上の整数倍と同程度であるとの判定結果を得た場合（Ｓ４０７のＹＥＳ）、処理をＳ４０８へ移行する。ＣＰＵ１１１は、処理対象の文字の文字高さが文字高さ最頻値Ｈの２以上の整数倍と同程度ではないとの判定結果を得た場合（Ｓ４０７のＮＯ）、処理をＳ４０２へ移行する。
【００３３】
Ｓ４０８において、ＣＰＵ１１１は、処理対象の文字の文字属性を行接触文字と判定する。ＣＰＵ１１１は、文字属性の判定結果である行接触文字をＳ４０３で取得した文字情報と関連付けてＲＡＭ１１３に格納する。ＣＰＵ１１１は、文字属性の判定結果をＲＡＭ１１３へ格納した後、処理をＳ４０２へ移行する。
【００３４】
上述したＳ４０２からＳ４０８の処理を行うことにより、文字属性判定処理を行っていない原稿の文字領域内の全ての文字に対して文字属性が判定されることになる。
【００３５】
図２のフローの説明に戻る。Ｓ２１０において、ＣＰＵ１１１は、行属性判定処理を行い、各行に対して行属性を付与し、行情報と関連付けてＲＡＭ１１３に格納する。
【００３６】
図５は、本実施形態に係る行属性判定処理の手順例を示すフローチャートである。Ｓ５０１において、ＣＰＵ１１１は、原稿の文字領域内の、各行の行情報およびその行に含まれる文字の文字属性情報をＲＡＭ１１３より取得する。
【００３７】
Ｓ５０２において、ＣＰＵ１１１は、Ｓ５０１で取得した文字の文字属性情報に対して行属性未判定の行を検索し、未判定の行が存在するか存在しないかを判定する。ＣＰＵ１１１は、未判定の行が存在するとの判定結果を得た場合（Ｓ５０２のＹＥＳ）、処理をＳ５０３へ移行する。ＣＰＵ１１１は、未判定の行が存在しないとの判定結果を得た場合（Ｓ５０２のＮＯ）、行属性判定処理を終了する。
【００３８】
Ｓ５０３において、ＣＰＵ１１１は、Ｓ５０２の処理で未判定行と判定された当該未判定行に含まれる文字の文字属性および行高さ情報を取得する。Ｓ５０３に続くＳ５０４、Ｓ５０６、Ｓ５０７において、未判定行の行属性を判定する。
【００３９】
Ｓ５０４において、ＣＰＵ１１１は、行内の文字の文字属性が全て通常文字であるか否かを判定する。ＣＰＵ１１１は、行内の文字の文字属性が全て通常文字である（通常文字のみである）との判定結果を得た場合（Ｓ５０４のＹＥＳ）、処理をＳ５０５へ移行する。ＣＰＵ１１１は、行内の文字の文字属性が通常文字ではない文字を含んでおり、通常文字のみではないとの判定結果を得た場合（Ｓ５０４のＮＯ）、処理をＳ５０６へ移行する。
【００４０】
Ｓ５０５において、ＣＰＵ１１１は、行属性を通常行と判定する。ＣＰＵ１１１は、行属性の判定結果である通常行をＳ５０３で取得した情報と共に行情報に関連付けてＲＡＭ１１３に格納する。ＣＰＵ１１１は、行属性の判定結果をＲＡＭ１１３へ格納した後、処理をＳ５０２へ移行する。
【００４１】
Ｓ５０６において、ＣＰＵ１１１は、取得した行高さがＳ２０８で取得した文字高さ最頻値Ｈと同程度であるか否かを判定する。本実施形態において、文字高さ最頻値Ｈの±３０％以内の行高さの行を文字高さ最頻値Ｈと同程度とした。ＣＰＵ１１１は、取得した行高さが文字高さ最頻値Ｈと同程度であるとの判定結果を得た場合（Ｓ５０６のＹＥＳ）、処理をＳ５０５へ移行する。ＣＰＵ１１１は、取得した行高さが文字高さ最頻値Ｈと同程度ではないとの判定結果を得た場合（Ｓ５０６のＮＯ）、処理をＳ５０７へ移行する。
【００４２】
Ｓ５０７において、ＣＰＵ１１１は、処理対象の文字の文字属性が行接触文字である文字が行内に１つ以上存在するか否かを判定する。ＣＰＵ１１１は、処理対象の文字の文字属性が行接触文字である文字が行内に１つ以上存在するとの判定結果を得た場合（Ｓ５０７のＹＥＳ）、処理をＳ５０８へ移行する。ＣＰＵ１１１は、処理対象の文字の文字属性が行接触文字である文字が行内に１つも存在しないとの判定結果を得た場合（Ｓ５０７のＮＯ）、処理をＳ５０２へ移行する。
【００４３】
Ｓ５０８において、ＣＰＵ１１１は、行属性を行接触行と判定する。ＣＰＵ１１１は、文字属性の判定結果である行接触文字をＳ５０３で取得した情報と共に行情報と関連付けてＲＡＭ１１３に格納する。ＣＰＵ１１１は、行属性の判定結果をＲＡＭ１１３へ格納した後、処理をＳ５０２へ移行する。
【００４４】
上述したＳ５０２からＳ５０８の処理を行うことにより、行属性判定処理を行っていない原稿の文字領域内の全ての行に対して行属性が判定されることになる。
【００４５】
図７は、図３に示すスキャン画像３０１に対しＳ２０２の二値化処理からＳ２１０の行属性判定処理を実施した後の二値画像７００を示す図である。二値画像７００内の破線矩形領域７０１は、行属性が通常行である行を示している。二値画像７００内の実線矩形領域７０２は、行属性が行接触行である行を示している。実線矩形領域７０２において、１行目「小計」の「言（ごんべん）」と、２行目「（」とが行接触している。同様に、実線矩形領域７０２において、１行目「０」と２行目「）」、２行目「内」と３行目「計」の「言（ごんべん）」、２行目「）」と３行目「０」とが行接触している。すなわち、二値画像７００の実線矩形領域７０２においては、３行にわたり４箇所で行接触が発生している。
【００４６】
図２のフローの説明に戻る。Ｓ２１１において、ＣＰＵ１１１は、二値画像における行であって行属性が行接触行である行に対して第二の行分割を行い、ＣＰＵ１１１が分割した行の情報をＲＡＭ１１３に格納する。
【００４７】
図６は、本実施形態に係る第二の行分割処理の手順例を示すフローチャートである。Ｓ６０１において、ＣＰＵ１１１は、Ｓ２１０の判定処理で得た各行の行属性情報をＲＡＭ１１３より取得する。そして、ＣＰＵ１１１は、取得した各行の行属性情報を基に、スキャン画像（二値画像）の文字領域内に、処理対象の行の行属性が行接触行である行であって、第二の行分割処理が行われていない行が存在するか否かを判定する。ＣＰＵ１１１は、スキャン画像（二値画像）の文字領域内に、行属性が行接触行である行であって、第二の行分割処理が行われていない行が存在するとの判定結果を得た場合（Ｓ６０１のＹＥＳ）、処理をＳ６０２へ移行する。ＣＰＵ１１１は、スキャン画像（二値画像）の文字領域内に、行属性が行接触行である行であって、第二の行分割処理が行われていない行が存在しないとの判定結果を得た場合（Ｓ６０１のＮＯ）、第二の行分割処理を終了する。
【００４８】
Ｓ６０２において、ＣＰＵ１１１は、行属性が行接触行である行であって、第二の行分割が行われていない行の位置、高さ、幅を示す行情報をＲＡＭ１１３より取得する。すなわち、ＣＰＵ１１１は、注目する行の、行上端位置や行下端位置などの位置や高さなどを示す行情報を取得する。
【００４９】
Ｓ６０３において、ＣＰＵ１１１は、スキャン画像３０１の二値画像における、行接触行に対応する箇所に対して行方向に射影を作成し、処理対象の行接触行に対応する箇所を含む矩形領域の射影情報を取得する。本実施形態では、ＣＰＵ１１１は、二値画像７００の実線矩形領域７０２の射影情報を取得する。
【００５０】
Ｓ６０４において、ＣＰＵ１１１は、Ｓ６０３で取得した射影情報を基に、黒画素数の平均値Ａを導出する。例えば、ＣＰＵ１１１は、黒画素数（カウント値）の合計値を導出し、導出した黒画素数の合計値を処理対象の行接触行の高さ方向の画素数（カウント数）で除算することによって、黒画素数の合計値の平均値Ａ（カウント値の平均値）を導出する。
【００５１】
Ｓ６０５において、ＣＰＵ１１１は、二値画像７００の実線矩形領域７０２の射影画像において、行分割位置を特定するための基準点を決定する。
【００５２】
図８は、二値画像７００の実線矩形領域７０２に対応する二値画像８００およびその射影画像８０１を示す図である。ＣＰＵ１１１は、Ｓ６０２で取得した行情報に含まれる行接触行の行上端位置（先頭位置）８０３より、Ｓ２０８で取得した文字高さ最頻値Ｈだけ下へ進めた位置を基準点として決定する。
【００５３】
Ｓ６０６において、ＣＰＵ１１１は、Ｓ６０５の処理で決定した基準点の周辺のうち、黒画素数が最少値Ｓとなる位置Ｐ（第１の位置）を特定する。本実施形態において、基準点から、行と垂直な方向にて±２画素分の黒画素数を比較して黒画素数が最少値Ｓとなる位置Ｐを分割位置８０４として特定した。なお、基準点の周辺の大きさは、基準点から±２画素分に限定されない。基準点の周辺の大きさは、基準点から±１画素としたり、基準点から±２画素より大きくしたりしてもよい。
【００５４】
Ｓ６０７において、ＣＰＵ１１１は、黒画素数最少値Ｓ（図８の分割位置８０４）が黒画素数の平均値Ａ（図８の位置８０２）より小さいか否かを判定する。ＣＰＵ１１１は、黒画素数最少値Ｓが黒画素数の平均値Ａより小さい（黒画素数の平均値Ａ未満である）との判定結果を得た場合（Ｓ６０７のＹＥＳ）、処理をＳ６０８へ移行する。ＣＰＵ１１１は、黒画素数最少値Ｓが黒画素数の平均値Ａ以上（カウント値の平均値以上）であるとの判定結果を得た場合（Ｓ６０７のＮＯ）、処理をＳ６０１へ移行する。
【００５５】
Ｓ６０８において、ＣＰＵ１１１は、分割位置８０４で行分割を行った場合の、行分割後の残りの領域の行高さ（以下、行分割後の行高さともいう）を導出する。すなわち、ＣＰＵ１１１は、分割位置８０４で行分割を行った場合の、二値画像８００にて分割位置８０４の下側の領域の高さであって、分割位置８０４から行接触行の最下位置８０６までの距離を導出する。そして、ＣＰＵ１１１は、導出した行分割後の行高さがＳ２０８で導出した文字高さ最頻値Ｈよりも大きいか否かを判定する。ＣＰＵ１１１は、導出した行分割後の行高さが文字高さ最頻値Ｈよりも大きいとの判定結果を得た場合（Ｓ６０８のＹＥＳ）、処理をＳ６０９へ移行する。ＣＰＵ１１１は、導出した行分割後の行高さが文字高さ最頻値Ｈ以下であるとの判定結果を得た場合（Ｓ６０８のＮＯ）、処理をＳ６０１へ移行する。
【００５６】
Ｓ６０９において、ＣＰＵ１１１は、処理対象である二値画像８００に対してＳ６０６で特定した分割位置８０４にて行分割を実行する。この行接触行に対する行分割が第二の行分割処理に対応する。ＣＰＵ１１１は、第二の行分割処理を実施した後、処理をＳ６０３へ移行する。
【００５７】
二値画像８００にあっては、ＣＰＵ１１１は、分割位置８０４で行分割を実行する場合と同様、分割位置８０４の下側の領域に対して、Ｓ６０１からＳ６０９の第二の行分割処理を実行する。これにより、分割位置８０５を特定し、特定した分割位置８０５にて行分割が実行される。
【００５８】
よって、二値画像８００にあっては、行接触行は、３つの行に分割される。
【００５９】
以上、説明したとおり、本実施形態によれば、行間が極めて狭い文書や複数箇所で行接触した原稿のスキャン画像や、行接触した行の割合が多い原稿のスキャン画像においても、より正確な行分割を実現することができる。その結果、より高精度なＯＣＲ処理を実現することができる。
【００６０】
（実施形態２）
本実施形態については、実施形態１との差分のみの説明とし、特に明記しない部分については実施形態１と同じ構成および手順となる。図２に示す行分割処理のＳ２０１からＳ２０８、Ｓ２１０の処理は、実施形態１の場合と同じであり、その説明を省略する。
【００６１】
実施形態１では、通常文字および行接触文字の２種類の文字属性に対応する文字を含む原稿の行分割処理について説明した。３種類以上の文字属性に対応する文字を含む原稿の行分割処理としてもよい。
【００６２】
例えば、レシートには、文字幅に対する文字高さの比（アスペクト比）が２である文字（以下、縦倍角文字と称す）がしばしば用いられる。本実施形態では、文字属性の通常文字よりも文字高さが大きい縦倍角文字を文字属性の判定に追加した文字属性判定処理について説明する。
【００６３】
図９は、本実施形態に係る文字属性判定処理の手順例を示すフローチャートである。Ｓ９０１からＳ９０８の各処理は、図４のＳ４０１からＳ４０８の各処理と同じであり、その説明を省略する。すなわち、図９は、図２に示すフローにＳ９０９およびＳ９１０を追加したフローチャートとなっている。
【００６４】
Ｓ９０７において、ＣＰＵ１１１は、処理対象の文字の文字高さが文字高さ最頻値Ｈの２以上の整数倍と同程度でないとの判定結果を得た場合（Ｓ９０７のＮＯ）、処理をＳ９０９へ移行する。
【００６５】
Ｓ９０９において、ＣＰＵ１１１は、通常文字または行接触文字と判定された文字以外の文字のアスペクト比が２であるか否かを判定する。ＣＰＵ１１１は、処理対象の文字のアスペクト比が２であるとの判定結果を得た場合（Ｓ９０９のＹＥＳ）、処理をＳ９１０へ移行する。ＣＰＵ１１１は、処理対象の文字のアスペクト比が２ではなく、２以外であるとの判定結果を得た場合（Ｓ９０９のＮＯ）、処理をＳ９０２へ移行する。
【００６６】
Ｓ９１０において、ＣＰＵ１１１は、処理対象の文字の文字属性を縦倍角文字と判定する。ＣＰＵ１１１は、文字属性の判定結果である縦倍角文字をＳ９０３で取得した文字情報と関連付けてＲＡＭ１１３に格納する。ＣＰＵ１１１は、文字属性の判定結果をＲＡＭ１１３へ格納した後、処理をＳ９０２へ移行する。
【００６７】
上述したＳ９０２からＳ９１０の処理を行うことにより、文字属性判定処理を行っていない原稿の文字領域内の全ての文字に対して文字属性が判定されることになる。
【００６８】
図１０は、本実施形態に係る第二の行分割処理の手順例を示すフローチャートである。Ｓ１００１からＳ１００６、Ｓ１００９からＳ１０１１の各処理は、図６のＳ６０１からＳ６０６、Ｓ６０７からＳ６０９の各処理と同じであり、その説明を省略する。すなわち、図１０は、図６に示すフローにＳ１００７およびＳ１００８を追加したフローチャートとなっている。
【００６９】
ＣＰＵ１１１は、黒画素数が最少値Ｓとなる位置Ｐを特定するＳ１００６の処理に続くＳ１００７において、位置Ｐに縦倍角文字が存在するか存在しないかを判定する。ＣＰＵ１１１は、位置Ｐに縦倍角文字が存在するとの判定結果を得た場合（Ｓ１００７のＹＥＳ）、処理をＳ１００８へ移行する。ＣＰＵ１１１は、位置Ｐに縦倍角文字が存在しないとの判定結果を得た場合（Ｓ１００７のＮＯ）、処理をＳ１００９へ移行する。
【００７０】
Ｓ１００８において、ＣＰＵ１１１は、分割位置をＳ１００６で特定した位置Ｐから変更し縦倍角文字の最下位置に設定し、分割位置として設定した縦倍角文字の最下位置にて行分割を実行する。ＣＰＵ１１１は、行分割処理を実行した後、処理をＳ１００３へ移行する。このように、文書に縦倍角文字を含んでいる場合でも、適切に設定した分割位置にて行分割を実行することができる。
【００７１】
以上、説明したとおり、本実施形態によれば、文字サイズの異なる文字間で行接触している原稿のスキャン画像、および行接触した行の割合が多い原稿のスキャン画像においても、より正確な行分割を実現することができる。その結果、より正確なＯＣＲ精度を実現することができる。
【００７２】
（実施形態３）
本実施形態については、実施形態１、２との差分のみの説明とし、特に明記しない部分については実施形態１、２と同じ構成および手順となる。図２に示す行分割処理のＳ２０１からＳ２０７、Ｓ２１０の処理は、実施形態１の場合と同じであり、その説明を省略する。
【００７３】
実施形態２では、縦倍角文字を追加した３種類の文字属性に対応する文字を含む原稿をスキャンして得られたスキャン画像に対する行分割処理について説明した。文字属性の縦倍角文字の代わりに文字属性の通常文字とは異なる特徴（大きさ）の文字の文字属性に対応する文字を含む原稿をスキャンして得られたスキャン画像に対する行分割処理としてもよい。
【００７４】
例えば、図２のＳ２０８において、ＣＰＵ１１１は、文字高さの最頻値Ｈを導出する際に、文字高さ情報を用いて文字高さの頻度グラフを作成する。ＣＰＵ１１１は、作成した頻度グラフにピークが複数存在する場合、例えば、文字属性をピーク数に応じて第二最頻文字、第三最頻文字などと定義ためのピーク値を導出する。縦倍角文字の判定処理Ｓ９０９を第二最頻文字、第三最頻文字を判定するための特殊文字の判定処理とする。Ｓ９０９の判定結果の処理を、判定結果に応じて文字属性を第二最頻文字または第三最頻文字に設定するか、文字属性を設定しない処理とする。
【００７５】
そして、位置Ｐでの縦倍角文字の存在判定処理Ｓ１００７を、位置Ｐでの第二最頻文字、第三最頻文字の、文字の存在判定処理とする。位置Ｐに第二最頻文字、第三最頻文字の文字が存在すると判定された場合には、分割位置をＳ１００７で判定した判定結果に応じて第二最頻文字、第三最頻文字の特徴文字の最下位置にて行分割を実行する。特徴文字が存在しないと判定された場合には、処理をＳ１００９へ移行する。Ｓ１００８にて、処理をＳ１００３へ移行する。このように、原稿に特徴文字を含んでいる場合でも、適切に設定した分割位置にて行分割を実行することができる。
【００７６】
以上、説明したとおり、本実施形態によれば、文字サイズの異なる文字が複数存在する原稿、および行接触した行の割合が多い原稿において、異なるサイズの文字間で行接触している場合でも、より正確な行分割処理を実現することができる。その結果、より正確なＯＣＲ精度を実現することができる。
【００７７】
（実施形態４）
本実施形態については、実施形態１との差分のみの説明とし、特に明記しない部分については実施形態１と同じ構成および手順となる。
【００７８】
実施形態２では、文字属性として縦倍角文字を追加することで、通常文字と縦倍角文字との行接触でも正確に行分割できる行分割処理について説明した。第二の行分割処理条件を変えることでより正確な行分割処理を実現できる。
【００７９】
図１１は、本実施形態に係る第二の行分割処理の手順例を示すフローチャートである。Ｓ１１０１からＳ１１０９の各処理は、図６のＳ６０１からＳ６０９の各処理と同じであり、その説明を省略する。すなわち、図１１は、図６に示すフローにＳ１１１０からＳ１１１４を追加したフローチャートとなっている。
【００８０】
Ｓ１１０７において、ＣＰＵ１１１は、黒画素数最少値（カウント値の最少値）Ｓが黒画素数平均値（カウント値の平均値）Ａ以上であるとの判定結果を得た場合（Ｓ１１０７のＮＯ）、処理をＳ１１１０へ移行する。ＣＰＵ１１１は、黒画素数最少値Ｓが黒画素数平均値Ａ未満であるとの判定結果を得た場合（Ｓ１１０７のＹＥＳ）、処理をＳ１１０８へ移行し、実施形態１と同様、Ｓ１１０８にて、位置Ｐで行分割処理を実行するかの判定を実行する。
【００８１】
Ｓ１１１０において、ＣＰＵ１１１は、Ｓ１１０５で特定した基準点からＳ２０８で取得した文字高さ最頻値Ｈだけ下へ進んだ位置を新たな基準点２を特定する。このとき、ＣＰＵ１１１は、基準点２の周辺の黒画素数を取得する。本実施形態において、上述の実施形態１と同様、基準点の周辺の大きさは、基準点から±２画素分に限定されない。基準点の周辺の大きさは、基準点から±１画素としたり、基準点から±２画素より大きくしたりしてもよい。
【００８２】
Ｓ１１１１において、ＣＰＵ１１１は、Ｓ１１１０の処理で特定した新たな基準点２から、行と垂直な方向にて±２画素分の黒画素数を比較して黒画素数が最少値Ｔとなる位置Ｑ（第２の位置）を分割位置８０４として特定する。なお、基準点の周辺の大きさは、基準点から±２画素分に限定されない。基準点の周辺の大きさは、基準点から±１画素としたり、基準点から±２画素より大きくしたりしてもよい。
【００８３】
Ｓ１１１２において、ＣＰＵ１１１は、Ｓ１１１１にて位置Ｑの特定に用いた黒画素数最少値ＴがＳ１１０４で導出した黒画素数平均値Ａより小さいか否かを判定する。ＣＰＵ１１１は、黒画素数最少値Ｔが黒画素数平均値Ａよりも小さい（黒画素数平均値Ａ未満である）との判定結果を得た場合（Ｓ１１１２のＹＥＳ）、処理をＳ１１１３へ移行する。ＣＰＵ１１１は、黒画素数最少値Ｔが黒画素数平均値Ａ以上であるとの判定結果を得た場合（Ｓ１１１２のＮＯ）、処理をＳ１１０１へ移行する。
【００８４】
Ｓ１１１３において、ＣＰＵ１１１は、Ｓ６０８の処理と同様、Ｓ１１１１で特定した位置Ｑで行分割処理を行った場合の、行分割後の行高さを導出する。すなわち、ＣＰＵ１１１は、Ｓ１１１１で特定した位置Ｑを分割位置として行分割を行った場合の、二値画像にて分割位置の下側の領域の高さであって、分割位置から行接触行の最下位置までの距離を導出する。そして、ＣＰＵ１１１は、導出した行分割後の行高さがＳ２０８で導出した文字高さ最頻値Ｈよりも大きいか否かを判定する。ＣＰＵ１１１は、導出した行分割後の行高さが文字高さ最頻値Ｈよりも大きいとの判定結果を得た場合（Ｓ１１１３のＹＥＳ）、処理をＳ１１１４へ移行する。ＣＰＵ１１１は、導出した行分割後の行高さが文字高さ最頻値Ｈ以下であるとの判定結果を得た場合（Ｓ１１１３のＮＯ）、処理をＳ１１０１へ移行する。
【００８５】
Ｓ１１１４において、ＣＰＵ１１１は、処理対象である二値画像８００に対してＳ１１１１で特定した位置Ｑにて行分割処理を実行する。この行接触行に対する行分割処理が第二の行分割処理に対応する。ＣＰＵ１１１は、第二の行分割処理を実施した後、処理をＳ１１０３へ移行する。
【００８６】
以上、説明したとおり、本実施形態によれば、文字サイズの異なる文字間で行接触している原稿や、および行接触した行の割合が多い原稿においても、文字属性を追加することなく、より正確な行分割処理を実現することができる。その結果、より正確なＯＣＲ精度を実現することができる。
【００８７】
（実施形態５）
本実施形態については、実施形態１との差分のみの説明とし、特に明記しない部分については実施形態１と同じ構成および手順となる。
【００８８】
実施形態１では、３行にわたり行接触が発生した行に対応する文字を含む文書の行分割処理について説明した。４行以上にわたって行接触が発生する行に対応する文字を含む文書の行分割処理としてもよい。
【００８９】
図１２は、本実施形態に係る行分割処理の手順例を示すフローチャートである。Ｓ１２０１からＳ１２１１の各処理は、実施形態１におけるＳ２０１からＳ２１１の各処理と同じであり、その説明を省略する。すなわち、図１２は、図２に示すフローにＳ１２１２およびＳ１２１３を追加したフローチャートとなっている。
【００９０】
ＣＰＵ１１１は、第二の行分割処理を行うＳ１２１１に続くＳ１２１２において、第三の行分割処理を実行する。第三の行分割処理は、第二の行分割処理と同じ手順である。第二の行分割処理では、行接触行の上端から基準点、および黒画素数が最少値となる位置を特定する。これに対し、第三の行分割処理では、行接触行の後尾位置（行下端位置）から基準点、および黒画素数が最少値となる位置を特定する。
【００９１】
Ｓ１２１３において、ＣＰＵ１１１は、第二の行分割処理結果と、第三の行分割処理結果を比較し、比較結果に応じて行分割結果を決定する処理を実行する。図１３は、本実施形態に係る行分割結果決定処理の手順例を示すフローチャートである。
【００９２】
Ｓ１３０１において、ＣＰＵ１１１は、Ｓ１２１１で特定した第二の行分割位置と、Ｓ１２１２で特定した第三の行分割位置を行ごとに比較する。
【００９３】
Ｓ１３０２において、ＣＰＵ１１１は、第二の行分割位置と第三の行分割位置が同じであるか否かを判定する。ＣＰＵ１１１は、第二の行分割位置と第三の行分割位置が同じであるとの判定結果を得た場合（Ｓ１３０２のＹＥＳ）、処理をＳ１３０３へ移行する。ＣＰＵ１１１は、分割位置にずれがあり、第二の行分割位置と第三の行分割位置が同じではないとの判定結果を得た場合（Ｓ１３０２のＮＯ）、処理をＳ１３０４へ移行する。
【００９４】
Ｓ１３０３において、ＣＰＵ１１１は、第二の行分割結果を最終的な行分割結果として採用する。これにより、行接触行に対する行分割処理は、第二の行分割処理で実行される行分割位置に確定される。
【００９５】
Ｓ１３０４において、ＣＰＵ１１１は、第二の行分割結果と第三の行分割結果のそれぞれに対して文字分割処理を実行し、続いてＯＣＲ処理を実行する。
【００９６】
更に、Ｓ１３０５において、ＣＰＵ１１１は、Ｓ１３０４で導出された各ＯＣＲ処理結果を用いて平均文字信頼度を導出し、導出した各平均文字信頼度を比較する。平均文字信頼度は、各行分割結果に対応する文字信頼度の平均値である。ＣＰＵ１１１は、第二の行分割結果に対応するＯＣＲ処理結果を用いて平均文字信頼度を導出する。ＣＰＵ１１１は、第三の行分割処理結果に対応するＯＣＲ処理結果を用いて平均文字信頼度を導出する。ＣＰＵ１１１は、導出した第二の行分割処理結果に対応する平均文字信頼度と、導出した第三の行分割処理結果に対応する平均文字信頼度とを比較する。
【００９７】
Ｓ１３０６において、ＯＣＲ処理結果が認識対象文字とＯＣＲ処理結果の文字との一致率が高いことを示す、平均文字信頼度の数値が低い行分割処理結果を最終的な行分割処理結果として採用する。これにより、行接触行に対する行分割処理は、平均文字信頼度に応じて採用された、第二の行分割処理または第三の行分割処理で実行される行分割位置に確定される。本実施形態では、行接触行全体の平均文字信頼度を比較した。行接触行内の各行の平均文字信頼度を導出して行ごとに比較し、より信頼度の良い方を採用しても良い。また同様に、文字ごとに文字信頼度を比較して、より信頼度の良い方を採用しても良い。
【００９８】
以上、説明したとおり、本実施形態によれば、行間が狭く、かつ、非常に多くの行にわたり行接触が発生している原稿、および行接触した行の割合が多い原稿においても、より正確な行分割処理を実現することができる。その結果、より正確なＯＣＲ精度を実現することができる。
【００９９】
図１４は、ＣＰＵ１１１がＲＯＭ１１２に格納されたプログラムを実行する際の、上述した実施形態１、２、３、４、５の情報処理装置１１０の機能ブロック構成図である。図示の各構成要素１４０１から１４０６は、プログラムを実行したＣＰＵ１１１が行うものであるが、これらの一部がハードウェアにより実現しても構わない。情報処理装置１１０は、行・文字情報取得部１４０１、文字高さ情報抽出部１４０２、文字接触判定部１４０３、行接触判定部１４０４、カウント値導出部１４０５、行分割部１４０６を有する。
【０１００】
行・文字情報取得部１４０１は、原稿を光学的に読み取ったスキャン画像を二値化して得た二値画像内における行単位の大きさと位置を示す行情報を取得する。また、行・文字情報取得部１４０１は、二値画像内における文字単位の大きさと位置を示す行情報を取得する。文字高さ情報抽出部１４０２は、文字情報から文字高さ情報を抽出して文字高さ情報を取得する。
【０１０１】
文字接触判定部１４０３は、文字高さ情報に基づき、文字が高さ方向で他の文字と接触するかどうかを判定する。行接触判定部１４０４は、行情報と文字接触判定部１４０３による判定結果に基づいて、注目する行が高さ方向で他の行と接触するかどうかを判定する。
【０１０２】
カウント値導出部１４０５は、行接触判定部１４０４により他の行と接触すると判定された注目する行において、当該注目する行における幅方向にて、黒画素の数をカウントしてカウント値を導出する。
【０１０３】
行分割部１４０６は、行接触判定部１４０４により他の行と接触すると判定された注目する行に対し、カウント値において注目する行の高さ方向で最少となる位置を行分割位置として行分割を実行する。
【０１０４】
［その他の実施形態］
上記では、行接触行の行上端位置より文字高さ最頻値だけ下へ進めた位置を基準点と決定し、基準点の周辺で行分割したときの分割位置の下側の領域の高さなどにて所定の条件を満たすときに基準点の周辺から基準に分割位置を特定する手法について説明した。分割位置の特定手法は、これに限定されない。行接触行の行下端位置より文字高さ最頻値だけ上へ進めた位置を基準点と決定し、基準点の周辺で行分割したときの分割位置の上側の領域の高さなどにて所定の条件を満たすときに基準点の周辺から基準に分割位置を特定する手法としてもよい。この場合、実施形態１、２、４の説明の上側を下側に変更するなど、上下方向を逆に読み替えて設定すればよい。
【０１０５】
上記では、スキャナ１０１で光学的に原稿を読み取る複写機１００を例に説明したが、このような機器に限定されない。例えば、光学的に原稿を読み取ることが可能なカメラと、情報処理装置１１０と通信可能な通信部とを備えた、スマートフォンやタブレットなどの携帯型の端末としてもよい。
【０１０６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０７】
１００  ・・・複写機
１１０  ・・・情報処理装置
８０１  ・・・射影画像（行方向の射影結果）
８０２  ・・・平均黒画素数
【図１】
2020201864.tif 000003
【図２】
2020201864.tif 000004
【図３】
2020201864.tif 000005
【図４】
2020201864.tif 000006
【図５】
2020201864.tif 000007
【図６】
2020201864.tif 000008
【図７】
2020201864.tif 000009
【図８】
2020201864.tif 000010
【図９】
2020201864.tif 000011
【図１０】
2020201864.tif 000012
【図１１】
2020201864.tif 000013
【図１２】
2020201864.tif 000014
【図１３】
2020201864.tif 000015
【図１４】
2020201864.tif 000016