Uno de la serie de reconocimiento OCR - realización técnica

Si la entrada de imagen en el sistema es una página de texto, lo primero que debe hacer al reconocer es juzgar la orientación del texto en la página, porque la página que obtenemos a menudo no es perfecta y puede estar sesgada o manchada, por lo que lo primero que debemos hacer es preprocesar la imagen, corregir el ángulo y eliminar el ruido.

Luego, debemos analizar el diseño del documento, segmentar cada línea, recortar el texto de cada línea y, finalmente, segmentar cada línea de texto en columnas, recortar cada carácter, enviar el carácter al modelo de reconocimiento de OCR capacitado para el reconocimiento de caracteres y obtener el resultado.

Sin embargo, los resultados del reconocimiento del modelo a menudo son inexactos y necesitamos corregir y optimizar los resultados del reconocimiento.Por ejemplo, podemos diseñar un detector de gramática para detectar si la lógica de combinación de caracteres es razonable. Por ejemplo, considere la palabra Porque, el modelo de reconocimiento que diseñamos la reconoce como 8ecause, luego podemos usar el detector de gramática para corregir este error ortográfico, y reemplazar 8 con B y completar la corrección de reconocimiento. De esta forma, se completa todo el proceso de OCR. A partir del resumen de módulos grandes, un conjunto de procesos de OCR se puede dividir en:

Análisis de diseño -> Preprocesamiento -> Corte de filas y columnas -> Reconocimiento de caracteres -> Reconocimiento y corrección de posprocesamiento

La realización de la tecnología OCR se puede dividir generalmente en cinco pasos: preprocesamiento de imágenes , corte de caracteres , reconocimiento de caracteres , restauración del diseño y posprocesamiento de texto .

El preprocesamiento de imágenes y el posprocesamiento de texto es la parte más difícil.

Cortar caracteres, reconocer caracteres y restaurar el diseño son los pasos principales del reconocimiento de caracteres.

1. Preprocesar la imagen

(1) Para texto sesgado, puede encontrar el rectángulo de área mínima (minAreaRect) del texto y luego girar el rectángulo para enderezar el rectángulo para lograr la corrección del ángulo.

Si el texto en el área rectangular está nuevamente inclinado, considere usar la Transformación de líneas de Hough (HoughLinesP) en este momento. La Transformación de líneas de Hough es para encontrar líneas rectas en el gráfico, porque varios puntos en el gráfico pueden formar una línea recta y dibujar estas líneas rectas.

Se puede encontrar que las palabras en cada línea deben estar en línea recta.

La corrección se realiza encontrando el método de la línea recta.

(2) Para el texto distorsionado, este tipo de problema a menudo ocurre al tomar fotografías.Por ejemplo, el ángulo de toma de fotografías causará distorsión del texto y distorsión espacial, lo que se refleja en la visión de que la distancia es grande y pequeña.

Pasos de procesamiento:

1. Introduzca la imagen original

2. Procesamiento en escala de grises

3. Binarización

4. Operación de expansión

5. Operación de corrosión, adelgazamiento de bordes.

6. Detección de bordes

7. Detección de marcos rectangulares

8. Corrige el rectángulo distorsionado

9. Corrección completada

Para algunos datos de origen identificados, la situación es mejor y se puede ignorar el preprocesamiento

2. Cortar personajes

Después del preprocesamiento, una vez que la imagen se estandariza, se realiza el corte de caracteres para eliminar cada carácter. Porque el reconocimiento final de OCR es reconocer un solo carácter (por ejemplo, para reconocerte, de hecho, reconoce y, o, u en secuencia), y además, al cortar caracteres, cada carácter debe marcarse para operaciones posteriores de restauración. Restaurar según la posición relativa entre caracteres.

Método de corte de caracteres.

(1) método de proyección

Usando el sentido común de que cada entidad tiene una sombra, los caracteres también tienen una sombra. Este método se puede usar para la segmentación de filas y la segmentación de columnas. Tenga en cuenta que primero se debe cortar la fila y luego la columna.

Corte de línea: recolecte píxeles horizontalmente, insértelos desde la izquierda, empuje hacia afuera desde la derecha y apile todos los puntos negros en el extremo derecho

Corte de columna: corte verticalmente, sobre la base del corte de fila, realice la proyección de columna para cada bloque de corte por separado

 Finalmente, a través del espacio entre las proyecciones, podemos cortar cada carácter.

Para facilitar la identificación de OCR, programamos los caracteres de corte en caracteres en blanco y negro, en el valor de color RGB, 0 representa el negro y 255 representa el blanco.

3. Usa la red neuronal para reconocer personajes

Lo principal que hay que aprender son las características de cada personaje. Aunque aprendiendo las características en una imagen de 32*32 píxeles, también puedes aprender muy bien.

Siempre que construyamos una red neuronal y luego ingresemos la imagen para el aprendizaje, la máquina aprenderá naturalmente las características de cada personaje.Este proceso es relativamente simple.

4. Post-procesamiento de texto

reducción::

Después de reconocer los caracteres, es necesario restaurarlos. Este paso es muy importante. El resultado del reconocimiento de caracteres y la información de posición de los caracteres obtenida anteriormente se utilizan para la restauración.

Juzgamos si los caracteres están en la misma fila y en la misma columna según la información de posición de los caracteres.

Por ejemplo, para juzgar si dos palabras están en la misma línea, puede observar la superposición de las dos palabras en el eje Y. Si la superposición alcanza cierta proporción, se puede considerar que los dos conjuntos de datos están en la misma fila. También puede observar la relación de superposición de dos textos en dirección vertical para juzgar si pertenecen a la misma columna.

Corrección:

Para obtener un contenido de texto más preciso, también debemos corregir los resultados. Las correcciones se pueden hacer en contexto con la ayuda de correcciones inteligentes. Por ejemplo, algunas reglas de codificación fijas y similares.

5. Resumen

Creo que el enfoque de OCR radica en los datos. La cantidad de datos determina la tasa de reconocimiento. Para el mismo algoritmo, la generalización de una gran cantidad de datos es obviamente más fuerte que la de una pequeña cantidad de datos. Cuando la cantidad de datos es demasiado pequeña, una vez que hay algunos cambios, la tasa de reconocimiento puede verse seriamente afectada. Este aprendizaje automático es como un ser humano. Solo lee caracteres chinos y reconoce el inglés por usted. Definitivamente no sabe cuáles son los caracteres en inglés. Así que la diversidad de datos es muy importante.


 

Supongo que te gusta

Origin blog.csdn.net/wangmengmeng99/article/details/129947017
Recomendado
Clasificación