(57)【要約】【課題】証憑画像に対する文字認識の精度を向上させる。【解決手段】画像処理装置は、抽出部、及び、処理部を備え、証憑を表す証憑画像に対して文字認識を行う。抽出部は、証憑画像から、行方向へ並んだ複数の暫定文字領域を抽出する。処理部は、複数の暫定文字領域を含む行領域を行方向において区画するための間隔として複数の文字間隔候補を設定し、各文字間隔候補にについて、文字間隔候補に従う区画位置と文字存在部分との重複度合いを算出し、算出した複数の重複度合いに基づいて複数の文字間隔候補から文字間隔を決定し、該決定した文字間隔に従って行領域を区画した区画領域に対して文字を認識する。【選択図】図３
2020149288.tif 000002
【特許請求の範囲】
【請求項１】
証憑を表す証憑画像に対して文字認識を行う画像処理装置であって、
前記証憑画像から、行方向へ並んだ複数の暫定文字領域を抽出する抽出部と、
処理部と、を備え、
前記処理部は、
前記複数の暫定文字領域を含む行領域を前記行方向に区画するための間隔として複数の文字間隔候補を設定し、
各前記文字間隔候補について、前記文字間隔候補に従う区画位置と文字存在部分との重複度合いを算出し、
算出した複数の前記重複度合いに基づいて複数の前記文字間隔候補から文字間隔を決定し、
前記決定した文字間隔に従って前記行領域を区画した区画領域に対して文字を認識する、画像処理装置。
【請求項２】
前記抽出部は、前記暫定文字領域の配置を表す配置情報を前記暫定文字領域に対応付け、
前記処理部は、各前記暫定文字領域に対応付けられた前記配置情報に基づいて前記行領域の高さを決定し、該決定した高さに基づいて前記複数の文字間隔候補を設定する、請求項１に記載の画像処理装置。
【請求項３】
前記処理部は、前記重複度合いに基づいて前記行領域を半角文字単位で仮に区画する半角文字間隔を設定し、該設定した半角文字間隔に従った複数の半角区画位置のうち前記文字存在部分と重複する度合いが基準度合いよりも大きい半角区画位置を前記行領域の区画から除くことにより前記半角文字間隔を全角文字間隔に変更し、前記半角文字間隔と前記全角文字間隔のいずれか一方である前記文字間隔に従って各前記区画領域に対して文字を認識する、請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記処理部は、証憑を表す画像に含まれる文字を認識するための機械学習により生成された文字認識モデルを用いて各前記区画領域に対して文字を認識する、請求項１〜請求項３のいずれか一項に記載の画像処理装置。
【請求項５】
前記抽出部は、前記証憑画像に対して第一の文字認識を行うことにより前記証憑画像から前記複数の暫定文字領域を抽出し、
前記処理は、前記第一の文字認識よりも精度が高い第二の文字認識を各前記区画領域に対して行う、請求項１〜請求項４のいずれか一項に記載の画像処理装置。
【請求項６】
証憑を表す証憑画像に対して文字認識を行う画像処理方法であって、
前記証憑画像から、行方向へ並んだ複数の暫定文字領域を抽出する抽出工程と、
処理工程と、を含み、
前記処理工程では、
前記複数の暫定文字領域を含む行領域を前記行方向において区画するための間隔として複数の文字間隔候補を設定し、
各前記文字間隔候補について、前記文字間隔候補に従う区画位置と文字存在部分との重複度合いを算出し、
算出した複数の前記重複度合いに基づいて複数の前記文字間隔候補から文字間隔を決定し、
前記決定した文字間隔に従って前記行領域を区画した区画領域に対して文字を認識する処理工程と、を含む、画像処理方法。
【請求項７】
証憑を表す証憑画像に対して文字認識を行うための画像処理プログラムであって、
前記証憑画像から、行方向へ並んだ複数の暫定文字領域を抽出する抽出機能と、
処理機能と、をコンピューターに実現させ、
前記処理機能は、
前記複数の暫定文字領域を含む行領域を前記行方向において区画するための間隔として複数の文字間隔候補を設定し、
各前記文字間隔候補について、前記文字間隔候補に従う区画位置と文字存在部分との重複度合いを算出し、
算出した複数の前記重複度合いに基づいて複数の前記文字間隔候補から文字間隔を決定し、
前記決定した文字間隔に従って前記行領域を区画した区画領域に対して文字を認識する、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、証憑を表す証憑画像に対して文字認識を行う画像処理装置、画像処理方法、及び、画像処理プログラムに関する。
【背景技術】
【０００２】
レシート、領収書、等の証憑をスキャナーで読み取った画像に含まれる複数の文字をＯＣＲで認識することが行われている。ここで、ＯＣＲは、装置としてはOptical Character Readerの略称であり、光学式文字認識という意味ではOptical Character Recognitionの略称である。装置としてのＯＣＲは、認識した文字に加えて、画像の中で文字の領域を表す情報等も出力する。
【０００３】
特許文献１には、小切手表面に印字された文字の認識を行う小切手処理装置が開示されている。この小切手処理装置は、スキャナーから出力された画像データから切り出した第１の切り出し領域について文字認識を行って第１候補を出力し、前述の画像データから切り出した第２の切り出し領域について文字認識を行って第２候補を出力する。第２の切り出し領域の大きさは、第１の切り出し領域の大きさと同じである。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１２７３７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＯＣＲは、画像から複数の文字を一つの領域として切り出したり、１文字に満たない領域を１文字として切り出したりすることがある。上述した小切手処理装置は、切り出し領域の大きさが変わらないので、一つの領域として切り出された複数の文字や、１文字に満たない領域にかかっている文字を、認識することができない。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、証憑を表す証憑画像に対して文字認識を行う画像処理装置であって、
前記証憑画像から、行方向へ並んだ複数の暫定文字領域を抽出する抽出部と、
処理部と、を備え、
前記処理部は、
前記複数の暫定文字領域を含む行領域を前記行方向に区画するための間隔として複数の文字間隔候補を設定し、
各前記文字間隔候補について、前記文字間隔候補に従う区画位置と文字存在部分との重複度合いを算出し、
算出した複数の前記重複度合いに基づいて複数の前記文字間隔候補から文字間隔を決定し、
前記決定した文字間隔に従って前記行領域を区画した区画領域に対して文字を認識する、態様を有する。
【０００７】
また、本発明の画像処理方法は、
証憑を表す証憑画像に対して文字認識を行う画像処理方法であって、
前記証憑画像から、行方向へ並んだ複数の暫定文字領域を抽出する抽出工程と、
処理工程と、を含み、
前記処理工程では、
前記複数の暫定文字領域を含む行領域を前記行方向において区画するための間隔として複数の文字間隔候補を設定し、
各前記文字間隔候補について、前記文字間隔候補に従う区画位置と文字存在部分との重複度合いを算出し、
算出した複数の前記重複度合いに基づいて複数の前記文字間隔候補から文字間隔を決定し、
前記決定した文字間隔に従って前記行領域を区画した区画領域に対して文字を認識する処理工程と、を含む、態様を有する。
【０００８】
さらに、本発明の画像処理プログラムは、
証憑を表す証憑画像に対して文字認識を行うための画像処理プログラムであって、
前記証憑画像から、行方向へ並んだ複数の暫定文字領域を抽出する抽出機能と、
処理機能と、をコンピューターに実現させ、
前記処理機能は、
前記複数の暫定文字領域を含む行領域を前記行方向において区画するための間隔として複数の文字間隔候補を設定し、
各前記文字間隔候補について、前記文字間隔候補に従う区画位置と文字存在部分との重複度合いを算出し、
算出した複数の前記重複度合いに基づいて複数の前記文字間隔候補から文字間隔を決定し、
前記決定した文字間隔に従って前記行領域を区画した区画領域に対して文字を認識する、態様を有する。
【図面の簡単な説明】
【０００９】
【図１】画像処理装置を含むシステムの構成例を模式的に示すブロック図。
【図２】文字認識処理の例を示すフローチャート。
【図３】文字間隔決定処理の例を示すフローチャート。
【図４】ＯＣＲエンジンによる認識結果の例を模式的に示す図。
【図５】書体の各構成要素を模式的に示す図。
【図６】文字間隔を決定する例を模式的に示す図。
【図７】区画位置と文字存在部分との重複度合いの例を模式的に示す図。
【図８】半角文字間隔の一部を全角文字間隔に変更する例を模式的に示す図。
【図９】証憑画像に対してＯＣＲにより文字認識が行われた例を模式的に示す図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を説明する。むろん、以下の実施形態は本発明を例示するものに過ぎず、実施形態に示す特徴の全てが発明の解決手段に必須になるとは限らない。
【００１１】
（１）本発明に含まれる技術の概要：
まず、図１〜９に示される例を参照して本発明に含まれる技術の概要を説明する。尚、本願の図は模式的に例を示す図であり、これらの図に示される各方向の拡大率は異なることがあり、各図は整合していないことがある。むろん、本技術の各要素は、符号で示される具体例に限定されない。「本発明に含まれる技術の概要」において、括弧内は直前の語の補足説明を意味する。
【００１２】
態様１：
図１等に例示するように、本技術の一態様に係る画像処理装置（例えばメインサーバー３０）は、証憑を表す証憑画像ＩＭ１に対して文字認識を行う画像処理装置（３０）であって、抽出部Ｕ１、及び、処理部Ｕ２を備える。前記抽出部Ｕ１は、前記証憑画像ＩＭ１から、行方向Ｄ１へ並んだ複数の暫定文字領域Ａ１を抽出する。前記処理部Ｕ２は、前記複数の暫定文字領域Ａ１を含む行領域Ａ１０を前記行方向Ｄ１において区画するための間隔として複数の文字間隔候補ｉを設定し、各前記文字間隔候補ｉについて、前記文字間隔候補ｉに従う区画位置Ｐ１と文字存在部分Ａ１との重複度合い（例えば文字非存在画素の割合Ｒｉ）を算出し、算出した複数の前記重複度合い（Ｒｉ）に基づいて複数の前記文字間隔候補ｉから文字間隔（例えば幅Ｗ３，Ｗ４）を決定し、該決定した文字間隔（Ｗ３，Ｗ４）に従って前記行領域Ａ１０を区画した区画領域Ａ２に対して文字を認識する。
【００１３】
上述した態様１では、各文字間隔候補ｉに従った区画位置Ｐ１と、行領域Ａ１０の中で複数の文字が存在する文字存在部分Ａ１１と、の重複度合い（Ｒｉ）に基づいて行領域Ａ１０を区画する文字間隔（Ｗ３，Ｗ４）が決定され、該文字間隔（Ｗ３，Ｗ４）に従って行領域Ａ１０を区画した区画領域Ａ２に対して文字が認識される。証憑に使用される文字の間隔は少ない種類に限定されることが多いので、各文字の切り出しに対するかすれ等の影響が少なくなる。従って、本態様は、証憑画像に対する文字認識の精度を向上させることができる。
【００１４】
ここで、証憑は、外部の第三者から入手された会計資料を意味し、レシート、領収書、請求書、納品書、等を含む。
行領域の中で文字が存在しない文字非存在部分は文字存在部分を除いた部分であるので、区画位置と文字存在部分との重複度合いは、複数の区画位置と重複した文字存在画素の割合、複数の区画位置と重複した文字非存在画素の割合、等を含む。
文字間隔は、等間隔に限定されず、半角文字間隔と全角文字間隔が混在する等、複数の間隔が混在していてもよい。文字間隔候補も、等間隔に限定されず、半角文字間隔と全角文字間隔が混在する等、複数の間隔が混在していてもよい。
尚、上述した付言は、以下の態様においても適用される。
【００１５】
態様２：
図４に例示するように、前記抽出部Ｕ１は、前記暫定文字領域Ａ１の配置を表す配置情報ＩＡ１を前記暫定文字領域Ａ１に対応付けてもよい。前記処理部Ｕ２は、各前記暫定文字領域Ａ１に対応付けられた前記配置情報ＩＡ１に基づいて前記行領域Ａ１０の高さＨ０を決定してもよく、該決定した高さＨ０に基づいて前記複数の文字間隔候補ｉを設定してもよい。証憑に使用される文字は行の高さに応じた間隔になることが多いので、本態様は、処理を高速化させることができる。
【００１６】
態様３：
図３，６等に例示するように、前記処理部Ｕ２は、前記重複度合い（Ｒｉ）に基づいて前記行領域Ａ１０を半角文字単位で仮に区画する半角文字間隔（例えば幅Ｗ３）を設定してもよい。当該処理部Ｕ２は、図８等に例示するように、前記設定した半角文字間隔（Ｗ３）に従った複数の半角区画位置Ｐ２のうち前記文字存在部分Ａ１１と重複する度合い（例えば文字存在画素の数Ｎｊ）が基準度合い（例えば閾値Ｔｎ）よりも大きい半角区画位置を前記行領域Ａ１０の区画から除くことにより前記半角文字間隔（Ｗ３）を全角文字間隔（例えば幅Ｗ４）に変更してもよい。また、当該処理部Ｕ２は、前記半角文字間隔（Ｗ３）と前記全角文字間隔（Ｗ４）のいずれか一方である前記文字間隔（Ｗ３，Ｗ４）に従って各前記区画領域Ａ２に対して文字を認識してもよい。証憑には半角文字と全角文字が使用されることが多いので、本態様は、証憑画像に対する文字認識の精度をさらに向上させることができる。
ここで、行領域の中で文字非存在部分は文字存在部分を除いた部分であるので、半角区画位置が文字存在部分と重複する度合いは、半角区画位置と重複した文字存在画素の数、半角区画位置と重複した文字非存在画素の数、等を含む。この付言は、以下の態様においても適用される。
【００１７】
態様４：
前記処理部Ｕ２は、証憑を表す画像に含まれる文字を認識するための機械学習により生成された文字認識モデル（例えば図１に示すＤＬエンジン３２）を用いて各前記区画領域Ａ２に対して文字を認識してもよい。本態様は、証憑画像に対する文字認識の精度を向上させる好適な例を提供することができる。
【００１８】
態様５：
前記抽出部Ｕ１は、図２等に例示するように、前記証憑画像ＩＭ１に対して第一の文字認識を行うことにより前記証憑画像ＩＭ１から前記複数の暫定文字領域Ａ１を抽出してもよい。前記処理部Ｕ２は、前記第一の文字認識よりも精度が高い第二の文字認識を各前記区画領域Ａ２に対して行ってもよい。本態様も、証憑画像に対する文字認識の精度を向上させる好適な例を提供することができる。
【００１９】
態様６：
また、図２等に例示するように、本技術の一態様に係る画像処理方法は、抽出部Ｕ１に対応する抽出工程ＳＴ１、及び、処理部Ｕ２に対応する処理工程ＳＴ２を含む。本態様も、証憑画像に対する文字認識の精度を向上させることができる。
【００２０】
態様７：
さらに、図１に例示するように、本技術の一態様に係る画像処理プログラムＰＲ１は、抽出部Ｕ１に対応する抽出機能ＦＵ１、及び、処理部Ｕ２に対応する処理機能ＦＵ２をコンピューター（例えばメインサーバー３０）に実現させる。本態様も、証憑画像に対する文字認識の精度を向上させることができる。
【００２１】
さらに、本技術は、上述した画像処理装置を含む複合装置、上述した画像処理方法を含む情報処理方法、上述した画像処理プログラムを含む情報処理プログラム、前述のいずれかのプログラムを記録したコンピューター読み取り可能な媒体、等に適用可能である。前述のいずれかの装置は、分散した複数の部分で構成されてもよい。
【００２２】
（２）本技術を想到した背景：
図９は、証憑であるレシートをスキャナーで読み取ることにより得られた証憑画像ＩＭ１に対してＯＣＲにより文字認識が行われた例を模式的に示している。尚、レシートは、キャッシュレジスターで機械的に発行される、宛名の無い領収書を意味する。ＯＣＲは、認識された文字を含む認識文字領域Ａ５を複数、証憑画像ＩＭ１から抽出する。
【００２３】
例えば、証憑画像ＩＭ１において上の行にある文字「￥」は、１文字として正しく認識されている。この場合、１文字のみ含む認識文字領域Ａ５が証憑画像ＩＭ１から抽出され、正しく認識された文字、及び、認識文字領域Ａ５の範囲を表す情報がＯＣＲから出力される。認識文字領域Ａ５の範囲を表す情報は、詳しくは後述するが、認識文字領域Ａ５の開始座標、認識文字領域Ａ５の幅を表す情報、認識文字領域Ａ５の高さを表す情報、等が含まれる。一方、図９において、かすれＰＡ１を有する文字「０」及び「６」は、それぞれ２文字として認識され、正しく認識されていない。図９には、高さ方向Ｄ２に向いた線状のかすれＰＡ１が入った文字「０」が２つの文字「（」、「）」と認識され、高さ方向Ｄ２に向いた線状のかすれＰＡ１が入った文字「６」が２つの文字「Ｅ」、「ｊ」と認識されていることが示されている。特に、証憑に感熱紙が使用されている場合、文字の一部がかすれ易く、このために文字が正しく認識されないことがある。キャッシュレジスターで発行されるレシートは、感熱紙が使用されることが多いため、文字のかすれが生じ易い。
【００２４】
また、レシートに汚れが付着することもある。図９において、汚れＳＰ１に近い２文字「２０」、２文字「８年」、及び、２文字「２３」は、それぞれ１文字として認識され、正しく認識されていない。特に、２文字「８年」の認識文字領域Ａ５の幅は、半角文字と全角文字を合わせた幅となっており、レシートに使用される文字としての幅に合っていない。
【００２５】
キャッシュレジスターで発行されるレシートは、全角文字の幅が一定であり、半角文字の幅が全角文字の幅の半分であることが多い。そこで、本技術は、行方向Ｄ１へ並んだ複数の文字を囲む行領域Ａ１０を行方向Ｄ１において区画する文字間隔を複数の候補のうちから選択して、選択した文字間隔に従って各文字領域の文字を認識することにより、文字認識の精度を向上させている。以下、この技術の具体例を説明する。
【００２６】
（３）画像処理装置を含むシステムの構成の具体例：
図１は、画像処理装置を含むシステムの構成の具体例を模式的に示している。図１に示すシステムＳＹ１は、スキャナー１０、クライアント２０、画像処理装置の例であるメインサーバー３０、及び、ストレージサーバー４０を含んでいる。ここで、クライアントはクライアントコンピューターの略称であり、メインサーバーはメインサーバーコンピューターの略称であり、ストレージサーバーはストレージサーバーコンピューターの略称である。メインサーバー３０は、画像処理装置の例である。クライアント２０、メインサーバー３０、及び、ストレージサーバー４０は、インターネットを含むネットワークＮＥ１に接続されている。ネットワークＮＥ１への接続は、有線による接続でもよいし、無線による接続でもよいし、有線と無線の両方による接続でもよい。インターネットを含むネットワークＮＥ１は、ＬＡＮを含んでいてもよい。ここで、ＬＡＮは、Local Area Networkの略称である。メインサーバー３０とストレージサーバー４０は、ネットワークＮＥ１を介してユーザーにクラウドサービスを提供可能である。
【００２７】
スキャナー１０は、例えば、光源からの光を原稿に当てて原稿画像を読み取り、データとしての原稿画像を外部へ出力する。図１に示すスキャナー１０は、クライアント２０の通信Ｉ／Ｆ２０ｈに対して有線又は無線により通信可能に接続されている。ここで、Ｉ／Ｆは、インターフェイスの略称である。スキャナー１０は、原稿としての証憑を光学的に読み取ると、対応する証憑画像ＩＭ１をクライアント２０に出力する。スキャナー１０には、原稿台ガラスと原稿カバーとの間に原稿を配置するフラットベッド式のスキャナー、原稿送り装置付きのスキャナー、等を用いることができる。また、スキャナー１０は、スキャナー機能に加えて、印刷機能、ファクシミリ通信機能、といった機能を兼ね備えた複合機でもよい。
【００２８】
クライアント２０には、タブレット端末を含めたパーソナルコンピューター、スマートフォン、等を用いることができる。図１に示すクライアント２０は、プロセッサーであるＣＰＵ２０ａ、半導体メモリーであるＲＯＭ２０ｂ、半導体メモリーであるＲＡＭ２０ｃ、記憶装置２０ｄ、クライアント用ネットワークＩ／Ｆ２０ｅ、入力装置２０ｆ、表示装置２０ｇ、通信Ｉ／Ｆ２０ｈ、等を有している。これらの要素２０ａ〜２０ｈ等は、電気的に接続されていることにより互いに情報を入出力可能である。ここで、ＣＰＵはCentral Processing Unitの略称であり、ＲＯＭはRead Only Memoryの略称であり、ＲＡＭはRandom Access Memoryの略称である。
【００２９】
記憶装置２０ｄは、図示していないが、オペレーティングシステム、アプリケーションプログラム、等を記憶している。アプリケーションプログラムは、スキャナー１０を制御するドライバープログラムを含む。このドライバープログラムは、スキャナー１０が証憑を読み取ることにより生成された証憑画像ＩＭ１をスキャナー１０から受信する機能、及び、証憑画像ＩＭ１をメインサーバー３０にアップロードする機構をクライアント２０に実現させる。記憶装置２０ｄには、ハードディスクといった磁気記憶装置、フラッシュメモリーといった不揮発性半導体メモリー、等を用いることができる。ＣＰＵ２０ａは、記憶装置２０ｄに記憶されている情報を適宜、ＲＡＭ２０ｃに読み出し、読み出したプログラムを実行することにより各種処理を行う。ネットワークＩ／Ｆ２０ｅは、ネットワークＮＥ１に接続され、このネットワークＮＥ１に繋がっている相手装置と所定の通信規格に従って通信を行う。入力装置２０ｆには、ポインティングデバイス、キーボードを含むハードキー、表示パネルの表面に貼り付けられたタッチパネル、等を用いることができる。表示装置２０ｇには、液晶表示パネル等を用いることができる。通信Ｉ／Ｆ２０ｈは、スキャナー１０といった周辺機器に接続するためのインターフェイスである。通信Ｉ／Ｆ２０ｈには、ＵＳＢインターフェイス、無線通信インターフェイス、等を用いることができる。ここで、ＵＳＢは、Universal Serial Busの略称である。
【００３０】
尚、スキャナー１０は、クライアント２０の構成を含んでいてもよい。この場合、スキャナー１０は、ネットワークＮＥ１を介した外部との通信機能を兼ね備えた装置として機能する。
【００３１】
メインサーバー３０は、ネットワークＮＥ１上で文字認識機能を提供するサーバーコンピューターであり、１台のコンピューターでもよいし、複数台のコンピューターでもよい。図１に示すメインサーバー３０は、プロセッサーであるＣＰＵ３０ａ、半導体メモリーであるＲＯＭ３０ｂ、半導体メモリーであるＲＡＭ３０ｃ、記憶装置３０ｄ、メインサーバー用ネットワークＩ／Ｆ３０ｅ、等を有している。これらの要素３０ａ〜３０ｅ等は、電気的に接続されていることにより互いに情報を入出力可能である。プロセッサーは、一つのＣＰＵに限定されず、複数のＣＰＵ、ＡＳＩＣといったハードウェア回路とＣＰＵとの組合せ、等でもよい。ここで、ＡＳＩＣは、Application Specific Integrated Circuitの略称である。図示していないが、メインサーバー３０は、オペレーターによる操作を受け付けるための入力装置、オペレーターに情報を示すための表示装置、等を備えていてもよい。
【００３２】
記憶装置３０ｄは、図示しないオペレーティングシステム、画像処理プログラムＰＲ１、等を記憶している。記憶装置３０ｄには、ハードディスクといった磁気記憶装置、フラッシュメモリーといった不揮発性半導体メモリー、等を用いることができる。ネットワークＩ／Ｆ３０ｅは、ネットワークＮＥ１に接続され、このネットワークＮＥ１に繋がっている相手装置と所定の通信規格に従って通信を行う。
【００３３】
図１に示すＣＰＵ３０ａは、抽出部Ｕ１の例である汎用的なＯＣＲエンジン３１、及び、ＡＩを利用した文字認識部の例であるＤＬエンジン３２を備えている。ここで、ＡＩはArtificial Intelligenceの略称であり、ＤＬはDeep Learningの略称である。文字認識部は、処理部Ｕ２の一部である。ＯＣＲエンジン３１は、画像処理プログラムＰＲ１がメインサーバー３０に実現させる抽出機能ＦＵ１でもよい。ＤＬエンジン３２は、画像処理プログラムＰＲ１がメインサーバー３０に実現させる文字認識機能でもよい。文字認識機能は、処理機能ＦＵ２の一部である。
図１に示す画像処理プログラムＰＲ１は、制御機能をメインサーバー３０に実現させる制御プログラム３３を含んでいる。制御機能は、処理機能ＦＵ２の一部である。
【００３４】
メインサーバー３０のＣＰＵ３０ａは、記憶装置３０ｄに記憶されている情報を適宜、ＲＡＭ３０ｃに読み出し、読み出したプログラムを実行することにより各種処理を行う。ＣＰＵ３０ａは、ＲＡＭ３０ｃに読み出された画像処理プログラムＰＲ１を実行することにより、上述した機能に対応する処理を行う。画像処理プログラムＰＲ１が上述した機能ＦＵ１，ＦＵ２をコンピューターに実現させる場合、画像処理プログラムＰＲ１は、コンピューターであるメインサーバー３０を、抽出機能ＦＵ１に対応する抽出部Ｕ１、及び、処理機能ＦＵ２に対応する処理部Ｕ２として機能させる。また、画像処理プログラムＰＲ１を実行するメインサーバー３０は、抽出部Ｕ１に対応する抽出工程ＳＴ１、及び、処理部Ｕ２に対応する処理工程ＳＴ２を実施する。上述した機能ＦＵ１，ＦＵ２をコンピューターに実現させる画像処理プログラムＰＲ１を記憶したコンピューター読み取り可能な媒体は、メインサーバー３０の内部の記憶装置に限定されず、メインサーバー３０の外部の記録媒体でもよい。
【００３５】
図１に示すメインサーバー３０は、ストレージサーバー４０と通信可能に接続している。ストレージサーバー４０は、ネットワークＮＥ１上でストレージ機能を提供するサーバーコンピューターであり、１台のコンピューターでもよいし、複数台のコンピューターでもよい。図示していないが、ストレージサーバー４０は、プロセッサーであるＣＰＵ、半導体メモリーであるＲＯＭ及びＲＡＭ、内部記憶装置、ストレージサーバー用ネットワークＩ／Ｆ、等を有している。ストレージサーバー４０は、メインサーバー３０から受信したデータを内部記憶装置に記憶可能であり、内部記憶装置に記憶されているデータをネットワークＮＥ１経由で送信可能である。
むろん、サーバーコンピューターがメインサーバー３０とストレージサーバー４０とに分かれていることは一例に過ぎず、メインサーバー３０がストレージサーバー４０の構成を含んでいてもよい。
【００３６】
（４）文字認識処理の具体例：
図２は、メインサーバー３０で行われる文字認識処理を模式的に例示している。図３は、図２のステップＳ１１０で行われる文字間隔決定処理を模式的に例示している。ここで、図２のステップＳ１０２〜Ｓ１０４は、抽出部Ｕ１、抽出工程ＳＴ１、及び、抽出機能ＦＵ１に対応している。図２のステップＳ１０６〜Ｓ１１２、及び、図３のステップＳ２０２〜Ｓ２１２は、処理工程ＳＴ２に対応している。以下、「ステップ」の記載を省略する。また、抽出部Ｕ１が行うことをＯＣＲエンジン３１が行うとして記載し、ＡＩを利用した文字認識部が行うことをＤＬエンジン３２が行うとして記載することにする。
【００３７】
ユーザーがスキャナー１０にレシートといった証憑を読み取らせると、スキャナー１０は、読み取った証憑を表す証憑画像ＩＭ１を生成し、該証憑画像ＩＭ１をクライアント２０に送信する。クライアント２０は、証憑画像ＩＭ１を受信し、ネットワークＮＥ１を介してメインサーバー３０に送信する。そこで、メインサーバー３０は、Ｓ１０２において、ネットワークＮＥ１を介して証憑画像ＩＭ１を受信する。証憑画像ＩＭ１の例は、図９に示されている。
【００３８】
証憑画像ＩＭ１を取得したメインサーバー３０は、Ｓ１０４において、証憑画像ＩＭ１を対象とした第一の文字認識処理を汎用的なＯＣＲエンジン３１に実行させる。ＯＣＲエンジン３１は、図９に例示するように、証憑画像ＩＭ１に対して第一の文字認識を行うことにより証憑画像ＩＭ１から配置情報を含む複数の認識文字領域Ａ５を抽出する。複数の認識文字領域Ａ５は、行方向Ｄ１へ並んだ複数の暫定文字領域Ａ１を含んでいる。本具体例では、行方向Ｄ１へ並んだ複数の暫定文字領域Ａ１を対象として説明する。
【００３９】
ＯＣＲエンジン３１は、証憑画像ＩＭ１のレイアウトを解析し、解析結果に基づいて行を切り出し、切り出された各行に含まれている１文字らしき画像について、当該１文字らしき画像を囲む暫定文字領域Ａ１を設定する。図９において、「￥」、かすれＰＡ１を有する「０」の両側、かすれＰＡ１を有する「６」の両側、汚れに近い「２０」、汚れに近い「８年」、汚れに近い「２３」、等に１文字の暫定文字領域Ａ１が設定されていることが示されている。次に、ＯＣＲエンジン３１は、各暫定文字領域Ａ１の画像から暫定文字領域Ａ１内の文字を所定のアルゴリズムに従って推測する。１文字に対応していない暫定文字領域Ａ１は、多くの場合、正しい文字が認識されないことになる。ＯＣＲエンジン３１は、各暫定文字領域Ａ１の配置を表す配置情報とともに認識文字を出力する。
【００４０】
図４は、ＯＣＲエンジン３１から出力される認識結果ＲＥ９を模式的に例示している。図４の下部には、暫定文字領域Ａ１の配置を表す配置情報ＩＡ１の各項目を説明するための模式的な暫定文字領域Ａ１を示している。認識結果ＲＥ９は、各暫定文字領域Ａ１に対応付けられた認識文字及び配置情報ＩＡ１を含んでいる。配置情報ＩＡ１は、例えば、証憑画像ＩＭ１における画素単位の数値で暫定文字領域Ａ１の配置を表す。図４に示す配置情報ＩＡ１は、暫定文字領域Ａ１の左端の位置を示す文字左端Ｘｓと、暫定文字領域Ａ１の上端の位置を示す文字上端Ｙｓと、暫定文字領域Ａ１の幅を表す文字幅Ｗｃと、暫定文字領域Ａ１の高さを表す文字高さＨｃと、暫定文字領域Ａ１のベースラインＢＬと、を含んでいる。文字左端Ｘｓと文字上端Ｙｓは、暫定文字領域Ａ１の開始座標であり、例えば、暫定文字領域Ａ１の左上の角にある画素の座標値で表される。文字幅Ｗｃは、例えば、行方向Ｄ１における暫定文字領域Ａ１の画素数で表される。文字高さＨｃは、例えば、高さ方向Ｄ２における暫定文字領域Ａ１の画素数で表される。
【００４１】
図５は、書体の各構成要素を模式的に示している。図５の上段には小文字の欧文書体が示され、図５の下段には大文字の欧文書体が示されている。
【００４２】
アルファベットの小文字の高さは、エックスハイト（x-height）、アセンダー（Ascender）、及び、ディセンダー（Descender）に分けることができる。また、エックスハイトとディセンダーとの間の仮想線はベースライン（Baseline）ＢＬであり、ディセンダーの下端の仮想線はディセンダーライン（Descender line）ＤＬであり、エックスハイトとアセンダーとの間の仮想線はミーンライン（Mean line）であり、アセンダーラインの上端の仮想線はアセンダーライン（Ascender line）ＡＬである。  アルファベットの小文字には、「ｘ」、「ａ」、「ｃ」、等のようにベースラインＢＬとミーンラインＭＬとの間に配置される文字と、「ｂ」、「ｄ」、等のようにベースラインＢＬとアセンダーラインＡＬとの間に配置される文字と、「ｇ」、「ｊ」、等のようにディセンダーラインＤＬとミーンラインＭＬとの間に配置される文字と、がある。
【００４３】
アルファベットの大文字の高さは、キャップハイト（Cap height）に合わせられている。キャップハイトの下端の仮想線はベースラインＢＬであり、キャップハイトの上端の仮想線はキャップライン（Cap line）ＣＬである。キャップラインＣＬは、アセンダーラインＡＬよりも低く設計されることもあれば、アセンダーラインＡＬよりも高く設計されることもある。
【００４４】
以上説明したように、欧文書体は、ベースラインＢＬが合わせられた状態で複数の文字が並べられる。日本語の場合も、ベースラインＢＬを基準として複数の文字が並べられる。
そこで、ＯＣＲエンジン３１は、各暫定文字領域Ａ１の抽出時に、文字左端Ｘｓ、文字上端Ｙｓ、文字幅Ｗｃ、及び、文字高さＨｃとともにベースラインＢＬを取得する。ＯＣＲエンジン３１は、これらの配置情報ＩＡ１を認識文字とともに暫定文字領域Ａ１に対応付け、得られた認識結果ＲＥ９を出力する。
【００４５】
第一の文字認識の後、メインサーバー３０は、Ｓ１０６において、ＯＣＲエンジン３１から出力された認識結果ＲＥ９、すなわち、各暫定文字領域Ａ１に対応付けられた認識文字と配置情報ＩＡ１を取得する。
【００４６】
その後、メインサーバー３０は、Ｓ１０８において、行方向Ｄ１へ並んだ１行分の各暫定文字領域Ａ１の配置情報ＩＡ１に基づいて、１行に並んだ複数の暫定文字領域Ａ１を含む行領域Ａ１０を設定する。図５で示したように、同じ行にある複数の文字はベースラインＢＬが合わせられるので、ベースラインＢＬがほぼ同じ複数の暫定文字領域Ａ１が同じ行に配置されていることになる。ここで、最初に注目した暫定文字領域Ａ１のベースラインＢＬの位置をＹｂとし、ベースラインＢＬに対する微小な閾値をＴｂとする。メインサーバー３０は、ベースラインＢＬの位置が（Ｙｂ−Ｔｂ）から（Ｙｂ＋Ｔｂ）までの範囲にある複数の暫定文字領域Ａ１を含む最小の長方形を行領域Ａ１０として設定すればよい。図４に示す例では、ベースラインＢＬが「１０３」である複数の暫定文字領域Ａ１が同じ行に配置されていることになるので、これらの暫定文字領域Ａ１を含む最小の長方形が行領域Ａ１０として設定される。
【００４７】
図９の中段には、行毎に複数の暫定文字領域Ａ１を含む行領域Ａ１０が設定されている様子が示されている。例えば、メインサーバー３０は、１行分の複数の暫定文字領域Ａ１において、最も左の座標値ＸＬ、最も右の座標値ＸＲ、最も上の座標値ＹＵ、及び、最も下の座標値ＹＤを探すと、左上の座標（ＸＬ，ＹＵ）から右下の座標（ＸＲ，ＹＤ）までの長方形を行領域Ａ１０として設定することができる。最も下の座標値ＹＤから最も上の座標値ＹＵまでの高さは行領域Ａ１０の高さに対応しているので、Ｓ１０８は行領域Ａ１０の高さを決定する処理を示している。座標値ＹＵ，ＹＤが画素単位である場合、行領域Ａ１０の高さは｜ＹＤ−ＹＵ｜−１となる。
【００４８】
図６は、設定された行領域Ａ１０から幅Ｗ３，Ｗ４の文字間隔を決定する様子を模式的に例示している。図６の最上部は、Ｓ１０８に対応し、仮想線で示される行領域Ａ１０の高さＨ０が決定された状態を示している。以下、図６も参照して説明する。
【００４９】
行領域Ａ１０の高さＨ０の決定後、メインサーバー３０は、Ｓ１１０において、各行領域Ａ１０の文字間隔を決定する処理を行う。図３は、Ｓ１１０で行われる文字間隔決定処理を示している。
【００５０】
まず、メインサーバー３０は、Ｓ２０２において、行領域Ａ１０の高さＨ０の半分の幅Ｗ１を仮の半角文字間隔に設定する。図６には、行領域Ａ１０が行方向Ｄ１において幅Ｗ１＝Ｈ０／２の仮の半角文字間隔で区画された様子が示されている。
【００５１】
仮の半角文字間隔の設定後、メインサーバー３０は、Ｓ２０４において、行領域Ａ１０を行方向Ｄ１において区画する複数の文字間隔候補ｉを幅Ｗ１の仮の半角文字間隔に基づいて設定する。「ｉ」は、文字間隔候補を識別する変数である。ここで、文字間隔候補ｉの文字間隔の幅をＷ２（ｉ）とし、幅Ｗ１の仮の半角文字間隔を中心とした文字間隔の変化量をΔＷとする。この場合、メインサーバー３０は、文字間隔候補ｉの文字間隔の幅Ｗ２（ｉ）をＷ１−ΔＷからＷ１＋ΔＷまで複数段階に設定する。
以上より、Ｓ２０２〜Ｓ２０４は、行領域Ａ１０の高さＨ０に基づいて複数の文字間隔候補ｉを設定する処理を示している。
【００５２】
複数の文字間隔候補ｉの設定後、メインサーバー３０は、Ｓ２０６において、設定された文字間隔候補ｉに従った区画位置の文字非存在画素の割合Ｒｉを各文字間隔候補ｉについて取得する。
【００５３】
図７は、文字間隔候補ｉに従った区画位置Ｐ１の文字非存在画素の割合Ｒｉを模式的に例示している。図７に示す証憑画像ＩＭ１の解像度が低いのは分かり易く示すためであり、実際の証憑画像ＩＭ１の解像度は図７に示す解像度よりも高いものとする。
証憑画像ＩＭ１には、白といった地色を表す画素値を有する文字非存在部分Ａ１２の画素と、黒といった印字色を表す画素値を有する文字存在部分Ａ１１の画素と、がある。証憑画像ＩＭ１に含まれる各画素が文字存在部分Ａ１１であるか文字非存在部分Ａ１２であるかは、画素値に対する閾値を基準として画素値が地色側の値であるか印字色側の値であるかを調べることにより判別することができる。図７に示す証憑画像ＩＭ１は、黒又は灰色の画素が文字存在部分Ａ１１であり、白色の画素が文字非存在部分Ａ１２である。ここで、文字非存在画素の割合Ｒｉは、区画位置Ｐ１と文字存在部分Ａ１１との重複度合いを表している。
【００５４】
図７には、文字間隔候補ｉを４〜６画素間隔にした場合の各区画位置Ｐ１が示されている。図７では、複数の区画位置Ｐ１にある画素に×印が付されている。尚、文字間隔候補ｉが４画素間隔であることは行方向Ｄ１において隣り合う区画位置Ｐ１同士の間に３画素あることを意味し、文字間隔候補ｉが６画素間隔であることは行方向Ｄ１において隣り合う区画位置Ｐ１同士の間に５画素あることを意味する。図７に示す例では、文字間隔候補ｉが４画素間隔である場合、全区画位置Ｐ１の画素数が８０であり、全区画位置Ｐ１にある文字非存在部分Ａ１２の画素数が６３であり、文字非存在部分の割合Ｒｉは０．７８８（＝６３／８０）である。また、文字間隔候補ｉが５画素間隔である場合、全区画位置Ｐ１の画素数が６４であり、全区画位置Ｐ１にある文字非存在部分Ａ１２の画素数が５４であり、文字非存在部分の割合Ｒｉは０．８４４（＝５４／６４）である。さらに、文字間隔候補ｉが６画素間隔である場合、全区画位置Ｐ１の画素数が５６であり、全区画位置Ｐ１にある文字非存在部分Ａ１２の画素数が３５であり、文字非存在部分の割合Ｒｉは０．６２５（＝３５／５６）である。
【００５５】
文字非存在画素の割合Ｒｉの取得後、メインサーバー３０は、Ｓ２０８において、割合Ｒｉが最大となった文字間隔候補ｉの幅Ｗ２（ｉ）を幅Ｗ３の半角文字間隔に決定する。幅Ｗ３は、半角文字の決定された幅である。図６には、複数の幅Ｗ２（ｉ）の文字間隔から幅Ｗ３の半角文字間隔が選択された様子が示されている。図７に示す例では、文字間隔候補ｉが５画素間隔である場合の割合Ｒｉが最大であるので、半角文字間隔が５画素間隔に決定される。
以上説明したＳ２０６〜Ｓ２０８は、文字非存在画素の割合Ｒｉに基づいて行領域Ａ１０を半角文字単位で仮に区画する幅Ｗ３の半角文字間隔を設定する処理を示している。
【００５６】
なお、上述した例では証憑画像において、４、５、６画素の間隔を例として１画素単位に文字間隔候補を決める処理について説明したが、証憑画像を高解像度化し、高解像度化した画像について同様の処理を行うようにしてもよい。このようにすれば、文字間隔を求める精度をより向上させることができる。
【００５７】
半角文字間隔の設定後、メインサーバー３０は、Ｓ２１０において、幅Ｗ３の半角文字間隔に従った各半角区画位置ｊの文字存在画素の数を取得する。
【００５８】
図８は、半角文字間隔の一部を全角文字間隔に変更する様子を模式的に例示している。ここで、複数の半角区画位置Ｐ２のそれぞれを識別する変数をｊとし、半角区画位置ｊにある文字存在部分Ａ１１の画素数をＮｊとする。画素数Ｎｊは、半角区画位置Ｐ２と文字存在部分Ａ１１とが重複する度合いを表している。図８に示す例では、各半角区画位置ｊと文字存在部分Ａ１１とが重複した画素の数Ｎｊは、左から順に、０、０、０、０、７、０、０、３となっている。
【００５９】
各画素数Ｎｊの取得後、メインサーバー３０は、Ｓ２１２において、複数の半角区画位置ｊのうち画素数Ｎｊが閾値Ｔｎを超える半角区画位置を行領域Ａ１０の区画から除去する。その後、メインサーバー３０は、文字間隔決定処理を終了させる。閾値Ｔｎは、画素数Ｎｊに対する基準度合いを表している。例えば、閾値Ｔｎは、一つの半角区画位置ｊに含まれる画素の数に、０よりも大きく１よりも小さい割合を乗じた数（例えば０．２５等）にすることができる。図８に示す例では、一つの半角区画位置ｊに８画素が含まれ、閾値Ｔｎが２画素である。複数の半角区画位置ｊのうち、Ｎｊ＝７の半角区画位置とＮｊ＝３の半角区画位置が行領域Ａ１０の区画から除去される。これにより、Ｎｊ＝７の半角区画位置を挟む半角文字間隔が全角文字間隔に変更され、Ｎｊ＝３の半角区画位置を挟む半角文字間隔が全角文字間隔に変更される。図８の下部には、変更後の文字間隔に従った各区画位置Ｐ３が示されている。図６には、幅Ｗ３の半角文字間隔が幅Ｗ４＝２×Ｗ３の全角文字間隔に変更される様子が示されている。幅Ｗ４は、全角文字の決定された幅である。
【００６０】
以上説明したＳ２１０〜Ｓ２１２は、幅Ｗ３の半角文字間隔に従った複数の半角区画位置Ｐ２のうち文字存在部分Ａ１１と重複する度合いが基準度合いよりも大きい半角区画位置Ｐ２を行領域Ａ１０の区画から除くことにより幅Ｗ３の半角文字間隔を幅Ｗ４の全角文字間隔に変更する処理を示している。従って、Ｓ２０６〜Ｓ２１２の処理は、各文字間隔候補ｉに従った区画位置Ｐ１と、文字存在部分Ａ１１と、の重複度合いに基づいて行領域Ａ１０を区画する幅Ｗ３，Ｗ４の文字間隔を決定する処理を示している。
【００６１】
図３で示した文字間隔決定処理の後、メインサーバー３０は、図２のＳ１１２において、幅Ｗ３と幅Ｗ４のいずれか一方である幅の文字間隔に従って行領域Ａ１０から区画された各区画領域Ａ２を設定領域Ａ３とした第二の文字認識をＤＬエンジン３２に実行させる。また、メインサーバー３０は、認識された文字の確からしさを示す確信度ＣをＤＬエンジン３２に出力させる。ＤＬエンジン３２は、設定領域Ａ３に対して文字を認識する第二の文字認識処理、及び、該認識された文字の確からしさを示す確信度Ｃを出力する処理を実行する。第二の文字認識処理は、図８に示すように、各区画領域Ａ２に対して行われる。確信度Ｃは、各区画領域Ａ２に対して出力される。例えば、図８に示す各区画領域Ａ２には、行方向Ｄ１の順に、認識文字「２」とＣ＝１．０、認識文字「０」とＣ＝０．９、認識文字「１」とＣ＝１．０、認識文字「８」とＣ＝０．８、認識文字「年」とＣ＝１．０、認識文字「１」とＣ＝１．０、及び、認識文字「月」とＣ＝０．８が出力されていることが示されている。
【００６２】
ＤＬエンジン３２も、文字認識処理を実行するためのＯＣＲエンジンの一種である。しかし、ＤＬエンジン３２は、機械学習の例であるDeep Learningにより生成された文字認識モデルを含み、ＯＣＲエンジン３１により行われる第一の文字認識よりも精度が高い第二の文字認識を行う。ＤＬエンジン３２は、ニューラルネットワークといった公知の機械学習アルゴリズムを利用することにより生成することができる。教師あり機械学習のための教師データには、証憑の文字を表す多量の学習用画像を入力とした入力データ、及び、これら各学習用画像に含まれる文字を出力とした出力データを用いることができる。例えば、入力データと出力データとの関係が教師データとして多層構造のニューラルネットワークに入力されると、ＤＬエンジン３２は、多量の学習用画像の特徴を自動的に学習し、証憑を表す画像に含まれる文字を認識し該文字の確からしさを推定する文字認識モデルを構築する。認識された文字の確からしさを示す確信度Ｃは、例えば、入力画像と同じ学習用画像が複数ある場合に当該複数の学習用画像の中で認識文字と一致する文字を含む学習用画像の割合に対応し、入力画像に含まれる文字に認識文字が一致する確率を意味する。
以上より、ＤＬエンジン３２は、証憑を表す画像に含まれる文字を認識し該文字の確からしさを推定するための機械学習により生成された文字認識モデルを含んでいる。ＤＬエンジン３２は、文字認識モデルを用いて設定領域Ａ３に対して文字を認識し、該認識された文字の確からしさを示す確信度Ｃを文字認識モデルから取得する。
【００６３】
ここで、証憑に現れる文字は、「０」〜「９」の数字、「￥」や「円」といった金額を表す文字、「月」や「日」といった日時を表す漢字、等、種類が限定されている。従って、ＤＬエンジン３２は、ＯＣＲエンジン３１よりも高い精度で文字を認識することが可能である。
【００６４】
第二の文字認識の後、メインサーバー３０は、Ｓ１１４において、各区画領域Ａ２の認識文字を少なくとも証憑画像ＩＭ１とともにストレージサーバー４０に保存させる。メインサーバー３０は、各区画領域Ａ２の認識文字、及び、証憑画像ＩＭ１と合わせて、各区画領域Ａ２の確信度Ｃ、各区画領域Ａ２の文字左端、各区画領域Ａ２の文字上端、各区画領域Ａ２の文字幅、各区画領域Ａ２の文字高さ、各区画領域Ａ２のベースライン、等の情報もストレージサーバー４０に保存してもよい。ここで、証憑画像ＩＭ１に含まれる複数の認識文字を認識文字データと呼ぶことにする。例えば、メインサーバー３０を操作するオペレーターは、ストレージサーバー４０に保存されている認識文字データ等の情報を表示装置に表示させると、認識文字データが正しいか否かを確認することができる。この場合、オペレーターは、認識文字データに含まれる認識文字を修正する操作をメインサーバー３０に対して行ってもよい。
Ｓ１１４の保存処理の後、メインサーバー３０は、図２で示した文字認識処理を終了させる。
【００６５】
ストレージサーバー４０は、ネットワークＮＥ１を介して認識文字データ等の情報を外部へ送信可能である。ストレージサーバー４０に保存された認識文字データは、レシートや請求書といった証憑に記載された取引相手、取引日、取引金額、等の内容を示す文字列を含んでいる。そこで、ストレージサーバー４０は、会計処理、税務上の処理、等の処理のために、会計事務所で使用される端末に認識文字データ等の情報を送信してもよい。また、ストレージサーバー４０に保存されている認識文字データ等の情報は、ユーザーの求めに応じてクライアント２０に送信されてもよいし、ネットワークＮＥ１に接続されたプリンターに送信されたうえで該プリンターにより印刷されてもよい。
【００６６】
以上説明したように、各文字間隔候補ｉに従った区画位置Ｐ１と、行領域Ａ１０の文字存在部分Ａ１１と、の重複度合いに基づいて行領域Ａ１０を区画する文字間隔が決定され、該文字間隔に従って行領域Ａ１０から区画された各区画領域Ａ２に対して文字が認識される。証憑に使用される文字の間隔は、例えば、一定の半角文字間隔と一定の全角文字間隔のいずれか等、少ない種類に限定されることが多い。このことから、印字された証憑において、文字にかすれがあったり汚れがあったりしても、複数の文字の切れ目に従って各文字が適切に切り出され、各区画領域Ａ２の文字が高精度で認識される。従って、本具体例は、証憑画像に対する文字認識の精度を向上させることができる。
【００６７】
（５）変形例：
本発明は、種々の変形例が考えられる。
上述した具体例ではメインサーバー３０が画像処理プログラムＰＲ１を実行したが、画像処理プログラムＰＲ１は、クライアント２０とスキャナー１０の少なくとも一方で実行されてもよい。例えば、記憶装置２０ｄに記憶されている画像処理プログラムＰＲ１をクライアント２０が実行する場合、上述した機能ＦＵ１〜ＦＵ３がクライアント２０に実現され、該クライアント２０が画像処理装置の例となる。また、メインサーバー３０とクライアント２０とが協働して画像処理プログラムＰＲ１を実行することも可能である。例えば、メインサーバー３０がＯＣＲエンジン３１とＤＬエンジン３２を実行しクライアント２０が制御プログラム３３を実行することが考えられる。また、メインサーバー３０がＤＬエンジン３２を実行しクライアント２０がＯＣＲエンジン３１と制御プログラム３３を実行してもよい。
【００６８】
第一の文字認識よりも精度が高い第二の文字認識は、Deep Learningにより生成された文字認識モデルを含むＤＬエンジンにより実現される以外にも、Deep Learning以外の機械学習の手法により作成されたプログラムにより実現されてもよい。
【００６９】
図３のＳ２０６〜Ｓ２０８の処理では区画位置の文字非存在画素の割合Ｒｉに基づいて半角文字間隔が決定されたが、区画位置の文字存在画素の割合に基づいて半角文字間隔を決定することも可能である。例えば、メインサーバー３０は、Ｓ２０６において各文字間隔候補ｉに従った区画位置の文字存在画素の割合１−Ｒｉを取得してもよく、Ｓ２０８において割合１−Ｒｉが最小となった文字間隔候補ｉの幅Ｗ２（ｉ）を幅Ｗ３の半角文字間隔に決定してもよい。この場合、文字存在画素の割合１−Ｒｉは、区画位置Ｐ１と文字存在部分Ａ１１との重複度合いを表している。
【００７０】
図３のＳ２１０〜Ｓ２１２の処理では各半角区画位置ｊの文字存在画素の数Ｎｊに基づいて行領域Ａ１０の区画から除去する半角区画位置が決定されたが、各半角区画位置ｊの文字非存在画素の数に基づいて行領域Ａ１０の区画から除去する半角区画位置を決定することも可能である。例えば、メインサーバー３０は、Ｓ２１０において半角文字間隔に従った各半角区画位置ｊの文字非存在画素の数を取得してもよく、Ｓ２１２において文字非存在画素の数が閾値未満の半角区画位置を行領域Ａ１０の区画から除去してもよい。この場合、文字非存在画素の数は半角区画位置Ｐ２と文字存在部分Ａ１１とが重複する度合いを表し、前述の閾値は基準度合いを表している。
【００７１】
（６）結び：
以上説明したように、本発明によると、種々の態様により、証憑画像に対する文字認識の精度を向上させる技術等を提供することができる。むろん、独立請求項に係る構成要件のみからなる技術でも、上述した基本的な作用、効果が得られる。
また、上述した例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術及び上述した例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も実施可能である。本発明は、これらの構成等も含まれる。
【符号の説明】
【００７２】
１０…スキャナー、２０…クライアント、３０…メインサーバー、３０ｄ…記憶装置、３１…ＯＣＲエンジン、３２…ＤＬエンジン、３３…制御プログラム、４０…ストレージサーバー、Ａ１…暫定文字領域、Ａ２…区画領域、Ａ３…設定領域、Ａ５…認識文字領域、Ａ１０…行領域、Ａ１１…文字存在部分、Ａ１２…文字非存在部分、Ｃ…確信度、Ｄ１…行方向、Ｄ２…高さ方向、Ｈ０…行領域の高さ、ｉ…文字間隔候補、ＩＡ１…配置情報、ＩＭ１…証憑画像、ＮＥ１…ネットワーク、Ｐ１…区画位置、Ｐ２…半角区画位置、Ｐ３…区画位置、ＰＲ１…画像処理プログラム、ＲＥ９…認識結果、Ｕ１…抽出部、Ｕ２…処理部、Ｗ１〜Ｗ４…幅。
【図１】
2020149288.tif 000003
【図２】
2020149288.tif 000004
【図３】
2020149288.tif 000005
【図４】
2020149288.tif 000006
【図５】
2020149288.tif 000007
【図６】
2020149288.tif 000008
【図７】
2020149288.tif 000009
【図８】
2020149288.tif 000010
【図９】
2020149288.tif 000011