Departamento de Ingenier´ıa de Sistemas y Automa´tica Proyecto Fin de Carrera Reconocimiento de textos antiguos mediante t´ecnicas de visio´n artificial Autor: Mois´es Rodr´ıguez Vallejo Tutor: Jorge Garc´ıa Bueno Legan´es, junio de 2013 ´ Indice general 1. Introduccio´n y objetivos 8 1.1. Introduccio´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.1.1. Textos antiguos . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.1.2. Digitalizaci´on de libros . . . . . . . . . . . . . . . . . . . . . . . 13 1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.3. Medios empleados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.4. Estructura de la memoria . . . . . . . . . . . . . . . . . . . . . . . . . 17 2. Estado del arte 19 2.1. Ima´genes digitales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2. Visio´n artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.1. Introducci´on a la visio´n artificial . . . . . . . . . . . . . . . . . . 26 2.2.2. Preprocesamiento de ima´genes . . . . . . . . . . . . . . . . . . . 27 2.2.3. Extracci´on de caracter´ısticas . . . . . . . . . . . . . . . . . . . . 36 2.2.4. Transformaciones morfolo´gicas . . . . . . . . . . . . . . . . . . . 43 2.3. Redes neuronales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.3.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.3.2. Primeros modelos computacionales . . . . . . . . . . . . . . . . 52 2.3.3. Perceptr´on multicapa . . . . . . . . . . . . . . . . . . . . . . . . 58 3. Implementaci´on 71 3.1. Fase 1: Segmentacio´n de caracteres . . . . . . . . . . . . . . . . . . . . 71 3.2. Fase 2: Red neuronal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4. Experimentacio´n y resultados 81 4.1. Red Neuronal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.1.1. Prueba 1: Modificaci´on nu´mero de salidas de la red neuronal . . 81 4.1.2. Prueba 2: Variaci´on del nu´mero de entradas de la red . . . . . . 84 4.1.3. Prueba 3: Modificaci´on de conjuntos de aprendizaje . . . . . . . 86 1 ´ ´ INDICE GENERAL INDICE GENERAL 4.1.4. Prueba 4: Modificaci´on tasa de aprendizaje y momento . . . . . 88 5. Conclusiones y trabajos futuros 92 A. Instalacio´n OpenCV 94 B. Funciones facetrain 96 C. Funciones c´odigo y OpenCV 103 2 ´ Indice de figuras 1.1. Ejemplo de texto antiguo 1 . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2. Ejemplo de texto antiguo 2 . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.3. Ejemplo de texto antiguo 3 . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4. BFS-Auto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.5. Resultado de la transformacio´n de la imagen . . . . . . . . . . . . . . . 15 1.6. Sistema reCAPTCHA . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.1. Imagen ejemplo 300 dpi . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2. Imagen ejemplo 72 dpi . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3. Histogramas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.4. Espacio de color RGB . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.5. Espacio de color HSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.6. Red multicapa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 2.7. Esquema del aprendizaje supervisado . . . . . . . . . . . . . . . . . . . 51 2.8. Esquema del aprendizaje no supervisado . . . . . . . . . . . . . . . . . 51 2.9. Esquema general de una neurona de McCulloch-Pitts . . . . . . . . . . 52 2.10.Arquitectura de un perceptr´on simple con 2 entradas y una salida . . . 55 2.11.Arquitectura del perceptro´n multicapa . . . . . . . . . . . . . . . . . . 59 2.12.Funcio´n sigmoidal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2.13.Funcio´n tangente hiperb´olica . . . . . . . . . . . . . . . . . . . . . . . . 62 3.1. Flujograma fase 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 3.2. Imagen original . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.3. Imagen en niveles de gris . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.4. Imagen suavizada (filtro gaussiano) . . . . . . . . . . . . . . . . . . . . 74 3.5. Imagen binarizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 3.6. Resultado segmentacio´n caracteres . . . . . . . . . . . . . . . . . . . . 74 3.7. Flujograma fase 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.8. Imagen para aprendizaje: A17r.png . . . . . . . . . . . . . . . . . . . . 76 3 ´ ´ INDICE DE FIGURAS INDICE DE FIGURAS 3.9. Imagen para aprendizaje: A56r.png . . . . . . . . . . . . . . . . . . . . 77 3.10.Imagen para aprendizaje: texto6.png . . . . . . . . . . . . . . . . . . . 78 4.1. Errores para redes de 1 y 15 salidas . . . . . . . . . . . . . . . . . . . . 83 4.2. Fen´omeno de sobreentrenamiento . . . . . . . . . . . . . . . . . . . . . 84 4.3. Errores para red de 16 entradas . . . . . . . . . . . . . . . . . . . . . . 85 4.4. Errores para red de 25 entradas . . . . . . . . . . . . . . . . . . . . . . 86 4.5. Errores para red de 49 entradas . . . . . . . . . . . . . . . . . . . . . . 87 4.6. Errores para red de 100 entradas . . . . . . . . . . . . . . . . . . . . . 88 4.7. Error con distintos conjuntos de aprendizaje (i) . . . . . . . . . . . . . 89 4.8. Error con distintos conjuntos de aprendizaje (ii) . . . . . . . . . . . . . 89 4.9. Salida obtenida del algoritmo frente a nu´mero de entradas de la red . . 90 4.10.Variacio´n tasa de aprendizaje y momento . . . . . . . . . . . . . . . . . 91 4 ´ Indice de cuadros 4.1. Salidas obtenidas para las distintas redes y evaluaci´on de resultados . . 82 4.2. Distribucio´n de los conjuntos de aprendizaje . . . . . . . . . . . . . . . 86 5 Resumen El objetivo de este proyecto es reconocer caracteres de textos antiguos mediante t´ecnicas de visio´n artificial y redes neuronales. Distinguimos dos fases en el proceso: extraccio´n de los caracteres de las ima´genes de los textos antiguos; y el reconocimiento mediante redes neuronales. En la primera utilizaremos las librer´ıas de OpenCV para conseguir el objetivo, mientras que en la segunda fase partimos de un co´digo de una red neuronal de 3 capas de la Universidad Carnegie Mellon, modificado adecuadamente a nuestro propo´sito. Tambi´en estudiaremos la influencia en nuestros resultados de varios para´metros de la red neuronal. 6 Abstract The aim of this project is to recognize characters in antique books, using computer vision and neural networks techniques. This process has two phases: extracting charac- ters from images of antique books; and the recognition using neural networks. In the first phasewe will workwith OpenCV libraries to reach thegoal, while inthe secondwe start from a 3-layer neural network code from the Carnegie Mellon University, adapted to our purpose. We will also analyze the influence of several paramethers on our neural network results. 7 Cap´ıtulo 1 Introduccio´n y objetivos 1.1. Introduccio´n En esta introducci´on situaremos nuestro proyecto en su contexto. En primer lugar hablaremos de los textos antiguos con los que trabajamos, ya que una de las moti- vaciones de este proyecto es el uso de la ingenier´ıa en un ´ambito human´ıstico como son los textos g´oticos. Adema´s, hablaremos sobre la digitalizacio´n de libros, principal tema de este proyecto. Nombraremos tambi´en un par de t´ecnicas novedosas relaciona- das con nuestro trabajo: por un lado un sistema automatizado de escaneo de libros, y por otro reCAPTCHA, un sistema que, indirectamente, ayuda a resolver problemas relacionados con el reconocimiento de caracteres. 1.1.1. Textos antiguos En primer lugar introduciremos a los principales protagonistas de este proyecto: los textos antiguos. Hemos trabajado con textos g´oticos (siglos XII-XV d.C.), cuyas caracter´ısticas se describira´n a continuaci´on. Introduccio´n a la escritura escritura g´otica Durante los siglos XII y XIII se producen en la cultura cambios radicales que re- percuten sobre las caracter´ısticas de los manuscritos y sobre la forma de escritura. Hasta esa ´epoca, los estudios y los libros eran un privilegio casi exclusivo de la Iglesia y u´nicamente producidos en monasterios y escuelas catedralicias. A partir de la mitad del siglo XII la cultura se difunde fuera de los monasterios, divulg´andose en torno a las grandes universidades que van surgiendo en toda Europa y a las que acuden estu- diosos de toda condici´on: eclesia´sticos, religiosos y laicos. Por tanto surge la necesidad de proveer de libros a las universidades para poder desarrollar sus ensen˜anzas. Aparece 8 ´ 1.1. INTRODUCCION Introduccio´n y objetivos una gran demanda de textos que afecta al mercado, surgiendo un comercio en torno a los libros. Debido a estas nuevas necesidades, los manuscritos adoptan caracter´ısticas distintas,adapt´andosealaproduccio´nenserie.Tambi´ensebuscalaeconom´ıadepapel, es decir, que quepa la ma´xima cantidad de texto en el menor espacio posible, lo que implica contraer las letras, trazar ascendentes y descendentes cortos, as´ı como utilizar abundantes abreviaturas. Otro factor que influyo´ en el aspecto de la letra g´otica fue uno de tipo t´ecnico: la punta de la pluma se corto´ de forma oblicua a la izquierda, lo que da como resultado que los trazos horizontales y verticales fueran de trazo grueso y los oblicuos finos y tenues. Este detalle dificulta el algoritmo de segmentacio´n de caracteres utilizado en este proyecto, como veremos m´as adelante. Todas las formas de escritura que presentan las caracter´ısticas mencionadas anterior- mente son designadas con el nombre gen´erico de escritura g´otica. Esta denominaci´on procede de los humanistas italianos y es usada en oposicio´n a la escritura ”antigua” (antiqua) que indicaba la minu´scula carolina, de la que deriva. En su´epoca la escritura go´tica recib´ıa el nombre de ”moderna” (litterae modernae). Los primeros ejemplos de esta escritura (littera protogothica / littera praegothica) se encuentran en algunos manuscritos del siglo XII producidos en Francia, pero es en el siglo XIII cuando alcanza su perfeccio´n y se difunde ra´pidamente por toda Europa. La go´tica fue usada en todo el mundo latino hasta el siglo XV, si bien su uso sigui´o vigente en Alemania hasta el siglo XVI por razones religiosas, no desapareciendo de hecho en este pa´ıs en su variante ”fraktur” hasta el siglo XX en que fue prohibida su utilizaci´on por un decreto de Hitler promulgado en enero de 1941. Durantelaevolucio´ndelaescriturag´oticaaparecieronalgunoscambiosenelalfabe- to, tales como distintos trazos, distinciones entre letras que se confund´ıan habitualmen- te (origen del punto sobre la ”i”, diferencia entre ”u” y ”v”), distintas representaciones para una misma letra segu´n su posicio´n en la palabra, inclusio´n de letras anterior- mente extran˜as(”w”, ”y”, ”z”), etc. A finales del siglo XV influencias de la escritura human´ıstica provocaron nuevos cambios en las letras go´ticas. Finalmente debe tener- se en cuenta que en la ´epoca cla´sica no hab´ıa distincio´n en la escritura entre letras mayu´sculas y minu´sculas. Fue durante la ´epoca go´tica cuando se estableci´o un aut´enti- co alfabeto dual, es decir, entro´ en vigor el uso consistente de mayu´sculas y minu´sculas. Podemos hacer una primera clasificacio´n de tipos de escritura g´otica en tres: Formal (littera textualis / textura) 9
Description: