Amazon TextractによるPDFドキュメントの前処理:ビジュアルの検出と削除

ソースノード: 1204412

アマゾンテキストラック は、スキャンされたドキュメントから印刷されたテキスト、手書き、その他のデータを自動的に抽出するフルマネージドの機械学習(ML)サービスであり、単純な光学式文字認識(OCR)を超えて、フォームやテーブルからデータを識別、理解、抽出します。 Amazon Textractは、財務報告、医療記録、税務フォームなど、さまざまなドキュメントのテキストを検出できます。

多くのユースケースでは、ロゴ、写真、チャートなど、さまざまなビジュアルを使用してドキュメントを抽出して分析する必要があります。 これらのビジュアルには、Amazon Textractの出力を複雑にする、またはダウンストリームプロセスに必要のない埋め込みテキストが含まれています。 たとえば、多くの不動産評価フォームやドキュメントには、住宅の写真や過去の価格の傾向が含まれています。 この情報はダウンストリームプロセスでは必要ありません。AmazonTextractを使用してドキュメントを分析する前に、この情報を削除する必要があります。 この投稿では、前処理の一部としてこれらのビジュアルを削除するXNUMXつの効果的な方法を説明します。

ソリューションの概要

この投稿では、例としてロゴとチャートを含むPDFを使用します。 XNUMXつの異なるタイプのプロセスを使用して、これらのビジュアルを変換および検出してから、編集します。

最初の方法では、OpenCVライブラリのキャニーエッジ検出器を使用して、ビジュアルのエッジを検出します。 XNUMX番目の方法では、これらのビジュアルの場所を検出するカスタムピクセル濃度アナライザーを作成します。

これらのビジュアルを抽出してさらに処理し、ユースケースに合わせてコードを簡単に変更できます。

検索可能なPDFは、通常、テキストプロセッサ、仮想PDFプリンタ、ネイティブエディタなどの他のアプリケーションによって生成されるネイティブPDFファイルです。 これらのタイプのPDFは、ドキュメント内にメタデータ、テキスト、および画像情報を保持します。 次のようなライブラリを簡単に使用できます PyMuPDF / fitz PDF構造をナビゲートし、画像とテキストを識別します。 この投稿では、検索不可能なドキュメントまたは画像ベースのドキュメントに焦点を当てます。

オプション1:OpenCVエッジ検出器を使用したビジュアルの検出

このアプローチでは、PDFをPNG形式に変換してから、ドキュメントをグレースケールします。 OpenCV-Python ライブラリを作成し、Canny EdgeDetectorを使用して視覚的な場所を検出します。 次の詳細な手順に従うことができます ノート.

  1. ドキュメントをグレースケールに変換します。

  1. Canny Edgeアルゴリズムを適用して、Canny-Edgedドキュメントの輪郭を検出します。
  2. 関連する寸法の長方形の輪郭を特定します。

ユースケースに応じて、いくつかのパラメータをさらに調整および最適化して、検出精度を高めることができます。

  • 最小の高さと幅 –これらのパラメーターは、視覚的検出の最小の高さと幅のしきい値を定義します。 ページサイズのパーセンテージで表されます。
  • パディング –長方形の輪郭が検出された場合、編集するページの総領域にある程度の柔軟性を持たせるために、追加のパディング領域を定義します。 これは、ビジュアル内のテキストが明確に区切られた長方形の領域内にない場合に役立ちます。

長所と短所

このアプローチには、次の利点があります。

  • ほとんどのユースケースを満たします
  • 実装は簡単で、すぐに起動して実行できます
  • その最適なパラメータは良い結果をもたらします

ただし、このアプローチには次の欠点があります。

  • バウンディングボックスや周囲のエッジがないビジュアルの場合、パフォーマンスはビジュアルのタイプによって異なる場合があります
  • テキストのブロックが大きな境界ボックス内にある場合、テキストブロック全体がビジュアルと見なされ、このロジックを使用して削除される場合があります。

オプション2:ピクセル濃度分析

画像のピクセルを分析することにより、XNUMX番目のアプローチを実装します。 通常のテキスト段落は、その行に集中署名を保持します。 ピクセル密度を測定および分析して、ドキュメントの他の部分と類似していないピクセル密度の領域を特定できます。 次の詳細な手順に従うことができます ノート.

  1. ドキュメントをグレースケールに変換します。
  2. 灰色の領域を白に変換します。
  3. ピクセルを水平方向に折りたたんで、黒いピクセルの濃度を計算します。
  4. ドキュメントを横縞またはセグメントに分割して、フルテキストではないもの(ページ全体に広がる)を識別します。

  1. フルテキストではないすべての水平セグメントについて、テキストである領域と画像である領域を識別します。 これは、最小および最大の黒ピクセル濃度しきい値を使用してセクションを除外することによって行われます。
  2. フルテキストではないと識別された領域を削除します。

次のパラメータを調整して、テキスト以外の領域を識別する精度を最適化できます。

  • テキスト以外の水平セグメントのしきい値 –ページ内のテキスト以外の水平セグメントを検出するために使用される最小および最大の黒ピクセル濃度のしきい値を定義します。
  • テキスト以外の垂直セグメントのしきい値 –ページ内のテキスト以外の垂直セグメントを検出するために使用される最小および最大の黒ピクセル濃度のしきい値を定義します。
  • ウィンドウサイズ –分析のためにページを水平セグメントと垂直セグメントに分割する方法を制御します(X_WINDOW、Y_WINDOW)。 ピクセル数で定義されます。
  • 最小視覚野 –削除するビジュアルと見なすことができる最小の領域を定義します。 ピクセル単位で定義されます。
  • グレー範囲のしきい値 –削除するグレーの陰影のしきい値。

長所と短所

このアプローチは高度にカスタマイズ可能です。 ただし、次の欠点があります。

  • 最適なパラメータは時間がかかり、ソリューションをより深く理解するために必要です
  • ドキュメントが完全に修正されていない場合(カメラが斜めに撮影した画像)、この方法は失敗する可能性があります。

まとめ

この投稿では、異なるドキュメントからビジュアルを編集するためのXNUMXつのアプローチを実装する方法を示しました。 どちらのアプローチも簡単に実装できます。 高品質の結果を取得し、ユースケースに応じてどちらの方法もカスタマイズできます。

Amazon Textractのさまざまな手法の詳細については、一般の人にアクセスしてください。 AWSサンプルGitHubリポジトリ.


著者について

 元江 は、機械学習に重点を置いたSrソリューションアーキテクトです。 彼は、Amazon Computer VisionHeroプログラムとAmazonMachine Learning Technical FieldCommunityのメンバーです。

ビクターロホ は、会話型AIに焦点を当てたシニアパートナーソリューションアーキテクトです。 彼はまた、Amazon Computer VisionHeroプログラムのメンバーでもあります。

ルイスピネダ シニアパートナー管理ソリューションアーキテクトです。 彼はまた、Amazon Computer VisionHeroプログラムのメンバーでもあります。

ミゲルロメロカルボ AWS Machine Learning SolutionLabのデータサイエンティストです。

ソース:https://aws.amazon.com/blogs/machine-learning/process-text-and-images-in-pdf-documents-with-amazon-textract/

タイムスタンプ:

より多くの AWS機械学習ブログ