ところで、注文書などの帳票をFAXなどで受信する場合、帳票に含まれる画像が斜め方向に傾いていることが多い。この場合、罫線枠の形状が歪んでしまっているため、OCR処理で文字の読取対象となる読取領域を適切に設定することが難しい。そこで、従来は、帳票画像に含まれる罫線の傾きを検知し、OCR処理の前に傾き補正などの画像処理を実施して帳票画像の傾きを補正することが行われている。
しかし、傾き補正などの画像処理が行われると、帳票画像に含まれる罫線がジグザグになってしまったり、欠損部分を有する不連続な線となってしまったりする。そのため、画像処理を行った後に罫線で囲まれた矩形枠の内側を読取領域として設定した場合であっても、破断した罫線の端部などが読取領域内に入り込んでしまっていると、OCR処理によって罫線の一部が文字として誤認識されてしまうという現象が生じ得る。
図15は、罫線の一部を文字として誤認識する場合の一例を示す図である。図15に示すように、例えば傾き補正によって縦方向の罫線101が斜め方向に傾いた線分の集合に置き換えられてしまうことがある。この場合、縦方向の罫線101と横方向の罫線102とで囲まれた矩形状の読取領域R100が設定されると、その読取領域R100の内側に破断した罫線101の端部103が入り込んでしまうことがある。図15の例では読取領域R100の左右両端の2箇所において罫線101の端部103が読取領域R100に入り込んでいる場合を示している。このような読取領域R100に対してOCR処理を実施すると、罫線101の端部103が例えば「1」として誤認識されるため、読取領域R100を読み取った文字列として「121」が出力される。したがって、正確な文字列が出力されないので、問題となる。
一方、特許文献2の従来技術のように「1」の文字を罫線コードに置き換えると、図15に示す読取領域R100にOCR処理を実施した結果として「2」が出力されるため、読取領域R100に記載された文字を正確に出力することができる。しかし、特許文献2のように「1」の文字を一律に罫線コードに置き換えてしまうと、読取領域R100に仮に「121」の文字が記載されている場合であっても、OCR処理の結果として「2」が出力されてしまうため、正確な文字列を出力することができない。
そこで本発明は、上記課題を解決することを目的としてなされたものであり、帳票に含まれる罫線が文字と誤認識されてしまうことを低減し、OCR処理による文字認識率を向上させることができるようにした帳票識別装置、帳票識別方法及びプログラムを提供することを目的とする。
上記目的を達成するため、請求項1に係る発明は、罫線を含む帳票に記載された文字を認識する帳票識別装置であって、帳票に文字が記載された記入済帳票画像を取得する画像取得手段と、前記記入済帳票画像において罫線で囲まれた読取領域に記載された文字を認識する文字認識処理を実行する文字認識手段と、前記文字認識手段によって前記読取領域から認識された文字列の先頭又は後尾に特定の文字が含まれるか否かを判定する文字列判定手段と、前記文字列判定手段によって文字列の先頭又は後尾に特定の文字が含まれると判定された場合に、前記記入済帳票画像において前記読取領域に含まれる罫線を検出する罫線検出手段と、前記罫線検出手段によって検出される罫線を1本の実線に補正する罫線補正手段と、前記罫線補正手段によって罫線が補正された前記記入済帳票画像に対して前記文字認識手段による文字認識処理を再度実行させる制御手段と、を備えることを特徴とする構成である。
請求項2に係る発明は、請求項1に記載の帳票識別装置において、前記罫線検出手段は、前記読取領域から画素濃度のヒストグラムを算出し、該ヒストグラムに基づいて前記読取領域の端部近傍に位置する罫線を検出することを特徴とする構成である。
請求項3に係る発明は、請求項2に記載の帳票識別装置において、前記罫線検出手段は、前記文字列判定手段によって前記特定の文字が検出された位置に対応する前記読取領域の端部近傍から罫線を検出することを特徴とする構成である。
請求項4に係る発明は、請求項2又は3に記載の帳票識別装置において、前記罫線検出手段は、前記読取領域の横軸方向に対してヒストグラムを算出し、前記文字列判定手段によって前記特定の文字が検出された位置に応じて前記ヒストグラムの左端近傍又は右端近傍から罫線に対応する画素濃度分布を検出することにより縦方向の罫線を検出することを特徴とする構成である。
請求項5に係る発明は、請求項2又は3に記載の帳票識別装置において、前記罫線検出手段は、前記読取領域の縦軸方向に対してヒストグラムを算出し、前記文字列判定手段によって前記特定の文字が検出された位置に応じて前記ヒストグラムの上端近傍又は下端近傍から罫線に対応する画素濃度分布を検出することにより横方向の罫線を検出することを特徴とする構成である。
請求項6に係る発明は、請求項2乃至5のいずれかに記載の帳票識別装置において、前記罫線検出手段は、前記ヒストグラムの端部近傍に、罫線に対応する画素濃度分布が存在しないとき、前記読取領域の端部近傍から罫線を検出しないことを特徴とする構成である。
請求項7に係る発明は、請求項1乃至6のいずれかに記載の帳票識別装置において、前記罫線検出手段は、前記文字列判定手段によって文字列の先頭又は後尾に前記特定の文字が含まれていることが検出された複数の読取領域が前記記入済帳票画像において所定方向に連続的又は断続的に配置されているとき、前記複数の読取領域に含まれる罫線を検出することを特徴とする構成である。
請求項8に係る発明は、請求項7に記載の帳票識別装置において、前記罫線検出手段は、前記複数の読取領域のそれぞれから画素濃度のヒストグラムを算出し、該ヒストグラムに基づいて前記複数の読取領域のそれぞれの端部近傍に位置する共通の罫線を検出することを特徴とする構成である。
請求項9に係る発明は、請求項1乃至8のいずれかに記載の帳票識別装置において、前記罫線補正手段は、前記罫線検出手段によって検出される罫線に対して太線化処理を行うことを特徴とする構成である。
請求項10に係る発明は、請求項9に記載の帳票識別装置において、前記太線化処理は、前記罫線検出手段によって検出される罫線が互いに平行な複数の細線によって構成される場合に前記複数の細線の隙間を埋める処理を含むことを特徴とする構成である。
請求項11に係る発明は、請求項9又は10に記載の帳票識別装置において、前記太線化処理は、前記罫線検出手段によって検出される罫線が欠損部分を有する不連続な罫線である場合に前記欠損部分を補完して連続な罫線に補正する処理を含むことを特徴とする構成である。
請求項12に係る発明は、請求項1乃至11のいずれかに記載の帳票識別装置において、前記画像取得手段によって取得される前記記入済帳票画像に対して画像の傾きを補正するための画像処理を行う画像処理手段を更に備え、前記文字認識手段は、前記画像処理手段よって前記記入済帳票画像に対する画像処理が行われた後に、前記文字認識処理を実行することを特徴とする構成である。
請求項13に係る発明は、請求項1乃至12のいずれかに記載の帳票識別装置において、前記制御手段は、前記罫線補正手段によって罫線が補正された前記記入済帳票画像に対して前記文字認識手段による文字認識処理を再度実行させた後、前記文字認識手段によって前記読取領域から認識された文字列の先頭又は後尾に前記特定の文字が含まれるか否かを前記文字列判定手段に再度判定させ、文字列の先頭又は後尾に前記特定の文字が含まれると判定された場合に、前記罫線検出手段及び前記罫線補正手段のそれぞれによる処理を再度実行させることを特徴とする構成である。
請求項14に係る発明は、請求項13に記載の帳票識別装置において、前記制御手段は、前記罫線補正手段による処理を再度実行させる際、前記罫線検出手段によって検出される罫線を前回よりも太い実線に補正する処理を行わせることを特徴とする構成である。
請求項15に係る発明は、請求項1乃至14のいずれかに記載の帳票識別装置において、前記特定の文字は、「1」、「I」、「l」又は「−」を含む文字であることを特徴とする構成である。
請求項16に係る発明は、帳票識別方法であって、罫線を含む帳票に文字が記載された記入済帳票画像を取得する第1ステップと、前記記入済帳票画像において罫線で囲まれた読取領域に記載された文字を認識する文字認識処理を実行する第2ステップと、前記第2ステップによって前記読取領域から認識された文字列の先頭又は後尾に特定の文字が含まれるか否かを判定する第3ステップと、前記第3ステップによって文字列の先頭又は後尾に前記特定の文字が含まれると判定された場合に、前記記入済帳票画像において前記読取領域に含まれる罫線を検出する第4ステップと、前記第4ステップによって検出される罫線を1本の実線に補正する第5ステップと、前記第5ステップによって罫線が補正された前記記入済帳票画像に対して前記第2ステップによる文字認識処理を再度実行させる第6ステップと、を有することを特徴とする構成である。
請求項17に係る発明は、プログラムであって、コンピュータに、罫線を含む帳票に文字が記載された記入済帳票画像を取得する第1ステップと、前記記入済帳票画像において罫線で囲まれた読取領域に記載された文字を認識する文字認識処理を実行する第2ステップと、前記第2ステップによって前記読取領域から認識された文字列の先頭又は後尾に特定の文字が含まれるか否かを判定する第3ステップと、前記第3ステップによって文字列の先頭又は後尾に前記特定の文字が含まれると判定された場合に、前記記入済帳票画像において前記読取領域に含まれる罫線を検出する第4ステップと、前記第4ステップによって検出される罫線を1本の実線に補正する第5ステップと、前記第5ステップによって罫線が補正された前記記入済帳票画像に対して前記第2ステップによる文字認識処理を再度実行させる第6ステップと、を実行させることを特徴とする構成である。
本発明によれば、帳票に含まれる罫線が文字と誤認識されてしまうことを低減することができるようになり、OCR処理などの文字認識処理による文字認識率を向上させることができる。
以下、本発明に関する好ましい実施形態について図面を参照しつつ詳細に説明する。尚、以下に説明する実施形態において互いに共通する部材には同一符号を付しており、それらについての重複する説明は省略する。
図1は、本発明における帳票識別システム1の構成概念を示す図である。この帳票識別システム1は、MFP(Multifunction Peripherals)などで構成される画像入力装置2と、コンピュータ3で構成される帳票識別装置10とを備え、これらが相互にデータ通信を行うことができる構成である。
画像入力装置2は、スキャン機能やFAX機能などを有する。画像入力装置2は、装置本体の上部にスキャナ部2aを備えており、そのスキャナ部2aを動作させることにより、顧客からFAXや郵便などで送られてきた注文書などの帳票5を読み取って記入済帳票画像6を生成する。帳票5は、罫線で囲まれた矩形枠の内側に、顧客によって任意の文字が記入された用紙である。そのため、画像入力装置2は、顧客によって書き込まれた文字を含む記入済帳票画像6を生成する。画像入力装置2は、帳票5を読み取って記入済帳票画像6を生成すると、その記入済帳票画像6を帳票識別装置10へ出力する。また画像入力装置2は、FAXで帳票画像を受信した場合、その帳票画像を、記入済帳票画像6として帳票識別装置10へ出力することも可能である。
帳票識別装置10は、記入済帳票画像6に記載されている文字を認識するための装置である。帳票識別装置10は、画像入力装置2から記入済帳票画像6を取得すると、まずその記入済帳票画像6に対して傾き補正などの画像処理を行い、傾き補正などを行った記入済帳票画像6に対してOCR処理などの文字認識処理を実行するように構成される。
この帳票識別装置10は、ハードディスクドライブなどで構成される記憶装置15を有しており、その記憶装置15に、顧客による記入が行われていないブランク状態の帳票5に関するオリジナル帳票画像7が予め記憶されている。図2は、オリジナル帳票画像7の一例を示す図である。図2に示すようにオリジナル帳票画像7は、縦方向及び横方向の複数の罫線が予め付されており、それら罫線で囲まれた複数の矩形枠のうち、ブランクの矩形枠が顧客によって注文内容などの文字が記入される領域となっている。
帳票識別装置10は、傾き補正などを行った記入済帳票画像6に対して文字認識処理を実行する際、記憶装置15からオリジナル帳票画像7を読み出し、記入済帳票画像6をオリジナル帳票画像7に対してパターンマッチングさせる。そして帳票識別装置10は、記入済帳票画像6においてオリジナル帳票画像7のブランクの矩形枠が含まれている領域の近傍で罫線探索を行うことにより、記入済帳票画像6から文字認識の対象となる読取領域を検出し、その読取領域に対して文字認識処理を行うことにより顧客によって記入された文字を認識するように構成される。以下、このような帳票識別装置10について詳しく説明する。
図3は、帳票識別装置10のハードウェア構成及び機能構成の一例を示すブロック図である。図3(a)に示すように、帳票識別装置10は、ハードウェア構成として、CPUとメモリとを備えて構成される制御部11と、ユーザーに対して各種情報を表示する表示部12と、ユーザーによる入力操作を受け付ける操作入力部13と、帳票識別装置10をLAN(Local Area Network)などのネットワークに接続するためのネットワークインタフェース14と、上述した記憶装置15とを備えている。記憶装置15には、制御部11のCPUによって実行されるプログラム16が予めインストールされている。このプログラム16は、コンピュータ3を帳票識別装置10として機能させるためのプログラムである。例えば、コンピュータ3のユーザーが、操作入力部13を介してプログラム16の実行を指示すると、制御部11のCPUは記憶装置15からプログラム16を読み出して起動する。これにより、コンピュータ3が帳票識別装置10として機能するようになる。
制御部11のCPUがプログラム16を実行することにより、制御部11は、図3(a)に示すように、オリジナル画像登録部21及び帳票識別部22として機能する。オリジナル画像登録部21は、記憶装置15にオリジナル帳票画像7を記憶させる処理部である。このオリジナル画像登録部21は、ユーザーによって新たな帳票5の登録操作が行われた場合に動作し、指定された新たな帳票5のオリジナル帳票画像7を記憶装置15へ格納する。したがって、記憶装置15には、複数種類の帳票5のオリジナル帳票画像7が記憶されることもある。
帳票識別部22は、ネットワークインタフェース14を介して画像入力装置2から受信する記入済帳票画像6を取得し、その記入済帳票画像6に記入された文字を認識する処理部である。図3(b)は、帳票識別部22の詳細な機能構成を示す図である。帳票識別部22は、記入済画像取得部31と、画像処理部32と、読取領域検出部33と、文字認識部34と、文字列判定部35と、罫線検出部36と、罫線補正部37と、制御部38とを備えている。制御部38は、記入済画像取得部31、画像処理部32、読取領域検出部33、文字認識部34、文字列判定部35、罫線検出部36及び罫線補正部37のそれぞれの動作を制御するものであり、上記各部を順に動作させることにより、記入済帳票画像6に含まれる文字を認識して得られる文字情報を出力するように制御する。
記入済画像取得部31は、ネットワークインタフェース14を介して記入済帳票画像6を取得する処理部である。画像処理部32は、記入済画像取得部31によって取得された記入済帳票画像6に対して傾き補正などの画像処理を施す処理部である。
図4は、画像処理部32による画像処理の概念を示す図である。記入済画像取得部31によって取得される記入済帳票画像6は、図4(a)に示すように帳票画像が傾いた状態となっていることが多い。これは、顧客が帳票5のFAX送信などを行う際に、帳票5が自動原稿搬送装置の内部で斜行してしまうことなどが原因であり、画像入力装置2において帳票5の画像を読み取るときには既に傾いた状態となっていることもある。そのため、画像処理部32は、記入済帳票画像6に含まれる罫線の傾きを検知し、その検知した傾きに基づいて記入済帳票画像6に対する傾き補正を行うことにより、図4(a)に示すように傾いた状態の帳票画像を、図4(b)に示すように傾きのない帳票画像に補正する。画像処理部32は、文字認識処理に先立って記入済帳票画像6の傾き補正を行っておくことにより、記入済帳票画像6をオリジナル帳票画像7にマッチングさせるときに画像の回転などを行うことなく、マッチングさせることができる。
また画像処理部32は、傾き補正の他にも、例えば記入済帳票画像6に含まれる孤立点を除去するための孤立点除去処理、記入済帳票画像6の天地が逆である場合に天地反転を行う天地補正処理、裏面の文字などが表面側に裏写りしている場合に裏写り画像を除去する裏写り除去処理などの画像処理を実行する。画像処理部32は、それらの画像処理を予め実行しておくことにより、孤立点や裏写りなどが影響して文字認識率が低下してしまうことを抑制することができる。
読取領域検出部33は、記入済帳票画像6に対する文字認識処理を実行する際の読取領域を検出する処理部である。読取領域検出部33は、画像処理部32によって画像処理が施された記入済帳票画像6を取得すると、オリジナル帳票画像7を読み出し、オリジナル帳票画像7に対して記入済帳票画像6をマッチングさせることにより、オリジナル帳票画像7において予め読取領域として設定されているブランクの矩形枠の領域が記入済帳票画像6においてどの部分に相当する位置するかを特定し、記入済帳票画像6に対して文字認識の対象となる読取領域を設定する。図5は、読取領域検出部33によって設定される読取領域の一例を示す図である。読取領域検出部33は、例えば図5において斜線で示す部分を文字認識処理による読取領域として設定する。
また記入済帳票画像6をオリジナル帳票画像7にマッチングさせたとき、記入済帳票画像6に含まれる矩形枠と、オリジナル帳票画像7に含まれる矩形枠とが完全に一致するとは限らない。寧ろ、オリジナル帳票画像7に含まれる矩形枠に対し、記入済帳票画像6に含まれる矩形枠の位置やサイズに若干のずれが生じているのが一般的である。そのため、読取領域検出部33は、記入済帳票画像6をオリジナル帳票画像7にマッチングさせることによって特定される矩形枠に相当する部分の近傍領域で罫線探索を行う。図6は、その罫線探索の概要を説明する図である。例えば読取領域検出部33は、図6に示すように記入済帳票画像6において矩形枠に相当する部分を含む罫線探索領域RXを設定し、その罫線探索領域RXの内側において縦方向及び横方向の罫線40を探索する。そして読取領域検出部33は、罫線探索によって検出した縦方向及び横方向の罫線40に囲まれた領域の内側に読取領域Rを設定する。上記のようにして読取領域検出部33は、罫線40で囲まれた領域ごとに、文字認識の対象となる読取領域Rを設定する。
文字認識部34は、読取領域検出部33によって設定された読取領域Rに対して文字認識処理を実行する処理部である。この文字認識部34は、OCR処理などの公知の文字認識処理を行うことにより、読取領域Rに含まれる画像成分から1文字ずつ文字を検出する。読取領域検出部33によって複数の読取領域Rが設定された場合、文字認識部34は、それら複数の読取領域Rのそれぞれに対して文字認識処理を実行する。その結果、文字認識部34は、記入済帳票画像6に設定される複数の読取領域Rのそれぞれに記入されている文字を検出する。読取領域Rの内部に文字と認識し得る画像成分が含まれない場合、文字認識部34は、文字認識処理を行っても文字を検出しない。そして文字認識部34は、各読取領域Rから読み取った文字又は文字列を文字列判定部35へ出力する。
文字列判定部35は、文字認識部34によって認識される文字又は文字列に罫線を誤認識した可能性のある文字が含まれるか否かを判定する処理部である。例えば読取領域Rの内側に罫線の一部が含まれていると、文字認識部34によって罫線の一部が文字として誤認識される可能性がある。文字列判定部35は、そのような誤認識された可能性のある文字の有無を判定する。
図7は、罫線40の一部41が読取領域Rの内側にある場合を例示する図である。例えば記入済帳票画像6に含まれる縦方向の罫線40は、図7(a)に示すように文字認識処理に先立って行われる画像処理によって斜め方向に傾いた線分の集合に置き換えられてしまうことがある。この場合、罫線探索によって設定される読取領域Rの内側に斜め方向に罫線40の一部41(例えば傾いた線分の端部)が入り込んでしまうことがある。そのような読取領域Rに対して文字認識部34が文字認識を行うと、読取領域Rの左右両端にある罫線40の一部41を「1」として認識するため、読取領域R100を読み取った結果、「121」の文字列が得られる。つまり、罫線40の一部41が「1」と誤認識された文字は、文字認識部34によって認識される文字列の先頭又は後尾に含まれる。文字認識部34によって認識された文字が一文字だけである場合、文字列の先頭と後尾が同じ文字であるため、文字列の先頭と後尾の双方に誤認識された文字が含まれることになる。したがって、文字列判定部35は、文字認識部34によって認識された文字列の先頭又は後尾に「1」などの特定の文字が含まれるか否かを検査することにより、誤認識の可能性を判定する。
図7(a)に示すように縦方向の罫線40の一部41が読取領域Rの内側に入り込むことによって誤認識され得る文字としては、上述した「1」の他にも、例えば「I」や「l」、「i」、「/」、「!」などの文字があり、更には特殊文字なども存在する。したがって、文字列判定部35は、それらの文字を誤認識される可能性のある特定の文字として予め登録しており、文字列の先頭又は後尾に予め登録されている特定の文字が含まれる否かを検査するように構成される。そして文字列判定部35による判定の結果、誤認識の可能性があると判定されると、次に罫線検出部36が機能する。
罫線検出部36は、文字認識部34による文字認識が行われた読取領域Rに含まれる罫線40を検出する処理部である。この罫線検出部36は、文字列判定部35によって誤認識の可能性があると判定された読取領域Rから画素濃度のヒストグラムを算出することにより、その読取領域Rに罫線40の一部41が含まれているか否かを検出するように構成される。
例えば図7(a)に示したように読取領域Rの左端及び右端の双方において罫線40の一部41が読取領域Rの内側に入り込んでいる場合において、罫線検出部36が読取領域Rの横軸方向に対してヒストグラムを算出すると、そのヒストグラムは図7(b)に示すような濃度分布として得られる。すなわち、読取領域Rの左端に罫線40の一部41が存在する場合、ヒストグラムの左端近傍に罫線40の一部41に対応する画素濃度分布のピークPaが検出される。また読取領域Rの右端に罫線40の一部41が存在する場合、ヒストグラムの右端近傍に罫線40の一部41に対応する画素濃度分布のピークPbが検出される。このような罫線40の一部41に対応する画素濃度分布のピークPa,Pbは、ヒストグラムの左端近傍又は右端近傍の所定領域Ra,Rbに出現する。これに対し、顧客が矩形枠の内側に記入した文字に対応する画素濃度分布のピークPcは、図7(b)に示すようにヒストグラムのほぼ中央に現れる。
そのため、罫線検出部36は、文字列判定部35によって文字列の先端又は後尾に特定の文字が検出された場合、ヒストグラムの左端近傍又は右端近傍の所定領域Ra,Rbに罫線40に対応する濃度分布のピークPa,Pbが存在するか否かを判定する。その結果、ヒストグラムの左端近傍又は右端近傍の所定領域Ra,Rbに罫線40に対応する濃度分布のピークPa,Pbが存在する場合、罫線検出部36は、その濃度分布のピークPa,Pbを構成する画素を罫線40として検出する。これにより、読取領域Rの左端又は右端において読取領域Rの内側に入り込んだ状態となっている罫線40を検出することができる。
一方、ヒストグラムの左端近傍又は右端近傍の所定領域Ra,Rbに罫線40に対応する濃度分布のピークPa,Pbが存在しない場合には、特定の文字は罫線の誤認識によって得られたものではなく、正常な文字認識によって得られた文字であることが判明する。そのため、罫線検出部36は、ヒストグラムの端部近傍に、罫線49に対応する画素濃度分布のピークPa,Pbが存在しないとき、読取領域Rの端部近傍から罫線40を検出する処理を行わない。
罫線検出部36は、文字列の先端及び後端の双方から特定の文字が検出された場合には、読取領域Rの左端及び右端の双方において読取領域Rの内側に入り込んだ状態となっている罫線40を検出する。これに対し、文字列の先端及び後端のいずれか一方から特定の文字が検出された場合、罫線検出部36は、読取領域Rの左端及び右端の一方において読取領域Rの内側に入り込んだ状態となっている罫線40だけを検出する。例えば、文字列の先端のみから特定の文字が検出された場合には読取領域Rの左端において読取領域Rの内側に入り込んだ状態となっている罫線40だけを検出し、文字列の後尾のみから特定の文字が検出された場合には読取領域Rの右端において読取領域Rの内側に入り込んだ状態となっている罫線40だけを検出する。これにより、誤認識の可能性のない罫線については検出処理が行われないため、処理効率が向上する。
また罫線検出部36は、文字列判定部35によって文字列の先頭又は後尾に特定の文字が含まれていることが検出された複数の読取領域Rが記入済帳票画像6において一定の方向に連続的又は断続的に配置されているとき、それら複数の読取領域Rに含まれている共通の罫線40を検出する。図8は、特定の文字が検出された複数の読取領域R1〜R9が縦方向に連続的に配置されている場合の一例を示す図である。例えば図8(a)に示すように縦方向に並んだ9つの読取領域R1〜R9のそれぞれから検出された文字列の後尾に特定の文字である「1」が含まれている場合、罫線検出部36は、それら9つの読取領域R1〜R9の右端に縦方向の罫線40が含まれているか否かを判断する。このとき、罫線検出部36は、図8(b)に示すように9つの読取領域R1〜R9のそれぞれからヒストグラム51〜59を個別に算出する。尚、図8(b)では、ヒストグラム51が読取領域R1に、ヒストグラム52が読取領域R2に、ヒストグラム53が読取領域R3に、ヒストグラム54が読取領域R4に、ヒストグラム55〜59が読取領域R5〜R9にそれぞれ対応する。そして9つの読取領域R1〜R9のそれぞれから検出された文字列の後尾に特定の文字である「1」が含まれているため、罫線検出部36は、それらのヒストグラム51〜59の右端近傍の所定領域に罫線40に対応する濃度分布のピークが共通して存在するか否かを判定する。そして罫線検出部36は、複数のヒストグラム51〜59のそれぞれの右端近傍の所定領域に共通のピークが存在する場合、そのピークを構成する画素を縦方向の共通した罫線40として検出する。図8(b)の例では、9つのヒストグラム51〜59のそれぞれの右端近傍の所定領域から共通のピークが検出されるため、9つの読取領域R1〜R9のそれぞれの右端において共通した縦方向の罫線40を構成する画素が検出されることになる。このように特定の文字が検出された複数の読取領域Rが記入済帳票画像6において一定の方向に連続的又は断続的に配置されている場合には、罫線検出部36がそれら複数の読取領域Rのそれぞれに含まれる共通した罫線40を検出することにより、1つの読取領域Rから単独で罫線40を検出する場合よりも罫線検出の信頼性を向上させることができる。つまり、顧客によって矩形枠の端に文字が記入されている場合であっても、その文字を罫線として誤検出してしまうことを抑制することができるのである。
上記のようにして罫線検出部36によって読取領域Rの端部にある罫線40が検出されると、次に罫線補正部37が機能する。罫線補正部37は、罫線検出部36によって読取領域Rの端部で検出された罫線40を所定幅以上の1本の実線に補正することで、文字と誤認識されない罫線に補正する処理部である。罫線補正部37によって行われる罫線補正には、様々な処理が含まれる。
図9は、罫線補正として行われる処理の一例を示す図である。図9(a)は、罫線40の太線化処理を示している。罫線補正部37は、太線化処理を行うとき、元の罫線40を幅方向に所定画素数分だけ太くする処理を実行する。したがって、補正後の罫線42は、元の罫線40よりも幅広の1本の実線として表されるため、罫線として識別し易くなる。
図9(b)は、元の罫線40が欠損部分Aを有する不連続な罫線である場合の欠損部分補完処理を示している。罫線補正部37は、欠損部分補完処理を行うとき、元の罫線40において途切れた2つの端部を繋げるように黒色の画素を補完する処理を実行する。したがって、補正後の罫線42は、欠損部分Aがなくなり、連続した1本の実線として表されるため、罫線として識別し易くなる。
図9(c)は、元の罫線40が互いに平行な複数の細線によって構成される場合にそれら複数の細線の隙間を埋める処理を示している。罫線補正部は、この処理を行うとき、元の罫線40に含まれる複数の細線の隙間を黒色の画素で埋める処理を実行する。したがって、補正後の罫線42では、元の罫線40に含まれる複数の細線が1本の実線として表されるため、罫線として識別し易くなる。
罫線補正部37は、上述した3つの処理のうちから1つの処理を選択して罫線補正を行うものであっても良いし、また3つの処理を複合的に組み合わせた罫線補正を行うものであっても良い。そのような罫線補正により、画像処理部32で行われた傾き補正などの影響によってジグザグになってしまっていたり、欠損部分を有する不連続な線となってしまっていたりする罫線40が、識別し易い罫線42に変換されるのである。
図10は、例えば図7(a)に示した縦方向の罫線40に対して罫線補正を施した状態の一例を示す図である。図10に示すように罫線検出部36によって罫線補正が行われることで読取領域Rの左右近傍において縦方向に延びる罫線42は、それ以前の罫線40よりも太い1本の実線として表されるようになる。そのため、罫線補正が行われると、罫線42は、それ以前よりも鮮明になるため、識別し易くなる。したがって、記入済帳票画像6に含まれる罫線40は、識別し易い罫線42に置き換えられる。
上記のようにして罫線補正部37によって特定の文字と誤認識された罫線40に対する罫線補正が行われると、制御部38は、読取領域検出部33を再度機能させ、識別し易い罫線42に置き換えられた記入済帳票画像6に対して再び読取領域Rを設定する処理を行わせる。これにより、読取領域検出部33は、記入済帳票画像6に対して再び罫線探索を行い、縦方向及び横方向の罫線40に囲まれた領域の内側に読取領域Rを再設定する。このとき、前回の処理で特定の文字と誤認識された罫線40は、識別し易い罫線42に置き換えられている。そのため、読取領域検出部33によって再設定される読取領域Rは、図10に示すような領域となり、読取領域Rの内側に、罫線42の一部が入り込んでしまうことを抑制することができる。そして制御部38は、読取領域検出部33によって読取領域Rが再設定されると、文字認識部34を再度機能させ、再設定された読取領域Rに対する文字認識処理を再度実行させる。これにより、文字認識率を向上させることができる。
そして制御部38は、文字列の先頭又は後尾に特定の文字が含まれる場合、読取領域Rの左端近傍又は右端近傍に誤認識された罫線が検出されなくなるまで上述した処理を繰り返すことにより、罫線の誤認識を解消することができるようになる。
図11は、上記のような帳票識別装置10で行われる具体的な処理手順の一例を示すフローチャートである。この処理は、帳票識別装置10の制御部11がプログラム16を実行することによって行われる処理であり、制御部11が帳票識別部22として機能する場合の処理手順を示している。帳票識別装置10は、この処理を開始すると、まず記入済帳票画像6を取得するまで待機する(ステップS10)。そして記入済帳票画像6を取得すると(ステップS10でYES)、帳票識別装置10は、その記入済帳票画像6に対する傾き補正などの画像処理を行い、傾きのない記入済帳票画像6に変換する(ステップS11)。そして帳票識別装置10は、オリジナル帳票画像7を読み出し(ステップS12)、記入済帳票画像6をオリジナル帳票画像7にマッチングさせた状態で罫線探索を行うことにより、記入済帳票画像6から文字認識のための読取領域Rを検出する(ステップS13)。
帳票識別装置10は、記入済帳票画像6から検出された読取領域Rに対して文字認識処理を実行し、読取領域Rに含まれる文字列を検出する(ステップS14)。このとき、帳票識別装置10は、記入済帳票画像6から検出された複数の読取領域Rの全てに対して文字認識処理を実行する。
続いて帳票識別装置10は、文字列判定処理を実行し(ステップS15)、文字認識処理によって複数の読取領域Rのそれぞれから認識された文字列の先頭又は後尾に特定の文字が含まれているか否かを判定する(ステップS16)。その結果、文字列の先頭又は後尾に特定の文字が含まれている場合(ステップS16でYES)、帳票識別装置10は、誤認識判定処理を実行する(ステップS17)。この誤認識判定処理では、読取領域Rのヒストグラムを算出することにより、読取領域Rの端部に罫線40が存在するか否かが判断され、罫線40が存在する場合には特定の文字が罫線40の誤認識であると判定される。尚、誤認識判定処理(ステップS17)の詳細については後述する。そして帳票識別装置10は、特定の文字が誤認識であるか否かを判断し(ステップS18)、誤認識である場合(ステップS18でYES)、罫線補正処理を実行する(ステップS19)。この罫線補正処理では、特定の文字と誤認識された可能性のある罫線40が識別し易い罫線42に補正される。尚、罫線補正処理(ステップS19)の詳細については後述する。そして帳票識別装置10は、罫線補正が行われた後にステップS13に戻り、識別し易い罫線42に置き換えられた記入済帳票画像6から文字認識のための読取領域Rを再度検出する処理を実行すると共に、上述したステップS13以降の処理を繰り返す。
また帳票識別装置10は、文字認識処理によって複数の読取領域Rのそれぞれから認識された文字列の先頭又は後尾に特定の文字が含まれていない場合(ステップS16でNO)、罫線の誤認識は生じていないと判断し、文字認識処理によって認識された文字列を出力するための文字列出力処理を実行する(ステップS20)。またステップS18において誤認識でないと判断された場合(ステップS18でNO)にも、帳票識別装置10は、文字列出力処理を実行する(ステップS20)。そして文字列出力処理が終了すると、記入済帳票画像6に対する全ての処理が終了する。
図12は、誤認識判定処理(ステップS17)の詳細な処理手順の一例を示すフローチャートである。帳票識別装置10は、この処理を開始すると、文字列の先頭又は後尾に特定の文字を含む複数の読取領域Rが一定方向に沿って配置されているか否かを判断する(ステップS30)。その結果、複数の読取領域Rが一定方向に沿って配置されている場合(ステップS30でYES)、帳票識別装置10は、それらの一定方向に沿って配置されている複数の読取領域Rのそれぞれからヒストグラムを算出する(ステップS31)。そして帳票識別装置10は、特定の文字が文字列の先頭にあるかを判断し(ステップS32)、文字列の先頭にある場合(ステップS32でYES)、複数のヒストグラムのそれぞれの左端近傍に罫線40に対応する濃度分布が存在するか否かを判断する(ステップS33)。そして複数のヒストグラムの左端近傍に罫線40に対応する濃度分布が存在する場合(ステップS33でYES)、帳票識別装置10は、それらの濃度分布を構成する画素を抽出し、複数の読取領域Rの左端近傍にある共通の罫線40を検出する(ステップS34)。そして帳票識別装置10は、文字列の先頭にある特定の文字がその共通の罫線40を誤認識したものであると判定する(ステップS35)。
続いて帳票識別装置10は、特定の文字が文字列の後尾にあるかを判断し(ステップS36)、文字列の後尾にある場合(ステップS36でYES)、複数のヒストグラムのそれぞれの右端近傍に罫線40に対応する濃度分布が存在するか否かを判断する(ステップS37)。そして複数のヒストグラムの右端近傍に罫線40に対応する濃度分布が存在する場合(ステップS37でYES)、帳票識別装置10は、それらの濃度分布を構成する画素を抽出し、複数の読取領域Rの右端近傍にある共通の罫線40を検出する(ステップS38)。そして帳票識別装置10は、文字列の後尾にある特定の文字がその共通の罫線40を誤認識したものであると判定する(ステップS39)。
一方、複数の読取領域Rが一定方向に沿って配置されていない場合(ステップS30でNO)、帳票識別装置10は、文字列の先頭又は後尾から特定の文字が検出された1つ1つの読取領域Rに対して個別に誤認識であるか否かの判定を行う。すなわち、帳票識別装置10は、単独の読取領域Rからヒストグラムを算出する(ステップS41)。そして帳票識別装置10は、特定の文字が文字列の先頭にあるかを判断し(ステップS42)、文字列の先頭にある場合(ステップS42でYES)、ヒストグラムの左端近傍に罫線40に対応する濃度分布が存在するか否かを判断する(ステップS43)。そしてヒストグラムの左端近傍に罫線40に対応する濃度分布が存在する場合(ステップS43でYES)、帳票識別装置10は、その濃度分布を構成する画素を抽出し、その読取領域Rの左端近傍にある1つの罫線40を検出する(ステップS44)。そして帳票識別装置10は、文字列の先頭にある特定の文字がその罫線40を誤認識したものであると判定する(ステップS45)。
続いて帳票識別装置10は、特定の文字が文字列の後尾にあるかを判断し(ステップS46)、文字列の後尾にある場合(ステップS46でYES)、ヒストグラムの右端近傍に罫線40に対応する濃度分布が存在するか否かを判断する(ステップS47)。そしてヒストグラムの右端近傍に罫線40に対応する濃度分布が存在する場合(ステップS37でYES)、帳票識別装置10は、その濃度分布を構成する画素を抽出し、その読取領域Rの右端近傍にある1つの罫線40を検出する(ステップS48)。そして帳票識別装置10は、文字列の後尾にある特定の文字がその罫線40を誤認識したものであると判定する(ステップS49)。
以上で、誤認識判定処理(ステップS17)が終了する。尚、顧客が矩形枠の左端や右端に文字を記入していた場合に、その文字を罫線と誤検出してしまうことを防止するためには、単独の読取領域Rに対して行われる上述したステップS41〜S49の処理は行わないようにしても良い。
次に図13は、罫線補正処理(ステップS19)の詳細な処理手順の一例を示すフローチャートである。帳票識別装置10は、この処理を開始すると、まず誤認識判定処理(ステップS17)で検出された罫線40を解析する(ステップS50)。そして帳票識別装置10は、罫線40が平行な複数の細線によって構成されるか否かを判断し(ステップS51)、複数の細線によって構成される場合(ステップS51でYES)、複数の細線の隙間を黒色の画素で埋める処理を実行する(ステップS52)。尚、罫線40が平行な複数の細線によって構成されていない場合(ステップS51でNO)、ステップS52の処理はスキップする。次に帳票識別装置10は、罫線40に欠損部分があるか否かを判断し(ステップS53)、欠損部分がある場合(ステップS53でYES)、その欠損部分を補完する処理を実行する(ステップS54)。尚、罫線40に欠損部分がない場合(ステップS53でNO)、ステップS54の処理はスキップする。次に帳票識別装置10は、罫線40に対する太線化処理を行う際の画素幅を決定し(ステップS55)、罫線40の幅方向に黒色の画素を付加することにより、罫線40を太くする太線化処理を実行する(ステップS56)。
以上で罫線補正処理(ステップS19)が終了する。上述の罫線補正処理(ステップS19)は、図11に示したステップS13〜S19のループ処理が繰り返し行われることによって複数回実行される処理である。そのため、帳票識別装置10は、罫線補正処理(ステップS19)を実行する度に、例えば太線化処理を行う際の画素幅を1画素ずつ増やすなど、罫線補正処理を行う際のパラメータをその都度変更する。これにより、罫線補正処理が実行される度に、記入済帳票画像6に含まれる罫線42がより識別し易い状態に加工されるようになり、ループ処理を繰り返すことによってステップS16又はS18においてNOと判断されるケースが生じることになる。
上記においては、主として記入済帳票画像6において縦方向の罫線40を特定の文字と誤認識する場合を例示したが、文字認識部34が誤認識する罫線40は縦方向のものだけに限られない。すなわち、文字認識部34は、横方向の罫線40の一部41が読取領域Rに入り込んでいる場合にもその罫線40の一部41を文字として誤認識する可能性がある。図14は、横方向の罫線40の一部41が読取領域Rの内側に入り込んでいる場合を例示する図である。図14(a)に示すように読取領域Rの上部にある横方向の罫線40の一部41が読取領域Rの内側に入り込んでいる場合、文字認識部34がその読取領域Rに対して文字認識処理を行うと、例えば「−2−」という文字列が検出される。この文字列に含まれる「−」は罫線40の一部41を文字として誤認識したものである。横方向の罫線40の一部41が誤認識され得る文字としては、「−」の他にも、例えば「ー」や「_」などの文字があり、更には特殊文字なども存在する。したがって、文字列判定部35は、それらの文字を誤認識される可能性のある特定の文字として予め登録しておくことにより、縦方向の罫線40だけでなく、横方向の罫線40が文字として誤認識された場合にも罫線補正を行うことができるようになる。
この場合、罫線検出部36は、図14(b)に示すように読取領域Rの縦軸方向に対してヒストグラムを算出し、文字列判定部35によって特定の文字が検出された位置に応じてヒストグラムの上端近傍又は下端近傍の所定領域Rcから罫線40に対応する画素濃度分布のピークPcを検出することにより横方向の罫線40を検出する。その結果、横方向の罫線40が検出されれば、「−」や「ー」、「_」などの特定の文字として認識された文字が罫線40の誤認識であることが判明する。したがって、本実施形態の帳票識別装置10は、縦方向及び横方向のいずれの罫線40が文字と誤認識された場合にも、その罫線40を補正したうえで再度文字認識を行うことにより、文字認識の精度を自動的に向上させることができるものである。
以上のように本実施形態の帳票識別装置10は、帳票5に文字が記載された記入済帳票画像6を取得する記入済画像取得部31と、記入済帳票画像6において罫線40で囲まれた読取領域Rに記載された文字を認識する文字認識処理を実行する文字認識部34と、文字認識部34によって読取領域Rから認識された文字列の先頭又は後尾に特定の文字が含まれるか否かを判定する文字列判定部35と、文字列判定部35によって文字列の先頭又は後尾に特定の文字が含まれると判定された場合に、記入済帳票画像6において読取領域Rに含まれる罫線40を検出する罫線検出部36と、罫線検出部36によって検出される罫線40を1本の実線に補正する罫線補正部37と、罫線補正部37によって罫線40が補正された記入済帳票画像6に対して文字認識部34による文字認識処理を再度実行させる制御部38と、を備える構成である。このような構成によれば、読取領域Rの内側にある罫線40が特定の文字と誤認識された場合に、その誤認識された罫線40を特定したうえでその罫線40が文字と誤認識されないように補正することができる。そして罫線40が補正された状態で文字認識処理を再度実行することにより、罫線40の誤認識を低減させることができるようになる。その結果、本実施形態の帳票識別装置10は、従来よりも文字認識率を向上させることができるようになる。
以上、本発明に関する一実施形態について説明したが、本発明は、上記実施形態において説明した内容のものに限られるものではなく、種々の変形例が適用可能である。
例えば上記実施形態では、帳票5が注文書である場合を例示したが、帳票5は注文書に限られるものではない。すなわち、帳票5は、罫線を含むものであれば、どのようなものであっても構わない。