(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-06-19
(45)【発行日】2024-06-27
(54)【発明の名称】レイアウト解析システム、レイアウト解析方法、及びプログラム
(51)【国際特許分類】
G06V 30/412 20220101AFI20240620BHJP
G06V 30/194 20220101ALI20240620BHJP
【FI】
G06V30/412
G06V30/194
(21)【出願番号】P 2024505452
(86)(22)【出願日】2022-08-30
(86)【国際出願番号】 JP2022032644
【審査請求日】2024-01-29
【早期審査対象出願】
(73)【特許権者】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】史 宇植
(72)【発明者】
【氏名】金 美廷
(72)【発明者】
【氏名】蔡 永男
【審査官】新井 則和
(56)【参考文献】
【文献】特開2007-165983(JP,A)
【文献】中国特許出願公開第113033534(CN,A)
【文献】中国特許出願公開第113221869(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/412
G06V 30/194
(57)【特許請求の範囲】
【請求項1】
複数の構成要素を含む文書が示された文書画像の中から、複数のスケールの各々のセルを検出するセル検出部と、
前記複数のスケールの各々の前記セルに関するセル情報を取得するセル情報取得部と、
第1スケールの複数の前記セル情報が所定の条件で並べられ、かつ、その後に第2スケールの複数の前記セル情報が所定の条件で並べられた入力データを、訓練用の文書に関する訓練用のレイアウトが学習された学習モデルに入力し、前記学習モデルによる前記文書に関するレイアウトの解析結果を取得するレイアウト解析部と、
を含むレイアウト解析システム。
【請求項2】
複数の構成要素を含む文書が示された文書画像の中から、複数のスケールの各々のセルを検出するセル検出部と、
前記複数のスケールの各々の前記セルに関するセル情報を取得するセル情報取得部と、
前記スケールのサイズが小さいほど、データサイズが大きくなるように、前記複数のスケールの各々のデータサイズが定義された入力データに、前記複数のスケールの各々の前記セル情報を前記順序で並べて、訓練用の文書に関する訓練用のレイアウトが学習された学習モデルに入力し、前記学習モデルによる前記文書に関するレイアウトの解析結果を取得するレイアウト解析部と、
を含むレイアウト解析システム。
【請求項3】
複数の構成要素を含む文書が示された文書画像の中から、複数のスケールの各々のセルを検出するセル検出部と、
前記複数のスケールの各々の前記セルに関するセル情報を取得するセル情報取得部と、
前記複数のスケールの各々の前記セル情報の合計サイズが、
訓練用の文書に関する訓練用のレイアウトが学習された学習モデルへの入力データに定められた標準サイズに足りない場合には、前記合計サイズが前記標準サイズに足りない分をパティングで置き換えた前記入力データに、前記複数のスケールの各々の前記セル情報を前記順序で並べて、
前記学習モデルに入力し、前記学習モデルによる前記文書に関するレイアウトの解析結果を取得するレイアウト解析部と、
を含むレイアウト解析システム。
【請求項4】
複数の構成要素を含む文書が示された文書画像の中から、複数のスケールの各々のセルを検出するセル検出部と、
前記複数のスケールの各々の前記セルに関するセル情報を取得し、前記複数のスケールのうち、複数の単語を前記セルの単位とする前記スケールについては、前記複数の単語のうちの何れかに基づいて、前記セル情報を取得するセル情報取得部と、
前記複数のスケールの各々の前記セル情報に基づいて、前記文書に関するレイアウトを解析するレイアウト解析部と、
を含むレイアウト解析システム。
【請求項5】
複数の構成要素を含む文書が示された文書画像の中から、前記複数の構成要素のうちの少なくとも1つが、互いに異なるスケールのセルに含まれるように、複数の前記スケールの各々の前記セルを検出するセル検出部と、
前記複数のスケールの各々の前記セルに関するセル情報を取得するセル情報取得部と、
前記複数のスケールの各々の前記セル情報に基づいて、前記文書に関するレイアウトを解析するレイアウト解析部と、
を含むレイアウト解析システム。
【請求項6】
複数の構成要素を含む文書が示された文書画像の中から、複数のスケールの各々のセルを検出するセル検出部と、
前記複数のスケールの各々の前記セルに関するセル情報を取得するセル情報取得部と、
予め定められた分割位置に基づいて、前記文書画像を複数の小領域に分割し、当該複数の小領域の各々に関する小領域情報を取得する小領域情報取得部と、
前記複数のスケールの各々の前記セル情報と、前記複数の小領域の各々の前記小領域情報と、に基づいて、前記文書に関するレイアウトを解析するレイアウト解析部と、
を含むレイアウト解析システム。
【請求項7】
複数の構成要素を含む文書が示された文書画像の中から、複数の単語を含むトークンを前記セルの単位とするトークンレベルと、単語を前記セルの単位とするワードレベルと、を含む複数のスケールの各々のセルを検出するセル検出部と、
前記複数のスケールの各々の前記セルに関するセル情報を取得するセル情報取得部と、
前記複数のスケールの各々の前記セル情報に基づいて、前記文書に関するレイアウトを解析するレイアウト解析部と、
を含むレイアウト解析システム。
【請求項8】
前記学習モデルは、Vision Transformerベースのモデルである、
請求項1又は2に記載のレイアウト解析システム。
【請求項9】
前記セル検出部は、前記文書画像に光学文字認識を実行することによって、前記セルを検出する、
請求項1~7の何れかに記載のレイアウト解析システム。
【請求項10】
コンピュータが、
複数の構成要素を含む文書が示された文書画像の中から、複数のスケールの各々のセルを検出するセル検出ステップと、
前記複数のスケールの各々の前記セルに関するセル情報を取得するセル情報取得ステップと、
第1スケールの複数の前記セル情報が所定の条件で並べられ、かつ、その後に第2スケールの複数の前記セル情報が所定の条件で並べられた入力データを、訓練用の文書に関する訓練用のレイアウトが学習された学習モデルに入力し、前記学習モデルによる前記文書に関するレイアウトの解析結果を取得するレイアウト解析ステップと、
を実行するレイアウト解析方法。
【請求項11】
複数の構成要素を含む文書が示された文書画像の中から、複数のスケールの各々のセルを検出するセル検出部、
前記複数のスケールの各々の前記セルに関するセル情報を取得するセル情報取得部、
第1スケールの複数の前記セル情報が所定の条件で並べられ、かつ、その後に第2スケールの複数の前記セル情報が所定の条件で並べられた入力データを、訓練用の文書に関する訓練用のレイアウトが学習された学習モデルに入力し、前記学習モデルによる前記文書に関するレイアウトの解析結果を取得するレイアウト解析部、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、レイアウト解析システム、レイアウト解析方法、及びプログラムに関する。
【背景技術】
【0002】
従来、所定のレイアウトを有する文書が示された文書画像に基づいて、文書のレイアウトを解析する技術が検討されている。例えば、非特許文献1~非特許文献4には、種々の文書のレイアウトが学習された学習モデルと、文書画像に示された文書の構成要素を含むセル(バウンディングボックス)の座標と、に基づいて、文書のレイアウトを解析する技術が記載されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】Yupan Huang, Tengchao Lv, Lei Cui, Yutong Lu, Furu Wei, “LayoutLMv3: Pre-training for Document AI with Unified Text and Image Masking”, https://arxiv.org/abs/2204.08387, ACM Multimedia 2022
【文献】「Doc-former」, インターネット,2022年8月15日検索,online,https://github.com/shabie/docformer
【文献】Peizhao Li, Jiuxiang Gu, Jason Kuen, Vlad I. Morariu, Handong Zhao, Rajiv Jain, Varun Manjunatha, Hongfu Liu, “SelfDoc: Self-Supervised Document Representation Learning”, https://arxiv.org/abs/2106.03331, CVPR2021
【文献】Anonymous, “ERNIE-Layout: Layout-Knowledge Enhanced Multi-modal Pre-training for Document Understanding”, https://openreview.net/pdf?id=NHECrvMz1LL
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、非特許文献1~非特許文献4の技術では、ある1つのスケールのセルだけを検出してレイアウトを解析するので、レイアウト解析の精度を十分に高めることはできなかった。例えば、単語をセルの単位とするワードレベルだけを利用すると、連語をセルの単位とするトークン、行をセルの単位とするライン、又はテキストの塊をセルの単位とするテキストブロックといったように、大きな特徴を解析しにくい。逆に、テキストブロックのセルだけを利用すると、小さな特徴を解析しにくい。
【0005】
本開示の目的の1つは、レイアウト解析の精度を高めることである。
【課題を解決するための手段】
【0006】
本開示に係るレイアウト解析システムは、複数の構成要素を含む文書が示された文書画像の中から、複数のスケールの各々のセルを検出するセル検出部と、前記複数のスケールの各々の前記セルに関するセル情報を取得するセル情報取得部と、前記複数のスケールの各々の前記セル情報に基づいて、前記文書に関するレイアウトを解析するレイアウト解析部と、を含む。
【発明の効果】
【0007】
本開示によれば、レイアウト解析の精度が高まる。
【図面の簡単な説明】
【0008】
【
図1】レイアウト解析システムの全体構成の一例を示す図である。
【
図3】光学文字認識が実行された文書画像の一例を示す図である。
【
図4】第1実施形態で実現される機能の一例を示す図である。
【
図5】第1実施形態における学習モデルの入力と出力の関係の一例を示す図である。
【
図7】第1実施形態におけるレイアウト解析の一例を示す図である。
【
図8】第1実施形態におけるレイアウト解析の一例を示す図である。
【
図9】第1実施形態で実行される処理の一例を示す図である。
【
図10】第2実施形態におけるスケールの一例を示す図である。
【
図11】第2実施形態で実現される機能の一例を示す図である。
【
図12】第2実施形態における学習モデルの入力と出力の関係の一例を示す図である。
【
図14】第2実施形態におけるレイアウト解析の一例を示す図である。
【
図15】第2実施形態で実行される処理の一例を示す図である。
【
図16】第1実施形態に関する変形例における機能の一例を示す図である。
【発明を実施するための形態】
【0009】
[1.第1実施形態]
本開示に係るレイアウト解析システムの実施形態の一例である第1実施形態を説明する。
【0010】
[1-1.レイアウト解析システムの全体構成]
図1は、レイアウト解析システムの全体構成の一例を示す図である。例えば、レイアウト解析システム1は、サーバ10及びユーザ端末20を含む。サーバ10及びユーザ端末20の各々は、インターネット又はLAN等のネットワークNに接続可能である。
【0011】
サーバ10は、サーバコンピュータである。制御部11は、少なくとも1つのプロセッサを含む。記憶部12は、RAM等の揮発性メモリと、フラッシュメモリ等の不揮発性メモリと、を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。
【0012】
ユーザ端末20は、ユーザのコンピュータである。例えば、ユーザ端末20は、パーソナルコンピュータ、タブレット端末、スマートフォン、又はウェアラブル端末である。制御部21、記憶部22、及び通信部23の物理的構成は、それぞれ制御部11、記憶部12、及び通信部13と同様である。操作部24は、タッチパネル又はマウス等の入力デバイスである。表示部25は、液晶ディスプレイ又は有機ELディスプレイである。撮影部26は、少なくとも1つのカメラを含む。
【0013】
なお、記憶部12,22に記憶されるプログラムは、ネットワークNを介して供給されてもよい。また、各コンピュータには、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、メモリカードスロット)と、外部機器とデータの入出力をするための入出力部(例えば、USBポート)と、の少なくとも一方が含まれてもよい。例えば、情報記憶媒体に記憶されたプログラムが、読取部及び入出力部の少なくとも一方を介して供給されてもよい。
【0014】
また、レイアウト解析システム1は、少なくとも1つのコンピュータを含めばよく、
図1の例に限られない。例えば、レイアウト解析システム1は、ユーザ端末20を含まずに、サーバ10だけを含んでもよい。この場合、ユーザ端末20は、レイアウト解析システム1の外部に存在する。例えば、レイアウト解析システム1は、サーバ10以外の他のコンピュータを含み、当該他のコンピュータによって、レイアウト解析が実行されてもよい。例えば、他のコンピュータは、パーソナルコンピュータ、タブレット端末、又はスマートフォンである。
【0015】
[1-2.第1実施形態の概要]
第1実施形態のレイアウト解析システム1は、文書画像に示された文書のレイアウトを解析する。文書画像は、文書の全部又は一部が示された画像である。文書画像の少なくとも一部の画素には、文書の一部が示される。文書画像には、1つの文書だけが示されていてもよいし、複数の文書が示されていてもよい。第1実施形態では、文書が撮影部26で撮影されることによって文書画像が生成される場合を説明するが、文書がスキャナで読み取られることによって文書画像が生成されてもよい。
【0016】
文書は、人間が理解可能な情報を含む書類である。例えば、文書は、文字が形成された用紙である。第1実施形態では、文書の一例として、ユーザが店舗で買い物をした時に受け取るレシートを説明するが、レイアウト解析システム1は、種々の文書に対応可能である。例えば、請求書、見積書、申請書、公的書類、社内書類、チラシ、論文、雑誌、新聞、又は参考書といった種々の文書にレイアウト解析システム1を適用可能である。
【0017】
レイアウトは、文書における構成要素の配置である。レイアウトは、デザインと呼ばれることもある。構成要素は、文書を構成する要素である。構成要素は、文書に形成された情報そのものである。例えば、構成要素は、文字、記号、ロゴ、図形、写真、表、又はイラストである。例えば、文書には、レイアウトに関する複数のパターンが存在する。文書は、複数のパターンのうちの何れかのレイアウトを有する。
【0018】
図2は、文書画像の一例を示す図である。例えば、ユーザが、ユーザ端末20を操作して文書Dを撮影すると、ユーザ端末20は、文書Dが示された文書画像Iを生成する。
図2の例では、文書画像Iの左上を原点Oとして、x軸及びy軸が設定される。文書画像I内の位置は、x座標及びy座標を含む2次元座標で示される。文書画像I内の位置は、任意の座標系で表現可能であり、
図2の例に限られない。例えば、文書画像Iの中心を原点Oとする座標系、又は、極座標系で文書画像I内の位置が表現されてもよい。
【0019】
例えば、ユーザ端末20は、サーバ10に対し、文書画像Iを送信する。サーバ10は、ユーザ端末20から文書画像Iを受信する。サーバ10は、文書画像Iを受信した時点では、どのようなレイアウトの文書Dが文書画像Iに示されているかを特定できないものとする。サーバ10は、そもそもレシートが文書Dとして文書画像Iに示されているのかも特定できないものとする。第1実施形態では、サーバ10は、文書Dのレイアウトを解析するために、文書画像Iに対し、光学文字認識を実行する。
【0020】
図3は、光学文字認識が実行された文書画像Iの一例を示す図である。例えば、サーバ10は、公知の光学文字認識ツールを利用して、文書画像Iの中から、セルC1~C21を検出する。以降、セルC1~C21を区別しない時は、単にセルCという。セルCは、任意の形状であってよく、
図3のような長方形に限られない。例えば、セルCは、正方形、角丸四角形、四角形以外の多角形、又は楕円形であってもよい。
【0021】
セルCは、文書Dの構成要素を含む領域である。セルCは、バウンディングボックスと呼ばれることもある。第1実施形態では、光学文字認識ツールを利用してセルCが検出されるので、セルCは、少なくとも1つの文字を含む。1文字ごとにセルCが検出されてもよいが、第1実施形態では、互いに連続した複数の文字が1つのセルCとして検出されるものとする。
【0022】
例えば、文字の間にスペースが配置されたとしても、スペースがある程度小さければ、スペースで区切られた複数の語を含む1つのセルCが検出されることもある。
図3の例では、文書Dの「XYZ」と「Mart」の間にはスペースが配置されているが、「XYZ」のセルCと、「Mart」のセルCと、が別々に検出されるのではなく、「XYZ Mart」を含む1つのセルC1が検出される。セルC2~C4,C7も、セルC1と同様に、スペースで区切られた複数の単語を含む。
【0023】
例えば、本来はスペースを含まない1つの語だったとしても、別々の語として認識されることもある。
図3の例では、文書Dの「¥1,100」は1つの語であるが、他の文字よりも大きいので、「¥1,」と「100」の間に多少の間隔が存在する。
図3の例では、この間隔によって、「¥1,」を含むC13と、「100」を含むC14と、が検出されている。セルC18,19も、セルC13,C14と同様に、本来はスペースを含まない1つの語が別々の語として認識されている。
【0024】
例えば、世の中に存在するレシートのレイアウトは、ある程度はパターン化されている。このため、文書画像Iに示された文書Dがレシートである場合には、文書Dは、何種類かあるパターンの中の何れかのパターンのレイアウトを有することが多い。光学文字認識だけでは、文書画像I内の文字が商品の明細を示すのか合計金額を示すのかを特定しにくいが、文書Dのレイアウトを解析できれば、文書Dのどこに商品の明細又は合計金額が印刷されているのかを特定しやすくなる。
【0025】
そこで、サーバ10は、文書画像Iから検出されたセルCの配置に基づいて、文書Dのレイアウトを解析する。例えば、サーバ10は、種々のレイアウトを学習させた学習モデルに対し、セルCの座標を入力することによって、学習モデルに文書Dのレイアウトを解析させることも考えられる。この場合、学習モデルは、学習済みのレイアウトのうち、自身に入力されたセルCの座標のパターンを特徴量化し、このパターンに近いパターンのレイアウトを、推定結果として出力する。
【0026】
しかしながら、文書Dの同じ行に配置されたセルCだったとしても、光学文字認識によって検出される座標が異なることがある。
図3の例であれば、セルC8,C10は、互いに同じ行に配置されているが、光学文字認識によって検出されたセルC8,C10のy座標が互いに同じとは限らない。文書画像Iにおける文書Dの曲がり又は歪みに起因して、セルC8,C10のy座標が互いに異なることもある。例えば、学習モデルが、セルC8,C10のy座標の微妙な差によって、内部的にこれらを異なる行として認識する可能性がある。この場合、レイアウト解析の精度が低下する可能性がある。
【0027】
上記の点は、文書Dの行に限られず、文書Dの列についても同様である。
図3の例であれば、セルC10,C11は、互いに同じ列に配置されているが、光学文字認識によって検出されたセルC10,C11のx座標が互いに同じとは限らない。文書画像Iにおける文書Dの曲がり又は歪みに起因して、セルC10,C11のx座標が互いに異なることもある。例えば、学習モデルが、セルC10,C11のx座標の微妙な差によって、内部的にこれらを異なる列として認識する可能性がある。この場合、レイアウト解析の精度が低下する可能性がある。
【0028】
そこで、第1実施形態のレイアウト解析システム1は、セルCの座標に基づいて、同じ行及び同じ列のセルCをグループ化する。レイアウト解析システム1は、セルCを行及び列でグループ化した状態で、学習モデルにレイアウトを解析させることによって、上記のような微妙な座標のずれを吸収し、レイアウト解析の精度を高めるようになっている。以降、第1実施形態の詳細を説明する。
【0029】
[1-3.第1実施形態で実現される機能]
図4は、第1実施形態で実現される機能の一例を示す図である。
【0030】
[1-3-1.サーバで実現される機能]
データ記憶部100は、記憶部12により実現される。画像取得部101、セル検出部102、セル情報取得部103、レイアウト解析部104、及び処理実行部105は、制御部11により実現される。
【0031】
[データ記憶部]
データ記憶部100は、文書Dのレイアウトの解析に必要なデータを記憶する。例えば、データ記憶部100は、文書画像Iに基づいて文書Dのレイアウトを解析する学習モデルを記憶する。学習モデルは、機械学習手法を利用したモデルである。データ記憶部100は、学習モデルのプログラム及びパラメータを記憶する。パラメータは、学習によって調整される。機械学習手法は、教師有り学習、半教師有り学習、及び教師無し学習の何れが利用されてもよい。
【0032】
第1実施形態では、学習モデルがVision Transformerベースのモデルである場合を例に挙げる。Vision Transformerは、主に自然言語処理で利用されるTransformerを、画像処理に適用した手法である。Transformerは、文書の構成要素が時系列に並べられた入力データにおける互いのつながりを解析する。Vision Transformerは、自身に入力された入力画像を複数のパッチに分割し、複数のパッチが並べられた入力データを取得する。Vision Transformerは、Transformerによる文脈の解析を、パッチ同士のつながりの解析に流用した手法である。Vision Transformerは、入力データに含まれる個々のパッチをベクトルに変換して解析する。第1実施形態の学習モデルは、このようなVision Transformerの仕組みが流用されている。
【0033】
図5は、第1実施形態における学習モデルの入力と出力の関係の一例を示す図である。例えば、データ記憶部100は、学習モデルの訓練データを記憶する。訓練データには、訓練用の入力データと、正解のレイアウトと、の関係が示されている。訓練用の入力データは、推定時に学習モデルに入力される入力データと同じ形式である。第1実施形態では、入力データのサイズも予め定められているものとする。この入力データは、後述の
図6,7で説明するように、行でソートされたセル情報と、列でソートされたセル情報と、を含む。セル情報の詳細は、後述する。
【0034】
図5のように、訓練データに含まれる訓練用の入力データには、訓練用の文書が示された訓練画像から取得されたセル情報が、行及び列の各々でソートされて並べられる。例えば、サーバ10は、訓練用の文書が示された訓練画像に対し、後述のセル検出部102及びセル情報取得部103と同様の処理を実行し、訓練画像から検出された複数のセルの各々のセル情報を取得する。サーバ10は、複数のセルCの各々のセル情報を、訓練画像における行及び列の各々でソートすることによって、訓練用の入力データを取得する。訓練用の入力データには、後述する行変化情報及び列変化情報も含まれているものとする。第1実施形態では、訓練用の入力データに含まれるソートされたセル情報は、Vision Transformerにおける個々のパッチの画像又はベクトルに相当する。
【0035】
例えば、訓練データに含まれる正解のレイアウトは、学習モデルの作成者が手動で指定する。正解のレイアウトは、レイアウトのラベルである。例えば、「レシートパターンA」、「レシートパターンB」といったようなラベルが正解のレイアウトとして定義されている。サーバ10は、訓練用の入力データと、正解のレイアウトと、のペアを訓練データとして生成する。サーバ10は、複数の訓練画像に基づいて、複数の訓練データを生成する。サーバ10は、ある訓練データに含まれる訓練用の入力データが学習モデルに入力された場合に、この訓練データに含まれる正解のレイアウトが学習モデルから出力されるように、学習モデルのパラメータを調整する。
【0036】
なお、学習モデルの学習自体は、Vision Transformerで利用されている手法を利用すればよい。例えば、サーバ10は、入力データに含まれる要素同士の結びつきを学習するSelf-Attentionに基づいて、学習モデルの学習を実行してもよい。また、訓練データは、サーバ10以外の他のコンピュータによって作成されてもよいし、人手で作成されてもよい。学習モデルの学習も、サーバ10以外の他のコンピュータによって実行されてもよい。データ記憶部100は、何らかの形で学習済みの学習モデルを記憶すればよい。
【0037】
また、学習モデルは、Vision Transformer以外の他の機械学習手法を利用したモデルであってもよい。他の機械学習手法としては、画像処理分野で利用されている種々の手法を利用可能である。例えば、学習モデルは、ニューラルネットワーク、長・短期記憶ネットワーク、又はサポートベクターマシンを利用したモデルであってもよい。学習モデルの学習も、他の機械学習手法で利用されている誤差逆伝播法又は勾配降下法といった他の手法を利用可能である。
【0038】
また、データ記憶部100に記憶されるデータは、学習モデルに限られない。データ記憶部100は、レイアウトの解析に必要なデータを記憶すればよく、任意のデータを記憶可能である。例えば、データ記憶部100は、学習モデルの学習を実行するためのプログラム、レイアウトの解析対象となる文書画像Iが格納されたデータベース、及び光学文字認識ツールを記憶してもよい。
【0039】
[画像取得部]
画像取得部101は、文書画像Iを取得する。文書画像Iを取得するとは、文書画像Iの画像データを取得することである。本実施形態では、画像取得部101がユーザ端末20から文書画像Iを取得する場合を説明するが、画像取得部101は、ユーザ端末20以外の他のコンピュータから文書画像Iを取得してもよい。例えば、文書画像Iが予めデータ記憶部100又は他の情報記憶媒体に記録されている場合には、画像取得部101は、データ記憶部100又は他の情報記憶媒体から文書画像Iを取得してもよい。画像取得部101は、カメラ又はスキャナから直接的に文書画像Iを取得してもよい。
【0040】
なお、文書画像Iは、静止画ではなく、動画であってもよい。文書画像Iが動画である場合には、動画に含まれる少なくとも1つのフレームを、レイアウトの解析対象とすればよい。また、文書画像Iのデータ形式は、任意の形式であってよく、例えば、JPEG、PNG、GIF、MPEG、又はPDFであってもよい。文書画像Iは、物理的な文書Dが取り込まれた画像に限られず、ユーザ端末20又は他のコンピュータで作成された電子的な文書Dを示す画像であってもよい。例えば、電子的な文書Dのスクリーンショットが文書画像Iに相当してもよい。例えば、電子的な文書Dにおけるテキストの情報が失われたデータが文書画像Iに相当してもよい。
【0041】
[セル検出部]
セル検出部102は、複数の構成要素を含む文書Dが示された文書画像Iの中から、複数のセルCを検出する。第1実施形態では、セル検出部102が、文書画像Iに光学文字認識を実行することによって、複数のセルCを検出する場合を例に挙げる。光学文字認識は、画像から文字を認識する手法である。光学文字認識ツール自体は、種々のツールを利用可能であり、例えば、見本となる画像と比較するマトリックスマッチング法を利用したツール、線の形状的な特徴を比較する特徴検出法を利用したツール、又は機械学習手法を利用したツールが利用されてもよい。
【0042】
例えば、セル検出部102は、光学文字認識ツールを利用して、文書画像Iの中から、セルCを検出する。光学文字認識ツールは、文書画像Iにおける文字を認識し、当該認識された文字に基づいて、セルCに関する種々の情報を出力する。第1実施形態では、光学文字認識ツールは、セルCごとに、文書画像IのうちのセルC内の画像、セルCに含まれる少なくとも1つの文字、セルCの左上の座標、セルCの右下の座標、セルCの横幅、及びセルCの縦幅を出力するものとする。セル検出部102は、光学文字認識ツールからの出力を取得することによって、セルCを検出する。
【0043】
なお、光学文字認識ツールは、少なくともセルCの何らかの座標を出力すればよく、光学文字認識ツールが出力する情報は、上記の例に限られない。例えば、光学文字認識ツールは、セルCの左上の座標だけを出力してもよい。セルCの左上の座標ではなく、他の座標でセルCの位置を特定する場合には、光学文字認識ツールは、他の座標を出力すればよい。セル検出部102は、光学文字認識ツールから出力された他の座標を取得することによって、セルCを検出してもよい。例えば、他の座標は、セルCの中心点の座標、セルCの右上の座標、セルCの左下の座標、又はセルCの右下の座標であってもよい。
【0044】
また、セル検出部102は、光学文字認識以外の他の手法を利用して、文書画像Iの中からセルCを検出してもよい。例えば、セル検出部102は、風景に含まれるテキストを検出するScene Text Detection、文字を一例とする物体性の高い領域を検出する物体検出法、又は、見本となる画像と比較するパターンマッチング法に基づいて、文書画像Iの中からセルCを検出してもよい。これらの手法でも、セルCの何らかの座標が出力されるものとする。
【0045】
[セル情報取得部]
セル情報取得部103は、複数のセルCの各々の座標に基づいて、複数のセルCの各々の行及び列の少なくとも一方に関するセル情報を取得する。行は、文書画像Iのy軸方向におけるセルCの並びである。行は、y座標が同じ又は近いセルCのグループである。y座標が近いとは、y軸方向の距離が閾値未満であることである。列は、文書画像Iのx軸方向におけるセルCの並びである。列は、x座標が同じ又は近いセルCのグループである。x座標が近いとは、x軸方向の距離が閾値未満であることである。
【0046】
例えば、セル情報取得部103は、複数のセルCの各々の座標に基づいて、互いに同じ行にあるセルCと、互いに同じ列にあるセルCと、を特定する。行及び列は、文書画像Iにおける位置を、座標よりも大まかに表現する情報ということもできる。第1実施形態では、セル情報がセルCの行及び列の両方に関する情報である場合を例に挙げるが、セル情報は、セルCの行だけに関する情報であってもよいし、セルCの列だけに関する情報であってもよい。即ち、セル情報取得部103は、互いに同じ行にあるセルCを特定して、互いに同じ列にあるセルCを特定しなくてもよい。逆に、セル情報取得部103は、互いに同じ列にあるセルCを特定して、互いに同じ行にあるセルCを特定しなくてもよい。
【0047】
図6は、セル情報の一例を示す図である。
図6の例では、セル情報が表形式で示されている。
図6の表における1つ1つのレコードがセル情報に相当する。例えば、セル情報は、セルID、セル画像、文字列、左上の座標、右下の座標、横幅、縦幅、行番号、及び列番号を含む。セル情報は、行番号及び列番号の少なくとも一方を含めばよく、
図6の例に限られない。例えば、セル情報は、行番号及び列番号の少なくとも一方だけを含んでもよい。セル情報は、セルCの何らかの特徴を含めばよい。
【0048】
なお、セル情報は、
図6の一部の項目を含まなくてもよいし、他の項目を含んでもよい。例えば、セル画像及び文字列は、埋め込み表現と呼ばれる特徴量化した状態でセル情報に含まれるようにしてもよい。セル画像の埋め込み表現の計算は、畳み込みと呼ばれる手法が利用されてもよい。文字列の埋め込み表現の計算は、fastText又はWord2vecといった種々の手法を利用可能である。
【0049】
セルIDは、セルCを一意に識別可能な情報である。例えば、セルIDは、ある文書画像Iの中で1から連番になるように発行される。セルIDは、光学文字認識ツールが発行してもよいし、セル検出部102又はセル情報取得部103が発行してもよい。セル画像は、文書画像Iの中からセルC内部が切り取られた画像である。文字列は、光学文字認識による文字の認識結果である。第1実施形態では、セルID、セル画像、文字列、左上の座標、右下の座標、横幅、及び縦幅は、光学文字認識ツールから出力されるものとする。
【0050】
行番号は、文書画像Iにおける行の順序である。第1実施形態では、文書画像Iの上から順番に行番号が付与されるものとするが、行番号は、予め定められたルールに基づいて付与されるようにすればよい。例えば、文書画像Iの下から順番に行番号が付与されてもよい。同じ行番号が付与されたセルCは、互いに同じ行に属する。セルCが属する行は、行番号ではなく、文字等の他の情報によって特定されるようにしてもよい。
【0051】
列番号は、文書画像Iにおける列の順序である。第1実施形態では、文書画像Iの左から順番に列番号が付与されるものとするが、列番号は、予め定められたルールに基づいて付与されるようにすればよい。例えば、文書画像Iの右から順番に列番号が付与されてもよい。同じ列番号が付与されたセルCは、互いに同じ列に属する。セルCが属する列は、列番号ではなく、文字等の他の情報によって特定されるようにしてもよい。
【0052】
第1実施形態では、セル情報取得部103は、複数のセルCの各々のy座標に基づいて、y軸方向における互いの距離が閾値未満であるセルC同士が同じ行になるように、複数のセルCの各々の行に関するセル情報を取得する。例えば、セル情報取得部103は、複数のセルCの各々の左上のy座標と、他のセルCの左上のy座標と、の距離を計算し、この距離が閾値未満であれば、同じ行であると判定して同じ行番号を付与する。セル情報取得部103は、この距離が閾値以上であれば、異なる行であると判定して異なる行番号を付与する。第1実施形態では、同じ行と特定するための閾値は、予め定められた固定値であるものとする。例えば、同じ行を特定するための閾値は、文書Dの標準的なフォントの縦幅と同じ又はそれよりも小さくなるように設定される。
【0053】
図3の例であれば、セルC1~C21のうち、左上のy座標が最も小さいのは、セルC1である。セル情報取得部103は、セルC1の左上のy座標と、左上のy座標が2番目に小さいセルC2の左上のy座標と、の距離を計算し、この距離が閾値未満であるか否かを判定する。セル情報取得部103は、この距離が閾値以上であると判定し、1行目には、セルC1しか属していないと判定する。セル情報取得部103は、セルC1に対し、1行目であることを示す行番号「1」を付与する。
【0054】
例えば、セル情報取得部103は、左上のy座標が2番目に小さいセルC2の左上のy座標と、左上のy座標が3番目に小さいセルC3の左上のy座標と、の距離を計算し、この距離が閾値未満であるか否かを判定する。セル情報取得部103は、この距離が閾値以上であると判定し、2行目には、セルC2しか属していないと判定する。セル情報取得部103は、セルC2に対し、2行目であることを示す行番号「2」を付与する。以降同様に、セル情報取得部103は、セルC3~C7に対し、それぞれ3行目~7行目であることを示す行番号「3」~「7」を付与する。
【0055】
例えば、セル情報取得部103は、左上のy座標が8番目に小さいセルC8の左上のy座標と、左上のy座標が9番目に小さいセルC10の左上のy座標と、の距離を計算し、この距離が閾値未満であるか否かを判定する。セル情報取得部103は、この距離が閾値未満であると判定する。セル情報取得部103は、左上のy座標が8番目に小さいセルC8の左上のy座標と、左上のy座標が10番目に小さいセルC9の左上のy座標と、の距離を計算し、この距離が閾値未満であるか否かを判定する。セル情報取得部103は、この距離が閾値以上であると判定し、8行目には、セルC8,C10が属しており、かつ、セルC9は属していないと判定する。セル情報取得部103は、セルC8,C10に対し、8行目であることを示す行番号「8」を付与する。
【0056】
以降同様に、セル情報取得部103は、セルC9,C11に対し、9行目であることを示す行番号「9」を付与する。セル情報取得部103は、セルC12,C13,C14に対し、10行目であることを示す行番号「10」を付与する。セル情報取得部103は、セルC15,C16に対し、11行目であることを示す行番号「11」を付与する。セル情報取得部103は、セルC17,C18,C19に対し、12行目であることを示す行番号「12」を付与する。セル情報取得部103は、セルC20,C21に対し、13行目であることを示す行番号「13」を付与する。
【0057】
第1実施形態では、セル情報取得部103は、複数のセルCの各々のx座標に基づいて、x軸方向における互いの距離が閾値未満であるセルC同士が同じ列になるように、複数のセルCの各々の列に関するセル情報を取得する。例えば、セル情報取得部103は、複数のセルCの各々の左上のx座標と、他のセルCの左上のx座標と、の距離を計算し、この距離が閾値未満であれば、同じ列であると判定して同じ列番号を付与する。セル情報取得部103は、この距離が閾値以上であれば、異なる列であると判定して異なる列番号を付与する。第1実施形態では、同じ列と特定するための閾値は、予め定められた固定値であるものとする。例えば、同じ列を特定するための閾値は、文書Dの標準的なフォントの1文字分の横幅と同じ又はそれよりも小さくなるように設定される。
【0058】
図3の例であれば、セルC1~C21のうち、左上のx座標が最も小さいのは、セルC2である。セル情報取得部103は、セルC2の左上のx座標と、左上のx座標が2番目に小さいセルC3の左上のx座標と、の距離を計算し、この距離が閾値未満であるか否かを判定する。セル情報取得部103は、この距離が閾値未満であると判定する。以降同様に、セル情報取得部103は、セルC2の左上のx座標と、左上のx座標が3番目~10番目に小さいセルC4,C5,C7,C8,C9,C12,C17,C20の左上のx座標と、の距離を計算し、これらの距離が閾値未満であると判定する。セル情報取得部103は、1列目には、セルC2,C3,C4,C5,C7,C8,C9,C12,C17,C20が属していると判定する。セル情報取得部103は、セルC2,C3,C4,C5,C7,C8,C9,C12,C17,C20に対し、1列目であることを示す列番号「1」を付与する。
【0059】
以降同様に、セル情報取得部103は、セルC1に対し、2列目であることを示す列番号「2」を付与する。セル情報取得部103は、セルC6に対し、3列目であることを示す列番号「3」を付与する。セル情報取得部103は、セルC13,C18に対し、4列目であることを示す列番号「4」を付与する。セル情報取得部103は、セルC15,C21に対し、5列目であることを示す列番号「5」を付与する。セル情報取得部103は、セルC10,C11に対し、6列目であることを示す列番号「6」を付与する。セル情報取得部103は、セルC14,C19に対し、7列目であることを示す列番号「7」を付与する。セル情報取得部103は、セルC16に対し、8列目であることを示す列番号「8」を付与する。
【0060】
なお、第1実施形態では、セル情報取得部103が、セルCの左上の座標に基づいて、同じ行又は列に属するセルCを特定する場合を説明するが、セル情報取得部103は、セルCの右上の座標、左下の座標、右下の座標、又は内部の座標に基づいて、同じ行又は列に属するセルCを特定してもよい。この場合も、セル情報取得部103は、複数のセルCの各々の距離に基づいて、同じ行又は列に属するか否かを判定すればよい。
【0061】
[レイアウト解析部]
レイアウト解析部104は、複数のセルCの各々のセル情報に基づいて、文書Dに関するレイアウトを解析する。例えば、レイアウト解析部104は、セル情報が示す列番号及び行番号の少なくとも一方に基づいて、文書Dのレイアウトを解析する。第1実施形態では、レイアウト解析部104が、セル情報が示す列番号及び行番号の両方に基づいて、文書Dのレイアウトを解析する場合を説明するが、レイアウト解析部104は、セル情報が示す列番号又は行番号の何れか一方のみに基づいて、文書Dのレイアウトを解析してもよい。
【0062】
本実施形態では、レイアウト解析部104は、訓練用の文書に関する訓練用のレイアウトが学習された学習モデルに基づいて、レイアウトを解析する。学習モデルには、訓練用のセル情報と、訓練用のレイアウトと、の関係が学習されている。レイアウト解析部104は、複数のセルCの各々のセル情報を学習モデルに入力する。学習モデルは、複数のセルCの各々のセル情報を特徴量化し、当該特徴量に応じたレイアウトを出力する。特徴量は、埋め込み表現と呼ばれることもある。第1実施形態では、特徴量がベクトル形式で表現される場合を説明するが、特徴量は、配列又は単一の数値といった他の形式で表現されてもよい。レイアウト解析部104は、学習モデルから出力されたレイアウトを取得することによって、レイアウトを解析する。
【0063】
図7及び
図8は、第1実施形態におけるレイアウト解析の一例を示す図である。
図7における行と列のマトリックスは、セルC1~C21が属する行と列を示すものである。セルC1~C21の大きさは、互いに異なるが、
図7のマトリックスでは、同じ大きさで示されている。第1実施形態では、学習モデルがVision Transformerベースのモデルなので、レイアウト解析部104は、複数のセルCの各々のセル情報を所定の条件で並べて学習モデルに入力し、学習モデルによるレイアウトの解析結果を取得することによって、レイアウトを解析する。例えば、セル情報は、文書画像Iにおける行の順序を含むので、レイアウト解析部104は、複数のセルCの各々の行の順序に基づいて、複数のセルCの各々のセル情報をソートして学習モデルに入力する。
【0064】
図7及び
図8の例では、レイアウト解析部104は、行番号の昇順にセル情報をソートする。このため、レイアウト解析部104は、1行目から順番に並ぶように、セル情報をソートする。例えば、レイアウト解析部104は、セルC1,C2,C3,C4,C5,C6,C7,C8,C10,C9,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20,C21の順でセル情報を並べる。行番号が同じセルCの中では、セルID順にソートされる。レイアウト解析部104は、行番号の降順にセル情報をしてもよい。学習モデルには、行でソートされたセル情報を含む入力データが入力される。
【0065】
第1実施形態では、レイアウト解析部104は、複数のセルCの各々の行の順序に基づいて、複数のセルCの各々のセル情報をソートし、かつ、行が変わる部分に所定の行変化情報を挿入して学習モデルに入力する。行変化情報は、行が変化したことを識別可能な情報である。例えば、行が変化したことを示す特定の文字列は、行変化情報に相当する。行変化情報は、文字列に限られず、行が変化したことを示す単一の文字であってもよいし、行が変化したことを示す画像であってもよい。行変化情報が挿入されることによって、学習モデルは、自身に入力された一連の時系列データのうち、どの部分で行が変化したのかを特定できる。
【0066】
図7及び
図8の例では、レイアウト解析部104は、セルC1,C2の間、セルC2,C3の間、セルC3,C4の間、セルC4,C5の間、セルC5,C6の間、セルC6,C7の間、セルC7,C8の間、セルC10,C9の間、セルC11,C12の間、セルC14,C15の間、セルC16,C17の間、及びセルC19,C20の間に、行変化情報を挿入する。
図7では、行変化情報は、縦線の正方形で示されている。個々の行変化情報は、互いに同じであってもよいし、何行目と何行目の境界なのかを示す情報が含まれていてもよい。
【0067】
例えば、セル情報は、文書画像Iにおける列の順序を含むので、レイアウト解析部104は、複数のセルCの各々の列の順序に基づいて、複数のセルCの各々のセル情報をソートして学習モデルに入力する。
図7及び
図8の例では、レイアウト解析部104は、列番号の昇順にセル情報をソートする。このため、レイアウト解析部104は、1列目から順番に並ぶように、セル情報をソートする。例えば、レイアウト解析部104は、セルC2,C3,C4,C5,C7,C8,C9,C12,C17,C20,C1,C6,C13,C18,C15,C21,C10,C11,C14,C19,C16の順でセル情報を並べる。列番号が同じセルCの中では、セルID順にソートされる。レイアウト解析部104は、列番号の降順にセル情報をしてもよい。学習モデルには、列でソートされたセル情報を含む入力データが入力される。
【0068】
第1実施形態では、レイアウト解析部104は、複数のセルCの各々の列の順序に基づいて、複数のセルCの各々のセル情報をソートし、かつ、列が変わる部分に所定の列変化情報を挿入して学習モデルに入力する。列変化情報は、列が変化したことを識別可能な情報である。例えば、列が変化したことを示す特定の文字列は、列変化情報に相当する。列変化情報は、文字列に限られず、列が変化したことを示す単一の文字であってもよいし、列が変化したことを示す画像であってもよい。列変化情報が挿入されることによって、学習モデルは、自身に入力された一連の時系列データのうち、どの部分で列が変化したのかを特定できる。
【0069】
図7及び
図8の例では、レイアウト解析部104は、セルC20,C1の間、セルC1,C6の間、セルC6,C13の間、セルC18,C15の間、セルC21,C10の間、セルC11,C14の間、及びセルC19,C16の間に、列変化情報を挿入する。
図7では、列変化情報は、横線の正方形で示されている。個々の列変化情報は、互いに同じであってもよいし、何列目と何列目の境界なのかを示す情報が含まれていてもよい。
【0070】
図8のように、レイアウト解析部104は、行でソートされたセル情報の後に、列でソートされたセル情報を配置した入力データを、学習モデルに入力する。なお、行でソートされたセル情報と、列でソートされたセル情報と、の間には、これらのセル情報の境界であることを示す情報が配置されてもよい。また、レイアウト解析部104は、列でソートされたセル情報の後に、行でソートされたセル情報を配置した入力データを、学習モデルに入力してもよい。この場合、列でソートされたセル情報と、行でソートされたセル情報と、の間には、これらのセル情報の境界であることを示す情報が配置されてもよい。
【0071】
図8のように、セル情報が所定の条件のもとで並べられることによって、入力データは、時系列的な意味を有するデータになる。セル情報をソートするための条件は、行番号及び列番号に限られない。例えば、セルID順にセル情報がソートされてもよいし、左上の座標順にセル情報がソートされてもよい。このようなソートだったとしても、セル情報に行番号及び列番号が含まれているので、学習モデルは、セルCの行及び列を考慮してレイアウトの解析を実行できる。
【0072】
学習モデルは、入力データを特徴量化し、特徴量に応じたレイアウトを出力する。特徴量の計算では、入力データにおけるセル情報の並び(セル情報同士のつながり)も考慮される。
図8の例では、学習モデルは、学習モデルに学習された複数のパターンのうちの何れに属するかを示す情報を出力する。例えば、学習モデルに学習済みの訓練データに含まれる入力データにおけるセル情報の並びと、学習モデルに入力された入力データにおけるセル情報の並びと、が似ている場合には、学習モデルは、この訓練データに含まれる正解のレイアウトを出力する。
【0073】
なお、第1実施形態では、
図6の各項目(セルID、セル画像又はその埋め込み表現、文字列又はその埋め込み表現、左上の座標、右下の座標、横幅、縦幅、行番号、及び列番号)を含むセル情報が並べられる場合を説明するが、
図6の一部の項目だけを含むセル情報が並べられてもよい。例えば、セル画像又はその埋め込み表現と、文字列又はその埋め込み表現と、だけを含むセル情報が行番号又は列番号でソートされた入力データが学習モデルに入力されてもよい。セル情報には、レイアウト解析で有効と思われる項目が含まれるようにすればよい。
【0074】
また、Vision Transformer以外の他の機械学習手法が利用される場合には、レイアウト解析部104は、他の機械学習手法の学習モデルに入力可能な形式のデータとして、セル情報を入力すればよい。また、入力データのサイズが予め定められている場合には、入力データのサイズにセル情報全体のサイズが足りなければ、足りない分についてはパティングが挿入されてもよい。この場合、入力データ全体のサイズは、パティングによって、所定のサイズになるように調整される。学習モデルの訓練データも同様に、パティングによって所定のサイズになるように調整されてもよい。
【0075】
[処理実行部]
処理実行部105は、レイアウトの解析結果に基づいて、所定の処理を実行する。所定の処理は、レイアウトを解析する目的に応じた処理である。第1実施形態では、商品の明細と合計金額を取得する処理が所定の処理に相当する場合を説明する。処理実行部105は、レイアウトの解析結果に基づいて、文書Dのどこに商品の明細と合計金額が記載されているかを特定する。処理実行部105は、当該特定された位置に基づいて、商品の明細と合計金額を取得する。
【0076】
図3の例であれば、商品の明細は、x軸方向の中央付近に配置されたセルC6以降に記載されることが多いので、処理実行部105は、セルC8~C11を、商品の明細として特定する。合計金額は、商品の明細の下に記載されることが多いので、処理実行部105は、セルC12~C14を、合計金額として特定する。処理実行部105は、商品の明細と合計金額を特定し、ユーザ端末20に送信する。このような処理によれば、文書画像Iから自動的に商品の明細と合計金額を特定できるので、ユーザの利便性が高まる。ユーザは、家計簿ソフト等で商品の明細と合計金額を利用できる。
【0077】
なお、処理実行部105が実行する所定の処理は、上記の例に限られない。所定の処理は、レイアウト解析システム1の利用目的に応じた処理であればよい。例えば、所定の処理は、レイアウト解析部104が解析したレイアウトを出力する処理、全てのセルCの中からレイアウトに応じたセルCだけを出力する処理、又は文書画像Iに対してレイアウトに応じた加工を施す処理であってもよい。
【0078】
[1-3-2.ユーザ端末で実現される機能]
データ記憶部200は、記憶部22を主として実現される。送信部201及び受信部202は、制御部21を主として実現される。
【0079】
[データ記憶部]
データ記憶部200は、文書画像Iの取得に必要なデータを記憶する。例えば、データ記憶部200は、撮影部26により生成された文書画像Iを記憶する。
【0080】
[送信部]
送信部201は、サーバ10に対し、種々のデータを送信する。例えば、送信部201は、サーバ10に対し、文書画像Iを送信する。
【0081】
[受信部]
受信部202は、サーバ10から、種々のデータを受信する。例えば、受信部202は、サーバ10から、レイアウトの解析結果として、商品の明細と合計金額を受信する。
【0082】
[1-4.第1実施形態で実行される処理]
図9は、第1実施形態で実行される処理の一例を示す図である。
図9のように、ユーザ端末20は、ユーザが撮影部26で文書Dを撮影すると、文書画像Iを生成してサーバ10に送信する(S100)。サーバ10は、ユーザ端末20から文書画像Iを受信する(S101)。サーバ10は、光学文字認識ツールに基づいて、文書画像Iに光学文字認識を実行し、セルCを検出する(S102)。S102では、サーバ10は、セルCのセル情報のうち、行番号及び列番号以外の部分を取得する。
【0083】
サーバ10は、複数のセルCの各々のy座標に基づいて、互いに同じ行に属するセルCに同じ行番号を付与し、複数のセルCの各々のx座標に基づいて、互いに同じ列に属するセルCに同じ列番号を付与することによって、複数のセルCの各々のセル情報を取得する(S103)。S103では、サーバ10は、セル情報のうち、S102の処理で取得できなかった部分を取得する。
【0084】
サーバ10は、S103で取得したセル情報に含まれる行番号に基づいて、セルCのセル情報をソートする(S104)。サーバ10は、S103で取得したセル情報に含まれる列番号に基づいて、セルCのセル情報をソートする(S105)。サーバ10は、S104及びS105でソートされたセル情報と、学習モデルと、に基づいて、文書Dのレイアウトを解析する(S106)。サーバ10は、ユーザ端末20に対し、文書Dのレイアウトの解析結果を送信する(S107)。ユーザ端末20は、文書Dのレイアウトの解析結果を受信し(S108)、本処理は終了する。
【0085】
第1実施形態のレイアウト解析システム1は、文書Dが示された文書画像Iの中から、複数のセルCを検出する。レイアウト解析システム1は、複数のセルCの各々の座標に基づいて、複数のセルCの各々の行及び列の少なくとも一方に関するセル情報を取得する。レイアウト解析システム1は、複数のセルCの各々のセル情報に基づいて、文書Dに関するレイアウトを解析する。これにより、文書画像Iにおける同じ行又は列に配置された構成要素の微妙な座標のずれが及ぼす影響を吸収できるので、レイアウト解析の精度が高まる。例えば、ある構成要素Aと、他の構成要素Bと、が本来は同じ行又は列に配置されていたとしても、構成要素AのセルCの座標と、構成要素BのセルCの座標と、の微妙なずれによって、構成要素A,Bが互いに異なる行又は列に配置されていると認識された場合には、レイアウト解析の精度が低下する可能性がある。この点、第1実施形態のレイアウト解析システム1は、構成要素A,Bが互いに同じ行又は列にあることを特定したうえで、レイアウトを解析できるので、レイアウト解析の精度が高まる。
【0086】
また、レイアウト解析システム1は、訓練用の文書に関する訓練用のレイアウトが学習された学習モデルに基づいて、レイアウトを解析する。学習済みの学習モデルを利用することによって、未知のレイアウトに対応できるようになる。例えば、セルCの座標がそのまま学習モデルに入力される場合には、同じ行又は列のセルC同士の微妙な座標のずれによって、学習モデルの内部で互いに異なる行又は列のセルCと認識される可能性があるが、学習モデルに入力する前に、同じ行又は列のセルCを特定することによって、このような座標のずれに起因するレイアウト解析の精度低下を防止できる。
【0087】
また、レイアウト解析システム1は、複数のセルCの各々のセル情報を所定の条件で並べて学習モデルに入力し、学習モデルによるレイアウトの解析結果を取得することによって、レイアウトを解析する。セル情報が並べられた入力データにすることによって、セル情報の互いの関係も学習モデルに考慮させてレイアウトを解析できるので、レイアウト解析の精度が高まる。例えば、学習モデルは、あるセルCの特徴と、その次に配置されたセルCの特徴と、の関係も考慮してレイアウトを解析できる。
【0088】
また、レイアウト解析システム1は、学習モデルは、Vision Transformerベースのモデルである。入力データに含まれる項目同士の関係を考慮しやすいVision Transformerを利用することによって、セル情報同士の関係を考慮しやすくなるので、レイアウト解析の精度が高まる。
【0089】
また、レイアウト解析システム1は、複数のセルCの各々の行の順序に基づいて、複数のセルCの各々のセル情報をソートして学習モデルに入力する。これにより、同じ行のセルC同士の関係性を学習モデルが認識しやすくなるので、レイアウト解析の精度が高まる。
【0090】
また、レイアウト解析システム1は、複数のセルCの各々の行の順序に基づいて、複数のセルの各々のセル情報をソートし、かつ、行が変わる部分に所定の行変化情報を挿入して学習モデルに入力する。これにより、学習モデルは、行変化情報によってどの部分で行が変わるのかを認識できるようになる。その結果、同じ行のセルC同士の関係性を学習モデルが認識しやすくなるので、レイアウト解析の精度が高まる。
【0091】
また、レイアウト解析システム1は、複数のセルCの各々の列の順序に基づいて、複数のセルCの各々のセル情報をソートして学習モデルに入力する。これにより、同じ列のセルC同士の関係性を学習モデルが認識しやすくなるので、レイアウト解析の精度が高まる。
【0092】
また、レイアウト解析システム1は、複数のセルCの各々の列の順序に基づいて、複数のセルCの各々のセル情報をソートし、かつ、列が変わる部分に所定の列変化情報を挿入して学習モデルに入力する。これにより、学習モデルは、列変化情報によってどの部分で行が変わるのかを認識できるようになる。その結果、同じ列のセルC同士の関係性を学習モデルが認識しやすくなるので、レイアウト解析の精度が高まる。
【0093】
また、レイアウト解析システム1は、複数のセルCの各々のy座標に基づいて、y軸方向における互いの距離が閾値未満であるセルC同士が同じ行になるように、複数のセルCの各々の行に関するセル情報を取得する。これにより、同じ行にあるセルCを精度よく特定できるようになる。
【0094】
また、レイアウト解析システム1は、複数のセルCの各々のx座標に基づいて、x軸方向における互いの距離が閾値未満であるセルC同士が同じ列になるように、複数のセルCの各々の列に関するセル情報を取得する。これにより、同じ列にあるセルCを精度よく特定できるようになる。
【0095】
また、レイアウト解析システム1は、文書画像Iに光学文字認識を実行することによって、複数のセルCを検出する。これにより、文字を含む文書Dのレイアウト解析の精度が高まる。
【0096】
[2.第2実施形態]
次に、レイアウト解析システム1の別実施形態である第2実施形態を説明する。第2実施形態では、マルチスケールに対応可能なレイアウト解析システム1を説明する。マルチスケールとは、複数のスケールの各々のセルCを検出することである。スケールとは、セルCを検出基準となる単位である。スケールは、セルCに含まれる文字の集まりということもできる。
【0097】
図10は、第2実施形態におけるスケールの一例を示す図である。第2実施形態では、スケールの一例として、トークンレベル及びワードレベルの2つを例に挙げる。
図10では、トークンレベルのセルC101~セルC121と、ワードレベルのセルC201~C233と、が示されている。セルC101~セルC121は、第1実施形態のセルC1~C21と同じである。以降、セルC101~C121,C201~C233を区別しない時は、単にセルCという。
図10の2つの文書画像Iは、互いに同じである。
【0098】
トークンレベルは、トークンをセルCの単位とするスケールである。トークンは、少なくとも1つの単語の集まりである。トークンは、フレーズということもできる。例えば、ある単語と、次の単語と、の間に空白が存在したとしても、1文字分のスペースであれば、これら2つの単語は、1つのトークンとして認識される。3つ以上の単語についても同様である。トークンレベルのセルCは、1つのトークンを含む。ただし、本来は1つのトークンだったとしても、文字間の微妙な空白によって、1つのトークンから複数のセルCが検出されることもある。第1実施形態で説明したセルCのスケールは、トークンレベルである。
【0099】
ワードレベルは、単語をセルCの単位とするスケールである。ワードレベルのセルCは、1つの単語を含む。ある文字と、次の文字と、の間に空白が存在した場合には、これらの文字の間の空白によって、単語が分けられる。トークンレベルと同様に、本来は1つの単語だったとしても、文字間の微妙な空白によって、1つの単語から複数のセルCが検出されることもある。文書Dに含まれる単語は、トークンレベルのセルCに属することもあるし、ワードレベルのセルCに属することもある。
【0100】
なお、スケール自体は、任意のレベルであってよく、トークンレベル及びワードレベルに限られない。例えば、スケールは、文書全体をセルCの単位とする文書レベル、テキストブロックをセルCの単位とするテキストブロックレベル、又はラインをセルCの単位とするラインレベルであってもよい。文書レベルのセルCは、1つの文書Dだけが文書画像Iに示されている場合には、文書画像Iから1つしか検出されない。テキストブロックは、ある一定程度の文章の集まりであり、例えば、段落である。ラインは、横書きの文書Dであれば行と同じ意味であり、縦書きの文書Dであれば列と同じ意味である。
【0101】
第2実施形態では、トークンレベルのセルC101~C121のセル情報と、ワードレベルのセルC201~C233のセル情報と、を含む入力データが学習モデルに入力される。レイアウト解析システム1は、ある単一のスケールのセルCではなく、複数のスケールの各々のセルCのセル情報に基づいて、文書Dのレイアウトを解析する。レイアウト解析システム1は、複数のスケールで複合的な解析をすることによって、レイアウト解析の精度を高めるようになっている。以降、第2実施形態の詳細を説明する。第2実施形態では、第1実施形態と同様の構成については説明を省略する。
【0102】
[2-1.第2実施形態で実現される機能]
図11は、第2実施形態で実現される機能の一例を示す図である。
【0103】
[2-1-1.サーバで実現される機能]
例えば、データ記憶部100、画像取得部101、セル検出部102、セル情報取得部103、レイアウト解析部104、処理実行部105、及び小領域情報取得部106を含む。小領域情報取得部106は、制御部11により実現される。
【0104】
[データ記憶部]
データ記憶部100は、概ね第1実施形態と同様である。第2実施形態のデータ記憶部100は、複数のスケールの各々に対応した光学文字認識ツールを記憶する。第2実施形態では、複数のスケールは、複数の単語を含むトークンをセルCの単位とするトークンレベルと、単語をセルCの単位とするワードレベルと、を含むので、データ記憶部は、トークンレベルでセルCを検出する光学文字認識ツールと、ワードレベルでセルCを検出する光学文字認識ツールと、を記憶する。これらは、複数の光学文字認識ツールに分けられていなくてもよく、1つの光学文字認識ツールが複数のスケールに対応していてもよい。
【0105】
なお、第2実施形態では、ワードレベルの光学文字認識ツールだけが利用されてもよい。この場合、トークンレベルのセルCは、ワードレベルのセルCがグループ化されることによって検出されてもよい。例えば、セル検出部102は、ワードレベルのセルCのうち、同じ行の隣接するセルC同士をグループ化し、トークンレベルの1つのセルCとして検出してもよい。同様に、セル検出部102は、ワードレベルのセルCのうち、同じ列の隣接するセルC同士をグループ化し、トークンレベルの1つのセルCとして検出してもよい。このように、セル検出部102は、あるスケールのセルCをグループ化することによって、他のスケールのセルCを検出してもよい。
【0106】
図12は、第2実施形態における学習モデルの入力と出力の関係の一例を示す図である。第2実施形態の訓練データは、トークンレベルのセル情報、ワードレベルのセル情報、及び小領域情報を含む。トークンレベルのセル情報は、行でソートされたセル情報と、列でソートされたセル情報と、を含む。第2実施形態の訓練データのうち、トークンレベルのセル情報の部分は、
図5で説明した第1実施形態の訓練データと同様である。
【0107】
図12のワードレベルのセル情報は、ワードレベルという点でトークンレベルのセル情報とは異なるが、他の点については同様である。このため、第2実施形態の訓練データのうち、ワードレベルのセル情報の部分は、行でソートされたセル情報の後に、列でソートされたセル情報が並べられている。ワードレベルのセル情報も、列でソートされたセル情報の後に、行でソートされたセル情報が並べられていてもよい。小領域情報は、訓練画像が複数に分割された小領域に関する情報である。小領域情報の詳細は、後述する。
【0108】
第2実施形態では、学習モデルに対する入力データは、サイズが予め定められている。更に、入力データにおけるワードレベルのセル情報、トークンレベルのセル情報、及び小領域情報の各々のサイズも予め定められている。例えば、入力データ全体は、a(aは任意の正数。例えば、a=100。)個分の情報が並べられる。ワードレベルの部分は、b(bは、aよりも小さく、かつ、後述のcよりも大きい正数。例えば、b=50。)個分の情報が並べられる。トークンレベルの部分は、c(cは、bよりも小さい正数。例えば、c=30。)個分の情報が並べられる。小領域情報の部分は、a-b-c(例えば、20)個分の情報が並べられる。
【0109】
なお、入力データは、情報の個数ではなく、ビット数が定められていてもよい。例えば、入力データ全体は、d(dは任意の正数。例えば、d=1000。)ビット分の情報が並べられる。ワードレベルの部分は、e(eは、dよりも小さく、かつ、後述のfよりも大きい正数。例えば、b=500。)ビット分の情報が並べられる。トークンレベルの部分は、f(fは、eよりも小さい正数。例えば、f=300。)ビット分の情報が並べられる。小領域情報の部分は、d-e-f(例えば、200)ビット分の情報が並べられるようにしてもよい。
【0110】
[画像取得部]
画像取得部101は、第1実施形態と同様である。
【0111】
[セル検出部]
セル検出部102がセルCを検出する基本的な処理自体は、第1実施形態と同様であるが、第2実施形態では、マルチスケールに対応している点で第1実施形態とは異なる。セル検出部102は、複数の構成要素を含む文書Dが示された文書画像Iの中から、複数のスケールの各々のセルCを検出する。例えば、セル検出部102は、トークンレベルの光学文字認識ツールに基づいて、1つのトークンが1つのセルCに含まれるように、文書画像Iの中から、トークンレベルの複数のセルCを検出する。トークンレベルのセルCの検出方法は、第1実施形態で説明した通りである。
【0112】
例えば、セル検出部102は、ワードレベルの光学文字認識ツールに基づいて、1つの単語が1つのセルCに含まれるように、文書画像Iの中から、ワードレベルの複数のセルCを検出する。ワードレベルのセルCが検出される点でトークンレベルのセルCの検出とは異なるが、他の点については同様である。ワードレベルの形態素解析ツールは、単語を含むセルCごとに、セル画像、セルCに含まれる単語、セルCの左上の座標、セルCの右下の座標、セルCの横幅、及びセルCの縦幅を出力するものとする。セル検出部102は、光学文字認識ツールからの出力を取得することによって、ワードレベルのセルCを検出する。
【0113】
なお、文書Dの構成要素によっては、セル検出部102は、複数の構成要素のうちの少なくとも1つが、互いに異なるスケールのセルCに含まれるように、複数のスケールの各々のセルCを検出することもある。
図10の例であれば、構成要素「XYZ」は、トークンレベルのセルC100にも含まれるし、ワードレベルのセルC200にも含まれる。他の構成要素についても同様に、トークンレベルのセルCと、ワードレベルのセルCと、の両方に含まれることがある。
【0114】
また、1つの光学文字認識ツールがトークンレベル及びワードレベルの両方に対応している場合には、セル検出部102は、1つの光学文字認識ツールから、トークンレベルのセルCに関する出力と、ワードレベルのセルCに関する出力と、を取得すればよい。トークンレベル及びワードレベル以外の他のスケールが利用される場合には、セル検出部102は、当該他のスケールのセルCを検出すればよい。
【0115】
例えば、文書レベルのスケールが利用される場合には、セル検出部102は、文書D全体を示すセルCを検出する。この場合、セル検出部102は、光学文字認識ツールではなく、文書Dの輪郭を抽出する輪郭抽出処理に基づいて、文書レベルのセルCを検出してもよい。例えば、テキストブロックレベルのスケールが利用される場合には、セル検出部102は、テキストブロックレベルに対応した光学文字認識ツールからの出力を取得することによって、テキストブロックレベルのセルCを検出すればよい。例えば、ラインレベルのスケールが利用される場合には、セル検出部102は、ラインレベルに対応した光学文字認識ツールからの出力を取得することによって、ラインレベルのセルCを検出すればよい。
【0116】
[セル情報取得部]
セル情報取得部103がセル情報を取得する方法自体は、第1実施形態と同様であるが、第2実施形態では、セル情報取得部103は、複数のスケールの各々のセルCに関するセル情報を取得する。セル情報に含まれる項目自体は、第1実施形態と同様であってよい。第2実施形態では、セル情報には、複数のスケールのうちのどのスケールなのかを識別可能な情報が含まれていてもよい。第2実施形態でも、第1実施形態と同様、セル情報取得部103は、セルCの行番号及び列番号を特定してセル情報に含めるものとする。
【0117】
第2実施形態では、セル情報取得部103は、複数のスケールのうち、複数の単語をセルCの単位とするスケールについては、複数の単語のうちの何れかに基づいて、セル情報を取得する。例えば、トークンレベルのセルCには、複数の単語が含まれることもある。セル情報取得部103は、トークンに含まれる複数の単語の情報をセル情報に含めてもよいが、複数の単語のうちの1つ目の単語のみをセル情報に含めるものとする。セル情報取得部103は、複数の単語のうちの1つ目の単語ではなく、2つ目以降の単語のみをセル情報に含めてもよい。
【0118】
[小領域情報取得部]
小領域情報取得部106は、予め定められた分割位置に基づいて、文書画像Iを複数の小領域に分割し、当該複数の小領域の各々に関する小領域情報を取得する。分割位置は、小領域の境界を示す位置である。小領域は、文書画像Iの一部の領域である。第2実施形態では、全ての小領域が同じサイズである場合を例に挙げるが、小領域のサイズが互いに異なってもよい。
【0119】
図13は、小領域の一例を示す図である。
図13では、分割位置が文書画像I上に破線で示されている。例えば、小領域情報取得部106は、文書画像Iを、x軸方向及びy軸方向の各々で3等分することによって、3×3の9個の小領域SA1~SA9に分割する。以降、小領域SA1~SA9を区別しない時は、単に小領域SAという。小領域情報取得部106は、小領域SAごとに、当該小領域SAに関する小領域情報を取得する。
【0120】
第2実施形態では、小領域情報に含まれる項目は、セル情報と同様であるものとするが、小領域情報に含まれる項目と、セル情報に含まれる項目と、は互いに異なってもよい。例えば、小領域情報には、小領域ID、小領域画像、文字列、左上の座標、右下の座標、横幅、縦幅、行番号、及び列番号が含まれる。小領域IDは、小領域SAを識別可能な情報である。小領域画像は、文書画像Iのうち、小領域SA内の部分である。文字列は、小領域SAに含まれる少なくとも1つの文字である。小領域SA内の文字は、光学文字認識によって取得される。セル情報と同様、小領域情報に含まれる小領域画像及び文字は、特徴量化されていてもよい。
【0121】
なお、小領域SAを取得するための分割位置は、予め定められているので、左上の座標、右下の座標、横幅、縦幅、行番号、及び列番号は、予め定められた値になる。小領域SAの数は、任意の数であってよく、
図13のような9個に限られない。例えば、小領域情報取得部106は、2個~8個又は10個以上の小領域SAに分割してもよい。小領域SAが2個~8個又は10個以上である場合も同様に、小領域情報取得部106は、小領域SAごとに小領域情報を取得すればよい。
【0122】
[レイアウト解析部]
レイアウト解析部104は、複数のスケールの各々のセル情報に基づいて、文書Dに関するレイアウトを解析する。第2実施形態では、レイアウト解析部104は、訓練用の文書Dに関する訓練用のレイアウトが学習された学習モデルに基づいて、レイアウトを解析する。第1実施形態と同様に、学習モデルの一例として、Vision Transformerベースのモデルを説明する。
【0123】
学習モデルには、訓練用に取得された複数のスケールの各々のセル情報と、訓練用のレイアウトと、の関係が学習されている。レイアウト解析部104は、複数のスケールの各々のセル情報を学習モデルに入力する。学習モデルは、複数のスケールの各々のセル情報を特徴量化し、当該特徴量に応じたレイアウトを出力する。特徴量の詳細は、第1実施形態で説明した通りである。レイアウト解析部104は、学習モデルから出力されたレイアウトを取得することによって、レイアウトを解析する。
【0124】
図14は、第2実施形態におけるレイアウト解析の一例を示す図である。例えば、レイアウト解析部104は、複数のスケールの各々のセル情報を所定の条件で並べて学習モデルに入力し、学習モデルによるレイアウトの解析結果を取得することによって、レイアウトを解析する。第2実施形態では、第1実施形態と同様、レイアウト解析部104は、行でセル情報をソートした後に、列でセル情報をソートする。レイアウト解析部104は、これらのソートを、スケールごとに行う。レイアウト解析部104は、複数のスケールの各々のセル情報を並べることによって入力データを取得し、学習モデルに入力データを入力する。学習モデルは、時系列データの特徴ベクトルを計算し、当該特徴ベクトルに応じたレイアウトを出力する。
【0125】
例えば、レイアウト解析部104は、第1スケールの複数のセル情報が所定の条件で並べられ、かつ、その後に第2スケールの複数のセル情報が所定の条件で並べられた入力データを、学習モデルに入力することによって、レイアウトを解析する。
図14の例では、レイアウト解析部104は、第1スケールの一例であるトークンレベルのセル情報が並べられた後に、第2スケールの一例であるワードレベルのセル情報が並べられた時系列データを、学習モデルに入力する。なお、第1スケールと第2スケールは、第2実施形態の例に限られない。例えば、レイアウト解析部104は、第1スケールの一例であるワードレベルのセル情報が並べられた後に、第2スケールの一例であるトークンレベルのセル情報が並べられた時系列データを、学習モデルに入力してもよい。
【0126】
図14の例では、入力データ全体のうち、ワードレベルのセル情報の部分には、ワードレベルのセルC201~C232のセル情報が行でソートされた後に、ワードレベルのセルC201~C232のセル情報が列でソートされている。入力データ全体のうち、トークンレベルのセル情報の部分には、トークンレベルのセルC101~C121のセル情報が行でソートされた後に、トークンレベルのセルC101~C121のセル情報が列でソートされている。これらのソートの条件が行及び列に限られない点は、第1実施形態で説明した通りである。セル情報は、他の条件でソートされてもよい。その後に、小領域SA1~SA9の小領域情報が並べられている。
【0127】
第2実施形態では、レイアウト解析部104は、スケールのサイズが小さいほど、データサイズが大きくなるように、複数のスケールの各々のデータサイズが定義された入力データに、複数のスケールの各々のセル情報を順序で並べて学習モデルに入力する。
図14の例では、ワードレベルは、トークンレベルよりもサイズが小さいので、ワードレベルのセルCの数は、トークンレベルのセルCの数よりも多くなる可能性が高い。このため、時系列データのフォーマットは、トークンレベルよりもワードレベルの方が、データサイズが大きくなっている。なお、ここでのサイズとは、セルCとして検出する語の単位である。セルCに含まれる語が多いほど、サイズが大きくなる。
【0128】
例えば、レイアウト解析部104は、複数のスケールの各々のセル情報の合計サイズが、学習モデルへの入力データに定められた標準サイズに足りない場合には、合計サイズが標準サイズに足りない分をパティングで置き換えた入力データに、複数のスケールの各々のセル情報を順序で並べて学習モデルに入力する。
図14の例では、レイアウト解析部104は、ワードレベルのフォーマットにデータサイズが足りない場合には、その分だけパティングで置き換える。パティングは、空のデータであることを示す所定の文字列である。パティングによって、入力データは、所定のサイズを有する。
【0129】
例えば、レイアウト解析部104は、複数のスケールの各々のセル情報と、複数の小領域の各々の小領域情報と、に基づいて、レイアウトを解析する。
図14の例では、レイアウト解析部104は、セル情報だけではなく、小領域情報も入力データに含める。
図14の例では、セル情報の後に小領域情報が配置されているが、小領域情報の後にセル情報が配置されてもよい。学習モデルは、入力データを特徴量化し、特徴量に応じたレイアウトを出力する。特徴量の計算では、入力データにおけるセル情報の並び(セル情報同士のつながりと小領域情報同士のつながり)も考慮される。
【0130】
なお、入力データには、ワードレベルのセル情報の後にトークンレベルのセル情報が配置されるのではなく、ワードレベルのセル情報と、トークンレベルのセル情報と、が交互に並べられてもよい。入力データには、複数のスケールの各々のセル情報が予め定められたルールで並べられるようにすればよい。また、Vision Transformer以外の他の機械学習手法が利用される場合には、レイアウト解析部104は、他の機械学習手法の学習モデルに入力可能な形式のデータとして、セル情報及び小領域情報を含む入力データを学習モデルに入力すればよい。
【0131】
[処理実行部]
処理実行部105は、第1実施形態と同様である。
【0132】
[2-1-2.ユーザ端末で実現される機能]
ユーザ端末20の機能は、第1実施形態と同様である。
【0133】
[2-2.第2実施形態で実行される処理]
図15は、第2実施形態で実行される処理の一例を示す図である。S200及びS201の処理は、それぞれS100及びS101と同様である。サーバ10は、文書画像Iに光学文字認識を実行し、複数のスケールの各々のセルCを検出する(S202)。S203~S205の処理は、それぞれS103~S105の処理と同様である。サーバ10は、全てのスケールの処理を実行したかを判定する(S206)。まだ処理を実行していないスケールが存在する場合(S206:N)、S203~S205の処理が実行される。
【0134】
全てのスケールについて処理を実行したと判定された場合(S206:Y)、サーバ10は、文書画像Iを複数の小領域SAに分割し(S207)、小領域情報を取得する(S208)。サーバ10は、複数のスケールの各々のセル情報と、複数の小領域SAの各々の小領域情報と、を含む入力データを学習モデルに入力し、レイアウトを解析する(S209)。続くS210及びS211の処理は、それぞれS108及びS109の処理と同様である。
【0135】
第2実施形態のレイアウト解析システム1は、文書画像Iの中から、複数のスケールの各々のセルCを検出する。レイアウト解析システム1は、複数のスケールの各々のセルCに関するセル情報を取得する。レイアウト解析システム1は、複数のスケールの各々のセル情報に基づいて、文書に関するレイアウトを解析する。これにより、複数のスケールの各々のセルCを複合的に考慮して文書Dのレイアウトを解析できるので、レイアウト解析の精度が高まる。
【0136】
また、レイアウト解析システム1は、訓練用の文書に関する訓練用のレイアウトが学習された学習モデルに基づいて、レイアウトを解析する。学習済みの学習モデルを利用することによって、未知のレイアウトに対応できるようになる。
【0137】
また、レイアウト解析システム1は、複数のスケールの各々のセル情報を所定の条件で並べて学習モデルに入力し、学習モデルによるレイアウトの解析結果を取得することによって、レイアウトを解析する。セル情報が並べられた入力データにすることによって、セル情報の互いの関係も学習モデルに考慮させてレイアウトを解析できるので、レイアウト解析の精度が高まる。例えば、学習モデルは、あるセルCの特徴と、その次に配置されたセルCの特徴と、の関係も考慮してレイアウトを解析できる。
【0138】
また、レイアウト解析システム1は、学習モデルは、Vision Transformerベースのモデルである。入力データに含まれる項目同士の関係を考慮しやすいVision Transformerを利用することによって、セル情報同士の関係を考慮しやすくなるので、レイアウト解析の精度が高まる。
【0139】
また、レイアウト解析システム1は、第1スケールの複数のセル情報が所定の条件で並べられ、かつ、その後に第2スケールの複数のセル情報が所定の条件で並べられた入力データを、学習モデルに入力することによって、レイアウトを解析する。これにより、あるスケールにおけるセルC同士の関係を学習モデルに考慮させてレイアウトを解析できるので、レイアウト解析の精度が高まる。
【0140】
また、レイアウト解析システム1は、スケールのサイズが小さいほど、データサイズが大きくなるように、複数のスケールの各々のデータサイズが定義された入力データに、複数のスケールの各々のセル情報を順序で並べて学習モデルに入力する。これにより、スケールのサイズが小さいほどセルCが多くなりがちなので、入力データのフォーマットに収まらないといったことを防止できる。
【0141】
また、レイアウト解析システム1は、複数のスケールの各々のセル情報の合計サイズが、学習モデルへの入力データに定められた標準サイズに足りない場合には、合計サイズが標準サイズに足りない分をパティングで置き換えた入力データに、複数のスケールの各々のセル情報を順序で並べて学習モデルに入力する。これにより、所定のデータサイズの入力データにすることができるので、レイアウト解析の精度が高まる。
【0142】
また、レイアウト解析システム1は、複数のスケールのうち、複数の単語をセルCの単位とするスケールについては、複数の単語のうちの何れかに基づいて、セル情報を取得する。これにより、レイアウト解析の処理を簡易化できる。
【0143】
また、レイアウト解析システム1は、複数の構成要素のうちの少なくとも1つが、互いに異なるスケールのセルCに含まれるように、複数のスケールの各々のセルCを検出する。これにより、ある1つの構成要素を複数の観点で解析できるので、レイアウト解析の精度が高まる。
【0144】
また、レイアウト解析システム1は、複数のスケールの各々のセル情報と、複数の小領域SAの各々の小領域情報と、に基づいて、レイアウトを解析する。これにより、複数のスケールだけではなく、他の要素も考慮してレイアウトを解析できるので、レイアウト解析の精度が高まる。
【0145】
また、レイアウト解析システム1は、複数のスケールは、複数の単語を含むトークンをセルCの単位とするトークンレベルと、単語をセルCの単位とするワードレベルと、を含む。これにより、トークンレベルとワードレベルを複合的に考慮できるので、レイアウト解析の精度が高まる。
【0146】
また、レイアウト解析システム1は、文書画像Iに光学文字認識を実行することによって、複数のセルCを検出する。これにより、文字を含む文書Dのレイアウト解析の精度が高まる。
【0147】
[3.変形例]
なお、本開示は、以上に説明した第1実施形態及び第2実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0148】
[3-1.第1実施形態に関する変形例]
図16は、第1実施形態に関する変形例における機能の一例を示す図である。第1実施形態に関する変形例では、サーバ10は、第1閾値決定部107及び第2閾値決定部108を含む。第1閾値決定部107及び第2閾値決定部108は、制御部11により実現される。
【0149】
[変形例1-1]
例えば、第1実施形態では、同じ行及び同じ列を特定するための閾値が固定値である場合を説明したが、この閾値は、文書D全体のサイズに基づいて決定されてもよい。レイアウト解析システム1は、第1閾値決定部107を含む。第1閾値決定部107は、文書D全体のサイズに基づいて、閾値を決定する。文書D全体のサイズとは、文書D全体の縦幅及び横幅の少なくとも一方である。文書画像Iのうち文書D全体が示された領域は、輪郭検出処理によって特定されるようにすればよい。第1閾値決定部107は、文書画像Iのうち、最も大きな四角形の輪郭を、文書D全体の領域として特定する。
【0150】
例えば、第1閾値決定部107は、文書D全体のサイズが大きいほど、閾値が大きくなるように、閾値を決定する。文書D全体のサイズと、閾値と、の関係は、予めデータ記憶部100に記録されているものとする。この関係は、数式形式のデータ、テーブル形式のデータ、又はプログラムコードの一部に定義されているものとする。第1閾値決定部107は、文書D全体のサイズに関連付けられた閾値となるように、閾値を決定する。
【0151】
例えば、第1閾値決定部107は、文書Dの縦幅が長いほど、同じ行を特定するための閾値が大きくなるように、この閾値を決定する。第1閾値決定部107は、文書Dの横幅が長いほど、同じ列を特定するための閾値が大きくなるように、この閾値を決定する。なお、第1閾値決定部107は、同じ行を特定するための閾値と、同じ列を特定するための閾値と、の少なくとも一方を決定すればよい。第1閾値決定部107は、同じ行を特定するための閾値と、同じ列を特定するための閾値と、の両方ではなく、何れか一方のみを決定してもよい。
【0152】
変形例1-1のレイアウト解析システム1は、文書D全体のサイズに基づいて、閾値を決定する。これにより、行及び列を特定するために最適な閾値を設定できるので、レイアウト解析の精度が高まる。
【0153】
[変形例1-2]
例えば、文書D全体ではなく、セルCのサイズに応じた閾値が設定されてもよい。レイアウト解析システム1は、第2閾値決定部108を含む。第2閾値決定部108は、複数のセルの各々のサイズに基づいて、閾値を決定する。セルCのサイズとは、セルCの縦幅及び横幅の少なくとも一方である。例えば、第2閾値決定部108は、セルCのサイズが大きいほど、閾値が大きくなるように、閾値を決定する。
【0154】
例えば、セルCのサイズと、閾値と、の関係は、予めデータ記憶部100に記録されているものとする。この関係は、数式形式のデータ、テーブル形式のデータ、又はプログラムコードの一部に定義されているものとする。第2閾値決定部108は、セルCのサイズに関連付けられた閾値となるように、閾値を決定する。
【0155】
例えば、第2閾値決定部108は、あるセルCの縦幅が長いほど、このセルCと同じ行を特定するための閾値が大きくなるように、この閾値を決定する。第2閾値決定部107は、あるセルCの横幅が長いほど、このセルCと同じ列を特定するための閾値が大きくなるように、この閾値を決定する。なお、第2閾値決定部108は、同じ行を特定するための閾値と、同じ列を特定するための閾値と、の少なくとも一方を決定すればよい。第2閾値決定部108は、同じ行を特定するための閾値と、同じ列を特定するための閾値と、の両方ではなく、何れか一方のみを決定してもよい。
【0156】
変形例1-2のレイアウト解析システム1は、複数のセルCの各々のサイズに基づいて、閾値を決定する。これにより、行及び列を特定するために最適な閾値を設定できるので、レイアウト解析の精度が高まる。
【0157】
[第1実施形態に関するその他の変形例]
例えば、第1実施形態では、
図8のように、行でソートされたセル情報の後に、列でソートされたセル情報が配置された入力データが、1つの学習モデルに入力される場合を説明した。行でソートされたセル情報に基づいて文書Dのレイアウトを解析するための第1学習モデルと、列でソートされたセル情報に基づいて文書Dのレイアウトを解析するための第2学習モデルと、が別々に用意されていてもよい。
【0158】
例えば、第1学習モデルには、訓練画像から検出されたセルのセル情報が行でソートされた入力データと、訓練画像に示された訓練用の文書のレイアウトと、の関係を示す訓練データが学習されている。レイアウト解析部104は、文書画像Iから検出されたセルCのセル情報を行でソートした入力データを、学習済みの第1学習モデルに入力する。第1学習モデルは、当該入力データを特徴量化し、特徴量に応じたレイアウトを出力する。レイアウト解析部104は、第1学習モデルからの出力を取得することによって、レイアウトを解析する。
【0159】
例えば、第2学習モデルには、訓練画像から検出されたセルのセル情報が列でソートされた入力データと、訓練画像に示された訓練用の文書のレイアウトと、の関係を示す訓練データが学習されている。レイアウト解析部104は、文書画像Iから検出されたセルCのセル情報を列でソートした入力データを、学習済みの第2学習モデルに入力する。第2学習モデルは、当該入力データを特徴量化し、特徴量に応じたレイアウトを出力する。レイアウト解析部104は、第2学習モデルからの出力を取得することによって、レイアウトを解析する。
【0160】
例えば、レイアウト解析部104は、第1学習モデル及び第2学習モデルの両方に基づいてレイアウトを解析するのではなく、第1学習モデル又は第2学習モデルの何れか一方のみに基づいてレイアウトを解析してもよい。即ち、レイアウト解析部104は、文書画像Iから検出したセルCの行又は列の何れか一方のみに基づいて、文書Dのレイアウトを解析してもよい。
【0161】
例えば、第1実施形態では、機械学習手法を利用した学習モデルに基づいて、文書Dのレイアウトが解析される場合を説明したが、機械学習手法以外の手法を利用して、文書Dのレイアウトが解析されてもよい。例えば、第1実施形態において、見本となる文書の画像から検出されたセルの行及び列の少なくとも一方の並びのパターンと、文書画像Iから検出されたセルCの行及び列の少なくとも一方の並びのパターンと、の類似度が計算されることによって、文書Dのレイアウトが解析されてもよい。
【0162】
[3-2.第2実施形態に関する変形例]
例えば、レイアウト解析システム1は、第2実施形態で説明した複数のスケールに関する機能だけを含み、第1実施形態で説明した行及び列に関する機能を含まなくてもよい。第2実施形態では、第1実施形態と同様に、行及び列でセル情報がソートされる場合を説明したが、第2実施形態では、第1実施形態で説明した機能が含まれなくてもよい。このため、第2実施形態では、行及び列でセル情報がソートされることなく、複数のスケールの各々のセルCのセル情報が時系列データの中で並べられてもよい。この場合、行及び列ではない条件でセル情報がソートされるようにすればよい。例えば、第2実施形態では、小領域情報がレイアウト解析で利用されなくてもよい。
【0163】
例えば、第2実施形態では、機械学習手法を利用した学習モデルに基づいて、文書Dのレイアウトが解析される場合を説明したが、機械学習手法以外の手法を利用して、文書Dのレイアウトが解析されてもよい。例えば、第2実施形態において、文書画像Iから検出された複数のスケールの各々のセルCのセル情報を含む入力データと、見本となる文書の画像から検出された複数のスケールの各々のセルのセル情報を含む入力データと、の類似度が計算されることによって、文書Dのレイアウトが解析されてもよい。
【0164】
[3-3.その他の変形例]
例えば、上記変形例を組み合わせてもよい。
【0165】
例えば、第1実施形態及び第2実施形態では、サーバ10で主な処理が実行される場合を説明したが、サーバ10で実行されるものとして説明した処理は、ユーザ端末20又は他のコンピュータで実行されてもよいし、複数のコンピュータで分担されてもよい。
【要約】
レイアウト解析システム(1)のセル検出部(102)は、複数の構成要素を含む文書が示された文書画像の中から、複数のスケールの各々のセルを検出する。セル情報取得部(103)は、複数のスケールの各々のセルに関するセル情報を取得する。レイアウト解析部(104)は、複数のスケールの各々のセル情報に基づいて、文書に関するレイアウトを解析する。