La Red de Conocimientos Pedagógicos - Currículum vitae - Explicación detallada del algoritmo CRNN

Explicación detallada del algoritmo CRNN

El reconocimiento de caracteres es un método para predecir secuencias, por lo que las redes RNN se utilizan para predecir secuencias. Después de extraer las características de la imagen a través de CNN, use RNN para predecir la secuencia y finalmente obtenga el resultado final a través de la capa de traducción de CTC.

Por lo tanto, el algoritmo CRNN adopta principalmente la estructura de red de tres capas de CNN+RNN+CTC, que es de abajo hacia arriba:

(1) Capa convolucional, que utiliza CNN para extraer de la imagen de entrada Extraer secuencias de características de la capa convolucional;

(capa de bucle, use RNN para predecir la distribución de la etiqueta (valor verdadero) de la secuencia de características obtenida de la capa convolucional;

(3) Capa de transcripción, use CTC Mediante desintegración y otras operaciones, la distribución de etiquetas obtenida por la capa de circulación se convierte en el resultado de reconocimiento final.

La capa convolucional * * * contiene un 7. Red neuronal convolucional de capas. La estructura básica es una estructura VGC, donde la imagen en escala de grises se escala al tamaño de W * 32, que es una altura fija para lograr la relación de aspecto real. La cuarta capa de agrupación tiene un tamaño central de 1 * 2 (no 2 * 2), que se introduce en la capa BN. El mapa de características extraído por CNN se divide en columnas y las características de 512 dimensiones de cada columna se ingresan en las dos. -LSTM bidireccional de 256 unidades de capa para clasificación Durante el proceso de capacitación, la posición del personaje y los estándares de categoría se logran mediante la guía de la función de pérdida de CTC.

Como se muestra en la figura:

Ahora necesitamos extraer la secuencia de vectores de características del mapa de características generado por el modelo CNN. Cada vector de características (cuadro rojo) está en el mapa de características Generado de izquierda a derecha, cada columna contiene 512 dimensiones. características, lo que significa que el I-ésimo vector de características es la conexión de todos los píxeles en la columna I del mapa de características, y estos vectores de características forman una secuencia

Debido a la capa convolucional, la agrupación máxima. La capa y la función de activación se realizan en regiones locales, por lo que son invariantes de traducción. Por lo tanto, cada columna (es decir, vector de características) del mapa de características corresponde a una región rectangular de la imagen original (que se convierte en el campo receptivo). Las áreas rectangulares tienen el mismo orden que las columnas correspondientes de izquierda a derecha en el mapa de características. Cada vector en la secuencia de características está asociado con el vector en la secuencia de características extraídas. La figura se genera secuencialmente de izquierda a derecha. una característica de un cierto ancho de la imagen. El ancho utilizado en este artículo es 1, que es un solo píxel.

Si una imagen contiene 10 caracteres, el tamaño es 100 × 32. obtenido a través de la red CNN anterior es 25 × 1 (aquí se ignora el número de canales) y se obtiene una secuencia de características de cada columna correspondiente a un área rectangular de la imagen original (como se muestra en la figura siguiente). como entrada RNN para facilitar el siguiente paso del cálculo, y

Como se puede ver en la figura anterior, VGG se ajusta de la siguiente manera:

1. extraído por CNN en la red RNN, tercero Y el tamaño del núcleo del cuarto maxpooling se cambia de 2 × 2 a 1 × 2

2 Para acelerar el entrenamiento de la red. La capa se agrega después de la quinta y sexta capa convolucional.

p>

¿Por qué cambiar el tamaño del núcleo del tercer y cuarto maxpooling de 2 × 2 a 1 × 2? extraído por CNN como entrada de RNN. Lo primero a tener en cuenta es que la entrada de esta red es W × 32, lo que significa que la red no tiene requisitos especiales para el ancho de la imagen de entrada, pero la altura debe ser. ajustarse a 32.

Supongamos que hay una entrada de imagen. Para ingresar características en la capa de recurrencia, realice el siguiente procesamiento:

Para obtener una explicación detallada de los principios de CNN, consulte /writer #/notebooks/46006121/Notes/71156459.

Debido a que RNN tiene el problema de la desaparición del gradiente y no puede obtener más información contextual, LSTM se utiliza en CRNN. ​​Su diseño especial le permite capturar dependencias de larga distancia.

La red RNN tiene una salida yt para la secuencia de características X = X1, y la salida xt de la CNN. Para evitar que el gradiente desaparezca durante el proceso de entrenamiento, se utilizan unidades neuronales LSTM como unidades RNN. Este artículo cree que para la predicción de secuencias, tanto la información directa como la información inversa de la secuencia son útiles para la predicción de secuencia, por lo que este artículo utiliza una red RNN bidireccional. La estructura de las neuronas LSTM y la estructura de RNN bidireccional se muestran en la siguiente figura.

Ejemplo:

A través de los pasos anteriores, obtenemos 40 vectores de características, cada vector de características tiene una longitud de 512.

En LSTM, los vectores de características se introducen para la clasificación en un paso de tiempo, de los cuales hay 40 pasos de tiempo.

Sabemos que un vector de características es equivalente a un área rectangular pequeña en la imagen original. El objetivo de RNN es predecir qué carácter es esta área rectangular, es decir, predecir en función del vector de características de entrada. Distribución de probabilidad softmax de todos los caracteres. Esta distribución de probabilidad es un vector con la longitud del número de categorías de caracteres como entrada a la capa CTC.

Debido a que cada paso de tiempo tiene un vector de características de entrada y genera la distribución de probabilidad de todos los caracteres, se genera una matriz de probabilidad posterior compuesta por 40 vectores con una longitud del número de categorías de caracteres, y luego esta probabilidad posterior La matriz genera la matriz de probabilidad empírica y la transfiere a la capa de transcripción.

Durante el examen, hay dos tipos de traducciones, una con diccionario y otra sin diccionario.

Tener un diccionario significa que durante la prueba, el conjunto de prueba tiene un diccionario. Las probabilidades de todos los diccionarios se calculan a partir de los resultados de salida de la prueba, y el más grande es la cadena predicha final.

No hay diccionario, lo que significa que el conjunto de prueba no proporciona qué cadenas contiene. Al predecir, la cadena con la probabilidad de salida más alta se selecciona como la cadena predicha final.

¡La dificultad del reconocimiento OCR de un extremo a otro es cómo lidiar con la alineación de secuencias indefinidas! (Debido a que es una secuencia de longitud indefinida, nos resulta difícil calcular la pérdida de acuerdo con el método anterior. Si es una secuencia de longitud fija, puede conducir fácilmente a la pérdida de información y las limitaciones son demasiado grandes. !)

La transcripción consiste en convertir RNN a cada El proceso de convertir predicciones de vectores de características en secuencias de etiquetas. Matemáticamente, la transcripción consiste en encontrar la secuencia de etiquetas con la combinación de mayor probabilidad en función de la predicción de cada cuadro.

Consulta /writer #/notebooks/46006121/Notes/71156474 para obtener más detalles.