Extracción de información en tiempo real de documentos con docTR

Estás leyendo la publicación: Extracción de información en tiempo real de documentos con docTR

En el aprendizaje automático, la minería de datos es una de las secciones principales que cubren la extracción de datos de las diferentes plataformas. OCR (reconocimiento óptico de caracteres) es parte del proceso de minería de datos que se ocupa principalmente de documentos mecanografiados, escritos a mano o impresos. Estos documentos contienen los datos principalmente en forma de imágenes. La extracción de dichos datos requiere algunos modelos optimizados que puedan detectar y reconocer los textos. Obtener información de documentos estructurados complejos se vuelve difícil y, por lo tanto, requieren algunas metodologías efectivas para la extracción de información. En este artículo, hablaremos de docTR, una herramienta basada en el aprendizaje profundo para localizar y detectar el texto en los documentos. Los puntos principales que se discutirán en el artículo se enumeran a continuación.

Tabla de contenido

  1. El Reconocimiento Óptico de Caracteres (OCR)
  2. Tipos de reconocimiento óptico de caracteres
  3. Aplicaciones de OCR
  4. Información extraída usando docTR
    1. ¿Qué es docTR?
    2. Importando documento
    3. Importación de modelos
    4. Ajuste del modelo
    5. extracción de texto

Comencemos con la comprensión de OCR.

El Reconocimiento Óptico de Caracteres (OCR)

OCR es una forma abreviada de reconocimiento óptico de caracteres o lector óptico de caracteres. Por la forma completa, podemos entender que es algo que puede leer el contenido presente en la imagen. Cada imagen en el mundo contiene cualquier tipo de objeto y algunos de ellos tienen caracteres que los humanos pueden leer fácilmente, la programación de una máquina para leerlos se puede llamar OCR. Programáticamente podemos decir que es el proceso de convertir imágenes de texto escrito a máquina, escrito a mano o impreso en texto codificado por máquina.

Principalmente encontramos el uso de este tipo de programa en la extracción de datos de datos en papel impreso, el ejemplo de papel impreso puede ser pasaportes, facturas, estados de cuenta, tarjetas de presentación, etc. OCR también puede considerarse la programación base para varios proyectos como la minería de texto. , texto a voz, computación cognitiva, etc. mientras que OCR es un programa que está relacionado con el campo de la visión por computadora en el aprendizaje automático.

🔥 Recomendado:  Técnicas de anotación de imágenes con implementación en OpenCV

Hablando de historia, todo comenzó con modelos de entrenamiento con imágenes de todo tipo de caracteres que deben detectarse en los documentos. Hoy en día podemos encontrar que existen modelos que son capaces de detectar y reconocer caracteres con un alto grado de precisión para cualquier tipo de fuente y de cualquier tipo de documento. Además, varios modelos son capaces de generar documentos similares al original y podemos editar el documento generado.

¿Está buscando un repositorio completo de bibliotecas de Python utilizadas en ciencia de datos, echa un vistazo aquí.

Tipos de reconocimiento óptico de caracteres

Hay varios tipos de OCR. Algunos de los tipos básicos de OCR son los siguientes:

  • Reconocimiento óptico de caracteres (OCR): Apunta solo un texto a la vez de los documentos.
  • Reconocimiento óptico de palabras (OWR): Apunta una palabra a la vez de los documentos.
  • Reconocimiento inteligente de caracteres (ICR): Es una actualización del OCR estándar que puede apuntar a un carácter a la vez en forma de letra manuscrita o cursiva.
  • Reconocimiento inteligente de palabras (IWR): Es una actualización del OWR estándar que puede apuntar a una palabra a la vez en forma de letra manuscrita o cursiva.

También podemos clasificar los OCR por su tipo de entorno de trabajo de la siguiente manera:

  • OCR fuera de línea: Este tipo de OCR funciona en modo sin conexión, donde normalmente usamos documentos sin conexión para el reconocimiento de caracteres o palabras.
  • OCR en línea: Este tipo de OCR generalmente está habilitado en el almacenamiento en la nube y son capaces de reconocer caracteres de los documentos que están presentes en la nube.
  • OCR dinámico: Este tipo de OCR es capaz de reconocer caracteres de documentos dinámicos. Aquí los documentos dinámicos son los que mantienen en movimiento los caracteres y las palabras.

Aplicaciones de OCR

Antes de profundizar en la implementación de OCR, debemos conocer los lugares donde se nos puede solicitar que usemos OCR. Algunos ejemplos de tales casos de uso son los siguientes:

  • Entrada de datos.
  • Reconocimiento de número de placa.
  • Reconocimiento de señales de tráfico y vehículos.
  • Extractor de información de documentos importantes como pasaportes, tarjetas Aadhar, etc.
  • Editor de datos escaneados.
  • Libros electrónicos a partir de libros impresos.
  • Tecnología de asistencia para usuarios ciegos y con discapacidad visual.
🔥 Recomendado:  ¿Puede la regularización del sesgo de las redes neuronales resultar en un ajuste inadecuado?

Después de encontrar algunos casos de uso de OCR, debemos tener algún conocimiento sobre la implementación de OCR. en algunos de nuestros artículos, podemos encontrar varias formas de implementar OCR y en este artículo, vamos a discutir otra forma que se puede usar para implementar OCR en nuestros proyectos. docTR es una biblioteca que nos ayuda a realizar OCR. Es una herramienta basada en el aprendizaje profundo en la que se logra un OCR de extremo a extremo mediante un enfoque de dos etapas: detección de texto (localización de palabras) y luego reconocimiento de texto (identificación de todos los caracteres de la palabra). Hagamos una introducción general a esta biblioteca.

¿Qué es docTR?

docTR es una biblioteca que proporciona una implementación de código abierto de OCR y una de las cosas sorprendentes de la biblioteca es que está construida con TensorFlow y PyTorch. Usando esta biblioteca podemos extraer fácilmente información de los documentos. Esta biblioteca tiene 2 modelos de detección de texto y 2 modelos de reconocimiento de texto, y admite más de 10 conjuntos de datos disponibles gratuitamente.

Algunas de las características principales de esta biblioteca son que es fácil de usar para los usuarios de TensorFlow y PyTorch, es robusta, liviana y brinda un rendimiento de vanguardia en el campo de OCR con dependencias mínimas. Podemos instalar su versión TensorFlow usando las siguientes líneas de códigos.

!pip instalar python-doctr[torch]

Antes de la instalación, debemos tener PyTorch y TensorFlow instalados en nuestro entorno. Después de la instalación, estamos listos para usar esta biblioteca.

Usando esta biblioteca podemos extraer información del documento en tan solo 5 pasos. Comencemos con nuestro primer paso de importar un documento.

Importando documento

from doctr.io import DocumentFile doc = DocumentFile.from_images(“/content/D Mart Grocery product price list-1.jpg”) print(f”Número de páginas: {len(doc)}”)

Producción:

Aquí, en los códigos anteriores, podemos ver que esta biblioteca proporciona una función que se puede usar para leer imágenes, y aquí está el resultado, podemos ver que solo hay una imagen. Visualicemos esta imagen.

🔥 Recomendado:  ¿Qué hay de nuevo en PyCaret 2.3.6?

importar matplotlib.pyplot como plt plt_1 = plt.figure(figsize=(16, 16)) plt.imshow(doc[0]) plt.mostrar()

Producción:

Aquí podemos ver que la imagen tiene una lista de precios de algunos de los artículos de abarrotes.

Importación de modelos

En esta sección, veremos cómo podemos instanciar un modelo previamente entrenado de docTR para extraer información del documento.

de doctr.models import ocr_predictor ocr = ocr_predictor(pretrained=True)

Producción:

Aquí podemos ver que hemos instanciado dos modelos en una sola instancia. Ahora podemos ver la estructura de este modelo usando las siguientes líneas de códigos.

LOC

Producción:

En la salida, podemos ver algunas de las capas de estos dos modelos.

Ajuste del modelo

Ajustemos el modelo en la imagen importada.

resultado = ocr(doc)

Podemos comprobar el rendimiento del modelo utilizando los siguientes códigos.

resultado.mostrar(doc)

Producción:

Aquí podemos ver que el modelo ha cubierto casi todo el texto de la imagen.

En esta sección, vamos a recrear la imagen completa usando el modelo.

páginas_sintéticas = resultado.synthesize() plt_1 = plt.figure(figsize=(16, 16)) plt.imshow(páginas_sintéticas[0]) plt.mostrar()

Producción:

Aquí está la imagen que representa todo el texto extraído de la imagen original. Veamos cuáles son las palabras que ha extraído nuestro modelo.

texto = resultado.render() texto

Producción:

Aquí podemos ver todos los textos extraídos de la imagen original.

Ultimas palabras

En este artículo, hemos discutido el reconocimiento óptico de caracteres (OCR) que se utiliza para extraer información de documentos impresos y hemos discutido los tipos y casos de uso de OCR. Junto con esto, hemos visto cómo podemos implementar OCR usando la biblioteca docTR.

Referencias