Vorverarbeitung von PDF-Dokumenten mit Amazon Textract: Erkennung und Entfernung von visuellen Elementen

Quellknoten: 1204412

Amazontext ist ein vollständig verwalteter maschineller Lerndienst (ML), der automatisch gedruckten Text, Handschrift und andere Daten aus gescannten Dokumenten extrahiert, der über die einfache optische Zeichenerkennung (OCR) hinausgeht, um Daten aus Formularen und Tabellen zu identifizieren, zu verstehen und zu extrahieren. Amazon Textract kann Text in einer Vielzahl von Dokumenten erkennen, einschließlich Finanzberichten, medizinischen Unterlagen und Steuerformularen.

In vielen Anwendungsfällen müssen Sie Dokumente mit verschiedenen visuellen Elementen wie Logos, Fotos und Diagrammen extrahieren und analysieren. Diese Grafiken enthalten eingebetteten Text, der die Ausgabe von Amazon Textract kompliziert oder für Ihren nachgelagerten Prozess nicht erforderlich ist. Beispielsweise enthalten viele Immobilienbewertungsformulare oder -dokumente Bilder von Häusern oder Trends historischer Preise. Diese Informationen werden in nachgeschalteten Prozessen nicht benötigt und müssen entfernt werden, bevor Sie Amazon Textract zum Analysieren des Dokuments verwenden können. In diesem Beitrag veranschaulichen wir zwei effektive Methoden, um diese visuellen Elemente im Rahmen Ihrer Vorverarbeitung zu entfernen.

Lösungsüberblick

Für diesen Beitrag verwenden wir ein PDF, das als Beispiel ein Logo und ein Diagramm enthält. Wir verwenden zwei verschiedene Arten von Prozessen, um diese visuellen Elemente zu konvertieren, zu erkennen und dann zu redigieren.

Bei der ersten Methode verwenden wir den Canny-Edge-Detektor der OpenCV-Bibliothek, um den Rand der visuellen Elemente zu erkennen. Für die zweite Methode schreiben wir einen benutzerdefinierten Pixelkonzentrationsanalysator, um den Ort dieser visuellen Elemente zu ermitteln.

Sie können diese Grafiken zur weiteren Verarbeitung extrahieren und den Code einfach an Ihren Anwendungsfall anpassen.

Durchsuchbare PDFs sind native PDF-Dateien, die normalerweise von anderen Anwendungen wie Textverarbeitungsprogrammen, virtuellen PDF-Druckern und nativen Editoren generiert werden. Diese PDF-Typen speichern Metadaten, Text- und Bildinformationen im Dokument. Sie können einfach Bibliotheken wie verwenden PyMuPDF / fitz um durch die PDF-Struktur zu navigieren und Bilder und Text zu identifizieren. In diesem Beitrag konzentrieren wir uns auf nicht durchsuchbare oder bildbasierte Dokumente.

Option 1: Erkennen von Bildern mit dem OpenCV-Kantendetektor

Bei diesem Ansatz konvertieren wir das PDF in das PNG-Format und skalieren das Dokument dann mit dem OpenCV-Python Bibliothek und verwenden Sie den Canny Edge Detector, um die visuellen Positionen zu erkennen. Sie können die detaillierten Schritte im Folgenden ausführen Notizbuch.

  1. Konvertieren Sie das Dokument in Graustufen.

  1. Wenden Sie den Canny Edge-Algorithmus an, um Konturen im Canny-Edged-Dokument zu erkennen.
  2. Identifizieren Sie die rechteckigen Konturen mit relevanten Abmessungen.

Sie können einige Parameter weiter einstellen und optimieren, um die Erkennungsgenauigkeit je nach Anwendungsfall zu erhöhen:

  • Mindesthöhe und -breite - Diese Parameter definieren die Mindestschwellenwerte für Höhe und Breite für die visuelle Erkennung. Es wird in Prozent der Seitengröße ausgedrückt.
  • Polsterung - Wenn eine Rechteckkontur erkannt wird, definieren wir den zusätzlichen Auffüllbereich so, dass der Gesamtbereich der zu redigierenden Seite flexibel ist. Dies ist hilfreich, wenn sich die Texte in den Grafiken nicht in klar abgegrenzten rechteckigen Bereichen befinden.

Vorteile und Nachteile

Dieser Ansatz hat folgende Vorteile:

  • Es erfüllt die meisten Anwendungsfälle
  • Es ist einfach zu implementieren und schnell einsatzbereit
  • Die optimalen Parameter liefern gute Ergebnisse

Der Ansatz weist jedoch die folgenden Nachteile auf:

  • Bei Grafiken ohne Begrenzungsrahmen oder umgebende Kanten kann die Leistung je nach Art der Grafiken variieren
  • Befindet sich ein Textblock in großen Begrenzungsrahmen, kann der gesamte Textblock als visuell betrachtet und mithilfe dieser Logik entfernt werden

Option 2: Pixelkonzentrationsanalyse

Wir implementieren unseren zweiten Ansatz durch Analyse der Bildpixel. Normale Textabsätze behalten eine Konzentrationssignatur in ihren Zeilen. Wir können die Pixeldichten messen und analysieren, um Bereiche mit Pixeldichten zu identifizieren, die dem Rest des Dokuments nicht ähnlich sind. Sie können die detaillierten Schritte im Folgenden ausführen Notizbuch.

  1. Konvertieren Sie das Dokument in Graustufen.
  2. Konvertieren Sie graue Bereiche in Weiß.
  3. Reduzieren Sie die Pixel horizontal, um die Konzentration der schwarzen Pixel zu berechnen.
  4. Teilen Sie das Dokument in horizontale Streifen oder Segmente auf, um diejenigen zu identifizieren, die keinen Volltext enthalten (über die gesamte Seite).

  1. Identifizieren Sie für alle horizontalen Segmente, die kein Volltext sind, die Bereiche, die Text sind, im Vergleich zu Bereichen, die Bilder sind. Dies erfolgt durch Herausfiltern von Abschnitten unter Verwendung minimaler und maximaler Schwellenwerte für die Konzentration schwarzer Pixel.
  2. Entfernen Sie Bereiche, die als Nicht-Volltext gekennzeichnet sind.

Sie können die folgenden Parameter optimieren, um die Genauigkeit der Identifizierung von Nicht-Textbereichen zu optimieren:

  • Schwellenwerte für horizontale Segmente ohne Text - Definieren Sie die minimalen und maximalen Schwellenwerte für die Konzentration schwarzer Pixel, die zum Erkennen horizontaler Nicht-Text-Segmente auf der Seite verwendet werden.
  • Schwellenwerte für vertikale Segmente ohne Text - Definieren Sie die minimalen und maximalen Schwellenwerte für die Konzentration schwarzer Pixel, die zum Erkennen vertikaler Nicht-Text-Segmente auf der Seite verwendet werden.
  • Fenstergröße - Steuert, wie die Seite zur Analyse in horizontale und vertikale Segmente aufgeteilt wird (X_WINDOW, Y_WINDOW). Es ist in Anzahl der Pixel definiert.
  • Minimaler Sichtbereich - Definiert den kleinsten Bereich, der als zu entfernendes Bild betrachtet werden kann. Es ist in Pixel definiert.
  • Graubereichsschwelle - Die Schwelle für zu entfernende Graustufen.

Vorteile und Nachteile

Dieser Ansatz ist sehr anpassbar. Es hat jedoch die folgenden Nachteile:

  • Optimale Parameter dauern länger und ermöglichen ein tieferes Verständnis der Lösung
  • Wenn das Dokument nicht perfekt korrigiert ist (Bild von der Kamera mit einem Winkel aufgenommen), schlägt diese Methode möglicherweise fehl.

Zusammenfassung

In diesem Beitrag haben wir gezeigt, wie Sie zwei Ansätze implementieren können, um Grafiken aus verschiedenen Dokumenten zu redigieren. Beide Ansätze sind einfach zu implementieren. Sie können qualitativ hochwertige Ergebnisse erhalten und beide Methoden an Ihren Anwendungsfall anpassen.

Um mehr über verschiedene Techniken in Amazon Textract zu erfahren, besuchen Sie die Öffentlichkeit AWS Samples GitHub Repo.


Über die Autoren

 Yüan Jiang ist ein Sr Solution Architect mit Schwerpunkt auf maschinellem Lernen. Er ist Mitglied des Amazon Computer Vision Hero-Programms und der Amazon Machine Learning Technical Field Community.

Victor Red ist ein Sr Partner Solution Architect mit Schwerpunkt Conversational AI. Er ist außerdem Mitglied des Amazon Computer Vision Hero-Programms.

Luis Pineda ist ein Sr Partner Management Solution Architect. Er ist außerdem Mitglied des Amazon Computer Vision Hero-Programms.

Miguel Romero Calvo ist ein Data Scientist vom AWS Machine Learning Solution Lab.

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

Zeitstempel:

Mehr von AWS-Blog für maschinelles Lernen