Una guía para la detección y el reconocimiento de texto usando MMOCR

Estás leyendo la publicación: Una guía para la detección y el reconocimiento de texto usando MMOCR

El reconocimiento óptico de caracteres (OCR) es un tipo de conversión de imágenes que básicamente extrae texto de una imagen dada, una foto de un documento, etc. Varias aplicaciones y tecnologías, como Adobe Acrobat y la herramienta basada en ML, como Tesseract OCR, han sido desarrollado para ayudar con este proceso. En este artículo, repasaremos las tareas realizadas en el método OCR. A partir de entonces, analizaremos MMOCR, una aplicación basada en Python que centraliza todas las operaciones relacionadas con OCR. A continuación se enumeran los puntos principales que se discutirán en este artículo.

Tabla de contenido

  1. Detección de texto
  2. reconocimiento de texto
  3. Cómo MMOCR combina todo lo anterior

Primero analicemos la detección de texto.

Detección de texto

La detección de texto es la técnica de detectar texto en una imagen y luego encerrarlo en un cuadro delimitador rectangular. El texto se puede detectar mediante algoritmos basados ​​en imágenes o en frecuencia.

Los enfoques basados ​​en imágenes se utilizan para segmentar imágenes en varios segmentos. Cada segmento está formado por píxeles que tienen cualidades comparables y están conectados. Las características estadísticas de los componentes relacionados se utilizan para categorizar y dar forma al texto. Las técnicas de aprendizaje automático, como las máquinas de vectores de soporte y las redes neuronales convolucionales, se utilizan para clasificar los componentes como texto o no texto. A continuación se muestra un ejemplo de detección de texto.

Los coeficientes de alta frecuencia se extraen utilizando la transformada discreta de Fourier (DFT) o la transformada discreta de wavelet (DWT) en enfoques basados ​​en la frecuencia. Se cree que el texto de una imagen tiene componentes de alta frecuencia, y elegir solo los coeficientes de alta frecuencia separa el texto de las regiones sin texto.

🔥 Recomendado:  Publicidad programática para principiantes en 2023: términos clave, ejemplos y tendencias explicadas

Para una imagen dada, hay regiones de texto y sin texto que tienen diferentes cualidades textuales, los enfoques basados ​​en regiones dividen las imágenes en pequeñas secciones usando ventanas y buscan en estas regiones la presencia de texto usando operaciones de textura o morfológicas. Algunas técnicas categorizan texto y no texto utilizando una ventana de 64 x 32 píxeles y el clasificador Modest AdaBoost en 16 escalas espaciales diferentes de la imagen, teniendo en cuenta cambios sustanciales en el tamaño del texto.

reconocimiento de texto

La etapa de reconocimiento de texto transforma imágenes de texto en una cadena de caracteres u oraciones. Las palabras son una entidad elemental utilizada por los humanos para el reconocimiento visual, por lo que convertir imágenes de texto en palabras es fundamental.

El reconocimiento de caracteres y el reconocimiento de palabras son dos técnicas diferentes de reconocimiento. Los algoritmos de reconocimiento de caracteres separan una imagen de texto en varios recortes de un solo carácter. Para estas estrategias, la separación de personajes entre personajes adyacentes es crucial.

El reconocimiento de caracteres mediante el módulo de reconocimiento óptico de caracteres (OCR) se utiliza en el proceso de reconocimiento, donde las imágenes primero se segmentan en k clases, seguido de la generación de hipótesis de imagen de texto binario, que pasa por el análisis de componentes conectados y el módulo de restricción de consistencia de escala de grises antes de ser alimentado a OCR.

Se utiliza un clasificador basado en Support Vector Machine (SVM) para el reconocimiento de caracteres, ya que SVM admite bien la clasificación multiclase.

El reconocimiento de palabras reconoce palabras de imágenes de texto al combinar salidas de reconocimiento de caracteres con modelos de lenguaje o léxicos. En el caso de caracteres degradados, se puede emplear. El reconocimiento de palabras es un enfoque superior al reconocimiento de caracteres para situaciones con un número restringido de posibilidades de palabras en las fotos de entrada.

🔥 Recomendado:  La guía definitiva para escribir metadescripciones

Cómo MMOCR combina todo lo anterior

El MMOCR significa Reconocimiento óptico de caracteres multimedia, que es una caja de herramientas basada en Python que combina todas las modalidades, como discutimos anteriormente, necesarias para una solución completa de extremo a extremo en el campo de OCR.

MMOCR, en particular, ofrece una canalización para la detección y el reconocimiento de texto, así como tareas posteriores como el reconocimiento de entidades nombradas y la extracción de información crítica. MMOCR tiene 14 algoritmos de vanguardia, mucho más que cualquier otro proyecto de OCR de código abierto, como Tesseract OCR.

La caja de herramientas ahora incluye siete métodos de detección de texto, cinco métodos de reconocimiento de texto, un método de información clave y un método de reconocimiento de entidad nombrada.

Veamos ahora cómo podemos hacer uso de esta herramienta de manera práctica. Al ejecutar el siguiente script, podemos instalar todas las dependencias necesarias para ejecutar esta herramienta. Si encuentra algún problema, consulte esta guía de instalación oficial.

# ¡instalando pytorch precompilado! pip install torch==1.6.0 torchvision==0.7.0 # ¡instalar mmcv (biblioteca basada en visión artificial)! pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html # ¡ahora debajo de install mmdet, mmocr! pip instalar mmdet! clon de git https://github.com/open-mmlab/mmocr.git %cd mmocr ! pip install -r requisitos.txt! instalación pip -v -e . !exportar PYTHONPATH=$(contraseña):$PYTHONPATH

Primero realizaremos la detección de texto para esa clase MMOCR de importación desde el repositorio instalado como se muestra a continuación y dentro de esta clase, se pueden inicializar los diversos métodos, como la detección, el reconocimiento y la comprensión.

from mmocr.utils.ocr import MMOCR ocr = MMOCR(det=”TextSnake”, recog=Ninguno) resultados = ocr.readtext(‘/content/street-sign-board-500×500.jpg’, output=”/content/street .jpg”, exportar=”/contenido/”)

🔥 Recomendado:  ¿Le preocupa que la IA se haga cargo de su trabajo? ¡Estos 5 cursos rápidos de ingeniería lo mantendrán a la vanguardia del juego!

En el método anterior, hemos definido la ruta para la imagen de salida al directorio colab predeterminado con el nombre del archivo de salida y da como resultado los cuadros delimitadores de informes de detección como podemos ver a continuación.

De manera similar, al combinar detección y reconocimiento, necesitamos inicializar tanto det como recog dentro de la clase MMOCR como se muestra a continuación.

# detección+reconocimiento ocr = MMOCR(det=”PS_CTW”, recog=’SAR’) # Resultados de inferencia = ocr.readtext(‘/content/ealistic-shop-receipt-paper-payment-bill.jpg’,export=” /contenido/”,salida=”/contenido/factura.jpg”, print_result=Verdadero)

Dentro de ocr.readtext establecemos print_reult en True, lo que nos da el formato Jason del resultado y para esta tarea hemos usado un recibo de factura,

resultado de jason,

resultado JPG,

Ultimas palabras

A lo largo de este artículo, hemos discutido la detección y el reconocimiento de texto para una imagen determinada y brevemente qué métodos se utilizan para abordar estas tareas. Para facilitar una plataforma de extremo a extremo, tenemos una caja de herramientas basada en aprendizaje profundo llamada MMOCR mediante la cual podemos tener todas las tareas relacionadas con OCR dentro de un solo marco.

Referencias

Tabla de Contenido