JP2023087357A - 情報処理装置、情報処理方法、およびプログラム - Google Patents

情報処理装置、情報処理方法、およびプログラム Download PDF

Info

Publication number
JP2023087357A
JP2023087357A JP2021201693A JP2021201693A JP2023087357A JP 2023087357 A JP2023087357 A JP 2023087357A JP 2021201693 A JP2021201693 A JP 2021201693A JP 2021201693 A JP2021201693 A JP 2021201693A JP 2023087357 A JP2023087357 A JP 2023087357A
Authority
JP
Japan
Prior art keywords
token
document image
string
character string
item
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021201693A
Other languages
English (en)
Inventor
亮 小坂
Ryo Kosaka
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2021201693A priority Critical patent/JP2023087357A/ja
Publication of JP2023087357A publication Critical patent/JP2023087357A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Character Discrimination (AREA)
  • Machine Translation (AREA)
  • Character Input (AREA)

Abstract

【課題】文字列の表記に規則性が無い項目の項目値であっても、予めレイアウトが定められた定型文書とは異なるレイアウトの文書の画像から、ユーザが所望する文字列のデータを、所定の項目に対応する項目値の候補として抽出する。【解決手段】学習用の文書画像を解析して分割した、所定の項目の項目値に対応する領域毎に、領域を示す第1のトークンと、学習用の文書画像から取得した文字列を構成する単語を示す第2のトークンとを生成する。第1のトークンと第2のトークンを連結して生成した第1の入力トークン列を入力データとし、第1の入力トークン列を構成する第1のトークンおよび第2のトークンを項目に対応する情報に置き換えた出力トークン列を出力データとして生成した学習データを用いて機械学習を行うことにより、文書画像から所定の項目の項目値に対応する文字列を候補文字列として抽出するための学習済みモデルを生成する。【選択図】図3

Description

本開示は、文書画像から文字列のデータを抽出する技術に関する。
イメージスキャナデバイス(以下「スキャナ」という。)またはファクシミリ(以下「FAX」という。)受信機などを用いて得られた文書画像から、所定の項目値を文字列のデータとして抽出することが行われている。抽出された文字列のデータは、ファイル名の自動付与などの文書ファイリング処理、または業務システムへの転記処理などの入力データとしてデータ入力業務などに用いられる。
特許文献1には、データ入力業務を支援する技術として、一般に準定型文書または非定型文書と呼ばれる、予めレイアウトが定められた定型文書とは異なるレイアウトで作成された文書の画像から所定の項目値に対応する文字列を抽出する手法が開示されている。特許文献1に開示された手法(以下「従来手法」という。)は、先ず、振込依頼書などの文書画像に含まれる複数の文字列から、口座番号などの予め定められた項目名と、項目名に対応する1234567などの項目値を抽出する。そして、項目名と項目値との互いの位置関係から両者の妥当性を評価し、この評価結果に基づいて項目値を抽出する。従来手法では、項目名を、番号または口座番号などの予め定められたキーワードに基づいて抽出し、項目値を、NNNNNNN(Nは、例えば任意のアラビア数字)などの予め定められたデータ型に基づいて抽出する。
特開2016-51339号公報
従来手法では、金額、日付、または口座番号などの文字列の表記に規則性がある項目の項目値については抽出できるが、氏名、住所、職業、または続柄などの文字列の表記に規則性が無い項目の項目値については抽出できないことがあった。すなわち、文字列の表記に規則性がある場合についてはデータ型によって妥当性を評価できるが、文字列の表記に規則性が無い場合については、データ型によって妥当性を評価することが困難なため、項目値を必ずしも抽出できるわけではない。また、上述の従来手法とは別の手法として、文書画像中の全ての文字列に対して自然言語処理による機械学習を行う手法が考えられるが、抽出対象である項目値の手がかりとなる文字列の出現位置に影響されて項目値を正しく抽出できないことがあった。
本開示の一態様に係る情報処理装置は、文書画像から所定の項目の項目値に対応する文字列を候補文字列として抽出するための学習済みモデルを生成する情報処理装置であって、学習用の文書画像から文字列を取得する第1の取得手段と、前記学習用の文書画像から抽出対象の文字列に対応する所定の項目を取得する第2の取得手段と、前記学習用の文書画像を解析して前記所定の項目の項目値に対応する領域に分割する第1の解析手段と、前記第1の解析手段により分割された領域毎に前記領域を示す第1のトークンを生成する第1の生成手段と、前記第1の解析手段により分割された領域毎に、前記第1の取得手段により取得された文字列を構成する単語を示す第2のトークンを生成する第2の生成手段と、前記第1のトークンと前記第2のトークンを連結して第1の入力トークン列を生成する第1の連結手段と、前記第1の入力トークン列を構成する前記第1のトークンおよび前記第2のトークンを、前記項目に対応する情報に置き換えた第1の出力トークン列に変換する変換手段と、生成された第1の入力トークン列を入力データとし、変換された第1の出力トークン列を出力データとして生成された学習データを用いて機械学習を行うことにより前記学習済みモデルを生成する学習手段と、を有することを特徴とする。
本開示によれば、文字列の表記に規則性が無い項目の項目値であっても、予めレイアウトが定められた定型文書とは異なるレイアウトの文書の画像から、ユーザが所望する文字列のデータを、所定の項目に対応する項目値の候補として抽出することができる。
情報処理システムの構成例を示す図である。 文書画像取得装置の構成例を示す図である。 学習装置の構成例を示す図である。 推論装置の構成例を示す図である。 情報処理システムの処理シーケンス例を示す図である。 項目値判定モデルを生成する処理の流れを示すフローチャートである。 文書画像サンプルとその文字列データおよび項目値情報の一例を示す図である。 文書画像トークン列を生成する処理の流れを示すフローチャートである。 文書画像トークン列を説明するための図である。 項目値トークン列を説明するための図である。 候補文字列群を生成する処理の流れを示すフローチャートである。 文書画像とその文字列データおよび文書画像トークン列の一例を示す図である。 項目値トークン列の一例を示す図である。 レイアウトの解析処理を説明するための図である。 文書画像トークン列を説明するための図である。 項目値トークン列を説明するための図である。
本開示の実施形態を説明する前に、文字列の表記に規則性が無い項目値を抽出する方法として、文書画像中の全文字列に対して自然言語処理による機械学習を行う方法を用いた場合、データ型によって妥当性を評価することが困難となる要因について説明する。
この方法では、まず、文書画像中の文字列を、文書画像の左上から下方向に順番に読み取るなど、所定の規則に従って文字列の読取順番を決定する。そして、読取順番に従って並べた文字列を機械学習モデルの入力とすることにより、文字列の出現順番を基に項目値らしさを推定することが可能となる。ただし、文書画像において離れた個所に記載されていた文字列が、学習モデルに入力する際に、抽出対象である項目値の手掛かりとなる文字列の前後にて連続して出現する場合、項目値を正しく抽出できないことがあった。すなわち、単純な文字列の出現順番だけを基に、抽出対象となる項目の項目値であるか判断すると、手がかりとなる文字列の出現位置に影響されて項目値を正しく抽出できないことがあった。ここで、妥当性を評価することが困難となるデータ型の一例について、図7(b)を用いて説明する。図7(b)は、文書画像サンプル700の抽出対象領域710を示す図である。抽出対象領域710(文書画像サンプル700)では、領域712の文字列「商業労政課」と、領域713の文字列「(宛先)川崎工場」とは離れた個所に記載されているものの、機械学習モデルへの入力時には2つの文字列が順番に出現することになる。そのため、「(宛先)」という文字列の近傍に存在する「川崎工場」を発行元情報として正しく抽出する一方で、発行先情報であるはずの「商業労政課」も発行元情報として誤抽出してしまうことがあった。
以下、本開示を実施するための形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
[第1の実施形態]
<情報処理システム>
図1は、本実施形態に係る情報処理システムの構成例を示す図である。図1に示すように、情報処理システム1は、文書画像取得装置2と、学習装置3と、推論装置4とを有する。文書画像取得装置2と学習装置3と推論装置4とは、ネットワーク5を介して互いにデータを送受信可能に接続される。情報処理システム1において、文書画像取得装置2、学習装置3および推論装置4は、いずれも、ネットワーク5に対して単一接続ではなく、複数接続された構成であってもよい。例えば、推論装置4は、高速演算リソースを有する第1の装置と、大容量ストレージを有する第2の装置により構成され、第1および第2の装置がネットワーク5を介して互いにデータを送受信可能に接続された構成であってもよい。図1に示す情報処理システム1は、一例として、文書画像取得装置2、学習装置3および推論装置4がネットワーク5を介してそれぞれ単一接続されたものである。
文書画像取得装置2は、プリント機能、スキャン機能およびFAX機能などの複数の機能を備えた、例えば、MFP(Multi-Function Peripheral)により実現される。文書画像取得装置2は、画像を取得し、取得した画像のデータを外部の装置に出力する機能を有する。文書画像取得装置2は、MFPにより実現される場合、文書画像取得装置2は、例えば、スキャン機能により紙などの記録媒体に印字された原稿11を光学的に読み取り、周知のスキャン画像処理を行うことにより文書画像を取得する。また、当該場合、例えば、文書画像取得装置2は、FAX機能により、図1には不図示のFAX送信機から送信されたFAXデータ12を受信し、FAXデータ12に対して周知のFAX画像処理を行うことにより文書画像を取得する。さらに、文書画像取得装置2は、取得した文書画像を文書画像データ13として推論装置4に対して送信する。
なお、MFPはあくまで一例であって、文書画像取得装置2は、PC(Personal Computer)などにより実現されてもよい。例えば、文書画像取得装置2としてのPCにおいて動作する文書作成アプリケーションを用いて生成される文書画像を取得し、取得した文書画像を文書画像データ13として推論装置4に対して送信してもよい。ここで、文書作成アプリケーションを用いて生成される文書画像のデータとは、PDF(Portable Document Format)などの電子文書ファイル形式のデータである。当該文書画像のデータは、JPEG(Joint Photographic Experts Group)などの静止画像のデータなどであってもよい。
学習装置3は、データセットを生成し、生成したデータセットを用いて機械学習を行うことにより得た学習済モデルに基づいて項目値判定モデル15を生成する。ここで、項目値判定モデル15とは、説明変数として入力された文字列を示す情報とレイアウトを示す情報とに基づいて、予め定められた複数の項目のうちから、所定の項目に対応する項目値を特定するものである。具体的には、学習装置3は、エンジニアなどのユーザから提供された複数の文書画像のサンプル(以下「文書画像サンプル14」という。)に含まれる文字列のデータ(以下「文字列データ」という。)と抽出対象の項目値情報とを取得する。なお、文書画像サンプル14は、学習に用いられることから、学習用の文書画像であるともいえる。次に、学習装置3は、文書画像サンプル14に対して、文書画像内のレイアウトを解析するレイアウト解析処理を実行して、文書画像中の文字領域、空白領域および罫線などの領域を示すレイアウト情報を取得する。なお、レイアウト解析処理には、公知の技術が用いされる。そして、学習装置3は、選択された領域に対応する、文書画像内のレイアウト情報と文字列データを、領域情報トークンと文字列トークンにそれぞれ変換して結合する。学習装置3は、これら処理を全ての領域に対して実行することで、文書画像トークン列を生成する。また、学習装置3は、文書画像トークン列の各トークンに、抽出対象の項目値情報を埋め込むことで項目値トークン列を生成する。すなわち、学習装置3は、文書画像トークン列の各トークンを、抽出対象の項目値情報に置き換えることで項目値トークン列を生成するともいえる。なお、後述する推論装置4においても同様の処理が提供されるため、学習装置3の代わりに推論装置4を利用してもよい。そして、学習装置3は、文書画像トークン列と項目値トークン列をペアとした学習データを用いて、項目値情報を抽出する項目値判定モデル15を生成する。
学習装置3は、例えば、経理系の事務部門にて扱われる文書画像のデータを文書画像サンプル14として取得する。学習装置3は、取得した文書画像サンプル14に含まれる文字列データを元に、文書名、文書番号、発行日、発行元情報、宛先情報などの項目の項目値を抽出するための項目値判定モデル15を生成する。なお、人事系の事務部門にて扱われる文書画像のデータを文書画像サンプル14として取得してもよい。この場合、学習装置3は、取得した文書画像サンプル14に含まれる文字列データを元に、文書名、日付、氏名、住所、法人名などの項目の項目値を抽出するための項目値判定モデル15を生成する。また、医療系の事務部門にて扱われる文書画像のデータを文書画像サンプル14として取得してもよい。この場合、学習装置3は、取得した文書画像サンプル14に含まれる文字列データを元に、文書名、日付、氏名、医療機関名、病名、薬品名、金額などの項目の項目値を抽出するための項目値判定モデル15を生成する。項目値判定モデル15を生成した後、学習装置3は、生成した項目値判定モデル15を、ネットワーク5を介して推論装置4に対して送信する。学習装置3の詳細については後述する。
推論装置4は、文書画像取得装置2から受信した文書画像データ13に含まれる複数の文字列のそれぞれに対応するデータを、文字列毎に文字列データおよびレイアウト情報として取得する。すなわち、推論装置4は、文書画像データ13に対してブロックセレクション処理およびOCR(Optical Character Recognition)処理を実行することによって得られた文字認識結果を複数の文字列データとして取得する。さらに、推論装置4は、文書画像データ13に対して、文書画像内のレイアウトを解析するレイアウト解析処理を実行することによって得られたレイアウト解析結果をレイアウト情報として取得する。そして、推論装置4は、取得した文書画像内の文字列データとレイアウト情報を、文字列トークンと領域情報トークンにそれぞれ変換して結合することで、文書画像トークン列を生成する。そして、推論装置4は、学習装置3により生成された項目値判定モデル15を用いて、文書画像データ13に含まれる複数の文字列のデータのうちから、所定の項目の項目値に対応する、候補となる文字列(以下「候補文字列」という)のデータを抽出する。推論装置4は、抽出した候補文字列のデータ(文字列データ16)を図1には不図示の記憶装置または表示装置などに出力する。推論装置4の詳細については後述する。
ネットワーク5は、LAN(Local Area Network)またはWAN(Wide Area Network)などにより構成される通信網である。ネットワーク5は、文書画像取得装置2、学習装置3および推論装置4の間を互いに通信可能に接続して、装置間におけるデータの送受信を可能にする。
なお、文書画像取得装置2と学習装置3と推論装置4は、詳細につき後述する、それぞれが有する機能の一部または全部を担ってもよい。
<文書画像取得装置>
図2は、文書画像取得装置2の構成例を示す図であり、図2(a)に文書画像取得装置2の機能構成例を示し、図2(b)に文書画像取得装置2のハードウェア構成例を示す。図2(a)を用いて、文書画像取得装置2の機能について説明する。なお、文書画像取得装置2が有する各機能部は、それぞれが有する機能の一部または全部を担ってもよい。文書画像取得装置2は、画像取得部21と、画像送信部22とを有する。画像取得部21は、文書画像を取得する。画像送信部22は、画像取得部21により取得された文書画像を、文書画像データ13として、ネットワーク5を介して推論装置4に対して送信する。
文書画像取得装置2において機能する各部の処理は、文書画像取得装置2に内蔵されたASIC(Application Specific Integrated Circuit)などのハードウェアによってなされる。当該処理は、FPGA(Field Programmable Gate Array)などのハードウェアによってなされるものであってもよい。また、当該処理は、RAM(Random Access Memory)などのメモリと、CPU(Central Processor Unit)などのプロセッサとを用いたソフトウエアによってなされるものであってもよい。
図2(b)を用いて、文書画像取得装置2のハードウェアについて説明する。文書画像取得装置2は、コンピュータにより構成されており、CPU201、ROM202、データバス203、RAM204、プリンタデバイス205、スキャナデバイス206、原稿搬送デバイス207を有する。また、文書画像取得装置2は、ストレージ208、入力デバイス209、表示デバイス210、外部インタフェース211などを有する。
CPU201は、文書画像取得装置2における動作全体を制御するためのプロセッサである。CPU201は、ROM202などに格納された起動プログラムを実行することにより、文書画像取得装置2のシステムを起動する。CPU201は、ストレージ208などに記憶された制御プログラムを実行することにより、文書画像取得装置2においてプリント機能、スキャン機能、またはFAX機能などとして機能する各部を機能させる。なお、文書画像取得装置2は、CPU201とは異なる1つまたは複数の専用のハードウェアを有し、CPU201による処理の少なくとも一部を専用のハードウェアが実行してもよい。専用のハードウェアの例としては、ASIC、FPGA、またはDSP(Digital Signal Processor)などがある。
ROM202は、変更を必要としないプログラムなどを格納する不揮発性のメモリであって、例えば、文書画像取得装置2を起動する起動プログラムを格納する。データバス203は、文書画像取得装置2が有する各ハードウェアを接続して、ハードウェア間において相互にデータを伝送する。
RAM204は、ROM202またはストレージ208などから供給されるプログラムまたはデータ、または外部インタフェース211を介して外部から供給されるデータなどを一時記憶する揮発性のメモリである。RAM204は、CPU201が起動プログラムまたは制御プログラムなどのプログラムを実行する際のワークメモリとして使用される。
プリンタデバイス205は、画像出力用のデバイスであって、文書画像取得装置2にて取得された文書画像を紙などの記録媒体に印字して印刷出力するためのデバイスである。スキャナデバイス206は、画像入力用のデバイスであって、文字や図表などが印字された紙などの記録媒体を光学的に読み取って文書画像として取得するためのデバイスである。原稿搬送デバイス207は、図2(b)では不図示の原稿台に載置された原稿を検知し、検知した原稿を1枚ずつスキャナデバイス206に搬送するためのデバイスである。原稿搬送デバイス207は、ADF(Auto Document Feeder)などにより実現される。
ストレージ208は、HDD(Hard Disk Drive)などにより実現されるものであって、上述の制御プログラムおよび文書画像データ13などを記憶するための補助記憶装置である。入力デバイス209は、タッチパネルおよびハードキーなどにより実現されるものであって、ユーザからの文書画像取得装置2に対する操作入力を受け付けるためのデバイスである。表示デバイス210は、液晶ディスプレイなどにより実現されるものであって、文書画像取得装置2が出力する設定画面などの表示画像をユーザに対して視認可能に表示出力するためのデバイスである。外部インタフェース211は、文書画像取得装置2とネットワーク5との間を接続するものであって、図2(b)には不図示のFAX送信機からFAXデータ12を受信したり、推論装置4に対して文書画像データ13を送信したりするためのデバイスである。
<学習装置>
図3は、学習装置3の構成例を示す図であり、図3(a)に学習装置3の機能構成例を示し、図3(b)に学習装置3のハードウェア構成例を示す。図3(a)を用いて、学習装置3の機能について説明する。なお、学習装置3が有する各機能部は、それぞれが有する機能の一部または全部を担ってもよい。学習装置3は、画像サンプル取得部31、文字列取得部32、項目値情報取得部33、第1トークン列生成部34、第2トークン列生成部35、学習データ生成部36、学習部37、判定モデル出力部38を有する。
画像サンプル取得部31は、文書画像サンプルを取得する。取得した文書画像サンプルは、文字列取得部32と項目値情報取得部33と第1トークン列生成部34に送られる。文字列取得部32は、文書画像サンプルに対してブロックセレクション処理およびOCR処理などの処理を実行して、処理結果として文字列データを取得する。取得した文字列データは、項目値情報取得部33と第1トークン列生成部34とに送られる。項目値情報取得部33は、文字列データに対して解析処理を実行して、解析結果として項目値情報を取得する。項目値情報の取得方法としては、公知の技術が用いられる。取得した項目値情報は、第2トークン列生成部35に送られる。
第1トークン列生成部34は、文書画像サンプルと文字列データを基に、文書画像トークン列を生成する。生成した文書画像トークン列は、第2トークン列生成部35に送られる。第2トークン列生成部35は、文書画像トークン列と、項目値情報を基に作成された項目名IDリストとに基づき、項目値トークン列を生成する。生成した項目値トークン列は、学習データ生成部36に送られる。学習データ生成部36は、文書画像トークン列を入力データとし、項目値トークン列を出力データとする学習データセット(学習用データ)を生成する。文書画像トークン列が入力データとされることから、文書画像トークン列は、第1の入力トークン列ともいえる。項目値トークン列が出力データとするとされることから、項目値トークン列は、第1の出力トークン列ともいえる。学習部37は、全ての学習データセットを学習モデルに入力することにより、学習モデルに機械学習させる。そして、学習部37は、学習結果である学習済モデルに基づいて項目値判定モデル15を生成する。なお、学習部37は、学習結果である学習済モデルに対して処理を行うことなく、当該学習済モデルを項目値判定モデル15としてもよい。判定モデル出力部38は、学習部37により生成された判定モデルを、推論装置4、または図3(b)には不図示の記憶装置に対して出力する。
学習装置3において機能する各部の処理は、文書画像取得装置2に内蔵されたASIC(Application Specific Integrated Circuit)などのハードウェアによってなされる。当該処理は、FPGA(Field Programmable Gate Array)などのハードウェアによってなされるものであってもよい。また、当該処理は、RAM(Random Access Memory)などのメモリと、CPU(Central Processor Unit)などのプロセッサとを用いたソフトウエアによってなされるものであってもよい。
図3(b)を用いて、学習装置3のハードウェアについて説明する。学習装置3は、コンピュータにより構成されており、CPU231、ROM232、データバス233、RAM234、ストレージ235、入力デバイス236、表示デバイス237を有する。また、学習装置3は、外部インタフェース238、GPU239などを有する。
CPU231は、学習装置3における動作全体を制御するためのプロセッサである。CPU231は、ROM232などに格納された起動プログラムを実行することにより、学習装置3のシステムを起動する。CPU231は、ストレージ235などに記憶された制御プログラムを実行することにより、学習装置3において機能する各部を機能させる。学習装置3は、CPU231とは異なる1つまたは複数の専用のハードウェアを有し、CPU231による処理の少なくとも一部を専用のハードウェアが実行してもよい。専用のハードウェアの例としては、ASIC、FPGA、またはDSPなどがある。
ROM232は、変更を必要としないプログラムなどを格納する不揮発性のメモリであって、例えば、学習装置3を起動する起動プログラムなどを格納する。データバス233は、学習装置3が有する各ハードウェアを接続して、ハードウェア間において相互にデータを伝送する。RAM234は、ROM232またはストレージ235などから供給されるプログラムまたはデータ、または外部インタフェース238を介して外部から供給されるデータなどを一時記憶する揮発性のメモリである。RAM234は、CPU231が起動プログラムまたは制御プログラムなどのプログラムを実行する際のワークメモリとして使用される。ストレージ235は、HDDなどにより実現されるものであって、上述の制御プログラムおよび文書画像サンプル14などを記憶するための補助記憶装置である。
入力デバイス236は、マウスおよびキーボードなどにより実現されるものであって、エンジニアなどのユーザ(以下、単に「エンジニア」という。)からの学習装置3に対する操作入力を受け付けるためのデバイスである。表示デバイス237は、液晶ディスプレイなどにより実現されるものであって、学習装置3の設定画面などの表示画像をエンジニアに対して視認可能に表示出力するためのデバイスである。
外部インタフェース238は、学習装置3とネットワーク5との間を接続するものであって、図3(b)には不図示の記憶装置およびPCなどの外部装置から文書画像サンプル14などを受信するためのデバイスである。また、外部インタフェース238は、推論装置4、または図3(b)には不図示の記憶装置に対して項目値判定モデル15などを送信するためのデバイスである。GPU239は、画像処理用のプロセッサである。GPU239は、例えば、CPU231から与えられた制御コマンドに従って、与えられた文書画像に含まれる文字列データを元に、項目値判定モデル15を生成するための演算を実行する。
<推論装置>
図4は、推論装置4の構成例を示す図であって、図4(a)に推論装置4の機能構成例を示し、図4(b)に推論装置4のハードウェア構成例を示す。図4(a)を用いて、推論装置4の機能について説明する。なお、推論装置4が有する各機能部は、それぞれが有する機能の一部または全部を担ってもよい。推論装置4は、判定モデル取得部41、処理画像取得部42、文字列取得部43、第1トークン列生成部44、第2トークン列推定部45、候補抽出部46、候補出力部47を有する。
判定モデル取得部41は、項目値判定モデル15を取得する。例えば、判定モデル取得部41は、学習装置3から送られた項目値判定モデル15を取得する。また、判定モデル取得部41は、図4(a)には不図示の記憶装置に予め記憶された項目値判定モデル15を当該記憶装置から読み出すことにより取得してもよい。取得した項目値判定モデル15は、第2トークン列推定部45に送られる。処理画像取得部42は、文書画像データ13を取得する。例えば、処理画像取得部42は、文書画像取得装置2から送られた文書画像データ13を取得する。また、処理画像取得部42は、図4(a)には不図示の記憶装置に予め記憶された文書画像データ13を当該記憶装置から読み出すことにより取得してもよい。取得した文書画像データ13は、文字列取得部43と第1トークン列生成部44に送られる。
文字列取得部43は、文書画像データ13に対してブロックセレクション処理およびOCR処理などの解析処理を実行して、解析結果として文字列データを取得する。取得された文字列データは、第1トークン列生成部44に送られる。
第1トークン列生成部44は、文書画像データ13に対して、文書画像内のレイアウトを解析するレイアウト解析処理を実行することによって得られたレイアウト解析結果をレイアウト情報として取得する。そして、第1トークン列生成部44は、レイアウト情報と文字列データとに基づき、文書画像トークン列(第2の入力トークン列)を生成する。生成された文書画像トークン列は、第2トークン列推定部45と候補抽出部46に送られる。第2トークン列推定部45は、文書画像トークン列と項目値判定モデルを基に項目値トークン列(第2の出力トークン列)を推定する。推定された項目値トークン列は、候補抽出部46に送られる。
候補抽出部46は、項目値トークン列を基に、候補文字列を抽出する。抽出された候補文字列は、候補出力部47に送られる。候補出力部47は、候補文字列を出力する。
推論装置4において機能する各部の処理は、推論装置4に内蔵されたASICまたはFPGAなどのハードウェア、または、RAMなどのメモリと、CPUなどのプロセッサとを用いたソフトウエアによってなされる。
図4(b)を用いて、推論装置4のハードウェアについて説明する。推論装置4は、コンピュータにより構成されており、CPU261、ROM262、データバス263、RAM264、ストレージ265、入力デバイス266、表示デバイス267、外部インタフェース268を有する。
CPU261は、推論装置4における動作全体を制御するためのプロセッサである。CPU261は、ROM262などに格納された起動プログラムを実行することにより、推論装置4のシステムを起動する。また、CPU261は、ストレージ265などに記憶された制御プログラムを実行することにより、推論装置4において機能する各部を機能させる。なお、推論装置4は、CPU261とは異なる1つまたは複数の専用のハードウェアを有し、CPU261による処理の少なくとも一部を専用のハードウェアが実行してもよい。専用のハードウェアの例としては、ASIC、FPGA、またはDSPなどがある。
ROM262は、変更を必要としないプログラムなどを格納する不揮発性のメモリであって、例えば、推論装置4を起動する起動プログラムを格納する。データバス263は、推論装置4が有する各ハードウェアを接続して、ハードウェア間において相互にデータを伝送する。RAM264は、ROM262またはストレージ265などから供給されるプログラムまたはデータ、または外部インタフェース268を介して外部から供給されるデータなどを一時記憶する揮発性のメモリである。RAM264は、CPU261が起動プログラムまたは制御プログラムなどのプログラムを実行する際のワークメモリとして使用される。ストレージ265は、HDDなどにより実現されるものであって、上述の制御プログラム、文書画像データ13、項目値判定モデル15、文字列データ16などを記憶するための補助記憶装置である。
入力デバイス266は、マウスおよびキーボードなどにより実現されるものであって、エンドユーザおよびエンジニアなどのユーザからの推論装置4に対する操作入力を受け付けるためのデバイスである。表示デバイス267は、液晶ディスプレイなどにより実現されるものであって、推論装置4が出力する設定画面などの表示画像をエンドユーザおよびエンジニアなどのユーザに対して視認可能に表示出力するためのデバイスである。外部インタフェース268は、推論装置4とネットワーク5との間を接続するものであって、学習装置3、または図4(b)には不図示の記憶装置などの外部装置から項目値判定モデル15を受信するためのデバイスである。また、外部インタフェース268は、文書画像取得装置2、または図4(b)には不図示の記憶装置などの外部装置から文書画像データ13を受信するためのデバイスである。
<処理シーケンス>
図5は、情報処理システム1の処理シーケンス例を示す図である。図5(a)に情報処理システム1の学習装置3が項目値判定モデル15を生成する処理シーケンスを示し、図5(b)に情報処理システム1の推論装置4が候補文字列群(候補文字列データ)を抽出する処理シーケンスを示す。なお、図5(a)および図5(b)のそれぞれに示す処理シーケンスの詳細については図を用いて後述する。図5(a)に示す処理シーケンスは、例えば、エンジニアによる開発時に実行される処理シーケンスである。図5(b)に示す処理シーケンスは、例えば、エンドユーザによる利用時に実行される処理シーケンスである。
まず、エンジニアによる開発時の処理シーケンスについて説明する。図5(a)に示すように、S501にて、情報処理システム1を開発するエンジニアは、項目値判定モデル15を生成するために、学習装置3に対して、複数の文書画像サンプル14を入力する。具体的には、例えば、エンジニアは、学習装置3に対して複数の文書画像サンプル14の所在などを示す情報を入力することにより、学習装置3に文書画像サンプル14を取得させるための指示を実行する。学習装置3は、エンジニアからの入力に基づいて、文書画像サンプル14を取得する。
次に、S502にて、学習装置3は、S501にて入力された複数の文書画像サンプル14より、各文書画像サンプルに含まれる文字列データおよび抽出対象の項目値情報を取得する。抽出対象の項目値情報は、文書画像サンプルに含まれる所定の項目の項目値に関する情報である。抽出対象の項目値情報は、エンジニアによって手動で設定した情報でもよいし、公知の技術により文書画像サンプルから取得した情報でもよい。そして、文書画像のレイアウトを解析することにより、該当する領域に所定の項目の項目値があることを示すレイアウト情報を取得する。その後、取得した文字列データ、レイアウト情報、項目値情報を基づき学習データセットを生成する。そして、生成した学習データセットを学習モデルに入力することにより学習モデルに機械学習させる。学習結果である学習済モデルに基づいて項目値判定モデル15を生成する。
その後、S503にて、学習装置3は、推論装置4に対して、S502にて生成した項目値判定モデル15を送信する。推論装置4は、学習装置3が送信した項目値判定モデル15を取得して、推論装置4内のストレージ265に項目値判定モデル15を保存する。
続いて、エンドユーザによる利用時の処理シーケンスについて説明する。図5(b)に示すように、S511にて、情報処理システム1を利用するエンドユーザは、例えば、文書画像取得装置2に原稿11を載置して、文書画像取得装置2に対して原稿の読み取りを指示する。文書画像取得装置2は、当該指示を受けて、原稿11を光学的に読み取って文書画像データ13を取得する。
次に、S512にて、文書画像取得装置2は、S511にて取得した文書画像データ13を推論装置4に対して送信する。推論装置4は、文書画像取得装置2から送信された文書画像データ13を受信することにより文書画像データ13を取得する。なお、推論装置4は、文書画像データ13を取得できればよく、文書画像データ13の取得先は、文書画像取得装置2であってもよいし、ストレージ265などの記憶装置であってもよい。
次に、S513にて、推論装置4は、S512にて取得した文書画像データ13に含まれる文字列のデータの中から、抽出対象の候補となる文字列のデータを抽出する。具体的には、推論装置4は、まず、S512にて取得した文書画像データ13に含まれる文字列データを取得する。さらに、推論装置4は、S512にて取得した文書画像のレイアウトを解析することによりレイアウト情報を取得する。そして、推論装置4は、S503にて学習装置3から出力された項目値判定モデル15を用いて、文書画像データ13から取得した文字列データおよびレイアウト情報を処理することにより、抽出対象の候補文字列データを抽出する。
その後、S514にて、推論装置4は、S513にて抽出した抽出対象の候補文字列データを、エンドユーザに対して視認可能に表示出力する。
<項目値判定モデルの生成処理>
図6は、項目値判定モデル15の生成処理(S502)の詳細な流れを示すフローチャートである。項目値判定モデル15の生成処理は、学習装置3により実行される。なお、図6に示す各ステップの実行プログラムは、学習装置3のROM232、RAM234、ストレージ235のいずれかに記憶され、学習装置3のCPU231またはGPU239により実行される。また、図6におけるステップの一部または全部の機能をASIC及び電子回路等のハードウェアで実現してもよい。各処理の説明における記号「S」は、当該フローチャートにおけるステップであることを意味し、以後のフローチャートにおいても同様とする。
先ず、S601にて、画像サンプル取得部31は、複数の文書画像サンプル14を取得する。ここで、文書画像サンプル14は、例えば、経理系の事務職にて扱われる文書画像というように、特定の業務分野にて扱われる文書画像のデータのみを対象としてもよい。あるいは、文書画像サンプル14は、経理、人事、医療などの業務分野の全般にて扱われる文書画像というように、複数の異なる業務分野にて扱われる文書画像のデータをまとめて対象としてもよい。
S602にて、文字列取得部32は、S601にて取得された複数の文書画像サンプルの中から未処理の文書画像サンプルを選択する。ここでは、文書画像サンプルとして、詳細につき後述する、図7(a)に示す文書画像サンプル700が選択されたものとして説明を行う。
S603にて、文字列取得部32は、S602にて選択された文書画像サンプル対して画像処理を行って文書画像サンプルに含まれる全ての文字列のデータを取得する。具体的には、文書画像サンプルに対して文字領域を検出するブロックセレクション処理を実行し、検出した文字領域に対してOCR処理を実行して文字列を認識することにより文字列のデータを取得する。
S604にて、項目値情報取得部33は、S603にて取得された文字列データを解析して項目値情報を取得する。取得された項目値情報は、第1トークン列生成部34に送られる。
ここで、S603にて取得された文字列データと、S604にて取得された抽出対象の項目値情報について、図を参照して説明する。図7は、文書画像サンプルとその文字列データおよび項目値情報の一例を示す図である。図7(a)に文書画像サンプル700を示し、図7(b)に文書画像サンプル700における抽出対象領域710を示し、図7(c)に抽出対象領域710内の文字列データ721および項目値情報722を示す。項目値情報722は、抽出対象の項目の項目値に関する情報である。抽出対象領域710においては、文字列領域711、712、713、714のそれぞれから、図7(c)に示すような文字列データ721が取得されることになる。また、文字列領域711、712、713、714のそれぞれに対応した項目名および抽出対象の文字列データを含む項目値情報722が取得されることになる。例えば、領域713からは、「(宛先)川崎工場」という文字列データに加え、項目名である「宛先情報」と、抽出対象の文字列データである「川崎工場」とを含む項目値情報が取得される。一方、領域714には項目値情報が含まれていないことから、領域714からは、「下記の通り請求致します」という文字列データのみが取得されることになる。
図6に戻り、S605にて、第1トークン列生成部34は、S602にて選択された文書画像サンプルと、S603にて取得された文字列データとを基に、文書画像トークン列を生成する。なお、本実施形態では、学習装置3において実行されるものとして説明するが、推論装置4において実行されてもよい。
<文書画像トークン列の生成処理>
図8は、文書画像トークン列を生成する処理(S605)の詳細な流れを示すフローチャートである。
先ず、S801にて、第1トークン列生成部34は、文書画像サンプルと、この文書画像サンプルから得られた文字列データとを取得する。なお、文字列データは、その位置などを示す情報を含む。
S802にて、第1トークン列生成部34は、S801にて取得した文書画像サンプルのレイアウトを解析し、この解析結果を基に文書画像サンプルを所定の項目に対応する領域に分割する。例えば、文書画像サンプルは、複数の領域に分割される。そして、第1トークン列生成部34は、所定の項目に対応する領域の情報を、レイアウト情報として取得する。なお、領域の情報は、その位置や範囲などを示す情報を含む。領域に分割する方法としては、例えば、文書画像中の空白領域や罫線などを抽出し、所定の条件を満たす領域を、項目に対応する領域として分割する方法が用いられる。ここで、文書画像サンプルに対してレイアウトの解析処理を実行した例について、図9(a)を参照して説明する。図9(a)に示すように、文書画像サンプル900に対してレイアウトの解析処理が行われると、文書画像サンプル900が複数の領域901-907に分割される。
S803にて、第1トークン列生成部34は、S802にて生成した領域に対して、読み取りを行う読取順番を決定する。なお、文書画像サンプルが複数の領域に分割された場合、S803に続くS804では、読取順番に従って複数の領域の中から領域が選択されることから、第1トークン列生成部34は、領域を選択する選択順番を決定するともいえる。本実施形態では、例えば、文書画像サンプル700の左上を起点として領域を読み取るように、読取順番を決定する。なお、読取順番はこれに限定されない。
S804にて、第1トークン列生成部34は、S803にて決定した読取順番に従って、S802にて得られた複数の領域の中から未処理の領域を選択する。
S805にて、第1トークン列生成部34は、S804にて選択した領域に対応するレイアウト情報を、領域情報を示す特殊トークンである、「<領域>」という領域情報トークン(第1のトークン)に変換する。このような領域情報トークンが詳細につき後述する文書画像トークン列に存在することにより、領域の境界であることを示す情報として利用できる。
S806にて、第1トークン列生成部34は、S804にて選択した領域内に含まれる複数の文字列データに対して、読み取りを行う読取順番を決定する。例えば、レイアウト情報と、文字列データの位置などに関する情報とが照合されることにより、S804にて選択した領域内に含まれる複数の文字列データが特定される。そして、特定された複数の文字列データに対して、読み取りを行う読取順番を決定する。例えば、図9(a)に示す文書画像サンプル900において、領域903に示すように、1つの領域内に文字列が2行含まれている場合、領域903内の左上から順番に文字列を読み取るように、読取順番を決定する。
S807にて、第1トークン列生成部34は、S806にて決定した読取順番に従い並べた文字列データから抽出した単語の情報を示す文字列トークンに変換する。文字列データに対して形態素解析の手法を用いて形態素(単語)を抽出し、個々の形態素を文字列トークンとすればよい。例えば、領域901の文字列は、「請求」の文字列トークン912と「書」の文字列トークン913との2つの文字列トークンに変換される。すなわち、領域901の文字列は、2つの文字列トークン912および913に分解されるともいえる。
S808にて、第1トークン列生成部34は、S805にて得られた領域情報トークンと、S807にて得られた文字列トークンとを連結することにより文書画像トークン列を生成する。
文書画像トークン列の生成について、図を参照して説明する。図9は、文書画像トークン列を説明するための図である。図9(a)に文書画像サンプル900を示し、図9(b)に文書画像サンプル900の領域901に対応する文書画像トークン列910を示し、図9(c)に領域901および902に対応する文書画像トークン列920を示す。図9(a)に示す領域901に対して、上述したS804-S808の処理が実行されると、図9(b)に示すように、領域情報トークン911と2つの文字列トークン912および913とを連結した文書画像トークン列910が生成される。また、図9(a)に示す領域901および領域902に対して、上述したS804-S808の処理が実行されると、次に示す文書画像トークン列920が生成される。すなわち、図9(c)に示すように、文書画像トークン列910の後に、領域情報トークン921と3つの文字列トークン922、923、924とを連結した文書画像トークン列920が生成される。
S809にて、全ての領域が処理されたか判定される。全ての領域が処理されていないとの判定結果を得ると(S809のNO)、処理がS804に戻される。そして、未処理の領域がなくなるまで、S804-S809の処理が繰り返し実行される。他方、全ての領域が処理されたとの判定結果を得ると(S809のYES)、図8に示すフローを終える。すなわち、文書画像トークン列の生成処理を終える。図9(a)に示す文書画像サンプル900に対して文書画像トークン列の生成処理が行われると、図9(d)に示すような文書画像トークン列930が生成されることになる。すなわち、領域毎に領域情報トークンと文字列トークンを含み、全ての領域における領域情報トークンおよび文字列トークンが読取順番に連結した文書画像トークン列930が生成されることになる。
図6に戻り、S606にて、第2トークン列生成部35は、S605にて生成した文書画像トークン列に対応した、各項目名に対する抽出対象の文字列が出現するトークン位置を表す項目値トークン列を生成する。
項目値トークン列の生成について、図を参照して説明する。図10は、項目値トークン列を説明するための図であり、図10(a)に項目名IDリストを示し、図10(b)に項目値トークン列への変換例を示し、図10(c)に図9(c)に示す文書画像トークン列930の項目値トークン列への変換例を示す。
領域901中の文字列データ721「請求書」に対応する各トークンの項目値トークン列への変換について、図10(b)を参照して説明する。まず、領域情報トークン911「<領域>」は、項目名IDリスト1000の項目名1001には該当する特定の項目名が無いことから、項目名1001「該当なし」が該当する。そのため、領域情報トークン911「<領域>」は、項目名1001「該当なし」に対応する項目名ID1002「0」に置き換えた項目値トークン1011に変換される。続いて、抽出対象の文字列データ「請求書」に対応する文字列トークン912および913は、項目名IDリスト1000の項目名1001「文書名」が該当する。そのため、文字列トークン912および913は、項目名1001「文書名」に対応する項目名ID1002「1」に置き換えた項目値トークン1012および1013に変換される。
同様に、項目名IDリスト1000を用いて、文書画像トークン列に含まれる領域情報トークンおよび文字列トークンについて、該当する項目名を特定し、特定した項目名に対応する項目名IDに変換することで、項目値トークン列が生成されることになる。すなわち、図10(c)に示すように、図9(c)に示す文書画像トークン列930に対して項目値トークン列の生成処理が行われると、最終的に項目値トークン列1030が生成されることになる。なお、項目名IDおよび項目名IDの付与方法はこれに限定されない。例えば、項目名IDにIOBフォーマットまたはBILOUフォーマットを用いることにより、項目値トークンを生成してもよい。IOBフォーマットを用いる場合、開始項目値トークンには「B-」(Begin)を付与し、途中の項目値トークンには「I-」(Inside)を付与すればよい。また、BILOUフォーマットを用いる場合、IOBフォーマットに加え、終了項目値トークンには「L-」(Last)を付与し、単一の項目値トークンの場合に「U-」(Unit)を付与すればよい。このように条件に応じて特定の文字を付与することにより、抽出文字列の範囲を明確化して学習および推論を行うことができる。
図6に戻り、S607にて、学習データ生成部36は、S605にて生成した文書画像トークン列を入力データとし、S606にて生成した項目値トークン列を出力データとする学習データセットを生成する。例えば、学習データ生成部36は、S605にて生成した文書画像トークン列930を入力データとし、S606にて生成した項目値トークン列1010を出力データとする学習データセットを生成する。
S608にて、全ての文書画像サンプルが処理されたか判定される。全ての文書画像サンプルが処理されていないとの判定結果を得た場合(S608のNO)、処理がS602に戻される。そして、未処理の文書画像サンプルがなくなるまでS602-S608の処理が繰り返し実行されることにより、全ての文書画像サンプルから学習データセットが生成されることになる。他方、全ての文書画像サンプルが処理されたとの判定結果を得た場合(S608のYES)、処理がS609に移行される。
S609にて、学習部37は、生成された全ての学習データセットを用いて、機械学習により項目値判定モデル15を生成する。この処理において、抽出対象の文字列トークンと、その前後の文字列トークンとの関係性だけではなく、同一領域あるいは領域をまたいだ文字列トークンの関係性も学習することができる。すなわち、抽出対象の文字列を探す手がかりとなるような文字列(項目名に対応するキーワードなど)は、同一領域内に出現することが多く、領域をまたいで出現することが少ないといった傾向性を取得できる。なお、項目値判定モデルの学習には、公知の機械学習の手法を用いればよい。公知の機械学習の手法として、例えば、自然言語による機械翻訳または文書分類、固有表現抽出などで用いられるRNNまたはSeq2Seq、Transformer、BERTなどを用いてもよい。
最後に、S610にて、判定モデル出力部38は、S608にて生成した項目値判定モデル15を、推論装置4に対して出力する。なお、推論装置4は、学習装置3から出力された項目値判定モデル15を受け取り、推論装置4が有するストレージ265に保存する。
<候補文字列群の抽出処理>
候補文字列群の抽出処理について、図を用いて説明する。図11は、候補文字列群の抽出処理(S513)の詳細な流れを示すフローチャートである。候補文字列群の抽出処理は、推論装置4により実行される。図12は、文書画像とその文字列データおよび文書画像トークン列の一例を示す図である。図12(a)に文書画像の一例を示し、図12(b)に図12(a)に示す文書画像に対応する文字列データのリスト例を示し、図12(c)に図12(a)に示す文書画像に対応する文書画像トークン列を示す。なお、図11に示す各ステップの実行プログラムは、推論装置4のROM262、RAM264、またはストレージ265のいずれかに記憶され、推論装置4のCPU261により実行される。
まず、S1101にて、判定モデル取得部41は、図5のS503にて学習装置3から出力され推論装置4のストレージ265に保存された項目値判定モデル15を取得する。
S1102にて、処理画像取得部42は、S511にてエンドユーザにより入力された文書画像であって、S512にて文書画像取得装置2により送信された文書画像データを取得する。ここでは、図12(a)に示すような文書画像1200のデータを取得することとする。
S1103にて、文字列取得部43は、S1102にて取得した文書画像データに対してブロックセレクション処理およびOCR処理などの解析処理を実行することにより、文字列データを取得する。文書画像1200のデータからは、図12(b)に示すような文書画像内の文字列データ1210が取得される。
S1104にて、第1トークン列生成部44は、S1102にて取得した文書画像データと、S1103にて取得した文字列データとを基に、文書画像トークン列を生成する。なお、文書画像トークン列の生成処理は、S605と同様の処理となるため、ここでは説明を省略する。文書画像1200のデータと文字列データ1210とからは、図12(c)に示すような文書画像トークン列1220が生成される。
S1105にて、第2トークン列推定部45は、S1104にて生成した文書画像トークン列を、S1101にて取得した項目値判定モデルに対して入力することにより項目値トークン列を推定する。例えば、文書画像トークン列1220を、S1101にて取得した項目値判定モデル15に対して入力することにより、図13に示すような項目値トークン列1300が推定される。この推論処理では、学習された文字列トークンおよび領域情報トークンの関係性を基に、項目名IDリスト1000のうちどの項目名IDらしいかについて、文書画像トークン列1220の各トークンに対して判定される。なお、処理対象のトークン列が特定の項目名である可能性の程度を示しており、項目名IDらしさを示す確率値を同時に出力することも可能である。
S1106にて、候補抽出部46は、文書画像トークン列1310と、項目値トークン列とから、項目名IDが付与された項目値トークンに対応する文字列データを項目の項目値に対応する候補文字列として抽出する。具体的には、図13に示すように、項目値トークン1301において項目名「文書番号」に対応付けられている項目名ID「2」が推論結果として出力される。項目値トークン1301は、図12(c)に示す文書画像トークン列1220中のトークン1221と対応することから、文字列データ1201の一部である「1321」が、項目名「文書番号」に対応する候補文字列として出力される。同様に、項目値トークン列1300内において連続する項目値トークン1302-1304には、項目名「宛先情報」に対応付けられた項目値ID「5」が推論結果として出力される。項目値トークン1302-1304は、文書画像トークン列1220内のトークン1222-1224と対応する。よって、これらのトークンを連結することで、文字列データ1204の一部である「下丸子印刷所」が、項目名「宛先情報」に対応する候補文字列として抽出される。なお、項目名IDが付与された項目値トークンが複数個所から抽出された場合は、項目値らしさの確率値を参照し、確率値の高いものから順番に候補文字列として抽出すればよい。すなわち、項目値らしさの確率値に基づき特定した文字列を、候補文字列として抽出すればよい。また、項目値らしさの確率値が高い文字列を優先して、候補文字列として抽出すればよい。
S1107にて、処理が終了したか否か判定される。処理が終了しないとの判定結果を得た場合(S1107のNO)、処理がS1102に戻され、S1102-S1107の処理が繰り返し行われる。処理が終了したとの判定結果を得た場合(S1107のYES)、処理がS1108に移行される。すなわち、ユーザからの処理を終了する通知があるまで、S1102-S1107の処理が繰り返し実行されることになる。
最後に、S1108にて、候補出力部47は、S1106にて抽出された全ての候補文字列のデータを抽出結果として出力する。具体的には、例えば、候補出力部47は、当該抽出結果を確認画面に含める表示画像を生成し、当該表示画像を表示装置に表示出力する。
以上述べたように、本実施形態によれば、レイアウトが予め定められた定型文書とは異なるレイアウトで作成された、準定型文書または非定型文書などの文書画像から、所定の項目の項目値に対応する文字列のデータを抽出できる。さらに、本実施形態では、文書画像のレイアウトを解析して領域情報トークンを生成し、文字列トークンと連結させることで、文字列データの関係性だけではなく、文書画像内のレイアウト情報の関係性も併せて学習および推論が行われる。これにより、レイアウト情報を考慮しないと判別が難しかった項目の項目値に対応する文字列を抽出する精度を向上させることができる。
[第2の実施形態]
本実施形態では、レイアウトの解析処理を実行することにより、文書画像における各領域が持つ属性の種類を示す属性情報を取得し、取得した属性情報の種類に対応した領域情報トークン(属性情報トークン)に変換する態様について説明する。
<項目値判定モデルの生成処理>
まず、本実施形態に係る項目値判定モデルの生成処理について、図6、図8および図15を用いて説明する。図15は、文書画像トークン列を説明するための図であり、図15(a)に属性トークンテーブルを示し、図15(b)に文書画像トークン列を示す。本実施形態では、項目値判定モデルの生成処理に関し、第1の実施形態の場合と異なる、図6に示されるS605、S607、S609の各処理について詳細に説明する。
S605にて、第1トークン列生成部34は、文書画像トークン列を生成する。本実施形態に係る文書画像トークン列の生成処理は、第1の実施形態の場合と概ね同じである。ただし、図8に示すS802およびS805の処理は、第1の実施形態の場合と差分があり、特にこれら処理について詳細に説明する。
まず、S802では、第1トークン列生成部34は、S801にて取得した文書画像サンプルのレイアウトを解析し、この解析結果を基に文書画像サンプルを、属性を持つ領域に分割する。すなわち、第1トークン列生成部34は、文書画像サンプルにおいて各領域が文字列、段落、線、表などの属性のうち該当する属性を持つ領域に分割する。そして、第1トークン列生成部34は、属性を持つ領域の情報を示す属性情報を、レイアウト情報として取得する。なお、属性情報は、属性や領域の位置や範囲などを示す情報を含む。
<レイアウトの解析処理>
ここで、本実施形態に係るレイアウトの解析処理の詳細について図を用いて説明する。図14は、本実施形態に係るレイアウトの解析処理を説明するための図である。図14(a)は、本実施形態に係るレイアウトの解析処理の流れを示すフローチャートである。図14(b)は、文書画像サンプル1400に対して本実施形態に係るレイアウトの解析処理を行った後の領域を示す図である。図14(c)は、文書画像サンプル1400の各領域に対応する属性情報のリストを示す図である。例えば、文書画像サンプル1400における領域1411および1413は、文字列の属性を持つ文字列領域として分割される。文書画像サンプル1400における領域1412は、スタンプの属性を持つスタンプ領域として分割される。文書画像サンプル1400における領域1414は、線の属性を持つ線領域として分割される。文書画像サンプル1400における領域1415は、段落の属性を持つ段落領域として分割される。
まず、S1401にて、第1トークン列生成部34は、S801にて取得した文書画像サンプルに対して二値化処理を実行する。これにより、文書画像サンプルから白黒の二値画像が生成される。
S1402にて、第1トークン列生成部34は、黒画素輪郭で囲まれる画素の塊を抽出する。具体的には、S1401にて生成した二値画像に対して輪郭線追跡を行うことにより、黒画素輪郭で囲まれる画素の塊が抽出される。なお、輪郭線追跡を行うことにより得られた黒画素の塊の面積が所定の面積よりも大きい場合については、内部にある白画素に対しても輪郭線追跡を行うことにより、白画素の塊を抽出する。そして、さらに一定面積以上の白画素の塊の内部から再帰的に黒画素の塊を抽出することを繰り返す。
最後に、S1403にて、第1トークン列生成部34は、S1402にて得た黒画素の塊に対し、大きさおよび形状で分類し、分類結果に応じて、文字列、段落、線、表などの属性のうち、該当する属性を示す属性情報を持つ領域に分割する。例えば、縦横比が1に近く、大きさが一定の範囲のものを文字相当の画素塊とする。さらに近接する文字が整列よくグループ化されている部分を、文字列の属性情報を持つ領域として分割する。複数の文字列領域が整列よくグループ化されている部分領域を、段落の属性情報を持つ領域として分割する。扁平な画素塊の領域を、線の属性情報を持つ領域として分割する。一定大きさ以上でかつ四角系の白画素塊を整列よく内包する黒画素塊の占める範囲(領域)を、表の属性情報を持つ領域として分割する。不定形の画素塊が散在している領域を、写真の属性情報を持つ領域として分割する。また、それ以外の任意形状の画素塊で構成される領域を、オブジェクトの属性情報を持つ領域として分割する。なお、属性情報はこれに限定されない。例えば、さらに詳細に解析を行うことにより、罫線なしの表領域を推定して罫線なしの表の属性情報を持つ領域に分割したり、オブジェクトの種類を線画、スタンプなどのように細分化した属性を示す属性情報を持つ領域に分割したりしてもよい。すなわち、オブジェクトとして、例えば、文字列、段落、線、表、写真、スタンプなどが挙げられる。
図8に戻り、S803にて、第1トークン列生成部34は、S802にて生成した領域に対して、読み取りを行う読取順番を決定する。そして、S804にて、第1トークン列生成部34は、S803にて決定した読取順番に従って、S802にて得られた複数の領域の中から未処理の領域を選択する。
S805にて、第1トークン列生成部34は、属性トークンテーブルを基に、S802にて分割した領域が持つ属性情報に対応した属性トークンを、本実施形態に係る領域情報トークンとして生成する。属性トークンテーブルは、予め作成されていてもよいし、図14に示すレイアウトの解析処理結果を基に作成されていてもよい。属性トークンテーブルは、属性情報と属性トークンとの関係を示す表である。属性トークンテーブル1500は、図15(a)に示すように、属性情報1501の各情報と属性トークン1502の各トークンとが対応している。例えば、「文字列」の属性情報を持つ領域1411は、図15(b)に示すように、「<文字列>」の領域情報トークン列1511に変換される。また、「スタンプ」の属性情報を持つ領域1412は、「<スタンプ>」の領域情報トークン1512に変換される。
S806-S808では、第1トークン列生成部34は、領域内の文字列データを読み取る読取順番を決定し、領域情報トークンと、読取順番に従い読み取った文字列トークンとを結合することにより、文書画像トークン列を生成する。上述の処理を繰り返して、文書画像サンプル1400における全ての領域を処理することにより、図15(b)に示すような、文書画像トークン列1510が生成される。
図6に戻り、S606にて、第2トークン列生成部35は、第1の実施形態と同様、S605にて生成した文書画像トークン列に対応した、各項目名に対する抽出対象の文字列が出現するトークン位置と属性を表す項目値トークン列を生成する。
S607にて、学習データ生成部36は、S605にて生成した文書画像トークン列を入力データとし、S606にて生成した項目値トークン列を出力データとする学習データセットを生成する。本実施形態のS605にて文書画像トークン列1510を生成し、本実施形態のS606にて項目値トークン列1030を生成した場合には、以下に示す学習データセットが生成される。すなわち、S605にて生成した文書画像トークン列1510を入力データとし、S606にて生成した項目値トークン列1030を出力データとする学習データセットが生成される。
S609にて、学習部37は、生成された全ての学習データセットを用いて、機械学習により項目値判定モデル15を生成する。この処理において、抽出対象の文字列トークンが出現しやすい領域属性の傾向や、領域属性の関係性の傾向を学習することができる。例えば、書類名や書類番号などは、独立した一文、すなわち文字列領域として現れることが多いという傾向を取得できる。一方で、発行元情報や宛先情報などは、会社名/住所/電話番号/部署名/担当者名など、関連した情報が列挙されるため、段落領域に現れることが多いという傾向を取得できる。また、線領域は、2つの領域の内容を分断するという傾向を取得できる。さらには、社印や個人印などは発行者を証明するために押印されることから、スタンプ領域の近くには発行元情報が記載されることが多いという傾向を取得できる。
以上述べたように、本実施形態によれば、レイアウト解析処理を実行することにより文書画像を詳細な属性情報を持つ領域に分割することにより、抽出対象の文字列トークンと領域属性の関係性、または領域属性の関係性を考慮した項目値の推定が可能となる。これにより、抽出精度を向上させることができる。
[第3の実施形態]
本実施形態では、領域情報の項目値トークン自体にも意味を付与させることにより学習させる態様について説明する。
<項目値判定モデルの生成処理>
まず、本実施形態に係る項目値判定モデルの生成処理について、図6および図16を用いて説明する。図16は、項目値トークン列を説明するための図である。図16(a)に項目値トークンテーブルを示す。図16(b)に文字列トークンの一例を示し、図16(c)に図16(b)に示す文字列トークンに対応する項目値トークン列を示す。図16(d)に文字列トークンの一例を示し、図16(e)に図16(d)に示す文字列トークンに対応する項目値トークン列を示す。本実施形態では、項目値判定モデルの生成処理に関し、第1および第2の実施形態の場合と異なる、図6に示されるS605、S607、S609の各処理について詳細に説明する。
S605にて、第1トークン列生成部34は、項目名IDリストと領域情報IDリストに基づき、文書画像トークン列を生成する。具体的には、第1トークン列生成部34は、例えば、図10(a)に示す項目名IDリスト1000と、図16(a)に示す領域情報IDリスト1600とを参照することにより、項目値トークン列を生成する。領域情報IDリスト1600は、条件1601と領域情報ID1602とが対応付けられた表である。「抽出対象の文字列を含む」の条件には、領域情報IDの「0」が対応付けられている。「抽出対象の文字列を含まない」の条件には、領域情報IDの「-1」が対応付けられている。
図16(b)および図16(c)を用いて、文書画像サンプル900の領域901に対する項目値トークン列の生成処理について説明する。領域901中の文字列データ721「請求書」には、抽出対象の文字列データとして「請求書」が含まれる。そのため、領域情報トークン911「<領域>」を領域情報ID1602「0」に置き換えた項目値トークン1611に変換される。また、「請求書」に対応する文字列トークン912および913を、項目名IDリスト1000の項目名1001「文書名」に対応する項目名ID1002「1」に置き換えた項目値トークン1612および1613に変換される。よって、「0」の項目値トークン1611と、「1」の項目値トークン1612と、「1」の項目値トークン1613とが記載順に並んだ項目値トークン列1610が生成される。
また、図16(d)および図16(e)を用いて、文書画像サンプル900の領域906に対する項目値トークン列の生成処理について説明する。領域906には、4つの文字列データ「振込先」「川崎第一銀行」「普通30146」「ショウギョウロセイカ」が含まれるが、いずれも抽出対象の文字列を含んでいない。そのため、領域情報トークン1621「<領域>」を領域情報ID1602「-1」に置き換えた項目値トークン1651に変換される。上述の文字列データに対応する文字列トークン1622-1631は、「該当なし」の項目名1001に対応する項目名ID1002「0」にそれぞれ置き換えた項目値トークン1652-1661に変換される。よって、項目値トークン1651と、項目値トークン1652-1661とが記載順に並んだ項目値トークン列1620が生成される。これを全ての領域に対して行うことにより、最終的な項目値トークン列が生成される。なお、本実施形態では、第1の実施形態と同様な方法により領域情報トークンを生成する態様について説明したが、第2の実施形態と同様な方法により生成した属性トークンを領域情報トークンとして生成してもよい。
S607にて、学習データ生成部36は、S605にて生成した文書画像トークン列を入力データとし、S606にて生成した項目値トークン列を出力データとする学習データセットを生成する。本実施形態のS605にて文書画像トークン列1510を生成した場合、学習データ生成部36は、S605にて生成した文書画像トークン列1510を入力データとし、S605にて生成した項目値トークン列を出力データとする学習データセットを生成する。
S609にて、学習部37は、生成された全ての学習データセットを用いて、機械学習により項目値判定モデル15を生成する。この処理において、領域内に抽出対象の文字列が含まれる領域の傾向性を学習することができる。これにより、候補文字列群の抽出処理において1つの項目の項目値として複数の候補文字列が検出された場合、領域内に対象文字列が含まれる可能性が高い領域のものを優先して出力することも可能となる。なお、ここでは、領域内に対象文字列を含むかという情報を項目値トークンに意味付けて学習を行ったが、意味付けの方法はこれに限定さない。例えば、含まれる項目名を情報として埋め込むなどしてもよい。
以上述べたように、本実施形態によれば、領域情報の項目値トークン自体にも意味付けした項目値トークン列を生成することによって、領域全体としての特徴、例えば抽出対象文字列の含みやすさなどを考慮した推論が可能となる。そして、特に、1つの項目の項目値として複数の候補文字列が検出された場合などの優先付けなどに利用することにより、抽出精度の向上にもつながる。
[その他の実施形態]
本開示は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
3 学習装置
32 文字列取得部
33 項目値情報取得部
34 第1トークン列生成部
35 第2トークン列生成部
37 学習部

Claims (17)

  1. 文書画像から所定の項目の項目値に対応する文字列を候補文字列として抽出するための学習済みモデルを生成する情報処理装置であって、
    学習用の文書画像から文字列を取得する第1の取得手段と、
    前記学習用の文書画像から抽出対象の文字列に対応する所定の項目を取得する第2の取得手段と、
    前記学習用の文書画像を解析して前記所定の項目の項目値に対応する領域に分割する第1の解析手段と、
    前記第1の解析手段により分割された領域毎に前記領域を示す第1のトークンを生成する第1の生成手段と、
    前記第1の解析手段により分割された領域毎に、前記第1の取得手段により取得された文字列を構成する単語を示す第2のトークンを生成する第2の生成手段と、
    前記第1のトークンと前記第2のトークンを連結して第1の入力トークン列を生成する第1の連結手段と、
    前記第1の入力トークン列を構成する前記第1のトークンおよび前記第2のトークンを、前記項目に対応する情報に置き換えた第1の出力トークン列に変換する変換手段と、
    生成された第1の入力トークン列を入力データとし、変換された第1の出力トークン列を出力データとして生成された学習データを用いて機械学習を行うことにより前記学習済みモデルを生成する学習手段と、
    を有することを特徴とする情報処理装置。
  2. 前記領域を選択する順番を決定する第1の決定手段
    を有し、
    前記第1の連結手段は、前記第1の決定手段によって決定された順番に従い前記領域を選択して、前記第1のトークンと前記第2のトークンを連結した前記第1の入力トークン列を生成することを特徴とする請求項1に記載の情報処理装置。
  3. 前記領域において前記単語を選択する順番を決定する第2の決定手段
    を有し、
    前記第1の連結手段は、前記第2の決定手段によって決定された順番に従い前記単語を選択して前記第1のトークンと前記第2のトークンを連結した前記第1の入力トークン列を生成することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記第1の解析手段は、前記学習用の文書画像を解析して前記文書画像に含まれるオブジェクトの領域毎に当該オブジェクトの属性を特定し、
    前記第1の生成手段は、特定された属性を示すトークンを、前記第1のトークンとして生成することを特徴とする請求項1から3の何れか一項に記載の情報処理装置。
  5. 前記オブジェクトは、文字列、段落、線、表、写真、またはスタンプのうちの何れかであることを特徴とする請求項4に記載の情報処理装置。
  6. 前記学習済みモデルは、処理対象の文書画像とは異なる複数の文書画像に含まれる文字列のそれぞれを学習用データとする機械学習により生成されたものである
    ことを特徴とする請求項1から5の何れか一項に記載の情報処理装置。
  7. 前記学習済みモデルは、前記所定の項目に対応する情報に基づき前記第2のトークンを変換した出力トークン列と、前記第1の入力トークン列とを用いて生成されたものである
    ことを特徴とする請求項1から6の何れか一項に記載された情報処理装置。
  8. 前記学習済みモデルは、前記領域に含まれる所定の項目の項目名に基づき前記第2のトークンを変換した出力トークン列と、前記第1の入力トークン列とを用いて生成されたものであることを特徴とする請求項1から7の何れか一項に記載された情報処理装置。
  9. 前記学習済みモデルは、前記領域に含まれる所定の文字列の情報に基づき前記第1のトークンを変換した前記第1の出力トークン列と、前記第1の入力トークン列とを用いて生成されたものである、ことを特徴とする請求項1から8の何れか一項に記載の情報処理装置。
  10. 処理対象の文書画像を取得する第3の取得手段と、
    前記処理対象の文書画像から文字列を取得する第4の取得手段と、
    前記処理対象の文書画像を解析して所定の項目の項目値に対応する領域に分割する第2の解析手段と、
    前記第2の解析手段により分割された領域毎に前記領域を示す第3のトークンを生成する第3の生成手段と、
    前記第2の解析手段により分割された領域毎に、前記第4の取得手段により取得された文字列を構成する単語を示す第4のトークンを生成する第4の生成手段と、
    前記第3のトークンと前記第4のトークンを連結して第2の入力トークン列を生成する第2の連結手段と、
    前記第2の連結手段により生成された前記第2の入力トークン列を、前記学習手段により生成された前記学習済みモデルに対して入力することにより、前記第2の入力トークン列に対応する第2の出力トークン列を推定する推定手段と、
    推定された第2の出力トークン列を基に、前記処理対象の文書画像から取得された文字列のうち、前記所定の項目の項目値に対応する文字列を候補文字列として抽出する抽出手段と、
    を有することを特徴とする請求項1から9の何れか一項に記載の情報処理装置。
  11. 前記推定手段は、前記第2の入力トークン列を前記学習済みモデルに対して入力することにより、前記第2の入力トークン列を構成する前記第3のトークンおよび前記第4のトークンを、前記項目に対応する情報に置き換えた第3の出力トークン列、または前記項目の項目値らしさの確率値を格納した第4の出力トークン列の少なくとも一方を推定し、
    前記抽出手段は、前記推定に基づき特定された前記文字列を、前記候補文字列として抽出する、ことを特徴とする請求項10に記載の情報処理装置。
  12. 前記抽出手段は、前記推定に基づき特定された前記文字列が1つの項目の項目値に対応して複数ある場合、前記項目値らしさの確率値に基づき特定した文字列を、前記候補文字列として抽出する、ことを特徴とする請求項11に記載の情報処理装置。
  13. 前記抽出手段は、前記項目値らしさの確率値が高い文字列を優先して、前記候補文字列として抽出する、ことを特徴とする請求項12に記載の情報処理装置。
  14. 抽出された候補文字列を出力する出力手段、
    を有することを特徴とする請求項10から13の何れか一項に記載の情報処理装置。
  15. 前記処理対象の文書画像は、予めレイアウトが定められた定型文書とは異なるレイアウトで作成された文書の画像である
    ことを特徴とする請求項10から14の何れか一項に記載の情報処理装置。
  16. 文書画像から所定の項目の項目値に対応する文字列を候補文字列として抽出するための学習済みモデルを生成する情報処理方法であって、
    学習用の文書画像から文字列を取得する第1の取得工程と、
    前記学習用の文書画像から抽出対象の文字列に対応する所定の項目を取得する第2の取得工程と、
    前記学習用の文書画像を解析して前記所定の項目の項目値に対応する領域に分割する解析工程と、
    前記解析工程にて分割された領域毎に前記領域を示す第1のトークンを生成する第1の生成工程と、
    前記解析工程にて分割された領域毎に、前記第1の取得工程にて取得された文字列を構成する単語を示す第2のトークンを生成する第2の生成工程と、
    前記第1のトークンと前記第2のトークンを連結して第1の入力トークン列を生成する連結工程と、
    前記第1の入力トークン列を構成する前記第1のトークンおよび前記第2のトークンを、前記項目に対応する情報に置き換えた第1の出力トークン列に変換する変換工程と、
    生成された第1の入力トークン列を入力データとし、変換された第1の出力トークン列を出力データとして生成された学習データを用いて機械学習を行うことにより、前記学習済みモデルを生成する学習工程と、
    を含むことを特徴とする情報処理方法。
  17. コンピュータに、請求項1から15の何れか一項に記載の情報処理装置の各手段として機能させるためのプログラム。
JP2021201693A 2021-12-13 2021-12-13 情報処理装置、情報処理方法、およびプログラム Pending JP2023087357A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021201693A JP2023087357A (ja) 2021-12-13 2021-12-13 情報処理装置、情報処理方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021201693A JP2023087357A (ja) 2021-12-13 2021-12-13 情報処理装置、情報処理方法、およびプログラム

Publications (1)

Publication Number Publication Date
JP2023087357A true JP2023087357A (ja) 2023-06-23

Family

ID=86851174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021201693A Pending JP2023087357A (ja) 2021-12-13 2021-12-13 情報処理装置、情報処理方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP2023087357A (ja)

Similar Documents

Publication Publication Date Title
US8732570B2 (en) Non-symbolic data system for the automated completion of forms
JP5223284B2 (ja) 情報検索装置、方法およびプログラム
JP4533273B2 (ja) 画像処理装置及び画像処理方法、プログラム
US8965125B2 (en) Image processing device, method and storage medium for storing and displaying an electronic document
JP2007102545A (ja) 電子文書作成装置、電子文書作成方法及び電子文書作成プログラム
JP4785655B2 (ja) 文書処理装置及び文書処理方法
US11418658B2 (en) Image processing apparatus, image processing system, image processing method, and storage medium
US8090728B2 (en) Image processing apparatus, control method thereof, and storage medium that stores program thereof
US20190146646A1 (en) Information processing system, information processing apparatus, and non-transitory computer readable medium
JP6357832B2 (ja) 問題生成システム、処理サーバ、問題生成システムの制御方法、処理サーバの制御方法、問題生成システムのプログラム、処理サーバのプログラム
JP5188260B2 (ja) 画像処理装置、画像処理方法ならびにそのプログラムおよび記憶媒体
JP5020698B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム
JP5315075B2 (ja) 画像処理装置、画像処理装置の制御方法およびプログラム
JP7379876B2 (ja) 文字認識装置、文書ファイル生成方法、文書ファイル生成プログラム
CN112445911A (zh) 工作流程辅助装置、系统、方法及存储介质
JP2023087357A (ja) 情報処理装置、情報処理方法、およびプログラム
US11887391B2 (en) Information processing system, data output system, image processing method, and recording medium
JP2019153919A (ja) 画像処理装置、その制御方法、及びプログラム
US11170211B2 (en) Information processing apparatus for extracting portions filled with characters from completed document without user intervention and non-transitory computer readable medium
JP2022090947A (ja) 画像処理装置、画像処理方法およびプログラム
JP2021056796A (ja) 構造認識システム、構造認識装置、構造認識方法、及びプログラム
US20230077608A1 (en) Information processing apparatus, information processing method, and storage medium
JP2007048061A (ja) 文字処理装置、文字処理方法及び記録媒体
US20230083959A1 (en) Information processing apparatus, information processing method, storage medium, and learning apparatus
JP2020047031A (ja) 文書検索装置、文書検索システム及びプログラム