Voorverwerking van PDF-documenten met Amazon Textract: detectie en verwijdering van visuele elementen

Bronknooppunt: 1204412

Amazon T-extract is een volledig beheerde service voor machine learning (ML) die automatisch afgedrukte tekst, handgeschreven gegevens en andere gegevens uit gescande documenten extraheert die verder gaan dan de eenvoudige optische tekenherkenning (OCR) om gegevens uit formulieren en tabellen te identificeren, begrijpen en extraheren. Amazon Textract kan tekst detecteren in verschillende documenten, waaronder financiële rapporten, medische dossiers en belastingformulieren.

In veel gevallen moet u documenten extraheren en analyseren met verschillende visuals, zoals logo's, foto's en grafieken. Deze beelden bevatten ingesloten tekst die de uitvoer van Amazon Textract ingewikkeld maakt of niet vereist is voor uw stroomafwaartse proces. Veel evaluatieformulieren of documenten voor onroerend goed bevatten bijvoorbeeld afbeeldingen van huizen of trends van historische prijzen. Deze informatie is niet nodig in downstream-processen en u moet deze verwijderen voordat u Amazon Textract gebruikt om het document te analyseren. In dit bericht illustreren we twee effectieve methoden om deze visuals te verwijderen als onderdeel van uw voorverwerking.

Overzicht oplossingen

Voor dit bericht gebruiken we een pdf met een logo en een grafiek als voorbeeld. We gebruiken twee verschillende soorten processen om deze visuals om te zetten, te detecteren en vervolgens te redigeren.

Bij de eerste methode gebruiken we de OpenCV-bibliotheek slimme randdetector om de rand van de beelden te detecteren. Voor de tweede methode schrijven we een aangepaste pixelconcentratie-analysator om de locatie van deze beelden te detecteren.

U kunt deze afbeeldingen extraheren voor verdere verwerking en de code eenvoudig aanpassen aan uw gebruikssituatie.

Doorzoekbare pdf's zijn native pdf-bestanden die doorgaans worden gegenereerd door andere toepassingen, zoals tekstverwerkers, virtuele pdf-printers en native editors. Bij deze typen PDF's worden metagegevens, tekst en afbeeldingsinformatie in het document bewaard. U kunt gemakkelijk bibliotheken zoals PyMuPDF / fitz om door de PDF-structuur te navigeren en afbeeldingen en tekst te identificeren. In dit bericht richten we ons op niet-doorzoekbare of op afbeeldingen gebaseerde documenten.

Optie 1: visuals detecteren met OpenCV-randdetector

Bij deze benadering converteren we de PDF naar PNG-indeling en schalen we het document vervolgens in grijstinten met de OpenCV-Python bibliotheek en gebruik de Canny Edge Detector om de visuele locaties te detecteren. U kunt de onderstaande gedetailleerde stappen volgen notitieboekje.

  1. Converteer het document naar grijstinten.

  1. Pas het Canny Edge-algoritme toe om contouren in het Canny-Edged-document te detecteren.
  2. Identificeer de rechthoekige contouren met relevante afmetingen.

U kunt een aantal parameters verder afstemmen en optimaliseren om de detectienauwkeurigheid te vergroten, afhankelijk van uw gebruiksscenario:

  • Minimale hoogte en breedte - Deze parameters bepalen de minimale hoogte- en breedtedrempels voor visuele detectie. Het wordt uitgedrukt in percentage van het paginaformaat.
  • Vulling - Wanneer een rechthoekige contour wordt gedetecteerd, definiëren we het extra opvulgebied om enige flexibiliteit te hebben op het totale gebied van de pagina dat moet worden geredigeerd. Dit is handig in gevallen waarin de teksten in de afbeeldingen niet binnen duidelijk afgebakende rechthoekige gebieden vallen.

Voor-en nadelen

Deze aanpak heeft de volgende voordelen:

  • Het voldoet aan de meeste gebruiksscenario's
  • Het is gemakkelijk te implementeren en snel aan de slag te gaan
  • De optimale parameters leveren goede resultaten op

De aanpak heeft echter de volgende nadelen:

  • Voor visuals zonder een selectiekader of omringende randen, kunnen de prestaties variëren afhankelijk van het type visuals
  • Als een tekstblok zich binnen grote begrenzingskaders bevindt, kan het hele tekstblok als visueel worden beschouwd en met behulp van deze logica worden verwijderd

Optie 2: analyse van pixelconcentratie

We implementeren onze tweede benadering door de beeldpixels te analyseren. Normale tekstparagrafen behouden een concentratiehandtekening in de regels. We kunnen de pixeldichtheden meten en analyseren om gebieden met pixeldichtheden te identificeren die niet vergelijkbaar zijn met de rest van het document. U kunt de onderstaande gedetailleerde stappen volgen notitieboekje.

  1. Converteer het document naar grijstinten.
  2. Zet grijze gebieden om in wit.
  3. Vouw de pixels horizontaal samen om de concentratie van zwarte pixels te berekenen.
  4. Splits het document in horizontale strepen of segmenten om de te identificeren die geen volledige tekst zijn (die zich over de hele pagina uitstrekken).

  1. Voor alle horizontale segmenten die geen volledige tekst zijn, identificeert u de gebieden die tekst zijn versus gebieden die afbeeldingen zijn. Dit wordt gedaan door secties uit te filteren met behulp van minimale en maximale concentratiedrempels voor zwarte pixels.
  2. Verwijder gebieden die zijn geïdentificeerd als niet-volledige tekst.

U kunt de volgende parameters afstemmen om de nauwkeurigheid van het identificeren van niet-tekstgebieden te optimaliseren:

  • Drempels voor horizontale segmenten zonder tekst - Definieer de minimum- en maximumconcentratiedrempels voor zwarte pixels die worden gebruikt om niet-tekstuele horizontale segmenten op de pagina te detecteren.
  • Drempels voor verticale segmenten die geen tekst zijn - Definieer de minimum- en maximumconcentratiedrempels voor zwarte pixels die worden gebruikt om niet-tekstuele verticale segmenten op de pagina te detecteren.
  • Venstergrootte - Bepaalt hoe de pagina wordt opgesplitst in horizontale en verticale segmenten voor analyse (X_WINDOW, Y_WINDOW). Het is gedefinieerd in aantal pixels.
  • Minimaal visueel gebied - Definieert het kleinste gebied dat kan worden beschouwd als een visueel te verwijderen gebied. Het is gedefinieerd in pixels.
  • Drempelwaarde grijs bereik - De drempel om grijstinten te verwijderen.

Voor-en nadelen

Deze aanpak is in hoge mate aanpasbaar. Het heeft echter de volgende nadelen:

  • Optimale parameters duren langer en om een ​​beter begrip van de oplossing te krijgen
  • Als het document niet perfect is gecorrigeerd (foto gemaakt met een camera onder een hoek), kan deze methode mislukken.

Conclusie

In dit bericht hebben we laten zien hoe u twee benaderingen kunt implementeren om visuals uit verschillende documenten te redigeren. Beide benaderingen zijn eenvoudig te implementeren. U kunt resultaten van hoge kwaliteit krijgen en beide methoden aanpassen aan uw gebruiksscenario.

Bezoek het publiek voor meer informatie over verschillende technieken in Amazon Textract AWS-voorbeelden GitHub-opslagplaats.


Over de auteurs

 Yuan Jiang is een Sr Solution Architect met een focus op machine learning. Hij is lid van het Amazon Computer Vision Hero-programma en de Amazon Machine Learning Technical Field Community.

Victor Red is een Sr Partner Solution Architect met focus op Conversational AI. Hij is ook lid van het Amazon Computer Vision Hero-programma.

louis pineda is een Sr Partner Management Solution Architect. Hij is ook lid van het Amazon Computer Vision Hero-programma.

Miguel Romero Calvo is een datawetenschapper van het AWS Machine Learning Solution Lab.

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

Tijdstempel:

Meer van AWS Blog over machine learning