(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024165402
(43)【公開日】2024-11-28
(54)【発明の名称】文字認識装置及びプログラム
(51)【国際特許分類】
G06V 30/26 20220101AFI20241121BHJP
【FI】
G06V30/26
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023081574
(22)【出願日】2023-05-17
(71)【出願人】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】嶋津 章仁
(72)【発明者】
【氏名】辻 佳孝
(72)【発明者】
【氏名】小沢 益丈
(72)【発明者】
【氏名】大倉 水斗
【テーマコード(参考)】
5B064
【Fターム(参考)】
5B064AA01
5B064EA27
5B064FA08
(57)【要約】
【課題】文書画像に含まれる文字列から必要項目を適切に抽出することを可能にした文字認識装置及びプログラムを提供する。
【解決手段】文字取得処理サーバ1は、文書画像から文字認識処理によって得られたテキストから予め設定された抽出対象項目名に該当する文字列を探索し、探索した文字列に対応する項目値をテキストから取得し、取得した項目値の妥当性を判断する項目値抽出処理部17と、妥当性の判断結果を含んで、項目値と項目値に対応する抽出対象項目名とを出力する処理結果出力部18と、を備える。
【選択図】
図1
【特許請求の範囲】
【請求項1】
文書画像から文字認識処理によって得られたテキストから予め設定された抽出対象項目名に該当する文字列を探索する項目名探索手段と、
前記項目名探索手段が探索した前記文字列に対応する項目値を、前記テキストから取得する項目値取得手段と、
前記項目値取得手段が取得した前記項目値の妥当性を判断する妥当性判断手段と、
前記妥当性判断手段による妥当性の判断結果を含んで、前記項目値と、前記項目値に対応する前記抽出対象項目名とを出力する項目値出力手段と、
を備える、文字認識装置。
【請求項2】
請求項1に記載の文字認識装置において、
前記妥当性判断手段は、前記抽出対象項目名ごとに予め決められた判断ルールに基づいて、前記項目値取得手段が取得した前記項目値の妥当性を判断する、文字認識装置。
【請求項3】
請求項1に記載の文字認識装置において、
前記項目値取得手段は、前記項目名探索手段が探索した前記文字列に続くテキストを、前記項目値として取得する、文字認識装置。
【請求項4】
請求項1から請求項3までのいずれかに記載の文字認識装置において、
前記項目値出力手段は、前記妥当性判断手段により妥当性が低いと判断された前記項目値に対してアラートを出力する、文字認識装置。
【請求項5】
請求項1から請求項3までのいずれかに記載の文字認識装置において、
文書画像から文字を検出する文字検出手段と、
検出した前記文字の文字間隔に応じて文字列とする文字列取得手段と、
前記文字列取得手段が取得した前記文字列の位置情報及び前記文字列の文字サイズを含む文字列情報を取得する文字列情報取得手段と、
前記文字列取得手段が取得した前記文字列について、文字の読み方向における先頭の前記文字列から前記読み方向の順に、前記文字列と前記文字列に続く他の前記文字列との間の距離及び前記文字列情報の差分を算出する差分算出手段と、
前記差分算出手段が算出した前記距離及び前記差分と予め設定された閾値とに基づき、前記文字列と前記文字列に続く他の前記文字列とをグループ化するか否かを判定するグループ判定手段と、
前記文字列を前記テキストに変換するテキスト変換手段と、
を備え、
前記テキスト変換手段は、前記グループ判定手段によりグループ化すると判定した各文字列の間に区切り文字を挿入して前記テキストに変換し、
前記項目名探索手段は、前記テキスト変換手段により変換された前記テキストから前記抽出対象項目名に該当する文字列を探索する、文字認識装置。
【請求項6】
コンピュータを、
文書画像から文字認識処理によって得られたテキストから予め設定された抽出対象項目名に該当する文字列を探索する項目名探索手段と、
前記項目名探索手段が探索した前記文字列に対応する項目値を、前記テキストから取得する項目値取得手段と、
前記項目値取得手段が取得した前記項目値の妥当性を判断する妥当性判断手段と、
前記妥当性判断手段による妥当性の判断結果を含んで、前記項目値と、前記項目値に対応する前記抽出対象項目名とを出力する項目値出力手段と、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字認識装置及びプログラムに関する。
【背景技術】
【0002】
従来、見積書や請求書等の発行元によってフォーマットが異なる書類を、データとしてシステムに登録する際に、文字入力を手作業で行っており、時間及び人的なコストがかかっている。
そのため、コストの削減のために、文字入力を自動的に行う様々な取り組みが検討されている。OCR(Optical Character Recognition/Reader)の使用は、その一例である。しかし、OCRでは、情報がバラバラに取得されてしまい、テキストの意味を理解することができない。
そこで、例えば、書類に含まれる文字画像集合のテキストデータに対応する特徴ベクトルを生成して使用するもの(例えば、特許文献1)がある。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、テキストデータの特徴ベクトルに基づいて属性ラベル候補と属性値候補とのペアをペア候補として検出し、特徴ベクトルに基づいてペアを特定する。しかしより近いものがペアとして特定されるにすぎず、ペアとしての妥当性が判断できなかった。
【0005】
そこで、本発明は、文書画像に含まれる文字列から必要項目を適切に抽出することを可能にした文字認識装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明は、以下のような解決手段により、前記課題を解決する。
第1の発明は、文書画像から文字認識処理によって得られたテキストから予め設定された抽出対象項目名に該当する文字列を探索する項目名探索手段と、前記項目名探索手段が探索した前記文字列に対応する項目値を、前記テキストから取得する項目値取得手段と、前記項目値取得手段が取得した前記項目値の妥当性を判断する妥当性判断手段と、前記妥当性判断手段による妥当性の判断結果を含んで、前記項目値と、前記項目値に対応する前記抽出対象項目名とを出力する項目値出力手段と、を備える、文字認識装置である。
第2の発明は、第1の発明の文字認識装置において、前記妥当性判断手段は、前記抽出対象項目名ごとに予め決められた判断ルールに基づいて、前記項目値取得手段が取得した前記項目値の妥当性を判断する、文字認識装置である。
第3の発明は、第1の発明又は第2の発明の文字認識装置において、前記項目値取得手段は、前記項目名探索手段が探索した前記文字列に続くテキストを、前記項目値として取得する、文字認識装置である。
第4の発明は、第1の発明から第3の発明までのいずれかの文字認識装置において、前記項目値出力手段は、前記妥当性判断手段により妥当性が低いと判断された前記項目値に対してアラートを出力する、文字認識装置である。
第5の発明は、第1の発明から第4の発明までのいずれかの文字認識装置において、文書画像から文字を検出する文字検出手段と、検出した前記文字の文字間隔に応じて文字列とする文字列取得手段と、前記文字列取得手段が取得した前記文字列の位置情報及び前記文字列の文字サイズを含む文字列情報を取得する文字列情報取得手段と、前記文字列取得手段が取得した前記文字列について、文字の読み方向における先頭の前記文字列から前記読み方向の順に、前記文字列と前記文字列に続く他の前記文字列との間の距離及び前記文字列情報の差分を算出する差分算出手段と、前記差分算出手段が算出した前記距離及び前記差分と予め設定された閾値とに基づき、前記文字列と前記文字列に続く他の前記文字列とをグループ化するか否かを判定するグループ判定手段と、前記文字列を前記テキストに変換するテキスト変換手段と、を備え、前記テキスト変換手段は、前記グループ判定手段によりグループ化すると判定した各文字列の間に区切り文字を挿入して前記テキストに変換し、前記項目名探索手段は、前記テキスト変換手段により変換された前記テキストから前記抽出対象項目名に該当する文字列を探索する、文字認識装置である。
第6の発明は、第1の発明から第5の発明までのいずれかの文字認識装置としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【0007】
本発明によれば、文書画像に含まれる文字列から必要項目を適切に抽出することを可能にした文字認識装置及びプログラムを提供することができる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態に係る文字取得処理システムの全体構成図及び文字取得処理サーバの機能ブロック図である。
【
図2】本実施形態に係る文字取得処理サーバの制御部の一部についての機能ブロック図である。
【
図3】本実施形態に係る文字取得処理サーバの妥当性判断ルール記憶部及び正規表現パターン定義ファイルの例を示す図である。
【
図4】本実施形態に係る文字取得処理サーバにおける処理の概要を説明するための図である。
【
図5】本実施形態に係る文字取得処理サーバの文字取得処理を示すフローチャートである。
【
図6】本実施形態に係る文字取得処理サーバの矩形外処理を示すフローチャートである。
【
図7】本実施形態に係る文字取得処理サーバにおける処理を説明するための図である。
【
図8】本実施形態に係る文字取得処理サーバにおける処理を説明するための図である。
【
図9】本実施形態に係る文字取得処理サーバにおける処理を説明するための図である。
【
図10】本実施形態に係る文字取得処理サーバの項目値抽出処理を示すフローチャートである。
【
図11】変形形態に係る文字取得処理サーバにおける処理を説明するための図である。
【発明を実施するための形態】
【0009】
以下、本発明を実施するための形態について、図を参照しながら説明する。なお、これは、あくまでも一例であって、本発明の技術的範囲は、これに限られるものではない。
(実施形態)
<文字取得処理システム100の全体構成>
図1は、本実施形態に係る文字取得処理システム100の全体構成図及び文字取得処理サーバ1の機能ブロック図である。
図2は、本実施形態に係る文字取得処理サーバ1の制御部10の一部についての機能ブロック図である。
図3は、本実施形態に係る文字取得処理サーバ1の妥当性判断ルール記憶部23及び正規表現パターン定義ファイル31の例を示す図である。
【0010】
図1に示すように、文字取得処理システム100は、文字取得処理サーバ1(文字認識装置)と、ユーザ端末5と、OCR装置6とを備える。文字取得処理サーバ1と、ユーザ端末5と、OCR装置6とは、通信ネットワークNを介して接続されている。
文字取得処理システム100は、文書画像データに対して文字認識処理を行って得たテキストから、予め決められた抽出対象項目名と抽出対象項目名に対する項目値とを抽出して出力する処理を行うシステムである。
【0011】
文字取得処理システム100では、ユーザ端末5から入力がされた文書画像データを、文字取得処理サーバ1が受け付ける。ここで、文書画像データは、例えば、見積書や請求書等の書類の画像であり、文字を含み、また、表形式の明細領域を含んでもよい。
そして、文字取得処理サーバ1は、文書画像データに対して文字認識処理を行って、文書画像データから文字を検出して文字列を取得し、所定の文字列をグループ化してテキストを得る。
また、文字取得処理サーバ1は、グループ化したテキストから抽出対象項目名に対応する文字列を探索し、探索した文字列に対応する項目値をテキストから得る。
そして、文字取得処理サーバ1は、項目値の妥当性を判断した上で、抽出対象項目名と項目値とのテキストを、ユーザ端末5に出力する。その際、文字取得処理サーバ1は、妥当性が低いと判断された項目値に対してアラートを出力する。
【0012】
<文字取得処理サーバ1>
文字取得処理サーバ1は、文書画像データに対する処理を行い、処理結果画像を出力する一連の処理を行うサーバである。
文字取得処理サーバ1は、制御部10と、記憶部20と、通信インタフェース部29とを備える。
制御部10は、文字取得処理サーバ1の全体を制御するCPU(中央処理装置)である。制御部10は、記憶部20に記憶されているOS(オペレーティングシステム)や、各種のアプリケーションプログラムを適宜読み出して実行することにより、上述したハードウェアと協働し、各種機能を実行する。
【0013】
制御部10は、文書画像取得部11と、検出文字列グループ処理部12と、項目値抽出処理部17と、処理結果出力部18とを備える。
文書画像取得部11は、文書画像データを、ユーザ端末5から受け付ける。文書画像データの元になる文書は、例えば、外部のシステム(図示せず)に入力するためのデータの内容を含む。また、文書は、表形式の明細部分である明細領域を含んでもよい。文書画像データは、例えば、紙の文書を図示しないスキャナ等により画像化したものであり、PDF形式や、JPEG形式、IMG形式等の画像データである。
【0014】
検出文字列グループ処理部12は、文書画像取得部11が受け付けた文書画像データから文字を検出して文字列を取得し、所定の文字列をグループ化してテキストを得る処理を行う。
検出文字列グループ処理部12は、前処理部13と、矩形外処理部14と、テキスト変換部15と、テキスト出力部16とを備える。
【0015】
前処理部13は、文書画像データから文字を検出し、検出した文字のかたまりを文字列として取得し、文字列が矩形内にあるか否かを判定する処理を行う。
図2(A)に示すように、前処理部13は、文字検出部13aと、文字列取得部13bと、罫線抽出部13cと、矩形判定部13dとを備える。
【0016】
文字検出部13aは、文書画像データから文字を検出する文字検出手段として機能する。文字検出部13aは、例えば、OCR装置6に対して文書画像データを送信し、OCR装置6から取得したテキストデータから文字を検出する。
文字列取得部13bは、文字検出部13aが検出した文字の文字間隔に応じてひとかたまりの文字列とする文字列取得手段として機能する。文字列とする文字間の文字間隔は、例えば、文字サイズによって異なるようにしてもよい。文字列取得部13bは、例えば、文字サイズが大きい場合は、文字サイズが小さい場合のより文字間隔が広くても、隣り合う文字を文字列として含むようにする。
【0017】
罫線抽出部13cは、文書画像データから罫線を抽出する罫線抽出手段として機能する。罫線抽出部13cは、例えば、ディープラーニングを用いた画像の物体検出手法等の周知技術により、文書画像データから罫線を抽出することができる。
矩形判定部13dは、文字列取得部13bが取得した文字列が、罫線抽出部13cが抽出した罫線で囲まれた矩形内にあるか否かを判定する矩形判定手段として機能する。
【0018】
矩形外処理部14は、矩形判定部13dが矩形内にはない、つまり矩形外にあると判定した文字列に対する処理を行う。
図2(B)に示すように、矩形外処理部14は、文字列情報取得部14aと、差分算出部14bと、グループ判定部14cと、グループ化部14dとを備える。
【0019】
文字列情報取得部14aは、文字列取得部13bが取得した文字列の位置情報及び文字列の文字サイズを含む文字列情報を取得する文字列情報取得手段として機能する。ここで、位置情報とは、例えば、文字列を囲う領域の位置座標である。文字の読み方向が横の場合には、位置情報は、文字列を囲う領域の左上及び右下の座標からなる。文字サイズとは、フォントサイズであり、例えば、12ポイント等である。
【0020】
差分算出部14bは、文字列取得部13bが取得した文字列について、読み方向における先頭の文字列から読み方向の順に、文字列と文字列に続く他の文字列との間の距離及び文字列情報の差分を算出する差分算出手段として機能する。
グループ判定部14cは、差分算出部14bが算出した距離及び差分と予め設定された閾値とに基づき、文字列と文字列に続く他の文字列とをグループ化するか否かを判定するグループ判定手段として機能する。そして、グループ判定部14cは、差分算出部14bが算出した差分が閾値より小さい場合に、文字列と文字列に続く他の文字列とをグループ化すると判定する。
【0021】
より具体的には、グループ判定部14cは、文字の読み方向が横方向である場合に、以下の条件に当てはまる文字列と文字列に続く他の文字列とをグループ化する。
(その1)文字列と文字列に続く他の文字列との文字の高さ方向の位置がほぼ同じである。
(その2)文字列と文字列に続く他の文字列との間の距離が閾値以下である。
(その3)文字列と文字列に続く他の文字列との文字サイズがほぼ同じである。
【0022】
グループ判定部14cでの判定に用いる距離の差分と比較する閾値は、例えば、文書画像の全体における文字列の大きさの比率や、文字列の文字の大きさに基づき設定する。また、グループ判定部14cでの判定に用いる文字列情報の差分と比較する閾値は、位置情報では文字列を囲う領域の高さ方向の位置の差であり、その場合の閾値は、0や0に限りなく近い値である。また、文字サイズではフォントサイズの差であり、その場合の閾値は、0や0に限りなく近い値である。
グループ化部14dは、判定対象の複数の文字列を1つのグループとするグループ化手段として機能する。
【0023】
テキスト変換部15は、テキスト変換手段として機能する。テキスト変換部15は、矩形判定部13dが矩形内にあることを判定した文字列について、矩形内の文字列をテキストに変換する。また、テキスト変換部15は、矩形判定部13dが矩形外にあることを判定した文字列について、グループ化部14dによる1つのグループに含まれる文字列を、文字列間に区切り文字であるスペースを挿入しながらテキストに変換し、及び、グループ判定部14cがグループ化すると判定しなかった文字列をテキストに変換する。
テキスト出力部16は、テキスト変換部15により変換したテキストを出力するテキスト出力手段として機能する。その際、テキスト出力部16は、矩形内にあるテキストを、矩形内のテキストごとに区切って出力する。また、テキスト出力部16は、矩形外にあるテキストを、テキストの位置情報と共に出力する。
【0024】
項目値抽出処理部17は、テキストから項目値を抽出する処理を行う。
図2(C)に示すように、項目値抽出処理部17は、項目名探索部17aと、項目値取得部17bと、妥当性判断部17cとを備える。
項目名探索部17aは、テキスト出力部16が出力したテキストから予め設定された抽出対象項目名に該当する文字列を探索する項目名探索手段として機能する。ここで、抽出対象項目名は、例えば、抽出対象項目名記憶部22に記憶されている。
【0025】
項目値取得部17bは、項目名探索部17aが探索した文字列に対応する項目値を、テキストから取得する項目値取得手段として機能する。より具体的には、項目値取得部17bは、項目名探索部17aが探索した文字列に続くテキストを、項目値として取得する。
妥当性判断部17cは、項目値取得部17bが取得した項目値の妥当性を判断する妥当性判断手段として機能する。妥当性判断部17cは、抽出対象項目名ごとに予め決められた判断ルールに基づいて、項目値取得部17bが取得した項目値の妥当性を判断する。ここで、判断ルールは、例えば、妥当性判断ルール記憶部23に記憶されている。
【0026】
処理結果出力部18は、項目値出力手段として機能する。処理結果出力部18は、妥当性判断部17cによる妥当性の判断結果を含んで、項目値と、項目値に対応する抽出対象項目名とを出力する。その際、処理結果出力部18は、妥当性判断部17cにより妥当性が低いと判断された項目値に対してアラートを出力する。そして、処理結果出力部18は、処理結果をユーザ端末5に対して出力する。
なお、これらの各機能の詳細については、後述する。
【0027】
記憶部20は、文字取得処理サーバ1の動作に必要なプログラム、データ等を記憶するためのハードディスク、半導体メモリ素子等の記憶装置である。
記憶部20は、プログラム記憶部21と、抽出対象項目名記憶部22と、妥当性判断ルール記憶部23とを備える。
プログラム記憶部21は、文字取得処理サーバ1で実行する各種のプログラムを記憶するための記憶領域である。プログラム記憶部21は、文字認識処理プログラム21a(プログラム)を記憶している。
文字認識処理プログラム21aは、例えば、制御部10に有する各種機能を実行するためのプログラムである。
なお、制御部10に有する各種機能を実行するためのプログラムは、上記したように1つの文字認識処理プログラム21aにより実現されるものに限定されない。例えば、制御部10の機能ごとに、又は、複数の機能ごとにプログラムを有してもよい。
【0028】
抽出対象項目名記憶部22は、抽出対象とする項目名を記憶する記憶領域である。抽出対象項目名記憶部22は、例えば、抽出対象とする項目名のリストを、例えば、文書のカテゴリごとに記憶する。文書のカテゴリとは、例えば、契約書や見積書の別であり、契約書であっても、委託契約書と請負契約書とは別のカテゴリにしてもよい。
【0029】
妥当性判断ルール記憶部23は、抽出対象項目名に対応付けて妥当性判断ルールを記憶する記憶領域である。
図3(A)に妥当性判断ルール記憶部23に記憶されるデータの例を示す。
図3(A)に示す妥当性判断ルール記憶部23は、妥当性判断ルールに、「正規表現」と記載された名称23aや「都道府県名DB(データベース)」と記載された名称等を含み、これらの名称は、別途定義ファイルによりその内容が定義されている。この各種の定義ファイルは、例えば、妥当性判断ルール記憶部23とは別に、記憶部20に有してもよい。また、各種の定義ファイルは、文字取得処理サーバ1に対して通信ネットワークNを介して通信可能に接続された外部のサーバ等に有してもよい。
図3(B)は、名称23aに対応した正規表現パターン定義ファイル31の例を示す。正規表現パターン定義ファイル31は、各種の正規表現に関するパターンが定義されたファイルである。なお、正規表現パターン定義ファイル31は、実際には、関数によって表せる式になっており、プログラムとして記述がされている。
【0030】
図1の通信インタフェース部29は、通信ネットワークNを介してユーザ端末5等との通信を行うためのインタフェースである。
ここで、コンピュータとは、制御部、記憶装置等を備えた情報処理装置をいい、文字取得処理サーバ1は、制御部10、記憶部20等を備えた情報処理装置であり、コンピュータの概念に含まれる。
また、文字取得処理サーバ1を構成するハードウェアの数に制限はない。必要に応じて、1又は複数で構成してもよい。また、文字取得処理サーバ1のハードウェアは、必要に応じてWebサーバ、DBサーバ、アプリケーションサーバ等の各種サーバを含んで構成してもよく、1台のサーバで構成しても、それぞれ別のサーバで構成してもよい。また、文字取得処理サーバ1は、例えば、クラウドであってもよい。
【0031】
<ユーザ端末5>
図1に示すユーザ端末5は、例えば、文書に記載された各種のデータを外部のシステムに登録したいユーザが使用する端末である。ユーザ端末5は、例えば、パーソナルコンピュータ(PC)や、タブレット端末等で構成することができる。図示していないが、ユーザ端末5は、制御部、記憶部、表示部、入力部、通信インタフェース部等を備える。
【0032】
<OCR装置6>
OCR装置6は、文書画像データから文字を認識するOCRに係る処理を行う装置である。OCR装置6は、文字取得処理サーバ1から文書画像データを受信することで、文書画像に対して文字認識処理をしてテキストデータを得る処理を行い、文字取得処理サーバ1にテキストデータを送信する。OCR装置6は、例えば、サーバ等で構成されている。OCR装置6は、その他、PC等で構成されていてもよい。図示していないが、OCR装置6は、制御部、記憶部、通信インタフェース部等を備える。
【0033】
通信ネットワークNは、文字取得処理サーバ1と、ユーザ端末5と、OCR装置6との間のネットワークであり、例えば、インターネット回線等の通信網である。通信ネットワークNは、LAN(Local Area Network)等であってもよい。また、通信ネットワークNは、有線であるか無線であるかを問わない。
【0034】
<処理の説明>
次に、文字取得処理サーバ1に処理について説明する。
図4は、本実施形態に係る文字取得処理サーバ1における処理の概要を説明するための図である。
文字取得処理サーバ1の文書画像取得部11は、ユーザ端末5から文書画像データとして、文書画像41を取得する。
次に、検出文字列グループ処理部12が、検出文字列グループ処理を行うことで、処理後テキスト42を得る。処理後テキスト42は、テキスト領域42aから42eまでを含む。テキスト領域42aから42eまでは、文書画像41の各行に対応する。
【0035】
テキスト領域42aは、「請負工事契約書」の位置情報と、テキストとを含む。
テキスト領域42bの工事場所及びテキスト領域42cの請負代金額は、矩形内の文字列であり、異なる明細表である。そのため、それぞれ「table_0」、「table_1」によって矩形内の文字列であることを示している。また、矩形内のテキストを区切り文字であるカンマで区切って出力している。なお、「table_0」が複数行ある明細の場合には、「table_0」の下に次の行のテキストの内容が出力される。
テキスト領域42eは、「完成日」と「2023年06月02日」とを1つのグループにグループ化したものである。そのため、「完成日 2023年06月02日」の位置情報と、テキストとを含む。
【0036】
処理後テキスト42を得たら、項目値抽出処理部17が、抽出対象項目名記憶部22を参照し、抽出対象項目名記憶部22に含まれる必要項目名を抽出し、処理後テキスト43を得る。抽出対象項目名記憶部22には、処理後テキスト42に含まれる項目名「工事場所」、「請負代金額」、「完成日」があるため、それらの項目名に対応したテキスト領域が抽出される。
次に、項目値抽出処理部17が、妥当性判断ルール記憶部23を参照し、妥当性を判断し、項目値抽出結果44を得る。ここで、項目名「請負代金額」は、「金額に関する正規表現に該当する文字列であること」という妥当性判断ルールがあるが(
図3(A)参照)、項目名「請負代金額」に続くテキストは金額に関するものではない。そのため、制御部10は、項目値抽出結果44において、アラートマーク44aを付して出力する。なお、制御部10は、アラート出力を、例えば、ユーザ端末5に対して音によって出力してもよいし、ユーザ端末5の表示部に結果を出力させ、アラートマーク44aを点滅させてもよい。さらに、アラートの対象のテキストに色を付して目立つようにしてもよい。制御部10は、項目値抽出結果44をデータとして出力する場合には、アラートの対象のテキストが、他のテキストとは異なるような編集をして出力してもよい。
【0037】
次に、上述で説明した処理の内容を、フローチャートを用いて詳細に説明する。
図5は、本実施形態に係る文字取得処理サーバ1の文字取得処理を示すフローチャートである。
図6は、本実施形態に係る文字取得処理サーバ1の矩形外処理を示すフローチャートである。
図7から
図9までは、本実施形態に係る文字取得処理サーバ1における処理を説明するための図である。
【0038】
まず、ユーザ端末5が文字取得処理サーバ1に接続し、例えば、見積書や請求書等の文書の画像データである文書画像データを送信することで、
図5のステップS(以下、「ステップS」を単に「S」という。)11において、文字取得処理サーバ1の文書画像取得部11は、文書画像データを取得する。
S12において、文字検出部13aは、取得した文書画像中の文字を検出する。制御部10は、例えば、OCR装置6に対して文書画像データを送信し、OCR装置6からテキストデータを取得することで、文書画像中の文字を検出することができる。
【0039】
S13において、文字列取得部13bは、検出した文字から文字列を取得する。
図7(A)に例示する画像51において、S13までの処理を実行すると、
図7(B)に例示する画像52のように、一連の文字のかたまりとして点線で囲われた文字列を取得することができる。なお、以降について、文書画像において文字の読み方向である横方向をX方向とし、縦方向をY方向として説明する。
【0040】
図5のS14において、罫線抽出部13cは、取得した文書画像中の罫線を抽出する。
S15において、矩形判定部13dは、矩形外に文字列があるか否かを判断する。矩形外に文字列がある場合(S15:YES)には、制御部10は、処理をS16に移す。他方、矩形外に文字列がない場合、つまり、全ての文字列が矩形内にある場合(S15:NO)には、制御部10は、処理をS17に移す。
S16において、矩形外処理部14は、矩形外処理を行う。
【0041】
ここで、矩形外処理について、
図6に基づき説明する。
図6のS31において、文字列情報取得部14aは、文字列の位置情報及び文字サイズを含む文字列の文字列情報を取得する。
S32において、制御部10は、閾値を設定する。閾値は、例えば、文書画像の全体における文字列の大きさの比率や、文字列に含まれる文字の文字サイズに基づいて設定することができる。閾値は、文字列同士の距離に応じてグループ化するか否かを判断するために用いるものであるため、例えば、対象になる文字の文字サイズが大きくなるほど、閾値も大きくなってもよい。
S33において、制御部10は、先頭の文字列を「比較対象」にする。
S34において、差分算出部14bは、「比較対象」とその次の文字列との距離及び文字列情報の差分を算出する。
S35において、グループ判定部14cは、距離及び差分と閾値とに基づいてグループ化を判定する。
【0042】
ここで、グループ化の判定について、
図8に基づき説明する。
グループ判定部14cは、文字列の読み方向が横方向(X方向)である場合に、以下の条件全てに当てはまる文字列「発行日付:」と文字列に続く他の文字列「令和4年1月6日」とをグループ化する。
(その1)文字列「発行日付:」と文字列に続く他の文字列「令和4年1月6日」との高さ方向(Y方向)の位置がほぼ同じである。この例の場合、文字列「発行日付:」の中心線61aと、他の文字列「令和4年1月6日」の中心線61bとがほぼ同じ高さであり、位置の差分が限りなく0に近い値である。そのため、制御部10は、両者の高さ方向(Y方向)の位置がほぼ同じであると判断できる。
【0043】
(その2)文字列「発行日付:」と文字列に続く他の文字列「令和4年1月6日」との間の距離が閾値以下である。この例の場合、距離62は、文字列内の文字の大きさの半分以下程度の長さである。そのため、制御部10は、両者の距離62が閾値以下であると判断できる。
(その3)文字列「発行日付:」と文字列に続く他の文字列「令和4年1月6日」との文字サイズがほぼ同じである。この例の場合、文字列「発行日付:」の高さ63aと、他の文字列「令和4年1月6日」の高さ63bとがほぼ同じ高さであり、高さの差分が限りなく0に近い値である。そのため、制御部10は、両者の文字サイズがほぼ同じであると判断できる。
グループ判定部14cは、上記の条件による結果として、文字列「発行日付:」と他の文字列「令和4年1月6日」とは、グループ化すると判定する。そして、グループ化部14dは、グループ化すると判定した判定対象の複数の文字列を1つのグループとする。
【0044】
図6のS36において、全ての矩形外にある文字列について処理をしたか否かについて判断する。全ての矩形外にある文字列について処理をした場合(S36:YES)には、制御部10は、処理をS38に移す。他方、全ての矩形外にある文字列について処理をしていない場合(S36:NO)には、制御部10は、処理をS37に移す。
S37において、制御部10は、処理済みの文字列に続く文字列を「比較対象」にし、処理をS34に移す。
他方、S38において、制御部10は、グループ化したデータを記憶部20に記憶する。
図7(C)に例示する画像53は、グループ化した後の例である。その後、制御部10は、処理を
図5のS17に移す。
【0045】
図5のS17において、テキスト変換部15は、文字列をテキストに変換し、当該テキストを記憶部20に記憶する。
図9(A)は、
図7(C)に示すグループ化後の画像53に有するグループ化した文字列をテキスト変換した場合の例を示す。
図9(A)に示すように、制御部10は、文字列と次の文字列との間には、区切り文字として1文字分のスペースを挿入してテキスト化する。なお、グループ化しなかった文字列である、例えば、「明細書」について、制御部10は、テキスト化した文字列として「明細書」を得るが、文字間にスペース等を有さない。
【0046】
また、テキスト変換後にテキスト出力部16により出力するテキスト65を、
図9(B)に示す。
図9(B)に例示するテキスト65は、矩形外テキスト65aと、矩形内テキスト65bとを含む。矩形外テキスト65aは、テキストを囲う矩形領域の位置情報と、テキストとを含む。位置情報は、テキストを囲う矩形領域の左上及び右下の座標により示される。また、矩形内テキスト65bは、表ごとに矩形内のテキストを左上から右方向に順番にカンマ区切りによって示される。
図5のS18において、項目値抽出処理部17は、項目値抽出処理を行う。
【0047】
ここで、項目値抽出処理について、
図10に基づき説明する。
図10のS51において、項目名探索部17aは、抽出対象項目名記憶部22を参照し、テキストから項目名に該当する文字列を探索する。
S52において、制御部10は、探索した文字列が矩形内にあるか否かを判断する。制御部10は、探索した文字列が矩形内にあるか否かを、テキストに「table」で示される文字列を含むか否かで判別できる。矩形内にある場合(S52:YES)には、制御部10は、処理をS53に移す。他方、矩形内にはない場合、つまり矩形外にある場合(S52:NO)には、制御部10は、処理をS54に移す。
【0048】
S53において、項目値取得部17bは、文字列の隣のセルのテキストを項目値として取得する。より具体的には、制御部10は、文字列の次にあるカンマ記号のさらに次のテキストを、項目値として取得する。カンマ記号は区切り文字である。その後、制御部10は、処理をS55に移す。
他方、S54において、項目値取得部17bは、文字列に続くテキストを、項目値として取得する。
S55において、妥当性判断部17cは、妥当性判断ルール記憶部23を参照し、取得した項目値の妥当性を判断する。
【0049】
S56において、妥当性判断部17cは、項目値が妥当であるか否かを判断する。項目値が妥当である場合(S56:YES)には、制御部10は、処理をS58に移す。他方、項目値が妥当ではない場合(S56:NO)には、制御部10は、処理をS57に移す。
S57において、処理結果出力部18は、アラートを出力する。アラートの出力方法としては、音によるものや、画面に出力するものがある。しかし、これに限定されるものではない。
S58において、処理結果出力部18は、抽出対象項目名と、その項目値として取得したテキストとを出力する。なお、S57の処理においてアラートを出力した場合には、制御部10は、抽出対象項目名と、項目値として取得したテキストとを出力した上で、例えば、該当のレコードについては、確認を必要とする旨を出力してもよい。
【0050】
S59において、制御部10は、テキストに含まれる全ての文字列について処理をしたか否かを判断する。全ての文字列について処理をした場合(S59:YES)には、制御部10は、本処理を終了する。他方、全ての文字列について処理をしていない場合(S59:NO)には、制御部10は、処理をS52に移し、探索済かつ未処理の文字列について本処理を繰り返す。
【0051】
このように、本実施形態によれば、文字取得処理サーバ1は、以下のような効果がある。
(1)文書画像データから文字を検出し、検出した文字の文字間隔に応じて文字列とし、文字列の位置情報及び文字列の文字サイズを含む文字列情報を取得し、文字列について、読み方向における先頭の文字列から読み方向の順に、文字列と文字列に続く他の文字列との間の距離及び文字列情報の差分を算出し、算出した距離及び差分と予め設定された閾値とに基づき、文字列と文字列に続く他の文字列とをグループ化するか否かを判定する。
よって、文書画像データを入力するだけで、グループ化する文字列を判断できる。よって、かたまりとして処理をするべき文字列か否かを自動的に判定でき、文字列の意味を理解可能にグルーピングができる。
【0052】
(2)算出した距離及び差分が閾値より小さい場合に、文字列と文字列に続く他の文字列とをグループ化すると判定する。
よって、文字列同士の間の距離が短く、文字列情報の差が小さい場合に、文字列と文字列に続く他の文字列とをグループ化することができる。よって、ひとかたまりにすべき文字列を適切に同じグループとして、グループ化をすることができる。
【0053】
(3)距離の差分と比較する閾値は、文書画像の全体における文字列の大きさの比率又は文字列の文字の大きさに基づき設定する。
よって、文書画像の全体による文字列の大きさの比較や、文字の大きさによって、適切な値を閾値にすることができる。例えば、文字列中の文字フォントが大きい場合と小さい場合とで、異なる閾値にすることができ、グループ化をするに際してより適切な判断を行わせることができる。
【0054】
(4)文書画像から罫線を抽出し、抽出した罫線で囲まれた矩形内に取得した文字列があるか否かを判定し、矩形内にないと判定した文字列について、文字列情報を取得する。
よって、矩形内ではないものについては、グループ化の対象にすることができ、文書の構造にしたがって処理を分けて、適切にテキストを抽出できる。
(5)矩形内にあることを判定した場合に、矩形内の文字列をテキストに変換し、変換したテキストを出力する。また、矩形内のテキストを1つのかたまりにして区切り文字によって区切って出力する。
よって、矩形内のものは、矩形内で1つのグループとして区切ってテキストを出力することができる。
【0055】
(6)グループ化すると判定した場合に、判定対象の複数の文字列を1つのグループとし、文字列をテキストに変換し、変換したテキストを出力する。そして、1つのグループに含まれる各文字列の間に区切り文字を挿入してテキストに変換する。また、テキストの位置情報と共にテキストを出力する。
よって、グループ化したものは、グループとしてテキストに変換して出力でき、他方、グループ化しないものは、文字列をテキストに変換して出力する。その結果、文書構造にしたがって適したかたまりでテキストに変換して出力できる。また、テキストの位置情報を含むので、必要な情報を抽出しやすいものにできる。
【0056】
(7)文書画像から文字認識処理によって得られたテキストから予め設定された抽出対象項目名に該当する文字列を探索し、探索した文字列に対応する項目値を、テキストから取得し、取得した項目値の妥当性を判断し、妥当性の判断結果を含んで、項目値と、項目値に対応する抽出対象項目名とを出力する。
よって、文書画像から必要な項目名とその値とを抽出でき、妥当性の判断結果を含んで出力できる。その結果、文書画像に含まれるデータ入力負担を軽減することができる。
【0057】
(8)抽出対象項目名ごとに予め決められた判断ルールに基づいて、項目値の妥当性を判断する。
よって、項目値として適切なものであるか否かを妥当性として判断できる。
(9)探索した文字列に続くテキストを、項目値として取得する。
よって、項目名の後に出現する項目値を適切に取得できる。
(10)妥当性が低いと判断された項目値に対してアラートを出力する。
よって、妥当性が低いことを、アラートによってユーザに知らせることができる。
【0058】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではない。また、実施形態に記載した効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載したものに限定されない。なお、上述した実施形態及び後述する変形形態は、適宜組み合わせて用いることもできるが、詳細な説明は省略する。
【0059】
(変形形態)
(1)本実施形態では、見積書や請求書等の書類の文書画像を例に説明したが、これに限定されない。定型文書はもちろんであるが、非定型文書であってもよく、いずれの文書であっても同様に行うことができる。
(2)本実施形態では、処理の説明において様々な周知の技術を用いて行うものを例に説明したが、上記に記載した周知技術は、一例であり、他の技術を用いて行ってもよい。
【0060】
(3)本実施形態では、文字の読み方向(X方向)に文字列と次に続く他の文字列との間の距離や文字列情報の差分を算出してグループ化を判定したが、これに限定されない。例えば、上記の判定に追加して、文字の読み方向(X方向)に対して垂直方向(Y方向)に文字列と次に続く他の文字列との間の距離や文字列情報の差分を算出してグループ化を判定してもよい。
【0061】
図11は、変形形態に係る文字取得処理サーバ1における処理を説明するための図である。
図11(A)に例示する画像70の場合、制御部10が文字の読み方向(X方向)に文字列と次に続く他の文字列との間の距離や文字列情報の差分を算出してグループ化を判定すると、「発行日付」や「発行時刻」についてはグループ化がされない。
そこで、
図11(B)に示すように、制御部10は、文字の読み方向(X方向)に対して垂直方向(Y方向)に文字列と次に続く他の文字列との間の距離や文字列情報の差分を算出してグループ化を判定する。
【0062】
文字取得処理サーバ1のグループ判定部14cは、文字列の文字の並びが横方向である場合に、以下の条件全てに当てはまる文字列「発行日付」と、読み方向(X方向)に対して垂直方向(Y方向)に文字列に続く他の文字列「令和4年1月6日」とをグループ化する。
(その1)文字列「発行日付」と文字列に続く他の文字列「令和4年1月6日」との横方向(X方向)の開始位置がほぼ同じである。この例の場合、文字列「発行日付」の開始線71aと、他の文字列「令和4年1月6日」の開始線71bとがほぼ同じ開始位置である。そのため、制御部10は、横方向(X方向)の位置がほぼ同じであると判断できる。
【0063】
(その2)文字列「発行日付」と文字列に続く他の文字列「令和4年1月6日」との間の距離が閾値以下である。この例の場合、距離72は、ごく短い長さであるため、制御部10は、距離72が閾値以下であると判断できる。
(その3)文字列「発行日付」と文字列に続く他の文字列「令和4年1月6日」との文字サイズがほぼ同じである。文字列「発行日付」の高さ73aと、他の文字列「令和4年1月6日」の高さ73bとがほぼ同じ高さである。そのため、制御部10は、文字サイズがほぼ同じであると判断できる。
グループ判定部14cは、上記の条件による結果として、文字列「発行日付」と他の文字列「令和4年1月6日」とは、グループ化すると判定する。そして、グループ化部14dは、グループ化すると判定した判定対象の複数の文字列を1つのグループとする。
【0064】
図11(C)に例示する画像74は、文字の読み方向(X方向)に対して垂直方向(Y方向)に文字列と次に続く他の文字列とをグループ化した後の例である。
なお、例えば、グループ判定部14cが、1つの文字列について複数の方向(文字の読み方向及びそれに対する垂直方向)でのにおけるグループ化が判定された場合に、妥当性判断部17cによる判断の結果、制御部10は、グループ化の妥当性を判断できる。そのため、複数方向でのグループ化の判定をしてもよい。
【0065】
(4)本実施形態では、文字取得処理サーバがOCR装置に対して文書画像を送信してテキスト化を依頼するものを例に説明したが、これに限定されない。OCR装置に対して文書画像を送信する前に、前処理を追加してもよい。前処理としては、例えば、コントラスト調整や先鋭化等である。そうすることで、OCR装置での処理の精度がより向上できる可能性がある。
【0066】
(5)本実施形態では、文字取得処理サーバとユーザ端末とOCR装置とを備えるものを例に説明したが、これに限定されない。例えば、文字取得処理サーバとOCR装置とは、同一のサーバにより実現してもよい。また、例えば、文字取得処理サーバの機能及びOCRの機能を有するクライアント端末のみのスタンドアロン構成のものであってもよい。
【符号の説明】
【0067】
1 文字取得処理サーバ
5 ユーザ端末
6 OCR装置
10 制御部
11 文書画像取得部
12 検出文字列グループ処理部
13 前処理部
13a 文字検出部
13b 文字列取得部
13c 罫線抽出部
13d 矩形判定部
14 矩形外処理部
14a 文字列情報取得部
14b 差分算出部
14c グループ判定部
14d グループ化部
15 テキスト変換部
16 テキスト出力部
17 項目値抽出処理部
17a 項目名探索部
17b 項目値取得部
17c 妥当性判断部
18 処理結果出力部
20 記憶部
21a 文字認識処理プログラム
22 抽出対象項目名記憶部
23 妥当性判断ルール記憶部
31 正規表現パターン定義ファイル
41 文書画像
42,43 処理後テキスト
44 項目値抽出結果
100 文字取得処理システム