Preprocesare document PDF cu Amazon Textract: detectarea și eliminarea vizualelor

Nodul sursă: 1204412

Text Amazon este un serviciu de învățare automată (ML) complet gestionat care extrage automat text tipărit, scris de mână și alte date din documentele scanate, care depășește simpla recunoaștere optică a caracterelor (OCR) pentru a identifica, înțelege și extrage date din formulare și tabele. Amazon Texttract poate detecta text dintr-o varietate de documente, inclusiv rapoarte financiare, dosare medicale și formulare fiscale.

În multe cazuri de utilizare, trebuie să extrageți și să analizați documente cu diferite elemente vizuale, cum ar fi logo-uri, fotografii și diagrame. Aceste elemente vizuale conțin text încorporat care contortează rezultatul Amazon Texttract sau nu este necesar pentru procesul dvs. din aval. De exemplu, multe formulare sau documente de evaluare imobiliară conțin imagini cu case sau tendințe ale prețurilor istorice. Aceste informații nu sunt necesare în procesele din aval și trebuie să le eliminați înainte de a utiliza Amazon Texttract pentru a analiza documentul. În această postare, ilustrăm două metode eficiente de a elimina aceste imagini ca parte a preprocesării.

Prezentare generală a soluțiilor

Pentru această postare, folosim un PDF care conține un logo și o diagramă ca exemplu. Folosim două tipuri diferite de procese pentru a converti și detecta aceste imagini, apoi le redactăm.

În prima metodă, folosim biblioteca OpenCV canny edge detector pentru a detecta marginea imaginilor. Pentru a doua metodă, scriem un analizor personalizat de concentrație de pixeli pentru a detecta locația acestor imagini.

Puteți extrage aceste imagini pentru procesare ulterioară și puteți modifica cu ușurință codul pentru a se potrivi cu cazul dvs. de utilizare.

PDF-urile care pot fi căutate sunt fișiere PDF native generate de obicei de alte aplicații, cum ar fi procesoare de text, imprimante PDF virtuale și editori nativi. Aceste tipuri de PDF-uri păstrează metadatele, textul și informațiile despre imagini în interiorul documentului. Puteți utiliza cu ușurință biblioteci precum PyMuPDF/fitz pentru a naviga în structura PDF și a identifica imagini și text. În această postare, ne concentrăm asupra documentelor care nu pot fi căutate sau bazate pe imagini.

Opțiunea 1: Detectarea imaginilor cu detectorul de margine OpenCV

În această abordare, convertim PDF-ul în format PNG, apoi în tonuri de gri documentul cu OpenCV-Python bibliotecă și utilizați Canny Edge Detector pentru a detecta locațiile vizuale. Puteți urma pașii detaliați în cele ce urmează caiet.

  1. Convertiți documentul în tonuri de gri.

  1. Aplicați algoritmul Canny Edge pentru a detecta contururile în documentul Canny-Edged.
  2. Identificați contururile dreptunghiulare cu dimensiuni relevante.

Puteți regla și optimiza în continuare câțiva parametri pentru a crește acuratețea detectării, în funcție de cazul dvs. de utilizare:

  • Inaltime si latime minima – Acești parametri definesc pragurile minime de înălțime și lățime pentru detectarea vizuală. Este exprimat în procente din dimensiunea paginii.
  • umplutură – Când este detectat un contur dreptunghi, definim suprafața suplimentară de umplutură pentru a avea o oarecare flexibilitate pe suprafața totală a paginii care urmează să fie redactată. Acest lucru este util în cazurile în care textele din imagini nu se află în zone dreptunghiulare clar delimitate.

Avantaje și dezavantaje

Această abordare are următoarele avantaje:

  • Satisface majoritatea cazurilor de utilizare
  • Este ușor de implementat și rapid de pus în funcțiune
  • Parametrii săi optimi dau rezultate bune

Cu toate acestea, abordarea are următoarele dezavantaje:

  • Pentru imaginile fără casetă de delimitare sau margini înconjurătoare, performanța poate varia în funcție de tipul de elemente vizuale
  • Dacă un bloc de text se află în interiorul unor casete de delimitare mari, întregul bloc de text poate fi considerat vizual și poate fi eliminat folosind această logică

Opțiunea 2: Analiza concentrației de pixeli

Implementăm a doua noastră abordare prin analiza pixelilor imaginii. Paragrafele de text normale păstrează o semnătură de concentrare în rândurile sale. Putem măsura și analiza densitățile de pixeli pentru a identifica zonele cu densități de pixeli care nu sunt similare cu restul documentului. Puteți urma pașii detaliați în cele ce urmează caiet.

  1. Convertiți documentul în tonuri de gri.
  2. Convertiți zonele gri în albe.
  3. Restrângeți pixelii orizontal pentru a calcula concentrația de pixeli negri.
  4. Împărțiți documentul în dungi orizontale sau segmente pentru a le identifica pe cele care nu sunt text integral (se extind pe întreaga pagină).

  1. Pentru toate segmentele orizontale care nu sunt text integral, identificați zonele care sunt text față de zonele care sunt imagini. Acest lucru se realizează prin filtrarea secțiunilor folosind pragurile minime și maxime de concentrație a pixelilor negri.
  2. Eliminați zonele identificate ca text care nu sunt complet.

Puteți regla următorii parametri pentru a optimiza acuratețea identificării zonelor non-text:

  • Praguri de segment orizontal non-text – Definiți pragurile minime și maxime de concentrație a pixelilor negri utilizate pentru a detecta segmentele orizontale non-text în pagină.
  • Praguri de segmente verticale non-text – Definiți pragurile minime și maxime de concentrație a pixelilor negri utilizate pentru a detecta segmentele verticale non-text din pagină.
  • Dimensiunea ferestrei – Controlează modul în care pagina este împărțită în segmente orizontale și verticale pentru analiză (X_WINDOW, Y_WINDOW). Este definit în număr de pixeli.
  • Suprafața vizuală minimă – Definește cea mai mică zonă care poate fi considerată ca o imagine care trebuie eliminată. Este definit în pixeli.
  • Prag de gamă gri – Pragul pentru nuanțele de gri care trebuie eliminat.

Avantaje și dezavantaje

Această abordare este foarte personalizabilă. Cu toate acestea, are următoarele dezavantaje:

  • Parametrii optimi durează mai mult și pentru a obține o înțelegere mai profundă a soluției
  • Dacă documentul nu este perfect rectificat (imaginea făcută de cameră cu un unghi), această metodă poate eșua.

Concluzie

În această postare, am arătat cum puteți implementa două abordări pentru redactarea imaginilor din documente diferite. Ambele abordări sunt ușor de implementat. Puteți obține rezultate de înaltă calitate și puteți personaliza oricare dintre metode în funcție de cazul dvs. de utilizare.

Pentru a afla mai multe despre diferite tehnici din Amazon Text, vizitați publicul AWS Samples GitHub repo.


Despre Autori

 Yuan Jiang este un arhitect de soluții senior cu accent pe învățarea automată. Este membru al programului Amazon Computer Vision Hero și al comunității Amazon Machine Learning Technical Field.

Victor Red este un arhitect senior de soluții partener, cu accent pe IA conversațională. De asemenea, este membru al programului Amazon Computer Vision Hero.

louis pineda este un arhitect Sr Partner Management Solution. De asemenea, este membru al programului Amazon Computer Vision Hero.

Miguel Romero Calvo este un Data Scientist de la AWS Machine Learning Solution Lab.

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

Timestamp-ul:

Mai mult de la Blog de AWS Machine Learning