Preprocesamiento de documentos PDF con Amazon Textract: detección y eliminación de elementos visuales

Nodo de origen: 1204412

Amazon Textil es un servicio de aprendizaje automático (ML) totalmente administrado que extrae automáticamente texto impreso, escritura a mano y otros datos de documentos escaneados que van más allá del simple reconocimiento óptico de caracteres (OCR) para identificar, comprender y extraer datos de formularios y tablas. Amazon Textract puede detectar texto en una variedad de documentos, incluidos informes financieros, registros médicos y formularios de impuestos.

En muchos casos de uso, es necesario extraer y analizar documentos con varios elementos visuales, como logotipos, fotos y gráficos. Estos elementos visuales contienen texto incrustado que complica la salida de Amazon Textract o no es necesario para su proceso posterior. Por ejemplo, muchos formularios o documentos de evaluación de bienes raíces contienen imágenes de casas o tendencias de precios históricos. Esta información no es necesaria en los procesos posteriores y debe eliminarla antes de usar Amazon Textract para analizar el documento. En esta publicación, ilustramos dos métodos efectivos para eliminar estos elementos visuales como parte de su procesamiento previo.

Resumen de la solución

Para esta publicación, usamos un PDF que contiene un logotipo y un gráfico como ejemplo. Usamos dos tipos diferentes de procesos para convertir y detectar estos elementos visuales y luego redactarlos.

En el primer método, usamos el detector de bordes astuto de la biblioteca OpenCV para detectar el borde de las imágenes. Para el segundo método, escribimos un analizador de concentración de píxeles personalizado para detectar la ubicación de estos elementos visuales.

Puede extraer estos elementos visuales para su posterior procesamiento y modificar fácilmente el código para que se ajuste a su caso de uso.

Los PDF con capacidad de búsqueda son archivos PDF nativos generalmente generados por otras aplicaciones, como procesadores de texto, impresoras virtuales de PDF y editores nativos. Estos tipos de archivos PDF retienen metadatos, texto e información de imágenes dentro del documento. Puede utilizar fácilmente bibliotecas como PyMuPDF / fitz para navegar por la estructura del PDF e identificar imágenes y texto. En esta publicación, nos enfocamos en documentos que no se pueden buscar o basados ​​en imágenes.

Opción 1: detección de imágenes con detector de bordes OpenCV

En este enfoque, convertimos el PDF a formato PNG, luego escalamos el documento en escala de grises con el OpenCV-Python biblioteca y use el Canny Edge Detector para detectar las ubicaciones visuales. Puede seguir los pasos detallados a continuación cuaderno.

  1. Convierta el documento a escala de grises.

  1. Aplique el algoritmo Canny Edge para detectar contornos en el documento Canny-Edged.
  2. Identifique los contornos rectangulares con dimensiones relevantes.

Puede ajustar y optimizar aún más algunos parámetros para aumentar la precisión de detección según su caso de uso:

  • Altura y ancho mínimo - Estos parámetros definen los umbrales mínimos de altura y ancho para la detección visual. Se expresa en porcentaje del tamaño de la página.
  • Relleno - Cuando se detecta un contorno de rectángulo, definimos el área de relleno adicional para tener cierta flexibilidad en el área total de la página que se va a redactar. Esto es útil en los casos en que los textos de las imágenes no están dentro de áreas rectangulares claramente delimitadas.

Ventajas y desventajas

Este enfoque tiene las siguientes ventajas:

  • Satisface la mayoría de los casos de uso
  • Es fácil de implementar y rápido de poner en marcha
  • Sus parámetros óptimos dan buenos resultados

Sin embargo, el enfoque tiene los siguientes inconvenientes:

  • Para los elementos visuales sin un cuadro delimitador o bordes circundantes, el rendimiento puede variar según el tipo de elementos visuales
  • Si un bloque de texto está dentro de cuadros delimitadores grandes, todo el bloque de texto puede considerarse visual y eliminarse mediante esta lógica.

Opción 2: análisis de concentración de píxeles

Implementamos nuestro segundo enfoque analizando los píxeles de la imagen. Los párrafos de texto normal conservan una firma de concentración en sus líneas. Podemos medir y analizar las densidades de píxeles para identificar áreas con densidades de píxeles que no son similares al resto del documento. Puede seguir los pasos detallados a continuación cuaderno.

  1. Convierta el documento a escala de grises.
  2. Convierte las áreas grises en blancas.
  3. Contraiga los píxeles horizontalmente para calcular la concentración de píxeles negros.
  4. Divida el documento en franjas horizontales o segmentos para identificar aquellos que no son texto completo (que se extienden por toda la página).

  1. Para todos los segmentos horizontales que no son texto completo, identifique las áreas que son texto y las áreas que son imágenes. Esto se hace filtrando las secciones utilizando umbrales mínimos y máximos de concentración de píxeles negros.
  2. Elimine las áreas identificadas como texto no completo.

Puede ajustar los siguientes parámetros para optimizar la precisión de la identificación de áreas sin texto:

  • Umbrales de segmento horizontal sin texto - Defina los umbrales mínimos y máximos de concentración de píxeles negros utilizados para detectar segmentos horizontales sin texto en la página.
  • Umbrales de segmento vertical sin texto - Defina los umbrales de concentración de píxeles negros mínimos y máximos que se utilizan para detectar segmentos verticales sin texto en la página.
  • Tamaño de ventana - Controla cómo se divide la página en segmentos horizontales y verticales para el análisis (X_WINDOW, Y_WINDOW). Está definido en número de píxeles.
  • Área visual mínima - Define el área más pequeña que se puede considerar como visual a eliminar. Está definido en píxeles.
  • Umbral de rango de grises - El umbral para eliminar los tonos de gris.

Ventajas y desventajas

Este enfoque es altamente personalizable. Sin embargo, tiene los siguientes inconvenientes:

  • Los parámetros óptimos toman más tiempo y logran una comprensión más profunda de la solución
  • Si el documento no está perfectamente rectificado (imagen tomada por la cámara con un ángulo), este método puede fallar.

Conclusión

En esta publicación, mostramos cómo puede implementar dos enfoques para redactar imágenes de diferentes documentos. Ambos enfoques son fáciles de implementar. Puede obtener resultados de alta calidad y personalizar cualquiera de los métodos de acuerdo con su caso de uso.

Para obtener más información sobre las diferentes técnicas en Amazon Textract, visite el público Repositorio de GitHub de ejemplos de AWS.


Acerca de los autores

 yuan jiang es un arquitecto de soluciones senior con un enfoque en el aprendizaje automático. Es miembro del programa Amazon Computer Vision Hero y de la comunidad de campo técnico de Amazon Machine Learning.

Víctor Rojo es un arquitecto de soluciones de socio senior con enfoque de IA conversacional. También es miembro del programa Amazon Computer Vision Hero.

Luis Pineda es un arquitecto senior de soluciones de gestión de socios. También es miembro del programa Amazon Computer Vision Hero.

Miguel RomeroCalvo es un científico de datos del AWS Machine Learning Solution Lab.

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

Sello de tiempo:

Mas de Blog de aprendizaje automático de AWS