Reconocimiento de texto basado en aprendizaje profundo [implementación de interfaz DB+CRNN+PyQt5]


prefacio

  Con el desarrollo y la mejora continuos de la tecnología informática, es de importancia práctica utilizar la tecnología de procesamiento de imágenes por computadora para estudiar la tecnología de reconocimiento automático de objetivos, como el sistema de reconocimiento de texto, el método de reconocimiento de texto basado en el aprendizaje profundo, utilizando el algoritmo DB para posicionamiento de texto y algoritmo CRNN Reconocimiento de texto, implementado usando Paddle como framework. En primer lugar, la ubicación del texto se basa en el algoritmo DB. El algoritmo DB tiene las características de umbral adaptativo y generación de etiquetas, que pueden detectar y ubicar el área de texto de manera efectiva. Al aprender las áreas de texto y sin texto en la imagen, el algoritmo DB puede generar cuadros delimitadores de texto precisos para proporcionar una entrada precisa para el reconocimiento de texto posterior. En segundo lugar, el reconocimiento de caracteres se realiza en base al algoritmo CRNN.
  Este artículo elige Paddle como marco de aprendizaje profundo. Paddle tiene buena escalabilidad y alto rendimiento. Al mismo tiempo, desarrolla una interfaz visual interactiva basada en PyQt5, admite el reconocimiento de imágenes por lotes del usuario, dibuja cualquier área con un mouse rectangular y realiza el reconocimiento de texto, y admite que los resultados del reconocimiento de texto se muestren en la imagen.

关键词:文字识别;DB;CRNN;深度学习;卷积神经网络;PyQt5;PaddlePaddle


Efecto de demostración de video

Reconocimiento de texto en chino e inglés basado en aprendizaje profundo

Enlace de descarga de código

  Si desea obtener todos los archivos de programa completos involucrados en la publicación del blog (incluidas las imágenes de prueba, los archivos py, los archivos de peso del modelo ocr, las instrucciones de depuración, etc.), se empaquetaron y cargaron en la multiplataforma de pan del blogger. detalles, consulte blogs y videos, todos los archivos involucrados se han empaquetado al mismo tiempo. Hay instrucciones específicas para la instalación y depuración de software. Contamos con técnicos de depuración profesionales que ayudarán a los clientes a depurar de forma remota. Para más detalles, por安装条件说明.txt favor ver la captura de pantalla del archivo completo de la siguiente manera:
inserte la descripción de la imagen aquí

1. Posicionamiento de texto DB

1.1 Descripción general de la base de datos

  La binarización diferenciable (DB) es un algoritmo de aprendizaje profundo para el posicionamiento de texto, propuesto por el primer autor Minghui Liao et al. en 2018. El objetivo del algoritmo DB es realizar la binarización (clasificación binaria) de las regiones de texto de forma diferenciable, para que pueda entrenarse y optimizarse de extremo a extremo.
  Los métodos tradicionales de localización de texto generalmente se basan en características y umbrales diseñados manualmente para la binarización, y existen muchas dificultades y limitaciones. El algoritmo DB reemplaza la operación de binarización tradicional al introducir una función continua diferenciable, lo que permite la retroalimentación de gradiente y el proceso de entrenamiento de extremo a extremo. El diagrama de bloques del posicionamiento de texto DB se muestra en la siguiente figura.
inserte la descripción de la imagen aquí

1.2 Principio del algoritmo DB

1.2.1 Marco general

  El marco de red del algoritmo de posicionamiento de texto DB se muestra en la figura a continuación, y la imagen de entrada se ingresa en el esqueleto después de la pirámide de características. En segundo lugar, las características piramidales se muestrean a la misma escala y se concatenan para producir la característica F. Luego, la característica F se usa para predecir el mapa de probabilidad P y el mapa de umbral T. Posteriormente, se calcula un mapa binario aproximado a partir de P y F. Durante el ciclo de entrenamiento, la supervisión se aplica al mapa de probabilidad, a saber, el mapa de umbral y el mapa binario aproximado, donde el mapa de probabilidad y el mapa binario aproximado comparten la misma supervisión. En la etapa de inferencia, los cuadros delimitadores se pueden mapear fácilmente a partir de mapas de probabilidad binarios aproximados.
inserte la descripción de la imagen aquí

1.2.2 Red de extracción de características Resnet

  ResNet (Residual Neural Network) es una arquitectura de red neuronal convolucional profunda propuesta por Kaiming He et al. en 2015. El objetivo de diseño de ResNet es resolver el problema de la desaparición de gradientes y la degradación de la red en el entrenamiento de redes profundas, de modo que las redes más profundas se puedan entrenar y optimizar más fácilmente.
  La idea central de ResNet es construir una red profunda mediante la introducción de conexiones residuales. Específicamente, la red de extracción de características de ResNet consta de una serie de bloques residuales, cada uno de los cuales contiene múltiples capas convolucionales y capas de normalización por lotes. Dentro del bloque residual, las características de entrada se transforman mediante una serie de convoluciones y funciones de activación, se agregan a la conexión residual y luego pasan a través de la función de activación para obtener las características de salida final. Esta conexión de salto permite que la red aprenda la parte residual mientras conserva la información de las características originales.

# 定义ResNet网络
class ResNet(nn.Layer):
    def __init__(self, block, layers, num_classes=1000):
        super(ResNet, self).__init__()
        self.in_channels = 64
        self.conv1 = nn.Conv2D(3, 64, kernel_size=7, stride=2, padding=3, bi-as_attr=False)
        self.bn1 = nn.BatchNorm2D(64)
        self.relu = nn.ReLU()
        self.maxpool = nn.MaxPool2D(kernel_size=3, stride=2, padding=1)
        self.layer1 = self._make_layer(block, 64, layers[0])
        self.layer2 = self._make_layer(block, 128, layers[1], stride=2)
        self.layer3 = self._make_layer(block, 256, layers[2], stride=2)
        self.layer4 = self._make_layer(block, 512, layers[3], stride=2)
        self.avgpool = nn.AdaptiveAvgPool2D((1, 1))
        self.fc = nn.Linear(512, num_classes)
    def _make_layer(self, block, out_channels, blocks, stride=1):
        downsample = None
        if stride != 1 or self.in_channels != out_channels:
            downsample = nn.Sequential(
                nn.Conv2D(self.in_channels, out_channels, kernel_size=1, stride=stride, bias_attr=False),
                nn.BatchNorm2D(out_channels)
            )
        layers = [block(self.in_channels, out_channels, stride, downsample)]
        self.in_channels = out_channels

        for _ in range(1, blocks):
            layers.append(block(out_channels, out_channels))
        return nn.Sequential(*layers)

1.2.3 Umbral adaptativo

  En el algoritmo DB, el umbral adaptativo es un principio importante para el posicionamiento de caracteres. Los métodos de binarización tradicionales suelen utilizar un umbral fijo para segmentar una imagen en partes de primer plano (texto) y de fondo. Sin embargo, dado que el texto de la imagen puede tener un brillo y un contraste diferentes, el método de usar un umbral fijo puede dar lugar a resultados de segmentación inexactos, y el efecto de umbral adaptativo se muestra en la siguiente figura.
inserte la descripción de la imagen aquí
  Al introducir un mecanismo de umbral adaptativo, el algoritmo DB puede determinar dinámicamente el umbral de binarización de acuerdo con la información local de cada píxel, para lograr un posicionamiento de texto más preciso. El siguiente es el principio del umbral adaptativo en el algoritmo DB:
  Primero, extracción de características, utilizando CNN para extraer características N-dimensionales de la imagen de entrada.
  Estimación de umbral, la red de predicción generalmente consiste en una serie de capas convolucionales y funciones de activación, y el valor de parámetro más obvio en el mapa de características se usa como umbral.
  Binarización, use el umbral adaptativo para comparar el umbral del mapa de características para realizar la binarización.
Mediante el uso de un umbral adaptativo, el algoritmo DB puede lograr un posicionamiento de texto más preciso de acuerdo con los cambios de brillo y contraste de las diferentes áreas de la imagen.

1.2.4 Generación de anotaciones de área de texto

  En el algoritmo DB, la generación de anotaciones se refiere a la generación de una máscara de segmentación binaria (máscara) para el entrenamiento, que se utiliza para indicar si cada píxel de la imagen pertenece al área de texto.
  Estas máscaras de segmentación binaria se pueden usar como señales de supervisión para ayudar a la red a aprender el posicionamiento correcto del texto.El siguiente es el principio de generación de anotaciones en el algoritmo de base de datos: Preparación de datos: Primero, se debe preparar un conjunto de datos de imagen de entrenamiento con anotaciones de área de texto.
Transformación de anotaciones: para cada imagen, la información de anotaciones de la región de texto se convierte en una máscara de segmentación binaria.
  Aumento de datos: para aumentar la diversidad y la solidez de las muestras de entrenamiento, se pueden aplicar técnicas de aumento de datos, como la rotación aleatoria, el escalado, el recorte, etc., para generar múltiples imágenes transformadas y las correspondientes máscaras de segmentación binaria.
  Predicción de máscara de segmentación: durante el proceso de entrenamiento del algoritmo DB, la red recibe una imagen de entrada y predice una máscara de segmentación binaria para la región de texto.
  Cálculo de pérdida: Calcule la función de pérdida comparando la máscara de segmentación binaria predicha por la red con la máscara de segmentación binaria real.
  A través de la generación de anotaciones, el algoritmo DB puede generar una máscara de segmentación binaria correspondiente para cada muestra de entrenamiento y compararla con los resultados de predicción de la red, realizando así un aprendizaje supervisado. La red puede ajustar gradualmente los parámetros mediante la optimización de la función de pérdida, de modo que el resultado de la predicción esté cerca de la máscara de segmentación binaria real y se mejore la precisión del posicionamiento del texto. El proceso de etiquetado del área de texto se muestra en la Figura 3-4 a continuación:

inserte la descripción de la imagen aquí

1.2.5 Entrenamiento del modelo de posicionamiento de texto DB

  El principio y el proceso de entrenamiento del modelo de algoritmo de posicionamiento de texto DB son los siguientes:

  1. Preparación de datos: Primero, se debe preparar el conjunto de datos para el entrenamiento. El conjunto de datos debe contener muestras positivas y negativas. Las muestras positivas son imágenes anotadas que contienen texto y las muestras negativas son imágenes que no contienen texto.
  2. Diseño del modelo: A continuación, es necesario diseñar la estructura de red del modelo de algoritmo de posicionamiento de texto DB. El modelo generalmente se construye utilizando una red neuronal convolucional profunda (CNN).
  3. Definición de función de pérdida: para entrenar el modelo, se debe definir una función de pérdida adecuada para medir el rendimiento y el error del modelo. En las tareas de localización de texto, las funciones de pérdida comúnmente utilizadas incluyen la pérdida de entropía cruzada de clasificación binaria y la pérdida de regresión del cuadro delimitador.
  4. Entrenamiento del modelo: use el conjunto de datos preparado y la función de pérdida definida para comenzar a entrenar el modelo de algoritmo de posicionamiento de texto DB.
  5. Evaluación del modelo: Durante el proceso de entrenamiento, el desempeño del modelo necesita ser evaluado periódicamente. Puede utilizar algunos indicadores de evaluación, como la tasa de precisión, la tasa de recuperación, la puntuación F1, etc., para medir el rendimiento del modelo en la tarea de posicionamiento de texto.

2. Reconocimiento de texto CRNN

2.1 Descripción general de CRNN

  CRNN es un algoritmo de aprendizaje profundo para tareas de reconocimiento de texto. Puede procesar simultáneamente las características espaciales y secuenciar la información de las imágenes, lo que hace que el reconocimiento de texto sea más eficiente y preciso. El proceso general de CRNN se muestra en la siguiente figura. El principio del algoritmo CRNN es de la siguiente manera:
  Primero, extracción de características, la imagen de texto de entrada se extrae a través de la extracción de características de la capa convolucional.
  Modelado de secuencias recurrentes: las características extraídas se ingresan en una red neuronal recurrente (RNN) para el modelado de secuencias.
  Clasificación de secuencias: en el último paso de CRNN, las características generadas por RNN se asignan a la distribución de probabilidad del texto a través de la capa totalmente conectada.
  La ventaja del algoritmo CRNN es que puede capturar simultáneamente las características locales de la imagen y la información de contexto de la secuencia. La capa convolucional puede extraer las características de bajo nivel de la imagen, como bordes, texturas, etc., mientras que la red neuronal cíclica puede modelar la secuencia de características y capturar la información semántica y contextual del texto.
inserte la descripción de la imagen aquí

2.2 Principio de CRNN

2.2.1 Implementación de la arquitectura de la red CRNN

  El flujo lógico de procesamiento general de CRNN se muestra en la siguiente figura
inserte la descripción de la imagen aquí

# 定义CRNN模型
class CRNN(nn.Layer):
    def __init__(self, num_classes):
        super(CRNN, self).__init__()

        self.cnn = nn.Sequential(
            nn.Conv2D(1, 64, kernel_size=3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2D(kernel_size=2, stride=2),
            nn.Conv2D(64, 128, kernel_size=3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2D(kernel_size=2, stride=2),
            nn.Conv2D(128, 256, kernel_size=3, stride=1, padding=1),
            nn.BatchNorm2D(256),
            nn.ReLU(),
            nn.Conv2D(256, 256, kernel_size=3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2D(kernel_size=(2, 1), stride=(2, 1)),
            nn.Conv2D(256, 512, kernel_size=3, stride=1, padding=1),
            nn.BatchNorm2D(512),
            nn.ReLU(),
            nn.Conv2D(512, 512, kernel_size=3, stride=1, padding=1),
            nn.ReLU(),
            nn.MaxPool2D(kernel_size=(2, 1), stride=(2, 1)),
            nn.Conv2D(512, 512, kernel_size=2, stride=1),
            nn.ReLU()
        )

2.2.2 Estructura de la CNN

  En el marco CRNN, se utiliza CNN (red neuronal convolucional) para la extracción de características de imágenes de texto. CNN realiza filtrado y extracción de características en la imagen de texto de entrada a través de la operación de convolución para capturar información local y características de textura en la imagen. El proceso general de CNN en el marco CRNN se muestra en la siguiente figura.

inserte la descripción de la imagen aquí
  A través de la extracción de características de CNN, CRNN puede aprender la representación de características con capacidad semántica y distintiva de la imagen de texto original, y proporcionar información útil para el modelado de secuencias y el reconocimiento de texto posteriores. En el marco de CRNN, los parámetros de CNN generalmente se aprenden a través de un entrenamiento de extremo a extremo para maximizar la extracción y representación de las características del texto en la imagen de entrada.

2.2.3 Estructura RNN

  En el marco CRNN, RNN (Recurrent Neural Network) se utiliza para realizar el modelado de secuencias en las características extraídas por CNN. RNN puede capturar la información de contexto en los datos de secuencia y procesar la secuencia de entrada de longitud indefinida a través de la iteración del paso de tiempo.El proceso general de RNN en el marco CRNN se muestra en la siguiente figura.
inserte la descripción de la imagen aquí

  El siguiente es el principio básico de la implementación de RNN en el marco CRNN:
  Secuencia de características: En CRNN, el mapa de características extraído por CNN se convierte en una secuencia de características para que RNN pueda procesar datos secuenciales paso a paso.
  Unidad RNN: La unidad RNN es el componente básico de RNN, que procesa datos de secuencia a través de una estructura de bucle.
  Transferencia de estado oculto: el estado oculto de la RNN se transfiere entre cada paso de tiempo. El estado oculto contiene la información de contexto de los datos de la secuencia, que puede recordar la información del paso de tiempo anterior y afectar el cálculo del paso de tiempo subsiguiente.
  Iteración de bucle: la unidad RNN en CRNN realizará múltiples iteraciones de bucle de acuerdo con la longitud de la secuencia.
  Modelado de características de secuencia: a través de la iteración cíclica de RNN, se modela la información de contexto en los datos de secuencia.
  En el marco de CRNN, los parámetros de RNN generalmente se aprenden a través de un entrenamiento de extremo a extremo para maximizar la extracción y representación de características de texto en datos de secuencia.

3. Implementación y análisis del sistema de reconocimiento de texto

3.1 La función general del sistema de reconocimiento de texto

  El marco del sistema de reconocimiento de texto de aprendizaje profundo diseñado en este documento se muestra en la siguiente figura.
inserte la descripción de la imagen aquí
  Sus funciones específicas tienen las siguientes funciones:
  Detección de texto: La detección de texto es una de las funciones clave del sistema de reconocimiento de texto de aprendizaje profundo. Detecta y ubica automáticamente las regiones de texto que aparecen en las imágenes.
  Posicionamiento del texto: el posicionamiento del texto se refiere a determinar la posición exacta y el cuadro delimitador del texto en la imagen.
  Reconocimiento de texto: el reconocimiento de texto es la función central del sistema de reconocimiento de texto de aprendizaje profundo. Analice y reconozca imágenes de texto utilizando modelos de aprendizaje profundo.
  Corrección de texto: el sistema de reconocimiento de texto de aprendizaje profundo también puede realizar operaciones de corrección de texto y posprocesamiento para mejorar la precisión de los resultados del reconocimiento. La corrección de texto puede corregir errores que puedan existir en el proceso de reconocimiento de texto, como errores de reconocimiento de caracteres, omisiones de caracteres, etc. Las operaciones de posprocesamiento pueden optimizar y corregir aún más los resultados del reconocimiento, como la corrección de errores de texto y la segmentación continua de texto basada en modelos de lenguaje.
  Soporte en chino e inglés: los sistemas de reconocimiento de texto de aprendizaje profundo generalmente tienen la función de soporte en varios idiomas y pueden manejar tareas de reconocimiento de texto en diferentes idiomas y conjuntos de caracteres. Puede adaptarse a las características y reglas de diferentes idiomas y caracteres, y brindar resultados de reconocimiento precisos.
  Procesamiento por lotes: los sistemas de reconocimiento de texto de aprendizaje profundo generalmente admiten el procesamiento por lotes y pueden procesar varias imágenes de texto al mismo tiempo para mejorar la eficiencia y el rendimiento del procesamiento.
  Visualización e interfaz interactiva: algunos sistemas de reconocimiento de texto de aprendizaje profundo también brindan una interfaz visual e interactiva, que es conveniente para que los usuarios carguen, obtengan una vista previa y editen imágenes de texto, vean los resultados del reconocimiento y realicen las modificaciones y correcciones necesarias.

3.2 Diseño de la interfaz principal del sistema

  El sistema de reconocimiento de texto de aprendizaje profundo en este artículo adopta el diseño del marco PyQt5, que incluye barra de menú, barra de estado, barra de título, cuadro de lista de archivos, cuadro de visualización de imágenes, barra de desplazamiento de zoom de imagen, posicionamiento de texto, botón de función de reconocimiento de texto, pantalla de lista de resultados de reconocimiento cuadro, texto El cuadro de visualización de la posición de detección y su interfaz general se muestran en la siguiente figura.

inserte la descripción de la imagen aquí

3.3 Función de carga de datos de imagen

  El sistema de reconocimiento de texto de aprendizaje profundo en este documento admite la carga y el reconocimiento de imágenes por lotes. Primero, el usuario selecciona una ruta que contiene conjuntos de datos de imágenes y luego hace clic para cargar el directorio.
  Seleccione la función de directorio de imágenes como se muestra en la figura a continuación, el sistema cargará automáticamente todos los archivos de formato de imagen en esta ruta al sistema de reconocimiento de texto, una vez que se complete la carga, la imagen mostrará automáticamente su nombre de archivo en la lista de archivos de imagen , el usuario selecciona la correspondiente Después de que se muestre la imagen, la imagen actual se mostrará automáticamente en el control de imagen.

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

3.4 Función de reconocimiento automático de imágenes

  Las ventajas y desventajas de combinar los dos algoritmos de DB y CRNN son las siguientes:
  Las ventajas son: primero, al combinar las dos tareas de detección y reconocimiento, el algoritmo DB se utiliza principalmente para la detección de texto, que puede ubicar y extraer el texto con precisión. área en la imagen; el algoritmo CRNN Se utiliza principalmente para el reconocimiento de texto y puede identificar el contenido de texto específico en el área de texto detectada. Al combinar los dos, las tareas de detección y reconocimiento de texto se pueden completar al mismo tiempo y se puede mejorar la precisión general del reconocimiento de texto. En segundo lugar, la poderosa capacidad de aprendizaje de características, el algoritmo CRNN puede aprender de manera efectiva las características del texto en la imagen a través de la combinación de convolución y red neuronal cíclica. El algoritmo fusionado puede aprovechar al máximo la capacidad de aprendizaje de funciones de CRNN para mejorar la precisión y la solidez del reconocimiento de caracteres. Finalmente, el uso de información de contexto, el algoritmo CRNN puede modelar la información de contexto de datos de secuencia a través de la red neuronal cíclica, lo cual es muy útil para tareas de reconocimiento de texto. El algoritmo fusionado puede ingresar el área de texto detectada por DB en CRNN para su reconocimiento y usar de manera efectiva la información contextual para mejorar la precisión y la consistencia semántica del reconocimiento de texto.
  Pero también hay desventajas: primero, la complejidad es alta. La integración de los algoritmos DB y CRNN requiere la integración del modelo y el entrenamiento conjunto, lo que aumentará la complejidad del algoritmo y la dificultad del entrenamiento. En segundo lugar, los requisitos de datos de entrenamiento son altos y el entrenamiento del algoritmo de fusión requiere una gran cantidad de datos etiquetados, incluida la información de etiquetado para la detección y el reconocimiento de texto. Obtener datos etiquetados de alta calidad es una tarea desafiante. El último punto es que el tiempo de ejecución es largo y el algoritmo fusionado necesita realizar cálculos en dos etapas de detección y reconocimiento de texto en secuencia, lo que aumentará el tiempo de ejecución general. Especialmente cuando se trata de datos de imagen o video a gran escala, el tiempo de sobrecarga será mayor.
  Después de seleccionar la ruta de la imagen, el sistema carga automáticamente el conjunto de datos de la imagen, haga clic en el botón de reconocimiento OCR, el sistema reconocerá automáticamente todos los archivos de imagen en lotes y su interfaz de operación se muestra en la figura a continuación.
inserte la descripción de la imagen aquí
  Después de que el sistema reconozca automáticamente todos los conjuntos de datos de imagen, haga clic en el botón Aceptar y el sistema mostrará automáticamente todos los resultados de reconocimiento de texto en lotes, incluidas las áreas de texto y los resultados de reconocimiento. Entre ellos, el sistema mostrará automáticamente los resultados de reconocimiento correspondientes en la imagen. uno por uno, que es más intuitivo, y su interfaz se muestra en la siguiente figura. El usuario selecciona cualquier resultado en la lista de resultados de reconocimiento y el sistema mostrará automáticamente el resultado de reconocimiento numerado correspondiente.

inserte la descripción de la imagen aquí

3.5 Función de reconocimiento de área de rectángulo de dibujo de imagen

  Cuando el sistema carga la imagen especificada, el sistema ayuda al usuario a dibujar cualquier área con el mouse para reconocer el texto de la imagen.Haga clic en el botón de posicionamiento del texto del rectángulo y el usuario puede dibujar un rectángulo en el área de la imagen.
inserte la descripción de la imagen aquí

3.6 Función de reconocimiento de región de deformación arbitraria de dibujo de imagen

  Cuando el sistema carga la imagen especificada, el sistema permite que el usuario dibuje cualquier área con el mouse para realizar el reconocimiento de texto de la imagen. Haga clic en el botón de posicionamiento del texto del polígono y el usuario puede dibujar un rectángulo en el área de la imagen. Después de que el área del polígono sea dibujada, la esquina superior izquierda del área del polígono se mostrará para ser reconocida. Su interfaz de operación se muestra en la figura a continuación
inserte la descripción de la imagen aquí

referencias

  1. Reconocimiento de texto basado en la fusión de aprendizaje profundo y SIFT denso[J]. Peng Yuqing, Wang Weihua, Liu Xuan, Zhao Xiaosong, Wei Ming. Journal of University of Science and Technology of China. 2019(02)
  2. Reconocimiento facial de texto basado en la red LeNet-5 de conexión cruzada[J]. Li Yong, Lin Xiaozhu, Jiang Mengying. Acta Automatica Sinica. 2018(01)
  3. Una revisión del reconocimiento de microtexto [J]. Xu Feng, Zhang Junping. Acta Automatica Sinica. 2017(03)
  4. Progreso de la investigación sobre el reconocimiento de caracteres[J]. Huang Jian, Li Wenshu, Gao Yujuan. Ciencias de la computación. 2016 (S2) Investigación sobre el algoritmo de detección de la distancia visual del vehículo basado en la tecnología de extracción de puntos característicos[J]. Li Ting, Lai Yannian, Fang Tengyuan , Yuan Tianyu, Liu Yongtao. Revista de la Universidad Tecnológica de Chongqing (Ciencias Naturales). 2019(07)
  5. Aplicación de entrenamiento distribuido de redes neuronales convolucionales en reconocimiento de texto [J]. Dong Feiyan. Software. 2020(01)
  6. Reconocimiento de texto basado en una red neuronal convolucional de fusión de funciones múltiples [J]. Wang Jianxia, ​​​​Chen Huiping, Li Jiaze, Zhang Xiaoming. Revista de la Universidad de Ciencia y Tecnología de Hebei. 2019(06)
  7. Fusión de reconocimiento de texto de red neuronal convolucional y máquina de vectores de soporte [J]. Wang Zhongmin, Li Hena, Zhang Rong, Heng Xia. Ingeniería y diseño informático. 2019 (12)
  8. Nuevos avances en la investigación del reconocimiento de caracteres [J]. Liu Xiaomin, Tan Huachun, Zhang Yujin. Chinese Journal of Image and Graphics. 2006(10)
  9. Investigación sobre varios algoritmos de reconocimiento de texto basados ​​en la reducción de la dimensionalidad no lineal [D], Huang Mingwei, Universidad de Wuyi, 2011
  10. Reconocimiento de texto basado en LBP y PCA[J] Fan Lihong, Ning Yuan. Nueva industrialización. 2019(02)
  11. Análisis de similitud de secuencias de ADN basado en entropía multiescala [J]. Zhang Jing, Zhou Xiaoan, Zhao Yu. Computadora inteligente y aplicación. 2019 (01)
  12. Una revisión de los algoritmos de escala de grises de imágenes en color [J]. Gu Meihua, Su Binbin, Wang Miaomiao, Wang Zhilei. Investigación de aplicaciones informáticas. 2019 (05)
  13. Método de fusión de funciones en la clasificación de patrones [J]. Liu Weibin, Zou Zhiyuan, Xing Weiwei. Revista de la Universidad de Correos y Telecomunicaciones de Beijing. 2017(04)
  14. Aplicación del algoritmo de extracción de características basado en la combinación de entropía de permutación e índice multifractal en el reconocimiento de emociones[J]. Li Xin, Qi Xiaoying, Tian Yanxiu, Sun Xiaoqi, Fan Mengdi, Cai Erjuan. Comunicación de alta tecnología. 2016(07)
  15. Investigación sobre la extracción de características de emoción EEG basada en la entropía de energía IMF[J]. Lu Miao, Zou Junzhong, Zhang Jian, Xiao Shuyuan, Wei Zuochen. Biomedical Engineering Research. 2016(02)
  16. Monitoreo y reconocimiento en tiempo real de barcos basado en YOLOv3[J].Qu Wenyi. Computer and Modernization. 2020(03)
  17. Investigación sobre el algoritmo de detección de aeronaves de la red DS-YOLO en imágenes de teledetección [J]. Wu Jie, Duan Jin, He Liqun, Li Chaochao, Zhu Wentao. Ingeniería informática y aplicación. 2021(01)
  18. Análisis de algoritmos de redes neuronales convolucionales y ejemplo de procesamiento de imágenes [J]. Liu Zhongyu. Conocimiento y tecnología informática. 2019 (34)
  19. Un método de verificación de la capacidad de generalización del modelo de red neuronal después de la poda [J]. Liu Chongyang, Liu Qinrang. Ingeniería informática. 2019 (10)
  20. Investigación sobre algoritmos de reconocimiento de texto basados ​​en redes neuronales convolucionales [J] Zha Zhihua, Deng Hongtao, Tian Min. Información y computación (edición teórica) 2019(15)
  21. Reconocimiento de señales de radio basado en aprendizaje profundo de imágenes [J]. Zhou Xin, He Xiaoxin, Zheng Changwen. Journal of Communications. 2019(07)
  22. Reconocimiento de expresiones faciales profundas: una encuesta[J] . Li Shan, Deng Weihong. Transacciones IEEE sobre computación afectiva. 2020
  23. Reconocimiento de expresiones faciales detectando la complejidad de las muestras de prueba[J] . Tianyuan Chang, Huihui Li, Guihua Wen, Yang Hu, Jiajiong Ma. Inteligencia Aplicada. 2019 (12)
  24. RTCRelief-F: un algoritmo de poda de conjunto basado en ordenamiento y agrupamiento eficaz para el reconocimiento de expresiones faciales[J] . Danyang Li, Guihua Wen, Zhi Hou, Eryang Huan, Yang Hu, Huihui Li. Sistemas de Información y Conocimiento. 2019 (1)
  25. Comité jerárquico de redes neuronales convolucionales profundas para el reconocimiento robusto de expresiones faciales[J] . Bo-Kyeong Kim, Jihyeon Roh, Suh-Yeon Dong, Soo-Young Lee. Revista sobre interfaces de usuario multimodales. 2016 (2)
  26. Redes convolucionales muy profundas para el reconocimiento de imágenes a gran escala.[J] . Karen Simon-nyan,Andrew Zisserman. CoRR. 2014
  27. [7] Factorización de matriz no negativa dispersa que conserva gráficos con aplicación al reconocimiento de expresiones faciales. [J] . Zhi Ruicong,Flierl Markus,Ruan Qiuqi,Kleijn W Bastiaan. Transacciones IEEE sobre sistemas, hombre y cibernética. Parte B, Cibernética: una publicación de IEEE Systems, Man, and Cybernetics Society. 2011 (1)
  28. Reconocimiento de expresiones faciales basado en patrones binarios locales: un estudio exhaustivo [J] . Caifeng Shan,Shaogang Gong,Peter W. McOwan. Computación de Imagen y Visión. 2008 (6)

Resumir

  El reconocimiento de texto basado en el aprendizaje profundo ha logrado un progreso notable en los últimos años, que consiste principalmente en dos pasos clave: el posicionamiento del texto y el reconocimiento de texto. El posicionamiento de texto utiliza el algoritmo DB (binarización diferenciable), mientras que el reconocimiento de texto utiliza el algoritmo CRNN (red neuronal recurrente convolucional). Esta revisión resumirá la aplicación de estos métodos en el campo del reconocimiento de texto y presentará la justificación para implementarlos utilizando el marco PaddlePaddle.
  El posicionamiento de texto es el paso previo al reconocimiento de texto y su objetivo es ubicar con precisión el área de texto en la imagen. El algoritmo DB resuelve el problema del umbral fijo en el método tradicional de binarización por medio del umbral adaptativo. Utiliza una red de aprendizaje profundo para predecir si cada píxel pertenece a una región de texto, generando una máscara de segmentación binaria. El método tiene buena robustez y adaptabilidad, y puede ubicar texto con precisión de acuerdo con los cambios de brillo y contraste de diferentes imágenes. El reconocimiento de texto es el proceso de convertir imágenes de palabras en texto comprensible. El algoritmo CRNN combina las ventajas de la convolución y RNN, y puede procesar simultáneamente las características espaciales y la información de secuencia de las imágenes.
  En términos de selección del marco de aprendizaje profundo, este documento utiliza el PaddlePaddle doméstico para el desarrollo y la prueba del modelo. La interfaz del sistema de reconocimiento de texto de aprendizaje profundo utiliza la biblioteca de implementación PyQt5. El sistema general incluye funciones de detección de texto, posicionamiento de texto, reconocimiento de texto, procesamiento por lotes de imágenes, visualización e interfaz interactiva.

Supongo que te gusta

Origin blog.csdn.net/weixin_40280870/article/details/132250413
Recomendado
Clasificación