LayerX エンジニアブログ

LayerX の エンジニアブログです。

バクラクのデータセットを用いた項目領域推定とレイアウト情報の重要性

こんにちは。機械学習エンジニアの上川です。本記事では、バクラクのデータを用いて書類上の項目領域を推定する物体検出モデルを構築し、項目領域の推定におけるレイアウト情報の重要性について考察を行ったので、その紹介をします。

AI-OCRにおけるレイアウト情報の重要性

弊社のバクラクにはAI-OCRという機能があり、請求書や領収書などの書類から支払い金額や書類日付、取引先名などの項目内容をサジェストすることによって、お客様が手入力する手間を省いています。 この過程では、書類上のどこにどのような項目が存在するのかを推定することが必要です。

そのため、書類から項目の領域を推定する際に、単に文字を認識するだけでなく、書類のレイアウトを理解することがAI-OCRにおいて非常に重要です。

支払い金額、書類日付、取引先名などの項目が、様々なレイアウトの書類においてどこに配置されうるのかという傾向を正確に把握することによって、より精度の高い項目抽出が可能になると考えられます。

物体検出による項目領域推定

レイアウトを考慮するモデルとして、最近ではLayoutLMシリーズなどの画像とテキストの情報を用いるマルチモーダルなモデルも利用可能となっており、過去のエンジニアブログでも紹介しています。

tech.layerx.co.jp

tech.layerx.co.jp

しかし、今回は画像つまりレイアウト情報が、項目領域の推定に対してどのように寄与するのかを検証します。そのためテキスト情報は利用せず画像(レイアウト情報)だけを考慮するような物体検出モデルを用いて項目領域の推定を行います。

物体検出モデルの学習にはバクラクのデータを用いました。バクラクのデータには、書類の画像データと支払い金額、書類日付、取引先名の各項目が画像上のどこに存在しているかを示すbounding boxの情報が含まれています。

これらのデータを画像認識タスクでよく用いられるMS COCO形式のデータセットにパースし、学習を行いました。自前のデータをMS COCO形式にパースし、物体検出モデルを構築する方法に関してはこちらのブログで紹介しています。

tech.layerx.co.jp

以下、サンプルの請求書に対して支払い金額、書類日付、取引先名の3つの項目領域を推定した結果です。

物体検出による支払い金額、書類日付、取引先の推定結果

まず、支払い金額(PaymentAmount)ですが、物体検出モデルは2箇所を推定しています。どちらも「¥110,000」とテキストだけでみると正解なのですが、確信度が高いのは「ご請求金額」と「合計金額」のうち「ご請求金額」となっております。学習データセットの教師データとして、お客様が実際に入力した値(場所含む)を一部使用しており、正解が複数になりうる場合に文字が大きかったり目立ちやすい場所が正解として選ばれることが多いという傾向があります。したがって、この推論結果は妥当といえます。 書類日付(documentDate)は、この請求書だと発行された日付なので正しいです。 そして、取引先名(clientName)ですが、この請求書には「株式会社LayerX」と「サンプル産業株式会社」という2つの会社名が存在しています。請求書を受け取る側からみると「株式会社LayerX」が正解ですし、請求書を発行する側からみると「サンプル産業株式会社」が正解となります。

2つの金額「¥110,000」と2つの会社名(「株式会社LayerX」と「サンプル産業株式会社」)のテキストだけを比較すると、それぞれどちらが正解になってもおかしくはありませんが、物体検出の推定結果(確信度)に大きな差があります。

この結果から、テキストとしての意味は同じでも、書類上のレイアウトのどこにテキストが存在するかというところで、大きく意味が変わってくることがわかりました。また、レイアウトを理解することが項目領域の推定において非常に重要であると考えられます。

項目領域の推定根拠

物体検出モデルの推定結果から項目領域の推定においてレイアウトが重要なことがわかりましたが、実際にレイアウトのどの要素を推定の根拠にしているのかを可視化してみます。

推定根拠を可視化するために、Grad-CAM++(Gradient-weighted Class Activation Mapping Plus Plus)という手法を使用します。 Grad-CAM++は、畳み込みニューラルネットワーク(CNN)の判断根拠を可視化するための手法です。この手法は、モデルが特定のクラス(インスタンス)を判別する際に、入力画像のどの部分に注目しているかをheatmapとして表示します。

こちらの2つの画像は画像分類タスクにおいて、モデルが犬と猫をそれぞれ判別した時の推定根拠です。

このようにモデルが予測をする際の判断根拠を可視化することができます。

Grad-CAM++を使用して、先ほどの請求書サンプルに対する物体検出モデルの推定根拠を可視化しました。以下は、支払い金額、書類日付、取引先名それぞれの項目に対する可視化結果です。

支払い金額

書類日付

取引先名

項目領域推定における推定根拠については、例に挙げた犬と猫の分類のように局所的な要素を根拠として推定しているわけではなく、画像全体を広く根拠にしつつ推定しているという結果になりました。

人によって解釈は異なると思いますが、項目領域の推定において書類のレイアウトが重要であるという仮説を踏まえると、犬と猫の分類の推定根拠と比較して、画像全体を根拠に推定を行なっているというのは比較的直感的な結果かなと思います。 少なくとも2つの金額「¥110,000」のうち、合計金額ではなくご請求金額の方を確信度高く推定するという挙動には、画像の局所的な要素だけではなく、大域的なレイアウト情報が必要だと考えられます。

まとめ

本記事では、AI-OCRにおけるレイアウト情報の重要性について考察し、以下の点を明らかにしました。

  • 物体検出モデルを用いた実験により、テキスト内容が同じでもレイアウト上の位置によって項目の意味が大きく変わること
  • 書類からの項目抽出において、単なる文字認識だけでなく、レイアウトの理解が重要であること
  • Grad-CAM++を用いた可視化により、物体検出モデルが項目領域を推定する際、局所的な特徴だけでなく、書類全体のレイアウトを考慮している可能性があること

書類のレイアウト情報を理解することは書類を対象としたタスクの精度向上に寄与し、より効果的な情報抽出の実現につながると考えられます。 今回は画像を入力としレイアウト情報を暗黙的に考慮するモデルの物体検出モデルを構築しましたが、今後はレイアウト情報を明示的に扱う手法など、さらなる研究開発を期待しています。