Pre-elaborazione di documenti PDF con Amazon Textract: rilevamento e rimozione di oggetti visivi

Nodo di origine: 1204412

Testo Amazon è un servizio di machine learning (ML) completamente gestito che estrae automaticamente testo stampato, grafia e altri dati dai documenti scansionati che va oltre il semplice riconoscimento ottico dei caratteri (OCR) per identificare, comprendere ed estrarre dati da moduli e tabelle. Amazon Textract è in grado di rilevare il testo in una varietà di documenti, inclusi rapporti finanziari, cartelle cliniche e moduli fiscali.

In molti casi d'uso, è necessario estrarre e analizzare documenti con vari elementi visivi, come loghi, foto e grafici. Questi elementi visivi contengono testo incorporato che circonda l'output di Amazon Textract o non è richiesto per il processo a valle. Ad esempio, molti moduli o documenti di valutazione immobiliare contengono immagini di case o tendenze dei prezzi storici. Queste informazioni non sono necessarie nei processi a valle e devi rimuoverle prima di utilizzare Amazon Textract per analizzare il documento. In questo post, illustriamo due metodi efficaci per rimuovere questi elementi visivi come parte della pre-elaborazione.

Panoramica della soluzione

Per questo post, utilizziamo un PDF che contiene un logo e un grafico come esempio. Usiamo due diversi tipi di processi per convertire e rilevare questi elementi visivi, quindi correggerli.

Nel primo metodo, utilizziamo il rilevatore di bordi canny della libreria OpenCV per rilevare il bordo delle immagini. Per il secondo metodo, scriviamo un analizzatore di concentrazione di pixel personalizzato per rilevare la posizione di queste immagini.

Puoi estrarre questi elementi visivi per ulteriori elaborazioni e modificare facilmente il codice per adattarlo al tuo caso d'uso.

I PDF ricercabili sono file PDF nativi generalmente generati da altre applicazioni, come processori di testo, stampanti PDF virtuali e editor nativi. Questi tipi di PDF conservano metadati, testo e informazioni sull'immagine all'interno del documento. Puoi facilmente usare librerie come PyMuPDF / fitz per navigare nella struttura del PDF e identificare immagini e testo. In questo post, ci concentriamo su documenti non ricercabili o basati su immagini.

Opzione 1: rilevamento di immagini con rilevatore di bordi OpenCV

In questo approccio, convertiamo il PDF in formato PNG, quindi ridimensioniamo il documento in scala di grigi con l'estensione OpenCV-Python libreria e usa Canny Edge Detector per rilevare le posizioni visive. È possibile seguire i passaggi dettagliati di seguito taccuino.

  1. Converti il ​​documento in scala di grigi.

  1. Applicare l'algoritmo Canny Edge per rilevare i contorni nel documento Canny-Edged.
  2. Identificare i contorni rettangolari con le dimensioni rilevanti.

È possibile sintonizzare e ottimizzare ulteriormente alcuni parametri per aumentare la precisione del rilevamento a seconda del caso d'uso:

  • Altezza e larghezza minime - Questi parametri definiscono le soglie minime di altezza e larghezza per il rilevamento visivo. È espresso in percentuale della dimensione della pagina.
  • Imbottitura - Quando viene rilevato un contorno di un rettangolo, definiamo l'area di riempimento extra per avere una certa flessibilità sull'area totale della pagina da oscurare. Ciò è utile nei casi in cui i testi nelle immagini non sono all'interno di aree rettangolari chiaramente delimitate.

Vantaggi e svantaggi

Questo approccio presenta i seguenti vantaggi:

  • Soddisfa la maggior parte dei casi d'uso
  • È facile da implementare e veloce da installare e utilizzare
  • I suoi parametri ottimali danno buoni risultati

Tuttavia, l'approccio presenta i seguenti inconvenienti:

  • Per le immagini senza un riquadro di delimitazione o bordi circostanti, le prestazioni possono variare a seconda del tipo di immagini
  • Se un blocco di testo si trova all'interno di grandi riquadri di delimitazione, l'intero blocco di testo può essere considerato un elemento visivo e può essere rimosso utilizzando questa logica

Opzione 2: analisi della concentrazione di pixel

Implementiamo il nostro secondo approccio analizzando i pixel dell'immagine. I paragrafi di testo normale mantengono una firma di concentrazione nelle sue righe. Possiamo misurare e analizzare le densità di pixel per identificare aree con densità di pixel che non sono simili al resto del documento. È possibile seguire i passaggi dettagliati di seguito taccuino.

  1. Converti il ​​documento in scala di grigi.
  2. Converti le aree grigie in bianche.
  3. Comprimere i pixel orizzontalmente per calcolare la concentrazione di pixel neri.
  4. Dividi il documento in strisce o segmenti orizzontali per identificare quelli che non sono testo completo (che si estendono su tutta la pagina).

  1. Per tutti i segmenti orizzontali che non sono testo completo, identifica le aree che sono testo rispetto alle aree che sono immagini. Ciò viene fatto filtrando le sezioni utilizzando le soglie di concentrazione di pixel neri minima e massima.
  2. Rimuovere le aree identificate come testo non completo.

È possibile regolare i seguenti parametri per ottimizzare la precisione dell'identificazione di aree non di testo:

  • Soglie di segmenti orizzontali non di testo - Definire le soglie di concentrazione di pixel neri minima e massima utilizzate per rilevare i segmenti orizzontali non di testo nella pagina.
  • Soglie di segmenti verticali non di testo - Definire le soglie di concentrazione di pixel neri minima e massima utilizzate per rilevare i segmenti verticali non di testo nella pagina.
  • Dimensioni della finestra - Controlla il modo in cui la pagina viene suddivisa in segmenti orizzontali e verticali per l'analisi (X_WINDOW, Y_WINDOW). È definito in numero di pixel.
  • Area visiva minima - Definisce l'area più piccola che può essere considerata come elemento visivo da rimuovere. È definito in pixel.
  • Soglia della gamma di grigi - La soglia per la rimozione delle sfumature di grigio.

Vantaggi e svantaggi

Questo approccio è altamente personalizzabile. Tuttavia, presenta i seguenti inconvenienti:

  • I parametri ottimali richiedono più tempo e consentono di ottenere una comprensione più approfondita della soluzione
  • Se il documento non è perfettamente rettificato (immagine scattata dalla fotocamera con un angolo), questo metodo potrebbe non riuscire.

Conclusione

In questo post, abbiamo mostrato come implementare due approcci per oscurare gli elementi visivi da documenti diversi. Entrambi gli approcci sono facili da implementare. Puoi ottenere risultati di alta qualità e personalizzare entrambi i metodi in base al tuo caso d'uso.

Per saperne di più sulle diverse tecniche in Amazon Textract, visita il pubblico Repo GitHub di esempi AWS.


Informazioni sugli autori

 YuanJiang è un Sr Solution Architect con un focus sull'apprendimento automatico. È membro del programma Amazon Computer Vision Hero e della Amazon Machine Learning Technical Field Community.

Victor Red è un Sr Partner Solution Architect con focus sull'intelligenza artificiale conversazionale. È anche membro del programma Amazon Computer Vision Hero.

Luis Pineda è un Sr Partner Management Solution Architect. È anche membro del programma Amazon Computer Vision Hero.

Miguel Romero Calvo è un data scientist dell'AWS Machine Learning Solution Lab.

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

Timestamp:

Di più da Blog di apprendimento automatico AWS