文字の読み順を決定するための読み順決定装置、方法及びプログラム
【課題】認識されていなかった文字領域の追加による文字領域の修正に対して適用可能なコンピュータの演算処理により文字の読み順を決定する技術を提供する。
【解決手段】画像データから文字認識処理により抽出された文字情報が文字の読み順に並んだ文字情報のリストと、画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを用意する。そして、文字情報のリストへの文字情報の追加要求に応答して、行情報のリストから、追加される文字の文字領域を包含する行枠を取り出し、該行枠に包含される文字領域を有する文字情報を文字情報のリストから全て求め、上記行枠に対応する文字の並び方向に対する位置に従って並び替えて、新たな文字の読み順を決定する。
【解決手段】画像データから文字認識処理により抽出された文字情報が文字の読み順に並んだ文字情報のリストと、画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを用意する。そして、文字情報のリストへの文字情報の追加要求に応答して、行情報のリストから、追加される文字の文字領域を包含する行枠を取り出し、該行枠に包含される文字領域を有する文字情報を文字情報のリストから全て求め、上記行枠に対応する文字の並び方向に対する位置に従って並び替えて、新たな文字の読み順を決定する。
【発明の詳細な説明】
【技術分野】
【0001】
本願発明は、画像データから文字認識処理により抽出された文字の集合に対して文字の読み順をコンピュータの演算処理により決定する技術に関する。特に本願発明は、文字認識誤りを正すための修正がなされた後においても正しく文字の読み順を決定する技術に関する。
【背景技術】
【0002】
光学式文字読取装置(Optical Character Reader :OCR)によって取得されたテキスト・データに文字認識誤りがある場合、文字領域の修正に合わせて文字の読み順を編集する必要がある。ここで、文字認識の誤りが文字単位の認識ミスであり、文字領域の統合や分離によって修正される場合、新たな文字の読み順は修正前の文字領域に付与されている順番を利用してコンピュータの演算処理により決定できる。
【0003】
例えば特許文献1は、OCRの前処理として、処理対象の領域を所定の識別条件に従い分け、画像領域を設定、各領域に読み順の設定を行い、ユーザが領域を統合する修正を指示すると、新規作成領域と重なる修正前の複数の領域を探索し、検出される複数の領域の重なり面積の最も大きい領域に付与されていた読み順を新規統合領域の読み順として引き継ぐ技術を開示する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−225964号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1が開示する読み順の自動修正技術は、新規に作成される領域が修正前の領域と重なることを前提としている。そのため、上記自動修正技術をOCRによる文字認識の誤りの修正時における文字の読み順の修正に適用しても、文字抜けのように全く認識されていなかった領域を新たに追加するような修正が行われる場合には、手作業でテキスト順序を編集しなければならない。
【0006】
この発明は、上記の問題点を解決するためになされたものであって、認識されていなかった文字領域の追加による文字領域の修正に対して適用可能な、コンピュータの演算処理により文字の読み順を決定する技術を提供することを目的とする。また、本願発明は、文字領域の統合、分割、新規挿入の全ての修正に適用可能な、コンピュータの演算処理により文字の読み順を決定する技術を提供することを他の目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成する本願発明は、次のような、文字の読み順を決定するための読み順決定装置によって実現される。そのような読み順決定装置は、画像データから文字認識処理により抽出された各文字のテキスト・データ及び文字領域データからなる文字情報が文字の読み順に並んだリストである文字情報のリストを格納する文字情報格納部と、前記画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを格納する行情報格納部と、前記文字情報のリストへの文字情報の追加要求に応答して、前記行情報のリストから、追加された前記文字情報の文字領域データが示す領域を包含する行枠を有する行情報を検出する検出手段と、前記検出手段より検出された前記行情報の前記行枠に包含される領域を示す文字領域データの部分集合を、前記文字情報のリストから求める部分集合決定手段と、前記部分集合内の各文字領域データを、検出された前記行情報の前記文字の並び方向に対する位置に従って並び替える並び替え手段と、前記部分集合内の文字領域データの並び順に基づいて前記文字情報のリストを更新することにより、前記文字情報のリストにおける文字の読み順を決定する順序決定手段とを含む。
【0008】
前記読み順決定装置は更に、前記文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化すると共に最初の2つの文字領域データによって前記行枠候補における文字の並び方向を決定し、該文字の並び方向に前記現在の文字領域が存在しなくなるまで、前記行枠候補を前記現在の文字領域を更に包含する最小の行枠に拡張する行枠候補生成手段と、前記文字の並び方向に前記現在の文字領域が存在しなくなったことに応答して、現在の前記行枠候補を対応する前記文字の並び方向と共に行情報として前記行情報のリストに登録する行情報登録手段とを含んでよい。ここで、前記行枠候補生成手段は、前記文字の並び方向に前記現在の文字領域が存在しなくなったことに応答して、前記現在の文字領域を前記文字情報のリストの先頭として一連の処理を繰り返す。
【0009】
更に前記読み順決定装置は、現在の前記行枠候補又は前記行情報のリストに登録された過去の前記行枠候補のいずれかに前記現在の文字領域が包含されることを条件に、前記行枠候補生成手段により現在の前記行枠候補を拡張する代わりに、前記現在の文字領域を包含する前記行枠候補を対応する文字の並び方向に対して垂直かつ前記現在の文字領域の中心点を基準に分割し、分割した行枠候補を該行枠候補に包含される文字領域データに基づいて修正し、分割により包含されなくなった各文字領域に対し該文字領域を行枠とする行情報を生成する行枠候補修正手段を含んでもよい。
【0010】
あるいは前記読み順決定装置は、前記文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化すると共に最初の2つの文字領域データによって前記行枠候補における文字の並び方向を決定し、前記行枠候補を前記現在の文字領域を更に含む最小の行枠に拡張する拡張処理を一定の条件の下に実行する行枠候補生成手段と、前記行枠候補生成手段による前記拡張処理の実行前に、拡張によって生成されることになる行枠候補と前記文字並び方向とを基に文字の読み順が正しく決定されることを確認する確認部と、前記確認部による確認の失敗に応答して、現在の前記行枠候補を対応する前記文字の並び方向と共に行情報として前記行情報のリストに登録する行情報登録手段とを更に含んでもよい。ここで、前記行枠候補生成手段は、前記確認部による確認の成功を条件として前記拡張処理を実行し、前記確認が失敗した場合は、前記現在の文字領域を前記文字情報のリストの先頭として処理を繰り返す。
【0011】
上記目的を達成する本願発明はまた、次のような文字の読み順を決定するための読み順決定装置によっても実現される。そのような読み順決定装置は、文字の読み順を決定するための読み順決定装置であって、画像データから文字認識処理により抽出された各文字のテキスト・データ及び文字領域データからなる文字情報のリストである文字情報のリストを格納する文字情報格納部と、前記画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを格納する行情報格納部と、前記行情報のリストから行情報を読み出して、読み出した前記行情報の行枠に包含される領域を示す文字領域データの部分集合を、前記文字情報のリストから求める部分集合決定手段と、前記部分集合内の各文字領域データを、対応する前記行情報の前記文字の並び方向に対する位置に従って並び替える並び替え手段と、行情報ごとの並び替えられた前記文字領域データの部分集合を前記行の並びに順に繋ぎ合わせることにより、前記文字情報のリストにおける文字の読み順を決定する順序決定手段とを含む。
【0012】
以上、文字の読み順を決定するための読み順決定装置として本願発明を説明した。しかし本願発明は、そのような読み順決定装置によって実施される文字の読み順を決定するための読み順決定方法、及びそのような読み順決定装置としてのコンピュータによってインストールして実行される文字の読み順を決定するための読み順決定プログラムとして把握することもできる。
【発明の効果】
【0013】
本願発明では、画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを予め用意しておき、行枠内における文字の並び方向に従って行枠に包含される文字領域の文字の読み順を決定する。従って本願発明によれば、文字領域の統合、分割、新規挿入のいずれの修正が行われても、修正箇所を包含する行枠の文字並び方向に基づいて修正後の文字の読み順を決定できる。本願発明のその他の効果については、各実施の形態の記載から理解される。
【図面の簡単な説明】
【0014】
【図1】本願発明の実施の形態に係る読み順決定装置100(第1実施例)の機能構成の一例を示す。
【図2】(a)は、文字領域のフォーマットを説明する説明図を示す。(b)は、行情報のフォーマットを説明する説明図を示す。
【図3】文字画像データの一例を示す。
【図4】(a)乃至(d)はそれぞれ、圧縮プロセス(第1実施例)の各段階の説明図を示す。
【図5】(a)乃至(f)はそれぞれ、文字領域が新規追加された場合における解凍プロセス(第1実施例)の各段階の説明図を示す。
【図6】圧縮処理部120による処理(第1実施例)の全体の流れの一例を示す。
【図7】解凍処理部140による処理(第1実施例)の全体の流れの一例を示す。
【図8】本願発明の実施の形態に係る読み順決定装置800(第2実施例)の機能構成の一例を示す。
【図9】(a)は、文字画像データの他の一例を示す。(b)は、図9(a)に示す文字画像データに対応する行枠を示す。
【図10】解凍処理部840による処理(第2実施例)の全体の流れの一例を示す。
【図11】(a)乃至(c)はそれぞれ、処理対象の文字領域が既存の行枠に包含される場合における圧縮プロセスの各段階の説明図を示す。
【図12】本願発明の実施の形態に係る読み順決定装置1200(第3実施例)の機能構成の一例を示す。
【図13】(a)乃至(c)はそれぞれ、処理対象の文字領域が既存の行枠に包含される場合における改良された圧縮プロセス(第3実施例)の各段階の説明図を示す。
【図14】圧縮処理部1220による処理(第3実施例)の全体の流れの一例を示す。
【図15】図14に示すステップ1414の修正処理の流れの一例を示すフローチャートである。
【図16】本願発明の実施の形態に係る読み順決定装置1600(第4実施例)の機能構成の一例を示す。
【図17】(a)乃至(e)はそれぞれ、圧縮プロセス(第4実施例)の各段階の説明をする説明図を示す。
【図18】圧縮処理部1620による処理(第4実施例)の全体の流れの一例を示す。
【図19】本願発明の実施の形態に係る読み順決定装置を実現するのに好適な情報処理装置のハードウェア構成の一例を示す。
【発明を実施するための形態】
【0015】
以下、本願発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
【0016】
(第1実施例) 図1は、本願発明の第1実施例に係る読み順決定装置100の機能構成の一例を示す。読み順決定装置100は、スキャナにより電子データに変換された画像データを格納する画像データ格納部110と、画像データからOCRによって抽出された文字情報のリストを格納する文字情報格納部115と、文字情報のリストから行情報を生成する圧縮処理部120と、生成された行情報を格納する行情報格納部135と、画像データと文字情報とを対比可能に表示し、OCRによる文字認識処理の結果をユーザに修正させる修正部105と、行情報を用いて文字情報格納部115に格納される文字情報の集合の文字の読み順を決定する解凍処理部140とを含む。なお、画像データ格納部110と修正部105は読み順決定装置100の外に設け、読み順決定装置100は修正部105から修正結果を受け取るように構成してもよい。そして読み順決定装置100は、受け取った修正結果に基づいて文字情報格納部115に格納される文字情報のリストを更新するように構成してもよい。
【0017】
画像データ格納部110が格納する画像データは、文字を含む画像データである。その格納単位は、任意の文書の1頁分ごとの画像データであっても、或いは任意の文書の1頁内のまとまりある領域ごとの画像データであってもよい。以下では、画像データは文書の1頁ごとの画像データであるとして説明する。
【0018】
文字情報格納部115が格納する各文字情報は、画像データに含まれる各文字のテキスト・データ及び文字領域データを含む。ここで図2(a)を参照して文字領域データのフォーマットを説明する。まず文字T208が含まれる頁200の左上隅を原点202とし、頁200の上端をX軸204(水平軸)、左端をY軸206(垂直軸)として定める。するとほとんど全ての文字はX軸204又はY軸206に沿って並んでいると考えることができるので、上記のように定義した座標内において、文字T208を囲む矩形の文字領域210は、左上隅の座標(x、y)と、文字領域210の幅wと、文字領域210の高さhとによって表すことができる。当然ながら文字領域データのフォーマットはこれに限定されず、矩形の全頂点の座標など等価な情報を含む他のフォーマットを利用してもよい。なお、本願の図面に示される全ての文字Tは、任意の言語の文字を示すことに留意されたい。また、本願の図に表された全ての座標は、上記説明した座標と同様にして定義されたものとする。
【0019】
文字情報格納部115は、上記のように表される文字情報が文字の読み順にリストされた文字情報のリストを格納する。上述したようにこのような文字情報のリストは、OCRによる文字認識処理の結果として取得できる。以下に、一例として文字情報のデータ構造Symbolと文字情報のリストのデータ構造Pageとを示す。
calss Symbol {
char character;
int x, y, width, height;
}
class Page{
Symbol[] symbols;
}
【0020】
圧縮処理部120は、文字情報格納部115から文字情報のリストを読み出して行情報のリストを生成し、行情報格納部135に格納する。ここで行情報とは、画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる情報をいう。本発明ではこのような行情報を導入し、行の並び順にリストされた行情報のリストを予め用意しておくことで、後に文字情報のリストが修正された場合でも正しく文字の読み順を決定することを可能とする。
【0021】
ここで図2(b)を参照して行情報のフォーマットを説明する。図2(b)では簡単のため、同一方向に連続して並ぶ文字をT1222とT2226の2つとしている。これら2つの文字を囲む行枠228は、文字T1222の文字領域220と文字T2226の文字領域224とを囲む最小の矩形として定義される。従って行枠228は、図2(b)に示す座標内において、行枠の左上隅の座標(x、y)と、行枠の幅wと、行枠の高さhとによって表すことができる。また行枠内における文字の並び方向dは、X軸216又はY軸218のいずれか一方の方向を示す。なお、2以上の文字が同一方向に連続して並ばない場合、1つの文字の文字領域をそのまま行枠とし、文字の並び方向に関する情報のない行情報を生成する。以下では、このように1文字領域からなる行枠を単文字行枠と呼ぶ。当然ながら行枠のフォーマットはこれに限定されず、矩形の全頂点の座標など等価な情報を含む他のフォーマットを利用してもよい。なお本願発明では、ある文字領域に他の文字領域が完全に含まれることはないものとする。
【0022】
行情報格納部135は、上記のように表される行情報が行の並び順にリストされた行情報のリストを格納する。以下に、一例として行情報のデータ構造Lineと行情報のリストのデータ構造Orderとを示す。
calss Line {
int x, y, width, height;
int dx, dy
}
class Order{
Line[] lines;
}
【0023】
圧縮処理部120は、より具体的には、行枠候補生成部125と行情報登録部130とを含む。行枠候補生成部125は、文字情報格納部115に格納される文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化する。行枠候補生成部125はまた、最初の2つの文字領域データによって行枠候補における文字の並び方向を決定する。そして行枠候補生成部125は、決定した文字の並び方向に現在の文字領域が存在しなくなるまで、行枠候補を現在の文字領域を更に包含する最小の行枠に拡張する。文字の並び方向に現在の文字領域が存在しなくなると、行枠候補生成部125は、現在の文字領域を文字情報のリストの先頭の文字領域データとして、上記一連の処理を繰り返す。
【0024】
行情報登録部130は、圧縮処理の開始時に行情報のリストを用意し、これをnullで初期化する。行情報登録部130はまた、行枠候補生成部125による上記処理において、文字の並び方向に現在の文字領域が存在しないことが検知されるたびに、現在の行枠候補を対応する文字の並び方向と共に行情報として行情報のリストの最後尾に登録し、行情報格納135に格納する。
【0025】
ここで図3乃至図4を参照して、行枠候補生成部125及び行情報登録部130による圧縮処理の概要を説明する。図3は、2行からなる文字集合の画像データ300を示す。図4は、圧縮プロセスの各段階を示す。処理の開始時において、文字情報格納部115には画像データ300から抽出された文字情報のリストが格納されており、行情報格納部135には空の行情報のリストが格納されているものとする。なお、上述したように図3においてTm(mは1から18までの任意の整数)は任意の言語の文字を示す。また、図3においてTmを囲む矩形はTmの文字領域を示し、Tmの真上又は真下にある数字はTmに付与された文字の読み順(文字情報のリストのリスト順)を示す。
【0026】
まず、行枠候補生成部125は、文字情報のリストから最初に読み出したT1の文字情報の文字領域データで行枠候補400を初期化する(図4(a)を参照)。続いて行枠候補生成部125は、現在の行枠候補400を、次に読み出した2番目のT2の文字情報の文字領域データを更に含む最小の矩形に拡張し、現在の行枠候補402とする(図4(b)を参照)。このとき行枠候補生成部125は、1番目と2番目に読み出したT1とT2の文字情報の文字領域データに基づき、行枠候補402内における文字の並び方向403を決定する(図4(b)を参照)。
【0027】
続いて行枠候補生成部125は、決定した文字の並び方向403に現在の文字領域が存在しなくなるまで、行枠候補403を現在の文字領域を更に包含する最小の行枠に順次拡張し、行枠候補404を得る(図4(c)を参照)。続いて行枠候補生成部125は、次の文字情報、即ちT10の文字領域データを現在の文字領域として読み出し、T10の文字領域データが文字の並び方向403の方向とは異なる方向406にあることを検出する(図4(c)の矢印406を参照)。
【0028】
上記検出は行枠候補生成部125から行情報登録部130へ伝えられ、行情報登録部130は、現在の行枠候補404と対応する文字の並び方向403を行情報として、行情報格納部135の行情報のリストに登録する。行枠候補生成部125また、T10の文字領域データを文字情報のリストの先頭の文字領域データとみなして、文字情報のリストに文字情報がなくなるまで図4(a)乃至図4(d)までの処理と同様の処理を繰り返す(図4(d)を参照)。処理の終わりと同時に行情報のリストが完成する。
【0029】
修正部105は、画像データ格納部110と文字情報格納部115から、それぞれ文字情報と対応する画像データとを読み出して図示しないディスプレイ等の出力部に出力し、ユーザがオリジナルの画像とOCRによる文字認識結果との比較により文字認識の誤りの有無を確認することを可能とする。修正部105はまた、ユーザが文字認識の誤りを見つけた場合に、ユーザから図示しないキーボード等の入力部を介して文字情報の修正の指示を受け取る。
【0030】
ここで文字認識の誤りの修正は、文字領域の統合、分割、及び挿入のうちのいずれかであってよい。修正が文字領域の統合及び分割の場合、修正の指示は、既存の文字情報の削除と、削除する文字情報に代わる文字情報の追加である。一方、修正が文字領域の挿入の場合、修正の指示は文字情報の追加である。
【0031】
従って文字情報の修正の指示が文字領域の統合、分割、挿入のいずれであっても、修正部105は、入力部を介してユーザから追加するべき文字のテキスト・データ及び対応する文字領域データを受け取る。修正部105は、受け取った文字情報を文字情報のリストの先頭又は最後尾に追加する。このため文字情報のリストに対し修正がなされた後は、後述する解凍処理部140によって文字の読み順を再度決定する必要がある。修正部105は、ユーザから受け取った追加すべき文字情報を文字情報のリストに追加することなく解凍処理部140に直接渡してもよい。
【0032】
なお、文字情報の修正の指示が文字領域の統合及び分割の場合は、追加すべき文字情報を統合又は分割のために文字情報のリストから削除すべき文字情報の位置に挿入すれば、文字の読み順の修正は不要である。一方、追加位置を常に文字情報のリストの先頭又は最後尾とすれば、或いは常に解凍処理部140へ直接渡すようにすれば、修正内容に応じて処理を変える必要がない。どちらの構成を採用するにしても、文字領域の挿入による修正に対しては、文字の読み順の修正が必要である。
【0033】
解凍処理部140は、文字情報のリストに対する修正要求に応答して、行情報のリストを用いて文字情報格納部115に格納される文字情報のリストの文字の読み順を決定する。上述したように、解凍処理部140は、修正部105から文字情報のリストの先頭又は最後尾への文字情報の追加の通知を受けてもよく、或いは修正部105から追加すべき文字情報そのものを受け取ってもよい。
【0034】
解凍処理部140は、より具体的には、検出部145と、部分集合決定部150と、並び替え部155と、順序決定部160とを含む。検出部145は、文字情報のリストへの文字情報の追加要求に応答して、行情報格納部135に格納される行情報のリストから、追加する文字情報の文字領域データが示す領域を包含する行枠を検出する。
【0035】
部分集合決定部150は、文字情報格納部115に格納される文字情報のリストから、検出部145により検出された行枠に包含される領域を示す全ての文字領域データからなる文字領域データの部分集合を求める。なお、追加する文字情報が解凍処理部140に直接渡される場合には、部分集合決定部150は追加する文字情報の文字領域データを、求めた文字領域データの部分集合に含める。
【0036】
並び替え部155は、部分集合決定部150により求められた部分集合内の各文字領域データを、検出された行枠に対応する文字の並び方向に対する位置に従って並び替える。より具体的には、並び替え部155は、部分集合内の各文字領域データを、検出された行枠に対応する文字の並び方向に対する各文字領域データの示す領域の中心点座標の位置に従って並び替える。
【0037】
順序決定部160は、並び替え部155により決定された部分集合についての文字領域データの並び順に従って、文字情報格納部115に格納される文字情報のリストを更新する。より具体的には、順序決定部160は、並び替え部155により決定された部分集合についての文字領域データの並び順により追加する文字情報の挿入位置を決定し、決定した挿入位置に追加する文字情報を挿入して文字情報のリストを更新する。結果、文字情報のリストにおける新たらしい文字の読み順が決定される。
【0038】
ここで図5を参照して、解凍処理部140の上記各構成要素による解凍処理の概要を説明する。図5は、解凍プロセスの各段階を示す。処理の開始において、文字情報格納部115には画像データ500から抽出されたT1、T2、T3、T4の文字情報を含む文字情報のリストが格納されているものとする(図5(a)参照)。また行情報格納部135には、T1、T2、T3、T4の文字領域を囲む最小の矩形である行枠502と、行枠502内における文字の並び方向503とからなる行情報を含む行情報のリストが格納されているものとする(図5(a)参照)。なお、図5(a)に示す画像データ500において各文字の真上に記載されている数字は、各文字に付与された文字の読み順(文字情報のリストのリスト順)を示す。
【0039】
このような状況で、文字認識の誤りを正すためにユーザが文字T3とT4の間に新たに文字TX504を挿入する修正を指示したとする(図5(b)参照)。上述したように、修正の指示としてユーザから入力される情報は、文字TX504のテキスト・データとその文字領域データのみである。そのため、文字情報のリストのどの位置に文字TX504を挿入すべきか不明であり、文字の読み順を改めて決定する必要がある。そこで検出部145はまず行情報のリストを検索して、追加された文字TX504の文字領域を包含する行枠502と対応する文字並び方向503とを取得する(図5(c)参照)。
【0040】
続いて部分集合決定部150は、検出部145により検出された行枠502に包含される領域を示す文字領域データを文字情報のリストから全て読み出す(図5(d)参照)。続いて並び替え部155は、部分集合決定部150により読み出された全文字領域データを、検出部145により検出された文字並び方向503に対する各文字領域データの中心座標の位置に従って並び替える(図5(e))。すると文字領域データの部分集合に対し文字の読み順が正しく決定され(図5(f))、結果として、文字TX504の文字情報を文字情報のリストに挿入する位置(文字T3とT4の間であり、リストの4番目の位置)が分かる。このように、追加文字の文字領域を含む行枠に関して文字の並び順を決定することによって、文字情報のリスト全体についての正しい文字の読み順を決定できる。
【0041】
次に図6及び図7を参照して、本願発明の第1実施例に係る読み順決定装置100による処理の流れを説明する。図6は、圧縮処理部120による圧縮処理の流れの一例を示すフローチャートである。図7は、解凍処理部140による解凍処理の流れの一例を示すフローチャートである。まず、図6を参照して、圧縮処理部120による圧縮処理の流れを説明する。
【0042】
図6において、圧縮処理はステップ600から開始し、行情報登録部130は、行情報を行の並び順に登録すべき行情報のリストLIST1を用意し、これにnullを設定して初期化する。また、行枠候補生成部125は、文字情報格納部115に格納される文字情報のリストから先頭の1文字目の文字領域Cを読み出してこれを行枠候補L1に設定すると共に、行枠候補L1に対応する文字の並び方向L2にnullを設定して、行情報の候補Lを初期化する(ステップ603)。
【0043】
続いて行枠候補生成部125は、文字情報格納部115に次の文字領域が存在するか否かを判定する(ステップ606)。文字情報のリストにリストされる全ての文字情報が読み出されている場合(ステップ606:NO)、制御は行枠候補生成部125から行情報登録部130へ移り、行情報登録部130は、現在の行情報の候補Lを行情報のリストLIST1に登録し、LIST1を出力する(ステップ609)。そして処理は終了する。
【0044】
一方、ステップ606において次の文字領域が存在する場合(ステップ606:YES)、行枠候補生成部125は、次の文字領域をNとする(ステップ612)。続いて行枠候補生成部125は、行枠候補L1と次の文字領域NとをそれぞれX軸及びY軸に射影し、X軸及びY軸のどちらに射影した場合も射影区間が重ならないか否かを判定する(ステップ615)。これは、隣の行の文字などX軸又はY軸に沿って並んでいない文字を同一の行枠に含むことを避けるためである。
【0045】
射影区間が重なる場合(ステップ615:NO)、行枠候補生成部125は、行枠候補L1の中心点(x1、y1)と次の文字領域Nの中心点(x2、y2)との座標の差(x1−x2、y1−y2)を求め、差の絶対値が大きな軸(max(|x1−x2|、|y1−y2|))の方向を指す単位ベクトルD((0,1)又は(1,0))を求める(ステップ618)。ここで次の文字領域Nが現在の1文字目の文字領域Cに続く2文字目の文字領域である場合、文字の並び方向L2にDを設定する。続いて行枠候補生成部125は、文字の並び方向L2と単位ベクトルDが等しいか否かを判定する(ステップ621)。
【0046】
文字の並び方向L2と単位ベクトルDが等しい場合(ステップ621:YES)、行枠候補生成部125は、行枠候補L1を行枠候補L1と次の文字領域Nを含む最小の矩形で置換する(ステップ624)。そして処理はステップ606に戻り、行枠候補生成部125は一連の処理を繰り返す。一方、文字の並び方向L2と単位ベクトルDが等しくない場合(ステップ621:NO)、制御は行枠候補生成部125から行情報登録部130へ移り、行情報登録部130は現在の行情報の候補Lを行情報のリストLIST1の最後尾に追加し、また、現在の次の文字領域Nを文字情報のリストの一文字目とみなすため、現在の1文字目の文字領域Cに設定する(ステップ627)。そして処理はステップ603へ戻り、行枠候補生成部125は一連の処理を繰り返す。
【0047】
次に、図7を参照して、解凍処理部140による解凍処理の流れを説明する。図7において、解凍処理はステップ700から開始し、検出部145は、文字情報のリストへの文字情報の追加に応答して、行情報格納135に格納される行情報のリストから、追加された文字情報の文字領域データが示す領域を包含する行枠と対応する文字の並び方向からなる行情報を検出する。続いて、部分集合決定部150は、検出部145から行情報を受け取り、該行情報の行枠に包含される領域を示す文字領域データの部分集合Mを、文字情報格納部115に格納される文字情報のリストから求める(ステップ702)。
【0048】
続いて並び替え部155は、部分集合決定部150から文字領域データの部分集合Mと行情報とを受け取り、部分集合Mを構成する各文字領域データを、受け取った行情報の文字の並び方向に対する各文字領域データの領域の位置に従って並び替える(ステップ704)。最後に順序決定部160は、文字領域データの部分集合Mについて決定された文字の並び順に基づいて、文字情報格納部115に格納される文字情報のリストを更新し、新たに文字の読み順を決定する(ステップ706)。そして処理は終了する。
【0049】
(第2実施例)上述した第1実施例では、解凍処理部140は、文字情報のリストに対する修正要求に応答して解凍処理を行い文字の読み順を決定する。しかしながら解凍処理部140による解凍処理は、文字情報のリストを文字情報格納部115から読み出すタイミングで行うようにしてもよい。そこで該構成を採用する場合を第2実施例として以下に説明する。
【0050】
図8は、本願発明の第2実施例に係る読み順決定装置800の機能構成の一例を示す。読み順決定装置800は、スキャナにより電子データに変換された画像データを格納する画像データ格納部810と、画像データからOCRによって抽出された文字情報のリストを格納する文字情報格納部815と、文字情報のリストから行情報を生成する圧縮処理部820と、生成された行情報を格納する行情報格納部835と、画像データと文字情報とを対比可能に表示し、OCRによる文字認識処理の結果をユーザに修正させる修正部805と、行情報を用いて文字情報格納部815に格納される文字情報の集合の文字の読み順を決定する解凍処理部840を含む。
【0051】
第2実施例に係る読み順決定装置800の上記各構成要素は、解凍処理部840を除いて第1実施例に係る読み順決定装置100の対応する構成要素と変わらないので、以下では解凍処理部840についてのみ説明をする。但し、第2実施例では、文字情報格納部815から文字情報のリストが読み出されるたびに解凍処理部840による解凍処理が行われ文字の読み順が決定されるので、文字情報格納部815に格納される文字情報のリストは必ずしも文字の読み順に並んでいなくてよい。第2実施例に係る解凍処理部840は、部分集合決定部845と、並び替え部850と、順序決定部855とを含む。
【0052】
部分集合決定部845は、文字情報格納部115からの文字情報のリストの読み出しに応答して、行情報格納835に格納される行情報のリストの先頭から順に行情報を読み出し、読み出した行情報の行枠に包含される領域を示す全ての文字領域データの部分集合を、文字情報格納部810に格納される文字情報のリストから求める。このとき部分集合決定部845は、求めた文字領域データの部分集合の中に、現在処理する行枠よりも先に読み出した行枠に対して求めた文字領域データの部分集合に含まれる文字領域データがあるか否かを確認する。そのような文字領域データがあった場合、部分集合決定部845は、現在の文字領域データの部分集合からその共通して含まれる文字領域データを削除する。かかる処理は、1つの文字領域が2つの行枠に含まれる場合における文字の読み順決定処理の不具合を解消するためである。
【0053】
ここで、図9を参照して、1つの文字領域が2つの行枠に含まれるケースを具体的に説明する。図9(a)は、文字T1からT6までの文字の集合900の画像データを示し、図9(b)は、文字の集合900に対応する行枠を示す。文字の添え字は文字の読み順を表している。図9(a)に示すように、2番目の文字T2の文字領域がY軸方向にずれてY軸に射影した場合に文字T1、T3のいずれの文字領域とも重ならないため、文字T1からT3に対応する行枠は、図9(b)に示すようにそれぞれ単文字行枠L1、T2、L3となっている。一方、文字T4からT6はX軸方向に連続して並んでいるため、対応する行枠は、文字T4からT6の文字領域を含む1つの行枠L4となっている。そして、その文字領域のずれにより、文字T2の文字領域は、本来含まれるべき行枠L2のみならず行枠L4にも含まれてしまっている。
【0054】
このような状況において行情報を用いて文字の読み順を決定すると、文字T2が2度登場する文字情報のリストが作成される。これを解決するには、行枠L4を用いて文字を並び替える際に、行枠L4に含まれる文字領域の集合から、先に処理した行枠L2にも共通して含まれる文字T2の文字領域を削除すればよい。そこで第2実施例に係る部分集合決定部845では、現在の処理対象である文字領域データの部分集合と先に求めた文字領域データの部分集合とに共通して含まれる文字領域データがあるか否かを判定し、共通して含まれる文字領域データがある場合はこれを現在の処理対象である文字領域データの部分集合から削除するようにした。部分集合決定部845により最終的に求められた行情報ごとの文字領域データの部分集合は、対応する行情報と共に後述する並び替え部850に渡される。
【0055】
並び替え部850は、行情報のリストにおける行の並び順で、部分集合決定部845から行情報と対応する文字領域データの部分集合とのペアを受け取る。そして並び替え850は、行情報ごと、対応する部分集合の各文字領域データを対応する文字の並び方向に対する位置に従って並び替える。より具体的には、並び替え部850は、部分集合内の各文字領域データを、対応する文字の並び方向に対する各文字領域データの示す領域の中心点座標の位置に従って並び替える。
【0056】
順序決定部855は、行情報のリストにおける行の並び順で、並び替え部850から行情報と対応する部分集合の並び替えられた文字領域データとを受け取る。そして順序決定部855は、行情報ごとの並び替えられた文字領域データの部分集合を行の並びに順に繋ぎ合わせて文字領域データのリストを作成し、該リストのリスト順を文字情報のリストについての文字の読み順として決定する。
【0057】
次に図10を参照して、解凍処理部840による解凍処理の流れを説明する。図10において、解凍処理はステップ1000から開始し、順序決定部855は、文字領域データを文字の読み順に登録するリストLIST2を用意し、これにnullを設定して初期化する。続いて制御は順序決定部855から部分集合決定部845へ移り、部分集合決定部845は、行情報格納835に格納されている行情報のリストからリスト順に行情報を読み出し、読み出すべき次の行情報が行情報のリストに存在するか否かを判定する(ステップ1002)。読み出すべき次の行情報が行情報のリストに存在しない場合(ステップ1002:NO)、制御は順序決定部855に戻り、順序決定部855は現在のリストLIST2を出力する。その後処理は終了する。
【0058】
一方、読み出すべき次の行情報が行情報のリストに存在する場合(ステップ1002:YES)、部分集合決定部845は、読み出した次の行情報の行枠に包含される領域を示す全ての文字領域データの部分集合Mを、文字情報格納部810に格納される文字情報のリストから求める(ステップ1006)。続いて部分集合決定部845は、求めた文字領域データの部分集合Mの中に、現在のリストLIST2に登録されている文字領域データが含まれているか否かを確認し、含まれている場合にはその共通して含まれる文字領域データを部分集合Mから削除する(ステップ1008)。上述したようにかかる処理は、1つの文字領域が2つの行枠に含まれる場合における文字の読み順決定処理の不具合を解消するためである。
【0059】
ステップ1008の処理の後、文字領域データの部分集合Mは対応する行情報と共に並び替え部850へ渡され、並び替え部850は、部分集合Mを構成する各文字領域データを、文字の並び方向に対する各文字領域データの領域の位置に従って並び替える(ステップ1010)。続いて順序決定部855は、並び替え部850によって並び替えられた文字領域データの部分集合MをリストLIST2の最後尾に追加する(ステップ1012)。その後処理はステップ1002へ戻り、一連の処理が繰り返される。
【0060】
(第3実施例)第2実施例に係る解凍処理に関連して説明した、1つの文字領域が2つの行枠に含まれるという問題は、任意の言語において起こり得るものである。これとは別に、ある文字領域が先に決定した行枠又は現在の行枠候補に含まれるという問題があり、これは日本語に特有の問題である。そこでこのような問題に対応した構成を第3実施例として以下に説明する。
【0061】
まず図11を参照して、その生成後に処理対象となった文字領域を含むこととなった行枠を使用して文字の読み順を決定した場合の不具合を説明する。図11(a)は、2桁の数字を含む縦書きの文字列「平成23年」の画像データ1100を示す。この画像データ1100から抽出された文字情報のリスト(リスト順は、「平」、「成」、「2」、「3」、「年」の順)に対し、第1実施例として説明した圧縮方法により行枠を作成することを考える。なお、数字「23」は、OCRによる文字認識処理において「2」と「3」の2文字として認識されることに留意されたい。また「3」の文字領域は「2」の文字領域よりも「成」の文字領域に近いことに留意されたい。すると文字情報のリストから「2」が読み出された時点で図11(b)に示す行枠候補1102が現在の行枠候補として決定される。続いて数字「3」が読み出され行枠候補の拡張が検討される。しかし図11(c)に示すように数字「3」は現在の行枠候補1102に既に包含されている。
【0062】
ここで仮に現在の行枠候補1102をこのまま行枠として採用するとする。すると解凍時において、行枠候補1102及び対応する文字の並び方向1104に基づいて文字の並び順を決定しようとすると、上述したように「3」の文字領域は「2」の文字領域よりも「成」の文字領域に近いため、「平」、「成」、「3」、「2」という順序で文字列が作成されてしまう。そこで第3実施例では、第1実施例に係る圧縮処理部120を改良して、ある文字領域が先に決定した行枠又は現在の行枠候補に含まれる場合に、当該ある文字を含まないよう先に決定した行枠又は現在の行枠候補を修正するようにした。以下、図12を参照して第3実施例に係る読み順決定装置1200を説明する。
【0063】
図12は、本願発明の第3実施例に係る読み順決定装置1200の機能構成の一例を示す。読み順決定装置1200は、スキャナにより電子データに変換された画像データを格納する画像データ格納部1210と、画像データからOCRによって抽出された文字情報のリストを格納する文字情報格納部1215と、文字情報のリストから行情報を生成する圧縮処理部1220と、生成された行情報を格納する行情報格納部1235と、画像データと文字情報とを対比可能に表示し、OCRによる文字認識処理の結果をユーザに修正させる修正部1205と、行情報を用いて文字情報格納部1215に格納される文字情報の集合の文字の読み順を決定する解凍処理部1240を含む。
【0064】
第3実施例に係る読み順決定装置1200の上記各構成要素は、圧縮処理部1220を除いて第1実施例に係る読み順決定装置100の対応する構成要素と変わらないので、以下では圧縮処理部1220についてのみ説明をする。なお、第3実施例において、解凍処理部1240の代わりに第2実施例に係る解凍処理部840を採用してもよいことは言うまでもない。第3実施例に係る圧縮処理部1220は、行枠候補生成1225と、行枠候補修正部1227と、行情報登録部1230とを含む。
【0065】
行枠候補生成1225は、文字情報格納部1215に格納される文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化する。行枠候補生成部1225はまた、最初の2つの文字領域データによって行枠候補における文字の並び方向を決定する。そして行枠候補生成部1225は、決定した文字の並び方向に現在の文字領域が存在しなくなるまで、行枠候補を現在の文字領域を更に包含する最小の行枠に拡張する。
【0066】
但し第3実施例では、行枠候補生成1225は、現在の文字領域が現在の行枠候補又は過去に行枠として決定された行枠候補のいずれかに包含される場合には、拡張処理を行うことなく後述する行枠候補修正部1227を呼び出してその修正処理の結果の一部を取得する。行枠候補修正部1227から修正結果の一部を受け取った場合、行枠候補生成部1225は、受け取った一部の修正結果で行枠候補を初期化して上記一連の処理を繰り返す。行枠候補生成部1225はまた、文字の並び方向に現在の文字領域が存在しなくなった場合、現在の文字領域を文字情報のリストの先頭の文字領域データとみなして、上記一連の処理を繰り返す。
【0067】
行枠候補修正部1227は、行枠候補生成部1225からの呼び出しに応答して、現在の文字領域を包含する行枠候補(現在の行枠候補又は過去に行枠として決定された行枠候補)に対して以下の修正処理1〜3を行う。即ち、行枠候補修正部1227は、修正対象の行枠候補を、対応する文字の並び方向に対して垂直かつ現在の文字領域の中心点を基準に分割する(修正処理1)。続いて行枠候補修正部1227は、分割により生成された2つの行枠候補のうち少なくとも1つの文字領域を包含する行枠候補を、包含する全ての文字領域を囲む最小の矩形に修正する(修正処理2)。続いて行枠候補修正部1227は、分割により分割後の2つの行枠候補のいずれにも包含されなくなった文字領域、および、現在の文字領域の各々に対して単文字行枠を生成する(修正処理3)。
【0068】
上記修正処理2または修正処理3において得られた1以上の行枠候補は、現在の文字領域を包含する修正対象の行枠候補が現在の行枠候補である場合、行枠候補修正部1227により、行情報格納部1235に格納される行情報のリストの最後尾に登録される。一方、現在の文字領域を包含する修正対象の行枠候補が過去に行枠として決定された行枠候補である場合、修正処理2または修正処理3において得られた1以上の行枠候補は、行枠候補修正部1227により、行情報格納部1235に格納される行情報のリスト上の上記過去に行枠として決定された行枠候補と置換される。
【0069】
また、上記行情報格納部1235への登録または置換において、修正処理2または修正処理3において得られた1以上の行枠候補の順序は、以下のとおりとする。現在の文字領域からなる単文字行枠を最後尾とする。その他の行枠候補については、分割前の行枠によって得られる文字の順序に矛盾しない順序とする。
【0070】
ここで図13を参照して、行枠候補修正部1227による上記修正処理1〜3を具体的に説明する。なお、行枠候補修正部1227は、図11を参照して説明した文字列「平成23年」の画像データ1100から抽出された文字情報のリストを基に行情報を作成する行枠候補生成部1225により呼び出されて処理を開始するものとする。また、呼び出し時点において行枠候補生成部1225は、図11(b)に示す行枠1102を現在の行枠候補として生成しており、図11(c)に示すように現在の文字領域1106が、現在の行枠候補である行枠1102に包含されることを検出しているとする。
【0071】
図13(a)は、行枠候補修正部1227による修正処理1を示す。図11(c)に示す修正対象の行枠1102は、対応する文字の並び方向1104に対して垂直かつ現在の文字領域1106の中心点を基準に分割され、図13(a)に示すように2つの行枠1300と1302とが生成される。図13(b)は、行枠候補修正部1227による修正処理2を示す。図13(b)では、分割により生成された2つの行枠1300と1302のうち、「平」と「成」の2つの文字領域を包含する行枠1300が、包含する「平」と「成」の2つの文字領域を囲む最小の矩形である行枠1304に修正される。図13(c)は、行枠候補修正部1227による修正処理3を示す。図13(c)では、分割により分割後のいずれの行枠1300と1302にも包含されなくなった「2」と「3」の2つの文字領域(図13(a)参照)の各々に対し、単文字行枠1306、1308が生成されている。
【0072】
図12に戻って、行情報登録部1230は、圧縮処理の開始時に行情報のリストを行情報格納部1235に用意し、これをnullで初期化する。行情報登録部1230はまた、行枠候補生成部1225による拡張処理において、文字の並び方向に現在の文字領域が存在しないことが検知されるたびに、現在の行枠候補を対応する文字の並び方向と共に行情報として行情報格納部1235に格納される行情報のリストの最後尾に登録する。
【0073】
次に図14及び図15を参照して、第3実施例に係る圧縮処理部1220による圧縮処理の流れを説明する。図14は、第3実施例に係る圧縮処理部1220による圧縮処理の流れの一例を示すフローチャートである。図15は、図14に示すステップ1414の修正処理の流れの一例を示すフローチャートである。なお図15に示すフローチャートは、四角1450で囲んだ部分の処理が新たに追加されたことを除いては、図6に示す第1実施例に係る圧縮処理部120による圧縮処理のフローチャートと同じである。そこで以下では、四角1450で囲んだ新たに追加されたステップについてのみ説明する。
【0074】
ステップ1413の処理は、図6に示すフローチャートのステップ612に対応するステップ1412の直後に行われ、行枠候補生成部1225は、文字情報のリストから読み出した次の文字領域Nが、現在の行枠候補L1又は現在の行情報のリストLIST1に行枠として登録されている過去の行枠候補のいずれかに包含されるか否かを判定する。次の文字領域Nがいずれの行枠候補にも包含されない場合(ステップ1413:NO)、処理は図6に示すフローチャートのステップ615に対応するステップ1415へ進む。一方、次の文字領域Nがいずれかの行枠候補に包含される場合(ステップ1413:YES)、処理はステップ1414へ進み、行枠候補修正部1227は、次の文字領域Nを包含する現在の行枠候補L1又は過去の行枠候補を修正する修正処理を行う。修正処理の詳細は図15を参照して説明する。修正処理の後処理はステップ1406へ戻る。
【0075】
図15に示す行枠候補修正部1227による修正処理は、ステップ1500から開始し、行枠候補修正部1227は、文字領域Nの中心点を基準に、文字領域Nを包含する既存の行枠候補を該行枠候補に対応する文字の並び方向に対して垂直に分割する。続いて、行枠候補修正部1227は、分割後の2つの行枠候補のうち、1以上の文字領域を包含する行枠候補を該1以上の文字領域を囲む最小の行枠に修正する(ステップ1502)。行枠候補修正部1227はまた、分割によって分割後の2つの行枠候補のいずれにも包含されなくなった各文字領域に対し、該文字領域を行枠とする単文字行枠を生成する(ステップ1504)。
【0076】
続いて行枠候補修正部1227は、ステップ1502において修正した分割後の行枠候補と、あれば、ステップ1504において生成した単文字行枠(文字領域Nから生成した単文字行枠を除く)とで、行情報のリストLIST1を更新する(ステップ1506)。続いて行枠候補修正部1227は、ステップ1504において文字領域Nから生成した単文字行枠で行枠候補L1を更新する(ステップ1508)。そして処理は終了する。
【0077】
(第4実施例)第3実施例に関して説明した、ある文字領域が先に決定した行枠又は現在の行枠候補に包含されるという問題は、第3実施例の構成とは異なるもう1つの構成を採用することによっても解決される。そこで以下ではそのようなもう1つの構成を第4実施例として説明する。
【0078】
第4実施例では、第1実施例に係る圧縮処理部120を改良して、行枠候補を現在の文字領域を更に含む最小の行枠に拡張する拡張処理を、拡張によって生成されることになる行枠候補と文字並び方向とを基に文字の読み順が正しく決定されることを条件として行うようにした。以下、図16を参照して、第4実施例に係る読み順決定装置1600を説明する。
【0079】
図16は、本願発明の第4実施例に係る読み順決定装置1600の機能構成の一例を示す。読み順決定装置1600は、スキャナにより電子データに変換された画像データを格納する画像データ格納部1610と、画像データからOCRによって抽出された文字情報のリストを格納する文字情報格納部1615と、文字情報のリストから行情報を生成する圧縮処理部1620と、生成された行情報を格納する行情報格納部1635と、画像データと文字情報とを対比可能に表示し、OCRによる文字認識処理の結果をユーザに修正させる修正部1605と、行情報を用いて文字情報格納部1615に格納される文字情報の集合の文字の読み順を決定する解凍処理部1640を含む。
【0080】
第4実施例に係る読み順決定装置1600の上記各構成要素は、圧縮処理部1620を除いて第1実施例に係る読み順決定装置100の対応する構成要素と変わらないので、以下では圧縮処理部1620についてのみ説明をする。なお、第4実施例において、解凍処理部1640の代わりに第2実施例に係る解凍処理部840を採用してもよいことは言うまでもない。第4実施例に係る圧縮処理部1620は、行枠候補生成1625と、確認部1627と、行情報登録部1630とを含む。
【0081】
行枠候補生成1625は、文字情報格納部1615に格納される文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化する。行枠候補生成部1625はまた、最初の2つの文字領域データによって行枠候補における文字の並び方向を決定する。そして行枠候補生成部1625は、行枠候補を現在の文字領域を更に包含する最小の行枠に拡張する拡張処理を一定の条件の下に実行する。ここで一定の条件とは、後述する確認部1627による確認が成功することをいい、行枠候補生成1625は、拡張処理前に確認部1627を呼び出して確認結果を受け取る。確認部1627による確認が成功した場合は、行枠候補生成1625は拡張処理を実行し、拡張後の行枠候補と次に読み出した現在の文字領域に対して確認結果が失敗となるまで繰り返し拡張処理を試みる。確認部1627による確認が失敗した場合は、行枠候補生成1625は、現在の文字領域を文字情報のリストの先頭とみなして上記一連の処理を繰り返す。
【0082】
確認部1627は、行枠候補生成部1625からの呼び出しに応答して、拡張によって生成されることになる行枠候補と対応する文字の並び方向とを基に文字の読み順が正しく決定されることを確認する。該確認は次のように行ってよい。確認部1627はまず、実際に拡張処理を実行して行枠候補を生成し、これを現在の文字の並び方向とともに仮の行情報の候補とする。続いて確認部1627は、仮の行情報の候補を用いて文字領域の並び替えを行い文字の読み順を決定する。最後に確認部1627は、決定した文字の読み順と文字情報のリストにおけるリスト順とを比較し、一致するか否かを判定する。一致する場合、確認部1627は確認の成功を行枠候補生成1625へ返し、一致しない場合、確認部1627は確認の失敗を行枠候補生成1625へ返す。
【0083】
行情報登録部1630は、圧縮処理の開始時に行情報のリストを行情報格納部1235に用意し、これをnullで初期化する。行情報登録部1630はまた、確認部1627による確認の失敗に応答して、現在の行枠候補を対応する文字の並び方向と共に行情報として行情報のリストの最後尾に登録する。
【0084】
ここで図17を参照して、確認部1627による確認処理の結果に基づく圧縮プロセスの各段階を説明する。処理の開始において、文字情報格納部1615には、図17(a)に示す文字列「平成23年」の画像データ1700から抽出された文字情報のリストが格納されているものとする。なお、図17(a)乃至(e)に示す画像データ1700は、図11(a)に示す画像データ1100と同じものである。まず、確認部1627により、仮の行情報の候補として行枠候補1702と文字の並び方向1704が検討されるところから開始するとする(図17(a)参照)。すると、仮の行情報の候補を使用して得られる文字の読み順(「平」、「成」の順)と文字情報のリストにおけるリスト順(「平」、「成」の順)が一致するため、行枠候補生成1625による拡張処理が実行され、仮の行情報が現在の行情報の候補として確定する。
【0085】
続いて確認部1627により、現在の行情報の候補が「2」の文字領域を含むように拡張され、仮の行情報の候補として行枠候補1706と文字の並び方向1704が検討される(図17(b)参照)。すると、仮の行情報の候補を使用して得られる文字の読み順(「平」、「成」、「3」、2」の順)と文字情報のリストにおけるリスト順(「平」、「成」、「2」、(「3」)の順)は一致しないため、行枠候補生成1625による拡張処理は実行されず、現在の行情報の候補が行情報として行情報のリストの最後尾に登録される(図17(c)の行枠1708と文字の並び方向1710を参照)。また、現在の行情報の候補が「2」の文字領域で初期化される。
【0086】
続いて確認部1627により、上記「2」の文字領域で初期化された現在の行情報の候補が「3」の文字領域を含むように拡張され、仮の行情報の候補として行枠候補1712と文字の並び方向1714が検討される(図17(c)参照)。すると、仮の行情報の候補を使用して得られる文字の読み順(「2」、「3」の順)と文字情報のリストにおけるリスト順(「2」、「3」の順)が一致するため、行枠候補生成1625による拡張処理が実行され、仮の行情報が現在の行情報の候補として確定する。
【0087】
続いて確認部1627により、現在の行情報の候補が「年」の文字領域を含むように拡張され、仮の行情報の候補として行枠候補1716と文字の並び方向1714が検討される(図17(d)参照)。すると、仮の行情報の候補を使用して得られる文字の読み順(「2」、「年」、「3」の順)と文字情報のリストにおけるリスト順(「2」、「3」、年」の順)は一致しないため、行枠候補生成1625による拡張処理は実行されず、現在の行情報の候補が行情報として行情報のリストの最後尾に登録される(図17(e)の行枠1720と文字の並び方向1718を参照)。また、現在の行情報の候補が「年」の文字領域で初期化される。このように第4実施例では、正しい文字の読み順が決定されることを条件に拡張処理が行われる。
【0088】
次に図18を参照して、第4実施例に係る圧縮処理部1620による圧縮処理の流れを説明する。図18は、第4実施例に係る圧縮処理部1620による圧縮処理の流れの一例を示すフローチャートである。
【0089】
図18に示す圧縮処理はステップ1800から開始し、行情報登録部1630は、行情報を行の並び順に登録すべき行情報のリストLIST1を用意し、これにnullを設定して初期化する。また、行枠候補生成部1625は、文字情報格納部1615に格納される文字情報のリストから先頭の1文字目の文字領域Cを読み出してこれを行枠候補L1に設定すると共に、行枠候補L1に対応する文字の並び方向L2にnullを設定して、行情報の候補Lを初期化する(ステップ1802)。
【0090】
続いて行枠候補生成部1625は、文字情報格納部1615に次の文字領域が存在するか否かを判定する(ステップ1804)。文字情報のリストに次の文字領域が存在する場合(ステップ1804:YES)、次の文字領域をNとし、行枠候補L1の中心点(x1、y1)と次の文字領域Nの中心点(x2、y2)との差の絶対値が大きな軸(max(|x1−x2|、|y1−y2|))の方向を指す単位ベクトル((0,1)又は(1,0))を文字の並び方向Dとして決定して、文字の並び方向L2に設定する(ステップ1806)。
【0091】
ステップ1806の後行枠候補生成部1625は確認部1627を呼び出し、確認部1627は、行枠候補L1と次の文字領域Nを含む最小の矩形を仮の行枠候補L‘1、及び文字の並び方向L2を仮の文字の並び方向L‘2として仮の行情報の候補L’を生成する(ステップ1808)。そして確認部1627は、仮の行情報の候補L’を次の行枠として、図10に示すフローチャートの四角1050で囲んだサブルーチンを実行し、実行結果の文字領域の並びが、現在の1文字目の文字領域Cから次の文字領域Nまでの文字情報のリストにおけるリスト順に一致するか否かを判定する(ステップ1808)。
【0092】
実行結果の文字領域の並びが文字情報のリストにおけるリスト順に一致しない場合(ステップ1808:NO)、処理はステップ1818へ進み、行情報登録部1630は現在の行情報の候補Lを行情報のリストLIST1の最後尾に追加する。また、行情報登録部1630は現在の次の文字領域Nを、文字情報のリストの一文字目とみなすために、現在の1文字目の文字領域Cに設定する。そして処理はステップ1802へ戻り、行枠候補生成部1625は一連の処理を繰り返す。
【0093】
一方、実行結果の文字領域の並びが文字情報のリストにおけるリスト順に一致する場合(ステップ1808:YES)、行枠候補生成部1625は文字情報のリストに次の文字領域が存在するか否かを判定し(ステップ1810)、次の文字領域が存在する場合(ステップ1810:YES)、該次の文字領域を現在の次の文字領域Nとすると共に、仮の行情報の候補L’を現在の行情報の候補Lとして確定する(ステップ1812)。そして処理はステップ1808へ戻り、確認部1627と行枠候補生成部1625は一連の処理を繰り返す。
【0094】
一方、ステップ1810において次の文字領域が存在しない場合、行枠候補生成部1625は仮の行情報の候補L’を現在の行情報の候補Lとして確定する(ステップ1814)。ステップ1814から、又は、ステップ1804において文字情報のリストにリストされる全ての文字情報が読み出されている場合、処理はステップ1816へ進み、行情報登録部1630は、現在の行情報の候補Lを行情報のリストLIST1の最後尾に登録し、LIST1を出力する。そして処理は終了する。
【0095】
図19は、本願発明の任意の実施例に係る読み順決定装置としてのコンピュータ50のハードウェア構成の一例を示した図である。コンピュータ50は、バス2に接続されたメインCPU(中央処理装置)1とメインメモリ4を含んでいる。ハードディスク装置13、30、及びCD−ROM装置26、29、フレキシブル・ディスク装置20、MO装置28、DVD装置31のようなリムーバブル・ストレージ(記録メディアを交換可能な外部記憶システム)がフレキシブル・ディスクコントローラ19、IDEコントローラ25、SCSIコントローラ27などを経由してバス2へ接続されている。
【0096】
フレキシブル・ディスク、MO、CD−ROM、DVD−ROMのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置13、30、ROM14には、オペレーティング・システムと協働してCPU1に命令を与え、本願発明を実施するためのコンピュータ・プログラムのコードを記録することができる。即ち、上記説明した数々の記憶装置には、コンピュータ50にインストールされ、コンピュータ50を本願発明の任意の実施例に係る読み順決定装置として機能させる読み順決定プログラムや、行情報のリスト、文字情報のリストといったデータを記録することができる。
【0097】
上記読み順決定プログラムは、圧縮モジュールと、修正モジュールと、解凍モジュールとを含む。これらモジュールは、CPU1に働きかけて、コンピュータ50を、圧縮処理部120、820、1220、又は1620、修正部105、805、1205、又は1605、解凍処理部140、840、1240、1640としてそれぞれ機能させる。圧縮モジュールは、行枠候補生成モジュール、行枠情報登録モジュールとを含む。これらモジュールは、CPU1に働きかけて、コンピュータ50を、行枠候補生成部125、825、行情報登録部130、830としてそれぞれ機能させる。これに代えて、圧縮モジュールは、行枠候補生成モジュール、行枠候補修正モジュール、行枠情報登録モジュールとを含んでもよい。これらモジュールは、CPU1に働きかけて、コンピュータ50を、行枠候補生成部1225、行枠候補修正部1227、行情報登録部1230としてそれぞれ機能させる。或いは、圧縮モジュールは、行枠候補生成モジュール、確認モジュール、行枠情報登録モジュールとを含んでもよい。これらモジュールは、CPU1に働きかけて、コンピュータ50を、行枠候補生成部1625、確認部1627、行情報登録部1630としてそれぞれ機能させる。解凍モジュールは、検出モジュール、部分集合決定モジュール、並び替えモジュール、順序決定モジュールとを含む。これらモジュールは、CPU1に働きかけて、コンピュータ50を、検出部145、1245、1645、部分集合決定部150、1250、1650、並び替え部155、1255、1655、順序決定部160、1260、1660としてそれぞれ機能させる。これに代えて解凍モジュールは、部分集合決定モジュール、並び替えモジュール、順序決定モジュールとを含んでもよい。これらモジュールは、CPU1に働きかけて、コンピュータ50を、部分集合決定部845、並び替え部850、順序決定部855としてそれぞれ機能させる。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
【0098】
コンピュータ50は、キーボード/マウス・コントローラ5を経由して、キーボード6やマウス7のような入力デバイスからの入力を受ける。コンピュータ50は、オーディオコントローラ21を経由して、マイク24からの入力を受け、またスピーカー23から音声を出力する。コンピュータ50は、視覚データをユーザに提示するための表示装置11に、グラフィックスコントローラ10を経由して接続される。コンピュータ50は、ネットワーク・アダプタ18(イーサネット(登録商標)・カードやトークンリング・カード)等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
【0099】
以上の説明により、コンピュータ50は、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、又は、これらの組み合わせによって実現されることが容易に理解されるであろう。なお、上記説明した構成要素は例示であり、そのすべての構成要素が本願発明の必須構成要素となるわけではない。
【0100】
以上、実施形態を用いて本願発明の説明をしたが、本願発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更又は改良を加えることが可能であることが当業者に明らかである。従って、そのような変更又は改良を加えた形態も当然に本願発明の技術的範囲に含まれる。
【0101】
なお、特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り任意の順序で実現しうることに留意すべきである。また、前の処理の出力を後の処理で用いる場合でも、前の処理と後の処理の間に他の処理が入ることは可能である場合があること、又は間に他の処理が入るように記載されていても前の処理を後の処理の直前に行うよう変更することも可能である場合があることも留意されたい。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」、「続いて、」等を用いて説明したとしても、この順で実施することが必須であることを必ずしも意味するとは限らない。
【技術分野】
【0001】
本願発明は、画像データから文字認識処理により抽出された文字の集合に対して文字の読み順をコンピュータの演算処理により決定する技術に関する。特に本願発明は、文字認識誤りを正すための修正がなされた後においても正しく文字の読み順を決定する技術に関する。
【背景技術】
【0002】
光学式文字読取装置(Optical Character Reader :OCR)によって取得されたテキスト・データに文字認識誤りがある場合、文字領域の修正に合わせて文字の読み順を編集する必要がある。ここで、文字認識の誤りが文字単位の認識ミスであり、文字領域の統合や分離によって修正される場合、新たな文字の読み順は修正前の文字領域に付与されている順番を利用してコンピュータの演算処理により決定できる。
【0003】
例えば特許文献1は、OCRの前処理として、処理対象の領域を所定の識別条件に従い分け、画像領域を設定、各領域に読み順の設定を行い、ユーザが領域を統合する修正を指示すると、新規作成領域と重なる修正前の複数の領域を探索し、検出される複数の領域の重なり面積の最も大きい領域に付与されていた読み順を新規統合領域の読み順として引き継ぐ技術を開示する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−225964号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1が開示する読み順の自動修正技術は、新規に作成される領域が修正前の領域と重なることを前提としている。そのため、上記自動修正技術をOCRによる文字認識の誤りの修正時における文字の読み順の修正に適用しても、文字抜けのように全く認識されていなかった領域を新たに追加するような修正が行われる場合には、手作業でテキスト順序を編集しなければならない。
【0006】
この発明は、上記の問題点を解決するためになされたものであって、認識されていなかった文字領域の追加による文字領域の修正に対して適用可能な、コンピュータの演算処理により文字の読み順を決定する技術を提供することを目的とする。また、本願発明は、文字領域の統合、分割、新規挿入の全ての修正に適用可能な、コンピュータの演算処理により文字の読み順を決定する技術を提供することを他の目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成する本願発明は、次のような、文字の読み順を決定するための読み順決定装置によって実現される。そのような読み順決定装置は、画像データから文字認識処理により抽出された各文字のテキスト・データ及び文字領域データからなる文字情報が文字の読み順に並んだリストである文字情報のリストを格納する文字情報格納部と、前記画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを格納する行情報格納部と、前記文字情報のリストへの文字情報の追加要求に応答して、前記行情報のリストから、追加された前記文字情報の文字領域データが示す領域を包含する行枠を有する行情報を検出する検出手段と、前記検出手段より検出された前記行情報の前記行枠に包含される領域を示す文字領域データの部分集合を、前記文字情報のリストから求める部分集合決定手段と、前記部分集合内の各文字領域データを、検出された前記行情報の前記文字の並び方向に対する位置に従って並び替える並び替え手段と、前記部分集合内の文字領域データの並び順に基づいて前記文字情報のリストを更新することにより、前記文字情報のリストにおける文字の読み順を決定する順序決定手段とを含む。
【0008】
前記読み順決定装置は更に、前記文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化すると共に最初の2つの文字領域データによって前記行枠候補における文字の並び方向を決定し、該文字の並び方向に前記現在の文字領域が存在しなくなるまで、前記行枠候補を前記現在の文字領域を更に包含する最小の行枠に拡張する行枠候補生成手段と、前記文字の並び方向に前記現在の文字領域が存在しなくなったことに応答して、現在の前記行枠候補を対応する前記文字の並び方向と共に行情報として前記行情報のリストに登録する行情報登録手段とを含んでよい。ここで、前記行枠候補生成手段は、前記文字の並び方向に前記現在の文字領域が存在しなくなったことに応答して、前記現在の文字領域を前記文字情報のリストの先頭として一連の処理を繰り返す。
【0009】
更に前記読み順決定装置は、現在の前記行枠候補又は前記行情報のリストに登録された過去の前記行枠候補のいずれかに前記現在の文字領域が包含されることを条件に、前記行枠候補生成手段により現在の前記行枠候補を拡張する代わりに、前記現在の文字領域を包含する前記行枠候補を対応する文字の並び方向に対して垂直かつ前記現在の文字領域の中心点を基準に分割し、分割した行枠候補を該行枠候補に包含される文字領域データに基づいて修正し、分割により包含されなくなった各文字領域に対し該文字領域を行枠とする行情報を生成する行枠候補修正手段を含んでもよい。
【0010】
あるいは前記読み順決定装置は、前記文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化すると共に最初の2つの文字領域データによって前記行枠候補における文字の並び方向を決定し、前記行枠候補を前記現在の文字領域を更に含む最小の行枠に拡張する拡張処理を一定の条件の下に実行する行枠候補生成手段と、前記行枠候補生成手段による前記拡張処理の実行前に、拡張によって生成されることになる行枠候補と前記文字並び方向とを基に文字の読み順が正しく決定されることを確認する確認部と、前記確認部による確認の失敗に応答して、現在の前記行枠候補を対応する前記文字の並び方向と共に行情報として前記行情報のリストに登録する行情報登録手段とを更に含んでもよい。ここで、前記行枠候補生成手段は、前記確認部による確認の成功を条件として前記拡張処理を実行し、前記確認が失敗した場合は、前記現在の文字領域を前記文字情報のリストの先頭として処理を繰り返す。
【0011】
上記目的を達成する本願発明はまた、次のような文字の読み順を決定するための読み順決定装置によっても実現される。そのような読み順決定装置は、文字の読み順を決定するための読み順決定装置であって、画像データから文字認識処理により抽出された各文字のテキスト・データ及び文字領域データからなる文字情報のリストである文字情報のリストを格納する文字情報格納部と、前記画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを格納する行情報格納部と、前記行情報のリストから行情報を読み出して、読み出した前記行情報の行枠に包含される領域を示す文字領域データの部分集合を、前記文字情報のリストから求める部分集合決定手段と、前記部分集合内の各文字領域データを、対応する前記行情報の前記文字の並び方向に対する位置に従って並び替える並び替え手段と、行情報ごとの並び替えられた前記文字領域データの部分集合を前記行の並びに順に繋ぎ合わせることにより、前記文字情報のリストにおける文字の読み順を決定する順序決定手段とを含む。
【0012】
以上、文字の読み順を決定するための読み順決定装置として本願発明を説明した。しかし本願発明は、そのような読み順決定装置によって実施される文字の読み順を決定するための読み順決定方法、及びそのような読み順決定装置としてのコンピュータによってインストールして実行される文字の読み順を決定するための読み順決定プログラムとして把握することもできる。
【発明の効果】
【0013】
本願発明では、画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを予め用意しておき、行枠内における文字の並び方向に従って行枠に包含される文字領域の文字の読み順を決定する。従って本願発明によれば、文字領域の統合、分割、新規挿入のいずれの修正が行われても、修正箇所を包含する行枠の文字並び方向に基づいて修正後の文字の読み順を決定できる。本願発明のその他の効果については、各実施の形態の記載から理解される。
【図面の簡単な説明】
【0014】
【図1】本願発明の実施の形態に係る読み順決定装置100(第1実施例)の機能構成の一例を示す。
【図2】(a)は、文字領域のフォーマットを説明する説明図を示す。(b)は、行情報のフォーマットを説明する説明図を示す。
【図3】文字画像データの一例を示す。
【図4】(a)乃至(d)はそれぞれ、圧縮プロセス(第1実施例)の各段階の説明図を示す。
【図5】(a)乃至(f)はそれぞれ、文字領域が新規追加された場合における解凍プロセス(第1実施例)の各段階の説明図を示す。
【図6】圧縮処理部120による処理(第1実施例)の全体の流れの一例を示す。
【図7】解凍処理部140による処理(第1実施例)の全体の流れの一例を示す。
【図8】本願発明の実施の形態に係る読み順決定装置800(第2実施例)の機能構成の一例を示す。
【図9】(a)は、文字画像データの他の一例を示す。(b)は、図9(a)に示す文字画像データに対応する行枠を示す。
【図10】解凍処理部840による処理(第2実施例)の全体の流れの一例を示す。
【図11】(a)乃至(c)はそれぞれ、処理対象の文字領域が既存の行枠に包含される場合における圧縮プロセスの各段階の説明図を示す。
【図12】本願発明の実施の形態に係る読み順決定装置1200(第3実施例)の機能構成の一例を示す。
【図13】(a)乃至(c)はそれぞれ、処理対象の文字領域が既存の行枠に包含される場合における改良された圧縮プロセス(第3実施例)の各段階の説明図を示す。
【図14】圧縮処理部1220による処理(第3実施例)の全体の流れの一例を示す。
【図15】図14に示すステップ1414の修正処理の流れの一例を示すフローチャートである。
【図16】本願発明の実施の形態に係る読み順決定装置1600(第4実施例)の機能構成の一例を示す。
【図17】(a)乃至(e)はそれぞれ、圧縮プロセス(第4実施例)の各段階の説明をする説明図を示す。
【図18】圧縮処理部1620による処理(第4実施例)の全体の流れの一例を示す。
【図19】本願発明の実施の形態に係る読み順決定装置を実現するのに好適な情報処理装置のハードウェア構成の一例を示す。
【発明を実施するための形態】
【0015】
以下、本願発明を実施するための最良の形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
【0016】
(第1実施例) 図1は、本願発明の第1実施例に係る読み順決定装置100の機能構成の一例を示す。読み順決定装置100は、スキャナにより電子データに変換された画像データを格納する画像データ格納部110と、画像データからOCRによって抽出された文字情報のリストを格納する文字情報格納部115と、文字情報のリストから行情報を生成する圧縮処理部120と、生成された行情報を格納する行情報格納部135と、画像データと文字情報とを対比可能に表示し、OCRによる文字認識処理の結果をユーザに修正させる修正部105と、行情報を用いて文字情報格納部115に格納される文字情報の集合の文字の読み順を決定する解凍処理部140とを含む。なお、画像データ格納部110と修正部105は読み順決定装置100の外に設け、読み順決定装置100は修正部105から修正結果を受け取るように構成してもよい。そして読み順決定装置100は、受け取った修正結果に基づいて文字情報格納部115に格納される文字情報のリストを更新するように構成してもよい。
【0017】
画像データ格納部110が格納する画像データは、文字を含む画像データである。その格納単位は、任意の文書の1頁分ごとの画像データであっても、或いは任意の文書の1頁内のまとまりある領域ごとの画像データであってもよい。以下では、画像データは文書の1頁ごとの画像データであるとして説明する。
【0018】
文字情報格納部115が格納する各文字情報は、画像データに含まれる各文字のテキスト・データ及び文字領域データを含む。ここで図2(a)を参照して文字領域データのフォーマットを説明する。まず文字T208が含まれる頁200の左上隅を原点202とし、頁200の上端をX軸204(水平軸)、左端をY軸206(垂直軸)として定める。するとほとんど全ての文字はX軸204又はY軸206に沿って並んでいると考えることができるので、上記のように定義した座標内において、文字T208を囲む矩形の文字領域210は、左上隅の座標(x、y)と、文字領域210の幅wと、文字領域210の高さhとによって表すことができる。当然ながら文字領域データのフォーマットはこれに限定されず、矩形の全頂点の座標など等価な情報を含む他のフォーマットを利用してもよい。なお、本願の図面に示される全ての文字Tは、任意の言語の文字を示すことに留意されたい。また、本願の図に表された全ての座標は、上記説明した座標と同様にして定義されたものとする。
【0019】
文字情報格納部115は、上記のように表される文字情報が文字の読み順にリストされた文字情報のリストを格納する。上述したようにこのような文字情報のリストは、OCRによる文字認識処理の結果として取得できる。以下に、一例として文字情報のデータ構造Symbolと文字情報のリストのデータ構造Pageとを示す。
calss Symbol {
char character;
int x, y, width, height;
}
class Page{
Symbol[] symbols;
}
【0020】
圧縮処理部120は、文字情報格納部115から文字情報のリストを読み出して行情報のリストを生成し、行情報格納部135に格納する。ここで行情報とは、画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる情報をいう。本発明ではこのような行情報を導入し、行の並び順にリストされた行情報のリストを予め用意しておくことで、後に文字情報のリストが修正された場合でも正しく文字の読み順を決定することを可能とする。
【0021】
ここで図2(b)を参照して行情報のフォーマットを説明する。図2(b)では簡単のため、同一方向に連続して並ぶ文字をT1222とT2226の2つとしている。これら2つの文字を囲む行枠228は、文字T1222の文字領域220と文字T2226の文字領域224とを囲む最小の矩形として定義される。従って行枠228は、図2(b)に示す座標内において、行枠の左上隅の座標(x、y)と、行枠の幅wと、行枠の高さhとによって表すことができる。また行枠内における文字の並び方向dは、X軸216又はY軸218のいずれか一方の方向を示す。なお、2以上の文字が同一方向に連続して並ばない場合、1つの文字の文字領域をそのまま行枠とし、文字の並び方向に関する情報のない行情報を生成する。以下では、このように1文字領域からなる行枠を単文字行枠と呼ぶ。当然ながら行枠のフォーマットはこれに限定されず、矩形の全頂点の座標など等価な情報を含む他のフォーマットを利用してもよい。なお本願発明では、ある文字領域に他の文字領域が完全に含まれることはないものとする。
【0022】
行情報格納部135は、上記のように表される行情報が行の並び順にリストされた行情報のリストを格納する。以下に、一例として行情報のデータ構造Lineと行情報のリストのデータ構造Orderとを示す。
calss Line {
int x, y, width, height;
int dx, dy
}
class Order{
Line[] lines;
}
【0023】
圧縮処理部120は、より具体的には、行枠候補生成部125と行情報登録部130とを含む。行枠候補生成部125は、文字情報格納部115に格納される文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化する。行枠候補生成部125はまた、最初の2つの文字領域データによって行枠候補における文字の並び方向を決定する。そして行枠候補生成部125は、決定した文字の並び方向に現在の文字領域が存在しなくなるまで、行枠候補を現在の文字領域を更に包含する最小の行枠に拡張する。文字の並び方向に現在の文字領域が存在しなくなると、行枠候補生成部125は、現在の文字領域を文字情報のリストの先頭の文字領域データとして、上記一連の処理を繰り返す。
【0024】
行情報登録部130は、圧縮処理の開始時に行情報のリストを用意し、これをnullで初期化する。行情報登録部130はまた、行枠候補生成部125による上記処理において、文字の並び方向に現在の文字領域が存在しないことが検知されるたびに、現在の行枠候補を対応する文字の並び方向と共に行情報として行情報のリストの最後尾に登録し、行情報格納135に格納する。
【0025】
ここで図3乃至図4を参照して、行枠候補生成部125及び行情報登録部130による圧縮処理の概要を説明する。図3は、2行からなる文字集合の画像データ300を示す。図4は、圧縮プロセスの各段階を示す。処理の開始時において、文字情報格納部115には画像データ300から抽出された文字情報のリストが格納されており、行情報格納部135には空の行情報のリストが格納されているものとする。なお、上述したように図3においてTm(mは1から18までの任意の整数)は任意の言語の文字を示す。また、図3においてTmを囲む矩形はTmの文字領域を示し、Tmの真上又は真下にある数字はTmに付与された文字の読み順(文字情報のリストのリスト順)を示す。
【0026】
まず、行枠候補生成部125は、文字情報のリストから最初に読み出したT1の文字情報の文字領域データで行枠候補400を初期化する(図4(a)を参照)。続いて行枠候補生成部125は、現在の行枠候補400を、次に読み出した2番目のT2の文字情報の文字領域データを更に含む最小の矩形に拡張し、現在の行枠候補402とする(図4(b)を参照)。このとき行枠候補生成部125は、1番目と2番目に読み出したT1とT2の文字情報の文字領域データに基づき、行枠候補402内における文字の並び方向403を決定する(図4(b)を参照)。
【0027】
続いて行枠候補生成部125は、決定した文字の並び方向403に現在の文字領域が存在しなくなるまで、行枠候補403を現在の文字領域を更に包含する最小の行枠に順次拡張し、行枠候補404を得る(図4(c)を参照)。続いて行枠候補生成部125は、次の文字情報、即ちT10の文字領域データを現在の文字領域として読み出し、T10の文字領域データが文字の並び方向403の方向とは異なる方向406にあることを検出する(図4(c)の矢印406を参照)。
【0028】
上記検出は行枠候補生成部125から行情報登録部130へ伝えられ、行情報登録部130は、現在の行枠候補404と対応する文字の並び方向403を行情報として、行情報格納部135の行情報のリストに登録する。行枠候補生成部125また、T10の文字領域データを文字情報のリストの先頭の文字領域データとみなして、文字情報のリストに文字情報がなくなるまで図4(a)乃至図4(d)までの処理と同様の処理を繰り返す(図4(d)を参照)。処理の終わりと同時に行情報のリストが完成する。
【0029】
修正部105は、画像データ格納部110と文字情報格納部115から、それぞれ文字情報と対応する画像データとを読み出して図示しないディスプレイ等の出力部に出力し、ユーザがオリジナルの画像とOCRによる文字認識結果との比較により文字認識の誤りの有無を確認することを可能とする。修正部105はまた、ユーザが文字認識の誤りを見つけた場合に、ユーザから図示しないキーボード等の入力部を介して文字情報の修正の指示を受け取る。
【0030】
ここで文字認識の誤りの修正は、文字領域の統合、分割、及び挿入のうちのいずれかであってよい。修正が文字領域の統合及び分割の場合、修正の指示は、既存の文字情報の削除と、削除する文字情報に代わる文字情報の追加である。一方、修正が文字領域の挿入の場合、修正の指示は文字情報の追加である。
【0031】
従って文字情報の修正の指示が文字領域の統合、分割、挿入のいずれであっても、修正部105は、入力部を介してユーザから追加するべき文字のテキスト・データ及び対応する文字領域データを受け取る。修正部105は、受け取った文字情報を文字情報のリストの先頭又は最後尾に追加する。このため文字情報のリストに対し修正がなされた後は、後述する解凍処理部140によって文字の読み順を再度決定する必要がある。修正部105は、ユーザから受け取った追加すべき文字情報を文字情報のリストに追加することなく解凍処理部140に直接渡してもよい。
【0032】
なお、文字情報の修正の指示が文字領域の統合及び分割の場合は、追加すべき文字情報を統合又は分割のために文字情報のリストから削除すべき文字情報の位置に挿入すれば、文字の読み順の修正は不要である。一方、追加位置を常に文字情報のリストの先頭又は最後尾とすれば、或いは常に解凍処理部140へ直接渡すようにすれば、修正内容に応じて処理を変える必要がない。どちらの構成を採用するにしても、文字領域の挿入による修正に対しては、文字の読み順の修正が必要である。
【0033】
解凍処理部140は、文字情報のリストに対する修正要求に応答して、行情報のリストを用いて文字情報格納部115に格納される文字情報のリストの文字の読み順を決定する。上述したように、解凍処理部140は、修正部105から文字情報のリストの先頭又は最後尾への文字情報の追加の通知を受けてもよく、或いは修正部105から追加すべき文字情報そのものを受け取ってもよい。
【0034】
解凍処理部140は、より具体的には、検出部145と、部分集合決定部150と、並び替え部155と、順序決定部160とを含む。検出部145は、文字情報のリストへの文字情報の追加要求に応答して、行情報格納部135に格納される行情報のリストから、追加する文字情報の文字領域データが示す領域を包含する行枠を検出する。
【0035】
部分集合決定部150は、文字情報格納部115に格納される文字情報のリストから、検出部145により検出された行枠に包含される領域を示す全ての文字領域データからなる文字領域データの部分集合を求める。なお、追加する文字情報が解凍処理部140に直接渡される場合には、部分集合決定部150は追加する文字情報の文字領域データを、求めた文字領域データの部分集合に含める。
【0036】
並び替え部155は、部分集合決定部150により求められた部分集合内の各文字領域データを、検出された行枠に対応する文字の並び方向に対する位置に従って並び替える。より具体的には、並び替え部155は、部分集合内の各文字領域データを、検出された行枠に対応する文字の並び方向に対する各文字領域データの示す領域の中心点座標の位置に従って並び替える。
【0037】
順序決定部160は、並び替え部155により決定された部分集合についての文字領域データの並び順に従って、文字情報格納部115に格納される文字情報のリストを更新する。より具体的には、順序決定部160は、並び替え部155により決定された部分集合についての文字領域データの並び順により追加する文字情報の挿入位置を決定し、決定した挿入位置に追加する文字情報を挿入して文字情報のリストを更新する。結果、文字情報のリストにおける新たらしい文字の読み順が決定される。
【0038】
ここで図5を参照して、解凍処理部140の上記各構成要素による解凍処理の概要を説明する。図5は、解凍プロセスの各段階を示す。処理の開始において、文字情報格納部115には画像データ500から抽出されたT1、T2、T3、T4の文字情報を含む文字情報のリストが格納されているものとする(図5(a)参照)。また行情報格納部135には、T1、T2、T3、T4の文字領域を囲む最小の矩形である行枠502と、行枠502内における文字の並び方向503とからなる行情報を含む行情報のリストが格納されているものとする(図5(a)参照)。なお、図5(a)に示す画像データ500において各文字の真上に記載されている数字は、各文字に付与された文字の読み順(文字情報のリストのリスト順)を示す。
【0039】
このような状況で、文字認識の誤りを正すためにユーザが文字T3とT4の間に新たに文字TX504を挿入する修正を指示したとする(図5(b)参照)。上述したように、修正の指示としてユーザから入力される情報は、文字TX504のテキスト・データとその文字領域データのみである。そのため、文字情報のリストのどの位置に文字TX504を挿入すべきか不明であり、文字の読み順を改めて決定する必要がある。そこで検出部145はまず行情報のリストを検索して、追加された文字TX504の文字領域を包含する行枠502と対応する文字並び方向503とを取得する(図5(c)参照)。
【0040】
続いて部分集合決定部150は、検出部145により検出された行枠502に包含される領域を示す文字領域データを文字情報のリストから全て読み出す(図5(d)参照)。続いて並び替え部155は、部分集合決定部150により読み出された全文字領域データを、検出部145により検出された文字並び方向503に対する各文字領域データの中心座標の位置に従って並び替える(図5(e))。すると文字領域データの部分集合に対し文字の読み順が正しく決定され(図5(f))、結果として、文字TX504の文字情報を文字情報のリストに挿入する位置(文字T3とT4の間であり、リストの4番目の位置)が分かる。このように、追加文字の文字領域を含む行枠に関して文字の並び順を決定することによって、文字情報のリスト全体についての正しい文字の読み順を決定できる。
【0041】
次に図6及び図7を参照して、本願発明の第1実施例に係る読み順決定装置100による処理の流れを説明する。図6は、圧縮処理部120による圧縮処理の流れの一例を示すフローチャートである。図7は、解凍処理部140による解凍処理の流れの一例を示すフローチャートである。まず、図6を参照して、圧縮処理部120による圧縮処理の流れを説明する。
【0042】
図6において、圧縮処理はステップ600から開始し、行情報登録部130は、行情報を行の並び順に登録すべき行情報のリストLIST1を用意し、これにnullを設定して初期化する。また、行枠候補生成部125は、文字情報格納部115に格納される文字情報のリストから先頭の1文字目の文字領域Cを読み出してこれを行枠候補L1に設定すると共に、行枠候補L1に対応する文字の並び方向L2にnullを設定して、行情報の候補Lを初期化する(ステップ603)。
【0043】
続いて行枠候補生成部125は、文字情報格納部115に次の文字領域が存在するか否かを判定する(ステップ606)。文字情報のリストにリストされる全ての文字情報が読み出されている場合(ステップ606:NO)、制御は行枠候補生成部125から行情報登録部130へ移り、行情報登録部130は、現在の行情報の候補Lを行情報のリストLIST1に登録し、LIST1を出力する(ステップ609)。そして処理は終了する。
【0044】
一方、ステップ606において次の文字領域が存在する場合(ステップ606:YES)、行枠候補生成部125は、次の文字領域をNとする(ステップ612)。続いて行枠候補生成部125は、行枠候補L1と次の文字領域NとをそれぞれX軸及びY軸に射影し、X軸及びY軸のどちらに射影した場合も射影区間が重ならないか否かを判定する(ステップ615)。これは、隣の行の文字などX軸又はY軸に沿って並んでいない文字を同一の行枠に含むことを避けるためである。
【0045】
射影区間が重なる場合(ステップ615:NO)、行枠候補生成部125は、行枠候補L1の中心点(x1、y1)と次の文字領域Nの中心点(x2、y2)との座標の差(x1−x2、y1−y2)を求め、差の絶対値が大きな軸(max(|x1−x2|、|y1−y2|))の方向を指す単位ベクトルD((0,1)又は(1,0))を求める(ステップ618)。ここで次の文字領域Nが現在の1文字目の文字領域Cに続く2文字目の文字領域である場合、文字の並び方向L2にDを設定する。続いて行枠候補生成部125は、文字の並び方向L2と単位ベクトルDが等しいか否かを判定する(ステップ621)。
【0046】
文字の並び方向L2と単位ベクトルDが等しい場合(ステップ621:YES)、行枠候補生成部125は、行枠候補L1を行枠候補L1と次の文字領域Nを含む最小の矩形で置換する(ステップ624)。そして処理はステップ606に戻り、行枠候補生成部125は一連の処理を繰り返す。一方、文字の並び方向L2と単位ベクトルDが等しくない場合(ステップ621:NO)、制御は行枠候補生成部125から行情報登録部130へ移り、行情報登録部130は現在の行情報の候補Lを行情報のリストLIST1の最後尾に追加し、また、現在の次の文字領域Nを文字情報のリストの一文字目とみなすため、現在の1文字目の文字領域Cに設定する(ステップ627)。そして処理はステップ603へ戻り、行枠候補生成部125は一連の処理を繰り返す。
【0047】
次に、図7を参照して、解凍処理部140による解凍処理の流れを説明する。図7において、解凍処理はステップ700から開始し、検出部145は、文字情報のリストへの文字情報の追加に応答して、行情報格納135に格納される行情報のリストから、追加された文字情報の文字領域データが示す領域を包含する行枠と対応する文字の並び方向からなる行情報を検出する。続いて、部分集合決定部150は、検出部145から行情報を受け取り、該行情報の行枠に包含される領域を示す文字領域データの部分集合Mを、文字情報格納部115に格納される文字情報のリストから求める(ステップ702)。
【0048】
続いて並び替え部155は、部分集合決定部150から文字領域データの部分集合Mと行情報とを受け取り、部分集合Mを構成する各文字領域データを、受け取った行情報の文字の並び方向に対する各文字領域データの領域の位置に従って並び替える(ステップ704)。最後に順序決定部160は、文字領域データの部分集合Mについて決定された文字の並び順に基づいて、文字情報格納部115に格納される文字情報のリストを更新し、新たに文字の読み順を決定する(ステップ706)。そして処理は終了する。
【0049】
(第2実施例)上述した第1実施例では、解凍処理部140は、文字情報のリストに対する修正要求に応答して解凍処理を行い文字の読み順を決定する。しかしながら解凍処理部140による解凍処理は、文字情報のリストを文字情報格納部115から読み出すタイミングで行うようにしてもよい。そこで該構成を採用する場合を第2実施例として以下に説明する。
【0050】
図8は、本願発明の第2実施例に係る読み順決定装置800の機能構成の一例を示す。読み順決定装置800は、スキャナにより電子データに変換された画像データを格納する画像データ格納部810と、画像データからOCRによって抽出された文字情報のリストを格納する文字情報格納部815と、文字情報のリストから行情報を生成する圧縮処理部820と、生成された行情報を格納する行情報格納部835と、画像データと文字情報とを対比可能に表示し、OCRによる文字認識処理の結果をユーザに修正させる修正部805と、行情報を用いて文字情報格納部815に格納される文字情報の集合の文字の読み順を決定する解凍処理部840を含む。
【0051】
第2実施例に係る読み順決定装置800の上記各構成要素は、解凍処理部840を除いて第1実施例に係る読み順決定装置100の対応する構成要素と変わらないので、以下では解凍処理部840についてのみ説明をする。但し、第2実施例では、文字情報格納部815から文字情報のリストが読み出されるたびに解凍処理部840による解凍処理が行われ文字の読み順が決定されるので、文字情報格納部815に格納される文字情報のリストは必ずしも文字の読み順に並んでいなくてよい。第2実施例に係る解凍処理部840は、部分集合決定部845と、並び替え部850と、順序決定部855とを含む。
【0052】
部分集合決定部845は、文字情報格納部115からの文字情報のリストの読み出しに応答して、行情報格納835に格納される行情報のリストの先頭から順に行情報を読み出し、読み出した行情報の行枠に包含される領域を示す全ての文字領域データの部分集合を、文字情報格納部810に格納される文字情報のリストから求める。このとき部分集合決定部845は、求めた文字領域データの部分集合の中に、現在処理する行枠よりも先に読み出した行枠に対して求めた文字領域データの部分集合に含まれる文字領域データがあるか否かを確認する。そのような文字領域データがあった場合、部分集合決定部845は、現在の文字領域データの部分集合からその共通して含まれる文字領域データを削除する。かかる処理は、1つの文字領域が2つの行枠に含まれる場合における文字の読み順決定処理の不具合を解消するためである。
【0053】
ここで、図9を参照して、1つの文字領域が2つの行枠に含まれるケースを具体的に説明する。図9(a)は、文字T1からT6までの文字の集合900の画像データを示し、図9(b)は、文字の集合900に対応する行枠を示す。文字の添え字は文字の読み順を表している。図9(a)に示すように、2番目の文字T2の文字領域がY軸方向にずれてY軸に射影した場合に文字T1、T3のいずれの文字領域とも重ならないため、文字T1からT3に対応する行枠は、図9(b)に示すようにそれぞれ単文字行枠L1、T2、L3となっている。一方、文字T4からT6はX軸方向に連続して並んでいるため、対応する行枠は、文字T4からT6の文字領域を含む1つの行枠L4となっている。そして、その文字領域のずれにより、文字T2の文字領域は、本来含まれるべき行枠L2のみならず行枠L4にも含まれてしまっている。
【0054】
このような状況において行情報を用いて文字の読み順を決定すると、文字T2が2度登場する文字情報のリストが作成される。これを解決するには、行枠L4を用いて文字を並び替える際に、行枠L4に含まれる文字領域の集合から、先に処理した行枠L2にも共通して含まれる文字T2の文字領域を削除すればよい。そこで第2実施例に係る部分集合決定部845では、現在の処理対象である文字領域データの部分集合と先に求めた文字領域データの部分集合とに共通して含まれる文字領域データがあるか否かを判定し、共通して含まれる文字領域データがある場合はこれを現在の処理対象である文字領域データの部分集合から削除するようにした。部分集合決定部845により最終的に求められた行情報ごとの文字領域データの部分集合は、対応する行情報と共に後述する並び替え部850に渡される。
【0055】
並び替え部850は、行情報のリストにおける行の並び順で、部分集合決定部845から行情報と対応する文字領域データの部分集合とのペアを受け取る。そして並び替え850は、行情報ごと、対応する部分集合の各文字領域データを対応する文字の並び方向に対する位置に従って並び替える。より具体的には、並び替え部850は、部分集合内の各文字領域データを、対応する文字の並び方向に対する各文字領域データの示す領域の中心点座標の位置に従って並び替える。
【0056】
順序決定部855は、行情報のリストにおける行の並び順で、並び替え部850から行情報と対応する部分集合の並び替えられた文字領域データとを受け取る。そして順序決定部855は、行情報ごとの並び替えられた文字領域データの部分集合を行の並びに順に繋ぎ合わせて文字領域データのリストを作成し、該リストのリスト順を文字情報のリストについての文字の読み順として決定する。
【0057】
次に図10を参照して、解凍処理部840による解凍処理の流れを説明する。図10において、解凍処理はステップ1000から開始し、順序決定部855は、文字領域データを文字の読み順に登録するリストLIST2を用意し、これにnullを設定して初期化する。続いて制御は順序決定部855から部分集合決定部845へ移り、部分集合決定部845は、行情報格納835に格納されている行情報のリストからリスト順に行情報を読み出し、読み出すべき次の行情報が行情報のリストに存在するか否かを判定する(ステップ1002)。読み出すべき次の行情報が行情報のリストに存在しない場合(ステップ1002:NO)、制御は順序決定部855に戻り、順序決定部855は現在のリストLIST2を出力する。その後処理は終了する。
【0058】
一方、読み出すべき次の行情報が行情報のリストに存在する場合(ステップ1002:YES)、部分集合決定部845は、読み出した次の行情報の行枠に包含される領域を示す全ての文字領域データの部分集合Mを、文字情報格納部810に格納される文字情報のリストから求める(ステップ1006)。続いて部分集合決定部845は、求めた文字領域データの部分集合Mの中に、現在のリストLIST2に登録されている文字領域データが含まれているか否かを確認し、含まれている場合にはその共通して含まれる文字領域データを部分集合Mから削除する(ステップ1008)。上述したようにかかる処理は、1つの文字領域が2つの行枠に含まれる場合における文字の読み順決定処理の不具合を解消するためである。
【0059】
ステップ1008の処理の後、文字領域データの部分集合Mは対応する行情報と共に並び替え部850へ渡され、並び替え部850は、部分集合Mを構成する各文字領域データを、文字の並び方向に対する各文字領域データの領域の位置に従って並び替える(ステップ1010)。続いて順序決定部855は、並び替え部850によって並び替えられた文字領域データの部分集合MをリストLIST2の最後尾に追加する(ステップ1012)。その後処理はステップ1002へ戻り、一連の処理が繰り返される。
【0060】
(第3実施例)第2実施例に係る解凍処理に関連して説明した、1つの文字領域が2つの行枠に含まれるという問題は、任意の言語において起こり得るものである。これとは別に、ある文字領域が先に決定した行枠又は現在の行枠候補に含まれるという問題があり、これは日本語に特有の問題である。そこでこのような問題に対応した構成を第3実施例として以下に説明する。
【0061】
まず図11を参照して、その生成後に処理対象となった文字領域を含むこととなった行枠を使用して文字の読み順を決定した場合の不具合を説明する。図11(a)は、2桁の数字を含む縦書きの文字列「平成23年」の画像データ1100を示す。この画像データ1100から抽出された文字情報のリスト(リスト順は、「平」、「成」、「2」、「3」、「年」の順)に対し、第1実施例として説明した圧縮方法により行枠を作成することを考える。なお、数字「23」は、OCRによる文字認識処理において「2」と「3」の2文字として認識されることに留意されたい。また「3」の文字領域は「2」の文字領域よりも「成」の文字領域に近いことに留意されたい。すると文字情報のリストから「2」が読み出された時点で図11(b)に示す行枠候補1102が現在の行枠候補として決定される。続いて数字「3」が読み出され行枠候補の拡張が検討される。しかし図11(c)に示すように数字「3」は現在の行枠候補1102に既に包含されている。
【0062】
ここで仮に現在の行枠候補1102をこのまま行枠として採用するとする。すると解凍時において、行枠候補1102及び対応する文字の並び方向1104に基づいて文字の並び順を決定しようとすると、上述したように「3」の文字領域は「2」の文字領域よりも「成」の文字領域に近いため、「平」、「成」、「3」、「2」という順序で文字列が作成されてしまう。そこで第3実施例では、第1実施例に係る圧縮処理部120を改良して、ある文字領域が先に決定した行枠又は現在の行枠候補に含まれる場合に、当該ある文字を含まないよう先に決定した行枠又は現在の行枠候補を修正するようにした。以下、図12を参照して第3実施例に係る読み順決定装置1200を説明する。
【0063】
図12は、本願発明の第3実施例に係る読み順決定装置1200の機能構成の一例を示す。読み順決定装置1200は、スキャナにより電子データに変換された画像データを格納する画像データ格納部1210と、画像データからOCRによって抽出された文字情報のリストを格納する文字情報格納部1215と、文字情報のリストから行情報を生成する圧縮処理部1220と、生成された行情報を格納する行情報格納部1235と、画像データと文字情報とを対比可能に表示し、OCRによる文字認識処理の結果をユーザに修正させる修正部1205と、行情報を用いて文字情報格納部1215に格納される文字情報の集合の文字の読み順を決定する解凍処理部1240を含む。
【0064】
第3実施例に係る読み順決定装置1200の上記各構成要素は、圧縮処理部1220を除いて第1実施例に係る読み順決定装置100の対応する構成要素と変わらないので、以下では圧縮処理部1220についてのみ説明をする。なお、第3実施例において、解凍処理部1240の代わりに第2実施例に係る解凍処理部840を採用してもよいことは言うまでもない。第3実施例に係る圧縮処理部1220は、行枠候補生成1225と、行枠候補修正部1227と、行情報登録部1230とを含む。
【0065】
行枠候補生成1225は、文字情報格納部1215に格納される文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化する。行枠候補生成部1225はまた、最初の2つの文字領域データによって行枠候補における文字の並び方向を決定する。そして行枠候補生成部1225は、決定した文字の並び方向に現在の文字領域が存在しなくなるまで、行枠候補を現在の文字領域を更に包含する最小の行枠に拡張する。
【0066】
但し第3実施例では、行枠候補生成1225は、現在の文字領域が現在の行枠候補又は過去に行枠として決定された行枠候補のいずれかに包含される場合には、拡張処理を行うことなく後述する行枠候補修正部1227を呼び出してその修正処理の結果の一部を取得する。行枠候補修正部1227から修正結果の一部を受け取った場合、行枠候補生成部1225は、受け取った一部の修正結果で行枠候補を初期化して上記一連の処理を繰り返す。行枠候補生成部1225はまた、文字の並び方向に現在の文字領域が存在しなくなった場合、現在の文字領域を文字情報のリストの先頭の文字領域データとみなして、上記一連の処理を繰り返す。
【0067】
行枠候補修正部1227は、行枠候補生成部1225からの呼び出しに応答して、現在の文字領域を包含する行枠候補(現在の行枠候補又は過去に行枠として決定された行枠候補)に対して以下の修正処理1〜3を行う。即ち、行枠候補修正部1227は、修正対象の行枠候補を、対応する文字の並び方向に対して垂直かつ現在の文字領域の中心点を基準に分割する(修正処理1)。続いて行枠候補修正部1227は、分割により生成された2つの行枠候補のうち少なくとも1つの文字領域を包含する行枠候補を、包含する全ての文字領域を囲む最小の矩形に修正する(修正処理2)。続いて行枠候補修正部1227は、分割により分割後の2つの行枠候補のいずれにも包含されなくなった文字領域、および、現在の文字領域の各々に対して単文字行枠を生成する(修正処理3)。
【0068】
上記修正処理2または修正処理3において得られた1以上の行枠候補は、現在の文字領域を包含する修正対象の行枠候補が現在の行枠候補である場合、行枠候補修正部1227により、行情報格納部1235に格納される行情報のリストの最後尾に登録される。一方、現在の文字領域を包含する修正対象の行枠候補が過去に行枠として決定された行枠候補である場合、修正処理2または修正処理3において得られた1以上の行枠候補は、行枠候補修正部1227により、行情報格納部1235に格納される行情報のリスト上の上記過去に行枠として決定された行枠候補と置換される。
【0069】
また、上記行情報格納部1235への登録または置換において、修正処理2または修正処理3において得られた1以上の行枠候補の順序は、以下のとおりとする。現在の文字領域からなる単文字行枠を最後尾とする。その他の行枠候補については、分割前の行枠によって得られる文字の順序に矛盾しない順序とする。
【0070】
ここで図13を参照して、行枠候補修正部1227による上記修正処理1〜3を具体的に説明する。なお、行枠候補修正部1227は、図11を参照して説明した文字列「平成23年」の画像データ1100から抽出された文字情報のリストを基に行情報を作成する行枠候補生成部1225により呼び出されて処理を開始するものとする。また、呼び出し時点において行枠候補生成部1225は、図11(b)に示す行枠1102を現在の行枠候補として生成しており、図11(c)に示すように現在の文字領域1106が、現在の行枠候補である行枠1102に包含されることを検出しているとする。
【0071】
図13(a)は、行枠候補修正部1227による修正処理1を示す。図11(c)に示す修正対象の行枠1102は、対応する文字の並び方向1104に対して垂直かつ現在の文字領域1106の中心点を基準に分割され、図13(a)に示すように2つの行枠1300と1302とが生成される。図13(b)は、行枠候補修正部1227による修正処理2を示す。図13(b)では、分割により生成された2つの行枠1300と1302のうち、「平」と「成」の2つの文字領域を包含する行枠1300が、包含する「平」と「成」の2つの文字領域を囲む最小の矩形である行枠1304に修正される。図13(c)は、行枠候補修正部1227による修正処理3を示す。図13(c)では、分割により分割後のいずれの行枠1300と1302にも包含されなくなった「2」と「3」の2つの文字領域(図13(a)参照)の各々に対し、単文字行枠1306、1308が生成されている。
【0072】
図12に戻って、行情報登録部1230は、圧縮処理の開始時に行情報のリストを行情報格納部1235に用意し、これをnullで初期化する。行情報登録部1230はまた、行枠候補生成部1225による拡張処理において、文字の並び方向に現在の文字領域が存在しないことが検知されるたびに、現在の行枠候補を対応する文字の並び方向と共に行情報として行情報格納部1235に格納される行情報のリストの最後尾に登録する。
【0073】
次に図14及び図15を参照して、第3実施例に係る圧縮処理部1220による圧縮処理の流れを説明する。図14は、第3実施例に係る圧縮処理部1220による圧縮処理の流れの一例を示すフローチャートである。図15は、図14に示すステップ1414の修正処理の流れの一例を示すフローチャートである。なお図15に示すフローチャートは、四角1450で囲んだ部分の処理が新たに追加されたことを除いては、図6に示す第1実施例に係る圧縮処理部120による圧縮処理のフローチャートと同じである。そこで以下では、四角1450で囲んだ新たに追加されたステップについてのみ説明する。
【0074】
ステップ1413の処理は、図6に示すフローチャートのステップ612に対応するステップ1412の直後に行われ、行枠候補生成部1225は、文字情報のリストから読み出した次の文字領域Nが、現在の行枠候補L1又は現在の行情報のリストLIST1に行枠として登録されている過去の行枠候補のいずれかに包含されるか否かを判定する。次の文字領域Nがいずれの行枠候補にも包含されない場合(ステップ1413:NO)、処理は図6に示すフローチャートのステップ615に対応するステップ1415へ進む。一方、次の文字領域Nがいずれかの行枠候補に包含される場合(ステップ1413:YES)、処理はステップ1414へ進み、行枠候補修正部1227は、次の文字領域Nを包含する現在の行枠候補L1又は過去の行枠候補を修正する修正処理を行う。修正処理の詳細は図15を参照して説明する。修正処理の後処理はステップ1406へ戻る。
【0075】
図15に示す行枠候補修正部1227による修正処理は、ステップ1500から開始し、行枠候補修正部1227は、文字領域Nの中心点を基準に、文字領域Nを包含する既存の行枠候補を該行枠候補に対応する文字の並び方向に対して垂直に分割する。続いて、行枠候補修正部1227は、分割後の2つの行枠候補のうち、1以上の文字領域を包含する行枠候補を該1以上の文字領域を囲む最小の行枠に修正する(ステップ1502)。行枠候補修正部1227はまた、分割によって分割後の2つの行枠候補のいずれにも包含されなくなった各文字領域に対し、該文字領域を行枠とする単文字行枠を生成する(ステップ1504)。
【0076】
続いて行枠候補修正部1227は、ステップ1502において修正した分割後の行枠候補と、あれば、ステップ1504において生成した単文字行枠(文字領域Nから生成した単文字行枠を除く)とで、行情報のリストLIST1を更新する(ステップ1506)。続いて行枠候補修正部1227は、ステップ1504において文字領域Nから生成した単文字行枠で行枠候補L1を更新する(ステップ1508)。そして処理は終了する。
【0077】
(第4実施例)第3実施例に関して説明した、ある文字領域が先に決定した行枠又は現在の行枠候補に包含されるという問題は、第3実施例の構成とは異なるもう1つの構成を採用することによっても解決される。そこで以下ではそのようなもう1つの構成を第4実施例として説明する。
【0078】
第4実施例では、第1実施例に係る圧縮処理部120を改良して、行枠候補を現在の文字領域を更に含む最小の行枠に拡張する拡張処理を、拡張によって生成されることになる行枠候補と文字並び方向とを基に文字の読み順が正しく決定されることを条件として行うようにした。以下、図16を参照して、第4実施例に係る読み順決定装置1600を説明する。
【0079】
図16は、本願発明の第4実施例に係る読み順決定装置1600の機能構成の一例を示す。読み順決定装置1600は、スキャナにより電子データに変換された画像データを格納する画像データ格納部1610と、画像データからOCRによって抽出された文字情報のリストを格納する文字情報格納部1615と、文字情報のリストから行情報を生成する圧縮処理部1620と、生成された行情報を格納する行情報格納部1635と、画像データと文字情報とを対比可能に表示し、OCRによる文字認識処理の結果をユーザに修正させる修正部1605と、行情報を用いて文字情報格納部1615に格納される文字情報の集合の文字の読み順を決定する解凍処理部1640を含む。
【0080】
第4実施例に係る読み順決定装置1600の上記各構成要素は、圧縮処理部1620を除いて第1実施例に係る読み順決定装置100の対応する構成要素と変わらないので、以下では圧縮処理部1620についてのみ説明をする。なお、第4実施例において、解凍処理部1640の代わりに第2実施例に係る解凍処理部840を採用してもよいことは言うまでもない。第4実施例に係る圧縮処理部1620は、行枠候補生成1625と、確認部1627と、行情報登録部1630とを含む。
【0081】
行枠候補生成1625は、文字情報格納部1615に格納される文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化する。行枠候補生成部1625はまた、最初の2つの文字領域データによって行枠候補における文字の並び方向を決定する。そして行枠候補生成部1625は、行枠候補を現在の文字領域を更に包含する最小の行枠に拡張する拡張処理を一定の条件の下に実行する。ここで一定の条件とは、後述する確認部1627による確認が成功することをいい、行枠候補生成1625は、拡張処理前に確認部1627を呼び出して確認結果を受け取る。確認部1627による確認が成功した場合は、行枠候補生成1625は拡張処理を実行し、拡張後の行枠候補と次に読み出した現在の文字領域に対して確認結果が失敗となるまで繰り返し拡張処理を試みる。確認部1627による確認が失敗した場合は、行枠候補生成1625は、現在の文字領域を文字情報のリストの先頭とみなして上記一連の処理を繰り返す。
【0082】
確認部1627は、行枠候補生成部1625からの呼び出しに応答して、拡張によって生成されることになる行枠候補と対応する文字の並び方向とを基に文字の読み順が正しく決定されることを確認する。該確認は次のように行ってよい。確認部1627はまず、実際に拡張処理を実行して行枠候補を生成し、これを現在の文字の並び方向とともに仮の行情報の候補とする。続いて確認部1627は、仮の行情報の候補を用いて文字領域の並び替えを行い文字の読み順を決定する。最後に確認部1627は、決定した文字の読み順と文字情報のリストにおけるリスト順とを比較し、一致するか否かを判定する。一致する場合、確認部1627は確認の成功を行枠候補生成1625へ返し、一致しない場合、確認部1627は確認の失敗を行枠候補生成1625へ返す。
【0083】
行情報登録部1630は、圧縮処理の開始時に行情報のリストを行情報格納部1235に用意し、これをnullで初期化する。行情報登録部1630はまた、確認部1627による確認の失敗に応答して、現在の行枠候補を対応する文字の並び方向と共に行情報として行情報のリストの最後尾に登録する。
【0084】
ここで図17を参照して、確認部1627による確認処理の結果に基づく圧縮プロセスの各段階を説明する。処理の開始において、文字情報格納部1615には、図17(a)に示す文字列「平成23年」の画像データ1700から抽出された文字情報のリストが格納されているものとする。なお、図17(a)乃至(e)に示す画像データ1700は、図11(a)に示す画像データ1100と同じものである。まず、確認部1627により、仮の行情報の候補として行枠候補1702と文字の並び方向1704が検討されるところから開始するとする(図17(a)参照)。すると、仮の行情報の候補を使用して得られる文字の読み順(「平」、「成」の順)と文字情報のリストにおけるリスト順(「平」、「成」の順)が一致するため、行枠候補生成1625による拡張処理が実行され、仮の行情報が現在の行情報の候補として確定する。
【0085】
続いて確認部1627により、現在の行情報の候補が「2」の文字領域を含むように拡張され、仮の行情報の候補として行枠候補1706と文字の並び方向1704が検討される(図17(b)参照)。すると、仮の行情報の候補を使用して得られる文字の読み順(「平」、「成」、「3」、2」の順)と文字情報のリストにおけるリスト順(「平」、「成」、「2」、(「3」)の順)は一致しないため、行枠候補生成1625による拡張処理は実行されず、現在の行情報の候補が行情報として行情報のリストの最後尾に登録される(図17(c)の行枠1708と文字の並び方向1710を参照)。また、現在の行情報の候補が「2」の文字領域で初期化される。
【0086】
続いて確認部1627により、上記「2」の文字領域で初期化された現在の行情報の候補が「3」の文字領域を含むように拡張され、仮の行情報の候補として行枠候補1712と文字の並び方向1714が検討される(図17(c)参照)。すると、仮の行情報の候補を使用して得られる文字の読み順(「2」、「3」の順)と文字情報のリストにおけるリスト順(「2」、「3」の順)が一致するため、行枠候補生成1625による拡張処理が実行され、仮の行情報が現在の行情報の候補として確定する。
【0087】
続いて確認部1627により、現在の行情報の候補が「年」の文字領域を含むように拡張され、仮の行情報の候補として行枠候補1716と文字の並び方向1714が検討される(図17(d)参照)。すると、仮の行情報の候補を使用して得られる文字の読み順(「2」、「年」、「3」の順)と文字情報のリストにおけるリスト順(「2」、「3」、年」の順)は一致しないため、行枠候補生成1625による拡張処理は実行されず、現在の行情報の候補が行情報として行情報のリストの最後尾に登録される(図17(e)の行枠1720と文字の並び方向1718を参照)。また、現在の行情報の候補が「年」の文字領域で初期化される。このように第4実施例では、正しい文字の読み順が決定されることを条件に拡張処理が行われる。
【0088】
次に図18を参照して、第4実施例に係る圧縮処理部1620による圧縮処理の流れを説明する。図18は、第4実施例に係る圧縮処理部1620による圧縮処理の流れの一例を示すフローチャートである。
【0089】
図18に示す圧縮処理はステップ1800から開始し、行情報登録部1630は、行情報を行の並び順に登録すべき行情報のリストLIST1を用意し、これにnullを設定して初期化する。また、行枠候補生成部1625は、文字情報格納部1615に格納される文字情報のリストから先頭の1文字目の文字領域Cを読み出してこれを行枠候補L1に設定すると共に、行枠候補L1に対応する文字の並び方向L2にnullを設定して、行情報の候補Lを初期化する(ステップ1802)。
【0090】
続いて行枠候補生成部1625は、文字情報格納部1615に次の文字領域が存在するか否かを判定する(ステップ1804)。文字情報のリストに次の文字領域が存在する場合(ステップ1804:YES)、次の文字領域をNとし、行枠候補L1の中心点(x1、y1)と次の文字領域Nの中心点(x2、y2)との差の絶対値が大きな軸(max(|x1−x2|、|y1−y2|))の方向を指す単位ベクトル((0,1)又は(1,0))を文字の並び方向Dとして決定して、文字の並び方向L2に設定する(ステップ1806)。
【0091】
ステップ1806の後行枠候補生成部1625は確認部1627を呼び出し、確認部1627は、行枠候補L1と次の文字領域Nを含む最小の矩形を仮の行枠候補L‘1、及び文字の並び方向L2を仮の文字の並び方向L‘2として仮の行情報の候補L’を生成する(ステップ1808)。そして確認部1627は、仮の行情報の候補L’を次の行枠として、図10に示すフローチャートの四角1050で囲んだサブルーチンを実行し、実行結果の文字領域の並びが、現在の1文字目の文字領域Cから次の文字領域Nまでの文字情報のリストにおけるリスト順に一致するか否かを判定する(ステップ1808)。
【0092】
実行結果の文字領域の並びが文字情報のリストにおけるリスト順に一致しない場合(ステップ1808:NO)、処理はステップ1818へ進み、行情報登録部1630は現在の行情報の候補Lを行情報のリストLIST1の最後尾に追加する。また、行情報登録部1630は現在の次の文字領域Nを、文字情報のリストの一文字目とみなすために、現在の1文字目の文字領域Cに設定する。そして処理はステップ1802へ戻り、行枠候補生成部1625は一連の処理を繰り返す。
【0093】
一方、実行結果の文字領域の並びが文字情報のリストにおけるリスト順に一致する場合(ステップ1808:YES)、行枠候補生成部1625は文字情報のリストに次の文字領域が存在するか否かを判定し(ステップ1810)、次の文字領域が存在する場合(ステップ1810:YES)、該次の文字領域を現在の次の文字領域Nとすると共に、仮の行情報の候補L’を現在の行情報の候補Lとして確定する(ステップ1812)。そして処理はステップ1808へ戻り、確認部1627と行枠候補生成部1625は一連の処理を繰り返す。
【0094】
一方、ステップ1810において次の文字領域が存在しない場合、行枠候補生成部1625は仮の行情報の候補L’を現在の行情報の候補Lとして確定する(ステップ1814)。ステップ1814から、又は、ステップ1804において文字情報のリストにリストされる全ての文字情報が読み出されている場合、処理はステップ1816へ進み、行情報登録部1630は、現在の行情報の候補Lを行情報のリストLIST1の最後尾に登録し、LIST1を出力する。そして処理は終了する。
【0095】
図19は、本願発明の任意の実施例に係る読み順決定装置としてのコンピュータ50のハードウェア構成の一例を示した図である。コンピュータ50は、バス2に接続されたメインCPU(中央処理装置)1とメインメモリ4を含んでいる。ハードディスク装置13、30、及びCD−ROM装置26、29、フレキシブル・ディスク装置20、MO装置28、DVD装置31のようなリムーバブル・ストレージ(記録メディアを交換可能な外部記憶システム)がフレキシブル・ディスクコントローラ19、IDEコントローラ25、SCSIコントローラ27などを経由してバス2へ接続されている。
【0096】
フレキシブル・ディスク、MO、CD−ROM、DVD−ROMのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置13、30、ROM14には、オペレーティング・システムと協働してCPU1に命令を与え、本願発明を実施するためのコンピュータ・プログラムのコードを記録することができる。即ち、上記説明した数々の記憶装置には、コンピュータ50にインストールされ、コンピュータ50を本願発明の任意の実施例に係る読み順決定装置として機能させる読み順決定プログラムや、行情報のリスト、文字情報のリストといったデータを記録することができる。
【0097】
上記読み順決定プログラムは、圧縮モジュールと、修正モジュールと、解凍モジュールとを含む。これらモジュールは、CPU1に働きかけて、コンピュータ50を、圧縮処理部120、820、1220、又は1620、修正部105、805、1205、又は1605、解凍処理部140、840、1240、1640としてそれぞれ機能させる。圧縮モジュールは、行枠候補生成モジュール、行枠情報登録モジュールとを含む。これらモジュールは、CPU1に働きかけて、コンピュータ50を、行枠候補生成部125、825、行情報登録部130、830としてそれぞれ機能させる。これに代えて、圧縮モジュールは、行枠候補生成モジュール、行枠候補修正モジュール、行枠情報登録モジュールとを含んでもよい。これらモジュールは、CPU1に働きかけて、コンピュータ50を、行枠候補生成部1225、行枠候補修正部1227、行情報登録部1230としてそれぞれ機能させる。或いは、圧縮モジュールは、行枠候補生成モジュール、確認モジュール、行枠情報登録モジュールとを含んでもよい。これらモジュールは、CPU1に働きかけて、コンピュータ50を、行枠候補生成部1625、確認部1627、行情報登録部1630としてそれぞれ機能させる。解凍モジュールは、検出モジュール、部分集合決定モジュール、並び替えモジュール、順序決定モジュールとを含む。これらモジュールは、CPU1に働きかけて、コンピュータ50を、検出部145、1245、1645、部分集合決定部150、1250、1650、並び替え部155、1255、1655、順序決定部160、1260、1660としてそれぞれ機能させる。これに代えて解凍モジュールは、部分集合決定モジュール、並び替えモジュール、順序決定モジュールとを含んでもよい。これらモジュールは、CPU1に働きかけて、コンピュータ50を、部分集合決定部845、並び替え部850、順序決定部855としてそれぞれ機能させる。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
【0098】
コンピュータ50は、キーボード/マウス・コントローラ5を経由して、キーボード6やマウス7のような入力デバイスからの入力を受ける。コンピュータ50は、オーディオコントローラ21を経由して、マイク24からの入力を受け、またスピーカー23から音声を出力する。コンピュータ50は、視覚データをユーザに提示するための表示装置11に、グラフィックスコントローラ10を経由して接続される。コンピュータ50は、ネットワーク・アダプタ18(イーサネット(登録商標)・カードやトークンリング・カード)等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
【0099】
以上の説明により、コンピュータ50は、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、又は、これらの組み合わせによって実現されることが容易に理解されるであろう。なお、上記説明した構成要素は例示であり、そのすべての構成要素が本願発明の必須構成要素となるわけではない。
【0100】
以上、実施形態を用いて本願発明の説明をしたが、本願発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更又は改良を加えることが可能であることが当業者に明らかである。従って、そのような変更又は改良を加えた形態も当然に本願発明の技術的範囲に含まれる。
【0101】
なお、特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り任意の順序で実現しうることに留意すべきである。また、前の処理の出力を後の処理で用いる場合でも、前の処理と後の処理の間に他の処理が入ることは可能である場合があること、又は間に他の処理が入るように記載されていても前の処理を後の処理の直前に行うよう変更することも可能である場合があることも留意されたい。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」、「続いて、」等を用いて説明したとしても、この順で実施することが必須であることを必ずしも意味するとは限らない。
【特許請求の範囲】
【請求項1】
文字の読み順を決定するための読み順決定装置であって、
画像データから文字認識処理により抽出された各文字のテキスト・データ及び文字領域データからなる文字情報が文字の読み順に並んだリストである文字情報のリストを格納する文字情報格納部と、
前記画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを格納する行情報格納部と、
前記文字情報のリストに対する文字情報の追加要求に応答して、前記行情報のリストから、追加された前記文字情報の文字領域データが示す領域を包含する行枠を有する行情報を検出する検出手段と、
前記検出手段より検出された前記行情報の前記行枠に包含される領域を示す文字領域データの部分集合を、前記文字情報のリストから求める部分集合決定手段と、
前記部分集合内の各文字領域データを、検出された前記行情報の前記文字の並び方向に対する位置に従って並び替える並び替え手段と、
前記部分集合内の文字領域データの並び順に基づいて前記文字情報のリストを更新することにより、前記文字情報のリストにおける文字の読み順を決定する順序決定手段と、
を含む読み順決定装置。
【請求項2】
前記文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化すると共に最初の2つの文字領域データによって前記行枠候補における文字の並び方向を決定し、該文字の並び方向に前記現在の文字領域が存在しなくなるまで、前記行枠候補を前記現在の文字領域を更に包含する最小の行枠に拡張する行枠候補生成手段と、前記文字の並び方向に前記現在の文字領域が存在しなくなったことに応答して、現在の前記行枠候補を対応する前記文字の並び方向と共に行情報として前記行情報のリストに登録する行情報登録手段とを更に含み、前記行枠候補生成手段は、前記文字の並び方向に前記現在の文字領域が存在しなくなったことに応答して、前記現在の文字領域を前記文字情報のリストの先頭として一連の処理を繰り返す、請求項1に記載の読み順決定装置。
【請求項3】
現在の前記行枠候補又は前記行情報のリストに登録された過去の前記行枠候補のいずれかに前記現在の文字領域が包含されることを条件に、前記行枠候補生成手段により現在の前記行枠候補を拡張する代わりに前記現在の文字領域を包含する前記行枠候補を、対応する文字の並び方向に対して垂直かつ前記現在の文字領域の中心点を基準に分割し、分割した行枠候補を該行枠候補に包含される文字領域データに基づいて修正し、分割により包含されなくなった各文字領域に対し該文字領域を行枠とする行情報を生成する行枠候補修正手段を更に含む、請求項2に記載の読み順決定装置。
【請求項4】
前記文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化すると共に最初の2つの文字領域データによって前記行枠候補における文字の並び方向を決定し、前記行枠候補を前記現在の文字領域を更に含む最小の行枠に拡張する拡張処理を一定の条件の下に実行する行枠候補生成手段と、前記行枠候補生成手段による前記拡張処理の実行前に、拡張によって生成されることになる行枠候補と前記文字の並び方向とを基に文字の読み順が正しく決定されることを確認する確認部と、前記確認部による確認の失敗に応答して、現在の前記行枠候補を対応する前記文字の並び方向と共に行情報として前記行情報のリストに登録する行情報登録手段とを更に含み、前記行枠候補生成手段は、前記確認部による確認の成功を条件として前記拡張処理を実行し、前記確認が失敗した場合は、前記現在の文字領域を前記文字情報のリストの先頭として処理を繰り返す、請求項1に記載の読み順決定装置。
【請求項5】
前記画像データは、文書の1頁分の画像データ又は文書の1頁内のまとまりある領域の画像データである、請求項1に記載の読み順決定装置。
【請求項6】
ユーザから、前記文字情報のリストへの文字情報の追加指示と共に、テキスト・データ及び対応する文字領域データを文字情報として受け取り、該文字情報を前記文字情報のリストの先頭又は最後尾に追加する修正手段を更に含む、請求項1に記載の読み順決定装置。
【請求項7】
文字の読み順を決定するための読み順決定装置であって、
画像データから文字認識処理により抽出された各文字のテキスト・データ及び文字領域データからなる文字情報のリストである文字情報のリストを格納する文字情報格納部と、
前記画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを格納する行情報格納部と、
前記行情報のリストから行情報を読み出して、読み出した前記行情報の行枠に包含される領域を示す文字領域データの部分集合を、前記文字情報のリストから求める部分集合決定手段と、
前記部分集合内の各文字領域データを、対応する前記行情報の前記文字の並び方向に対する位置に従って並び替える並び替え手段と、
行情報ごとの並び替えられた前記文字領域データの部分集合を前記行の並びに順に繋ぎ合わせることにより、前記文字情報のリストにおける文字の読み順を決定する順序決定手段と、
を含む読み順決定装置。
【請求項8】
コンピュータの演算処理により、文字の読み順を決定する読み順決定方法であって、前記コンピュータは、画像データから文字認識処理により抽出された各文字のテキスト・データ及び文字領域データからなる文字情報が文字の読み順に並んだリストである文字情報のリストを格納する文字情報格納部と、前記画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを格納する行情報格納部にアクセス可能であり、
(a)前記コンピュータが、前記文字情報のリストに対する文字情報の追加要求に応答して、前記行情報のリストから、追加された前記文字情報の文字領域データが示す領域を包含する行枠を有する行情報を検出するステップと、
(b)前記コンピュータが、前記検出手段より検出された前記行情報の前記行枠に包含される領域を示す文字領域データの部分集合を、前記文字情報のリストから求めるステップと、
(c)前記コンピュータが、前記部分集合内の各文字領域データを、検出された前記行情報の前記文字の並び方向に対する位置に従って並び替えるステップと、
(d)前記コンピュータが、前記部分集合内の文字領域データの並び順に基づいて前記文字情報のリストを更新することにより、前記文字情報のリストにおける文字の読み順を決定するステップと、
を含む読み順決定方法。
【請求項9】
ステップ(a)乃至(d)の処理の前に、前記文字情報のリストに基づいて前記行情報のリストを作成するために、(e)前記コンピュータが、前記文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化すると共に最初の2つの文字領域データによって前記行枠候補における文字の並び方向を決定し、該文字の並び方向に前記現在の文字領域が存在しなくなるまで、前記行枠候補を前記現在の文字領域を更に包含する最小の行枠に拡張するステップと、(d)前記コンピュータが、前記文字の並び方向に前記現在の文字領域が存在しなくなったことに応答して、現在の前記行枠候補を対応する前記文字の並び方向と共に行情報として前記行情報のリストに登録するとともに、前記現在の文字領域を前記文字情報のリストの先頭としてステップ(e)及び(d)の処理を繰り返すステップとをさらに含む、請求項8に記載の読み順決定方法。
【請求項10】
ステップ(e)は、前記コンピュータが、現在の前記行枠候補又は前記行情報のリストに登録された既存の前記行枠候補のいずれかに前記現在の文字領域が含まれることを条件に、現在の前記行枠候補を拡張する代わりに前記現在の文字領域を包含する前記行枠候補を、対応する文字の並び方向に対して垂直かつ前記現在の文字領域の中心点を基準に分割し、分割した行枠候補を該行枠候補に包含される文字領域データに基づいて修正し、分割により包含されなくなった各文字領域に対し該文字領域を行枠とする行情報を生成するステップを含む、請求項9に記載の読み順決定方法。
【請求項11】
ステップ(a)乃至(d)の処理の前に、前記文字情報のリストに基づいて前記行情報のリストを作成するために、(e)前記コンピュータが、前記文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化すると共に最初の2つの文字領域データによって前記行枠候補における文字の並び方向を決定し、前記行枠候補を前記現在の文字領域を更に包含する最小の行枠に拡張する拡張処理を、拡張によって生成される行枠候補と前記文字の並び方向とを基に文字の読み順が正しく決定されることを条件に実行するステップと、(d)前記コンピュータが、前記拡張処理の不実行に応答して、現在の前記行枠候補を対応する前記文字の並び方向と共に行情報として前記行情報のリストに登録するとともに、前記現在の文字領域を前記文字情報のリストの先頭としてステップ(e)の処理を繰り返すステップとをさらに含む、請求項8に記載の読み順決定方法。
【請求項12】
請求項8乃至11に記載の読み順決定方法をコンピュータに実行させる、文字の読み順を決定する読み順決定プログラム。
【請求項1】
文字の読み順を決定するための読み順決定装置であって、
画像データから文字認識処理により抽出された各文字のテキスト・データ及び文字領域データからなる文字情報が文字の読み順に並んだリストである文字情報のリストを格納する文字情報格納部と、
前記画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを格納する行情報格納部と、
前記文字情報のリストに対する文字情報の追加要求に応答して、前記行情報のリストから、追加された前記文字情報の文字領域データが示す領域を包含する行枠を有する行情報を検出する検出手段と、
前記検出手段より検出された前記行情報の前記行枠に包含される領域を示す文字領域データの部分集合を、前記文字情報のリストから求める部分集合決定手段と、
前記部分集合内の各文字領域データを、検出された前記行情報の前記文字の並び方向に対する位置に従って並び替える並び替え手段と、
前記部分集合内の文字領域データの並び順に基づいて前記文字情報のリストを更新することにより、前記文字情報のリストにおける文字の読み順を決定する順序決定手段と、
を含む読み順決定装置。
【請求項2】
前記文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化すると共に最初の2つの文字領域データによって前記行枠候補における文字の並び方向を決定し、該文字の並び方向に前記現在の文字領域が存在しなくなるまで、前記行枠候補を前記現在の文字領域を更に包含する最小の行枠に拡張する行枠候補生成手段と、前記文字の並び方向に前記現在の文字領域が存在しなくなったことに応答して、現在の前記行枠候補を対応する前記文字の並び方向と共に行情報として前記行情報のリストに登録する行情報登録手段とを更に含み、前記行枠候補生成手段は、前記文字の並び方向に前記現在の文字領域が存在しなくなったことに応答して、前記現在の文字領域を前記文字情報のリストの先頭として一連の処理を繰り返す、請求項1に記載の読み順決定装置。
【請求項3】
現在の前記行枠候補又は前記行情報のリストに登録された過去の前記行枠候補のいずれかに前記現在の文字領域が包含されることを条件に、前記行枠候補生成手段により現在の前記行枠候補を拡張する代わりに前記現在の文字領域を包含する前記行枠候補を、対応する文字の並び方向に対して垂直かつ前記現在の文字領域の中心点を基準に分割し、分割した行枠候補を該行枠候補に包含される文字領域データに基づいて修正し、分割により包含されなくなった各文字領域に対し該文字領域を行枠とする行情報を生成する行枠候補修正手段を更に含む、請求項2に記載の読み順決定装置。
【請求項4】
前記文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化すると共に最初の2つの文字領域データによって前記行枠候補における文字の並び方向を決定し、前記行枠候補を前記現在の文字領域を更に含む最小の行枠に拡張する拡張処理を一定の条件の下に実行する行枠候補生成手段と、前記行枠候補生成手段による前記拡張処理の実行前に、拡張によって生成されることになる行枠候補と前記文字の並び方向とを基に文字の読み順が正しく決定されることを確認する確認部と、前記確認部による確認の失敗に応答して、現在の前記行枠候補を対応する前記文字の並び方向と共に行情報として前記行情報のリストに登録する行情報登録手段とを更に含み、前記行枠候補生成手段は、前記確認部による確認の成功を条件として前記拡張処理を実行し、前記確認が失敗した場合は、前記現在の文字領域を前記文字情報のリストの先頭として処理を繰り返す、請求項1に記載の読み順決定装置。
【請求項5】
前記画像データは、文書の1頁分の画像データ又は文書の1頁内のまとまりある領域の画像データである、請求項1に記載の読み順決定装置。
【請求項6】
ユーザから、前記文字情報のリストへの文字情報の追加指示と共に、テキスト・データ及び対応する文字領域データを文字情報として受け取り、該文字情報を前記文字情報のリストの先頭又は最後尾に追加する修正手段を更に含む、請求項1に記載の読み順決定装置。
【請求項7】
文字の読み順を決定するための読み順決定装置であって、
画像データから文字認識処理により抽出された各文字のテキスト・データ及び文字領域データからなる文字情報のリストである文字情報のリストを格納する文字情報格納部と、
前記画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを格納する行情報格納部と、
前記行情報のリストから行情報を読み出して、読み出した前記行情報の行枠に包含される領域を示す文字領域データの部分集合を、前記文字情報のリストから求める部分集合決定手段と、
前記部分集合内の各文字領域データを、対応する前記行情報の前記文字の並び方向に対する位置に従って並び替える並び替え手段と、
行情報ごとの並び替えられた前記文字領域データの部分集合を前記行の並びに順に繋ぎ合わせることにより、前記文字情報のリストにおける文字の読み順を決定する順序決定手段と、
を含む読み順決定装置。
【請求項8】
コンピュータの演算処理により、文字の読み順を決定する読み順決定方法であって、前記コンピュータは、画像データから文字認識処理により抽出された各文字のテキスト・データ及び文字領域データからなる文字情報が文字の読み順に並んだリストである文字情報のリストを格納する文字情報格納部と、前記画像データにおいて同一方向に連続して並んでいる文字の集合を囲む行枠及び該行枠内における文字の並び方向からなる行情報が行の並び順にリストされた行情報のリストを格納する行情報格納部にアクセス可能であり、
(a)前記コンピュータが、前記文字情報のリストに対する文字情報の追加要求に応答して、前記行情報のリストから、追加された前記文字情報の文字領域データが示す領域を包含する行枠を有する行情報を検出するステップと、
(b)前記コンピュータが、前記検出手段より検出された前記行情報の前記行枠に包含される領域を示す文字領域データの部分集合を、前記文字情報のリストから求めるステップと、
(c)前記コンピュータが、前記部分集合内の各文字領域データを、検出された前記行情報の前記文字の並び方向に対する位置に従って並び替えるステップと、
(d)前記コンピュータが、前記部分集合内の文字領域データの並び順に基づいて前記文字情報のリストを更新することにより、前記文字情報のリストにおける文字の読み順を決定するステップと、
を含む読み順決定方法。
【請求項9】
ステップ(a)乃至(d)の処理の前に、前記文字情報のリストに基づいて前記行情報のリストを作成するために、(e)前記コンピュータが、前記文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化すると共に最初の2つの文字領域データによって前記行枠候補における文字の並び方向を決定し、該文字の並び方向に前記現在の文字領域が存在しなくなるまで、前記行枠候補を前記現在の文字領域を更に包含する最小の行枠に拡張するステップと、(d)前記コンピュータが、前記文字の並び方向に前記現在の文字領域が存在しなくなったことに応答して、現在の前記行枠候補を対応する前記文字の並び方向と共に行情報として前記行情報のリストに登録するとともに、前記現在の文字領域を前記文字情報のリストの先頭としてステップ(e)及び(d)の処理を繰り返すステップとをさらに含む、請求項8に記載の読み順決定方法。
【請求項10】
ステップ(e)は、前記コンピュータが、現在の前記行枠候補又は前記行情報のリストに登録された既存の前記行枠候補のいずれかに前記現在の文字領域が含まれることを条件に、現在の前記行枠候補を拡張する代わりに前記現在の文字領域を包含する前記行枠候補を、対応する文字の並び方向に対して垂直かつ前記現在の文字領域の中心点を基準に分割し、分割した行枠候補を該行枠候補に包含される文字領域データに基づいて修正し、分割により包含されなくなった各文字領域に対し該文字領域を行枠とする行情報を生成するステップを含む、請求項9に記載の読み順決定方法。
【請求項11】
ステップ(a)乃至(d)の処理の前に、前記文字情報のリストに基づいて前記行情報のリストを作成するために、(e)前記コンピュータが、前記文字情報のリストの先頭から順に文字領域データを読み出して現在の文字領域とし、最初の文字領域データで行枠候補を初期化すると共に最初の2つの文字領域データによって前記行枠候補における文字の並び方向を決定し、前記行枠候補を前記現在の文字領域を更に包含する最小の行枠に拡張する拡張処理を、拡張によって生成される行枠候補と前記文字の並び方向とを基に文字の読み順が正しく決定されることを条件に実行するステップと、(d)前記コンピュータが、前記拡張処理の不実行に応答して、現在の前記行枠候補を対応する前記文字の並び方向と共に行情報として前記行情報のリストに登録するとともに、前記現在の文字領域を前記文字情報のリストの先頭としてステップ(e)の処理を繰り返すステップとをさらに含む、請求項8に記載の読み順決定方法。
【請求項12】
請求項8乃至11に記載の読み順決定方法をコンピュータに実行させる、文字の読み順を決定する読み順決定プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図12】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図11】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図12】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図11】
【図13】
【公開番号】特開2012−256160(P2012−256160A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2011−128213(P2011−128213)
【出願日】平成23年6月8日(2011.6.8)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願日】平成23年6月8日(2011.6.8)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】
[ Back to top ]