(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024159182
(43)【公開日】2024-11-08
(54)【発明の名称】文字列認識システム、文字列認識プログラム、文字列認識方法
(51)【国際特許分類】
G06V 30/196 20220101AFI20241031BHJP
G06V 30/194 20220101ALI20241031BHJP
【FI】
G06V30/196 B
G06V30/194
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023075015
(22)【出願日】2023-04-28
(71)【出願人】
【識別番号】500253542
【氏名又は名称】株式会社イーアンドディー
(71)【出願人】
【識別番号】510222453
【氏名又は名称】株式会社 ビービーアール
(74)【代理人】
【識別番号】100121441
【弁理士】
【氏名又は名称】西村 竜平
(74)【代理人】
【識別番号】100154704
【弁理士】
【氏名又は名称】齊藤 真大
(74)【代理人】
【識別番号】100206151
【弁理士】
【氏名又は名称】中村 惇志
(74)【代理人】
【識別番号】100218187
【弁理士】
【氏名又は名称】前田 治子
(74)【代理人】
【識別番号】100227673
【弁理士】
【氏名又は名称】福田 光起
(72)【発明者】
【氏名】木村 修
(72)【発明者】
【氏名】中村 壽男
(72)【発明者】
【氏名】貫定 秀典
(72)【発明者】
【氏名】大谷 浩司
【テーマコード(参考)】
5B064
【Fターム(参考)】
5B064AA01
5B064CA08
5B064DA14
5B064DA27
(57)【要約】 (修正有)
【課題】文書画像中の文字列をより的確にテキストデータに変換する文字列認識システム、方法及びプログラムを提供する。
【解決手段】文字列認識システム100は、罫線付き文書画像から罫線を検出する罫線検出部と、罫線検出部が検出した罫線に基づいて、罫線付き文書画像から一連の文字列として認識される単位文字列画像を複数抽出する単位文字列画像抽出部と、複数種のAIエンジンによる文字認識処理を各単位文字列画像に夫々施すとともに、各文字認識処理の評価値を取得する文字認識処理部と、各単位文字列画像について、評価値の高いAIエンジンを夫々特定するとともに、特定したAIエンジンの種類に基づいて各単位文字列画像に表示されている単位文字列のカテゴリを夫々判定するカテゴリ判定部と、各単位文字列画像について、特定した特化型AIによる文字認識結果を、そのカテゴリに対応する辞書データを用いて補正する単位文字列補正部と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
罫線付き文書画像から文字列を認識する文字列認識システムであって、
前記罫線付き文書画像から罫線を検出する罫線検出部と、
前記罫線検出部が検出した罫線に基づいて、前記罫線付き文書画像から一連の文字列として認識される単位文字列画像を複数抽出する単位文字列画像抽出部と、
複数種のAIエンジンによる文字認識処理を前記各単位文字列画像にそれぞれ施すとともに、各文字認識処理の評価値を取得する文字認識処理部と、
前記各単位文字列画像について、評価値の高いAIエンジンをそれぞれ特定するとともに、その特定されたAIエンジンの種類に基づいて各単位文字列画像に表示されている単位文字列のカテゴリをそれぞれ判定するカテゴリ判定部と、
を備えていることを特徴とする文字列認識システム。
【請求項2】
前記各単位文字列画像について、前記カテゴリ判定部で判定されたカテゴリに対応する辞書データを用いて、同カテゴリ判定部で特定されたAIエンジンによる文字認識結果を補正する単位文字列補正部をさらに備えている請求項1記載の文字列認識システム。
【請求項3】
前記単位文字列画像抽出部は、閉じた罫線によって囲まれた領域中の文書を前記単位文字列画像として抽出する請求項1記載の文字列認識システム。
【請求項4】
前記評価値は、尤度を含むものである請求項1または2記載の文字列認識システム。
【請求項5】
前記単位文字列補正部による補正結果に基づいて、該当するAIエンジンが再学習する請求項1または2記載の文字列認識システム。
【請求項6】
罫線付き文書画像から文字列を認識する文字列認識プログラムであって、
前記罫線付き文書画像から罫線を検出する罫線検出部と、
前記罫線検出部が検出した罫線に基づいて、前記罫線付き文書画像から一連の文字列として認識される単位文字列画像を複数抽出する単位文字列画像抽出部と、
複数種のAIエンジンによる文字認識処理を前記各単位文字列画像にそれぞれ施すとともに、各文字認識処理の評価値を取得する文字認識処理部と、
前記各単位文字列画像について、評価値の高いAIエンジンをそれぞれ特定するとともに、その特定されたAIエンジンの種類に基づいて各単位文字列画像に表示されている単位文字列のカテゴリをそれぞれ判定するカテゴリ判定部と、
としての機能をコンピュータに発揮させることを特徴とする文字列認識プログラム。
【請求項7】
罫線付き文書画像から文字を認識する文字認識方法であって、
前記罫線付き文書画像から罫線を検出し、
前記罫線検出部が検出した罫線に基づいて、前記罫線付き文書画像から一連の文字列として認識される単位文字列画像を複数抽出し、
複数種のAIエンジンによる文字認識処理を前記各単位文字列画像にそれぞれ施すとともに、各文字認識処理の評価値を取得し、
前記各単位文字列画像について、評価値の高いAIエンジンをそれぞれ特定するとともに、その特定されたAIエンジンの種類に基づいて各単位文字列画像に表示されている単位文字列のカテゴリをそれぞれ判定する、
ことを特徴とする文字列認識方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文書画像の文字列を認識してテキストデータに変換する文字列認識システム等に関し、特に罫線付きの文書画像に好適に適用される文字列認識システム等に関するものである。
【背景技術】
【0002】
従来の文字列認識システムでは、例えば、特許文献1に示すように、文書画像から文字画像を抽出し、その文字画像に対し、OCRエンジンなどによる文字認識処理を施してテキストデータが生成される。
【0003】
また、特許文献2に記載されているように、文字認識にあたって機械学習を利用する場合もある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010-217996号公報
【特許文献2】特許7077998号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、囲み枠や下線などで文字列が修飾されている場合、それが原因で文字認識エラーにつながる場合がある。特に、領収書や請求書などの伝票類は、囲み枠や下線などの罫線が多く、文字認識エラーが起こりやすい傾向にある。
【0006】
さらに、機械学習においては、従来、単一種のAIエンジンを用いていることから、文書画像中に不得意な文字列画像が現れた場合に、やはり文字認識エラーが生じる場合がある。
【0007】
本発明は、上述した問題を解決すべくなされたものであって、文書画像中の文字列をより的確にテキストデータに変換可能な文字列認識システム等を提供することをその主たる所期課題とするものである。
【課題を解決するための手段】
【0008】
すなわち本発明に係る文字列認識システムは、
罫線付き文書画像から文字列を認識するものであって、
前記罫線付き文書画像から罫線を検出する罫線検出部と、
前記罫線検出部が検出した罫線に基づいて、前記罫線付き文書画像から一連の文字列として認識される単位文字列画像を複数抽出する単位文字列画像抽出部と、
複数種のAIエンジンによる文字認識処理を前記各単位文字列画像にそれぞれ施すとともに、各文字認識処理の評価値を取得する文字認識処理部3と、
前記各単位文字列画像について、評価値の高いAIエンジンをそれぞれ特定するとともに、その特定されたAIエンジンの種類に基づいて各単位文字列画像に表示されている単位文字列のカテゴリをそれぞれ判定するカテゴリ判定部と、
を備えていることを特徴とする。
【発明の効果】
【0009】
以上に述べた本発明によれば、次のような効果を奏し得る。
【0010】
一般的に罫線は、文書中の文字列を区切って、それぞれ意味がある一連の文字列とするために用いられている。
すなわち、本発明のように、罫線(に係る情報)に基づいて文書中の文字列画像を分割し、それぞれを単位文字列画像とすることによって、各単位文字列画像に表示されている単位文字列は、それぞれ意味としてまとまりのある一連のものとなる。
【0011】
他方、まとまりのある一連の単位文字列内において、そのカテゴリ(例えば、住所、価格、表題などといったカテゴリ)が途中で変わるとは考えにくい。つまり、本発明によって抽出された単位文字列画像には、単一のカテゴリからなる文字列が表示されていると考えられる。
したがって、複数種のAIエンジンを用いてカテゴリ判定をするという本発明の構成は、本発明によって抽出された単位文字列画像が単一の文字列カテゴリからなるからこそ意味を成し、その結果、カテゴリ判定精度を高く維持できる。そして、このカテゴリ判定を利用すれば、文字認識精度を大きく向上させることが可能となる。
【0012】
また、本発明によれば、罫線付き文書画像における罫線を検出し、その罫線(に係る情報)に基づいて文字列画像に対する文字認識処理を行えるので、罫線の一部を文字の一部として誤認し、文字認識エラーを引き起こすという可能性が減少し、この点においてもより的確な文字認識を行うことが可能になる。
【図面の簡単な説明】
【0013】
【
図1】本実施形態における文字列認識システムの機能ブロック図。
【
図2】同実施形態の文字列認識システムの動作を示すフローチャート。
【
図3】同実施形態の文字列認識システムの動作を示すフローチャート。
【
図4】同実施形態において、罫線付き文書画像に含まれる文字列画像を罫線に基づいて単位文字列画像に分割し、各単位文字画像をそれぞれテキストデータに変換するという処理を模式的に表した図。
【発明を実施するための形態】
【0014】
以下、本実施形態に係る文字列認識システム100の一実施形態について、図面を参照しながら説明する。
【0015】
<構成>
この文字列認識システム100は、罫線が用いられている帳票や請求書、報告書などといった罫線付き文書の画像から文字列を認識し、その文字列のテキストデータを出力するものである。
【0016】
具体的に説明する。
この文字列認識システム100は、物理的には、CPU、メモリ、入出力ポートなどを備えたいわゆるコンピュータ装置で構成されたものであり、機能的には、前記メモリに格納された所定のプログラムにしたがって、前記CPUやその周辺機器が協動することにより、
図1に示すように、罫線検出部1、単位文字列画像抽出部2、文字認識処理部3、カテゴリ判定部4、単位文字列補正部5等としての機能を発揮するものである。なお、この文字列認識システム100を構成するコンピュータ装置は、物理的に1つである必要はなく、インターネットなどの通信手段を介して互いに通信可能に接続された複数のコンピュータ装置で構成されていてもかまわない。
【0017】
これら各部の機能概要を説明する。
【0018】
前記罫線検出部1は、前記罫線付き文書画像から罫線を検出するものである。
【0019】
前記単位文字列画像抽出部2は、前記罫線検出部1が検出した罫線に基づいて、前記罫線付き文書画像から一連の文字列として認識される単位文字列画像を複数抽出するものである。
【0020】
前記文字認識処理部3は、複数種の特化型AIによる文字認識処理を前記各単位文字列画像にそれぞれ施すとともに、各文字認識処理の評価値を取得するものである。
【0021】
前記カテゴリ判定部4は、各単位文字列画像について、評価値の高い特化型AIをそれぞれ特定するとともに、その特定された特化型AIの種類(得意分野)に基づいて各単位文字列画像のカテゴリをそれぞれ判定するものである。カテゴリとは、単位文字列の意味する対象が属する分野(例えば、住所、価格、表題)を示すものであり、その分野で用いられている文字種(例えば、数字、英字、半角カナなど)を示す場合もある。
【0022】
前記単位文字列補正部5は、各単位文字列画像について、特定された特化型AIによる文字認識結果を、そのカテゴリに対応する辞書データを用いて補正するものである。
【0023】
<動作>
次に、前記各部の詳細な説明を兼ねて、この文字列認識システムの動作を
図2、
図3を参照しながら説明する。
【0024】
まず、ユーザが、テキストデータに変換してほしい罫線付き文書を、例えばスキャンするなどして罫線付き文書画像とし、この文字列認識システム100に入力する。なお、ここでいう画像とは、pdf、jpeg、ビットマップ、tiffなどといった所定形式の画像データのことである。
【0025】
次に、前記罫線検出部1が、この罫線付き文書画像を取得し(
図2:ステップS1)、そこに含まれる罫線を検出する(
図2:ステップS2)。ここでいう罫線とは、囲み枠や下線等のことである。より具体的にいえば、この罫線検出部1は、例えば、紙面の左右辺と平行な向きである縦方向(紙面左右辺と平行な方向)または横方向(紙面上下辺と平行な方向)に、背景色(例えば白)とは異なる色(例えば黒)の画素が、直線状に所定長さ以上に亘って連続する領域を罫線として、これをXY座標や画素番号などによって特定する。
【0026】
次に、前記単位文字列画像抽出部2が、前記罫線の形状を判断する(
図2:ステップS3)。例えば、四角形状に閉じた形状であれば、これを囲み枠線と判断し、横方向に延伸する両端を有した直線(線分)形状であれば、これを下線と判断する。なお、囲み枠線については、表の場合、例えば上下欄において、上欄の下辺線は下欄の上辺線と共通となるが、ここでは、上欄を形成する囲み枠線と下欄を形成する囲み枠線との2つが存在すると判断される。
【0027】
次に、該単位文字列画像抽出部2は、前記文字列画像を、各囲み枠線内にある文字列画像、各下線の直上にある文字列画像および他の文字列画像に分割し、各文字列画像を単位文字列画像とする(
図2:ステップS4)。このとき、囲み枠線や下線などの罫線は単位文字列画像から削除される。
【0028】
なお、1文書内に囲み枠線が複数あれば、各囲み枠線内の文字列画像は、それぞれ別の単位文字列画像とされる。下線が複数ある場合も同様である。また、他の文字列画像に関しては、互いに所定以上離れた領域にあるものは、別の単位文字列画像とされる。
【0029】
以上のようにして抽出された各単位文字列画像に対し、前記文字認識処理部3は、複数種の特化型あるいは汎用型AIエンジンをよる文字認識処理をそれぞれ施して、それぞれ単位文字列テキストデータを取得する(
図3:ステップS6)。そして、その際に、各AIエンジンの自身による文字認識処理の評価値(ここでは例えば尤度)も取得する(
図3:ステップS7)。
【0030】
なお、ここでのAIエンジンの種類としては、日本語学習済みAIエンジン、日本国住所学習済みAIエンジン、数字特化型AIエンジン、英数字特化型AIエンジン、カナ特化型AIエンジン、半角カナ特化型AIエンジンなどが用意されている。
【0031】
次に、前記カテゴリ判定部4が、各単位文字列画像について、評価値の高い特化型AIをそれぞれ特定し、その得意とする分野を、当該単位文字列画像のカテゴリと判定する(
図3:ステップS8)。例えば、1つの単位文字列画像に対して、日本国住所学習済みAIエンジンの評価値が高ければ、当該単位文字列画像に示されたカテゴリを日本国住所として判定する。
【0032】
次に、前記単位文字列補正部5が、各単位文字列画像について、前記カテゴリ判定部4で判定されたカテゴリに対応する辞書データを選択する(
図3:ステップS9)。
【0033】
そして、該単位文字列補正部5は、特定されたAIエンジンによる文字認識結果、すなわち単位文字列テキストデータを取得するとともに、その単位文字列テキストデータを、前記カテゴリ判定部4で判定されたカテゴリに対応する辞書データを用いて補正する(
図3:ステップS10)。辞書データは、AIエンジンの種類に対応して複数種が設けられている。
【0034】
前述のように、単位文字列テキストデータのカテゴリが日本国住所であれば、日本国住所に関する辞書データを用いて補正する。例えば、補正前の認識(変換)結果が、「太津市三井寺町」との場合、日本国住所辞書データには、そのような住所は存在せず、最も近いものが「大津市三井寺町」であることから、この単位文字列補正部5は、「太津」を「大津」に変換する。
なお、この補正結果は、各AIエンジンにおいて学習に利用される。
【0035】
図4は、以上のように、罫線付き文書画像に含まれる文字列画像を、検出した罫線に基づいて単位文字列画像に分割し、各単位文字画像をそれぞれテキストデータに変換するという処理を模式的に表した図である。
【0036】
<効果>
以上の構成によれば、罫線付き文書画像における罫線を検出し、その罫線に係る情報に基づいて文字列画像に対する文字認識処理を行っているので、罫線の一部を文字の一部として誤認し、文字認識エラーを引き起こす可能性が減少し、より的確な文字認識を行うことが可能になる。
【0037】
また、一般的に罫線は、文書中の文字列を区切って、それぞれ意味がある一連の文字列とするために用いられていることから、本構成のように、罫線(に係る情報)に基づいて文書中の文字列画像を分割し、それぞれを単位文字列画像としているので、単位文字列画像に含まれる文字列は、意味としてまとまりのある一連のものとなる。
【0038】
そして、まとまりのある一連の単位文字列内において、そのカテゴリ(例えば、住所、価格、表題などといったカテゴリ)が途中で変わるとは考えにくいから、本構成によって抽出された単位文字列画像には、単一のカテゴリからなる文字列が表示されていると考えられる。
このように、単位文字列画像が単一の文字列カテゴリからなるからこそ、複数種のAIエンジンを用いてカテゴリ判定をするという本構成が意味を成し、カテゴリ判定精度を高く維持できる。そして、上述した高精度なカテゴリ判定があるから、テキストデータ化後の補正において用いる辞書データを的確に選択でき、文字認識の精度を大きく向上させることが可能となる。
【0039】
<その他の実施形態>
なお、本発明は前記実施形態に限られるものではない。
【0040】
前記実施形態では、文書中の文字列画像をすべて抽出し、これを単位文字列画像に分割していたが、例えば、囲み枠内だけの文字列画像だけとか、下線がひかれている部分に文字列画像だけとか、それ以外の文字列画像だけとか、それらの2つ以上とかとしてもよいし、これらを選択できるようにしてもかまわない。
【0041】
罫線に関する情報(形状)として、面積、長さ、高さ、位置などを設定することも可能である。例えば、面積が所定以上または以下となる囲み枠内の文字列画像を単位文字列画像として抽出するとか、長さが所定以上または以下となる下線が付された文字列画像を単位文字列画像として抽出するといった態様も可能であるし、罫線の位置(例えば文書の上半分にある罫線)に基づいて単位文字列画像を抽出することも可能である。
【0042】
AIエンジンや辞書データも、前記例示に限られるものではない。例えば、縦書きや複数段表記を得意とするAIエンジンを用いてもよい。
【0043】
評価値は尤度に限られない。
例えば、文字認識部分の尤度ではなく、文字位置検出部分の位置情報を使ってもよい。
読み取った文字列中の各文字の検出位置のベースラインの上下変動や文字ピッチの変動を数値化し、それに基づいて評価値を算出してもよい。誤読があった場合、その数値が不自然に変動する。
また、尤度をそのまま用いず、文字列を構成する各文字の尤度の文字列内でのばらつきに基づいて評価値を算出することも可能である。
【0044】
さらに、単純な尤度だけでなく先に汎用OCRを1回通して、そのデータを使って適当なパラメータを算出し、各種のAIエンジンの尤度に掛けて重みづけをするという方法も考えられる。具体的には、例えば汎用OCRを通した結果を使い、読み取った文字列に含まれる文字を評価し、住所に特徴的な郵便番号や県名、丁や目や番が多く含まれるものは住所AIエンジンの尤度に重みづけした値を評価値としてもよい。住所、氏名、会社名、商品名等の各辞書とかを使い、最初の汎用OCRで住所らしい文字列かどうか、氏名か会社名か商品名らしい文字列かを評価して(分類問題)その評価値を使って各AIエンジンの尤度に重みづけするなども可能である。
【0045】
さらにいえば、枠の形状や文字の配置情報などを評価値算出の指標としてもよい。例えば、枠が縦長であれば、縦書きであろうから、縦書き用のAIエンジンの評価値を上げるといったことをしてもよいし、文字列が2段表記であれば、複数段表記用のAIエンジンの評価値を上げるといったことをしてもよい。
前記実施形態では、辞書による補正結果を各AIエンジンの再学習に利用していたが、再利用しなくともよい。
【0046】
その他、本発明は前記実施形態に限られず、その趣旨を逸脱しない範囲で種々の変形が可能であるのは言うまでもない。
【符号の説明】
【0047】
100・・・文字列認識システム
1・・・罫線検出部
2・・・単位文字列画像抽出部
3・・・文字認識処理部
4・・・カテゴリ判定部
5・・・単位文字列補正部