Red Neuronal OCR

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR) Curso: Inteligencia Artificial

Views 154 Downloads 3 File size 817KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

  • Author / Uploaded
  • klefo
Citation preview

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Curso:

Inteligencia Artificial

Ciclo:

2015-0

Preparado por: 

U201200278 – Moscaiza Moncada, Omar I.



U201000119 – Neyra Rangel, Raúl

Revisado por: Bruno Vargas Tamani

Lima, 17 de febrero de 2015

Índice

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

I.

Moscaiza M., Omar Neyra R. Raúl

INTRODUCCIÓN.....................................................................................5

II.

ANTECEDENTES..................................................................................6

III.

OBJETIVOS.........................................................................................7

IV.

ALCANCE............................................................................................ 8

V.

RED NEURONAL ARTIFICIAL.................................................................9

VI.

SISTEMA DE RECONOCIMIENTO DE CARACTERES.................................14

VII.

DESARROLLO..............................................................................19

VIII.

CONCLUSIONES...........................................................................21

IX.

BIBLIOGRAFIA...................................................................................22

2

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

INDICE DE FIGURAS Figura 1 Aprendizaje por Corrección de Error.................................................................................12 Figura 2. Neurona Artificial.............................................................................................................. 14 Figura 3. Umbral neuronal............................................................................................................... 14 Figura 4. Cambio estado por sumatoria.......................................................................................... 15 Figura 5. Capa de nodos de entradas, capa de neuronas ocultas y capa de neuronas de salida...15 Figura 6. Definición de neuronas por pixels.....................................................................................16 Figura 7. Vectores........................................................................................................................... 16 Figura 8. Patrón de entrada letra A.................................................................................................. 17 Figura 9. Letra A con ruido............................................................................................................... 18 Figura 10. Red neuronal de dos capas............................................................................................ 19 Figura 11. Programa iniciado con red cargada................................................................................20 Figura 12. Digitalización de trazos................................................................................................... 21 Figura 13. Reconocimiento de caracteres.......................................................................................22 Figura 14.Simulando una imagen con ruido....................................................................................22 Figura 15. Adición del valor requerido por el aprendizaje supervisado............................................23 Figura 16. Aplicando el aprendizaje no supervisado.......................................................................24 Figura 17. Reconocimiento de aprendizaje.....................................................................................24 Figura 18. Método de aprendizaje no supervisado..........................................................................25 Figura 19. Reconocimiento de carácter........................................................................................... 26 Figura 20. Renombrando el carácter............................................................................................... 26 Figura 21. Aplicando la red aprendida con otros caracteres............................................................27

3

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

I.

Moscaiza M., Omar Neyra R. Raúl

Introducción

Un programa de OCR consiste en un software que trata de convertir la imagen digitalizada de un documento manuscrito, fotocopiado, etc., en un archivo de texto plausible de ser utilizado por algún procesador de texto. Los programas de OCR diseñados sobre bases algorítmicas son los más populares hasta el momento, pero poseen un grado apreciable de inexactitud cuando el texto presenta "ruido", es decir cuando el original contiene manchas (como las producidas al fotocopiar una página) o símbolos mezclados con el texto (un dibujo). Los programas de OCR basados en el reconocimiento de patrones (como las redes neuronales) son capaces de leer y reconocer textos manuscritos o escritos a máquina, de imprenta o de impresora, convirtiéndolos en texto ASCII, editable por el usuario con cualquier programa de tratamiento de textos convencional. Resulta muy útil para documentos en otros idiomas que pueden ser digitalizados usando el OCR para traducirlos después con un software apropiado, o para digitalizar formularios escritos, especialmente cuando hay que hacerlo en grandes volúmenes.

4

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

II.

Moscaiza M., Omar Neyra R. Raúl

Antecedentes

Los primeros modelos de redes neuronales datan de 1943 por los neurólogos McCulloch y Pitts. Años más tarde, en 1949, Donald Hebb desarrolló sus ideas sobre el aprendizaje neuronal, quedando reflejado en la "regla de Hebb". En 1958, Rosemblatt desarrolló el perceptrón simple, y en 1960, Widrow y Hoff desarrollaron el ADALINE, que fue la primera aplicación industrial real. En los años siguientes, se redujo la investigación, debido a la falta de modelos de aprendizaje y el estudio de Minsky y Papert sobre las limitaciones del perceptrón. Sin embargo, en los años 80, volvieron a resurgir las RNA gracias al desarrollo de la red de Hopfield, y en especial, al algoritmo de aprendizaje de retropropagación (BackPropagation) ideado por Rumelhart y McLellan en 1986 que fue aplicado en el desarrollo de los perceptrones multicapa. Un ejemplo típico de red neuronal aplicada al reconocimiento de patrones son los OCR o programas de reconocimiento óptico de caracteres escritos. De acuerdo con Werbos (1998) el 50% de los sistemas de OCR se basan en redes neuronales.

5

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

III.

Moscaiza M., Omar Neyra R. Raúl

Objetivos

3.1. General Demostrar es uso práctico que tiene las redes neuronales aplicadas en los sistemas de reconocimiento óptico de caracteres (OCR) 3.2. Específicos 

Describir las redes neuronales



Describir el reconocimiento de caracteres mediante usando redes neuronales



Demostración de caso practico

6

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

IV.

Moscaiza M., Omar Neyra R. Raúl

Alcance

El presente trabajo tendrá como finalidad dar a conocer los conceptos sobre redes neuronales, y su importancia en el proceso de reconocimiento óptico de caracteres (OCR). Como funciona esta metodología utilizando los principios y fundamentos de inteligencia artificial, es lo que el equipo de trabajo pretende resolver con la elaboración del presente trabajo. También, se demostrara un caso práctico sobre el tema es cual es un software, donde se podrá entender cómo funcionan las redes neuronales y como mediante el aprendizaje va mejorando el OCR.

7

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

V.

Moscaiza M., Omar Neyra R. Raúl

RED NEURONAL ARTIFICIAL

Las redes neuronales artificiales (RNAs) o Neuronal Networks Artificial (NNS) son una rama destacada de la inteligencia artificial, son algoritmos matemáticos que utilizan una estructura jerárquica, los cuales intentan imitar el comportamiento de cerebro humano, destacando el aprendizaje atreves de la experiencia y la extracción de conocimiento a partir de un conjunto de datos. Los elementos básicos del algoritmo de redes neuronales artificiales: 

El conjunto de neuronas o nodos.



Los pesos número, que se modifica durante el entrenamiento de la red neuronal, y es aquí por tanto donde se almacena la información que hará que la red sirva para un propósito u otro.



Una regla de propagación. Con las entradas y los pesos se suele hacer algún tipo de operación para obtener el valor del potencial.



Una función de activación. El valor obtenido con la regla de propagación, se filtra a través de una función conocida como función de activación y es la que nos da la salida de la neurona. (Diez, 2003)

Las neuronas o nodos son unidades o elementos de procesamiento las cuales se pueden dividir en tres grupos diferentes: a) Las que reciben la información del exterior, también denominadas como neuronas de entradas. b) Las que transmiten información al exterior, denominadas neuronas de salida. c) Por último las que no tienen ningún contacto con el exterior y solamente intercambian información con otras neuronas de la red, a estas se las llama neuronas ocultas. Los nodos de entrada reciben señales del entorno por medio de sensores, nodos de salida envían señales fuera del sistema una vez finalizado el tratamiento de la información y los nodos ocultos son los que reciben estímulos de los nodos de 8

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

entrada y emiten salidas hacia los nodos de salida, en ellos se lleva e acabo el procesamiento de la información. Los pesos se pueden modificar durante el entrenamiento de la red neuronal, el aprendizaje es el proceso en el cual la red neuronal crea, modifica o destruye sus pesos en respuesta a una información de entrada. Una red neuronal es entrenada con compartimiento normal o anormal, estos valores dependen de la forma en que se desee detectar una intrusión. En un sistema de detección de intrusos la red es entrenada para predicción de una acción o comando de usuario. A medida que la red neuronal artificial aprende el conjunto de datos, los pesos de conexión se cambian las conexiones con importancia permanecen y las conexiones sin relevancia son castigadas. Los datos se escriben en los nodos de entrada, procesados a través de los nodos ocultos, y los pesos de conexión a los nodos de salida son ajustados. Mediante su empleo es posible detectar variaciones de ataques o de carácter desconocidos, que difieren de los patrones iniciales con que fue entrenada la red. Las redes neuronales artificiales (RNAs) están inspiradas en el sistema lógico natural, como es conocido en este sistema la neurona es la unidad de procesamiento y aunque las (RNAs) sean mucho menos complejas en un sistema informático también realizan cálculos complejos para procesar información. (Díaz, 2012) Las redes neuronales artificiales se clasifican en base a su paradigma de aprendizaje, cada una de ellas ha sido diseñada para fines más o menos específicos, algunos tipos son: 

Back propagation.- conocida también como perceptron multicapa o retro propagación, este algoritmo ofrece un solución a las redes neuronales mas complejas por eso es una de las técnicas más utilizadas, también tiene un gran facilidad aprendizaje, en esta técnica los errores son propagados hacia atrás desde la capa de salida, los pesos se van modificando desde el

9

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

nodo de salida hasta el nodo de entrada. Las limitaciones de black propagation o propagación hacia atrás es que necesita mucho tiempo para el aprendizaje y muchos ejemplos. Algunas de sus aplicaciones de este algoritmo son Síntesis de voz desde texto, control de robots, predicciónreconocimiento de patrones.



Redes auto organizadas (SOFM). - Es una red de tipo unidireccional, y se organiza en dos capas: la primera capa está formada por las neuronas de entrada, y la segunda consiste en un array de neuronas de dos dimensiones. En este caso se necesitan dos índices para etiquetar cada neurona, los pesos asociados a cada neurona tendrán tres índices donde dos de ellos indican la posición de la neurona en la capa y el tercero la conexión con cierta neurona de entrada. (Diez, 2003). Este algoritmo de aprendizaje es una de las técnicas más útiles, se entrena con aprendizaje no supervisado para generar dos capas de neuronas la primera de ellas le recogen señales exteriores y los transmiten a la siguiente capa, el procesamiento de información se lleva en la segunda capa que además actúa como salida del sistema. La desventaja es que requiere mucho entrenamiento. Las aplicaciones de este algoritmo de aprendizaje son reconocimiento de patrones, codificación de datos, optimización.



Redes de función de base radial (RBF). - Este tipo de redes se caracteriza por tener un aprendizaje o entrenamiento híbrido. La arquitectura de estas redes se caracteriza por la presencia de tres capas: una de entrada, una única

capa

oculta

y

una

capa

de

salida.

(Diez,

2003)

Una red de funciones de base radial es una red neuronal que utiliza funciones de base radial como funciones de activación. Este es un algoritmo hibrido ya que su método de aprendizaje consta de dos fases, la fase no supervisada en la cual trabaja con la capa oculta y la fase supervisada donde los pesos y los valores de la capa de salida.

10

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)



Redes learning vector

quantization (LVQ).

- Es un

Moscaiza M., Omar Neyra R. Raúl

algoritmo

de

clasificación de patrones de tipo supervisado, también es un algoritmo hibrido ya que cuenta con una esta capa supervisada y la otra no supervisada, tiene como principal objetivo la clasificación de patrones, se divide en dos capas donde cada neurona de la primera capa es asignada a una sub-clase corresponde a su vez a una neurona de la segunda capa. Este algoritmo se diferencia las redes auto organizados es que trabaja con salidas en una sola dimensión, la salida en el SOFM es bidimensional. Las redes neuronales se pueden clasificar según sus métodos de entrenamiento como: 

Redes de pesos fijos.- Para las redes de pesos fijos no hay ningún tipo de entrenamiento.



Redes no supervisadas.- Durante el aprendizaje el tutor indica a la red que debe de producir en la salida. Estas son utilizadas para el análisis de clústeres en aplicaciones.



Redes de entrenamiento supervisado.- La red es independiente, localiza sobre los datos de entrada propiedades que le sirvan para la separación de patrones. Este tipo de red son mayormente utilizadas para problemas de clasificación. Aprendizaje por corrección de Error El entrenamiento consiste en presentar al sistema un conjunto de pares de datos, representando la entrada y la salida deseada para dicha entrada. Este conjunto recibe el nombre de conjunto de entrenamiento. El objetivo es tratar de minimizar el error entre la Salida Deseada y la salida actual

11

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

Figura 1 Aprendizaje por Corrección de Error

Algoritmos de Aprendizaje por Corrección del error Los pesos se ajustan en función de la diferencia entre los valores deseados y los obtenidos en la salida.

∆wij = α xi (dj - xj ) donde: ∆wij Variación en el peso de la conexión entre el i-ésimo nodo y el j-ésimo. α Umbral en el aprendizaje que regula velocidad y precisión (0 < α ≤ 1) xi Salida del i-ésimo nodo xj Salida del j-ésimo nodo dj Valor de salida deseado del j-ésima unidad de procesamiento Regla de mínimo Error cuadrado Widrow y Hoff definieron una función que permitía cuantificar el error global cometido en cualquier momento durante el proceso de entrenamiento, agilizando este proceso

12

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

La fórmula calcula n = número de nodos de salida p = número de tramas de entrenamiento Error cometido en el aprendizaje de la k-ésima trama. Se trata de modificar los pesos para que las conexiones de la red minimicen esta función de error, se puede hacer de manera proporcionada a la variación relativa del error.

VI. SISTEMA DE RECONOCIMIENTO DE CARACTERES El Reconocimiento Óptico de caracteres es una de las aplicaciones más usada con Redes Neuronales. Esto es posible por la naturaleza de las Redes Neuronales. Al hablar de naturaleza de las redes neuronales hacemos referencia a que es unos de las ramas de la Inteligencia Artificial capaz de aprender patrones y de acuerdo a una entrada de datos puede predecir los resultados. Esto es, la red aprende un conjunto de patrones/caracteres y luego de acuerdo a las entradas posteriores la red puede deducir la salida gracias al aprendizaje que hizo de esos patrones. Estas redes simulan en cierto modo el funcionamiento de las neuronas que naturalmente poseemos los humanos, y son un campo que está dando grandes resultados en los últimos años; son especialmente buenas cuando se trata de reconocer patrones con un cierto "ruido" de fondo, dado que por ejemplo, una palabra nunca es pronunciada exactamente igual dos veces, siempre hay pequeñas variaciones. Otro gran ejemplo son las letras escaneadas de un papel (incluso letras de imprenta), que debido a suciedad, moho, borrones en el papel, errores en su 13

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

impresión, e incluso un pobre proceso de escaneado, nunca es exactamente igual. Sin embargo una persona generalmente no encuentra dificultades a la hora de entender una palabra que le digan o una letra impresa, salvo que sean muy confusas; pues esta ventaja es la que aportan las redes neuronales, posibilitando programas como los OCR.

Figura 2. Neurona Artificial

Donde: • “X1…Xn” indican un bit que corresponden al carácter que estoy tratando de reconocer y son las entradas de la red. • “W1…Wn” son los pesos de las entradas de la red. Cada X tiene su peso. El valor para W varía entre 0 y 1. • “Y” es la salida de la red y está en función de las entradas y sus respectivos pesos. En el contexto de las redes neuronales lo que está dentro de la elipse es el proceso interno de la red y es donde se encuentra lo que se conoce como el “Umbral”. Este es un escalón unitario y determina si se dispara o no una celular neuronal.

14

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

Figura 3. Umbral neuronal

0 >= Wi a Cuando la sumatoria es mayor que “a” cambia de estado; es decir, atraviesa o no el umbral.

Figura 4. Cambio estado por sumatoria

Ahora que ya hablamos de las neuronas, pasemos a las redes neuronales propiamente dicha, la cual está constituida por un conjunto de neuronas interconectadas.

Figura 5. Capa de nodos de entradas, capa de neuronas ocultas y capa de neuronas de salida.

Como se puede apreciar en el gráfico la capa de entrada corresponde a lo que viene del ambiente (como por ejemplo el nervio óptico). En esta capa se encuentran los patrones de enseñanza. Las neuronas de la capa intermedia propagan su efecto a través de las diferentes capas sucesivas y como consecuencia produce un vector de salida. Durante este proceso, los pesos de las entradas de la red son fijos y no se modifican.

15

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

En el reconocimiento de patrones hay un número fijo de categorías en las cuales las muestras de entrada deben clasificarse. Para ello primero se requiere una fase de entrenamiento en la que se presenta a la red los patrones que debe aprender y la categoría en cual clasificarlo. Entonces se le presenta a la red un patrón nuevo y desconocido pero que pertenece a alguna de las categorías aprendidas y esta debe decidir a qué categoría se parece más. Para el desarrollo de la aplicación OCR usamos la Red Neuronal de Kohonen. Esta es un tipo de red No Supervisada. Lo más importante en este tipo de redes es que el resultado no lo conozco. Funcionamiento de la red: Si ocupamos un vector para definir las neuronas, por ejemplo de 30 elementos, tendremos:

Figura 6. Definición de neuronas por pixels

A esta matriz la ocuparemos para determinar un carácter. Cada cuadro de la matriz puede tener un valor 0 ó 1. Si es igual a 0 no tiene nada, caso contrario el cuadro está lleno. Vamos a ocupar además un círculo unitario donde estarán representados todos los vectores, uno por cada neurona

16

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

Figura 7. Vectores

En este círculo habrá 30 vectores Los vectores pueden tener cualquier dirección. Al hacer que todos los vectores tengan módulo 1, sólo nos preocupamos por calcular el ángulo con la abcisa. El uso del círculo y los ángulos de los vectores sirve para normalizarlos (que tengan módulo 1) y para determinar el ángulo. Este ángulo determinará cuán cerca está una neurona (vector) u otra del patrón de entrada que se quiere reconocer.

Figura 8. Patrón de entrada letra A

Supongamos que el patrón de entrada a la red es la letra “A”. Se puede apreciar que hay cuadros llenos (1) y cuadros vacíos (0). Este patrón ingresa a la red neuronal para que esta lo aprenda. Este proceso se conoce como el entrenamiento de la red. Luego de aprender viene un segundo paso que consiste en el reconocimiento del carácter. Se supone que con el entrenamiento la red es capaz de reconocer un

17

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

carácter igual o similar que ingrese nuevamente a ella. Siempre habrá un margen de error. Supongamos que ingresamos un documento escaneado y le pedimos al sistema que reconozca los caracteres impresos en él y asumamos que hay cierto ruido o suciedad en la hoja y la letra ”A” aparece en el documento como muestra la siguiente figura:

Figura 9. Letra A con ruido

En ella vemos que falta parte de la letra. Lo que hará la red en este caso es buscar el vector más próximo (gracias al ángulo) para obtener el resultado deseado. En otras palabras la red buscará entre los vectores lo que más se aproximen para completar el carácter que queremos. De aquí surge que hay neuronas ganadoras y neuronas perdedoras. Las ganadoras son las que se activan y se disparan para obtener el resultado deseado. Si entre las neuronas no hay proximidad con el carácter que se pretende reconocer no hay un resultado posible por lo que no hay neuronas ganadoras, es decir no hay vectores próximos. Respecto de la aplicación, se desarrolló en Builder C++ Versión 6.0.

VII. DESARROLLO Este software permite aprender y reconocer caracteres y símbolos. Usa redes neuronales para identificar los caracteres trazados con el mouse en ese espacio. Fácilmente se le puede enseñar a reconocer nuevos caracteres. La precisión del

18

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

programa de mejora, ya que aprende de su (escritura con el mouse) escritura a mano. Se trata principalmente de un programa educativo. Recog demuestra la diferencia entre un aprendizaje supervisado y no supervisado.

Figura 10. Red neuronal de dos capas

Recog utiliza una red neural de dos capas grande (pero simple) para aprender y reconocer patrones. La imagen de la escritura a mano se digitaliza en una rejilla de neuronas de entrada. Cada respuesta posible está representada por una sola neurona de salida. Cada neurona de entrada está vinculado directamente a cada neurona de salida (no hay capas ocultas). Como en la mayoría de las redes neuronales, la data (o programación) se codifica en los vínculos entre las neuronas. Si un enlace entre una neurona de entrada y una neurona de salida es positiva, ello significara que si la entrada está en la puntuación total para esa neurona de salida se incrementa en una pequeña cantidad. Si el enlace es negativo, entonces se sigue que si la entrada está activada, la salida correspondiente tendrá su resultado disminuido en una cantidad. La neurona de salida con la puntuación más alta (y por lo tanto la mejor coincidencia) se considerad el ganador. Esto se conoce como una red competitiva. Para ver los puntos fuertes o el peso de los vínculos entre la rejilla de entrada y una de salida 19

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

determinada, se deberá hacer doble clic en uno de los caracteres de la lista de reconocimiento. El procedimiento de aprendizaje Recog es extremadamente simple. No hay Back Propagation, Delta-rule, u otras complejidades; es simple aritmética. Todos los enlaces entre las neuronas de entrada activas y las neuronas de salida seleccionadas han aumentado sus pesos por uno. Todos los enlaces entre entradas de neuronas inactivas y la neurona de salida seleccionada tendrán sus pesos reducidos a uno. Se deberá hacer doble clic en uno de los caracteres de la lista de reconocimiento y ver cómo sus pesos cambian a medida que Recog aprende el carácter. Recog reconoce individualmente los caracteres impresos y poco a poco se adapta al estilo de escritura que el usuario tiene. Esto puede sonar sospechosamente similar a la antigua PDA de Apple (asistente personal de datos), Newton. Newton no utiliza redes neuronales, lo que hace que sea menos flexible (y menos volátil) que este software. Una diferencia clave es que Newton engaña al ver el orden en el que se hacen los trazos de las letras. Este se mantiene en observación constante mientras se escribe mas no después. El Palm Pilot era otra PDA que reconoce la escritura a mano. Sin embargo, su reconocimiento no es modificable e inalterable. No hay ninguna adaptación o aprendizaje en la parte de la computadora; es el humano que debe adaptarse a la PalmPilot.

20

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

Figura 11. Programa iniciado con red cargada. Al abrir la aplicación nos encontramos con dos botones, la de la izquierda harán la función de digitalizar los trazos hechos por nosotros y el de la derecha cumple la función de reconocer el dibujo digitalizado y mostrarnos el patrón que corresponde a esa imagen. En la parte superior observamos 4 pestañas: File: encontraremos las opciones para poder abrir y/o grabar una red neuronal, establecer nuevos trazos, abrir trazos o grabarlos. Edit: Deshace la digitalización, copia/pega caracteres, copia/pega trazos y opciones para cambiar el tamaño del panel. Learning: Aquí podremos definir qué tipo de Aprendizaje deseamos, ninguno, Supervisado o No Supervisado. Ayuda: Tutorial para mejor entendimiento del software. Ahora probaremos el programa buscando que reconozca un carácter ingresado desde el sector de dibujo/escritura. Una vez realizados los trazos que deseamos reconocer se procede a presionar el botón de digitalizar, a fin de que se obtenga

21

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

la imagen digitalizado del trazo y luego de ello con una red previamente cargada, en este caso (A, E, I, O, U, Y) procederemos a presionar el botón de reconocer.

Figura 12. Digitalización de trazos. De acuerdo al entrenamiento de la red cargada previamente, el resultado sera ordenado porcentualmente, siendo el primero el patrón reconocido por el aplicativo.

Figura 13. Reconocimiento de caracteres. 22

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

Además a través de la figura siguiente podemos observar que a pesar de borrar algunas partes y obtener una imagen no tan legible, la solución siegue mostrando un perfil de reconocimiento para la letra A.

Figura 14.Simulando una imagen con ruido.

El aplicativo tiene la opción de poder enseñarle a una red de modo Supervisado, por lo que luego de haber hecho nuestros trazos en el sector de dibujo y haber hecho click en reconocer, el boton add(añadir) sera el encargado de hacer que se genere una nueva entrada en nuestra red, mostrandose así la opcion de añadir carácter, solicitandonos el nombre del carácter reconocido.

23

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

Figura 15. Adición del valor requerido por el aprendizaje supervisado.

Luego procedemos a presionar de aprender, con el se le asignará al dibujo el Aprendizaje de un 100% para el trazo realizado.

24

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

Figura 16. Aplicando el aprendizaje no supervisado.

Figura 17. Reconocimiento de aprendizaje

El otro metodo de enseñanza es el no supervisado, para ello se tendrá que seleccionar previamente la opción tal cual como se detalla en la figura debajo adjunta.

25

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

Figura 18. Método de aprendizaje no supervisado.

Luego de digitalizar la imagen y presionar reconocer, el aplicativo nos mostrará el valor del 100%. Además observamos dos opciones debajo: Create Limit: Si el mejor reconocimiento es inferior a este porcentaje, entonces se creará un nuevo caracter. Learn Limit: Si el mejor reconocimiento se encuentra por encima de este porcentaje, entonces el aprendizaje se llevará a cabo en ese carácter.

26

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

Figura 19. Reconocimiento de carácter

Luego de haber reconocido se deberá hacer doble click en el nombre del carácter a fin de poder renombrarlo.

Figura 20. Renombrando el carácter.

27

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

En esta imagen podemos observar como luego de haber entrenado una red no supervisada,

el

reconocimiento

de

caracteres

funciona

correctamente,

reconociendo las letras en este ejemplo.

Figura 21. Aplicando la red aprendida con otros caracteres El aplicativo no se limita solamente a caracteres, sino también a símbolos y a diferentes patrones de trazo que uno desee vincular para satisfacer una necesidad.

28

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

VIII. CONCLUSIONES 1. Es evidente que el término redes neuronales artificiales abarcan una gran variedad de diferentes paquetes de software con muchos tipos diferentes de neuronas artificiales, arquitecturas de red y reglas de aprendizaje. Estas diferentes redes pueden, a su vez, pueden aplicarse a una amplia gama de funciones desde la fabricación de cerveza hasta a una mejor comprensión de las propiedades de los cerebros biológicos en los que se basa. 2. Como resultado del desarrollo de este trabajo, concluimos que el uso de las Redes Neuronales es una gran alternativa para la solución de muchas necesidades, no limitándose en el reconocimiento de caracteres sino que usando esto como base para otras aplicaciones. 3. Con la ayuda del aplicativo es posible dar solución a problemas más complejos como por ejemplo, reconocimiento y traducción de texto, resolución de sudoku, identificación de placas vehiculares, facturas, etc. 4. Una debilidad de la aplicación es que es básica, pero nos permite comprender como se origina el proceso de reconocimiento de texto, los pasos que se siguen y que método se usa. 5. El más notable es el hecho de que no puede manejar grandes variaciones en la traslación, rotación o escala. Son necesarios unos pocos pasos de pre procesamiento para poder implementarlo con el fin de dar cuenta de estas variaciones, pero en general son difíciles de resolver completamente

29

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres (OCR)

Moscaiza M., Omar Neyra R. Raúl

IX. BIBLIOGRAFIA 1. McCulloch, Warren; Walter Pitts (1943). "A Logical Calculus of Ideas Immanent in Nervous Activity". Bulletin of Mathematical Biophysics 5 (4): 115–133. doi:10.1007/BF02478259. 2. Hebb, Donald (1949). The Organization of Behavior. New York: Wiley. 3. Farley, B.G.; W.A. Clark (1954). "Simulation of Self-Organizing Systems by Digital Computer".IRE Transactions on Information Theory 4 (4): 76– 84. doi:10.1109/TIT.1954.1057468. 4. Rochester, N.; J.H. Holland, L.H. Habit, and W.L. Duda (1956). "Tests on a cell assembly theory of the action of the brain, using a large digital computer". IRE Transactions on Information Theory 2(3): 80– 93. doi:10.1109/TIT.1956.1056810. 5. Hilera J, Martínez V. 1995. Redes neuronales artificiales: fundamentos, modelos y aplicaciones. Madrid: Addison-Wesley Iberoamericana. RAMA. 390 p. 6. Sánchez E, Alanis A. 2006. Redes neuronales: conceptos fundamentales y aplicaciones a control automático. Madrid. Prentice-Hall. 210. 7. Dowla F, Rogers L. 1996. Solving problems in environmental engineering and geosciences with artificial neural networks. Cambridge. MIT Press. 310 p. 8. Bishop C, 2006. Neural Networks for Pattern Recognition. New York. Oxford University Press. 504 p.

30