Prétraitement de documents PDF avec Amazon Textract: détection et suppression de visuels

Nœud source: 1204412

Extrait d'Amazon est un service d'apprentissage automatique (ML) entièrement géré qui extrait automatiquement le texte imprimé, l'écriture manuscrite et d'autres données à partir de documents numérisés qui va au-delà de la simple reconnaissance optique de caractères (OCR) pour identifier, comprendre et extraire des données de formulaires et de tableaux. Amazon Textract peut détecter le texte dans une variété de documents, y compris les rapports financiers, les dossiers médicaux et les formulaires fiscaux.

Dans de nombreux cas d'utilisation, vous devez extraire et analyser des documents avec divers visuels, tels que des logos, des photos et des graphiques. Ces visuels contiennent du texte intégré qui convolute la sortie d'Amazon Textract ou n'est pas requis pour votre processus en aval. Par exemple, de nombreux formulaires ou documents d'évaluation immobilière contiennent des images de maisons ou des tendances de prix historiques. Ces informations ne sont pas nécessaires dans les processus en aval et vous devez les supprimer avant d'utiliser Amazon Textract pour analyser le document. Dans cet article, nous illustrons deux méthodes efficaces pour supprimer ces visuels dans le cadre de votre prétraitement.

Vue d'ensemble de la solution

Pour cet article, nous utilisons un PDF qui contient un logo et un graphique à titre d'exemple. Nous utilisons deux types de processus différents pour convertir et détecter ces visuels, puis les biffer.

Dans la première méthode, nous utilisons le détecteur de bord astucieux de la bibliothèque OpenCV pour détecter le bord des visuels. Pour la deuxième méthode, nous écrivons un analyseur de concentration de pixels personnalisé pour détecter l'emplacement de ces éléments visuels.

Vous pouvez extraire ces visuels pour un traitement ultérieur et modifier facilement le code pour l'adapter à votre cas d'utilisation.

Les fichiers PDF interrogeables sont des fichiers PDF natifs généralement générés par d'autres applications, telles que des processeurs de texte, des imprimantes PDF virtuelles et des éditeurs natifs. Ces types de PDF conservent les métadonnées, le texte et les informations d'image à l'intérieur du document. Vous pouvez facilement utiliser des bibliothèques comme PyMuPDF / fitz pour naviguer dans la structure PDF et identifier les images et le texte. Dans cet article, nous nous concentrons sur les documents non consultables ou basés sur des images.

Option 1: détection des visuels avec le détecteur de bord OpenCV

Dans cette approche, nous convertissons le PDF au format PNG, puis mettons le document en niveaux de gris avec le OpenCV-Python bibliothèque et utilisez le détecteur Canny Edge pour détecter les emplacements visuels. Vous pouvez suivre les étapes détaillées ci-dessous cahier.

  1. Convertissez le document en niveaux de gris.

  1. Appliquez l'algorithme Canny Edge pour détecter les contours dans le document Canny-Edged.
  2. Identifiez les contours rectangulaires avec les dimensions appropriées.

Vous pouvez affiner et optimiser quelques paramètres pour augmenter la précision de détection en fonction de votre cas d'utilisation:

  • Hauteur et largeur minimales - Ces paramètres définissent les seuils minimaux de hauteur et de largeur pour la détection visuelle. Il est exprimé en pourcentage de la taille de la page.
  • Rembourrage - Lorsqu'un contour rectangle est détecté, nous définissons la zone de remplissage supplémentaire pour avoir une certaine flexibilité sur la surface totale de la page à rédiger. Ceci est utile dans les cas où les textes dans les visuels ne sont pas à l'intérieur de zones rectangulaires clairement délimitées.

Avantages et inconvénients

Cette approche présente les avantages suivants:

  • Il satisfait la plupart des cas d'utilisation
  • Il est facile à mettre en œuvre et rapide à démarrer
  • Ses paramètres optimaux donnent de bons résultats

Cependant, l'approche présente les inconvénients suivants:

  • Pour les visuels sans cadre de délimitation ni bords environnants, les performances peuvent varier en fonction du type de visuels
  • Si un bloc de texte se trouve à l'intérieur de grandes zones de délimitation, le bloc de texte entier peut être considéré comme un visuel et être supprimé en utilisant cette logique

Option 2: analyse de la concentration des pixels

Nous mettons en œuvre notre deuxième approche en analysant les pixels de l'image. Les paragraphes de texte normaux conservent une signature de concentration dans ses lignes. Nous pouvons mesurer et analyser les densités de pixels pour identifier les zones avec des densités de pixels qui ne sont pas similaires au reste du document. Vous pouvez suivre les étapes détaillées ci-dessous cahier.

  1. Convertissez le document en niveaux de gris.
  2. Convertissez les zones grises en blanc.
  3. Réduisez les pixels horizontalement pour calculer la concentration de pixels noirs.
  4. Divisez le document en bandes ou segments horizontaux pour identifier ceux qui ne sont pas du texte intégral (s'étendant sur toute la page).

  1. Pour tous les segments horizontaux qui ne sont pas du texte intégral, identifiez les zones qui sont du texte par rapport aux zones qui sont des images. Cela se fait en filtrant les sections en utilisant des seuils de concentration de pixels noirs minimum et maximum.
  2. Supprimez les zones identifiées comme du texte non intégral.

Vous pouvez régler les paramètres suivants pour optimiser la précision de l'identification des zones non textuelles:

  • Seuils de segment horizontal sans texte - Définissez les seuils de concentration de pixels noirs minimum et maximum utilisés pour détecter les segments horizontaux non textuels dans la page.
  • Seuils de segment vertical sans texte - Définissez les seuils de concentration de pixels noirs minimum et maximum utilisés pour détecter les segments verticaux non textuels dans la page.
  • La taille de la fenêtre - Contrôle la façon dont la page est divisée en segments horizontaux et verticaux pour l'analyse (X_WINDOW, Y_WINDOW). Il est défini en nombre de pixels.
  • Zone visuelle minimale - Définit la plus petite zone pouvant être considérée comme un visuel à supprimer. Il est défini en pixels.
  • Seuil de la gamme de gris - Le seuil pour les nuances de gris à supprimer.

Avantages et inconvénients

Cette approche est hautement personnalisable. Cependant, il présente les inconvénients suivants:

  • Les paramètres optimaux prennent plus de temps et permettent de mieux comprendre la solution
  • Si le document n'est pas parfaitement rectifié (image prise par la caméra avec un angle), cette méthode peut échouer.

Conclusion

Dans cet article, nous avons montré comment vous pouvez implémenter deux approches pour biffer des visuels à partir de différents documents. Les deux approches sont faciles à mettre en œuvre. Vous pouvez obtenir des résultats de haute qualité et personnaliser l'une ou l'autre méthode en fonction de votre cas d'utilisation.

Pour en savoir plus sur les différentes techniques d'Amazon Textract, visitez le public Dépôt AWS Samples GitHub.


À propos des auteurs

 Yuan Jiang est un architecte de solutions senior spécialisé dans l'apprentissage automatique. Il est membre du programme Amazon Computer Vision Hero et de la communauté technique Amazon Machine Learning.

Victor Rouge est un architecte de solutions partenaire principal avec un accent sur l'IA conversationnelle. Il est également membre du programme Amazon Computer Vision Hero.

Luis Pineda est un architecte principal de solutions de gestion de partenaires. Il est également membre du programme Amazon Computer Vision Hero.

Miguel Romero Calvo est un Data Scientist du AWS Machine Learning Solution Lab.

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

Horodatage:

Plus de Blog sur l'apprentissage automatique AWS