37
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

Red Neuronal OCR

  • Upload
    klefo

  • View
    72

  • Download
    5

Embed Size (px)

DESCRIPTION

Trabajo realizado por alumnos de la UPC, para el curso de Inteligencia Artificial

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

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres

(OCR)

Moscaiza M.,

Omar Neyra R.

Raúl

Índice

I. 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)

Moscaiza M.,

Omar Neyra R.

Raúl

I. 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)

Moscaiza M.,

Omar Neyra R.

Raúl

II. 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)

Moscaiza M.,

Omar Neyra R.

Raúl

III. Objetivos

1.1.General

Demostrar es uso práctico que tiene las redes neuronales aplicadas en los

sistemas de reconocimiento óptico de caracteres (OCR)

1.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)

Moscaiza M.,

Omar Neyra R.

Raúl

IV. 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)

Moscaiza M.,

Omar Neyra R.

Raúl

V. 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ón-

reconocimiento 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)

Moscaiza M.,

Omar Neyra R.

Raúl

Redes learning vector quantization (LVQ). - Es un 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

impresión, e incluso un pobre proceso de escaneado, nunca es exactamente

13

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres

(OCR)

Moscaiza M.,

Omar Neyra R.

Raúl

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.

Figura 3. Umbral neuronal

14

Redes Neuronales aplicadas en los Sistemas de Reconocimiento Óptico de caracteres

(OCR)

Moscaiza M.,

Omar Neyra R.

Raúl

0 >= Wi <= 1

∑ Xi * 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. RA-MA. 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