Deep Learning para el Reconocimiento de Texto...

47
Deep Learning para el Reconocimiento de Texto Manuscrito Trabajo Fin de Grado

Transcript of Deep Learning para el Reconocimiento de Texto...

Page 1: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Deep Learning para el Reconocimiento de Texto

ManuscritoTrabajo Fin de Grado

Page 2: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

¿Quién es este chiquillo?

Page 3: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Índice

● Introducción

● Datos

● Redes Neuronales Artificiales

● Arquitecturas

● Pruebas y Resultados

● Conclusiones y Trabajo Futuro

Page 4: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Introducción

Page 5: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Introducción IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo FuturoReconocimiento de Caracteres

Page 6: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Introducción IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Reconocimiento Óptico de Caracteres (OCR)● Caracteres definidos e invariantes.

● Segmentación y transcripción.

Reconocimiento Óptico de Manuscritos (OHR)● Caligrafía arbitraria y variante.

● Difícil segmentación.

Motivación

Page 7: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Introducción Objetivo

Sistema OHR basado en Deep Learning.

yesterdayOHRPreviamente Entrenado

Mediante entrenamiento, el sistema “aprende a leer” palabras completas.

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 8: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Datos

Page 9: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Datos IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo FuturoOrigen

IAM Handwriting Database de la Universidad de Berna● 1.539 páginas manuscritas en inglés.● 657 escritores.● 87.107 muestras.

Caracteres (Etiquetas)● Números● Mayúsculas ● Minúsculas● 62 símbolos en total.

Page 10: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

DatosTratamiento

yesterday ‘60’, ‘40’, ‘54’, ‘55’, ‘40’, ‘53’, ‘39’, ‘36’, ‘60’

● Input: Tensores orden 3 que representan las imágenes.● Output: Secuencias de enteros que representan los símbolos.

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 11: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

DatosPreprocesado para las Imágenes

● Invierten tonos.● Reescalado guardando las proporciones.● Relleno tras la palabra.● Normalización del tensor asociado.

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 12: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

DatosPreprocesado para las Imágenes

Imagen con la palabra “down” y su tensor asociado.(Representación simbólica, no exacta)

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 13: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

DatosPreprocesado para las Imágenes

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Imagen procesada y tensor asociado normalizado.(Representación simbólica, no exacta)

Page 14: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

DatosMapeo de caracteres

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 15: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales Artificiales

Page 16: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales Artificiales IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro Conceptos básicos.

● Entradas.● Umbral y Pesos

ajustables.● Función de activación.● Salida propia.

● Estructuradas en capas.● Transmiten la señal de forma

dirigida.● Descenso del Gradiente● Retropropagación del Error

Page 17: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales ArtificialesRed Neuronal Convolucional

● Convolución de tensores en dos dimensiones.

● Valor, posición y vecindad.

● Filtros actúan como núcleos de convolución.

● Todos los filtros operan sobre la misma entrada.

● Se concatenan las salidas generadas por cada filtro.

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 18: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales ArtificialesRed Neuronal Recurrente

● Ciclos en las interconexiones de la red.

● Tienen “memoria”.

● Retropropagación a través del tiempo● Trabajan con secuencias de una

limitada longitud.

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 19: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales ArtificialesDesvanecimiento del Gradiente

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 20: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales ArtificialesLong Short Term Memory

● Permiten trabajar con secuencias de mayor longitud.

● Neuronas sustituidas por celdas LSTM, más complejas.

● Cada celda tiene un estado interno y unas determinadas puertas.

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 21: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales ArtificialesConnectionist Temporal Classification

ANN CTC

● Patrones entre secuencias de distinta longitud.

● ANN previa.

● Alfabeto = etiquetas + “blanco”.

a | e | i | o | u 0 1 2 3 4

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 22: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales ArtificialesSoftmax

● Distribuciones de probabilidad condicionadas.

● Tantas salidas como entradas.

ANN Softmax

Softmax0

0.5

1

-0.5

0.1

0.46

0.28

0.17

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 23: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales ArtificialesFunción Ɓ: Ruta a Secuencia de Etiquetas

Mapeo Many to one:

1. Eliminar las etiquetas repetidas consecutivas.2. Eliminar las etiquetas en blanco.

Ɓ}a--aa-bba-aaa--ba--aabb-

aab Ɓ {a--aa-bba-aaa--ba--aabb-

aab ...-1

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 24: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales ArtificialesANN-Softmax

SoftmaxANN

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 25: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales ArtificialesRutas

SoftmaxANN

aaeiiou-oo-e-a-u{Rutas

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 26: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales ArtificialesDecodificación

Ɓ}aaeiiou-oo-e-a-u {aeiou

oeau

Ɓ {aaeeiou-a-eiiouuaeioou--...

-1aeiou

Prob. Secuencia de Etiquetas:

∑Prob. Ruta

Prob. de Ruta:

∏Prob. Símbolo

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 27: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales ArtificialesFunción Objetivo

Función de Verosimilitud:

Max. Pr(Sec. Correcta | Entrada)

Función de Pérdidas:

Min. -ln(Pr)

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 28: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Redes Neuronales ArtificialesTasa de errores de etiqueta (LER)

Distancia de edición o distancia de Levenshtein

● Inserciones● Sustituciones● Eliminaciones

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 29: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Arquitecturas

Page 30: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Arquitecturas IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo FuturoArquitecturas especializadas.

Page 31: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

ArquitecturasArq. Extracción de Características

Capa Convolucional● Rel. Entrada-Salida

Max-Pool● Red. Dimensionalidad

Dropout● Añade Ruido

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 32: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

ArquitecturasArq. Recurrente Bidireccional

Reestructuración● Red. Orden● Dim. Altura

Capas Recurrentes● Direcciones Opuestas● Dim. Anchura

Concatenación● Dim. Altura

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 33: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

ArquitecturasArq. Reducción de Dimensionalidad

Capas Full Connect o Feedforward● Red. Dimensionalidad● Dim. Altura● 63 Neuronas de salida.

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 34: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

ArquitecturasArquitectura Global (Entrenamiento)

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 35: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

ArquitecturasArquitectura Global (Transcripciones)

yesterday

‘60’, ‘40’, ‘54’, ‘55’, ‘40’, ‘53’, ‘39’, ‘36’, ‘60’

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 36: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

ArquitecturasHiperparámetros

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 37: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

ArquitecturasImplementación

Python3● TensorFlow 1.3 (GPU)● Pandas● Numpy● PIL

Repositorio Público● Github

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 38: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Pruebas y Resultados

Page 39: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Pruebas y Resultados IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo FuturoTest IAM.

Entrenamiento por épocasValidaciones periódicasAlcanzar LER mínimo

Datasets Predefinidos:● Entrenamiento (60%)● Validación (20%)● Test (20%)

Metricas:● LER● Coste

Page 40: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Pruebas y ResultadosTest IAM.

Época 27450 Dataset LER Coste

Entrenamiento 0.087 1.149

Validación 0.159 4.807

Test 0.175 3.977

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 41: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Pruebas y ResultadosValidación Cruzada.

Medias Aritméticas:● LER● Coste

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 42: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Pruebas y ResultadosValidación Cruzada.

Época LER Train LER Val Coste Train Coste Val

10850 0.231 0.245 3.147 4.804

16450 0.193 0.230 3.700 4.890

IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Page 43: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Conclusiones y Trabajo Futuro

Page 44: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Conclusiones y Trabajo Futuro IntroducciónDatos

Redes Neuronales ArtificialesArquitecturas

Pruebas y ResultadosConclusiones y Trabajo Futuro

Trabajo Futuro● No se ha buscado la eficiencia.● Fundamentos matemáticos.● Versatilidad de las Redes

Neuronales Artificiales.● Medidas poco intuitivas.● Letras duplicadas

consecutivas.● Dataset excesivamente limpio.● Otros campos de aplicación.

● Exploración de Hiperparámetros.● Añadir nuevas capas recurrentes.● Multi-dimensional Long Short Term

Memory.● Inclusión de etiquetas para letras

duplicadas.● Mantener las etiquetas duplicadas

consecutivas.● Añadir ruido.● Visión Artificial.● Sistemas dinámicos.

Conclusiones

Page 45: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Bonus TrackMulti-Dimensional Recurrent Neural Networks (MDRNN)

Page 46: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Bonus TrackMulti-Dimensional Recurrent Neural Networks (MDRNN)

Page 47: Deep Learning para el Reconocimiento de Texto …fsancho/ficheros/IAML/DL_Reconocimiento_texto.pdf · Introducción Introducción Datos Redes Neuronales Artificiales Arquitecturas

Gracias