Förbehandling av PDF-dokument med Amazon Textract: Visuell upptäckt och borttagning

Källnod: 1204412

amazontext är en fullständigt hanterad maskininlärningstjänst (ML) som automatiskt extraherar tryckt text, handskrift och annan data från skannade dokument som går utöver enkel optisk teckenigenkänning (OCR) för att identifiera, förstå och extrahera data från formulär och tabeller. Amazon Textract kan upptäcka text i en mängd olika dokument, inklusive finansiella rapporter, medicinska register och skatteformulär.

I många användningsfall måste du extrahera och analysera dokument med olika bilder, till exempel logotyper, foton och diagram. Dessa bilder innehåller inbäddad text som kompletterar Amazon Textract-utdata eller som inte krävs för din nedströmsprocess. Till exempel innehåller många formulär eller dokument för fastighetsbedömning bilder av hus eller trender med historiska priser. Denna information behövs inte i nedströmsprocesser, och du måste ta bort den innan du använder Amazon Textract för att analysera dokumentet. I det här inlägget illustrerar vi två effektiva metoder för att ta bort dessa bilder som en del av din förbehandling.

Lösningsöversikt

För det här inlägget använder vi en PDF som innehåller en logotyp och ett diagram som ett exempel. Vi använder två olika typer av processer för att konvertera och upptäcka dessa bilder och sedan redigera dem.

I den första metoden använder vi OpenCV-bibliotekets kantdetektor för att upptäcka kanten på det visuella. För den andra metoden skriver vi en anpassad pixelkoncentrationsanalysator för att detektera platsen för dessa bilder.

Du kan extrahera dessa bilder för vidare bearbetning och enkelt ändra koden så att den passar ditt användningsfall.

Sökbara PDF-filer är inbyggda PDF-filer som vanligtvis genereras av andra applikationer, t.ex. textbehandlare, virtuella PDF-skrivare och inbyggda redigerare. Dessa typer av PDF-filer behåller metadata, text och bildinformation i dokumentet. Du kan enkelt använda bibliotek som PyMuPDF / fitz för att navigera i PDF-strukturen och identifiera bilder och text. I det här inlägget fokuserar vi på icke-sökbara eller bildbaserade dokument.

Alternativ 1: Upptäcka bilder med OpenCV-kantdetektor

I detta tillvägagångssätt konverterar vi PDF-filen till PNG-format och gråskalar sedan dokumentet med OpenCV-Python bibliotek och använd Canny Edge Detector för att upptäcka de visuella platserna. Du kan följa de detaljerade stegen i det följande anteckningsbok.

  1. Konvertera dokumentet till gråskala.

  1. Använd Canny Edge-algoritmen för att upptäcka konturer i det Canny-Edged-dokumentet.
  2. Identifiera de rektangulära konturerna med relevanta mått.

Du kan ytterligare ställa in och optimera några parametrar för att öka detekteringsnoggrannheten beroende på ditt användningsfall:

  • Minsta höjd och bredd - Dessa parametrar definierar minimihöjds- och breddgränserna för visuell detektering. Det uttrycks i procent av sidstorleken.
  • Padding - När en rektangelkontur upptäcks definierar vi det extra stoppningsområdet för att ha viss flexibilitet för den totala ytan på sidan som ska redigeras. Detta är till hjälp i fall där texterna i det visuella inte finns inom tydligt avgränsade rektangulära områden.

Fördelar och nackdelar

Detta tillvägagångssätt har följande fördelar:

  • Det uppfyller de flesta användningsfall
  • Det är enkelt att implementera och snabbt att komma igång
  • Dess optimala parametrar ger bra resultat

Tillvägagångssättet har dock följande nackdelar:

  • För bilder utan en avgränsande ruta eller omgivande kanter kan prestandan variera beroende på typen av bilder
  • Om ett textblock finns i stora avgränsningsrutor kan hela textblocket betraktas som ett visuellt och tas bort med den här logiken

Alternativ 2: Pixelkoncentrationsanalys

Vi implementerar vårt andra tillvägagångssätt genom att analysera bildpixlarna. Normala textavsnitt behåller en koncentrationssignatur i sina rader. Vi kan mäta och analysera pixeldensiteter för att identifiera områden med pixeldensiteter som inte liknar resten av dokumentet. Du kan följa de detaljerade stegen i det följande anteckningsbok.

  1. Konvertera dokumentet till gråskala.
  2. Konvertera gråa områden till vita.
  3. Dölj pixlarna horisontellt för att beräkna koncentrationen av svarta pixlar.
  4. Dela upp dokumentet i horisontella ränder eller segment för att identifiera de som inte är fulltext (som sträcker sig över hela sidan).

  1. För alla horisontella segment som inte är fulltext, identifiera de områden som är text kontra områden som är bilder. Detta görs genom att filtrera bort sektioner med minsta och maximala svarta pixelkoncentrationströsklar.
  2. Ta bort områden som identifierats som icke-fulltext.

Du kan ställa in följande parametrar för att optimera noggrannheten för att identifiera områden som inte är text:

  • Trösklar för icke-text horisontellt segment - Definiera de lägsta och högsta tröskelvärden för svarta pixelkoncentrationer som används för att upptäcka horisontella segment som inte är text på sidan.
  • Vertikala segmenttrösklar som inte är text - Definiera de lägsta och maximala tröskelvärden för svart pixelkoncentration som används för att upptäcka vertikala segment som inte är text på sidan.
  • Fönsterstorlek - Styr hur sidan delas upp i horisontella och vertikala segment för analys (X_WINDOW, Y_WINDOW). Den definieras i antal pixlar.
  • Minsta synområde - Definierar det minsta området som kan betraktas som ett visuellt objekt som ska tas bort. Det definieras i pixlar.
  • Grå tröskelvärd - Tröskeln för att gråtoner ska tas bort.

Fördelar och nackdelar

Detta tillvägagångssätt är mycket anpassningsbart. Det har dock följande nackdelar:

  • Optimala parametrar tar längre tid och för att uppnå en djupare förståelse för lösningen
  • Om dokumentet inte korrigeras perfekt (bilden tas av kameran med en vinkel) kan den här metoden misslyckas.

Slutsats

I det här inlägget visade vi hur du kan implementera två metoder för att redigera bilder från olika dokument. Båda metoderna är enkla att implementera. Du kan få högkvalitativa resultat och anpassa endera metoden enligt ditt användningsfall.

För att lära dig mer om olika tekniker i Amazon Textract, besök allmänheten AWS-prov GitHub repo.


Om författarna

 Yuan Jiang är en Sr Solution Architect med fokus på maskininlärning. Han är medlem i Amazon Computer Vision Hero-programmet och Amazon Machine Learning Technical Field Community.

Victor Red är en Sr Partner Solution Architect med samtals AI-fokus. Han är också medlem i Amazon Computer Vision Hero-programmet.

Luis Pineda är en Sr Partner Management Solution Architect. Han är också medlem i Amazon Computer Vision Hero-programmet.

Miguel Romero Calvo är datavetare från AWS Machine Learning Solution Lab.

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

Tidsstämpel:

Mer från AWS-maskininlärningsblogg